<div class="tc-table-of-contents">
<<toc-selective-expandable '-Minuses'>>
</div>
!! The [[!Economy]]
There is a belief that spending money causes dillution (or inflation), so everyday purchases are done with "script" or guilders and not with sovereign money. While that policy forces all "natural" inflation and dillution upon the local currencies, the sovereign currencies maintain their static values. The exact amount that a guilder is worth in other guilders or in sovereign money is handle by brokers. As long as the guilders remain in the same city and surrounding villages, the value of the guilder doesn't change. Carrying money to another city requires getting brokers involved, who usually charge a half-tithe (5%) on the amount being transfered between locations, and no business will accept guilders which come from distant lands.
!!! ''Coinage and Script''
Various denominations come from wide-flung parts of the Shattered Empire and are used in various ways and in strange places. These division are a twelth, a tenth (a tithe), a twentieth, a thirtieth, a sixtieth, a half, a third, a quarter, a quarter-quarter (1/4 + 1/16), a quince (1/4 - 1/16), a fifth, a wonce (1 + 1/20). The basic unit is either a pound (#) or a "wonce" (wn) of the standard reserve metal.
Prices and wages of standard labor, goods, and services are calculated in pounds. "Gentlemanly" prices and exchanges are calculated in wonces.
1 pound = 20 shillings
1 crown = 5 shillings
1 shilling = 12 pennies
!!!! Guilder coins
|
''1 farthing (f)'' = 1 farthing'';'' ^^1^^/,,<<eval =2>>,, halfpence'';'' ^^1^^/,,<<eval =4>>,, pence'';'' ^^1^^/,,<<eval =3*4>>,, thrupence'';'' ^^1^^/,,<<eval =6*4>>,, tanner'';'' ^^1^^/,,<<eval =12*4>>,, shilling (or bob)'';'' ^^1^^/,,<<eval =2*12*4>>,, florin'';'' ^^1^^/,,<<eval =2*(12*4)+(6*4)>>,, half-crown'';'' ^^1^^/,,<<eval =5*(12*4)>>,, crown'';'' ^^1^^/,,<<eval =10*(12*4)>>,, half-sovereign'';'' ^^1^^/,,<<eval =10*(12*4)+6*4>>,, half-wonce'';'' ^^1^^/,,<<eval =20*(12*4)>>,, sovereign'';'' ^^1^^/,,<<eval =20*(12*4)+6*4>>,, wonce'';''
''1 halfpence'' = 2 farthing'';'' 1 halfpence'';'' ^^1^^/,,<<eval =2>>,, pence'';'' ^^1^^/,,<<eval =(3/2)*4>>,, thrupence'';'' ^^1^^/,,<<eval =3*4>>,, tanner'';'' ^^1^^/,,<<eval =6*4>>,, shilling (or bob)'';'' ^^1^^/,,<<eval =12*4>>,, florin'';'' ^^1^^/,,<<eval =(12*4)+(3*4)>>,, half-crown'';'' ^^1^^/,,<<eval =(5/2)*(12*4)>>,, crown'';'' ^^1^^/,,<<eval =5*(12*4)>>,, half-sovereign'';'' ^^1^^/,,<<eval =5*(12*4)+3*4>>,, half-wonce'';'' ^^1^^/,,<<eval =10*(12*4)>>,, sovereign'';'' ^^1^^/,,<<eval =10*(12*4)+3*4>>,, wonce'';''
''1 pence (p)'' = 4 farthing'';'' 2 halfpence'';'' 1 pence'';'' ^^1^^/,,<<eval =(3/4)*4>>,, thrupence'';'' ^^1^^/,,<<eval =(3/2)*4>>,, tanner'';'' ^^1^^/,,<<eval =3*4>>,, shilling (or bob)'';'' ^^1^^/,,<<eval =6*4>>,, florin'';'' ^^1^^/,,<<eval =(6*4)+((3/2)*4)>>,, half-crown'';'' ^^1^^/,,<<eval =(5/4)*(6*4)>>,, crown'';'' ^^1^^/,,<<eval =(5/2)*(12*4)>>,, half-sovereign'';'' ^^1^^/,,<<eval =(5/2)*(12*4)+(3/2)*4>>,, half-wonce'';'' ^^1^^/,,<<eval =5*(12*4)>>,, sovereign'';'' ^^1^^/,,<<eval =5*(12*4)+(3/2)*4>>,, wonce'';''
''1 thrupence'' = 12 farthing'';'' 6 halfpence'';'' 3 pence'';'' 1 thrupence'';'' ^^1^^/,,<<eval =3*(3/2)*4>>,, tanner'';'' ^^1^^/,,<<eval =3*3*4>>,, shilling (or bob)'';'' ^^1^^/,,<<eval =3*6*4>>,, florin'';'' ^^1^^/,,<<eval =3*((6*4)+((3/2)*4))>>,, half-crown'';'' ^^1^^/,,<<eval =3*(5/4)*(6*4)>>,, crown'';'' ^^1^^/,,<<eval =3*(5/2)*(12*4)>>,, half-sovereign'';'' ^^1^^/,,<<eval =3*(5/2)*(12*4)+3*(3/2)*4>>,, half-wonce'';'' ^^1^^/,,<<eval =3*5*(12*4)>>,, sovereign'';'' ^^1^^/,,<<eval =3*5*(12*4)+(3/2)*4>>,, wonce'';''
| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="cv1" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="cn1" /> | = | 1 | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="cs1" />|
!!! Step One -- Bread
You need to establish what the most basic food in your world is. Here we've presented wheat bread as the staple of life. Whatever the most basic food is, is going to be the origin of the economy. Not only does it need to be preferred, it needs to be common. It helps if it winds up costing a nice round number too.
{{FormulaResultButton}}
| Crop | Crop Type | Seed | Gross Yield | Net Yield | Price (sc/lb) | sc/acre (gross) |
|Almonds (in shell) | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a1" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b1" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c1" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d1" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e1" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f1" />|
|Anise | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a2" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b2" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c2" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d2" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e2" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f2" />|
|Apples | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a3"/> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b3" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c3" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d3" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e3" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f3" />|
|Bananas | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a4"/> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b4" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c4" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d4" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e4" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f4" />|
|Barley | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a5"/> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b5" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c5" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d5" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e5" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f5" />|
|Beans, Fava | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a6" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b6" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c6" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d6" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e6" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f6" />|
|Beans, Lima | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a7" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b7" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c7" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d7" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e7" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f7" />|
|Beets | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a8" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b8" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c8" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d8" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e8" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f8" />|
|Cabbage | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a9"/> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b9" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c9" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d9" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e9" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f9" />|
|Carrots | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a10" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b10" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c10" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d10" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e10" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f10" />|
|Cherries, sweet | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a11" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b11" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c11" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d11" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e11" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f11" />|
|Anise | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a2" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b2" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c2" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d2" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e2" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f2" format="3"/>|
|Apples | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a3"/> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b3" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c3" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d3" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e3" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f3" format="3"/>|
|Bananas | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a4"/> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b4" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c4" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d4" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e4" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f4" format="3"/>|
|Barley | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a5"/> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b5" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c5" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d5" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e5" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f5" format="3"/>|
|Beans, Fava | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a6" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b6" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c6" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d6" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e6" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f6" format="3"/>|
|Beans, Lima | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a7" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b7" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c7" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d7" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e7" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f7" format="3"/>|
|Beets | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a8" /> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b8" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c8" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d8" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e8" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f8" format="3"/>|
|Cabbage | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="a9"/> | <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="b9" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="c9" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="d9" />| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="e9" format="3"/>| <$macrocall $name="eval1" datatiddler="$:/sk/EconData" cell="f9" format="3"/>|
!!! Step Two -- Food
OK, now you know what the basic food is, and probably know what it costs. Now you need to mold the culture. What grows where? What foods are considered people food and what foods are considered pig slop? What foods are delicacies, and is there anything special because of that?
!!! Step Three -- Land
!!! Step Four -- Overhead
!!! Step Five -- Cutting Corners
!!! Step Six -- Middlemen
!!! Step Seven -- Craftsmen
!!! Step Eight -- Textiles
!!! Step Nine -- Preservation
!!! Step Ten -- Containers
!!! Step Eleven -- Mining
!!! Step Twelve -- Magic
!!! Step Thirteen -- More
<div class="tc-table-of-contents">
<<toc-selective-expandable '!Quartermaster'>>
</div>
Add the tag `hide` or the tag `outlines` to any tiddler to keep it from appearing in the 'simple transclude' view of the references from other tiddlers. Tiddlers with either tag will appear here.
<<list-search
"[!is[system]tag[outlines]] [!is[system]tag[hide]] +[sort[title]]"
"search"
"$:/temp/list-search-example"
"$:/core/ui/ListItemTemplate"
placeholder:"" >>
Tag tiddlers with the tag `sources` if they are book chapters, articles, or webpages. They will appear here and will also appear as references below the tiddlers linked to from them.
<<list-search
"[!is[system]tag[sources]sort[title]]"
"search"
"$:/temp/list-search-example"
"$:/core/ui/ListItemTemplate"
placeholder:"" >>
!! §101: [[Ancestry / Racial Stock|§101 Ancestry / Racial Stock]] (Character Packages)
Racial heritage, whether a character is humen, elven, dwarven or something else altogether, is the basis for a character's background. Humen are easiest. As players, we have something in common with them. Yet Nonhumans are just that, not human. Like humen characters, they have childhoods, the agonies of adolescence, the pangs of love, and the resposibilities that adulthood brings. However, these will be skewed and colored by their alien upbringing. Consider all this before playing a nonhuman like just another humen.
If you have not already selected a character Race, do so now. Take notes as to the various important factors presented. And then, go on to [[§105: Cultural Backgrounds]].
---
<<tabs "[tag[§Ancestry]sort[order]]" default:"§Humen Ancestry" class:"tc-vertical">>
---
''//Quick Links//:'' [[§101 Ancestry / Racial Stock]] (here) | [[§105: Cultural Backgrounds]] | [[§103 Cultural: Ancestry / Racial Stock]] | [[§104 Cultural: Gods and Moral Aspects]] | [[§106 Social Status]] | [[§107: Family Social Status]]
!! §[[Beast-Blooded|§101.01: Beast-Blooded Ancestry]] Ancestry
Initially this is a "catch all which isn't elsewhere. These are the "half-men" such [[minotaur|§Minotaur]], [[centaur|§Centaur]], [[satyrs|§Satyr]], [[driders|§Drider]], [[mermen|§Mermen Ancestry]], etc. Most often, they are humen heads and torsos welded onto an animal body in such a way that the magic holds true through successive generations. While legends differ as to how these creatures were forged or by whom, a common thread involves carving a humen in two and sewing them to an animal.
Bipedial animals in the vague shape of humen (such as [[canines|§Wolven Ancestry]] and [[felines|§Tigren Ancestry]]) can be found elsewhere.
---
All breast-blooded characters have a few traits in common regardless of their upbringing.
!!! Age
<<<
Live fast. Die young.
<<<
Beast-blooded gain the physical capabilities of an adult within the first five (5) years of life. Intellectual prowess comes much slower, not maturing until age twenty (20). The average lifespan ends at twenty-five, with a maximum age approaching forty (40).
!! §102: [[Ancestral / Racial Breeds|§102: Ancestral / Racial Breeds]]
Long ago, the various [[§Gods]] separated the various races into clans with each god having dominion over one clan for each race. Under the direct influence of their god, the clan took on Aspects of Divinity which changed their appearance but also granted them minor magical abilities.
Select a breed from below and continue on to [[§105: Cultural Backgrounds]].
!!! Dwarven Breeds
<style>.columns{column-count: 5;}</style><div class="columns"><ul>
<li>Aluminium</li>
<li>Blood Metal</li>
<li>Bronze</li>
<li>Cobolth</li>
<li>Copper</li>
<li>Electrum</li>
<li>Gold</li>
<li>Iron</li>
<li>Lead</li>
<li>Magnesium</li>
<li>Mercury</li>
<li>Mythrel</li>
<li>Pewter</li>
<li>Platinum</li>
<li>Silver</li>
<li>Steel</li>
<li>Tin</li>
<li>Titanium</li>
<li>Ytrium</li>
<li>Zinc</li></ul></div>
!!! Elven Breeds
<div class="columns"><ul>
<li>Amber</li>
<li>Amythest</li>
<li>Aquamarine</li>
<li>Bone</li>
<li>Coral</li>
<li>Diamond</li>
<li>Ebony</li>
<li>Emerald</li>
<li>Garnet</li>
<li>Glass</li>
<li>Ivory</li>
<li>Jade</li>
<li>Obsidian</li>
<li>Opal</li>
<li>Pearl</li>
<li>Quartz</li>
<li>Ruby</li>
<li>Sapphire</li>
<li>Topaz</li>
<li>Turquoise</li></ul></div>
!!! Human Breeds
<div class="columns"><ul>
<li>Canyon</li>
<li>Cliff</li>
<li>Delta</li>
<li>Forest</li>
<li>Glacier</li>
<li>Hill</li>
<li>Island</li>
<li>Jungle</li>
<li>Lake</li>
<li>Mine</li>
<li>Mountain</li>
<li>Ocean</li>
<li>Plains</li>
<li>River</li>
<li>Spire</li>
<li>Spring</li>
<li>Swamp</li>
<li>Tundra</li>
<li>Valley</li>
<li>Volcano</li></ul></div>
!!! Tigren
<div class="columns"><ul>
<li>Blizzard</li>
<li>Cloud</li>
<li>Fog</li>
<li>Hail</li>
<li>Hurricane</li>
<li>Lightning</li>
<li>Mist</li>
<li>Rain</li>
<li>Rainbow</li>
<li>Sleet</li>
<li>Snow</li>
<li>Storm</li>
<li>Sun</li>
<li>Tempest</li>
<li>Thunder</li>
<li>Tornado</li>
<li>Torrent</li>
<li>Tsunami</li>
<li>Wind</li>
<li>Zephyr</li></ul></div>
!!! Wolven
<div class="columns"><ul>
<li>Alarm</li>
<li>Camoflauge</li>
<li>Cloak</li>
<li>Dirk</li>
<li>Guard</li>
<li>Mask</li>
<li>Pattern</li>
<li>Ring</li>
<li>Scream</li>
<li>Scout</li>
<li>Secret</li>
<li>Shadow</li>
<li>Signal</li>
<li>Silence</li>
<li>Silhouette</li>
<li>Threat</li>
<li>Torture</li>
<li>Veil</li>
<li>Vision</li>
<li>Whisper</li></ul></div>
!! [[§103 Cultural: Ancestry / Racial Stock]]
!!! Demon Blooded
Predominantly Demonblood communities are rare. Most Demonblood belong to other cultures, as the Demonblood heritage is not reliably inherited from generation to generation, particularly when couples of diverse ancestry have children. The Demonblood societies that do exist, however, often embrace their infernal heritage and make it their own, which leads them to become more comfortable with their identities.
''Characteristic Score Increase.'' Your Intelligence score increases by 1, and your Charisma score increases by 2.
''Alignment.'' Demonbloods do not have an innate tendency toward evil, though many non-demonblood falsely believe they do. Evil or not, an independent nature inclines many in Demonblood culture toward a chaotic alignment.
''Infernal Legacy.'' You know the thaumaturgy cantrip. When you reach 3rd level, you can cast the hellish rebuke spell as a 2nd-level spell once with this trait and regain the ability to do so when you finish a long rest. When you reach 5th level, you can cast the darkness spell once with this trait and regain the ability to do so when you finish a long rest. Charisma is your spellcasting ability for these spells.
''Languages.'' You can speak, read, and write Common and Infernal.
!!! Dragon Blooded
Dragonblood culture is intense and exciting, leading those raised within it to be striking and remarkable individuals. Grand festivals and elaborate holidays are frequent, each centered around a different physical competition or performance. In general, practices in dragonblood culture and education tend to promote athleticism and personal character.
''Characteristic Score Increase.'' Your Strength score increases by 2, and your Charisma score increases by 1.
''Alignment.'' Because dragonblood culture values intense commitments and expression, many raised in this culture find themselves drawn to one side or the other in the cosmic war between good and evil. Most dragonblood are good, but those who side with evil can be terrible villains.
''Languages.'' You can speak, read, and write Common and Draconic. Draconic is thought to be one of the oldest languages and is often used in the study of magic. The language sounds harsh to most other creatures and includes numerous hard consonants and sibilants.
''Dragon Lore.'' Dragonblood communities are often proud of their draconic heritage. You have advantage on any Intelligence checks to recall information about dragons.
!!! Dwarven
Characters who grows up in a dwarven community take on several distinctive cultural traits, in part due to their long history living underground and valuing of skill with traditional dwarven weapons and crafts. Dwarven culture values perseverance in labor and the maintenance of their traditions. Further, respect is shown for their wise elders.
''Characteristic Score Increase.'' Your Constitution score increases by 2, and your Wisdom score increases by 1.
''Alignment.'' Dwarven society is well-ordered, with strict laws and customs governing behavior. As a result, the culture tends to promote lawful values, with a strong sense of fair play and a belief that everyone deserves to share in the benefits of a just order.
''Dwarven Combat Training.'' You have proficiency with the battleaxe, handaxe, light hammer, and warhammer.
''Tool Proficiency.'' You gain proficiency with the artisan’s tools of your choice: smith’s tools, brewer’s supplies, mechanic’s tools, or mason’s tools.
''Stonecunning.'' Whenever you make an Intelligence (History) check related to the origin of stonework, you are considered proficient in the History skill and add double your proficiency bonus to the check, instead of your normal proficiency bonus.
''Languages.'' You can speak, read, and write Common and Dwarvish. Dwarvish is full of hard consonants and guttural sounds, and those characteristics spill over into whatever other language you might might speak.
!!! Elven
High elven culture is rich in traditions and history, celebrating their long legacy of scholarship, acumen, and dance. Those who grow up immersed in this culture often take on certain traits.
''Characteristic Score Increase.'' Your Dexterity score increases by 2, and your Intelligence score increases by 1.
''Alignment.'' The elven culture values freedom, variety, and self-expression, so those who grow up in it may lean toward the gentler aspects of chaos. Elven culture tends to value and protect others’ freedom as well as their own.
''Languages.'' You can speak, read, and write Common and Elvish. Elvish is fluid, with subtle intonations and intricate grammar. Elven literature is rich and varied, and their songs and poems are famous among other cultures. Many bards learn their language so they can add Elvish ballads to their repertoires.
''Elven Weapon Training.'' You have proficiency with the longsword, shortsword, shortbow, and longbow.
''Cantrip.'' You know one cantrip of your choice from the wizard spell list. Intelligence is your spellcasting ability for it.
''Extra Language.'' You can speak, read, and write one extra language of your choice.
!!! Gnome
Gnomish culture and education tend to promote cleverness and ingenuity, qualities that produce many inventors of great renown.
''Characteristic Score Increase.'' Your Intelligence score increases by 2, and your Constitution score increases by 1.
''Alignment.'' Gnomish culture also values kindness and harmony. Many culturally gnomish people work to uphold harmonious relations or apply their ingenuity to better their fellows, often as sages, engineers, researchers, scholars, investigators, or inventors. Others take a more personal approach to these values, becoming minstrels, tricksters, wanderers, or fanciful jewelers. Those raised among gnomish society are generally good-hearted, and even the tricksters among them are more playful than vicious.
''Artificer’s Lore.'' Whenever you make an Intelligence (History) check related to magic items, alchemical objects, or technological devices, you are considered proficient in the History skill and add double your proficiency bonus to the check, instead of your normal proficiency bonus.
''Languages.'' You can speak, read, and write Common and Gnomish. The Gnomish language, which uses the Dwarvish script, is renowned for its technical treatises and its catalogs of knowledge about the natural world.
''Tinker.'' You have proficiency with artisan’s tools (tinker’s tools). Using those tools, you can spend 1 hour and 10 gp worth of materials to construct a Tiny clockwork device (AC 5, 1 hp). The device ceases to function after 24 hours (unless you spend 1 hour repairing it to keep the device functioning), or when you use your action to dismantle it; at that time, you can reclaim the materials used to create it. You can have up to three such devices active at a time.
When you create a device, choose one of the following options:
* Clockwork Toy. This toy is a clockwork animal, monster, or person, such as a frog, mouse, bird, dragon, or soldier. When placed on the ground, the toy moves 5 feet across the ground on each of your turns in a random direction. It makes noises as appropriate to the creature it represents.
* Fire Starter. The device produces a miniature flame, which you can use to light a candle, torch, or campfire. Using the device requires your action.
* Music Box. When opened, this music box plays a single song at a moderate volume. The box stops playing when it reaches the song’s end or when it is closed.
!!! Halfling
Halfling culture is warm and welcoming, placing value in hospitality and good neighborliness. Those who grew up among halflings often make good comrades and allies.
''Characteristic Score Increase.'' Your Dexterity score increases by 2, and your Charisma score increases by 1.
''Alignment.'' Halfling society also tends toward neatness, both in their physical spaces and in their social relations. As a rule, they are good-hearted and kind, hate to see others in pain, and have no tolerance for oppression. They are also orderly and traditional, leaning heavily on the support of their community and the comfort of their old ways.
''Brave.'' You have advantage on saving throws against being frightened.
''Languages.'' You can speak, read, and write Common and Halfling. The Halfling language isn’t secret, but members of halfling culture are loath to share it with others. They write very little, so they don’t have a rich body of literature. Their oral tradition, however, is very strong. Almost all people in halfling societies speak Common to converse with the people in whose lands they dwell or through which they are traveling.
!!! Human
Human culture is defined by its curiosity and love of novelty. As such, its members vary widely, adopting new practices more frequently than those of other cultures often do.
''Characteristic Score Increase.'' Your ability scores each increase by 1.
''Alignment.'' Those raised in human cultures tend toward no particular alignment, just as human cultures themselves tend to change and vary as well. The best and the worst are found among them.
''Languages.'' You can speak, read, and write Common and one extra language of your choice. Human communities typically learn the languages that its members brought from their own heritages. Because so many elves and dwarves live among humans, for example, members of human society are fond of sprinkling their speech with words borrowed from other tongues: Orcish curses, Elvish musical expressions, Dwarvish military phrases, and so on.
!!! Orc
Some orcish communities exhibit a traditional culture, one that values physical ability, competition, and confidence. Others embrace technology and mechanical innovation. Orcish society is often familial and matriarchal, with a focus on providing for the community, especially via hunting, military training, or the construction of homes.
''Characteristic Score Increase.'' Your Strength score increases by 2, and your Constitution score increases by 1.
''Alignment.'' Orcish cultures tend toward a live-and-let-live worldview. People raised among orcs are not as often lawful, tending instead toward a more relaxed attitude.
''Confident.'' You gain proficiency in the Intimidation skill.
''Powerful Attacks.'' When you score a critical hit with a melee weapon attack, you can roll one of the weapon’s damage dice one additional time and add it to the extra damage of the critical hit.
''Languages.'' You can speak, read, and write Common and Orcish. Orcish is a guttural language with hard consonants. It is one of several languages written in the Dwarvish script.
!! §104: [[Deity / Breed Cultural|§104: Deity / Breed Cultures]] (Packages)
!!§105: [[Cultural Background|§105: Cultural Backgrounds]] (Packages)
The Culture in which the character begins his or her life is a significant factor in all successive background determinations. Most of a character's preconceptions and prejudices, his or her attitudes and beliefs will be an outgrowth of Culture.
Roleplaying a character from one culture in the confines of another Culture may initially seem difficult. But if you look for simple guidelines, it may become easier. Just imagine what it would be like for you to be placed in a totally new environment where nothing was familiar, neither customs, Ian-guage nor day-to-day chores.
All but the most trusting people are naturally suspicious of anyone from another Culture -- an extension of mankind's fear of the unknown. This can be expressed as fearful hatred and persecution (that which we do not understand must be evil and therefore must be destroyed) or fearful awe and wonder (although primitives treating civilized folk like gods is cliche).
Another cliche is for characters from one Culture to look down on folk from another Culture (or the "You are different, therefore inferior" attitude). Though useful in playing some NPCs, this kind of prejudice is as counterproductive in gaming as it is in "real" life and player characters should try to avoid it.
If you have not previously chosen a Culture background for the character, select one from the tabs below. Tab [[§101 Ancestry / Racial Stock]] suggests Cultural limitations for some nonhuman races. After reading the Culture description, write the character's base survival skills. Select an Ancestral Culture from the second set of tab below. Then go to [[§106 Social Status]].
---
<<tabs "[tag[§105: Cultural Backgrounds]sort[order]]" default:"§Primitive Culture Package">>
!! §106: [[Social Status|§106 Social Status]] (Packages)
<<tabs "[tag[§106 Social Status]sort[order]]" default:"§Destitute">>
!! §107: [[The Family|§107: Family Social Status]]
Most characters begin life by being part of a family group. The family usually consists of a mother and father and possibly a few brothers and sisters. Quite often additional relatives who make up an extended family. This table establishes who was the head of the character's household. Table 107: Siblings will determine the number of brothers and sisters who survived birth and early childhood.
The family is the core of a character's early growth. A character who grows up surrounded by relatives often has a different perspective on life than a child raised alone by a single parent. Family can often be relied upon to aid the character in times of need.
A child's social status can be adversely affected by the situation with the family:
* Mother and Father (and any siblings) only. No extended family such as grandparents, aunts, uncles, or cousins;
* Extended family, including mother and father, grandparents, aunts, uncles, cousins;
* Grandparents only (either maternal or paternal);
* Single Grandparent (either maternal or paternal / either grandmother or grandfather);
* Aunt and Uncle (either maternal side or paternal side);
* Aunt or Uncle (either maternal side or paternal side / either aunt or uncle);
* Mother only;
* Father only;
* Guardian (//see// [[§108: Guardian(s)]] //below//);
* Left to fend for self (on the streets). Change [[§Social Status|§106 Social Status]] to Destitute, and add ranks to Survival Skills;
* Raised in an Orphanage (//see// [[§109: Orphanage]] //below//). Change [[§Social Status|§106 Social Status]] to Poor.
<<subsume "§108: Guardian(s)">>
<<subsume "§109: Orphanage">>
!!! [[§107.1: Reasons for Illegitimate Births]]
* Mother was a common prostitute and unmarried; character knows nothing about their father.
* Mother was raped and remained unmarried; character might dig into discovering the identity of their father.
* Mother was unmarried; character can discover the father's identity with some effort.
* Mother was a courtesan (prostitute to Nobility); the father's identity is an "open secret."
The character might wish to use his or her birth illegitimacy as a play motivation, possibly attempting to earn legitimacy or to prove to a parent that he or she is as good as any recognized child. A character might even wish to seek revenge against a parent to right a wrong, real or imagined.
!!! §108: [[Guardian(s)|§108: Guardian(s)]]
When a child's parents die or disappear, someone must become responisble for his upbringing. This person, persons, creature, creatures or family become the character's guardians. In many respects they take overthe functions of parents.
The loss of one's parents is a tragedy that affects the rest of a character's life. However, the role of the parent may be replaced (to some extent) by others who either willingly or unwillingly take up the responsibility of raising the character to adulthood. A guardian may be someone who merely provides for the character's physical needs. or one who becomesa loving replacementfor the lost parents.
A relative. Select the relative (rerolling results of mother or father) on Table 753: Relatives.
Character is raised in an orphanage.
Adopted by another family. Beginning wlh Table 106: The Family, create this family just as you would for the character's birth family. Assume same CuMod as the character.
Raised by priests or monks in a temple. Select the deity type on Table 864: Deities.
Raised by Nonhumans. Select the type of Nonhumanson Table 751: Nonhumans.
Character is sold into indenturered servitude (slavery) to pay off parent's debts. Determine what happens to the character on Table 539: Enslaved!
Character is raised on the street by outcasts (beggars and prostitutes). Add 1d4 Ranks to Urban Survival skills.
Character is raised by a thieves' guild. Go to Table 534: Underworld Experience, to determine criminal events that happen to thecharacter.
Character is passed from relative to relative until reaching the age of majority.
Character is raised by an adventurer. Determine the adventurer's profession on Table 757: Adventurers.
Character mysteriously disappears for 1d10 years, returning older, but cannot remember what happened during that time. GM only: refer to entry #754 on
Table 978: GM Specials.
Character is raised by beasts in the wild (such as wolves, tigers, bears, etc.)
Character is raised by monsters. Select the general type of monster on Table756: Monsters.
!!! §109: [[To the Orphanage / Foundling Wheel|§109: Orphanage]]
All the character's siblings are unknown to the orphaned character. His actual birth order, place of birth, and time of birth are all unknown to him. Select one or two of the following options.
<<tabs "[tag[+GM's Special]tag[§Family]]" >>
!! §110: [[Siblings|§110: Siblings (Social Status)]] and Birth Order (Social Status)
In subsistance societies, there is a great need for families to have children. In case of the human cultures, women are expected to have their second live birth by the age of 18, and produce either four or five children (for farms and villages) or six children (if living in the cities). Other cultures have similar desires for number of children, but biological requirements can make the spacing between children more dramatic.
Brothers and sisters can be a person's best friends, most ardent rivals or even worst enemies. They can be ordinary people who live ordinary lives or they can be exceptional individuals whose talents, powers and skills outshine the character's own (imagine always living in the shadow of a more successful brother or sister). You may wish to further expand upon a character's siblings by giving them names, ages (relative the to character's own), occupations and personalities.
| d20 | Siblings |h
| 1 or 2|None -- character is an only child |
| 3 to 9|1d3 siblings |
| 10 to 15|1d3 + 1 siblings |
| 16 or 17|1d4 + 2 siblings |
| 18 or 19|2d4 siblings |
| 20|Add 1d3 illegitimate siblings and roll again |
Choose where in the pack that the character arrives.
First born children are often more aggressive and recieve most of their parent's attention and resources. They may appear to be smarter because they are taught by parents and not by older siblings. Younger children may live in shadow of older siblings. This can cause competition, trying to live up to an older sibling's reputation, or noncompetition, a "why even try" attitude. A last born child is often born long after other siblings and can have characteristics like a first born.
First borns are usually the designated heir. They inherit family titles, careers, fortunes and lands. Younger children often only recieve a smaller portion of these things. The character's birth order affects the amount of money he starts adventuring with. First borns
generally receive more money from parents. Last borns get less (there is less to give out by that time).
| Birth Order | Starting Money | Character Points |h
| First | +20% (additional starting money) | ? |
| Second | +10 % (additional starting money) | ? |
| "Middle Child" | normal | 0 Character Points |
| Second to Last | -10% money | ? |
| Last | -20% money | ? |
!! §210: [[Birth Legitimacy|§211: Birth Legitimacy]]
Birth legitimacy is a social custom that allows society to track the descendency of a family through the official and recognized institution of marriage. In patriarchal societies (including most of Earth's societies), this is determined as the lineage of the father through a recognized spouse or spouses.
An illegitimate child is a child begotten of a woman not married to the father and who is not subsequently adopted by the family of the father. Such a child is referred to as a "bastard."
Culture affects legitimacy, since in some Cultures it is more common for "love-children" to occur and not to be accepted as part of the family. Primitive Cultures often do not consider legitimacy an issue and most children are considered legitimate.
The more "advanced" the character's culture is, the more likely any character is to be illegitimate. Only 5% of children born into Nomad cultures are declared illegitimate; 15% for Barbarian cultures; 25% for Civilized cultures; and, 40% of all children born into Decadent cultures would be considered illegitimate.
Legitimacy is necessary for inheritance of titles and sometimes fortunes. There is often a stigma attached to being a bastard, some people will think less of a character because his parents were not wed. Often times, others will believe bastards to be honorless scum -- those born without honor can never gain honor.
|Bastard Child | - 5|Character Points |
{{§107.1: Reasons for Illegitimate Births}}
!! §212: [[Time of Birth|§212 Time of Birth]]
Select one of the gods to be "born under". The cycle repeats 18 times each year. Select during which cycle the character was born.
!! §213: [[Place of Birth|§213: Place of Birth]]
Imagine the situation that brought the character's mother to the place of birth. Could some event or individual have caused the character to be born here? How does it fit with the his or her Culture or Social Status? Would it be normal to be born here, even under unusual circumstances?
| Place of Birth | Birth-Modifier |
|In the character's family home | -5|
|In a ship's infirmary or healer's guild hall | -7|
|In a carriage while traveling | 1|
|In a common barn | 1|
|In a foreign city (roll again for more information) | 2|
|In a cave | 5|
|In the middle of a field | 1|
|In a forest | 2|
|In a temple of a deity (determine deity on §864: Deities) | 15|
|On either a battlefield or among the camp followers | 8|
|In an alley | 5|
|In a brothel (this does not necessarily indicate that the character's mother was a prostitute) | 2|
|In the palace of a local ruler | 2|
|In the "palace" of a //greater race// (dragon, giant, ogre, demon, or angel) | 15|
|In a bar or tavern or alehouse | 2|
|In the sewers | 10|
|In a thieves den | 5|
|In the home of friendly non-humans | 2|
|GM ONLY -- Refer to §978: GM Specials | 25|
|In a prison cell | 9|
|In a wizard's laboratory | 20|
|Pick two and combine in some way | +5|
!! §214: [[Unusual Births|§214: Unusual Births]]
Legendary characters often began their lives under unusual, often mysterious circumstances. Some were born at crucial times during the day or year, others are the children of gods. These events often knowingly or unknowingly shaped their later lives. Not every character will have been born under unusual circumstances, in fact many will have rather normal or near normal births.
If you want your character to be more-or-less normal, do not use this Table. It has a tendency to make the character itself as unusual as the circumstances under which it is born. To avoid this section completely, go on to Table 114: Parents & NPCs.
The circumstances surrounding a charac- ter's birth are often seen as omens that foretell the child's life. An asterisk (') following the number on a table entry indicates that others who know of this occurance may treat the character differently than they might a "normal" child. The character might be seen as being special, gifted, or even "unclean," something to be hidden away. Often the worst omens are kept from the child, but he or she may then grow up surrounded by whispers, strange looks and possibly avoidance. These types of situa- tions could make the character curious about the future, or even fearful of it. He or she will probably believe that there is something special (for good or ill) about his or her life.
Otherwise, select up to four (4) from the list below. Additional secret Unusual Occurances can be select by the GM if desired.
* A person of note in the vicinity of the character's home died when he or she was born. Character could be blamed for the death, or he or she might be presumed to be the reincarnation of the deceased.
* Wolves and dogs set up a howling at the moment of the character's birth.
* Mother died in childbirth.
* All glassware in the house suddenly shattered.
* All milk in the area soured at character's birth.
* Father believes the character is not his child, but the offspring of another man (whether true or not).
* Character has identical twin (possibly being separated at birth). The twin's personality could be drastically different than that of the character, possibly even opposite.
* Water froze or boiled by itself.
* Seasonally unnatural weather occured.
* Unnaturally potent storms raged.
* Character born at exactly Midnight. Choose up to three (3) items from the following:
** Gain bonus to magical ability (+1 to +6) for the hour immediately following Midnight
** Night Vision
** Extremely pale skin -- skin is sensitive to bright sunlight (takes damage per hour of exposure to bright daylight)
** Suffer penalty to magical ability (-1 to -6) for the hour immediately following Noon.
** +1 to any stealth related skills
** +2 to magical ability attribute after the sun sets (or when in darkness or shadow)
** -2 to magical ability attribute during dayling
* Character was born at exactly Noon. Choose up to three (3) items from the following:
** +1 to +6 to magical ability attribute for the hour immediately following Noon.
** No (zero) night vision (blinded in darkness)
** Extremely tanned skin (skin is treated as 1 point of armor)
** -1 to -6 to magical ability attribute for the hour immediately following Midnight
** -1 to any stealth related skills
** +2 to magical ability attribute during daylight
** -2 to magical ability after the sun sets (or when in darkness or shadow)
* A seer declares that the character will be affected by an ancient family curse (that the character's family obviously thought was long gone). Go to [[§868: Curses]] to determine the affliction upon the character. Create a reason for the curse to have been laid upon the family in the first place.
* A goose laid a golden egg when the character was born. The character might still have the egg, and the egg might be magical.
* The sky darkened when the character was born (like an eclipse). If born at night, the moon and stars went dark briefly.
* The house became infested with poisonous snakes the next day (someone may have been killed).
* All gold in the house turned into lead
* All metal in the house turned into precious metals
* Infant character was left to die on hillside by natural parents. Character is subsequently raised by foster parents who discovered the child.
* Character is born immediately after a Tragedy (go to [[§528 Tragedies]] to determine the nature of the occurance). Superstitious folk often associate one event with another. Others who know of this occurance might easily believe the character's birth was related to the tragedy.
* Character was born with an unusual birthmark (select mark from [[§866: Birthmarks]]
* Character was born with a curse (go to [[§868 Curses]]).
* Born with a blessing (select it on [[§869: Blessings]]).
* Character has a fraternal twin; can be either sex.
* Character is one of a set of identical triplets.
* An old hag (witch) prophesies character's death (go to [[§545: Death Situations]]).
* Character born with unusual physical affliction (go to [[§874: Physical Afflictions]]).
* Character born with up to three (3) psychic powers (go to [[§873: Psychic Abilities]]).
* A Mysterious Stranger bestows a gift on the character at birth (go to [[§863: Gifts and Legacies]] to determine the nature of the gift).
* Mother was reputed to be a virgin. No reasonable explanation is ever given for this. Others who hear of this birth may view the character as a mystic figure, a healer, or a champion against evil. This attention may plague the character all his or her life.
!! §[[Significant Events of Adolescence|§215 Significant Events of Adolescence]]
!! §[[Significant Events of Adulthood|§215 Significant Events of Adulthood]]
!! §215: [[Born and Raised|§215: Born and Raised]] (Breeds)
While not listing the specific location where one was born, these packages define initial environment where the character was raised. These packages cover "early childhood" the approximate length of which is determined by the selected [[§101 Ancestry / Racial Stock]].
<<tabs "[tag[§Birth Package]]">>
!! §[[Special Childhood Events|§216 Special Childhood Events]]
!! §[[Special Events of Adolescence|§216 Special Events of Adolescence]]
!! §216: [[Parents and NPCs|§216: Parents and NPCs]]
What a character becomes is greatly influenced by the beliefs, attitudes and lifestyle of those who rear him as a child or adolescent. In the best of situations, these are the character's parents; but can also be guardians or masters of an orphanage. These tables touch on important aspects of the character's parents that may be important parts of his later development.
Regardless of culture or social status, all persons in a society are assumed to have an occupation, something that they do that provides food and shelter for themselves and their dependents. Rather than say that the father or mother of a particular family is the prinicple money-earner, the term "head of househoid" is used. The head of the household is the parent upon whom the society traditionally places the burden of support. In many societies this is the father or male parent.
!!! §216.1: Occupations
# Head of household (NPC) has one occupation. Go to the Occupation Tables (Tables 420- 423) and make a die roll on the table appropriate for the parent's/NPC's Culture and Social Status.
# Head of household (NPC) has one primary occupation which is performed full-time and a secondary occupation which is performed on a part-time basis. For the primary occupation, go to the Occupation Tables (Tables 420- 423) and make a die roll on the table appropriate for the parent's NPC's Culture and Social Status. For the secondary occupation go to the occupation table for the next lower Social Status within the Culture.
# Head of household (NPC) does not work. Other parent works. Roll a d6. On a roll of 1-3, go to the Occupation Tables (Tables 420- 423) and make a die roll on the table appropriatefor the parent's1NPC's Culture and Social Status. On a roll of 4-5, use the table for the next lower Social Status. On a roll of 6 use the table for the next higher Social Status. For an NPC or single parent household, treat as a result of 13-14.
# Both parents within the household have an occupation. Go to the Occupation Tables (Tables 420- 423) and make a die roll on the table appropriatefor the parent's culture and social status for each parent. For an NPC, treat as a result of 13-14.
# Head of household (NPC) is or was an adventurer. Go to Table 757: Adventurers, to determine the type of skills possessedby the parent or NPC.
# Head of household (NPC) does not have a readily apparent occupation of any kind. When money is needed, it just seems to be available (GM ONLY: See entry 114 on Table978: GMSpecials ).
!!! §216.2: Noteworthy Items
# NPC is Noted for his personality. Roll a d6 on the subtable below to select the NPC's noted trait.
## Noted for a Lightside personality trait. Go to Table [[647: Lghtside Personality Traits]] to determine this outstanding aspect of the NPC's character.
## Noted for a Darkside personality trait. Go to Table [[648: Darkside Personality Traits]] to determine this outstandingaspect of the NPC's character.
## Noted for an exotic personality trait. Go to Table [[649: Exotic Personality Features]] to determine this strange aspect of the NPC's character.
# NPC had l d 3 unusual birth circumstances. Select them from [[§214: Unusual Births]].
# Devotes time to a hobby. Go to Table [[427: Hobbies]] to determine the hobby and the devotion to it.
# NPC possesses an unusual item. Select the item on [[863: Gifts and Legacies]].
# NPC Is creative, inventive, possibly even artistic.
# NPC was affected by an Exotic Event which is spoken of often. Go to [[§544: Exotic Events]] to determine what occurred.
# NPC tells tales of a legendary lost treasure that gave vague hints regarding its location.
# NPC has an obsession regarding something that had happened (or might happen), something that dominates the rest of his or her life. Roll a d6 on the following table to determine the focus of the obsession:
## A relationship with someone. Go to [[§750: Others]] to determine the person.
## A significant event from the past. On [[§215: Significant Events of Childhood & Adolescence]], determinewhat happened.
## The working out of a personality trait. Roll a d6. On a result of 1-3, go to [[§648: Darkside Personality Traits]] to determine this trait. On a result of 4-6, go to [[§647: Lightside Personality Traits]] to determinethis trait.
## The accomplishment of a motivation. Go to [[Motivations]] to determine this goal.
## Accomplishing a future event. On [[§217: Significant Events of Adulthood]], determine what the NPC seeks to have occur.
## Preventing a future event. On [[§217: Significant Events of Adulthood]], determine what the NPC seeks to stop.
# NPC has a secret identity. Select the Social Status (Table 103) and occupation (as appropriate to Culture) for the other identity.
# NPC has a patron. Determine the details about this service relationship on [[§543: In the Service of...]]
# NPC is a military veteran. Select the branch of service on [[§535A: Military Experience]] - Typeof Service.
# NPC is very religious and contstantly seeks to evangelize others to join his religion, faith, or cult. Select the deity worshipped from [[§864: Deities]]
# NPC is noted for or hesitant to speak of something that occured in his past. Roll a d4 on the subtable below to determine the situation.
## NPC is famous for the occurance of a Significant Event, possibly even a hero. Go to [[§217: Significant Events of Adulthood]] to determine what happened.
## NPC is persecuted or villainized for the occurance of a Significant Event. Go to [[§217: Significant Events of Adulthood]] to determinewhat happened.
## NPC is important in home village/town/city, not just another face in the crowd.
## NPC won't speak of something that occurred in the past. DM ONLY: Go to [[§217: Significant Events ofAdulthood]] to determinewhat happened.
# NPC's relationship with his family involves one of the following. Roll a d4 on the subtable below.
## NPC is particularly loving towards family.
## NPC does not love family or children.
## Is unfaithful to spouse.
## NPC has married more than once, current spouse is number (roll 1d4).
# NPC was originally from a different Culture. Go to [[§103 Cultural: Ancestry / Racial Stock]] to determine original home Culture.
# NPC originally of a different Social Status. Go to [[§106 Social Status]] to select the former social standing.
# NPC is form a foreign land.
# NPC made has made friends and/or enemies. Roll a d6 once on the subtable below.
## NPC has a Rival. Go to [[§762: Rivals]] to select the antagonist. If the NPC is the character's parent or guardian, roll a d6 on a result of 5-6, the Rival also includes and seeks out the character.
## NPC had many enemies. Roll ld10+2 to determine the number. Go to [[§762: Rivals]] to determine these antagonists. If the NPC is the character's parent or guardian, roll a d6 on a result of 5-6, the Rival also includesand seeks out the character.
## NPC has many close friends (Roll 1D10+2 for their number). These folks usually dwell in the NPC's home village/town/city. If the NPC is the character's parent or guardian, they are known as "uncle" or "auntie." Because they are like family, they may be relied on for aid in times of trouble. Determine backgroundsfor these folks only as needed.
## NPC has ld6+1 jilted ex-lovers.
## NPC had a companion. Select the companion on [[§761: Companions]]. If the character searches long enough, the old companion can be found.
# NPC was horribly wounded once. Select the type of injury on [[§870: Serious Wounds]].
# NPC is noted for his extremely unusual personality. Select ld3 exotic personality traits from [[§649: Exotic Personality Features]] and link them together in some fashion. Collectively, they should make the NPC character even stranger, possibly a real wierdo.
!! §217: [[Significant Childhood Events|§217: Significant Childhood Events]]
In a sense, this is where the action begins. These are the events that occur during the character's "growing" years, the memories from childhood, the activities of adolescence.
The character's personal history/bacstory is determined in blocks of time (called //weft//s).
* The first time weft, which covers ten (10) years, can contain one (1), two (2), or three (3) events. Select them from the list below. Place the events in an order which makes sense and assign ages as to when the events occur.
* Each weft after the first contains one (1) Life Path choice and one (1) event. The character needs enough weft to cover at least five (5) more years (to age 15). Assign a year to the selected event.
* Then move on to Apprenticeship.
!!! Events (Knots)
# All public assistance is terminated because the city-state is at war. This causes bloody riots in the poorer areas of the city and surrounding towns and villages. All orphanages are closed and the children are dumped onto the streets. The character's family is very much involved in these uprisings against the ruling class. (Primitive Cultures ignore this option.) The character can gain one (1) personality trait from any of the lists (including the Exotic list).
# While foraging in a trash heap, the character finds an unusual object. Select from [[§863: Gifts and Legacies]].
# Character's friends involve him or her in illegal activities. Go to [[§534 Underworld Experience]] and follow directions there. Add a Darkside trait from [[§648: Darkside Traits]].
# A Tragedy occurs. Determine what happens at [[§528 Tragedies]]. Add any personality trait.
# Something Wonderful happens. Determine what happens at [[§529 Something Wonderful...]]. Select a Lightside trait from [[§647: Lightside Traits]].
# Learns an unusual skill. Select skill from [[§876: Unusual Skills]]. Select a Neutral Trait.
# Learn head of household's occupation to Rank 2 competency. If no head, use patron, or random selection from appropriate Culture's occupations. Add a Neutral trait.
# Character runs away from home... (select one or more options from below, then add any personality trait)
## ...and never returns.
## ...but returns after a few days (up to about a week).
## ...but returns after months (up to about a year).
## ...but returns after years (up to about 5 years).
## ...to a distant city-state.
## ...and joins a circus.
## ...and falls into the hands of criminals. Select additional events from [[§534: Underworld Experience]] and add an extra Darkside trait from [[§648: Darkside Traits]].
## ...and lives with nonhumans. Select type from [[§751 Nonhumans]].
## ...and wanders the land, one step ahead of the authorities, living by wits. Survival skills improve by one Rank in environment of choice.
# Character has a religious experience. Determine details on [[§541: Religious Experience]]. Add any type of personality trait.
!!! ~Groom (5 Character Points)
| Cost |Ability |<|<|h
| 1|[[~Animal Handler]] (Equines) | Familiarity | 7 or less |
| 1|[[~Area Knowledge]]: Local Roads | Familiarity | 7 or less |
| 1|[[~Professional Skill]]: Animal Husbandry | Familiarity | 7 or less |
| 1|[[~Professional Skill]]: Mending | Familiarity | 7 or less |
| 1|[[~Riding]] | Familiarity | 7 or less |
!! §[[Alignment and Attitude|§218 Alignment and Attitude]]
The inky black waters of the Sea of Fate and the sharp golden teeth of the Pyramids of Destiny define the lives of all who live within the Shattered Realms.
!!! Path to Destiny (The Virtue and The Temptation)
A legends weaknesses will be their undoing and their virtues will be their salvation. At this time, the Path to Destiny is a meta-gaming construct without a direct connection the game's mechanics. My current thought is that somehow choosing to play either the Virtue or the Temptation allows for an [[Interdiction]] (a disruption to the currents of Fate) to be played; or a request for how an Interdiction should be roleplayed?
* Chaste / Lustful
* Energetic / Lazy
* Forgiving / Vengeful
* Generous / Selfish
* Honest / Deceitful
* Just / Arbitrary
* Merciful / Cruel
* Modest / Proud
* Pious / Worldly
* Prudent / Reckless
* Temperate / Indulgent
* Trusting / Suspicious
* Valorous / Cowardly
* Serenity / Anger
* Equanimity / Envy
* Detachment / Avarice
* Sobriety / Gluttony
!!! Path of Fate (The Fixation versus The Mask)
Meta-gaming concept only. The Mask is what the character tries to show the world even when trapped within their mentally trapped within their Fixation. Some seek balance between the demands of the Mask and their secret fears and failings. Others seek to become the Mask by banishing their Fixations. Still others lose their grip upon their Mask leaving only their Fixation to present to the world. Their is no right answer. And the answer can change as the person meanders along the Path toward their eventual Destiny.
* Resentment vs Perfection
* Flattery vs Strength of Will
* Vanity vs Hopefulness
* Melancoholy vs Creativity
* Stinginess vs Knowledge
* Cowardice vs Faith
* Dream vs Fulfillment
* Vengence vs Truth
* Indolence vs Love
!! §[[Apprenticeships|§319 Apprenticeships]]
!! §[[Primitive Occupations|§320 Primitive Occupations]]
!! §[[Nomad Occupations|§321 Nomad Occupations]]
!! §[[Barbarian Occupations|§322 Barbarian Occupations]]
!! §[[Civilized and Decadent Occupations|§323 Civilized and Decadent Occupations]]
!! §[[Crafts|§324 Crafts]]
!! §[[Merchants|§325 Merchants]]
!! §[[Occupational Performance|§326 Occupational Performance]]
!! §[[Hobbies|§327 Hobbies]]
!! §[[Tragedies|§528 Tragedies]]
!! §[[Something Wonderful...|§529 Something Wonderful...]]
!! §[[Underworld Experience|§534 Underworld Experience]]
!! §[[Military Experience|§535 Military Experience]]
!! §[[Noncombat Duty|§536 Noncombat Duty]]
!! §[[Special Services|§537 Special Services]]
!! §[[Military Rank|§538 Military Rank]]
!! §[[Abjuration|§Abjuration (protect)]] (protection)
This school is focused on protective spells, as well as spells which cancel or interfere with other spells, magical effects or supernatural abilities. Wizards who specialize in this school are known as Abjurers.
!! §[[Amino|§Amino (mind)]] (mind)
intension, brain, intellect, faculties, understanding, soul, heart, affections, purpose, feeling, sense, thought
!! §[[Ancestral Events|§Ancestral Event Packages]]
!! §[[Animal|§Animal Sphere]] Sphere
Amorphous Form, Animal Companion, Animal Friendship, Animal Growth, Animal Sight, Animal Summoning (i, ii, iii), Animal Transfer, Animal Vision, Antilife Shell, etc.
https://forgottenrealms.fandom.com/wiki/Category:Animal_sphere_spells_(2e)
!! §[[Aqua|§Aqua (water)]] (water)
water, wave, ripple, stream, surf
This Magic System is essentially identical to Wizardry save that it uses the [[Gestalt Casting|§Gestalt Casting]] Model rather than the Prepared Casting Method.
Royal duke, possibly next in line for the throne, always a sibling of a [[§King (Queen)]].
!! §[[Astral|§Astral Sphere]] Sphere
...
!!! Spire Humen Bloodline Ability (Dark)
These humen feel the God of Paladin's call to exact the truth.
* +1 Intimidation
* +1 Torture
!! [[§Barbarian Cultures|§Barbarian Culture Package]]
Barbarians are generally thought of as crude and semiliterate. In fact, they are not. Barbarian cultures are dynamic, often highly educated societies with a keen sense of propriety and law and order. In a sense, they are pre-Civilized -- organized, but not yet developed (or degenerated) to the point where powerful central governments are needed. They normally have a solid economy with defined division of labor (occupational specialization). Organized religion is often a central pillar of their society (and may dominate it). Barbarians are generally led by strong charismatic warriors, but much of the people are governed by extended family groupings such as clans. Like the nomads, most adult males are warriors in addition to any other profession that they follow (although, like the Vikings, they may put this skill to work pillaging as opposed to warring). They may live in small cities, which are often not much more than semipermanent camps. Examples of historical barbarian cultures include: feudal Europe (during the period of Charlemagne), Gauls, Vikings, pre-19th century Iroquois and Cherokee Indian tribes.
!!! §Nobility
<<tabs "[tag[§Noble Title]tag[§Barbarian Culture]sort[order]]">>
!!! ~Skills
|Streetwise | either + 1 or + 5|points |
|Survival (//pick one//) | either +1 or + 5|points |
|Weapon Familiarity (//choose one melee weapon//) | + 3|points |
|Weapon Familiarity (//choose one missile weapon//) | + 3|points |
!!! Literacy
A character from a barbarian culture has a chance to be literate in his or her native language.
Like the nomads, barbarians live life with gusto. They live, love, fight, eat, drink like there may be no tomorrow. Barbarians adapt well to civilized cultures. A barbarian character might easily by subject to great emotions, such as deep depression, berserk fighting moods, and exuberant joy. They are often frank and open about their feelings.
Costs: ''+12 points''
!! [[§Baron (Baroness)]]
Rules a barony, the smallest sized fiefdom.
... 2 bushels seed = 1 acre = 8 bushels cereal grain ... (2 years)
... 2 bushels beans/peas = 1 acre = 8 bushels food ... (third year)
---
... plow 1 acre/day ...
---
27.5% held back for next year's seed
22.5% taxes
50% for the farmer
---
... approximately 1/6 fee for milling grain (1/8 to 1/4) ...
... 30% loss during milling / 33# of flour per bushel grain ...
---
0.5# bread = 8 servings / 5.0cc for a loaf of bread; baker will pay 5.0cc for 1# flour.
Below a [[§Baron (Baroness)]], given to commoners.
!!! [[§Honor]] and [[§War]]
Baugl, Enforcer of Vengeance, [[protects|§War]] those who are [[loyal|§Honor]] and [[slays|§War]] those who [[betray|§Honor]] the trust.
Ner elements are [[§Aqua (water)]], [[§Glacies (ice)]], [[§Ignis (fire)]], [[§Signum (signal)]], and [[§Fulgur (lightning)]].
---
<<subsume "§Canyon Humen">>
!! §[[Bestia|§Bestia (animal)]] (animal)
animal, mammal, beast, brute, cattle, flock, sheep, herd, living, animated, bestial
!!! §[[Born Noble|§Born Noble]]
!!!! Skills
Characters who are born in a city gain five (5) points in the primary occupational skill set of their family.
| +1|point |Familiarity | 7 or less |
| +2|points |Advanced Familiarity | 9 or less |
| +3|points |Charactistic Roll | 7 + (CHAR / 3) or less |
Keep in mind when raising the Skill Roll above thirteen or less (13-), the skill increases cost double.
|Skill Set |Skill Options |
|Commander |Oratory, Tactics, Weapon Familiarities, Riding, Transport Familiarities |
|Dilettante |Gambling (//select one//), High Society, Knowledge Skills |
|Politician |Bureaucratics, Oratory, Persuasion |
!!!! Traits
Characters can pick up one (1) point in a following trait: Mark of Privilege, Your Lordship, Your Eminence, Your Grace. Also see Noble Titles.
!!!! Resources
Characters gain fifteen (15) points in resources.
!!!! Characteristic Increases
None.
!!!! Restrictions
None.
!!!! Life Path Leads
Any.
!!! §[[Born Peasant|§Born Peasant]]
!!!! Skills
Characters who are born peasants gain three (3) points in the primary occupational skill of their family, which earns them a Skill Roll of (7 + CHAR/3). Keep in mind when raising the Skill Roll above thirteen or less (13-), the skill increases cost double.
|Skill | Skill Roll | Cost |<|h
|Family's Primary Occupational Skill | (7 + CHAR/3)| +3|points |
!!!! Traits
Characters can pick up two (2) points in any traits.
!!!! Resources
Characters gain three (3) points in resources.
!!!! Characteristic Increases
None.
!!!! Restrictions
None.
!!!! Life Path Leads
Servitude, Soldier, Sea, Religious
!!! §[[Born Slave|§Born Slave]]
!!!! Skills
Characters who are born slaves gain two (2) points in the primary occupational skill that their master forced upon them, which earns them a Skill Roll of 9 or less (9-). They also gain a familiarity in Acting (Faking Emotions) -- Skill Roll 7 or less.
|Skill | Skill Roll | Cost |<|h
|Required Occupational Skill, Advanced Familiarity | 9 or less | +2|points |
|Acting (Faking Emotions), Familiarity | 7 or less | +1|point |
!!!! Traits
''Broken'': Resistance to Interrogation. +3 to EGO Roll (+3 Skill Levels with EGO Roll, Only to Resist Interrogation/Questioning (-1)). ''Costs +3 points''.
!!!! Resources
Characters gain five (5) points in resources. ''Costs +1 point''.
!!!! Characteristic Increases
None.
!!!! Restrictions
None.
!!!! Life Path Leads
Soldier, Outcast
!! §[[Caeli|§Caeli (air)]] (air)
climate, atmosphere, aether, mist, weather, breeze, vaporization, wind, blow, heaven, sky, air, soul, spirit, blast, vapor, steam, fume, life, spiracle, breathing
!! §[[Canyon Humen|§Canyon Humen]]
Path of Courage...
Path of Fear ...
Path of the Skeptic ...
Path of Loyalty ...
Those Canyon Humen who follow the light path laid out by §[[Baugl|§Baugl]] (loyalty to the protectors and protection of the loyal) manifest either (''protector'': +1 w/ Block) OR (''loyalist'': +1 EGO and +1 PRE)--cost ''+3 points''.
Those following the dark path (harm the betrayers and betray the harmers) gain either (''backstabber'': +1 DC w/ attack OR (''vengence'': +???).
, they are affected by §[[Honor|§Honor]] and §[[War|§War]]--loyalty to the protectors, protectors of the loyal, harm to the betrayers. This gives
---
!!! Culture
Canyon Humen live against canyon walls or even in the rock of canyon walls with crops and industry separated vertically. This arrangement gave them strong protectons from the surrounding predators. Due to the dangers of their preferred living arrangements, being able to trust others became the cornerstone of their society.
<<<
shared common ground; shared philosophy; specific goals; how to set aside differences; personal sacrifices of time, effort, resources; work for the good of the group; survival, propagation, growth beyond the lifetime of current members
<<<
<<subsume "Canyon Humen Homelife">>
<<subsume "Canyon Humen Community">>
<<subsume "Canyon Humen Religion">>
<<subsume "Canyon Humen Government">>
{{||template culture}}
''//Skills, Talents, Perks//.''
''Language: Canyon Speak.'' Costs ''0 points'' as it is your native language.
''Language: Common Trade.'' While there are a variety of languages across the world, there is a Common Trade language which is mostly a pigin language, combining the old elven language and a sign language and the old giaton language. Costs ''1 to 3 points'' depending upon "fluency" with which you speak Common Trade.
''Resistant to Aether Toxicity.'' Often the towns and villages of the §Canyon Humen are beneath the ancient [[#Elven Empire]]'s [[#aether tower]]s, the people of those communities developed a basic ability to withstand [[~aether poison]]ing that would happen due to leaks from the old equipment. Costs ''+3 points''.
''//Moral Aspects//.'' Those raised in a Canyon Humen culture tend to focus on loyalty and protecting friends and family and tribe above all others. However, sometimes there is a dark side to their attitudes--if they feel like they have been betrayed, they will seek to get more than even (eye-for-an-eye would be just the beginning).
''//Languages//.''
''//Disadvantages//.''
!! [[§Channeling Spells]]
<<tabs "[tag[~Channeling Spells]sort[order]]">>
---
//Quick Links:// ~[[Cantrips|~Channeling Cantrips]] | ~[[1st|~1st Level Channeling Spells]]
!! §[[Chaos|§Chaos Sphere]] Sphere
...
!! §[[Charm|§Charm Sphere]] Sphere
...
Tribal leader, usually leads a single tribe.
!!! §[[City Born|§City Born]]
!!!! Skills
Characters who are born in a city gain three (3) points in the primary occupational skill of their family, which earns them a Skill Roll of (7 + CHAR/3), and an Area Knowledge of their city at the familiarity level (Skill Roll: 7 or less).
Keep in mind when raising the Skill Roll above thirteen or less (13-), the skill increases cost double.
|Skill | Skill Roll | Cost |<|h
|Family's Primary Occupational Skill | (7 + CHAR/3) | +3|points |
|Area Knowledge: Home City | 7 or less | +1|point |
!!!! Traits
Characters can pick up one (1) point in any trait.
!!!! Resources
Characters gain ten (10) points in resources.
!!!! Characteristic Increases
None.
!!!! Restrictions
None.
!!!! Life Path Leads
Servitude, Court, Noble, Outcast
!! [[§Civilized Cultures|§Civilized Culture Package]]
Civilized cultures are most often noted for central governments (which seem to exist primarily for the purpose of collecting taxes) and large cities stocked with the dubious benefits of civilization -- table manners, royal dynasties, wizards, professional thieves, naval warfare, civil engineering, and (of course) tax accontants. The hereditary warrior classes have become landed gentlefolk as knights, and samurai are replaced by paid soldiery. Historical examples include:
Persian and early Roman Empires, imperial China, Selenium kingdom, dynastic Egypt, feudal Japan, the Incan empire.
!!! §Nobility
{{§Nobility}}
Civilized Nobles recieved titles through the luck of birth. They pay others to perform their duties and often spend their at daliance and liesure.
<<tabs "[tag[§Noble Title]tag[§Civilized Culture]sort[order]]" >>
!!! ~Skills
|Area Knowledge (//home city//) | + 4|points |
|//select either// Streetwise or Survival (//pick one//) | + 2|points |
A civilized character can also take up a hobby which may or may not be useful outside of a city.
!!! Literacy
A character from a civilized culture has an average chance to be literate in his or her native language.
Civilized peoples classically take a dim view of lesser cultures, often viewing them as less than human -- especially true for those of higher social stati. "Helpful" civilized folk may feel a need to bring Civilization to lower cultural levels. A civilized character usually feels most at home in a city and will be aware of what a city has to offer.
Costs: ''+6 points''
!! §[[Cliff Humen|§Cliff Humen]]
<<<
shared common ground; shared philosophy; specific goals; how they set aside differences; what personal sacrifices of time and effort and resources are expected or offered to the group; how do they work for the good of the group; how do they survive, propagate, and grow beyond the lifetime of the current members
<<<
!!! <<subsume "§Cliff Humen Homelife">>
!!! <<subsume "§Cliff Humen Community">>
!!! <<subsume "§Cliff Humen Religion">>
!!! <<subsume "§Cliff Humen Government">>
!!! <<subsume "§Cliff Humen Cultural Package, Options, Professions">>
!! §[[Combat|§Combat Sphere]] Sphere
...
!!! §[[Comfortable|§Comfortable Package]]
This is the middle class of any culture, regardless of the average wealth of its citizens. These folk usually live in clean, nicely appointed homes or apartments, often in better neighborhoods. They eat regularly and occasionally very well. Children are often educated by tutors. Luxuries include warm houses, good food, the ability to hire menial services, nice clothing, and family heirloom books. They may own conservative forms of transport -- a buggy or horse. Includes "impoverished" nobility, university professors, scribes, some craftsmen, highly-skilled laborers, lower government officials, lower-ranking military officers, lesser priests and magicians, shopkeepers, and prominent warriors, and lesser chieftains.
Folk from this social status are considered to represent the mainstream of their culture's beliefs and attitudes.
!!!! Birth Package Options
<<tabs "[tag[§Birth Package]tag[§Comfortable]]" "$:/state/tab1">>
!!!! Skills
None.
!!!! Experiences
None.
!!!! Money
100% of normal starting money. Character has no problem borrowing money at reasonable rates. Characters within this economic strata can earn between eight (8sc) and sixteen (16sc) silver coins per day.
May own an heirloom weapon.
Cost: 0 points; about $100,000 modern USD
!! §[[Conjuration|§Conjuration (summon)]] / Summoning
This school is focused on instantaneous transportation, conjuring manifestations of creatures, energy or objects, and object creation. Healing spells are also part of the conjuration school, however of the three core arcane classes, these spells are generally restricted to bards. Wizards who specialize in this school are known as Conjurers.
!! §[[§Corporis|§Corporis (body)]] (body)
body, form, matter, corpse, substance
Rules over [[§Barons (Baronesses)|§Baron (Baroness)]].
!! §[[Creation|§Creation Sphere]] Sphere
...
!! §[[Creo|§Creo]] (create)
!!! ~Creo Spells
... table of Creo spells is transcluded here ...
Sanctify cheats and degradate fairness
Gambler?
!! [[Decadent Cultures|§Decadent Culture Package]]
These are civilized cultures past the peak of their prime. Decay has begun to set in at all levels and the wealthy have become hedonistic and jaded. The government seems to have become self-perpetuating and careless of the people's needs. Although government support of the poor is predominant, previously common civil liberties and services begin to disappear. Inflation is often rampant or the black market includes most commonly needed goods and services. Historical examples include: the latter centuries of the Roman empire, and the waning years of the various Chinese Dynasties.
!!! §Nobility
{{§Nobility}}
Civilized Nobles recieved titles through the luck of birth. They pay others to perform their duties and often spend their at daliance and liesure.
<<tabs "[tag[§Noble Title]tag[§Civilized Culture]sort[order]]" >>
!!! §Skills
Characters from decandent civilizations have an increased resistance to occurrences that might cause insanity (such as exposure to horror, violence, or drugs). Any chance of going insane is reduced. Some might say this is because such characters are already insane.
|Streetwise | + 3|points |
|Survival (//pick one//)< | +1|point |
|Mental Defense (10 Mental Defense) | + 10|points |
!!! Literacy
A character from a decadently civilized culture has a slight chance to be literate in his or her native language, however, they have an equal chance to be literate in the language of another culture or country.
It is not uncommon for citizens of these cultures (even the lowliest slaves and beggars) to believe that their culture is not only at it dynamic prime, but that it and they are vastly superior to everything else. A character form this culture could easily have a haughty attitude, looking down his or her nose at everything. Simple pleasures might easily bore a person from this culture. On the other hand, those simple pleasures could be so foreign to the character that he or she is endlessly intrigued.
Costs: ''+14 points''
!! §[[Demon Blooded|§Demon Blooded Ancestry]] Ancestry
...includes Tieflings ...
!!! §[[Destitute|§Destitute]]
These people are considered the dregs of society. They own no property, and may have no fixed home. Some perform no real work and are often unemployed. Others are in bond to a master and live at his whim. Still more, especially primitives, barely live off what meager bounty the land provides. The chief industry of this social class is foraging and scavenging. This is survival level -- no luxuries. Money is rare for the destitute and all income goes toward merely staying alive. Includes nonguild beggars and other street people, serfs, sharecroppers, rural bandits, some slaves and unfortunate primitives.
Characters from this social status may believe that they have no real control over their own lives and exist merely at the whim of others, whether it be gods, the wealthy, or just anyone who isn't destitute. This attitude might be expressed as hopelessness or becoming hatred-driven revenge against either society or those believed to be the cause of misfortune. A destitute person could easily be a street punk or a goodly person with a heart of gold and a helpless sigh.
!!!! Birth Package Options
<<tabs "[tag[§Birth Package]tag[§Destitute]sort[order]]" "$:/state/tab1">>
!!!! Skills
Non-slave children gain + 3 OCV w/ hand-to-hand and dagger.
In adolescence, this increases to + 4.
!!!! Experiences
Children of civilized or decadent societies can take an [[Underworld Experience]].
!!!! Money
25% of normal starting money. No sane person outside the character's own social level will loan him money.
Cost: -10 points; about $10,000/yr is modern USD.
!! §[[Divination|§Divination]]
This school is focused on acquiring and revealing information. Wizards who specialize in this school are known as Diviners.
!! §[[Divination|§Divination Sphere]] Sphere
...
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
!! §[[Dominine|§Dominine]]
Domini act as proxies to higher powers, referred to as Patrons, and are empowered by their Patrons to use granted powers (which are called Spells throughout for consistency, though they need not be called this in actual gameplay). Domini often make use of props such as prayers, hymns, catechisms and the like (incantations), motions with ritual significance (gestures), and Holy Symbols (foci) to assist them in the casting of their Magic.
Domini are entrusted with an ever-greater tap on the Power of their Patron as they advance in wisdom. As they gain experience, their ability to focus the powerful Magical forces granted them by their Patron increases, as does the mental endurance required to focus their will. Essentially, as a Domini progress, their ability to cast larger and more powerful Spells increases assuming the player of such a character spends Experience Points appropriately.
!!! Number of Spells Known
Dominine don't "learn" Spells per se. Dominine have a huge array of Spells provided for their usage by the Patron which they serve. A Dominine essentially "knows" all the general Spells of a given Spell Level up to the capacity of their Magic VPP, and can prepare their daily Spells freely from this list so long as they are in good accord with their religion.
This can make Dominine extremely powerful, as each time they expand their Magic VPP they gain a plethora of new Spells. They don't need to use "Magic Skill Rolls" to learn their Magic, and in truth don't even need to understand it. They are simply conduits for their Patron's power.
!!! Domains
In addition to the normal Spellcasting Domini inherit from the base Magic System, they also are granted special access to topical groups of Spells determined by the interests of the Patron they serve. These topical groups are called "Domains".
All Domini must have at least one Domain, and this Domain must be chosen from a list offered by the Domini's chosen Patron.
!!! ~Domini Magic VPP Control Cost
<<<
* Only Divine Magic (-1/2)
* Set List of Spells Available (-0; can't be removed)
* Uses Domain Model (-0; can't be removed)
* May Change Spells as a Half Phase Action; No Skill Roll Required; Only to bring in Healing Spells; Expends Charge of Spell swapped out (+1/2)
* Only Change Spells With Meditation (Requires unmodified Faith Roll and 1 hour of Meditation; -1/2)
* Only Usable While In Good Standing With Faith (can't be removed; -1/4)
* All Spells Must Have 1 Charge (-1/4)
* Variable Limitation (-1/2; each Spell must take -1 of Limitations from Focus (Holy Symbol), Extra Time, Concentration, Incantation, Gesture, Limited Range, or RSR: Magic Skill vs. Spell Resistance in any combination at a MINIMUM)
|Total Advantage: +1/2; Total Limitation: -2 |Control Cost per Spell Level (15 Pool) = 3.3 Real Points |Total Cost per Spell Level (15 Pool) = 18.3 Real Points |
<<<
!!! ~Domini Spell List
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">School</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Concentration</th>
<th style="background: #b3ad97;">G/I</th>
<th style="background: #b3ad97;">Target</th><th style="background: #b3ad97;">Range</th><th style="background: #b3ad97;">Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Clerical]sort[level]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!school}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="right">{{!!concentration}}</td>
<td align="center">{{!!gestures}} / {{!!incantation}}</td>
<td align="center">{{!!target}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!area}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
!! §[[Dragon Blooded|§Dragon Blooded Ancestry]] Ancestry
Dralangl, the Traitor, [[defends|§War]] those who [[betray|§Honor]] others, and [[backstabs|§War]] those who remain [[loyal|§Honor]].
---
Grassland Humen
Drgorth, the Assassin, [[murders|§War]] those who are "[[fair|§Justice]]" and [[befuddles|§Justice]] those who offer [[protection|§War]].
---
Swamp Humen
Rules over one or more [[§Marquises (Marqueses)|§Marquis (Marquese)]].
!! §[[Dwarven|§Dwarven Ancestry]] Ancestry
The origins of dwarves are shrouded in myth, with some saying that their ancestors were fashioned from the very stone itself. Dwarven culture reflects this tradition, often celebrating practices related to the working of stone and metal
//''Age''//
//''Size''//
//''Speed''//
Egiat, Sacrificer of the Holy, represents the moral position of (harm/scantity) and (protection/degradation). Ne is the [[sacrificer|§War]] of that which is [[holy|§Faith]] and also the [[guardian|§War]] of those who have suffer [[degradation|§Faith]]. Ne is often called the "Defender of the Downtrodden."
---
Volcano Humen
!! §[[Elemental Air|§Elemental Air Sphere]] Sphere
...
!! §[[Elemental Earth|§Elemental Earth Sphere]] Sphere
...
!! §[[Elemental Fire|§Elemental Fire Sphere]] Sphere
...
!! §[[Elemental Steel|§Elemental Steel Sphere]] Sphere
...
!! §[[Elemental Water|§Elemental Water Sphere]] Sphere
...
!! §[[Elemental Wood|§Elemental Wood Sphere]] Sphere
...
!! §[[Elven|§Elven Ancestry]] Ancestry
The high elf is the most common elf variety. High elves average 5 feet tall and typically weigh just over 100 pounds. They live on fruits and grains, though they occasionally hunt for fresh meat. High elves prefer colorful clothes, usually with a green-and-gray cloak that blends well with the colors of the forest.
Elf - a member of a race of beautiful humanoids,
often referred to as an elder race, possibly a branch of faery.
They are associated with forests, have a natural affinity for
magic and life-spans far longer than humans. Elves can be
aloof and distant, and may consider other races to be their
inferior. Culture: May be of any Culture level. Primitive
elves are assumed to be lost tribes. Decadent elves may be a
subrace of high elves who are slowly dying out. For racial
events, uses Table530: Elven Events.
A legend among elven communities describes how the first elves sprang from
the dripping blood of their god when they were stabbed in battle, while others
say that elves descended from their cousins in the Feywild.
elv en A nCestr A l tr A its
Your elf character has a variety of natural abilities, the result of thousands of
years of elven ancestry.
Age. Although elves reach physical maturity at about the same age as humans,
the elven understanding of adulthood goes beyond physical growth to encompass
worldly experience. An elf typically claims adulthood and an adult name around
the age of 100 and can live to be 750 years old.
Size. Elves range from under 5 to over 6 feet tall and have slender builds. Your
size is Medium.
Speed. Your base walking speed is 30 feet.
Darkvision. Historically accustomed to twilit forests and the night sky, you
have superior vision in dark and dim conditions. You can see in dim light within
60 feet of you as if it were bright light, and in darkness as if it were dim light.
You can’t discern color in darkness, only shades of gray.
Keen Senses. You have proficiency in the Perception skill, a trait that all people
with elven ancestry share.
Fey Ancestry. Thanks to your fey heritage, you have advantage on saving throws
against being charmed, and magic can’t put you to sleep.
Trance. Elves don’t need to sleep. Instead, they meditate deeply, remaining
semiconscious, for 4 hours a day. (The Common word for such meditation is
“trance.”) While meditating, you can dream after a fashion. After resting in this
way, you gain the same benefits that other humanoids do from 8 hours of sleep.
As depicted in most Fantasy settings, elves
are tall, often willowy, fair-skinned and fair-haired
folk. Swift and quick-witted, they often have a gift
for song and other creative pursuits, and a deep appreciation for beauty in its many forms. They
have extremely long lifespans (and in some settings,
are true immortals), and often an innate talent for
magic as well.
Elves typically live in forests and woodland
areas and enjoy a strong relationship with nature.
Animals often treat them with deference, respect,
and love, making it easy for elves to train them or
ride them. They fight fiercely against goblins and
orcs, who raid elven homes and try to capture elven
forests for their own use. However, elves can live in
many other places, if desired; for example, a Fantasy
realm could feature sea elves or mountain elves.
Elves are often renowned for their skill at
archery; in melee combat they tend to favor swords
(particularly longswords and rapiers) and spears.
Though they’re not thought of as a warrior race,
their speed and skill make them more than a match
for strong, brutish races such as orcs. Elves who
prefer other paths in life often become wizards
— because they have innately magical natures, wizardry comes easily to them.
In many worlds, elves have several sub-races.
The most common are High Elves, Wood Elves,
and Grey Elves. High Elves are the noblest, fairest,
strongest, and most magically powerful elves. Wood
Elves, the shortest and least powerful elves, dwell
deep in forests and are the most skilled at woodcraft. Grey Elves occupy a sort of “middle ground”
between the other two and most often mingle with
Men and other races.
Many other races seem to regard elves as “flighty,” since they often care little for current
events or “emergencies.” This shows the perspective
of a race whose members live for a thousand years
or more; to elves, even the longest-lived of other
races are young, and what seem like tremendous
difficulties to others pass away after a few short
decades.
High Elves are typically the most commonly encountered Elves in most campaigns. They are the most likely to form friendships with members of the shorter-lived species, and are the Elves most likely to involve themselves in external events.
!! [[§Emperor (Empress)]]
Rules over other kings and princes.
<<tabs "§SpecialTitles" "§LandTitles" "§LandHoldings" >>
!! §[[Enchantment|§Enchantment]] / Charm
This school is focused on affecting "the minds of others" including "influencing or controlling their behavior". This school also include non-mind-affecting spells that don't fit into Transmutation. Charm spells usually making them act more favorably toward the caster. Compulsion spells can force the targets' to act in a certain way or avoid certain actions, affect the targets' emotions or affect the targets' minds in other ways. Wizards who specialize in this school are known as Enchanters.
!! §Invocation/[[Evocation|§Evocation (create)]] (create)
This school pertains to "creating matter and energy, called up out of nothing. The classic spells magic missile and burning hands, both of which call up destructive energy with which to attack enemies, are both examples of evocation". Healing magic is considered to evocation magic as well.
!!! §[[Extremely Wealthy|§Extremely Wealthy Package]]
Like the Wealthy, they have tots and lots of money. However, they view the merely Wealthy as just penny-ante. The Extremely Wealthy own estates the size of baronies (even dukedoms), have armies of servants (and usually at least one army), throw parties that would beggar most cities, and are often quite eccentric. This class includes heirs of old family fortunes who have continued to expand their holdings, kings of wealthy countries and emperors.
Chances are that a character from this social class will believe that money solves all problems. He may also never have been exposed to the seamier side of life and may have no concept of what it is like NOT to have a desire gratified instantly. Although cliche, the "spoiled rich" kid could easily fit a this character. Also see [[Wealthy|§Wealthy Package]] roleplay guidelines.
!!!! Birth Package Options
<<tabs "[tag[§Birth Package]]" "$:/state/tab1" class="tc-vertical">>
!!!! Skills
The character can learn up to four additional languages.
!!!! Experiences
None.
!!!! Money
Within reason (again), the character has as much money as he requires- as long as he is at home (this should be limited to 20x the normal starting money). Availability of items may be a limiting factor. Character usually has no need to borrow money unless he is bankrolling a country or a war.
Within reason, a character will begin with just about anything he desires, including carriages, arms and armor, expensive clothing, a minor magicalitem, etc.
Cost: +15 points
!!! Faith
Faith is about the moral mindset required to indentify sanctity and degradation.
Faur, God of Vigilantes, represents the moral position of (protect/fairness) and (harm/cheating). Ne is the [[guardian|§War]] of [[fairness|§Justice]], and [[hunter|§War]] of those who [[cheat|§Justice]] the people and the communities and the cultures.
---
Valley Humen
!!! Freedom
Freedom is the moral mindset to seek liberty and to accept oppression.
!! §[[Fulgur|§Fulgur (lightning)]] (lightning)
thunderbolt, bolt, stroke of lightning, flash, sudden disaster, astonish, fascinate, stupefied, dazed, inspired, lightning, twinkle, scintillate, flicker, shimmer, equal, like, similar
!! §[[Gargoylen|§Gargoylen Ancestry]] Ancestry
!! §[[Giagon|§Giagon Ancestry]] Ancestry
!! §[[Giagon Blooded|§Giagon Blooded Ancestry]] Ancestry
!!! §[[Gifted Child|§Gifted Child]]
!!!! Skills
2 points
!!!! Traits
Misunderstood, Gifted, Abused, or Spirit Familiar
!!!! Resources
4 points
!!!! Characteristic Increases
None.
!!!! Restrictions
None.
!!!! Life Path Leads
Outcast, Court, Religious
!! §[[Glacies|§Glacies (ice)]] (ice)
hardness, frost, cold, chill, ice, frozen, hail, hailstorm, hailstone, refresh, comfort, cool
A limited variant of Runecrafting, Glyphmakers can only draw or paint temporary Glyphs on stone, metal, and wood. However, they can do so quicker and more easily than a standard Runecrafter, and don't need any media skills as they merely use the surface of something as a canvas to mark upon.
!! §[[Gnomen|§Gnomen Ancestry]] Ancestry
!! §[[Goblen|§Goblen Ancestry]] Ancestry
!! §The [[Gods and Immortals|§Gods]]
!!! [[§Gods of Faith]]
* [[§Wegur]], God of Theives and Second Chances, (§Faith and [[§Honor]])
* [[§Ilkogr]], God of Paladins, (§Faith and [[§Honor]])
* [[§Halrthi]], God of Judgement, (§Faith and [[§Justice]])
* [[§Ilrcat]], God of Gamblers, (§Faith and [[§Justice]])
* §[[Egiat|§Egiat]], Sacrificer of the Holy, (Faith and [[War|§War]])
* §[[Shegldon|§Shegldon]], God of Shadows, (Faith and [[Freedom|§Freedom]])
* §[[Wetulau|§Wetulau]], God of Bards, Lies, and Orators, (Faith and [[Freedom|§Freedom]])
* §[[Zhymn|§Zhymn]], God of Heroes, (Faith and [[War|§War]])
!!! Gods of [[Freedom|§Freedom]]
* (§Freedom and [[§Honor]])
* (§Freedom and [[§Honor]])
* [[§Cangli]], ..., (§Freedom and [[§Justice]])
*[[§Mongor]], ..., (§Freedom and [[§Justice]])
* §[[Rtulk|§Rtulk]], Warlord of Conquest, (Freedom and [[War|§War]])
* §[[Saug|§Saug]], God of Revolutions, (Freedom and [[War|§War]])
* §[[Shegldon|§Shegldon]], God of Shadows, (Faith and [[Freedom|§Freedom]])
* §[[Wetulau|§Wetulau]], God of Bards, Lies, and Orators, ([[Faith|§Faith]] and Freedom)
!!! Gods of [[Honor|§Honor]]
* ([[§Faith]] and §Honor)
* ([[§Faith]] and §Honor)
* ([[§Freedom]] and §Honor)
* ([[§Freedom]] and §Honor)
* (§Honor and [[§Justice]])
* (§Honor and [[§Justice]])
* §[[Baugl|§Baugl]], Enforcer of Vengeance, (Honor and [[War|§War]])
* §[[Dralangl|§Dralangl]], the Traitor, (Honor and [[War|§War]])
!!! Gods of [[Justice|§Justice]]
* ([[§Faith]] and §Justice)
* ([[§Faith]] and §Justice)
* ([[§Freedom]] and §Justice)
* ([[§Freedom]] and §Justice)
* ([[§Honor]] and §Justice)
* ([[§Honor]] and §Justice)
* §[[Drgorth|§Drgorth]], the Assassin, (Justice and [[War|§War]])
* §[[Faur|§Faur]], God of Vigilantes, (Justice and [[War|§War]])
!!! Gods of [[War|§War]]
* §[[Baugl|§Baugl]], Enforcer of Vengeance, ([[Honor|§Honor]] and War)
* §[[Dralangl|§Dralangl]], the Traitor, ([[Honor|§Honor]] and War)
* §[[Drgorth|§Drgorth]], the Assassin ([[Justice|§Justice]] and War)
* §[[Egiat|§Egiat]], Death to the Holy, ([[Faith|§Faith]] and War)
* §[[Faur|§Faur]], God of Vigilantes, ([[Justice|§Justice]] and War)
* §[[Rtulk|§Rtulk]], Warlord of Conquest, ([[Freedom|§Freedom]] and War)
* §[[Saug|§Saug]], God of Revolutions, ([[Freedom|§Freedom]] and War)
* §[[Zhymn|§Zhymn]], God of Heroes, ([[Faith|§Faith]] and War)
!! §[[Halven|§Halven Ancestry]] Ancestry
!! §[[Healing|§Healing Sphere]] Sphere
...
!! §[[Herba|§Herba (plant)]] (plant)
plant, shoot, sprout, sprig, seedling, herb, grass, weed, sward, stand firm, struggle,stem, strive, bolt, bar, obstruct, fasten, sow, trench, dike, dyke, grave
Rules over lesser kings, often an elected position. Common in Barbarian Cultures.
!!! Spire Humen Bloodline Ability (Light)
The blood of the God of Paladins flow through the bodies of Spire Humen, making them more impressive.
* +2 PRE
* +1 Intimidation
!!! Honor
Honor is about the moral mindset required to be loyal and to betray others.
* [[§Hill Humen]]
* [[§Jungle Humen]]
* [[§Lake Humen]]
* [[§Mine Humen]]
* [[§Delta Humen]]
* [[§River Humen]]
* [[§Ocean Humen]]
* [[§Cliff Humen]]
!!! §[[Humen Age|§Humen Age]]
Although humen can be born anywhere, humen offspring have difficult childhoods with nearly half dying before the age of five (5). Survivng infancy is a momentus occasion filled with various rites-of-passage. The humen life-expectancy bounds upward to somewhere near eighty (80) years, although wars and plagues and famine can sharply curtail this new-found longevity. Combining the most common death factors, humen live about thirty (30) to thirty-five (35) years. Only exceptional humen live longer than 100 years. Humen characteristic maximas have milestones at ten (10), forty (40), and sixty (60) years.
Humen characteristics increase until the age of twenty (20), remain stable until age thirty-five (35), decline through age sixty (60) and until their inevitable death.
---
<<subsume "~Humen Starting Ages">>
<<subsume "~Humen Age">>
!! §[[Humen|§Humen Ancestry]] Ancestry
<<<
...by any other name...
<<<
In any other game, this bipedal creatures would be refered to as Human -- the most common race in many game systems. If one is familiar with modern examples of humanity, then one has a good basis for humanity when found anywhere or anywhen else. Humans within the confines of most Fantasy settings are usually more aggressive and imperialistic, and thus have usually carved out large niches of land for themselves, and seem prone to forming various nations of differing types of government and differing outlooks. Humans are typically shown to be much more diverse than other non-Human Races, with people running the gamut of physical and mental traits. Humans tend towards practical enterprise, and most have learned useful job skills by adulthood either through apprenticeship, via fathers or older brothers, or the like. Further, within the confines of the genre, humans tend to be adaptable to changing events and times.
Often historians report that the humen developed fairly recently, compared to many other ancestries. Despite their relative novelty, those of humen ancestry have spread across the land and established human communities virtually everywhere. A major trait noticed about humen is their ability to adapt to their given role in other ancestries' societies (i.e., they can work well with others).
---
All humen characters have a few traits with other humen regardless of their upbringing.
<<subsume "§Humen Age">>
<<subsume "§Humen Size">>
<<subsume "~Humen Velocity">>
---
<<subsume "Humen Ancestrial Background">>
<<subsume "§Humen Culture">>
---
!!! §Humen Cultures
Much of humen cultures revolves around the concepts of perfection and purification and morality. Only through those three keystones can a humen be assured of their proper place in the world and the rewards they deserve. Many are afraid of being condemned thus losing their families, homes, occupations. This does not mean that all humen are good beings. Other races often declare humen to be perfectionists or reformers or judges or crusaders or just critics--for good or ill.
Humen society makes one well aware of the flaws in themselves and others and the very environment in which they live. Many struggle under the belief that if they can just perfect (fill in the blank), then they will succeed. And those who seem to be better at having perfect lives seem to have an easier time in life. This standard encourages guilt that the humen are not doing "enough" or are doing it "wrong." Failure means the humen has fallen from the path of perfection and due to internal shortcomings, deserves their fate.
Basic humen characteristic enhancements are ''+1 EGO'' and ''+1 PRE''--costs ''//3 points//''.
<<tabs "[tag[§Humen Culture]]" "$:/state/tab1" class="tc-vertical">>
---
//Quick Links//: [[§Canyon Humen]] | [[§Cliff Humen]] | [[§Delta Humen]] | [[§Glacier Humen]] | [[§Hill Humen]] | [[§Island Humen]] | [[§Jungle Humen]] | [[§Lake Humen]] | [[§Mine Humen]] | [[§River Humen]] | [[§Spire Humen]] | [[§Spring Humen]] | [[§Tundra Humen]] | [[§Volcano Humen]]
* needs to be made into table
<<tabs "[tag[§Humen Cultures by Moral Aspect]sort[moral-order]]">>
* [[§Hill Humen]]
* [[§Jungle Humen]]
* [[§Spire Humen]]
* [[§Island Humen]]
* [[§Glacier Humen]]
* [[§Spring Humen]]
* [[§Tundra Humen]]
* [[§Volcano Humen]]
!!! ''//Faith Cultures//'' (sanctity | degradation)
<div class="tc-table-of-contents">
<<toc '§Humen Culture' sort:"tag[§Faith Culture]tag[§Honor Culture]">>
</div>
---
!!! ''//Freedom Cultures//'' (liberty | oppression)
<div class="tc-table-of-contents">
<<toc '§Humen Culture' sort:"tag[§Freedom Culture]tag[§Honor Culture]">>
</div>
---
!!! ''//Justice Cultures//'' (fairness | cheating)
<div class="tc-table-of-contents">
<<toc '§Humen Culture' sort:"tag[§Justice Culture]tag[§Honor Culture]">>
</div>
---
!!! ''//Order Cultures//'' (authority | subversion)
<div class="tc-table-of-contents">
<<toc '§Humen Culture' sort:"tag[§Order Culture]tag[§Honor Culture]">>
</div>
---
!!! ''//War Cultures//'' (protection | harm)
<div class="tc-table-of-contents">
<<toc '§Humen Culture' sort:"tag[§War Culture]tag[§Honor Culture]">>
</div>
* [[§Glacier Humen]]
* [[§Spring Humen]]
* [[§Delta Humen]]
* [[§River Humen]]
* [[§Mountain Humen]]
* [[§Forest Humen]]
* [[§Valley Humen]]
* [[§Swamp Humen]]
!!! §[[Humen Size|§Humen Size]] (Height and Weight)
Humen vary widely in height and build, from barely five feet (5') to well over six feet (6') tall. Regardless of your position in that range, your size is Medium (+0 DCV) with a mass factor of ten (10 MASS).
|Gender | Base Height | Height Modifier |<| Base Weight | Weight Modifier |h
|Female | 4' 5" | +2d10 in |<| 85 lb. | +(2d10 x 2d4) lb. |
|Male | 4' 10" | +2d10 in |<| 120 lb. | +(2d10 x 2d4) lb. |
The same roll for 2d10 can be used to determine height and weight.
!!! ''//Faith Cultures//'' (sanctity | degradation)
<div class="tc-table-of-contents">
<<toc '§Humen Culture' sort:"tag[§Faith Culture]tag[§War Culture]">>
</div>
---
!!! ''//Freedom Cultures//'' (liberty | oppression)
<div class="tc-table-of-contents">
<<toc '§Humen Culture' sort:"tag[§Freedom Culture]tag[§War Culture]">>
</div>
---
!!! ''//Honor Cultures//'' (loyalty | betrayal)
<div class="tc-table-of-contents">
<<toc '§Humen Culture' sort:"tag[§Honor Culture]tag[§War Culture]">>
</div>
---
!!! ''//Justice Cultures//'' (fairness | cheating)
<div class="tc-table-of-contents">
<<toc '§Humen Culture' sort:"tag[§Justice Culture]tag[§War Culture]">>
</div>
---
!!! ''//Order Cultures//'' (authority | subversion)
<div class="tc-table-of-contents">
<<toc '§Humen Culture' sort:"tag[§Order Culture]tag[§War Culture]">>
</div>
!! §[[Ignis|§Ignis (fire)]] (fire)
light, flame, heat, conflagration, beacon, blaze, passion, love, fire, spark, ardour, ardor, burning, fervor, arson
!! §[[Illusion|§Illusion]]/Phantasm
This school "involves the ability to change the appearance of something, by creating a phantasm". Wizards who specialize in this school are known as Illusionists.
!! §[[Imagini|§Imagini (senses)]] (senses)
image, picture, likeness, representation, copy, recollection, idol, simulacrum, statue, pillar, bust, column, behold, observe, punish, notice, mark, censure, regard, respect, esteem, touch, feel, hear, listen, obey, smell, odor, savor, perfume, scent, aroma, vapor, flavor, taste, appetite
!! §[[Insufflation, Ensufflation, Exsufflation|§Insufflation, Ensufflation, Exsufflation]] (spirit breathing)
Insufflation (blowing in) is used to force a spirit to possess a body or object. Ensufflation (breathing in) is used to "invite" or draw in a spirit. Exsufflation (blowing out) is used as a form of exorcism of spirits.
Barbarian equivalent of a [[§Marquis (Marquese)]] or [[§Count (Countess)]] or [[§Baron (Baroness)]]. May be hereditary but often appointed.
!!! Justice
Justice is about the moral mindset which identifies fairness and cheating.
Powerful nomad. Rules a great tribe or tribal federation.
Ruler who is the supreme authority in this land. A king normally owes fealty to no other.
!! [[§Knight]] / Chevalier / Ritter
An earned title which cannot be inherited, although it is common that a [[§Knight]] can take on one child as a [[§Squire]]. Usually the title of [[§Knight]] is granted by a [[§King (Queen)]].
A [[§Knight]] is granted one or more [[§Squires|§Squire]] who must be purchased with Character Points (//see// [[~Followers]] //for more information//). The [[§Knight]] is responsible for the sheltering, feeding, safety, and training of all [[§Squires|§Squire]] placed in his care. It can be customary for children of various levels of noblity (//see// [[§Prince (Princess)]] //for more information//) to be trained by a trusted [[§Knight]] in the arts of sword and war.
The cost to field a single knight makes it all but impossible for individuals wade forth in the heavy armors (requiring at least +8 Character Points spent in [[§Wealthy|§Wealthy Package]]) unless they have sworn an [[~Oath of Fealty]] to an [[§Extremely Wealthy|§Extremely Wealthy Package]] patron.
The [[§Knight]] character can take a maximum of fifty (50) Character Points in [[~Oath of Fealty]] and related Disadvantages to offset the cost of the [[§Knight]] package.
|[[~Heavy Foot]] Occupation | + 55|Character Points |
|[[~Mounted Fighting]] Skills | + 16|Character Points |
|Heavy Warhorse | + 30|Character Points |
|Noble Title | + 2|Character Points |
''Total Cost'': + 103 Character Points.
!! §[[Kobolen|§Kobolen Ancestry]] Ancestry
In other games, known as Kobolds
!! §[[Law|§Law Sphere]] Sphere
Sanctify fairness and cheat degradation
!! §[[Lizardmen|§Lizardmen Ancestry]]
!! [[§Magic]]
Hermetic magic (as this particular style of magic will be referred to from now on) is purchased as a series of skills, which are basically the Required Skill Roll for the activating the various spells (powers) built through the character’s Variable Power Pool. Hermetic
mages must buy, as a minimum, the base level of one Hermetic Form and one Hermetic Technique. Experienced Hermetic Mages will have dozens of points in these skills. When casting any Hermetic spell, the mage character will be required to make two skill rolls, a
Hermetic Technique roll and a Hermetic Form roll. Both skill rolls must be successful, and the Hermetic Form skill must be made by at least the level of the spell (the Hermetic Technique skill may be used as a complementary skill to the Hermetic Form skill.)
!!! ~Magic Talent(s)
To work magic, a character needs two things. First, he must have a Magic Skill roll (//see Schools and Domini and Forms and Techniques below//).
Second, for each arcana he wants to cast spells from, he must buy a Talent called The Gift (arcana). Each of these Talents (The Gift (Creo), The Gift (Bestia), and so on) costs 5 Character Points initially. For that 5 points, the character gets the equivalent of a Variable Power Pool with a Pool of 25 points that he uses to cast the spells of that arcana. For each +1 point spent on a The Gift Talent, the Pool increases by +5 points. Thus, a character who has spent 12 points on The Gift (Aqua) has, in game terms, a VPP with a Pool of 60 points he can only use to cast Aqua spells. All spells must include at least one (1) Form and one (1) Technique. The points in the declared pools are added together to provide the Action Points (AP) available to that particular spell.
!!! §Schools and §Domini and §Forms and §Techniques
Each wizard needs both a Hermetic Technique Skill and Hermetic Form Skill. There are a total of fifteen (15) individual skills that a Hermetic Mage may possess, and an experienced Hermetic Mage will possess most of these skills).
!!!! Hermetic Forms
* ''Animál'' (animal) or ''Bestia'' (beast) -- Animál concerns animals of all kinds, from the fish of the sea to the birds of the air. Animál spells cannot affect people, for they have souls whereas animals do not (//see familiars for additional information//).
* ''Aquan'' (water) or ''Aqua'' (water) -- Aquam concerns all types of liquids. Through this Art, one accesses the might of a roaring flood or the gentleness of a clear pool.
* ''Auram'' (air) or ''Caeli'' (air) -- Auram is the Art of air, wind, and weather. True flight is only possible through this Art.
* ''Corpus'' (body) or ''Corporis'' (body) -- Corpus is the Art of humans and humanlike bodies. It governs the intricate interactions that occur in those bodies with souls, as well as, those that once had souls (//see familiars for additional information//).
* ''Herbam'' (plant) or ''Herba'' (plant) -- This Form concerns plants and trees. This includes plant matter of all types, including that which is no longer.
* ''Ignem'' (fire) or ''Ignis'' (fire) -- The Form of magic which affects fire, light, heat.
* ''Imáginem'' (image) -- The Form of magic that affects images and senses.
* ''Mentem'' (mind) or ''Amino'' (mind) -- The Form of magic which affects the human mind including thoughts and emotions.
* ''Terram'' (earth) or ''Terra'' (earth) -- Terram is the Art of earth, stone, metal.
* ''Vim'' (power) -- The Form of magic which affects magic and creatures of legend (such as Giants and Dragons) and demons.
!!!! Hermetic Techniques
* ''Creo'' (I create) -- the technique of magic which creates or conjures anything.
* ''Intéllego (I percieve) -- the technique of magic which provide information.
* ''Muto'' (I transform) -- the technique of magic which changes or mutates things.
* ''Perdo'' (I destroy) -- The magus who understands the Art of Perdo knows that all objects and creatures in the temporal will inevitably cease to exist and uses magic to control the universal process whereby things are destroyed. Aging, disease, decay, dissolution are all properties inherent to objects and living things and can be drawn out through this Art.
* ''Rego'' (I control) -- The Art of Rego allows a magus to regulate matter or compel the actions of living things. One kind of Rego spell might lift someone into the air, and another might make a person act a certain way.
!!! ~Advantages
Spells cost Personal Endurance but can also be fueled from //Vis//, which are treated as little mini non-recoverable endurance reserves. All Spells must take the (+0.25) Advantage "Personal Endurance or Endurance Reserve" to be able to take advantage of this ability.
!!! ~Limitations
* Requires A Magic Roll: -1 penalty per 10 Active Points (-0.25)
* Incantations, Gestures, Concentration (at least -0.5)
** Incantations: Complex Incantations (-0.5); Incantation Throughout (-0.5)
** Gestures: Two Hands (-0.5); Complex Gestures (-0.5); Gestures Throughout (-0.5)
** Concentration: 0 DCV (-0.5); 1/2 DCV but is unaware of nearby events (-0.5); 1/2 DCV Throughout (-0.5)
* Extra Endurance, Extra Time (at least -1.5)
** Extra Endurance: x4 (-1.5);
** Extra Time: 1 minute (-1.5); 1 Turn with no other actions (-1.5)
** Combined: Extra Phase with no other actions (-1.0) and Extra Endurance: x2 (-0.5)
** Combined: Extra Endurance: x3 (-1.0), Full Phase (-0.5)
** Combined: Extra Endurance: x3 (-1.0), Extra Segment (-0.5)
* Law of Contagion (for Ranged Spells)
** Limited Range: 1/4 Range unless Appropriate Foci Used (-0.25)
* Law of Sympathy (for all spells)
** Spell has x0.75 effect unless Appropriate Foci Used (-0.25)
* Foci -- since the lack of Foci is much less restricting, Foci take a -0.5 adjustment.
** Obvious Inaccessible Focus (-0)
** Obvious Accessible Focus (-0.5)
!! §[[Magic Elements|§Magic Elements]]
<<tabs "[tag[§Element]]" default:"§Amino (mind)" class:"tc-vertical">>
!! §[[Magic Schools|§Magic Schools]]
<<tabs "[tag[§School]sort[order]]" default:"§Abjuration (protect)">>
!! §[[Magic Spheres|§Magic Spheres]]
<<tabs "[tag[§Sphere]sort[order]]" default:"§Animal Sphere" class:"tc-vertical">>
Rules over one or more [[§Viscounts (Viscountesses)|§Viscount (Viscountess)]].
!! §[[Mermen|§Mermen Ancestry]] Ancestry
!! §[[Moral Aspects|§Moral Aspects]]
* §[[War|§War]] (protection vs harm)
* §[[Justice|§Justice]] (fairness vs cheating)
* §[[Honor|§Honor]] (loyalty vs betrayal)
* §[[Faith|§Faith]] (sanctity vs degradation)
* §[[Freedom|§Freedom]] (liberty vs oppression)
---
* ''Order'' Authority/subversion
!! §[[Necromancy|§Necromancy]]
Necromancy spells involve death, undeath, and manipulating life energy. Some healing spells (particularly those restricted to clerics and druids) are in the Necromancy school. Wizards who specialize in this school are known as Necromancers.
!! §[[Necromancy|§Necromancy Sphere]] Sphere
!! §[[Nethermancy|§Nethermancy]] (shadow)
... shadow magic ...
!! [[§Nobility]]
Nobles exist and live by the works of others, having social value only when they coordinate, represent and protect those who do work. The justification of Nobility in a fantasy setting is based on the assumption that the gods have chosen a select few to lead and shepherd after their people. The continuance of Nobility is based upon the facts that "them that has, gets more" and "might makes right."
For player characters who belong to the peerage or are otherwise noble, they need to determine their [[§Relationship to Ruler of the Land]], and their immediate family's Noble Title.
<<tabs "[tag[§Noble Title]sort[order]]" class:"tc-vertical" >>
!! [[§Nomadic Cultures|§Nomadic Culture Package]]
Nomads rely heavily on livestock that can move as seasons and resources dictate and are rarely agricultural. Most Nomads are mounted or use beasts of burden to transport belongings. Nomads organize along family group lines, do not settle permanently, and do not develop abstract writing beyond the level of pictographs. In most Nomad tribes and clans, all adult males are warriors. The Nomads may also be skilled in other cra!ts or professions (rarely metal-working), but skill in combat is a necessity for survival. Examples of historic Nomadic cultures include: Bedouins, ancient Huns, Gypsies, Sioux and other plains American Indians and Afghan shepherds.
!!! §Nobility
<<tabs "[tag[§Noble Title]tag[§Nomad Culture]sort[order]]">>
!!! ~Skills
|Animal Handler (//pick one for riding//) | + 4|points |
|Riding | + 4|points |
|Streetwise (Familiarity) | + 1|point |
|Survival (//pick one//) | + 4|points |
|Transport Familiarity (//pick one for riding//) | + 4|points |
|Weapon Familiarity | + 3|points |
!!! Literacy
A nomad will always be able to interpret his or her native pictograph writing, but has a small chance to be able to write in those same pictographic symbols. He or she has a small chance to read the pictographs of another Nomadic Culture. If the nomadic character has learned to read and write, it is most likely in the language of another, "more advanced" culture.
Like Primitives, Nomads rely strongly on tradition. They may have wanderlust and can become uncomfortable when tied down to one locale. A nomad will always feel out of place in a city and often distrust those who live in them. Nomads retain some of the Primitives' superstitious nature. A nomad character may have a kind of wild vitality, a lust of life that has been lost by the "civilized."
Costs: ''+19 points''
!! §[[Numbers|§Numbers Sphere]] Sphere
Long ago, these humen were touched by the Crusader of Revolutions, [[§Saug]]. Now they have access to the following bloodlines:
''Buckling the Swash''
* <<subsume "~Dashing Dare">>
* Inspiring Oration
* Blazing Leader
* Mark of the Revolution
''Flamborant Masquerade''
* From Knowhere
* Another Face in the Crowd
Water sphere
Navigation, water
Streetwise
!! §[[Ogreon Blooded|§Ogreon Blooded Ancestry]] Ancestry
!! §[[Orcken|§Orcken Ancestry]] Ancestry
!! §[[Owlken|§Owlken Ancestry]] Ancestry
<h2>§[[Path of Legends|§Path of Legends]] (Character Construction)</h2>
Unless otherwise noted, all characters have the following ''Disadvantages'':
* ''//Normal Characteristic Maxima//'' where buying characteristics over the //Cultural Maxima// costs double;
* ''//Normal Skill Maxima//'' where buying skills over the //Occupational Maxima// costs double; and
* ''//Distinctive Features//''.
Characters should consider the Psychological (~Code of Conduct) Disadvantage which formally stipulates the mindset of Adventurers.
<<subsume "~Code of Conduct">>
---
Habitat, Biome, subsistence, shelter/clothing, technology, transport, trade, social organization, language/writing, war, art, law/morals, magic, science/cosmology religion
- Grahame Clark (//The Economic Approach to Prehistory//. 1953).
---
<<tabs "[tag[§Path of Legends]sort[order]]" default:"§101 Ancestry / Racial Stock" class:"tc-vertical">>
---
!! §[[Plant|§Plant Sphere]] Sphere
...
!!! §[[Poor|§Poor Package]]
Poor people have comparatively very low income. They usually do not or cannot own property. Homes are usually of lesser quality, sometimes due to uncaring landlords who may also the poor person's employer. Luxuries often include nice food, heat in winter, pets, and clean water. In some societies, the poor are but a step above slaves. Includes most nonleader nomads, primitives, peasants, uncivilized warriors, most laborers, public welfare recipients, some land-owning farmers, some craftsmen, young or partly-skilled urban thieves, apprentices, office clerks, and most professional soldiers.
The poor must work to keep what little they have, otherwise they would be destitute. A poor character might always be concerned about having enough to get by; but the poor usually have //hope// -- that they or their children might have a better life if they can work hard and long enough. Although a character from this social level may long for a better life, he or she could be satisfied with the way things are. Hard work is good and the rewards enjoyable. Of all social levels, the poor are most likely to strongly emphasize religious matters in their lives or be superstitious.
!!!! Breed Options
[[§215: Born and Raised]]
!!!! Skills
As an adolescent, the character gains + 3 OCV w/ hand-to-hand and dagger.
!!!! Experiences
None.
!!!! Money
50% of normal starting money. Character will have difficulty borrowing money from anyone other than criminal sources. Characters with this economic status can expect to earn six (6sc) or seven (7sc) per day.
Cost: -5 points; about $30,000 in modern USD
!! §[[Primative Cultures|§Primitive Culture Package]]
Primitives do not read and write their own language and might not form significant permanent settlements, but they might form "proto-towns" which provide a defensive location against surrounding dangers. The chief industry of primitives is the procurement of food, usually by hunting (traditionally a male role) and gathering (traditionally women, children and the elderly). They do not work metal, but they are on the edge of organized farming. Political units are the family and the clan. Rulers are the most powerful hunters of the group. They revere the elderly for their wisdom. Historical Primitives include most prehistoric peoples, many Amerindians, Arctic tribes, Australian aborigines, African bushmen and pygmies, Amazon jungle tribes, Pacific Islanders, New Guinea natives, and Picts.
!!! §Limitations
Despite any appearances otherwise, neither those of [[§Dwarven|§Dwarven Ancestry]] nor [[§Elven|§Elven Ancestry]] Ancestry can be born in primitive cultures. Somewhere within any primitive-seeming pocket of either dwarven or elven will have the complex rituals needed for their births.
!!! §Nobility
<<tabs "[tag[§Noble Title]tag[§Primitive Culture]]">>
!!! ~Skills
|Combat Skill Levels (//select one weapon//) | +3 OCV //or// +3 DCV //or// +3 DC |<| ''+9''|''points'' |
|Navigation (Land) | (roll: 7 + (INT/3) or less) |+1 w/ Navigation (Land) | ''+5''|''points'' |
|Stealth (Move Silently) | (roll: 7 + (DEX/3) or less) |+1 w/ Stealth (Move Silently) | ''+5''|''points'' |
|Survival (//select a climate//: Find/Prepare Food) | (roll: 7 + (INT/3) or less) |<| ''+3''|''points'' |
|Survival (//select a climate//: Find/Prepare Water) | (roll: 7 + (INT/3) or less) |<| ''+3''|''points'' |
|Survival (//select a climate//: Find/Build Shelter) | (roll: 7 + (INT/3) or less) |<| ''+3''|''points'' |
|Survival (//select a climate//: Wilderness Travel) | (roll: 7 + (INT/3) or less) |<| ''+3''|''points'' |
|Survival (Urban), Familiarity | (roll: 7 or less) |<| ''+1''|''point'' |
|Weapon Familiarity (Club) |<|<| ''+1''|''point'' |
|Weapon Familiarity (Polearms and Spears) |<|<| ''+1''|''point'' |
|Weapon Familiarity (//select one of:// Bows, Javelins and Thrown Spears, Blowguns, or Boomerangs and Throwing Clubs) |<|<| ''+1''|''point'' |
|Weaponsmith (//select one based on a weapon familiarity//) | (roll: 7 + (INT/3) or less) |<| ''+3''|''points'' |
!!!! Literacy
A character from a Primitive Culture has only a slight chance of being literate. Since Primitives have no written language, this will always be the language of another culture.
!!!! Roleplaying
Characters born into primitive cultures are often superstitious. Tradition is important to them. They are often distrusting of "higher" levels of culture, viewing those accomplishments as evil. A primitive character will probably be less willing to accept the "benefits" of civilization and may even suffer from exposure to civilized cultures (potentially catching life-threatening illnesses to which the local "cultured" population is "immune"). Many "higher cultures" view primitives as stupid, but are usually quite clever — they lead hard lives and sharp wits are necessary for daily survival.
Costs: ''+38 points''
Child of a noble. Also may be the ruler of a Principality in which case he is equal to a [[§King (Queen)]].
Child of a [[§King (Queen)]] or an [[§Emperor (Empress)]]. A Crown Prince will assume the throne.
!! §[[Protection|§Protection Sphere]] Sphere
The first races (Dwarven, Elven, and Wolven) had the suffix "-ven" on their racial names. All races which appeared after were named with a shortened "-en" suffix tacked onto their racial names.
The custom of Nobles is to marry other Nobles, usually for political gain. The best marriage is often defined as the one which gives a person the greatest access to the ruling house of the land. Because of this tradition, most Noble families are related to one another and normally have close ties with the bloodline of the ruling house. The following table is used to determine how closely related a character (either a player character's parent or an NPC-not the player character himself!) is to the ruler of the land. This table can also be used to determine a character's chance of ascending the throne of the land should other claimants disappear.
Being related to a king, an emperor, or a high chieftain seems to make a character appear important. It could mean being able to throw one's weight around, or dropping names to get favors, or an occasional free stay at the castle of another noble. However, it also opens the character up to the fatal danaers of court intrigue, the daring of political powerplays and'ihe risk of being kinapped for ransom.
Rtulk, the Warlord of Conquest, fights to [[oppress|§Freedom]] the [[protectors|§War]] and [[slay|§War]] those still [[liberated|§Freedom]].
Practitioners of this Magic System don't cast Spell or have mystical abilities; instead they learn Runes that they can inscribe upon things to permanently infuse them with Magic. They can also inscribe temporary Runes that have a triggered effect, allowing them to create Glyphs of Warding, Symbols, and similar effects. A Runecrafter buys Familiarities for each Rune they know and must have one or more craft based Professional Skills related to the various medias they know how to use as a palette for their Runes, such as PS: Engraving for metal, PS: Sculpting for stone, and PS: Tattooing for skin.
Saug, Crusader of Revolutions, [[assaults|§War]] the [[oppressors|§Freedom]] and [[protects|§War]] the [[liberated|§Freedom]].
---
A limited variant of Runecrafting, Scibners can only make temporary Symbols on soft media like paper, cloth, and skin. However, they can do so quicker and more easily than a standard Runecrafter. One of the possible applications of this variant is for Wu Jen style casters that scribe upon paper to make a Spell effect.
!! §[[Sections|§Sections]]
<<tabs "[tag[§Section]sort[order]]" default:"§Path of Legends" class:"tc-vertical">>
!! §[[Shattered Realms at War|§Shattered Realms at War]]
Shegldon, God of Shadows, represents the dark mixture of [[oppressing|§Freedom]] the [[pure|§Faith]] and [[liberating|§Freedom]] the [[denegrated|§Faith]].
!! §[[Signum|§Signum (signal)]] (signal)
sign, seal, cue, significant, token, note, imprint, inscribe, warison, alarm, punishment, observation, censur, heeding
!! §[[Skaven|§Skaven Ancestry]] Ancestry
... ratkin
!!! §[[Son of a Gun|§Son of a Gun]]
!!!! Skills
Characters who are born and raised aboard a ship gain three (3) points in the Sailor occupational skill set.
| +1|point |Familiarity | 7 or less |
| +2|points |Advanced Familiarity | 9 or less |
| +3|points |Charactistic Roll | 7 + (CHAR / 3) or less |
Keep in mind when raising the Skill Roll above thirteen or less (13-), the skill increases cost double.
|Skill Set |Skill Options |
|Sailor |Navigation (Sea), Transport Familiarities (//select a watercraft//) |
!!!! Traits
''Sea Legs:'' reduces the movement, DCV, DC penalties by one (1) while on the high seas, even during storms or while in the rigging. ''Environmental Movement'' (one 3-point Penalty Skill Level, Only Apply while at Sea (-1); PSL offsets DCV and DC penalties). ''Costs + 2 points''.
!!!! Resources
Characters gain three (3) points in resources.
!!!! Characteristic Increases
None.
!!!! Restrictions
None.
!!!! Life Path Leads
Servitude, Soldier, Outcast
This Magic System is a fairly direct conversion of the D&D Sorcerer. It uses the [[§Spontaneous Casting]] Model.
| Roll 1d20 |Position of Merit |Location Locator |The Location |h
|! 1|Commander of the ... | (No additional modification) |... Coasts |
|! 2|Custodian of the ... | (No additional modification) |... Creation |
|! 3|Grim Sentinel of the ... | (No additional modification) |... Domain |
|! 4|High Champion of the ... | (No additional modification) |... Downs |
|! 5|Honored Defender of the ... | (No additional modification) |... Fens |
|! 6|Iron Tower of the ... | (No additional modification) |... Forests |
|! 7|Lord Protector of the ... | (No additional modification) |... Garth |
|! 8|Liberator of the ... | (No additional modification) |... Heath |
|! 9|Lord Governor of the ... | (No additional modification) |... Hills |
|! 10|Lord Guardian of the ... | (No additional modification) |... Isles |
|! 11|Keeper of the ... | ... Highland ... |... Marches |
|! 12|Preserver of the ... | ... Lowland ... |... Moors |
|! 13|Marshall of the ... | ... Upper ... |... Mountains |
|! 14|Ranger of the ... | ... Lower ... |... Pale |
|! 15|Regent of the ... | ... Seaward ... |... Reaches |
|! 16|Retaliator of the ... | ... Northern ... |... Shire |
|! 17|Swordmaster of the ... | ... Eastern ... |... Steppe |
|! 18|Vindicator of the ... | ... Southern ... |... Uplands |
|! 19|Warden of the ... | ... Western ... |... Wastes |
|! 20|Watchwarder of the ... | ... Frozen ... |... Waves |
!! [[§Squire]] / Junker
A student (//dependent//) of a [[§Knight]].
Cost: 1 Character Point
Rather than learning to cast static Spells, practitioners of this Magic System instead learn to craft powerful magical Wands, Rods, Staffs, or other objects, into which they invest all of their Magical abilities. They are able to work terrible and mighty Magic is this fashion but are woefully vulnerable to having their Foci taken or destroyed.
A tribal chieftain's lieutenant.
!! §[[Summon|§Summon Sphere]] Sphere
...
!! §[[Sun|§Sun Sphere]] Sphere
...
!! §[[Terra|§Terra (earth)]] (earth)
earth, age, region, soil, dry land, bottom, floor, beaten, worn, friction, ground
!! §[[The Shattered History|§The Shattered History]]
<<tabs "[tag[§The Shattered History] tag[%Calendar]sort[order]]" class:"tc-vertical">>
!! §[[The Shattered Lives|§The Shattered Lives]]
!! §[[The Shattered Society|§The Shattered Society]]
!! §[[The Shattered World|§The Shattered World]]
!! §[[Thought|§Thought Sphere]] Sphere
!! §[[Tigren|§Tigren Ancestry]] Ancestry
While tigren have a bipedal humanoid shape and are quite agile in an erect stance, they are also capable of quadpedal movement and can attain speeds 50% above their normal bipedal movement. Many Tigren retain terrible killing fangs, although they are "just civilized" enough to find using them to tear into flesh and muscle to be distasteful. All tigren breeds have full body hair, the "fur" ranging from very short to long, with colorations ranging from desert sand to midnight black and with patterns in between. Tails signal the moods of the owner.
Males stand between 1.6m and 2.05m and weigh between 70kg and 135kg. Females are built similar to humen females as far as weight and height are concerned.
Tigren are highly individualistic beings--using the settlements of other beings for mating, birthing, and raising their young. Once the young are of an age, the family often departs the settlement and continue raising their children in the "real world." As such, childbearing family units often spend five (5) years in a settlement and then five (5) years in the wilds, to then return. Once the mating pair exits the childbearing years, they might or might not return to the "real world" for the remainder of their lives. It is possible for one male to arrive in a settlement with several pregnant "wives," although they usually will not all be his children (unless something happened to the tribe).
---
Cheetah -- running (60 mph); +4 DEX; +2 SPD; scent tracking 30%
Panther -- running (50 mph); +5 DEX; +3 STR; scent tracking 70%
Tiger/Lion -- running (30 mph); +4 STR; +5 CON; swimming; scent tracking 50%
!!! Leonoid (package; cost: 5 Character Points)
| Cost |Ability |h
| 4|//Strong//: +4 STR |
| 10|//Durable//: +5 CON |
| 6|//Agile//: +2 DEX |
| 2|//Impressive//: +2 PRE |
| 2|//Fearsome Roar//: +5 PRE, Offensive Use Only (-1) |
| 5|Nightvision |
| 5|//Powerful Nose//: Tracking (Normal Smell) |
| 6|//''Talent:'' (God Shard):// 30 Active Points; Power Can Draw END from Character or END Reserve (+1/4*); Requires A Skill Roll: //PIETY// or //CHANNELING// (-1/2), Concentration and/or Gestures and/or Incantations: //Ritual// (-1/2), Extra Time and/or Increased Endurance Cost (-1 1/2), Foci //Law of Sympathy:// Ability has 3/4 Effect unless Appropriate Foci is Used (-1/4); Ranged Powers must also have-- Limited Range: //Law of Contagion:// Ability has 1/4 Range unless Appropriate Foci is Used (-1/4) |
| Value |Disadvantages |h
| -20|Normal Characteristic Maxima |
| -10|Normal Skill Maxima |
| -5|Distinctive Features: Tigren (Concealable w/Magic, Noticed, Not Distinctive in Some Cultures) |
| <<eval =(4+10+6+2+2+5+5+6)-(20+10+5)>>|Total Cost of Package |h
!! §[[Time|§Time Sphere]] Sphere
!! §Alteration / [[Transmutation|§Transmutation (change)]] (change)
This school focuses on the ability to change matter. Spells in this school alter the properties of their targets. Wizards who specialize in this school are known as Transmuters.
!! §[[Troglodyten|§Troglodyten Ancestry]] Ancestry
!! §[[Trolven|§Trolven Ancestry]] Ancestry
Long ago, these humen were touched by the God of Heroes, [[§Zhymn]], and they gained access to the following paths.
''Guardian Angel''
* Fear No Evil
* Wall of Ice
''Battle Hymn''
* Inspired Leadership
* Smite the Infidel
Cold Resistence
Ice sphere
Frost bite
Ice Blade
!! §[[Umbra|§Umbra (shadow)]] (shadow)
shade, darkness, dark, obscurity, ghost
!!! §[[Village Born|§Village Born]]
!!!! Skills
Characters who are born in a village gain three (3) points in the primary occupational skill of their family, which earns them a Skill Roll of (7 + CHAR/3). Keep in mind when raising the Skill Roll above thirteen or less (13-), the skill increases cost double.
|Skill | Skill Roll | Cost |<|h
|Family's Primary Occupational Skill | (7 + CHAR/3)| +3|points |
!!!! Traits
Characters can pick up two (2) points in any traits.
!!!! Resources
Characters gain four (4) points in resources.
!!!! Characteristic Increases
None.
!!!! Restrictions
None.
!!!! Life Path Leads
Peasant, Servitude, Sea, Religious
!! §[[Vim|§Vim (magic)]] (magic)
power, might, force, strength, grasp, hold, authority, control, dominion, violence, stress, hand, work, efficiency, vim, arm, wealth, resources
Rules over one or more [[§Counts (Countess)|§Count (Countess)]].
!!! War
War is about the moral mindset required to protect one and to harm another.
---
War is also associated with the elements //ignis// and //glacies//.
* //Glacies// is associated with ice, hardness, frost, cold, frozen, hail, hailstorm, but also refresh, comfort, and cool.
* //Ignis// is associated with light, flame, heat, conflagration, beacon, blaze, fire, arson, but also passion, love, fervor, and ardour
<<subsume "§Baugl">>
<<subsume "§Dralangl">>
<<subsume "§Drgorth">>
<<subsume "§Egiat">>
<<subsume "§Faur">>
<<subsume "§Rtulk">>
<<subsume "§Saug">>
<<subsume "§Zhymn">>
!! §[[Wards|§Wards Sphere]] Sphere
!!! §[[Wealthy|§Wealthy Package]]
These people are rich. They own large estates, have many servants, plush furnishings and large holdings of land. They usually make their money from real estate holdings, commodities trading and gouging poorer people. What most lower social levels see as luxuries, they take for granted. This class includes most titled nobility, merchant princes, high priests of rich cults, owners of very successful large companies, government leaders, very successful magicians,and leaders of criminal organizations.
A Wealthy character is accustomed to the finer things in life and may be uncomfortable in less-than-elegant surrounds. It may be hard for a Wealthy character to accept someone from a lower Social Status as an equal.
!!!! Birth Package Options
<<tabs "[tag[§Birth Package]]" "$:/state/tab1" class="tc-vertical">>
!!!! Skills
None.
!!!! Experiences
None.
!!!! Money
300% of normal starting money. Character has no problem borrowing large sums of money at favorable rates. Each +1 Character Point provides an additional three hundred twenty (320sc) silver coins of revenue per day.
He will usually have a finely furnished home, a riding animal, fine clothing, l d 3 pieces of jewelry worth lox starting money each, a dagger, and a fine hand weapon appropriate to his or her culture.
Cost: base cost is +6 points; each +1 Character point = $2,000,000 modern USD / or at +10 points = $10,000,000
!! §[[Weather|§Weather Sphere]] Sphere
...
God of Theives and Second Chances
!!! §[[Well-Off|§Well-Off Package]]
These are the upper end of the middle or merchant class in Barbarian and Civilized cultures. They typically own larger homes, have a household servant (a cook andlor maid), have private transportation, and travel abroad. They may own more than one home in more than one city. Their children are privately educated. Luxuries include elegant furnishings, artwork, libraries, parties, fine clothing, and occasional exotic foods. This class includes younger offspring of Nobility, successful craftsmen, high-ranking military officers, merchants, ship owners, successful magicians, priests of prominent religions, guild leaders, city officials, and Nomad and Barbarian chieftains.
Outward appearances are often the be-all and end-all of this Social Status and these folk may try to act like they are Wealthy. A strong tendency here to look on lower Social Statuses as something bordering on "unclean" and to attempt to associate only with those of equal or higher status. Of all Social Statuses, Well-to-Do folk are probably the least tolerant of their children becomingadventurers ("What will the neighbors think?")
!!!! Birth Package Options
<<tabs "[tag[§Birth Package]]" "$:/state/tab1" class="tc-vertical">>
!!!! Skills
None.
!!!! Experiences
None.
!!!! Money
150% of normal starting money. He has no problem borrowing good-sized sums of money at reasonablerates. These individuals earn upto thirty-two (32sc) per day for each +1 Character Point spent on wealth.
Can begin with a riding animal and two weapons.
Cost: each +1 Character Point spent provides $180,000 (modern USD) in annual income; maximum of +5 points
Wetulau, God of Bards, Lies, and Orators, spreads tales which [[sanctify|§Faith]] the [[liberated|§Freedom]] but further [[oppress|§Freedom]] the [[denegraded|§Faith]].
This Magic System is a fairly direct conversion of the D&D Wizard. It uses the §[[Perpared Casting|§Prepared Casting]] Model.
!! §[[Wolven|§Wolven Ancestry]] Ancestry
!!! [[§Faith]] and [[§War]]
God of Heroes, Slayer of Evil, Defender of the Good. Ne represents the moral position to [[protect|§War]] the [[sanctity or purity|§Faith]] and to [[slay|§War]] the forces of [[degradation|§Faith]].
Ner elements are //[[§Caeli (air)]]//, //[[§Glacies (ice)]]//, //[[§Ignis (fire)]]//, [[§Umbra (shadow)]], and [[§pluvia (rain)]].
---
<<subsume "§Tundra Humen">>
!! @Name
!!! Appearance
!!! Quote
!!! Roleplaying
* Physical "Hook" Mannerism
* Source Fear / Enneagram / Health / Vice / Virtue
* Keywords
* Conversation Tactic
!!! Background
//Essential Context// and //Interesting Anecdotes//
!!! Key Info
Character's part of the "Three Clues" for current scenario
!!! Stat Block
| SPD | DEX | Run | Leap | Swim |h
| 2| 8| 12m| 2m| 8m|
| STR | INT | EGO | PRE | COM |h
| 8| 8| 8| 8| 8|
| OCV | DCV | MOCV | MDCV |<|h
| 3| 3| 3| 3|<|
| PD | ED | Flash | MD | POW |h
| 2| 2| 0| 0| 0|
| CON | END | STUN | BODY | REC |h
| 8| 16| 16| 8| 4|
''Skills:''
* 12- :
* 11- :
etc
''Armor:''
''Attacks:''
''//Casidy Riverwheel//'', a Huven Sorceress, is nominally in charge of the city of Rygiholm, however, as Fenir's trusted "second" on the Mages Council, she has extensive sway over the politics of the rivers, from Mirror Sea to the glacier headwaters.
Casidy Riverwheel is married with a child or children and has had a lot of education.
Casidy appears to embody all the positive values held high in the community in which she was raised. She is popular, good looking, smart, and successful. Casidy may strive for money or status and can be, at times, a shameless self-promoter. However, this attitude is tempered by the drive to become a better person. Constantly working on herself physically, intellectually, professionally - but never shy about what status she desires. Casidy is worthy of being admired and acts as an excellent motivator for others, being all that she can be, leading by example. The thorn in her side, however, is that she is never finished improving. There's no end in sight and that's frustrating. Also, at times, she can be neglectful, choosing work over personal relationships. This subtype is friendly, loves to be the center of attention, has a large set of friends and wants to reach out to others. She's always charming with a social conscience.
Casidy's character flaw is based on the incorrect belief that success, love, and acceptance are earned through performance. Image is everything, to the point of deceiving herself of her own true feelings. This can interfere with her ability to care deeply for others.
When she's under pressure, she gets tied up in details and loses assertiveness. When she's relaxed and secure, she reflects on her true feelings and her authentic self.
Casidy connected with her covenent mother, finding someone who cared deeply but had problems of her own. These problems interfered with the covenent mother's ability to be with Casidy or at least to give full attention. The reaction was for Casidy to abandon her true self to become someone the covenent mother would accept. She has looked for acceptance in the people she admires. Casidy admires socially accepted people and tries to mirror them, becoming a better person to earn the admiration of the person she admires. She has emulated her hero and has met with great success in the process. However, failure has plagued her intimate relationships, having been neglected or non-existent.
Having had a lot of education, Casidy is very capable of handling anything that’s thrown at her. She has confidence in her abilities, which worries enemies and calms cohorts. She’s likely to have diverse talents that surprise others.
At work, Casidy can be hard working, high performing, and intensely goal-oriented. She may expect coworkers to work as hard, but realizes this is unrealistic. She’s attracted to jobs that have the potential for true greatness or fortune.
Casidy is very social, the star and life of the party, the kind of person everyone loves to talk to and just be around, personifying the in-crowd. She does have moments of weakness, though. The fear of rejection will make her work around situations she feels will result in rejection. Casidy might have to leave a room instead of meeting who she admires most. Also, she may confess to others she is not this wonderful person everyone sees but still has much work to do to get there. Casidy is a team player who gives others credit for their contributions. She's great at summing up the situation and coming up with a plan.
Dialogue examples: "I'm a slave to my calendar." "I'll work all night if I have to." "Why doesn't everyone work as hard as me?" Internal Dialogue: "I feel good when I'm successful."
Casidy can be charming and gracious in a relationship. Other characters may be attracted to her charm and successful image, but may later resent the "get things done" mode.
!! @[[Cast of Characters|@Cast of Characters]]
<<tabs "[tag[@Character]]" class:"tc-vertical">>
''//Fenir Goldspur//'', a Dwarven Runecrafter and Gladiator, heads the Mages Council in control of [[#The Magocracy of Falonde]]. He is unmarried with a horde of children and has had a lot of education.
Fenir is a leader who rules with a cooperative and caring hand. He is domestic, calm and warmly interactive with people. However, he is the chairman and needs to be involved, leading others toward a common and just goal. He's protective and honorable. However willful, this sub-type considers the feelings of the others on the team. He is people oriented, but is very confident in his ability to keep things under control. Fenir is the benevolent ruler of the kingdom that others trust and care for because he cares for them. He is able to rule and be loved, a rare personality type.
Fenir's character flaw is based on the incorrect belief that the world is an overly demanding place and the only way to get what you want is to be powerful and force your will on others.
When he's under pressure, he withdraws. When he's relaxed and secure, he uses his power to help others get what they want.
Fenir connected with his arena instructor but never fully identified with him, despite the ven taking on the role of the protector. Fenir learned from the arena instructor the importance of protecting who or what they love. As an adult, Fenir has extended the abilities he developed of using willpower and protection of a team to get things done. He has developed a loyal team over the years. If he ever got in a power play with another authority, his followers would stay with him, possibly literally following him to the ends of the earth.
Having had a lot of education, Fenir works on the assumption that others know he should be in control or in power. He’s surprised when he meets resistance to his drive for power. He also tends to “float above” everyone and avoids getting directly involved in smaller battles.
At work, Fenir is a bold, take charge kind of person – a tough negotiator who likes a worthy opponent. Under the surface lies a soft heart, driven to protect the underdog.
Fenir is a kind ruler and, as such, wants to control things by understanding others and using that knowledge to direct them. "You love soda. You want to get us both one?" He is supportive and protecting, seeing that protecting the team is as important as any goal that must be achieved. He is likely to run into battle with aggressive and purposefulness and at the same time keep members of his ven safe.
Dialogue examples: "How are you doing?" "Keep down!" "You're doing great." Internal Dialogue: "I can do it. I feel good when I'm powerful."
Fenir can be self-confident and protective in a relationship. He is direct and persistent. Other characters feel safe with his strength, but sometimes his "get things done" attitude can be tiring. He'll champion the underdog, taking on "projects" and may intervene to help someone he feels isn't looking out for themselves.
''//Hart Songstring//'', a bard, is the spy and shadow master for the Mages Council. He is always seeking out malcontents and weakness in the loyalty of others. He is often involved in various plots against the council, its members, the nobles, the temples, the armies, at any given time. Despite coming to the edge of successful regime change, he is too much of a coward to allow any plot to succeed.
Hart Songstring is unmarried with no children and has had a lot of education.
Hart is clinging desperately to the last thread of self-reliance he has. He has never trusted his own decision-making abilities and has associated very closely to an authority figure that promised to make the decisions. Because of a troubled past, he initially chose a necromancy cult. Only with the death of the cult did he may find it possible to break free from their grip. He is extroverted, people oriented, and interactive with the world, but still, somehow, misguided by forces he feels dependent upon and yet trapped by--currently [[@Fenir Goldspur]]. He can become hysterical if he feels he’s ruined his security.
Hart's character flaw is based on the lack of faith in himself, others, and the world. He's driven by the fear that he won't be able to handle all the dangers present in the universe.
When he's under pressure, he tends to act without thinking. When he's relaxed and secure, he becomes less suspicious, relaxed and trusting.
Hart had a very strong protective father figure, who may or may not have actually been his father. This figure took away this child's ability to be self-reliant. He was taken care of and taught that his ideas and decisions were not good. Hart has always questioned his own abilities. As an adult, he carries his residual feelings for the protective figure into whatever system he has associated with. He spent a long time being associated with this system, be it law, medicine or a plot to take over a government. He has been there a long time, an outspoken member.
Having had a lot of education, Hart displays an outward confidence and security in the information he knows. But inside lies insecurities about the quality of the education he received. He is vigilant against possible attacks to these chinks in his armor.
At work, Hart can be paranoid, suspicious, and blaming. He tends to react to his own insecurity by seeking protection from authority or by trying to eliminate the authority figure. He’s attracted to security work or causes.
Hart tows the party line and speaks it publicly. He is outspoken, extroverted, willing to walk down any street and hand out flyers or spout propaganda. He identifies strongly with whatever bigotry or negativity is present in the system and brings that to the forefront with an aggressive force that makes him seem psychopathic. Angry at systems and how they keep people trapped, yet part of a system to try and stop it.
Dialogue examples: "I follow all the rules." "You can count on me." Internal Dialogue: "I feel good when I'm loyal. I'm cautious."
Hart can be volatile and divisive in a relationship, often seeking an authority figure or system to take control of his out-of-control life. Others are drawn to his loyalty, but can later be hurt when his anticipation of problems extends to the relationship. He questions others' intentions, wanting to know what is behind their behavior - eventually feeling paranoid, that others are out to get him.
* Character Race: Beast man (leonoid)
* Culture: Barbarian
* Social Status: Comfortable
*
!! [[@The Advance Agent]]
This villain is the vanguard of some sort of invasion; often, he is trying to open up a portal to a dimension full of trapped demons and evil gods. He is best used for horror or espionage adventures.
''//Character Level and Abilities//'': Experience level significantly higher than the player-characters' average; often a magic-user or cleric
!! [[*Loopy Planning]]
Adventure Design:
* (1) daily news on the street,
* (2) upcoming,
* (3) activities of the major NPCs,
* (4) the status of dangling plot threads
* (5) the developing status of the campaign's hot spots
---
Encounter Design:
| % of Encounters | Difficulty |h
| 30%| below Effective-Character-Level |
| 50%| at Effective-Character-Level |
| 15%| 1 to 4 Ranks above Effective-Character-Level |
| 5%| 5+ Ranks above Effective-Character-Level |
---
<div class="tc-table-of-contents">
<<toc-selective-expandable '*Loopy Planning'>>
</div>
---
<<sequence-horizontal filter:"[tag[gm struct]sort[sequence]]" limit:11 class:"light">>
!! *Game Structural Recommendations: [[01 Flexibility|*Recommendations: 01 Flexibility]]
First, the structure should be flexible. Flexibility for the players means the ability to make choices which are not constrained by the structure. Flexibility for the GM means the ability to include a broad and creative array of content into the “containers” of the structure.
!! *Game Structural Recommendations: [[02 Meaningful Decisions|*Recommendations: 02 Meaningful Decisions]]
Second, the default action should usually allow the players to make meaningful decisions. Roleplaying games are primarily about making choices and structures which don’t allow for those choices to be made will, in my opinion, struggle. Furthermore, a structure which doesn’t include points at which players are free to make decisions is probably going to strongly inhibit their opportunities to make choices which are not constrained by the structure.
(As a counterexample, consider a hypothetical piratecrawl structure in which the players choose a direction to sail and then the GM randomly determines what type of ship they run into: This has a great deal of flexibility for the GM, since he’s basically free to include anything which fits into a ship-shaped container. But you’ll notice that the players’ decision of sailing direction is meaningless, which will result in less than satisfactory play.)
!! *Game Structural Recommendations: [[03 In-Character Decisions|*Recommendations: 03 In-Character Decisions]]
Third, assuming that we’re talking about RPGs and not STGs, the players’ decisions within the game structure should be associated and in-character.
(For pretty much all the same reasons that the mechanics of an RPG should be associated.)
!! *Game Structural Recommendations: [[04 Reward Structures|*Recommendations: 04 Reward Structures]]
Fourth, the reward structures of the game should probably be tied into the default actions and default goals of the game structure.
(The easy example here, as I’ve mentioned before, is D&D: The default dungeoncrawl / combat game structure rewards you with XP for the default action of fighting monsters and with GP (and XP) for the default goal of treasure-hunting.)
!! *Game Structural Recommendations: [[05 Fun|*Recommendations: 05 Fun]]
Fifth, the game structure should be fun. This, of course, can be a somewhat nebulous quality and will also vary from one group to the next. But the important point here is that a complete game structure will act as the foundation for your scenario or campaign: If that foundation is fun, then everything you and your players build on top of it will be fun. If it is simply workmanlike bookkeeping, on the other hand, you may still end up having fun if the stuff you build on top of it is awesome enough, but it’ll be less of a sure thing.
!! *Game Structural Recommendations: [[06 Easy GM Prep|*Recommendations: 06 Easy GM Prep]]
Sixth, the game structure should be easy to prep. Part of this is providing a clear structure for prep (and I think you’ll find that clearly defined game structures will simultaneously provide straight-forward guidance on what you need to prep). But it’s also about limiting the amount of prep necessary for play to begin. (If your structure requires the GM to prep 500 pages of material in order to use it, it’s not going to see a lot of use in the real world.) And all of this, of course, can be helped by giving the GM tools which assist with prep (like the old dungeon- and hex-stocking tables that used to be a mainstay of D&D).
!! *Game Structural Requirements: [[01 Trigger|*Requirements: 01 Trigger]]
Each part of the game structure requires a clear and specific trigger. (For example, combat is triggered when someone wants to make an attack and initiative is determined.) Vertically integrating your structure requires that the macro-structure will deliver the triggers necessary for the micro-structures. (For example, the dungeoncrawl structure delivers the trigger for combat when you enter a room filled with hostile monsters.)
!! *Game Structural Requirements: [[02 Scenario Hook|*Requirements: 02 Scenario Hook]]
Second, you need a default scenario hook. This is actually just the trigger for the macro-structure which contains the micro-structures and it doesn’t need to be terribly complex: For example, the default scenario hook for a dungeoncrawl is “the dungeon entrance is in front of you”.
!! *Game Structural Requirements: [[03 Default Goal|*Requirements: 03 Default Goal]]
Third, you need a default goal. This is what motivates the players to engage the scenario hook. For example, the PCs go into the dungeon (i.e., accept the hook presented by the dungeon entrance) because they want to find treasure.
!! *Game Structural Requirements: [[04 Default Action|*Requirements: 04 Default Action]]
Fourth, you need a default action: Picking an exit in the dungeoncrawl; picking a direction in a hexcrawl; looking for clues in a mystery; attacking an enemy during combat; etc.
!! *Game Structural Requirements: [[05 Closing the Loop|*Requirements: 05 Closing the Loop]]
Fifth, taking the default action should return you (either directly or after a sequence of actions) to a point where you can take that default action again. This is the point where you close the resolution loop and complete the game structure.
!! *Thwart
This is a classic fantasy-adventure plot: The characters learn of some horrible plan made by a monstrous enemy, and must thwart it before the kingdom is lost or the world is destroyed. This is an epic goal, and usually requires that the characters go to all sorts of places, rounding up allies and artifacts, before being strong enough to face their enemy.
<div class="tc-table-of-contents">
<<toc-selective-expandable '&Free'>>
</div>
<div class="tc-table-of-contents">
<<toc-selective-expandable '#city'>>
</div>
<div class="tc-table-of-contents">
<<toc-selective-expandable '#Gazetteer'>>
</div>
''Size''
The city of Beagrove covers an area of approximately 228 acres, with a total population of 13,839 thousand people. The population is almost entirely goblen (96%), with much smaller numbers of humen (2%), halflen (1%) and other races (1%).
The city has 40 noble houses. The peace is kept by 107 guardsmen, and there are 20 advocates to assist with legal matters. For those more concerned about their soul, there are 191 clergymen and 11 priests.
---
<details class="tc-details">
<summary>Leadership</summary>
Wealth The city's gold piece limit is 40,000 gp. Anything, whether it be mundane or magical, having a price under that limit is most likely available for purchase. The total amount of available coinage, or the total value of any given item of equipment for sale at any given time, is 27,678,000 gp.
Power
Conventional (LN)
Conventional (CG)
Magical (LG)
by Class
Level: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Barbarian 24 4 8 2 4 1 2
Bard 24 4 8 2 4 1 1 1
Cleric 24 12 4 2 1 1 1
Druid 24 8 4 4 2 2 1
Fighter 40 20 8 2 4 1 1 1
Monk 24 4 8 2 4 1 1 1
Paladin 24 8 4 4 2 2 1
Ranger 24 8 4 4 2 2 1
Rogue 48 24 12 6 1 2
Sorcerer 24 8 4 4 2 2 1
Wizard 24 8 4 4 2 2 1
Adept 66 8 4 4 2 2 1
Aristocrat 66 4 8 2 4 1 1 1
Commoner 11931 24 4 8 2 2 2 1 1
Expert 393 24 12 2 4 1 2
Warrior 656 4 8 2 4 1 2
---
Trade
Bakers 9 Butchers 17 Furriers 24 Magic Shops 5 Roofers 5 Tanners 6
Barbers 30 Carpenters 17 Glovemakers 7 Maidservants 29 Ropemakers 10 Taverns 49
Bathers 4 Chandlers 9 Harness-makers 3 Masons 13 Rugmakers 2 Watercarriers 20
Beer-sellers 9 Chicken Butchers 12 Hatmakers 15 Mercers 30 Saddlers 18 Weavers 15
Blacksmiths 8 Coopers 19 Hay Merchants 4 Old Clothes 43 Scabbardmakers 16 Wine-sellers 19
Bleachers 8 Copyists 4 Illuminators 4 Painters 6 Sculptors 10 Woodcarvers 8
Bookbinders 7 Cutlers 5 Inns 3 Pastrycooks 42 Shoemakers 131 Woodsellers 3
Booksellers 1 Doctors 4 Jewelers 35 Plasterers 6 Spice Merchants 13
Buckle Makers 7 Fishmongers 15 Locksmiths 9 Pursemakers 8 Tailors 26
Other
''Size''
The city of Rygiholm is situated on islands in the midsts of the delt and covers an area of approximately 371 acres (about half a square mile), with a total population of 22,513 thousand people. The population is mostly dwarf (79%), with smaller numbers of humans (9%), halflings (5%), elves (3%), gnomes (2%), half-elves (1%) and half-orcs (1%).
---
The city has 169 noble houses. The peace is kept by 142 guardsmen, and there are 14 advocates to assist with legal matters. For those more concerned about their soul, there are 458 clergymen and 25 priests.
<details class="tc-details">
<summary>''Leadership''</summary>
<span>
---
<<subsume "@Fenir Goldspur">>
<<subsume "@Casidy Riverwheel">>
<<subsume "@Hart Songstring">>
---
</span>
</details>
<details class="tc-details">
<summary>''Wealth''</summary>
<span>
The city's gold piece limit is 40,000 gp. Anything, whether it be mundane or magical, having a price under that limit is most likely available for purchase. The total amount of available coinage, or the total value of any given item of equipment for sale at any given time, is 45,026,000 gp.
---
</span>
</details>
<details class="tc-details">
<summary>''Occupations''</summary>
<span>
{{||CityViewTemplate}}
---
|Level: | 1 | 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20|h
|!Barbarian | 24| 8| 4| - | 4| 2| - | - | - | 2| - | - | 1| - | - | - | - | - | - | - |
|!Bard | 24| 4| 8| - | 2| 2| 2| - | - | 1| - | - | 1| - | 1| - | - | - | - | - |
|!Cleric | 24| - | 12| - | - | 4| 2| - | - | - | - | - | 2| - | 1| - | - | - | - | - |
|!Druid | 24| 4| 8| - | 2| - | 4| - | - | 1| - | - | - | 1| 1 | - | - | - | - | - |
|!Fighter | 32| 8| 8| 4| - | 2| 2| 2| - | - | - | - | 1| 1| - | - | 1| - | - | - |
|!Monk | 24| 4| 8| - | 2| 4| - | - | - | 1| - | - | 2| - | - | - | - | - | - | - |
|!Paladin | 24| 4| 8| - | 2| 4| - | - | - | - | 1| 2| - | - | - | - | - | - | - | - |
|!Ranger | 24| 8| 4| - | 4| 2| - | - | - | - | 2| 1| - | - | - | - | - | - | - | - |
|!Rogue | 24| - | 12| - | - | 4| 2| - | - | - | - | 1| 1| - | 1| - | - | - | - | - |
|!Sorcerer | 24| 4| 8| - | 2| 4| - | - | - | 1| - | 1| 1| - | - | - | - | - | - | - |
|!Wizard | 24| 8| 4| - | 4| 2| - | - | - | - | 2| 1| - | - | - | - | - | - | - | - |
|!Adept | 109| 8| 4| - | 4| - | 2| - | - | - | 2| - | - | 1| - | - | - | - | - | - |
|!Aristocrat | 109| 8| 4| - | 4| 2| - | - | - | 1| 1| 1| - | - | - | - | - | - |- | - |
|!Commoner | 19,890| 24| - | 4| 8| - | - | - | 2| 4| - | - | - | - | - | - | - | 1| - | 2|
|!Expert | 656| 16| 4| 4| 4| - | 2| 2| - | 2| - | - | - | - | 1| - | 1| - | - | 1|
|!Warrior | 1,093| - | 12| - | - | 2| 4| - | - | - | - | - | 1| 1| 1| - | - | - | - | - |
</span>
</details>
''Size''
The city of Sahyrst covers an area of approximately 686 acres, with a total population of 41 thousand people. The population is largely elf (37%), with smaller numbers of humans (20%), halflings (18%), dwarves (10%), gnomes (7%), half-elves (5%) and half-orcs (3%).
''Wealth''
The city's gold piece limit is 100,000 gp. Anything, whether it be mundane or magical, having a price under that limit is most likely available for purchase. The total amount of available coinage, or the total value of any given item of equipment for sale at any given time, is 208,205,000 gp.
''Power''
Magical (LG),
Magical (LE),
Magical (LN),
Conventional (LG)
''by Class''
{{||LowerCityViewTemplate}}
The lands claimed by Falonde occupy the northeastern lands surrounding the #[[Mirror Sea|#Mirror Sea]]. Much of the land is desert or high-altitude arid plains with minimal rainfall. However, the glacier-fed rivers which empty into the #[[Mirror Sea|#Mirror Sea]] provide narrow bands of fertile ground.
---
<details><summary>
!!''History''
</summary>
{{Falonde History}}
</details>
---
<details><summary>
!!''Government''
</summary>
{{^Falonde Government}}
<details><summary>
!!!''Castles''
</summary>
The Magocracy of Falonde has 70 active castles and 27 ruined. Of these, 56 castles and 19 ruined are in civilized lands, and 14 castles and 8 ruined are in the wilderness, along borders, etc.
</details></details>
---
<details><summary>
!!''Geography''
</summary>
The Magocracy of Falonde covers an area of 176 thousand square miles between the eastern shore of the [[#Mirror Sea]] and the [[#Altas Mountains]]. Of this, only 19% (33 thousand sq. miles) is arable land--along the three rivers, and 80% (142 thousand sq. miles) is mostly high-desert scrubland wilderness.
<details><summary>
!!!''Economy''
</summary>
The Falonde economy is based off of its rich iron bogs, nickle, copper, and tin mines--providing them a significant military edge over their neighbor.
</details>
<details><summary>
!!!''Transportation''
</summary></details></details>
---
<details><summary>
!!''Demographics''
</summary>
The Magocracy of Falonde has a total population of 3.5 million people.
<details><summary>
!!!''Settlements''
</summary>
The largest city ([[#Rygiholm]]) has a population of 22 thousand people, the second largest ([[#Peagrove]]) 13 thousand. There are 2 other cities of note in the kingdom, and 28 towns. The remaining population lives in numerous small villages, isolated dwellings, etc.
</details></details>
---
<details><summary>
!!''Culture''
</summary>
<details><summary>
!!!''Education''
</summary></details>
<details><summary>
!!!''Literature''
</summary></details></details>
''Physical Area''
The Republic of Harloress covers an area of 100 thousand square miles. Of this, 37% (37 thousand sq. miles) is arable land, and 62% (62 thousand sq. miles) is wilderness.
---
''History''
---
''Government''
//''Structure''//
{{^Democracy}}
//''Philosophy''//
{{^Theodemocracy}}
//''Form''//
{{^Voting Conclave}}
''Castles''
The Republic of Harloress has 120 active castles and 36 ruined. Of these, 78 castles and 29 ruined are in civilized lands, and 42 castles and 7 ruined are in the wilderness, along borders, etc.
---
''Geography''
''Economy''
''Transportation''
---
''Demographics''
The Republic of Harloress has a total population of 6 million people.
''Settlements''
The largest city, [[#Sahyrst]], has a population of 41 thousand people, the second largest 20 thousand. There are 3 other cities of note in the kingdom, and 20 towns. The remaining population lives in numerous small villages, isolated dwellings, etc.
---
''Culture''
''Education''
''Literature''
!! %[[Adventure Prep 0|%Adventure Prep 0]]
!!! ''Theme'' ([[*Mystery]])
Here, the characters are presented with a mystery -- often a murder -- and have to find out who did what to whom.
<<subsume "*Thwart Monstrous Plan">>
!!! ''Story Hook'' ([[*Legend and Rumor]])
In this classic story hook, the hero stumbles across some new or long-forgotten knowledge that promises great treasure or gain.
!!! ''Plot''([[* Event]])
For this plot, choose some sort of event -- a tournament, a holiday, a celebration called by the king, a masked ball, or whatever -- and set the commencement of the Master Villain's plan against that backdrop.
!!! ''Climax'' ([[*Divine Retribution]])
Here, the heroes' goal has been to alert the gods that the Master Villain threatens them or their plans; in the last scenes of the adventure, as our heroes face an overwhelming enemy force, the gods bring down their divine retribution on the villain, causing a massive earthquake, tidal wave, lightning storm, or flood of monsters. This is all well and good, but the heroes are too close and must escape the fringe effects of this awesome disaster. A variant on this is the Natural Disaster. No gods are actually involved, but the Master Villain has been tampering with the delicate forces of nature. He may, for instance, have been powering his master spell with the energies of a volcano. When the heroes attack the scene of his spellcasting, the spell goes out of control and so does the volcano. The villain is consumed in the eruption and the heroes must escape or be consumed themselves.
!!! ''General Setting'' ([[*Cosmopolitan City]])
Most of the story takes place in a large, sophisticated city; center the villain's plot and activities around that city. This setting is best suited to adventures involving more people than monsters; most of your villains should be human or demi-human.
!!! ''Specific Setting, the First'' ([[*Mansion of a Lord]])
This can be the home of a villain -- the characters may have to break in and rescue someone or steal evidence, or break out if they've been captured -- or of a heroic ally, in which case it may be used as the headquarters for the heroes' plans and activities.
!!! ''Specific Setting, the Second'' ([[*Temple/Church]])
This can be either the church of some lofty and good diety, or the dark and grisly temple of some horrid deity (doubtless filled with evil soldiers and monsters), or even the temple that the madman villain has dedicated to himself for when he becomes a god.
!!! ''Master Villain'' ([[*Advance Agent]])
This villain is the vanguard of some sort of invastion; often, he is trying to open up a portal to a dimension full of trapped demons and evil gods.
!!! ''Minor Villain, behind Door Number 1'' ([[*Snivelling Vizier]])
The Vizier is a throne-room villain. Functionally, he's rather like the Hard-Eyed Advisor, offering tactics and advice to his master; but he's an ooily, sleazy, cowardly sycophant. He's usually brilliant in his field of advice but has no combat abilities.
!!! ''Minor Villain, behind Door Number 2'' ([[*Single-Minded Soldier]])
This most trustworthy of villain minions is the experienced, competent, persistent soldier -- a field-trained officer who serves the villain with military precision. He is usually encountered in the field as leader of the villain's field operations. He is not encountered directly until the middle of or the latter part of the adventure; until then, the heroes encounter only his subordinates.
!!! ''Ally/Neutral'' ([[*Ingenue in Distress]])
The heroes must protect some defenseless young innocent who is in danger from the villains. This person, perhaps the sheltered son or daughter of a nobleman or merchant, has no abilities at all but is sweet, charming, and in great need of help.
!!! ''Monster Encounter'' ([[*Nocturnal Predator]])
This is a classic monster encounter; the arrival of a hungry carnivore in the middle of the night. Usually, this attack happens to heroes camping between villages or out in the deep wilderness; a wild animal, attracted by food odors (from the heroes' campfire or from the heroes themselves) sneaks in for a bite.
!!! ''Character Encounter'' ([[*Old Friend at the Wrong Time]])
When the heroes are trying to sneak through a guardpost, citadel, or city where they can't afford to be recognized, one of the characters' old friends recognizes him and loudly renews their acquaintance in full view of the guards looking for the characters. This usually leads to an exciting chase as the heroes must escape.
!!! ''Deathtrap'' ([[*Avalanche]])
This is an outdoors trap. Some time when the heroes are in a narrow canyon or gorge, or are on a snow-covered mountain, their enemies can arrange to dump an avalanche upon them (rocks and boulders in the first instance, snow in the second).
!!! ''Chase'' ([[*Water]])
Don't forget the water chase: Whether it's a battle of seamanship between naval vessels, a chase of rafts toward the inevitable waterfall ahead, a contest of canoeing ability, or a chase between the villain and his giant shark vs. the heroes and their dolphin friends, the water chase can be a distinctive and dramatic one.
!!! ''Omen/Prophesy'' ([[*Innocent Fulfills Prophecy]])
An innocent could fulfill a prophecy -- one which endangers his/her life. This innocent might, for instance, be the one who is supposed to slay the king, but is not a mighty adventurer able to protect himself from the king; the heroes may find themselves sheltering and helping this poor dupe.
!!! ''Secret Weakness'' ([[*Lack of Familiarity]])
The Master Villain, if he comes from the past or another dimension, or belongs to an alien race, might be sufficiently unfamiliar with this world that he essentially defeats himself. How? By making incorrect guesses about human behaviour. One classic error involves underestimating the human capacity for self-sacrifice.
!!! ''Special Condition'' ([[*Coping with a Curse]])
The curse might be making the hero progressively uglier, might be draining out his life-force (he's losing experience which will be retruned if he succeeds), or might be making him progressively insane. Each day, as he sees his reflection in a mirror or pond or fountain, he'll know himself to be less than he used to be.
!!! ''Moral Quandry'' ([[*Saving Quandry]])
Finally, another classic quandry puts the heroes in the position of choosing between a grand opportunity to hurt the Master Villain -- or saving the lives of a number of individuals.
!!! ''Red Herring'' ([[*False Path to the Artifact]])
Once again, if the heroes have had too easy a time finding the artifact capable of destroying the villain, give them trouble this way: When they get to the place where the artifact is supposed to be contained, they find the coffer or chamber or whatever empty, obviously looted by robbers, who have scrawled such remarks as "Kelrog was here!" upon the walls.
!!! ''Cruel Trick'' ([[*Villain is Related to Hero]])
In this very irritating complication, one of the heroes discovers that the Master Villain is related to him. The villain might be his long-lost father or twin; perhaps this relative is not long-lost after all, but has secretly been a Master Villain for years, and only now has the hero discovered it.
!! %[[Calendar|%Calendar]]
<div class="tc-table-of-contents">
<<toc-selective-expandable '%Calendar'>>
</div>
In this structure power is distributed to the majority of people through popular elections or random selection. Democracy calls on the people to participate in the construction and operation of their government.
The country is ruled by the Mages Council based in [[#Rygiholm]]. Many of the noble houses are survivors of the "revolution", led by [[@Fenir Goldspur]], who installed the current [[oligarchy|^Oligarchy]] government.
<details><summary>
!!!!//''Governmental Values''//
</summary>
Honor, Loyalty, Education, Duty, Compassion
</details>
<details><summary>
!!!!//''Power Structure''//
</summary>
{{^Oligarchy}}
</details>
<details><summary>
!!!!//''Philosophy''//
</summary>
{{^Magocracy}}
</details>
<details><summary>
!!!!//''Type''//
</summary>
{{^Magic Users Guild}}
</details>
\whitespace trim
\define newHereActions()
<$set name="tags" filter="[<currentTiddler>] [{$:/config/NewTiddler/Tags}]">
<$set name="newTitle" value=<<unusedtitle>>>
<$action-createtiddler $basetitle=<<newTitle>> tags=<<tags>> $template={{$:/config/NewTiddler/GovernmentTemplate/Name}}/>
<$action-sendmessage $message="tm-edit-tiddler" $param=<<newTitle>>/>
</$set></$set>
\end
\define newHereButton()
<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/new-here-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text={{$:/language/Buttons/NewHere/Caption}}/>
</span>
</$list>
</$button>
\end
<<newHereButton>>
<div class="tc-table-of-contents">
<<toc-selective-expandable '^Governments'>>
</div>
__-abstract-__
<details><summary>
!!!!//''Governmental Values''//
</summary>
Equality, Eloquence, Kindness, Logic, Futurism
</details>
<details><summary>
!!!!//''Power Structure''//
</summary>
{{^Democracy}}
</details>
<details><summary>
!!!!//''Philosophy''//
</summary>
{{^Theodemocracy}}
</details>
<details><summary>
!!!!//''Type''//
</summary>
{{^Voting Conclave}}
</details>
The magic users guild is a type of oligarchy in which organized magic users have the bulk of the power in society due to public reliance on their spellcasting. This type of government usually comes up in societies which rely on magic for basic survival like desert civilizations whose water sources have dried up or frozen countries whose mages thaw the earth in order to grow crops.
Magocracy--This society is ruled by a group of powerful magic users that maintain their power in society through the combined use of magic. Mageocracies vary wildly from goodly wizards that use their combined might to defend their citizens from invading forces to villainous sorcerers that brainwash the citizenry into serving them as unthinking puppets.
In this power structure, power is split between a small group of people who have a major impact on the structure and daily lives of its citizens. Social stratification and hierarchy are rather severe between the oligarchs and the general population, as oligarchs generally structure society to sustain their own power.
<div class="tc-table-of-contents">
<<toc-selective-expandable '^Organizations'>>
</div>
In this system a set of religious texts serves as the basis for the democracy of the society. Theodemocracies vary wildly by the type of religion the majority practices, but all use faith as the basis of their individual democracies.
This society makes political decisions as a part of it’s religious observances, all members of the faith vote on community and state issues within the boundaries of their place of worship. All citizens have the right to come and vote on public issues but because the church is responsible for informing the electorate about when decisions will be made, individuals outside the faith often miss important elections.
!! +101: [[Create a Local Map|+101: Create a Local Map]]
What goes on to a map? Landmarks, Points of Adventure, Encounters, Danger Zones? How to Key.
How much is needed? How soon?
!!! Map Types
* Node-Based Maps
* Hex-Based Maps
* Dungeon-Style Maps
!!! Place Maps
* Ship Maps
* City Maps
* Port Maps
* Wilderness Maps
!!! [[+And All I Got Was...]]
The character's starting money is the remnants of a trust fund started by his parents.
!! [[+Behemoth Recovery]]
|Cost |Ability |<|<|<|<|h
| 10|//Behemoth Recovery//: | +15|REC |(30 Active Points)|<|
| | | | |Only When Taking a Non-Post Segment 12 Recovery in Combat (-2.0) |<|
''Total Cost:'' + 10 Character Points
!! [[+Behemoth Resilience]]
|Cost |Ability |<|<|<|<|h
| 5|//Behemoth Resilience//: | Healing| +1 BODY |Reduced Endurance (0 END; + 0.5), Persistent (+ 0.5) (20 Active Points)|<|
| | | | |Extra Time (Regeneration Only): 1 Hour (-2.25), Self Only (-0.5) |<|
''Total Cost:'' + 5 Character Points
!!! [[+Every Orphan's Hope]]
The character's parents are not dead and still seek his whereabouts.
!! [[+Fearless]]
|Cost |Ability |<|<|<|<|h
| 5|//Fearless//: | +10|PRE |Defensive Use Only| (-1) |
''Total Cost:'' + 5 Character Points
!! [[+Frightening Intensity]]
|Cost |Ability |<|<|<|<|h
| 5|//Frightening Intensity//: | +10|PRE |Offensive Use Only| (-1) |
''Total Cost:'' + 5 Character Points
!! [[+Heavy]]
|Cost |Ability |<|<|<|<|h
| 2|//Heavy//: |Knockback Resistance: | - 2m|<|<|
''Total Cost:'' + 2 Character Points
!! [[+Heroic Physique]]
|Cost |Ability |<|<|<|<|h
| 5|//Heroic Physique//: | +5|PRE |<|<|
''Total Cost:'' + 5 Character Points
!! [[+Iron Jawed]]
|Cost |Ability |<|<|<|<|h
| 4|//Iron Jawed//: | +4|PD |<|<|
''Total Cost:'' + 4 Character Points
!! [[+Lethal]]
|Cost |Ability |<|<|<|<|h
| 10|//Lethal//: | Deadly Blow:| +1d6 |Killing, any circumstance, any weapon|<|
''Total Cost:'' + 10 Character Points
!! [[+Moxy]]
|Cost |Ability |<|<|<|<|h
| 10|//Moxy//: | +10|STUN |<|<|
''Total Cost:'' + 10 Character Points
!!! [[+Orphaned Bastard Brothers]]
Character will have up to four (4) companions of a similar age who are like family to him. Select these companions from the [[§Companions]] section.
!! +[[Pluses|+Pluses]]
How does one go about prepping a campaign (macro scale) or an adventure (micro scale)?
{{+101: Create a Local Map}}
Campaign Structure:
# Create local map; populate map with landmarks, places of adventure, and trade ports (societies and laws)
# Determine trade goods, travel zones, trade routes
# Travel and Ship Economics
# Vertical triggers
## "Voyages" (instead of adventures or dungeons) tied to keyed routes
## Random route event triggers
## Random encounters along routes
## Weighted (safey codes for) routes and randomness
## //Ars Magica// coventus play to fill "empty" voyages
## Patrons and Dockside Encounters
## Hijacking and Mutinies
## Bomb arboard
## Plague
## Lost
## Collision
## Smuggling
## Parties and Festivals
## Mysteries, McGuffins -- "Race to the MacGuffin" and "MacGuffin keep away"
## Raids and Heists
## Guest of the Week / Passengers for Passage.
<div class="tc-table-of-contents">
<<toc-selective-expandable '+Pluses'>>
</div>
!! [[+Stud Muffin]]
|Cost |Ability |<|<|<|<|h
| 2|//Stud Muffin//: | +4|COM |<|<|
''Total Cost:'' + 2 Character Points
!! [[+Tough]]
|Cost |Ability |<|<|<|<|h
| 4|//Tough//: |Damage Resistance: | 4 PD| 4 ED|<|
''Total Cost:'' + 4 Character Points
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">School</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Concentration</th>
<th style="background: #b3ad97;">G/I</th>
<th style="background: #b3ad97;">Target</th><th style="background: #b3ad97;">Range</th><th style="background: #b3ad97;">Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Bardic]level[1]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!school}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="right">{{!!concentration}}</td>
<td align="center">{{!!gestures}} / {{!!incantation}}</td>
<td align="center">{{!!target}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!area}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">School</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Concentration</th>
<th style="background: #b3ad97;">G/I</th>
<th style="background: #b3ad97;">Target</th><th style="background: #b3ad97;">Range</th><th style="background: #b3ad97;">Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Clerical Spells]level[1]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!school}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="right">{{!!concentration}}</td>
<td align="center">{{!!gestures}} / {{!!incantation}}</td>
<td align="center">{{!!target}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!area}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
Target's "soul" is torn from his body; it remains in whatever place "souls" go for 1 week/2 points of failure. The soul can be returned early only through ~[[Lifegiving|~Lifegiving]]. Target is unconscious until the soul is restored; even for subconscious activity, he is at -15.
As per ~[[Absolution|~Absolution]] except the only way to return the soul to the target's body is using ~[[Lifegiving|~Lifegiving]].
The Sortiligist fusses over clothing making adjustments, mixing and matching, and magically a new wardrobe is affected.
---
''Effect:'' Cosmetic Transform 2d6 (Clothes Into Any Other Clothing, Dispel Magic), Lingering +1 Phase (+1/4), Improved Target Group (+1/4) (15 Active Points); 1 Continuing Charge lasting 1 Extra Phase (-1 3/4), Extra Time (Full Phase, Delayed Phase, -3/4), No Range (-1/2), Limited Target (Clothes Only; -1/2), Incantations (Complex; -1/2), Concentration 1/2 DCV (-1/4), Gestures (-1/4), Requires A Skill Roll (Active Point penalty to Skill Roll is -1 per 20 Active Points High Society; -1/4)
!! ~[[Ache|~Ache]] (Spell)
As per ~[[Pain|~Pain]], except the ache seems natural and reduces the target's hits by 10% until cured (the caster must specify the nature of the ache). The target is unaware that the spell has been cast upon them, since the spell's effects ramp up gradually.
You throw a small orb of acid at the target. You must succeed on a ranged attack to hit your target. The orb deals 1 point of acid damage.
---
''Effect'': Ranged Killing Attack 1 point (vs. PD), Penetrating (+1/2), Uncontrolled (+1/2), Continuous (+1) (15 Active Points); 1 Continuing Charge lasting 1 Turn (-1 1/4), Gestures (-1/4), Incantations (-1/4), Extra Time (Delayed Phase, Only to Activate, -1/4)
!!! §Description
The caster projects a 4m long flat or curved "wall" (which stands 4m tall) of twisting winds through the wall for as long as the caster can maintain concentration upon the wall.
!!! ~Effect
Extra Time (Full Phase, Only to Activate, Delayed Phase, -1/2), OIF (Holy Symbol; -1/2), 1 Continuing Charge lasting 1 Hour (-1/4), Incantations (-1/4), Gestures (-1/4)
<<<
Force Wall: 4 rPD; Arc across two hexes (2"), standing two hexes tall (2"); (Real Cost: + <$text text={{{ [[14]divide[2.75]fixed[0]] }}} /> points)
Change Environment: two hex, radius (2"); -6m movement; (Real Cost: + <$text text={{{ [[16]divide[2.75]fixed[0]] }}} /> points)
<<<
!! [[~Always Defers to Liege]] (and/or Other Nobility)
|Common |Strong | - 15|Character Points |
The character greatly respects his liege or the nobility, either because of their achievements or their position. As a result, he will always let them speak first and foremost, listen to what they have to say, give them preferential treatment, etc. The character is not bound to follow the deferred to person's orders, but certainly will give them all the consideration they deserve.
!! [[~Always Obeys Orders of His Liege]]
|Very Common |Strong | - 20|Character Points |
|Very Common |Total | - 25|Character Points |
This character does what he's told by those appointed in positions of authority above him without hesitation and without question. This is a Disadvantage that should only apply to characters who are a part of a military or paramilitary organization (such as his nation's Army, or Intelligence organizaion, or Law Enforcement.) Since almost all of their daily activities are dictated by their organization, the Frequency of this Disadvantage is Very Common. Most characters who take this Disadvantage should take it at Strong level, since a character with Total commitment is basically a fanatic with little to no will of his own. This Disadvantage should not be taken at the Moderate level; [[~Feels Loyalty to His Liege]] should be taken instead.
<div class="tc-table-of-contents">
<<toc-selective-expandable '~Ancestries'>>
</div>
!!! ~PS: [[Animal Husbandry|~Professional Skill: Animal Husbandry]]
''Type:'' Interaction Skill (roll: 7 + (PRE/3) or less)
''Cost:'' 2 Character Points for a base roll with one category (or 1 Character Point for a base roll with a specific subcategory); each
additional category or subcategory costs 1 Character Point; +1 to the roll with all categories and subcategories known per +2 Character Points
This Interaction Skill allows a character to manage and train — “handle” — animals of various sorts. A character with Animal Handler knows about the animals he’s skilled at handling (their types and species, common behavior patterns, abilities, and so forth), the types of tricks an animal can learn, the best ways to teach those tricks to the animal, how to give commands to a trained animal, how to calm down a potentially dangerous animal, and so forth. However, Animal Handler does not allow a character to ride an animal; that requires [[~Riding]].
Complementary Skills for Animal Handler typically include appropriate KSs, and sometimes [[~Riding]]. In a few situations [[~Seduction]] (representing the character’s friendly personality and winning ways) may also help.
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">School</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Concentration</th>
<th style="background: #b3ad97;">G/I</th>
<th style="background: #b3ad97;">Target</th><th style="background: #b3ad97;">Range</th><th style="background: #b3ad97;">Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Bardic]level[0]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!school}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="right">{{!!concentration}}</td>
<td align="center">{{!!gestures}} / {{!!incantation}}</td>
<td align="center">{{!!target}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!area}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
<<tabs "[tag[~Bardic Spells]sort[order]]">>
---
//Quick Links:// | [[Cantrips|~Bardic Cantrips]] | [[1st|~1st Level Bardic Spells]]
!!! ~[[Effects of Humen Aging|~Humen Age]]
{{FormulaResultButton}}
<table>
<tr>
<th>Char</th>
<th>Infant Max</th><th>Child Growth</th>
<th>Age 10 max</th><th>Teen Growth</th>
<th>Adult max</th><th>Min Decline</th>
<th>Age 40 max</th><th>Senior Decline</th>
<th>Age 60+ max</th><th>Elderly Decline</th></tr>
<tr>
<th><i>Cost</i>:</th>
<th colspan="3" style="text-align:right">-15 points</th>
<th colspan="2" style="text-align:right">0 points</th>
<th colspan="2" style="text-align:right">- 5 points</th>
<th colspan="2" style="text-align:right">-10 points</th>
<th></th></tr>
<tr>
<th>STR</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str04"/></td></tr>
<tr>
<th>DEX</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex04"/></td></tr>
<tr>
<th>CON</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con04"/></td></tr>
<tr>
<th>BODY</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod04"/></td></tr>
<tr>
<th>INT</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int04"/></td></tr>
<tr>
<th>EGO</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego04"/></td></tr>
<tr>
<th>PRE</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre04"/></td></tr>
<tr>
<th>COM</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com04"/></td></tr>
<tr>
<th>PD</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd04"/></td></tr>
<tr>
<th>ED</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed04"/></td></tr>
<tr>
<th>SPD</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd04"/></td></tr>
<tr>
<th>REC</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec04"/></td></tr>
<tr>
<th>END</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end04"/></td></tr>
<tr>
<th>STUN</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun04"/></td></tr>
<tr>
<th>Run (m/turn)</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run04"/></td></tr>
<tr>
<th>Swim (m/turn)</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim04"/></td></tr>
<tr>
<th>Leap (m/turn)</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap04"/></td></tr></table>
!! [[~Behemoth]] Occupation Package
Brawlers fight with knuckle and grit, grappling, punching, headbutting and assailing their opponents with their barehands and clubs of Behemoths are warriors that rely primarily on natural size, strength, and physical might.
While the old axiom "the bigger they are the harder they fall" may apply, more often than not strength and size will carry the day, and Behemoths can be quite dangerous.
There is also nothing stopping a Behemoth from supplementing their natural advantages with a few tricks later on either.
---
|Cost |Ability |<|<|<|<|h
| 10|//Rippling//: | + 10|STR |<|<|
| 20|//Grrrr//: | +10|CON |<|<|
| 20|//Didn't Even Feel That//: | +10|BODY |<|<|
| 2|Weapon Familiarity: Common Melee |<|<|<|<|
| 3|Choose One: |<|<|<|<|
| | |Combat Skill Levels: | +1|OCV |w/ Strike, Haymaker, Disarm |
| | |Combat Skill Levels: | +1|OCV |w/ weapon of choice |
| | |//Surprisingly Nimble//: | +1|DEX |<|
''Total Cost'': + 55 Character Points
---
!!! +Occupational Options
<<tabs "[tag[~Behemoth]tag[~Occupation]tag[+Option]]" class:"tc-vertical">>
!! [[~Brawler]] Occupation Package
Brawlers fight with knuckle and grit, grappling, punching, headbutting and assailing their opponents with their barehands and clubs of opportunity. Often found in bars, towns, and rough neighborhoods, some Brawlers are good enough to pit their skills against armed opponents or in an adventuring party. Some supplement their fisticuffs with a stout club or cross-train to learn other martial disciplines.
The player of a Brawler gets to build their own fighting style and it can be anything ranging from a well established and formalized system of fighting to just pure natural talent unique to the character as they wish, though additions to the history of the setting necessary to accomodate an established system are subject to GM modification or veto.
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Range/Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Spell]level[0]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">School</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Concentration</th>
<th style="background: #b3ad97;">G/I</th>
<th style="background: #b3ad97;">Target</th><th style="background: #b3ad97;">Range</th><th style="background: #b3ad97;">Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Clerical Spells]level[0]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!school}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="right">{{!!concentration}}</td>
<td align="center">{{!!gestures}} / {{!!incantation}}</td>
<td align="center">{{!!target}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!area}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">School</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Concentration</th>
<th style="background: #b3ad97;">G/I</th>
<th style="background: #b3ad97;">Target</th><th style="background: #b3ad97;">Range</th><th style="background: #b3ad97;">Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Clerical Spells]level[0]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!school}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="right">{{!!concentration}}</td>
<td align="center">{{!!gestures}} / {{!!incantation}}</td>
<td align="center">{{!!target}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!area}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
!! [[~Clerical Spells]]
<<tabs "[tag[~Clerical Spells]sort[order]]">>
---
//Quick Links:// ~[[Cantrips|~Clerical Cantrips]] | ~[[1st|~1st Level Clerical Spells]]
!! [[~Code of Conduct]]
|Common |Total | - 20|Character Points |
This character is sworn or otherwise dedicated to a set of beliefs which his native culture considers to be good and just. The specific tenets of this should be clearly defined by the player and accepted by the GM before the character is played (or, in the case of NPCs or villains, the GM should have a clear definition of the code before he brings that character into play). Not all Codes of Conduct are going to be the same, because what is considered noble and honorable differs from culture to culture.
There are many possible codes. This Psychological Limitation ends up giving the character several restrictions that would otherwise be considered separate Psychological Limitations. The character may not take both Code of Conduct and those other Disadvantages, even though the point total for all of the individual Disadvantages is higher if they are combined. A Code of Conduct, while actually encompassing several lesser Psychological Limitations, is worth less points because it also carries a measure of distinction and respect. For example, while villains may taunt a character who has a Code of Conduct, others will admire and look up to such a character for his solid principles. Some examples of various Codes of Conduct would include:
* The Adventurer's Code: This is the code by which "heroes" of the world generally live under. Never Get Unnecessary Help / Never Gather Armies, Never Resort to Poisoning Food or Water, Never Accept Being Gargantuan or Larger, Honorable People Never Create Spawners, Never Impersonate a Specific Person, Never Destroy a Magical Item or Artifact, Never Change Alignment, and Take Credit for All of Your Kills and No One Else's.
* The Bushido Code: This is the code by which the samurai of the medieval period lived under. Treat Those Deserving of Honor With Honor, Treat a Dishonorable Foe With Scorn, Avenge All Insults, Death Before Dishonor, Utter Obedience to One's Superiors (Even Unto Death), and Never Show Fear.
* The Celtic Code: Vengeance is essential. If you (or your family or your clan) are insulted, you must demand an apology. If none is given, you must issue a challenge. If you lose, you must try again as soon as you are able. If a truce is called, it must be observed. You must try to be first into combat. Never lie to an ally. Do not take advantage of an unsuspecting enemy.
* Code of Chivalry: The code of the medieval knight. Honor in Battle (meaning no attacks on an unaware foe, not using missile weapons, and treating a vanquished foe mercifully), Expect Obedience From Those Below His Station and Provide Obedience To Those Above, Protect The Weak And The Defenseless, and Honesty In All Things.
* The Gentleman's Code: Never break your word. Never ignore an insult to yourself, to a lady, or to your flag; insults may only be wiped out by an apology or a duel (not always to the death!). Never take advantage of an opponent in any way; weapons and circumstances must be equal (except in open war). Associate only with those of your social class.
* The Hero's Code: Sometimes known as the "Four Color Code", this Code of Conduct is best exemplified (believe it or not) by Batman as portrayed by Adam West in the 1960's TV series "Batman". It is very close to the Honesty Psychological Limitation, but more so: Work to your utmost to uphold the law at all times. Never lie, cheat, or swear. Drink nothing stronger than soda pop and chocolate milk. Don't smoke. Protect anyone weaker than yourself, and always try to be a good example to the kids.
* Omerta: This is the code of silence followed by members of the Mafia: Don't reveal any secrets you might learn under pain of death. Obey the Capo Crimini without hesitation. Avenge attacks on family members, because attacks on one of us is an attack on all of us. Avoid any contact with the police.
* Policeman's Code: This is the code that most police forces are supposed to operate under. Must Defend Public Safety, Must Protect The Innocent, Will Only Reply With Equal Force In Combat (meaning, if the opponent isn't using lethal force, neither will the person with this code), Follow the law in all things.
* The Soldier's Code: This is the Code of Conduct between "good-guy" soldiers on TV and in the movies. It's better to die on your feet than live on your knees. Never leave a man behind. Never give up, never give in. Never let an insult to you, your unit, or your branch of service go unpunished, especially if it comes from a member of a wimpy branch of service. All branches of service other than yours are wimpy.
* The Sorcerer's Code: This code is followed by all but the most evil and callous of fully trained wizards in a modern setting in which magic is generally disbelieved and unknown to the general public. Maintain The Veil That Keeps The Mundane World Unaware Of The Existence Of Magic. Magic Is Too Dangerous For The Common Man And Must Be Kept Out Of His Sight. Cover Up Mystical Events, Even If You Had No Part In Them. Battle Only In Private, Never In Public Except With The Most Subtle Of Effects.
* The Vow of the Buddhist Monk: Avoid strong emotion as often as possible, do not initiate violence (but defending oneself is permitted), help others when possible, do not eat meat.
!! [[~Command]] Extension Package
Some characters recieve training to improve their ability to lead and command others during their careers, while others are just natural leaders.
!! [[~Completely Devoted to Liege]] or Group
|Very Common |Strong | - 20|Character Points |
|Very Common |Total | - 25|Character Points |
This is the stronger version of [[~Feels Loyalty to His Liege]], and should only be taken by characters who are a part of a military or paramilitary organization. This Disadvantage is very similar to [[~Fervent Patriot]], except that the character is not necessarily overly loyal to his home nation (though the two Disadvantages can easily be used on the same character). A character with this Disadvantage feels that the object of his devotion (be it a person or an agency) can do no wrong. He will never question orders that come from them, and he would be willing to die fulfilling those orders or protecting his superior. In addition, a character with this Disadvantage will not put up with another person bad-mouthing the object of his devotion, and has little patience for those who are not as devoted as he is.
!!! [Ocean Humen Bloodline]
Sometimes a revolution needs is a symbol--a bigger-than-life hero to rally around, or a dramatic action to turn the flow of fates. In the heat of the moment, you can perform an impressive acrobatic move leading into an attack (such as swing from a chandeler into the leaping thrust).
---
Once per combat, you gain either:
* the Acrobatics skill at 10+(DEX/5) or
* +2 to your Acrobatics skill (if you already have it).
And you gain:
+3 OCV (Combat Levels) with your primary weapon type (such as Blades).
And you gain:
+ 1d6k to you damage upon a successful hit.
!! [[~Deck Fighting]] Extension Package
Many characters make their living by seacraft, either as smugglers, pirates, corsairs, reavers, or even just passengers. Along the way they have learned how to use the unusual environment of the cramped confines and rolling decks of a ship to their advantage.
!! [[~Devoted to Liege]]
|Common |Strong | - 15|Character Points |
|Common |Total | - 20|Character Points |
A character with this Disadvantage will do anything to make the object of his devotion happy, will do anything the other character says, and wishes to protect the character to his utmost ability. The character may have other Disadvantages with affect how far the character will go to make happy or protect the other. At the Strong level, the character must make an Ego Roll in order to purposefully do something that makes the object of his affection angry, that goes directly against the other characters wishes, or that endangers the other character. At Total, the character cannot do so except in the most extreme of circumstances. In addition, if this Disadvantage is taken at Common, Total the character can make an Ego Roll to disobey one of his other Total strength Psychological Limitations if it serves the purposes of this Disadvantage. (In other words, a character with both Attitude About Lethal Force - Code vs. Killing and this Disadvantage at the Total level, could make an Ego Roll in order to kill someone who was threatening the object of his affection, should such action be necessary.)
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">School</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Concentration</th>
<th style="background: #b3ad97;">G/I</th>
<th style="background: #b3ad97;">Target</th><th style="background: #b3ad97;">Range</th><th style="background: #b3ad97;">Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Druidic]level[0]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!school}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="right">{{!!concentration}}</td>
<td align="center">{{!!gestures}} / {{!!incantation}}</td>
<td align="center">{{!!target}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!area}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
<<tabs "[tag[~Druidic Spells]sort[order]]">>
---
//Quick Links:// | [[Cantrips|~Druidic Cantrips]] | [[1st|~1st Level Spell]]
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">School</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Concentration</th>
<th style="background: #b3ad97;">G/I</th>
<th style="background: #b3ad97;">Target</th><th style="background: #b3ad97;">Range</th><th style="background: #b3ad97;">Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Elementalism]level[0]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!school}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="right">{{!!concentration}}</td>
<td align="center">{{!!gestures}} / {{!!incantation}}</td>
<td align="center">{{!!target}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!area}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
<<tabs "[tag[~Elementalism Spells]sort[order]]">>
---
//Quick Links:// | [[Cantrips|~Elementalism Cantrips]] | [[1st|~1st Level Spell]]
!! [[~Fanatic]]
|Very Common |Total | - 25|Character Points |
This person believes so strongly in an ideal, country, code, religion, or cause that it is the most important thing in their life. They may or may not die for it, but they are always willing to do so. He puts the object of his fanaticism ahead of everything else. If the character is fanatical about a code of conduct, he adheres to that code rigidly. If he is fanatically devoted to a leader, he obeys that leader without question. This Disadvantage is a step beyond Completely Devoted to (Group or Cause). Note that a fanatic does not have to be either mindless or evil. Kamikaze pilots, Moslem terrorists, Christian fundamentalists and Patrick Henry ("Give me liberty or give me death") are all examples of fanatics. This Disadvantage should not be used to represent either Prejudice or Racism.
!! [[~Feels Indebted to Liege]]
|Common |Strong | - 15|Character Points |
|Common |Total | - 20|Character Points |
This character owes another character (whether NPC or PC) a debt due to the other character's actions in the past. What caused the debt is up to the player. The character may feel that he owes so much to the other person that he is compelled to assist them whenever possible (and within his other Psychological Limitations). At the Strong level, the character must make an Ego Roll in order to refuse to help the other character when asked. At Total, he cannot do so except in the most extreme of circumstances.
!! [[~Feels Loyalty to His Liege]]
|Very Common |Moderate | - 15|Character Points |
This is the "mild" version of both [[~Always Obeys Orders of His Liege]] and [[~Completely Devoted to Liege]]. Like those two Disadvantages, it is most appropriate for a character who is a member of some paramilitary or military organization. A character with this Disadvantage would, under normal circumstances, never dream of disobeying an order or violating the policies and regulations of the organization he works for, but under unusual circumstances could do so without making an Ego Roll.
!! [[~Forest Fighting]] Extension Package
Some people recieve training to improve their ability to fight in forested regions, or perhaps originate from a dangerous woodland area.
!! [[~Heavy Foot]] Occupation Package
Heavy Foot typically fight, as the name would indicate, on foot. They generally wear heavy armor and wield heavier two-handed weapons.
As you might imagine physical strength and stamina are necessary for this type of fighting, and Heavy Foot train exhaustively when learning their trade to develop the physical traits needed in their line of work. Most Heavy Foot start their training in their mid teens, as their bodies are better able to adapt to the stress and develop the necessary body mass to excel at this trade.
!!! //Options//
''//Youth//.'' Ages under 10 cost ''-15 points''.
''//Journeyman//.'' Ages 15 to 40 cost ''0 points''.
''//Middle Age//.'' Ages 40 to 60 cost ''-5 points''.
''//Old Age//.'' Ages over 60 cost ''-10 points''.
---
''Humen Aging Effects'' (Maxima)
| |Age 10-| 10+ | 20+ | Age 35+ | Age 40+ | Old | Age 60+ |h
|STR | 5| +1.5 / yr| 20| -1 / yr| 15| -0.25 / yr | 10|
|DEX | 12| +0.8 / yr| 20| 20| 20| -0 / yr| 20|
|CON | 8| +1.2 / yr| 20| -1 / yr| 15| -0.25 / yr| 10|
|BODY | 8| +1.2 / yr| 20| -1/ yr| 15| -0.25 / yr| 10|
|INT | 15| +0.5 / yr| 20| +1 / yr| 25| +0.25 / yr| 30|
|EGO | 15| +0.5 / yr| 20| +1 / yr| 25| +0.25 / yr| 30|
|PRE | 15| +0.5 / yr| 20| +1 / yr| 25| +0.25 / yr| 30|
|COM | 16| +0.4 / yr| 20| +0 / yr| 20| +0 / yr| 20|
|PD | 3| +0.5 / yr| 8| -0.4 / yr| 6| -0.1 / yr| 4|
|ED | 3| +.05 / yr| 8| -0.4 / yr| 6| -0.1 / yr| 4|
|SPD | 2| +0.2 / yr| 4| 4| 4| 4| 4|
|REC | 3| +0.7 / yr| 10| -0.4 / yr| 8| -0.1 / yr| 6|
|END | 30| +2 / yr| 50| -2 / yr| 40| -0.5 / yr| 30|
|STUN | 15| + 3.5 / yr| 50| -2 / yr| 40| -0.5 / yr| 30|
|(Run) | 12m| +0.8m / yr | 20m| -0.8m / yr | 16m| -0.2m / yr| 12m|
|(Swim) | 6m| +0.4m / yr | 10m| -0.4m / yr | 10m| -0.2m / yr| 6m|
|(Leap) | 4m| +0.6m / yr | 10m| -0.8m / yr | 6m| -0.1m / yr| 4m|
!!! ~[[Effects of Humen Aging|~Humen Age]]
{{FormulaResultButton}}
<table>
<tr>
<th>Char</th>
<th>Infant Max</th><th>Child Growth</th>
<th>Age 10 max</th><th>Teen Growth</th>
<th>Adult max</th><th>Min Decline</th>
<th>Age 40 max</th><th>Senior Decline</th>
<th>Age 60+ max</th><th>Elderly Decline</th></tr>
<tr>
<th><i>Cost</i>:</th>
<th colspan="3" style="text-align:right">-15 points</th>
<th colspan="2" style="text-align:right">0 points</th>
<th colspan="2" style="text-align:right">- 5 points</th>
<th colspan="2" style="text-align:right">-10 points</th>
<th></th></tr>
<tr>
<th>STR</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_str04"/></td></tr>
<tr>
<th>DEX</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_dex04"/></td></tr>
<tr>
<th>CON</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_con04"/></td></tr>
<tr>
<th>BODY</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_bod04"/></td></tr>
<tr>
<th>INT</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_int04"/></td></tr>
<tr>
<th>EGO</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ego04"/></td></tr>
<tr>
<th>PRE</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pre04"/></td></tr>
<tr>
<th>COM</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_com04"/></td></tr>
<tr>
<th>PD</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_pd04"/></td></tr>
<tr>
<th>ED</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_ed04"/></td></tr>
<tr>
<th>SPD</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_spd04"/></td></tr>
<tr>
<th>REC</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_rec04"/></td></tr>
<tr>
<th>END</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_end04"/></td></tr>
<tr>
<th>STUN</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_stun04"/></td></tr>
<tr>
<th>Run (m/turn)</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_run04"/></td></tr>
<tr>
<th>Swim (m/turn)</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_swim04"/></td></tr>
<tr>
<th>Leap (m/turn)</th>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap0"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap00"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap1"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap01"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap2"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap02"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap3"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap03"/></td>
<th style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap4"/></th><td style="text-align:right"><$macrocall $name="eval1" datatiddler="$:/sk/HumenAgeData" cell="_leap04"/></td></tr></table>
!!! ~[[Humen Falling and Knockback|~Humen Falling and Knockback]] Damage
Due to density, humen don't accellerate quite as fast as a solid object (in atmosphere), otherwise, humen have no special abilities concerning falling or being smacked around.
!!!! Falling Damage
Humen have no modifiers when it comes to taking falling damage -- being identical to an "uncontrolled Move-Through" with the damage being //doubled//. Meaning, if the humen does knockback to the object he collides with, the character takes the full damage rolled. If, however, the humen does no knockback (failing to move the planet when impacting solid ground), they take ''//twice//'' the damage rolled. A sucessful BREAKFALL skill roll (with a VLF penalty) will //''halve''// which ever amount is taken.
Humen will accelerate at 1 hex (2m) per segment to a maximum of 30 hexes/segment (60m/segment or 720m/turn).
!!!! Knockback Damage
Humen subtract their (MASS / 5)d6 from the BODY of any damage done to determine how many hexes they are thrown by the attack. If the result is less than zero, the humen remains unmoved; a result of zero means the character is knocked down (//see KNOCKDOWN//); and any positive result is the number of hexes the character is thrown (//''double''// for the distance in meters). If the humen is unconscious, he takes any impact damage as if he were "falling" into the object.
|"Maneuver" | VLF (meters travelled) | Damage | Save | Penalty vs Save |h
|Falling | (meters / 2) | [(MASS + VLF) d6] (//''doubled'': see above//) | BREAKFALL for half damage | VLF |
|Knockback w/ collision | (meters / 2) | [(MASS + VLF) d6] | BREAKFALL for half damage | VLF |
|Knockback w/o collision | (meters / 2) | [MASS + VLF)/2 d6] | BREAKFALL for half damage | VLF |
!!! ~[[Starting Ages|~Humen Starting Ages]]
Starting ages are based around the "difficulty" of the chosen occupation, and the decision that humen reach "maturity" at approximately 15 years of age.
''Simple'' professions include: Barbarian, Rogue, Sorcerer, Soulknife, and Wilder.
''Moderate''ly difficult professions include: Bard, Fighter, Paladin, Psychic Warrior, and Ranger.
Occupations of ''Complex'' difficulty include: Cleric, Druid, Monk, Psion, and Wizard.
| Adulthood | Simple | Moderate | Complex |h
| 15 years | +1d4 yr | +1d6 yr| +2d6 yr|
!!! ~[[Humen Velocity|~Humen Velocity]]
In this particular context, Velocity refers to the distance your character can run or swim during a turn (12 seconds). Other forms of movement are available, however, not all forms of movement have a turn-base velocity.
|Mode of Movement | Base Velocity |<| Maxima Velocity |<| Cost to Increase |<|h
|Leaping | 2 hexes | 4m| 5 hexes| 10m|+1 hex for each +1 Character Point |+2m for each +1 Character Point |
|Running | 12 hexes/turn| 24 m/turn| 24 hexes/turn| 48 m/turn| 2 hexes/turn for each +1 Character Point |+4m/turn for each +1 Character Point |
|Swimming | 4 hexes/turn | 8 m/turn| 16 hexes/turn| 20 m/turn|+4 hexes/turn for each +1 Character Point |+8m/turn for earch +1 Character Point |
Movement is now bought in terms of hexes per //turn//, which is then split between the character's phases. For example, 20 hexes/turn of running at speed four (SPD 4) translates to five (5) hexes per phase or ten meters (10m) per turn.
<<subsume "~Humen Velocity Factor">>
<<subsume "~Humen Falling and Knockback">>
!!! ~[[Velocity Factor|~Humen Velocity Factor]] (VLF)
Humen follow the standard VLF and Range modifiers for Medium sized creatures.
|Range or Velocity | VLF |<| Range |<|h
|(m) or (m/turn) | |<| OCV Mod |<|h
| 0m - 4m| 0 | | 0 |Adjacent |
| 5m - 8m| 0 | | 0 | |
| 9m - 12m| 0 |Normal Walk | -1 | |
| 13m - 16m| 0 | | -2 | |
| 17m - 24m| 1 |Normal Run | -3 | |
| 25m - 32m| 1 | | -4 | |
| 33m - 48m| 1 |Max Run | -5 | |
| 49m - 64m| 2 | | -6 | |
| 65m - 96m| 3 | | -7 | |
| 97m - 128m| 4 | | -8 |Football Field |
| 129m - 192m | 5 | | -9 | |
| 129m - 256m| 6 |50 MPH (Thrown) | -10 | |
| 257m - 384m| 7 | | -11 | |
| 385m - 512m| 8 |100 MPH (Thrown) | -12 | |
| 513m - 768m| 9 |Terminal Velocity (Falling) | -13 | |
!! [[~Light Foot]] Occupation Package
As the name would indicate Light Foot typically fight on foot. They generally wear lighter armor and wield lighter weapons.
Light Foot concentrate on speed, manueverability, skill, and technique over brute force and strength. Reflexes and adroitness are their bread and butter, and they often make use of easily carried thrown weapons which they can hurl at an opponent.
Adept skirmishers, Light Foot are much more dangerous than their lightly armored fast moving nature would suggest, and what they lack in striking power they make up for with accuracy and finesse.
!!! §Description
The caster projects a 4m x 2m oval "wall"( which stands 4m tall) of bright light which distorts sight lines through the wall for as long as the caster can maintain concentration upon the wall.
!!! ~Effect
Extra Time (Full Phase, Only to Activate, Delayed Phase, -1/2), OIF (Holy Symbol; -1/2), 1 Continuing Charge lasting 1 Hour (-1/4), Incantations (-1/4), Gestures (-1/4)
<<<
Change Environment: -3 to sight PER rolls (Real Cost: <$text text={{{ [[15]divide[2.75]fixed[0]] }}} />)
<<<
!!! §Description
The caster projects a 4m curved wall( which stands 4m tall) of light which distorts sight lines through the wall -- often rendering that which is behind the wall "invisible" for as long as the caster can maintain concentration upon the wall. Unlike true invisibility, the wall "blends" the colors and temperatures from the edges of the wall across the center; the effect renders those on the "protected" side of the wall unidentifiable (and often untargetable). Depending upon wall placement, the effect could be
!!! ~Effect
Extra Time (Full Phase, Only to Activate, Delayed Phase, -1/2), OIF (Holy Symbol; -1/2), 1 Continuing Charge lasting 1 Hour (-1/4), Incantations (-1/4), Gestures (-1/4)
<<<
Change Environment: -6 to sight group PER rolls; and an additional -5 to normal sight PER rolls. (Real Cost: <$text text={{{ [[30]divide[2.75]fixed[0]] }}} />)
<<<
!! [[~Medium Foot]] Occupation Package
Medium Foot typically fight, as the name would indicate, on foot. They generally wear chain or other medium armors and wield heavier one-handed weapons in conjunction with a shield. Medium Foot concentrate on a powerful mix of manueverability, quickness, skill, technique and brute force.
Medium Foot provide a potent middle ground between the various extremes of fighting, and might possibly be the best all-around type of generalist fighter.
!! [[~Mountain Fighting]] Extension Package
Some characters recieve training to improve their ability to fight in Mountain regions, or else originate from a land of dangerous mountains or highlands where they had to fight to survive.
!! [[~Mounted Fighting]] Extension Package
Some people recieve training to fight from the back of a mount, or develop it by necessity on their own.
!! [[~Oath of Fealty]]
In the case of [[§Knights|§Knight]] and [[§Squires|§Squire]], there is a financial incentive behind taking any or all of the options below.
If a [[§Knight]] or his [[§Squires|§Squire]] violates (or even appears to violate) the Oath, he will have to pay (in Character Points) the amount of wealth he and his [[§squires|§Squire]] represents -- a reconciliation with his liege can negate this penalty but often incurs only penalties and conditions. Additionally, such violations will require him to have enough Character Points in [[§Wealthy|§Wealthy Package]] to continue paying for his, his [[§Squires|§Squire]], and their mounts upkeep. Any Character Points used to buy his [[§squires|§Squire]] are lost until the [[§Knight]] can reconcile with them.
[[§Squires|§Squire]] who violate their Oath to their [[§knight|§Knight]] often suffer similarly penalties -- although as Princes or other children of higher ranked nobility, the [[§knight|§Knight]] might be forced to "eat the loss" just to remain in the good graces of his liege.
<<tabs "[tag[~Disadvantage]tag[~Psychological]tag[~Oath of Fealty]sort[order]]" class:"tc-vertical" >>
Fervent Patriot
Common, Total 20pts.
A character with this Disadvantage believes in his country and would do almost anything to further its aims. They would gladly give their lives in the service of it, and tend not to believe any derogatory information leveled at their country. Even when presented with hard evidence that their country is less than ideal, they will not accept it unless the circumstances are extremely dire. Note that the character's patriotic feelings are not necessarily directed toward the government of his country (though this may well be a part of it). 09F17
---
Has Complete Trust In (Group Or Person)
Common, Total 20pts.
A character with this Disadvantage trusts another character enough to put his life in the other's hands. He willingly and commonly confides in the other, believes the other will never betray him, and can put himself in danger knowing that the other character will back him up. The character will never, ever have the slightest doubt about the other character, even if shown evidence that a betrayal of some kind has taken place. (The character will rationalize the evidence away.) Whether or not the other character is worthy of that trust is not up to the player. 09H04
---
Must Protect (Person, Place, Or Thing) From (Threat)
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character has a special attachment or feelings for a particular object, location, or person. The feelings might be patriotic pride in their homeland, love or admiration for another person, or an appreciation for the beauty or spiritual meaning of an object. To be valid, this (Person, Place, or Thing) must be threatened by some outside force or agency. For example, a character may have Must Protect Northern Ireland From English Aggression. In this case, the character would feel that Northern Ireland is endangered by the continual presence of the English "invaders", and would work to hamper the English whenever possible. On the other hand, an art lover might have Must Protect City Museum From Art Thieves. Such a character would, in his nightly patrols of the city, spend extra time making sure that no one was breaking into the art museum, and that no other harm was befalling the art stored therein (like a fire). 09M33
---
Obeys Liege Without Question
Common, Total 20pts.
This character is completely loyal to one person, rather than an organizational hierarchy. The character will do whatever that person asks of him, within the limits of any other Psychological Limitations the character may have. Barring having Psychological Limitations against such actions, the character would gladly kill or die on the orders of the chosen leader. He can only disobeys orders given to him by that leader in the most dire of circumstances. 09O02
---
Royalist
Very Common, Moderate 15pts. / Very Common, Strong 20pts.
This character is a devout supporter of his monarch. He will perform whatever actions are necessary (fight, vote, fund) to support the views and decisions of the monarch. He will associate himself with other Royalists, and will oppose the plans and actions of his monarch's enemies. This Disadvantage is only appropriate for games involving these types of plots, such as a King's Musketeers swashbuckling game. The severity of this Disadvantage reflects how devoted the character is to these beliefs. At Moderate, the character can be convinced to accept or support plans that run counter to his monarch, if the reasons are valid. At Strong, the character will need to be convinced at length, and need to make an Ego Roll to go along with the plans, even if he believes they are the right thing to do. At Total, only the most dire of circumstances have any chance at all of changing this characters support for his monarch. 09R20
---
Sense Of Duty
Common, Strong 15pts. / Common, Total 20pts.
This character feels compelled to do what is expected of him by those in authority over him. This is a common Disadvantage for soldiers and policemen. He would never betray, abandon, or allow harm to come to the person or organization he feels this about. He feels duty-bound to do his best for them, even if he disagrees with their actions, motives, or goals. This Disadvantage should never be taken at less than Common, Strong. 09S13
---
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
The character has taken a vow to either do, or avoid doing, a particular thing. This is above and beyond any "Code of Conduct" the character may possess. The frequency of the Disadvantage reflects how limiting the vow is: "Always Wear Black" is far less limiting than "Never Accepts Healing." The commitment level is how seriously the character takes the vow; some people take vows very lightly, others will never break them. If it is known that the character has taken a very limiting Vow, he may have a Reputation to that effect, which will become the negative Reputation: Oathbreaker if he fails to live up to it. 09V06
---
Will Never Abandon His Subordinates
Common, Strong 15pts. / Common, Total 20pts.
This character believes in the military philosophy of "never leaving a man behind", when those men are under his command. He accompanies his men into dangerous situations and if they are injured gets them out again. In addition, he watches out for the welfare of his men in other situations: if they are arrested, he bails them out and arranges legal representation. If they get into a bar fight, he watches their backs. In games where the character is on a team that doesn't use ranks, or is not the highest ranking teammember, this Disadvantage is instead named Will Never Abandon His Teammates. At the Strong level the character will only abandon a subordinate/teammate if he makes an Ego Roll. At Total, he won't except in the direst of circumstances. 09W14
<<tabs "[tag[~Paladin Spells]sort[order]]">>
---
//Quick Links:// | [[Cantrips|~Paladin Cantrips]] | [[1st|~1st Level Spell]]
Abnormally High/Low Body Temperature
Infrequently, Slightly 5pts.
This character has a "busted thermostat", and as a result normally runs tangibly cooler or warmer than regular people. A character whose body temperature is lower than normal tends to have a lower metabolism. He doesn't eat as much, and sleeps more. In addition, it takes a while for the character to "get going" and rarely does he have extra energy. Such characters can never "push" their abilities and make all Dexterity Rolls and Dexterity-based Skill Rolls at a -1 penalty. In addition, they get cold easily when the temperature is below 80° Fahrenheit.
A character whose body temperature is higher than normal doesn't sleep much, eats more, and always seems "on". However, he also overheats very easily, and tires out quickly. The character must make a Constitution Roll to use any ability with an endurance cost of one-fifth his normal Endurance maximum. In addition, they feel uncomfortably warm whenever the temperature is over 75° Fahrenheit.
Achilles Heel
Infrequently, Greatly 10pts.
This character's defenses have some flaw that is either obvious or can be easily perceived or deduced by an experienced foe. Opponents receive a bonus of +2 to all Find Weakness attempts against the character. The Frequency of this Disadvantage should be increased if one of more people with the Find Weakness talent are Hunting the character.
Ages Faster Than Normal
Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Strong 15pts. / Common, Total 20pts.
This character burns through his "allotted years" faster than he should. He grows markedly older in a space of time that other people barely notice. The exact rate of aging is determined by the player. Most campaigns, however, do not encompass enough time for the character's condition to become a problem. This Disadvantage should be taken at the Slightly level in cases where the character ages two to four years for every year that passes. If the character ages between five and eight years for every year that passes, this Disadvantage should be taken at the Greatly level. Any rate higher than eight years for every year that passes should be taken at the Fully imparing level, as the character's life span will end much more quickly than it should. This Disadvantage is very appropriate for Speedsters. It should not be taken in combination with Short Life Span; this Disadvantage represents a character which specifically ages faster than other people, where Short Life Span is meant to represent a character who simply doesn't live as long as other people. It is a subtle difference, but it is a difference.
Airhead
Frequently, Slightly 10pts.
This character (stereotypically female) is not truly stupid, but rather is just a bit slower on the uptake than an average person. The character needs to have jokes explained, doesn't understand situations that call for subtlety and wit, and tends to take sarcasm literally. While this condition is hardly debilitating, it does frequently cause the character to be the target of jokes, and causes a certain skepticism regarding the character's intelligence.
Albino
Infrequently, Greatly 10pts.
This character has no natural body pigment. His hair and skin are white, and his eyes are pink. He may seem either attractive or ugly, but an average appearance is impossible when choosing a Comeliness score for this character. He will always be remembered, and cannot easily blend in with a crowd. He must avoid direct sunlight, as they have no resistance to sunburn. If the player so chooses, this could be bought as a Susceptibility. In addition, he suffers a -2 penalty to all Sight Perception Rolls and also to any ranged attack rolls made in direct sunlight. (This can be countered by wearing sunglasses or other tinted lenses.) He is also required to take the Distinctive Feature: Albino when taking this Disadvantage.
Alien Physiology Requires Special Medical Care
Infrequently, Greatly 10pts.
This Disadvantage is only appropriate to extraterrestrial characters. The character's body physiology is significantly different from that of a normal human, and as such normal medical practices simply don't work (or don't work as well) on the character. Depending on the character's concept, the character may merely need medical supplements to be healed. Other character concepts may require special equipment, strange chemicals, and difficult procedures for medical care to work. Anyone attempting to use a medical skill to heal the character suffers a -6 penalty to their roll.
Allergy
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts. / Infrequently, Fully 15pts. / Frequently, Slightly 10pts. / Frequently, Greatly 15pts. / Frequently, Fully 20pts.
This character has a non-life threatening Allergy, such as hay fever. When the Allergy is active, the character feels ill. In the case of respiratory Allergies, the character suffers from watery eyes, a stuffy nose, and is constantly sneezing and coughing. Topical Allergies cause the character to break out in hives and constantly itch. Dietary Allergies cause the character to grow nauseous and can lead to vomiting, sweating, and balance problems. The possible permutations of each Allergy are almost numberless. The exact effects are left up to the individual GM. Characters whose allergies are potentially fatal should take Susceptibilities instead.
Amnesia
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts. / Frequently, Slightly 10pts. / Frequently, Greatly 15pts.
This character has previously suffered some head injury which caused brain damage. The specific damage has caused the character to permanently forget details of his life before the injury occurred. The erasure of memory may be complete or partial, as the player wishes, and the specific details the character has forgotten is also up to the player. Note that forgetting how to do certain things (such as how to talk) can be better covered by using other Disadvantages. The Frequency of this Disadvantage is determined by how often the missing information is needed, while the Severity is determined by how important the forgotten information is. As these considerations are variable, the GM must determine the specific points for this Disadvantage. For example, forgetting how to drive a car isn't as great a disadvantage in New York City as it is in Miami, Florida, as there is a wide and varied choice of public transportation systems in New York. If the character maintains more than one identity (for example, a superhero with a Secret Identity), generally Amnesia causes the character to forget one of his identities.
Animal Intelligence
Common, Total 20pts.
This Physical Limitation represents the level of awareness and consciousness possessed by most animals. It represents a basic, bestial intellect: a heavy degree of inst instinct mixed with animal cunning and insight. Creatures with Animal Intelligence can be taught some basic tricks and even become valuable helpmates to sentient creatures, but cannot communicate with sentient beings in any meaningful way.
Asthma
Frequently, Greatly 15pts.
This character suffers from Asthma attacks. Attacks can be brought on by one of two things: fatigue and/or stress. Anytime the character becomes fatigued (i.e., uses more Endurance in a single phase than his Constitution score), he must make a Constitution Roll or suffer an attack. Anytime the character is in a stressful situation (GM's ruling), he must make an Ego Roll or suffer an attack. During an attack, any Endurance loss suffered is doubled (including the Endurance loss that brought on the attack, if any). The character will wheeze and have a hard time speaking in complete sentences. He cannot activate any power that requires verbal components (Incantations), and is at -3 to Dexterity and Intelligence based Skill Rolls, as all his concentration is needed just to breathe. Once an attack has started, the character must make a Constitution Roll every Phase. On a critical success (roll a 3), or three consecutive successes, the character recovers. A failure costs the character one point of Endurance. On a critical failure (roll an 18), the character begins to take 1d6 of Endurance loss each phase. If his Endurance reaches zero, he will begin to lose Stun (see Hero Rules). If he loses all of his Stun, he will pass out and begin suffocating.
Astigmatic
Frequently, Greatly 15pts.
This character has bad eyesight. Whether he is Nearsighted or Farsighted is up to the player, but in any case the problem is caused by a deformation of the character's eye. What this means is that the character's vision cannot be corrected by contact lenses; to have clear vision, he is forced to wear glasses. In short, taking this Disadvantage is a bit like buying the character's normal vision through a Focus. This Disadvantage functions identically to either the Nearsighted or Farsighted Disadvantages, with the added complication that the character now has a pair of glasses to watch out for. Glasses are easily damaged in combat, can be stolen as if they were a Focus, can be interfered with by dirt, grease, mud, etc, and are otherwise vulnerable to attack.
Atavism
Infrequently, Slightly 5pts. / Frequently, Slightly 10pts.
This is the reappearance of morphological traits already lost to human beings through evolution. Such cases as a person born with his body covered in thick hair, with a sacral tail, or with supernumerary mammary glands (and their accompanying nipples) are all considered Atavistic characteristics. In the past, Atavism was used by some to support racial discrimination. The nineteenth Century Italian physician Cesare Lombroso built a "theory" (with no scientific evidence to support it) by which "criminals and inferior peoples" could be easily identified due to the presence of Atavistic traits. It was assumed that people displaying such traits were genetically inferior, and such theories were used by Colonial empires and the Nazis to justify their racist actions. Atavism can also be taken as a Social Limitation by characters who are a part of a racist society likely to hold to the "genetic inferiority" theory.
Attention Deficit Disorder
Frequently, Slightly 10pts. / Frequently, Greatly 15pts.
A somewhat controversial diagnosis, the general symptoms associated with this illness (also known as Attention Deficit Hyperactivity Disorder) include inattention, impulsivity and hyperactivity (the last especially in children.) People with this disorder find it difficult to sit still, concentrate on repetitive tasks, or focus their attention on one thing at a time. They are often seen as absent-minded, immature or willfully disruptive. Different people require different balances of drugs, diet and behavioral modification to keep the symptoms of ADD under control. The Frequently, Slightly level of the disadvantage represents someone who has been correctly diagnosed and is receiving treatment. The Frequently, Greatly level is for untreated ADD. It is recommended that a player taking this Physical Limitation for a character study up on it first, due to the many controversies surrounding it.
Bad Back
Frequently, Slightly 10pts. / Frequently, Greatly 15pts. / Frequently, Fully 20pts.
This character has somehow injured his back. During strenuous physical labor (including Hand-to-Hand combat), he may "throw his back out" and suffer crippling, intense pain or even further injury. Every time the character needs to make a Strength Roll or a to-hit roll, he must also make a Constitution Roll. If the character suffers any Knockback which causes him to strike a surface or other object, he must similarly make a Constitution (CON) Roll. The roll is modified by the level of effect: at Slightly, the character makes an unmodified roll. At Greatly, the character suffers a -3 penalty. At Fully, the modifier is -5. If the character takes extra time to accomplish the Strength-related task, he gains a +1 to the roll. On a failed roll, the character has thrown his back out. If the character has a light condition (10 Points), he suffers a -2 penalty to all rolls until he rests or someone helps him. In addition, any sort of strenuous activity causes 1d6 Stun to the character with no defense. A more serious condition (Major: 15 points), causes the penalties to double (-4 to rolls, 2d6 Stun). A truly severe condition (Fully: 20 Points) causes the character to suffer a -8 penalty to all rolls, suffer 3d6 Stun damage, and 1 point of Body damage. GM's should note that it is possible for a character to gain this condition during the course of play.
Blind
All The Time, Fully 25pts.
This character cannot see at all. The player may buy the character's other natural senses up as compensation if he so chooses, without removing the penalties of being blind. The classic example of the blind martial artist, who operates using a "radar sense", is still hampered by being blind since he cannot read normal text, cannot distinguish color, etc. This character is unaffected by any sort of Sight Group Flash Attacks, as well as visually-based Images, Mental Illusions, or Darkness. Also, he suffers no penalties for operating in the dark. However, in unfamiliar territory, the character must use a cane or be lead by a companion or guide animal to navigate safely. Walking by cane is slow (? normal Movement Rate). Many activities are impossible to a blind person; common sense will usually dictate which. In combat, use the rules for Blind Fighting found in the Ultimate Martial Artist.
Body Of (Unusual Substance)
All The Time, Slightly 15pts.
This character's body is made of some unusual, possibly inorganic substance. Examples would include a character whose body is made of steel, or wood, or quartz crystal. The specific effects of this Disadvantage should be determined by the GM based on the material in question. For example, a character's whose body is made of steel might not be as limber and flexible as normal. His sense of touch might also be lessened, and he would have less sense of temperature unless near an extreme (such as boiling hot or freezing). Also, he would weigh much more than normal, and has to take this into account when using furniture, getting into a vehicle, etc. Depending upon the specifics, other Physical Limitations would also be approprite (like for excess weight or having reduced tactile sensations).
Brown Thumb
Infrequently, Slightly 5pts.
This character manages to kill every plant given into his care. Flowers, crops, shrubs, cacti -- even mushrooms and fungus wither and die when the character tries to keep them alive. Nothing the character does helps the plant in question in any way, and indeed sometimes seems to actually speed the death of the plant. However, he is still readily capable of generating a thriving colony (unintentionally) on something left too long in the refrigerator.
Bruises Easily
Infrequently, Slightly 5pts.
This character gets marked up by physical contact easily. Even when the character wins fights, he looks like he lost. The character's comeliness should never be more than 12, and for 1d6 weeks after any combat in which he was hit (not necessarily damaged -- just being hit will do it), suffers a -1 to his Comeliness. In addition, any Presence Attacks based on fearsomeness will suffer a 1 die penalty.
Can Only Recover From BODY Damage In A Suitably Equipped Repair Shop
Frequently, Greatly 15pts.
This Disadvantage is generally only appropriate for mechanical characters such as androids and robots, though it could be expanded to include magical constructs as well, like Golems and Undead. The character cannot heal damage on his own; he requires the assistance of technicians, a supply of spare parts, diagnostic tools, and so on. The time it takes to effect repairs once the character has reached the shop is up to the GM, but it is suggested that such repairs take at least a half hour per point of Body repaired.
Cannot Cross Running Water
Frequently, Greatly 15pts. / Frequently, Fully 20pts.
The character is physically incapable of crossing a moving body of water, such as a stream, river or ocean (or even a gutter after it rains!) This Disadvantage is usually of a supernatural nature, traditionally applied to vampires and certain kinds of ghosts. Underground streams, water pipes and the like usually do not count; the water has to be moving on the surface. At the Greatly level, the character may be carried over running water by someone else, usually with great discomfort. At the Fully impairing level, not even this will work. The running water acts as an otherwise invisible and intangible wall for the character.
Cannot Enter A Home Without First Being Invited
Frequently, Fully 20pts.
With this, the character is literally prevented from entering a person's private dwelling unless a person authorized to do so gives them permission to enter. After permission is given, the character can enter, leave, and re-enter as he likes without difficulty until the permission is revoked. Though this Disadvantage is usually associated with vampires, it could represent a magical prohibition in a fantasy campaign or counter-programming of an android or robot in a science fiction setting. This also works well with Repelled by Religious Symbols or Objects.
Cannot Feel Or Experience Emotions
All The Time, Slightly 15pts.
A character with this Disadvantage is totally devoid of emotion and feelings. He has no sense of humor, does not feel pity or regret, and cannot hold compassion or sympathy for another person. He does not get angry, nor does he feel fear. The character finds it difficult to relate to the emotions of others; he usually finds them an unnecessary and wasteful expenditure of effort. Likewise, other people tend to see the character as cold and heartless. This Disadvantage is different from Emotionless in that they are either hiding their emotions or psychologically incapable of properly expressing them, while a person with this Disadvantage is actually incapable of having the emotions in the first place. It is appropriate for the character to take Social Limitations that reflect his inability to deal with other people's emotions.
Cannot Learn
Frequently, Fully 20pts.
A character with this Disadvantage cannot ever learn any new skills. This may be caused by brain trauma, or the character may have an electronic brain designed for one purpose. Once created, this character may never learn any new skills without first buying off this Disadvantage.
Cannot Naturally Heal Damage Caused By (Special Effect)
Infrequently, Greatly 10pts. / Frequently, Greatly 15pts.
The character's body cannot recover from certain kinds of damage without special medical aid. Generally, this Disadvantage is found in fantasy campaigns as the result of a curse, or a flaw of a particular monster's regenerative abilities. For example, a werewolf might not be able to heal wounds caused by silver weapons, a dead giveaway when they return to human form. The frequency of the Disadvantage is based on the commonness of the damaging special effect. At the GM's option, if the Disadvantage is particularly well-known it's severity goes up from Greatly to All The Time, making it worth five more points. (Silver weapons are normally rare, but everyone *knows* that they hurt werewolves, for example.)
Cannot Swim
Infrequently, Slightly 5pts.
The character flounders (and then sinks and drowns) when in water deeper than he is tall. The character doesn't know how to tread water, float, or even dog paddle. His Swimming rate is sold back to 0", and when in deep water is almost helpless. This Disadvantage is different from Sinks Like A Stone because that character cannot float at all, but one with this Disadvantage has a chance of staying afloat. It is suggested that the character take the Psychological Limitation Panics When In Deep Water, or something similar, to simulate his reaction to being unable to keep his head when in such water.
Carrier Of/Infected With (Infectious Disease)
Frequently, Greatly 15pts.
A character with this Disadvantage carries some communicable disease in his system. The disease is harmful (or at least annoying), but need not necessarily be deadly. If the character is a carrier of the disease, he himself is not affected or harmed by it. If the character is infected, however, the disease harms the character himself as well as those around him. To be an appropriate Disadvantage, the disease must be one that either cannot be cured or, upon being cured, renders the patient a carrier of the disease. (For example, a person who contracts hepatitis and is then cured carries hepatitis microbes in his bloodstream for the rest of his life and is capable of infecting others later on.) The exact nature of the disease is up to the player. Possible examples of appropriate diseases include herpes, malaria, hepatitis, the HIV virus and most other sexually transmitted diseases, and typhoid.
Catalepsy
Infrequently, Fully 15pts. / Frequently, Fully 20pts.
This rather nasty medical condition causes its victim to enter a coma state which strongly resembles death at somewhat random times, regardless of their emotional state or activity at the time. This differs from the Talent "Simulate Death" in that it's entirely involuntary and the victim has no control over when the coma will end. At the GM's discretion, this Disadvantage may be worth more in settings where medical science is not sufficiently advanced to detect the difference between catalepsy and death, or worth less in settings with "life-force detectors". This Disadvantage is often combined with a negative Reputation or the Harmful Secret Social Limitation, as it really freaks some people out.
Chronic Dental Problems
Infrequently, Slightly 5pts.
The character's teeth are subject to frequent cavities, misalignment, and being damaged in battle. This gives the character painful toothaches from time to time, and requires him to spend an excessive amount of money on fixing these problems.
Clumsy Hands
Frequently, Greatly 15pts.
A character with this Disadvantage has hands that are not made for fine manipulation. The reasons why depend on the character's concept and the player's choice. For example, the character may be a "beast man", whose hands are closer to paws than real hands, or a large and imposing brick, whose fingers are thick and stubby, or an octopoid alien whose hands are nothing more than the ends of his tentacles. Whatever the reason, the character is unable to do any task which requires the ability to finely manipulate or dexterously wield objects. Such tasks as pushing the buttons on a telephone, writing a note in a precise script, detailed painting, operating most electronic devices, etc. are either beyond the character or suffer a -4 penalty to the roll. Note that this Disadvantage does not affect the character's overall Dexterity; rather, only his manual dexterity is affected.
Cold Blooded
Frequently, Greatly 15pts.
A character with this Physical Limitation cannot regulate his internal temperature. Rather, his body temperature is dependent upon his surroundings. If the environment around him gets too cold, he cannot move or function. Characters with this limitation tend to live in warm regions, or within climate controlled environments. In game terms, if the temperature level is above +3 or below 0, the character's movement rate and DEX are halved. At temperature level -2 and below, the creature cannot move at all and will likely freeze to death quickly if not safely sheltered somewhere. This limitation is especially appropriate for reptilian characters and creatures.
Note that some reptilian creatures from fantasy (dragons, for example) might be warm-blooded rather than cold. Also note that scientists have found compelling evidence that Dinosaurs may have been warm-blooded as well.
Colorblind
Infrequently, Slightly 5pts.
A character with this Disadvantage cannot see any colors at all. In everyday life, this is mostly merely a nuisance. However, in any situation requiring color identification (such as buying gems, uniform identification, cutting the yellow wire and not the blue wire to disable the bomb) there will be minuses. Certain skills will also be harder to use. When using Criminology, Electronics, Forgery, Science Skill: Chemistry (and related fields), Tracking, and Trading, the character will suffer a -1 penalty to his roll if the specific circumstances require awareness of color.
Crushing Grip
Infrequently, Greatly 10pts.
This Disadvantage is only appropriate for characters with a Strength which is greater than that of human possibility. Under stressful situations the character unconsciously applies his casual strength to whatever he is doing. Shaking hands with the President for a shy character might result in crushed bones. Opening a door when he's about to meet the girlfriend he stood up earlier might result in ripping it off its hinges. Trying to avoid a small girl in the road while driving might result in wrenching the wheel off. Gripping the arm of his seat at a very scary movie might result in crushing plastic and steel into a paste. This does not apply to situations where the character is trying to apply force greater or equal to his casual strength, of course. What is considered stressful to a character is up to that specific player and the GM.
Cursed
Frequently, Greatly 15pts.
This is like Unluck, but worse. If anything bad happens to the party, it happens to this character first and worst. If anything good happens, it misses him. And any time the GM feels like hosing the character, he can. It is possible, if a bit suicidal, for the character to take both this Disadvantage and Unluck.
Damned
Infrequently, Fully 15pts.
The character has made a deal with a supernatural being (usually evil) that pledges the character's soul to said supernatural being (or its superiors) upon the character's death or the fulfillment of certain other conditions. Such deals are usually full of lethal loopholes and double meanings, generally to the character's detriment. The most obvious physical effect is that if the character 'dies', for even a second, the supernatural being will take possession, and any revival attempts must deal with said being. The character with this Disadvantage will often have his contractual partner as a combination Contact/Watched, and have a severely negative Reputation if the status of his soul is known. Contrary to popular fiction, it is not easy to cheat a demon with whom a character has a contract, as they tend to be experts in contract law. Breaking the terms of the contract usually gives the demon the legal right to carry the character to Hell right away.
Deaf
All The Time, Greatly 20pts.
A character with this Disadvantage can hear nothing. Any information he receives must be communicated through other means (such as writing, sign language, telepathy, etc.). The character is immune to any attack against the hearing sense, such as Darkness to Hearing or Flashes vs. Hearing, but also cannot hear shouted warnings, cannot communicate with others easily, etc. At the GM's option, the character may begin play with Language Skill: Sign Language as the character's "native" language.
Diabetes (Type 1)
Infrequently, Greatly 10pts. / Infrequently, Fully 15pts.
Type 1 diabetes mellitus, more commonly known as just Type 1 Diabetes, is a genetic disease in which the pancreas produces too little insulin to meet the body's needs. Insulin is a hormone that helps regulate the level of glucose in the blood. Glucose is an important source of energy for the cells of the body. When a person eats, the pancreas normally makes extra insulin to move glucose from the bloodstream to the inside of the cells. A person with Type 1 Diabetes does not have enough insulin to move glucose into their cells. The amount of glucose in the blood then becomes abnormally high. Type 1 Diabetes accounts for only 5% to 10% of the cases of diabetes mellitus diagnosed in the United States. Type 2 Diabetes, in which the body cells are resistant to insulin, is much more common. Symptoms of diabetes include excessive hunger or thirst, fatigue and weakness, increased amounts and frequency of urination, nausea, vomiting, blurred vision, and weight loss (despite the increased appetite). Diabetic ketoacidosis occurs just before coma and death in people with Type 1 Diabetes. When the cells in the body don't get enough glucose, the body starts burning fat for energy. This produces waste products known as Ketones, and high levels of Ketones can result in too much acid in the body. This condition causes dehydration, labored breathing, and vomiting. Immediate medical attention is needed to prevent coma and death. A character with Type 1 Diabetes has a dependency to insulin, which must be taken daily. If not, the character suffers physical harm from the effects of the disease. In addition, Type 1 Diabetes causes the character to be less resistant to other diseases (-3 to all CON Rolls related to disease resistance). A character taking this Disadvantage is also required to take Dependence: Insulin, Very Common/Easy To Obtain, 1 Day, 3d6 Damage for 5 points. A character wishing to take Type 2 Diabetes should just take the Dependency.
Dies If He Uses (Specific Power)
Infrequently, Fully 15pts.
A character with this Disadvantage has a power which he cannot use without killing himself. In general, the power in question will be his most powerful attack or defense power; the GM should make sure that the power in question is appropriately dramatic and important for this Disadvantage to be appropriate. The character will probably (and understandably) be hesitant to use the "lethal" power. The occasion upon which he uses it (if any) should be a dramatic and powerful role playing moment, in which the character has no other choice. However, the GM should not maneuver the character into such a position; rather, he should let the player maneuver himself into it if he wants to. The character is always free to choose not to use the power.
Dietary Restriction
Frequently, Slightly 10pts.
This character has some specific dietary requirement; he cannot eat certain foods, or can only eat certain food, as determined by the player. The character is not necessarily poisoned if he eats foods in contradiction to his Dietary Restriction; he simply cannot digest and use food which goes against his requirements. For example, a character with Dietary Restriction (Carnivore) can eat vegetables, but won't gain any nutritional value from them. The permutations of this Disadvantage are nearly endless. Some possible variations include:
Carnivore: The character's preferred food is meat. In addition, the character may be further restricted to either cooked or raw meat, or may be able to eat either. Other possible variations of this Restriction include only being able to eat fish, or not being able to eat fish, or only being able to eat carrion.
Herbivore: The character's preferred food is plant matter. What particular part of a plant is up to the player. The character may be able to eat any part of a plant, or may be restricted to leaves, bark, or fruit. In addition, the character may be able to eat any plant, or only a few species.
No Processed Foods: The character can eat anything he wants, as long as it doesn't have any additives. Artificial flavorings, preservatives, etc., all ruin the food for the character. In this case, the character probably does most of his grocery shopping at health food stores and organic specialty stores.
Unusual Additives Required: The character can eat anything he wants, as long as the required additive has been included. The exact nature of the additive is up to the player and should fit into the character's concept. If the additive is normally toxic to human beings, the character is required to purchase Life Support: Immunity to that substance. The player should have a concept explaining why the character has this Disadvantage.
Doesn't Understand Modern Life
All The Time, Slightly 15pts. / All The Time, Greatly 20pts. / All The Time, Fully 25pts.
A character with this Disadvantage is generally from another time period, and doesn't comprehend the day to day rules of society that most people take for granted. Examples include when to not cross a street, how to drive a car, what a telephone is for, how to summon emergency help, etc. The character simply has no grounding in the rules and taboos of modern life. Most skills involving blending in or interacting with other people are performed at a -2 modifier, and the character cannot take any Knowledge Skills dealing with current culture. The closer the character's native time period is to the current time of the campaign, the less this Disadvantage is worth (meaning that a person from the late 1800's/early 1900's would have less of a problem adapting to 21st Century life than would a person from 1500 BC).
Doesn't Understand Modern Technology
Frequently, Greatly 15pts.
A character with this Disadvantage never learned how to use most or all of the technology that everyone else takes for granted. Generally, this means the character is out of place in time. (Such as being from the past or the far future.) Examples include not being able to drive a car, not knowing what a television was, not being able to use an elevator, etc. The character is unable to learn any skills which involve modern technology, unless they are obviously based on technology the character can use. (This determination is up to the GM.)
Dwarfism
Frequently, Greatly 15pts.
The character with this Disadvantage is very short and small. A Dwarf must be less than 4' 7" tall as an adult. The character's weight will usually be much lower than that of a normal adult, though it may come close to normal depending on the character's build. Most dwarves also have problems with bone growth; their bones grow curved or at unequal rates, making it difficult for them to move easily. The character is severely limited due to his small stature: shelves are all too tall, clothing must be purchased in the children's sections or specially ordered; the pedals of a car cannot be reached notmally, and the dashboard is too high to be seen over; chairs and tables are built to the wrong scale. Depending on the character's concept, the character's Strength and Constitution will most likely be less than normal.
Dyslexia
Frequently, Greatly 15pts. / Frequently, Fully 20pts.
A character with this Disadvantage has a severe learning disability. The character cannot easily learn to read or write, and even simple maps and road signs are often beyond the character. He can learn any skill normally if he has a teacher. The amount of hindrance is determined by how severe the problem is. At the Greatly level of imparement, the character has difficulty with anything involving number sequences and reading. They can learn to read, but do so slower than most people, and frequently see things out of sequence. This causes them to suffer a -2 penalty to all skill rolls involving numbers or reading. In addition, if the character reads something wrong, he may not realize it. At the Fully impairing level, the character cannot learn to read or do anything more than basic math (on his fingers). Without special training, the character effectively also is Illiterate, but gains no extra points for it.
Ectothermic
Frequently, Slightly 10pts.
A character with this Disadvantage is cold-blooded; he cannot regulate his own body temperature. He may be sluggish at temperatures above or below his normal body temperature, and is at increased risk of heat prostration or hypothermia. In conditions of extremely high heat or cold, the character suffers a -3 penalty to all to-hit rolls and Characteristic checks. Also, such characters suffer double damage from such natural hazards as heat and cold if they do not take precautions.
Environmental Requirements
Frequently, Fully 20pts.
A character with this Disadvantage has substantially different environmental needs from those of normal human beings. Without those requirements being filled, the character will die -- and will usually die in great agony and distress. Unlike a character with Dietary Restrictions, this character is harmed when conditions are different from their needs. Examples of such characters would include fish-men who can only breathe water or aliens who breathe methane. The character may also take a Dependence or a Susceptibility in order to simulate the damage the character will take without his specific requirement. Also, in cases like Environmental Requirement: Can Only Breathe Water, the character is still required to purchase the appropriate Life Support power. If the character possesses a means to overcome their Environmental Requirement as part of their gear (for example, if the methane-breathing alien owns a pressure suit and wears it constantly in oxygen atmospheres), the frequency drops to Infrequently, reducing its value by five points.
Epilepsy
Frequently, Greatly 15pts. / Frequently, Fully 20pts.
A character who has Epilepsy is subject to seizures. At the Greatly impairing level, the seizures are "petit mal", and are notable as more of a "phasing out"; the character stares into space, oblivious to what is going on around him for the duration of the seizure. At Fully impairing, the seizures are "grand mal"; during a grand mal seizure, the character's body trembles uncontrollably and he cannot think or speak clearly. In any stressful situation (especially a life-threatening one), a 13 or less roll will bring on a seizure lasting 1d6 minutes. If the character has any sort of Phobia, exposure to the focus of his fear is considered a stressful situation. During a seizure, the character can take no actions. In the case of grand mal seizures, the character suffers 3d6 Stun damage as well.
Farsighted
Infrequently, Greatly 10pts.
This character has trouble seeing objects and print that is too close and is at a -3 to perform any task which involves close scrutiny. Since most campaigns happen in a modern setting, and glasses or contact lenses are freely available to just about anyone who needs them, the frequency of this Disadvantage is at it's minimum value to represent rarely being without corrective lenses. If the character has such corrective measures in place, the -3 modifier is waived. If the campaign is taking place in the past, when such items were not so readily available, it becomes Frequently, Greatly: 15 Points.
Fated
All The Time, Slightly 15pts. / All The Time, Greatly 20pts. / All The Time, Fully 25pts.
A character with this Disadvantage is Fated to always have something happen, or to never have something happen. The character must have some reason for wanting things otherwise -- being Fated To Never Lose A Fight isn't an appropriate Disadvantage. Usually, the reason why the character wants otherwise can be defined in a Psychological Limitation; for instance, a character with Ophidiophobia (the fear of snakes) might be Fated To Meet Snakes At Least Every Third Adventure. A villain who carries a gun might be Fated To Never Use His Gun Against A Character Who Would Be Injured By It. He can still use the gun for intimidation, or to shoot objects, but for some reason whenever he pulls the trigger against a person, the target dodges his bullets or bounces them.
Feeling His Age
Frequently, Slightly 10pts.
The character is getting up in years, and doesn't quite have the endurance or resistance to disease he once did. As such, he is -1 on all Constitution Rolls. This Disadvantage can only be taken by a character who also has taken the Normal Characteristic Maxima Disadvantage. This is because the character also has to take the Disadvantage Age: 40+ or Age: 60+.
Feels No Pain
All The Time, Greatly 20pts.
This Disadvantage is most appropriate for characters in a heroic level campaign. The character has no sense of pain, and therefore is not aware of when he is injured. The character can easily break bones or suffer from sprains and tears and never realize it, or the character could get seriously cut and then bleed to death before realizing he was even hurt. During combat, the GM should keep track of any body damage the character takes, not telling the player until and unless combat is over or the character dies suddenly from his injuries.
Frequent Nightmares
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts. / Infrequently, Fully 15pts. / Frequently, Slightly 10pts. / Frequently, Greatly 15pts. / Frequently, Fully 20pts.
A person suffering this Disadvantage often has horrible dreams at night. The character wakes often, and in the morning feels unrested. The character suffers all the effects of Insomnia, and thus cannot also take that Disadvantage. The point value of the Disadvantage depends on how often the character has the nightmares (once a week for InFrequently, once every two or three days for Frequent), and the intensity of the nightmares.
Giant
Frequently, Greatly 15pts.
A character with this Disadvantage is dramatically taller than a normal person without actually having the Growth power. The character is at least 6'6" tall. In addition, the character probably weighs in excess of 250 pounds, even if not massively built or obese. Though most people who qualify as giants are physically imposing and capable of incredible feats of strength, they also have low stamina and often suffer incredible health problems. The most common problems are arthritis and heart disease, even when they try to keep themselves in shape. This translates as a limit of 15 on their Constitution scores. In addition, he suffers all the same penalties of being Tall, and cannot also take that Disadvantage. Also, a true Giant usually eats more than a normal person, even if he is not overweight; food costs go up proportionally. For a superheroic-level character this Disadvantage might not be appropriate. In that case, try the Physical Limitation Heavy instead.
Gimp Leg
Frequently, Slightly 10pts. / Frequently, Greatly 15pts.
This character has some impaired mobility with one of his legs. The specific reason for this is up to the player (some possible examples are damaged knees, one leg being shorter than the other, a malformed foot, etc.). At the Slightly level, the character sells back 2" of his Running rate, and suffers a -1 penalty to his DCV. At Greatly impairing, the character sells back 4" of his Running rate, is at -2 DCV, and cannot use any Martial Kick maneuvers.
Gravity Intolerance
Infrequently, Greatly 10pts. / Frequently, Greatly 15pts.
The character reacts poorly to changes in gravity, becoming nauseous and/or achy. The character will be at -3 for all skills and combat until his body readjusts. This Disadvantage is only suitable to campaigns where changes in gravity come up frequently, primarily space-faring settings. The occurrence is Infrequently if the society makes heavy use of artificial gravity to make its citizens comfortable; and if the character must take planets and starships as he finds them, its Frequently. Having a gravity-altering superbeing in the campaign is generally not enough to justify taking this Disadvantage. Try a Vulnerability to gravity-based attacks instead.
Hard Of Hearing
Frequently, Slightly 10pts.
This character has suffered some sort of hearing loss. He can hear, as long as the source of the sound is loud enough or close enough. Otherwise, all Hearing Perception Rolls are at a -3 penalty.
Heavy
Frequently, Greatly 15pts.
This character's body is extraordinarily heavy (more than 350 pounds). This is more than being Overweight (characters who are merely obese characters should take that Physical Limitation instead). The character is, instead, so heavy (perhaps through great size or great density) that it often causes him difficulties. Chairs or even floors might not be strong enough to support him, teammates might be unable to lift him, vehicles might be unable to carry him, etc. This will sometimes be taken in conjunction with Giant or Unwieldy Body Shape.
Heavy Sleeper
All The Time, Slightly 15pts.
The character is very hard to wake up, once asleep. Loud noises, bright lights, changes of venue, he can sleep through it all. For obvious reasons, this character should not take any job that requires 24-hour "on call" availability. A character with this Disadvantage may not take Lightsleep, though Combat Luck only usable while asleep is appropriate.
Hemophiliac
Infrequently, Greatly 10pts.
A character with this Disadvantage has no clotting agents in his blood. In today's modern world, this character would regularly take medication which builds up artificial clotting agents in his blood. While taking these drugs the character handles damage as normal, but if off the drug for an extended period (1 week, typically), they become unable to stop bleeding on their own. In this state, if they sustain even 1 Body of damage involving Trauma-like F/X, they begin to bleed to death at a rate of 1 Body per Turn. This continues until the character dies, or receives medical attention specifically to stop the bleeding. If the campaign is taking place prior to the 1960's, these artificial clotting agents are not available, and the frequency rises to Frequently, which adds five points in value.
Hive Mind
All The Time, Greatly 20pts.
The character has little to no individual intelligence or free will. Instead, it is a part of a larger group that combines its forces as though all the members share a single mind. This can represent a hive insectoid race, a fleet of robotic drones or a psychic gestalt, among other concepts. If somehow cut off from the rest of the hive mind, the individual character becomes confused if anything interrupts its specialized function. It will revert to basic instincts or attempt to flee and contact its group. On the other hand, a group of beings with a Hive Mind will be able to coordinate actions flawlessly (as though they'd all made their Teamwork rolls.) Hive Minds are traditionally not very creative or imaginative, but they are fearless and ruthless. There are two basic models of Hive Mind to choose from, central intelligence or distributed intelligence:
In the central intelligence model, one being (the "queen") acts as the brain for the Hive Mind. This has the advantage that losing individual members won't hinder the queen's intelligence, but the weakness that killing or incapacitating the queen will make the rest of the Hive Mind unable to function until a new queen is up and running.
The distributed intelligence model allows the Hive Mind to avoid the "cut off the head" tactic, but each loss of an individual part lessens the whole. Example: Andarra is trapped on a space station with six Psilux bounty hunters. The Psilux are a distributed intelligence Hive Mind. Each individual has only a 3 INT, but the overall group has an effective INT of 18. Andarra gets lucky and knocks out one of the Psilux, leaving them with only a 15 INT. If she can get rid of a few more, she'll easily be able to outwit the remainder. But thanks to their Hive Mind, the remainder of the bounty hunters know where she is... Hive Minds often have Mind Link with all the minds in the group.
Hormonal
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts.
The character suffers from a slight hormonal imbalance, or from rapidly shifting hormones, with the result that he suffers uncontrolled mood swings. Stereotypically, this Disadvantage is seen in early adolescence, particularly with girls. The character becomes irritable, depressed, horny or even blissful with little or no correlation to outside events. The GM picks the mood swing the character will have and when it hits him, choosing either deliberately or by random roll. At the Slightly Limiting level, the new mood is equivalent to a Moderate-level Psychological Limitation. At the Greatly Limiting level, it's equivalent to a Strong-level Psychological Limitation. Characters with this Disadvantage may also have a Social Limitation related to their most frequent mood, especially at the Greatly Limiting level.
Horrible Hangovers
Infrequently, Greatly 10pts.
Characters with this Disadvantage have problems processing alcohol out of their system. While their livers work at removing the alcohol from the blood, the rest of the body suffers the effects from it. Pounding headaches, nausea, and light sensitivity are all common side effects. After waking up from a night of drinking, a character with Horrible Hangovers suffers a -4 penalty to all actions for 6 hours.
Hunchback
Infrequently, Greatly 10pts.
This character has a severe curve in his spine that is covered in a fleshy mass. His back muscles are usually stiff and sore from their odd position. Because of the stiff back and shifted center of balance, this character has problems with fluid movements. They have a -2 penalty to any Martial Arts or Acrobatic Maneuvers.
Hyperactive
Frequently, Greatly 15pts.
A character with this Disadvantage is constantly fidgeting and has problems paying attention to instructions. Hyperactive characters tend to not to read an owners manual or do anything quietly. Incomplete tasks and half finished projects are their hallmark. Any skill attempted by this character which involves concentration or stealth has a -3 penalty.
Illiterate
Frequently, Greatly 15pts.
A character with this Disadvantage doesn't know how to read. Books, signs, scrolls, notes, names on maps... all of them are indecipherable to the character. The character may be able to recognize certain common shapes and symbols, however. (For example, the character may be able to recognize a stop sign from its shape and color... and may even be able to recognize the word "stop" when he sees it elsewhere.) If the campaign is set during a time period in which being Illiterate is much more common (basically any time prior to 1900), and therefore less limiting, this Disadvantage reverts to InFrequently, Greatly, for 10 Points.
Insomnia
Frequently, Slightly 10pts.
This is a character who has trouble falling asleep, and when he does sleep it is usually only for a few hours at a time. This tends to make the character cranky, always tired, and dulls the character's reflexes and thinking. Any Intelligence-based or Dexterity-based skills have a -2 penalty. In addition, the character is unable to push any of his abilities. In general, Insomnia will follow a cycle. For example, the character may have a week of only sleeping three hours a night, followed by a period in which the character sleeps 30 hours straight, followed by a return to the week at three hours a night. In some cases, however, the character won't sleep at all for a period (usually no more than three days), followed by a period in which the character sleeps for a long, long time (generally a length of time equal to one-half to two-thirds of the time that the character went totally without sleep).
Instinctive Intelligence
All The Time, Greatly 20pts.
This Physical Limitation represents the level of intellectual ability possessed by creatures like fish, insects, and other lower life forms. It barely even qualifies as "intelligence" at all. The creature is ruled entirely by instinct and cannot be easily trained or interacted with by sentients.
Invertebrate
Infrequently, Greatly 10pts. / Infrequently, Fully 15pts.
A character with this Disadvantage doesn't have a spine covered with a bone sheath. Invertebrates are divided up into two basic types: those with an exoskeleton (such as insects, crustaceans, etc.) and those without (worms, octopi, etc.). Because of a lack of a supporting skeletal structure, characters with this Disadvantage suffer more damage from penetrating attacks. When an invertebrate with an exoskeleton is hit with a Penetrating attack, he takes 1 additional point of Stun per attack die (example: +2 points of Stun for a 2d6 penetrating attack). When an invertebrate without an exoskeleton is hit with a Penetrating attack, he takes 2 additional Points of Stun per attack die (example: +4 points of stun for a 2d6 penetrating attack).
Karmic Ties
Infrequently, Slightly 5pts. / Frequently, Slightly 10pts.
This Disadvantage is taken by two or more characters to represent a kind of fate that binds them together, causing them to affect each others' lives or be thrown together, regardless of other circumstances. Usually, this is considered to have a supernatural cause, with the two most common versions being prophecy and reincarnation. In the prophecy version, a prediction has been made that the two (or more) characters will have a specific relationship; this may or may not be an accurate prediction, but attempting to disprove it often results in the characters interacting anyway. Most such prophesies are obscure of wording and difficult to properly interpret. In the reincarnation version, the characters shared a strong relationship in a previous life (lovers, arch-enemies, close relatives, blood brothers, etc.) and the effects of this relationship linger on in their new lives. No matter how they try to avoid it, their karma calls them together. Note that their relationship may not be the same in the new lives; former enemies may now be mother and daughter, for example. Many characters with the reincarnation version also have Flashbacks or Frequent Nightmares relating to their previous lives.
Klutz
Infrequently, Slightly 5pts. / Frequently, Slightly 10pts.
The character is clumsy, either because of inattention or nervousness. He tends to trip a lot, bang his head on low-hanging objects, drop things, etc. He's at -1 to any Dexterity-based roll that is non-critical; klutzes tend to lose their clumsiness when their lives are at stake. Crushing Grip is a painfully appropriate complement to this Disadvantage.
---
Lack Of Spatial Sense
Infrequently, Slightly 5pts.
This Physical Limitation means the character's spatial sense doesn't function correctly, which affects his ability to follow directions. He cannot find his way easily and often gets lost. This generally won't be a problem in combat situations, but in other circumstances can be extremely frustrating. The character must make an INT roll at -2 in order to follow any directions he is given, and suffers a -2 penalty to all Navigation rolls.
Late Maturation
Infrequently, Slightly 5pts.
This Disadvantage is for characters who would chronologically be considered adolescents or young adults of their species. For some reason, the onset of the physical changes associated with maturity has been delayed, or the process of maturation has been slowed. Thus the character appears much more physically immature than other people his age. This usually isn't dangerous or physically limiting in and of itself, but can be very annoying to the character. Short and Minor (at a higher level than normal for the character's age) often accompany this Disadvantage. The character may or may not be Immature, but can "get away with" being so more easily than most. Note that this Disadvantage does not extend the character's lifespan, unless Life Support: Longevity has been purchased, in which case it may be the explanation of the Late Maturation.
Light Sleeper
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts.
The character who only lightly enters dreamland is uncomfortable in new surroundings, enough that they do not rest. Sounds of the city to country folk, or country sounds to the city bred ruin their rest. It is not that they pop awake, but that they tend to thrash around enough to fall out of bed (and perhaps really annoy a spouse). At the Strong level, it isn't funny anymore as the character can end up with baggy eyes, bruising and or reduced reactions (GMs can throw perception rolls until coffee or adrenalin hits the system). They also tend to need contraptions such as blinders and/or earplugs to get their rest -- essentially making them harder to waken in some cases. At the Total level, the character cannot rest unless they make use of a sensory deprivation chamber or some combination of familiar environment and special need. For example, a person raised in a space station might just have to sleep vertically -- requiring a kind of water tank that doesn't travel easily (on Earth). Lack of rest can limit the recovery of Body over time.
Limited Intellect
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts. / Infrequently, Fully 15pts.
The character with this Disadvantage is not stupid or even dumb, but they do posses a sort of "blind spot" in some form of learning. At the Slight level they may never get countries or capitals straight (geography blind spot), and may avoid the whole rank issue with a "sir" to anyone and everyone (military procedures blind spot). At the Great level they may be unable to grasp a class of related items like the inability to handle fractions or to remember appointments. At Full, the blind spot is complete, such that they may never be allowed a driver's license (no understanding of traffic rules) or be unable to describe any woman other than "Ma". The lower two levels are viable Disadvantages for most characters, and the last one perhaps only when tied to a great intelligence (ala absentminded professor style) or when there are two or more smaller categories.
Limited/No Physical Sense
Frequently, Greatly 15pts.
A character with this Disadvantage has either a limited or nonfunctional sense of touch. If the character has any sense of touch at all, it is only triggered by the harshest of sensations, and even then its not as sensitive as it should be. The character cannot detect fine details by touch, and finds fine manual work difficult or impossible. A Brick with this Disadvantage might find himself constantly breaking things accidentally because he doesn't realize how much pressure he is applying.
Low Pain Threshold
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts. / Infrequently, Fully 15pts.
A character with this Disadvantage doesn't automatically fear pain, but they absolutely can't deal with it. A scratch, a mild abrasion whatever, these become the focus of their immediate life until they stop. At the Slight level they will be able to press on but will whine, wheedle and beg until someone looks at that huge plank of wood in their hand (splinter). At Great, this person would drop and writhe like an epileptic on taking serious Stun from an attack. If so struck, they can make an Ego Roll to avoid losing a Half Phase to such writhing. If the pain grows (more Stun) they might flee the source or make an all out attack at the cause of their pain. At the Full level, should they still be functional after an attack that does Stun to them, they will be downright vicious in taking down the cause of their pain. They will do anything to make it stop, but if under torture will pass out far too quickly to give much information. At any level, they gain a penalty to Teamwork equal to -1 per 5 Stun taken, after defenses. This penalty is cumulative during a character's Phase, and resets after taking their next Action.
Machine Intelligence
Infrequently, Greatly 10pts.
This Disadvantage is only appropriate for a character who is some form of Artificial Intelligence. It reflects the character's tendency to think in a rigid and literal manner, often to the detriment of the character's ability to behave in a manner that "common humanity" would find acceptable. Such a character thinks in a logical and systematic manner, utilizing the information in front of them with very little creative thought, and without thinking of the possible consequences of their actions. In addition, the character's actions are often dictated by what logic says is the most efficient choice, rather than what human morality would say is the proper choice. The character finds it hard to give the proper responses to illogically driven emotional outbursts, to get the punchline of jokes (and when attempting to tell jokes himself, comes off as lame), and only rarely has bursts of intuition that transcend the available information. This Disadvantage is not always appropriate for Player Characters, as most Machine Intelligences tend to act in a similar manner to that of a Sociopath. They don't generally care about "social mores", because they act on simple logic.
Manchurian Candidate
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts. / Infrequently, Fully 15pts.
A character with this Disadvantage has been programmed or brainwashed to perform a certain task. Unaware that he has been programmed or to what purpose, he goes about his day-to-day life until some predetermined event triggers his programming. The programmed task can be almost anything, but will always be something detrimental to the character. Some example tasks include assassination, bugging a room with surveillance equipment, destroying a piece of equipment, or perhaps reporting the dayís activity to an enemy. Depending on the task the character may or may not remember doing it and will almost never remember why. The trigger can be almost anything. Some examples are key phases (in any language), a time of day, a particular date, or being alone with someone. The trigger does not affect the cost of the Disadvantage. How often the character is called on to perform the task does affect the cost. A character taking this Disadvantage needs to get permission from their GM, who may want to decide the details and not tell the player until the Disadvantage is triggered. The point cost depends on just how potentially damaging to the character are the consequences of his programmed action. Passing information or planting a bug are both actions that may or may not ever be discovered, and thus the consequences are not that great. Sabotage carries a greater risk of discovery, while assassination carries the greatest risk of all and thus would be worth maximum points.
Mere Mortal
All The Time, Greatly 20pts.
A character with this Disadvantage takes double the amount of Body damage from any attack. This represents a character who is a true normal.
Mesothelioma
Infrequently, Greatly 10pts. / Frequently, Greatly 15pts. / Frequently, Fully 20pts.
Mesothelioma is a rare cancer in which tumor cells grow in the chest cavity, abdominal cavity, or around the heart. This disease is caused by multiple consecutive daily exposure to high levels of asbestos (other materials are also suspected causes). Early symptoms resemble either those of respiratory viruses (shortness of breath, chest pain, persistent cough, fever, weight loss, night sweats) or those of gastrointestinal disease (abdominal pain, abdominal bloating, nausea, weight loss, swelling of the feet, anemia). The disease is progressive and has no reliable treatments. Patients with advanced stages of this disease have heightened and multiple symptoms. At the Greatly level, the character must make a Constitution Roll (every 8 hours at Infrequently, every hour at Frequently). Failure of this roll reduces the character's Constitution by 1d6 (along with it's Figured Characteristics) until a recovery Constitution Roll is made (check hourly or less if medical help is available). Furthermore, the character suffers a -2 penalty to Constitution Rolls for resistance to respiratory diseases. At the Fully level, in addition to the Constitution Rolls, the character cannot have a starting Constitution value higher than 8. Characters with the Greatly level have a shortened lifespan, and those with the Fully level have a life expectancy of 4-6 months.
Migraines
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts. / Frequently, Slightly 10pts. / Frequently, Greatly 15pts.
A character with this Disadvantage suffers from intense and sometimes debilitating headaches. These headaches can become so intense that the character's vision becomes blurry and he starts to feel nauseous. Some type of warning often precedes migraines. This is described as an aura. It could be a strange feeling of foreboding, or slightly altered vision. Not all migraine suffers get a warning and even those that do might not get them all the time. Medication can often relieve the pain of migraines. The trade off is that most of these medications cause drowsiness and difficulty concentrating. Often migraine suffers will just call off from work and crawl in bed until the pain goes away. The point value of this Disadvantage depends on both the frequently and severity of the migraines.
Motion Sickness
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts. / Infrequently, Fully 15pts. / Frequently, Slightly 10pts. / Frequently, Greatly 15pts. / Frequently, Fully 20pts.
Motion sickness is dizziness, fatigue and nausea during movement, and in severe cases it can progress to vomiting. It can happen when the brain receives conflicting messages from the various systems that help establish spatial orientation. While anyone can suffer from motion sickness under the right circumstances, a character with this Disadvantage is especially predisposed to the condition. Motion sickness occurs when the body is subjected to accelerations of movement in different directions or under conditions where visual contact with the actual outside horizon is lost. The balance center of the inner ear then sends information to the brain which conflicts with the visual clues of apparently standing still in the interior cabin of a ship or airplane. From one third to one half of airline passengers will experience some degree of motion sickness when encountering heavy turbulence. It has been found that fear or anxiety can lower the threshold for experiencing symptoms, however some individuals seem to be naturally prone to motion sickness since childhood. The character might suffer from motion sickness when their allergies get bad or they may have an old injury to there head or ear that causes them to always suffer from motion sickness if put in the right situation (like riding in the passenger side of a car). Most of the time motion sickness only occurs while some outside influence is moving the character, but some characters might suffer from motion sickness brought on by their own movement (like spinning in a circle). At Slightly, the character will suffer a -1 to all Skill and Characteristic Rolls when struck with motion sickness. At Greatly, the character will suffer a -3 to all Skill and Characteristic Rolls. At Fully, the character will suffer a -5 to all Skill and Characteristic rolls.
Must Sleep After Casting Powerful Magics
Infrequently, Greatly 10pts.
This Disadvantage is only appropriate for campaigns which feature the use of magic, and assumes that the character is capable of using such magic. With this Disadvantage, the use of the most powerful incantations the character is capable of drains the character, such that he must sleep for 4 to 8 hours afterwards.
Must Use Powers At Full When Excited/Agitated
Frequently, Slightly 10pts.
This character has no control over his "throttle" when he becomes emotionally agitated or excited. The character cannot pull punches, tone down energy blasts, or do anything other than to go full bore. In combat, it is impossible for the character not to use his full damage capability.
Mute
All The Time, Fully 25pts.
This character cannot speak. All communication between this character and others must be through some other medium (such as writing, sign language, or telepathy). The character is not necessarily Deaf, though others may often assume so.
Narcolepsy
Infrequently, Fully 15pts. / Frequently, Fully 20pts.
This medical condition causes its victim to fall asleep at somewhat random times, regardless of their emotional state or activity at the time. This can be extremely dangerous, and may keep the victim from engaging in certain activities for safety's sake. The frequency of this Disadvantage determines how often the character drops suddenly asleep. Narcolepsy is rare among Player Characters, since a GM can invoke it at any time.
Near Human Intelligence
Frequently, Slightly 10pts.
This Physical Limitation is normally only found in animals who are exceptionally "bright", such as elephants and dolphins. This is the highest degree of intelligence an animal can possess without becoming a truly sentient creature. Creatures with Near Human Intelligence are capable of communicating on a very basic level, can learn limited tool use, can develop social structures, and can even learn a basic vocabular in a language used by a sentient species. It should be noted that recent psychological and neurological studies have shown that the great apes are truly sentient (just as human beings are) though they are not as intelligent as human beings, as opposed to being "almost" sentient as this limitation implies.
Nearsighted
Infrequently, Greatly 10pts.
This character cannot see objects clearly if they are more than a few feet away. When using a ranged attack, all of the character's range modifiers are doubled. The size of the object and the details of the object may have an effect on this. For example, even the most nearsighted of people would be able to hit a building. Since most campaigns happen in a modern setting, and glasses or contact lenses are freely available to just about anyone who needs them, the frequency of this Disadvantage is Infrequently. If the campaign is taking place in the past when such items were not so readily available, the frequency becomes Frequently, adding five points to the value.
Needs Reading Glasses
Infrequently, Slightly 5pts.
A character with this Disadvantage doesn't have bad eyesight per say, he merely can't read small print without help. Otherwise, he tends to make stereotypical actions, like holding the written material at arms-length and squinting. This problem is easily correctable with glasses.
Nervous Stomach
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts. / Infrequently, Fully 15pts. / Frequently, Slightly 10pts. / Frequently, Greatly 15pts. / Frequently, Fully 20pts.
This character suffers various abdominal symptoms when they become stressed. The symptoms may be diarrhea, diarrhea alternating with constipation, constipation, abdominal gas, and abdominal pain. At times these symptoms can become so intense that they temporarily debilitate the character. When this occurs, the character will immediately try to find a restroom. In addition to the physical problems this causes, it also could cause the character social problems. For every 5 points of value taken with this Disadvantage, the Game Master should impose a -1 penalty to all Skill and Characteristic rolls. Different characters will become stressed under different situations. At the Infrequently level, the character will only become stressed by situations that trigger his Psychological Limitations. If it is taken as Frequently, the character could suffer the symptoms from anything that the GM deems would be stressful to the character.
Night Blindness
Infrequently, Greatly 10pts. / Frequently, Greatly 15pts.
Night Blindness, also know as Nyctalopia, is a condition that makes it difficult to see at night. In addition, it also causes the eyes to have difficulty adjusting when going from darkness to light and vise versa. Night Blindness is causes by damaged cone cells in the eye. This can be caused by disease, malnutrition, or in some instances, bad genetics. Night Blindness has two levels of severity. At Infrequently, the character suffers double the visual perception penalties in darkness. At Frequently, the character suffers double the penalties for darkness. But in no case can the penalty exceed that which being totally unable to see would cause. The penalty is halved when the character re-enters a lighted area, continues to drop by one for each minute that passes until gone.
No Arms
All The Time, Greatly 20pts.
This character cannot manipulate objects at all without help. Depending on how high the arms were removed, the character may be able to roughly carry objects with the stumps of his arms, but cannot do fine manipulation. If the character has stumps extending to at least the elbow, the character can be fitted with prostheses that include an artificial "grabber" in place of hands. If this is done, the character suffers the effects of having One Arm instead. Note that if the character has an innate method of manipulating objects (like Telekinesis), the frequency of this Disadvantage is reduced accordingly.
No Hands
All The Time, Greatly 20pts.
With this Disadvantage, the character has somehow lost his hands. In general, this Disadvantage is functionally identical to No Arms. However, the character can be fitted with prostheses that include an artificial "grabber" in place of hands. If this is done, the character suffers the effects of having One Arm instead. Note that if the character has an innate method of manipulating objects (like Telekinesis), the frequency of this Disadvantage is reduced accordingly.
No Legs
All The Time, Greatly 20pts.
This character is missing both legs for some reason determined by the character. The character's Running and Leaping are both sold back to 0", and while on the ground he is considered to be Prone. The character cannot move easily on the ground unless he uses a wheelchair or is carried by others. It is possible for the character to use canes and prostheses to replace his legs. If so, the character suffers the effects of having One Leg. Note that if the character has an innate mode of transportation that doesn't depend upon his legs (like Flight), the frequency of this Disadvantage is reduced accordingly.
No Physical Body
All The Time, Fully 25pts.
This character might be only a brain in a jar, or may be permanently desolidified, or may be a ghost, or a packet of living energy. For whatever reason, the character cannot interact physically with the rest of the world. Any character with this Disadvantage should also take Psychological Limitations to indicate the mental impact of not being able to interact with the world normally.
No Sense Of Smell/Taste
Infrequently, Slightly 5pts.
With this Disadvantage, the character cannot make Smell or Taste Perception Rolls. This means that he will never notice certain hazards (such as a natural gas leak). All food tastes bland and spice-less to the character, and real flowers might as well be made of paper. On the other hand, the character can eat almost anything and never have to worry about skunks.
Nocturnal
Frequently, Slightly 10pts. / Frequently, Greatly 15pts. / Frequently, Fully 20pts.
The biorhythms of this character make it so that he prefers to sleep during the day and be awake at night. If kept awake during the day, he becomes moody, irritable, and generally does not function well. At the Slightly impairing level, the character is moody if awake during daylight hours, and suffers a -2 penalty to all Social Skills that may apply. At Greatly, the character suffers a -4 penalty to every roll he needs to make if awake during the day. And at Fully, the character must succeed at both an Ego Roll and a Constitution Roll to remain awake during the day. If either roll fails, the character falls asleep. Even if both rolls succeed, the character will receive a -4 penalty to all rolls made during the daytime; this penalty is reduced by -1 for every 2 points by which the Ego Roll is made.
Obsessive/Compulsive Disorder
Uncommon, Total 15pts. / Common, Total 20pts. / Very Common, Total 25pts.
The character is obsessed with an idea, usually an unpleasant one, such as disease, injury or death. To ward off this obsession, the character performs compulsive ritualistic actions, often of a cleansing or avoidance nature. For example, the character may wash his hands multiple times, physically check that every lock in a building is locked or count to ten before saying anything. This disorder can be treated with medication and behavioral therapy; a character being successfully treated should take the Disadvantage at a lower frequency. In addition, some forms of this disorder are vastly more disabling than others. From a gaming standpoint, one of the drawbacks to this Disadvantage is that it makes the character predictable. An enemy who is aware of the character's OCD can easily trigger it, or set a trap using the ritualistic behavior.
Odor
Infrequently, Slightly 5pts.
This character has persistent body odor, or chronic halitosis, or possibly even chronic flatulence. In any case, something about the character smells bad. Nothing the character does rids himself of the problem, though he may be able to mask it for a short period of time. All Interaction Skills have a -2 penalty while not masked. In addition, anyone using a Smell Perception Roll to identify or find the character gains a +2 bonus to that roll. This Disadvantage should also be accompanied by the Social Limitation: Odor.
Off-Switch
Infrequently, Fully 15pts.
This Disadvantage is appropriate only for characters who are androids/robots or are heavily "cybered". In short, this character can be "turned off" and rendered effectively unconscious by another character. The Off-Switch need not be actually a button to be pushed (it could be a code-word, or the character could respond to some form of remote control). When the Off-Switch is activated, the character is immediately rendered unconscious, and cannot be returned to consciousness until he is turned "back on" by the actions of others. In any case, the character is not likely to advertise the fact that he can be turned off (if indeed he himself knows).
One Arm
Frequently, Greatly 15pts.
This character has lost an arm for some reason. This means that all Grab Maneuvers and Strength Vs. Strength Rolls are at -5 Strength. The character can only use one handed weapons and cannot use shields or two weapons at the same time. If the character has a stump extending to at least the elbow, the character can be fitted with prostheses that includes an artificial "grabber" in place of hands. If this is the case, the character suffers a -2 to any Dexterity-related skill (including Hand to Hand combat) that involves using the grabber.
One Eye
Infrequently, Greatly 10pts.
This character is missing an eye. The character may use a glass eye or wear an eyepatch (if the latter, the character must also take Distinctive Feature: Eyepatch). When in hand-to-hand combat, the character is at -1 OCV and when using ranged attacks is at -3 OCV. Also, all Sight Perception Rolls have a -1 penalty.
One Hand
Frequently, Slightly 10pts.
In general, this Disadvantage is functionally identical to One Arm (except that it's still possible to strap a shield to the arm that doesn't have a hand, and then wield a one-handed weapon in the remaining hand). The character can be fitted with prostheses that can either be a permanently attached small weapon (like a hook or a spike), or an artificial "grabber" in place of the hand. If the "grabber" is is the case, the character suffers a -2 to any Dexterity-related skill (including Hand to Hand combat) using the grabber.
One Leg
Frequently, Fully 20pts.
This character should sell back his Running to 2". His DCV is halved, and he needs crutches or a wheelchair to move unless he is carried or supported by someone else. If the character has enough of a stump left to wear a prosthetic, this Disadvantage is treated as Gimp Leg while he is wearing it. If the character has an easily useable alternate means of mobility (like being able to fly), this Disadvantage becomes Infrequently, Fully: 15 Points.
Overweight
Infrequently, Slightly 5pts.
This character is noticeably obese. In general, his Comeliness will be less than 14, as most people view the character as grossly fat. He also may not have a Body Characteristic higher than 15. Lastly, the character is at a -2 penalty to any Disguise or Shadowing rolls.
Painfully Sensitive
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts. / Infrequently, Fully 15pts.
There are three categories of Painful Sensitivity: Light, Sound, and Smells. Regardless the type, Painful Sensitivity causes the character to experience distracting pain when exposed to intense stimulus. Painful Sensitivity to Light is triggered by being in sunlight or bright rooms. Painful Sensitivity to Sound could be triggered by loud sounds, especially those which are sudden (like a gunshot or a dog's bark). Painful Sensitivity to Smell can be cause by powerful aromas. At the Slightly level the character suffers a -1 penalty to all Skill and Characteristic Rolls made while exposed to the stimulus. At Greatly, the penalty is -3, and at Fully the penalty is -5. This Disadvantage is especially appropriate to characters that have enhanced sensitivity in their "normal" senses. A character with this Disadvantage cannot have any innate Flash Defense for the affected Sense. However, he can have Flash Defense for the affected Sense in an Obivous Focus. This Flash Defense reduces the penalty by -1 for every full 3 points of Defense.
Paraplegia
All The Time, Greatly 20pts.
This character has lost the use of two of his limbs through a paralyzing injury. Not only can the character not move the limbs in question, he has no sensation in them. Injuries to the paralyzed limbs heal slower than injuries elsewhere. Most commonly the two limbs in question will be the character's legs. In this case, the character suffers the effects of having No Legs. In addition, the character may or may not be incontinent; in this case, the character must either wear diapers or use a catheter or colostomy bag. If the character has lost the use of his arms, he suffers the same effects as having No Arms.
Permanently Altered By Intrusive Cybernetics
Infrequently, Slightly 5pts.
Obviously, this Physical Limitation is only appropriate for those characters who gain their powers from cybernetic implants. This character has had major and vital parts of his own body replaced, to the point that if the cybernetics were removed, the character would most certainly die without unusual and extreme medical care. This does not necessarily mean that the character's cybernetic systems are obvious to those around him. Usually, though, when a character takes this Disadvantage, he is on his way to true "Borg-dom", and begins to be seen more as machine than man.
Poor Balance
Frequently, Greatly 15pts.
This character has trouble keeping his balance. On slippery or unsure footing, he tends to slip and fall. In addition, the character has trouble carrying objects when they are not carefully balanced. This character should avoid ledges and other narrow surfaces, as he has a tendency to lose his equilibrium on them. Any Skill or Characteristic Roll related to keeping his balance suffers a -2 penalty.
Poor Eyesight
Frequently, Greatly 15pts.
This character has trouble seeing clearly. He's not necessarily Farsighted or Nearsighted, but rather his vision is generally dim and blurry. Any Sight-Based Perception Rolls the character must make suffer a -2 penalty.
Poor Memory
Frequently, Greatly 15pts.
This character has trouble remembering things. This is not necessarily due to a lack of intelligence. While this does not affect most skills, any time the character is called upon to remember a fact, they must make a successful Ego Roll. (This roll should be modified by stress, the complexity of the information to be remembered, and how often the character was exposed to the information.
Poor Traction
Frequently, Greatly 15pts.
As a result of his powers, this character tends to slide when pushed. Their feel can't "get a good grip" on the ground while they are moving, and are somewhat unstable while standing still. The character suffers knockback as if he were flying (if already flying, this Disadvantage has no affect at that time). They also suffer a -2 penalty to any Dexterity Roll which deals with the character keeping his feet. This Disadvantage is restricted only to characters with the appropriate powers.
Powers Damage Character's Surroundings
Frequently, Fully 20pts.
Whenever this character uses his powers, the objects and terrain surrounding him are damaged in some way. Floors can collapse beneath the character, personal items can catch on fire and objects can break, and people in close proximity can be damaged unintentionally. The exact cause of the damage should depend on the special effects of the character's powers. The GM can determine the exact effects of such damage, but a general guideline should be an Energy Blast attack, the dice of which are equal to the active points of the power used divided by 5.
Pregnant
All The Time, Greatly 20pts.
This character is carrying a developing, unborn child, and as such must carefully see to the needs of not only herself but to the needs of the child as well. If the character takes any Body damage, she must make a Body Roll or miscarry the child. As the character's date of delivery approaches, the GM should impose further penalties to the character's movement rate, agility, and balance as well as their ability to handle sharp sensory stimulus (especially odors and tastes). Once the character has delivered the child, this Disadvantage transforms into a DNPC.
Quadriplegia
All The Time, Fully 25pts.
This character has lost the use of his arms and legs for some reason (usually an accident of some kind). The character cannot move anything other than his head of his own accord without assistance. He cannot move on the ground without using a wheelchair or being carried. A Quadraplegic character is normally incontenent (meaning he has no control over his "bathroom functions"). In addition, his total care is left up to other people: he cannot bathe himself, feed himself, or dress himself. The character automatically suffers the effects of having both No Arms and No Legs. In addition, the player should decide whether the character can still breathe on his own; if not, he will be permanently attached to a respirator.
Rapid Aging
Infrequently, Slightly 5pts.
This character is aging at a faster rate than normal, and can thus expect a shorter life span as a result. The precise rate of aging is up to the player. It should be noted that normally, this Disadvantage is only a problem if the character is going to some effort to fix it. For example, a character who ages 2 years for every 1 that passes is probably not going to grow old within the time frame of a normal campaign. However, if the character's rate of aging is increased greatly (for instance, 1 year for every day that passes), the character is more hampered, and the GM may want to assign a larger point value to this Disadvantage.
Recurring Amnesia
Frequently, Fully 20pts.
This is a variation on the Physical Limitation Amnesia. In this case, not only has the character forgotten all details of life prior to the original cause of the Amnesia, he also no longer has the ability to retain learned information beyond a certain point. What this means is that every time the character wakes up, he has forgotten everything after that certain point all over again, and must relearn it every day.
Reduced Leap
Frequently, Slightly 10pts. / All The Time, Slightly 15pts.
For whatever reason (usually having to do with the structure of the character's legs, or his ability to use them), a character with this Disadvantage has a lessened ability to jump and leap. At the Frequently level the character's normal leaping distance is sold back to half it's original value. And at All the Time, all the character's inches of leaping are sold back.
Reduced Sense Of Hearing
Frequently, Slightly 10pts. / Frequently, Greatly 15pts.
For whatever reason, this character's hearing is not as sharp as it should be. At the Slightly level, the character suffers a -2 to all Hearing Perception Rolls. At Greatly the character suffers a -4 penalty. It is recommended that player characters not take the Greatly level, as the character will be constaly saying in a loud voice, "Huh?" or "What?" Also, in games set in modern or more technologically advanced times, the use of hearing aids makes this either Infrequently, Slightly: 5 Points, or Infrequently, Greatly: 10 Points.
Reduced Sense Of Sight
Frequently, Slightly 10pts. / Frequently, Greatly 15pts.
This character suffers some problem with their visual acuity other than focus or color (those are different Disadvantages). Such problems can include not noticing objects and creatures that are not moving, or perceiving less difference between color values (for example, seeing in 256 colors while the rest of the world sees in 532), or seeing objects (and people) as blocky, rough-edged objects or just outlines. At the Slightly level, the character suffers a -2 to all Sight Perception Rolls. At Greatly the character suffers a -4 penalty.
Reduced Sense Of Smell/Taste
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts.
This character suffers some problem with their olfactory senses. This may mean that the character cannot smell certain odors, or perhaps smells things differently than from other people (for example, what may smell like perfume to a "normal" person may smell like bug spray to a person who suffers this Disadvantage). At the Slightly level the character suffers a -2 to all Smell/Taste Perception Rolls. At Greatly the character suffers a -4 penalty. It is recommended that player characters be allowed to only take this Disadvantage if it would have a reasonable chance of hindering the character. For example, not being able to smell the odor of decayed meat would not be that hindering to a character in a game set aboard a spaceship in deep space. However, not being able to smell burning insulation could be very detrimental to the character.
Reduced Sense Of Touch
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts.
This character's ability to detect pressure, heat, cold, and pain through touch is reduced but not removed. The loss of these senses can lead the character to have problems involving any task requiring careful manipulation, such as installing electrical wiring, entering a password, flying an aircraft, and so on. At the Slightly level the character suffers a -2 penalty to all Touch Perception Rolls (like telling if a surface is smooth or finely etched, or made of plastic or metal), and also a -1 penalty to all Dexterity-related tasks of precise, fine manipulation. At Greatly the penalties are -4 to the Touch Perception Rolls, and -2 to the same Dexterity-related tasks. Note that neither level affects the character's ability to hit a target in combat and to make himself a dificult target to hit (i.e. no OCV/DCV penalties), and doesn't affect his ability to move. If a character is subject to a Flash vs. the Touch Group, the character suffers the same penalties as if he had the Greatly level, for the duration of the Flash's effect.
Repelled By Mirrors
Infrequently, Fully 15pts.
This is another of the classic "Vampire" Disadvantages, though it can apply to nearly any evil, supernatural character. This character is physically compelled to back away from a mirror, especially when one is thrust into his face. This effect occurs regardless of whether the creature casts a reflection in a mirror or not. Characters with this Disadvantage cannot approach closer than five feet or so to the mirror, and will avoid looking into one even when he is farther back than that. This Disadvantage also works well with Cannot Enter a Home Without First Being Invited, Repelled by Religious Symbols or Objects, and possibly also Cannot Cross Running Water.
Repelled By Religious Symbols Or Objects
Infrequently, Fully 15pts.
This is one of the classic "Vampire" Disadvantages. This character feels compelled to back away from a symbol of a faith which thinks of this character as evil, and itself as good (i.e., a point-downwards pentagram symbol doesn't usually affect vampires). The symbol must be presented in a forceful manner by a person who truly believes in the faith represented by the symbol. (In other words, an atheist can wave a cross in the face of a vampire all night long and only make the undead creature giggle; a person of faith, however, can cause the vampire to scramble backwards quickly. Characters with this Disadvantage cannot approach closer than five feet or so to the character holding the object, and will back away from the character if approached with the item. This Disadvantage also works well with Cannot Enter a Home Without First Being Invited, and possibly also Cannot Cross Running Water.
Requires Lots Of Food
Frequently, Slightly 10pts.
The character requires more food than is normal for his physical size, a minimum of at least twice the usual portion. If he cannot get such an amount of food, the character will suffer in the same way as a normal member of his species does during starvation. And his food bills are enormous. In campaigns where there's a famine on, or food is otherwise extremely scarce, this Disadvantage becomes Greatly limiting, adding five points to it's value. Some characters with this Disadvantage also have the Physical Limitation Overweight, but it is not mandatory. The equivalent Disadvantage for vehicles is "Gas-Guzzler."
Secretor
Frequently, Slightly 10pts.
This character exudes body fluids or excretions, in significan amounts. These secretions all contain large amounts of DNA markers, also. It is hard for this character to disguise the fact that he was ever in a specific place. A forensic scientist can easily tell if a certain Secretor has been in an area by the clues they leave behind. Anything that leaves the character's body contains a DNA marker, including blood, urine, feces, tears, saliva, sweat and mucuous.
Self-Destruct Button
Infrequently, Fully 15pts.
This character has some system of self-destruct (a small explosive device implanted inside of them, an override command which wipes the memory and permanently shuts the character down, etc.) which has an external trigger. Robots, cyborgs, and even bioengineered super humans may be implanted with a self destruct device by their creators. The self destruct button is usually placed in an area where everyday actions won't trigger it, and it may even be placed under a panel or under the skin. Once the self destruct button is triggered, the character immediately suffers a Hand Killing Attack 10d6 with no defense (including Damage Reduction).
Semi-Upright
Frequently, Slightly 10pts.
This character can walk on two legs, but must run on all fours. His pelvis is slightly elongated from the typical butterfly shaped human pelvis. Apes and monkeys are good examples of this Disadvantage. When running on all fours, this character may not hold any objects in his hands. All such objects must be holstered, stored, or otherwise put away.
Sessile
All The Time, Greatly 20pts.
This character is unable to easily move from his position. The character is affixed somehow to a spot and has to be moved by others. The possible reasons for this problem are many, from simply being so fat and overweight that the character's legs cannot support him to being a member of a species that at some point in their development plant themselves in one spot and never move thereafter. The character is unable to move at all in combat and may be unable to do even combat level movement in noncombat situations. Such characters never have a DCV higher than that of the hex they are in (DCV: 3) regardless of their Dexterity score, Skill Levels, and any Maneuvers they know. Also, such characters are barred from buying a power with the Special Effects of a "super-dodge".
Short
Infrequently, Slightly 5pts.
This character is below normal height. The obvious problem with this is an inability to reach high objects. The character has 1" of his Running sold back. In addition, the character is generally perceived to be weaker and less physically impressive than he actually is, and can possibly be seen as being younger than he actually is also. Any combat-oriented Presence Attack the character makes suffers a -1D6 penalty. This Disadvantage is generally for a character who, while not of full stature, is greater than ¾ Human size. If smaller is desired, down to greater than ½ Human size, the character should take Dwarf instead. Any smaller and the character should take one of the Size Packages found in the Revised 5th Edition Hero System book.
Short Attention Span
All The Time, Slightly 15pts. / All The Time, Greatly 20pts. / All The Time, Fully 25pts.
This character has trouble keeping track of what's going on around him. Any plan that has more than five or six steps he finds difficult to impossible to follow. He easily looses track of things to which he is supposed to be paying attention, and is often surprised by what's going on several times in a short amount of time. At the Slightly level the character would have to make an Ego Roll in order to pay attention to what he's doing or remember something for more than 10 to 15 minutes. At Greatly, the Ego Roll suffers a -3 penalty. And at Fully, the character suffers from a condition called Anterograde Amnesia, and is totally unable to make new memories. The character is unable to remember things that happen more than ten to fifteen minutes in the past, and must take elaborate steps in order to function (for example, the character might carry around stacks of photographs that tell him who people are, notes to himself that tell him where he lives, what his schedule is, what his phone number is, and so on).
Short Life Span
Infrequently, Slightly 5pts. / Infrequently, Greatly 10pts.
This character can expect to die of natural causes earlier than the human average of 75 years. This could be a side affect of the character's powers, or the result of having a non-human physiology. If known, a shortened life span may cause the character to develop a sense of urgency as the potential end draws near. The player should set the average age that this particular character would be expected to live. It is possible that a character could live an additional 10-30% more years beyond this number. Since most campaigns do not encompass enough time for a character to reach the end of their natural life span, this Disadvantage should only be taken as Infrequently, Slightly. If the character is created with a starting age within the final 10% of his lifespan, then this Disadvantage could be taken as Infrequently, Greatly. This is only a suitable Disadvantage if the Life Span is substantial shortened (at least a 25% reduction). This Disadvantage should not be taken in combination with Ages Faster Than Normal, which represents a character who specifically ages faster than other people, as opposed to this Disadvantage, which represents a character who simply does not live as long as other people.
Significantly Different Anatomy
Frequently, Slightly 10pts.
This character has a body which is vastly different from those of normal human beings. Examples include aliens and characters who are made of some substance other than normal flesh and bone. The character's anatomy is different from that of normal humanity to the point of being almost unrecognizable by a paramedic or doctor. Unless the person providing medical care has been trained in the character's anatomy, no medical skill used in an attempt to heal the character will work, and may actually harm the character if the attempt is failed (GM option).
Sinks Like A Stone
Infrequently, Fully 15pts.
This character cannot swim at all, and cannot even stay afloat on his own in water, regardless of how hard he tries. Normal flotation devices such as a life vest or a "Mae West" flotation ring only serve to slow his plumet to the bottom. Multiple such devices are needed to support the character, or a modest boat. This character sells back all his Swimming movement, and cannot purchase any as long as he has this Disadvantage. If he wishes to cross water deeper than he is tall, he must walk across the bottom. Rules concerning holding one's breath and drowning apply as usual.
Slow Healer
Frequently, Greatly 15pts.
This character takes longer than normal to heal from any injury. The character heals all Body damage at half his normal rate (round up). In additon, in any Phase which he uses to take a Recovery, he recovers Stun at half rate (round up). He still gets the full amount of Endurance back with a taken Recovery. His Post-Segment 12 Recoveries are still at full effect. The character also must spend douple the normal time recuperating from incapacitation.
Slow Reactions
All The Time, Greatly 20pts.
This character's reaction time is less than what it should be. The character acts last in any given Phase, and suffers a -1 to all Hand-to-Hand attack rolls. In addition, any Dexterity Roll involving reaction time suffers a -2 penalty.
Speech Impediment
Frequently, Slightly 10pts. / Frequently, Greatly 15pts.
This character has difficulty speaking. The exact nature of the problem differs from person to person. Possibilities include speaking with a lisp, being unable to say certain words or phrases correctly in any consistent manner, is unable to pronounce certain letter combinations correctly (for example, constantly turning the R sound into the W sound), constantly speaking malapropisms, slurring words, and so on.
Squeamish/Easily Nauseated
Infrequently, Greatly 10pts. / Frequently, Greatly 15pts.
This character has problems when in the presence of person with a serious injury, a dead body, or at the sight of blood. Whenever the character is in such a situation, he must make a successful Constitution Roll or get sick to his stomach. A character so afflicted suffers a -3 penalty to all Rolls until such time as the person is able to recover himself. In a situation where the disturbing stimulus is overwhelming, the character may simply pass out. The value of this Disadvantage depends upon how often the character will encounter such situations.
Sterile
Infrequently, Slightly 5pts.
This character cannot produce offspring through natural process. The cause of this problem may be a birth defect, a physical injury, surgical sterilization, exposure to radiation or harmful chemicals, or whatever other reasonable cause the player chooses. It is possible that a lenghty, costly, and possibly painful medical procedure may get around this to the point of allowing conception to take place.
Stigmatic
Infrequently, Greatly 10pts.
This Disadvantage is only appropriate to characters who are deeply, devoutly religious. The character periodically suffers from wounds which mirror those that were suffered by Jesus Christ as described in the New Testament of the Bible. These wounds are painful and bloody, but are never fatal. Specifically, the wounds are large punctures of the wrists and feet, whip-like lacerations on the back, punctures and scratches of the scalp, and a stab wound in the side. Generally, this character will suffer only one of the manifestations (most commonly punctures of the wrist). Rarely, two or three manifestations will occur. No Stigmatic in recorded history has ever suffered more than three.
Stutters
Infrequently, Greatly 10pts.
This character suffers from a stammer or similar speech impediment. The character suffers a -2 to any Skill Roll involving the spoken word, especially when under stress (such as addressing a large number of people). The character may, though he is not required to, also take the Social Limitation: Stutterer.
Suffers Double Knockback
Frequently, Greatly 15pts.
This character is somehow easier to knock around than normal. Any attack which strikes him does 2x it's Body count for the purpose of figuring Knockback. Example: Punchingbag Man has the Physical Limitation 'Suffers Double Knockback'. Boxing Glove Man hits him, doing 14 Stun and 4 Body, which is applied to his defenses normally. To determine the Knockback the 4 Body is doubled to 8, then the Knockback Dice are rolled, resulting in a 5. Punchingbag Man goes flying back 8 - 5 = 3".
Susceptibility To Illness
Infrequently, Slightly 5pts. / Frequently, Slightly 10pts. / All The Time, Slightly 15pts.
This character catches colds and the flu easily, and is frequently stuffed up and groggy. The illnesses are always more annoying than threatening, but they are almost constantly there. The GM should, at whatever interval he chooses, roll to see whether or not the character is ill. At the Infrequent level the character catches cold on a roll of 8 or less. At Frequently, the character becomes ill on an 11 or less. And at All The Time, the roll is 14 or less. How long the character takes to get well is also up to the GM.
---
Takes Damage When (Focus) Is Damaged
Infrequently, Greatly 10pts.
This character is somehow bonded to the focus: he is the weapon and the weapon is him. As such, the character feels every iota of damage suffered by the device in combat. The link is such that any damage that gets past the device's defenses is also applied to the character -- with no defense (including Damage Reduction). This Disadvantage is only appropriate for a character who gains one or more abilities through an appropriate Focus, Battlesuit, or Cybernetic device. However, this Disadvantage may not be appropriate for all Foci/Battlesuits/Cybernetics. As always, the GM has the final decision.
Tall
Infrequently, Slightly 5pts.
This character is taller than is normal, and is significantly taller than is average. Because of this, the character is uncomfortable is tight spaces (such as elevators, buildings with low-ceilings, compact cars, etc.) He has difficulty finding clothing that fits, and even when he does usually must pay higher prices for it. Shower heads are usually positioned so that, when running, the water spray strikes him right in the belly. In addition, the character is intimidating to those around him, whether he wants to be or not. Any Persuasion roll gains a +1 bonus, but all other Interaction Skills dealing with people suffer a -1 penalty. If the character is taller than 6' 6", try Giant instead.
Terminally Ill
Infrequently, Fully 15pts.
This character has one of several fatal diseases or conditions. It is assumed that the disease or condition is not one immediately lethal (such as the Ebola virus), but rather is one that gradually kills it's victims. The character is hampered by the effects of the disease/condition and wll eventually die from it's effects. (The GM should decide when the disease finally catches up to the character; such events should be dramatic and used as great role playing material.) The exact nature of the disease is up to the player, and the exact effects of the disease should be determined by the GM. Regardless of the disease, it is suggested that the GM, while keeping this Disadvantage an active part of the character's existence, not push it too much without discussing it with the player first. If the choice made for this Disadvantage to be an infectious disease, the Carrier Of/Infected With (Infectious Disease) Physical Limitation should also be taken (chosen as Infected, not just being a Carrier). Some examples include:
AIDS: The character suffers the effects of multiple and recurrent opportunistic infections. AIDS does not actually kill its victims; rather, it destroys the infected person's immune system and thus opens the door for any number of potentially dangerous diseases. The most common cause of death among AIDS sufferers is pneumocystis pneumonia (a bacteria that almost every human being carries in his lungs and is normally immune to). AIDS can take 8 to 10 years to kill the character.
Alzheimer's Disease: With Alzheimer's Disease, the character progressively suffers memory loss, language deterioration, impared visiospatial skills, and poor judgement, all the while suffering no loss of motor function. This condition usually doesn't begin until after the character is 65 or older, but the disease's onset may occur as early as age 40. This disease is hard to diagnose, because the early symptoms (forgetfulness, loss of concentration, etc.) resemble the natural signs of aging, and can also result from such varying causes as fatigue, grief, depression, illness, the use of alcohol or certain medications, and simply having too many things to keep track of all at once. Alzheimer's Disease can take anywhere from 10 to 30 years to kill the character.
Friederich's Ataxia: With this disease, the character's brain stem is slowly disintegrating. As a result, he suffers a slow degradation of his motor control. The character slowly, (over a matter of 10 to 30 years, depending on how quickly the disease accelerates) and in stages, loses his ability to walk steadily, then stand up straight without help, then stand at all under his own strength. His hands first become shaky, then lose the ability to manipulate objects with any sort of finesse, and then finally stop being under the character's control at all. His speech gets more and more slurry and distorted until finally the character speaks in nothing but gibberish. Eventually, the character's brain loses its ability to control and communicate with his body and the character dies of suffocation.
Terminal Cancer: The character suffers uncontrollable and malignant tissue growth in one or more of his body's systems. A character who has some form of terminal cancer suffers irregular bouts of intense pain, dizziness, nausea, and weakness before dying. Cancer generally takes one to two years to kill the character.
Time Collage
Frequently, Slightly 10pts.
This Physical Limitation represents a character who cannot sense or judge the passage of time accurately. Past, present, and sometimes even the future (depending on the powers and abilities of the character in question) blur together indistinguishably, which may affect his ability to remember things or to logically predict the future. He suffers a -2 penalty to appropriate INT rolls and to relevant Skill rolls (such as Deduction and Navigation). He also suffers a -1 OCV in combat since part of fighting well is remembering how your opponent moves and trying to predict what he will do next.
Tiny
Infrequently, Greatly 10pts.
This character is permanently 1 foot tall or shorter. Normal existence with other people and the world at large is almost impossible, as everything is built on a scale that is gigantic to him.
Tires Easily
Frequently, Greatly 15pts.
For whatever reason (perhaps his body hasn't fully adapted to his new powers, or perhaps he's out of shape), the character tires easily, and takes longer to recuperate from getting tired than other character's do. He suffers a -2 penalty on STR and CON rolls pertaining to physical exertion (such as holding a heavy object off the ground). If he Pushes, the character must spend 150% of the normal Endurance cost for such an action. Worst of all, when he wishes to take a Recovery (or has to), he must use two Full Phase Actions in order to do so.
Tone Deaf
Infrequently, Slightly 5pts.
This character cannot recognize individual qualities in sounds. The most obvious result of this is that the character cannot carry a tune in a bucket. This doesn't mean that this character cannot recognize a song if he heard it, but rather is unable to eeproduce it. The character also cannot tell whether a sound if flat or sharp.
Tourette's Syndrome
All The Time, Greatly 20pts.
This character is plagued by involuntary tics: rapid, sudden movements or vocalizations that occur repeatedly in the same manner. The tics are either simple (where the movements or vocalizations are completely meaningless; for example, a person might repeatedly scrunch their eyes closed) or complex (where the movements or vocalizations appear to be meaningful and intentional; for example, a person might repeatedly count to ten). This genetic disorder appears in almost 99% of the men who carry the gene for it, while appearing in only 70% of the women who carry the gene. A character with this Disadvantage is also likely to suffer from ADHD, Disinhibition, learning disorders such as dyslexia, and various sleep disorders. It is possible that any activity involving tension or stress may set off a tic. The person may attempt to hold back the tic with a successful Ego Roll, but needs to roll again each minute to continue to hold it off. Once a tic is set off it will go for anywhere between a few seconds to upwards of an hour. During this time, the character is automatically at half their DCV and DECV, and has an OCV and OECV of zero.
Transplant Reject Syndrome
Frequently, Slightly 10pts. / Frequently, Greatly 15pts. / Frequently, Fully 20pts.
This character has received an organ transplant, either from a suitable donor or a cybernetic facsimile. However, the character's body has rejected the donor organ and will attack the new organ with white blood cells until the new organ is destroyed. The character will have to receive regular medical attention and will be dependent on drugs to slow the body's natural defensive reaction. Because the body is obsessed with destroying the transplant, the character is often left tired, weak, and more susceptible to other illness. Strength and Constitution Rolls should suffer either a -2, -4 or a -6 penalty, depending on the severity of this Disadvantage. At the Slightly level, this Disadvantage would indicate a transplant that can be treated with scheduled drug treatment, but otherwise does not interfere with the character's general well being. At Greatly, this indicates that more severe medical treatment, such as a blood transfusion, is needed. The character would expect to be unavailable for a substantial amount of time to receive the treatment. And at the Fully level, it indicates that the character must have continual medical attention in order to survive. The character should be considered bed-ridden or otherwise hampered by cumbersome medical equipment. It would be appropriate for a character with this Disadvantage to also take the Dependence Disadvantage for any necessary medicine. Failure to receive necessary medical treatments would cause further damage to the donor organ, weakening the character more. Buying off this Disadvantage would indicate the character's body finally accepting the organ, or could represent a new implant that the body accepts more successfully.
Uncomfortable In (Environmental Condition)
Infrequently, Slightly 5pts. / Frequently, Slightly 10pts. / All The Time, Slightly 15pts.
This Disadvantage could be considered a very mild form of Allergy, or a very limited form of Susceptibility. A character with this Disadvantage finds a certain specific environment physically irritating; while in such an environment, the character cannot be at ease because of the discomfort he is feeling. The character will most likely hesitate before entering the environment, and once in it will want to leave as soon as he possibly can. The character never actually takes damage from the environment in question, but can become irritable and distracted. This causes the character to suffer a -1 penalty to any Skill, Stat or Combat Roll he attempts while in the specified environment. The Psychological version of this Disadvantage can also be taken. In that case, it represents an environmental condition the character finds psychologically disturbing rather than physically irritating.
Underweight
Infrequently, Slightly 5pts.
With this Disadvantage, the character is noteably skinny to the point of looking malnourished. His Comeliness will generally be less than 14, as most people view the character as emaciated regardless of the actual attractiveness of the character. The character may not have a Body Characteristic higher than 15. He is also at a -2 to any Disguise or Shadowing roll.
Uneducated
Infrequently, Slightly 5pts.
This character isn't stupid; rather, he has never been formally schooled (or if he has gone to school, he never really paid attention to it). Common Sense and experience guide the character's actions rather than formally taught knowledge. The character may only take those skills which require no formal classroom training to learn. This prohibits the character from taking any Science Skill, and can never learn any Language Skill better than "conversational" (and can never rid himself of his native accent).
Unwieldy Body Shape
Frequently, Greatly 15pts.
This character's body has an unusual shape. The character may have wings, spines, spikes, or may be permanently hunched into a digitigrade stance. Whatever the case, the character finds it difficult to use most types of furniture, and has a hard time fitting into small spaces. The character can't sit in movie theatre seats, plane seats, etc. for long periods of time if at all.
Weak Grip
Frequently, Slightly 10pts.
This character has a limited amount of strength in their hands. Any contest of strength that involves the character using their hands suffers from -10 Strength. Examples of affected maneuvers could include grabs initiated by the character, attempts to pull people or things, or attempts to resist someone taking something from the character's hands.
Weird Biochemistry Requires Special Medical Care
Frequently, Greatly 15pts.
This character cannot be helped by standard medical care. Something in their makeup means that they require something else. Note that this doesn't mean that all standard medical procedures are useless when applied to the character, but rather than the character's chemical makeup makes some common medications useless, or even dangerous for the character. Depending on the character's concept, the character may merely need medical supplements to be healed. Other character concepts may require special equipment, strange chemicals, and difficult procedures for medical care to work. Anyone attempting to use a medical skill to heal the character suffers a -6 penalty to their roll.
Weirdness Magnet
Infrequently, Greatly 10pts.
Strange things happen to and around this character. This is not a truly threatening Disadvantage, but it is a continuous nuisance. The character constantly finds himself dealing with odd circumstances and (relatively) odd people. New Agers and Psychics tend to encounter the character with incredibly frequency, FBI Agents searching for the truth bump into him on a daily basis, and so on. The reasons for the character having this Disadvantage are up to the player.
Wirehead
All The Time, Greatly 20pts.
This Disadvantage is only appropriate to High-Tech Science Fiction settings, and is not recommended for Player Characters. The character with this Disadvantage is a person who has undergone brain surgery to implant a wire into the pleasure center of his brain. The character then uses a small battery powered circuit, called a droud to run a trickle of electricity into his brain. The droud fits into a socket placed at the back of the character's head, just above the neck. A typical charge lasts for half an hour, though a skilled electrician can modify it to run for upwards of six hours. While the electricity is running (or while living under the wire, in Wirehead slang), the character suffers a -3 penalty to any Skill, Combat, Characteristic, or Perception Roll which takes the least amount of concentration. Indeed, the character is so wrapped up in the pure, unadulterated bliss given to him by the current that he can suffer great loss and shock without any reaction other than a blank smile. While under the wire, the character will ignore any and all physical needs, including food, water, or having to go to the bathroom unless he is either directed by someone else, or he makes a successful Ego Roll. At the end of each period of current, the character becomes Depressive at the Strong level and stays that way until the next current session. Current addiction is a never-ending problem for the character, as nothing in the world can beat having the pleasure center of your brain directly stimulated. There is a well-known story regarding an experiment involving direct current stimulation of the pleasure center. In it, a psychologist implanted a wire into the skull of a monkey, then gave the monkey control over how often current would be applied. The monkey supposedly starved to death with his hands on the current button. This Disadvantage cannot be bought off -- it is a permanent adiction. Removing the wire doesn't change this. As this Disadvantage combines elements of both Addicted to... and Depressive, the latter cannot be taken, and the former cannot be taken in regards to The Wire (but can still be taken in regards to another substance or activity).
!!! ~PS: [[Animal Husbandry|~Professional Skill: Animal Husbandry]]
''Type:'' Presence Skill (roll: 7 + (PRE / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less) per animal category; 2 Character Points for advanced familiarity (roll: 9 or less) per animal category; 3 Character Points for base roll; +1 to the roll per +2 Character Points.
Animal husbandry is the branch of agriculture concerned with animals that are raised for meat, fibre, milk, or other products. It includes day-to-day care, selective breeding, and the raising of livestock.
Absent Minded
Common, Moderate 10pts. / Common, Strong 15pts.
This character is forgetful of, or confused by, anything not related to what he is working on or focused on at the moment. Obviously, the classic absent-minded professor springs to mind. There are two basic levels to this Disadvantage. The 10 point version (Common, Moderate) means the character acts absent minded, but can remember routine occasions and things (like bathing, eating, and such) without having to make an Ego Roll. The 15 point version (Common, Strong) would normally mean that the character would have to make an Ego Roll to remember those sort of basic things without some sort of external reminder.
Alternately, a GM could treat the Common, Strong version in such a way that the character would only have to make an Ego Roll to remember non-regular occurrences, such as delivering a telephone message to someone or when precisely it was that they were getting married that afternoon. 09A01
Acts Mature But Isn't
Common, Strong 15pts.
This character behaves in a stable, adult fashion. He is responsible, reliable, and carries his share of any load. At least, he acts like that up until circumstances change and he is no longer happy about what is going on. At that point, he starts to act like an eight year old child. The character will become huffy and contrary, refusing to help others until his own needs are met first and the sooner the better. He'll even whine and cry if he isn't given his way. The character can make an Ego Roll to force himself to not act in this manner, but even then its only an act. All the Ego Roll really does is reduce the degree to which the character pouts, not whether or not he does. 09A02
Acts Stereotypically (Nationality)
Common, Strong 15pts.
This character acts in a manner which can only be called stereotypical for his nationality. He fulfills, in all particulars, the common image of his countrymen. For example, if the character Acts Stereotypically American, he is boisterous, obnoxious, and believes that you needn't learn other languages -- because if you talk slow enough and loud enough they'll understand you anyway.†If he Acts Stereotypically French, he's surly, hates Americans, smokes constantly, womanizes, and snubs anyone who speaks French with an accent. If the character Acts Stereotypically Australian, he drinks beer by the gallon (and that's just for breakfast), considers a good fistfight to be a casual recreational activity, and dresses and talks like Crocodile Dundee. The possible list, while not endless, is certainly long (the possible examples for this Disadvantage are not infinite, but there are a lot of them.) Obviously, this Disadvantage is only appropriate for characters of a nationality which has a stereotype. In other words, this Disadvantage doesn't work if you want to try to be "Stereotypically Namibian" because Namibia doesn't have a widely recognized stereotype in film and media.) 09A03
Addicted To (Substance or Activity)
Common, Moderate 10pts. / Common, Strong 15pts.
This character has an unreasonable compulsion to ingest a substance (alcohol, nicotine, heroine, etc.) or perform an activity (gamble, play video games, have sex, etc.). A Frequency of Uncommon means that the addiction is not yet a serious problem for the character, and it only rarely affects the character's daily performance. A Frequency of Common means that the addiction is a very real problem, and the character's daily performance is seriously affected. A player character should not take this Disadvantage with a frequency of Very Common, as this would mean that the character spends most of his active life filling the addiction. Similarly, an addiction that has a Frequency less than Uncommon is not a true addiction, but rather is merely a bad habit. 09A04
Adrenaline Junky
Common, Total 20pts.
This character tries to be "on" 100% of the time. They are addicted to the rush brought on by stressful or exciting situations and have forgotten how to relax.†Such characters are often moody and fall into an emotional slump if not stimulated. He will tend to feel guilty for taking time off from work, and procrastinate until the last moment in order to motivate themselves. When they take time out to eat, its done quickly and "on the go"; they just don't have time to "slow down" and eat like normal people. If there is a job to do, family and friends may become neglected as the character focuses on the work at hand. For such a character, solving problems and "getting things done" gives him a sense of personal importance and meaning. Because he finds standard means of relaxing and recreating to be "boring", he will often seek out dangerous and "extreme" recreational activities -- those which will stimulate the character into the stress-based rush that he craves. 09A05
Adventurous And Funloving
Common, Moderate 10pts. / Common, Strong 15pts.
This character is the ultimate tourist. He tends to wander around looking for new ways to get into trouble. A new sport? Try it, especially if its dangerous.†A new dance club? Let's go, and so what if its in the middle of a neighborhood where murder is as common as breathing. They will try anything that sounds like fun at least once. At the Moderate level the character can still abide boring days, but at Strong, anything other than going balls-to-the-wall after some sort of fun is intolerable. This Disadvantage is similar to Adrenaline Junkie, but is actually quite different. The character's idea of fun, after all, might be finding and exploring new art galleries or sculpture gardens. 09A06
Afraid Of (Power)
Uncommon, Strong 10pts.
This character either possesses a Power that is beyond his ability to control or is so deadly that the character dare not use it. In any case, before the character can use the power in combat he must make an Ego Roll and either be in danger himself, or have someone he cares about in danger. He will avoid using the Power when out of combat, but after sufficicent cajoled and assurances that it's safe (and an Ego Roll), he can be convinced to use it "just this once". 09A07
Aggressive In Combat
Common, Strong 15pts.
This character might not be a killer, or even someone prone to injuring opponents, but he does want to defeat his enemies as quickly as possible. With that in mind, this character will use his attack powers at full strength, unless it is obvious that doing so will maim or kill his opponent (assuming the character has a compunction against doing so). The character will attack full out at first, and then tone his later attacks down to what his opponent can take. He isn't necessarily interested in pulping his opponent -- just beating him, and quickly. Obviously, this Disadvantage is incompatible with Attitude About Lethal Force - Code vs. Killing. In addition to not pulling his punches, he will attack the opponent who seems the most dangerous first. He will also be reluctant to flee a fight if it is going badly for his teammates, and will want to chase a fleeing opponent. He will not hide behind cover and snipe at his foes, but rather will move up on them and attack. This Disadvantage is not the same thing as Reckless in Combat; he won't take foolish chances. However, he will also not be over-cautious. 09A08
Aliterate
Common, Moderate 10pts. / Common, Strong 15pts.
The character can read, but chooses not to. Often this is associated with a mild but undiagnosed eyesight problem, mild dyslexia or a really bad school experience. At the moderate level, the character simply does not read for entertainment or informational purposes, but will still read mandatory materials. At the strong level, the character actively avoids reading anything except in the direst of circumstances. This Disadvantage is only worth points in campaign settings where the majority of people are literate and information is conveyed in print. Other Disadvantages the character might have include: Proud of His Ignorance, Distrusts "Eggheads" and Educated People, and Couch Potato. 09A09
Aloof And Superior
Common, Moderate 10pts.
The character keeps himself apart from others, and tends to condescend to them when he is forced to communicate. He may not actually think himself superior to others, but he acts as though he is, and likes to keep people at arm's distance. For close friends or in situations where being aloof simply isn't working, the character can forego the attitude temporarily. 09A10
Always Angry And Hostile
Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
This character is always complaining, always taking things the wrong way, always seeing offense, and always one inch away from giving you a fat lip. Such characters do not have many friends (if any at all), and most of his associates think he is a boor. This Disadvantage is really only appropriate for NPCs and Villains (especially low-intelligence bricks -- the type of brick that is little more than a superstrong thug). If a player character takes this Disadvantage, it is strongly recommended that it not be taken above the Minor level, representing a character whose temper is always on the surface, but one who could put a damper on it if needed. Otherwise, at the Major level, the character is often blowing their top. This Disadvantage is often taken along with the Psychological Limitation of the same name, and at roughly the same severity level. 09A11
Always Announces What He's About To Do In Combat
Common, Total 20pts.
This Disadvantage is a standard for overblown, grandstanding villains. The commitment on this Disadvantage is Total because the character in question does it without thinking about it. The only way to stop is to buy the Disadvantage off completely. Characters who suffer from this Disadvantage don't have to announce their every action (in other words, they don't have to speak like "Now I'm going to throw my Martial Kick at your head! Then I will Martial Punch you in the face!"), but rather has to announce whenever they change targets ("Now that I've defeated Puma Princess, you're next, Box Boy!") or decides to stop fighting to do something else ("Bah! This fight is pointless! I'll activate my superbomb, teleport away, and be finished with the lot of you!"). Characters with this Disadvantage are incapable of being subtle or sneaky in combat, for obvious reasons. 09A12
Always Aware of the Public's Perception of Him
Common, Strong 15pts.
A character with this Disadvantage is conscious of his standing in the eyes of the community, and wants that perception to be positive. He will hesitate to undertake any action that damages his reputation or alters the way the public feels about him unless other Psychological Limitations apply. It is possible for the character to have a limited form of this disadavantage for the same points (examples of such limited forms would be Always Aware of the Black Community's Public Perception of Him or Always Aware of Teenager's Public Perception of Him or even Always Aware of the Movie-Going Public's Perception of Him). 09A13
Always Calm And Collected
Common, Strong 15pts. / Common, Total 20pts.
This character always has himself together, never panics, and never gets overly emotional, even when its appropriate to do so. While this can, in some instances, be a good thing (keeping his head in stressful situations, for instance), most of the time other characters find him to be distant, unfeeling, and cold. Of course, the character isn't really Emotionless, but rather is so used to keeping himself composed that expressing any strong emotion (hate, grief, love, lust, fear, etc.) is difficult for the character, and when he does do so, he tends to sound like he's reading memorized lines from a script rather than saying how he feels. At the Strong level the character must make an Ego Roll in order to avoid acting in this manner. At Total, the character can only force himself to act otherwise in times of great exigency. 09A14
Always Defers To (Other Character of Group Of Characters)
Common, Strong 15pts.
The character greatly respects a person or group, either because of their achievements or their position. As a result, he will always let them speak first and foremost, listen to what they have to say, give them preferential treatment, etc. The character is not bound to follow the deferred to person's orders, but certainly will give them all the consideration they deserve. 09A15
Always Fights Fair
Common, Strong 15pts. / Common, Total 20pts.
This character has a limited Code of Honor that prevents him from taking advantage of others in combat. The character will not fight someone who is obviously no match for him, and will only use weapons against armed opponents (and even then, he will only use a comparable weapon to the one his opponent is using). The character will never attack without warning, will never attack noncombatants, will not "fight dirty", and won't hold hostages against the opponent giving up rather than fighting. At the Strong level, the character must make an Ego Roll in order to force himself to use "dishonorable tactics". At Total, the character will not do so except in the most dire of circumstances. 09A16
Always Goes Armed
Common, Strong 15pts.
This character is the type who has a weapon handy in the shower. Indeed, they may have a weapon just for the shower. This Disadvantage is highly appropriate for weapons masters and foci users, but less so for other characters. It is nearly impossible to catch a character who Always Goes Armed when he's low on ammunition, or not packing some sort of weapon. 09A17
Always Has An Answer
Common, Moderate 10pts. / Common, Strong 15pts.
This character cannot resist answering other people's questions, even when they weren't directed at him. He is not trying to be a Know It All; he will not attempt to give an answer when he doesn't have one. He simply feels compelled to share whatever knowledge he has with those around him. In addition, the character often shares trivial information with others. He doesn't do this to make himself look intelligent or knowledgeable, but rather simply because he knows something and wants other people to know it. At the Moderate level, the character can force himself to not act in this manner when necessary. At Strong, he must make an Ego Roll to do so. 09A18
Always Obeys Orders
Very Common, Strong 20pts. / Very Common, Total 25pts.
This character does what he's told by those appointed in positions of authority above him without hesitation and without question. This is a Disadvantage that should only apply to characters who are a part of a military or paramilitary organization (such as his nation's Army, or Intelligence organizaion, or Law Enforcement.) Since almost all of their daily activities are dictated by their organization, the Frequency of this Disadvantage is Very Common. Most characters who take this Disadvantage should take it at Strong level, since a character with Total commitment is basically a fanatic with little to no will of his own. This Disadvantage should not be taken at the Moderate level; Feels Loyalty to His Superiors should be taken instead. 09A19
Always Polite And Forgiving
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character goes above and beyond in their goal to treat others kindly. The unflappable type of person to take this Disadvantage takes turning the other cheek as the law even when they feel they have been treated unfairly. While a person with this Disadvantage may often times assume the best of others, that is not always the case. However, when an excuse is given or an occasion arises where someone needs to be forgiven they will unfalteringly step up to the plate and say and mean those words that need to be heard. This Disadvantage should always be taken at the Common frequency. Uncommon isn't true to character, and Very Common is excessive. A Moderate commitment means that the character can be too easily persuaded not to forgive or be polite. A Strong commitment means that even if he believes that the person was doing something morally questionable, and is convinced that there was a better course of action, he still must make an Ego Roll to resist forgiving or being polite to the individual. A Total commitment means that the character will never be rude or hesitate to forgive even the most undeserving of individuals. 09A20
Always Questions Orders
Common, Moderate 10pts. / Common, Strong 15pts.
This Disadvantage only applies to characters who are a part of a military or paramilitary organization. The Frequency of this Disadvantage is always going to be Very Common, because this organization is going to be a large part of the character's life. However, it should never be taken at the Total level, since such a character would very soon find himself constantly disciplined for insubordination. This character always reviews the orders he is given and compares them to his own personal standards of what sensible and proper orders should be. This is not Refuses To Follow Orders; the character can and will go along with what his superiors tell him to do. However, he will ask questions, make comments, and possibly offer other alternatives before doing so. A character with the Moderate level can rein in his urge to question orders if he has to; a character with the Strong level must make an Ego Roll to do so. 09A21
Always Questions The Morality Of His Own Actions
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character always wants to do the right thing. To this character, the end never justifies the means. If a plan to defeat Dr. Destructo means using people or hurting them in some way, this character won't go along with it without much heel-dragging and deep thought. This doesn't mean that the character can't be talked into doing something of questionable morality, particularly if some greater good really would be served. It does mean, however, that he won't go along with it without some serious soul-searching, discussion, and deep thought. The character will resist (and probably resent) being pushed into something that might be morally questionable without thinking about it or talking it out first. If a player wishes for his character to take this Disadvantage, the GM should allow it only if he is sure the player actually can and will play the Disadvantage correctly. If the player's idea of "questioning the morality of his own actions" boils down to:
Player 1: "I don't know if we should do this. It doesn't seem right somehow." Player 2: "But this will let us beat Dr. Destructo." Player 1: "Okay, you've convinced me. Let's do it."
Then some other Disadvantage would probably be better for his character. A character who takes this Disadvantage really needs to be convinced that there isn't a more honest, morally upright, way to accomplish whatever the current goal is. This Disadvantage should always be taken with the Common Frequency. Uncommon isn't true to character, and Very Common is excessive. A Moderate commitment means that the character can be persuaded, given a little time. A Strong commitment means that even if he believes in the reasons for doing something morally questionable, and is convinced that there really is no other, better course of action, he still must make an Ego Roll to go along with it. A Total commitment means that the character won't go along with a morally questionable course of action unless the stakes are high enough (such as "If I don't do this, every person on the planet will die"). 09A22
Always Takes The Path Of Least Resistance
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character feels that it is not his duty to go any further out of the way than absolutely necessary to complete a task, goal or order. Getting from point A to point B should always come at minimal sacrifice to the character. Because of their consistent attitude towards getting things done as quickly and easily as possible, this character may be perceived as lazy or cowardly, even if he actually isn't. This Disadvantage should always be taken with the Common frequency. Uncommon isn't true to character, and Very Common is excessive. A Moderate commitment means that the character can be persuaded, given time, to go out of their way to accomplish something. A Strong commitment means that even if he believes that the person is right and that it would be more effective to go through an obstacle or two, he still must make an Ego Roll to resist taking the path of least resistance. A Total commitment means that the character will neven go out of his way to do anything extra in accomplishing his goal, commitment or duty. 09A23
Ambitious And Manipulative
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character wants to succeed, and is willing to do almost anything to do so. They are inherently competitive with anyone they perceive (rightfully or not) as rivals for advancement. They are adept at getting people to do what they want them to do. They use many different ways to do this: cajoling, bribery, casual persuasion, or whatever. Mostly, in fact, they do this without even thinking about it. Player characters should not take this Disadvantage above the Strong level, and it is recommended that they not take it above Moderate. At Common, Moderate, the character wants to get ahead, but won't intentionally hurt others to do so. At Common, Strong, the character is willing to sacrifice others to his own ambitions, but is capable of taking the needs of those who are close to him into consideration with an EGO Roll. At Common, Total, the character cares very little about what happens to other people if they are between him and his goal. In all cases, his manipulative nature will put people into his rival's way, and not care about the results past what inconvenience it causes for his them. 09A24
Amnesia
Common, Strong 15pts. / Common, Total 20pts.
This character has suffered something so painful and traumatizing that he blocks out all memory of that event and his life prior. He may be able to remember certain personal details (like his name), but won't remember anything else. Friends, family, his home, his job; nothing will be familiar to him. At the Strong level, the character must make an Ego Roll in order to remember something about his past life. At Total, he cannot do so except under the most dire of circumstances. This Disadvantage should not be bought off except when accompanied by extensive role-playing, and should be a momentous occasion in the life of the character. It should be noted that Amnesia can also be taken as a Physical Limitation; however, as a Physical Limitation it would imply actual brain damage instead of the blocking out of psychological trauma. If the character maintains more than one identity (for example, a superhero with a Secret Identity), generally Amnesia causes the character to forget one of his identities. 09A25
Amoral
Common, Total 20pts.
This character simply doesn't consider morality issues when he is deciding his actions. Right and wrong don't matter; to this character, such concerns are silly, unimportant, or make-believe ideals that are followed by others. He cannot be persuaded by appeals to his sense of decency. To put it simply, he believes that whatever happens, happens, that the ends justify the means, and that the strongest and smartest wins. This character should also have at least one other Disadvantage which explains what his motivations and goals are, since ordinary right and wrong don't figure into his plans. For instance, the character may have Must Protect Northern Ireland From English Aggression along with Amoral, which tells us that the character will use any means necessary to drive the English out of Northern Ireland, and will not consider the rightness or wrongness of any action in the pursuit of that goal. 09A26
Amorous
Common, Moderate 10pts. / Common, Strong 15pts.
A character with this Disadvantage takes to heart the old song, "Love The One You're With." While the details vary, he will take most opportunities to hit on members of the appropriate sex that he finds attractive. At the Moderate level, the character can restrain his impulses without too much difficulty, and generally reacts good-naturedly when his passes are deflected. At the Strong level, however, the character goes from a friendly wolf, who might be thought charming even to those who are not particularly interested in his attentions, to a lounge lizard, being more persistent, less charming, and also less likely to be nice when turned down. Levels outside those listed above turn this Disadvantage pathological, turning the character into a stalker, and should be simulated by taking the Hunts (Person or Group) Disadvantage instead. It is recommended that Player Characters not take this Disadvantage at the Strong intensity. 09A27
Anarchist
Very Common, Moderate 15pts. / Very Common, Strong 20pts.
This character distrusts all authority, wants to be able to do anything he wants (although he may have other Disadvantages which cause the character to limit his own actions), and he resists any interference from the government (which he views as unnecessary at best and a criminal dictatorship at worst) to the best of his ability (and again, within the limits of his other Disadvantages). The character is generally uncooperative with any government functionary, especially one whose duties lie in the area of regulation or law enforcement. He tends to talk back to cops, and has no respect for other forms of civil servants. And he downright hates anyone having anything to do with collecting taxes. Perhaps the only civil servant he can abide is a mailman. At the Moderate level, the character can cooperate and follow orders when necessary. At Strong, the character must make an Ego Roll in order to do so. 09A28
Annoyed By Incompetent People
Uncommon, Strong 10pts.
This character cannot stand people who are less than able at whatever it is they are doing. Checkout clerks who can't work a register, delivery people who drop things, movie concession people who are slow, workers at fast food restaurants who get drive through orders wrong. All of these cause the character to get irate and usually verbally angry. In order to remain calm and not make a spectacle of himself, the character must make an Ego Roll. 09A29
Antagonistic And Mean
Common, Strong 15pts.
This character is not only Antisocial and Bad-Tempered, but actively seeks out arguments and fights. He picks on people, especially those who won't fight back. However, he is not a Bully. A Bully will back off if the victim fights back. This person hopes and dreams that his victim fights back, just so he can kick the shit out of the wimp. A character with this Disadvantage actively tries to piss off other people; he is intentionally rude, purposefully inconsiderate, and enjoys getting into fights and arguments. This Disadvantage is not appropriate for player characters. 09A30
Antisocial
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character is simply not very polite or friendly, and is that way all of the time. He may not be actively rude or insulting, and he may not go out of his way to insult or antagonize other people -- in fact, he may go out of his way to avoid talking to other people entirely. Player Characters should only take this disadvantage at the Moderate level, which means that the character can behave and act nice if he really had to. An intensity of Strong would be too annoying for group interaction, as he would have to make Ego Rolls to see if he had to be nice to someone, and Total would mean that the character couldn't be nice at all. Villains, however, have no such restriction and can take this Disadvantage at higher point levels. 09A31
Antisocial And Bad Tempered
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character is not only Antisocial, but he's mean and about it. People who intrude upon his life are likely to be met with insults at best and physical violence at worst. As with Antisocial, it is recommended that a player character not take this higher than the Moderate level. 09A32
Apathetic
Common, Moderate 10pts.
This character doesn't care about anything or anyone. In fact, the character doesn't seem to have much passion about anything, nor does he show compassion towards others. The character most often appears to be simply along for the ride. Player Characters should only take this Disadvantage at Common, Moderate, for much the same reasons as Antisocial. At that level, the character can care about specific concerns or people, but usually he doesn't, and he has a difficult time expressing concern when he does feel it. 09A33
Aristocratic/Regal Attitude
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character speaks and acts as if he were royalty. He is stand-offish but polite, proper at all times, speaks impeccably, and expects his commands to be followed. To other characters, he is obviously Stuck Up and feels he is "too good" for other people. This may or may not be true, but it is not hard to believe it about the character. He is also seen as bossy (and this one is true). At Moderate, the character can resist his urge to act in this manner when necessary. At Strong, the character must make an Ego Roll in order to do so. At Total, he may only drop this attitude in dire emergencies. 09A34
Arrogant
Very Common, Moderate 15pts.
This character thinks and acts as if he were better than everybody around him. He may not necessarily be unfriendly or rude about it, but he has an attitude of assumed superiority. This is different from Conceited, in that Conceited is an attitude of "I am just so much better than you are!", and this Disadvantage is an attitude of "I am just so good!" Player characters should only take this Disadvantage at the Moderate level for similar reasons as the Antisocial disadvantage. 09A35
Arrogant And Flamboyant
Very Common, Strong 20pts.
This character thinks and acts as if he were better than everybody around him. He may not necessarily be unfriendly or rude about it, but he has an attitude of assumed superiority. In addition to being Arrogant, a character with this Disadvantage is also Flamboyant, shoving the "fact" of his superiority in everyone's face by being as flashy as possible while showing off as much as possible. Even in the face of overwhelming opposition, the character will show no fear but will rather act as if the opposition simply doesn't matter because they aren't anywhere near as good as the character. 09A36
Arrogant And Overconfident
Very Common, Moderate 15pts. / Very Common, Strong 20pts.
This character thinks and acts as if he were better than everybody around him. He may not necessarily be unfriendly or rude about it, but he has an attitude of assumed superiority. In addition to being Arrogant, a character with this disadvantage is also Overconfident and believes himself to be more powerful, intelligent, or competent than he really is. The character uses this "inflated" view of himself when gauging potential threats, deciding plans, and combating villains. This can be a tricky Psychological Limit to play. The character should have to make an Ego Roll in order to act cautious in all but the most life-threatening situations. If the roll fails, the player shouldn't consider the danger inherent in the situation, but rather should act as if he knew he could handle it. (Who knows? maybe he can!) 09A37
Arrogant And Unfriendly
Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
This character thinks that he is better than everyone else, and he is rude about it. He won't simply say, "I think you'd better let me handle this"; he'll say, "I think you'd better let me handle this because you obviously aren't up to it." The character also acts like he doesn't enjoy interacting with his inferiors, (i.e. almost everyone else in the world) and he doesn't. Player characters should only take this Disadvantage at the Moderate level for similar reasons as the Antisocial Disadvantage. 09A38
Ashamed Of His Poor Education
Uncommon, Moderate 5pts. / Common, Moderate 10pts. / Common, Strong 15pts.
The character either did poorly in school, had to drop out early or for some reason was never able to get the usual education of the society. Moreover, he feel ashamed of this fact. Characters with this disadvantage will avoid situations where their lack of knowledge will be put on display, and feel uncomfortable around people who have much better educations. They will usually choose occupations that don't require formal learning. The Uncommon, Moderate level should be used for characters who live in societies where formal education is rare, or who spend most of their time with other uneducated people. The Common, Moderate level reflects most modern societies, or the uneducated person who has daily contact with the more educated (a janitor at an university, for example.) The character may feel uncomfortable around the more educated, but is able to function. At the Common, Strong level, the shame becomes much harder to bear, and the character must make an Ego Roll to associate with or talk to more educated people, or to display his ignorance. Frequently-occurring Disadvantages associated with this Psychological Limitation are the Physical Limitations Illiterate, Dyslexic, Poor, Destitute, and Distinctive Features: Uneducated Accent. A lowered Intelligence score is not necessary, but will often be assumed by other characters. The functional opposite of this Disadvantage is the Psychological Limitation Proud of his Ignorance. 09A39
Attention Seeker
Very Common, Moderate 15pts.
This character cannot resist putting himself in the spotlight. He insists on taking center stage whenever he can do so without getting into trouble. He will sometimes go to great lengths to ensure the attention that he craves, such as: creating complex plans that prominently feature himself as the center of the action, always speaking up first or making jokes at the expense of others just to get a cheap laugh, and often exaggerating or saying gregarious things just to make himself appear better than he really is. This is different from Showoff in that this character is really quite willing to share the spotlight with whoever else might want to be there with him. The character believes that there's more than enough glory to go around, and that there's absolutely nothing wrong with the fame and glory being shared equally -- as long as the character gets his share too, everything is fine. 09A40
Aversion To (Condition Or Circumstance)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
This character has a strong feeling of repugnance for some condition or circumstance. He seeks to avoid that situation as strenuously as possible. The character must make a successful Ego Roll in order to force himself to enter into such a condition or circumstance. The specific condition or circumstance is up to the player. The point value of this Disadvantage depends on how common the situation is. For example, Aversion to Going Out When Its Warmer than 100? Fahrenheit (37.8° C) is obviously going to be worth more in a campaign set in Phoenix, Arizona than in a campaign set at the South Pole. 09A41
Avoids Emotional Commitments
Common, Total 20pts.
This character dodges any sort of emotional connection with another human being. They aren't very good at it, or find such relationships painful, or don't want to get another human being hurt, and so on. The character will not have any emotionally oriented DNPCs or Rivalries, as he is incapable of truly forming such relationships. 09A42
Avoids Long Term Commitments
Uncommon, Strong 10pts.
This character is unwilling to enter into any serious relationship (romantic, business, etc.) that lasts longer than a few months (at most). He doesn't want to be "dragged down by entanglements", and feels that the easiest way to do this is to avoid the entanglements entirely. If he dates at all, the character tends to date either many people at once or one person after another for a few weeks each. He tends to live in cheap motels rather than apartments, pays cash for everything (and never has credit cards). If he owns a car, he bought it with cash. The character makes no promises that cannot be fulfilled quickly. And if he does make promises that cover the long term, he invariably breaks them. In order to enter a long term commitment (regardless of what type), the character must make an Ego Roll. 09A43
Avoids Publicity
Very Common, Moderate 15pts.
This character cannot tolerate putting himself in the spotlight. He insists on taking the greatest precautions when going into anything that might draw the attention of the media. This person may actually think twice before entering a burning building to save the damsel in distress if there is a camera crew nearby, at the very least they'll try to enter as inconspicuously as possible. This person will always pass on photo opportunities, interviews and even signing autographs, unless they are ordered, strongly encouraged, or otherwise moved to do so. In addition, they will never seek public acclaim, reward, or fame in any fashion and feel incredibly uncomfortable whenever forced into such positions. 09A44
Avoids The Press
Very Common, Moderate 15pts.
This character cannot tolerate putting himself under the scrutiny of the media. He feels that his business is his own and retains his right to privacy. This same person may subject themselves to publicity to promote themselves or something that they believe in, but it is strictly in a professional manner. This person would insist on taking the greatest precautions when going into anything that might draw the attention of the media. This person may actually think twice before entering a burning building to save the damsel in distress if there is a camera crew nearby, at the very least they'll try to enter as inconspicuously as possible. 09A45
Avoids Using Powers
Common, Moderate 10pts. / Common, Strong 15pts.
This character, for whatever reason, dislikes using his powers, and tries to avoid situations where he needs to or is forced to do so as much as possible. The specific reason why the character feels this way is up to the player. At Moderate, the character can force himself to use his powers when necessary, but never does so for casual reasons. At Strong, he must make an Ego Roll in order to do so. 09A46
Bad Tempered
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character is never completely in control of his emotions. In moments of stress, anger, or fear, he tends to react with hostility, rage, and violence to the cause of his feelings. This is not to say that the person is always angry, all of the time. (For that, the character should take Always Angry and Hostile. Rather, it is only when things are going wrong that the character's anger is unleashed. Characters who take this Disadvantage at the Moderate level can calm themselves down with a little effort and not react in this manner. Characters who take it at Strong must make an Ego Roll to do so. Characters who take it at Total can never force themselves to calm down. It is suggested that player characters not take this Disadvantage at the Total level. 09B01
Believes "The System" Does Not Work
Common, Moderate 10pts. / Common, Strong 15pts.
The character has lost faith in social institutions, such as the legal, political or medical system. He does not believe that the guilty will be convicted and the innocent exonerated, that good leaders will be elected or appointed; or that doctors are really doing their best to cure their patients. Depending on his other attitudes, the character may become a vigilante, a criminal, a rebel or simply apathetic. At the moderate level, the character can still work inside the system when necessary; there are parts of it that still function adequately. At the strong level, the character finds it much more difficult to keep in line. In the character is vocal about his beliefs, he may also have the Social Limitation Seen as a Troublemaker. 09B02
Believes (Focus) Is All-Powerful
Common, Strong 15pts. / Common, Total 20pts.
This Disadvantage is only appropriate for characters who rely on some sort of Focus. The character is so impressed with the Focus's power that he believes that no one can stop it. When using the Focus, the character is gleefully Overconfident, believing he can take on the world, and win, because of the object's power. He may not necessarily think he is using the object to its best effect, but if so will consider that to be his fault and not the fault of the object. The Focus may or may not actually be All-Powerful. That is a decision best made by individual GM's. At the Strong level, the character can only consider the risks of a situation after making an Ego Roll, while at Total commitment, the character will only do so in the most dire and world-shaking of circumstances. This is, of course, assuming the character is wielding the Focus at the time; if not, the character may act in any way he sees fit (including hiding and running) This Disadvantage is one found often among the characters from DC Comic's Green Lantern title, where the phrase "The power ring is the most powerful weapon in the universe" is bandied about regularly. This Disadvantage is a combination of Overconfident and Impressed With (Focus's) Abilities and thus should not be taken in combination with either of those Disadvantages. It may be taken in combination with Believes He Is Unbeatable, since belief in one's self and belief in one's tools are two different things. 09B03
Believes He Can Do No Wrong
Common, Total 20pts.
This character believes that he never makes a mistake. To this character, his every action is planned and on purpose. He never acknowledge the consequences of his actions, since he believes that there can be none. The character can possibly be forced to see that not everything he does is right in extreme circumstances. This does not mean that the character is necessarily Amoral. He could have a defined code by which he lives, and might even try very hard to live by that code. However, he sees the consequences of his actions as "necessary evils".
Example: Blasterman, a well known superhero, has this Disadvantage. While fighting his arch-nemesis, Evilman, Blasterman's powerful energy beams strike the home of a family of four. The home burns down with everything the family owns in it. Blasterman's probable reaction would be one of "Sacrifices had to be made to stop the Villain". By no means will he feel responsible for helping the family replace their home and belongings.
The character will act in this manner at all times except during the most extreme of circumstances. This Disadvantage works well with Arrogant, Conceited, and Overconfident. 09B03
Believes He Has A Great Destiny To One Day Fulfill
Uncommon, Total 15pts. / Common, Total 20pts.
The character has come to believe that he is not just an ordinary person; that someday he will have a special, important role to play in the world. This may be a specific task that he is to perform, or just a generalized "I have a destiny." Often, this is the result of a prophecy or fortunetelling. At the uncommon level, the character believes that this destined event will come about regardless of his own actions up to that point, and doesn't feel the need to move things along. At the common level, the character believes that his destiny is thwartable by the actions of others, and acts to prevent that. Characters with this disadvantage often have other Psychological Limitations that determine how far they're willing to go to fulfill their destiny. 09B04
Believes He Is Destined To Rule (Area)
Common, Strong 15pts. / Common, Total 20pts.
The character believes himself to be the rightful ruler of some piece of real estate. This can be as small as a postage-stamp country, or as large as the universe. This would be fine, except that other people disagree. For example, the character might have several long-lived relatives between him and the throne, or be out of the line of succession altogether. Alternatively, the character may have no claim to rulership outside his own head, which is very likely with the larger areas. At the strong level, the character may force himself to not attempt to attain his rightful position, with extreme difficulty. At the total level, the character will never give up trying. Many characters with this disadvantage also have Megalomania, but it is not required. 09B05
Believes He Is Sanctioned By A Higher Power
Common, Total 20pts.
This character believes that everything he does is acceptable because he has been sanctioned by a higher, supernatural authority (which could be God, the Devil, Darkseid, Galactus, or whatever). The character may or may not have additional Psychological Limitations defining his religion's code of conduct. If he does, as long as his actions do not violate that code, he will believe that everything he does is good, just, and in all ways perfectly alright. This Disadvantage works well with Zealot. 09B06
Believes He Is Unbeatable
Common, Total 20pts.
This Disadvantage is the ultimate form of Overconfidence. The difference between the two is that a character who merely has Overconfidence acknowledges, begrudgingly at least, that there is a chance (however small) that he could lose. He just doesn't think it will happen. However, a character who Believes He Is Unbeatable does not, and will not, acknowledge that any such "fact" exists at all. He knows how powerful he is, how skilled a combatant he is, and how much of a Billy Bad-Ass he is. No one can take him down, ever. At least, this is what the character believes. If the character is ever actually defeated (especially if the character is easily defeated), he must make an Ego Roll or drop into a depressive funk. In such a state, the character's DCV is penalized by -3, and he is lazy and careless. This funk lasts for an indeterminate time (depending on circumstances, GM whim, and the interaction of other characters). At the end of this time, the character returns to normal, sure that his defeat was a result of "a fluke" or "the law of averages" (the rationale being "Even people as good as I am will lose once! But its just not going to happen again!"). If the Ego Roll is successful, the character goes right past the depressive stage to the "massive denial and justification" stage. 09B07
Believes In (Group Or Cause), Right Or Wrong
Very Common, Strong 20pts.
This character has a group or a cause that they believe in -- they would do almost anything to further the aims of that group or cause. They would gladly give their lives in the service of it, and tend not to believe any derogatory information leveled at the focus of their belief. Even when presented with hard evidence that the group or cause they believe in is less than ideal, they will not accept it unless a successful Ego Roll is made. This Disadvantage cannot be taken at a Frequency less than Very Common. It also should not be taken any stronger than Strong -- use Fanatic instead. If the Group in question is a country or a government (the two are not necessarily the same thing -- one could believe in one's country but not one's government), the character should take Fervent Patriot instead. 09B08
Believes In The Basic Goodness Of Mankind
Very Common, Strong 20pts.
This character believes that the overwhelming mass of humanity are decent, good-hearted people who will help each other when needed. They believe that you can always count on the kindness of strangers, and that other people mean no harm generally. Such characters are easily manipulated by the more cynical or criminal elements, as they are openly trusting of others with no real source for the trust. Even the most obvious of "bad elements" will be trusted by this character. In order to show anything other than trust toward others, the character must make an Ego Roll. If the roll fails, he trusts the other character to do the right thing, regardless of any other circumstance or factor. And if the other character doesn't live up to his expectations, the trusting character rationalizes such unfriendly behavior away. This Disadvantage works well in combination with Cheerful Charlie and Naive. 09B09
Bestial
Very Common, Strong 20pts.
This character is marked by animalistic instincts and urges. Such a character has no sense of modesty, does not recognize etiquette or protocol (and most likely doesn't even know the meaning of those words), polite manners (such as using utensils while eating), and likely does not consider personal hygiene a high priority. The character also has a lack of patience when it comes to getting what he wants, and will not hesitate to get violent or intimidating to get it. A Bestial character often has no sense of compassion, and feels no pity for the sick, the weak, or the dying. Indeed, the character may well feel that a sick associate is hindering him somehow and thus will "hurry him along" toward death just to be rid of the nuisance, though this is by no means the rule. 09B10
Bigmouth/Braggart
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts.
This character is constantly shooting his mouth off about his own accomplishments. He doesn't actually mean any harm by this; his bragging is usually a sign of an insecurity complex. On the other hand, he may be bragging because he is full of himself. And lastly, he may be bragging simply because he is Talkative and lacks any other subject of conversation. (The decision of which is up to the player.) At Moderate, the character can keep himself from bragging when necessary. At Strong, the character cannot do so except under the most extreme circumstances. Surprisingly, this Disadvantage works well with both Unsure Of Self and Overconfidence (though not both at the same time). 09B11
Bitter
Common, Moderate 10pts.
This character is disappointed and unpleasant about something in his life. He is not necessarily unfriendly or antisocial, but has a very negative worldview and feels that life keeps screwing him over (and over, and over, and over). Some characters are quietly bitter, while others feel the need to let everyone around them know how bitter they are at least once per adventure. 09B12
Bloodlust
Common, Strong 15pts.
This character wants to see his opponents dead or very incapacitated. He will make killing blows in battle, put an extra shot into a down foe just to make sure, will attack guards that could have been snuck past, etc. He must make an Ego Roll in order to accept a surrender, to not grievously harm an opponent, and to not try and kill a disabled opponent. This character is not necessarily Murderous or a Casual Killer. Rather, he is simply ruthless. He saves his animosity toward "legitimate" targets: criminals, enemy soldiers, etc. GM's should limit this Disadvantage to hardened vigilantes and shadowy fringe characters. It is most appropriate for Dark Champions characters. 09B13
Brash
Common, Strong 15pts.
The character is overconfident in social situations. As such, he treats everyone as his equal, regardless of social standing, and speaks his mind without fear (or tact). The character often comes across as being cocky or arrogant. 09B14
Brash And Impulsive
Common, Strong 15pts.
This character often makes decisions without thinking them through. He tends to physically deal with situations, instead of mentally. Instead of receiving key information from a suspect, he might get a sore fist and a reprimand. This character receives a -3 penalty to all Interaction Skills. 09B15
Bully
Common, Strong 15pts.
This character enjoys picking on anyone smaller or (in the character's perception) weaker than he is. In fact, doing so is so natural to him that he must make an Ego Roll in order to not do it. A Bully will seldom pass up an opportunity to intimidate or threaten someone smaller or weaker. In combat, he tends to attack the nearest, smallest opponent first. It should be noted that most bullies are actually cowards at heart, and will avoid a fair fight if they can help it. 09B16
---
Callous
Common, Moderate 10pts.
A character with this Disadvantage isn't bothered by disturbing scenes or emotional situations. Emotional reactions just get in the way of objectives. He might eat a hotdog at a bloody crime scene, or punch out a villain in a nun suit in front of a busload of school children. Others might not understand this character and see him as having an "I don't care" attitude. In situations where strong emotional responses are normal and the character is with a group of people, he receives a -2 penalty on any Presence-based skills.
Calm And Philosophical
Common, Moderate 10pts.
This character sees the world differently from most other people. He is always looking for the hidden meanings and lessons of life. A building fire might not be bad if you're the oak tree that grows from its ruin. Buddhist monks are good examples of people with this Disadvantage. However, others might not approve of philosophical statements during stressful times, and could react strongly to one being uttered.
Cannot Look Weak
Common, Strong 15pts. / Common, Total 20pts.
This character can't stand the thought of looking weak in front of others. He can refuse a challenge from someone he knows to be less powerful than himself. Which is what seperates this Disadvantage from Cannot Turn Down A Challenge. However, the character will not turn down a challenge from someone of roughly the same or greater power -- unless it is obviously suicide, in which case the character will have to find some other way to defeat his opponent and redeem himself. A character with this Disadvantage will not complain about fatigue, pain, or injury, and will never surrender without a fight. He is also particularly easy to needle or taunt about being afraid.
Cannot Resist Taunting His Opponents In Combat
Common, Moderate 10pts. / Common, Strong 15pts.
This character loves mocking his opponents in combat. The Moderate level is Likes To Taunt Opponents In Combat, which means that the character can stop taunting people whenever he wants too. A character with the Strong level must make an Ego Roll to stop taunting, unless he knows that not stopping will most likely get himself killed. There is no Total commitment version of this Disadvantage because a character who taunts all of his opponents all of the time will very shortly be a dead character.
Cannot Resist Tinkering With Machines
Common, Moderate 10pts. / Common, Strong 15pts.
The classic "gadgeteer" Disadvantage. A character with this Disadvantage simply cannot keep his hands off of anything mechanical. He wants to check out any device or machine he encounters to see how it works and how it was put together. Taking this Disadvantage with a Moderate commitment means that the character naturally gravitates towards any machines or gadgets that happen to be about, but can force himself to stay focused on something else, or to keep his hands off if he has to. The Strong commitment means that the character has to make an Ego Roll to stay away from anything mechanical, unless doing so violates a stronger Psych Limit. For instance, Gadgetman, with a total commitment Protective of Normals is not going to tinker with a rocket sled if his teammates are busy coming up with a plan to rescue a bunch of hostages. A character with this Disadvantage at the Total commitment level can't keep his hands off machinery unless one of his other Total commitment Psych Limits is in violation.
Cannot Stand By And Let Evil Occur
Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage feels compelled to act to resist what he sees as evil whenever confronted with it. The character may have other Psych Limits which more clearly define what the character sees as "evil" (as opposed to what the character sees as merely "wrong"). For example, while the character might see torture and murder as "evil", he may see theft as being merely "wrong". The character will always act to oppose the evil, heedless of the consequences. If doing so means violating laws, he will break them without hesitation. If doing so means endangering his own life, the character sees this potential sacrifice as only fitting. At Strong commitment, the character can force himself to not act in the face of evil if he makes a successful Ego Roll. At Total commitment, he cannot do so except in the most dire of circumstances. This Disadvantage works well with Devoted To Justice and Incorruptible.
Cannot Stand The Sight Of His Own Face
Common, Total 20pts.
This is the classic "Doctor Doom" Disadvantage. The character's face is somehow horribly disfigured and the character can't stand the sight of it. Such a character will always have his face covered by some sort of hood or mask. The GM (or player, in the unlikely event his Disadvantage is taken by a player character) should decide ahead of time what the character's reaction will be if he is somehow forced to view his own face. He could be stunned (in the game mechanics sense of the word), he could go berserk, or something else entirely could happen. In most cases, this Disadvantage will be taken in conjunction with Distinctive Features. It could be just as interesting to have a character with this Disadvantage, but without the character's face actually being messed up. In this case, its "all in his head".
Cannot Strike A Woman
Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This Disadvantage can obviously only be taken by a male character. With this Psych Limit, the character simply cannot bring himself to strike a woman. It is listed as Uncommon because for the most part, female opponents are outnumbered by male opponents 3:1. If female villains are more common than that, the frequency goes up from Uncommon to Common, making it worth five more points.
Cannot Tell A Lie
Uncommon, Total 15pts.
This Disadvantage means that the character simply cannot bring himself to say anything he believes to be untrue, and is not going to lie by omission, either. The only circumstances under which he would consider telling a lie is when another of his Total commitment Psych Limits is in violation (Protective of Normals is a classic example), and even then he must make an Ego Roll.
Cannot Think For Himself
Common, Strong 15pts. / Common, Total 20pts.
A character who Cannot Think For Himself isn't literally unable to think for himself, but rather has trouble making important decisions without the advice of others. In the case of extremely important decisions, the character may need to have another person make it for him. Basic decisions (such as "what to wear", "what to eat", etc.) can be made by the character with no problem. Anything more complicated than that (such as "which restaurant to go to" or "which movie to see") and the character begins to have problems. If taken at the Strong level, the character can make a decision on his own if he makes an Ego Roll. If taken at the Total level, the character can only make up his mind in the most critical of situations.
Cannot Turn Down A Challenge
Common, Strong 15pts. / Common, Total 20pts.
This character will always accept any contest, wager, or open challenge of competition, especially if there are stakes involved. However, the stakes don't really matter, its the thrill of competing that the character loves. The character will be even quicker to accept the challenge if the opponent taunts him while doing so. At Strong commitment, the character can make an Ego Roll to refuse the challenge. At Common Total, the character cannot refuse the challenge unless one of his other Total commitment Psychological Limitations is in violation, and even then he must make a successful Ego Roll.
Capricious
Uncommon, Strong 10pts.
This character changes his mind, and his actions, on a whim. He begins projects, then drops them for no reason. He makes plans, then changes them without warning. He also is horrible at keeping appointments, meeting deadlines, or actually holding up to any sort of responsibility at all. In order to act in a consistent of responsible way, the character must make an Ego Roll.
Casual Killer
Common, Strong 15pts.
A Casual Killer has no compunctions about killing. He will kill quickly and without hesitation or a second thought. It is part of his nature. He feels no remorse for his victims and has no issue with other people who use lethal force (in fact, he expects other people to use lethal force). This does not mean that he kills randomly and with no thought about consequences; it just means that when killing is called for (in his opinion), he kills. It is strongly recommended that Heroes not be allowed to take this disadvantage, as it makes for a cold blooded and brutal character.
Cautious Long-Term Thinker
Common, Moderate 10pts.
The character has a goal that will take a long time to accomplish, one that could easily be foiled by rashness in the here and now. Thus, he considers all actions in the light of his long-term goals, and tends to be very conservative in his thinking. Such a character is more likely to be an economist or a bank officer than an adventurer, but sometimes they are forced into action by circumstances. This Disadvantage goes well with Must Have a Plan. It is seldom seen with Adrenaline Junkie or Impatient.
Charitable
Common, Moderate 10pts.
This character feels compelled to help his fellow man when his fellow man is in trouble. He will do what he can to make others comfortable, safe, and healthy. This usually means things like donating money to charity's, working in a soup kitchen, paying the medical bills of the poor, and other charitable acts. This Disadvantage is not the same as Sucker For A Sob Story, who is someone who cannot help himself, and can easily be taken advantage of. Instead, A character with this Disadvantage won't help a person if the "sob story" is false or can be proven to be so. In addition, he will not necessarily inconvenience himself in order to help out another.
Cheap/Spendthrift
Common, Moderate 10pts.
This character simply hates to spend money unless it is absolutely necessary. He may not necessarily be a Miser, and he may not necessarily be Greedy, but it's unlikely that he will eat at a fancy restaurant if a Denny's is available. It is also unlikely that he would ever lend anyone any money, even a friend. And of course, the character will see no reason to spend money on name brands if a generic is available.
Cheerful Charlie
Common, Moderate 10pts.
This character is a person who never has an ill word about anyone, greets everyone with a cheerful "Good morning/afternoon/evening";. He always has a pleasant comment or amusing anecdote. The character isn't necessarily an Optimist (although most are), and they aren't necessarily Naive (although that is common as well). They just have a brighter view of the world than most.
Childishly Naive
Common, Total 20pts.
This character tends to be too trusting, and has a simplistic view of reality. Everything is seen in in terms of black and white: this is good, that is bad. Good is rewarded, bad is punished. Things I want are all good, things I don't want are all bad. Unfortunately, the world is rarely every black and white, and the character is usually very disappointed when he finds this out. However, he never seems to learn from it. This Disadvantage is probably too annoying for other characters to be taken by a player character. It might be an interesting Disadvantage for a powerful NPC hero (or villain) who was raised in a sheltered environment. Alternately, the character could be Childishly Naive and Prone to Temper Tantrums for the same amount of points. In this case, the character has all the problems of being Childishly Naive, but also have little patience -- anything they want, they want right NOW! The character is more than disappointed when he finds out that not everything revolves around him, and is prone to throwing a temper tantrum when things don't work out the way desired. This Disadvantage is also probably too annoying for other characters to be taken by a player character. It might be an interesting Disadvantage for a powerful NPC hero (or villain) who was raised in a sheltered environment.
Childlike View of the World
Common, Strong 15pts.
This character tends to place everyone into one of two categories: those who are "nice" and thus to be trusted without reservation, and those who are "not nice" and thus are not to be trusted ever. The character will go along with the "nice" people, doing what they say with little or no doubt that the nice people are wholly truthful and well meaning. Similarly, the character will never cooperate, trust, or believe "not nice" people, resisting anything they say or do even if common sense would dictate otherwise. The character classifies other people as "nice" or "not nice" with but a moment's interaction; a person being able to change his classification needs weeks and months of interaction with the character. Essentially, the character is required to make an Ego Roll to notice when a "nice" person is being untrustworthy (such as when the nice man who lives next door asks you to take this package to a certain address and make sure that it doesn't get opened, especially by the police), or when a "not nice" person should be trusted (such as when the angry security guard who threw the character out of the building tries to get the character out of oncoming traffic).
Chronic Complainer
Common, Strong 15pts.
This person finds something about everything to complain about. He is never really happy with anything. If he wins a million dollars in the lottery, his first thought isn't "I'm rich!" but "Damn it! Now I'm going to have to pay a ton of taxes". When he's recognized for some achievement, his first thought is "God, I hate standing in front of people and having to make a thank-you speech". He's not necessarily a Pessimist; because he doesn't always expect the worst possible outcome to occur. Rather, he always finds the cloud to go with every silver lining. When the character is in a situation that is "worth complaining about" (meaning an actual unpleasant circumstance), this Disadvantage turns more into Crybaby. The character can force himself to stop complaining if he makes a successful Ego Roll.
Chummy
Common, Strong 15pts.
This character is so friendly that he's become a burden to his friends. Other people watch out for the character on their Caller ID, because if they pick up the phone they'll be on the line with the character for hours. If the character is seen first, others will melt into the woodwork to avoid becoming part of the character's day until all hours of the morning. This is the friend who does not go home. The friend who thinks everyone wants company all the time. At no time does he realize that he's being a pain in the ass, and at no time does he inconvenience others intentionally. Its just the way he is. The character can avoid acting in this manner with an Ego Roll.
Civic Minded And Responsible
Common, Strong 15pts.
The character believes in the good of the community in which he lives. As such, he takes an active interest in civic affairs and works to improve local conditions. He will not litter, and do his best to prevent property damage. Characters with this Disadvantage often volunteer their time and talents to the community without thought of reward.
Clueless
Common, Moderate 10pts. / Common, Strong 15pts.
This character tends to ignore important facts about his situation, going with his first instinct and opinion regardless of other data. Generally, this phenomena occurs in social situations; the character isn't a total incompetent and can do his job well when required (though this is hardly the rule. A character who takes this Disadvantage at the Strong level can be truly dangerous to others as well.) Its just that the character is so intent on pursuing his course that he fails to notice things (for example, at a party the character might be so intent on picking up the beautiful redhead next to the punch bowl that he never catches the hint that she's married to the character's boss). At the Moderate level the character can notice important details that contradict his preconceived notions if he absolutely has to. At Strong, the character must make an Ego Roll in order to be able to do that, and even then requires the facts to be wrapped in a brick and thrown in his face.
Cocky
Common, Moderate 10pts.
This Disadvantage is similar to both Overconfident and Arrogant, but has important differences to both. A character with this Disadvantage becomes so proud of their recent successes that they believe that they not only will win, but also not get hurt by the outcome of most events, and thus aren't overly worried even when they should be. This character will not be Overconfident in all situations -- just those in which he recently had some measure of success (for example, if during a fight between the character's team and a villain team, disabling one opponent will cause the character's Cockiness to spring to the fore, even though during the strategy session before the fight the character admitted that the combat would be tough going).
Code Of Conduct
Common, Total 20pts.
This character is sworn or otherwise dedicated to a set of beliefs which his native culture considers to be good and just. The specific tenets of this should be clearly defined by the player and accepted by the GM before the character is played (or, in the case of NPCs or villains, the GM should have a clear definition of the code before he brings that character into play). Not all Codes of Conduct are going to be the same, because what is considered noble and honorable differs from culture to culture.
There are many possible codes. This Psychological Limitation ends up giving the character several restrictions that would otherwise be considered separate Psychological Limitations. The character may not take both Code of Conduct and those other Disadvantages, even though the point total for all of the individual Disadvantages is higher if they are combined. A Code of Conduct, while actually encompassing several lesser Psychological Limitations, is worth less points because it also carries a measure of distinction and respect. For example, while villains may taunt a character who has a Code of Conduct, others will admire and look up to such a character for his solid principles. Some examples of various Codes of Conduct would include:
The Bushido Code: This is the code by which the samurai of the medieval period lived under. Treat Those Deserving of Honor With Honor, Treat a Dishonorable Foe With Scorn, Avenge All Insults, Death Before Dishonor, Utter Obedience to One's Superiors (Even Unto Death), and Never Show Fear.
The Celtic Code: Vengeance is essential. If you (or your family or your clan) are insulted, you must demand an apology. If none is given, you must issue a challenge. If you lose, you must try again as soon as you are able. If a truce is called, it must be observed. You must try to be first into combat. Never lie to an ally. Do not take advantage of an unsuspecting enemy.
Code of Chivalry: The code of the medieval knight. Honor in Battle (meaning no attacks on an unaware foe, not using missile weapons, and treating a vanquished foe mercifully), Expect Obedience From Those Below His Station and Provide Obedience To Those Above, Protect The Weak And The Defenseless, and Honesty In All Things.
The Gentleman's Code: Never break your word. Never ignore an insult to yourself, to a lady, or to your flag; insults may only be wiped out by an apology or a duel (not always to the death!). Never take advantage of an opponent in any way; weapons and circumstances must be equal (except in open war). Associate only with those of your social class.
The Hero's Code: Sometimes known as the "Four Color Code", this Code of Conduct is best exemplified (believe it or not) by Batman as portrayed by Adam West in the 1960's TV series "Batman". It is very close to the Honesty Psychological Limitation, but more so: Work to your utmost to uphold the law at all times. Never lie, cheat, or swear. Drink nothing stronger than soda pop and chocolate milk. Don't smoke. Protect anyone weaker than yourself, and always try to be a good example to the kids.
Omerta: This is the code of silence followed by members of the Mafia: Don't reveal any secrets you might learn under pain of death. Obey the Capo Crimini without hesitation. Avenge attacks on family members, because attacks on one of us is an attack on all of us. Avoid any contact with the police.
Policeman's Code: This is the code that most police forces are supposed to operate under. Must Defend Public Safety, Must Protect The Innocent, Will Only Reply With Equal Force In Combat (meaning, if the opponent isn't using lethal force, neither will the person with this code), Follow the law in all things.
The Soldier's Code: This is the Code of Conduct between "good-guy" soldiers on TV and in the movies. It's better to die on your feet than live on your knees. Never leave a man behind. Never give up, never give in. Never let an insult to you, your unit, or your branch of service go unpunished, especially if it comes from a member of a wimpy branch of service. All branches of service other than yours are wimpy.
The Sorcerer's Code: This code is followed by all but the most evil and callous of fully trained wizards in a modern setting in which magic is generally disbelieved and unknown to the general public. Maintain The Veil That Keeps The Mundane World Unaware Of The Existence Of Magic. Magic Is Too Dangerous For The Common Man And Must Be Kept Out Of His Sight. Cover Up Mystical Events, Even If You Had No Part In Them. Battle Only In Private, Never In Public Except With The Most Subtle Of Effects.
The Vow of the Buddhist Monk: Avoid strong emotion as often as possible, do not initiate violence (but defending oneself is permitted), help others when possible, do not eat meat.
Code Vs. Killing
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This Disadvantage is perhaps the superhero Disadvantage. If your character doesn't have it, you should be thinking long and hard as to why not. A character with this Disadvantage absolutely refuses to consider lethal force as a valid option except under the most dire of circumstances (such as "kill or the planet dies" or "kill one to prevent a million deaths"). They dislike people who are willing to use lethal force, and will actively (and if necessary, physically) try to prevent them from doing so. If the choice comes down to using lethal force to stop an opponent and letting him escape, a character with this Disadvantage would let the opponent escape. This does not necessarily mean that the character is a coward or a weak fighter. Against a foe noted for his resistance to harm, the character will use his attacks to the best of his ability. Against unknown opponents, he will pull punches, use lower power attacks, or start out with entangles and similar non-damaging powers. And please note that it doesn't have to be a Killing Attack to count as a lethal attack -- a large enough "regular" attack can still be lethal.
Cold And Aloof
Common, Moderate 10pts. / Common, Strong 15pts.
This character keeps himself apart from others. He is not necessarily grim or overly private, but he never shows concern for others (even if he is actually feeling it) and never gets too involved in others. The character tends to work alone; although he will certainly cooperate with a team of heroes, he will never actually join. At the Moderate level, the character can force himself to not act in this manner when necessary. At Strong, he must make an Ego Roll in order to do so. This Disadvantage works well with Loner and Grim and Humorless.
Cold And Calculating
Common, Moderate 10pts. / Common, Strong 15pts.
A character with this Disadvantage has no concern for others with regards to the execution of his own schemes. He treats others like pawns, and if necessary is ready to sacrifice them. He uses whatever means he deems necessary to get ahead, and treats everyone he meets as a potential cog in his machine. In short, he does what is necessary. At the Moderate level, the character can force himself to not act in this manner when necessary. At Strong, he must make an Ego Roll in order to do so. The character may have other Psychological Limitations which determine to what lengths he is willing to go. It is suggested that the character not also have a Code vs. Killing.
Collapses In The Face Of Torture
Uncommon, Total 15pts.
This Disadvantage means exactly what it says: the character has no tolerance for inflicted pain or torture, and will immediately surrender if faced with it. The character may, at first, try to bluff his way out about what he does or does not know, but if it looks like torture is actually going to be applied, he'll tell his captors everything they want to know, and some things they don't. This Psychological Limitation is not the same as Coward In The Face of Pain, which is for a character who can and will pursue courses of action that may turn out to be painful. Rather, a character with this Disadvantage cannot stand the thought of someone intentionally causing him pain.
Combat Paralysis
Common, Total 20pts.
This character tends to "freeze" in combat situations. This is not the same as being a Coward; The mind is willing, but the body is weak. In any situation in which personal harm seems imminent, the character must make an Ego Roll to avoid losing his action for that phase. If a character freezes, a separate roll must be made at each of the character's phases following the freeze (with a cumulative +1 bonus to the roll per phase). Having friends present adds another +1 to the roll.
Committed To (Cause Or Goal)
Uncommon, Total 15pts. / Common, Total 20pts. / Very Common, Total 25pts.
This character has something in his life to which he is dedicated. The specific goal is up to the player, but it should be some appropriately dramatic goal. For example, Committed to Destroying Viper or Committed to Rebuilding Saint Michael's Cathedral After Its Destruction by Mechanon are appropriate goals. Committed to Collecting All the Episodes of M.A.S.H. isn't. The Frequency (Uncommon, Common, or Very Common) of this Disadvantage depends on how often the character encounters opportunities to pursue it, as determined by the GM.
Compelled To (Perform Specific Unusual Action)
Uncommon, Total 15pts. / Common, Total 20pts. / Very Common, Total 25pts.
A character with this Disadvantage has an unreasonable urge to perform some specific action that could be considered unusual. The list of possible actions is almost infinite, but some examples would include Compelled To Attack Polluters, Compelled To Steal Gems And Jewelry, or Compelled To Bring His Own Silverware To A Restaurant. The reasons behind this compulsion, as well as the exact details of it, are up to the player. The Frequency of the compulsion depends on how often the compulsion would come up. For example, if the GM's campaign deals with environmental issues and the players are a team of environmentally conscious heroes, Compelled To Attack Polluters may well be a Very Common Disadvantage. The character can resist the compulsion only in the most extreme of circumstances.
Completely Devoted To (Group Or Cause)
Very Common, Strong 20pts. / Very Common, Total 25pts.
This is the stronger version of Feels Loyalty to His Superiors, and should only be taken by characters who are a part of a military or paramilitary organization. This Disadvantage is very similar to Fervent Patriot, except that the character is not necessarily overly loyal to his home nation (though the two Disadvantages can easily be used on the same character). A character with this Disadvantage feels that the object of his devotion (be it a person or an agency) can do no wrong. He will never question orders that come from them, and he would be willing to die fulfilling those orders or protecting his superior. In addition, a character with this Disadvantage will not put up with another person bad-mouthing the object of his devotion, and has little patience for those who are not as devoted as he is.
Compulsive Carouser
Common, Moderate 10pts. / Common, Strong 15pts.
A character who is a compulsive carouser cannot resist the urge to party. He or she will drink as much alcohol as they can, will try almost any mind-altering substance without a thought, and isn't particularly picky about their choice of romantic partners. A character with this Disadvantage likes the music loud and the woman (or men) hot and easy. At the Moderate level of commitment, the character can avoid acting in this manner if necessary. At Strong, he must make an Ego Roll in order to do so.
Compulsive Collector Of (Class Of Object)
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
A character with this Disadvantage cannot resist owning and acquiring a certain type of object. The specific type of object the character collects is up to the player, but can be nearly anything (from diamond necklaces to swords to beer cans). The frequency of the Disadvantage is determined by how rare or difficult to acquire the type of object is. Items which can be found almost anywhere and cost virtually nothing would be Very Common or Common, while items which can only be found at certain specific locations and cost hundreds of thousands of dollars would be Uncommon. For example, diamond necklaces aren't that rare, but they are expensive; thus they'd be Uncommon. Beer cans are neither rare nor expensive, so they'd be Very Common. Baseball cards aren't always expensive, but they can be rare; depending on the card they'd either be Very Common, Common, or Uncommon. Swords tend to be both rare and expensive; they'd be Uncommon. The GM must decide what frequency a particular type of object warrants. Regardless of the frequency, the strength of the Disadvantage determines how difficult it is for the character to control his urge to collect. At Moderate, the character is an enthusiastic but still casual collector, and when necessary can turn down an opportunity to expand his collection. At Strong, the character will always take an opportunity to expand his collection, and must make an Ego Roll in order to control this urge. At Total, the urge to collect cannot be controlled except in the most dire of circumstances.
Compulsive Gambler
Common, Strong 15pts.
A character with this Disadvantage simply cannot say no to a game of chance. As long as there is the slightest chance that the character will win, he will make a bet. The actual form of gambling does not matter; slot machine, sports bet, poker game, or even the lottery all call to the character. In order to avoid joining the game, the character must make a successful Ego Roll.
Compulsive Liar
Common, Total 20pts.
This Disadvantage can also be called Pathological Liar. A character with this Disadvantage does not lie about everything, but he does lie frequently. He lies about just about anything, for no real reason at all. Its not that the character is devious or cunning; for whatever reason, he lies about almost everything, oftentimes seemingly at random, in the same way that a character with Kleptomania takes things without thinking about it. The lies themselves need not be obvious or outrageous. In fact, they are usually completely plausible, and as often as not they will be based on some kernel of truth. The danger of compulsive lying is that the character begins to believe some of his own lies after a while. A player or GM can focus this Disadvantage somewhat by specifying what it is that the character lies about. For instance, a character could be a Compulsive Liar About His Own Past Exploits. In this case, the character wouldn't necessary lie at all in his everyday life, but when talking about his past, he will lie without even thinking about it. He may even believe that what he is saying is how it really happened, if there is no one present to contradict him.
Compulsive Spender
Common, Strong 15pts.
This person cannot hold on to money. If he sees something on sale that he is even vaguely interested in, he'll stop and spend. If he sees anything that he's vaguely interested in being sold at a discount, he'll by double (thus negating the value of the discount). This character is almost guaranteed to be living with maxed out credit cards. Note that this is not the same as Lives Beyond His Means or being Destitute. The character doesn't necessarily spend more money than he has, nor is necessarily poor. But he's constantly spending money. A successful Ego Roll is needed for the character to resist this urge.
Compulsively Generous
Very Common, Strong 20pts.
A character with this Disadvantage cannot resist helping others out. If a panhandler approaches, the character will give him every cent of cash he has on hand, and if he has no cash on hand will go to an ATM. When the girl scouts sell cookies, he'll buy a case. If the neighbor's car breaks down, the character will go help fix it, even volunteering to pay for some of the parts if needed. The character never hesitates to pick up hitchhikers, and will always offer a ride to someone who needs it. This Disadvantage could be considered a more extreme version of Charitable, but differs from that Disadvantage in that a Charitable character won't necessarily inconvenience himself in order to help others. Put another way, a Charitable person would share his umbrella in a rainstorm, while a person who is Compulsively Generous would give a total stranger not only his umbrella but his raincoat, even if it means he got soaked to the bone. The character isn't necessarily a Sucker for a Sob Story though the two Disadvantages do work well together. Nor is he necessarily a Compulsive Spender. Simply put, the character feels that the only appropriate action when he sees someone in need is to help out. This trait could well become known, and thus exploited, among the character's associates. The character can resist this urge with an Ego Roll.
Compulsively Sarcastic
Common, Moderate 10pts. / Common, Strong 15pts.
A character with this Disadvantage is sarcacastic on a whim, having a cutting remark for every situation, regardless of what the situation is. His remarks are not intentionally cruel, but they are always stinging. The level of wit involved in the characters sarcasm is up to the player, but the wittier the better. At the Moderate level, the character can control his urge to be sarcastic when necessary. At Strong, he can only do so if he makes a successful Ego Roll. This Disadvantage works well with Cynical, Loner, and Pessimist.
Conceited
Common, Moderate 10pts.
A character with this Disadvantage not only has an inflated vision of himself, he also believed that others aren't as talented. This is different from Arrogant, which is having an attitude of "I am just so good!" Rather, a character with this Disadvantage has the attitude "I am just so much better than you are!" He believes that he is of a special class, and there are others who just aren't in that class. In order to not believe or feel that way about others, he must make a successful Ego Roll.
Confused In Combat
Common, Strong 15pts.
A character with this Disadvantage is so flustered and confused by the chaos of combat that they make near constant tactical errors, and are often a hazard to their friends and allies in a fight. They are unable to come up with workable combat plans, and would be unable to follow it even if they did come up with one. Quite often, the character will simply give up on trying to fight, find cover to hide behind, and do his best to not become a target. The character always acts last in any given combat phase, and even then can only make Half Moves. The character can force himself to act rationally in combat with an Ego Roll; in this case, the character can make a Full Move, but still takes his action last. It is recommended that Player Characters do not take this Disadvantage, as it tends to get annoying. It works well with Coward In The Face Of Physical Violence.
Considers Himself A Monster
Common, Total 20pts.
This Disadvantage is only appropriate for a character whose powers or appearance permanently separate the character from normal humanity (for instance, a character who is permanently on fire, or a character who is permanently 9 feet tall with green warty skin). This character who wallows in self-pity over his "exile" from the greater mass of humanity. He holds himself apart, doesn't go out in public if he can help it, and generally is aloof with others. However, the truth is that the character longs to take part in normal life, but feels that he cannot due to his condition. The character will only do so after long sessions of role-playing and with help and counseling from his friends. The character can force himself to go out when it is necessary (like to buy food or to fight a supervillain), but mostly he stays by himself at home. Other than this, the character will only venture out on casual occasions (meaning when its not necessary) in the most extreme of circumstances. This Disadvantage works well with Loner and Antisocial.
Considers Other People's Psyche's To Be Toys
Common, Strong 15pts. / Common, Total 20pts.
This Disadvantage is really only appropriate for villains. It assumes that the character in question has some form of mental powers, most likely related to Mind Control. A character with this Disadvantage doesn't consider other people's minds to be sacred or deserving of privacy and couldn't care less about the pain, degradation, or embarrassment that invading their minds might cause. This Disadvantage shouldn't be taken at less than Common, Strong. A telepath who considers other people's psyche's to be toys at a Common, Moderate level is merely an asshole.
Conspiracy Nut
Common, Moderate 10pts. / Common, Strong 15pts.
A person with this Disadvantage believes that some ominous agency (government, aliens, UN, Illuminati, etc.) is behind the occurrence of any significant event. He will rationalize any information to prove that this agency was responsible for the event. At the Moderate level, the character is very distrustful of the conspiring agency. He will be very guarded when dealing with them, will collect information to support his claims, and will be either amusing or annoying to those around him. At the Strong level, the character feels he needs to prove the conspiracy, and will spend time collecting what he believes is evidence of the conspiracy. He will make this information public through whatever means he has, such as websites, books, and radio shows. It is entirely possible that the conspiracy the character believes is actually true. However, for this Disadvantage to be of value, general society should find the conspiracy outlandish, and view him as a kook. Instead of buying this Disadvantage at Total commitment, Paranoia should be used to reflect that level of suspicion by the character.
Constantly Fishes For Comments
Common, Moderate 10pts.
This character is looking to hear proof of approval from other people. This usually comes about out of some feeling of superiority, insecurity, or from a feeling that the character's efforts go unnoticed. Whatever the reason, the character is always trying to lead others into situations where they complement him or praise him. The character can avoid acting in this manner when necessary. This Disadvantage works well with several others, including Overconfident, Unsure of Himself, Arrogant, Conceited, Feels Under-Appreciated, and Young.
Constantly Shooting His Mouth Off
Common, Moderate 10pts. / Common, Strong 15pts.
This character lacks conversational tact. If it comes into his head to say something that might get him in trouble, he goes ahead and says it. Threats, boasts, insults, propositions, all drop from his lips with constant ease. This is not the same as Talkative or Will Not Shut Up; if the character has nothing to say, he won't say it. This Disadvantage incorporates parts of Bigmouth/Braggart, Compulsively Sarcastic, Flirtatious and Thinks He's a Comedian. At the moderate level, the character can rein in his tongue if he thinks about it. At the strong level, he must make an Ego Roll, or spout off anyway.
Constantly Suspicious of Other People's Motives
Uncommon, Strong 10pts.
A character with this Disadvantage does not trust the reason why other people do what they do. The character believes they have some secret agenda driving their decisions. The character will have a hard time working with others, and will be suspicious of anyone who "volunteers" for anything. He will constantly be trying to deduce the real motive driving others, and will be hesitant to trust anyone. This Disadvantage is similar to Paranoia, though not as strong.
Control Freak
Common, Total 20pts.
This character feels that he must be in control of everything at all times. They have no confidence in anyone else's abilities or decisions, and because of this believes that they must either do everything themselves or use hands-on, step-by-step supervision to get things done. Characters with this Disadvantage tend to try to direct the lives of those around them. They will never allow someone else to take control of things except in the most extreme circumstances.
Corrupt And Greedy
Common, Total 20pts.
This Disadvantage is a more serious version of Greedy. A character with this Disadvantage lusts for wealth and has no aversion to the means to gain it. Such a character is willing to do anything to increase his own net worth. "Secondary" considerations, such as loved ones and friends, will not matter next to the ultimate goal. The character will literally, "sell his own mother" to get what he desires. He couldn't care less who he hurts or betrays on his way to the top of the financial heap. This Disadvantage works well with Cheap/Spendthrift and Miser. However, it is too similar to Greedy to be bought with that Disadvantage. Reputation is also a good Disadvantage to pair with this one, as it does not take much for people to learn about the character's nature after a few betrayals.
Counter-Phobia
Common, Strong 15pts. / Common, Total 20pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
A character with this unusual Disadvantage has a Phobia; He is intensely and unreasonably afraid of something. However, unlike most phobics, this character intentionally places himself in circumstances in which he encounters the object of his phobia because he prefers to feel scared than otherwise. The Frequency is determined in the same way as for a Phobia. The character will take any opportunity to provoke his phobia when such opportunities are offered. At Strong commitment, the character must make an Ego Roll in order to force himself away from scaring himself. At Total, the character can only do so under the most dire of circumstances.
Coward
Common, Strong 15pts. / Common, Total 20pts.
This character is an old-fashioned, standard-issue fraidy-cat. Someone who is a Coward In The Face Of Pain can still engage in dangerous or scary actions as long as he has been convinced that, despite the thrilling nature of his actions, he won't get hurt. A Coward In The Face of Physical Violence won't run out and fight Dr. Destroyer, but he still will work with other characters behind the scenes to oppose the villain (perhaps to help them sneak into his hidden base, or by hacking the villain's computers). Instead, this person would be hesitant to do even that much, fearing he might be injured, or that Dr. Destroyer would find out and come looking for him. Depending on commitment level of the Disadvantage and a certain amount of common sense, a Coward will find it difficult (if not impossible) to do anything which might conceivably have a negative impact on the character's life. At the Strong commitment, it might not be too bad for a player character (in a non-superhero game), but at Total commitment it would probably be far too annoying to the other player characters.
Coward In The Face Of Pain
Common, Strong 15pts. / Common, Total 20pts.
This character is afraid of getting hurt. He can easily take risks that don't involve getting injured (playing the stock market, for instance, or bungee jumping). However, when it comes to the possibility of injury, the character starts to worry and becomes hesitant. At the Strong commitment, the character can pursue a course of action he knows will result in his getting hurt if he makes a successful Ego Roll. Player Characters in a superhero setting should not take the Total form of this Disadvantage, as it would be too annoying for other players and is drastically unheroic.
Coward In The Face Of Physical Violence
Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage will, when he finds himself in a situation which could get him beaten up or killed, will leave as soon as possible. The character will not freely and of his own will enter such a situation. This character will avoid getting into a fight for as long and as hard as he possibly can, even to the point of accepting non-violent abuse from someone in order to avoid having to fight. At the Strong commitment, a character could make himself fight if he needed to, with a successful Ego Roll. At Total, he would never be able to make himself fight. Player characters in a superhero setting should not take the Total form of this Disadvantage, as it would be too annoying for other players.
Craves Approval
Common, Strong 15pts.
The character has a strong need to be liked and approved of, and needs frequent reassurance that this is the case. If deprived of approval, he becomes depressed or angry, and will attempt to regain it. The character can often be tempted to do unwise things with the promise of renewed approval. Other Psychological Limitations will determine how far he is willing to go.
Craves Attention
Common, Strong 15pts.
A character with this Disadvantage wants others to pay attention to him. The reason for this desire is up to the player. The character may have other Disadvantages which determine what lengths he will go to in order to get this attention; however, they will almost always be willing to go to great lengths in order to garner the attention. The character can avoid acting in this manner if he makes a successful Ego Roll. This Disadvantage works well with Gloryhound, Lonely, and Constantly Fishes For Complements.
Craves Respect
Common, Strong 15pts.
The character has a strong need to be respected, and to be treated with the deference due his position. If not given sufficient respect, he becomes depressed or angry, and will attempt to regain it. The character can often be tempted to do unwise things with the promise of renewed respect. Other Psychological Limitations will determine how far he is willing to go.
Craves Respect And Credibility
Common, Strong 15pts.
The character has a strong need to be respected, and to be treated with the deference due his position. In addition, he needs to be seen as knowledgeable and truthful. If not given sufficient respect, or treated as ignorant/lying, he becomes depressed or angry, and will attempt to regain it. The character can often be tempted to do unwise things with the promise of renewed respect or credibility. Other Psychological Limitations will determine how far he is willing to go.
Cruel And Brutal
Very Common, Strong 20pts. / Very Common, Total 25pts.
A character with this Disadvantage is predisposed to hurt people in very violent ways. The pain of others and the opportunity to domineer over others pleases them. At the Strong commitment, the character must make an Ego Roll not to take an opportunity to hurt another person. At Total, the character cannot resist the urge, and will never pass an opportunity to hurt anyone he views as weaker than himself. Note that this character is not interested in actually killing people, just making them hurt. Part of the attraction is seeing fear in people's eyes.
Cruel Streak
Very Common, Strong 20pts. / Very Common, Total 25pts.
A character with this Disadvantage goes far beyond just being mean. They are naturally predisposed to inflict pain (either physical or emotional -- or even better, both at once) on others. At the Strong commitment, the character can only force himself to not take an opportunity to hurt another person if he makes a successful Ego Roll. At Total, the character simply cannot help himself and thus will never pass up such an opportunity. Note that this person is not interested in actually killing a target; a dead person feels no pain, after all. It goes without saying that this Disadvantage is inappropriate for heroic characters.
Crybaby
Common, Total 20pts.
This Disadvantage is basically a more intense version of Chronic Complainer. Any time that things go against the character in any way, the character begins complaining, whining, and in some cases actually breaking down into tears. The character isn't necessarily a Pessimist, as he doesn't always expect the worst possible outcome to occur. Its just that when things do go wrong, the Crybaby gets overemotional about it.
Crystal Crackpot
Common, Strong 15pts.
This character believes in some form of New Age nonsense. The exact details of the player's New Age leanings are up to the player, but could include beliefs in gemstone therapy, Chakra manipulation, astrology, ESP, the Living Earth movement, mediums and spiritualism, clairvoyants and fortune telling, past lives and reincarnation, numerology, Scientology and Dianetics, the "descent from Atlantic" theory, the morass of cherry-picked beliefs known as "New Native American Mysticism", Wiccanism and witchcraft, semi-pantheistic paganism based on what the character thinks is authentic Norse religion, a "paganistic" monotheism based on the worship of a nameless, faceless "goddess" figure, UFOlogy, and so on.
Cultural Taboo
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
This Disadvantage represents a character who comes from a culture which has some strong, ingrained cultural prohibition. Examples would include the Hebrew restrictions on diet and activity (no eating pork, no working on the Sabbath, etc.), the Islamic restrictions on diet and activity (no eating pork, no drinking alcohol, etc.), and so on. (While the examples given are for a real-world campaign, fantasy campaigns could have other taboos). The character accepts the taboo as normal, and under most circumstances would never dream of violating it. In order to force himself to willingly break the taboo, he must make an Ego Roll.
Curious
Common, Strong 15pts.
A character with this Disadvantage cannot resist checking out anything that is mysterious or unusual. He will stop and take a moment to examine the item or occurrence, and can sometimes even forget what he was otherwise doing. There is no Moderate commitment form of this Disadvantage because any adventurer worthy of the name is at least moderately curious in any given situation. A character with Total commitment quickly becomes annoying.
Cyberpsychosis
Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This Disadvantage is only suitable for settings where cybernetic implants are common, but not fully understood. (For example, a gritty cyberpunk setting.) It's caused by an imperfect interface between the human(oid) brain and mentally-controlled cybernetic implants. Under stressful conditions, feedback from the implants can affect the emotional and logical centers of the brain. The most common symptoms are a lack of concern for human life, excessive aggressiveness and an inflated sense of invulnerability. At the strong level, the character can still override his new urges with an Ego Roll. At the Total level the character can only be "brought down" by proper medical care and rest. This may be bought with a Beserk: When Cyberpsychosis Kicks In, but this is not recommended for heroic characters. Other appropriate Disadvantages include: Distinctive Features: Exposed/Obvious Cybernetics, Permanently Altered by Invasive Cybernetics, and a negative Reputation: Cyberpsychotic.
Cynical
Common, Strong 15pts. / Common, Total 20pts.
The old joke says that when a Cynic smells flowers, he immediately looks around for the funeral. A character with this Disadvantage has a hard time believing in virtue and altruism in others. He believes that when you boil things down to their basics, people only do things that are in their best interests, and everyone has an ulterior motive for everything. This character mistrusts "random acts of kindness", as they make him wonder what the other person wants from him. he tends to be sneering, sarcastic, and have a hard time taking earnest endeavors seriously. he can also be rather self-righteous, especially when his cynicism is proven right. At the Strong level of commitment, the character must make an Ego Roll in order to avoid acting in this manner. At Total, the character cannot do so except under the most extreme of circumstances.
---
Death Wish
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage wants to die, but can't seem to bring himself to commit suicide (in this, it is different from Suicidal). What he does instead is take foolish risks, go willingly (and sometimes blindly) into danger without considering the risk to himself, and engage in risky behavior designed to kill himself. The character is not necessarily thoughtless when it comes to other people's lives (and it is often the danger to others that keeps the character from allowing himself to get killed). However, when the character is presented with a life-threatening situation, the character feels compelled to dive right in without consideration for the risk. At a Moderate commitment, the character may suppress his urge to die if necessary. At Strong, the character must make an Ego Roll to do so, and at Total commitment, the character cannot do so except in the direst of circumstances.
Deceitful
Common, Strong 15pts.
A character with this Disadvantage lies, cheats, and steals for the sheer enjoyment of it. He backstabs those around him on a whim, but usually with some goal in mind. He is certainly capable of telling the truth if it serves his purposes, but prefers to play mind-games on those around him. This Disadvantage is different from Deceptive, because that character deliberately and maliciously misleads (and out-and-out lies to) other people, hoping to do them harm. Instead, this character is not necessarily malicious, and tends to omit details and presents information in an intentionally misleading (but still factual) fashion. Admittedly, this is a fine line. This Disadvantage is not appropriate for Player Characters. It should not be taken with a Moderate commitment because any villain, given enough motivation (and lacking any other Disadvantage that prevents it) will be Deceitful when necessary. Likewise, Total commitment should not be taken, becasue the character would eventually garner a reputation as a liar and a cheat, and thus be unable to interact with others in any other fashion. Taken at Common, Strong, it represents a character who lies and cheats for the fun of it, but still is honest enough to deal with others when necessary.
Deceptive
Occasionally, Minor 5pts. / Frequently, Minor 10pts / Frequently, Major 15pts. / Frequenly, Severe 20pts.
This person clouds the truth, hides information, and generally tries to make other people have the wrong impression. He may not necessarily lie; he can omit details, give facts in confusing context, and of course, simply refuse to supply any information at all. He is not necessarily malicious, tending more to omit details and present information in an intentionally misleading (but still factual) fashion, whereas a Deceitful person will deliberately and maliciously mislead (and out-and-out lie to) other people, hoping to do them harm. Admittedly, this is a fine line. It is recommended that player characters not take this Disadvantage at more than Common, Moderate.
Delusional
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
This character believes in one or more things that are patently and proven to be, not true. The delusions held by the character can be divided up into four basic categories: Quirks, Minor, Major, and Severe. Quirky beliefs (such as believing that the Earth is really flat and all those NASA pictures are faked) are taken at the Uncommon level. Minor delusions (such as believing that Jerry Falwell really does have regular conversations with God, just like he says) are taken at the Common level. Major delusions (such as believing that the New World Order is secretly plotting the Communist takeover of the United States, despite the general worldwide self-destruction of Communism) are taken at either the Common or Very Common level, and Severe delusions (such as believing that you are Napoleon or Jesus Christ) are taken at the Very Common level. It is suggested that Player Characters take this Disadvantage no stronger than Common, Moderate.
Demands Only The Best
Very Common, Strong 20pts.
This character is very particular in his tastes. He eats only in the best restaurants, buys only the best clothing, and the gear he uses is of the finest quality. The character tends to spend more than is common on most items, though this is not a universal rule since "most expensive" doesn't always translate into "best" (for example, the best cheeseburger on the planet can be acquired at a palm-frond roofed stand on Captiva island in the Bahamas for $1.20 American... must less than any similar item found in a fast food restaurant in the states).
Depressive
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character has a dark and unpleasant view of himself and the world he lives in. The character is often glum, listless, and tired. He rarely sees the point in expending effort toward any end, and will often fall into fits of crying, screaming, or binge-eating, and often do nothing for hours on end. This Disadvantage is different from Pessimist (although the two are often found together) in that Low Self-Esteem is part and parcel of Depressive). It should be noted that not all people who are Depressive are also Suicidal. At the Moderate level, the character is able to "shake off" his depression and act in a normal manner when necessary. At Strong, he can only do so with a successful Ego Roll, and at Total, he cannot do so except in the most dire of circumstances. It is suggested that Player Characters not take this Disadvantage at more than the Moderate level.
Despondent After Going Berserk/Enraged
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
This Disadvantage is only appropriate for characters who have the Berserk or Enraged Disadvantage. A character with this Disadvantage is embarrassed and horrified at the fact that he loses control to the point of mindless violence. After recovering from his Berserk or Enraged state, the character must make a successful Ego Roll; if the roll is failed, the character falls into a bleak despair during which he dredges up memories of every bad thing he might ever have done while in such a state. The frequency of this Disadvantage depends on the Berserk/Enraged Disadvantage. If the Berserk/Enraged triggers on an 8 or less, this Disadvantage is Uncommon. At 11 or less, it is Common, and at 14 or less this Disadvantage is Very Common.
Detached From Humanity
Common, Moderate 10pts.
This character has held himself apart from normal society for so long that he no longer knows how to correctly interact with anyone outside of his daily experience. Because of this detachment, he no longer reacts appropriately, does not communicate well, and doesn't get pop culture references that have become general knowledge. Worse for the character, he has become so used to this "condition" that he really isn't interested in learning how to fit in. The character can force himself act correctly when necessary.
Determined To Rule "The World Of Man"
Common, Total 20pts.
A classic "Master Villain" Disadvantage, this Disadvantage indicates a character who is different from the average "Wants To Rule The World" mastermind in that the character considers himself different, and therefore set above, normal humanity. The character uses this difference to legitimize his claim to ruling the world. Characters with this Disadvantage should be aliens, "gods", extra-dimensional travelers, mutants, or otherwise different from "normal humans" (or even "normal superhumans"). Obviously, this Disadvantage is appropriate only for NPCs.
Devoted To (Person Or Organization)
Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage will do anything to make the object of his devotion happy, will do anything the other character says, and wishes to protect the character to his utmost ability. The character may have other Disadvantages with affect how far the character will go to make happy or protect the other. At the Strong level, the character must make an Ego Roll in order to purposefully do something that makes the object of his affection angry, that goes directly against the other characters wishes, or that endangers the other character. At Total, the character cannot do so except in the most extreme of circumstances. In addition, if this Disadvantage is taken at Common, Total the character can make an Ego Roll to disobey one of his other Total strength Psychological Limitations if it serves the purposes of this Disadvantage. (In other words, a character with both Attitude About Lethal Force - Code vs. Killing and this Disadvantage at the Total level, could make an Ego Roll in order to kill someone who was threatening the object of his affection, should such action be necessary.)
Devoted To Justice
Very Common, Total 25pts.
A character with this Disadvantage puts the ideals of justice (or his conceptions of them) above anything else. Most of the actions in his life, and all actions taken as a crime fighter are made with the idea of increasing the "amount" of goodness in the world, or always doing the "right thing". This does not mean that everything the character does is the right thing -- the character can be mistaken, confused, or simply have odd ideas about what constitutes justice.
Devoted To Talion
Very Common, Total 25pts.
This Disadvantage is summed up as a belief in the Biblical "an eye for an eye, a tooth for a tooth" code of justice. A character with this Disadvantage believes that the evil a person does must be returned in kind. "Making the punishment fit the crime" is the motto of this character. As can be expected, very few such characters also have the Attitude About Lethal Force - Code vs. Killing. This tends to make this Disadvantage inappropriate for Player Characters.
Devout
Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage acts in accordance to his religion (or rather, in accordance to his own interpretation of his religion) at all times. He may (or may not, depending on the religion) spend time trying to convert his companions to his own beliefs, and will most certainly argue with people over the accuracy of his faith when the question arises (except, of course, when proselytizing and argument about faith are inappropriate for the character's religion). At the Strong level, the character must make an Ego Roll in order to purposefully violate one of the tenets of his faith. At Total, the character cannot do so except under the most dire of circumstances. This Disadvantage is not necessarily identical to Zealot.
Disdain For (Group, Person, Object, Nation, Or Concept)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
This character believes that the object of their disdain is beneath their consideration. Their initial reaction to anything involving the object of their disdain is a sneer and a derogatory comment. Disdain for a group means that the character immediately dismisses the value or contribution of the group to society. The views of the group are ridiculed out of hand, regardless of their merit, and the actions of the group are always suspect. Please note that if the group is a racial group, the character should take Racism instead. A specific person who is the target of disdain gets treated in the same was as a group of people, but in this case the disdain is of smaller focus. Disdain for an entire nation often expresses itself similarly to Racism, with the addition that the character sneers at elements of that nation's culture, its cuisine, the mode of dress worn by the natives, and things made there. Inanimate objects (or classes of inanimate objects) are considered to have no value whatever and are often casually destroyed by the character if such an option is possible. The character looks down his nose at anyone who treats the object with anything but disdain. Disdain for a concept is a little more concrete. The character simply refuses to credit the concept with any sort of value, regardless of what that concept is. This usually flows over into disdain for those who value the concept. "Welfare is a waste of money. All it does is encourage the poor to sit at home, doing drugs" is just as valid an example of Disdain for a Concept as is "Opposition to welfare is a sign of being heartless and cruel. Those who oppose welfare are selfish rich bastards who want to keep everyone else down".
Disillusioned When The Real World Is Not Black & White
Common, Moderate 10pts. / Common, Strong 15pts.
As the name implies, a character with this Disadvantage has a very simple and clear cut view of how the world works, and becomes upset when he is forced to realize that the world very often isn't always black and white. It should be mentioned that this Disadvantage applies to more situations than when the players must team up with a villain, or are forced to let a villain go on orders from the government due to a plea bargain. It also applies to such situations as when a popular sports hero, viewed as a role model by the character, is arrested for murder. Or when the character's girlfriend says "I love you, but I don't want to marry you. "A character with the Moderate level may get upset and have trouble concentrating during such times, while a character with the Strong level must make an Ego Roll in order to continue operating normally in such situations. The latter character will be much more vocal about his dislike for the situation and may even do something rash to "correct" it.
Dislikes (Group, Person, Object, Nations, Or Concept)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
For a character with this Disadvantage, there is something for which he feels utter loathing. The feeling is not as powerful as a hatred, and in general, the character can stand to be in close contact with the object of his dislike when such is necessary. A character who dislikes something will generally take active steps to avoid the object of his dislike, and will only voluntarily enter into a situation where they can't do so if such action is necessary. The object of the dislike could be almost anything: a specific person, a type of character, big business, a type of behavior, having to perform a specific task, etc. The possibilities are nearly endless. The different levels of frequency depends on how often the character will come into contact with the object of his dislike. This Disadvantage should not be used to represent Prejudice or Racism.
Distrustful
Common, Strong 15pts.
A character with this Disadvantage simply doesn't trust other people. He will always check his sources, second-guess directions from the map they have, and make a pain of themselves by always asking multiple times. If someone helps him, he'll question their motives. If he gets something for free, he'll suspect there's something wrong with it or perhaps there is a catch to the gift. The character is not a Pessimist -- its just that when dealing with other people, he always watches his back. The character can force himself to act otherwise only with a successful Ego Roll.
Distrusts (Person Or Group)
Common, Strong 15pts. / Very Common, Strong 20pts.
A character with this Disadvantage distrusts the members of a group, or even aspecific person. He doesn't necessarily dislike that person or group (although he may), but rather views them with suspicion. The character always thinks they are up to something, but he isn't quite sure what.
Doesn't Know (Secret About Himself)
Common, Total 20pts.
With this Disadvantage, there is some important fact about the character that is a secret, and it is so secret that even the character himself is unaware of it. The exact nature of the secret is up to the player, but the possibilities are many and varied. Perhaps the character is actually the child of a well-known hero/villain. Perhaps the character is actually an alien, and his parents never told him. Perhaps the character was grown in a lab and given false memories about his background. Regardless of the secret, the character is unaware of it. There should be some reasonable, if not necessarily easy way, for the character to eventually find the secret out. However, such revelation should be the end result of many long and intense role-playing sessions.
Doesn't Know How To Relax And Have Fun
Uncommon, Moderate 5pts.
The character has difficulty "loosening up" and enjoying himself. It's not as bad as being Grim and Humorless, but can be a problem in social situations. Often, characters with this Disadvantage will use alcohol or drugs to lower their inhibitions to "have fun."
Doesn't Quite Trust His Powers
Common, Moderate 10pts.
The character believes his powers to be unreliable for some reason. He will be reluctant to put himself in a situation where his life is dependent on his powers working correctly, and will take precautions against their failure or flareup. For example, a character who doesn't trust his ability to fly might carry a parachute around just in case. It is appropriate for the character's powers to have Activation Rolls, or Requires A Skill Roll, but it is not mandatory. After all, there may be nothing at all wrong with his powers...
Doesn't Scare Easily
Common, Moderate 10pts. / Common, Strong 15pts.
A character with this Disadvantage is rarely afraid of anything and will often be seen in a dangerous situation, even after seeing what sort of harmful effect that situation has had on others. The character is not blind to danger -- he just feels that he and his companions can handle whatever is to come. A character with the Moderate level can be convinced to back away from overwhelming danger, but will do so reluctantly. With the Strong level, he must make an Ego Roll in order to do so, and even then he will always be the last one to pull back.
Doesn't Understand Self-Sacrifice
Uncommon, Total 15pts.
This Disadvantage indicates a person who is so selfish that they are honestly mystified when those around him express any sort of unselfishness. The character plans on dying in bed, a long time from now, and generally won't lift a finger to help another person if doing so might expose him to danger. Likewise, he intends that long life to be rather comfortable, and will not discomfort himself in order to help others. The character is willing to share excess with his friends, but when it comes to sharing the basics, he refuses, always covering his own bases first. In addition, the character will try to stop those he considers friends from putting themselves at risk for others. Its not that he's cruel, its that he just doesn't understand why his friends would do that. The character is unable to change this behavior except under the most dire of circumstances.
Doesn't Want Another Relationship
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts.
The character's last relationship ended in death or a painful breakup, and he's still feeling the aftereffects. As such, he doesn't want to start a new relationship, either because the same thing could happen again, or because no new love could hold a candle to the lost one. He will avoid the dating scene, resent being "set up" with possible partners, and be brusque with people who seem to be romantically inclined. At the moderate level, the character can choose to be polite in these situations, even if he's unhappy with them. At the strong level, the character must make an Ego Roll to stay in a situation that seems to be heading towards relationship territory.
Doesn't Want To Be A Hero/Villain
Very Common, Strong 20pts.
The character wants a normal, non-adventuring life. He may or may not mind having special powers or skills, but using them to fight/commit crime is definitely off the agenda. Unfortunately for the character, someone or something is forcing him to be a hero or villain. Typical scenarios include a "stage parent" who nags their offspring into action, a set of powers that comes with irresistable compulsions, a bomb implanted in the character's neck that will detonate if he disobeys the agency, etc. If an opportunity comes up to be released from this situation, the character will go for it, no matter how unlikely. The character should also have Disadvantages that explain why he is a hero/villain despite his preferences.
Domesticated
Very Common, Strong 20pts.
This Psychological Limitation only applies to animals. Creatures with this Psychological Limitation have become accustomed to living in captivity and having their basic needs taken care of for them. Domesticated predators still eat meat, but have no idea how to hunt for it. They lack most of the "natural fear" animals feel toward those other creatures who predate them. A Domesticated animal is nearly helpless when left on its own in the wild.
Dreamer
Common, Moderate 10pts. / Common, Strong 15pts.
The character tends to "have his head in the clouds." He has goals that he wants to reach, but tends to just dream about them, rather than come up with a concrete plan to achieve them, or actually do the work. He tends to buy lots of lottery tickets, stand around hoping to be struck by an empowerment bolt and lie down to think a lot. At the moderate level, the character can focus on short-term objectives if he really wants to. At the strong level, the same actions require an Ego Roll. The character should not have such Psychological Limitations as Hard-Working or Must Have a Plan, but Optimist is very appropriate.
Driven By Family History To Become A Hero/Villain
Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage is the descendant (usually son/daughter or grandson/daughter) of a famous hero or villain, and feels compelled to follow the "family tradition" because of this legacy. At the Strong level, the character's heart isn't truly into what he is doing (for one reason or another, he just doesn't want to be a hero/villain, but feels he has to be lest he let his family down). At Total, the character is enthusiastically pursuing the "family tradition". Note that it is possible for the character to be a hero whose parent is a supervillain, and vice-versa. The character may have other Disadvantages regarding his devotion to family history.
Driven To Be The Best
Common, Strong 15pts.
The character is primarily motivated by wanting to excel at a particular endeavor. The world's best card player, detective, martial artist. He will devote large amounts of time and effort to improving himself and retaining his edge. If the character is outdone in his chosen field, he will consider taking back his preeminent position to be his top priority. Other Psychological Limitations will determine how far the character is willing to go to become the best. Gunslinger Mentality works well with this Disadvantage.
Driven To Pull His Weight
Common, Strong 15pts.
The character is primarily motivated by wanting to be a valuable, reliable member of any group he belongs to. He will devote large amounts of time and effort to learning his job skills and coordinating with the other members of the group. If the character is unable to pull his weight due to circumstances (for example: illness, or being sidelined by a superior) he will become depressed or angry. Characters with this Disadvantage might also have Workaholic or Hates Slackers.
Eager To Please
Common, Strong 15pts.
The character gets a big kick out of making other people happy. He'll go out of his way to do things to delight and please them, even when this might be against his own best interest. For example, he might go out in a boat in heavy seas to catch a fish that the king has expressed a taste for, not for reward, but because it would make the king happy. The character must make an Ego Roll to fail to perform an action that will please others, or to disappoint someone he likes.
Easily Distracted
Very Common, Strong 20pts.
A character with this Disadvantage has a great deal of trouble concentrating. As such, the Power Limitation "concentration" should not be purchased on any power. The character is distracted almost constantly by the world around them, by things such as butterflies, birds, passing vehicles or persons. The character can manage to concentrate, if needed, with a successful Ego Roll.
Easily Embarrassed
Very Common, Strong 20pts.
A character with this Disadvantage becomes embarrassed at any time in which it is even remotely possibly that people are thinking bad things about the character. The character becomes embarrassed if his shoes are untied, if a food stain the size of a pin head is on his shirt, even if someone else says something snide. Almost any circumstance can embarrass the character. This Disadvantage works well with Shy and Stagefright.
Easily Flattered
Uncommon, Strong 10pts.
This character takes the faintest praise as high flattery. He revels in any good word anyone says about him, and thus holds the flatterer in higher esteem than might otherwise be normal for the situation. The character must make an Ego Roll in order to resist the flattery. This Disadvantage works well with Arrogant, Egotistical, and Megalomania.
Easily Flustered
Uncommon, Strong 10pts.
A character with this Disadvantage gets confused easily, especially in chaotic situations. When things start moving quickly and several things happen at once, the character starts to lose track of details and what's supposed to happen. Eventually, the character will have no idea what exactly is going on. The character must make an Ego Roll in order to not lose track of the situation and get confused.
Easily Panicked
Uncommon, Strong 10pts.
In times of intense stress, a character who is Easily Panicked loses his cool almost immediately. When frightened, threatened, or otherwise put under harmful stress, this character falls to pieces. The character must make an Ego Roll in order to keep his cool during a dangerous situation.
Effete
Common, Strong 15pts.
This Disadvantage is only appropriate for male characters. He acts in a manner that can only be described as "less masculine" than other men. Always prim and proper, he always dresses impeccably (or tries to), is familiar with the finer things in life, speaks lightly, and would never dream of engaging in any activity that would actually make him perspire. He is not precisely effeminate, but rather considers the "stereotypical masculine male" to be a brute to be looked down on rather than admired. This character is usually not homosexual, but may be perceived as such by others. Good examples of characters with this Disadvantage would be Doctors Frasier and Niles Crane, from the sitcom "Frasier", Basil Fawlty from "Fawlty Towers", and Les Nessman from "WKRP In Cincinnati". The character must make an Ego Roll in order to do anything that might be considered "rugged" or "testosterone-filled", unless he does so in an effete manner.
Egotistical
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This is a character who thinks the world revolves around him. The character will assume that he will win any award he is a candidate to win, that he deserves special treatment simply because he is who he is, and believes that no one else's problems are more important than his. At the Moderate level, the character can force himself to consider others or to place others before his own wants if necessary. At Strong, the character must make an Ego Roll to do so, while at Total commitment the character won't consider the wants or needs of others except in the direst of circumstances. Taking this Disadvantage higher than Moderate is not recommended for Player Characters, as it would tend to make the character annoying to the other players.
Elite Attitude
Common, Total 20pts.
A character with this Disadvantage feels superior to others. This may be shown as expressed social, moral, or ethical superiority on the part of the character. The character may expect to be treated with better courtesy, or addressed differently, or may speak or act in a denigrating manner towards others. This Disadvantage should always be discussed by the GM prior to being taken to determine if the manner in which it manifests will or will not be disruptive to the game.
Emotionally Unstable
Common, Total 20pts.
A character with this Disadvantage has difficulty with their emotions. Their difficulty is not a lack of emotion, but an over demonstrative emotional state. They are subject to erratic swings of emotion, from one moment to the next. The character should be subject to an emotional change dependent on the stressful situations they encounter, including combat, other Disadvantages, or cues from the GM.
Emotionless
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character either actually doesn't feel emotions, or suppresses them (as the Vulcans from Star Trek). Regardless of which case is true of the character, others tend to regard him as cold, unfeeling, and sometimes inhuman. At the Moderate level, the character can express emotion when it is socially necessary. At Strong, the character must make an Ego Roll to do so. At Total commitment the character can possibly express emotion in the most dire of circumstances, depending upon which case of this Disadvantage is true.
Ends Justify The Means
Common, Total 20pts.
A character with this Disadvantage is a strong believer in the idea that the ends justifies the means. So long as the character is working towards a goal and making progress, then they are willing to accept a variety of actions. The character may use additional force, threats or bluffs, or expose themselves to questionable actions in pursuit of their goal.
Enjoys (Action, Circumstance, Or Situation)
Common, Moderate 10pts.
A character with this Disadvantage structures their free time around a certain activity. Whether it's a Saturday afternoon dedication to American football, or the devotion needed to watch Rugby at 3AM, the character will make uncomfortable changes in their schedule to enjoy their hobby. The character, however, is not so enamored of the activity that they permit it to interfere with their work or other 'required' activities.
Exhibitionist
Common, Moderate 10pts. / Common, Strong 15pts.
A character with this Disadvantage believes in the "Body Beautiful", and seeks out opportunities to practice this philosophy. At the Moderate level, the character looks for appropriate venues and like-minded people, generally taking a "its okay among consenting adults" attitude. At Strong, this Disadvantage can become pathological, as the character indulges in exposing himself during inappropriate situations or with unwilling participants. To not indulge his behavior in inappropriate situations, the character must make an Ego Roll. And even then, would only modify his behavior reluctantly. Player characters should avoid Total severity, and think twice about Strong severity.
Explosive Temper
Common, Strong 15pts. / Common, Total 20pts.
This is used to simulate a character whose temper has no "throttle". (Or, in other words, they go immediately from "mildly annoyed" to "just shy of berserk", with no intermediate steps.) Such a character will resort to violence easily and quickly soon after "going off". This character might be one of the easiest-going, patient people alive, and yet when they finally get mad, they immediately lash out physically. This sets it apart from the Disadvantage, Hair-Trigger Temper. At the Strong level the character can restrain himself with an Ego Roll, while at Total, the character cannot restrain himself except in the most dire of situations.
Fanatic
Very Common, Total 25pts.
This person believes so strongly in an ideal, country, code, religion, or cause that it is the most important thing in their life. They may or may not die for it, but they are always willing to do so. He puts the object of his fanaticism ahead of everything else. If the character is fanatical about a code of conduct, he adheres to that code rigidly. If he is fanatically devoted to a leader, he obeys that leader without question. This Disadvantage is a step beyond Completely Devoted to (Group or Cause). Note that a fanatic does not have to be either mindless or evil. Kamikaze pilots, Moslem terrorists, Christian fundamentalists and Patrick Henry ("Give me liberty or give me death") are all examples of fanatics. This Disadvantage should not be used to represent either Prejudice or Racism.
Fastidious
Common, Moderate 10pts.
A character with this Disadvantage has a strong attention to detail, and a tendency to require perfection. They may insist that all notes or memos be typed, rather than written, purely for a neatness factor. In general, their appearance is always neat and precise, and they may tend to favor more formal attire. However, they do not allow their quest for perfection to interfere with normal life or activities. A character with this Disadvantage may also have Obsessive Compulsive Disorder, or Insists on Perfection.
Fatalistic
Uncommon, Total 15pts. / Common, Total 20pts. / Very Common, Total 25pts.
This Disadvantage can best be summed up as "super-pessimism". Like a character who is a Pessimist, this person believes that nothing will work out. And in addition, they always believe that the results of everything not working out will be much more severe than can possibly be imagined. Such characters rarely have a concern over their own welfare due to a deep belief that they are a dead man anyway. In some of these characters, this attitude evolves into a variation on the Japanese proverb "If you know you are going to die, you can do anything." They are not necessarily Fearless, but are willing to take great risks and face great dangers. Despite what it appears, this Disadvantage does not work well with Depressive. However, it does work well with Fearless.
Fearless
Common, Strong 15pts. / Common, Total 20pts.
Such a character risks himself without a thought to his own survival. He takes no consideration of the odds against him, or what might happen to him if he fails. He simply does what he does with no fear. Such a character wouldn't hesitate to enter a burning building, or skydive off of a skyscraper, or go toe to toe with a foe when he knew he was outmatched. At the Strong level, the character must make an Ego Roll in order to consider the potential danger. At Total commitment the character is completely oblivious to danger in all but the most dire of situations, and even in those he must make an Ego Roll.
Fears (Circumstance Or Situation)
Common, Moderate 10pts. / Common, Strong 15pts.
A character with this Disadvantage has a fear of a circumstance or situation occurring to them. This is not a Phobia (which would be purchased as such). A character who Fears (Circumstance or Situation) will attempt to avoid or prevent that circumstance or situation from occurring, but will be able to tolerate it should it occur. Examples for this type of situation could include rejection from significant others, over-spending on accounts, or loss of a favorite item. The character will take steps to make sure this does not occur, but will not obsess to such a degree that it disturbs the character's normal life or activities.
Fears (Result Of Action)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
The character has an irrational fear that something bad will happen if he performs a certain action. For example: Fears He Will Die If He Enters the Jungle of Death. He will avoid performing this action at nearly any cost, including ridicule or punishment. Even if he performs the action once and nothing bad happens, he will assume he just got lucky and refuse to push his luck by a repetition. The GM should adjust this Disadvantage's point total to match the likeliness of this action being required in the campaign. Characters with this Disadvantage may also be Superstitious. It also works well with Bigmouth/Braggart.
Feeds Off The Adulation And Adoration Of "Normals"
Common, Strong 15pts.
The character considers himself "above" mere humans, but instead of wishing to control them, merely wants their praise and worship. He does not literally need this adulation, but will feel disappointed and eventually distraught if he does not receive it. If this adoration is lost, he will go to great lengths to get it back. If the character physically needs adulation and adoration, use a Dependency instead. Many characters with this Disadvantage will have other Psychological Limitations relating to their perceived superiority.
Feeling His Age
Uncommon, Moderate 5pts.
The character is getting up in years, and sometimes believes that he is too old to continue in his present career path. He is often tempted to comment on this subject when new, young people join his organization, or when a situation goes beyond his physical capabilities. He may be tempted to invest time and money in ways of staving off the aging process. The Age: 40+ or Age: 60+ Disadvantage is appropriate, but not mandatory. It's an attitude rather than a fact.
Feels Contempt For (Concept, Object, Person, Or Group)
Common, Strong 15pts.
This character looks down on the object of their contempt, thinking that the object is stupid, ill-advised, crude, or just plain bad. The possible targets for the character's contempt are almost limitless. Whatever the character focuses his or her dislike upon, he treats it with an utter lack of respect. This is not necessarily the same as Hates (Group, Person, Object, Nation, or Concept). The character doesn't wish harm upon the object of his contempt, and isn't likely to do any real harm. Rather, the character with be sarcastic about the subject, poke fun at it at every opportunity, belittle it, and take every opportunity to show those around him how little he thinks of the object of his contempt. The character can force himself to not act in this manner with a successful Ego Roll.
Feels Guilty About (Past Action Or Event)
Common, Strong 15pts.
A character with this Disadvantage had some terrible occurrence happen in their past. Either they themselves were the cause of the occurrence or they were the victim of it. Either way, the character feels responsible and thus guilty for it. This feeling need not be rational. In some cases, this Disadvantage could be defined as Survivor's Guilt (in which many people close to the character did not survive some event, but the character did, and for this the character feels guilt). In order to avoid feeling in this manner when reminded of the past, the character must make a successful Ego Roll. This works well with a variety of other Disadvantages, like: Runs From Responsibility, Feels He Must Prove Himself, Must Overcome Failure To Protect (Loved One), Depressive, Seeks Revenge, Prone To Depression, Grim and Humorless, Moody, and Flashbacks of (Traumatic Experience) During (Situation).
Feels He Must Prove Himself
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character thinks he has to prove that he's brave enough, strong enough, capable enough, etc. Whether he has to prove it to himself or others is up to the player. In order to prove himself, the character takes risky chances. However, he is not Reckless; he recognizes that the chances he takes are risky, but is compelled to take them because how else can he prove himself? At the Moderate level the character can force himself to not take risks in this manner when necessary. At Strong the character must make an Ego Roll in order to do so. At Total commitment, the character cannot do so except in the most dire of circumstances.
Feels Indebted To (Other Character)
Common, Strong 15pts. / Common, Total 20pts.
This character owes another character (whether NPC or PC) a debt due to the other character's actions in the past. What caused the debt is up to the player. The character may feel that he owes so much to the other person that he is compelled to assist them whenever possible (and within his other Psychological Limitations). At the Strong level, the character must make an Ego Roll in order to refuse to help the other character when asked. At Total, he cannot do so except in the most extreme of circumstances.
Feels Loyalty To His Superiors
Very Common, Moderate 15pts.
This is the "mild" version of both Always Obeys The Orders Of His Superiors and Completely Dedicated To (Agency or Person). Like those two Disadvantages, it is most appropriate for a character who is a member of some paramilitary or military organization. A character with this Disadvantage would, under normal circumstances, never dream of disobeying an order or violating the policies and regulations of the organization he works for, but under unusual circumstances could do so without making an Ego Roll.
Feels Need To Prove Himself
Common, Moderate 10pts.
This character never shows off or grabs the glory, because he knows who he is and what he is capable of. Taunts and personal challenges from other characters regarding his abilities and skills run off of the character like water from the proverbial duck's back. This is not to say that the character could not perform, and perform well, when challenged to do so. Its just that unless succeeding in the challenge is important in some way, shape, or form, the character finds it childish and unnecessary. This Disadvantage works well with Self-Assured, but should not be taken with Bully or Bigmouth/Braggart.
Feels That Any Criticism Is True, Whether It Is Or Not
Common, Total 20pts.
This is a variant of Low Self-Esteem. A character with this Disadvantage believes that every bit of criticism about himself is true. He has a hard time holding onto a positive self-image in the face of critical appraisal. However, unlike someone with Low Self-Esteem, this person will accept complements and believes praise about himself as well. Note that obviously ridiculous criticism will not be believed, but jokingly made sarcastic remarks not meant as criticism will be.
Feels Underappreciated
Common, Strong 15pts.
This Disadvantage is another variant on Low Self-Esteem. However, rather than the character having a low opinion of himself, he perceives that others have a low opinion of him and resents it. A character who Feels Underappreciated feels that, no matter how hard he tries or to what degree of excellence he acts, his efforts go unnoticed. This causes resentment on the character's part toward those he feels are under-appreciating him. The character can avoid these feelings if he makes a successful Ego Roll. This Disadvantage works well with Young.
Fervent Patriot
Common, Total 20pts.
A character with this Disadvantage believes in his country and would do almost anything to further its aims. They would gladly give their lives in the service of it, and tend not to believe any derogatory information leveled at their country. Even when presented with hard evidence that their country is less than ideal, they will not accept it unless the circumstances are extremely dire. Note that the character's patriotic feelings are not necessarily directed toward the government of his country (though this may well be a part of it).
Fights Dirty
Very Common, Strong 20pts.
This character believes that a fair fight is a fight he wins; to that end, he'll do what he must in order to guarantee that he does win the fight. The character will take any advantage he can in combat, and will exploit any weakness his opponent might possess. Low blows, insults, striking from surprise, blinding an opponent, using weapons against an unarmed foe -- all are considered useable tactics by this character. Note that a character cannot take both this Disadvantage and Not Above Using Dirty Tricks.
Filters Everything Through The Lens Of His Political Beliefs
Common, Total 20pts.
A character with this Disadvantage shapes his or her entire worldview around politics. Every situation and decision is given a political response. The character will decide which TV shows and movies to watch, which foods to eat, which people to associate with, which music to listen to, which books to read, which clothes to wear, which political and social causes to follow -- all from the standpoint of "is this appropriate according to my political opinions?"
Filters Everything Through The Lens Of His Religion
Common, Total 20pts.
A character with this Disadvantage shapes his or her entire worldview around religion. Every situation and decision is given a religious response. The character will decide which TV shows and movies to watch, which foods to eat, which people to associate with, which music to listen to, which books to read, which clothes to wear, which political and social causes to follow -- all from the standpoint of "is this appropriate according to my religion?"
Flamboyant
Common, Strong 15pts.
This character always adds a little extra panache to whatever it is he does. Its not enough, for instance, for the character to dress well. He has to dress well and stand out. (For instance, the character might wear an all-white tuxedo, complete with top-hat, tails, and cane, to a formal event.) The character is always a tad showy. He speaks large, makes large gestures, and has a hard time being sedate while in public. This Disadvantage works particularly well with Effete when applied to male characters. In order to avoid acting in this manner, the character must make an Ego Roll.
Flashbacks Of (Traumatic Experience) During (Situation)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
A character with this Disadvantage collapses into hysteria during a certain situation because the situation harkens back to a period in the past during which the character suffered a horrifying, painful, or otherwise traumatic experience. For example, a character could have Flashbacks Of Child Abuse When Yelled At or Flashbacks Of Rape When In Close Quarters With Men. The Frequency of this Disadvantage depends on how common the situation causing the flashback occurs. Regardless of Frequency, the character must make an Ego Roll in order to overcome the feelings the flashbacks cause and act normally.
Flatland Phobia
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This Disadvantage is appropriate only for characters in a science fiction setting where space travel is cheap, easy, and common. A character who suffers from this Disadvantage is psychologically unsuited for space travel. The sheer empty vastness of space unnerves the character. While on planets other than the one he was born and grew up on, the character finds that he doesn't sleep well, can't ever truly relax, and cannot get over the fact that something -- the smell of the air, the precise color of the sky, the look of the plants, the animals, the gravity -- just isn't "right". The character is not necessarily a Xenophobe. He may get along just fine with alien beings -- its alien environments that the character has trouble dealing with. At the Moderate level, the character can force himself to act normally in an alien environment; even so, he is distracted and edgy, suffering a -2 penalty to all Skill Rolls unless he makes a successful Ego Roll at +5. At Strong, the penalty is -4, unless a successful Ego Roll is made; in that case the penalty is -2. At Total commitment, the penalty is -6 unless he makes a successful Ego Roll at -5; in which case the penalty is -4. Note that Ego Rolls are not Skill Rolls.
Flattered By All The Attention
Uncommon, Moderate 5pts. / Common, Moderate 10pts.
The character is unused to having people notice or praise him. As such, he finds it a pleasant change, and tends to let the attention go to his head. He can be persuaded to act in irresponsible ways to continue to get attention and praise. The frequency of this Disadvantage should be chosen by the GM based on what level of celebrity the character suddenly has. Other Disadvantage that work well with this one are Young, Naive, and Feels Underappreciated.
Flustered By (Circumstance)
Common, Moderate 10pts.
A character with this Disadvantage is easily confused or disoriented by a target circumstance or situation. This may disrupt concentration, cause a delay in action, or restrain a character from a certain choice of action. As the character becomes flustered, they must evaluate the changed situation. This does not prevent them from acting, and does not require any roll to overcome. A character with this Disadvantage may also take complementary Psychological Limitations to reflect a fear of an occurrence, or a Physical Limitation to reflect an allergy which might cause them to be flustered. (For example: A character allergic to stinging insects, may be flustered by having to move through wilderness.)
Focuses On Current Activities To The Exclusion OF All Else
Very Common, Strong 20pts.
This Disadvantage might also be called Total Concentration. A character with this Disadvantage tunes the rest of the world out when he concentrates on something. Any activity that is not done in an offhand, casual manner is focused on like a laser beam. All else is suddenly considered unimportant and secondary, even such basic tasks as eating and sleeping. In order to force himself not to focus in this manner, or to redirect his attention once he has become focused, the character must make an Ego Roll.
Follower
Common, Moderate 10pts. / Common, Strong 15pts.
This character looks to others for leadership when leadership is needed. He will give his opinion on what should be done, but leaves the decision-making to others. When others look to the character for leadership, he feels uncomfortable with it and will tend to rely on the advice of the others for every decision. (In cases like this, sometimes the character will appoint another the "de facto leader" and use his advice as the decision itself, even while retaining the "figurehead" position of leader.) At the Moderate level, the character can force himself to make decisions and actually lead when necessary. At Strong, the character must make an Ego Roll in order to do so.
Follows Chain Of Command
Common, Moderate 10pts.
A character with this Disadvantage follows the structured hierarchy around him. If there is no structure, the character may or may not 'assume command' dependent on whether they are a leader or follower type. The character will look to those who have established authority and will accept instruction from those in authority. The character may assume that those in authority 'know better' as a result of experience or wisdom. This Disadvantage works well in combination with Follower, Trusts Those in Authority or Subject to Orders.
Forgetful
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage forgets those things that he is not dealing with at the moment. He can't remember phone numbers, people's names, directions, etc. without writing them down -- and even then he might not remember where he wrote them down. Very important information (like the names of his wife and children, where he works, etc.) are not forgotten -- just things he doesn't deal with every day. At the Moderate level, the character can force himself to remember these things when necessary. At Strong, the character must make an Ego Roll in order to do so. And at Total commitment, he cannot do so except in the most extreme of circumstances. This Disadvantage is different from Absent-Minded in that a character who is Absent-Minded forgets things when distracted, while this character forgets things at any time.
Free-Spirited
Common, Moderate 10pts.
The character is very independent in personality; he doesn't like being tied down to one place, one group or one relationship. He'd much rather be footloose and fancy-free. Such a character has no problem coordinating with a group (unless he has other Psychological Limitations preventing him) but is not inclined to take orders or to join permanently. Characters with this Disadvantage should not also take Psychological Limitations that make them loyal to a single person, group or place.
Free-Spirited And Willful
Common, Strong 15pts.
The character is very independent in personality; he doesn't like being tied down to one place, one group or one relationship. In addition, he very much resents being told what to do. He has a great deal of difficulty coordinating with others, especially if they try to exert authority over him. Characters with this Disadvantage will often take other Psychological Limitations appropriate to a "loner."
Frugal
Uncommon, Moderate 5pts.
This is a variation on Cheap/Spendthrift; the character isn't precisely cheap, but rather prefers to do more with less. He is willing to spend money when necessary, and in some cases prefers to buy the best (and possibly most expensive). However, he also prefers not to spend a lot of money when its not strictly necessary. The character can avoid acting in this manner when necessary.
---
Giddy Teenage Girl Syndrome
Common, Strong 15pts.
In general, this Disadvantage should be restricted to very young female characters. The character suffers from a comically exaggerated behavioral pattern, or rather everyone else around her does. The character with GTGS is almost always perky and hyperactive, though she can suddenly swing to another mood and back again on a dime. She is given to fits of giggling and nonsensical outbursts, understood only by other giddy teenage girls. Often, the character will attach themselves to a "best friend" or "boyfriend", completely oblivious to the other person's opinion of them. Giddy Teenage Girls are often found in shopping malls, fast food restaurants and boy band audiences. Most characters with this Disadvantage are also eligible for the Social Limitation Minor.
Girl/Guy Crazy
Very Common, Moderate 15pts.
The character has a strong and distracting interest in the opposite sex. This Disadvantage is essentially a milder or less developed version of Lechery. He will take any opportunity to look at, meet, or discuss the objects of his interest. But it is not necessary for him to actually *interact* with the opposite sex. Many characters with this Disadvantage are also Young or Immature; he could also be Shy.
Gives Too Much Importance To What Other People Think
Frequently, Greatly 15pts.
A character with this Disadvantage finds the opinions of others much more important than his own opinions. Its' mantra of "Well, what do you think?" affects every part of this characters life. This could be caused by overbearing parents, or not wanting to take responsibility for his actions. If a friend or coworker suggests that the character do something a different way (go through the back door instead of the front door of a building), then on a roll of 8 or less, the character will do as told. This only applies to non life threatening situations.
Glories In Destruction
Common, Strong 15pts. / Common, Total 20pts.
This is a character who enjoys breaking things and hurting people. They gain an emotional rush from destroying property and causing injury. They are not necessarily killers, but are not adverse to killing people, either. At the Strong level, the character must make an Ego Roll to avoid using their powers to destroy when given a chance. At Total, the character cannot do so except under the most dire of circumstances. This Disadvantage is only appropriate for villains.
Glory Hound
Common, Total 20pts.
A character with this Disadvantage cannot resist putting himself in the spotlight. He insists on taking the greatest risks, creating complex plans that prominently feature himself as the center of the action, will always pose for photos and sign autographs, and will stick around after the villains are caught on the off-chance that a reporter will want to talk to him. This Disadvantage is sort of an advanced form of Overconfident, thus a character should not be allowed to take both.
Glutton
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts.
This is someone who is overly fond of food and drink. Given the chance, the character will eat until he is stuffed. He will have "snack foods" tucked away in convenient locations, and is most likely overweight. A character taking this Disadvantage at the Moderate level can pass on food or drink when the situation requires. Taking it at Strong requires an Ego Roll to do so. In general, characters with this Disadvantage have always been portrayed as messy, disgusting, morbidly obese slobs who one would not want to be close to for any length of time. Note that this is not necessarily the case with all characters. This is not a terrible weakness, but it is an obvious one.
Greedy
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage lusts after wealth. Such a character is willing to do almost anything to increase his own net worth. "Secondary" considerations such as loved ones and friends don't necessary matter next to the ultimate goal. A character taking this Disadvantage at the Moderate level is able to control his urges, and will not attempt to profit from the misery of others, or toss people aside in his pursuit of wealth. At Strong, the character must make an Ego Roll to do the same. A character whose greed is Total couldn't care less who he hurts on his way to the top of the financial heap. Those characters who have this Disadvantage at the Strong level must make an Ego Roll in order to resist taking a bribe, following a scheme to get rich quick, or any other risky and/or potentially hazardous method of making money. The GM is free to assign bonuses or penalties to this roll depending on circumstance and the amount of money (for example, a $20 dollar bribe won't really tempt a man who already is worth over $1 million). This Disadvantage combines well with Cheap/Spendthrift and Miser, though the combination need not always be present.
Grim And Humorless
Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage never sees humor in anything. This is not the same as No Sense of Humor. A character with that Disadvantage just doesn't get it, whereas this character gets the joke but simply feels that he has better things to do with his time than waste it making lame attempts at humor, and that so do you, so get on with it already. In addition to humor, the character feels that he has better things to do than indulge in any sort of frivolous behavior at all, such as any activity in which sentiment is expressed. At the Strong level the character must make an Ego Roll in order to have anything vaguely like an appropriate reaction to humor. At Total, the character never laughs, or even smiles, regardless of what is going on.
Gullible
Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage tends to believe everything he is told. Such a character is easily tricked, and usually easily taken advantage of. Of course, the real disadvantage to this Disadvantage is that no matter how many times the character is taken in, he never seems to learn. At the Strong level, an Ego Roll is necessary for the character not to believe what he is told. This roll should be made only in a situation where the player feels that what the character is being told is untrue or is designed to trick the character. At Total, there is no roll except when what the character is being told is patently and obviously nonsense.
Gunslinger Mentality
Common, Strong 15pts.
This Disadvantage is only appropriate for characters who have a reputation as great fighters. The character feels compelled to challenge any other renown fighter to a duel (not necessarily to the death) to see who is the better fighter. If the other fighter refuses, the "gunslinger" will do almost anything short of engaging in physical violence (and some less ethical "gunslinger" types won't stop at that) to goad the other into fighting.
Hair-Trigger Temper
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage gets angry at the drop of a hat. The slightest irritation sets him off into a rage. Such a character tends to get into fights easily, is never happy with his lot in life, rarely has successful relationships, and never has any true friends. At the Moderate level the character can suppress his anger enough to get along peaceably with others, no matter how maddening he finds them. At Strong, the character must make an Ego Roll in order to do so. At Total, the character cannot interact peaceably with those who may irritate him except under the direst of circumstances. Note that this is not the same thing as an Explosive Temper.
Hard Charging
Common, Strong 15pts.
The character has an aggressive attitude towards any project he is involved with. If he has a choice of approaches to a problem, he will strongly prefer a direct charge at full speed or the equivalent. Characters with this Disadvantage tend to eschew subtlety and patience.
Hardworking
Common, Moderate 10pts.
A character with this Disadvantage can be considered a workaholic. This character regularly spends long hours on work projects, often neglecting loved ones. This can lead to failed marriages, and unhappy children. This character receives a -2 penalty to any roll related to his personal or family relationships.
Has A Crush On (Other Character)
Common, Moderate 10pts.
The character has a romantic interest in another person. This is similar to In Love With (Other Character), but has not yet deepened into that category. Crushes are often not requited, and are marked by unrealistic assessments of the relationship's potential. Crushes are a short-term Disadvantage, and generally are "bought off" quickly, replaced by a crush on someone else, or deepen to In Love With (Other Character).
Has Complete Trust In (Group Or Person)
Common, Total 20pts.
A character with this Disadvantage trusts another character enough to put his life in the other's hands. He willingly and commonly confides in the other, believes the other will never betray him, and can put himself in danger knowing that the other character will back him up. The character will never, ever have the slightest doubt about the other character, even if shown evidence that a betrayal of some kind has taken place. (The character will rationalize the evidence away.) Whether or not the other character is worthy of that trust is not up to the player.
Hates (Group, Person, Object, Nation, Or Concept)
Uncommon, Total 15pts. / Common, Total 20pts. / Very Common, Total 25pts.
For a character with this Disadvantage, there is something for which he feels the utmost hostility and contempt. In general, a character who hates something will take active steps to avoid the object of his hatred, and will never voluntarily enter into a situation where they can't do so. If absolutely forced to deal with the object of their hatred, the character will do so unwillingly, and under great and vehement protest. The object of the hatred could be almost anything: a specific person, a type of character, big business, a type of behavior, having to perform a specific task, etc. The possibilities are nearly endless. The different levels of frequency depends on how often the character will come into contact with the object of his hatred. This Disadvantage should not be used to represent Prejudice or Racism.
Headstrong
Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
A character with this Disadvantage is stubbornly bent on having his own way. Once the character decides on a course of action, he sticks to it regardless of what anyone else does or says. While he won't insist on ridiculous courses of action, if his idea makes any sort of sense at all, he will want to follow it instead of someone else's idea, and will try to persuade others that his is the plan to use. At the Moderate level the character can give up his own plan or idea in favor of someone else's when necessary. At Strong, the character must make an Ego Roll in order to do so. At Total, the character cannot do so except in the most dire of circumstances. If at any time he is following the plans or ideas of others in contradiction to his own, he will gripe and complain the entire way. Refusal to follow the plans in contradiction to his own would be Headstrong and Impulsive, at the same point totals. In this case, the character makes no attempt to argue his own ideas, and simply proceeds on his own way regardless of what others say or do.
Hedonist
Common, Strong 15pts.
This character believes that pleasure is the only proper goal of moral endeavor. Their credo is "If it feels good, do it". He indulges in his own choice of vices, and is willing to try other people's vices as well. The character may have other Disadvantages which will restrict how far he will go in the pursuit of pleasure. In order to suppress his urge to pursue pleasure in all of its forms, the character must make an Ego Roll.
Hesitates In Combat
Common, Strong 15pts.
A character with this Disadvantage has to think about what he's going to do in a fight before he actually does it. This is not the same as Confused In Combat, as the character may be perfectly able to follow a battle plan, or even formulate one himself. However, he unconsciously takes the time to actually think about what he's about to do instead of just going ahead and doing it. The character always acts last in any given combat phase, and even then can only make Half-Moves. The character can force himself to act without thinking about it with an Ego Roll; in this case, the character can make a Full-Move.
Hidebound
Common, Strong 15pts.
A character with this Disadvantage is typically stubborn, narrow minded, and prejudiced. Common beliefs for this type of character are that women have their place, and minorities should do manual labor. These characters never hide their feelings and proudly let people know his opinions whenever possible. They receive a -3 penalty to any Interaction skills when interacting with people he believes are beneath him.
Highly Competative
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
A character with this Disadvantage strives to win any contest he is in, regardless of the nature of the contest, and regardless of whether or not he has any chance of winning. Because this character can choose not to enter the contest in the first place (but once in is in to win) this is different from Cannot Turn Down A Challenge. The frequency of this Disadvantage depends upon what the character considers a contest. At Common, the character becomes competitive in only the "normally obvious" competitive situations. At Very Common, the character becomes competitive in any situation that could possibly be called a contest.
His Word Is His Bond
Uncommon, Total 15pts.
The character is devoted to keeping his promises. Once he has "given his word", the character will keep it, regardless of obstacles and distractions. If he is rendered incapable of keeping his word, the character will be embarrassed, despondent, and in some societies suicidal. Naturally, such a person does not give his word lightly, and will try to avoid situations where he's forced to give his word unjustly. This Disadvantage is often part of a Code of Conduct; if so, it doesn't count twice. If the Disadvantage is known, the character may have a positive Reputation relating to it (or a negative Reputation if he's been caught breaking promises.)
Holds "Mortals" In Contempt
Common, Strong 15pts.
This is another Disadvantage that is appropriate to a villain, and only when the character in question is immortal, is phenomenally powerful (in the Mechanon/Doctor Destroyer range), or otherwise feels he has some form of extraordinary birthright. Because of this, the character believes himself to be superior to "mere mortals" whose weakness and inferiority he considers to be an offensive fact of life. This Disadvantage should not be taken at the Moderate level -- Arrogant should be taken instead.
Holds Society In Contempt
Common, Strong 15pts.
This Disadvantage represents a character who cares little (if at all) for societies rules. He doesn't like the establishment, and has no respect at all for traditional authority figures (even if such attitudes get him into trouble). The character will verbally or physically assault symbols of such authority, and derides those who don't share his views. A character with this Disadvantage is usually a proponent of ultimate social freedom -- as long as he gets to define what "freedom" means. It is recommended that Player Characters not be allowed to take this Disadvantage.
Homebody
Uncommon, Moderate 5pts.
A character with this Disadvantage tends to stay at home whenever possible. This character may stay home on a Saturday night reading, painting, or playing videogames. This often leads to a poor social life. Due to poor social skills, a Homebody character receives a -3 penalty to any Interaction skill rolls.
Homesick For (Home Area)
Common, Moderate 10pts.
This Disadvantage is only appropriate for a character whose permanent residence is not where he is originally from. The character longs to return to his home, but cannot do so easily for one reason or another (which the player should specify). If given a chance to return home, even if temporarily, the character will take it unless it is necessary that he doesn't.
Honesty
Very Common, Strong 20pts. / Very Common, Total 25pts.
This Disadvantage is another Code of Conduct, but it deserves its own entry. A character with Honesty obeys the law, doesn't lie, and keeps his word. In addition, he does his best to get others to act in the same way. In an area with little to no law, the character will act as if the laws of his home were in force. He assumes that others around him are honest (but will not necessarily allow those who aren't to take advantage of him -- he's not Naive. The character may fight (or even start a fight, if he does it legally). He may even kill in a legal duel or in self-defense. Murder is, of course, out of the question. If jailed for a crime he did not commit, but treated fairly and assured of a just trial, he will not even think of an escape attempt. If taken at the Strong level, the character must make an Ego Roll to do anything that could possibly considered illegal or dishonest. At the Total level, he will never do anything even remotely dishonest, regardless of the consequences. A character who always tells the truth but doesn't always follow the law should take Truthful instead.
Humble/Self-Effacing
Common, Strong 15pts.
The character believes that work should be done, and done well, for its own sake, rather than to be rewarded or to stroke one's ego. He is uncomfortable with ttaking more credit than he is due, or being excessively praised. Indeed, he will go out of his way to avoid undue notice, and to give praise to those he feels more deserving. The hypocritical version of this Disadvantage is Pretends to be Humble/Self-Effacing, which represents someone who is trying to gain praise by seeming to not want it. This Disadvantage should not be taken with Bigmouth/Braggart, Attention Seeker, or Gloryhound.
Hunts (Person Or Group)
Uncommon, Strong 10pts.
For whatever reason, this character is in pursuit of some person or group. Generally, the character is doing so in order to cause some harm to the object of his pursuit, but this is not strictly necessary. The character expends a great deal of energy and time in this pursuit, placing a strain on the rest of his life. Very often a character with this Disadvantage will also have Seeks Revenge. The character should have some defined emotional reason to be Hunting (Person or Agency) to the detriment of their own career or personal life.
Hyperactive
Very Common, Moderate 15pts. / Very Common, Strong 20pts.
This character is always on the go. He never seems to sit still, and when forced to he fidgets. Not being constantly busy and not being in constant motion is a very uncomfortable situation for him. At the Moderate level the character can sit still without fidgeting if necessary (even though the sitting still never lasts). At Strong, the character must make an Ego Roll to be able to sit still without fidgeting (and it would last even less time).
Idolizes (Person)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
The character has a strong case of hero worship towards another character. The character sees his idol as the pinnacle of her profession, and attempts to model himself after the idol's supposed positive traits. The character will buy products the idol endorses, follow any advice the idol gives and attempt to see/meet the idol at any opportunity. As far as the character is concerned, the idol can do no wrong. The frequency of the Disadvantage depends on how often the character will get to interact with his idol. If the interaction is fairly rare, or at a distance, then it is Uncommon; if the two meet fairly often (for example, they both work at the same company), it is Common. If the idol is attacked, the idolator must defend the idol; if the idol fails to live up to the idolator's ideals, the character will be confused and saddened. Typical Disadvantages found with this one include Disillusioned When the Real World Isn't Black & White, Naive, and Young.
Ignorant Of His Own Incompetance
Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Strong 15pts. / Common, Total 20pts.
The character has a weak point in his skill set, but for some reason cannot seem to tell that this is so, and refuses to stop trying to use those skills. If the area of incompetency is not directly related to the character's job or physical well-being, then the frequency is Uncommon. (Example: A school headmistress who insists on torturing her students with concerts of her inhumanly bad opera singing.) If the incompetency is directly related to the character's job, or their survival, then the frequency is Common. (Two examples: The military officer who is great at looking spiffy in his uniform, and riding a horse, and having tea with Duchesses, but has no tactical sense whatsoever; or the officer who is tactically brilliant, but has no people skills and is unable to fathom why cobras keep turning up in his bedding.) Usually, the character with this Disadvantage is also unable or unwilling to evaluate the level of competency of others in the indicated skills. Any obvious failures by the character will be blamed on outside factors, or incompetence/treason on the part of the character's subordinates. At the Strong level, the character can sometimes be persuaded to delegate duties associated with his incompetent skills to a competent assistant; at the Total level, he won't even consider this compromise. Characters with this Disadvantage should buy Contacts, Perks or Wealth to explain how they got the job, and why they haven't already been fired.
Immature
Common, Moderate 10pts.
This character tends to act in a manner totally inappropriate for his age. Childish tantrums, taunting, petty grudges, wild antics, and rampant exuberance are all part and parcel for this Disadvantage. This should never be taken stronger than Common, Moderate; otherwise the character becomes annoying. The character can act mature when necessary. This Disadvantage is often found alongside of Young, though they are not dependent upon each other.
Impatient/Impulsive
Common, Moderate 10pts. / Common, Strong 15pts.
This Disadvantage represents a character who hates to wait. He tends to do things at the spur of the moment, and never hesitates or shows any sort of sense of timing. He wants what he wants, and he wants it right now, and having to wait only makes him irritated. In addition, the character often acts without thinking. To this character, a plan is something that gets in the way. Talking things over before acting is not only boring, it is stupid. He knows what to do, and is going to do it, right now. At the Moderate level the character can force himself to avoid acting in this manner when necessary. At Strong, the character must make an Ego Roll in order to do so. At Total, the character cannot do so except in the most extreme of circumstances. This Disadvantage works well with Headstrong, Stubborn, Young, and Immature.
Impressed With (Focus') Abilities
Common, Strong 15pts.
This Disadvantage is only appropriate for a character for whom at least some of their abilities work through a focus. The character is constantly amazed by what the focus can do. If he designed and built the focus, it works far better than he planned. If he didn't, he can't believe he is lucky enough to be able to use it, and is constantly surprised at what it can do. In order to act in any way blasČ about the focus, the character must make an Ego Roll.
In Denial About (Fact Or Incident)
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
In Denial About (Fact or Incident) Uncommon, Moderate: 5 Points / Uncommon, Strong: 10 Points / Uncommon, Total: 15 Points / Common, Moderate: 10 Points / Common, Strong: 15 Points / Common, Total: 20 Points / Very Common, Moderate: 15 Points / Very Common, Strong: 20 Points / Very Common, Total: 25 Points Type: Psychological Limitation A character with this Disadvantage refuses to admit the truth about a fact or incident, and will refute or excuse any evidence presented that contradicts his opinion. The reason for the denial is usually because the subconscious mind is trying to protect the character from some traumatic memory. The frequency of this Disadvantage is based on how often the truth about the fact or incident is presented to the character. For example, if the character is in denial about Bruce Lee being dead, it would most likely be an Uncommon experience that this belief would be challenged. However, if the character refuses to believe that his wife is dead, he will probably have to confront his denial more often. The intensity reflects the character's response when presented with irrefutable evidence of the truth. If Moderate, the character may fall into a depressive funk, as he tries to come to grips with the truth, but can still function. At Strong, the character falls into a deep depression, and must make an Ego Roll to functional normally. At Total, the character falls into a deep depression, and he withdraws within himself as his mind tries to deal with the repressed feelings. This Disadvantage is similar to Delusional with the main difference being that a character in denial knows the truth at a subconscious level and is only trying to avoid the pain associated with the truth, whereas a Delusional character honestly believes his false thoughts.
Inconsiderate
Very Common, Moderate 15pts. / Very Common, Strong 20pts.
The character fails to take outside considerations into account when making decisions. The feelings of others, the safety risks involved, legal restraints, none of these things come up in the decision process for him. It's not that the character doesn't care about those outside factors, it's that a speedy decision is the primary goal so far as he's concerned. At the Moderate level, the character can slow down and think of all the factors involved in a decision. At the Strong level, he must make an Ego Roll to force himself to take outside factors into consideration.
Incorruptible
Uncommon, Total 15pts.
This Disadvantage is only appropriate for heroic PCs or NPCs. A character with this Disadvantage is a pillar of moral principle. He would never consider taking a bribe, being influenced by power, or be afraid to carry the fight for justice to the highest levels if need be. Unfortunately, this Disadvantage also means that, on questions of law enforcement and justice, the character never makes compromises. He would never offer a criminal a plea bargain in order to gain information. Anyone who offered him anything that could remotely be considered a "bribe" (regardless of the friendliness and harmlessness of the gesture) would be arrested. He would never look the other way, even if doing so meant stopping a greater evil.
Incurious
Common, Moderate 10pts. / Common, Strong 15pts.
The character is capable of learning new things, and changing his beliefs based on new information. He just has no interest in putting any effort into doing so. He considers himself perfectly capable of operating on the information he has, and tends to take what he's told at face value. At the moderate level, the character does not seek out new information unless it is vital to his safety or employment. At the strong level, the character does not seek out new information unless the situation is dire. Many characters with this Disadvantage also have Aliterate or Proud of His Ignorance.
Indecisive
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage has a hard time making decisions when presented with more than one option. The character lacks the ability to discern or prioritize the different options, and will delay his decision until the options are removed by outside forces, someone else makes the decision for him, or forced to pick, which may very well be random. The intensity of this Disadvantage reflects the impact it has on the character's life. At the Moderate level the character has a hard time deciding on things that have little affect on his well being, such as what to have for dinner, or what movie to go see. At Strong, the character's inability to make a decision extends to all areas of his life, and could be life threatening. The character can make an Ego Roll to see if he makes the correct decision, otherwise, his decisions should be made randomly. At Total, the character does not have the ability to make up his own mind, and when having to decide for himself, must decide randomly.
Indiscreet/Gossip
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts.
A character with this Disadvantage likes to talk about other people. Without really thinking about it, the character will relate to people he talks to the deepest, most embarrassing secrets about his friends, comrades, strangers... it doesn't really matter who they are, he talks about them. This tends to cause other characters to not fully trust the character (or at least edit what they around him). The character does not do this out of a sense of malice (though this is certainly possible). Rather, he doesn't really think about it: he just talks. This is also not to say that the character cannot be trusted with a truly important secret. This person won't necessarily blab a national security matter to anyone on the street. However, other characters may well think so. At the Moderate level the character can resist the urge to spread really juicy news when necessary. At Strong, the character cannot do so unless he makes an Ego Roll.
Inferiority Complex
Very Common, Strong 20pts.
This is a character who always assumes that nothing they do is as good, worthwhile, or noticeable as the actions of another person. They may otherwise have a good view of themselves, but feel that when compared to others, they don't "measure up". They sometimes don't understand why other people think highly of them (but rarely discourage complements... they like hearing them even if they don't believe them). To repress the urge to depreciate his own contributions, the character must make an Ego Roll.
Ingrained Upbringing
Very Common, Total 25pts.
Since childhood, a character with this Disadvantage has been raised with certain beliefs and behavior that are now a part of his very essence and innermost being. As a result, it is near impossible for the character to change or challenge this installed worldview. For example, in the movie "Logan's Run", the entire society is raised to believe that once a person reaches a certain age they must die, in order to preserve that society. The entire story is about how the main characters challenge that worldview, and how drastically it changes their lives. The player and GM must work together to create an appropriate worldview for the character. However, it must be understood that a character with this Disadvantage will be near useless when his worldview is challenged, and it will be very difficult for this character to function far from his home society.
Insatiably Hungry For Power
Common, Total 20pts.
This character could be described as "Super-Ambitious". He stops at nothing to increase his power over others. Even if he has reached a high level of power (such becoming a corporate CEO, President of the United States, Pope, or King of his own Nation), he will attempt to gain even more power. This is the standard Psychological Limitation for those Villains who hold the "I know I am a king but I want to be a god" philosophy. Even if the character were to actually become a God, he would still want to become more powerful. The character can pass up a chance to gain personal power if one is presented by making an Ego Roll. This Disadvantage is only appropriate for villains.
Insensitive
Common, Strong 15pts.
A character with this Disadvantage is not responsive to the needs or feelings of others. As a result, his actions are often tactless and perhaps viewed as cruel. The character may not actually be a cruel person, but he definitely lacks the ability to interact on an emotional level with others.
Insists On Perfection
Common, Total 20pts.
The character does not settle for second-rate effort from himself or anyone else. His own actions must approach perfection, and so must everyone else's. A slight sloppiness, a moment of inattention, a sour note; any of these are sufficient to ruin his appreciation. At best, the character disdains those who do not strive for perfection in everything they do, as he does; depending on his other Psychological Limitations, he may insult, attack or even kill those who fail to live up to his expectations. Naturally, the character should have high skill rolls in his chosen field. Other Disadvantages he may have are Arrogant and Conceited.
Intolerant
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Common, Moderate 10pts. / Common, Strong 15pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts.
This Disadvantage indicates that the character dislikes and distrusts some (or all) people who are different in some way from himself. Applicable differences include skin color, religious beliefs, sexual orientation, gender, or political affiliation; the possible differences are numberless. The exact details are up to the player. This Disadvantage should not be taken at the Total level; instead the Disadvantage Prejudice should be used. A character who is Intolerant treats the object of his intolerance with coldness and hostility. At the Moderate level, the character can suppress this reaction when needed, but can (and will) revert at the drop of a hat. At Strong, he must make an Ego Roll to interact peaceably with the object of his dislike. It is suggested that player characters not take this Disadvantage at a level stronger than Common, Moderate.
Irrationally Attracted To (Other Person)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
A character with this Disadvantage feels a strange and unexplainable attraction for a person to whom he would otherwise not feel attracted (if the person to whom the character is attracted is someone for whom the character would feel attraction normally, use In Love With (Other Person) instead). The reason why the character wouldn't be attracted normally is up to the player. Perhaps the other person is disliked (or even hated) by the character. Perhaps the character is heterosexual, but feels attracted to a person of the same sex. Whatever the case, the object of the attraction is not someone the character would normally consider, and the character can only control his feelings of attraction if he makes an Ego Roll. The Frequency of the Disadvantage is determined by how often the character encounters the object of this attraction.
Irritable
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
A character with this Disadvantage is easily exasperated. The slightest annoyance tends to provoke impatience, displeasure, or anger. The character can make an Ego Roll to suppress this reaction. However, it is generally hard to hide irritability. People tend to avoid irritable people, so the character may have few friends. The frequency of this Disadvantage reflects how irritable the character is, and how easily the character becomes exasperated.
Irritable And Inconsiderate
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
Very similar to Irritable -- a character with this Disadvantage is easily exasperated. The slightest annoyance tends to provoke impatience, displeasure, or anger. The difference with this Disadvantage is that the character cannot avoid overtly displaying his displeasure when annoyed. People tend to avoid irritable people, especially inconsiderate ones, so the character will very likely have few friends. The frequency of this Disadvantage reflects how irritable the character is, and how easily the character becomes exasperated.
Is Trying To Buy His Way Into Heaven
Uncommon, Strong 10pts.
This Disadvantage is only appropriate to a very religious person. He does good deeds because he believes that this is the way to insure a pleasant afterlife. He is not necessarily a nice person otherwise; he may be snide, condescending, and even insulting. But he does good deeds in the belief that God expects him to. This does not stop the character from being rude while "helping" others. In addition, the character may help one charity group, then refuse to give to another because he has already "done what he could" for charities. This Disadvantage works very well with Arrogant, Cynical and Prejudiced Against People With Different Religious Views Than His.
Jealousy
Uncommon, Total 15pts.
With this Disadvantage, the character has an automatic bad reaction towards anyone who seems smarter, more attractive, more competent, wealthier, or more personable than he is (even if its only in the character's mind). The player determines The exact nature and exact focus of these feelings. This Disadvantage does not necessarily require that the character also take the Rivalry Disadvantage, as the person can be jealous of different people at different times, and the person who is the subject of the jealousy does not necessarily consider himself a rival. A character will resist any suggestion or plan proposed by this "rival". The "rival" will also be the butt of disparaging remarks made by the character. In some instances, this character will even attempt to sabotage the "rival".
Judgemental
Very Common, Strong 20pts. / Very Common, Total 25pts.
A character with this Disadvantage often judges others' behavior and actions harshly. Because of this, others will view him as cold, mean, pompous and over-critical. Many may feel intimidated by the character, or angry that he thinks he has the right to judge them. At the Strong level the character can make an Ego Roll to recognize his behavior and modify it accordingly. At Total, the character is not aware of, or cares, that his actions are not well received by those around him, and can only modify his behavior in the most extreme of situations.
Justice Not Law
Common, Strong 15pts.
This character believes that it is more important that "justice is done" than the letter of the law be followed. He is willing to go out of his way to ensure this quality of justice, and will often break laws to achieve the desired result. He is generally willing to let the law take its course in matters where justice is not at stake, however. This Disadvantage is included in Vigilante Mentality, and characters should take one or the other.
Keeps (Fact About Himself) A Secret
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts.
A character with this Disadvantage has a secret he wants very few (if any) other people to know about. The secret can be about almost anything, but shouldn't be silly or minor. (Silly secrets should instead be applied using a Quirk.) The strength of this Disadvantage determines who the character might tell, and how often. At Moderate, the character has probably told (or will probably tell) at least one person, if it was necessary or important at the time. At Strong, the character probably hasn't told anybody, and must make an Ego Roll in order to do so. This Disadvantage should not be used to simulate a Secret Identity.
Keeps His Mind So Open That Anything At All Can Fall Into It
Common, Strong 15pts.
A character with this Disadvantage is so receptive to new arguments and ideas that he has trouble committing to any single position. It will be hard for the character to support any morally based argument, since he will be equally agreeable to the opposition's argument. The character will be viewed as indecisive, and it will be next to impossible for the character to serve in a leadership role. When presented with a new argument, the character should make an Ego Roll to resist changing his opinion on the subject. This Disadvantage does not mean that the character is unintelligent, only that he is able to see all sides of an argument a bit too easily. The character can still dismiss any argument or idea that is completely outlandish.
Kleptomania
Uncommon, Strong 10pts. / Uncommon, Total 15pts.
A character with this Disadvantage feels a compulsion to steal things. He doesn't necessarily feel compelled to steal valuable items, but rather will steal anything he can get away with: keys, pencils, books, candy bars, loose change, etc. He will very rarely steal items he can't fit into his pockets. If presented with an opportunity to steal something and not get caught, the character will do so. If this Disadvantage is taken at the Strong level the character can make an Ego Roll to suppress this urge. At Total, it is all but impossible for the character to stop.
Know It All
Very Common, Strong 20pts. / Very Common, Total 25pts.
This character believes that he knows more than you about everything. He doesn't necessarily assume that he is smarter than everyone else, but he acts as if he is, and he most certainly acts as if he knows more than everyone else. Even in a situation where the character is being shown tangible proof that he is not as knowledgeable as he says he is, he continues to act as if he were. At the Strong level, he can make an Ego Roll in order to suppress the urge to act like this. At Total, he can't do so except in a dire situation.
Law Abiding
Common, Moderate 10pts.
This is a milder form of Honest. The character believes that laws exist for a good reason, and that society works better when the laws are obeyed. As such, he will attempt to follow the laws of the society, even when they are inconvenient for him. In "lawless" areas, the character will follow the laws of his home area to the extent possible. However, the character also knows that the law is imperfect, and sometimes it is necessary to break rules in dire situations.
Lazy
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This character is adverse to doing anything that he feels is not "fun", and he will do "fun" things with the minimum of effort. Everything he does, in fact, is with minimum effort. The character does his best to avoid work - especially hard, physical labor - at all costs. If forced to do work, he does a half-assed, half-hearted attempt at the job, and may or may not finish, depending on how closely he is supervised. At the Moderate level the character can force himself to do a better job through concentration. At Strong, the character must make an Ego Roll to do so. At Total, he never puts any effort into anything he does. It is suggested that a player character not take this Disadvantage above the Moderate level.
Lecherous
Very Common, Strong 20pts.
A character with this Disadvantage suffers from an unusually strong desire for sexual contact of any sort. Whenever in more than the briefest contact with the member of the opposite gender (or same, depending on the character's tastes), he must make an Ego Roll to avoid making some sort of lewd pass, using whatever wiles or skills he can bring to bear. The attractiveness of the other person can modify this roll. (Meaning that the character is a horndog, but he still has standards.) Note that a Lecherous character may change his or her standards of attractiveness, depending upon the situation. (Lecherous drunks, for instance, are notorious for having "beer goggles".)
Life Is A Party
Common, Strong 15pts. / Common, Total 20pts.
This character's whole goal in life is to have a good time. He spends much of his time either looking for or attending fun filled events. Work, health, and family are all secondary to the need to have fun, and as a result they often suffer. Invitations for a fun time are seldom passed up, and he would always prefer to be around other party animals. Anyone who does not share his excitement in the life style is a "stick in the mud". At the Strong level, the character can turn down an opportunity to go partying, and do something "un-fun" with an Ego Roll. At the Total level, partying always wins out, often at the cost of job and friends. As usual, if the circumstances are dire enough, it may be possible to resist the partying instinct. This Disadvantage tends to expose the character to other destructive behavior, and thus is complimentary to Addicted to (Substance or Activity), Compulsive Carouser, and Hedonist.
Likes (Group, Person, Object, Nation, Or Concept)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
For a character with this Disadvantage, there is something to which he feels an attraction. The feeling is not as powerful as a love. In general, a character who likes something will take active steps to be in contact with the object of his liking, and will only voluntarily enter into a situation where they can't do so if such action is necessary, and make an Ego Roll. The object of the like could be almost anything: a specific person, a type of character, big business, a type of behavior, having to perform a specific task, etc. The possibilities are literally endless. The different levels of frequency depends on how often the character will come into contact with the object of his liking.
Literal Minded
Common, Strong 15pts. / Common, Total 20pts.
The character does not have the ability to understand metaphor or wordplay. He takes any speech or printed matter according to its most common face value. This Disadvantage is most often found in artificial or supernatural beings, such as robots and djinni. At the strong level, the character can learn, if taught, specific instances where the speaker or writer is not being literal, and deal with them correctly thereafter. At the total level, the character never learns. This is often combined with Always Follows Orders for a servant who is absolutely faithful, but difficult to instruct properly.
Little Man Syndrome
Common, Strong 15pts. / Common, Total 20pts.
This Disadvantage is only appropriate for male characters who are shorter than 5' 7" (1.7 meters) tall without actually being a dwarf. The character is so sensitive about his lack of height that he sees "short jokes" in casual comments and feels he must prove his masculinity by being bad-tempered and pugnacious. He starts fights at the drop of a hat (especially with men who are taller than he is), and believes unconsciously that women can't be attracted to him because he is short. If someone actually does use a short joke in his presence, or treat him in any of the ways he fears they want to, the character tends to become apoplectic with rage. At the Strong level the character can avoid reacting in this manner by making an Ego Roll. At Total, he can only avoid his bad reaction in the most extreme of circumstances.
Lives Beyond His Means
Common, Moderate 10pts. / Common, Strong 15pts.
This character enjoys the finer things in life. He likes owning expensive things, wearing fine clothing, and eating in the best restaurants. Unfortunately, he doesn't actually have the money to afford the life style he has chosen. Because of this, the character is constantly broke, has creditors hounding him, and sometimes (if the character did something really dumb) has loansharks gunning for him. At the Moderate level the character can force himself to live within his income if absolutely necessary. At Strong, the character must make an Ego Roll in order to do so. This Disadvantage is not appropriate for characters who purchase the Wealth Perquisite.
Lives For The Hunt
Uncommon, Total 15pts.
This Disadvantage is appropriate only for those street-level characters who are vigilantes, bounty hunters or assassins. The character hunts (and possibly kills) other people and loves doing so. If he's an assassin, he's not satisfied with merely killing his target; if he's a bounty hunt, the capture and pay is a secondary consideration. The character's primary motivation is the chase; letting the target know that he is being hunted and running him down. Perversely, should the character ever become the subject of a hunt himself, he becomes frustrated, angry, and unstable. "The hunter becomes the hunted" is the bane of this character's existence. The character can only resist engaging in an elaborate hunt for his target in the most extreme of circumstances. This Disadvantage is not recommended for Player Characters.
Lives Up To His Image
Common, Moderate 10pts.
The character has a reputation which he is at pains to maintain. This is not necessarily a positive Reputation; a criminal might desire to maintain his image as a ruthless killer, for example. If it does not conflict with his other Psychological Limitations, the character will act in the way his desired reputation would dictate. The character must take a positive or negative Reputation to represent the image being lived up to.
Lonely
Very Common, Moderate 15pts.
This character feels that he has no true friends or companions. Even though he may be a part of a team or other organization, the character cannot actually relate to his co-workers (or at least feels that he can't), and as such feels that he is all alone in life. This feeling has caused him to become depressed and sad, affecting almost everything he does. He tends to hold himself away from others as a result, and is sometimes seen with pity by those around him. The character tends to assume that he will be left out of any group activity, and believes that no one really wants to associate with him if given a choice. The character can force himself through force of will to avoid these feelings of lonesomeness for a time, if necessary.
Loner
Common, Strong 15pts.
This character prefers to work by himself, without any help from others. There could be many reason why the character feels this way: he may think that his goals are too dangerous to involve anyone else; he may feel that other people aren't competent enough to work with him; or he may feel that others may try to stop him once they see how he operates. (And any of these reasons can amount to other Psych Limits.) A loner has no true friends. He may have trusted acquaintances with whom he can talk and gain momentary assistance from, but he never actually lets them into his private world. He keeps his own secrets, and even those people who think they are his friend don't know everything. The character will grudgingly accept help if it is forced onto him, but he will not seek it out unless he makes an Ego Roll. If help is forced onto him, he must make an Ego Roll in order to actively cooperate with the helpers. Note that he will never actively refuse their help... but he will discourage it. This Disadvantage works well with Uses Sarcasm As A Defense Mechanism.
Longs To Be With His Family
Uncommon, Moderate 5pts.
The character is separated from his family, and wants to return to them. He will attempt to contact his family whenever the opportunity arises, save money for trips home, and feel for others who are away from home. For this Disadvantage to be worth points, returning to the family should be extremely difficult or impossible under normal circumstances.
Looks Out For Himself
Common, Strong 15pts.
This Disadvantage is a milder form of Selfish. Unlike that Disadvantage, this one is for a person who will (and does) look out for others; he simply takes care of himself before any others. In cases where the character has to choose himself over others, he will choose himself unless he makes an Ego Roll.
Loud And Obnoxious
Common, Moderate 10pts. / Common, Strong 15pts.
This character is boisterous, and has a tendency to get on other people's nerves with his boisterousness. He talks too loudly, laughs too loudly, dresses too loudly, chews with his mouth open, makes inappropriate jokes at inappropriate times, and rarely considers the fact that he is acting in a boorish manner. At the Moderate level the character is not necessarily uncaring about other people's feelings -- he just rarely realizes how much of a jerk he is being at the time unless someone points it out to him. (He apologizes a lot later, usually.) When he has to, he can force himself to act in a polite manner. At Strong, the character usually fails to see that he is acting like an ass, even when someone points it out to him. It takes an Ego Roll for the character to realize he is acting like a jerk, and possibly modify his behavior.
Love Makes Him/Her Stupid
Common, Strong 15pts.
This Disadvantage is similar to Sucker For A Pretty Face; whenever the character falls in love, his common sense takes a vacation. He'll do anything his beloved suggests, with little regard to how foolish or dangerous it may be. This character also generally doesn't have good enough taste to avoid falling in love with partners who won't exploit this. If the beloved's suggestions violate another Strong or Total Psychological Limitation, the character gets a bonus to his Ego Roll to not follow the suggestion. Excessively bad results will often result in the character no longer being in love. A variant found in "mature themes" campaigns is Sex Makes Him/Her Stupid, where the character loses common sense when pursuing coitus, without necessarily loving the partner.
Lover's Distraction
Common, Strong 15pts.
The character's first reaction to any dangerous situation is to ensure that his loved one is safe. This goes beyond the normal protectiveness towards loved ones, and applies even if there's no realistic risk to the other person. Opponents who know of this weakness will often threaten the loved one to gain precious seconds to escape or complete their plan. If the character's other Psychological Limitations are triggered at the same time, the character may be able to temporarily concentrate on something or someone other than the loved one. The loved one is often a DNPC, but does not have to be. If the campaign seldom presents physical danger, or the loved one doesn't show up often, reduce the frequency of this Disadvantage to Uncommon.
Loves (Groups, Person, Object, Nation, Or Concept)
Uncommon, Total 15pts. / Common, Total 20pts. / Very Common, Total 25pts.
For a character with this Disadvantage, there is something to which he feels an intense attraction. In general, a character who loves something will take active steps to be in contact with the object of his love, and will only voluntarily enter into a situation where they can't do so in the direst of circumstances. The object of the love could be almost anything: a specific person, a type of character, big business, a type of behavior, having to perform a specific task, etc. The possibilities are nearly endless. The different levels of frequency depend on how often the character will come into contact with the object of his love.
Low Empathy
Very Common, Moderate 15pts. / Very Common, Strong 20pts.
The character has no problem understanding or expressing his own emotions, but has difficulty with other people's emotions. He doesn't easily guess how other people feel about a situation, and finds the concept of people having *different* emotional reactions to his own baffling. If he is in love with someone, that person should love him back. If he is greedy, he will assume everyone else is primarily motivated by greed, no matter what they say in public. If the character kills an abusive husband, he will be confused by the wife's grief. Didn't he just do her a favor? He might conclude that other people's emotions are unfathomable, or even that people whose emotional reactions are drastically different from his own are insane. At the moderate level, the character can sometimes sit down and work out why another person is showing a particular emotion, "putting himself in the other person's shoes," step by step. At the strong level, the character will consider it a waste of time to even try to understand.
Low Self-Esteem
Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
This character refuses to believe anything good about himself. He tends to believe that he is a screw-up, that nothing he does will succeed, and that no one would ever like a guy like him. The dedication to this Disadvantage determines how bound and determined the character is to seeing only the worst about himself. At the Moderate level the character tends to think that his mistakes are worse than they are, but otherwise has a generally good view of himself. At Strong, the character must make an Ego Roll to believe anything but bad things, and at Total, the character is almost depressingly down on himself. A character shouldn't take both this Disadvantage and Pessimist; he should take Depressive instead.
Loyal To The Cause
Very Common, Strong 20pts.
The character belongs to a cause that is one of the most important things in his life, and will work for the good of the cause at every opportunity. Examples: "Bring peace to the Middle East," "Prevent the slaughter of unborn children," "Throw out the Saxon invaders," "Destroy all monsters," etc. The character is convinced beyond all doubt of the rightness of his cause; however he is capable of understanding that certain actions taken in the name of the cause would hurt the cause, rather than help it. Thus he will uphold the "good" of the cause over merely promoting the cause. And because the character is loyal to the cause, rather than to its leaders, he will quickly turn against any leader he sees as harmful to the cause. (Example: Bob is Loyal to the Cause of "prevent the slaughter of unborn children." He's perfectly willing to legally protest outside clinics, urge his legislators to pass laws to aid the cause, and argue himself blue in the face with people who disagree with his position. But he knows that violence will make the cause look hypocritical, so he will shoot down such ideas whenever they come up, and even turn in fellow cause members who attempt to kill abortion providers, even if they are the head of his group.) What tactics the character is willing to use on behalf of the cause are often modified by his other Psychological Limitations.
Lust For Knowledge
Uncommon, Total 15pts.
This character might best be described as a "bookworm". The character has a love of learning that most teachers would give their right arm to have in a student. He is always reading, doing research, or otherwise collecting information. He doesn't collect trivia: the things he learns are subjects of interest, and he puts serious research time into it. This is the character's primary interest. When given a chance to learn things and research a topic, he does, except in the most extreme of circumstances. If the character encounters something unknown to him and interesting, his first response is to study it. (This is the classic Psychological Limitation for a scientist in a monster movie. This character will be shouting at the hero "You can't kill the creature! We need to study it!" while the creature in question is busily eating the extras and supporting actors). The character is rarely skilled in the social arena, since he spends most of his time in the library or the laboratory. The character can force himself to deal with anyone but his research (for when he is not actively in the lab, he is thinking about it, or talking about it) in the most extreme of circumstances.
---
Macho
Common, Strong 15pts.
This Disadvantage is only appropriate for male characters. A character with this Disadvantage always acts in an exaggeratedly masculine fashion. He speaks loudly, acts domineering toward women, and believes he is a sexual dynamo. The character is disgusted by "fags" and "dykes", and will accept no insult to what he sees as his personal honor. The character sees nothing wrong with sleeping with many women, even if he is married. (However, should his wife sleep with other men, he would become infuriated and try to take some measure of "appropriate" retribution against the other man -- his wife he would simply beat once and forgive.) The character must make an Ego Roll in order to act in any other manner.
Mad As A Hatter
Very Common, Total 25pts.
This is the classic "Joker" Disadvantage, and represents a character who is not only insane, but is fucking bonkers on top of it. A character with this Disadvantage does random and possibly odd things for any reason or for no reason at all. His mind is so disconnected from reality that he sees no reasons behind anything, and wants none. He is capable of killing or sparing, on a whim, and often engages in seemingly random actions for inconceivable reasons. He speaks nonsense and non sequitur, and prefers it that way. The character cannot act in a rational manner, even when world-threatening circumstance requires it. Player Characters should not be allowed to take this Disadvantage.
Makes Friends Easily
Common, Strong 15pts.
This character tends to befriend anyone he meets who shows him even a modicum of respect, politeness, and courtesy. This is not to say that he actually becomes friends with the other person (such things require, at the least, the cooperation of the other), but rather will consider the other person friendly and trustworthy enough to become a friend. He will always be open and friendly with others unless they have shown some reason for him not to be; but on first meeting, his impulse is to be friendly. In order to avoid acting in this manner, the character must make an Ego Roll.
Makes Jokes In Combat
Common, Moderate 10pts.
The character's reaction to the stress of combat is to unleash a steady stream of humor. This may or may not be at the expense of his opponents, or even topical to the particular combat. More serious-minded characters find this very annoying, and the humorist is often the first person targeted. The character can keep his mouth shut if he has to, but it won't last for long. In campaigns where combat is extremely rare, the frequency of this Disadvantage drops to Uncommon, reducing the value by 5 points. This Disadvantage should not be taken in conjunction with Cannot Resist Taunting His Foes in Combat, Thinks He's a Comedian, or Wiseguy. The character with this Disadvantage may be seen as a joker, but only in certain circumstances.
Manic
Very Common, Total 25pts.
This Disadvantage might well be called Super-Hyperactive. This character has seemingly endless energy. He seems to bounce off the walls, can't ever sit still, talks too loudly and constantly, and seems to move from one mood to another in the blink of an eye. The character can only force himself to slow down or stop in the direst of circumstances, and even then can only force himself to act as if he were Hyperactive instead.
Manic-Depressive
Common, Strong 15pts.
This character suffers from tremendous mood swings that affect his ability to face the world. When in "manic" phase the character believes that his life is perfect and there is nothing he cannot do. When in "depressive" phase the character believes that his life is miserable and there is nothing he can do. At the beginning of each play session roll 1d6; on a 1-3 the character is in manic phase, 4-6, he is depressive. After 5 hours of game time roll 3d6, a result of 10 or less indicates a mood swing. Over the next hour his mood will shift to it's opposite and remain in this state for at least 5 hours. Manic characters are +1 on all Skill, Stat, Perception, and Combat to-hit die rolls, depressive characters are at -1 to all of the same. Player characters should take this Disadvantage only at Common, Strong. Any stronger and the character becomes completely incapacitated. Any weaker and its no Disadvantage at all.
Manipulative
Frequently, Major 15pts.
The character enjoys making other people "dance to his tune", using emotional and psychological manipulation to get them to do what he wants. This can be on a large scale, as a politician who sways legislative bodies to vote for his pet bills, or on an individual scale, as a mother who uses her illnesses to guilt her children into humoring her whims. The distinguishing characteristic is that the character never just asks someone to do something, he manipulates them into doing something. This is such an ingrained habit that the character finds it difficult to force himself to be straightforward. Ambitious And Manipulative includes this Disadvantage, so they should not be taken together. Other Psychological Limitations will modify how far the character is willing to go in his manipulations. It is a good idea for the character with this Disadvantage to buy high Presence-based skills.
Masochistic
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts.
This character enjoys being hurt. He actually gets pleasure from being mistreated (either physically or mentally). The character actively seeks out opportunities to be hurt, and frequently (and willingly) enters abusive relationships just to take advantage of it. At the Moderate level, the character can suppress his natural urge to seek out pain and injury when necessary. At Strong, In order to suppress his natural urge toward wanting to be injured, the character must make an Ego Roll.
Mass Murderer
Common, Total 20pts.
This is the worst possible kind of Casual Killer. This character kills others because he can and because its easy, not particularly because he's got a reason that, to him, justifies killing many people. Unlike a professional assassin (who may technically qualify as a Mass Murderer), a character with this Disadvantage kills for any reason or no reason. He doesn't necessarily kill everyone he meets -- but he might if so inclined. He most certainly kills (or attempts to kill) anyone who irritates, hampers, or actually harms him. There are exceptions to this; He may even be in a passionate and caring relationship with someone not connected to the object of his rage. This character is not necessarily Psychopathic/Sociopathic, though this is possible. Also, he is not a Serial Killer, as they behave quite differently. This Disadvantage is only appropriate for villains. The murders committed by a character with this Disadvantage frequently follow these rules:
Victims are killed in a specific spree over a relatively short period of time, usually hours (less often days). The killings usually occur at several separate locations within a small area (such as two or three city blocks) as part of a continuous "action".
The killing sprees are usually one-time occurrences in the life of the killer, but could potentially happen numerous times.
Victims are typically selected at random and attacked or not at the whim of the killer, or form a part of a target group.
If part of a target group, the victims are usually connected in some way to the killer.
Guns are almost always used, and the victims are never tortured before being killed.
Attacks are usually made in public places, such as restaurants, malls, and universities.
Maternal/Paternal Complex Towards (Person)
Common, Strong 15pts.
This character has Maternal or Parental feelings towards another character. The other character should be younger and less experienced than the character with this Disadvantage. The character believes that it is his or her duty to protect, teach, guide, and advise the younger character, offering the benefits of his/her higher age and experience. The other character is free to accept such treatment or not, as appropriate for the character. In addition, should the younger character become injured or is killed, the character with this Disadvantage will take it upon himself to seek revenge. At the Strong level, the character must make an Ego Roll in order to avoid acting in this manner. At Total, the character cannot do so except in the most extreme of circumstances.
Meek And Demure
Common, Moderate 10pts. / Common, Strong 15pts.
The character behaves quietly and modestly in social situations. Traditionally, this behavior was expected of women, and thus is stereotypically assigned to them, but a male character may also have this Disadvantage. The character will avoid speaking first, or in a raised voice, will avoid dressing in flashy or revealing clothing and will always show deference to those of higher social standing. People with this Disadvantage often come across as shy or timid. At the moderate level, the character can force himself to act in a more attention-seeking manner when necessary ("If I don't do something fast, that man will leave!"); at the strong level, it's much more difficult (requiring an Ego Roll.) The character should not have any socially aggressive Psychological Limitations such as Bigmouth/Braggart or Lecherous. The hypocritical version of this Disadvantage is Pretends to be Meek and Demure.
Megalomania
Very Common, Total 25pts.
Another classic villainous Disadvantage, this one could be described as the most extreme form of Arrogant or Conceited possible. A character with this Disadvantage believes that he is more than a mere mortal. In some way, he considers himself "above" his fellow mortals. The character might believe that he is the perfect human specimen, or the world's most developed intellect, or that he is destined to rule the world, or that he has been divinely chosen for some task. Whatever the specifics, the character believes that this makes him not only a cut above everyone else, but also quite literally an order of magnitude above everyone else.
Mercenary Mentality
Common, Strong 15pts.
This character is always looking to get something out of the situation. He helps people only when there is something to be gained: A reward or acclaim of some kind. He can easily be swayed with offers of money or power, though he may have other Disadvantages that determine whether or not he will accept such bribes. This one works well with Cynical, Greedy, Selfish, Looks Out For Himself First, and several of the Code of Conduct Disadvantages. It should not be taken with Charitable, but makes an interesting combination with Sucker For A Sob Story. In order to do something charitable for which there will be no gain, the character must make an Ego Roll.
Messiah Complex
Common, Total 20pts.
This character believes that he was born to fulfill some great destiny by saving humanity. The manner in which he saves humanity, and from what, is up to the player. This attitude rarely sits well with others, although it is possible that the character has followers who believe in him. In general, a character with this Disadvantage believes that he can do no wrong, and that his mission is more important than any other 'mundane' concern. This Disadvantage works well with Megalomania, Arrogant, and Believes He Is Sanctioned By A Higher Power.
Methodical Planner
Common, Strong 15pts.
This character is an organized, step-by-step thinker, approaching each problem point by point. He carefully plans and executes every step until completion. He never abandons his plans once made, and hates to change horses in midstream. The character resists any "plan" which involves rushing in without discussion and preparation. In order to avoid acting in this manner, the character must make an Ego Roll.
Mischievous
Common, Moderate 10pts.
This is a variation on Prankster (and thus the two should not be taken together). The character cannot resist having fun. He likes to play pranks and tell jokes. He enjoys causing a little bit of chaos, or cheerfully embarrassing someone, and may not be the most studious or hardest working person around. He's more of a Troublemaker, but without the sense of malice that a true Troublemaker possesses. He can be serious when he has to, but generally doesn't like to do so because its just not all that fun.
Miser
Very Common, Strong 20pts.
This Disadvantage is an extreme form of Cheap/Spendthrift. The character is obsessed with holding onto the wealth he already has. This is different from Greedy, although the two Disadvantages are often found together in the same person. When called upon to spend money, the character must make an Ego Roll or else look for the cheapest alternative possible. Note that this does not mean "the best deal", it means the absolute cheapest, period; the character will accept second-rate (or even third, fourth, or fifth rate) materials, services, and goods rather than have to pay for first rate. Even if the Ego Roll is made, the character will attempt to haggle the price down, and will complain interminably afterward.
Misogynist/Misandronist
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character hates, devalues, and mistreats people of the opposite sex. For example, a Misogynist believes that the value of a woman depends on how well she cooks, cleans, and performs during sex, while a Misandronist believes that all men are knuckle-walking morons who only want to objectify and rape women and keep them from attaining the true power that only females are worthy of. This Disadvantage goes beyond Prejudice Against Women/Men in its totality and depth of feeling. At the Moderate level the character can suppress the urge to treat the opposite sex like dirt, but at Strong, would need to make an Ego Roll. At Total, the character cannot do so except in the direst of circumstances. This Disadvantage is only appropriate for Non-Player Characters.
Money Hungry
Common, Strong 15pts.
This character believes that he's always on the edge of poverty (and depending on his economic habits, may well be), and is thus always looking for new ways to make money. He's not necessarily Greedy in that he's not willing to do anything to get it -- but almost. The character is unlikely to rob banks or murder for money, but get rich schemes and con jobs are certainly a possibility. The idea of actually working a 9 to 5 job seems too slow and demeaning to the character, but he may occasionally be found working odd, nonstandard jobs (like selling perfume door to door and dressing up like a chicken to deliver singing telegrams.
Monitors (Person Or Group)
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
For whatever reason, this character keeps close tabs on some person or group. He gathers what information he can, follows them (or has them followed), and keeps records. Generally, the character is doing so in order to eventually cause some harm to the object of his pursuit, but this is not strictly necessary. The character expends a great deal of energy and time in this pursuit, placing a strain on the rest of his life. Very often a character with this Disadvantage will also have either Seeks Revenge, or Distrusts (Person or Group). The character should have some defined emotional reason to be seeking information on the person or group to the detriment of his own career or personal life.
Moody
Common, Moderate 10pts.
This character tends to be dour and unpleasant, but not actually Bad Tempered, though they both work well together. He tends to be slightly Antisocial without actually taking it that far. The character is capable of normally relating to people when necessary. This Disadvantage works well with Loner.
Morbid
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character has a deep and inexplicable interest in the macabre, the gruesome, and the unwholesome. He is the type of person who watches slasher movies to see how well the blood effects are done. He reads books about murders and finds the subject of death fascinating. This is not to say that the character is necessarily interested in performing gruesome acts, but rather he finds them a fascinating subject of study. At the Moderate level, the character can suppress his interest in such things when necessary. At Strong, the character must make an Ego Roll in order to do so. At Total the character cannot overcome his fascination with the macabre except in the direst of circumstances. It is suggested that player characters not take this over the Moderate level.
More Concerned With His Image Than Anything Else
Uncommon, Strong 10pts.
This Disadvantage is only appropriate for PC or NPC heroes (villains don't care about what the public thinks of them). This character places other people's perception of him above any other moral consideration. He panders to the public, doing things he believes the public expects. What this means is that the character fights crime because the public keeps better opinions on heroes than villains, not because he feels some righteous need to do so. He refrains from killing his enemies not because he has any compunction against doing so, but because the public considers people who kill their enemies to be murderers, and not heroes. The truth is, he would lie, kill, steal, and cheat if he thought he could get away with it. In order to avoid acting in this manner, and thus actually act from moral principles instead of "the will of the people", the character must make an Ego Roll. A character with this Disadvantage should have no other Psychological Limitations regarding morality or principles, except perhaps Amoral.
Multiple Personality Disorder
Common, Total 20pts.
This is a character with a fractured psyche. This Disadvantage is more commonly known among the general public as "split personality" or "schizophrenia" (although true schizophrenia is a completely different disorder). This Disadvantage means that the character has more than one "person" in their head. Each personality is a complete and separate individual. These personalities surface in times of stress or in times of deep association with some past trauma. The personalities themselves may or may not have any sort of conscious connection to the "prime" personality. Note that it is possible for secondary personalities to have Psychological Limitations of their own. Such matters should be worked out carefully with the GM beforehand. The character has no control over when and how the other personalities surface.
Murderous
Common, Strong 15pts.
This character is very similar to a character who is a Casual Killer. The primary difference is that this character has a single motivation for killing others, as opposed to killing for no reason at all. This character kills those people who anger and upset him, or who interfere with his goals and plans. This Psych Limit should not be taken with Bloodlust, Serial Killer, or Mass Murderer.
Must Avenge All Insults
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This character is driven to give payback to an adversary for any insults he receives. The reaction to the insult may range from a comment about ones mother, to a brawl, to keying ones car. The severity of the action depends on the strength of this Disadvantage, and the nature of the insult. Strong words will likely be returned with more strong words. A slap in the face will warrant a fistfight. And public humiliation may well warrant the death of the person who caused it, depending on the humiliated character's other Psychological Limitations. At the Moderate level, the character can ignore the insult if the circumstances demand that he do so (though he isn't very happy about it at all). At Strong, the character must make an Ego Roll in order to force himself to ignore the insult, and at Total, the character must be dragged kicking and screaming away from immediately avenging himself, and will never, ever forget (much less forgive).
Must Avenge The Murder Of Any Friend, Family Member, Or Protected Party
Uncommon, Total 15pts.
This character will stop at nothing to bring justice to any person that kills a loved one. His thoughts and dreams will be filled with images of this vengeance. Once the murderer is caught, this character will probably inflict bodily harm upon him. This can vary from just a severe beating, to possibly the death of the murderer. There may well be social and/or legal consequences to this act of vengeance.
Must Be Leader
Common, Strong 15pts.
This character has to be in charge of any group he is a part of (or at least think that he is in charge). This isn't necessarily the same as Control Freak, but it is similar. If he is not made leader, the character criticizes the leader's actions, follows his own plans (and cajoles his fellows to follow his lead) and generally acts put out until he is made leader. The character must make an Ego Roll in order to cooperate fully in any group for which he is not the leader. This Disadvantage should not be taken with Control Freak, since it is already included in that Disadvantage.
Must Complete His Mission
Common, Total 20pts.
This character takes his duties and dedication to his work to an obsessive level. He lets nothing stop him until he has done what he sets out to do. The character would rather die than abandon his mission, regardless of what it takes to get it done. The character may have other Psychological Limitations that moderate precisely to what lengths the character will go to complete his mission. The mission in question may change from case to case.
Must Have A Plan
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
A character with this Disadvantage is obsessed with planning out all of his activity. The root of this problem is the characters fear of the unknown. Without forethought, the character is convinced that some important point or item will be forgotten, causing failure. The goal determines how elaborate the plan needs to be. A hasty huddle to determine which guards each character is going to be responsible for in an impromptu ambush may be a sufficient plan for the circumstances. Sneaking into a lich's tower to steal an ancient artifact may need a more detailed plan to make the character comfortable. At the Moderate level, the character likes to use lists to make sure nothing is forgotten. At the Strong level, the character wants to know not only what he is responsible for doing, but what everyone else involved is responsible for, and what contingency plans are in place. Practicing the plan helps the character to feel confident with the endeavor. Without a plan the character must make an Ego Roll to improvise and take a non-defensive, independent action. At the Total level, the character is incapable of functioning independently without a plan. He can follow others and follow instructions given as direct statements, but he cannot be depended on to make independent decisions, or to follow more than one "If-Then" instruction at a time.
Must Help Those In Need
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character is driven to give aid to anyone in need. This can vary from feeding the hungry, sheltering the poor, treating the sick, rescuing the distressed, or freeing the oppressed. At the Moderate level, the character participates in passive methods of helping, such as giving to charities and performing volunteer work. At the Strong level, the character will become directly involved with the needy person's problems. For example, if presented with a battered wife, the character will become directly involved with helping her, possibly by removing her from the situation and maybe even confronting the batterer. At the Total level, the character goes searching for people to help. At this level the character's job is probably directly related to this Disadvantage (social worker, healing priest, vigilante, etc.).
Must Overcome Failure To Protect (Loved One)
Common, Strong 15pts.
This character has, in his past, suffered a devastating personal loss at the hands of a criminal, an accident that the character could have prevented, or some similar reason for the failure. The character feels that if he had only done something different, or had done whatever he did do better, things would be different. This event has shaped the character's entire life, causing him to become a crimefighter to make up for this previous failure. The loved one in question need not be dead, but certainly should not be easily accessible or in a normal state. (Comas, life sentences, quadriplegia, and severe brain damage are all examples of suitable substitutes for death). If the loved one isn't dead, he or she should be taken as a DNPC by the character. Whether or not the loved one blames the character for his or her current condition (if such feelings are applicable) is up to the GM.
Must Protect (Person, Place, Or Thing) From (Threat)
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character has a special attachment or feelings for a particular object, location, or person. The feelings might be patriotic pride in their homeland, love or admiration for another person, or an appreciation for the beauty or spiritual meaning of an object. To be valid, this (Person, Place, or Thing) must be threatened by some outside force or agency. For example, a character may have Must Protect Northern Ireland From English Aggression. In this case, the character would feel that Northern Ireland is endangered by the continual presence of the English "invaders", and would work to hamper the English whenever possible. On the other hand, an art lover might have Must Protect City Museum From Art Thieves. Such a character would, in his nightly patrols of the city, spend extra time making sure that no one was breaking into the art museum, and that no other harm was befalling the art stored therein (like a fire).
Must Prove He's Better Than (Person Or Group)
Common, Strong 15pts. / Common, Total 20pts.
This character is in some sort of competition or rivalry with another character or with an organization. The exact form, as well as the origin, of the competition or rivalry is up to the player. The rivalry may be based on ideology: In a superhero campaign, the character might be the son of an infamous villain, and now feels that he has to prove to the world that he is not his father. In an espionage campaign, the character might be a former member of a terrorist organization, and now feels he has to prove that the goals of the terrorists are wrong. Or the competition may be simpler in nature. Perhaps the character feels that he must prove that he is a better athlete than another player character. At the Strong level, the character must make an Ego Roll in order to resist pursuing the competition when given a chance to do so. At Total, the character cannot do so except in the direst of circumstances.
Must Prove He's Right
Common, Strong 15pts.
This character cannot stand it when others think he is in the wrong. He gets irritated when he is shown to be mistaken, and downright angry when he is contradicted but is right. Until he has been shouted down (when he is wrong) or manages to convince everyone that he is correct (when he is right), he will continue arguing until he runs out of breath or falls over dead, whichever comes first. In order to avoid acting in this manner, the character must make an Ego Roll. This Disadvantage works well with Headstrong and Stubborn.
Must Think Things Through When Things Go Wrong
Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This character has difficulty rebounding from failure. When plans go awry, or life becomes complicated, the character must have time to do some soul searching and determine what went wrong, why it went wrong, and how he is going to recover. Failure to take this personal time leaves the character extremely depressed and unable to function at their normal emotional and intellectual levels.
Mysterious And Enigmatic
Common, Strong 15pts. / Common, Total 20pts.
This character believes that the less anyone knows about him the better. He may work well with others (though most characters who take this Disadvantage also take Loner or Never Lets Anyone Get Close). He may even be a staunch member of an established team. Regardless, the character never reveals anything he doesn't have to. Thus, the character's identity, information sources, and abilities will be kept secret - and the character will go to great lengths to keep it that way. Characters with this Disadvantage tend to show up out of nowhere with crucial information and no explanations, and just as quickly vanish into the shadows. At the Strong level, this character can open up to others if it is absolutely necessary by making an Ego Roll. At Total, the character never opens up to anyone, even if he really needs to.
Naive
Very Common, Strong 20pts. / Very Common, Total 25pts.
This character is, in some ways, an innocent. He has a very simplistic view of the way the world works and how people act, and thus is easily taken advantage of. This Disadvantage is often complemented with others, such as Trusting and Gullible, but this is not always so. A character with this Disadvantage tends to believe everything he is told. If taken at the Strong level, the character can make an Ego Roll in order to not believe something that the player feels is patently false. Of course, the character isn't necessarily stupid. If what he is told is obviously bogus, there is no need for an Ego Roll and disbelief can be automatic at the option of the player.
Narcissist
Very Common, Strong 20pts. / Very Common, Total 25pts.
A character with this Disadvantage is self-centered. His only concerns are his own needs and activities. His motivation to do anything is only based on his individual self-interest. He will have exaggerated feelings of self-importance, and very likely is in love with his own body and looks. At the Strong level, the character can make an Ego Roll to realize he is being selfish and attempt to change his decisions. At the Total level, in all but the direst of circumstances, the character is too wrapped up in his own selfishness to ever notice that there might be something of more importance than his own goals and desires.
Narrow Minded
Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
A character with this Disadvantage lacks tolerance or breadth of vision outside his worldview or cultural perspective. He has a hard time not behaving with pettiness when his belief system is challenged. For those that hold the same belief system, he may be viewed as a "hard-liner", but for those that do not share his beliefs, or are not as stringent about them, he will often be seen as "old fashioned" and intolerant. The frequency of this Disadvantage is based on how often the character's belief system is going to be challenged. For example, Salogel is a wood-elf in a Fantasy Hero campaign based on Middle Earth that has this Disadvantage. If the campaign is going to mainly be based in Mirkwood, where most of the other wood-elves agree with him, then it should be taken at the Uncommon level. However, if Salogel is going to be campaigning in Gondor, where they do not care for wood-elves, much less what they think, this Disadvantage is going to have a greater frequency. At the Strong level, the character can attempt an Ego Roll to recognize that he is being narrow minded, and attempt to change his behavior. At the Total level, he doesn't care if he recognizes that he's being intolerant, facts are facts, he's right, and that's all there is to say on that.
Neat Freak
Common, Strong 15pts. / Common, Total 20pts.
This character is obsessed with maintaining a clean, orderly appearance and environment. He spends a great deal of time cleaning and organizing, and will be very nervous and anxious when in a messy or cluttered environment. At the Strong level, the character can make an Ego Roll to resist cleaning when presented with an environment below his normal neat standards. At the Total level, he cannot resist the urge, and spends much of his time "neatening up", much to his compatriots chagrin. A sure way to drive this character over the edge is to hang a crooked picture. He will not be able to resist the almost magnetic attraction to fix this wrong and make his world whole again.
Needs Someone To Love
Uncommon, Strong 10pts. / Common, Strong 15pts.
The character feels incomplete without a person to lavish his love on. Whenever he is without such a person, he will feel bad, and spend his time trying to find such a person. The frequency of this Disadvantage depends on how hard it is for the character to find someone to be loved, and how often he will be without them. If the character develops a steady long-term relationship, this will become Loves (Other Character).
Never Explains Himself
Common, Total 20pts.
The character believes either that his actions are self-explanatory, or that it is unnecessary for other people to understand them. Thus, explaining his actions or motivations would be a waste of time. Variants on this for slightly less points are: Never Explains Himself to Lesser Beings, or Never Explains Himself Until After the Fact. Appropriate Psychological Limitations to go along with this include Cold and Aloof, Control Freak, Detached From Humanity, Focuses on Current Activities to the Exclusion of All Else, Holds "Mortals" in Contempt, and Thinks He's a God.
Never Lets Anyone Get Close
Common, Strong 15pts.
This character keeps his privacy and his secrets. While he may have friends and companions, each of them would be surprised to realize how little they actually knew about the character. He has no deep romantic relationships, preferring short-term commitments and one-night stands because "its easier that way". If they do have long-term relationships, they are mostly one-sided. He may be affectionate and even loving, but he never reveals his true feelings. A superhero with this Disadvantage wouldn't tell even his teammates what his real name is, and wouldn't reveal his feelings or insights unnecessarily. The character can suppress his urge to keep people at a distance with a successful Ego Roll. This Disadvantage should not be taken with Loner, as it is already included.
Never Stops Talking
Very Common, Moderate 15pts.
This character cannot stop himself from talking. Once he gets started, he just keeps going, and going, and going. He will generally start on the subject of the conversation, but will quickly ramble into other areas as his speech follows his thoughts. A great example of this Disadvantage is the character Marshall Flinkman on the TV series "Alias". This Psychological Limitation, like all, is dependent on the player role-playing it properly. If the player is not willing or able to do this, then it should not be taken.
Never Stops Talking, And Never Talks Seriously
Very Common, Moderate 15pts.
A character with this Disadvantage cannot help themselves from talking on and on. The difference with this Disadvantage and Never Stops Talking is the character tends to joke and cut-up, instead of at least discussing the subject at hand. The character may be talking so as to cover up some other Disadvantage, such as being insecure. This Psychological Limitation, like all, is dependent on the player role-playing it properly. If the player is not willing or able to do this, then it should not be taken. Also, the role-playing of this Disadvantage could be disruptive of the overall gaming session (just as this Disadvantage is disruptive to the character's life), and should not be taken without the GM's understanding and approval.
No Imagination
Common, Total 20pts.
This character is unable to grasp things which aren't literal and in front of him. He tends not to be intuitive, and cannot easily "see" things that aren't real. His sense of humor is crude and low, and any complicated, multi-level story is lost on him. He doesn't see the point of books or movies, and is, on the whole, rather dull. The character unfortunately cannot break out of this mode of thought except possibly in the direst of circumstances.
No Longer Considers Himself To Be Human
Common, Strong 15pts.
This Disadvantage is only appropriate for a character who has some reason for believing that he is no longer human. Possible examples would be characters who have non-human appearances, characters with no real physical bodies, characters who are human brains in cyborg bodies, characters with powers and abilities that would disassociate them from common man (including characters who are so powerful as to be godlike, and thus come to believe that they are indeed gods), or characters who, for whatever reason, wouldn't be perceived as human by the common man on the street. Because of this separation, the character no longer believes that he is human. This doesn't mean he necessarily Considers Himself To Be A Monster, No Longer Identifies With Common Humanity, or Holds "Mortals" In Contempt (though any of these are possible). Generally, the character holds himself apart from common society. He sees the trappings of "human civilization", such as parties, movies, politics, etc. as being something he no longer has a need to bother with. (This separation may be reluctant or may be willful, depending on the player's whim and the character concept.) In order to force himself to take part in "human society", the character must first make a successful Ego Roll. This Disadvantage is not appropriate if the character started out non-human (such as an alien or an android).
No Longer Identifies With Common Humanity
Common, Strong 15pts.
This character has forgotten what it feels like to be a normal, everyday, run of the mill person. This is different from Detached From Humanity; the character is still capable of acting properly in social situations. It is just that the character has forgotten what it is to live a mundane life, with taxes, kids to raise, and so on. Thus, the character has a hard time understanding, accounting for, remembering, or accommodating the problems and desires of the "common man". Usually, the character has some idealized view of such things that may or may not bear any resemblance to reality. This Disadvantage is only appropriate for characters who no longer face the "needs of the common man". Examples include wealthy characters who also head multinational corporations or nations, anthropomorphic personifications of ideals (for instance, if the character were the Avatar of War), deities, or monsters. The character can force himself to avoid acting in such a manner by making an Ego Roll. This Disadvantage works well with Considers Himself To Be A Monster, Megalomania, No Longer Considers Himself Human, and Detached From Humanity.
No Regard For Human Life
Uncommon, Strong 10pts.
This character never considers the effects his actions will have on those around him. He will pursue his goals, heedless of the dangers to innocent bystanders, friends, or anyone. It is possible that the character simply doesn't see the harm he is doing, but it is more likely that he doesn't care. In order to avoid acting in this manner, the character must make an Ego Roll. Otherwise, such concerns simply never enter his mind. Note that this Disadvantage does not make the character Murderous or a Casual Killer, though both are possible. This Disadvantage works well with Amoral, Obsessed With (Person, Object, Or Goal), Megalomania, and Holds "Mortals" In Contempt.
No Respect For The Privacy Of Others
Common, Moderate 10pts. / Common, Strong 15pts.
This character generally feels he can stick his nose into whatever he wants. He feels no shame at pawing through another person's effects, or finding out and spreading another person's secrets. This attitude may not be conscious. It may be that the character simply doesn't realize he is acting in this manner. On the other hand, it may be that the character is knowingly and maliciously acting in a manner that destroys the privacy of another. In other cases, the character may feel that the "public" has a right to know the various secrets of others. This is sometimes known as the "Crusading Reporter" or "Paparazzi" Disadvantage. At the Moderate level, the character can avoid doing this when necessary. At Strong, the character must make an Ego Roll in order to do so. This Disadvantage works well with Curious.
No Sense Of Humar
Very Common, Moderate 15pts.
This character never gets the point of any jokes. He is not necessarily Grim and Humorless; the character merely doesn't understand humor. Naturally enough, such a character never makes jokes or uses sarcasm. The character can and does smile and laugh -- he just doesn't do so because of humor. It is possible, if the joke is patiently explained to the character, that he may understand it, despite the fact that the joke is basically ruined at that point.
No Understanding Of Emotions
Very Common, Total 25pts.
This Disadvantage is only appropriate for characters with non-human origins. Specifically, it is only appropriate for aliens, androids, and robots. Intelligent apes are emotional creatures, so this Disadvantage is not appropriate for them, either. A character with this Disadvantage doesn't know how to react when those around him become emotional, and doesn't know how to react when an emotional response is necessary. The character is not necessarily Emotionless, though they do work well together. The character doesn't know how to respond to humor when a joke is told; he doesn't know how to console a grieving person; and he doesn't know how to calm down an enraged person. Alternately, he also doesn't know how to recognize when laughing at someone is inappropriate, or how to temper his anger, or how to burrow through sorrow to find a reason for continuing. The character can only avoid acting in this manner under very extreme circumstances. This Disadvantage works well with Emotionless, as well as No Imagination.
Noblesse Oblige
Common, Moderate 10pts.
While this Disadvantage can be used in almost any genre, it is most appropriate for a setting that has a defined nobility or otherwise wealthy and powerful social class. This Disadvantage is only appropriate for characters that belong to that class. A character with this Disadvantage believes that those people of a station lower than his are incapable of watching out for themselves, and thus need someone of the "landed class" to take care of them, to protect them, and to give order to their lives. In return the common folk owe the nobles their unswerving obedience in all things, their loyalty, and the sweat of their brows. In addition, they never hesitate to chastise the common folk when they feel the common person has stepped beyond his place. They will be condescending to those who are not of their own (or a higher) social class. The character can suppress his natural urge to condescend when necessary.
Nobody Is Killing Anybody
Common, Strong 15pts.
This is a variation of Reluctant to Kill. The character is fully capable of killing without any hesitation whatsoever when it is, in his view, necessary. Its just that he firmly believes that it is not usually necessary. Whenever a situation looks like it will lead to bloodshed, the character will attempt to find a way to avoid violence by himself or others. He will also attempt to use the minimum violence necessary to resolve a situation and urge others to do the same. This character often takes skills that help negotiate tense situations diplomatically. In four-color campaigns, this is generally reserved for honorable villains or the shadier "neutrals". But in more violent, grittier settings it's easily a "good guy" Disadvantage.
Non-Aggressive
Common, Strong 15pts.
A character with this Disadvantage lacks the ability to initiate an assertive or bold action. He tends to wait for action or opportunities to come to him, and will avoid conflict whenever possible. This tendency extends to both combat and non-combat situations. A character with this Disadvantage will never initiate combat without making an Ego Roll first. However, this does not mean the character won't defend himself if attacked; he simply lacks the disposition to dominate over others.
Nosy
Common, Strong 15pts.
This Disadvantage is similar to Curious, in that the character has a prying or inquisitive disposition. The difference is that this character is inquisitive about personal matters that tend to not be any of his business. He has a habit of eavesdropping on conversations, perusing through other's personal items, and generally inquiring about matters that most would rather not share.
Not Above Using Dirty Tricks
Common, Strong 15pts.
This character believes that any means justifies his ends, and is willing to take any measures to reach his goals. This would include methods that would be considered unfair or "dirty" by others. Some examples include blackmail, ambush, throwing sand in the face, or even taking hostages or poisoning. A character with this Disadvantage should not take a conflicting Code of Conduct. Note that a character cannot take both this Disadvantage and Fights Dirty.
Not In Any Hurry
Common, Strong 15pts. / Common, Total 20pts.
"Haste makes waste" and "Everything in its time" could serve as mottos for a character with this Disadvantage. He seldom feels the pressure to hasten his actions, even when in time critical situations, perhaps believing that doing something right is more important than doing something fast. The character will behave in a very laid back manner, causing him to appear extremely calm or lackadaisical at times. This Disadvantage is different from Lazy in that this Disadvantage does not mean the character dislikes doing work; just that he prefers to do it at his own pace. At the Strong level, the character can make an Ego Roll to hasten his actions, if needed. At the Total level, the character is incapable of this, and the GM should take this into account during time critical episodes.
Not Satisfied With Killing His Opponents
Common, Strong 15pts.
This Disadvantage is not appropriate for any character with any compunction against killing. It is strongly suggested that this Disadvantage be restricted to the more Psychotic of villains. A character with this Disadvantage enjoys playing with his opponents before finishing them off. It is not enough just to kill them: the opponents must feel beaten and humiliated. He wants them to suffer before the end. Such a character will do such things as kill all those around his chosen victim, or will delay giving the opponent a "final blow" once victory is assured in order that the character can gloat. And once the character has slain the opponent, it is very likely that a character with this Disadvantage will abuse the corpse. Chopping it into pieces, hanging it in display for all to see, urinating or defecating on it, etc. This Disadvantage works well with Serial Killer, and Psychopath/Sociopath.
---
Obdurate
Common, Strong 15pts.
This character does not allow feelings to dictate or influence his decisions. Once making up his mind, no amount of persuasion or pleas, no matter how heartfelt or emotional, will convince him to change. He will probably be considered as being cold-hearted or inflexible by anyone having to deal with him. If needed, the character can attempt an Ego Roll to allow the pleas to crack through his stony surface and thus possibly sway him. A successful Ego Roll doesn't guarantee a change of opinion, only a reconsideration that includes emotions.
Obeys (Specific Leader) Without Question
Common, Total 20pts.
This character is completely loyal to one person, rather than an organizational hierarchy. The character will do whatever that person asks of him, within the limits of any other Psychological Limitations the character may have. Barring having Psychological Limitations against such actions, the character would gladly kill or die on the orders of the chosen leader. He can only disobeys orders given to him by that leader in the most dire of circumstances.
Oblivious To Authority
Common, Total 20pts.
This character doesn't recognize any group or government as having authority over his body, his actions, his beliefs, or his goals. He recognizes no laws as having authority over him, and disregards regulations of private bodies no less fervently. This is not to say that the character is a willful anarchist. He can and will comply with laws and regulations when he feels that doing so is necessary (at the very least, in order to have polite discourse). However, when he feels it is necessary to break such laws and regulations, he does so with no hesitation.
Offended By (Action Or Attitude)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
This character finds a specific set of actions or a specific attitude offensive. The number of possible actions or attitudes are innumerable, but some of the most obvious would be Offended By Racism or Offended By Willful Stupidity. An offended character tends to become angry in the face of the object of his offense. He feels the urge to stop the offending action, to punish offenders in some manner, and generally to end such actions or attitudes. In order to overcome such feelings of offense, especially when needing to interact with the offender, the character must make an Ego Roll.
Old Fashioned
Common, Moderate 10pts.
This character tends to view things as black and white. There is good and there is bad, and never the twain shall meet. In addition, there are certain things an person doesn't do, and certain things he does. This character rarely swears (and when he does, he does so mildly but for good reason -- and there are some words he never uses). He believes in the strengths of "God, Mother, Apple-Pie, and America". He is polite and respectful to his elders, believes in his government, and treats those weaker than himself (especially children) with care. Note that this does not necessarily mean the character is a Fervent Patriot, has a Code of Chivalry, or is either Protective of Normals, or Overprotective of Normals.
On The Edge
Common, Strong 15pts.
For this character, the stress of crime-fighting is starting to wear on him. Sometimes it seems that he doesn't care whether he lives or dies. He is not actively suicidal, but he does take unreasonable risks, make dangerous choices, and doesn't seem to care about the consequences of his actions until long after the fact. Each turn the character is in combat, he must make an Ego Roll in order to avoid making some form of pushed attack, or any other sort of extreme behavior of his choice. And when faced with a life threatening situation, he must make an Ego Roll in order to force himself to retreat.
Optimist
Common, Strong 15pts. / Common, Total 20pts.
The classic definition that shows the differences between a Pessimist and an Optimist is this: "An optimist believes that this is the best of all possible worlds. A pessimist fears that this is true." This character believes that everything will work out for the best in the end. At the Strong level the character would need some major bad thing happen (like having a loved one senselessly murdered) for his cheerful worldview to be shaken. At Total, his world view cannot be shaken. This Disadvantage works well with Cheerful Charlie. Also, an interesting variant to buying this Disadvantage off is to have it change into Depressive first, representing someone who has become disillusioned with life.
Outrageous Flirt
Common, Moderate 10pts.
This character flirts with anyone who even remotely qualifies under the character's standards of sexual attraction. If the character is heterosexual, for example, he flirts with every adult woman he meets (and occasionally flirts with girls who are on the edge of adulthood). In addition, the character flirts in a way that lets the person being flirted with know that the character is not serious or offensive. He flirts, but only for fun. The character can suppress his natural urge to flirt when necessary.
Outside Mentality
Common, Moderate 10pts.
The character's attitudes and beliefs are different from the majority of people in his culture for some reason, and sees himself as not fitting in. He may rue that he doesn't see things the way the majority do and feel left out, or feel superior and disdain the majority's culture. But he always sees himself as an outsider to normal groups in the majority culture. A character with this Disadvantage may also be Lonely or Arrogant; he may also be a Loner.
Overanalyzes Everything
Very Common, Strong 20pts.
This character is constantly looking for ulterior motives, deeper meanings, and hidden truths -- even if there aren't any. They find deep significance in every little thing -- or at least try to. This character believes that subtle meanings can be discerned where the general populace only sees the surface. The character tends not to act until he has thought out all possible permutations -- and since he sees layers upon layers of subtle consequences, there is a lot of them. In order to avoid acting in this manner for a short time, the character must make an Ego Roll.
Overconfident
Very Common, Strong 20pts.
This character believes himself to be more powerful, intelligent, or competent than he really is. The character uses this "inflated" view of himself when gauging potential threats, deciding plans, and combating villains. The character isn't necessarily Arrogant or Conceited, but he may seem so to another character who has a more realistic idea of what the Overconfident person's actual abilities are. This can be a tricky Disadvantage to play. The character should have to make an Ego Roll in order to act cautious in all but the most life-threatening situations. If the roll is failed, the player shouldn't consider the danger inherent in the situation, but rather should act as if he knew he could handle it. (Who knows -- maybe he can!)
Overdrive
Frequently, Slightly 10pts.
This disadvantage might well be called Super-Hyperactive. It is most appropriate for Speedster characters in a super-hero setting. The character's body is in Overdrive, and it is utterly impossible for him to sit still for more than a few seconds, and he suffers from a sort of "speedster's palsy" that makes careful manipulation of objects impossible (-2 to all appropriate Dexterity rolls) or even speak clearly so that other people can understand him (the character speaks so quickly that others must make Hearing PER rolls to understand what he is saying). Lastly, the character burns through any positive Adjustment power (such as Aid or Absorption) in half the normal time (for example, instead of losing 5 points worth of Aid every turn, the character loses 10 points).
Overly Cautious
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character likes to be prepared and consider every possible risk before embarking on some action. He checks everything out, tries to cover every possible outcome, and tends to make plans upon plans. He is not the type to rush headlong into danger without first considering every angle and coming up with a plan to cover it. This is not the same as being a Coward; a character who is Overly Cautious may be as brave as anyone else. The difference lies in that the character with this Disadvantage does not see any benefit at all to going unprepared. At the Moderate level the character can suppress his natural urge toward caution when necessary. At Strong, he may only do so with an Ego Roll. And at Total, the character can only do so in the most dire of circumstances. It is suggested that player characters not take this Disadvantage at any level stronger than Moderate.
Overly Dramatic
Common, Moderate 10pts. / Very Common, Moderate 15pts.
This character tends to act as if things were more intense than they seem. When one of their friends is in trouble, they put on a show of concern that convinces everyone that this person is more concerned than anyone else. They are never just "in love", but are "passionately, devotedly in love". In short, the life of this character is a soap opera. At the Common level the character only gets dramatic about important issues in their lives. At Very Common, they get dramatic about everything. In either case, they can suppress their natural urge towards melodrama when necessary.
Overly Protective Of (Group, Person, Place, Or Object)
Common, Strong 15pts. / Common, Total 20pts.
This character feels that he has a duty to protect a group, a person, a place, or an object. The difference between this Disadvantage and Protective of (Group, Person, Place, Or Object) is that in this case the object of the character's protective feelings can usually do just fine protecting itself, and isn't always appreciative of the character's protective feelings (in the case of groups or people), or has enough protection to be almost inherently immune to any threat (in the case of a place or object). The character will always act to protect the focus of this duty before all other actions (including seeing to his own safety or fighting an opponent). The character will never take any actions that would endanger the focus of his protective urges, and will sharply rebuke those who do. At the Strong level the character can suppress his urge to be protective should the situation warrant it (like a case of "the good of the many outweigh the good of the few", for example) and he makes an Ego Roll. At Total, he can suppress his urge only the most drastic of situations, and even then he will look for a way to do something to save the day.
Pacifist
Very Common, Strong 20pts. / Very Common, Total 25pts.
This character will not fight; the thought of harming another sentient being is repulsive to him. This Disadvantage is closely related to Will Only Fight In Self Defense and Reluctant to Injure. At the Strong level the character can make an Ego Roll in order to force himself to harm another. At Total, the character will never raise his hand in anger at another being. Note that a Pacifist> may still be very, very good at combat. Consider the example of Kwai Chang Kane, played by David Carradine in the 70's television series "Kung Fu". In that series, Kane would do everything possible to avoid a fight -- but when it came time to throw down, he put people in the hurt locker.
Panics When Certain Conditions Exist
Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
This character falls to pieces when placed in a certain situation. The frequency of this Disadvantage depends on how often the character encounters the situation. Regardless of frequency, a character who takes this Disadvantage at the Strong level must make an Ego Roll to be able to act in any sort of controlled manner when subject to the trigger situation. At Total, the character loses complete control and cannot act rationally when subject to the trigger situation. This Disadvantage does not exist at a lower strength than Strong.
Paranoia
Very Common, Strong 20pts.
This character is just slightly out of touch with reality. He believes that "they" are watching him, interfering with his life, and perhaps even trying to kill him. Who precisely "they" are is up to the player, but usual candidates are the IRS, the CIA, the FBI, the local cops, Microsoft, the tobacco companies, the Feminists, the Communists, the Nazi's, aliens, Republicans, Democrats, the phone companies and the Roman Catholic church. This character trusts no one except very, very close friends, and he keeps an eye on them just in case. This Disadvantage works very well with Delusional. And please note that just because you are paranoid doesn't mean that they aren't really out to get you.
Passionate About (Subject)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
This character is emotionally involved about a certain specific subject. When talking about this subject, he speaks emphatically and with great emotion. When acting toward this subject, he does so with verve and zest. His enthusiasm for the subject seems boundless, and he never backs off of it if he can help it. The frequency is determined by how common the subject is. In order to avoid acting in this manner, the character must make an Ego Roll.
Perfectionist
Common, Moderate 10pts. / Common, Strong 15pts.
This character has to have everything just right, all the time. He is driven to succeed at all times, and feels that failure is not an option. Because of this, the character becomes unwound when things stray from his carefully set plans, or if he fails at a given task. (For that matter, the character becomes unwound if he doesn't succeed as greatly as he expected -- second place is as good as last for this character). At the Moderate level the character can resist being disturbed when things are not as he plans them to be when necessary. At Strong, the character cannot do so unless he makes an Ego Roll.??This Disadvantage works well with Control Freak.
Perpetual Boredom
Uncommon, Moderate 5pts. / Common, Moderate 10pts. / Very Common, Moderate 15pts.
This character suffers from a lack of interest to participate in certain activities. When forced to perform these activities he will appear weary or restless. Any results or production from or during the activity can be expected to be substandard. The player should define what activity bores the character, and while having to participate in that activity the character suffers a -2 to Skill Rolls. The frequency of this Disadvantage reflects how often the character has to participate in this activity. For example, Stan Starling, Private Eye extrodinaire, is on a stake out waiting for a mook to leave the Lucky Lady Casino and Bar. Because Starling is a man of action, his player took this Disadvantage, specifying stakeouts. Starling would rather be mixing it up inside the bar than cooling his heels outside. Stakeouts, however, are a common task for P.I.'s, so it was agreed that this is a Frequent ocurrence. The mook slips out a side door, into a waiting car, and the GM has Starling make a Perception Roll (at -2) to notice. He fails, missing the target slipping away. Hopefully Starling has another lead he can run down. As demonstrated, this Disadvantage does not prevent the character from doing the boring activity, but does reflect that he will not do as efficient a job because of his restlessness.
Pessimist
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Common, Moderate 10pts. / Common Strong 15pts.
The classic definitions of both Pessimist and Optimist is this: "An optimist believes that this is the best of all possible worlds. A pessimist fears that this is true." Seriously, a Pessimist believes that nothing works out for the best, and usually believes in Murphy's Law. The frequency and strength of this Disadvantage determines when and how badly the character feels pessimistic. At Uncommon frequency, the character generally feels pessimistic only about something very important. At Common, the character gets pessimistic any time anything good might happen for the character. At Moderate intensity, he is able to "shake off" his "bad feeling about this" if necessary. At Strong, the character can do so only with an Ego Roll. It is recommended that player characters not take this higher than Uncommon, Strong; otherwise, the character would be too annoying to the other players. This Disadvantage should not be taken with Low Self Esteem. A character should take Depressive instead of both of those. Also, this Disadvantage should not be taken at a Very Common frequency or a Total strength -- the character should have Fatalistic instead.
Phobia
Common, Strong 15pts. / Common, Total 20pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
This is a morbid fear or hatred of something. The phobia's focus can be almost anything -- a person, a place, an object, a situation, etc. Most players know about the fear part but not the intense hatred. A Phobia manifesting as hate adds a new twist to situations and helps define a character's personality. It's the difference between a servile person and a revolutionary. A Phobia is usually one of two types: background or inherent (these categories have no real world psychological or psychiatric basis). A background Phobia comes from a traumatic experience in the character's past. A background Phobia can also explain another Disadvantage, a special ability, or both. An inherent Phobia is one that is just there. For example, many children develop Lachanophobia (fear of vegetables) sooner or later. They don't like to eat or even look at them. Did a carrot-wielding maniac attack them? Probably not. They just don't like them, and like most childhood fears, they usually grow out of it. A Phobia controls a character's action, behaviors, and reactions when confronted with the focus. It can be as simple as trying to avoid the focus or as complex as plotting the death of a person's entire family. This sounds a little like Seeks Revenge, but it isn't. Seeks Revenge is target specific. When a character sees their family killed, he seeks vengeance against the person who actually killed them. But a phobic will not stop until everyone who is remotely associated with the focus is dead. Seeks Revenge stems from a single incident. A Phobia has to develop over time in contact with the focus. A revenge Disadvantage can be bought off or shifted to something related when the target is dead. A Phobia cannot be bought off. A character with an "Intense fear and hatred of left handed people" will not be happy until there are none left, anywhere. Anyone who has read George Orwell's 1984 remembers how Winston Smith's fear of rats was used against him. Torture is just one way a character can be manipulated by his Phobia. A NPC who knows about the Phobia, can use it to his advantage. An arch-villain can threaten a helpless partner or loved one with the focus of the Phobia. The possibilities are endless for a devious GM. There are quite literally hundreds of different specific Phobias. In the real world, the two most common are Acrophobia (fear of heights) and Claustrophobia (fear of enclosed spaces). Some are obvious (such as Dentophobia, the fear of dentists), some are unusual (such as Gymnophobia, the fear of personal nudity), while others are utterly bizarre (such as Arachibutyrophobia, the fear of getting peanut butter stuck to the roof of your mouth). When creating a character with a Phobia, the player and GM must decide how common the focus of the Phobia is and how intense the character's reaction to it is. The point value depends on these two factors.
Politically Conservative
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Common, Moderate 10pts. / Common Strong 15pts.
This character believes that the philosophy of conservatism is best applied to government. Conservatism can be described as being disposed to maintaining existing views, conditions, or institutions, and being opposed to sudden or drastic changes in traditional norms. How this manifests itself will vary based on the campaign. For example, in a game set in 19th century Japan, this character would be one who supported the traditional views of Bushido, and opposed the opening of the country to outsiders or the introduction of gunpowder as a weapon. Or, in a science-fiction campaign, this character would support the Empire and oppose the idea of self rule for the colonies located in distant star systems. This Disadvantage should only be allowed if the character's political leanings are going to be challenged or otherwise affect the character's life or livelihood. Your traditional dungeon crawl seldom challenges a character's political leanings, and this Disadvantage would not be appropriate in that type of campaign. How often or how far out of the norm the character's beliefs are determine the frequency of this Disadvantage. How strongly the character holds this belief determines the level of commitment for this Disadvantage. Anything higher than Strong commitment should consider taking Intolerant instead. This Disadvantage should not be taken with Politically Liberal, since they are opposing viewpoints.
Politically Liberal
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This character believes that government should be used for the better of all its citizens. The government should be empowered to make sure that the wealth and opportunities are distributed to all the citizens equitably. He would be in support of government programs that provided assistance to the poor or disenfranchisees, and support politicians who share these views. Examples of such programs would include welfare for the poor, a progressive tax system, affirmative action, set-asides, and quotas. At the Moderate level, the character has these beliefs, but does not take an active role to further them. He will vote to support liberal candidates and measures, and possibly prefer to receive his news from "liberal" sources. At the Strong level, the character is outspoken about his belief. He will argue for his beliefs, donate money to appropriate causes, and occasionally participate in sponsored events. At the Total level, the character is a liberal activist. He takes a leading role in a liberal organization that tries to further the liberal agenda, and attempts to recruit others to his political views. This Disadvantage should not be taken with Politically Conservative, since they are opposing viewpoints.
Post-Combat Shakes
Uncommon, Moderate 5pts.
This character has to take some time after combat to "calm their nerves". This is usually caused by a high level of adrenaline still being in the character's system. Until his body can neutralize the adrenalin, the character's body shakes uncontrollably. The character must rest for a few minutes before he can perform any action that requires fine motor control. A character can make an Ego Roll to try to force himself to calm down.
Post-Traumatic Stress Disorder
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character has experienced an extremely traumatic event in his past. Things that would trigger memories of the event can actually cause the player to feel like they are reliving the experience. Things that could trigger a memory could be smells, sounds, photo's, or being in a similar situation. At the Moderate level, the character suffers from nightmares and may grow depressed when reminded of the event. At Strong, the character has a hard time forgetting the experience, and lives in a constant state of depression as he relives the events. At Total, the character may actually have hallucinations about the event and could hurt himself or others subconsciously. At all levels, the character may have to take prescription medicine to relieve symptoms.
Power Hungry
Common, Strong 15pts.
This character is addicted to having power over others. He is always on the lookout for ways to increase the amount of control he has. If he is given an unethical opportunity to increase his power, he will take it unless he makes an Ego Roll. Such chances can include sabotage, blackmail, or plain old cheating. Promotions only satisfy him for a short time though, as there is always more and more power to be had in the world.
Practical
Very Common, Strong 20pts.
This character is a pragmatic, matter-of-fact person. He proceeds through life in a sober, down-to-earth manner. Because of this, he may have a hard time "thinking outside the box" and an equally hard time believing in or agreeing to things that are unproven or new. This Disadvantage is present in all aspects of the character's life, from the shoes he wears, to the car he drives, to how he responds to new discoveries. While the character is capable of accepting change, he insists that it must be done in a steadfast, methodical method that allows the character to understand and accept the change.
Prankster
Common, Moderate 10pts.
This character is a practical joker. He loves humor, and loves playing tricks on others. However, the jokes are never deliberately cruel or harmful, and he would never do something of that sort to someone else. In some cases, the jokes are simple, and in others they are complex, requiring months of set up. Regardless of the joke, the character loves pulling them. The character can stop pulling practical jokes when necessary.
Preachy
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character feels the persistent need to share his own personal moral code with others, and if possible convert them to it. It is not enough for him to say "I believe in thus and so", because the character also believes that others should too. The most obvious example of this would be a devout Christian, who not only believes that God wants him to tell other people about his faith, but convert them as well (whether they want to be converted or not). At the Moderate level the character can keep himself from acting in this manner when necessary. At Strong, the character can only do so if he makes a successful Ego Roll. And at Total, he cannot do so except under the most extreme circumstances.
Prefers Chaos And Disorder
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This Psychological Limitation is only appropriate to villains. The character is never happier when things are confused and disorderly. When the situation is bad, this character finds a way to make it just a little worse, because that's the way he likes it. This limitation includes the Troublemaker disadvantage.
Prefers Diplomacy To Force
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character believes that violence should be used as a last resort. Known to science fiction fans as Picard's Disease, this Disadvantage does not mean that the character won't ever resort to violence, or that he is bad at fighting. It simply means that he will use talk and discussion to try and resolve problems before fighting. At the Moderate level the character can fight before talking if necessary. At Strong, the character must make an Ego Roll to do so. And at Total, the character will always talk before fighting except in the most dire of circumstances.
Prefers Direct Approach
Common, Strong 15pts.
This character does not believe in subtlety when dealing with a problem. The best way to deal with problems is to meet them head on, the strong or righteous will overcome any problem. When presented with a choice on how to deal with an issue, the character will always pick the most direct manner to completing the task, and must make an EGO Roll to agree to any other method.
Prefers Not To Kill
Common, Moderate 10pts.
This one indicates that the character is willing to use lethal force when necessary -- but that is still very, very rare in the character's opinion. The character does have moral objections to killing, but realizes that sometimes it may be necessary. Such a character is willing to fight and do injury, but in a moment where the decision is "Kill/Don't Kill", this character will always choose "Don't Kill", unless the situation is such that not killing is clearly the worse of two evils. At that point, the character will not hesitate before killing. In four color superhero games, this Disadvantage should be restricted to Villains. In more lethal settings, such as military campaigns, or post-holocaust scenarios, this might be the default attitude for "good guy" characters. In such cases, the GM should watch the player like a hawk to make sure the Disadvantage is being roleplayed correctly. It should not be used as an excuse for a murderous character.
Prefers The Direct Approach
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character believes that actions speak louder than words, and that the best way to troubleshoot is to shoot the trouble. Known to science fiction fans as Worf's Lament, this Disadvantage does not mean that the character won't ever rely on talking, or that he has poor interpersonal skills. It simply means that he will be in favor of the more aggressive option when trying to resolve problems. At the Moderate level the character can talk before fighting when necessary. At Strong, the character must make an Ego Roll to do so. And at Total, the character will always resort to force first except in the most dire of circumstances.
Prefers To Go Armed
Common, Strong 15pts.
This character never feels comfortable unless he is packing his weapon of choice. A trip to the corner market cannot be completed until the character is locked and loaded. This could place the character in a difficult position, depending on the local laws. If in a situation where the character should not carry a weapon, he must make an Ego Roll to leave his trusty weapon behind and not try to sneak it through.
Prejudiced Against (Group)
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Common, Moderate 10pts. / Common, Strong 15pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts.
The character holds a negative opinion of a group (those of a different skin tone, different political beliefs, belonging to a different species, etc.) and applies it to everone in that group, regardless of their actions. Generally, the character believes that the object of these feelings is inferior, or engages in behavior that he finds repulsive. Note that this Disadvantage is not quite the same thing as Hates (Group), since many prejudiced people can be quite amiable towards the object of their prejudice, so long as it "knows its place." The frequency of the Disadvantage should be determined by the GM based on how often the character will be dealing with beings he's prejudiced against. At the Moderate level, the character can put aside his normal opinions (at least on an individual basis) when he truly needs to. At the Strong level, the character finds it much more difficult to put aside his normal beliefs. A strongly prejudiced character may also have a negative Reputation Disadvantage with regards to the group he's prejudiced against. This is not considered a particularly heroic Disadvantage, and player characters should not take it above the Moderate level.
Pretending
Common, Moderate 10pts. / Very Common, Moderate 15pts.
The character wishes to mimic a (usually desirable) character trait without actually possessing it, so that he may be viewed positively by others. Thus, he spends a fair amount of time pretending to have that trait. For example, a person who Pretends to Have a Code vs. Killing will publicly state his opposition to killing, and will refrain from doing so in the presence of others. But if he believes himself unobserved and not likely to get caught, he may go ahead and kill when it's convenient for him. This can also be applied to certain Physical Limitations, such as Pretends He Cannot Walk.
Private/Hates Public Exposure
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character hates being in the public eye. He prefers to work in the shadows -- or failing that, never gives interviews, appears at public functions, or gives testimony in court if he can help it. This does not necessarily make him a Loner or Antisocial; he just likes his privacy. He may well have close friends and teammates. This character hates being mentioned in the news, hates being questioned by police, and would love it if the world would just let him be to do what he does. At the Moderate level the character will appear in public if necessary. At Strong, the character must make an Ego Roll in order to force himself to not avoid public exposure. And at Total, the character will only do so in the most dire of circumstances.
Prone To Depression
Uncommon, Strong 10pts.
This character can become Depressive when things go wrong (or stay wrong for too long). The character doesn't always react in this manner (for instance, if dinner is ruined or if he gets a flat tire); its when things get to an intolerably stressful level that the character tends to become depressed. At such times, the character must make an Ego Roll to avoid entering a depressive period.
Prone To Violence
Uncommon, Strong 10pts.
This character can become violent when things become too stressful or when he is angry. The character tends to lash out violently at the cause of his stress or anger, regardless of how he may otherwise want to react. Whether he uses verbal or physical violence is up to the character. At such times, the character must make a successful Ego Roll in order to avoid becoming violent.
Protective Of (Group, Person, Place, Or Object)
Common, Strong 15pts. / Common, Total 20pts.
This character feels that he has a duty to protect a group, a person, a place, or an object. The character will always act to protect the focus of this duty before all other actions (including seeing to his own safety or fighting an opponent). The character will never take any actions that would endanger the focus of his protective urges, and will sharply rebuke those who do. At the Strong level the character can suppress his urge to be protective should the situation warrant it (if its a case of "the good of the many outweigh the good of the few", for example) by making an Ego Roll. At Total, he can suppress his urge to be protective only the most drastic of situations, and even then he will look for a way to do something to save the day.
Proud Of Himself
Common, Moderate 10pts.
This character has moments in which he holds himself in high esteem. This is not the same as Egotistical or Arrogant, as the character generally only has these feelings on those occasions when he has done something worth being proud of. At these times, however, the character can get almost insufferable. The character can control his urge to preen and primp when necessary.
Proud Of His Ignorance
Common, Moderate 10pts. / Common, Strong 15pts.
This person either did not get a formal education, or dropped out of it as quickly as possible. But unlike the person who is Ashamed of His Poor Education, the one who is Proud of His Ignorance takes his lack of book learning as a good thing. He believes himself to be a success in his field of endeavor because of, not in spite of, having a diploma. He will deride those with more education ("College Boy"), discourage his children and neighbors from pursuing education, and be firmly against new or improved schools. While this attitude is stereotypical of backwoods farmers, it can also be seen in inner-city gangbangers. At the moderate level, this person can choose to take advantage of someone else's learning if he sees that it will immediately benefit himself. At the Strong level, he must make an Ego Roll to do the same. It is recommended that Player Characters not take this Disadvantage above the moderate level. Many people with this Disadvantage are Illiterate (though some are simply Alliterate), Other Psychological Limitations that often come with this one include: Distrusts Modern Science (particularly agriculture and medicine), Superstitious and Xenophobic. Distinctive Feature: Uneducated Accent is also common. A lowered Intelligence score is not required, but will often be assumed by other people.
Prude
Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This character very conservative views about sex and sexual behavior. He believes that sex is something that should happen in private, between a man and his wife, preferably with the lights off. He does not hold with "modern perverse thinking" that seemingly allows any sort of sexual behavior to go on right out in public. At the Strong level the character must make an Ego Roll in order to avoid reacting in this way to sexual behavior (even such mild sexual behavior as kissing in public). and at Total, the character will only be able to do so under the most extreme of circumstances.
Psychopathic/Scociopathic
Common, Total 20pts.
This character has a clear and lucid understanding about the world, with the exception being his view on how the world interacts with himself. In general, the difference between these two problems is this: the Psychopath cannot tell the difference between right and wrong, good and bad, and thus acts in accordance to his own wants and desires. The Sociopath can tell the difference but just doesn't care because the normal rules of "good and bad" don't apply to him (he has his own set of rules that he applies to the world, whether the world wants them applied to it or not). Thus, both types are free to pretty much act as they wish. This Disadvantage precludes the character from having any sort of moral compunction against violence or criminal behavior. These two problems are not quite identical, but for the purposes of this list, they are being treated as a single entry. This Disadvantage is clearly only appropriate for villains.
Publicity Seeker
Common, Strong 15pts.
This character likes to read about himself in the newspapers, and see stories about himself on the television. He is not necessarily a Glory Hound, (though this might be considered a mild form of it); he is quite willing to share the credit for his accomplishments, or even give it away if its appropriate. He just wants his name to be known. In order to avoid acting in this manner, the character must make an Ego Roll.
Pushes Everything To The Limit
Common, Strong 15pts.
This character is obsessed with seeing how far he can take things before breaking them. He drives his car in the red zone, plays his stereo until the walls vibrate, and challenges his boss to the point of insubordination. He thinks that the only excitement to be had is out on the razors edge. When combined with Disadvantages like Impulsive or Thrillseeker, the result is often a fatal concoction of destructive behavior.
Pyromania
Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This character is fascinated with fire. He loves watching things burn, and consequently loves setting things on fire. At the Strong level the character can make an Ego Roll to resist his urge to burn things or to stand and watch a fire. At Total, only the most dire of circumstances have a chance of modifying the firebug's actions. It is strongly recommended that Player Characters not take this Disadvantage.
Quick To Fall In Love
Very Common, Strong 20pts.
This character falls deeply in love easily, after only a short period of time. This is not an instantaneous phenomena; the character must date or otherwise associate with the object of his affections before falling in love. The difference being that this character does so after, say, two weeks of dating, whereas a "normal" character might require six to eight. Once in love, the character acts as if he has the Loves (Other Character) Disadvantage (for no points). In order to resist falling in love, or to "break out of it" after he has fallen in love, the character must make an Ego Roll. Even then, the experience should be handled through roleplaying, rather than resolved by a simple die roll.
Quick To Resent
Common, Strong 15pts.
This character quickly comes to hate people who, in the character's opinion, treat the character badly. Whether or not these feelings are justified, the character almost feels that certain specific people are out to get him, so he will return the favor. In order to avoid acting in this manner, the character must make a successful Ego Roll. This Disadvantage works well with Loner, Prone to Violence, and Moody.
Quiet And Mysterious
Common, Moderate 10pts. / Common, Strong 15pts.
The character disdains drawing attention by being loud and boisterous, and he also prefers to keep his actions and motivations a secret from others. This may be because he doesn't feel comfortable working with others, or due to a belief that his motivations would be disapproved of. At the Moderate level, the character can choose to speak up and reveal information if it is essential to do so; at the Strong level the character will find it much more difficult to break the normal pattern of behavior. A character with this Disadvantage will likely be a Loner, and often have the Social Limitation: Seen as a Cold Fish. He may also have a Harmful Secret.
Quiet And Withdrawn
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character is easy to overlook; he rarely speaks to others and when he does it is only to answer or ask a direct question. He prefers to be alone, and avoids being the center of attention. This is not the same thing as being Shy or being a Loner (though it does work well with either). The character can function in the public eye, and can easily associate with others should circumstances warrant. But once the circumstances are over, the character fades back into the woodwork. At the Moderate level the character can force himself not to act in this way when necessary. At Strong, the character can only do so if he makes an Ego Roll. And at Total, he cannot do so except under the most extreme of circumstances.
Quirk
1 pt. each
Originally used in the GURPS game system, these are little, one-point Disadvantages that are intended to add a touch of color to a character. They are basically Psychological Limitations that aren't worth points because they have almost no long-term affect on the character. Always Wears A New York Yankees Baseball Cap When In His Civilian Identity or Always Says 'Great Googaly Moogaly' When Surprised Or Troubled are good examples of this Disadvantage. The best thing about this Disadvantage is that it doesn't have to be enforced that much. (If the character ditches his Yankees baseball cap because he's going to a formal party in a tuxedo, that's fine). For GM's familiar with GURPS and Quirks, It is highly recommend allowing them in Champions. They're fun as long as you don't let them get too goofy, and they are a great way to pick up one or two Disadvantage points that you might need to balance your character. Often, these are treated as a seperate category, in which case they don't reduce the amount of Psychological Limitations that a charcter may take. However, It is advised that the GM put some limits on how Quirks may be purchased. The most common ways are either limiting the character to five or less, or requiring that the character take exactly five.
Racism
Common, Strong 15pts. / Common, Total 20pts.
This character hates and disdains members of a specific ethnic group. When interacting with members of this ethnic group, the character becomes hostile, arrogant, and condescending. If the "offensive" person angers the Racist, violence may result. If this Disadvantage is taken at the Strong level, the character can make an Ego Roll in order to peaceably interact with members of the particular ethnic group. But at Total, the character cannot do so except in the most dire of circumstances. This Disadvantage is a more specific form of Prejudiced Against (Group), which covers any sort of group whatsoever. Please note that "Jewish" is not a race, but a religion (it is impossible to "convert" to a different race...), and thus Anti-Semitism is not a form of Racism. If for some bizarre reason you wish to have a character have Anti-Semitism as a Psychological Limitation, the character should take Prejudiced Against (Group) and not Racism. Naturally enough, this Psychological Limitation is only appropriate for villains.
Reckless
Common, Strong 15pts. / Common, Total 20pts.
This character hates talk and debate. Planning ahead is for cowards and wimps, while straight action is the way to succeed. When alone, the character will always act first and think later. In a group, when everyone else wants to stop and discuss or plan something, this character will quickly put in his two cents worth - quickly, that is, if he puts it in at all - and then do something. At the Strong level, the character can force himself to wait and think things through if he makes an Ego Roll. At Total, he can only think first in the most dire of circumstances which endanger not only his life, but also the lives of others.
Reckless In Combat
Common, Strong 15pts. / Common, Total 20pts.
This character never contemplates the possibility of danger or injury while he is in a fight. He will take foolish chances, continue fighting long after he should have retreated, and pull stunts that any reasonable person would never dream of. Such a character does not take the safety of those around him (supers or normals) into consideration, and thus can be as much of a danger to himself and those around him as he is to his opponent. At the Strong level, the character can resist his urges and consider the danger of combat if he makes an Ego Roll. At Total, the character can only modify this behavior in the most dire of circumstances.
Reclusive
Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
This character prefers to be withdrawn from society. He does not care to socialize with other people, and will spend most of his time alone in his house/cave/orbiting space station. Anyone requiring the character's assistance will have to seek him out at his sanctuary, and then convince him that there is a valid reason to reenter the world. The intensity of this Disadvantage reflects how reclusive the character is. At Moderate, the character prefers to be alone, but can enter society, albeit awkwardly. At Strong, the character is a hermit who has an irrational fear or distast of interaction and will not leave his sanctuary without having a good reason and making an Ego Roll. At Total, the character will never willingly leave his sanctuary, and only the most dire of circumstances have a chance of getting him to change his mind.
Recovering Alcoholic
Common, Moderate 10pts. / Common, Strong 15pts.
This Disadvantage is a special variation of Addicted To (Substance or Activity). This character is a person who, through discipline, support, and therapy, has managed to come into some amount of control over their addiction to alcohol. They still want to drink, but don't. At the Moderate level the character can easily resist alcohol when it becomes available. At Strong, the character must make an Ego Roll to do so. There is no Total level of this Disadvantage, as that would just be Addicted To Alcohol.
Recurring Nightmares
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
This character suffers from nightmares that have the same theme, or even the same nightmare, repeated over and over. The reason for the nightmares can vary, from subconscious memories of a traumatic event, to demonic beings preying on his mind, to the side affect of some futuristic neural implants. The frequency of this Disadvantage reflects how often the character has these nightmares. At the Common/Very Common and Strong/Total levels (i.e., nothing with Moderate or Uncommon), the character suffers all the effects of Insomnia, and thus cannot also take that Disadvantage. The severity of this Disadvantage determines how the character reacts to his nightmares. At the Moderate level, he is cranky, upset, and generally disturbed by the dreams, but suffers no significant side affect from them. At the Strong level, the character is severely affected by the nightmares, and suffers a -2 to all Intelligence and Ego based skills until he calms down. At the Total level, the nightmares are overwhelming to the character. His fear of these night terrors are so great that he will take extrodinary measures to avoid sleeping. It is very likely at this level that the character's fear of the nightmares will cause him to be institutionalized. It is also not uncommon for people with this level of fear to die of fright during one of his night terrors. The Total level is not appropriate for a PC without prior GM approval.
Refuses To Back Down
Common, Strong 15pts. / Common, Total 20pts.
The character believes that once he has made a statement, or taken a position, it would be an act of cowardice to retract that statement or abandon the position. Thus, he will not do so, regardless of social or physical threats against him. Characters with this Disadvantage get into fights a lot, because they cannot de-escalate tense situations on their own. They make horrible diplomats but wonderful rearguard warriors. At the strong level the character can make a strategic withdrawal if it is conclusively proven he is wrong, or if he is given some way to save face by a third party. At the total level of commitment, the character never, ever backs down. The Common, Moderate version of this Psychological Limitation is called Sticks To His Guns and is worth 10 points.
Refuses To Confront His Mistakes
Common, Strong 15pts. / Common, Total 20pts.
This character has, in his past, made a large and campaign-affecting error. He believes that the best way to deal with the mistakes he has made is to not deal with them. The worse the mistake, the less he is inclined to deal with it. Especially bad mistakes (such as those which resulted in the death of an innocent bystander) are most avoided. Generally, the character refuses to face the consequences of his actions. This is not the same thing as Believes He Can Do No Wrong; the character is well aware of the fact that he messed up. He either doesn't care about what has happened, or feels so guilty about it that he can't talk about it to anyone. This Disadvantage works well with Arrogant, Conceited, Overconfident, and/or Unsure of Self.
Refuses To Follow Orders
Common, Strong 15pts. / Common, Total 20pts.
This character is insubordinate and argumentative when it comes to being told what to do. He does what he thinks is best, and looks down on those who constantly toe the line. He views them as "goody-two-shoes", "brown-nosers", or "bossess pets". This character won't necessarily break the law, or be an ultimate anarchist, he just really hates taking orders. This Disadvantage is different from Hates Being Told What To Do. That character won't listen to anyone, this character merely resists orders from "superiors". At the Strong level, the character can suppress his natural urge to refuse if he makes an Ego Roll. At Total, only the most dire of circumstances have a chance of overriding the character's natural inclination to refuse to follow orders.
Regrets What He Has Become
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character is sorry for the behavior that has brought him to his current status. This is a common trait of characters searching for redemption. Examples of characters that might have this Disadvantage would include the crimelord who wants to get out of the business, or the vigilante who has taken things too far and discovers he is no different than the criminals he punishes. Characters with this Disadvantage usually do not realize they have taken a wrong turn until its too late, then they must take extrodinary measures to redeem themselves. The severity of this Disadvantage reflects how deeply the character feels regret. At the Moderate level, he feels guilt for his actions, but not enough to take any redeeming actions. At the Strong level, he greatly regrets his past, and will actively work to redeem himself of his past behavior. At the Total level, the character has so much regret that he will be self-destructive in his seeking of redemption, believing his destruction is the only way to atone for his past actions.
Relates Everything To His Favorite TV Show
Common, Moderate 10pts. / Common, Strong 15pts.
This character has an unhealthy facination with a television show, and he tries to make comparisons between the show and real life whenever possible. These range from applying the theme of a show to his real life behavior (to boldly go where no man has gone before) to relating reality to events in the show (this is just like the time Buffy had to kill this vampire). At the Moderate level, the character can make the distinction between real and fiction, behaves like a rabid fanboy, and is mostly an odd annoyance with his obsession. At the Strong level, the distinction between reality and fiction is starting to blur, and the character will behave in extremely unusual ways (such as wearing a Star Fleet uniform to jury duty). There is not a Total level of this Disadvantage -- anything greater than the Strong level should use Delusional instead.
Reluctant To Injure
Common, Strong 15pts.
This character dislikes seriously injuring other people. He is not necessarily cowardly; he simply hates to hurt other people. If an opponent seems especially vulnerable to one of the character's attacks, the character must make an Ego Roll in order to use that attack on that opponent.
Reluctant To Kill
Common, Strong 15pts.
A character with this Disadvantage has moral convictions against using lethal force on an opponent; however, these convictions are not so strong that the character refuses to recognize that lethal force may be the solution to some situations. Under extreme circumstances, the character must make an Ego Roll in order to use lethal force. Generally, the "extreme situations" involve saving the lives of others.
Reporter's Curiosity
Common, Strong 15pts.
This is a variant of Curious which is usually used for an investigative reporter themed character. A character with this Disadvantage cannot resist chasing the "story". He watches events unfold and is obsessed with understanding why or how they happened. He will take every opportunity to run down any leads that he discovers (or is given), often without regard for his own personal safety. Once he has taken on a story, he will obsessively follow it to it's conclusion, often at the cost of his personal life and relationships.
Republican Ideals
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
This character believes that a Republican form of government is the best type. A Republican form of government involves the election or selection of representatives who meet and decide government issues. The Roman Senate is an example of a Republican form of government. This Disadvantage is only appropriate for a campaign where such ideals are dangerous. For example, if the character lives under the tyranny of an evil monarch, and the character is ACTIVELY sharing his Republican Ideals, then this would be an appropriate Disadvantage. The frequency of this Disadvantage reflects how often the character's beliefs will be challenged or be dangerous.
Resents Own Stereotypical Image
Common, Moderate 10pts. / Common, Strong 15pts.
A character taking this Disadvantage should be a member of a group for which there is a commonly known stereotypical image. For example, if the character is a brick, he resents it when people see him as a "big, stupid lug". If he is black, he resents the "crackhead and criminal" stereotype almost as much as he hates the "lazy and shiftless" stereotype. The character does not assume that everyone not of his particular group holds this stereotype -- he merely hates the expression of it. The belief that everyone but your own group is biased against you is better simulated with Prejudiced Against (Group) or Racism. The character will also most likely seek to disavow the stereotype through his actions and statements. At the Moderate level the character can force himself to interact peaceably with someone who holds the appropriate stereotype or to avoid correcting that person. At Strong, the character must make an Ego Roll in order to do so.
Resents Rich/Beautiful People
Uncommon, Moderate 5pts. / Common, Moderate 10pts. / Very Common, Moderate 15pts.
This character is annoyed by rich and/or beautiful people. This is most likely because the character is neither of these himself, and is envious of their advantages. The character will behave rudely with any rich/beautiful person whenever he thinks he can get away with it. Examples of possible behavior include speaking badly about them, providing poor service, spitting in their food, and doing harmful acts that cannot be traced back to him. The frequency of this Disadvantage reflects how often the character interacts with the rich and beautiful.
Respectful And Courteous
Common, Moderate 10pts.
The character is of the opinion that if everyone acted politely towards each other, things would be much more pleasant, and move more smoothly. He therefore acts in this manner as an example, minding his manners at all times. Even in the face of rudeness or combat, he will act in a respectful and courteous manner. (Note, however that what constitutes respect and courtesy can vary from culture to culture.) This Disadvantage should not be taken with any Psychological Limitation that causes the character to become rude or speak injudiciously.
Retirement Plan Greed
Common, Moderate 10pts.
This is a variation on Greedy. A character with this Disadvantage has a specific financial goal in mind. Once that goal is reached, he plans to retire from what he is doing and live the good life. His concern over money will end after that goal is reached, but until then, he will take any job or go after any payoff if it will help him reach his goal. When he needs to, he can resist taking a bribe, following a scheme to get rich quick, or any other risky and/or potentially hazardous method of making money. However, the player should make sure to take into account the amount of money being offered. For example, a $20 dollar bribe won't really tempt a man who already is worth over $1 million, but $1,000 to someone who earns minimum wage can be very tempting.
Rigid Thinker
Common, Strong 15pts. / Common, Total 20pts.
This character resists new ideas or things that aren't grounded by serious and time-tested tradition. Their benchmark is "The old way is the best way." Such a character feels that the way things have always been done is the best way, mainly because they've always been done that way. This character is usually very conservative. This Disadvantage is very compatible with Dislikes Chaos And Mayhem. At the Strong level the character can make an Ego Roll to propose, agree with, or accept a "new" idea. At Total, he cannot do so except in the direst of circumstances.
Royalist
Very Common, Moderate 15pts. / Very Common, Strong 20pts.
This character is a devout supporter of his monarch. He will perform whatever actions are necessary (fight, vote, fund) to support the views and decisions of the monarch. He will associate himself with other Royalists, and will oppose the plans and actions of his monarch's enemies. This Disadvantage is only appropriate for games involving these types of plots, such as a King's Musketeers swashbuckling game. The severity of this Disadvantage reflects how devoted the character is to these beliefs. At Moderate, the character can be convinced to accept or support plans that run counter to his monarch, if the reasons are valid. At Strong, the character will need to be convinced at length, and need to make an Ego Roll to go along with the plans, even if he believes they are the right thing to do. At Total, only the most dire of circumstances have any chance at all of changing this characters support for his monarch.
Rude And Inconsiderate
Common, Moderate 10pts. / Common, Strong 15pts.
This character never takes the effects of his words and actions on others into account. The character may or may not be actively cruel and unthinking in their words and actions (either one is a legitimate option). It simply never occurs to him to care. At the Moderate level the character can force himself to take other people's feelings into account when needed. At Strong, the character can only do so by making an Ego Roll. It is suggested that Player Characters not take this Disadvantage higher than the Moderate level.
Runs From Responsibility
Very Common, Strong 20pts.
This character cannot face up to the consequences of his actions. He would rather pack up and relocate than deal with the bad things he's caused. He refuses to talk about such subjects, will not deal with those who try to force him to, and generally dodges when its time to pay the piper. The character is not necessarily irresponsible; he merely hates to face up to responsibility. For example, he will sleep around, and then deny to his dying day that any resulting children are his. If at sometime in his past he was the cause of an accidental death, he will run rather than making amends. This Disadvantage works extremely well with Feels Guilty About (Past Action).
Ruthless In Combat
Common, Strong 15pts. / Common, Total 20pts.
This character is a vicious, bloody fighter who actively tries to injure his opponents as much as possible. This is not necessarily out of some sadistic urge (but it looks like it). The character fights dirty, hits his opponents when they are down, and uses the most damaging attacks at all times (even on the most helpless of opponents). Once his opponent is down, this character keeps attacking until the opponent is absolutely not a threat any longer. Usually, this means until the opponent is dead or deeply unconscious. At the Strong level this character won't suppress his behavior unless he makes an Ego Roll. At Total, the character cannot do this except in the most dire of circumstances.
---
Sadist
Very Common, Strong 20pts.
This character delights in cruelty, whether physical or mental. He enjoys inflicting pain and suffering upon others. This is usually associated with a sexual fetish, but is not necessarily so. This character will hurt anyone he can, just because he likes to. If an opportunity to hurt someone else arises, this character must make an Ego Roll to suppress his natural urge. This Disadvantage is only appropriate for villains.
Scientific Curiosity
Common, Strong 15pts.
This character wants to know a rational and scientific reason behind everything. He doesn't accept what he sees as irrational or paranormal explanations; he also can't accept "it just happens". He wants to know why things work, and how. When he sees something he can't immediately explain, it eats at him until he can figure out a reasonable, scientific, explanation for it. In order to resist this urge when the opportunity presents itself, the character must make an Ego Roll.
Seeking Redemption Through Heroic Acts
Common, Strong 15pts. / Common, Total 20pts.
In the past, the character did or failed to do something that now fills him with shame. As a result, he is now attempting to "balance the scales" by doing heroic and dangerous things. If he has an opportunity to perform a great deed of heroism, he'll take it. At the Strong level, the character can make an Ego Roll to realize that a particular act is suicidal or so low in chance of success that it's not worth it. At the Total level, the character will go into the jaws of death anyway. Note that the definition of "heroic act" is dependent on the campaign society. For example, in a violent Wild West campaign, killing desperados would be considered heroic; in a four-color superhero campaign, it would not.
Seeks (Concept, Person, Or Object)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
The character is in search of something. It could be a concept (a more just society, inner peace, true love), a person (father, twin, person who destroyed his village) or an object (the Holy Grail, his missing soul, the sole remaining portal to his home dimension.) If a clue or opportunity comes up as to the location of the sought thing, or how to achieve it, comes up, the character will pursue it. The frequency of this Disadvantage depends on how often opportunities to pursue the sought thing come up (broad concepts tend to be more frequent in occurrence than unique items, for example.) In the case of a person or object, they can usually be definitively found, at which point this Disadvantage must either be bought off, or transformed into a different Disadvantage. For example, Seeks Person Who Destroyed His Village might become Hunts Lord Venall, once it's established that Lord Venall was the culprit. If the character is seeking a large set of items, Compulsive Collector Of (Class Of Object) might be more appropriate.
Sees Himself As The Protector Of (Concept, Group, Person, Or Object)
Common, Strong 15pts.
This character sees himself as the official, chosen, ordained and sanctioned protector of something. This Disadvantage includes the character being Protective of that which he seeks to protect. The character is not necessarily the official protector of anything. How the character became the "official protector", where the "ordainment" came from, and whether or not anyone else sees him as an "official protector" should be determined by the player and the GM. While it is an interesting background note for the character to See Himself As The Official Protector of Brooklyn Heights Between 35th Street and the Park, it is just as interesting to have the only person who considers the character that to be the character himself. In order to force himself not to act in his "official capacity", the character must make a successful Ego Roll.
Sees Most People As Annoyances
Very Common, Moderate 15pts.
This Disadvantage is a stronger variation of Annoyed By Incompetent People. This character has a hard time dealing with others people -- especially when the other people in question are doing something which, in any way at all, hampers the character. The "offense" may be small and slight, but the character will get annoyed at it anyway. He sees almost everyone around him as a bumbling idiot. In addition, anyone who could possibly (through stretches of the imagination) be considered to be interfering with the character in any way (even unintentionally or unknowingly) is targeted for anger and annoyance by the character. The character can force himself to not react in this fashion when necessary.
Sees The World As Black-And-White, Good-And-Evil
Common, Strong 15pts. / Common, Total 20pts.
This character is Naive about human nature. The character believes that people are either good, and therefore will not ever have a cause to do bad things, or they are evil, and therefore are never to be bargained with, trusted, or counted on. He cannot think of any circumstance under which a good person would do something that might be defined as evil, nor one in which an evil person could be trusted and dealt with fairly. These beliefs guide the character's actions in almost every aspect of his life. At the Strong level the character must make a successful Ego Roll in order to act against these beliefs. At Total, he cannot do so except under the most extreme of circumstances.
Self Appointed Expert
Common, Moderate 10pts. / Common, Strong 15pts.
This Disadvantage is a limited version of Know It All. This character believes that he is an authority on one subject. When dealing with that subject, he acts as if there is nothing else he can learn, and will freely correct what he sees as other people's mistakes when it comes to his chosen subject. He will begrudgingly accept that someone else might know as much about his subject as he does, but will never acknowledge that someone else knows more. The differing strengths indicate how badly the character reacts if shown up in his own area of "expertise". This Disadvantage works well with Always Has An Answer.
Self-Assured
Common, Moderate 10pts.
The character has a positive but not overestimated self-image. As such, he acts with poise and calm assurance in almost every situation. It's a little difficult for him to realize when he's overmatched or in over his head, but not as difficult as for those with more grandiose self-images. Characters with this Disadvantage should not have other Psychological Limitations related to confidence or self-image.
Self-Conscious About (Potentially Embarrassing Circumstance)
Uncommon, Moderate 5pts. / Common, Moderate 10pts.
The character is unusually anxious about some potentially embarrassing situation that comes up every so often. Examples include: Being naked in front of other people, attempting to ask someone for a date or being seen in public with a parent. The character believes that something will happen that will expose him to ridicule or rejection. He'll tend to avoid this situation whenever possible, but every so often must endure it. This Disadvantage is often seen with characters who are Young or Immature.
Selfish
Very Common, Strong 20pts. / Very Common, Total 25pts.
This character looks out for himself and everyone else can "go to hell". Even when it comes to friends and family, the character will make sure he is taken care of before he looks out for them -- if he does. The character tends to operate on a "short-term view"; he does things to look out for himself now, and rarely looks to taking care of things in the future until the future comes. At the Strong level the character must make a successful Ego Roll in order to avoid acting in this manner. At Total, the character cannot avoid acting like this except in the most extreme of circumstances. Alternately, a character can be Selfish and Calculating, for the same points. This is for a character who looks out for himself, but takes a long-term view toward what that means. If he can make someone indebted to him by doing a favor now, he will. The indebted person will pay (probably in spades) for the favor when the Selfish And Calculating person has a need.
Selfless
Very Common, Total 25pts.
The character always puts others before himself, and works for the good of his family or community, rather than for his own benefit. Any resources or abilities the character has will be put into the service of others. The character may need to be ordered or even forced to rest or eat if others are still hungry or tired. Like many 'positive' Psychological Limitations, there is a hypocritical version, Pretends to be Selfless, which represents a character who mimics the actions of a selfless person in order to fulfill an ulterior motive.
Sense Of Duty
Common, Strong 15pts. / Common, Total 20pts.
This character feels compelled to do what is expected of him by those in authority over him. This is a common Disadvantage for soldiers and policemen. He would never betray, abandon, or allow harm to come to the person or organization he feels this about. He feels duty-bound to do his best for them, even if he disagrees with their actions, motives, or goals. This Disadvantage should never be taken at less than Common, Strong.
Sensitive About His Appearance
Very Common, Strong 20pts. / Very Common, Total 25pts.
While this Disadvantage is most appropriate for characters whose appearance is unusual, it is allowed for any character. This character is overly concerned with the way he looks. In the case of a character with an unusual appearance (such as a character with fur, or oddly colored skin), the character becomes almost paranoid that others see him as a freak because of the way he looks. If the character's appearance is normal, he is overly concerned with looking clean, neat and well-dressed. He becomes disturbed by such things as his hair being out of place, or his clothes not matching, or not being clean. And heaven forbid he has a stain or a hole in his clothing. At the Strong level, the character must make an Ego Roll in order to avoid acting in this manner, while at Total, the character can only stop in the most extreme of circumstances.
Serial Killer
Common, Total 20pts.
This character is the most coldly methodical of all murderers, rarely (if ever) killing in a moment of rage or on a whim. This character plots out the murders he commits as carefully as the director of a film plots out the story. The character carefully selects his victim, stalking them over time until an opportune time to strike presents itself. Once in possession of the victim, he tortures them before killing, possibly out of some need to sadistically dominate them. While it may seem that this Disadvantage would be include Casual Killer, as part of it's makeup, the opposite is actually true. There is nothing casual about the murders committed by a this character. Characters that take this Disadvantage are automatically Psychopathic/Sociopathic and cannot also take that Disadvantage. This Disadvantage is only appropriate for villains. Any player who wants his character to have this Disadvantage should be barred from your games and watched closely. The murders committed by this character generally follow these rules:
The killings are separate, occurring with greater or less frequency over time (often following the cycle of the moon), sometimes lasting years and not stopping until the killer is taken into custody or dies.
The killing is one-on-one (as with "normal" homicides), as opposed to many-at-once.
There is very little or no connection between the killer and his victims.
Although there may be a common pattern or victim trait in the killings, serial murders rarely have a clearly defined or "rational" motive.
Serial murders often occur over a wide area (for example, in the case of Ted Bundy, he killed women in Washington, Utah, Colorado, Arkansas, and Florida before finally being apprehended).
The murders reflect redundant violence, a need by the character to inflict "overkill" violence on his victim. This may be evidence of a pathological need to sadistically dominate their victim.
They almost always stab, strangle, or poison their victims, and do so slowly so as to inflict terror. Some serial killers use guns, but it is rare, and even then only after torturing their victims first.
Sexist
Very Common, Moderate 15pts. / Very Common, Strong 20pts.
This Disadvantage is a specific variation of Prejudiced. This character, who may be male or female (if you've bought into the Politically Correct bullshit that only men can be sexist, you're a moron, not to mention also a Sexist) is Prejudiced against members of the opposite gender. The character treats such people with scorn and derision, and takes the most stereotypical of views about them as the truth. At the Moderate level the character can suppress these feelings about members of the opposite gender when necessary. At Strong, the character must make an Ego Roll in order to avoid acting in the above-described manner.
Sexual Deviant
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
The character's sexual tendencies or behaviors are considered "abnormal" by the society he lives in. This can range from behaviors that are merely baffling to those considered downright repulsive. At the Moderate level, the character can contain himself (and may in fact never actually perform the desired acts) at the cost of being horribly frustrated. At the Strong level, the character will pursue the desired behavior whenever he thinks he can get away with it. At the Total level, he will behave in his desired manner regardless of the risk. The character may have the Social Limitations Harmful Secret or Known Sexual Offender, depending on how well his predilections are known. A WORD OF CAUTION: Sexual matters are very sensitive; even the phrase "sexual deviant" is loaded with controversial connotations. The GM should consider the maturity level and tone of the campaign very carefully before allowing a character with this Disadvantage. It is recommended that Player Characters not take this Disadvantage.
Short Tempered And Violent
Common, Strong 15pts. / Common, Total 20pts.
The character has little to no control of his anger, and in addition tends to express his loss of temper with physical force. At the Strong level, the character can force himself with some effort to unleash his anger on an inanimate object or even swallow it temporarily. At the Total level, he will only refrain from violence if it would be suicidal. This makes it difficult for the character to hold down most jobs, and his love life is likely to be rocky. This Disadvantage only covers quick flashes of violent temper. If the character tends to stay angry and violent, he should also have an Enraged or Berserk Disadvantage to simulate this.
Showboat
Common, Strong 15pts. / Common, Total 20pts.
This character has an uncontrollable urge to grab the glory whenever he can. To do so, he will step on others (even his teammates). He has no time for teamwork or cooperation; he's too busy making himself look good. Should the character and his teammates fail at whatever they are doing, he will become angry with this teammates for "letting him down". This Disadvantage includes Showoff and Conceited, thus those two Disadvantages cannot also be taken with this one. At the Strong level the character must make an Ego Roll in order to avoid acting this way. At Total, the character cannot stop acting like this except in the most severe of circumstances.
Showoff
Common, Moderate 10pts. / Common, Strong 15pts.
This character does whatever he can to get people's attention on himself. Not everything the character will do is done in this light, but anything that could possibly be considered attention-getting is done with just a little bit more panache and flair, with the intention being that the character wants others to see how well he does it. The character is not necessarily Arrogant or Conceited. Likewise, the character is not necessarily a Showboat. At the Moderate level the character can force himself to stop acting in this manner when he must. At Strong, the character must make an Ego Roll in order to avoid acting this way.
Shy
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character is uncomfortable in the presence of strangers. The character has trouble speaking to strangers, and when he does speak, is barely articulate. He tends to be a quiet individual, even when he does speak. This character suffers penalties to his Interaction Skills involving people. The specific penalty depends on the severity of this Disadvantage. At the Moderate level the character is merely uncomfortable around strangers (especially around attractive or assertive ones), and suffers a -1 to the affected Interaction Skills. At Strong, the character is very uncomfortable around strangers, and tends to be quiet even with friends, and suffers a -3 penalty instead. At Total, the character avoids strangers whenever possible, is incapable of public speaking, and is barred from taking any skill that deals with the public (such as Bureaucratics, Oratory, Conversation, or Acting). In addition, the character suffers a -6 to the affected Interaction Skills. This Disadvantage must be bought off one level at a time.
Signature
Common, Total 20pts.
This character has a trademark that he leaves at the scene of each and every escapade. This Disadvantage is only appropriate for those who work on the wrong side of the law or are in the habit of angering important or powerful people -- otherwise, it should be bought as a Quirk. An individual character's Signature may be trivial (such as leaving a flower at the scene of his crimes) or very elaborate (filling the area with blue balloons). Regardless of the nature of the Signature, the character feels compelled to leave it. A Signature ensures that the character's enemies and victims know who committed the crime; worse, it may lead to "copy-cat" crimes for which the character could be blamed, even though he did not commit them.
Single Minded
Common, Strong 15pts. / Common, Total 20pts.
The character tends to pursue goals with a strong devotion, and is not easily distracted. Once the character has decided what is important to him, he will work towards that goal with the minimum of time spent on other things he considers inessential. At the Strong level, the character can be talked into putting his primary goal on hold temporarily, if it's really, really important (and he makes an Ego Roll). At the Total level, he won't even consider it. Other Psychological Limitations will determine what sort of goals the character is single-minded about.
Slave To Duty
Common, Moderate 10pts. / Common, Strong 15pts.
The character feels that his position in life requires him to do certain things, even though he has no interest in doing them, or actively dislikes doing those things. The character does volunteer work, serves in his country's military, attends religious services, and supports his family, not because these are good things to do, but because he feels obligated to. The strength of the Disadvantage indicates how hard it is for the character to skimp on his duties. Characters with this Disadvantage are likely to have Bitter or Chronic Complainer as well.
Sneaky And Cautious
Common, Moderate 10pts. / Common, Strong 15pts.
The character does not like to confront problems, particularly physical ones, head on. He believes the proper approach is silently, under concealment, and with his personal safety assured. If given a choice between the front door and a loose board in the fence, the character will check to see that the board isn't trapped, then sneak in that way every time. This is a traditional attitudes of thieves and the more subtle kind of spies, but has been known to apply to office workers and teachers. At the moderate level, the character may adopt a straightforward approach if it is absolutely necessary to get things done. At the Strong level, he finds it much more difficult to do so. Most characters with this Disadvantage buy high Stealth skills.
Snobbish
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This Disadvantage is only appropriate to characters of the highest economic and social class. This character tends to look down on everyone he does not consider a part of his own class. He avoids those he finds to be "common", and if he can't avoid them, he bristles whenever he has to come into close contact with them. The character acts condescending at best, and openly insulting at worst, towards those he considers to be "less" than him. At the Moderate level the character can make himself be polite to those of the lower classes he considers worthy of politeness (and may even have a few friends among them). At Strong, the character must make an Ego Roll in order to avoid acting Snobbish. And at Total, he cannot act otherwise except in the most dire of circumstances.
Social Anxiety
Very Common, Strong 20pts.
The character is not just Shy, but actually phobic about dealing with other people. He feels as though he is constantly being judged and found wanting whenever he meets or talks to other people, or even just seen in public. Worse, he's aware that his fears are irrational, and believes that people will judge him even more harshly if they knew of his problem. A character with this Disadvantage finds it monumentally difficult to get a job, have a romantic relationship, order in a restaurant, etc. Even talking on the telephone or writing an email may seem too nerve-wracking. A character with this Disadvantage should have no skills relating to interaction with other people; they might know the basics of such skills, but are unable to use them. It is recommended that Player Characters not be allowed to take this Disadvantage, as it will make them nearly impossible to interact with.
Speedster Impatience
Very Common, Moderate 15pts.
This disadvantage is only appropriate for Speedster characters in a superhero setting. The character is so used to moving at high speed that he has a short attention span when it comes to the everyday events happening all around him at normal speeds. He thus has a very low tolerance for the frustration caused by living in a world where, comparative to the character, everyone else moves so slowly. He tends to get bored fairly easily, and if he fails his EGO roll might verbally lash out at the "slowpokes" all around him.
Spoiled Brat
Common, Moderate 10pts. / Common, Strong 15pts.
This Disadvantage is most appropriate for characters who are children, though some of the worst cases may persist into young adulthood. The character is used to having his desires met and his whims respected, no matter how inconvenient it is for everyone around him. Further, if his demands are not met, the character is likely to pout or even have a temper tantrum. Often, the spoiled brat will continue complaining/threatening until mollified or something else catches his interest. At the Moderate level, the character can be convinced not to insist on having his way if there are good reasons. At the Strong level, the character is much harder to sway. Many characters with this Disadvantage will also qualify for Age 10-, and/or Social Limitation: Minor, as well as having parents or a guardian who is the primary target of their demands; this may be a Follower or a Contact. Spoiled brats are automatically Immature, so should not also take that Disadvantage.
Stage Fright
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character becomes nervous and uncomfortable when in front of large numbers of people. In such situations, the character stammers, is visibly flustered, and sometimes visibly shakes. At the Moderate level the character is capable of speaking normally in front of a crowd with some effort. At Strong, he must make an Ego Roll in order to do so, and at Total, he cannot do so under any circumstances. This Disadvantage works well with Easily Embarrassed and Shy. It should not be taken with Social Anxiety, as it is already included in that Disadvantage.
Stays In (Other Person's) Shadow
Common, Moderate 10pts.
The character does not seek recognition for himself, but instead works to support someone else. This could be due to admiration for that person, a recognition that the other person is more competent, or a result of the character's lower social standing. Many characters with this Disadvantage also have Humble and Meek or Modest and Demure.
Stern Taskmaster
Common, Moderate 10pts. / Common, Strong 15pts.
The character is in a position of authority over others, such as a teacher or a manager. In addition, he believes that the best way to get the most work out of his students or subordinates is to be harsh and unyielding in his attitude towards them. He tends to think that showing sympathy or kindness towards someone under his authority would be interpreted as a sign of weakness. He does not accept excuses, and believes that the tasks he assigns should be the top priority of the person assigned to do them. At the Moderate level, the taskmaster can "ease up" if there is a legitimate reason a student or subordinate cannot perform as expected. At the Strong level, the taskmaster will press on regardless. Many people with this Disadvantage also have Arrogant, Cruel, Old-Fashioned, or Rigid Thinker.
Stickler For Details
Very Common, Strong 20pts.
This character must have every detail of life meticulously accounted for. This results in a great deal of time being spent dealing with obscure items that would otherwise never be noticed. The character will be a burden to his associates, who must deal with his fussing about every little item. The character must make an Ego Roll to participate in any impromptu plans, and will spend the entire time convinced it will fail. If it does, he will blame it on lack of planning and forethought. In regards to the details of a plan, this Disadvantage is similar to Must Have A Plan. But this Disadvantage pervades almost every aspect of the character's life.
Sticks To His Principles
Common, Strong 15pts.
This character is steadfast in his beliefs and will not be easily persuaded to ignore his principles. He will not normally agree to any plans that run counter to his beliefs. To do so, the charcter must make an Ego Roll after hearing a very good reason. And even then, he will participate reluctantly. If the plans run counter to another Psychological Limitation the character has that isn't Total commitment, he must *also* make it's Ego Roll.
Stiff
Common, Moderate 10pts. / Common, Strong 15pts.
The character thinks it undignified to engage in excessive unnecessary emotion, or public display of emotion. This does not mean that he isn't capable of feeling deeply, but he will attempt to keep a stiff upper lip where others can see him. The character prefers to act and speak in a formal manner, and will avoid social gatherings involving wild movement or excessive emotion. The strength of the Disadvantage determines how easy it is for the character to mellow out a bit. Characters with this Disadvantage are often Seen as a Cold Fish or Seen as a Snob.
Stoic
Common, Total 20pts.
This character is neither affected by or shows passion or feelings. To others he will appear cold, aloof, and emotionless. He is less likely to be affected by impassioned actions, such as seduction, but he is also less able to rally others to follow his cause. Any attempts to sway this character with an Interaction Skill that uses emotion is made at a -3 penalty. Any attempts by this character to do the same are also hampered by a -3 penalty, and any Presence Attacks made to rally support or convey a sense of urgency are at -1D6. He may often offend people, because he does not take a person's feelings into account. Vulcans, from Star Trek, are a good example of a an entire race expressing this Disadvantage in their personality.
Stoic And Taciturn
Common, Total 20pts.
Like Stoic, this character is neither affected by or shows passion or feelings. In addition, the character feels little need to converse. Anyone wishing to hear his thoughts must draw them out of him, and he may occasionally be mistaken for a mute. Since he appears emotionless, and seldom speaks, very few people will know or understand what the character is feeling.
Street Loyal
Common, Strong 15pts.
This character in general only looks out for himself. However, if someone does him a favor, he pays it back. Perhaps not immediately, but eventually. He treats with respect those that treat him with respect, and treats fairly those who treat him fairly. He will not betray someone he considers worthy of his loyalty. Those who aren't worthy are fair game, however.
Stubborn
Common, Strong 15pts.
This character wants to get his way, all the time. He is very hard to get along with if he doesn't get it. He rarely changes his mind, even with the strongest of persuasion -- and when he does, it is often only to end whatever argument he is in. In order to "give up" and accept not getting his way, the character must make an Ego Roll. It is suggested that Player Characters not take this Disadvantage higher than Common, Strong since such a character would never be willing to compromise, and would soon be too annoying.
Stuck Up
Common, Strong 15pts.
This character believes that most of the people around him are not worthy of his time or attention. His friends (who, remarkably, are all very similar to him) count, and anyone in authority over him counts as far as that authority extends, but no one else does except in how they can assist the character. The character expects the "nobodies" to be grateful of his attention, and is befuddled (and even offended) if his attitude toward them makes them angry. (The character's attitude is "It's not my fault they're losers".) The character must make an Ego Roll in order to treat a person he normally considers a "nobody" like a "real person".
Stuffed Shirt
Very Common, Strong 20pts.
This character is a smug, conceited, and usually pompous person, often with an inflexibly conservative or reactionary attitude. He will have a hard time getting along with others, particularly any he perceives to be below his station. This Disadvantage is best used for a character that is either an aristocrat or bureaucrat.
Sucker For A Pretty Face
Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This character cannot help but assist an attractive member of the opposite sex (or same sex if so inclined). This often results in the character agreeing to do things that he would not normally do -- he just can't help himself. At the Strong level, the character can make an Ego Roll to try and resist this urge. At Total, the character cannot help himself, and will do whatever he can to help the pretty face. If the pretty face happens to be attached to an evil soul, then this character may find himself being used as a pawn in someone's game.
Sucker For A Sob Story
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This character can't help himself from helping someone in distress, even if the person is not actually in distress. All that is necessary is that the person have a story portraying themselves in distress. Even when the character knows that the person in distress isn't actually in trouble, he will still want to help. This is not the same as Charitable. While the two Disadvantages are very similar, this one implies that the character has no common sense regarding his feelings of charitability. At the Moderate level he can suppress this urge when necessary. At Strong, the character must make an Ego Roll to do so, and at the Total level he cannot do so except in the most dire of circumstances.
Suicidal
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts.
This character has urges making him want to kill himself. These urges are usually strongest at times of stress or depression, and it is at this time that the character comes closest to actual ending his own life. This Disadvantage should not be taken at a Frequency greater than Uncommon. The character would be almost constatly in dange of ending his own life. It should also not be taken stronger than Strong. A character who is "totally" Suicidal would have already managed to end his own life. This Disadvantage works well with Despressive and Pessimist.
Superpatriot
Very Common, Total 25pts.
This character loves his country and supports its authority and interests to the most extreme possibilities. The character most likely serves the government in some capacity, and is willing to do almost anything for his country. Based on the other morals of the character, this could result in good things or bad things. Unless the character has other Disadvantages that conflict, the character will never second guess the decisions and dictates of the government. Examples of superpatriotism include Captain America as well as members of the Irish Republican Army.
Superstitious
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts.
This character believes in one or more common superstitions. This belief guides the character's actions and attitudes at such times as the superstition applies. Most superstitions are based on actions and consequences. If the character does some specific action, or doesn't do it, he will either benefit or be penalized. Other superstitions proclaim that some object or action is lucky or unlucky. The specific superstition(s) the character believes in is up to the player. The possible examples are almost infinite.At the Moderate level the character can force himself to override his normal feelings. At Strong, the character cannot avoid acting in such a manner except by making an Ego Roll. Some possible examples include:
A black cat crossing your path means bad luck. So is walking under a ladder.
Breaking a mirror gains the character seven years of bad luck.
Spilling salt is bad luck, unless you throw a pinch of it over your left shoulder.
Four leaf clovers are good luck. So are rabbit's feet.
Hanging a horseshoe over your door will bring good luck to everyone in the house, unless you hang it so the horns of the shoe point downward (thus allowing the "luck to run out").
Anything numbered 13 is just looking for trouble.
Suspicious Of Outsiders
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character doesn't trust people who are not part of his own "group". What specific group(s) towards which the character feels suspicion is up to the player. Possible examples include people of another ethnic group, another nationality, another political group, another social class, etc. The character is not necessarily Prejudiced of members of the group; rather, the character wants to keep an eye on them and expects the worst from them. He will be slow to trust them. At the Moderate level the character can suppress his suspicions when necessary. At Strong, the character must make an Ego Roll to do so. And at Total, the character cannot suppress his suspicions except in the most extreme of circumstances.
Swashbuckler Mentality
Common, Strong 15pts.
This Disadvantage is most appropriate for male characters. This character feels that an exciting and adventuresome life is the only life to live. The character regularly trades jibes with friends, but accepts no insult from strangers. He lives to sweep women off their feet (and does so with style, of course) with poetry and flowers. The character will accept any challenge, no matter what the odds. He fights aggressively and confidently. In order to avoid acting in this manner, the character must make an Ego Roll. This Disadvantage works well with Fearless and Showoff.
Sworn To (Perform Action Or Accomplish Goal)
Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
This character has some specific action or goal that they have dedicated themselves to accomplishing. The exact goal is up to the player, and should be chosen with advice from the GM. When the character is given a chance to pursue his goal, he will take it. The action or goal can be almost anything; however, if the action or goal is revenge, Seeks Revenge should be taken instead. The Frequency of this Disadvantage is determined by how much of the character's life he devotes to the pursuit of his goal. At Uncommon, the character actively pursues the goal, but does not allow it to interfere with his regular life. At Common, the character spends a great deal of time on it, but most of his life is still spent on other things. At Very Common, the character spends most of his time in an attempt to fulfill the goal. At Strong, the character can force himself to not pursue a chance at accomplishing his goal if he makes an Ego Roll. At Total, the character feels compelled to take such opportunities in all but the most dire of circumstances.
Taciturn
Very Common, Moderate 15pts.
This Disadvantage is similar to Quiet And Withdrawn. However, while the character is quiet and tends only to speak when he has something important to say, he isn't like this because he is shy. Rather, he simply prefers not to speak and finds people who speak only to hear their own voice annoying (at best). The character tends to keep his opinions to himself, doesn't joke around, and is content to let others find their own opinions about things. However, he can force himself to stop this behavior when necessary.
Tactless
Common, Moderate 10pts. / Common, Strong 15pts.
This character has a tendency to speak before he thinks about the ramifications of what he is about to say. He doesn't necessarily mean to be cruel (though this is a possibility); he simply doesn't think before speaking. Roughly put, a character with this Disadvantage says what he thinks, regardless of who might be hurt by what he's about to say. At the Moderate level the character can force himself to think about what he's saying when necessary. At Strong, the character must make an Ego Roll in order to force himself to do so.
Takes His Responsibility Very Seriously
Very Common, Strong 20pts.
This character can be counted on at all times. When he gives his word, he keeps it. And he fulfills his responsibilities to the letter (if not more). The character feels compelled to take care of everyone who depends on him. In addition, he cares about the consequences of his actions. He is driven by his own moral sense to leave the world better than he found it, especially if it was he who made it worse. Should the character accidentally be the cause of someone else's misfortune, he will feel compelled to either repair the situation or make up for it. The character must make an Ego Roll in order to avoid acting in this manner.
Takes The World On His Shoulders
Common, Total 20pts.
This character feels deeply accountable for his responsibilities. Because of this, he is often weighed down with this burden and may become distraught with guilt if he perceives he has failed, regardless of whether or not anyone else does. The player should describe what it is the character feels he is responsible for, and it should be very broad in nature, such as eradicating worldwide hunger or finding a cure for cancer. The character is always serious about his responsibilities, and works diligently to reach his lofty goals.
Talkative
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts.
This character talks -- about anything, everything, and nothing. The character talks without thinking about it. Whether or not the character talks about what is going on or just babbles to hear his own voice is up to the player. At the Moderate level the character can force himself to shut up when he has to. At Strong, the character can shut himself up when he has to, but will resume speaking in a minute or two unless he makes a successful Ego Roll.
Team Oriented
Common, Strong 15pts.
The character is most comfortable when cooperating with others in a group. He has no problem with taking a leadership role, but only if the rest of the team agrees to it. The character finds it difficult to work on their own, unless it is contributing to the group effort, and will try to avoid situations where his desired course of action contradicts what the group wants to do. Characters with this Disadvantage do not get on well with Loners and those who disrupt the workings of the team.
Thinks (Important Person In His Life) Is A Loser
Common, Moderate 10pts.
This character has little respect for an important person, such as a relative or co-worker who holds a valued place in the character's life. The character believes, either rightly or wrongly, that the person is a loser who does not deserve the characters respect. The reason the person is a loser (or the beliefe, it is isn't true) should be determined by the player. It could be because of an addiction, mental problems, or just being unlucky. The character may often be involved with helping the person, which often only increases the characters lack of respect. Depending on how involved the person is going to be with the player, he could also count as a Dependent NPC.
Thinks About The Big Picture
Common, Moderate 10pts. / Common, Strong 15pts.
Mostly found among command staff, boards of directors, planning commissions and other places far from the "action." This character is concerned with the overall conduct of the war or campaign, not the niggling details. Thus, the cost to individuals of his plans isn't important to him, and may not even enter his mind. This character often comes across to those below him as out of touch and perhaps even mad. At the Moderate level, the character can be persuaded to alter plans that would lead to excessive harm to the people on the ground. At the Strong level, he's likely to push ahead regardless, considering those who question him "insubordinate." Disadvantages often seen with this include: Ambitious, Aristocratic/Regal Attitude, Cold and Calculating, Effete, Elite Attitude, and The Ends Justify the Means.
Thinks He's A Comedian
Common, Moderate 10pts. / Common, Strong 15pts.
This character is always cracking wise and making jokes -- bad jokes. What could be a slightly irritating if sometimes endearing habit is ruined by the fact that the character's sense of humor needs a lot of work. He tells jokes that are too long to be funny, or are too convoluted, or simply in bad taste. Every once in a while, the character will make a joke that is honestly and truly funny. Invariably, however, these occasions only occur when humor is vastly inappropriate, like at a funeral. When they are appropriate, the character wasn't meaning to be funny, and is the only person to not get the joke. At the Moderate level the character is able to curb his urge to be funny when he has to. At Strong, he can curb his urge to be funny when he has to, but will resume cracking jokes moments later unless he makes an Ego Roll.
Thinks He's A God
Very Common, Total 25pts.
This is a specialized combination of Megalomania and Delusion. Due to the character having godlike powers (in comparison to those around him), he believes that he actually is a god. He insists on being worshipped, or at the very least deferred to as though he is a god. He will treat other "gods" as his equals and expect the same treatment from them. As long as the character is catered to, he may well be benevolent, at least to his followers, but most characters with this problem tend towards the smiting solution to disbelief or opposition. If the character does not have a sufficient power level to justify his apparent godhood, then he merely is Delusional. If the character actually *is* a god, but can't prove it, use the Social Limitation: Imaginary instead.
Thinks He's A Tough Guy
Common, Strong 15pts.
This Disadvantage is also known as Barney Fife's Disease. This character believes he is much more dangerous and physically capable than he really is. Note that it is possible that the character is precisely as dangerous as he thinks he is, but does not project any sense of physical danger to others. The perfect example of this would be the telekinetic whose Power is strong enough to lift battleships, but physically looks like he'd blow over in a stiff wind. Other people simply don't see the character as physically imposing. The character won't back down from a physical challenge, especially one which deals with arguments, fistfights, or other tests of physical prowess. In order to force himself to do so, the character must make an Ego Roll. This Disadvantage shouldn't be taken by any character who's concept implies physical toughness and athletic ability.
Thinks His "World" Is All That Matters
Common, Strong 15pts.
This Disadvantage is similar to Selfish, in that the character tends to focus on matters that are only important to him. When the character is experiencing personal hardships, he tends to focus on those more than anything else. If what is important to the character is not what is important to everyone else, then the character must make an Ego Roll to divert his attention away from his personal concerns. More likely, he will disregard everyone else, and take care of his matters. This could cause times when he places his cohorts at risk because of his selfish nature. This Disadvantage is the opposite of Sense of Duty, and they should not be taken together.
Thinks The Rules Don't Apply To Him
Very Common, Strong 20pts.
This character feels he is much too important to be held by the rules of society. Such rules are in place to keep the common man in his place, but the character is so gifted, it should be obvious to all that he is above any rules. The character will often do things that offend others, such as search a house without a proper warrant, or jump in line to buy the last ticket to a popular show. The character must make an Ego Roll to prevent himself from doing an action that he knows is against the rules. This Disadvantage works well with Arrogant.
Thrill Seeker
Common, Strong 15pts.
This character gets a rush from putting himself in dangerous situations and then getting out of them unharmed. He may do this because he secretly has a Deathwish, or he may have another, deeper reason. The character is attracted to the danger and excitement of it all. This Disadvantage is appropriate for all of the characters who go parachuting off of skyscrapers; who attempt to circle the globe in hot air balloons; who bungie jump off 400 foot high bridges just so they can stick their heads in a running river.
Thrives On Chaos
Common, Strong 15pts.
A character with this Psychological Limitation sees chaos and disorder as a chance to reach his creative potential. He is an expert at turning chaos into order. The character doesn't necessarily Enjoy Chaotic Situations or Prefers Chaos and Disorder, but he isn't afraid to seize a chaotic opportunity, especially if its one tailored to achieving his goals with no wasted effort.
Timid
Common, Strong 15pts.
This Disadvantage combines both the Non-Aggressive and Skittish Psychological Limitations. The character is easily frightened and flees from anything he perceives as dangerous, and will especially use any means he can to avoid getting into a conflict. The character can avoid this behavior when necessary by making an EGO roll.
Touhcy Feely
Common, Moderate 10pts. / Common, Strong 15pts.
A character with this Psychological Limitation is overly and overtly friendly, never settling for a handshake when a hug and kiss will do. It may also manifest in relation to physical objects, such that the character is always touching, stroking or fondling something, especially if they have never seen such before. At the Strong Level, the character must make an Ego Roll to refrain from this behavior when inappropriate or the recipent does not approve. Social Limitations such as Seen as a Horndog/Slut or Seen as Easy often accompany this Disadvantage.
Toys With His Victims
Common, Strong 15pts.
The character gets a perverse sort of entertainment out of manipulating his victims physically and emotionally, and tends to draw out the process as long as possible to heighten his pleasure. He'll deliberately give a person minor but disabling wounds, ask a group of hostages, "which one of you should I kill first?", allow victims to believe that he's letting them go only to renege moments later, etc. While the character usually only does this when he has the upper hand, he may draw out the process long enough for rescue to arrive, or underestimate his victim. This Disadvantage is often combined with Bully or Serial Killer. This Psychological Limitation is suitable only for villains.
Traditionalist
Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Strong 15pts. / Common, Total 20pts.
This character adheres to the doctrines or practices of a specific tradition that should be identified during character creation. The character will be opposed to and outspoken about any deviation from this tradition. Examples of this include the Orthodox Jew who strictly follows the rules outlined in the Torah, or a baseball fan, who refuses to watch any games that include a designated hitter. Deviating from the tradition(s) may or may not have repercussions, which depend upon what the tradition is. At the Strong level, the character must make an Ego Roll to temporarily deviate from one of his traditions. At the Total level, the character would rather die than break with his traditions. At the Uncommon level, the tradition does not occur often, such as the baseball enthusiast example. At the Common level, the tradition is a part of the character's everyday life. Note that it is possible to have this Disadvantage at Very Common, but such a character would be so wrapped into this tradition, they would probably never be involved in anything else, such as an Ultra-Orthodox Jew that spends everyday praying at the Wailing Wall and studying the Torah.
Trapped In The Wrong Body
Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
The character sincerely believes that the body he currently inhabits is not the one he is supposed to have; it is the wrong skin tone, age, gender or even species. As such, he never feels comfortable in his own skin, and if there is any way to achieve his "true form," then he will attempt to have it happen. This is in most historical societies treated as a form of delusion, but in more fantastic settings this belief may be literally true. At the Moderate level, the character can behave in accordance with the social norms attached to his physical body, though he is likely to be miserable doing so. At the Strong level, the character will behave according to his "true self" whenever it's possible, even if it's dangerous to do so. And at the Total level, the character will never act in accordance with his body's appearance except out of absolute biological necessity. The character may have Social Limitations appropriate to what his body appears to be. This Disadvantage is not suitable for characters with obviously monstrous or transformed bodies. Considers Himself A Monster is more appropriate for such characters.
Treats Normal Humans As Lab Animals
Common, Total 20pts.
This is the classic Mad Scientist Disadvantage. This character believes that the pursuit of science is so important that idiotic and inconsequential concerns like "morality" and "public safety" are secondary. Thus, they see nothing wrong with experimenting on human beings, even if the human beings in question don't know they are being experimented on. This Disadvantage works well with Megalomania, Holds "Mortals" In Contempt, and Obsessed With Succeeding With His Experiments.
Treats Normal Humans As Pawns/Cattle
Common, Total 20pts.
This character believes that he is somehow above the greater mass of humanity. Because of this belief, he feels that he can use, abuse, and discard normals pretty much as he wants. The character will manipulate normals into the positions he wants, use them for his own goals, and then dispose of them at a whim. To this character, normals are replaceable resources -- they exist to serve his needs. This Disadvantage works well with Megalomania and Holds "Mortals" In Contempt.
Tries Hard Not To Be Noticed
Common, Strong 15pts.
The character feels uncomfortable when people are looking at him or paying attention to him. He will tend to dress in a very drab manner, avoid speaking except when spoken to, and act in a manner designed not to draw attention. This Disadvantage overlaps with Shy, but is less crippling than Social Anxiety.
Triggerhappy
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character believes in shooting first, asking questions later -- if at all. He regards violence as the best way to resolve most problems. In any situation, if violence is a possible course of action, he wants to use it. At the Moderate level he can suppress this urge with a little effort. At Strong, he must make an Ego Roll to avoid using violence, and at Total, the character will refuse to use any other course of action but violence. This character should not also take Code vs. Killing, Reluctant to Injure, Reluctant to Kill, Will Not Kill, Will Only Fight In Self-Defense, or Pacifist. The character is not necessarily a Casual Killer, but with his attitude toward violence, he should not be overly emotional about killing. This Disadvantage works well with Hair-Trigger Temper.
Troublemaker
Common, Strong 15pts.
A character with this Psychological Limitation enjoys starting strife and causing problems. His idea of fun is tipping over the applecart and ruining someone's day. The character isn't merely Mischievous, because he really is out to cause someone some heart-ache. The character may have other Psych Limits that indicate a specific target for his malice, but otherwise is willing to give pretty much anyone a headache, just for kicks.
Trusting
Common, Strong 15pts. / Common, Total 20pts.
This character feels that everyone is basically honest and kind. They feel no apprehension with asking total strangers for help, or for helping out "strangers in distress", and never suspect that another person could be planning to harm them. At the Strong level the character must make an Ego Roll in order to act in any way suspicious of others. At Total, Only the most dire of circumstances will enable the character to make an Ego Roll.
Truthful
Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This character always tells the truth, and always keeps his word. In addition, he does his best to get others to act in the same way. He assumes that those around him are honest (but will not necessarily allow those who aren't to take advantage of him -- he's not Naive). The character isn't necessarily honest in other things: the character could be a thief, for instance, but he's a thief who never breaks his word. At the Strong level the character must make an Ego Roll is he actually wishes to speak an untruth or to break his given word. At Total, the character wouldn't ever consider such actions except in the most dire of circumstances.
Turns A Blind Eye To (Other Character's) Activities
Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Strong 15pts. / Common, Total 20pts.
This character has some sort of connection with another character, usually a villain. This connection is a very close one, and for some reason compels the character to ignore whatever immoral or illegal activities the other character is up to. What the connection is, and the reason the character turns a blind eye, are up to the player. The character does have a limit, however. There should be some moral line across which the character will not let the other go. A classic example of this would be a hero whose brother is a villain who robs banks. As long as the brother doesn't cross some moral line (for example, killing someone), the character will hesitate to interfere with the brother's life. If the character encounters his brother after the latter has robbed a bank, he may demand the money from him so it can be returned to the bank, but will let his brother go rather than capture him and turn him over to the police. The frequency of this Disadvantage depends upon how often the character encounters the other person. At the Strong level the character must make an Ego Roll in order to not act in this manner. At Total, the character cannot help himself from turning a blind eye except in the most extreme of circumstances. This Disadvantage is only appropriate for heroes.
Twitterpated
Uncommon, Moderate 5pts.
The character tends to get giddy with new love; he finds it difficult to concentrate for the first few days after he falls for a new person. If this is a long-term relationship, use In Love With (Other Character) instead.
---
Ultra-Radical Feminist
Common, Strong 15pts.
This Disadvantage is only appropriate for female characters. This character believes that women are superior to men physically, psychologically, and most especially morally. They believe that all men are sexist animals and closet rapists who wish to put women into the classic "barefoot and pregnant bondage" of yesteryear and prevent women from advancing to the level they rightfully deserve. This Disadvantage automatically includes Misandronist. In some cases, they take this to ridiculous extremes, such as the attempts by some to "feminize" the English language with pronouns like "hir", or making the statement that "All heterosexual sex is rape."
Short Digression: This last statement -- the one about all heterosexual sex being rape -- was actually made in the real world by a "women's activist" named Andrea Dworkin. I am not making this up.
In other cases, they go so far as to state that the only use for men is to propagate the species. In order to treat a man like a human being instead of a barbaric animal worthy only of scorn, the character must make an Ego Roll. Even then, she is only doing it because politeness is necessary.
Unassertive
Common, Moderate 10pts. / Common, Strong 15pts.
The character finds it difficult to impose his presence or opinions on others, particularly if he thinks they will react negatively. He will seldom speak out on an issue, or interrupt a conversation. He will often endure much emotional or physical suffering rather than speak up. At the moderate level, he can sometimes force himself to make his opinions heard. At the strong level, it is much more difficult for him.
Uncomfortable In (Environmental Condition)
Uncommon, Strong 10pts. / Common, Strong 15pts. / Very Common, Strong 20pts.
This character finds some environmental condition strongly disturbing. He doesn't like entering areas where that condition prevails, and once there wants to leave as quickly as he can. The exact condition is up to the player. In order for the character to enter an area he finds uncomfortable (or stay in such an area once there) he must make a Ego Roll. Note that the Physical version of this Disadvantage can also be taken. However, that involves an environment which is somehow detrimental or toxic to the character, but only to the point of it being an irritant. Possible examples include:
Uncomfortable In Crowds: The character hates being around large numbers of people. Essentially this would be a mild form of Agoraphobia.
Uncomfortable In Cemetaries: The character finds being in a cemetery to be "creepy".
Uncomfortable In Scenes of Death: The character is disturbed by places where people have died, especially if the bodies have yet to be removed.
Uncompromising
Common, Total 20pts.
A character with this Psychological Limitation must also have other Psychological Limitations that define some sort of ethical code (typically a Code of Honor) that defines him to the point that, without it, he is nothing. As such, when it comes to his personal code, the character refuses to negotiate, or grant concessions. He never gives in when it comes to his ethical sense, even if such compromise might be the right thing to do in the long run.
Unsure Of Himself
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character is constantly second-guessing himself. He isn't confident in his own talents and abilities, and thus hesitates before acting. He worries about whether or not he will succeed, and he worries about the consequences of his actions and their effects on others. This is not the same thing as Worrier.
Upper Class Twit
Common, Moderate 10pts.
This character is not only less than intelligent, but he is born into an upper class family, and has had a somewhat sheltered and pampered life. That sheltered life sometimes gets him into trouble, as the character assumes that the life he has lead is the standard by which all lives are judged. Thus, this character might think that three-card-monte is a legitimate game, everyone has a cell phone, and might not understand that the pretty girl next to him is a prostitute. This character may not take any skill relating to "Street Smarts", nor may he have an Intelligence score higher than 8.
Uses Sarcasm As A Defense Mechanism
Common, Strong 15pts.
This character makes sarcastic and scathing remarks whenever he is uncomfortable, confused, or frightened. He usually directs the sarcasm at the cause of his distress, though in times of extreme stress he may tend to lash out at anyone around him. This Disadvantage works well with Never Lets Anyone Get Close and Loner.
Utterly Evil
Very Common, Total 25pts.
A character with this Psychological Limitation is cruel, corrupt, depraves, and enjoys nothing more than causing chaos, destruction, corruption, and pain. He works to create these situations in a careful, intricate way. He has no friends... just victims and people he hasn't got around to victimizing yet. This is not the "evil yet noble foe" who, though his aims are dark still retains a code of honor that he follows. On the contrary, this is the "do whatever it takes to get the job done, even if it means slitting his own mother's throat to provide blood for the demon sacrifice" type of villain. The character cannot be redeemed as there is no shred of decency or good in him; there is no "coming back to the side of light" for this character, because he was never on the side of light in the first place.
Just as the name of this disadvantage implies, this Psychological Limitation is only appropriate for villains.
Vain About His Looks
Common, Moderate 10pts.
This character is proud of the fact that he is good looking. He has trouble resisting looking at himself when he passes a mirror, and is always careful to make sure that not a hair is out of place. In addition, he gives off a palpable attitude that he should be treated as somehow special or important simply because he is good looking. He believes that people who aren't as good looking as he is (especially people who are actually homely or plain) are less special or important than himself because they don't look as good. This Disadvantage is appropriate only for those characters with high Comeliness scores (16 and up).
Values Money More Than He Should
Common, Moderate 10pts.
This character believes that money has more of a social value than it actually has. He may think that a wealthy person is smarter than others, or just an all round better guy. This mindset may cause problems while investigating crimes, or dealing with corporations. The character may believe that he is better than people who have less money than he does.
Vicious Fighter
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character will pull any dirty trick in the book during a fight, and occasionally has been known to add whole chapters of his own. At the Moderate level they will tend to throw opponents through glass windows, run them into walls face first and will not only kick an opponent that is down they will take the time to make sure it is in a vital organ. These characters will often be satisfied with leaving an opponent with just broken fingers or a slash across their face. At Strong, they continue on, dragging the opponent back through the glass fragments again and again, running them at (until they go through) solid walls and has been known to look around for heavy objects to smash onto downed opponents. At this level, the character will usually settle for broken bones or large scars. At the Total level, the glass window is on the fifth floor, the wall is reinforced concrete and when the opponent is down they will go for a car. At this level of commitment, the only reason that an opponent survives is often because that is what causes the longest lasting pain. This Disadvantage is not appropriate for heroic characters, with the possible exception of those in a Dark Champions game.
Vigilante Mentality
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This character has set himself up as judge, jury, and executioner. He believes that the court system isn't doing its job, and that it is up to him to take care of things. Such characters usually have other Psychological Limitations which explain why the character feels this way. Characters with this Disadvantage usually have no compunctions about using lethal force. However, the circumstances under which they will apply such force vary depending on the strength of this Disadvantage. A character who has this Disadvantage at the Moderate level will seek to punish any crime, but will only feel it necessary to kill serious criminals (rapists, child molesters, and murderers, for example). At Strong, the character's view of who deserves death widens (to include drug dealers and users, thieves, and so on). At Total, the character feels justified in killing any lawbreaker, even those whose "crime" is running a red light.
Visionary
Common, Strong 15pts.
This character has a plan for the future that affects masses of people. He doesn't necessarily Want To Make The World A Better Place. Rather, he wants to make the world match his vision, regardless of what that vision is. If the character is a raging psychotic, for example, the vision might be of a seething hellhole. On the other hand, an idealist may have a vision of a world with no war, no hunger, and no strife. The vision that the character follows consumes his life and directs his actions. Almost everything the character does is directed towards bringing the character's vision to life. In order to do something other than follow his vision, the character must make an Ego Roll.
Vow
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
The character has taken a vow to either do, or avoid doing, a particular thing. This is above and beyond any "Code of Conduct" the character may possess. The frequency of the Disadvantage reflects how limiting the vow is: "Always Wear Black" is far less limiting than "Never Accepts Healing." The commitment level is how seriously the character takes the vow; some people take vows very lightly, others will never break them. If it is known that the character has taken a very limiting Vow, he may have a Reputation to that effect, which will become the negative Reputation: Oathbreaker if he fails to live up to it.
Wants His Life Back
Common, Strong 15pts.
This character is somehow incapable of living a normal, everyday life. The reasons for this are up to the player, but possibilities include a widespread belief that the character's secret identity is dead, the character is being pursued by a nefarious agency bent on killing, imprisoning, or otherwise exploiting the character, or the character is now monstrous in form. Regardless of the reason, the character wishes things were the way they once were and will actively strive to recreate his old life, or at least try to live as if nothing was wrong. The character must make an Ego Roll in order to stop acting in this manner for a short time.
Wants To Be (Famous Other Character)
Common, Strong 15pts.
The character has decided to model his life and behavior on a famous or notable person whose traits he admires. He will attempt to gain skills and experiences similar to his role model, wear a hairstyle and clothing as similar to the role model's as possible given the social climate, and mimic his role model's positive character traits. He may or may not also take on his role model's negative character traits, depending on whether he recognizes them as such. The character does not think he actually is the role model, that would be Delusional. (Example: Marie DuCharme has 'Wants To Be Joan of Arc'. She studies military tactics, riding and swordsmanship, becomes a devout Catholic and a patriot of France. She also dresses in trousers, but that isn't considered all that unusual in 21st Century France. Marie avoids being prejudiced against the English, as they aren't really France's enemy any more, and has Republican Ideals rather than being a Royalist, because that's the new legitimate government.)
Wants To Be Important
Common, Moderate 10pts. / Common, Strong 15pts.
The character feels that he's been under-rated and has the potential to be much more if he ever got the chance. He'll suggest himself for whatever he considers to be the most important role in any plan, and sulk if he's shunted off to the sidelines or overlooked. At the strong level, the character will attempt to take an important role regardless of what other people think. This Disadvantage works well with Nebbish.
Wants To Be Taken Seriously
Common, Moderate 10pts. / Common, Strong 15pts.
The character feels that he is not given the respect he deserves, and will take steps to correct it. Unfortunately, such steps often result in the character getting *less* respect. At the moderate level, the character can put up with not being taken seriously by grinding his teeth and toughing through it. At the strong level, the character will *insist* on being taken seriously, regardless of who he's trying to deal with. Many characters with this Disadvantage have other Disadvantages that make it harder for others to take them seriously, such as Bad Fashion Sense, Name, Distinctive Features: Silly-Looking, Reputation: Loser, etc. Villainous characters with this Disadvantage may also have a Enraged/Berserk: When Not Taken Seriously.
Wants To Find A Way To Rid Himself Of His Powers
Common, Strong 15pts. / Common, Total 20pts.
This character, for whatever reason, hates his superpowers. He wants to become "normal" again, and will do almost anything to achieve this. (The character may have other Psychological Limitations which put boundaries around what the character will and will not do in pursuit of this goal.) The character doesn't necessarily dislike using his powers when necessary, but will never do so for anything other than serious reasons. When given a chance to rid himself of his powers, or even if given a lead on how to do so, the character will take it. At the Strong level the character must make a successful Ego Roll in order to pass up such a chance. At Total, he will only pass up such a chance in the most extreme of circumstances.
Wants To Humiliate (Other Person)
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts.
This character has it in for another character. He wants to show the character up in the most humiliating way possible. The reasons for this urge are up to the player. The character seeks to show everyone else that the other character is an incompetent buffoon, or isn't worthy of public acclaim, etc. And to do so he seeks out embarrassing information, attempts to put the character in embarrassing situations, etc. Whenever given a chance to humiliate the other character, he will take it. At the Moderate level the character can suppress this urge when necessary. At Strong, he cannot do so without first making a successful Ego Roll.
Wants To Lead
Common, Moderate 10pts. / Common, Strong 15pts.
The character believes that he is a good leader, or at least would be if he were allowed. He will always volunteer to be leader, or to take on leadership responsibilities. At the moderate level, he can accept not being the leader, if necessary. At the Strong level, he's prone to acting as though he were the leader despite his actual position in the group. At the Total level, use Must Be Leader instead.
Wants To Make The World A Better Place
Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts.
This Disadvantage is a variation on Visionary. This character directs his actions toward improving conditions around the world. Social changes, environmental changes, whatever it takes. The character will take what actions are necessary in order to make improvements. The character may have other Psychological Limitations which will control how far the character will go to achieve this goal. What, precisely, will make the world better is up to the player, and will differ from character to character. For instance, it could be argued that both Ghandi and Hitler had this Disadvantage: Ghandi wanted to make the world a better place by fostering understanding and peace, while Hitler wanted to make the world a better place by removing the "undesirables" from the human population.
Short Digression: Before I go on, and before someone tries to use the last paragraph as "proof" that I am an Anti-Semite or a racist or whatever, let me state that I personally believe Hitler was a fucking nutball who deserves to be where he is: in one of the deepest pits of Hell. I stand by my point, however.
The Strength and Frequency of this Disadvantage determines how and when he will pursue his goal of world improvement. At the Moderate level the character will take all opportunities he can except when necessary not to. At Strong, he will do so unless he makes an Ego Roll. And at Total, he will never pass up a chance to improve the world except under the most dire of circumstances.
Wants To Prove He's Still "Worthy" In His Old Age
Common, Strong 15pts.
The character was in his youth a person of renown in a physically-oriented field of endeavor. But that's all in the past now. Now he is old, and younger, stronger, cooler people occupy the center stage. But maybe, just maybe, there's one last burst of glory in his old bones. The character with this Disadvantage wants to "go out on a high note"; he's on the lookout for "last hurrahs" and adventures that need an experienced hand who doesn't have to come back. The Age Disadvantage at the 40+ or 60+ level is mandatory for this character (and thus, so is the Normal Characteristic Maxima Disadvantage). Various minor Physical Limitations representing the ravages of time are also appropriate. Some characters with this Disadvantage will have the Reputation: Used to Be Somebody, but others will have Reputation: Past Their Prime.
Wants To Save Humanity From Itself
Common, Strong 15pts. / Common, Total 20pts.
This character feels that the human race is surely headed for disaster unless something is done. What precisely needs to be done, and how far the character will go in pursuit of this goal is determined by the player and by the character's other Psychological Limitations. Typically, the character believes that he knows better than anyone else what is good for the "common man"; anyone who disagrees is either misguided or ignorant of the facts. Generally, the character believes that anyone who still disagrees with the character's goal after the "real situation" has been explained is being willfully obstinate. Usually, the character will fixate on one of the "problems" of modern society: war, pollution, overpopulation, hunger, disease, lack of morals, lack of education, racism, etc. and focus his efforts thusly. The character will take any opportunities he is offered to pursue his goal. At the Strong level the character must make an Ego Roll in order to force himself not to do so. At Total, the character cannot force himself to abandon this goal except under the direst of circumstances.
Was Never A Kid
Uncommon, Moderate 5pts. / Common, Moderate 10pts. / Common, Strong 15pts.
This Disadvantage is not usually literally true; a character who did not have any childhood at all is generally better served by taking the Social Limitation, Does Not Understand Human Society or the like. Generally, a character with this Disadvantage had a difficult or unhappy childhood, and feels that he is well shot of that time of his life. He does not like children in general, and hates the noise and mess associated with them. He will not voluntarily associate with children outside of social obligations, and may take pleasure in working against projects designed to benefit children. In many campaigns, this is considered an Uncommon Disadvantage; but if the campaign features Player Characters who are underage, the frequency rises to Common. At the Moderate intensity, the character can put up with children and their needs if it is truly necessarry; at the Strong level of commitment, the character will not give up his prejudices so easily. Often, a character with this Disadvantage will have Wealth or social status-related Perks, and may even have pets as DNPCs.
Weak Willed
Common, Strong 15pts.
This character has a harder time defending himself from any form of persuation or mental influence than normal. He is one who almost always gives in to temptation, and is usually considered a pushover. It's not that he wants to believe all sales pitches and hooker come-ons -- he just can't help himself. Usually, a Player has a good amount of lattitude over how their character responds to NPC's using Interaction Skills upon them -- not so with this Disadvantage. Also, all Presence Attacks and Mental Powers (other than purely damage-causing Powers, like Ego Blast) used against the character are treated as if the character has a x1.5 Vulnerability to them. If the character can make an Ego Roll, he can temporarily "shore-up" his willpower and regain control of his character's actions with regards to hostile Interaction Skills, and will take regular effect from Presence Attacks and Mental Powers.
Wildly Exaggerates
Common, Moderate 10pts. / Very Common, Moderate 15pts.
This character will stretch, but not quite break, the truth. He expands on details, improves them, and presents the final product as the truth. Depending on the character, the exaggerations will be obvious or subtle. In either case, the character does not mean harm by his exaggerations; he simply cannot help himself. In most cases, the character will exaggerate his or her own capabilities or experiences. Other times, the exaggerations will be descriptive (for example, he will speak of "hundreds of goons, all carrying guns" when in truth it was six of them). At the Common frequency, the character only exaggerates in times of stress or when actively trying to impress someone. At Very Common, he exaggerates almost all the time. In either case, this urge can be controlled when necessary.
Will Never Abandon His Subordinates
Common, Strong 15pts. / Common, Total 20pts.
This character believes in the military philosophy of "never leaving a man behind", when those men are under his command. He accompanies his men into dangerous situations and if they are injured gets them out again. In addition, he watches out for the welfare of his men in other situations: if they are arrested, he bails them out and arranges legal representation. If they get into a bar fight, he watches their backs. In games where the character is on a team that doesn't use ranks, or is not the highest ranking teammember, this Disadvantage is instead named Will Never Abandon His Teammates. At the Strong level the character will only abandon a subordinate/teammate if he makes an Ego Roll. At Total, he won't except in the direst of circumstances.
Will Never Admit (Secret About Himself)
Uncommon, Total 15pts.
This character holds some secret about himself so tightly that he will never, under any circumstance, admit it to others. Even if caught in the secret, he won't admit it, but rather will contrive some hastily-constructed explanation. He actively hides the secret, and will sometimes take odd steps to "throw people off the scent" of the secret. (An obvious example would be a homosexual man marrying and having children in order to hide the fact that he prefers sexual relations with men.) The character may have other Psychological Limitations which determine the limits of how far he will go to avoid letting anyone know his secret.
Will Never Break His Word
Common, Strong 15pts. / Common, Total 20pts.
Once this character has given his word to someone, he never backs out of it if he can help it. This is not the same thing as not being able to lie, or being honest. This simply means that the character considers it wrong to break a promise, and will do his utmost to fulfill one, even if doing so puts him in danger or otherwise carries a high price. This does not mean that the character cannot be dishonest or even lie. However, once his word is given, he keeps it come hell or high water. If the character ever unintentionally breaks a promise, or for some reason tries to keep it but is prevented by circumstance, the character becomes guilt-ridden and feels a need to make it up to the character to whom the promise was initially made. At the Strong level the character must make an Ego Roll in order to break a promise intentionally, or to stop trying to make up for a failed promise, and even then will only do so if circumstances force his hand. At Total, he cannot avoid acting in the above-described manner, and would rather die than break his given word.
Will Not "Murder"
Uncommon, Total 15pts.
The character with this Disadvantage has no qualms about using lethal force in combat. Nor does he hesitate to use "excessive" force (bringing a gun to a knife fight, for example). However, he draws a very distinct line between killing to survive and murder. The character will accept genuine surrender, and won't put an extra shot into a downed opponent "just to make sure", he doesn't fire on non-combatants, and won't make lethal booby-traps, etc. It could be a genuine moral decision on his part, or a superstitious fear that something bad will happen if he kills in cold blood, or even a promise to someone he respects. In four-color superhero games, this disadvantage should be restricted to the more "honorable" Villains (as Real Heroes will never choose killing as a first option). This Disadvantage combines nicely with Honorable or Loyal to the Cause for the "noble villain" archetype. In more lethal settings, such as military campaigns, or post-holocaust scenarios, this might be the default attitude for "good guy" characters.
Will Not Harm (Specific Opponent)
Uncommon, Strong 10pts. / Uncommon, Total 15pts.
This character has some connection with a specific opponent (for heroes, this means a villain; for villains, this could be either a rival villain or a hero) that causes the character to avoid harming the other person. He will not necessarily stand idly by and let the opponent act unopposed, but he cannot bring himself to cause physical, mental, or emotional harm to the other person. At the Strong level the character can override this prohibition if he makes an Ego Roll. At Total, he is unable to harm the person except in the most dire of circumstances.
Will Not Hesitate To Sacrifice Himself For Others
Common, Total 20pts.
If a choice has to be made between the character's wealth, health or even life; and the lives of others, the character will choose to save the other person. Every time. This is wider-ranging than "Protects Innocents" since the character will sacrifice himself even for people he doesn't like, or who are his enemies, if they are not the ones causing the life-endangerment. In campaigns where life-threatening situations such as combat are rare, lower the frequency of this Disadvantage to Uncommon (which reduces it's value by five points).
Will Not Hesitate To Sacrifice Himself For The Mission
Uncommon, Total 15pts.
In a situation where the mission's success or failure depends on the personal sacrifice of the character, the character will make that sacrifice, regardless of the cost to himself. This isn't confined to combat missions; a medical researcher with this Disadvantage will gladly infect himself with an "incurable" disease if it will help him find a cure. This Disadvantage is not the same thing as Death Wish or Suicidal; the character has no particular desire to die, he just accepts it as a risk of the mission. If the character is regularly sent on suicidal missions, increase the frequency to Common (which adds five points to it's value).
Will Not Kill
Common, Total 20pts.
Functionally, this Disadvantage is almost identical to Code vs. Killing. They both have similar personal convictions against the use of deadly force, and will never resort to such measures except in the most dire of circumstances (such as "kill or the planet dies" or "kill one to prevent a million deaths"). The difference lays in that the character who Will Not Kill doesn't try to actively dictate his beliefs to his companions. He won't like other people using lethal attacks, but he also won't interpose himself between them and a target.
Will Not Refuse A Mission
Common, Strong 15pts.
This is a stronger version of Sense Of Duty. The character will never refuse to take on any mission given to him by his superiors, regardless of its nature. No matter how menial, dangerous, suicidal, revolting, annoying, time consuming, costly, misthought, or boring the mission is, this character will see it through to the best of his abilities. It is possible that the character will have other Psychological Limitations which alter the character's attitudes about the mission (such as a character with a Code vs. Killing being ordered to assassinate someone). In this case, the character will attempt to think around a solution which makes both of his Psychological Limitations and his superiors happy (such as helping the assassination target go into hiding). In order to force himself to not act in this manner, the character must make an Ego Roll. Even then, he will only consider not fulfilling the mission if it conflicts with one of his other Psychological Limitations.
Will Not Shut Up
Very Common, Strong 20pts. / Very Common, Total 25pts.
This Disadvantage is similar to Talkative, but worse. The character is always talking, does not whisper, and does not seem to have the filter between thoughts and words that normal people do. If no one else is nearby, the character will address thin air. Other Psychological Limitations will affect what is talked about. At the Strong level, the character may make an Ego Roll to shut up for a minute or two if it is absolutely necessary. (Usually because he's been threatened with physical harm.) At the Total level, the Ego Roll is at -5, and then only in the most dire circumstances. This Disadvantage is not recommended for player characters. "Yes, I can shut up. In fact, I'm shutting up right now. This is me, shutting up. Quiet as a mouse, I am. Did you know that mice can--URK!"
Will Not Strike Hand-To-Hand Blows
Common, Strong 15pts. / Common, Total 20pts.
For whatever reason, this character refuses to strike another being with his hands or with a hand-held weapon. He is not necessarily against combat (although that may be); he simply refuses to strike another person in hand-to-hand combat. The character would have no problem with using a ranged weapon. At the Strong level the character can force himself to strike another person in hand-to-hand combat if he makes an Ego Roll. At Total, he will only do so in the direst of situations.
Will Not Surrender
Common, Total 20pts.
This character will absolutely not give up unless killed or rendered unconscious. He will keep fighting, keep trying to escape, keep trying to rescue endangered civilians, etc., until he can no longer physically make the attempt (and even then, he will keep trying if not prevented from doing so). No matter how injured he is, or how much potential danger he is putting himself in, he will not give up. Ever.
Will Only Fight In Self Defense
Common, Strong 15pts. / Common, Total 20pts.
This character will only fight to protect himself or those in his care. He will only use reciprocal force (meaning, he only uses as much force as he is attacked with), and will encourage others to either not start fighting or to cease fighting once it has begun. At the Strong level the character must make an Ego Roll to be able to start a fight himself. At Total, he would never do this except under the direst of situations.
Will Sacrifice Himself For (Specific Person, Or Group)
Common, Total 20pts.
This character is so dedicated to another person or a group of persons that he would die to protect them. The other person's welfare is the character's primary concern, and the character will take whatever steps are necessary to provide for and protect the object of his dedication. Only the direst of cituations can posibly dissuade the character from this dedecation.
Will Try Anything Once
Common, Strong 15pts.
This character is willing to do just about anything once. Eating strange (and possibly dangerous) things, going to strange (and possibly dangerous) places, and doing strange (and possibly dangerous) things are all part of this character's every day life. The character may freely decide that he doesn't like something once he's tried it, or even decide that he likes something and then later change his mind. But if he's never done something, he is willing to. The character may have other Psychological Limitations which conflict with his willingness to try new things. In this case, the character is free to refuse to do something. For example, a character who has both Acrophobia (the fear of heights) and Will Try Anything Once can freely refuse to go skydiving, even if he never has gone and a friend suggests it to him. Otherwise, the character cannot refuse to do something new unless he makes a successful Ego Roll. Even then, such a roll should only be made if the activity is something that is definately dangerous (like freeclimbing the Empire State Building). In cases that are blatantly life-threatening (like playing Russian roulette), the character gets a +3 bonus to the Ego Roll (he hasn't lost all sense of danger, after all).
Wiseguy
Uncommon, Moderate 5pts. / Uncommon, Strong 10pts. / Uncommon, Total 15pts. / Common, Moderate 10pts. / Common, Strong 15pts. / Common, Total 20pts. / Very Common, Moderate 15pts. / Very Common, Strong 20pts. / Very Common, Total 25pts.
This character tends to make witty or sarcastic comments at totally inappropriate moments. It is not that he isn't sensitive to the seriousness of a situation, or that he doesn't respect the circumstances. Humorous remarks are simply how he deals with stress. The character is different from someone who Thinks He's A Comedian in that his remarks are actually funny (and it should be noted that these two Psychological Limitations are not incompatible. At the Moderate level, the character can stop making these comments if he needs to. At Strong, he must make an Ego Roll to do so, and at Total he cannot stop at all, since the direst of circumstances only make him joke that much more (even if his life is on the line). At the Uncommon frequency, the character only makes these comments at very stressful times. At Common, the character has a hard time not making witty remarks during any sort of stressful or confrontational moments. And at Very Common, the character is constantly making wisecracks. Surprisingly, this Psychological Limitation also works well with Pessimist, Depressive, or Fatalistic.
Womanizer
Common, Moderate 10pts.
This character enjoys being with many women (not necessarily at the same time), with no intention of actually committing to any of them. He may well make promises to them, but will never keep a promise of marriage (or even monogamy). This is not to say that he is a cruel, uncaring bastard. The character may well love every woman he dallies with -- but a dalliance is all she will ever be to him because sooner or later he will find someone else. In addition, he may treat his "current fling" as if she were a work of art to be cherished: showering her with gifts and flowers, taking her to dine at the finest restaurants, etc. The character can suppress his "natural urges" when necessary. This Disadvantage is only appropriate for male characters.
Won't Allow Bystanders To Come To Harm
Common, Total 20pts.
The character does not believe that "collateral damage" is acceptable in combat. He will go out of his way to ensure that people who aren't involved in a combat aren't hit by stray shots, accidentally blown up, have buildings fall on them, etc. If a bystander is somehow injured, the character will drop everything to see to that bystander's health as soon as he can. (Note that if an opponent is *continuing* to endanger bystanders, the character will usually deal with that first.) Characters with this Disadvantage usually also have some form of Attitude About Lethal Force, like a Code vs. Killing, but it is not mandatory.
Won't Give Up On (Ideal, Person, Or Group)
Uncommon, Total 15pts. / Common, Total 20pts. / Very Common, Total 25pts.
The character believes in something or someone, so passionately that no matter what happens, they will keep believing. Examples include: Won't Give Up On Communism as a Viable Form of Government, Won't Give Up On His Black Sheep Brother, Won't Give Up On The High School Choir, etc. Even if the object of this Disadvantage completely betrays the character, he will continue to believe that with just a little more effort, everything can be made right again.
Workaholic
Very Common, Strong 20pts. / Very Common, Total 25pts.
This is a harsher version of Hardworking. The character has lost contact with his original goals in working, and now works as an end in itself. He cannot bear to be "unproductively" idle, and spends most of his waking hours at his job. If he has a hobby, it is one that he works very hard at. A Workaholic character may neglect his family and friends for weeks or months at a time, and usually is a prime candidate for illnesses relating to stress and overwork. Often, the character hates his job and mourns that he "cannot" spend more time on his personal life and loved ones, but feels that he is too essential in his position to take time off, or fears that he will be fired if he dares show weakness. At the Strong level, the character can be forced to relax just a little bit and deal with his personal life; at the Total level, even that seems impossible.
Worried About The Effects His Powers Have On Others
Common, Moderate 10pts.
This Disadvantage is only appropriate for characters who have particularly hazardous or insidious superpowers. It is most effective with characters whose powers are based around mental, poisonous, or radioactive concepts. The thought that his powers might be accidentally harming others nags at this character. He is careful of how and when he uses his abilities, and hesitates before using them in what he considers to be an indiscriminate fashion.
Worrier
Common, Strong 15pts.
This character doesn't just worry, he worries about everything. Whether his car is going to need to be fixed, whether his wife loves him, whether his kids are doing drugs, whether he's going to lose his job over a mistake he made. He doesn't worry about improbable of unlikely events (like a meteor striking and killing him). He does worry about plausable events that might have unpleasant consequences. The character must make an Ego Roll in order to stop worrying about a particular matter. However, this lack of worry is temporary. The character always eventually begins worrying again on that subject (and continues to worry about all the other subjects).
Xenophile
Common, Moderate 10pts.
This character likes to meet strangers, to learn new languages, to see new places, and to explore new cultures. He doesn't necessarily dislike his neighbors, his own language, or his own culture. He just thinks that the cultures of other lands are fascinating, nearly to the point of obsession. However, the character does retain control of his fascination, and can modify his behavior if he needs to. The character can either be fascinated with all foreign cultures, or "specialize" in a single culture. For example, an Anglophile is a person fascinated with British culture, while a Sinophile is fascinated by Chinese culture. A person who dislikes meeting strangers, learning new languages, etc. would be Xenophobic.
Young
Very Common, Total 25pts.
This Disadvantage is appropriate only for a character who is still either a child or a teenager. He is still immature to some extent, and doesn't fully understand the responsibilities of adulthood. He is determined as to his goals and opinions, and intolerant of those who disagree with him. He tends to be inexperienced, enthusiastic, and overconfident, not to mention impulsive and compulsively sarcastic. This character is usually impatient, rarely thinks ahead for more than a few days, and has a very selective sense of tact (meaning that he is tactful with his parents -- sometimes -- but rarely with anyone else). In order to avoid acting in this manner, the character must make an Ego Roll.
Youthful Confidence And Determination
Common, Strong 15pts.
The character's youthful strength and lack of experience give him the belief that anything is possible if he just tries hard and long enough. He isn't very good at telling when a task or opponent is beyond him, and often will try long beyond the point where it's obvious he failed. A character with this Disadvantage tends to become depressed or sulky if he fails, but quickly recovers to vow to try again. Many characters with this Disadvantage will have the Social Limitation: Minor at the less restrictive level; this sort of attitude doesn't usually kick in until the late teens, when a person starts coming into his full physical power.
Zealot
Common, Total 20pts.
This character colors everything he sees, hears, and experiences through the lens of his intense religious beliefs. He believes that those who follow other faiths are merely misguided (at best) or evil (at worst). Arguing with him about the merits of his faith is useless, since he knows he is right -- and since you are arguing, you are obviously going to hell. When given the chance, he will try and convince "nonbelievers" to convert to his own view. The character is also perfectly capable of performing acts that are in general considered immoral or illegal if those acts further the aims or beliefs of his faith. Examples from the real world would be Christians who murder doctors and bomb abortion clinics, Muslims who drive truckloads of explosives into Jewish schools, or Jews who believe that the only way to solve the "Palestinian Problem" is rounding the Palestinians up and putting them in concentration camps. Short Digression: That last example is a quote I heard come out of the mouth of the head of the Jewish Anti-Defamation League, during an interview on National Public Radio. Ironic, isn't it? I guess when the JADL says "Never Again" they don't mean it to apply to them. While it is certainly possible to be a Zealot about any religion, this Disadvantage is most appropriate for followers of Christianity (especially Roman Catholicism, Southern Baptism, and Mormonism), Islam, Judaism, and Sikhism. By definition, this Disadvantage includes Devout; thus, it can't be taken in addition to this Disadvantage.
<<tabs "[tag[~Ranger Spells]sort[order]]">>
---
//Quick Links:// | [[Cantrips|~Ranger Cantrips]] | [[1st|~1st Level Spell]]
!! [[~Riding]]
''Type:'' Agility Skill (roll: 7 + (DEX/3) or less)<br>
''Cost:'' 3 Character Points for a base roll, +1 to the roll per +2 Character Points
This Agility Skill allows a character to ride a living creature under difficult circumstances. A character with Riding knows how to stay astride his mount, how to make the mount move in the direction and way he wants it to, how to equip and care for the animal, and so forth. Riding does not allow a character to train his mount to perform tricks; that requires [[~Animal Handler]]. Nor does it allow him to perform acrobatic-type maneuvers in the saddle, which requires [[~Acrobatics]], though the GM might allow a character with Riding to
attempt such stunts at a -3 penalty.
In routine circumstances, a character can ride any mount for which he has a [[~Transport Familiarity]] without making a roll. Things like a pleasant ride or gallop through the countryside, pulling a wagon full of hay, or jumping a small obstacle for fun don’t require a Skill Roll. Only when the character tries something unusual, or is in stressful conditions (such as combat or an emergency), does he have to make
a roll to ride. When a character buys Riding, he receives for free a [[~Transport Familiarity]] with a 1-point group of riding animals (Camels, Dogs, Equines, Flying Beasts, Huge Beasts, Swimming Beasts, or other groups created by the GM). He may buy other TFs as usual for that Skill. At the GM’s option a character can use Riding with an animal he doesn’t have a TF for, but at -3 to all rolls.
In some cases, animals have a Riding Skill of their own. This doesn’t allow them to ride other animals, but rather functions as a Complementary Skill for a rider’s Riding. This represents the mount’s training at helping a rider keep his seat, avoid falls, and the like. The animal should take a -1 Limitation, Complementary To Rider’s Skill Only, for its Riding.
<div class="tc-table-of-contents">
<<toc-selective-expandable '~Rules'>>
</div>
!! [[~Savage]] Occupation Package
Savages are warriors from more primitive and / or less civilized lands who rely on sheer athleticism and moxy rather than fancy or well crafted armaments. Savages tend to focus on survival and overall fitness.
Savages can be somewhat similar to Light Foot but without concentrating overly much on the mastery of a specific weapon (to a Savage everything is a weapon), and with more concentration on raw athletic ability.
Despite the connotation of the word "savage", Savages are not ravening brutes by default; they are simply primal and unspoiled by more advanced modicums of behavior. Many Savages follow a personal or cultural Code of behavior that, while typically more practical and/or direct, is nevertheless as binding to them as a well defined Code of Chivalry is to the most hide-bound and chivalrous of Knights. This is a concept often referred to as "the Noble Savage".
!!! §Description
The caster projects a 4m x 2m oval "wall"( which stands 4m tall) of shifting shadows which distorts sight lines through the wall for as long as the caster can maintain concentration upon the wall.
!!! ~Effect
Extra Time (Full Phase, Only to Activate, Delayed Phase, -1/2), OIF (Holy Symbol; -1/2), 1 Continuing Charge lasting 1 Hour (-1/4), Incantations (-1/4), Gestures (-1/4)
<<<
Change Environment: -3 to sight PER rolls (Real Cost: <$text text={{{ [[15]divide[2.75]fixed[0]] }}} />)
<<<
<div class="tc-table-of-contents">>
<<toc-selective-expandable '~Skill'>>
</div>
Abject Poverty
Frequently, Major 15pts.
This character is among the poorest of the poor. With an Income of less than a thousand dollars a year. Housing is usually foregone, and even eating day to day can be problematic. Abject Poverty should not be taken if you have a Vow of Poverty (that's different) or if some other institution provides for you (like the Government Sanction). It is possible that the character might be arrested in some places for lack of money, vagrancy being illegal in many cities.
Always Angry And Hostile
Very Frequently, Minor 15pts. / Very Frequently, Major 20pts.
This character is always complaining, always taking things the wrong way, always seeing offense, and always one inch away from giving you a fat lip. Such characters do not have many friends (if any at all), and most of his associates think he is a boor. This Disadvantage is really only appropriate for NPCs and Villains (especially low-intelligence bricks -- the type of brick that is little more than a superstrong thug). If a player character takes this Disadvantage, it is strongly recommended that it not be taken above the Minor level, representing a character whose temper is always on the surface, but one who could put a damper on it if needed. Otherwise, at the Major level, the character is often blowing their top. This Disadvantage is often taken along with the Psychological Limitation of the same name, and at roughly the same severity level.
Always Broke
Frequently, Minor 10pts.
Regardless of the character's wealth, he almost never actually has money (or the equivalent) with him when he needs it. It's been blown on gambling or other frivolities, or his wallet is in his other pants, or he forgot to pay his credit card bill... again. As a result, he has to borrow money for necessities, or convince others to pay his way. Often, any new money that comes in must be used to pay back the people who have lent him previous sums, and his pockets are empty again. The character will have a reputation among his friends and acquaintances as a mooch and someone who can't be trusted with money. Tradesmen and merchants will look askance at the character. In societies where the man is expected to pay for any female companions, he will have trouble getting second dates. (Women with this Social Limitation usually find a steady sugar daddy quickly.) A classic example of a character with this Social Limitation is Wimpy, Popeye's friend. "I will gladly pay you Tuesday for a hamburger today."
Amnesia
Very Frequently, Major 20pts.
This character has no conscious memory before a certain date or event. They have no childhood memories to call upon, no contacts from before except for those who for some reason contact him or her (such as a DNPC). If the character maintains more than one identity (for example, a superhero with a Secret Identity), generally Amnesia causes the character to forget one of his identities.
Angel Of Death
Frequently, Major 15pts.
Also known as "Jessica Fletcher Syndrome." The character has an uncanny knack for being in the vicinity of murders. Any time the character goes to a new town or to a special occasion, a murder will occur, requiring him to solve it. If the character avoids new locations or experiences, the murders will come to him. The character will quickly become acquainted with a number of police officers, especially in the Homicide Division. Death becomes the character's constant companion, and soon everyone knows at least the vague outlines of his exploits. The character will be invited places based solely on their expertise with murder, and eventually people will notice the statistical improbability of these murders always happening around the character. It is recommended that the character invest in skills and perks helpful to an amateur detective. Characters with this Disadvantage may also have the Psychological Limitations: Must Leave No Murder Unsolved, Nosy, or Cannot Refuse a Challenge. They may also be Watched by the Police.
Atavism
Occasionally, Minor 5pts. / Frequently, Minor 10pts.
This is the reappearance of morphological traits already lost to human beings through evolution. Such cases as a person born with his body covered in thick hair, with a sacral tail, or with supernumerary mammary glands (and their accompanying nipples) are all considered Atavistic characteristics. In the past, Atavism was used by some to support racial discrimination. The nineteenth Century Italian physician Cesare Lombroso built a "theory" (with no scientific evidence to support it) by which "criminals and inferior peoples" could be easily identified due to the presence of Atavistic traits. It was assumed that people displaying such traits were genetically inferior, and such theories were used by Colonial empires and the Nazis to justify their racist actions. Usually, such features are merely inconvenient, though they can sometimes lead to other health problems. Thus, the Physical Limitation of the same name can also be taken.
Attainder/Corruption Of Blood
Frequently, Major 15pts.
An ancestor of this character performed some deed so dark and terrible that the aftereffects and punishments are still felt and suffered by the descendents of the ancestor. Despite the fact that the character himself is guiltless, he is seen as a beneficiary and perpetuator of the original crime. In the case of Attainder, the character is innocent of the crime though seen as guilty by the general public. In the case of Corruption of Blood, the character may not have committed the original crime, but he certainly doesn't have any qualms about committing a similar crime. This Disadvantage is generally unsuitable for modern campaigns. It is more appropriate for a medieval or fantasy campaign.
Bad Credit
Occasionally, Minor 5pts. / Frequently, Minor 10pts.
This character either through their own abuse or through identity theft has acquired bad credit. It is difficult to make major purchases with bad credit. Basically, the character is limited to his income. His income status really determines how frequently he is likely to be affected, a middle class person would be affected Frequently, Well-Off would be affected occasionally. If your character is Filthy Rich then this is not a Disadvantage. Often, this character will have related Psychological Limitations the define how the character got this Disadvantage.
Bad Fashion
Frequently, Minor 10pts.
This character, no matter what he does, can't seem to wear anything close to the height of fashion. His friends tease him and his enemies make fun of him. Interaction Skills (excluding Aminal Training) are made at a -1 penalty due to the distraction the poor taste in clothing causes.
Biggest Fan
Frequently, Minor 10pts. / Frequently, Major 15pts.
This character has a fan. This other person is a devoted follower of the character, and there is nothing that the character can do to change it without treating the Fan like dog shit. The fan shows up whenever the character makes a public appearance, runs a fan club which talks about the character and boasts of his powers, and opposes anyone who disparages the character. If the character has a Public Identity, he can expect to find the Biggest Fan hanging out around his home or office, and might even catch the Fan pawing through his garbage looking for souvenirs. Even if the character's true identity is not known, the character will discover that he can't seem to go anywhere without the Fan showing up. Other characters will begin to avoid contact with the Fan's "hero" in order to avoid the fan. In addition, the character will soon acquire a reputation for having followers. The Fan should not be purchased as a follower, as he rarely will ever do what the character wants him to do. Likewise, he doesn't necessarily have to be taken as a DNPC; just because he gets the character into trouble doesn't mean that he gets himself into trouble. Also, the GM should be careful to not turn the Biggest Fan into a Stalker. It should be noted that it is possible for the Biggest Fan of a Player Character to be another Player Character.
Bigmouth/Braggart
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Frequently, Minor 10pts. / Frequently, Major 15pts.
The character is known for his inability to shut up, primarily about his own abilities or actions. As a result, those who dislike braggarts or excessive talk will avoid him, and many people will discount whatever he says as exaggeration. If the restriction level is Major, the supposed braggart will often be attacked, or dared to "put up" to prove his words.??This Disadvantage is usually accompanied by other Psychological Limitations, including: Bigmouth/Braggart, Compulsive Liar, or Will Not Shut Up. An interesting variant would be to combine it with Truthful. Cannot Turn Down A Challenge also works well with this Disadvantage.
Bounty
Frequently, Major 15pts.
This character has a price on his head. A reward has been offered for the character's capture, or at least evidence of his demise in extreme cases. Precisely who put the price on the character's head and why are up to the player and the GM. The usual candidates include dishonorable noblemen, the Mafia, and even law enforcement agencies, depending on the genre of the campaign. Note that this Disadvantage is not the same thing as the Hunted Disadvantage, since the organizations or individuals mentioned above may not necessarily be actively hunting the character (unless the character also takes the Hunted disadvantage), but rather they've offered to pay a handsome reward to whomever does their dirty work for them. This works similar to the "Rogue's Gallery" option for Hunteds, except that the player has no say in the list of possible Hunters.
Cannot Drive Legally
Frequently, Minor 10pts.
This Disadvantage applies to a character who has either had their driving privileges legally removed or who has not come into them yet. Its only appropriate for modern day campaigns. It is possible that the problem is temporary; that is, its something law related such as a conviction for joyriding or drunk driving. It could also be that the reason is more permanent, but in that case the character will likely have a Physical Limitation that makes driving impossible (such as having grand-mal epilepsy or blindness).
Celebrity
Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts.
A character with this Disadvantage is a highly sought after individual. They are famous for one reason or another, as determined by the player (possibilities include being a rock star, an actor, the head of a multinational corporation, a well-known government official, or even a decorated war hero). This Disadvantage is different from the Social Limitation Public Identity in that the character doesn't have any enemies gunning for them (at least in the beginning). In addition to being constantly bothered by paparazzi and the public, the character is constantly asked to set aside time for a myriad of social events and appearances. The nature of this Disadvantage is akin to not only living in a fishbowl, but also being the most colorful fish. At Minor severity, the character's life is public record, and his private life is intruded on regularly. At Major, this intrusion is such that the character is considered to be a Contact by anyone who they've ever met. At Severe, they may also be considered a rival, whether or not the character knows it.
Certifiably Insane
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Very Frequently, Severe 25pts.
It is a matter of public record that the character was institutionalized for insanity. How well this is known is indicated by the frequency. At the minor level, the character is "much better now" and allowed to walk around freely. However, those who find insanity unpleasant to think about will avoid the character, some employers will not hire him, and any "crazy-sounding" statements will be viewed with extreme suspicion. At the major level, the character is still considered insane, and will be locked up and/or drugged if he does not escape. At the severe level, the treatment the character will receive is lobotomy or euthanasia. It is not necessary for the character to be insane to take this Disadvantage, or indeed to take any Psychological Limitations whatsoever. After all, just because you aren't delusional doesn't mean they won't lock you up for screaming about robot assassins sent from the future. Just ask Sarah Connor.
Civilians Just Don't Get It
Occasionally, Minor 5pts. / Frequently, Minor 10pts.
The character has had special training and experiences that no one who has not gone through a similar process could understand. Classically, this is military training, but could also apply to elite police or firefighting units. This is generally a group Disadvantage, triggered by two or more of such people meeting at a social event. They will tend to gravitate towards each other to talk shop and tell war stories, and others who don't share this bond will find themselves uncomfortable in the conversation (or even actively shut out.) The frequency of this Disadvantage should be chosen based on how often the character will be meeting others with the same Disadvantage.
Clothes Are Shredded By Powers
Occasionally, Minor 5pts.
The powers of this character have a detrimental effect on the character's clothing. The exact reasons why depend on the character's concept and the player's choice. For example, the character could grow into a nine-foot-tall hulking brute, whose clothes are ripped to tatters by his expanding body. Or the character could burst into flames, incinerating his clothing in mere seconds. Regardless of the exact circumstances, the character's clothes do not survive the activation of the character's powers. This generally leads to uncomfortable situations and embarrassment for the character and those around him.
Cocky
Frequently, Minor 10pts. / Frequently, Major 15pts.
The character is seen by others as cocky and "full of himself." Some people will even see him as arrogant. Usually, other people will confine themselves to verbally telling off the cocky person, and avoiding his presence (especially when it seems likely to endanger them.) At the Major level, other people will attack or challenge the supposedly cocky person to "take him down a peg." This Disadvantage is often taken with the Psychological Limitation Cocky.
Constantly Scrutinized by the Media, Government, and the Public
Very Frequently, Minor 15pts.
The character with this Social Limitation is under constant surveillance by the above-mentioned groups. Everything he does or says is recorded and analyzed; everyone he comes into contact with is investigated, he has no privacy. The level of Disadvantage is based on the premise that the character is unlikely to do anything wrong. If the media or government is hostile to the character, a Watched Disadvantage would be more appropriate. A character with this Disadvantage cannot take Secret ID, although Harmful Secret would still apply.
Constantly Shooting His Mouth Off
Frequently, Minor 10pts.
The character is believed by others to lack conversational tact. They will avoid being seen with him at social gatherings, or bringing him along in situations requiring diplomacy. Persons with this Disadvantage often also have the Psychological Limitation of the same name, but may instead have any other Psychological Limitation of a similar nature.
Creepy
Very Frequently, Minor 15pts. / Very Frequently, Major 20pts.
Something about the character makes people's hackles rise, and raises goosebumps. They feel very uncomfortable around the character, no matter how personable he may be. At the minor level, this merely makes people avoid the afflicted person. He will find it difficult to be invited to social gatherings unless his presence is mandatory, and seldom has good luck with romance. At the major level, people will actively attempt to drive him off, by force if necessary. Typical Psychological Limitations associated with this Disadvantage include Lecherous, Morbid and Relates Everything to His Favorite TV Show. Some Distinctive Features, like Albino, Smell of Death, and Subtly Wrong Features may be applicable, as is the Physical Limitation Catalepsy.
Criminal Conviction
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Occasionally, Severe 15pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts. / Very Frequently, Minor 15pts. / Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character is known (by at least some) to have been convicted of a crime. The frequency determines just how well known that conviction is. Effects can range from merely being snubbed or turned down for good jobs, through beatings and denial of housing, to even being lynched, depending on the nature of the crime. Note that the character does not actually need to have been convicted, so long as those around him think he was. This Disadvantage is in fact more limiting to those who are innocent of the crimes listed. This Disadvantage often is accompanied by a Watched by a probation officer or police, or even a Hunted if the character failed to serve out his sentence. Particularly vile crimes may also rate a negative Reputation.
De-Licensed
Occasionally, Minor 5pts. / Frequently, Minor 10pts / Frequently, Major 15pts. / Frequenly, Severe 20pts.
The character was at one time a member of a profession that has an internal organization that decides who can practice the profession, and has been barred from that profession by said organization. Many professions have their own names for this, such as "Defrocked," "Disbarred", "Kicked off the Force" or "Dishonorably Discharged." If this is known to others, it will cause negative reactions. It's generally assumed that professional organizations protect their own, so in order to be kicked out, the character must have done something truly bad. At the Major and Severe levels, the character is continuing to practice the profession without the proper license, which could result in a prison sentence or execution if caught. If the circumstances which caused the delicensing are known, the character may also have a negative Reputation.
Dead
Frequently, Severe 20pts.
A character with this Disadvantage is no longer living, yet still functions in the real world. This character has an odor of death about him, and may be in a state of decay. One major problem for this character is that when someone is dead, he loses his citizenship and any rights he had in his country of origin. Another problem he has is that he doesn't heal Body damage normally. This character may only heal Body in an unnatural way.
Debt
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Occasionally, Severe 15pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts. / Very Frequently, Minor 15pts. / Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
This Disadvantage goes beyond merely owing money, which most people do. It does not mean being merely unemployed (though that may be part of it). Debt means that the person owes so much money that she cannot engage in normal social interaction. He cannot usually go out for drinks, or a meal, or any event which costs money, unless someone else picks up the tab. In extreme cases, he might even be in danger of losing his home, car, everything he owns as creditors seize his paltry (or not so paltry) assets to make good on some of the debts. At the Minor level the character's debt simply prevents him from engaging in normal social interaction with his friends, co-workers, and colleagues, the frequency determined by how often the character's social life is affected. At the Major level, not only does the character have no hope of buying a candy bar and slurpy with his friends, but he's constantly worried about whether or not his car will be outside when he's done not buying the slurpy, if his house will be foreclosed, if his bank accounts (such as they are), will be emptied. Again, frequency is a function of how often the character's debt affects his interaction with everyone else. For example, Occasional, Major indicates the character owes a great deal of money but doesn't have much to worry about in terms of assets ("Sure, I can't get that slurpy, but it's not like they can take my car - what car?"). Of course, if the character manages to get a car... Severe should be taken only by a character whose creditors are likely to want more than the family home, i.e. a loan shark. It might then be appropriate to take a Hunted of some sort as well.
Dependent
Frequently, Minor 10pts.
The character is known to have someone who is dependent on his support (usually a child or invalided relative, though in some societies spouses will count as well.) The character is expected to devote a large part of his time and effort to caring for the dependent individual, and to always make sure the dependent is taken care of before seeing to his own needs. Failure to do so will meet with disapproval and, in some societies, government intervention. Especially with children, the character may be put into social situation where he's considered solely by his relationship. "This is Jimmy's mother. Meet Bobby's father." The dependent is usually a Dependent Non-Player Character, but may also be bought as a Follower.
Dependent Upon Others For Physical Needs
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Occasionally, Severe 15pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts. / Very Frequently, Minor 15pts. / Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
This Disadvantage represents a person who cannot fully take care of himself, usually due to some previous accident or illness. The possible causes are many, though not exhaustive. In general, the needs for which the character is dependent revolve around food, clothing, going to the bathroom, and basic cleanliness. The level of disability suffered by the character dictates the point value of the Disadvantage. A person who has cerebral palsy, for example, might be able to feed, clothe, and bathe himself perfectly well, but might need help carrying his takeout barbecue in from the car or even opening the ketchup bottles. On the other hand, a victim of severe Alzheimer's disease might not be able to take care of themselves in any way.
Detached From Humanity
Frequently, Minor 10pts.
A character with this Disadvantage has held himself apart from normal society for so long that he no longer knows how to correctly interact with anyone outside of his daily experience. Because of this detachment, he no longer reacts appropriately, does not communicate well, and doesn't get pop culture references that have become general knowledge. Worse for the character, he has become so used to this "condition" that he really isn't interested in learning how to fit in.
Disciplines Of Faith
Very Frequently, Minor 15pts. / Very Frequently, Major 20pts.
The character is known to belong to a religion which requires some form of behavioral discipline from its members. Details vary from religion to religion, but usually deal with wearing special and easily identified clothing or clothing accessories (such yamulkas, or the Sikh requirement of carrying a bladed weapon)), not eating certain foods (Hindu vegetarianism, for example, or Mormon forbearance of caffeine), or prohibitions against certain behaviors (such as the Jehovah's Witness prohibitions against accepting blood products or taking oaths). As already noted, the possibilities are nearly endless. Others will expect the character to live up to the standards of the religion, and will be disappointed or hostile if he fails to do so. If the particular religion the character belongs to is unpopular in the campaign area, use the Major level of restriction. Most characters with this Disadvantage will also have Psychological Restrictions representing their religious beliefs.
Disowned
Occasionally, Minor 5pts. / Frequently, Minor 10pts.
The family (or group) of a disowned character will refuse to acknowledge the character as belonging to the family. The character will gain none of the benefits otherwise associated with the family, and may suffer from embarrassment from his disowned status. However, other than interaction with the family, and perhaps those directly related to the family, the character will suffer little serious consequences from being disowned. He may continue to have a fruitful, although saddened, life on his own.
Doesn't Understand Modern Life
Frequently, Minor 10pts.
The character is a relic of bygone times. He is incapable of keeping up with pop culture, and often finds himself out of place in social settings. He can study modern culture as much as he likes, but he never seems to "get it", and will find himself unintentionally performing some faux pas.
Dull
Frequently, Minor 10pts.
The character is boring. Try as he might, people find him uninteresting. The character could be very smart, but in socially inept in delivering his thoughts in an interesting manner, or it could be because he is stupid and has no interesting thoughts to deliver. When the character starts a conversation, other people suddenly remember they have to be someplace else.
Easily Obligated To Others
Occasionally, Minor 5pts. / Frequently, Minor 10pts.
The character is known to honor his obligations, and to accept such obligations readily. Thus others will sometimes attempt him into making such obligations to them, usually to his detriment. This Disadvantage only determines how other characters see the character; if he actually is easily obligated, he should buy an appropriate Psychological Limitation such as Always Keeps His Promises or Slave to Duty as well.
Easy To Read
Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This Disadvantage is for a character who has difficultly hiding his emotions and intentions from others. It is possible he lacks the ability to control his body language and facial expressions as well as most people or he generates some sort of "vibe" that others pick up on easily. He also suffers a penalty of -1 to -3 with Interaction Skills in appropriate circumstances. At the Frequent level, the character can occasionally hide his thoughts and feelings with an Ego Roll at -3. At the Very Frequent level, the character is an open book 24/7.
Embarrassing Hobby
Occasionally, Minor 5pts. / Frequently, Minor 10pts.
The character has a hobby that he is ashamed to share with others. He will perform the hobby in secrecy, keeping this portion of his world carefully apart from his "normal" life. Discovery of the hobby may raise a few eyebrows and cause a few jokes to be told behind the characters back, and the character believes he would lose social status in his normal life. This Disadvantage is only valid if the character is embarrassed to be associated with the hobby.
Emotionally Cold And Distant
Very Common, Moderate 15pts.
The character has emotions, but is very uncomfortable with expressing them or engaging in physical contact. Thus, he tends to keep away from others, and keep a stoic demeanor at all times. This tends to give others the impression that the character is unfeeling or even cruel. Other Disadvantages that go well with this one are Mysterious and Secretive, Never Explains Himself, and the Social Limitation Seen as a Cold Fish. An interesting combination can be made with Beserk/Enraged, to model a character who can only show emotion in combat.
Escaped Slave
Frequently, Major 15pts.
This character usually has something that marks him as a slave. If this is recognized, there's a chance that anyone who sees it will turn him over to local law enforcement or to his master. It is recommended that someone with this Disadvantage also take a Distinctive Feature that would be his master's "brand".
Ethnicity
Frequently, Minor 10pts.
A character with this Disadvantage is a member of a racial or cultural group that is somehow out of the norm for the surrounding society. The character's ethnic group need not be in the minority (such as being a black person in the Southern United States of the 1930's, or being a Jew in Germany in 1939), though that is certainly the most common manner in which this Disadvantage is taken. The character could belong to an ethnic group seen as barbarians by greater society (such as a Goth traveling through the Roman Empire) or even for their cultural refinement (a Greek among early medieval Arabs). Whatever the specifics, the character is set apart by his cultural or racial origins and thus treated differently by the majority.
Evil Twin
Uncommon, Moderate 5pts.
A character with this Disadvantage has a genetic duplicate (either a twin sibling, a clone, or a coincidental doppelganger) who has all of the characteristics and powers of the original character. The character and his Evil Twin might even have the same skills and abilities. However, their moral centers and belief systems run counter and in opposition to each other. If the character is a hero, he will tend to get blamed for all of the harmful and criminal actions performed by his twin; likewise, if the character is a villain, the "evil" twin's beneficial actions and heroic reputation will cause the character's criminal associates to not trust the character. Either way, the character may take the Evil Twin as a Hunted in addition to taking this Disadvantage.
Excommunicated
Frequently, Minor 10pts. / Frequently, Major 15pts.
This Disadvantage reflects the fact that the leadership of the character's religion have declared him an "infidel", making him a pariah among others who practice that faith. At the Minor level, the religion in question is merely a societal or political power issue (like most religions in real life). At the Major level, the religion possesses some real supernatural power or enough influence in society as a whole to make the character's life difficult.
Exposed/Obvious Cybernetic Parts
Frequently, Minor 10pts. / Frequently, Major 15pts. / Very Frequently, Minor 15pts. / Very Frequently, Major 20pts.
The character has cybernetic parts that are difficult or impossible to conceal. This Disadvantage presupposes a society where people with such parts are common enough that there is a general trend of public thought about them. The frequency depends on whether the parts are Concealable with Effort or Unconcealable. Minor restrictions indicate a society that dislikes cyborgs but as a rule does not fear them. "Unmodified" humans avoid them, cyborgs don't get invited to fancy balls, some businesses may refuse to serve the character. Major restrictions apply in a society where cybernetic parts are illegal, or Cyberpsychosis is believed to be a rampant problem among the mechanically enhanced. Here cyborgs may be imprisoned, or preemptively attacked. Note that if there are areas in the campaign where exposed cybernetic parts are not really socially impairing, this Disadvantage must take the option "Not Limiting in some Cultures or Societies", which lowers it's value by five points. It is mandatory to take "Distinctive Features: Exposed/Obvious Cybernetic Parts" at the concealable w/effort or unconcealable level with this Disadvantage. Various Physical Limitations may also apply.
Familial Social Obligations
Frequently, Minor 10pts.
The character's family is well-known for its social status, and as such is socially obligated to do certain things. These may include sponsoring charity, hosting parties and meetings and even public service. As a member of the family, the character is expected to support or perform these functions as well. The character should take a combination of Wealth and Perks to indicate his high social status.
Familiar Face
Occasionally, Minor 5pts.
The character has one of those faces that people are sure they've seen somewhere before. The majority of people shrug this off, but every so often someone will try to figure out who the character is, or reminds them of. Depending on the personality of the guesser, this could be very embarrassing or amusing. This should not be taken in conjunction with any form of Distinctive Features, as the point is that the character is indistinguishable from dozens of other people at first glance. Amnesia about who the character really is works amusingly with this Disadvantage.
Family Connection
Frequently, Minor 10pts.
The character is known to be related by blood or marriage to someone famous, important or wealthy (or all three!) It is widely assumed, therefore, that the character has an "in" to this special relative. Thus, the character is often bothered by those desiring introductions to the special relative, may be assumed to have similar skills/wealth by those who don't pay attention, and in some cases may be targeted by the special relative's enemies. (If the last is likely to be common, raise the restriction to Major for +5 Points.) Taking the special relative as a Contact is quite possible, but not mandatory. People with this Disadvantage sometimes also have Hates (Name of Relative) or a Rivalry with the relative.
Famous
Frequently, Major 15pts.
A famous character is known and recognizable by the general public. The character could be famous for a variety of reasons, perhaps he is a well known politician, or a world renown scientist. Being famous does not mean that throngs of fans swarm him whenever he appears in public. For that, the character should take Celebrity. It does mean, however, that the character will probably be noted when seen, and it will be difficult for the character to behave in a covert manner when in public.
Fear Of Commitment
Occasionally, Minor 5pts.
A character with this Disadvantage has a reluctance to commit himself to relationships. Because of this, any relationships he is in will only progress so far, and then will seem to stall. This may stress the relationship, particularly if the character's partner wishes to go to the next level. Family and friends may also notice, and may react according to what they think is best for the character.
Flamboyantly Homosexual
Very Frequently, Major 20pts.
The character demonstrates his homosexuality in elaborate or colorful displays or behavior. If the character is male, this could be by acting very effeminately, or dressing in what would be viewed as a particularly feminine manner. For females, it would be the reverse, by acting or dressing in a very masculine manner. In either case, this character would not generally attempt to hide their orientation.
Flunky
Frequently, Minor 10pts.
A flunky performs menial or miscellaneous duties for his superior(s). He is treated as an inferior, and possibly contemptuously, by those above him. If he also acts as a yes-man or sycophant, than his peers may also treat him with contempt, as he will not have earned any respect from them either. An example of the perfect flunky is Mr. Smithers on The Simpsons.
Frightens Animals And Small Children
Frequently, Minor 10pts. / Frequently, Major 15pts.
Something about the body language, or general aura sends off warning signals that adults are not sensitive enough to catch, but come across loud and clear to animals and small children. They will react with undisguised fear towards the character and seek to flee him. If the character is otherwise personable, or adults around him fail to interpret the odd behavior correctly, it's minor effects. If, as in some fantasy campaigns, the locals are quick to pick up on such clues as "monster!" then the restrictions are major. The character should not take non-concealable Distinctive Features, as this Disadvantage works best when the character's appearance is perfectly normal (in fact, the more good-looking the better). Considers Himself a Monster is appropriate.
Gentile
Occasionally, Minor 5pts. / Frequently, Minor 10pts.
This Disadvantage would be appropriate for characters who spend a significant portion of their time in a religious community that has a strong tribe-like identity (Jewish or Mormon communities are the best real-world examples) but who do not share the religious beliefs of the community. (For example, a non-Mormon in a Mormon town.) It refers to characters who are not able or willing to participate, to a greater or lesser degree, in the religious cultural life of the people among whom they live. As is often the case with Social Limitations, the Frequency and Severity vary depending upon the character's needed or desired level of social interaction with the other group, and the group's general views on "unbelievers". In any case, the character's lack of belief in the greater majority's affects the way the group as a hole treats, responds to, and interacts with the character. Please note that this does not automatically mean that the character or the religious community are necessarily bigoted in any way. Certainly it is a possibility, but it's not the only possibility. Generally, bigotry enters the picture only when the religion dictates that "infidels" are somehow of lesser "value" than believers.
Harmful Secret
Occasionally, Minor 5pts. / Occasionally Major 10pts. / Occasionally, Severe 15pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts.
A character with this Disadvantage has a secret that would harm the character and/or those close to him (friends, family, etc.) if revealed to society. The frequency of this Disadvantage is defined by the probability that someone discovers the secret. At Occasionally, the secret can only be discovered by someone who has access to a special media that reveals the secret (a file, a tape). At Frequently, the secret can be discovered by someone who does a serious research into the character's past (or the one near him). At the Minor level, the secret is something that would ruin the character's life, job, and/or reputation. At Major, the secret affects not only the character but also those around him (family, friends, teammates). And at Severe, the secret affects the character's entire society. Characters should only take the Severe level in case the secret involves someone or something related to a government.
Held To A Higher Standard
Frequently, Minor 10pts.
Because of the character's profession or social status, he is expected to be more circumspect in his behavior than an average citizen. For example, a children's entertainer would be expected not to be publicly drunk, get into fights, use foul language, etc. Failure to live up to this high standard will result in bad publicity, scorn and possible loss of employment. Many characters with this Disadvantage will also have Psychological Limitations either reinforcing or breaking the expected behavior.
Housing Problems
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Frequently, Minor 10pts.
The character's living situation is not ideal, for reasons other than lack of money (for that, use Debt (Mortgage) or one of the wealth Disadvantages.) The reasons can range from the embarrassing (lives in his mother's basement) through annoying (the next-door neighbors crank their stereo constantly) to long-term dangerous (high radon levels). The character must spend time that could otherwise be used productively to deal with these problems. The Major level of this Disadvantage is for problems that verge on horror-movie level threats to safety, such as hostile poltergeists, intelligent rats in the cellar and the like.
Identity
Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts.
The character has an adventuring persona different from a normal civilian persona. These are most appropriate to the costumed superhero genre, but can be used elsewhere with GM permission. This Disadvantage is actually made up of among three sub-Disadvantages, each of which share the same point value.
Permanent Identity: With this Social Limitation, the character's powers have altered his body or appearance sufficiently that he can no longer pass for a normal human and is effectively his adventuring persona all the time. At the minor level, the character is still able to interact with human society almost like a normal person; at the major level the character is considered effectively non-human and attacked or imprisoned on a regular basis. The character must take Distinctive Features at the Unconcealable Level with this Disadvantage. No Longer Considers Himself to Be Human and Regrets What He Has Become are common Psychological Limitations that go well with Permanent Identity.
Public Identity: The character's civilian and adventuring personas are both known to the public (possibly due to being one in the same). As such, he is recognized even out of costume, it's possible to discover his address and communication information with a minimal effort and the basics of his life are part of the public record. His enemies can attack any time they feel like it, fans and admirers can easily spot the character, etc. The Severe level is for those characters who have unusually numerous or lethal enemies, even by the superhero genre standard. This is really only appropriate for the costumed superhero genre. Most other characters should use Famous or Celebrity instead.
Secret Identity: The character lives a double life; for example, being a nebbishy photographer who is secretly also a heroic masked crime-fighter. The character must take steps to prevent this secret from being revealed, or face unpleasant consequences. The Severe level is for those characters who have unusually numerous or lethal enemies, even by the standards of the superhero genre.
Illegal Immigrant
Frequently, Major 15pts. / Frequently, Severe 20pts.
The character has entered the country he currently lives in illegally. As such, he may be denied social services, attacked by bigots and if caught, deported. At the Severe level, the host country sentences illegal immigrants to death. Many illegal immigrants are Poor or Destitute.
Illiteracy
Frequently, Minor 10pts.
The character is known to be either unable to read, or nearly unable to read. This causes derision of the character, makes him the target of practical jokes, and reduces his chances of getting many good jobs. This Disadvantage is only appropriate in settings where literacy is widespread, and information is distributed in print. Most characters with this Disadvantage will have the Physical Limitation Illiterate or Dyslexia, although some will just be poorly educated.
Imaginary
Frequently, Minor 10pts. / Frequently, Major 15pts.
The majority of people in the campaign's society do not believe that the character is who or what he presents himself as, because that person/thing does not exist! For example, being Santa Claus or Harry Potter, or a tiny winged fairy in a world with no magic. At the Minor level, the character is treated as delusional (or as a delusion, if clearly not human), but may be humored or at least not attacked. At the Major level, characters may be carted off to an insane asylum, or attacked in an effort to prove their unreality. If there is a substantial subculture in the society that does believe in the character, or he can easily return to a society where he is believed in, the Disadvantage takes the "Not Limiting In Some Cultures or Societies" option. This causes the Disadvantage to be worth five less points. Some highly magical creatures might have this and a Susceptibility to Disbelief.
Impressively Obvious And Dangerous Powers
Very Frequently, Major 20pts.
A character with this Disadvantage has powers that are not only blatantly obvious, they are also obviously dangerous to everyone around the character. This causes other people to keep a safe distance from the character, to avoid interacting with the character, and to generally treat the character as a pariah. The exact nature and special effects of the powers in question will vary from character to character (typical examples include fire powers, extreme cold powers, acid powers, high radiation powers, and so on); regardless of the special effects of the powers, they should be potentially lethal to bystanders if the character is not exercising enough caution. And their potential lethality should be obvious to everyone who so much as looks at the character.
In (Other Character's) Shadow
Frequently, Minor 10pts.
The character is closely associated with a more famous or noticeable person. As such, the other person gets all the press, is the one contacted if the character's skills are needed, and generally blocks the light from the character. Some characters with this Disadvantage are Bitter and Feels Underappreciated. Others are Humble, Meek and Demure, and/or Selfless.
Involuntary Duty
Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character has been compelled to perform a public service; examples include being drafted into the military, or certain religion's mandatory missionary years. This public service cannot normally be avoided without severe penalties to the character. At the Major level, the character must go where he is told and perform the tasks assigned to him without reference to his preferences, social connections or comfort; at the Severe level, the duty is life-threatening on a regular basis. If the character has voluntarily joined the military or a similar organization, use Subject to Orders instead.
Is A Contact For Many Others
Uncommon, Total 15pts. / Common, Total 20pts. / Very Common, Total 25pts.
A character with this disadvantage is usually well connected in one way or another, but such connections work both ways. For one reason or another, whether it be social position, personal skill or power, or just the knowledge that the character 'knows a lot of people', they are constantly sought out and asked for help. This is a relatively mild disadvantage because they are not obliged to help; however, if they do not help with reasonable requests, they will find their contacts less willing help them in return, and may attract the ire of those who asked them for assistance. In extreme cases this disadvantage can metamorphose into a negative Reputation or even a Hunted.
Jerk Magnet
Frequently, Minor 10pts.
This Disadvantage is only appropriate for female characters. In addition, it is generally only taken by those characters who are physically beautiful (though this is by no means required). A character with this Disadvantage is often the subject of unwanted attention. Men flock to her and hit on her, constantly trying to pick up the woman and entice her into some form of romantic interlude (usually a date, but sometimes the "offer" is for a purely sexual encounter). For the most part the men attracted to the woman in this manner are unpleasant at best and repulsive at worst. Their come-ons are ham-handed and clumsy, and certainly not inviting. The character is free to react in whatever manner she wishes to these invitations; usually the men in question never take the first "no" for an answer.
Jinx
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character is believed to bring bad luck and disaster wherever he goes. As such, he is not welcomed by the superstitious, and particularly gamblers. He may be treated as a scapegoat by his community. Sea-going Jinxes are known as "Jonahs." This Disadvantage only covers how the character is seen by others, not how he truly is. If the character is truly unlucky, buy levels of Unluck as well.
Kidnap Prone
Frequently, Major 15pts.
The definitive Disadvantage of damsels in distress (and Dependent NPCs in general), this represents some factor that makes the character an especially attractive target for kidnappers. Anytime a scenario involves a villain's plot to kidnap someone, this character will likely be the intended target or will get taken in addition to the intended victim just because they were in the wrong place at the wrong time. This Disadvantage is generally intended for Non-Player Characters. A Player Character should not take it unless the player has been advised of the potential consequences and is willing to roleplay it for all it's worth.
Killjoy
Frequently, Minor 10pts.
The character is perceived by others as being "no fun", draining the joy out of life and social situations. He doesn't get invited to parties unless his attendance is mandatory, and other people avoid him when they want to enjoy themselves. The character may be Cynical, Depressive, Grim and Humorless or simply misunderstood.
Known Brown Noser
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
It is known that the character often tries to curry favor with his superiors. How well known is determined by the frequency of this Disadvantage. People will be cautious around the character, for fear of the character "selling them out" to his boss. People may also treat him contemptuously -- particularly when the boss is not around.
Known Criminal
Occasionally, Major 10pts. / Frequently, Major 15pts. / Very Frequently, Major 20pts.
The character's criminal ways have preceded him. How well known they are depends on the frequency of this Disadvantage. The character's criminal act (or acts) should be designated by the player, since this will help determine the reactions his character will see. A character known for petty crimes would not be trusted, may have trouble finding jobs, and may be a target for local bullies. A character known for heinous crimes would definitely not be trusted, and probably be feared. Normal citizens would avoid him whenever possible, while local law enforcement would keep a close eye on his every move.
Known Criminal That Got Away With It
Frequently, Minor 10pts. / Frequently, Major 15pts.
The character is "known" to have committed a crime or series of crimes, but due to wealth, political connections or a perceived flaw in the legal system, has never been adequately punished for that crime. The character may not even ever have been formally charged with the supposed crime. Some examples: a politician's son known for driving really fast who never seems to get speeding tickets; a movie star accused of murder who had a really good lawyer; an indigent ghetto dweller whose rape conviction was overturned when it's discovered that his confession was illegally obtained. At the minor level, this Disadvantage is merely inconvenient; the alleged crime will be brought up whenever someone wants to embarrass or harrass the character, it will be mentioned in any press about the character, and those who believe in the character's guilt will expect the character to commit the same or similar crimes again. At the major level, some people will feel the need to take the law into their own hands and administer a beating or similar assault. Rather than having a severe level for this Disadvantage, the character should buy a Hunted to represent someone so incensed by the supposed injustice that they're willing to kill the character. Particularly vile crimes may also merit a negative Reputation.
Known Gossip
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character is known as a person who habitually reveals personal or sensational facts about others. How well known is determined by the frequency of this Disadvantage. The validity of the facts is often not important. People will find the character for the sole purpose of giving or exchanging gossip. Some people may actually use the character as a method for damaging another's reputation. If the character is not careful, his gossip could also get him in trouble with his bosses, the law, or even the subject of the gossip.
Known Homosexual
Occasionally, Major 10pts. / Frequently, Major 15pts. / Very Frequently, Major 20pts.
The character's homosexual predilection is known. How well known is determined by the frequency of this Disadvantage. Reaction to this knowledge will vary from trying to arrange matches for the character, to trying to do a religious intervention, to refusing to acknowledge the subject, to gay-bashing. In general, however, this character will receive a higher level of discrimination than a heterosexual character. The most insidious of this discrimination would be from those that hide their own orientation and pretend to have no problem with homosexuality.
Known Liar
Occasionally, Major 10pts. / Frequently, Major 15pts. / Very Frequently, Major 20pts.
The character's inability to be truthful is known. How well known is determined by the frequency of this Disadvantage. Anything the character says will be taken with a "grain of salt". He will have to work to convince people he is telling the truth, the more incredible his story, the harder he will have to work to convince people. People will consider him untrustworthy, and will not share confidential information with him.
Known Mentalist
Occasionally, Major 10pts. / Frequently, Major 15pts. / Very Frequently, Major 20pts.
The character's mentalist abilities are known. How well known is based on the frequency of this Disadvantage. People without similar abilities will be suspicious and fearful of the character, never totally assured if the character is rooting around in their heads. People with similar abilities may be suspicious, and may take measures to protect themselves. Enemies of the character will definitely take measures, and may plan their actions based on the knowledge that the character is a mentalist.
Known Racist
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character's hatred of a particular race is known. How well known is based on the frequency of this Disadvantage. Members of the race he hates will at a minimum treat the character with suspicion. Some may actually return the hatred and attempt to harm him if given the opportunity. Others will also treat him with suspicion or contempt. By many, he will be viewed as an ignorant hate monger. Other racists, however, will sympathize with him, and he may find assistance in the strangest places.
Known Sex Offender
Occasionally, Major 10pts. / Frequently, Major 15pts. / Very Frequently, Major 20pts.
The character is a known sex offender, such as a rapist or pedophile. How well known is based on the frequency of this Disadvantage. The character may have to register with the local authorities, who will monitor his actions. Neighbors will always keep an eye on him, and be suspicious of his every action. He will be shunned by honest people, and be held with contempt by the criminal element. He will be the victim of retribution crimes, such as vandalism or even assaults. He might even be hunted by a victim or a victim's family who wish to see him dead for his past offenses.
Legacy
Frequently, Minor 10pts.
The character is not the first person to hold his position. He's viewed, rightly or wrongly, as the successor to the prestige and duties of the previous holder. The public will judge his every move by comparison with his predecessor. Many characters with this Disadvantage have an identical name to the predecessor, with a number attached to it.
Life Debt
Occasionally, Major 10pts. / Frequently, Major 15pts. / Very Frequently, Major 20pts.
The character owes someone a debt for saving his life. This could be from pulling him out of a burning fire, healing him of a deadly disease, or perhaps even saving his soul from damnation. Regardless of the reason, the character feels his entire life is indebted to the person, and will feel obligated to complete any request made by the person. This can present some interesting situations if the request conflicts with any of the character's Psychological Limitations. The affect of refusing to fulfill a Life Debt would depend on who owns the debt. Some may take it gracefully, although this would hardly justify the debt being a Disadvantage. More likely, the person will feel betrayed by the character, and will respond in an appropriate manner. Additionally, third parties, who know of the debt, may treat the character differently if they are aware of his betrayal. The frequency of this Disadvantage is dependant on how often the character is confronted with the debt. This Disadvantage works well in conjunction with Compelled To Fulfill Life Debt.
Lives Up To His Image
Occasionally, Minor 5pts. / Frequently, Minor 10pts.
Other people believe or at least suspect that the character is not truly committed to the principles or behaviors his reputation represents. These people will be suspicious of the character's motives, and watch carefully for any signs of hypocrisy or apostacy. The character must take a positive or negative Reputation to represent the image the character is "living up to." The character may have the Psychological Limitation Lives Up to His Image, but it is not required.
Married
Frequently, Major 15pts.
This character has a spouse, and must take this spouse into consideration when making nearly every decision regarding his life. Not only will major decisions such as where he lives, what jobs he takes, how he spends his money, and how he spends his free time be affected by the opinions and actions of his spouse, but even minor decisions like what brands of food he eats or toiletries he uses, what color and style of clothing he wears, what radio stations and television shows he habitually watches, and which routes he takes while driving are affected. In some parts of the world, half of his worldly possessions become the property of his spouse (and half of the spouse's possessions become his). This Disadvantage is equally appropriate for either male or female characters.
Member Of A Dying Race
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Occasionally, Severe 15pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts. / Very Frequently, Minor 15pts. / Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character is a member of a race that is near extinction. The cause of the impending extinction should be defined. People who know the character is a member of this race may react according to that knowledge. Perhaps they are sympathetic to the character, and will provide help. Or, maybe they will appear helpful, but want to imprison the character to study and "help" him. Or, perhaps they are the reason the race is dying, and they want to kill the character. The frequency of this Disadvantage is dependent on how often the character is recognized as being a member of the dying race. If he is able to blend in with the resident race, then he is not likely to be recognized, and this Disadvantage will rarely come into play. However, if he is the only Ent at a Hobbit convention, then he is likely to stick out. The effects of this Disadvantage are dependent on the general response that could be expected from those that know it.
Minor
Occasionally, Minor 5pts. / Occasionally Major 10pts.
This character is below the age of majority. Such a character doesn't enjoy the full range of rights and responsibilities that an adult would. They are hampered by parental control, curfews, limited or no driving privileges, limited or no employment opportunities, frequent schoolwork, and an inability to purchase certain items (most notably tobacco products and alcohol) depending upon the local laws. At the Minor severity level, this Disadvantage represents a person who is 15 to 17 years old. At the Major level, the character is 14 or younger. While similar, this Disadvantage is different from the Psychological Limitation: Young. While a Young person is always a Minor, a Minor need not always behave Young.
Misplaced Notoriety
Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts.
The character is often mistakenly identified with someone widely and unfavorably known. Maybe he shares the same name with the villain that stole the village's totem, or maybe he looks just like William the Welcher, who left town without paying any of his outstanding debts. Regardless of the reason, it brings nothing but problems for the character. The severity of the notoriety will help determine the severity of this Disadvantage, and thus how much it is worth.
Mistaken Identity
Frequently, Minor 10pts. / Frequently, Major 15pts.
A character with this Disadvantage has physical features that in almost every way are the same as someone else's. This is best shown in the case of identical twins, who look the exact same as each other and are easily mistaken. Another example may be clones or dimensional copies who share the same physical properties as a person who already exists. In either case, this can be frustrating for both parties involved, and therefore, permission should be asked from any player before using their character as the object of this flaw. People who can easily have their identities confused with another find that building their own reputations is difficult. Common-folk and even colleagues who don't know them that well often confuse the actions and accomplishments of one person for another. In social situations the reputation of either person could come to the forefront, as there is little or no way to distinguish either party from the other. In almost all cases, there are hindrances and blockades to being defined by your actions. At the Minor level, this may represent simply an identical twin, brother, or even a dimensional copy whose base motivations and worldly perceptions aren't that far off from the character's own views. Because of this, any mistakes made about who has done what or why don't tend to land the character in very deep water; they're just frustrations in social situations. At the Major level, however, the other character may be a villain or enemy whose reputation in it's own right damages the character's good name. As such, no matter how hard they try they are frequently associated with negativity and actions that vary greatly from social norms.
Mixed Blood
Frequently, Minor: 5 Points, Frequently, Major: 10 Points / Frequently, Severe: 15 Points (Not Limiting In Some Cultures: -5 Points Already Added In)
Also called Half-Breed. The character had parents who were considered to be of different "races", in a society that is not fully accepting of such things. This is usually two humans of different skin tones, but in fantasy or science fiction settings, more exotic combinations are possible. At the Minor level, the character is a second-class citizen (often to both parents' societies), never fully trusted, and believed to have the combined stereotypical negative qualities of both races. At the major level, one of the parents had a strongly negative social status, and the character may be enslaved or exiled because of his heritage. At the Severe level, miscegenation is completely illegal and/or considered unspeakably evil, and the character will be killed if his status becomes known. Some characters with this Disadvantage may have also the Distinctive Features of one or both parent's races (if any).
Monstrous/Inhuman Appearance
Very Frequently, Major 20pts.
The character's monstrous appearance prevents him from being accepted by society. Instead, wherever he goes, he causes disruption as people hurry to either get away from him, or destroy him. He spends most of his time alone and in hiding. He will only go out at night, and even then, will still avoid people. His only friends are those who either cannot see his appearance, or are also social outcasts, so they sympathize with the character. Examples of literary characters that suffer from this Disadvantage include the Frankenstein monster, Quasimodo the Hunchback of Notre Dame, and the Beast of Beauty and the Beast. A low Comeliness Characteristic and the Distinctive Features Disadvantage are two things that compliment this Disadvantage.
Mundane
Frequently, Minor 10pts.
This Disadvantage is only appropriate for campaigns in which wondrous powers and occurrences are the norm. Normal, real-life people get no points for this Disadvantage, as they are quite mundane already. This Disadvantage reflects a total lack of experience with the occult, the weird, and the alien. Such a character would be from a place that highly resembled the town in the movie Pleasantville before the main characters started upsetting everything. Such a character wouldn't believe in UFO's, thinks magic is something done by David Copperfield, and knows that the computer sitting on his desk is the cutting edge of high technology -- or at least it was before he took it out of the box. A character with this Disadvantage may not begin a campaign with any skills or equipment that are out of line with this quiet, unassuming origin, as determined by the GM.
Name
Frequently, Minor 10pts.
The character's name makes him a target of various forms of sophomoric humor, causing him no end of aggravation. The character will very likely have issues with his parents for cursing him in this fashion. Good examples of such bad names can be found on the Baby's Named a Bad, Bad Thing website.
Nationality
Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts.
The character is from another country, one which is not looked upon favorably in the nation in which he currently resides. At the moderate level, the character is discriminated against because of his national origin. He may be barred from certain clubs and businesses, insulted frequently and assumed to have the negative qualities stereotypically associated with the land of his birth. At the Major level, the character may be imprisoned or deported, and cannot gain citizenship in the normal manner. At the Severe level, people of the character's nationality are shot on sight (or at least as soon as their nationality is proven.) If the character also has Acts Stereotypically (Nationality), the frequency of this Disadvantage becomes Very frequently, adding five points to it's value. If it is reasonably easy for the character to go to areas where they are less discriminated against (like a Chinese person in an American city with a large Chinatown), this Disadvantage must take the option "Not Limiting In Some Cultures or Societies", reducing the value by five points. If the character is a legal resident of the nation he now finds himself in, he should have a Perk representing his paperwork. If an illegal resident, he will also have the Social Limitation: Illegal Immigrant.
Nebbish
Frequently, Minor 10pts.
This character is easily overlooked. No one seems to ever be aware that he is around, they have trouble remembering his name, and someone else usually gets credit for his accomplishments. When he goes somewhere, no one ever seems to remember he was there. Cashiers at checkouts bypass him to help other customers. When he finally gets noticed and has a chance to speak, no one gives what he says much regard, and soon forgets that he says anything at all. The character is simply not memorable. The character's Presence cannot ever rise above 10. In some cases, this Disadvantage could be construed as a good thing (when the character doesn't want to be noticed, for example), but the GM should strive to make it a hindrance. Note that the character's close friends (if he has any) aren't likely to treat him in this manner. However, the character's close friends are also most likely Nebbishes themselves.
Nerd
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This Disadvantage is generally more severe for a Minor who is still in school, or an adult in situations of constant, mandatory socialization (careers such as sales or teaching), than it is for most characters. Nerds are generally peer-identified by their "unpopular" tastes -- however, on closer examination one quickly realizes a "chicken or the egg" phenomenon is occurring. Things can quickly go from popular to otherwise if the "Nerd" segment of the population is seen as interested (also known as the "Sneetch Effect" (from the Dr. Seuss short, "The Sneetches"). The reverse also can occur, just as swiftly (the best example of which is the world of computers... once the sole realm of the nerds but now considered the ultimate in cool.) In practice, Nerds desire social contact and affirmation far out of proportion to their social capability. They want to belong, but for whatever reason (often, good reasons) do not do what is "needed" to belong. This is distinct from the Geek, which often actively seeks to repel or work against the urge to "belong".
Nine To Five Job
Frequently, Minor 10pts.
The character has a job with set hours (they can be any hours, despite the name of the Disadvantage) that must be performed at a set location. The job has very limited flexibility for tardiness or absence, and any slippage in work performance will be punished. This can make it difficult to go on adventures. Characters with Identity (Secret Identity) often suffer from this Disadvantage. If the job is lost, this Disadvantage becomes the wealth category Poor (5 points) & the Social Limitation Debt at the 5 point level until new employment can be found.
No Credibility
Frequently, Minor 10pts. / Frequently, Major 15pts.
Like the boy who cried wolf, the character has acquired a reputation as someone who does not tell the truth. Any statement he makes will be disbelieved on general principle, and he will not be trusted with any employment that requires truthfulness. At the Major level, the character is known not just for lies, but for malicious lies that harm people. Not only will he be disbelieved, but actively beaten up for telling such fibs. Most characters with this Disadvantage have Psychological Limitations like Compulsive Liar or Gossip, but it is not mandatory.
Noblesse Oblige
Frequently, Minor 10pts.
While this Disadvantage can be used in almost any genre, it is most appropriate for a setting that has a defined nobility or otherwise wealthy and powerful social class. This Disadvantage is only appropriate for characters that belong to that class. A character with this Disadvantage believes that those people of a station lower than his are incapable of watching out for themselves, and thus need someone of the "landed class" to take care of them, to protect them, and to give order to their lives. In return, the common folk owe the nobles their unswerving obedience in all things, their loyalty, and the sweat of their brows. In addition, they never hesitate to chastise the common folk when they feel the common person has stepped beyond his place. They will be condescending to those who are not of their own (or a higher) social class.
Not Considering A Person
Very Frequently, Severe 25pts.
The character's society does not consider him "human". He has no legal rights whatsoever, and if not owned by someone may be treated with all the consideration given to litter. And the vast majority of the public will in fact treat him in this manner. Possible examples include an android in a high-tech society that does not recognize intelligent machines, or an astronaut from earth stranded on a planet populated by talking apes. Most characters with this Disadvantage will have non-concealable Distinctive Features that announce their "non-person" status. This Disadvantage does not apply to non-sentient beings that have no interest in social interaction.
Not Taken Seriously
Frequently, Minor 10pts. / Frequently, Major 15pts.
A character who isn't a taken seriously by everybody. Either its his humorous or annoying code name, i.e. Super-Giganto, or Maximan Kid or Lad, of the silly costume that he wears, like the frog suit with the springs in the feet, or the habit of allowing the villain to get away due to clumsiness. Needless to say people just don't take the character seriously. Villains ask him when the real super-heroes are going to arrive, the damsel in distress refuses to be rescued, etc... At the Minor level most are able to resist laughing at the character, while at the Major level they must make an Ego Roll to resist the urge to laugh, belittle, or even ignore the character. Other Disadvantages that would be appropriate are Bad Fashion Sense, Unluck, and Clueless.
Nuisance
Frequently, Minor 10pts.
The character is considered actively annoying for some reason, and will be avoided in social situations where his presence is not mandatory. It may be difficult for the character to hold down a steady job. Any actively "annoying" Psychological Limitation goes well with this Disadvantage; any Psychological Limitation that causes the character not to impose his presence or opinions on others should not be taken.
Object Of A Stereotype
Occasionally, Minor 0pts. / Occasionally, Major 5pts. / Occasionally, Severe 10pts. / Frequently, Minor 5pts. / Frequently, Major 10pts. / Frequently, Severe 15pts. / Very Frequently, Minor 10pts. / Very Frequently, Major 15pts. / Very Frequently, Severe 20pts. (Not Limiting In Some Cultures/Societies: -5 Points Already Added In)
The character belongs to a group that is popularly perceived to behave in a particular manner. For example, "All people from Osaka are loud, friendly and good at comedy." or "All heavy metal musicians drink too much, take drugs, and will screw anything that has a pulse." The frequency and severity of the Disadvantage should be determined by the GM based on the society of the campaign. Many specific stereotypes are already available from this list in other Disadvantages. Resents Own Stereotypical Image is common with this Disadvantage, especially when the severity is Major or Severe.
Object Of Prejudice
Occasionally, Minor 0pts. / Occasionally, Major 5pts. / Occasionally, Severe 10pts. / Frequently, Minor 5pts. / Frequently, Major 10pts. / Frequently, Severe 15pts. / Very Frequently, Minor 10pts. / Very Frequently, Major 15pts. / Very Frequently, Severe 20pts. (Not Limiting In Some Cultures/Societies: -5 Points Already Added In)
The character belongs to a group that is perceived to be inferior or hateful by the majority of the campaign's society. The frequency and severity of the Disadvantage should be determined by the GM based on the society of the campaign. Many specific prejudices are already available from this list. Many characters with this Disadvantage will also have Psychological Limitations regarding their attitude towards this prejudice.
Obligated To (Person Or Organization)
Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts.
A character with this Social Limitation has some sort of external requirement imposed by a law, a promise, a contract, by relations of society, or even by simple kindness and courtesy. Because of this Obligation, the character is bound to do something (or forbear from doing something) to the benefit of another. The obligation isn't necessarily a debt that he owes, but rather is something he feels he must do out of a sense of loyalty and duty. There is generally a social (and sometimes criminal or financial) penalty for failing to fulfill this duty.
Obnoxious Drunk
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character becomes very unpleasant when he becomes intoxicated. Perhaps he is loud and boisterous, or he is very insulting to everyone, or tries to pick fights. Those who witness the character's behavior will be insulted, embarrassed, and disgusted. The character may have to face the consequences of his behavior the morning after. The frequency of this Disadvantage is based on how often the character gets drunk.
Obsessed With (Concept, Person, Object, Or Goal)
Very Common, Strong 20pts. / Very Common, Total 25pts.
This character's entire worldview is shaped by the object of his obsession. The object of his obsession has taken over his life to the point that a "normal" existence is impossible. Such an obsession can even cause one to skip sleeping, eating, or even bathing. At the Strong level the character can force himself to engage in activities that do not have anything to do with his obsession (such as going out on a date, spending the day at home watching an old movie on TV, or going to a basketball game) if he makes an Ego Roll. At Total, the character cannot do so except in the most extreme circumstances.
Odious Cultural More
Occasionally, Minor 0pts. / Occasionally, Major 5pts. / Occasionally, Severe 10pts. / Frequently, Minor 5pts. / Frequently, Major 10pts. / Frequently, Severe 15pts. / Very Frequently, Minor 10pts. / Very Frequently, Major 15pts. / Very Frequently, Severe 20pts. (Not Limiting In Some Cultures/Societies: -5 Points Already Added In)
A tradition important to the character's culture is particularly repugnant to the society where he now resides. The range of offensive behavior is unlimited, but should be clearly defined by the player. Some examples of mores that might fit this Disadvantage include female mutilation, cannibalism, piercings, or tattooing. The frequency of this Disadvantage is determined by how often the character either participates in the more or the more is noticed by others. The effect is determined by what consequences the character can expect to experience. For example, if it is a cultural more for the character to sacrifice an animal on certain religious holidays, then he could probably expect a Minor or Major reaction. If the more is that the character must sacrifice a human on certain religious holidays, then he should expect a Severe reaction. This Disadvantage is only valid for a character that is outside his cultural base, since within such the more is not odious and is generally the norm. This Disadvantage is always purchased with the modifier, "Not Limiting In Some Cultures/Societies", and the point values above are ajusted accordingly. 'Mores' refers to the body of accepted traditional customs and practices of a particular social group. 'More' is the singular form of 'Mores' and refers to a single custom or practice.
Odious Personal Habit
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character has a particularly disgusting habit, such as picking his nose, or not bathing regularly. Because of the bad habit, he will have a hard time fitting in with society, as people will try to avoid him when possible. He may also be picked upon by bullies who enjoy humiliating the character because of his habit. The frequency of this Disadvantage is based on how often the habit would be noticed by others.
Odor
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character emits an offensive odor. This could be because of poor hygiene habits, or because of a unique physiology. People will avoid being around the character, especially in enclosed spaces, such as elevators, cars, or small space ships. The character will have a harder time fitting in with society, because people will subconsciously be offended by him because of the odor. The frequency of this Disadvantage is based on how likely someone is going to notice the odor. This Disadvantage should also be accompanied by the Physical Limitation, Odor.
Official Reprimand
Occasionally, Minor 5pts.
This character has been officially reprimanded at his place of employment for some rules infraction, which should be determined by the player. Whether the reprimand was justified and warranted is unimportant. The character will find himself the subject of office gossip, may gain a reputation as a trouble maker, and might be passed up for promotion. Even if the character is able to prove that he did not deserve the reprimand, he will find it difficult to undo the social damage.
On Call
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character's job requires him to be on call after hours. This is a common practice for doctors, detectives, and even plumbers. When called out, the character must leave what he is doing (social event, family time, sleeping) to respond to the work emergency. Failure to do so could cause the character to lose his job. On the plus side, he probably earns extra pay for being on call, and might be able to draw overtime pay. The frequency of this Disadvantage is based on how often the character gets called out.
Out Of Touch With The Times
Frequently, Major 15pts.
This character has either been living under "pre-modern" circumstances and hasn't had much exposure to the modern world (such as a person whose living with a Stone Age tribe in the South American jungle, or a person suddenly catapulted from the 1800's to the modern day) or hasn't been in the "real world" for a long time (such as a person whose been stuck in cryogenic suspension for centuries, or has been trapped in another dimension). Either way, the character isn't acclimated to the customs and assumptions of the society in which he now finds himself. The character makes social errors, isn't aware of things that most people in the modern day take for granted, and has trouble getting along.
Owes A Favor
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
It is known that the character owes a favor to a particular person. The details of who and what is owed are up to the character. Because of this debt, people will assume the character is associated with the person. Regardless if this is the case, people will react according to that belief. For example, if it is known that the character owes a powerful crime lord a favor, then they might avoid the character, thinking that he is also a criminal. Or they might try to blackmail him, threatening to reveal the information to a sensitive source. Or they might try to use him as a conduit to the crime lord. The frequency of this Disadvantage is based on how well known it is that the character owes the favor. The reason the favor is owed may or may not be known also, or may be incorrectly known.
Owes A Marker
Occasionally, Major 10pts.
The character owes someone in the game a favor, not just any favor - a big one. Maybe someone saved his life; maybe they introduced him to his wife; maybe they had someone killed for him. Whatever it was - it was big. And, when they are ready - they will call in the marker. When the player is ready to sell off this Disadvantage, he should contact the GM and let him prepare a good story. This Disadvantage cannot be bought off with XP. Instead the first 5 XP from the "buy-off" adventure will be used to pay off the Disadvantage.
Pacifist
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Very Frequently Minor 15pts. / Very Frequently, Major 20pts.
The character's opposition to conflict and war is known. Depending on the popularity of the conflict, the character may experience social repercussions for his beliefs. This could range from being ostracized, criticized, or beaten to a bloody pulp. The most common belief will be that the character is a coward and/or weak. The frequency of this Disadvantage is based on how well known the character's beliefs are. The severity of the Disadvantage is based on what the social norms are. Being a pacifist during the Vietnam War did not garner the same response as during World War II.
Parole/Probation Restrictions
Occasionally, Major 10pts.
This character is either on a conditional release from prison or is a first time offender who was sentenced to probation instead of jail time. Either way, the character has had certain restrictions placed on his freedoms. He must regularly check in with his parole/probation officer, cannot associate with known felons, may not be allowed to leave the city, and may be restricted from legally owning a firearm or similar weapons (where appropriate) for the duration of his sentience. If he is caught violating any of the these conditions, he will likely be arrested and sent to prison. The character may or may not have Watched By Local Law Enforcement in addition to this; as a rule, the police only monitor parolees that closely if they believe there's good cause to do so.
Pathetic Geek
Frequently, Minor 10pts.
This character cannot escape his geekiness, no matter how hard he tries. The character should have certain stereotypes associated with this Disadvantage, such as being unathletic, perhaps having poor hygiene habits, and obsessed with Star Trek, computers, comic books, or role playing games. The character will have difficulty associating with the "in crowd", and will be a prime target for any bullies in the area.
People (Who Are Attracted To The Character) Fall Over Him/Her
Frequently, Minor 10pts.
This character's charm, beauty, or reputation precedes them, and wherever they go, anyone who might be attracted to them falls all over them. They get fan mail from teenagers who 'like, totally swear I'm gonna die if you don't love me, man!', can't have a quiet dinner out without some gushing beauty asking them for their autograph, get marriage proposals in the mail, etc.
Persona Non-Grata
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Occasionally, Severe 15pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts. / Very Frequently, Minor 15pts. / Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
This character is officially exiled from some nation, organization, or religion (designated by the player). This could result when the player has comitted a serious crime, but somehow escapes incarceration, usually because of political reasons. The character could also become Persona Non-Grata if he offends the person who decides such matters (emperor, king, owner). If the player is found at the location, which can be as small as a specific address or as big as an entire galaxy, he would experience the appropriate repercussions. The frequency of this Disadvantage is dependent on how often the character is going to travel to the banned location. If the character will never travel to the location, then it is not a Disadvantage. The effects of this Disadvantage is dependent on the response the character should expect if caught. This could vary from being escorted back out of the area with or without a fine (Minor), to imprisoned (Major), to shot on sight (Severe).
Physically Incapable Of Interacting With Other People
Very Frequently, Severe 25pts.
This character, for some reason, cannot engage in normal discourse and interaction with other people. The character may need special help to do so, or may not be able to do so under any circumstances (depending on the reason for this Disadvantage). Either way, there is some reason he isn't able to interact as everyone else does. As a result, any Skill Roll which requires social interaction (such as Oratory or Persuasion) is made at a -3 penalty. Commonly, this Disadvantage should only be taken by characters with extreme physical conditions. Examples include characters who are only brains in a jar, or who are permanently on fire, or who radiate numbing cold so painful that other people cannot come within 10 feet of the character. Other possible reasons include being permanently 20 feet tall or permanently 6 inches tall.
Pig In A Tailored Suit Is Still A Pig
Occasionally, Minor 5pts.
The character comes from a "lower" social class, but moves in "higher" social circles. (For example, he may be "new money.") Although he may mimic the clothing styles, speech patterns and behaviors of his "betters," he remains crude and unrefined. This is painfully obvious to anyone who interacts with the character. Because of this, the character will take a penalty of -1 to -3 to High Society rolls depending on circumstances.
Poverty
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character is very poor. The reasons for suffering poverty could vary from experiencing financial hardships (homeless people), to living in an area that does not support the accumulation of wealth (third world country), to belonging to a lifestyle that forbids the accumulation of wealth (many religions). The character may qualify for social services in industrialized areas. His condition will cause him to stand out in affluent areas, where he most likely will be unwelcome and may find himself being "escorted" out of the area, perhaps with a handout to soothe the affluent's conscience. The character will not have much, if any, disposable cash to use for purchases, and much of his time will be spent searching for the basics to survive (food and shelter).
Primitive
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Occasionally, Severe 15pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts. / Very Frequently, Minor 15pts. / Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
This character belongs to a group that is technologically lagging behind the primary society. This could be because he is from a remote area that never developed fully (Savage Land), or perhaps his home land was taken over by a dominant, technologically advanced society. This Disadvantage could apply equally to both a tribesman from the deepest jungle relocated to New York City, and a hip tech-savvy person relocated from New York City to a spaceship from an alien culture. The character will have difficulties performing normal functions, because the available technology is beyond his current capabilities to comprehend. The frequency of this Disadvantage is based on how often being from a primitive culture is going to affect the characters ability to function. The severity would vary, dependent on the reaction of the dominant society to the character. Both of these details should be worked out between player and GM prior to approval.
Profession
Occasionally, Minor 5pts. / Frequently, Minor 10pts.
This character has a profession that, because of its uniqueness, causes people to treat him differently. The reaction may be positive or negative, depending on the exact nature of the job. For example, being an Astronaut might bring many positive reactions. Being an undertaker might interest some curious people, but in general would be considered creepy. Being a member of the Emperor's Not-so-Secret Police would definitely garner two types of reactions, one when the character is aware and one when he is not. This Disadvantage is only valid if there are overtly positive or negative social reactions to the profession. Many may consider being a bus driver a boring job, but one does not earn significant social praise or scorn for sitting behind the big wheel.
Publish Or Perish
Frequently, Minor 10pts.
This character is obsessed with publishing his work (research, novel, poems, screenplay) and has devoted significant blocks of time and effort to this goal. He either is involved in research and publishing his findings, or he may have no job other than writing, and thus may experience monetary difficulties. If there are monetary difficulties, he may look like a "starving artist". When around other people, he is not interested in any subject, other than getting his work published. If he knows anyone even remotely associated with publishing, he will constantly bother them for assistance. Because of all this, his friends and family may often avoid him, in order to be spared listening to the latest chapter of his life.
Reared Under Unusual Circumstances
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Frequently, Minor 10pts. / Frequently, Major 15pts.
The character was not raised in a normal environment. Several examples may include raised by wandering gypsies, circus clowns, the animals of the jungle, or within a controlled experiment. Since the character's rearing was unusual, he may find himself reacting inappropriately in social situations. For example, throwing feces at those that offend you might be acceptable if you were raised by a group of wild chimpanzees (and still in that environment). However, in most civilized societies it is frowned upon. The frequency is determined by how often the character is going to be placed "out of his element". Being raised by jungle animals is not going to be as obvious if the campaign is based in the jungle. The effect is based on what the general reaction would be towards the character, once his background is known. For example, being raised by a group of gypsies would traditionally cause the character to experience a stronger reaction, since gypsies often had bad reputations.
Recognized Area Of Expertise
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character's reputation of being an expert in a particular field is well known. Since this a Disadvantage, the affects should generally be negative. For example, being known as the best thief in the four kingdoms may cause the character's name to always show up on the short list of suspects. Or, being the best brain surgeon in Alpha Quadrant may cause the character to be constantly called upon to treat every aristocrat who blows out a frontal lobe, regardless of the personnel life or needs of the character. The frequency of this Disadvantage should be based upon how well known the character's status is to the general populace. Also, the character should either take the Reputation Disadvantage (if he is known for something less than good), or the Reputation Perquisite (if known for something good).
Royalty
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Very Frequently Minor 15pts. / Very Frequently, Major 20pts.
The character is a member of a ruling family, such as King, Queen, Prince, or Princess. In a true Monarchy, the character will be one of the most powerful people in the country, and everyone will be bound to obey him. Outside the area of his family's rule, he will still often be treated with diplomatic respect, even by his enemies, who will realize they can use him as political leverage. Some societies have Monarchies that do not actually rule, like modern day Great Britain. In governments such as these, the royal family still serves a figurative role in the society and government. Often, in this example, the royalty will be treated as celebrities. A third variation of this Disadvantage is displaced Royalty. Perhaps the character's family was thrown out of the country by revolution or war, and now they must live in a foreign country, awaiting the day they can regain power and return to their home. The frequency for this Disadvantage is an indication of how recognizable the character is as a member of the Royalty. The effects of this Disadvantage is an indication of how inconvenienced the character is, and can range from, everyone kneels when he enters the room, to there is a bounty for his capture in his home country.
Ruined/Fell From Grace
Very Frequently, Major 20pts.
This character has fallen on hard times. He has done things that have caused him embarrassment and ruined his fortune and fame. One example of this would be going bankrupt and losing all of ones possessions to debtors, which in certain societies, such as Victorian England, was devastating. Another example is someone who was caught in a severe act of impropriety, such as a religious man caught with a prostitute. Until the character can prove himself again, perhaps by regaining his fortune, or somehow compensate for his acts, he will be shunned and disapproved of by "proper" society. And even among "improper" society, he will still be humiliated and mocked.
Seen As A Brown Noser
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
Similar to Known Brown Noser, it is believed that the character often tries to curry favor with his superiors. The difference with this Disadvantage is that it is not really true. Perhaps a fellow co-worker is jealous of the character and is spreading rumors about him, or perhaps it is just a misunderstanding. The character will spend much of his time trying to live down the reputation, but will not be able to as long as he has this Disadvantage. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is a Brown Noser, then the appropriate Psychological Limitation(s) should be taken instead.
Seen As A Cold Fish
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character has the reputation of being a cold, aloof person. Many people will avoid the character, assuming that there is no interest in them or their problems. Some will speak ill of the character behind the character's back, further spreading this perception. This Disadvantage is more often associated with female characters. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is a Cold Fish, then the appropriate Psychological Limitation(s) should be taken instead.
Seen As A Drama Queen
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character is perceived to overreact to any bad news. Others will often believed that the character behaves this way because she wants attention. Those who believe this will react in a very skeptical manner anytime the character reacts in an emotional manner. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is a Drame Queen, then the appropriate Psychological Limitation(s) should be taken instead.
Seen As A Horndog/Slut
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character is perceived to be sexually promiscuous. Rumors about who the character is sexually involved with will abound. Generally, the character will not be able to be seen with any person without the assumption being made that there is sex involved. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is a Horndog/Slut, then the appropriate Psychological Limitation(s) should be taken instead.
Seen As A Hothead
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character is perceived as having a short temper, and being prone to react to any crisis with anger and violence. People may avoid sharing information with the character for fear that he might "go off". Others may be afraid to be around him at all. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is a Hothead, then the appropriate Psychological Limitation(s) should be taken instead.
Seen As A Know-It-All
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character is perceived to have an answer for everything. Many view this as an obnoxious habit, and will probably find the character to be a bit of a dullard. The character may find himself being avoided and left out of conversations, because no one wants to hear him ramble on about everything he thinks he knows. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is a Know-It-All, then the appropriate Psychological Limitation(s) should be taken instead.
Seen As A Monster
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character is perceived as being a horrible person. This is most likely related to some terrible event that is linked to the character, such as the death of several innocents. People will avoid the character whenever possible, and may be actively involved in causing problems for him. Many will ridicule the character and wonder why he has not paid for his actions. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is a Monster, then the appropriate Psychological Limitation(s) should be taken instead.
Seen As A Punk/Street Thug
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character is perceived as a common criminal who spends his time loitering around and preying on those weaker than him. He will be watched by respectable citizens and will find himself being rousted by law enforcement often. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is a Punk/Street Thug, then the appropriate Psychological Limitation(s) should be taken instead.
Seen As A Snob
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character is perceived as refusing to have any interactions with people he sees as inferior. Those who are at his social level, but feel rebuked will be insulted. Those actually below his social level will be angry. He will have to deal with a great deal of passive aggressiveness, and may be the target of attempts to "bring him down a notch". This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is a Snob, then the appropriate Psychological Limitation(s) should be taken instead.
Seen As A Trouble Maker
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character is perceived as someone who stirs up trouble and strife, either because of his strong and unpopular opinions, or because he likes causing trouble. In either case, he will not be welcome in polite society (except by those who share his alleged opinions), and watched carefully to make sure he does not get out of line. At the Frequently and Very Frequently levels, the character will be hassled by law enforcement on a regular basis whenever there's trouble in the neighborhood. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is a troublemaker, then appropriate Psychological Limitations should also be taken.
Seen As An Icon/Paragon
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
A character with this Social Limitation is held up as an example of some ideal or virtue. People tend to hold the character to a higher (and sometimes an impossibly higher) standard of behavior. They present the character to their children as "the way they should be and act", and generally idolize the character because of the ethical and moral virtues he represents. Should the character ever fail in that regard, the social backlash is even greater than that for a character held to looser moral standards. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character.
Seen As An Immature Person
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
This character is perceived as not being as emotionally developed as another person his age. Because of this, it is assumed the character will react to situations in a childish or immature manner. It should be noted that being immature is all relative. A 19 year old acting immature is much different than a 65 year old acting immature. This Disadvantage reflects the belief that the character does not "act his age", whatever that might be. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is Immature, then the appropriate Psychological Limitation(s) should be taken instead.
Seen As An Upper-Class Twit
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character is perceived to be someone who, due to his lavish lifestyle and sheltered upbringing, is out of touch with the realities of life for less wealthy or prestigious persons. He's also considered to be a bit dim. Poorer people and those lower on the social scale often resent the character's alleged luxurious lifestyle and enjoy mocking him or "turning the tables". ("So, Lord Fauntleroy, I guess you'll have to *work* for your dinner, just like everyone else around here. This is called a 'mop.' Have you ever seen one of these before?") The character is often the target of scams based on his supposed wealth and lack of intelligence/street smarts. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is an Upper-Class Twit, then the appropriate Psychological Limitation should also be taken. The character should either buy a combination of Wealth and Perks to simulate their "upper-class" status, or have a background explaining why the public thinks he has those things.
Seen As Easy
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character is perceived to be sexually available, and less than discriminate about his choice of partners. Unlike Seen as a Horndog/Slut, the character is not believed to be aggressive in seeking sex, but merely very easy to persuade. The character will be approached for sex more often than the norm, often by less than ideal partners who haven't had much luck elsewhere. He'll be looked down upon by the prudish, and those worried about sexually transmitted diseases will avoid him. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is easily persuaded to have sex, then appropriate Psychological Limitations should be taken instead. Many female characters with this Disadvantage will also have Jerk Magnet as well.
Seen As Rude
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character is perceived to be tactless and inconsiderate of the feelings of others. He is unwelcome in polite society, and anything he says or does will be scrutinized for possible offensiveness. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is rude or tactless, then appropriate Psychological Limitations should be taken as well.
Seen As Unreliable
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character has a reputation for not keeping his promises, not completing his work, not showing up on time, or all three of these. As a result, people will not put themselves in a position where they must rely on the character if they have any other choice. The character will also come in for a lot of teasing about his supposed unreliability. This Disadvantage only reflects the general belief of how the character behaves, and does not reflect the true state of the character. If the character actually is unreliable, the appropriate Psychological Limitations should also be taken.
Sees Any Stranger As A Potential Opponent
Frequently, Minor 10pts.
The character has been raised in an environment where he might be called upon to fight anyone at any time. (Gladiators, duelists, etc.) As a result, he has learned to quickly assess the fighting potential of any person he meets. In addition, he will always hold himself in a position ready to fight when meeting a person whose intentions he does not know or is unsure of. This is obvious to others, and those who do not have the same attitudes often find it frightening or insulting. Depending on the society, the character may be shunned by civilians, or required to stay in certain areas of the town. Either Always Goes Armed or Prefers to Go Armed work well with this Disadvantage.
Sentient Animal
Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character is of a species that belongs to the "animal kingdom" and is not normally believed to be sentient by the majority culture of the campaign. As such, he is treated like an animal, at best. If the character is generally known to be sentient at some level, he's treated as property (valuable property, however.) If not, or if sentient animals are feared by the society, then he can be hunted or imprisoned by anyone who is legally allowed. (And some that aren't legally allowed, if they don't mind being criminals.) This Disadvantage is for sentient animals who are unable to mimic human speech. If the character can speak, use Talking Animal instead. Distinctive Features are not required for this Disadvantage; many sentient animals exactly resemble their less brilliant cousins.
Sentient Machine
Occasionally, Minor 5pts. / Occasionally, Major 10pts. / Occasionally, Severe 15pts. / Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts. / Very Frequently, Minor 15pts. / Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character is an artificial life form with full self-awareness, in a society that does not fully accept such things. At the minor level, the character is a second-class citizen, denied the right to vote, banned from certain jobs or areas, and subject to verbal abuse from humans. At the major level, the character is treated as a slave or valuable property, and may be exposed to serious harm in their daily work. At the severe level, sentient machines are feared and/or hated, and are treated as property at best, but more often as a threat to humanity. In human societies, sentient machines that cannot talk will never rise above the Major severity level, and those that cannot speak or write (for example, an bulldozer that has suddenly gained intelligence, but no way to speak or print out text) will always be at the Severe level. Characters with this Disadvantage should also take the Distinctive Features: Artificial Lifeform at some level. Various Physical Limitations related to being a machine are also appropriate, but not required.
Sex Object
Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character has too much sex appeal for his own good. (Traditionally, this is a female role, but male characters can qualify as well.) The character will be steered towards careers where an attractive appearance is mandatory, and will be presumed by many to only be successful because of his appearance and sex appeal. He will be looked down upon by the prudish, and considered a rival or annoyance by those who aren't sexually attracted to him. He is likely to be sexually propositioned far more than he's interested. A character with this Disadvantage must have a relatively high Comeliness, and may have Presence purchased with the Power limitation "Only vs. People Sexually Attracted to Him (-½)". He will also have Distinctive Features: Unusually Attractive/Very Sexy at the Concealable with Effort level.
Slave
Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character, despite being a free-willed sentient being, is the property of another person. As such, he must obey any instructions given to him by his owner (or suffer severe punishments), and any decision that affects the character may be decided by his owner instead. At the Major level, the society's laws limit what can be done to slaves: there may be a mandatory manumission period, the slave owner might not be permitted to kill his slaves outright, etc. At the Severe level, there are essentially no limits to what the owner is permitted to do to his slaves. In many societies, slaves will also have Distinctive Features: Slave Brand or the equivalent. If the slave escapes, this Disadvantage becomes Escaped Slave.
Smarmy
Frequently, Minor 10pts.
The character comes across to others as excessively suave and ingratiating, to the point of having an "oily" feel. As such, people that react badly to insincerity or flattery will avoid the character, and instinctively distrust him.
Smoker
Occasionally, Minor 5pts. / Frequently, Minor 10pts.
The character habitually inhales the smoke of a burning substance, either for enjoyment or because he is addicted to it. In addition, his society places some restrictions on this habit. At the Occasionally level, there are limited places where the character is unable to smoke, usually clearly marked. (Note that even in societies where smoking is completely accepted, there will be certain areas where it is prohibited for safety reasons. They do not qualify for this Disadvantage.) At the Frequently level, reasonably large areas are off-limits to smoking; or the character belongs to a social group that cannot legally smoke (for example, minors in 21st Century America). At the Very Frequently level, smoking is only allowed in specific smoking areas, or in the privacy of one's home. If the character's burnt substance of choice is actually illegal in the society, then use the Social Limitation Criminal (Illegal Drug User) instead. Many smokers have Addicted to (Substance) as well. If the society sets this Disadvantage at the Very Frequently level, then Distinctive Features: Smells like Smoke is good as well.
Social Anxiety
Frequently, Minor 10pts.
The character is known to be cripplingly shy or to have a social phobia that prevents them from interacting with others comfortably. Thus, they tend not to be invited to social gatherings, except by well-meaning and overbearing sorts who want to "cure" the character by the sink-or-swim method. Also, the character's body language will tend to warn off the observant, who will recognize that he does not want to be approached.
Social Class
Occasionally, Minor 0pts. / Occasionally, Major 5pts. / Occasionally, Severe 10pts. / Frequently, Minor 5pts. / Frequently, Major 10pts. / Frequently, Severe 15pts. / Very Frequently, Minor 10pts. / Very Frequently, Major 15pts. / Very Frequently, Severe 20pts. (Not Limiting In Some Cultures/Societies: -5 Points Already Added In)
Through birth or achievement, the character belongs to a social class that has special restrictions or obligations. The character's status might be high or low, positive or negative, but it causes some sort of difficulty for him. Many specific types of Social Class Disadvantages are already provided by this list.
Stalker
Frequently, Minor 10pts. / Frequently, Major 15pts.
In some ways, this Disadvantage is similar to Biggest Fan; however, in this case, the Stalker follows the character with a darker intent. A Stalker is psychotically obsessed with the character. His goal is to find some piece of information about the character that only he knows. This will allow him to have a personal link to his "hero". While on the surface, his activities seem to mimic those of the Biggest Fan, the truth is that he is willing to go to any length to meet and become close to the character -- even going so far as to threaten or harm his loved ones. Should the character somehow ever not live up to the Stalker's preconceived image of the character, he will decide to kill the character as punishment for disappointing him. This Disadvantage is different from a Hunted in terms of threat level. It is assumed that a Stalker is vastly less powerful than the character he is stalking, and is therefore only mildly a threat as a Hunter. If the situation is different, the character should take a Hunted instead.
Stranger In A Strange Land
Frequently, Minor 10pts.
The character is obviously out of touch with the society he lives in, and those around him easily pick up on it. Some people will shun or make fun of the character, others may pity him or try to take advantage of him. The character must have a Psychological or Physical Limitation to define how he is out of step with the society he's in. Possibilities include Out of Touch With the Times, Unfamiliar With Modern Technology, and Doesn't Understand Human Society.
Stunningly Beautiful
Very Frequently, Minor 15pts.
The character is extremely visually attractive by the standards of the campaign society. He turns heads, stops traffic, silences loud rooms, etc. just by being visible. The character is not necessarily sexually attractive; it may be chaste or even inhuman beauty. To take this Disadvantage, the character must have a high Comeliness, and should also have the Distinctive Feature: Stunningly Beautiful.
Stutterer
Occasionally, Minor 5pts.
This character suffers from a stammer or similar speech impediment. Most Interaction Skills (especially Oratory and Persuasion), as well as several Professional Skills, are next to impossible for the character to learn. In addition, most strangers will treat the Stutterer as if he were an idiot. They (the strangers) will go to great lengths to explain things to the character (whether he needs them to or not), will condescend to him, and will most often finish his sentences for him. Alternately, the character can withdraw, only speaking rarely, and thus is seen by most strangers as closed, stand-offish, and moody. The character should also take the Physical Limitation: Stutters.
Subject To Orders
Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character belongs to an organization, such as the military, that effectively has control over every aspect of his life, and can send him into harm's way at a moment's notice. He can refuse orders, but only if willing to accept severe punishment. The severity rises to Severe if the character is sent on suicidal missions or the equivalent on a regular basis. Note that most organizations that inflict this Disadvantage have very strict rules about what sort of people are allowed to join; many Physical and Psychological Limitations may be disallowed.
Subjugated
Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character's homeland has been conquered by a foreign country, which now rules it. As such, the natives are at the mercy of the invaders. They may be forbidden to have weapons, practice their religion, leave their homes at night, etc. Defiance of the new authorities is likely to result in imprisonment or death. Often, the natives are forced to labor for their new masters, give them tribute and be taken to the invaders' homeland as slaves. At the Major level, the occupation is under "the rule of law." The subjugated people have some rights, (to a trial before being shot, for example) and the occupiers are restricted from committing certain acts against them. At the Severe level, the occupiers' rules allow them to do anything they feel like to their subjects, such as hunting them for sport.
Supernatural Being Masquerading As A Human
Frequently, Major 15pts.
The character is a supernatural being in a human society where such creatures exist, but are not known to exist by the general public. Moreover, he attempts to "pass" as a human to live among them. This Disadvantage is primarily meant for use in "secret magic" modern horror/fantasy campaigns, but may be applicable in other campaigns at the GM's discretion. Generally, in such campaigns, supernatural beings are common enough to have their own subculture, but not their own society. Thus, they hide among the humans. In addition to the individual desire to avoid excessive notice, there is usually an agreement among the subculture to conceal their presence, either formal ("By the Ancient Covenant of Keurk, we are forbidden to lift the Veil") or informal ("If youse let the norms know vamps exist, we's all in hot water, so if you blows our cover, we ices you.") Not only must the character avoid using his powers or indulging unusual eating habits where he can be observed, but he should also avoid interacting with the medical system or law enforcement officials. Failure to successfully stay hidden usually results in humans attempting to kill, capture or worship the character, and may draw fire from other super-naturals. Characters with this Disadvantage often have easily concealable Distinctive Features appropriate to the type of supernatural being they are.
Supervillain
Frequently, Major 15pts. / Very Frequently, Major 20pts.
The character is known to be not merely a criminal, but a supervillain. He is believed to be the sort of person who puts on a costume and uses his unusual abilities and powers to commit crimes, usually in a grandiose manner. As a result, he is feared and/or despised by law-abiding people, frequently has his location reported to the media or police, and is generally attacked on sight by superheroes. Other supervillains will seek him out to propose teamups or consider him a rival to be bested. If the character has a Secret Identity or other method of successfully disguising himself, this Disadvantage comes up Frequently. If the character has a Permanent or Public ID, it's Very Frequently. This Disadvantage is not appropriate for active supervillains, who are usually fully willing to indulge in the "supervillain lifestyle." Appropriate character concepts include former supervillains who have gone straight, supervillains that have lost their powers or are attempting to retire, and in grittier campaigns "shades of grey" heroes whose morally ambiguous actions are judged as villainous by society.
Susan Lucci Disease
Very Frequently, Minor 15pts.
This character consistently produces a high standard of quality in their work. Regardless of what that work actually is, the character does it efficiently, proficiently, and in such a manner that, if it were any other character, they'd receive a plethora of accolades and awards. Unfortunately, this never happens. The character is passed over for recognition time and time again, regardless of how well-qualified they are for it. The character might well be nominated for special recognition, but will never actually win. This sort of misfortune continues despite the fact that its very likely the character's co-workers are quite aware of the quality of the character's work. This Disadvantage is named for soap-opera actress Susan Lucci, who plays Erica Kane on the ABC soap "All My Children". For 12 consecutive years, Ms. Lucci was nominated for the Best Actress Emmy; she was finally recognized in 1999.
Swears Like A Sailor
Frequently, Minor 10pts. (Not Limiting In Some Situations -5 Already Added In)
The character habitually uses language that the majority culture of his society considers profane and/or obscene. As a result, he is looked down upon by those who use more sedate language, and is unwelcome in polite society. Indeed, his potty-mouth ways may get him slapped at times. This is not a Disadvantage in areas where everyone talks like that, however.
Talking Animal
Very Frequently, Minor 15pts. / Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character is an intelligent animal that can communicate by human speech, in a society that is not entirely accepting of such things. At the Severe level, talking animals are basically unknown in the society, and the usual reaction is to dissect them for scientific research or burn them as demons. About the best the character can hope for is to have a protective owner who will keep his secret. At the Major level, talking animals are not unknown, but are still quite rare and have no voice (pun intended) in their own treatment. They're treated as property at best, but usually valuable property. At the Minor level, talking animals have some rights, but are definitely second-class citizens. At this level, it no longer enough for the animal to talk to make a living, they'll actually need a talent. Distinctive Features are not necessary for this Disadvantage; many Talking Animals look exactly like their mute brethren.
Tool Of The Man
Frequently, Minor 10pts. (Not Limiting In Some Situations -5 Already Added In)
The character is seen as representing the establishment, in particular the wealthy white male establishment. Thus he is viewed with suspicion and disdain by those who feel oppressed by that establishment.
Tourette's Syndrome
Very Frequently, Minor 15pts.
The character is known to have the Physical Limitation: Tourette's Syndrome. His involuntary tics make him the object of ridicule or revulsion, and make it difficult to get many jobs. A character with this Disadvantage should also take either the Physical Limitation, or the Psychological Limitation Pretends To Have Tourette's Syndrome at the Strong level.
Trapped In A Gilded Cage
Frequently, Minor 10pts.
The character has escaped from poverty thanks to either marrying a wealthy person, or accepting a wealthy person's patronage for his artistic endeavors. Thus, he is living a life of luxury. The catch is that the wealth remains in the hands of the patron, and in order to continue enjoying this lifestyle, the character must behave as the patron wishes. (This Disadvantage is only worth points if the character wants to do something the patron would disapprove of, such as having sex with someone else.) The character should purchase a Wealth level commensurate with the patron's generosity; this Perquisite is lost (the points for which must be spent elsewhere) if the character is kicked out by the patron, and this Disadvantage then becomes Destitute until the character finds a new source of money.
Treated Like Property
Very Frequently, Major 20pts.
The society the character lives in does not consider him a full human being. He cannot own anything in his own right, and another person must be responsible for his behavior. For example, a woman in a highly patriarchal country.
Typhoid Mary
Frequently, Major 15pts. / Frequently, Severe 20pts. / Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character is known to the authorities to be the carrier of a virulent and communicable disease, such as typhoid. As such, he is under strict regulations designed to prevent the spread of the disease, and can be imprisoned (or even executed!) if he does not obey these rules. In games set before the 20th Century, this Disadvantage is known as Leper instead. Most characters with this Disadvantage have Carrier of/Infected With (Infectious Disease) as well. Some diseases may also cause Distinctive Features.
Uncouth
Occasionally, Minor 5pts. / Frequently, Minor 10pts. / Very Frequently, Minor 15pts.
The character, due to a lower-class or foreign upbringing, is unacquainted with the refined manners and etiquette of polite society. As such, his mannerisms, clothing and word choices mark him out in a distinctly unfavorable manner. Upper-class people often look down on the uncouth, and they are frequent targets of snobs. Characters with this Disadvantage are not allowed to buy High Society or related skills. The frequency of this Disadvantage should be set by the GM based on how often the character will be dealing with the upper classes.
Underage
All The Time, Slightly 15pts.
This is most appropriate in modern settings, however any setting with a Right Of Passage that conveys certain privileges is appropriate. The Character must be young, typically a child or teenager. Certain places are completely off limits to the Character: 21 And Over clubs, bars, and casinos being the most notable.
Unique
Frequently, Minor 10pts. / Frequently, Major 15pts. / Frequently, Severe 20pts.
The character is the only one of his kind. For example, the last member of an alien species whose home planet was destroyed, or the only successfully created sentient machine, the secret of whose construction has been lost. Some people will pity him, others wish to study him or have him on display. At the Severe level, all the others of his kind were killed deliberately, and he will be slain himself if discovered. If the character is not able to disguise his nature, the frequency is raised to Very Frequently, adding five points to it's value. A character with this Disadvantage may have Distinctive Features related to the kind of being he is the only one of, and could easily be Lonely.
Unregistered Superhuman
Frequently, Major 15pts.
This Disadvantage is only appropriate in campaign worlds where individuals with paranormal abilities are required by law to register with the government. It reflects the fact that the character, for whatever reason, is in violation of said laws. The character may or may not officially be a Wanted Criminal, but any conspicuous use of his abilities will very likely get him in trouble -- especially if the media or police are there to witness the "disturbance."
Unwanted "Family" Connection
Frequently, Minor 10pts. / Frequently, Major 15pts.
The character is known to be related to a notorious criminal or other infamous person, and people judge him based on this fact. At the Minor level, police will sometimes harass the character, he may be snubbed by polite society, and criminals may think the character can be used as an "in" to contacting the infamous relative. At the Major level, the character is assumed to be a criminal as well, and may be targeted by the infamous relative's enemies. The relative may be a Contact or a Hunted.
Walking, Talking Stereotype
Very Frequently, Minor 15pts.
The character belongs to a group that is the subject of a stereotype, and embodies it. As a result, he is unable to avoid any negative reactions associated with that group. Characters with this Disadvantage that are from a country with a well known stereotype will often also have the Psychological Limitation: Acts Stereotypically (Nationality).
Wanted Criminal
Frequently, Major 15pts. / Frequently, Severe 20pts. / Very Frequently, Major 20pts. / Very Frequently, Severe 25pts.
The character is not merely known to be a criminal, but one whom the police or other law enforcement agencies are actively hunting for serious crimes. His picture is displayed on post office walls and broadcast on television; the newspapers have frequent updates on the search for this dangerous individual. There's even a small reward for information leading to his capture and/or conviction. (A large reward would be the Bounty Disadvantage instead.) At the Severe level, the fugitive is considered so dangerous that a "shoot on sight" policy has been adopted. The character should also take a Hunted by the appropriate agency.
Well-Known Capabilities/Weaknesses
Frequently, Major 15pts. / Very Frequently, Major 20pts.
The character's skills, powers and weaknesses are known to either a large section of society, or to nearly everyone. As a result, everyone who is likely to meet or battle him will know exactly what he can do and how to defeat him. This Disadvantage is primarily for "cookie-cutter" monsters who are all virtually the same, but could also be useful for a superbeing whose powers/weaknesses are particularly well-studied and reported on (Superman being the best comic-book example). Naturally, the character should have several other Disadvantages to be well-known.
<<tabs "[tag[~Sortilege Spells]sort[order]]">>
---
//Quick Links:// | [[Cantrips|~Sortilege Cantrips]] | [[1st|~1st Level Spell]]
The caster always knows which way is south and which way her home is at all times, even if knocked unconscious or after sleeping.
---
''Enhanced Senses'': //Location Sense//; direction (north/south); direction (designated locations)
//Continuing Charge//: Sun (-1/4); //Extra Time//: Delayed Phase (-1/4), //Concentration//: 1/2 DCV (-1/2);
<<tabs "[tag[~Spells by Class]]" default:"~Bardic" class:"tc-vertical">>
---
//Quick Links:// ~[[Bardic|~Bardic Spells]] | [[~Clerical Spells]] | ~[[Druidic|~Druidic Spells]] | ~[[Elementalism|~Elementalism Spells]] | ~[[Paladin|~Paladin Spells]] | ~[[Ranger|~Ranger Spells]] | ~[[Sortilege|~Sortilege Spells]] | ~[[Stregari|~Stregari Spells]] | ~[[Wizardry|~Wizardry Spells]]
<<tabs "[tag[~Spells by Level]sort[order]]">>
---
//Quick Links:// | [[Cantrips|~Cantrips]] | [[1st|~1st Level Spell]]
!! [[~Spells by School]]
<<tabs "[tag[~Spells by School]]" default:"§Channeling Spells" class:"tc-vertical">>
---
//Quick Links:// [[§Channeling|§Channeling Spells]]
<<tabs "[tag[~Stregari Spells]sort[order]]">>
---
//Quick Links:// | [[Cantrips|~Stregari Cantrips]] | [[1st|~1st Level Spell]]
!!! ~[[Survival (Find/build Shelter)|~Survival (Find/Build Shelter)]]
''Type:'' {{!!skill-type}} Skill (roll: 7 + ({{!!base-roll}} / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less); 2 Character Points for advanced familiarity (roll: 9 or less); 3 Character Points for base roll with one category; each additional category costs 2 Character Points (and each subcategory costs 1 Character Point); +1 to the roll with all categories and subcategories known per +2 Character Points.
---
In addition to dealing with recurring needs such as food and water, characters in wilderness areas have to find or build shelter from the
elements. Otherwise they risk the effects of exposure, which can sometimes be fatal.
!!!! Finding Shelter
The easiest way to obtain shelter is to find it. Naturally-occurring forms of shelter include caves, hollow trees/logs, and the like. The Finding Shelter Table lists the modifiers for finding appropriate shelter based on the type of environment; the more severe the environment, the harder it is to find shelter.
|Type of Environment | Arctic | Temperate / Subtropical | Tropical |h
|Coast | -4 | -2 | -1 |
|Desert, sand dune | -- | -- | -6 |
|Desert, scrub or salt marsh | -- | -- | -4 |
|Forest | -3 | -1 | -1 |
|Marine | -5 | -5 | -5 |
|Mountains | -4 | -2 | -2 |
|Plains | -4 | -3 | -3 |
|Swamp / Marsh | -- | -2 | -2 |
|Underground | -5 | -3 | -3 |
|Urban | +3 | +3 | +3 |
!!!! Building a Shelter
If a character can’t find shelter, he may have to build one. This includes things like digging snow caves, making crude lean-tos with branches, building simple treehouses, and so forth. The Building Shelter Table lists the modifiers for building shelter, based primarily on the availability of appropriate materials or the like. If the character has useful tools (hammer and nails, a shovel, and so forth), the GM may add positive modifiers of +1 or more as well and decrease the time needed.
|Type of Environment | Arctic | Temperate / Subtropical | Tropical |h
|Coast | -4 | -2 | -1 |
|Desert, sand dune | -- | -- | -5 |
|Desert, scrub or salt marsh | -- | -- | -4 |
|Forest | +2 | +3 | +3 |
|Marine | -5 | -5 | -5 |
|Mountains | -3 | -3 | -3 |
|Plains | -2 | -1 | -1 |
|Swamp / Marsh | -- | +2 | +2 |
|Underground | -5 | -5 | -5 |
|Urban | +3 | +3 | +3 |
!!! ~[[Survival (Find/Prepare Food)|~Survival (Find/Prepare Food)]]
''Type:'' {{!!skill-type}} Skill (roll: 7 + ({{!!base-roll}} / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less); 2 Character Points for advanced familiarity (roll: 9 or less); 3 Character Points for base roll with one category; each additional category costs 2 Character Points (and each subcategory costs 1 Character Point); +1 to the roll with all categories and subcategories known per +2 Character Points.
---
The first thing on many characters’ minds when they’re stranded in the wilderness is food. Survival (Find/Prepare Food) allows a character to find or obtain food, and to prepare it in basic ways so it’s safe and palatable to eat.
!!!! Foraging
The first way to find food is to forage for it and gather it up. This includes looking for, finding, and identifying nuts, fruits, roots and tubers, carrion, mushrooms, insects, and so forth. The Foraging Table lists the modifiers for foraging in various environments; characters should roll once per hour. Success indicates enough food to feed one person for one meal (if the GM uses the degree of success rules, higher degrees of success mean the character found more food). If the character made the roll despite the multiple-person penalty, then he finds enough food to feed that many people for one meal — but he may prefer to forage without the penalty for multiple hours, hoping for enough successes to feed two or more people.
The ability to forage also includes the ability to identify edible foodstuffs. Once a character finds food, he may make another Survival roll (usually unmodified for any environment category he knows) to determine if said food is edible, inedible, or (worst of all) poisonous. (He can use this aspect of the Skill with captured or killed game as well.)
|Type of Environment | Arctic | Temperate/Subtropical | Tropical |h
|Coast | -2 | -1 | -0 |
|Desert, sand dune | -- | -- | -5 |
|Desert, scrub or salt marsh | -- | -- | -3 |
|Forest | -0 | +2 | +4 |
|Marine | -0 | +1 | +2 |
|Mountains | -4 | -2 | -1 |
|Plains | -2 | -0 | +1 |
|Swamp/Marsh | -- | +2 | +4 |
|Underground | -6 | -4 | -3 |
|Urban | +2 | +2 | +2 |
!!!! Hunting, Trapping, And Fishing
Instead of just trying to find food, the character can actively try to catch it or kill it. Survival (Find/Prepare Food) includes the ability to make snares to catch small game (rabbits, quail, fish, and the like), though not the ability to build deadfalls, pit traps, and other devices for catching or injuring large animals or humans (that requires Security Systems). It also includes the ability to drive animals into an ambush or dead end (but not to lure them with false calls; that’s Mimicry). And it includes the ability to fashion crude fishhooks and lines, and with the GM’s permission even simple hunting weapons (sharppointed spear-like sticks for gigging fish and frogs, stones for throwing [and perhaps crude slings as well], and so forth). Creating true weapons that can stand up to actual combat or use against large animals requires ~[[Weaponsmith|~Weaponsmith]].
In most cases, a successful Survival roll indicates the character found an appropriate food animal and caught or killed it somehow; it’s not necessary to make Attack Rolls or damage rolls. But the GM can turn hunting into more of a combatlike affair if he feels it would add drama to the game or give characters the chance to use other Skills (such as ~[[Stealth|~Stealth]] or ~[[Combat Skill Levels|~Combat Skill Levels]]) to improve their odds of obtaining food.
The Hunting/Trapping/Fishing Table lists the modifiers for hunting, trapping, fishing, and similar activities in various environments; these modifiers apply both to the actual attempt to obtain food and to the effort to make the proper tools (if the GM requires a roll for the latter). How often characters get to roll depends on the GM’s judgment on how common the type of game they’re searching for is; once per hour would be the maximum in most cases, but once per three to six hours may be more appropriate for most environments.
|Type of Environment | Arctic | Temperate/Subtropical | Tropical |h
|Coast | -0 | +1 | +2 |
|Desert, sand dune | -- | -- | -5 |
|Desert, scrub or salt marsh | -- | -- | -3 |
|Forest | +1 | +2 | +4 |
|Marine | -0 | +1 | +3 |
|Mountains | -3 | -2 | -0 |
|Plains | -1 | +1 | +2 |
|Swamp/Marsh | -- | +2 | +4 |
|Underground | -5 | -4 | -2 |
|Urban | -0 | -0 | -0 |
!!!! Food Preparation
Once a character obtains food, he has to prepare it for eating. While a lot of foraged food can be consumed as-is, most people don’t enjoy raw meat. Preparing a game animal, scavenged carrion, or the like to eat usually requires requires a fire (see [[~Survival (Firestarting)]]) and an unmodified Survival (Find/Prepare Food) roll; if the character has PS: Cooking he may use that instead, with Survival (Find/Prepare Food) as a Complementary Skill. (In any event, Survival isn’t as good as PS: Cooking.) The character should roll once per animal carcass butchered and dressed, or once per meal prepared, as the GM sees fit.
Characters can also use Survival (Find/Prepare Food) to prepare food for long-term storage so they can carry it with them as they travel. This requires a Survival (Find/Prepare Food) roll at -1. Success preserves the food for 1d6+1 days; failure by 1-3 leaves only 1d6 x 10% of the food edible within the next day, and failure by 4 or more ruins the food altogether.
Preserves meat from decay, and with an //ignis// requisite, even keeps the meat warm for the duration, while a //glacies// requisite keeps the meat chilled for the duration.
---
''Effect:'' Change Environment (Preservation) 2m radius; duration: 12 hour maximum; 1 continuing charge (-1/4);
!! [[~Verbal Sparring]] Extension Package
Not all battles are won with blades. Some characters recieve training to improve their ability to mingle with society and move publically among the mighty, while others are just naturally sangfroid.
!! [[~Well Connected]] Extension Package
Some people are hooked up, connected, know who to talk to, or otherwise have a social network they can rely upon for help from time to time.
!! [[~Winter Fighting]] Extension Package
Some characters recieve training to improve their ability to fight in winter conditions, or perhaps are from a land where fighting in artic conditions is necessary to survival.
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">School</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Concentration</th>
<th style="background: #b3ad97;">G/I</th>
<th style="background: #b3ad97;">Target</th><th style="background: #b3ad97;">Range</th><th style="background: #b3ad97;">Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Wizardry]level[0]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!school}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="right">{{!!concentration}}</td>
<td align="center">{{!!gestures}} / {{!!incantation}}</td>
<td align="center">{{!!target}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!area}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
<<tabs "[tag[~Wizardry Spells]sort[order]]">>
---
//Quick Links:// | [[Cantrips|~Wizardry Cantrips]] | [[1st|~1st Level Spell]]
/*BOXES*/
html body.tc-body .graybox {display:block;background-color:#eee;padding:5px;padding-left:20px;padding-top:10px;margin-top:5px;margin-bottom:5px;width:95%;}
code {color: #b0a;}
/*TIGHT NOTES*/
html body.tc-body h1, html body.tc-body h2, html body.tc-body h3, html body.tc-body h4 { margin-top: 0.3em; margin-bottom: 0.3em; }
/*FONT SUBTITLES*/
.serif {font-family: 'Arial', sans-serif;color:#bbb;font-size:10pt;}
html body.tc-body .serif a.tc-tiddlylink-external {font-family: 'Arial', sans-serif;font-size:12pt; line-height:normal;font-weight:normal;color:#666;}
/*FONT STUFF (colors)*/
html body.tc-body .lightgraybk {background:#eee;padding:1px 4px px 4px;margin-bottom:2px;font-family:'Arial', sans-serif;}
.red {color:red;}
/*FONT STUFF SOURCES*/
html body.tc-body .source {color:#777;font-size:10pt;}
/*HORIZONTAL RULE*/
html body.tc-body hr {border:0px;}
html body.tc-body hr {
border-top: 1px solid #bbb;
text-align: center;
width:100%; margin-top:15px; margin-bottom:15px;
}
/*ICON COLORS*/
html body.tc-body .tc-image-new-button {stroke: white;fill:#7897fc;}
html body.tc-body .tc-image-timestamp-on {stroke: white;fill:#7897fc;}
html body.tc-body .tc-image-chevron-up {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-chevron-down {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-fold-button {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-unfold-button {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-preview-open {stroke: white;fill:#d9c;}
/*INDENTING*/
html body.tc-body .indent1 {margin-left:1.5em;display:block;}
/*LINKS*/
html body.tc-body a.tc-tiddlylink {text-decoration: none;font-style: normal;font-weight: normal;}
html body.tc-body a.tc-tiddlylink-missing {font-weight:normal; background-color:#ffd; color:#66f;font-style:normal;}
html body.tc-body a.tc-tiddlylink-external {text-decoration: none;font-weight: normal;color: #109;}
html body.tc-body a.tc-tiddlylink-visited {text-decoration: none;font-weight: normal;color: #66f;}
html body.tc-body .source a.tc-tiddlylink-external {font-weight: normal;font-size:10pt;}
/*TABLES BASIC*/
html body.tc-body th {color:#000;}
html body.tc-body td {color:#000;}
/*TABLES GREENALTROWS*/
html body.tc-body .greenaltrows th {padding: 10px; border: 1px solid #aaa; vertical-align:top;text-align:left;}
html body.tc-body .greenaltrows td {padding: 10px; border: 1px solid #aaa; vertical-align:top;}
html body.tc-body .greenaltrows tr:nth-child(even) td {background-color:#F3F6F5;}
html body.tc-body .greenaltrows tr:nth-child(odd) td {background-color:#E7EDEB;}
html body.tc-body .greenaltrows {
-moz-box-shadow: 10px 10px 5px #bbb;
-webkit-box-shadow: 10px 10px 5px #bbb;
box-shadow: 10px 10px 5px #bbb;
}
/*TIDDLER TITLES*/
.tc-tiddler-missing .tc-title { font-style: normal; font-weight: bold; }
/*HIDE SECTIONS FOR PRINTING*/
@media print {#tc-page-background {display: none ! important;}}
@media print {.tc-tags-wrapper {display: none ! important;}}
@media print { body.tc-body {background-color: transparent;}}
@media print {.tc-image-chevron-up {display: none ! important;}}
@media print {.tc-image-chevron-down {display: none ! important;}}
@media print {button.sidebar-toggle {display: none ! important;}}
@media print {.hideprint {display: none ! important;}}
@media print {.tc-btn-invisible {display: none ! important;}}
@media print {
.story-river {
margin: 0;
padding: 0;
}
html body.tc-body .tc-tiddler-frame {
margin: 0;
border-bottom: 1px solid #fff;
padding: 5px;}
html body.tc-body a.tc-tiddlylink-external:hover {
border: 1px solid <<colour tiddler-border>>;
}
html body.tc-body .tc-tiddler-info {
padding: 14px 42px 14px 42px;
background-color: <<colour tiddler-info-background>>;}
}
}
<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} journalTags={{$:/config/NewJournal/Tags}} journalText="">
<$wikify name="journalTitle" text="""<$macrocall $name="now" format=<<journalTitleTemplate>>/>""">
<$reveal type="nomatch" state=<<journalTitle>> text="">
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags="" text={{{ [<journalTitle>get[]] }}}/>
</$reveal>
<$reveal type="match" state=<<journalTitle>> text="">
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags="" text=<<journalText>>/>
</$reveal>
</$wikify>
</$vars>
\define journalButton()
<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/.giffmex/actions/new-journal}}>
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/timestamp-on}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>
</$list>
</$button>
\end
<<journalButton>>
<span class="doublelist">
*''2-28-2020''
**Thanks to help from Mark S. at the ~TiddlyWiki Google group (and Thomas Elmiger, Mohammad and ~TonyM), the checkboxes for changing the way to view references now work the way I have always wanted them to: choosing one view closes the other views.
**Added a TiddlyBlink palette and a palette switcher in the 'gear' tab.
**Changed tiddlers: $:/.giffmex/sidebar/tabs/tiddlyblinkcontrols, $:/.giffmex/ViewTemplate/refstranscludeclean, $:/.giffmex/ViewTemplate/refstranscludecollapse, $:/.giffmex/ViewToolbar/viewrefscheckboxes.
*''1-29-2020:''
**Added CSS in $:/.giffmex/.Stylesheet4tiddlyblink for tighter padding around transcluded notes.
**Added $:/sk/WhiteList so users can add wikiwords they don't want to automatically turn into links
**Moved the checkboxes for toggling notes as context / transclude / links to the ~TiddlyBlink tab in the sidebar.
**With the help of ~TonyM and Eric Shulman at the ~TiddlyWiki Google group, I was able to fix a problem with the button at the top of the tiddlers that creates new tiddlers with a date and time stamp for the title.
**Improved instructions, including an example file at http://giffmex.org/gifts/tiddlyblinkexample.html
*''1-30-2020:''
**Made tiddler titles above transclusions into links, by popular demand.
*''1-31-2020''
**With the help fo ~MarkS at the ~TiddlyWiki Google group, I added a new way of viewing references: transclusion with open and close buttons.
**Added the home page and more documentation, accessible from the 'Start here' tab.
*''2-1-2020''
**Changed .outlinesList to .hideList
**Added documentation to .hideList, .sourcesList and .topicList
**Other minor documentation changes (2 and 3)
**Link to upcoming Spanish version
**Updated [[$:/.giffmex/meta/How.to.add.TiddlyBlink.to.your.TiddlyWiki]] (the list there will soon be replaced with a plugin!)
*''2-4-2020''
**Now when you save a tiddler, any links in that tiddler to non-existent (missing) tiddlers automatically cause the creation of those tiddlers. So you don't need to open the links, click edit, and click save, as before.
*''2-6-2020''
**Added the parallel tab in the sidebar ($:/.giffmex/sidebar/parallel) for viewing tiddlers side by side. See [[3. See tiddlers side by side]]. Use by tagging and untagging a tiddler with `parallel`
**Adjusted relative width of story river and sidebar, and hide sitetitle and sitesubtitle from sidebar, to make room for the parallel tab.
*''2-7-2020''
**Replaced yesterday's parallel tab with an even better one! Courtesy of A Gloom from the TiddlyWiki Google group. Now just paste a tiddler title into the parallel tab field, and view the tiddler's contents for side-by-side reading. ($:/.giffmex/sidebar/parallel and $:/.giffmex/sidebar/parallel2)
**Hid 'meta' tags from References, per suggestion by Mark S at the TiddlyWiki Google group.
*''2-12-2020''
**Changed TB so that only linked references appear in the reference section. Added $:/.giffmex/meta/hack.tiddlyblink with instructions on how to put it back in. See $:/.giffmex/ViewTemplate/refscontext, $:/.giffmex/ViewTemplate/refslinks, $:/.giffmex/ViewTemplate/refstranscludeclean, and $:/.giffmex/ViewTemplate/refstranscludecollapse
**Made available from the tiddler view toolbar, the checkboxes for showing and hiding references. See the {{$:/core/images/preview-open}} menu at the top of the tiddlers. $:/.giffmex/viewtoolbar/viewrefs, $:/.giffmex/ViewToolbar/viewrefscheckboxes, and $:/config/ViewToolbarButtons/Visibility/$:/.giffmex/ViewToolbar/viewrefscheckboxes
</span>
*Change the title and subtitle of this file
**Edit [[$:/SiteTitle]] and [[$:/SiteSubtitle]]
*Customize the date and time stamp when creating new notes
**Open [[$:/config/NewJournal/Title]] and adjust. The guide to formatting dates and times is here: https://tiddlywiki.com/#DateFormat
**Make changes to the Custom Stylesheet: edit [[$:/.giffmex/.Stylesheet4tiddlyblink]] and/or create a tiddler and tag it `$:/tags/Stylesheet` and choose 'text/css' in the type field.
*Keep WikiWords (CamelCase words like McDonalds ) from becoming links
**Add `~` before a wikiword to keep it from becoming a link
**To add to a word-by-word list of frequent wikiwords that should not be links, add them, comma-separated, to $:/sk/WhiteList
**Nuclear option: To turn off //all //automatic wikiword linking, open $:/ControlPanel > Settings > uncheck the Camel Case Wiki Links checkbox
!!All references, in links and in regular text.
We disabled references that do not appear in links. This was a feature in early versions of TiddlyBlink, but we and others found it produced a lot of unwanted references, and confusion as people clicked the link and did not have a link to return back to the previous tiddler.
But if you would like to have this feature back in your TiddlyBlink, just edit the following tiddlers:
"""
$:/.giffmex/ViewTemplate/refscontext
$:/.giffmex/ViewTemplate/refslinks
$:/.giffmex/ViewTemplate/refstranscludeclean
$:/.giffmex/ViewTemplate/refstranscludecollapse
"""
And replace
`all[current]backlinks[]`
with
`regexp:text<mycrit>`
To get this experience on your own TiddlyWiki or an empty one, drag these links from here to the other TiddlyWiki.
"""
[[.hideList]]
[[.sourcesList]]
[[.topicList]]
[[1. Download and set up TiddlyBlink]]
[[2. Lightning-fast linking and navigating]]
[[3. See tiddlers side by side]]
[[4. Topics, sources and hiding?]]
[[5. My own notetaking process in TiddlyBlink]]
[[6. Learn more about TiddlyWiki]]
[[TiddlyBlink]]
[[TiddlyBlink home]]
TiddlyBlinkFoldData
$:/.giffmex/.Stylesheet4tiddlyblink
$:/.giffmex/actions/new-journal
$:/.giffmex/buttons/newnote-datetime
$:/.giffmex/Change
$:/.giffmex/Change.log
$:/.giffmex/Customize
$:/.giffmex/Customize.TiddlyBlink
$:/.giffmex/meta/hack.tiddlyblink
$:/.giffmex/meta/How
$:/.giffmex/meta/How.to.add.TiddlyBlink.to.your.TiddlyWiki
$:/.giffmex/meta/TiddlyBlink
$:/.giffmex/meta/TiddlyBlink.gears.and.doo-hickeys
$:/.giffmex/sidebar/parallel
$:/.giffmex/sidebar/parallel2
$:/.giffmex/sidebar/tabs/tiddlyblinkcontrols
$:/.giffmex/ViewTemplate/refscontext
$:/.giffmex/ViewTemplate/refslinks
$:/.giffmex/ViewTemplate/refstranscludeclean
$:/.giffmex/ViewTemplate/refstranscludecollapse
$:/.giffmex/ViewToolbar/new-note-here
$:/.giffmex/ViewToolbar/new-note-here-datetime
$:/.giffmex/viewtoolbar/viewrefs
$:/.giffmex/ViewToolbar/viewrefscheckboxes
$:/.tb/macros/list-search
$:/config/AnimationDuration
$:/config/EditorTypeMappings/text/vnd.tiddlywiki
$:/config/NewJournal/Title
$:/config/RelinkOnRename
$:/config/ViewToolbarButtons/Visibility/$:/.giffmex/ViewToolbar/viewrefscheckboxes
$:/config/WikiParserRules/Inline/wikilink
$:/core/ui/Buttons/save
$:/core/ui/EditTemplate
$:/DefaultTiddlers
$:/fullscreen-editor
$:/jd/fullscreen-editor/EditButton
$:/plugins/danielo515/context/css
$:/plugins/danielo515/ContextPlugin
$:/plugins/danielo515/ContextPlugin/Caption
$:/plugins/danielo515/ContextPlugin/widgets/context.js
$:/plugins/flibbles/relink
$:/plugins/jd/fullscreen-editor
$:/plugins/sk/WhiteList
$:/plugins/snowgoon88/edit-comptext
$:/plugins/snowgoon88/edit-comptext/config
$:/SiteSubtitle
$:/SiteTitle
$:/sk/WhiteList
$:/tags/EditToolbar
$:/tags/PageControls
$:/tags/ViewTemplate
$:/tags/ViewToolbar
$:/view
"""
For those who want to understand ~TiddlyBlink better, tinker with it and customize it, here is the basic information (assuming you already know how ~TiddlyWiki works).
''General''
*CSS styles can be found and edited in $:/.giffmex/.Stylesheet4tiddlyblink
''Tiddler toolbar in view mode''
*The + icon activates $:/.giffmex/ViewToolbar/new-note-here and the clock icon activates $:/.giffmex/ViewToolbar/new-note-here-datetime . These create new tiddlers whose text field contains a link to the tiddler used to create them. So the 'child' tiddler contains a link to the 'parent' tiddler. The title field is either empty or contains a date and time stamp, depending on which button is chosen.
*The {{$:/core/images/full-screen-button}} icon activates the [[Fullscreen editor plugin|$:/plugins/jd/fullscreen-editor]]. This opens the current tiddler in edit mode that occupies the entire screen.
''Link creation and editing''
*Typing `[[` activates autocomplete, executed by the [[comptext plugin|$:/plugins/snowgoon88/edit-comptext]]. If the tiddler already exists, you can hit enter if the desired tiddler is the first entry, or navigate with the down arrow key until you reach it. Then hit enter. The opening and closing brackets that get created by this plugin can be modified using the tiddler $:/plugins/snowgoon88/edit-comptext/config .
**Note that the comptext plugin relies on $:/config/EditorTypeMappings/text/vnd.tiddlywiki set to `comptext`
*When you rename a tiddler, this activates the [[Relink plugin|$:/plugins/flibbles/relink]]. This changes all the references to the renamed tiddler title found as links in all the other tiddlers. It does not change references that are not found in links.
*WikiWords in CamelCase automatically turn into links. $:/sk/WhiteList is a list run by the [[Whitelist plugin|$:/plugins/sk/WhiteList]] that allows you to list all WikiWords you do not want turned into links. Other options: manually insert `~` before the WikiWords as they occur in tidders, or, if you are like me and find WikiWords annoying rather than helpful, uncheck the first checkbox in the $:/ControlPanel > settings tab.
''Sidebar''
*The ~TiddlyBlink sidebar is found in the $:/.giffmex/sidebar/tabs/tiddlyblinkcontrols tiddler.
*The blue clock button in the sidebar activates $:/.giffmex/buttons/newnote-datetime . This is set up to create a new tiddler with a date and timestamp in the title.
*Clicking on a checkmark in the ~TiddlyBlink tab tags one of three tiddlers ($:/.giffmex/ViewTemplate/refscontext, $:/.giffmex/ViewTemplate/refslinks, $:/.giffmex/ViewTemplate/refstranscludeclean and $:/.giffmex/ViewTemplate/refstranscludecollapse) with the tag ~$:/tags/ViewTemplate, making them show up under the tiddler. Those three tiddlers grab all the text references to the current tiddler, and format them into either links, transclusions, or highlighted search results in context. The latter uses the [[ContextPlugin|$:/plugins/danielo515/ContextPlugin]].
Paste a tiddler title to view tiddler in tab: <$edit-text tiddler="$:/temp/sbartidddisplayvalue" placeholder="tiddler title" tag="input" type="text"/>
{{$:/.giffmex/sidebar/parallel}} <br><h2><$list filter="[{$:/temp/sbartidddisplayvalue}is[tiddler]]" emptyMessage="tiddler doesn't exist" ></$list></h2>
<$transclude tiddler={{$:/temp/sbartidddisplayvalue}} mode="block" />
\define tagreset()
<$list filter="[tag[refs]sort[created]] -[[$(currentTiddler)$]]" variable="removeme">
<$action-listops $tiddler=<<removeme>> $tags="+[remove[$:/tags/ViewTemplate]]"/>
</$list>
<$action-deletefield dummy/>
\end
Click the palette icon below to ''select a color palette'' from a dropdown. Default is ~TiddlyBlink. TiddlyWiki default is Vanilla. Note that dark themes may obscure some features.
Click here: {{$:/core/ui/Buttons/palette}}
<hr>
<span class="graybox">
''View references as:''
<$list filter="[tag[refs]sort[created]]">
<$list filter="[all[current]tag[$:/tags/ViewTemplate]]">
<$checkbox field=dummy checked="yes" unchecked="yes" default="yes"></$checkbox>
<$link><$view field="caption"/></$link><br/>
</$list>
<$list filter="[all[current]!tag[$:/tags/ViewTemplate]]">
<$checkbox tag="$:/tags/ViewTemplate" xinvertTag="yes" checkactions=<<tagreset>>/><$link> <$view field="caption"/></$link><br/>
</$list>
</$list>
<br>Note that the gray boxes in the context and transclude options are links to their respective tiddlers.
</span>
\define mycrit() (?i)\b$(searchspx)$\b
<hr>References:
<$vars searchme=<<currentTiddler>> searchspx={{{ [<currentTiddler>escaperegexp[]]}}} >
<$list filter="[!is[system]all[current]backlinks[]!tag[outlines]!tag[hide]sort[title]] -[is[current]]"><$link><$view field="title"/></$link><span class="indent1"><$link><span class="graybox"><$context term=<<searchme>> /></span></$link></span></$list>
</$vars>
\define mycrit() (?i)\b$(searchspx)$\b
<hr>References:
<$vars searchme=<<currentTiddler>> searchspx={{{ [<currentTiddler>escaperegexp[]]}}} >
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]sort[title]] -[is[current]]"><$link><$view field="title" /></$link><br></$list>
</$vars>
<hr>
References: <br>
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]!tag[outlines]sort[title]] -[is[current]]"><$link><$view field="title"/></$link><span class="indent1"><$link><span class="graybox"><$transclude field="text" mode="block" /></span></$link></span></$list>
<hr>
References: <br>
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]!tag[outlines]sort[title]] -[is[current]]"><$link><$view field="title"/></$link>
<$reveal type="nomatch" stateTitle="TiddlyBlinkFoldData" stateIndex=<<currentTiddler>> text="show">
<$button class=<<tv-config-toolbar-class>> setTitle="TiddlyBlinkFoldData" setIndex=<<currentTiddler>> setTo="show">{{$:/core/images/unfold-button}}</$button><br/>
</$reveal>
<$reveal type="match" stateTitle="TiddlyBlinkFoldData" stateIndex=<<currentTiddler>> text="show">
<$button class=<<tv-config-toolbar-class>> setTitle="TiddlyBlinkFoldData" setIndex=<<currentTiddler>> setTo="hide">{{$:/core/images/fold-button}}</$button>
<span class="indent1">
<$link><span class="graybox">
<$transclude field="text" mode="block" /></span></$link></span>
</$reveal>
</$list>
\define button()
<$button class=<<tv-config-toolbar-class>> actions=<<actions>>>
{{$:/core/images/new-button}}
</$button>
\end
\define actions()
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> text="""[[$(tid)$]]"""/>
\end
<$wikify name=tid text=<<currentTiddler>>>
<<button>>
</$wikify>
\whitespace trim
\define journalButtonActions()
<$action-sendmessage $message="tm-new-tiddler" title=<<now """$(journalTitleTemplate)$""">> text="""[[$(tid)$]]""" />
\end
\define journalButtonTags()
[[$(currentTiddlerTag)$]] $(journalTags)$
\end
\define journalButton()
<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}}
aria-label={{$:/language/Buttons/NewJournalHere/Caption}}
class=<<tv-config-toolbar-class>>
actions=<<journalButtonActions>>>
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/timestamp-on}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>
</span>
</$list>
</$button>
\end
<$set name="journalTitleTemplate" value={{$:/config/NewJournal/Title}}>
<$set name="tid" value=<<currentTiddler>>>
<<journalButton>>
</$set>
</$set>
\whitespace trim
\define config-title()
$:/config/ViewToolbarButtons/Visibility/$(listItem)$
\end
<$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">
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/preview-open}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text=" "/>
<$text text={{$:/language/Buttons/More/Caption}}/>
</span>
</$list>
</$button>
<$reveal state=<<qualify "$:/state/popup/more">> type="popup" position="belowleft" animate="yes">
<div class="tc-drop-down">
<$set name="tv-config-toolbar-icons" value="yes">
<$set name="tv-config-toolbar-text" value="yes">
<$set name="tv-config-toolbar-class" value="tc-btn-invisible">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] +[tag[refview]] -[[$:/core/ui/Buttons/more-tiddler-actions]]" variable="listItem">
<$reveal type="match" 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>
</$set>
</$set>
</$set>
</div>
</$reveal>
\define tagreset()
<$list filter="[tag[refs]sort[created]] -[[$(currentTiddler)$]]" variable="removeme">
<$action-listops $tiddler=<<removeme>> $tags="+[remove[$:/tags/ViewTemplate]]"/>
</$list>
<$action-deletefield dummy/>
\end
<span style="font-size:12pt;">
<span class="graybox">
''View references as:''
<$list filter="[tag[refs]sort[created]]"><$list filter="[all[current]tag[$:/tags/ViewTemplate]]">
<$checkbox field=dummy checked="yes" unchecked="yes" default="yes"></$checkbox><$link><$view field="caption"/></$link></$list><$list filter="[all[current]!tag[$:/tags/ViewTemplate]]"><$checkbox tag="$:/tags/ViewTemplate" xinvertTag="yes" checkactions=<<tagreset>>/><$link><$view field="caption"/></$link> </$list></$list>
</span>
</span>
{{build-and-export}}
\define list-search(
filter:"[tags[]]",
search:"search:title",
state:"$:/temp/list-search",
template:"$:/core/ui/ListItemTemplate",
placeholder:"Filter",
limit:100000
)
<div>
<$edit-text
tiddler="$state$"
type="search"
tag="input"
default=""
placeholder="$placeholder$"/>
</div>
<$reveal state="$state$" type="match" text="">
<$list filter="$filter$+[limit[$limit$]]" template="$template$"/>
</$reveal>
<$reveal state="$state$" type="nomatch" text="">
<$list filter="$filter$+[$search${$state$}]+[limit[$limit$]]" template="$template$"/>
</$reveal>
\end
Built from branch 'tiddlywiki-com' at commit 71a827eead948c959d3f8e4b243d28ded03db2c5 of https://github.com/Jermolene/TiddlyWiki5.git at 2020-05-06 08:53:29 UTC
$:/plugins/felixhayashi/tiddlymap/hook/editor
YYYY-0MM / 0DD / 0hh:0mm:0ss /
__-abstract-__
<details><summary>
!!!!//''Governmental Values''//
</summary>
</details>
<details><summary>
!!!!//''Power Structure''//
</summary>
</details>
<details><summary>
!!!!//''Philosophy''//
</summary>
</details>
<details><summary>
!!!!//''Type''//
</summary>
</details>
$:/config/NewTiddler/GovernmentTemplate
{
"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-2020, 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 width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-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\"/></svg>"
},
"$:/core/images/advanced-search-button": {
"title": "$:/core/images/advanced-search-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"
},
"$:/core/images/auto-height": {
"title": "$:/core/images/auto-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/blank": {
"title": "$:/core/images/blank",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"
},
"$:/core/images/bold": {
"title": "$:/core/images/bold",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"
},
"$:/core/images/cancel-button": {
"title": "$:/core/images/cancel-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"
},
"$:/core/images/chevron-down": {
"title": "$:/core/images/chevron-down",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"
},
"$:/core/images/chevron-left": {
"title": "$:/core/images/chevron-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"
},
"$:/core/images/chevron-right": {
"title": "$:/core/images/chevron-right",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"
},
"$:/core/images/chevron-up": {
"title": "$:/core/images/chevron-up",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"
},
"$:/core/images/clone-button": {
"title": "$:/core/images/clone-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"
},
"$:/core/images/close-all-button": {
"title": "$:/core/images/close-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"
},
"$:/core/images/close-button": {
"title": "$:/core/images/close-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"
},
"$:/core/images/close-others-button": {
"title": "$:/core/images/close-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"
},
"$:/core/images/copy-clipboard": {
"title": "$:/core/images/copy-clipboard",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"
},
"$:/core/images/delete-button": {
"title": "$:/core/images/delete-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"
},
"$:/core/images/done-button": {
"title": "$:/core/images/done-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"
},
"$:/core/images/down-arrow": {
"title": "$:/core/images/down-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"
},
"$:/core/images/download-button": {
"title": "$:/core/images/download-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"
},
"$:/core/images/edit-button": {
"title": "$:/core/images/edit-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"
},
"$:/core/images/erase": {
"title": "$:/core/images/erase",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"
},
"$:/core/images/excise": {
"title": "$:/core/images/excise",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"
},
"$:/core/images/export-button": {
"title": "$:/core/images/export-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"
},
"$:/core/images/file": {
"title": "$:/core/images/file",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"
},
"$:/core/images/fixed-height": {
"title": "$:/core/images/fixed-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/fold-all-button": {
"title": "$:/core/images/fold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"
},
"$:/core/images/fold-button": {
"title": "$:/core/images/fold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"
},
"$:/core/images/fold-others-button": {
"title": "$:/core/images/fold-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/folder": {
"title": "$:/core/images/folder",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"
},
"$:/core/images/full-screen-button": {
"title": "$:/core/images/full-screen-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"
},
"$:/core/images/github": {
"title": "$:/core/images/github",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"
},
"$:/core/images/gitter": {
"title": "$:/core/images/gitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"
},
"$:/core/images/globe": {
"title": "$:/core/images/globe",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"
},
"$:/core/images/heading-1": {
"title": "$:/core/images/heading-1",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"
},
"$:/core/images/heading-2": {
"title": "$:/core/images/heading-2",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"
},
"$:/core/images/heading-3": {
"title": "$:/core/images/heading-3",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"
},
"$:/core/images/heading-4": {
"title": "$:/core/images/heading-4",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"
},
"$:/core/images/heading-5": {
"title": "$:/core/images/heading-5",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"
},
"$:/core/images/heading-6": {
"title": "$:/core/images/heading-6",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"
},
"$:/core/images/help": {
"title": "$:/core/images/help",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"
},
"$:/core/images/home-button": {
"title": "$:/core/images/home-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"
},
"$:/core/images/import-button": {
"title": "$:/core/images/import-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"
},
"$:/core/images/info-button": {
"title": "$:/core/images/info-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"
},
"$:/core/images/italic": {
"title": "$:/core/images/italic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"
},
"$:/core/images/left-arrow": {
"title": "$:/core/images/left-arrow",
"created": "20150315234410875",
"modified": "20150315235324760",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"
},
"$:/core/images/line-width": {
"title": "$:/core/images/line-width",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"
},
"$:/core/images/link": {
"title": "$:/core/images/link",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"
},
"$:/core/images/linkify": {
"title": "$:/core/images/linkify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" 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\"/></svg>"
},
"$:/core/images/list-bullet": {
"title": "$:/core/images/list-bullet",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"
},
"$:/core/images/list-number": {
"title": "$:/core/images/list-number",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"
},
"$:/core/images/list": {
"title": "$:/core/images/list",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"
},
"$:/core/images/locked-padlock": {
"title": "$:/core/images/locked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/mail": {
"title": "$:/core/images/mail",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"
},
"$:/core/images/menu-button": {
"title": "$:/core/images/menu-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"
},
"$:/core/images/mono-block": {
"title": "$:/core/images/mono-block",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"
},
"$:/core/images/mono-line": {
"title": "$:/core/images/mono-line",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"
},
"$:/core/images/new-button": {
"title": "$:/core/images/new-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"
},
"$:/core/images/new-here-button": {
"title": "$:/core/images/new-here-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"
},
"$:/core/images/new-image-button": {
"title": "$:/core/images/new-image-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"
},
"$:/core/images/new-journal-button": {
"title": "$:/core/images/new-journal-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"
},
"$:/core/images/opacity": {
"title": "$:/core/images/opacity",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"
},
"$:/core/images/open-window": {
"title": "$:/core/images/open-window",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"
},
"$:/core/images/options-button": {
"title": "$:/core/images/options-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"
},
"$:/core/images/paint": {
"title": "$:/core/images/paint",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"
},
"$:/core/images/palette": {
"title": "$:/core/images/palette",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"
},
"$:/core/images/permalink-button": {
"title": "$:/core/images/permalink-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"
},
"$:/core/images/permaview-button": {
"title": "$:/core/images/permaview-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"
},
"$:/core/images/picture": {
"title": "$:/core/images/picture",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></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\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></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\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></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\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"
},
"$:/core/images/preview-closed": {
"title": "$:/core/images/preview-closed",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"
},
"$:/core/images/preview-open": {
"title": "$:/core/images/preview-open",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"
},
"$:/core/images/print-button": {
"title": "$:/core/images/print-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"
},
"$:/core/images/quote": {
"title": "$:/core/images/quote",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"
},
"$:/core/images/refresh-button": {
"title": "$:/core/images/refresh-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"
},
"$:/core/images/right-arrow": {
"title": "$:/core/images/right-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"
},
"$:/core/images/rotate-left": {
"title": "$:/core/images/rotate-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"
},
"$:/core/images/save-button": {
"title": "$:/core/images/save-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"
},
"$:/core/images/size": {
"title": "$:/core/images/size",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"
},
"$:/core/images/spiral": {
"title": "$:/core/images/spiral",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><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.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.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-.01a1.047 1.047 0 01-.264-.332c-.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\"/></svg>"
},
"$:/core/images/stamp": {
"title": "$:/core/images/stamp",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"
},
"$:/core/images/star-filled": {
"title": "$:/core/images/star-filled",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"
},
"$:/core/images/storyview-classic": {
"title": "$:/core/images/storyview-classic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-pop": {
"title": "$:/core/images/storyview-pop",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-zoomin": {
"title": "$:/core/images/storyview-zoomin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"
},
"$:/core/images/strikethrough": {
"title": "$:/core/images/strikethrough",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"
},
"$:/core/images/subscript": {
"title": "$:/core/images/subscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/superscript": {
"title": "$:/core/images/superscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/tag-button": {
"title": "$:/core/images/tag-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"
},
"$:/core/images/theme-button": {
"title": "$:/core/images/theme-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"
},
"$:/core/images/timestamp-off": {
"title": "$:/core/images/timestamp-off",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><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 10a5 5 0 010-10H66.69a5 5 0 015 5c.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\"/></g></svg>"
},
"$:/core/images/timestamp-on": {
"title": "$:/core/images/timestamp-on",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><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 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.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\"/></g></svg>"
},
"$:/core/images/tip": {
"title": "$:/core/images/tip",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"
},
"$:/core/images/transcludify": {
"title": "$:/core/images/transcludify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.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 00-.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 00-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 002.75-.932 6.762 6.762 0 002.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 00-.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 00-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 00-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 00.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 00-.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 002.262 2.084 8.868 8.868 0 002.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 00-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 00.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 00-.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 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"
},
"$:/core/images/twitter": {
"title": "$:/core/images/twitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"
},
"$:/core/images/underline": {
"title": "$:/core/images/underline",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"
},
"$:/core/images/unfold-all-button": {
"title": "$:/core/images/unfold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unfold-button": {
"title": "$:/core/images/unfold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unlocked-padlock": {
"title": "$:/core/images/unlocked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/up-arrow": {
"title": "$:/core/images/up-arrow",
"created": "20150316000544368",
"modified": "20150316000831867",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"
},
"$:/core/images/video": {
"title": "$:/core/images/video",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"
},
"$:/core/images/warning": {
"title": "$:/core/images/warning",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></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/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "Select the sidebar search field"
},
"$:/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/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "Toggle the sidebar visibility"
},
"$:/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/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "Default focus field for new tiddlers"
},
"$:/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/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "Tags for 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/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "delete this entry from the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "Show color names that are not part of the current palette"
},
"$:/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/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "Also requires:"
},
"$:/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/Downgrade/Caption": {
"title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
"text": "downgrade"
},
"$:/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/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(requires reload)"
},
"$:/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/Plugins/Update/Caption": {
"title": "$:/language/ControlPanel/Plugins/Update/Caption",
"text": "update"
},
"$:/language/ControlPanel/Plugins/Updates/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/Caption",
"text": "Updates"
},
"$:/language/ControlPanel/Plugins/Updates/Hint": {
"title": "$:/language/ControlPanel/Plugins/Updates/Hint",
"text": "Available updates to installed plugins"
},
"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
"text": "Update <<update-count>> plugins"
},
"$:/language/ControlPanel/Plugins/SubPluginPrompt": {
"title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
"text": "With <<count>> sub-plugins available"
},
"$:/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/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "Target branch for saving"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "Saved by TiddlyWiki"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "These settings are only used when saving to <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "Filename of target file (e.g. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "Path to target file (e.g. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "Target repository (e.g. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
"text": "Server API URL"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "Username"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
"text": "~GitHub Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "~GitLab Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
"text": "Gitea Saver"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
},
"$:/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/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "Menu bar background"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "Menu bar 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/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "Add the new field to the tiddler"
},
"$:/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/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "add tag"
},
"$:/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/hide-body": {
"title": "$:/language/Docs/Fields/hide-body",
"text": "The view template will hide bodies of tiddlers if set to: ''yes''"
},
"$:/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": "Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"
},
"$:/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/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "If present, throttles refreshes of this tiddler"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "The unique name of a tiddler"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"
},
"$:/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/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "If present, indicates that the tiddler text field must be loaded from the server"
},
"$:/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/SessionTiddlers": {
"title": "$:/language/Filters/SessionTiddlers",
"text": "Tiddlers modified since the wiki was loaded"
},
"$:/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/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "Deletes a group of tiddlers",
"text": "<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\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* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\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> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\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* ''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* ''template'': Optional template through which each tiddler is rendered\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/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "Saves a wiki to a new wiki folder",
"text": "<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\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/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "Core module tiddler"
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable"
},
"$:/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/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"
},
"$:/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 ~JavaScript 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/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "None"
},
"$:/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",
"tags": "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/deletetiddlers.js": {
"title": "$:/core/modules/commands/deletetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/deletetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to delete tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"deletetiddlers\",\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 filter\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\twiki.deleteTiddler(title);\n\t});\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 && self.params[1] !== \"noerror\") {\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\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),collectPlugins);\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})\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),\"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\tdoesRequireReload = !!$tw.wiki.doesPluginInfoRequireReload(pluginTiddlers),\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,{\n\t\t\ttext: undefined,\n\t\t\treadme: readmeContent,\n\t\t\t\"requires-reload\": doesRequireReload ? \"yes\" : \"no\",\n\t\t\ticon: iconContent\n\t\t}));\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/savewikifolder.js": {
"title": "$:/core/modules/commands/savewikifolder.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savewikifolder.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the current wiki as a wiki folder\n\n--savewikifolder <wikifolderpath> [<filter>]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savewikifolder\",\n\tsynchronous: true\n};\n\nvar fs,path;\nif($tw.node) {\n\tfs = require(\"fs\");\n\tpath = require(\"path\");\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 wiki folder path\";\n\t}\n\tvar wikifoldermaker = new WikiFolderMaker(this.params[0],this.params[1],this.commander);\n\treturn wikifoldermaker.save();\n};\n\nfunction WikiFolderMaker(wikiFolderPath,wikiFilter,commander) {\n\tthis.wikiFolderPath = wikiFolderPath;\n\tthis.wikiFilter = wikiFilter || \"[all[tiddlers]]\";\n\tthis.commander = commander;\n\tthis.wiki = commander.wiki;\n\tthis.savedPaths = []; // So that we can detect filename clashes\n}\n\nWikiFolderMaker.prototype.log = function(str) {\n\tif(this.commander.verbose) {\n\t\tconsole.log(str);\n\t}\n};\n\nWikiFolderMaker.prototype.tiddlersToIgnore = [\n\t\"$:/boot/boot.css\",\n\t\"$:/boot/boot.js\",\n\t\"$:/boot/bootprefix.js\",\n\t\"$:/core\",\n\t\"$:/library/sjcl.js\",\n\t\"$:/temp/info-plugin\"\n];\n\n/*\nReturns null if successful, or an error string if there was an error\n*/\nWikiFolderMaker.prototype.save = function() {\n\tvar self = this;\n\t// Check that the output directory doesn't exist\n\tif(fs.existsSync(this.wikiFolderPath) && !$tw.utils.isDirectoryEmpty(this.wikiFolderPath)) {\n\t\treturn \"The unpackwiki command requires that the output wiki folder be empty\";\n\t}\n\t// Get the tiddlers from the source wiki\n\tvar tiddlerTitles = this.wiki.filterTiddlers(this.wikiFilter);\n\t// Initialise a new tiddlwiki.info file\n\tvar newWikiInfo = {};\n\t// Process each incoming tiddler in turn\n\t$tw.utils.each(tiddlerTitles,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tif(self.tiddlersToIgnore.indexOf(title) !== -1) {\n\t\t\t\t// Ignore the core plugin and the ephemeral info plugin\n\t\t\t\tself.log(\"Ignoring tiddler: \" + title);\n\t\t\t} else {\n\t\t\t\tvar type = tiddler.fields.type,\n\t\t\t\t\tpluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif(type === \"application/json\" && pluginType) {\n\t\t\t\t\t// Plugin tiddler\n\t\t\t\t\tvar libraryDetails = self.findPluginInLibrary(title);\n\t\t\t\t\tif(libraryDetails) {\n\t\t\t\t\t\t// A plugin from the core library\n\t\t\t\t\t\tself.log(\"Adding built-in plugin: \" + libraryDetails.name);\n\t\t\t\t\t\tnewWikiInfo[libraryDetails.type] = newWikiInfo[libraryDetails.type] || [];\n\t\t\t\t\t\t$tw.utils.pushTop(newWikiInfo[libraryDetails.type],libraryDetails.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// A custom plugin\n\t\t\t\t\t\tself.log(\"Processing custom plugin: \" + title);\n\t\t\t\t\t\tself.saveCustomPlugin(tiddler);\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t// Ordinary tiddler\n\t\t\t\t\tself.saveTiddler(\"tiddlers\",tiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Save the tiddlywiki.info file\n\tthis.saveJSONFile(\"tiddlywiki.info\",newWikiInfo);\n\tself.log(\"Writing tiddlywiki.info: \" + JSON.stringify(newWikiInfo,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\n/*\nTest whether the specified tiddler is a plugin in the plugin library\n*/\nWikiFolderMaker.prototype.findPluginInLibrary = function(title) {\n\tvar parts = title.split(\"/\"),\n\t\tpluginPath, type, name;\n\tif(parts[0] === \"$:\") {\n\t\tif(parts[1] === \"languages\" && parts.length === 3) {\n\t\t\tpluginPath = \"languages\" + path.sep + parts[2];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2];\n\t\t} else if(parts[1] === \"plugins\" || parts[1] === \"themes\" && parts.length === 4) {\n\t\t\tpluginPath = parts[1] + path.sep + parts[2] + path.sep + parts[3];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2] + \"/\" + parts[3];\n\t\t}\n\t}\n\tif(pluginPath && type && name) {\n\t\tpluginPath = path.resolve($tw.boot.bootPath,\"..\",pluginPath);\n\t\tif(fs.existsSync(pluginPath)) {\n\t\t\treturn {\n\t\t\t\tpluginPath: pluginPath,\n\t\t\t\ttype: type,\n\t\t\t\tname: name\n\t\t\t};\n\t\t}\n\t}\n\treturn false;\n};\n\nWikiFolderMaker.prototype.saveCustomPlugin = function(pluginTiddler) {\n\tvar self = this,\n\t\tpluginTitle = pluginTiddler.fields.title,\n\t\ttitleParts = pluginTitle.split(\"/\"),\n\t\tdirectory = $tw.utils.generateTiddlerFilepath(titleParts[titleParts.length - 1],{\n\t\t\tdirectory: path.resolve(this.wikiFolderPath,pluginTiddler.fields[\"plugin-type\"] + \"s\")\n\t\t}),\n\t\tpluginInfo = pluginTiddler.getFieldStrings({exclude: [\"text\",\"type\"]});\n\tthis.saveJSONFile(directory + path.sep + \"plugin.info\",pluginInfo);\n\tself.log(\"Writing \" + directory + path.sep + \"plugin.info: \" + JSON.stringify(pluginInfo,null,$tw.config.preferences.jsonSpaces));\n\tvar pluginTiddlers = JSON.parse(pluginTiddler.fields.text).tiddlers; // A hashmap of tiddlers in the plugin\n\t$tw.utils.each(pluginTiddlers,function(tiddler) {\n\t\tself.saveTiddler(directory,new $tw.Tiddler(tiddler));\n\t});\n};\n\nWikiFolderMaker.prototype.saveTiddler = function(directory,tiddler) {\n\tvar fileInfo = $tw.utils.generateTiddlerFileInfo(tiddler,{\n\t\tdirectory: path.resolve(this.wikiFolderPath,directory),\n\t\twiki: this.wiki\n\t});\n\t$tw.utils.saveTiddlerToFileSync(tiddler,fileInfo);\n};\n\nWikiFolderMaker.prototype.saveJSONFile = function(filename,json) {\n\tthis.saveTextFile(filename,JSON.stringify(json,null,$tw.config.preferences.jsonSpaces));\n};\n\nWikiFolderMaker.prototype.saveTextFile = function(filename,data) {\n\tthis.saveFile(filename,\"utf8\",data);\n};\n\nWikiFolderMaker.prototype.saveFile = function(filename,encoding,data) {\n\tvar filepath = path.resolve(this.wikiFolderPath,filename);\n\t$tw.utils.createFileDirectories(filepath);\n\tfs.writeFileSync(filepath,data,encoding);\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.iframeNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\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\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\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\tthis.domNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\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\tif(this.widget.editTabIndex) {\n\t\tthis.domNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\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\tthis.editTabIndex = this.getAttribute(\"tabindex\");\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) || \"input\";\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 || changedAttributes.tabindex || 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);\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;\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\tvar targetCount = parseInt(event.paramObject.count + \"\",10);\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,targetCount);\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 !== targetCount) {\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\n\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\toperation.replacement = \"\";\n\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\toperation.newSelEnd = operation.newSelStart;\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/compare.js": {
"title": "$:/core/modules/filters/compare.js",
"text": "/*\\\ntitle: $:/core/modules/filters/compare.js\ntype: application/javascript\nmodule-type: filteroperator\n\nGeneral purpose comparison operator\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.compare = function(source,operator,options) {\n\tvar suffixes = operator.suffixes || [],\n\t\ttype = (suffixes[0] || [])[0],\n\t\tmode = (suffixes[1] || [])[0],\n\t\ttypeFn = types[type] || types.number,\n\t\tmodeFn = modes[mode] || modes.eq,\n\t\tinvert = operator.prefix === \"!\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tif(modeFn(typeFn(title,operator.operand)) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nvar types = {\n\t\"number\": function(a,b) {\n\t\treturn compare($tw.utils.parseNumber(a),$tw.utils.parseNumber(b));\n\t},\n\t\"integer\": function(a,b) {\n\t\treturn compare($tw.utils.parseInt(a),$tw.utils.parseInt(b));\n\t},\n\t\"string\": function(a,b) {\n\t\treturn compare(\"\" + a,\"\" +b);\n\t},\n\t\"date\": function(a,b) {\n\t\tvar dateA = $tw.utils.parseDate(a),\n\t\t\tdateB = $tw.utils.parseDate(b);\n\t\tif(!isFinite(dateA)) {\n\t\t\tdateA = new Date(0);\n\t\t}\n\t\tif(!isFinite(dateB)) {\n\t\t\tdateB = new Date(0);\n\t\t}\n\t\treturn compare(dateA,dateB);\n\t},\n\t\"version\": function(a,b) {\n\t\treturn $tw.utils.compareVersions(a,b);\n\t}\n};\n\nfunction compare(a,b) {\n\tif(a > b) {\n\t\treturn +1;\n\t} else if(a < b) {\n\t\treturn -1;\n\t} else {\n\t\treturn 0;\n\t}\n};\n\nvar modes = {\n\t\"eq\": function(value) {return value === 0;},\n\t\"ne\": function(value) {return value !== 0;},\n\t\"gteq\": function(value) {return value >= 0;},\n\t\"gt\": function(value) {return value > 0;},\n\t\"lteq\": function(value) {return value <= 0;},\n\t\"lt\": function(value) {return value < 0;}\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/else.js": {
"title": "$:/core/modules/filters/else.js",
"text": "/*\\\ntitle: $:/core/modules/filters/else.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing an empty input list with a constant, passing a non-empty input list straight through\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.else = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tif(results.length === 0) {\n\t\treturn [operator.operand];\n\t} else {\n\t\treturn results;\n\t}\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\nexports.escapecss = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t// escape any character with a special meaning in CSS using CSS.escape()\n\t\tresults.push(CSS.escape(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 allowDuplicates = false;\n\tswitch(operator.suffix) {\n\t\tcase \"raw\":\n\t\t\tallowDuplicates = true;\n\t\t\tbreak;\n\t\tcase \"dedupe\":\n\t\t\tallowDuplicates = false;\n\t\t\tbreak;\n\t}\n\tvar list = $tw.utils.parseStringArray(operator.operand,allowDuplicates);\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 = [],indexedResults,\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\tif(source.byField && operator.operand) {\n\t\t\t\tindexedResults = source.byField(fieldname,operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults\n\t\t\t\t}\n\t\t\t}\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\t\tfieldName,\n\t\tsuffixes = (operator.suffixes || [])[0] || [],\n\t\toperand = $tw.utils.parseStringArray(operator.operand);\n\t\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(suffixes.indexOf(\"include\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? $tw.utils.pushTop(results,fieldName) : \"\";\n\t\t\t\t}\n\t\t\t} else if (suffixes.indexOf(\"exclude\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? \"\" : $tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else if\n\t\t\telse {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else\n\t\t} // if (tiddler)\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/getvariable.js": {
"title": "$:/core/modules/filters/getvariable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getvariable.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing input values by the value of the variable with the same name, or blank if the variable 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.getvariable = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.widget.getVariable(title) || \"\");\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 or index\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}\n\telse if(operator.suffix === \"index\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),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($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse {\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});\t\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/binary.js": {
"title": "$:/core/modules/filters/is/binary.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/binary.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[binary]]\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.binary = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isBinaryTiddler(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.isBinaryTiddler(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/blank.js": {
"title": "$:/core/modules/filters/is/blank.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/blank.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[blank]]\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.blank = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(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(!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/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/variable.js": {
"title": "$:/core/modules/filters/is/variable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/variable.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[variable]]\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.variable = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!(title in options.widget.variables)) {\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 in options.widget.variables) {\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/match.js": {
"title": "$:/core/modules/filters/match.js",
"text": "/*\\\ntitle: $:/core/modules/filters/match.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title matches a string\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.match = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = (operator.suffixes || [])[0] || [];\n\tif(suffixes.indexOf(\"caseinsensitive\") !== -1) {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() !== (operator.operand || \"\").toLowerCase()) {\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(title.toLowerCase() === (operator.operand || \"\").toLowerCase()) {\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.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title !== 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(title === operator.operand) {\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/math.js": {
"title": "$:/core/modules/filters/math.js",
"text": "/*\\\ntitle: $:/core/modules/filters/math.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for math. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\nNote that strings are converted to numbers automatically. Trailing non-digits are ignored.\n\n* \"\" converts to 0\n* \"12kk\" converts to 12\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.negate = makeNumericBinaryOperator(\n\tfunction(a) {return -a}\n);\n\nexports.abs = makeNumericBinaryOperator(\n\tfunction(a) {return Math.abs(a)}\n);\n\nexports.ceil = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(a)}\n);\n\nexports.floor = makeNumericBinaryOperator(\n\tfunction(a) {return Math.floor(a)}\n);\n\nexports.round = makeNumericBinaryOperator(\n\tfunction(a) {return Math.round(a)}\n);\n\nexports.trunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.trunc(a)}\n);\n\nexports.untrunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(Math.abs(a)) * Math.sign(a)}\n);\n\nexports.sign = makeNumericBinaryOperator(\n\tfunction(a) {return Math.sign(a)}\n);\n\nexports.add = makeNumericBinaryOperator(\n\tfunction(a,b) {return a + b;}\n);\n\nexports.subtract = makeNumericBinaryOperator(\n\tfunction(a,b) {return a - b;}\n);\n\nexports.multiply = makeNumericBinaryOperator(\n\tfunction(a,b) {return a * b;}\n);\n\nexports.divide = makeNumericBinaryOperator(\n\tfunction(a,b) {return a / b;}\n);\n\nexports.remainder = makeNumericBinaryOperator(\n\tfunction(a,b) {return a % b;}\n);\n\nexports.max = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.max(a,b);}\n);\n\nexports.min = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.min(a,b);}\n);\n\nexports.fixed = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toFixed.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.precision = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toPrecision.call(a,Math.min(Math.max(b,1),100));}\n);\n\nexports.exponential = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toExponential.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.sum = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator + value},\n\t0 // Initial value\n);\n\nexports.product = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator * value},\n\t1 // Initial value\n);\n\nexports.maxall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.max(accumulator,value)},\n\t-Infinity // Initial value\n);\n\nexports.minall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.min(accumulator,value)},\n\tInfinity // Initial value\n);\n\nfunction makeNumericBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [],\n\t\t\tnumOperand = $tw.utils.parseNumber(operator.operand);\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push($tw.utils.stringifyNumber(fnCalc($tw.utils.parseNumber(title),numOperand)));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeNumericReducingOperator(fnCalc,initialValue) {\n\tinitialValue = initialValue || 0;\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [$tw.utils.stringifyNumber(result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,$tw.utils.parseNumber(currentValue));\n\t\t},initialValue))];\n\t};\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 && 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\tanchored: hasFlag(\"anchored\"),\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/strings.js": {
"title": "$:/core/modules/filters/strings.js",
"text": "/*\\\ntitle: $:/core/modules/filters/strings.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for strings. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.length = makeStringBinaryOperator(\n\tfunction(a) {return [\"\" + (\"\" + a).length];}\n);\n\nexports.uppercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toUpperCase()];}\n);\n\nexports.lowercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toLowerCase()];}\n);\n\nexports.sentencecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toSentenceCase(a)];}\n);\n\nexports.titlecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toTitleCase(a)];}\n);\n\nexports.trim = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.trim(a)];}\n);\n\nexports.split = makeStringBinaryOperator(\n\tfunction(a,b) {return (\"\" + a).split(b);}\n);\n\nexports.join = makeStringReducingOperator(\n\tfunction(accumulator,value,operand) {\n\t\tif(accumulator === null) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn accumulator + operand + value;\n\t\t}\n\t},null\n);\n\nfunction makeStringBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tArray.prototype.push.apply(result,fnCalc(title,operator.operand || \"\"));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeStringReducingOperator(fnCalc,initialValue) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,currentValue,operator.operand || \"\");\n\t\t},initialValue) || \"\"];\n\t};\n}\n\nexports.splitregexp = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\tflags = (suffix.indexOf(\"m\") !== -1 ? \"m\" : \"\") + (suffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tregExp;\n\ttry {\n\t\tregExp = new RegExp(operator.operand || \"\",flags);\t\t\n\t} catch(ex) {\n\t\treturn [\"RegExp error: \" + ex];\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,title.split(regExp));\n\t});\t\t\n\treturn result;\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 = [],indexedResults;\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;\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\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\tif(source.byTag) {\n\t\t\t\tindexedResults = source.byTag(operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\t\tsource(function(tiddler,title) {\n\t\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t\t}\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/then.js": {
"title": "$:/core/modules/filters/then.js",
"text": "/*\\\ntitle: $:/core/modules/filters/then.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing any titles with a constant\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.then = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand);\n\t});\n\treturn results;\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/variables.js": {
"title": "$:/core/modules/filters/variables.js",
"text": "/*\\\ntitle: $:/core/modules/filters/variables.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the active variables\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.variables = function(source,operator,options) {\n\tvar names = [];\n\tfor(var variable in options.widget.variables) {\n\t\tnames.push(variable);\n\t}\n\treturn names.sort();\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) ? [] :\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 === -1) ? [] :\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 the operation are pushed into the result without deduplication\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tArray.prototype.push.apply(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: \" + filterString,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/indexers/backlinks-indexer.js": {
"title": "$:/core/modules/indexers/backlinks-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/backlinks-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers' backlinks\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\n\nfunction BacklinksIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nBacklinksIndexer.prototype.init = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype._getLinks = function(tiddler) {\n\tvar parser = this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {});\n\tif(parser) {\n\t\treturn this.wiki.extractLinks(parser.tree);\n\t}\n\treturn [];\n}\n\nBacklinksIndexer.prototype.update = function(updateDescriptor) {\n\tif(!this.index) {\n\t\treturn;\n\t}\n\tvar newLinks = [],\n\t oldLinks = [],\n\t self = this;\n\tif(updateDescriptor.old.exists) {\n\t\toldLinks = this._getLinks(updateDescriptor.old.tiddler);\n\t}\n\tif(updateDescriptor.new.exists) {\n\t\tnewLinks = this._getLinks(updateDescriptor.new.tiddler);\n\t}\n\n\t$tw.utils.each(oldLinks,function(link) {\n\t\tif(self.index[link]) {\n\t\t\tdelete self.index[link][updateDescriptor.old.tiddler.fields.title];\n\t\t}\n\t});\n\t$tw.utils.each(newLinks,function(link) {\n\t\tif(!self.index[link]) {\n\t\t\tself.index[link] = Object.create(null);\n\t\t}\n\t\tself.index[link][updateDescriptor.new.tiddler.fields.title] = true;\n\t});\n}\n\nBacklinksIndexer.prototype.lookup = function(title) {\n\tif(!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tvar self = this;\n\t\tthis.wiki.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self._getLinks(tiddler);\n\t\t\t$tw.utils.each(links, function(link) {\n\t\t\t\tif(!self.index[link]) {\n\t\t\t\t\tself.index[link] = Object.create(null);\n\t\t\t\t}\n\t\t\t\tself.index[link][title] = true;\n\t\t\t});\n\t\t});\n\t}\n\tif(this.index[title]) {\n\t\treturn Object.keys(this.index[title]);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexports.BacklinksIndexer = BacklinksIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/field-indexer.js": {
"title": "$:/core/modules/indexers/field-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/field-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nvar DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH = 128;\n\nfunction FieldIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nFieldIndexer.prototype.init = function() {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH;\n\tthis.addIndexMethods();\n}\n\n// Provided for testing\nFieldIndexer.prototype.setMaxIndexedValueLength = function(length) {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = length;\n};\n\nFieldIndexer.prototype.addIndexMethods = function() {\n\tvar self = this;\n\tthis.wiki.each.byField = function(name,value) {\n\t\tvar titles = self.wiki.allTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachShadow.byField = function(name,value) {\n\t\tvar titles = self.wiki.allShadowTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachTiddlerPlusShadows.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n\tthis.wiki.eachShadowPlusTiddlers.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n};\n\n/*\nTear down and then rebuild the index as if all tiddlers have changed\n*/\nFieldIndexer.prototype.rebuild = function() {\n\t// Invalidate the index so that it will be rebuilt when it is next used\n\tthis.index = null;\n};\n\n/*\nBuild the index for a particular field\n*/\nFieldIndexer.prototype.buildIndexForField = function(name) {\n\tvar self = this;\n\t// Hashmap by field name of hashmap by field value of array of tiddler titles\n\tthis.index = this.index || Object.create(null);\n\tthis.index[name] = Object.create(null);\n\tvar baseIndex = this.index[name];\n\t// Update the index for each tiddler\n\tthis.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\tif(name in tiddler.fields) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t// Skip any values above the maximum length\n\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\tbaseIndex[value] = baseIndex[value] || [];\n\t\t\t\tbaseIndex[value].push(title);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nUpdate the index in the light of a tiddler value changing; note that the title must be identical. (Renames are handled as a separate delete and create)\nupdateDescriptor: {old: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>},new: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>}}\n*/\nFieldIndexer.prototype.update = function(updateDescriptor) {\n\tvar self = this;\n\t// Don't do anything if the index hasn't been built yet\n\tif(this.index === null) {\n\t\treturn;\n\t}\n\t// Remove the old tiddler from the index\n\tif(updateDescriptor.old.tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor.old.tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor.old.tiddler.getFieldString(name),\n\t\t\t\t\ttiddlerList = indexEntry[value];\n\t\t\t\tif(tiddlerList) {\n\t\t\t\t\tvar index = tiddlerList.indexOf(updateDescriptor.old.tiddler.fields.title);\n\t\t\t\t\tif(index !== -1) {\n\t\t\t\t\t\ttiddlerList.splice(index,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// Add the new tiddler to the index\n\tif(updateDescriptor[\"new\"].tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor[\"new\"].tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor[\"new\"].tiddler.getFieldString(name);\n\t\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\t\tindexEntry[value] = indexEntry[value] || [];\n\t\t\t\t\tindexEntry[value].push(updateDescriptor[\"new\"].tiddler.fields.title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n// Lookup the given field returning a list of tiddler titles\nFieldIndexer.prototype.lookup = function(name,value) {\n\t// Fail the lookup if the value is too long\n\tif(value.length >= this.maxIndexedValueLength) {\n\t\treturn null;\n\t}\n\t// Update the index if it has yet to be built\n\tif(this.index === null || !this.index[name]) {\n\t\tthis.buildIndexForField(name);\n\t}\n\treturn this.index[name][value] || [];\n};\n\nexports.FieldIndexer = FieldIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/tag-indexer.js": {
"title": "$:/core/modules/indexers/tag-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/tag-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nfunction TagIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nTagIndexer.prototype.init = function() {\n\tthis.subIndexers = [\n\t\tnew TagSubIndexer(this,\"each\"),\n\t\tnew TagSubIndexer(this,\"eachShadow\"),\n\t\tnew TagSubIndexer(this,\"eachTiddlerPlusShadows\"),\n\t\tnew TagSubIndexer(this,\"eachShadowPlusTiddlers\")\n\t];\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.addIndexMethod();\n\t});\n};\n\nTagIndexer.prototype.rebuild = function() {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.rebuild();\n\t});\n};\n\nTagIndexer.prototype.update = function(updateDescriptor) {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.update(updateDescriptor);\n\t});\n};\n\nfunction TagSubIndexer(indexer,iteratorMethod) {\n\tthis.indexer = indexer;\n\tthis.iteratorMethod = iteratorMethod;\n\tthis.index = null; // Hashmap of tag title to {isSorted: bool, titles: [array]} or null if not yet initialised\n}\n\nTagSubIndexer.prototype.addIndexMethod = function() {\n\tvar self = this;\n\tthis.indexer.wiki[this.iteratorMethod].byTag = function(tag) {\n\t\treturn self.lookup(tag).slice(0);\n\t};\n};\n\nTagSubIndexer.prototype.rebuild = function() {\n\tvar self = this;\n\t// Hashmap by tag of array of {isSorted:, titles:[]}\n\tthis.index = Object.create(null);\n\t// Add all the tags\n\tthis.indexer.wiki[this.iteratorMethod](function(tiddler,title) {\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\tif(!self.index[tag]) {\n\t\t\t\tself.index[tag] = {isSorted: false, titles: [title]};\n\t\t\t} else {\n\t\t\t\tself.index[tag].titles.push(title);\n\t\t\t}\n\t\t});\t\t\n\t});\n};\n\nTagSubIndexer.prototype.update = function(updateDescriptor) {\n\tthis.index = null;\n};\n\nTagSubIndexer.prototype.lookup = function(tag) {\n\t// Update the index if it has yet to be built\n\tif(this.index === null) {\n\t\tthis.rebuild();\n\t}\n\tvar indexRecord = this.index[tag];\n\tif(indexRecord) {\n\t\tif(!indexRecord.isSorted) {\n\t\t\tif(this.indexer.wiki.sortByList) {\n\t\t\t\tindexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag);\n\t\t\t}\t\t\t\n\t\t\tindexRecord.isSorted = true;\n\t\t}\n\t\treturn indexRecord.titles;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n\nexports.TagIndexer = TagIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/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\t// Language\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/language\", text: navigator.language || \"\"});\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/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\t{name: \"spaces\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,spaces) {\n\treturn this.wiki.getTiddlersAsJson(filter,$tw.utils.parseInt(spaces));\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\t{name: \"_canonical_uri\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type,_canonical_uri) {\n\treturn $tw.utils.makeDataUri(text,type,_canonical_uri);\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/unusedtitle.js": {
"title": "$:/core/modules/macros/unusedtitle.js",
"text": "/*\\\ntitle: $:/core/modules/macros/unusedtitle.js\ntype: application/javascript\nmodule-type: macro\nMacro to return a new title that is unused in the wiki. It can be given a name as a base.\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 = \"unusedtitle\";\n\nexports.params = [\n\t{name: \"baseName\"},\n\t{name: \"options\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(baseName, options) {\n\tif(!baseName) {\n\t\tbaseName = $tw.language.getString(\"DefaultNewTiddlerTitle\");\n\t}\n\treturn this.wiki.generateNewTitle(baseName, options);\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\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\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 binary parser parses a binary tiddler into a warning message and download link\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\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar BinaryParser = function(type,text,options) {\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on binary tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!title\"}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to external or internal data URI\n\tif(options._canonical_uri) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: options._canonical_uri\n\t\t};\n\t} else if(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\tthis.tree = [element];\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\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\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/ogg\"] = VideoParser;\nexports[\"video/webm\"] = VideoParser;\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\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: \"div\"}\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// 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// Read the plugin info for the incoming plugins\n\tvar changes = $tw.wiki.readPluginInfo(plugins);\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.preloadDirty = options.preloadDirty || [];\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\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(self.preloadDirty,function(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});\n\t\tthis.numChanges = filteredChanges.length;\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// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\tvar\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// 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,options) {\n\tvar filename = options && options.variables ? options.variables.filename : null;\n\tif (method === \"download\") {\n\t\t// Support download\n\t\tif (window.twi.saveDownload) {\n\t\t\ttry {\n\t\t\t\twindow.twi.saveDownload(text,filename);\n\t\t\t} catch(err) {\n\t\t\t\tif (err.message === \"Method not found\") {\n\t\t\t\t\twindow.twi.saveDownload(text);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar link = document.createElement(\"a\");\n\t\t\tlink.setAttribute(\"href\",\"data:text/plain,\" + encodeURIComponent(text));\n\t\t\tif (filename) {\n\t\t\t link.setAttribute(\"download\",filename);\n\t\t\t}\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t}\n\t} else if (window.twi.saveWiki) {\n\t\t// Direct save in Tiddloid\n\t\twindow.twi.saveWiki(text);\n\t} else {\n\t\t// Get the pathname of this document\n\t\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t\t// Strip the file://\n\t\tif(pathname.indexOf(\"file://\") === 0) {\n\t\t\tpathname = pathname.substr(7);\n\t\t}\n\t\t// Strip any query or location part\n\t\tvar p = pathname.indexOf(\"?\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\tp = pathname.indexOf(\"#\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\t// Save the file\n\t\twindow.twi.saveFile(pathname,text);\n\t}\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\", \"download\"]\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/gitea.js": {
"title": "$:/core/modules/savers/gitea.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitea.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the gitea\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 GiteaSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGiteaSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/Gitea/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"Gitea\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/Gitea/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/Gitea/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/Gitea/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/Gitea/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/Gitea/ServerURL\") || \"https://gitea\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar use_put = true;\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(sha === \"\"){\n\t\t\t\t\tuse_put = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: endpoint + \"/repos/\" + repo + \"/branches/\" + branch,\n\t\t\t\ttype: \"GET\",\n\t\t\t\theaders: headers,\n\t\t\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\t\t\tif(xhr.status === 404) {\n\t\t\t\t\t\tcallback(\"Please ensure the branch in the Gitea repo exists\");\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdata[\"branch\"] = branch;\n\t\t\t\t\t\tself.upload(uri + filename, use_put?\"PUT\":\"POST\", headers, data, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\nGiteaSaver.prototype.upload = function(uri,method,headers,data,callback) {\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: method,\n\t\theaders: headers,\n\t\tdata: JSON.stringify(data),\n\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\tcallback(null);\n\t\t}\n\t});\n};\n\n/*\nInformation about this saver\n*/\nGiteaSaver.prototype.info = {\n\tname: \"Gitea\",\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 GiteaSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/github.js": {
"title": "$:/core/modules/savers/github.js",
"text": "/*\\\ntitle: $:/core/modules/savers/github.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitHub v3 REST API\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 GitHubSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitHubSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitHub/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"github\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitHub/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitHub/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitHub/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitHub/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitHub/ServerURL\") || \"https://api.github.com\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/vnd.github.v3+json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a PUT request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + filename,\n\t\t\t\ttype: \"PUT\",\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitHubSaver.prototype.info = {\n\tname: \"github\",\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 GitHubSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitlab.js": {
"title": "$:/core/modules/savers/gitlab.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitlab.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitLab REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: true */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitLabSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitLabSaver.prototype.save = function(text,method,callback) {\n\t/* See https://docs.gitlab.com/ee/api/repository_files.html */\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitLab/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"gitlab\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitLab/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitLab/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitLab/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitLab/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitLab/ServerURL\") || \"https://gitlab.com/api/v4\",\n\t\theaders = {\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Private-Token\": password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/projects/\" + encodeURIComponent(repo) + \"/repository/\";\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri + \"tree/?path=\" + encodeURIComponent(path.replace(/^\\/+|\\/$/g, '')) + \"&branch=\" + encodeURIComponent(branch.replace(/^\\/+|\\/$/g, '')),\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar requestType = \"POST\";\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\trequestType = \"PUT\";\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tcommit_message: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: text,\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + \"files/\" + encodeURIComponent(path.replace(/^\\/+/, '') + filename),\n\t\t\t\ttype: requestType,\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitLabSaver.prototype.info = {\n\tname: \"gitlab\",\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 GitLabSaver(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 '\" + resolveCredentialsFilepath + \"'\";\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\t\tsuppliedFilename = decodeURIComponent(state.params[0]),\n\t\tfilename = path.resolve($tw.boot.wikiPath,\"files\",suppliedFilename),\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\tconsole.log(\"Error accessing file \" + filename + \": \" + err.toString());\n\t\t\tstatus = 404;\n\t\t\tcontent = \"File '\" + suppliedFilename + \"' not found\";\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\nvar zlib = require(\"zlib\");\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tvar acceptEncoding = request.headers[\"accept-encoding\"];\n\tif(!acceptEncoding) {\n\t\tacceptEncoding = \"\";\n\t}\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\")),\n\t\tresponseHeaders = {\n\t\t\"Content-Type\": state.server.get(\"root-serve-type\")\n\t};\n\t/*\n\tIf the gzip=yes flag for `listen` is set, check if the user agent permits\n\tcompression. If so, compress our response. Note that we use the synchronous\n\tfunctions from zlib to stay in the imperative style. The current `Server`\n\tdoesn't depend on this, and we may just as well use the async versions.\n\t*/\n\tif(state.server.enableGzip) {\n\t\tif (/\\bdeflate\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\ttext = zlib.deflateSync(text);\n\t\t} else if (/\\bgzip\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\ttext = zlib.gzipSync(text);\n\t\t}\n\t}\n\tresponse.writeHead(200,responseHeaders);\n\tresponse.end(text);\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.bag = \"default\";\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?filter=<filter>\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_FILTER = \"[all[tiddlers]!is[system]sort[title]]\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tvar filter = state.queryParameters.filter || DEFAULT_FILTER;\n\tif($tw.wiki.getTiddlerText(\"$:/config/Server/AllowAllExternalFilters\") !== \"yes\") {\n\t\tif($tw.wiki.getTiddlerText(\"$:/config/Server/ExternalFilters/\" + filter) !== \"yes\") {\n\t\t\tconsole.log(\"Blocked attempt to GET /recipes/default/tiddlers/tiddlers.json with filter: \" + filter);\n\t\t\tresponse.writeHead(403);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\tvar excludeFields = (state.queryParameters.exclude || \"text\").split(\",\"),\n\t\ttitles = state.wiki.filterTiddlers(filter);\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\t$tw.utils.each(titles,function(title) {\n\t\tvar tiddler = state.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tvar tiddlerFields = tiddler.getFieldStrings({exclude: excludeFields});\n\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\ttiddlers.push(tiddlerFields);\n\t\t}\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\t\tquerystring = require(\"querystring\");\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// Initialize Gzip compression\n\tthis.enableGzip = this.get(\"gzip\") === \"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\t\"gzip\": \"no\"\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\tstate.queryParameters = querystring.parse(state.urlInfo.query);\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 \"host\" variable)\nprefix: optional prefix (falls back to value of \"path-prefix\" variable)\n*/\nServer.prototype.listen = function(port,host,prefix) {\n\tvar self = this;\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\tprefix = prefix || this.get(\"path-prefix\") || \"\";\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// 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// Create the server\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\t// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)\n\tserver.on(\"listening\",function() {\n\t\tvar address = server.address();\n\t\t$tw.utils.log(\"Serving on \" + self.protocol + \"://\" + address.address + \":\" + address.port + prefix,\"brown/orange\");\n\t\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t});\n\t// Listen\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\t// console.log(\"browser-messaging: \",document.location.toString())\n\t\t// console.log(\"browser-messaging: Received message from\",event.origin);\n\t\t// console.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/CSSescape.js": {
"title": "$:/core/modules/startup/CSSescape.js",
"text": "/*\\\ntitle: $:/core/modules/startup/CSSescape.js\ntype: application/javascript\nmodule-type: startup\n\nPolyfill for CSS.escape()\n\n\\*/\n(function(root,factory){\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"css-escape\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n// https://github.com/umdjs/umd/blob/master/returnExports.js\nexports.startup = factory(root);\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\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\nvar TITLE_INFO_PLUGIN = \"$:/temp/info-plugin\";\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. We use the non-standard plugin-type \"info\" because ordinary plugins are only registered asynchronously after being loaded dynamically\n\tvar fields = {\n\t\ttitle: TITLE_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([TITLE_INFO_PLUGIN]);\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.wiki.addIndexersToWiki();\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/plugins.js": {
"title": "$:/core/modules/startup/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/startup/plugins.js\ntype: application/javascript\nmodule-type: startup\n\nStartup logic concerned with managing plugins\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 = \"plugins\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = \"$:/status/RequireReloadDueToPluginChange\";\n\nvar PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = \"$:/config/RegisterPluginType/\";\n\nexports.startup = function() {\n\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"no\"});\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tvar changesToProcess = [],\n\t\t\trequireReloadDueToPluginChange = false;\n\t\t$tw.utils.each(Object.keys(changes),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\t\trequiresReload = $tw.wiki.doesPluginRequireReload(title);\n\t\t\tif(requiresReload) {\n\t\t\t\trequireReloadDueToPluginChange = true;\n\t\t\t} else if(tiddler) {\n\t\t\t\tvar pluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields[\"plugin-type\"] || \"\"),\"no\") === \"yes\") {\n\t\t\t\t\tchangesToProcess.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif(requireReloadDueToPluginChange) {\n\t\t\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"yes\"});\n\t\t}\n\t\t// Read or delete the plugin info of the changed tiddlers\n\t\tif(changesToProcess.length > 0) {\n\t\t\tvar changes = $tw.wiki.readPluginInfo(changesToProcess);\n\t\t\tif(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {\n\t\t\t\t// (Re-)register any modified plugins\n\t\t\t\t$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);\n\t\t\t\t// Unregister any deleted plugins\n\t\t\t\t$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);\n\t\t\t\t// Unpack the shadow tiddlers\n\t\t\t\t$tw.wiki.unpackPluginTiddlers();\n\t\t\t}\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 THROTTLE_REFRESH_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.hooks.invokeHook(\"th-page-refreshing\");\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 tiddlers that are throttled have changed\n\t\tvar onlyThrottledTiddlersHaveChanged = 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\") || tiddler.hasField(\"throttle.refresh\"))) {\n\t\t\t\tonlyThrottledTiddlersHaveChanged = 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(onlyThrottledTiddlersHaveChanged) {\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 = THROTTLE_REFRESH_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 tm-focus-selector message\n\t$tw.rootWidget.addEventListener(\"tm-focus-selector\",function(event) {\n\t\tvar selector = event.param || \"\",\n\t\t\telement;\n\t\ttry {\n\t\t\telement = document.querySelector(selector);\n\t\t} catch(e) {\n\t\t\tconsole.log(\"Error in selector: \",selector)\n\t\t}\n\t\tif(element && element.focus) {\n\t\t\telement.focus(event.paramObject);\n\t\t}\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\tvar fullScreenDocument = event.event ? event.event.target.ownerDocument : document;\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(fullScreenDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tfullScreenDocument.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// 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// 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-GB\"\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// 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({\n\t\twiki: $tw.wiki,\n\t\tdirtyTracking: !$tw.syncadaptor,\n\t\tpreloadDirty: $tw.boot.preloadDirty || []\n\t});\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\t\tdisableHistory: $tw.boot.disableStartupNavigation\n\t});\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:\ndisableHistory: if true $:/History is NOT updated\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// Update history\n\tif(!options.disableHistory) {\n\t\t// If a target tiddler was specified add it to the history stack\n\t\tif(target && target !== \"\") {\n\t\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t\t}\n\t\t\t$tw.wiki.addToHistory(target);\n\t\t} else if(storyList.length > 0) {\n\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t}\t\t\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\twindowTitle = paramObject.windowTitle || title,\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 = windowTitle;\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 duration = $tw.utils.getAnimationDuration()\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\tif(duration) {\n\t\t// Scroll the node into view\n\t\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\t\n\t} else {\n\t\ttargetElement.scrollIntoView();\n\t}\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Reset the margin once the transition is over\n\t\tsetTimeout(function() {\n\t\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t\t{transition: \"none\"},\n\t\t\t\t{marginBottom: \"\"}\n\t\t\t]);\n\t\t},duration);\n\t\t// Set up the initial position of the element\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t// Transition to the final position\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t]);\n\t}\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode(),\n\t\t\tremoveElement = function() {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t};\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\tremoveElement();\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar currWidth = targetElement.offsetWidth,\n\t\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Remove the dom nodes of the widget at the end of the transition\n\t\tsetTimeout(removeElement,duration);\n\t\t// Animate the closure\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"translateX(0px)\"},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t} else {\n\t\twidget.removeChildDomNodes();\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\t$tw.utils.setStyle(widget.document.body,[\n\t\t\t{\"overflow-x\": \"\"}\n\t\t]);\n\t},duration);\n\t// Prevent the page from overscrolling due to the zoom factor\n\t$tw.utils.setStyle(widget.document.body,[\n\t\t{\"overflow-x\": \"hidden\"}\n\t]);\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 && 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 and synchronises them to a remote data store represented as a \"sync adaptor\"\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.titleSyncDisableLazyLoading = \"$:/config/SyncDisableLazyLoading\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.titleSyncThrottleInterval = \"$:/config/SyncThrottleInterval\";\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.errorRetryInterval = 5 * 1000; // Interval to retry after an error\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\t// Save parameters\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 || parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,\"\"),10) || this.throttleInterval;\n\tthis.errorRetryInterval = options.errorRetryInterval || this.errorRetryInterval;\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\tcolour: \"cyan\",\n\t\tenable: this.logging,\n\t\tsaveHistory: true\n\t});\n\t// Make another logger for connection errors\n\tthis.loggerConnection = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\") + \"-connection\",{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging\n\t});\n\t// Ask the syncadaptor to use the main logger\n\tif(this.syncadaptor.setLoggerSaveBuffer) {\n\t\tthis.syncadaptor.setLoggerSaveBuffer(this.logger);\n\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\tthis.titlesToBeLoaded = {}; // Hashmap of titles of tiddlers that need loading from the server\n\tthis.titlesHaveBeenLazyLoaded = {}; // Hashmap of titles of tiddlers that have already been lazily loaded from the server\n\t// Timers\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Number of outstanding requests\n\tthis.numTasksInProgress = 0;\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Filter the changes to just include ones that are being synced\n\t\tvar filteredChanges = self.getSyncedTiddlers(function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t\tif(filteredChanges.length > 0) {\n\t\t\tself.processTaskQueue();\n\t\t} else {\n\t\t\t// Look for deletions of tiddlers we're already syncing\t\n\t\t\tvar outstandingDeletion = false\n\t\t\t$tw.utils.each(changes,function(change,title,object) {\n\t\t\t\tif(change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) {\n\t\t\t\t\toutstandingDeletion = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(outstandingDeletion) {\n\t\t\t\tself.processTaskQueue();\n\t\t\t}\n\t\t}\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\t$tw.rootWidget.addEventListener(\"tm-copy-syncer-logs-to-clipboard\",function() {\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getSystemInfo() + \"\\n\\nLog:\\n\" + self.logger.getBuffer());\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI && $tw.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== \"yes\") {\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/*\nShow a generic network error alert\n*/\nSyncer.prototype.displayError = function(msg,err) {\n\tif(err === ($tw.language.getString(\"Error/XMLHttpRequest\") + \": 0\")) {\n\t\tthis.loggerConnection.alert($tw.language.getString(\"Error/NetworkErrorAlert\"));\n\t\tthis.logger.log(msg + \":\",err);\n\t} else {\n\t\tthis.logger.alert(msg + \":\",err);\n\t}\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getSyncedTiddlers = function(source) {\n\treturn this.filterFn.call(this.wiki,source);\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getTiddlerRevision = function(title) {\n\tif(this.syncadaptor && this.syncadaptor.getTiddlerRevision) {\n\t\treturn this.syncadaptor.getTiddlerRevision(title);\n\t} else {\n\t\treturn this.wiki.getTiddler(title).fields.revision;\t\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\t// \"revision\" is the revision of the tiddler last seen on the server, and \"changecount\" is the corresponding local changecount\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.getSyncedTiddlers();\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: self.getTiddlerRevision(title),\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title)\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\tthis.logger.log(\"Checking dirty status\");\n\t// Check tiddlers that are in the store and included in the filter function\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(this.wiki.tiddlerExists(title)) {\n\t\t\tif(tiddlerInfo) {\n\t\t\t\t// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server\n\t\t\t\tif($tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the tiddler isn't known on the server then it needs to be saved to the server\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t// Check tiddlers that are known from the server but not currently in the store\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\tif(!this.wiki.tiddlerExists(titles[index])) {\n\t\t\t// There must be a pending delete\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\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\tvar dirty = this.isDirty();\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",dirty);\n\t\tif(!dirty) {\n\t\t\tthis.loggerConnection.clearAlerts();\n\t\t}\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\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: this.getTiddlerRevision(tiddlerFields.title),\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title)\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} else {\n\t\t\t\t// Set the various status tiddlers\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\t\tif(isLoggedIn) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t\t}\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\tvar self = this,\n\t\tcancelNextSync = function() {\n\t\t\tif(self.pollTimerId) {\n\t\t\t\tclearTimeout(self.pollTimerId);\n\t\t\t\tself.pollTimerId = null;\n\t\t\t}\n\t\t},\n\t\ttriggerNextSync = function() {\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};\n\tif(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) {\n\t\tthis.logger.log(\"Retrieving updated tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getUpdatedTiddlers(self,function(err,updates) {\n\t\t\ttriggerNextSync();\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(updates) {\n\t\t\t\t$tw.utils.each(updates.modifications,function(title) {\n\t\t\t\t\tself.titlesToBeLoaded[title] = true;\n\t\t\t\t});\n\t\t\t\t$tw.utils.each(updates.deletions,function(title) {\n\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t});\n\t\t\t\tif(updates.modifications.length > 0 || updates.deletions.length > 0) {\n\t\t\t\t\tself.processTaskQueue();\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t} else if(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\ttriggerNextSync();\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep track of which tiddlers we already know about have been reported this time\n\t\t\tvar previousTitles = Object.keys(self.tiddlerInfo);\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.tiddlerExists(tiddlerFields.title) && 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\tindexInPreviousTitles = previousTitles.indexOf(tiddlerFields.title);\n\t\t\t\tif(indexInPreviousTitles !== -1) {\n\t\t\t\t\tpreviousTitles.splice(indexInPreviousTitles,1);\n\t\t\t\t}\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// Only load the skinny version if we don't already have a fat version of the tiddler\n\t\t\t\t\tif(!tiddler || tiddler.fields.text === undefined) {\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\tself.titlesToBeLoaded[tiddlerFields.title] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Delete any tiddlers that were previously reported but missing this time\n\t\t\t$tw.utils.each(previousTitles,function(title) {\n\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t});\n\t\t\tself.processTaskQueue();\n\t\t});\n\t}\n};\n\n/*\nForce load a tiddler from the server\n*/\nSyncer.prototype.enqueueLoadTiddler = function(title) {\n\tthis.titlesToBeLoaded[title] = true;\n\tthis.processTaskQueue();\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Ignore if the syncadaptor doesn't handle it\n\tif(!this.syncadaptor.supportsLazyLoading) {\n\t\treturn;\n\t}\n\t// Don't lazy load the same tiddler twice\n\tif(!this.titlesHaveBeenLazyLoaded[title]) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.getSyncedTiddlers().indexOf(title) !== -1) {\n\t\t\t// Mark the tiddler as needing loading, and having already been lazily loaded\n\t\t\tthis.titlesToBeLoaded[title] = true;\n\t\t\tthis.titlesHaveBeenLazyLoaded[title] = true;\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(!err && !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(err,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/*\nProcess the next task\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\n\t// 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(typeof task === \"object\" && task !== null) {\n\t\t\tthis.numTasksInProgress += 1;\n\t\t\ttask.run(function(err) {\n\t\t\t\tself.numTasksInProgress -= 1;\n\t\t\t\tif(err) {\n\t\t\t\t\tself.displayError(\"Sync error while processing \" + task.type + \" of '\" + task.title + \"'\",err);\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\tself.triggerTimeout(self.errorRetryInterval);\n\t\t\t\t} else {\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\t// Process the next task\n\t\t\t\t\tself.processTaskQueue.call(self);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// No task is ready so update the status\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// And trigger a timeout if there is a pending task\n\t\t\tif(task === true) {\n\t\t\t\tthis.triggerTimeout();\t\t\t\t\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.updateDirtyStatus();\t\t\n\t}\n};\n\nSyncer.prototype.triggerTimeout = function(interval) {\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},interval || self.taskTimerInterval);\n\t}\n};\n\n/*\nChoose the next sync task. We prioritise saves, then deletes, then loads from the server\n\nReturns either a task object, null if there's no upcoming tasks, or the boolean true if there are pending tasks that aren't yet due\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar thresholdLastSaved = (new Date()) - this.throttleInterval,\n\t\thavePending = null;\n\t// First we look for tiddlers that have been modified locally and need saving back to the server\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title),\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(tiddler) {\n\t\t\t// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server\n\t\t\tvar hasChanged = !tiddlerInfo || $tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount,\n\t\t\t\tisReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;\n\t\t\tif(hasChanged) {\n\t\t\t\tif(isReadyToSave) {\n\t\t\t\t\treturn new SaveTiddlerTask(this,title); \t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\thavePending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Second, we check tiddlers that are known from the server but not currently in the store, and so need deleting on the server\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\ttitle = titles[index];\n\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\treturn new DeleteTiddlerTask(this,title);\n\t\t}\n\t}\n\t// Check for tiddlers that need loading\n\ttitle = Object.keys(this.titlesToBeLoaded)[0];\n\tif(title) {\n\t\tdelete this.titlesToBeLoaded[title];\n\t\treturn new LoadTiddlerTask(this,title);\n\t}\n\t// No tasks are ready\n\treturn havePending;\n};\n\nfunction SaveTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"save\";\n}\n\nSaveTiddlerTask.prototype.run = function(callback) {\n\tvar self = this,\n\t\tchangeCount = this.syncer.wiki.getChangeCount(this.title),\n\t\ttiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);\n\tthis.syncer.logger.log(\"Dispatching 'save' task:\",this.title);\n\tif(tiddler) {\n\t\tthis.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t// If there's an error, exit without changing any internal state\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Adjust the info stored about this tiddler\n\t\t\tself.syncer.tiddlerInfo[self.title] = {\n\t\t\t\tchangeCount: changeCount,\n\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\trevision: revision,\n\t\t\t\ttimestampLastSaved: new Date()\n\t\t\t};\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else {\n\t\tthis.syncer.logger.log(\" Not Dispatching 'save' task:\",this.title,\"tiddler does not exist\");\n\t\t$tw.utils.nextTick(callback(null));\n\t}\n};\n\nfunction DeleteTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"delete\";\n}\n\nDeleteTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'delete' task:\",this.title);\n\tthis.syncer.syncadaptor.deleteTiddler(this.title,function(err) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Remove the info stored about this tiddler\n\t\tdelete self.syncer.tiddlerInfo[self.title];\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t},{\n\t\ttiddlerInfo: self.syncer.tiddlerInfo[this.title]\n\t});\n};\n\nfunction LoadTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"load\";\n}\n\nLoadTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'load' task:\",this.title);\n\tthis.syncer.syncadaptor.loadTiddler(this.title,function(err,tiddlerFields) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Update the info stored about this tiddler\n\t\tif(tiddlerFields) {\n\t\t\tself.syncer.storeTiddler(tiddlerFields);\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\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\t\tfields = Object.keys(this.fields).sort(),\n\t\tresult = [];\n\tfor(var t=0; t<fields.length; t++) {\n\t\tvar field = fields[t];\n\t\tif(exclude.indexOf(field) === -1) {\n\t\t\tresult.push(field + \": \" + this.getFieldString(field));\n\t\t}\n\t}\n\treturn result.join(\"\\n\");\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\"]) {\n\t\t\t// Check whether the plugin contains JS modules\n\t\t\tvar requiresReload = $tw.wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? ($tw.wiki.getTiddlerText(\"$:/language/ControlPanel/Plugins/PluginWillRequireReload\") + \" \") : \"\";\n\t\t\tmessages[title] = requiresReload;\n\t\t\tif(incomingTiddler.version) {\n\t\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\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/\",\"$:/Import\"],\n\tWARN_IMPORT_PREFIX_LIST = [\"$:/core/modules/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tshowAlert = false;\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\tfor(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = WARN_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix && wiki.isShadowTiddler(title)) {\n\t\t\t\t\tshowAlert = true;\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Warning\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tif(showAlert) {\n\t\tvar logger = new $tw.utils.Logger(\"import\");\n\t\tlogger.alert($tw.language.getString(\"Import/Upgrader/System/Alert\"));\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/base64-utf8/base64-utf8.module.js": {
"text": "(function(){// From https://gist.github.com/Nijikokun/5192472\n//\n// UTF8 Module\n//\n// Cleaner and modularized utf-8 encoding and decoding library for javascript.\n//\n// copyright: MIT\n// author: Nijiko Yonskai, @nijikokun, nijikokun@gmail.com\n!function(r,e,o,t){void 0!==o.module&&o.module.exports?o.module.exports=e.apply(o):void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"utf8\",[],e):o.utf8=e.apply(o)}(0,function(){return{encode:function(r){if(\"string\"!=typeof r)return r;r=r.replace(/\\r\\n/g,\"\\n\");for(var e,o=\"\",t=0;t<r.length;t++)(e=r.charCodeAt(t))<128?o+=String.fromCharCode(e):e>127&&e<2048?(o+=String.fromCharCode(e>>6|192),o+=String.fromCharCode(63&e|128)):(o+=String.fromCharCode(e>>12|224),o+=String.fromCharCode(e>>6&63|128),o+=String.fromCharCode(63&e|128));return o},decode:function(r){if(\"string\"!=typeof r)return r;for(var e=\"\",o=0,t=0;o<r.length;)(t=r.charCodeAt(o))<128?(e+=String.fromCharCode(t),o++):t>191&&t<224?(e+=String.fromCharCode((31&t)<<6|63&r.charCodeAt(o+1)),o+=2):(e+=String.fromCharCode((15&t)<<12|(63&r.charCodeAt(o+1))<<6|63&r.charCodeAt(o+2)),o+=3);return e}}},this),function(r,e,o,t){if(void 0!==o.module&&o.module.exports){if(t&&o.require)for(var n=0;n<t.length;n++)o[t[n]]=o.require(t[n]);o.module.exports=e.apply(o)}else void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"base64\",t||[],e):o.base64=e.apply(o)}(0,function(r){var e=r||this.utf8,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=e.encode(r);for(var t,n,i,d,f,a,h,c=\"\",u=0;u<r.length;)d=(t=r.charCodeAt(u++))>>2,f=(3&t)<<4|(n=r.charCodeAt(u++))>>4,a=(15&n)<<2|(i=r.charCodeAt(u++))>>6,h=63&i,isNaN(n)?a=h=64:isNaN(i)&&(h=64),c+=o.charAt(d)+o.charAt(f)+o.charAt(a)+o.charAt(h);return c},decode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");for(var t,n,i,d,f,a,h=\"\",c=0;c<r.length;)t=o.indexOf(r.charAt(c++))<<2|(d=o.indexOf(r.charAt(c++)))>>4,n=(15&d)<<4|(f=o.indexOf(r.charAt(c++)))>>2,i=(3&f)<<6|(a=o.indexOf(r.charAt(c++))),h+=String.fromCharCode(t),64!=f&&(h+=String.fromCharCode(n)),64!=a&&(h+=String.fromCharCode(i));return e.decode(h)}}},this,[\"utf8\"]);}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/base64-utf8/base64-utf8.module.js",
"module-type": "library"
},
"$:/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\tel.className = c.join(\" \");\n\t}\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\tvar done = false;\n\ttry {\n\t\twindow.localStorage.setItem(\"tw5-password-\" + name,password);\n\t\tdone = true;\n\t} catch(e) {\n\t}\n\tif(!done) {\n\t\t$tw.savedPasswords = $tw.savedPasswords || Object.create(null);\n\t\t$tw.savedPasswords[name] = password;\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\tvar value;\n\ttry {\n\t\tvalue = window.localStorage.getItem(\"tw5-password-\" + name);\n\t} catch(e) {\n\t}\n\tif(value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn ($tw.savedPasswords || Object.create(null))[name] || \"\";\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,xhr)\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\turl = options.url,\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\tif(type === \"GET\" || type === \"HEAD\") {\n\t\t\t\turl += \"?\" + results.join(\"&\");\n\t\t\t} else {\n\t\t\t\tdata = results.join(\"&\");\n\t\t\t}\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,null,this);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,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,null,this);\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 ? 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\tif(tiddler.fields && tiddler.fields.class) {\n\t\t$tw.utils.addClass(wrapper,tiddler.fields.class);\n\t}\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.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\tnoStateReference: options.noStateReference\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\tif(popup.noStateReference) {\n\t\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t\t} else {\n\t\t\t\tpopup.wiki.deleteTiddler($tw.utils.parseTextReference(popup.title).title);\n \t\t}\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.isScrolling = function() {\n\treturn this.idRequestFrame !== null;\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, \"style\", {\n\tget: function() {\n\t\treturn this._style;\n\t},\n\tset: function(str) {\n\t\tvar self = this;\n\t\tstr = str || \"\";\n\t\t$tw.utils.each(str.split(\";\"),function(declaration) {\n\t\t\tvar parts = declaration.split(\":\"),\n\t\t\t\tname = $tw.utils.trim(parts[0]),\n\t\t\t\tvalue = $tw.utils.trim(parts[1]);\n\t\t\tif(name && value) {\n\t\t\t\tself._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;\n\t\t\t}\n\t\t});\n\t}\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($tw.utils.convertPropertyNameToStyleName(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/*\nCreate a fileInfo object for saving a tiddler:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\nOptions include:\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFileInfo = function(tiddler,options) {\n\tvar fileInfo = {};\n\t// Check if the tiddler has any unsafe fields that can't be expressed in a .tid or .meta file: containing control characters, or leading/trailing whitespace\n\tvar hasUnsafeFields = false;\n\t$tw.utils.each(tiddler.getFieldStrings(),function(value,fieldName) {\n\t\tif(fieldName !== \"text\") {\n\t\t\thasUnsafeFields = hasUnsafeFields || /[\\x00-\\x1F]/mg.test(value);\n\t\t\thasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value);\n\t\t}\n\t});\n\t// Check for field values \n\tif(hasUnsafeFields) {\n\t\t// Save as a JSON file\n\t\tfileInfo.type = \"application/json\";\n\t\tfileInfo.hasMetaFile = false;\n\t} else {\n\t\t// Save as a .tid or a text/binary file plus a .meta file\n\t\tvar tiddlerType = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\tif(tiddlerType === \"text/vnd.tiddlywiki\") {\n\t\t\t// Save as a .tid file\n\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\tfileInfo.hasMetaFile = false;\n\t\t} else {\n\t\t\t// Save as a text/binary file and a .meta file\n\t\t\tfileInfo.type = tiddlerType;\n\t\t\tfileInfo.hasMetaFile = true;\n\t\t}\n\t}\n\t// Take the file extension from the tiddler content type\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[fileInfo.type] || {extension: \"\"};\n\t// Generate the filepath\n\tfileInfo.filepath = $tw.utils.generateTiddlerFilepath(tiddler.fields.title,{\n\t\textension: contentTypeInfo.extension,\n\t\tdirectory: options.directory,\n\t\tpathFilters: options.pathFilters,\n\t\twiki: options.wiki\n\t});\n\treturn fileInfo;\n};\n\n/*\nGenerate the filepath for saving a tiddler\nOptions include:\n\textension: file extension to be added the finished filepath\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFilepath = function(title,options) {\n\tvar self = this,\n\t\tdirectory = options.directory || \"\",\n\t\textension = options.extension || \"\",\n\t\tfilepath;\n\t// Check if any of the pathFilters applies\n\tif(options.pathFilters && options.wiki) {\n\t\t$tw.utils.each(options.pathFilters,function(filter) {\n\t\t\tif(!filepath) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\tfilepath = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// If not, generate a base pathname\n\tif(!filepath) {\n\t\tfilepath = title;\n\t\t// If the filepath already ends in the extension then remove it\n\t\tif(filepath.substring(filepath.length - extension.length) === extension) {\n\t\t\tfilepath = filepath.substring(0,filepath.length - extension.length);\n\t\t}\n\t\t// Remove any forward or backward slashes so we don't create directories\n\t\tfilepath = filepath.replace(/\\/|\\\\/g,\"_\");\n\t}\n\t// Don't let the filename start with a dot because such files are invisible on *nix\n\tfilepath = filepath.replace(/^\\./g,\"_\");\n\t// Remove any characters that can't be used in cross-platform filenames\n\tfilepath = $tw.utils.transliterate(filepath.replace(/<|>|\\:|\\\"|\\||\\?|\\*|\\^/g,\"_\"));\n\t// Truncate the filename if it is too long\n\tif(filepath.length > 200) {\n\t\tfilepath = filepath.substr(0,200);\n\t}\n\t// If the resulting filename is blank (eg because the title is just punctuation characters)\n\tif(!filepath) {\n\t\t// ...then just use the character codes of the title\n\t\tfilepath = \"\";\t\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tif(filepath) {\n\t\t\t\tfilepath += \"-\";\n\t\t\t}\n\t\t\tfilepath += char.charCodeAt(0).toString();\n\t\t});\n\t}\n\t// Add a uniquifier if the file already exists\n\tvar fullPath,\n\t\tcount = 0;\n\tdo {\n\t\tfullPath = path.resolve(directory,filepath + (count ? \"_\" + count : \"\") + extension);\n\t\tcount++;\n\t} while(fs.existsSync(fullPath));\n\t// Return the full path to the file\n\treturn fullPath;\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFile = function(tiddler,fileInfo,callback) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFile(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tfs.writeFile(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\",callback);\n\t\t});\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFile(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\",callback);\n\t\t} else {\n\t\t\tfs.writeFile(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\",callback);\n\t\t}\n\t}\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFileSync = function(tiddler,fileInfo) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFileSync(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding);\n\t\tfs.writeFileSync(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\");\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFileSync(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\");\n\t\t} else {\n\t\t\tfs.writeFileSync(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\");\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\tthis.save = \"save\" in options ? options.save : true;\n\tthis.saveLimit = options.saveLimit || 100 * 1024;\n\tthis.saveBufferLogger = this;\n\tthis.buffer = \"\";\n\tthis.alertCount = 0;\n}\n\nLogger.prototype.setSaveBuffer = function(logger) {\n\tthis.saveBufferLogger = logger;\n};\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tvar self = this;\n\tif(this.enable) {\n\t\tif(this.saveBufferLogger.save) {\n\t\t\tthis.saveBufferLogger.buffer += $tw.utils.formatDateString(new Date(),\"YYYY MM DD 0hh:0mm:0ss.0XXX\") + \":\";\n\t\t\t$tw.utils.each(Array.prototype.slice.call(arguments,0),function(arg,index) {\n\t\t\t\tself.saveBufferLogger.buffer += \" \" + arg;\n\t\t\t});\n\t\t\tthis.saveBufferLogger.buffer += \"\\n\";\n\t\t\tthis.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit);\t\t\t\n\t\t}\n\t\tif(console !== undefined && console.log !== undefined) {\n\t\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\t}\n\t} \n};\n\n/*\nRead the message buffer\n*/\nLogger.prototype.getBuffer = function() {\n\treturn this.saveBufferLogger.buffer;\n};\n\n/*\nLog a structure as a table\n*/\nLogger.prototype.table = function(value) {\n\t(console.table || console.log)(value);\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\tthis.alertCount += 1;\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\n/*\nClear outstanding alerts\n*/\nLogger.prototype.clearAlerts = function() {\n\tvar self = this;\n\tif($tw.browser && this.alertCount > 0) {\n\t\t$tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.component === self.componentName) {\n\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t}\n\t\t});\n\t\tthis.alertCount = 0;\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 by measurement name of {time:, invocations:}\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n\tthis.showGreeting();\n}\n\nPerformance.prototype.showGreeting = function() {\n\tif($tw.browser) {\n\t\tthis.logger.log(\"Execute $tw.perf.log(); to see filter execution timings\");\t\t\n\t}\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\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\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nPerformance.prototype.log = function() {\n\tvar self = this,\n\t\ttotalTime = 0,\n\t\torderedMeasures = Object.keys(this.measures).sort(function(a,b) {\n\t\t\tif(self.measures[a].time > self.measures[b].time) {\n\t\t\t\treturn -1;\n\t\t\t} else if (self.measures[a].time < self.measures[b].time) {\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$tw.utils.each(orderedMeasures,function(name) {\n\t\ttotalTime += self.measures[name].time;\n\t});\n\tvar results = []\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\tvar measure = self.measures[name];\n\t\tresults.push({name: name,invocations: measure.invocations, avgTime: measure.time / measure.invocations, totalTime: measure.time, percentTime: (measure.time / totalTime) * 100})\n\t});\n\tself.logger.table(results);\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\tif(!(name in self.measures)) {\n\t\t\t\tself.measures[name] = {time: 0, invocations: 0};\n\t\t\t}\n\t\t\tself.measures[name].time += $tw.utils.timer(startTime);\n\t\t\tself.measures[name].invocations++;\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\nvar base64utf8 = require(\"$:/core/modules/utils/base64-utf8/base64-utf8.module.js\");\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/*\nConvert a string to sentence case (ie capitalise first letter)\n*/\nexports.toSentenceCase = function(str) {\n\treturn (str || \"\").replace(/^\\S/, function(c) {return c.toUpperCase();});\n}\n\n/*\nConvert a string to title case (ie capitalise each initial letter)\n*/\nexports.toTitleCase = function(str) {\n\treturn (str || \"\").replace(/(^|\\s)\\S/g, function(c) {return c.toUpperCase();});\n}\n\t\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/*\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/*\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(),3);\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) || 0;\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\treturn base64utf8.base64.decode.call(base64utf8,string64);\n};\n\n/*\nEncode a string to base64\n*/\nexports.base64Encode = function(string64) {\n\treturn base64utf8.base64.encode.call(base64utf8,string64);\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,_canonical_uri) {\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\tif(_canonical_uri) {\n\t\tparts.push(_canonical_uri);\n\t} else {\n\t\tparts.push(\"data:\");\n\t\tparts.push(type);\n\t\tparts.push(isBase64 ? \";base64\" : \"\");\n\t\tparts.push(\",\");\n\t\tparts.push(isBase64 ? text : encodeURIComponent(text));\t\t\n\t}\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/*\nReturn system information useful for debugging\n*/\nexports.getSystemInfo = function(str,ending,position) {\n\tvar results = [],\n\t\tsave = function(desc,value) {\n\t\t\tresults.push(desc + \": \" + value);\n\t\t};\n\tif($tw.browser) {\n\t\tsave(\"User Agent\",navigator.userAgent);\n\t\tsave(\"Online Status\",window.navigator.onLine);\n\t}\n\tif($tw.node) {\n\t\tsave(\"Node Version\",process.version);\n\t}\n\treturn results.join(\"\\n\");\n};\n\nexports.parseNumber = function(str) {\n\treturn parseFloat(str) || 0;\n};\n\nexports.parseInt = function(str) {\n\treturn parseInt(str,10) || 0;\n};\n\nexports.stringifyNumber = function(num) {\n\treturn num + \"\";\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, require:false, exports: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.hasBase = !!this.actionBaseTitle;\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionSaveDraftTitle = this.getAttribute(\"$savedrafttitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n\t//Following params are new since 5.1.22\n\tthis.actionTemplate = this.getAttribute(\"$template\");\n\tthis.useTemplate = !!this.actionTemplate;\n\tthis.actionOverwrite = this.getAttribute(\"$overwrite\",\"no\");\n\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.getTiddlerText(\"$:/language/DefaultNewTiddlerTitle\"), // Get the initial new-tiddler title\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\tif(this.hasBase && this.actionOverwrite === \"no\") {\n\t\ttitle = this.wiki.generateNewTitle(this.actionBaseTitle);\n\t} else if (this.hasBase && this.actionOverwrite === \"yes\") {\n\t\ttitle = this.actionBaseTitle\n\t}\n\t// NO $basetitle BUT $template parameter is available\n\t// the title MUST be unique, otherwise the template would be overwritten\n\tif (!this.hasBase && this.useTemplate) {\n\t\ttitle = this.wiki.generateNewTitle(this.actionTemplate);\n\t} else if (!this.hasBase && !this.useTemplate) {\n\t\t// If NO $basetitle AND NO $template use initial title\n\t\t// DON'T overwrite any stuff\n\t\ttitle = this.wiki.generateNewTitle(title);\n\t}\n\tvar templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.actionSaveDraftTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(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 && tiddler) {\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-popup.js": {
"title": "$:/core/modules/widgets/action-popup.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-popup.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to trigger a popup.\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 ActionPopupWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nActionPopupWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nActionPopupWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nActionPopupWidget.prototype.execute = function() {\n\tthis.actionState = this.getAttribute(\"$state\");\n\tthis.actionCoords = this.getAttribute(\"$coords\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nActionPopupWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$state\"] || changedAttributes[\"$coords\"]) {\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*/\nActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Trigger the popup\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(this.actionCoords);\n\tif(match) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: null,\n\t\t\tdomNodeRect: {\n\t\t\t\tleft: parseFloat(match[1]),\n\t\t\t\ttop: parseFloat(match[2]),\n\t\t\t\twidth: parseFloat(match[3]),\n\t\t\t\theight: parseFloat(match[4])\n\t\t\t},\n\t\t\ttitle: this.actionState,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-popup\"] = ActionPopupWidget;\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// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\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\tthis.tabIndex = this.getAttribute(\"tabindex\");\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.actions || 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.checkboxCheckActions && checked) {\n\t\tthis.invokeActionString(this.checkboxCheckActions,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.checkboxCheckActions = this.getAttribute(\"checkactions\");\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 = \"0\";\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(changedAttributes.tag || changedAttributes[\"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\tif(this.droppableEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t\t]);\t\t\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\tthis.droppableEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\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 || changedAttributes.enable) {\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 = this.dropzoneClass || \"tc-dropzone\";\n\t// Add event handlers\n\tif(this.dropzoneEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\t\t\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.handleDragEndEvent = function(event) {\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\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.dropzoneClass = this.getAttribute(\"class\");\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\tthis.dropzoneEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\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\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\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\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\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// Get our parameters\n\tvar editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tvar tiddler = this.wiki.getTiddler(editTitle);\n\tvar type = tiddler.fields.type;\n\tvar text = tiddler.fields.text;\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on draft tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!draft.title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!draft.title\"}\n\t\t},\n\t\tchildren: [{\n\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to internal data URI (no external)\n\tif(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets([element]);\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\tDEFAULT_IMAGE_TYPE = \"image/png\";\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\tif(tiddler && tiddler.fields.type && tiddler.fields.text) {\n\t\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\t\t\n\t} else {\n\t\tcurrImage.width = DEFAULT_IMAGE_WIDTH;\n\t\tcurrImage.height = DEFAULT_IMAGE_HEIGHT;\n\t\tcurrImage.onerror();\n\t}\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) || new $tw.Tiddler({title: this.editTitle,type: DEFAULT_IMAGE_TYPE});\n\t// data URIs look like \"data:<type>;base64,<text>\"\n\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\tposColon = dataURL.indexOf(\":\"),\n\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\tposComma = dataURL.indexOf(\",\"),\n\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\ttext = dataURL.substring(posComma+1);\n\tvar update = {type: type, text: text};\n\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\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\t// Focus the input Node if focus === \"yes\" or focus === \"true\"\n\tif(this.shortcutFocus === \"yes\" || this.shortcutFocus === \"true\") {\n\t\tthis.focus();\n\t}\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\tthis.shortcutFocus = this.getAttribute(\"focus\");\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/*\nfocus the input node\n*/\nEditShortcutWidget.prototype.focus = function() {\n\tif(this.inputNode.focus && this.inputNode.select) {\n\t\tthis.inputNode.focus();\n\t\tthis.inputNode.select();\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\"] || changedAttributes.focus) {\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\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\tthis.editFocus = this.getAttribute(\"focus\",\"\");\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\t\"tabindex\": {type: \"string\", value: this.editTabIndex},\n\t\t\t\"focus\": {type: \"string\", value: this.editFocus}\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 || changedAttributes.tabindex || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\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.sort = this.getAttribute(\"sort\",\"yes\") === \"yes\";\n\tthis.sortReverse = this.getAttribute(\"sortReverse\",\"no\") === \"yes\";\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.include = this.getAttribute(\"include\",null);\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\n\t// Get the inclusion and exclusion list\n\tvar excludeArr = (this.exclude) ? this.exclude.split(\" \") : [\"text\"];\n\t// Include takes precedence\n\tvar includeArr = (this.include) ? this.include.split(\" \") : null;\n\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tif (includeArr) { // Include takes precedence\n\t\t\tfor(var i=0; i<includeArr.length; i++) {\n\t\t\t\tif(tiddler.fields[includeArr[i]]) {\n\t\t\t\t\tfields.push(includeArr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\tif(excludeArr.indexOf(fieldName) === -1) {\n\t\t\t\t\tfields.push(fieldName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.sort) fields.sort();\n\t\tif (this.sortReverse) fields.reverse();\n\t\tfor(var f=0, fmax=fields.length; f<fmax; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tvar row = this.template,\n\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\tif(reMatch) {\n\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\ttext.push(row);\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 ||\n\t\tchangedAttributes.include || changedAttributes.sort || changedAttributes.sortReverse ||\n\t\tchangedTiddlers[this.tiddlerTitle] || changedAttributes.stripTitlePrefix) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t} else {\n\t\treturn false;\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 widgetPointer = 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\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = widgetPointer.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\tvar node = {\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\tif (parseTreeNode.isMacroDefinition) {\n\t\t\t\t\t// Macro definitions can be folded into\n\t\t\t\t\t// current widget instead of adding\n\t\t\t\t\t// another link to the chain.\n\t\t\t\t\tvar widget = widgetPointer.makeChildWidget(node);\n\t\t\t\t\twidget.computeAttributes();\n\t\t\t\t\twidget.execute();\n\t\t\t\t\t// We SHALLOW copy over all variables\n\t\t\t\t\t// in widget. We can't use\n\t\t\t\t\t// $tw.utils.assign, because that copies\n\t\t\t\t\t// up the prototype chain, which we\n\t\t\t\t\t// don't want.\n\t\t\t\t\t$tw.utils.each(Object.keys(widget.variables), function(key) {\n\t\t\t\t\t\twidgetPointer.variables[key] = widget.variables[key];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twidgetPointer.makeChildWidgets([node]);\n\t\t\t\t\twidgetPointer = widgetPointer.children[0];\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\n\tif (widgetPointer != this) {\n\t\twidgetPointer.parseTreeNode.children = this.parseTreeNode.children;\n\t} else {\n\t\twidgetPointer.makeChildWidgets();\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*/\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\tvar templateTree;\n\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\ttemplateTree = this.parseTreeNode.children;\n\t} else {\n\t\t// Default template is a link to the title\n\t\ttemplateTree = [{type: \"text\", text: this.to}];\n\t}\n\tthis.makeChildWidgets(templateTree);\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\tif(this.storyTitle) {\n\t\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: this.storyTitle},\n\t\t\tstoryTiddler,\n\t\t\t{list: storyList}\n\t\t));\t\t\n\t}\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tif(storyList) {\n\t\tvar p = storyList.indexOf(title);\n\t\twhile(p !== -1) {\n\t\t\tstoryList.splice(p,1);\n\t\t\tp = storyList.indexOf(title);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tif(storyList) {\n\t\tvar pos = storyList.indexOf(oldTitle);\n\t\tif(pos !== -1) {\n\t\t\tstoryList[pos] = newTitle;\n\t\t\tdo {\n\t\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\t\tif(pos !== -1) {\n\t\t\t\t\tstoryList.splice(pos,1);\n\t\t\t\t}\n\t\t\t} while(pos !== -1);\n\t\t} else {\n\t\t\tstoryList.splice(0,0,newTitle);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tif(this.storyTitle) {\n\t\tthis.wiki.addToStory(title,fromTitle,this.storyTitle,{\n\t\t\topenLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),\n\t\t\topenLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")\n\t\t});\n\t}\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\treturn this.wiki.generateDraftTitle(title);\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 && 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 && 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 && 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 || \"$:/state/folded/\";\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\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\tthis.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\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\t\t\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\tfieldName = this.tiddlerField || \"text\",\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(tiddler,this.tiddlerIndex,this.defaultValue || \"\");\n\t\t} else {\n\t\t\tif($tw.utils.hop(tiddler.fields,fieldName)) {\n\t\t\t\tvalue = tiddler.fields[fieldName] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.defaultValue || \"\";\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.handleInputEvent = function(event) {\n\tif(this.getValue() !== this.inputDomNode.value) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,\"\",this.tiddlerIndex,this.inputDomNode.value);\n\t\t} else {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value);\n\t\t}\n\t}\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.tiddlerIndex = this.getAttribute(\"index\");\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.index || 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\tvar value = this.getValue();\n\t\t\tif(this.inputDomNode.value !== value) {\n\t\t\t\tthis.inputDomNode.value = value;\t\t\t\t\n\t\t\t}\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\tvar left,top;\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tleft = this.popup.left + this.popup.width - domNode.offsetWidth;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t}\n\tif(!this.positionAllowNegative) {\n\t\tleft = Math.max(0,left);\n\t\ttop = Math.max(0,top);\n\t}\n\tdomNode.style.left = left + \"px\";\n\tdomNode.style.top = top + \"px\";\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.positionAllowNegative = this.getAttribute(\"positionAllowNegative\") === \"yes\";\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,\n\t defaultState = this[\"default\"];\n\tif(this.stateTitle) {\n\t\tvar stateTitleTiddler = this.wiki.getTiddler(this.stateTitle);\n\t\tif(this.stateField) {\n\t\t\tstate = stateTitleTiddler ? stateTitleTiddler.getFieldString(this.stateField) || defaultState : defaultState;\n\t\t} else if(this.stateIndex) {\n\t\t\tstate = stateTitleTiddler ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) || defaultState : defaultState;\n\t\t} else if(stateTitleTiddler) {\n\t\t\tstate = this.wiki.getTiddlerText(this.stateTitle) || defaultState;\n\t\t} else {\n\t\t\tstate = defaultState;\n\t\t}\n\t} else {\n\t\tstate = this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\t}\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.text === state;\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = this.text !== state;\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.positionAllowNegative || 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) {\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\tselect.children[i].selected = values.indexOf(select.children[i].value) !== -1\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\tthis.selectTooltip = this.getAttribute(\"tooltip\");\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\tif(this.selectTooltip) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"title\",this.selectTooltip);\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 || changedAttributes.selectTooltip) {\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\tthis.initialise(parseTreeNode,options);\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\t// Bail if parseTreeNode is undefined, meaning that the widget constructor was called without any arguments so that it can be subclassed\n\tif(parseTreeNode === undefined) {\n\t\treturn;\n\t}\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\t// Get widget classes\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t\t// Process any subclasses\n\t\t$tw.modules.forEachModuleOfType(\"widget-subclass\",function(title,module) {\n\t\t\tif(module.baseClass) {\n\t\t\t\tvar baseClass = Widget.prototype.widgetClasses[module.baseClass];\n\t\t\t\tif(!baseClass) {\n\t\t\t\t\tthrow \"Module '\" + title + \"' is attemping to extend a non-existent base class '\" + module.baseClass + \"'\";\n\t\t\t\t}\n\t\t\t\tvar subClass = module.constructor;\n\t\t\t\tsubClass.prototype = new baseClass();\n\t\t\t\t$tw.utils.extend(subClass.prototype,module.prototype);\n\t\t\t\tWidget.prototype.widgetClasses[module.name || module.baseClass] = subClass;\n\t\t\t}\n\t\t});\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\tvar children = this.children;\n\tfor(var i = 0; i < children.length; i++) {\n\t\tchildren[i].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 children = this.children,\n\t\trefreshed = false;\n\tfor (var i = 0; i < children.length; i++) {\n\t\trefreshed = children[i].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 ? tiddler.fields.tags.slice(0) : undefined,\n\t\t\t\t\tlist = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,\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/*\nAdd available indexers to this wiki\n*/\nexports.addIndexersToWiki = function() {\n\tvar self = this;\n\t$tw.utils.each($tw.modules.applyMethods(\"indexer\"),function(Indexer,name) {\n\t\tself.addIndexer(new Indexer(self),name);\n\t});\n};\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\nexports.isBinaryTiddler = 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.encoding === \"base64\";\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 within the given parse tree\n */\nexports.extractLinks = function(parseTreeRoot) {\n\t// Count up the links\n\tvar links = [],\n\t\tcheckParseTree = function(parseTree) {\n\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcheckParseTree(parseTreeRoot);\n\treturn links;\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\tif(parser) {\n\t\t\treturn self.extractLinks(parser.tree);\n\t\t}\n\t\treturn [];\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\tbacklinksIndexer = this.getIndexer(\"BacklinksIndexer\"),\n\t\tbacklinks = backlinksIndexer && backlinksIndexer.lookup(targetTitle);\n\n\tif(!backlinks) {\n\t\tbacklinks = [];\n\t\tthis.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self.getTiddlerLinks(title);\n\t\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\t\tbacklinks.push(title);\n\t\t\t}\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\t// Try to use the indexer\n\tvar self = this,\n\t\ttagIndexer = this.getIndexer(\"TagIndexer\"),\n\t\tresults = tagIndexer && tagIndexer.subIndexers[3].lookup(tag);\n\tif(!results) {\n\t\t// If not available, perform a manual scan\n\t\tresults = this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\t\tvar tagmap = self.getTagMap();\n\t\t\treturn self.sortByList(tagmap[tag],tag);\n\t\t});\n\t}\n\treturn results;\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\t// Given a title, this function will place it in the correct location\n\t// within titles.\n\tfunction moveItemInList(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\t// if this title is placed relative\n\t\t\t\t\t// to another title, make sure that\n\t\t\t\t\t// title is placed before we place\n\t\t\t\t\t// this one.\n\t\t\t\t\tmoveItemInList(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\t// Same deal\n\t\t\t\t\tmoveItemInList(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// If a new position is specified, let's move it\n\t\t\t\tif (newPos !== -1) {\n\t\t\t\t\t// get its current Pos, and make sure\n\t\t\t\t\t// sure that it's _actually_ in the list\n\t\t\t\t\t// and that it would _actually_ move\n\t\t\t\t\t// (#4275) We don't bother calling\n\t\t\t\t\t// indexOf unless we have a new\n\t\t\t\t\t// position to work with\n\t\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\t\t// move it!\n\t\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t\t}\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\tmoveItemInList(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,spaces) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tspaces = (spaces === undefined) ? $tw.config.preferences.jsonSpaces : spaces,\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,spaces);\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\tanchored: If true, forces all but regexp searches to be anchored to the start of text\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\t\tanchor = options.anchored ? \"^\" : \"\";\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(\"(\" + anchor + $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(\"(\" + anchor + 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(\"(\" + anchor + $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.hasField(\"_is_skinny\")) {\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);\t\t\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);\t\t\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nexports.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.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.tiddlerExists(draftTitle));\n\treturn draftTitle;\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// Determine whether a plugin by title is dynamically loadable\nexports.doesPluginRequireReload = function(title) {\n\treturn this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));\n};\n\n// Determine whether a plugin info structure is dynamically loadable\nexports.doesPluginInfoRequireReload = function(pluginInfo) {\n\tif(pluginInfo) {\n\t\tvar foundModule = false;\n\t\t$tw.utils.each(pluginInfo.tiddlers,function(tiddler) {\n\t\t\tif(tiddler.type === \"application/javascript\" && $tw.utils.hop(tiddler,\"module-type\")) {\n\t\t\t\tfoundModule = true;\n\t\t\t}\n\t\t});\n\t\treturn foundModule;\n\t} else {\n\t\treturn null;\n\t}\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/GruvboxDark": {
"title": "$:/palettes/GruvboxDark",
"name": "Gruvbox Dark",
"description": "Retro groove color scheme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "https://github.com/morhetz/gruvbox",
"text": "alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #504945\nbutton-foreground: #fbf1c7\nbutton-border: transparent\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: #7c6f64\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #282828\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\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: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: <<colour button-background>>\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>"
},
"$:/palettes/Nord": {
"title": "$:/palettes/Nord",
"name": "Nord",
"description": "An arctic, north-bluish color palette.",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
"text": "alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #4C566A\nbutton-foreground: #D8DEE9\nbutton-border: transparent\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #2e3440\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\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: #2d3038\nvery-muted-foreground: #2d3038\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/SolarizedLight": {
"title": "$:/palettes/SolarizedLight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Precision colors for machines and people",
"license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
"name": "SolarizedLight",
"text": "alert-background: #eee8d5\nalert-border: #073642\nalert-highlight: #cb4b16\nalert-muted-foreground: #586e75\nbackground: #fdf6e3\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #cb4b16\nbutton-foreground: #fdf6e3\nbutton-border: transparent\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #d33682\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #859900\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #D08770\ndownload-background: #859900\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #fdf6e3\ndropdown-tab-background: #93a1a1\ndropzone-background: #859900\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: #d33682\nexternal-link-foreground-visited: #b58900\nexternal-link-foreground: #cb4b16\nforeground: #839496\nmessage-background: #586e75\nmessage-border: #586e75\nmessage-foreground: #eee8d5\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #eee8d5\nmodal-footer-background: #eee8d5\nmodal-footer-border: #eee8d5\nmodal-header-border: #eee8d5\nmuted-foreground: #93a1a1\nnotification-background: #EBCB8B\nnotification-border: #D08770\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #93a1a1\nprimary: #2aa198\nselect-tag-background: #eee8d5\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: #eee8d5\nsidebar-controls-foreground-hover: #268bd2\nsidebar-controls-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #839496\nsidebar-muted-foreground-hover: #657b83\nsidebar-muted-foreground: #93a1a1\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-background: #839496\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #657b83\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #839496\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #859900\nsidebar-tiddler-link-foreground: #268bd2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #dc322f\ntab-background-selected: #fdf6e3\ntab-background: #839496\ntab-border-selected: #93a1a1\ntab-border: #93a1a1\ntab-divider: #fdf6e3\ntab-foreground-selected: #839496\ntab-foreground: #eee8d5\ntable-border: #657b83\ntable-footer-background: #657b83\ntable-header-background: #93a1a1\ntag-background: #6c71c4\ntag-foreground: #eee8d5\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #b58900\ntiddler-controls-foreground-selected: #b58900\ntiddler-controls-foreground: #073642\ntiddler-editor-background: #eee8d5\ntiddler-editor-border-image: #eee8d5\ntiddler-editor-border: #eee8d5\ntiddler-editor-fields-even: #eee8d5\ntiddler-editor-fields-odd: #fdf6e3\ntiddler-info-background: #eee8d5\ntiddler-info-border: #eee8d5\ntiddler-info-tab-background: #586e75\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #586e75\ntiddler-title-foreground: #073642\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: #839496\nvery-muted-foreground: #93a1a1\n"
},
"$:/palettes/SpartanDay": {
"title": "$:/palettes/SpartanDay",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Cold, spartan day colors",
"name": "Spartan Day",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\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 very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"
},
"$:/palettes/SpartanNight": {
"title": "$:/palettes/SpartanNight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Dark spartan colors",
"name": "Spartan Night",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\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 very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"
},
"$:/palettes/Twilight": {
"title": "$:/palettes/Twilight",
"tags": "$:/tags/Palette",
"author": "Thomas Elmiger",
"type": "application/x-tiddler-dictionary",
"name": "Twilight",
"description": "Delightful, soft darkness.",
"text": "alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\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: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\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\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\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": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\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 lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\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<!--~~ 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<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"
},
"$:/core/templates/html-div-skinny-tiddler": {
"title": "$:/core/templates/html-div-skinny-tiddler",
"text": "<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\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": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\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\\define skinnySaveTiddlerFilter()\n[!is[system]]\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\\define skinnySaveTiddlerFilter()\n[is[image]]\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": "\\whitespace trim\n\\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=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\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"
},
"$:/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<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\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<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-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": "<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\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`{{{ [<saveTiddlerAndShadowsFilter>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`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>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`{{{ [enlist<saveTiddlerAndShadowsFilter>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`{{{ [enlist<saveTiddlerAndShadowsFilter>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>> tags={{$:/config/NewTiddler/Tags!!tags}}/>\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!!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\" tags={{$:/config/NewTiddler/Tags!!tags}}/>\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\" focus={{$:/config/Search/AutoFocus}}/>\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\" focus={{$:/config/Search/AutoFocus}}/>\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\" focus={{$:/config/Search/AutoFocus}}/>\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\" focus={{$:/config/Search/AutoFocus}}/>\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/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\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<<lingo Prompt>>\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-plugin-info-toggle\">\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/chevron-right}}\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/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\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 tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$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/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewTiddler/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewJournal/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\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}} focus=\"true\" 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={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\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>match[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-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\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-plugin-info-toggle\">\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/chevron-right}}\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/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\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 tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$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<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[title]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\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:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[title]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\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<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/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</$set>\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<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\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{{$:/PaletteManager}}\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/Add/Updates": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Updates",
"caption": "<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>",
"text": "\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"[[<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\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 tc-primary-btn\">\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[title]]\" 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/GitHub": {
"title": "$:/core/ui/ControlPanel/Saving/GitHub",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/GitLab": {
"title": "$:/core/ui/ControlPanel/Saving/GitLab",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"
},
"$:/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/Gitea": {
"title": "$:/core/ui/ControlPanel/Saving/Gitea",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"
},
"$:/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": "\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$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 tc-edit-texteditor-body\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n tabindex={{$:/config/EditTabIndex}}\n focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\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\" tabindex={{$:/config/EditTabIndex}}></$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 current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\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\\whitespace trim\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\" storyview=\"pop\">\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}} tabindex={{$:/config/EditTabIndex}}/>\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=<<newFieldNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}}/>\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=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<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<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}}/>\n</$keyboard>\n</$set>\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\">{{$:/core/images/close-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<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<$set name=\"tabIndex\" value={{$:/config/EditTabIndex}}>\n<$macrocall $name=\"tag-picker\"/>\n</$set>\n</$fieldmangler>\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={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}}/>\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<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\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</$list>\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\\whitespace trim\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-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}}/> <$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 save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-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</$vars>\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>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\define save-tiddler-button()\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\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<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\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/SessionTiddlers": {
"title": "$:/core/Filters/SessionTiddlers",
"tags": "$:/tags/Filter",
"filter": "[haschanged[]]",
"description": "{{$:/language/Filters/SessionTiddlers}}",
"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/advanced-search": {
"title": "$:/core/ui/KeyboardShortcuts/advanced-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((advanced-search))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\"/>\n</$navigator>\n"
},
"$:/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/KeyboardShortcuts/sidebar-search": {
"title": "$:/core/ui/KeyboardShortcuts/sidebar-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((sidebar-search))",
"text": "<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"
},
"$:/core/ui/KeyboardShortcut/toggle-sidebar": {
"title": "$:/core/ui/KeyboardShortcut/toggle-sidebar",
"tags": "$:/tags/KeyboardShortcut",
"key": "((toggle-sidebar))",
"text": "<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"
},
"$:/core/ui/ListItemTemplate": {
"title": "$:/core/ui/ListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\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": "\\whitespace trim\n\\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>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\whitespace trim\n\\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>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\whitespace trim\n<$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>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/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>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\whitespace trim\n\\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>match[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<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[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>\n"
},
"$:/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": "\\whitespace trim\n\\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>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\whitespace trim\n<$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>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\whitespace trim\n\\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>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\whitespace trim\n<$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>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\whitespace trim\n<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>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[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>\n"
},
"$:/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>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\whitespace trim\n\\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>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[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>\n"
},
"$:/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": "\\whitespace trim\n\\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>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\whitespace trim\n<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>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[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>\n"
},
"$:/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": "\\whitespace trim\n<$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>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/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>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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": "\\whitespace trim\n\\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<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\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</$list>\n</$set>\n</$list>\n</div>\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=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\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": "\\whitespace trim\n\\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>\n"
},
"$:/core/ui/PageTemplate/story": {
"title": "$:/core/ui/PageTemplate/story",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<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={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/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\" storyview=\"pop\">\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\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate": {
"title": "$:/core/ui/PageTemplate",
"text": "\\whitespace trim\n\\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-enable-drag-and-drop\" value={{$:/config/DragAndDrop/Enable}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\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 enable=<<tv-enable-drag-and-drop>>>\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"
},
"$:/PaletteManager": {
"title": "$:/PaletteManager",
"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\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip=<<lingo Delete/Hint>> aria-label=<<lingo Delete/Hint>> class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\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<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"> <<lingo Names/External/Show>></$checkbox>\n\n<<palette-manager-table>>\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 />\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}}><$view field=\"description\"><$view field=\"title\"/></$view></$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 tc-sidebar-tabs-more\" />\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=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">{{$:/core/images/close-button}}</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\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": "\\whitespace trim\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\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 tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\"/>\n\n</div>\n"
},
"$:/TagManager": {
"title": "$:/TagManager",
"icon": "$:/core/images/tag-button",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\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\\whitespace trim\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\\whitespace trim\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\\whitespace trim\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": "<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\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</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\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</$list>\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": "\\whitespace trim\n<$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=\"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": "\\whitespace trim\n\\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<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\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 folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$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>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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 newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags!!tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"
},
"$:/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>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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!!tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"
},
"$:/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>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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/AutoFocus": {
"title": "$:/config/AutoFocus",
"text": "title"
},
"$:/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.22/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/RegisterPluginType/plugin": {
"title": "$:/config/RegisterPluginType/plugin",
"text": "yes"
},
"$:/config/RegisterPluginType/theme": {
"title": "$:/config/RegisterPluginType/theme",
"text": "no"
},
"$:/config/RegisterPluginType/language": {
"title": "$:/config/RegisterPluginType/language",
"text": "no"
},
"$:/config/RegisterPluginType/info": {
"title": "$:/config/RegisterPluginType/info",
"text": "no"
},
"$:/config/RegisterPluginType/import": {
"title": "$:/config/RegisterPluginType/import",
"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/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]": {
"title": "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]",
"text": "yes"
},
"$:/config/ShortcutInfo/add-field": {
"title": "$:/config/ShortcutInfo/add-field",
"text": "{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"
},
"$:/config/ShortcutInfo/advanced-search": {
"title": "$:/config/ShortcutInfo/advanced-search",
"text": "{{$:/language/Buttons/AdvancedSearch/Hint}}"
},
"$:/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/sidebar-search": {
"title": "$:/config/ShortcutInfo/sidebar-search",
"text": "{{$:/language/Buttons/SidebarSearch/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/toggle-sidebar": {
"title": "$:/config/ShortcutInfo/toggle-sidebar",
"text": "{{$:/language/Buttons/ToggleSidebar/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/add-field": {
"title": "$:/config/shortcuts/add-field",
"text": "enter"
},
"$:/config/shortcuts/advanced-search": {
"title": "$:/config/shortcuts/advanced-search",
"text": "ctrl-shift-A"
},
"$:/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/sidebar-search": {
"title": "$:/config/shortcuts/sidebar-search",
"text": "ctrl-shift-F"
},
"$:/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/toggle-sidebar": {
"title": "$:/config/shortcuts/toggle-sidebar",
"text": "alt-shift-S"
},
"$:/config/shortcuts/transcludify": {
"title": "$:/config/shortcuts/transcludify",
"text": "alt-shift-T"
},
"$:/config/ui/EditTemplate": {
"title": "$:/config/ui/EditTemplate",
"text": "$:/core/ui/EditTemplate"
},
"$:/config/ui/ViewTemplate": {
"title": "$:/config/ui/ViewTemplate",
"text": "$:/core/ui/ViewTemplate"
},
"$:/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 tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$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$}} _canonical_uri={{$title$!!_canonical_uri}}/>\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<span style=\"display:inline-block; 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/dumpvariables": {
"title": "$:/core/macros/dumpvariables",
"tags": "$:/tags/Macro",
"text": "\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\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>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[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\\whitespace trim\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\\whitespace trim\n<span class=\"tc-links-draggable-list\">\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$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\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\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$vars>\n</span>\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\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\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__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\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\" storyview=\"pop\"><$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={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<tag>>/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker-inner()\n\\whitespace trim\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=<<newTagNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}}/>\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={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n<<add-tag-actions>>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\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<$set name=\"newTagName\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$list filter=\"[<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<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n<hr>\n<$list filter=\"[<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<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n\\end\n\\define tag-picker()\n\\whitespace trim\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=<<tag-picker-inner>>>\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<<tag-picker-inner>>\n</$set>\n</$list>\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\\whitespace trim\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}}><<timeline-title>></$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__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\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 </$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-selected\" value=\"toc-item\">\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-selected\" value=\"toc-item\">\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__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__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 </$set>\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-selected\" value=\"toc-item\" >\n <li class=<<toc-item-class>>>\n <$link>\n <$list filter=\"[all[current]tagging[]$sort$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-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]$sort$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__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__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 </$set>\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]] -[<__selectedTiddler__>get[text]]\"/>\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,separator: \"/\")\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,separator: \"/\")\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__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/utils": {
"title": "$:/core/macros/utils",
"text": "\\define colour(colour)\n$colour$\n\\end\n"
},
"$:/snippets/minifocusswitcher": {
"title": "$:/snippets/minifocusswitcher",
"text": "<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\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": "<$transclude tiddler=\"$:/PaletteManager\"/>\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[name]]\"><$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>\n"
},
"$:/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 \"$:/state/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 \"$:/state/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/PluginLibrary": {
"title": "$:/tags/PluginLibrary",
"list": "$:/config/OfficialPluginLibrary"
},
"$:/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 tc-viewswitcher\">\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>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
}
}
}
\whitespace trim
\define newHereActions()
<$set name="tags" filter="[<currentTiddler>] [{$:/config/NewTiddler/Tags}]">
<$set name="newTitle" value=<<unusedtitle>>>
<$action-createtiddler $basetitle=<<newTitle>> tags=<<tags>> $template={{$:/config/NewTiddler/GovernmentTemplate/Name}}/>
<$action-sendmessage $message="tm-edit-tiddler" $param=<<newTitle>>/>
</$set></$set>
\end
\define newHereButton()
<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/new-here-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text={{$:/language/Buttons/NewHere/Caption}}/>
</span>
</$list>
</$button>
\end
<<newHereButton>>
<div class="tc-site-subtitle">
<$transclude tiddler="$:/SiteSubtitle" mode="inline"/>
</div>
<h1 class="tc-site-title">
<$transclude tiddler="$:/SiteTitle" mode="inline"/>
</h1>
The following tiddlers were imported:
# [[$:/plugins/bj/visualeditor]]
\whitespace trim
<$navigator story="$:/fullscreen-editor">
<$button message="tm-edit-tiddler" tooltip="Edit in full screen mode" class=<<tv-config-toolbar-class>>>
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/core/images/full-screen-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<span class="tc-btn-text">
<$text text=" "/>
<$text text="edit in full screen"/>
</span>
</$list>
</$button>
</$navigator>
(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>';
};
})();
alert-background: #ffe476
alert-border: #b99e2f
alert-highlight: #881122
alert-muted-foreground: #b99e2f
background: #e7e1c7
blockquote-bar: <<colour muted-foreground>>
button-background:
button-foreground:
button-border:
code-background: #ffffdd
code-border: #e7e1c7
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: #5b5546
menubar-background: #494336
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: #a19b87
notification-background: #ffffdd
notification-border: #999999
page-background: #a19b87
pre-background: #ffffdd
pre-border: #e7e1c7
primary: #a87b23
selection-background:
selection-foreground:
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #990314
sidebar-foreground-shadow: rgba(161,155,135, 0.8)
sidebar-foreground: #373126
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #915f2c
sidebar-tab-background-selected: #b3ad97
sidebar-tab-background: #d6d0b7
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: #990e1a
site-title-foreground: <<colour tiddler-title-foreground>>
static-alert-foreground: #aaaaaa
tab-background-selected: #b3ad97
tab-background: #d6d0b7
tab-border-selected: #d6d0b7
tab-border: #c4bea7
tab-divider: #d6d0b7
tab-foreground-selected: <<colour tab-foreground>>
tab-foreground: #494336
table-border: #b3ad97
table-footer-background: #8f8976
table-header-background: #d6d0b7
tag-background: #ec6
tag-foreground: #f9f3d7
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #6c6656
tiddler-controls-foreground-selected: #494336
tiddler-controls-foreground: #b3ad97
tiddler-editor-background: #f8f8f8
tiddler-editor-border-image: #ffffff
tiddler-editor-border: #c4bea7
tiddler-editor-fields-even: #e7e1c7
tiddler-editor-fields-odd: #f9f3d7
tiddler-info-background: #f9f3d7
tiddler-info-border: #d6d0b7
tiddler-info-tab-background: #f9f3d7
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: #5a5342
tiddler-title-foreground: #3f2d17
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
wikilist-background: #e5e5e5
wikilist-item: #fff
wikilist-info: #000
wikilist-title: #666
wikilist-title-svg: <<colour wikilist-title>>
wikilist-url: #aaa
wikilist-button-open: #4fb82b
wikilist-button-open-hover: green
wikilist-button-reveal: #5778d8
wikilist-button-reveal-hover: blue
wikilist-button-remove: #d85778
wikilist-button-remove-hover: red
wikilist-toolbar-background: #d3d3d3
wikilist-toolbar-foreground: #888
wikilist-droplink-dragover: rgba(255,192,192,0.5)
wikilist-button-background: #acacac
wikilist-button-foreground: #000
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: #fff
pre-background: #f5f5f5
pre-border: #cccccc
primary: #5778d8
select-tag-background:
select-tag-foreground:
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: #f1f1f1
tiddler-border: #b1b1b1
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground: #cccccc
tiddler-editor-background: #eee
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: #00c
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
<script src='http://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.3.2/ckeditor.js'></script>
{
"tiddlers": {
"$:/bj/modules/widgets/edit.js": {
"text": "/*\\\ntitle: $:/bj/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\\*/\n\nif($tw.browser ) {\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ready = false;\n\nvar MIN_TEXT_AREA_HEIGHT = 100; // Minimum height of textareas in pixels\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditHtmlWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\nvar PLUSMODE = (typeof $tw.wiki.getTiddler(\"$:/language/Docs/Types/text/x-perimental\")!='undefined');\n\n/*\nInherit from the base widget class\n*/\nEditHtmlWidget.prototype = new Widget();\n\nEditHtmlWidget.prototype.postRender = function() {\n\tvar self = this,\n\t\tcm;\n\tvar toWiki = function(text) {\n\t\t//if($tw.browser) alert(\"in towiki \"+text)\n\n\t\t//BJ FIXME - in theory the attribs can be in any order, so this may fail as it is\n\t\tvar newtext = \"\";\n\n\t\t newtext = text.replace(/^<p><span class=\\\"verbatim\\\".*?>([^<]*)<\\/span><\\/p>/,\n\t\tfunction(m,key,offset,str){\n if (key.indexOf('<') != -1) {// we have caputure some formatting - !abort\n\t\t\t\t\treturn m;\n\t\t\t\t}\n\t\t\t\treturn $tw.utils.htmlDecode(key) + \"\\n<!-- verbatim -->\";\n\n\t\t});\n\t\tnewtext =\n\t\tnewtext.replace(/<p><span class=\\\"verbatim\\\".*?>([^<]*)<\\/span><\\/p>/g,\n\t\tfunction(m,key,offset,str){\n if (key.indexOf('<') != -1) {// we have caputure some formatting - !abort\n\t\t\t\t\treturn m;\n\t\t\t\t}\n\t\t\t\treturn \"\\n<!-- nl verb -->\"+$tw.utils.htmlDecode(key)+\"<!-- atim -->\";\n\n\t\t\t\n\t\t});\n\t\tnewtext = newtext.replace(/<span class=\\\"verbatim\\\".*?>([^<]*)<\\/span>/g,\n\t\t\tfunction(m,key,offset,str){\n\t\t\t\tif (key.indexOf('<')!=-1) {// we have caputure some formatting - !abort\n\t\t\t\t\treturn m;\n\t\t\t\t}\n\t\t\t\treturn \"<!-- verb -->\"+$tw.utils.htmlDecode(key)+\"<!-- atim -->\";\n\t\t\t});\n\t\treturn newtext;\n\t}\n\n\tif($tw.browser && window.CKEDITOR && this.editTag === \"textarea\") {\n\t\t\n\t\tvar ck =\"editor\"+ Math.random();\n\t\tthis.domNodes[0].firstChild.setAttribute(\"name\",ck);\n\t\tthis.domNodes[0].firstChild.setAttribute(\"id\",ck);\n\t\tvar config;\n\t\ttry {\n\t\t config = $tw.wiki.getTiddlerData(\"$:/plugins/bj/visualeditor/config.json\");\n\t\t} catch(e) {\n\t\t\talert(\"invalid config format\");\n\t\t\tconfig = [];\n\t\t}\n\t\tCKEDITOR.replace(ck, config);//,\n\n\t\tCKEDITOR.instances[ck].on('change', \n\t\t\tfunction() { \n\t\t\t\tif (PLUSMODE && self.edittype == 'text/x-perimental') {\n\t\t\t\t\tself.saveChanges(toWiki(CKEDITOR.instances[ck].getData()));\n\t\t\t\t} else {\n\t\t\t\t\tself.saveChanges(CKEDITOR.instances[ck].getData());\n\t\t\t\t} \n\t\t\t}\n\t\t);\n\t} \n};\n\nEditHtmlWidget.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\tvar fromWiki = function(text) {\n\t\tvar preAmble = '<span class=\"verbatim\">';\n\t\tvar index=1;\n\t\t//seperate the /define .../end section\n\t\ttext = text.split(\"<\\!-- verbatim -->\");\n\t\tif (text.length == 1) //no preamble defined\n\t\t\tindex = 0;\n\t\telse\n\t\t\ttext[0] = preAmble+$tw.utils.htmlEncode(text[0]) + '</span>'\n\t\ttext[index] = text[index].replace(/^<\\!-- nl verb -->([\\s\\S]*?)<\\!-- atim -->/mg,\n\t\tfunction(m,key,offset,str){//alert(key);\n\t\t\treturn '<p>' + preAmble+$tw.utils.htmlEncode(key)+'</span>'+'</p>';\n\t\t});//alert (\"newtext \"+text[index]);\n\t\ttext[index] = text[index].replace(/<\\!-- verb -->([\\s\\S]*?)<\\!-- atim -->/g,\n\t\tfunction(m,key,offset,str){//alert(key);\n\t\t\treturn preAmble+$tw.utils.htmlEncode(key)+'</span>';\n\t\t});\n\t\t//alert (\"newtext \"+text.join(\"\"));\n\t\treturn text.join(\"\");\n\t}\n\t// Create our element\n\tvar outerDomNode = this.document.createElement('div');\n\t\touterDomNode.className = \"tw-ckeditor-instance\";\n\tvar domNode = this.document.createElement(this.editTag);\n\n\tif(this.editPlaceholder) {\n\t\tdomNode.setAttribute(\"placeholder\",this.editPlaceholder);\n\t}\n\t// Assign classes\n\tif(this.editClass) {\n\t\tdomNode.className = this.editClass;\n\t}\n\t// Set the text\n\tvar editInfo = this.getEditInfo();\n\tif(this.editTag === \"textarea\") {\n\t\tif (PLUSMODE && this.edittype == 'text/x-perimental') {\n\t\t\tdomNode.appendChild(this.document.createTextNode(fromWiki(editInfo.value)));\n\t\t} else {\n\t\t\tdomNode.appendChild(this.document.createTextNode(editInfo.value));\n\t\t} \n\t} else {\n\t\talert(\"visual editor only works with textarea\")\n\t}\n outerDomNode.appendChild(domNode);\n\t// Insert the element into the DOM\n\tparent.insertBefore(outerDomNode,nextSibling);\n\tthis.domNodes.push(outerDomNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nGet the tiddler being edited and current value\n*/\nEditHtmlWidget.prototype.getEditInfo = function() {\n\t// Get the edit value\n\tvar self = this,\n\t\tvalue,\n\t\tupdate;\n\tif(this.editIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\tupdate = function(value) {\n\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t}\n\t\t};\n\t} else {\n\t\t// Get the current tiddler and the field name\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t} else {\n\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\tswitch(this.editField) {\n\t\t\t\tcase \"text\":\n\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"title\":\n\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = \"\";\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (this.editDefault !== undefined) {\n\t\t\t\tvalue = this.editDefault;\n\t\t\t}\n\t\t}\n\t\tupdate = function(value) {\n\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\tupdateFields = {\n\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t};\n\t\t\tupdateFields[self.editField] = value;\n\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t};\n\t}\n\treturn {value: value, update: update};\n};\n\nEditHtmlWidget.prototype.getAttribute = function () {\n\t//parameters are passed to parent so get them from there\n\treturn this.parentWidget.getAttribute.apply(this.parentWidget, arguments);\n}\n \nEditHtmlWidget.prototype.execute = function() {\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editDefault = this.getAttribute(\"default\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\tthis.onkeyupdate = this.getAttribute(\"onkeyupdate\",\"yes\"); \n\t// Get the content type of the thing we're editing\n\tthis.edittype = \"\";\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\tthis.edittype = tiddler.fields.type;\n\t\t}\n\t}\n\t// only textarea can be visually edited\n\tthis.editTag = \"textarea\"\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditHtmlWidget.prototype.refresh = function(changedTiddlers) {\n// attribute changes are caught by parent widget\n\tif(changedTiddlers[this.editTitle]) {\n\t\t//this.refreshSelf(); BJ maybe we don't like to have our edits pulled - this could be an option\n\t\t//return true;\n\t}\n\treturn false;\n};\n\n/*\nUpdate the editor with new text. This method is separate from updateEditorDomNode()\nso that subclasses can override updateEditor() and still use updateEditorDomNode()\n*/\nEditHtmlWidget.prototype.updateEditor = function(text) {\n\tthis.updateEditorDomNode(text);\n};\n\n/*\nUpdate the editor dom node with new text\n*/\nEditHtmlWidget.prototype.updateEditorDomNode = function(text) {\n\t// Replace the edit value if the tiddler we're editing has changed\n\tvar domNode = this.domNodes[0].firstChild;\n\tif(!domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.document.activeElement !== domNode) {\n\t\t\tdomNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\t//this.fixHeight();\n\t}\n};\n\n/*\nHandle a dom \"input\" event\n*/\nEditHtmlWidget.prototype.handleInputEvent = function(event) {\n\tthis.saveChanges(this.domNodes[0].firstChild.value);\n\t//this.fixHeight();\n\treturn true;\n};\n\nEditHtmlWidget.prototype.handleFocusEvent = function(event) {\n\tif(this.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0].firstChild,\n\t\t\ttitle: this.editFocusPopup,\n\t\t\twiki: this.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\nEditHtmlWidget.prototype.saveChanges = function(text) {\n\tvar editInfo = this.getEditInfo();\n\tif(text !== editInfo.value) {\n\t\teditInfo.update(text);\n\t}\n};\n\n$tw.utils.registerFileType(\"text/x-perimental\",\"utf8\",\".perimental\");\nexports[\"__!ckebase__\"] = EditHtmlWidget;//choose an unparseable name to make widget 'private'\n\n//-------------- base initialisation - ----------------\n\nvar startup = function () { //do after lib is loaded\n\tif (typeof CKEDITOR != 'undefined') {\n\t\tvar PLUSMODE = (typeof $tw.wiki.getTiddler(\"$:/language/Docs/Types/text/x-perimental\")!='undefined');\n\n\t\tvar sty;\n\t\ttry {\n\t\t sty=$tw.wiki.getTiddlerData(\"$:/plugins/bj/visualeditor/styles.json\");\n\t\t} catch(e){ \n\t\t\talert(\"invalid style format\");\n\t\t\tsty=[];\n\t\t}\n\t\tif (PLUSMODE) sty.push({ \"name\": \"verbatim\",\"element\": \"span\",\"attributes\": {\"class\": \"verbatim\"}});\n\n\t\tCKEDITOR.stylesSet.add( 'default',sty);\n\t\tif (PLUSMODE) CKEDITOR.addCss($tw.wiki.getTiddlerData(\"$:/plugins/bj/visualeditor/verbatim.json\").verbatim);\n\t\tCKEDITOR.on( 'instanceReady', function( ev ) {\n\t\t\tvar blockTags = ['div','h1','h2','h3','h4','h5','h6','p','pre','li','blockquote','ul','ol',\n\t\t\t\t\t\t\t'table','thead','tbody','tfoot','td','th',];\n\t\t\tvar rules = {\n\t\t\t\tindent : false,\n\t\t\t\tbreakBeforeOpen : true,\n\t\t\t\tbreakAfterOpen : false,\n\t\t\t\tbreakBeforeClose : false,\n\t\t\t\tbreakAfterClose : false\n\t\t\t};\n\n\t\t\tfor (var i=0; i<blockTags.length; i++) {\n\t\t\t\tev.editor.dataProcessor.writer.setRules( blockTags[i], rules );\n\t\t\t}\n\t\t});\n\n\t\t//BJ hide tw5 tags and macros from ckeditor\n\t\tCKEDITOR.config.protectedSource.push(/<\\/?\\$[^<]*\\/?>/g);\n\t\tCKEDITOR.config.protectedSource.push(/<<[^<]*>>/g);\n\t\t//CKEDITOR. config.protectedSource.push(/<\\?[\\s\\S]*?\\?>/g); // PHP Code\n\t\tCKEDITOR.config.protectedSource.push(/<code>[\\s\\S]*?<\\/code>/gi); // Code tags\n\t\tCKEDITOR.config.entities = false;\n\t}\n\n\tvar atiddler = $tw.wiki.getTiddler(\"$:/config/EditorTypeMappings/text/html\");\n\tif (atiddler == undefined) {\n\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),\n\t\t\t\t{title:\"$:/config/EditorTypeMappings/text/html\", text:\"html\"}));\n\t}\n\tatiddler = $tw.wiki.getTiddler(\"$:/config/EditorTypeMappings/text/x-perimental\");\n\tif (atiddler == undefined) {\t\n\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),\n\t\t\t\t\t{title:\"$:/config/EditorTypeMappings/text/x-perimental\", text:\"x-perimental\"}));\n\t}\n}\n\n//require(\"$:/plugins/bj/visualeditor/ckeditor.js\"); BJ -option to build in the lib?\n/*\ncreate lib loader \n*/\nif($tw.browser) {\n\tvar head = document.getElementsByTagName('head')[0];\n\tvar js = document.createElement(\"script\");\n\tjs.type = \"text/javascript\";\n\tjs.onload = function() { \n\t\t//do non-tree initialisation\n\t\tstartup();\n\t\tready = true;//BJ do this in startup\n\t\t//broadcast ready message\n\t\t$tw.wiki.setTextReference(\"$:/temp/ckeready\",\"ready\");\n\t}\n\tif (window.location.hostname == \"bjtools.tiddlyspot.com\") {\n\t\tjs.src = $tw.wiki.getTiddlerText(\"$:/plugin/bj/visualeditor/bjtools/lib\")||\"\";\n\t}\n\telse {\n\t\tvar tiddler = $tw.wiki.getTiddler(\"$:/plugin/bj/visualeditor/includelib\")||{fields:{}};\n\t\tvar src = (tiddler.fields.text)||\"\";\n\t\tjs.src = src.replace(/.*?<script.*?src=[\"'](.*?)[\"'][\\s\\S]*/,\"$1\");\n\t\tif (tiddler.fields.tags) {\n\t\t\tvar pos = tiddler.fields.tags.indexOf(\"$:/core/wiki/rawmarkup\");\n\t\t\tif(pos !== -1) {\n\t\t\t\talert(\"Please remove the tag $:/core/wiki/rawmarkup from tiddler $:/plugin/bj/visualeditor/includelib\")\n\t\t\t}\n\t\t}\n\t}\n\thead.appendChild(js);\n} \n//----------------base initialisation finished-----------------------------\n\nvar LoadWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n \nLoadWidget.prototype = new Widget();\n\n\n\nLoadWidget.prototype.getLoadingMessage = function() {\n\tvar message = \"<h2>loading ckeditor\",\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",message,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n \nLoadWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n\nLoadWidget.prototype.execute = function() {\n\n\tif (ready) {\n\t\t// insert the real widget\n\t\tthis.makeChildWidgets([{type: \"__!ckebase__\"}]);\n\t}\n\telse this.makeChildWidgets(this.getLoadingMessage());\n};\n\nLoadWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the 'lib is loaded' is indicated\n\t\tif(Object.keys(changedAttributes).length || changedTiddlers[\"$:/temp/ckeready\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nLoadWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tthis.invokeActions(this,event);\n\treturn true; // Action was invoked\n};\n\nexports[\"edit-html\"] = LoadWidget;\nexports[\"edit-x-perimental\"] = LoadWidget;\n})();\n}\n",
"title": "$:/bj/modules/widgets/edit.js",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/bj/visualeditor/styles.json": {
"type": "application/json",
"title": "$:/plugins/bj/visualeditor/styles.json",
"module-type": "library",
"text": "[\n\t{ \"name\": \"Blue Title\", \"element\": \"h3\", \"styles\": { \"color\": \"Blue\" } },\n\t{ \"name\": \"Red Title\", \"element\": \"h3\", \"styles\": { \"color\": \"Red\" } },\n\t{ \"name\": \"Marker: Yellow\",\t\"element\": \"span\", \"styles\": { \"background-color\": \"Yellow\"} },\n\t{ \"name\": \"Marker: Red\",\t\"element\": \"span\", \"styles\": { \"background-color\": \"Red\"} },\n\t{ \"name\": \"Marker: Green\",\t\"element\": \"span\", \"styles\": { \"background-color\": \"Lime\" } }\n]\n\n"
},
"$:/plugins/bj/visualeditor/config.json": {
"type": "application/json",
"title": "$:/plugins/bj/visualeditor/config.json",
"module-type": "library",
"text": "{\n\"removePlugins\":\"smiley,wsc,scayt,forms,save,preview,print\",\n\"customConfig\":\"\",\n\"language\" : \"en\",\n\"defaultLanguage\" : \"en\",\n\"contentsCss\" : \"\",\n\"disableNativeSpellChecker\" : false,\n\"resize_enabled\" : true,\n\"toolbarGroups\":[{ \"name\": \"clipboard\", \"groups\": [ \"clipboard\", \"undo\" ] },\n\t\t{ \"name\": \"editing\", \"groups\": [ \"find\", \"selection\", \"spellchecker\", \"editing\" ] },\n\t\t{ \"name\": \"links\", \"groups\": [ \"links\" ] },\n\t\t{ \"name\": \"insert\", \"groups\": [ \"insert\" ] },\n\t\t{ \"name\": \"forms\", \"groups\": [ \"forms\" ] },\n\t\t{ \"name\": \"tools\", \"groups\": [ \"tools\" ] },\n\t\t{ \"name\": \"document\", \"groups\": [ \"mode\", \"document\", \"doctools\" ] },\n\t\t{ \"name\": \"others\", \"groups\": [ \"others\" ] },\n\t\t{ \"name\": \"about\", \"groups\": [ \"about\" ] },\n\t\t{ \"name\": \"basicstyles\", \"groups\": [ \"basicstyles\", \"cleanup\" ] },\n\t\t{ \"name\": \"paragraph\", \"groups\": [ \"list\", \"indent\", \"blocks\", \"align\", \"bidi\", \"paragraph\" ] },\n\t\t{ \"name\": \"styles\", \"groups\": [ \"styles\" ] },\n\t\t{ \"name\": \"colors\", \"groups\": [ \"colors\" ] }\n\t] \n}\n"
},
"$:/plugins/bj/visualeditor/verbatim.json": {
"type": "application/json",
"title": "$:/plugins/bj/visualeditor/verbatim.json",
"module-type": "library",
"text": "{\n\"verbatim\":\".verbatim{background-color: red;border:2px solid;}\"\n}\n"
},
"$:/plugin/bj/visualeditor/includelib": {
"title": "$:/plugin/bj/visualeditor/includelib",
"description": "load the external lib",
"text": "<script src='http://127.0.0.1/libs/ckeditor/ckeditor.js'></script>\n\n"
},
"$:/plugin/bj/visualeditor/bjtools/lib": {
"title": "$:/plugin/bj/visualeditor/bjtools/lib",
"description": "load the external lib from web",
"text": "http://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.3.2/ckeditor.js\n"
},
"$:/plugins/bj/visualeditor/readme": {
"title": "$:/plugins/bj/visualeditor/readme",
"text": "!!!Basic Configuration\nThis plugin enables ckeditor to be used in a tiddlywiki. For the Ckeditor license see http://ckeditor.com/about/license\n\nckeditor can be used directly from the web, eg http://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.3.2/ckeditor.js\nor can be obtained directly from http://ckeditor.com/download\n\nNote that this plugin is designed to work with the ckeditor standard packages (but can be configured for custom packages).\n\nThe tiddler $:/plugin/bj/visualeditor/includelib\n\nneeds to contain the location of the ckeditor library. The default is\n\n```\nhttp://127.0.0.1/libs/ckeditor/ckeditor.js\n```\nchange to your location. Note that this can be an online location eg\n\n```\nhttp://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.3.2/ckeditor.js\n\n```\n\n!!!Advanced configuration\nConfiguration options as described on the ckeditor website can be set in the tiddler \n$:/plugins/bj/visualeditor/config.json\nUser styles (also described on the ckeditor website) are included in the tiddler \n$:/plugins/bj/visualeditor/styles.json\n"
},
"$:/language/Docs/Types/text/x-htmlp": {
"title": "$:/language/Docs/Types/text/x-htmlp",
"description": "ckeditor usage",
"name": "text/x-htmlp",
"group": "Text"
},
"$:/config/EditorTypeMappings/text/x-htmlp": {
"title": "$:/config/EditorTypeMappings/text/x-htmlp",
"text": "html"
}
}
}
.matched {background-color:#ffc;}
.tw-context {
border:0px solid #eee;background-color:#eee;
word-break: break-all; word-wrap: break-word;}
{
"tiddlers": {
"$:/plugins/danielo515/ContextPlugin/widgets/context.js": {
"created": "20140418153435777",
"creator": "danielo",
"modified": "20140530231943517",
"modifier": "danielo",
"module-type": "widget",
"title": "$:/plugins/danielo515/ContextPlugin/widgets/context.js",
"type": "application/javascript",
"text": "/*\\\\\ntitle: $:/core/modules/widgets/danielo/context-widget.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 Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar contextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\ncontextWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\ncontextWidget.prototype.render = function(parent,nextSibling) {\n // 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 \n if(this.term && this.term.length>3){\n \n this.createRegexp();\n var matches = this.executeRegexp();\n\t if(matches.length > 0){ \n this.domNode = this.document.createElement(this.element);\n this.domNode.className=\"tw-context\";\n this.composeResults( matches ); //this appends to domNode \n \t// Insert element\n \tparent.insertBefore(this.domNode,nextSibling);\n \tthis.renderChildren(this.domNode,null);\n\t \tthis.domNodes.push(this.domNode);\n }\n }\n\t\n};\n\n/*\nCompute the internal state of the widget\n*/\ncontextWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n this.matchedClass = this.getAttribute(\"matchClass\",\"matched\");\n\tthis.tiddler = this.getAttribute( \"tiddler\",this.getVariable(\"currentTiddler\") );\n this.term = this.getAttribute(\"term\",this.getAttribute(\"searchTerm\"));\n\tthis.contextLength = this.getAttribute(\"length\",50);\n this.before = this.getAttribute(\"before\",this.contextLength);\n this.after = this.getAttribute(\"after\",this.contextLength);\n this.maxMatches = this.getAttribute(\"maxMatches\",10);\n this.element = this.getAttribute(\"element\",\"pre\");\n\tthis.makeChildWidgets();\n};\n\n /*Create the regular expression*/\ncontextWidget.prototype.createRegexp = function()\n{\n var regString = \"(\\\\w+[\\\\s\\\\S]{0,#before#})?(#term#)([\\\\s\\\\S]{0,#after#}\\\\w+)?\";\n\n var regString = regString.replace(\"#before#\",this.before).replace(\"#term#\", $tw.utils.escapeRegExp(this.term) ) .replace(\"#after#\",this.after);\n this.regexp = new RegExp(regString,\"ig\");\n //console.log(regString);\n};\n/*\nexecute the regular expresion\n*/\ncontextWidget.prototype.executeRegexp = function()\n{\n var text = this.wiki.getTiddlerText(this.tiddler), match,results = new Array();\n while( (match = this.regexp.exec( text ) ) && (results.length < this.maxMatches) )\n { results.push(match) }\n //console.log(\"matches\",results);\n return results;\n};\n\n/*\ncompose the results\nmatches : array of match objects from regular expression execute\n*/\ncontextWidget.prototype.composeResults = function(matches){\n var result=[], self=this, node = this.domNode,\n dots = textNode(\"...\\n\"),\n span = matchedNode( this.term );\n\n for(var i=0; i < matches.length; i++){\n processMatch( matches[i] );\n }\n \n function processMatch(match){\n if( match.index !== 0) node.appendChild( dots.cloneNode(true) );\n for( var i=1;i<match.length;i++ ) {//match[0] full matched text (all groups together)\n if( match[i] ) {\n if ( match[i].toLowerCase() == self.term.toLowerCase() ) \n node.appendChild( match[i] == self.term ? span.cloneNode(true) : matchedNode( match[i] ) )\n else\n node.appendChild( textNode( match[i]) )\n }\n }\n if( match.index + match[0].length < match.input.length) node.appendChild( dots.cloneNode(true) );\n }\n \n function textNode(text){ return self.document.createTextNode(text) }\n function matchedNode(text) { \n var node = self.document.createElement(\"span\"); node.appendChild( textNode(text) ); node.className = self.matchedClass;\n return node }\n \n};\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\ncontextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.term || changedAttributes.length || changedAttributes.matchedClass) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n return this.refreshChildren(changedTiddlers);\n};\n\nexports.context = contextWidget;\n\n})();"
},
"$:/plugins/danielo515/ContextPlugin/visualizer": {
"title": "$:/plugins/danielo515/ContextPlugin/visualizer",
"tags": "$:/tags/SearchResults",
"caption": "Context",
"text": "<$list filter=\"[!is[system]search{$:/temp/search}sort[title]limit[250]]\">\r\n {{!!title||$:/core/ui/ListItemTemplate}}\r\n <$context term={{$:/temp/search}} />\r\n</$list>\r\n"
},
"$:/plugins/danielo515/ContextPlugin/Stylesheet/results": {
"created": "20140529162823729",
"tags": "$:/tags/Stylesheet contextPlugin",
"title": "$:/plugins/danielo515/ContextPlugin/Stylesheet/results",
"type": "text/css",
"text": ".matched{background-color:yellow}\n.tw-context {/*border:1px solid;\n /*word-break: break-all; word-wrap: break-word*/}"
},
"$:/plugins/danielo515/ContextPlugin/Caption": {
"created": "20140530174219263",
"tags": "contextPlugin",
"title": "$:/plugins/danielo515/ContextPlugin/Caption",
"type": "text/vnd.tiddlywiki",
"text": "Context search"
},
"Context Search": {
"caption": "{{$:/plugins/danielo515/ContextPlugin/Caption}}",
"created": "20140530173407542",
"tags": "$:/tags/AdvancedSearch",
"title": "Context Search",
"type": "text/vnd.tiddlywiki",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tw-search\"><$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/><$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\"> <$link to=\"\" class=\"btn-invisible\">{{$:/core/images/close-button}}</$link></$reveal></div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<div class=\"tw-search-results\">\n\n<<lingo Standard/Matches>>\n\n<$list filter=\"[!is[system]search{$:/temp/advancedsearch}sort[title]limit[250]]\">\n{{!!title||$:/core/ui/ListItemTemplate}}\n<$context term={{$:/temp/advancedsearch}}/>\n</$list>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/plugins/danielo515/ContextPlugin/readme": {
"title": "$:/plugins/danielo515/ContextPlugin/readme",
"text": "!Usage\n\nAfter installing the plugin you will have a new tab in [[$:/AdvancedSearch]] called [[Context Search]]. If you want this functionality in other places you will have to edit the desired tiddler yourself adding the ''context widget''. For more details about using the widget see the section below.\n\n!!Using the widget\n\nThe very basic usage of the widget is the following:\n\n```\r\n<$context term=\"lorem\"/>\r\n```\r\nWhich will render as:\r\n<$context term=\"lorem\"/>\n\nThe widgets will search inside the current tiddler by default. Because that you see the same content twice here. This example is not very useful. Other more meaningful would be:\n\n```\r\n<$list filter=\"[search{$:/temp/advancedsearch}sort[title]limit[250]]\">\r\n{{!!title||$:/core/ui/ListItemTemplate}}\r\n<$context term={{$:/temp/advancedsearch}}/>\r\n</$list>\r\n```\n\nThat will search for tiddlers containing the text specified in [[$:/temp/advancedsearch]] and will display a link to the matching tiddlers plus a preview of the matching content. Something very similar is used in [[Context Search]]. Below you can find a complete list of parameters and their default values.\n\n|! parameter |! description | !default |\r\n| term | The term you want to search ||\r\n| searchTerm | An alias for the previous one ||\r\n| tiddler | The tiddler's name to look into | current tiddler |\r\n| length | Number of context characters to show | 50 |\r\n| before | Number of characters before the matched term to show | the value of the length parameter |\r\n| after | Number of characters after the matched term to show | the value of the length parameter |\r\n| maxMatches | maximun number of matched elements to show. Incrementing this can cause several performance issues | 10 |\r\n| element | Node element to create. This element will contain the results of the search. If you want to style it its class is `tw-context` | `<pre>` |\r\n| matchClass | The css class to assign to the matched terms in the results. This is used to highlight the results | matched |\n\n!Customizing the output\r\nThere are not many ways to customize the output of this widget. You can specify ''what type of node you want to create'' to wrap the results (div,span...). The default is `<pre>`. This container is created with the class `tw-context` so you can easily apply styles to it. Something similar happens to the ''highlighted'' words. You can specify the name of the class to assign to it and also you can apply styles to that class.\n\nA very basic example of customization could be:\n\n# Create a tiddler, for example [[$/plugins/danielo515/context/css]]\r\n# Paste the following text or any css rule you want: \"\"\"\n\n<pre>\r\n.matched{background-color:yellow}\r\n.tw-context {\r\n border:1px solid blue;\r\n word-break: break-all; word-wrap: break-word;}\r\n</pre>\r\n\"\"\"\r\n# Tag it with `$:/tags/stylesheet`\r\n# Save the tiddler"
}
}
}
/*\\
title: $:/core/modules/widgets/danielo/context-widget.js
type: application/javascript
module-type: widget
Edit-text widget
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tc: false */
"use strict";
var Widget = require("$:/core/modules/widgets/widget.js").widget;
var contextWidget = function(parseTreeNode,options) {
this.initialise(parseTreeNode,options);
};
/*
Inherit from the base widget class
*/
contextWidget.prototype = new Widget();
/*
Render this widget into the DOM
*/
contextWidget.prototype.render = function(parent,nextSibling) {
// Save the parent dom node
this.parentDomNode = parent;
// Compute our attributes
this.computeAttributes();
// Execute our logic
this.execute();
if(this.term && this.term.length>3){
this.createRegexp();
var matches = this.executeRegexp();
if(matches.length > 0){
this.domNode = this.document.createElement(this.element);
this.domNode.className="tw-context";
this.composeResults( matches ); //this appends to domNode
// Insert element
parent.insertBefore(this.domNode,nextSibling);
this.renderChildren(this.domNode,null);
this.domNodes.push(this.domNode);
}
}
};
/*
Compute the internal state of the widget
*/
contextWidget.prototype.execute = function() {
// Get the parameters from the attributes
this.matchedClass = this.getAttribute("matchClass","matched");
this.tiddler = this.getAttribute( "tiddler",this.getVariable("currentTiddler") );
this.term = this.getAttribute("term",this.getAttribute("searchTerm"));
this.contextLength = this.getAttribute("length",50);
this.before = this.getAttribute("before",this.contextLength);
this.after = this.getAttribute("after",this.contextLength);
this.maxMatches = this.getAttribute("maxMatches",10);
this.element = this.getAttribute("element","pre");
this.makeChildWidgets();
};
/*Create the regular expression*/
contextWidget.prototype.createRegexp = function()
{
var regString = "(\\w+[\\s\\S]{0,#before#})?(#term#)([\\s\\S]{0,#after#}\\w+)?";
var regString = regString.replace("#before#",this.before).replace("#term#", $tw.utils.escapeRegExp(this.term) ) .replace("#after#",this.after);
this.regexp = new RegExp(regString,"ig");
//console.log(regString);
};
/*
execute the regular expresion
*/
contextWidget.prototype.executeRegexp = function()
{
var text = this.wiki.getTiddlerText(this.tiddler), match,results = new Array();
while( (match = this.regexp.exec( text ) ) && (results.length < this.maxMatches) )
{ results.push(match) }
//console.log("matches",results);
return results;
};
/*
compose the results
matches : array of match objects from regular expression execute
*/
contextWidget.prototype.composeResults = function(matches){
var result=[], self=this, node = this.domNode,
dots = textNode("...\n"),
span = matchedNode( this.term );
for(var i=0; i < matches.length; i++){
processMatch( matches[i] );
}
function processMatch(match){
if( match.index !== 0) node.appendChild( dots.cloneNode(true) );
for( var i=1;i<match.length;i++ ) {//match[0] full matched text (all groups together)
if( match[i] ) {
if ( match[i].toLowerCase() == self.term.toLowerCase() )
node.appendChild( match[i] == self.term ? span.cloneNode(true) : matchedNode( match[i] ) )
else
node.appendChild( textNode( match[i]) )
}
}
if( match.index + match[0].length < match.input.length) node.appendChild( dots.cloneNode(true) );
}
function textNode(text){ return self.document.createTextNode(text) }
function matchedNode(text) {
var node = self.document.createElement("span"); node.appendChild( textNode(text) ); node.className = self.matchedClass;
return node }
};
/*
Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
*/
contextWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
if(changedAttributes.tiddler || changedAttributes.term || changedAttributes.length || changedAttributes.matchedClass) {
this.refreshSelf();
return true;
}
return this.refreshChildren(changedTiddlers);
};
exports.context = contextWidget;
})();
{
"tiddlers": {
"$:/plugins/felixhayashi/hotzone/config.js": {
"title": "$:/plugins/felixhayashi/hotzone/config.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/hotzone/config.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.config={classNames:{storyRiver:\"tc-story-river\",tiddlerFrame:\"tc-tiddler-frame\",tiddlerTitle:\"tc-title\"},references:{userConfig:\"$:/config/hotzone/focusOffset\",focussedTiddlerStore:\"$:/temp/focussedTiddler\"},checkbackTime:$tw.utils.getAnimationDuration()}})();",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/hotzone/hotzone.js": {
"title": "$:/plugins/felixhayashi/hotzone/hotzone.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/hotzone/hotzone.js\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.name=\"hotzone\";exports.platforms=[\"browser\"];exports.after=[\"story\"];exports.synchronous=true;exports.startup=function(){var t=require(\"$:/plugins/felixhayashi/hotzone/config.js\").config;var e=null;var i=false;var r=document.getElementsByClassName(t.classNames.storyRiver)[0];var s=$tw.wiki.getTiddlerData(t.references.userConfig,{});var a=isNaN(parseInt(s.focusOffset))?150:parseInt(s.focusOffset);var n=function(e,i,r){if(!(e instanceof Element))return;if(!$tw.utils.hasClass(e,t.classNames.tiddlerFrame))return;var s=e.getElementsByClassName(t.classNames.tiddlerTitle)[0];if(s){var a=s.innerText||s.textContent;return a.trim()}};var o=function(t){if(!i){i=true;window.setTimeout(f,t||0)}};var l=function(e,i){$tw.wiki.addTiddler(new $tw.Tiddler({title:t.references.focussedTiddlerStore,text:e},$tw.wiki.getModificationFields()));if(i){var r=document.getElementsByClassName(\"hzone-focus\")[0];if(r){$tw.utils.removeClass(r,\"hzone-focus\")}$tw.utils.addClass(i,\"hzone-focus\")}};var f=function(){i=false;var s=$tw.wiki.getTiddler(\"$:/StoryList\");if(s&&s.fields.list.length){var o=null;var f=Number.MAX_VALUE;var d=r.children;var u=t.classNames.tiddlerFrame;for(var c=d.length;c--;){if($tw.utils.hasClass(d[c],u)){var v=d[c].getBoundingClientRect();var w=Math.min(Math.abs(a-v.top),Math.abs(a-v.bottom));if(w<f){o=d[c];f=w}}}var m=n(o);if(m!==e&&$tw.wiki.getTiddler(m)){e=m;l(e,o);return}}else if(e){e=\"\";l(e)}};var d=function(t){if(t[\"$:/HistoryList\"]){if(!$tw.wiki.tiddlerExists(\"$:/HistoryList\"))return;var e=$tw.wiki.getTiddler(\"$:/HistoryList\").fields[\"current-tiddler\"];var i=$tw.wiki.getTiddlerList(\"$:/StoryList\");var r=i.indexOf(e)>=0;if(!r)return;o($tw.utils.getAnimationDuration()+100)}else if(t[\"$:/StoryList\"]){o($tw.utils.getAnimationDuration()+100)}};var u=function(t){o(250)};$tw.wiki.addEventListener(\"change\",d);window.addEventListener(\"scroll\",u,false);u()}})();",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/hotzone/Configuration": {
"title": "$:/plugins/felixhayashi/hotzone/Configuration",
"text": "Please see the [[GitHub page|https://github.com/felixhayashi/TW5-HotZone]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n <tr>\n <th align=\"left\">Focus offset:</th>\n <td><$edit-text tiddler=\"$:/config/hotzone/focusOffset\" tag=\"input\" default=\"71px\" /></td>\n </tr>\n</table>"
},
"$:/temp/focussedTiddler": {
"title": "$:/temp/focussedTiddler"
},
"$:/plugins/felixhayashi/hotzone/License": {
"title": "$:/plugins/felixhayashi/hotzone/License",
"text": "This code is released under the BSD license. For the exact terms visit:\n\nhttps://github.com/felixhayashi/TW5-HotZone/blob/master/LICENSE"
},
"$:/plugins/felixhayashi/hotzone/Readme": {
"title": "$:/plugins/felixhayashi/hotzone/Readme",
"text": "Please visit the [[GitHub page|https://github.com/felixhayashi/TW5-HotZone]] for more information."
}
}
}
{
"tiddlers": {
"$:/plugins/felixhayashi/tiddlymap/layout": {
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline \n\nbody .tc-page-container-wrapper.tc-modal-displayed{-webkit-filter:inherit;-moz-filter:inherit;filter:inherit}body .tc-modal-wrapper{z-index:1010}body .tc-modal-wrapper .tc-modal-header svg{vertical-align:sub}body .tc-modal-wrapper .tc-modal-header h3{line-height:10px}body .tc-modal-wrapper .tc-modal-body{min-height:250px;max-height:70vh;padding-top:0px;padding-bottom:0px;overflow:auto}body .tc-modal-wrapper .tc-modal-footer{padding:8px}body .tc-modal-wrapper .tc-modal-footer .tmap-dialog-button{font-weight:bold}body .tc-modal-wrapper .tc-modal-footer .tmap-hidden-close-button{display:none}table.tmap-table tr:nth-child(odd),.tc-modal-body table.tmap-config-table tr:nth-child(odd){background-color:#F0F0F0}table.tmap-table tr:nth-child(even),.tc-modal-body table.tmap-config-table tr:nth-child(even){background-color:#FFFFFF}.tmap-save-canvas-preview{text-align:center}.tmap-save-canvas-preview img{background-color:white;border:1px solid lightgray;max-width:100%;max-height:100px}.tmap-list-separator{display:block;background-color:#efefef;margin:10px 0 5px 0;cursor:default;border-bottom:1px dotted gray;font-weight:bold;font-size:0.8em}.tmap-unicode-icon{width:1em;display:inline-block;text-align:center;color:black}html .tmap-link{color:#5778D8}html .tmap-link:hover{color:white;background:#5778D8}html .tmap-small-list,html .tmap-smaller-list,html .tmap-very-small-list{overflow:auto;min-height:2em;max-height:9em;display:block}html .tmap-smaller-list{max-height:7em}html .tmap-very-small-list{max-height:5empx}html .tc-tiddler-controls button.tmap-active-button svg{fill:#888888}html #tmap-node-filter-dialog #tmap-filter-tips{font-size:0.8em}html #tmap-node-filter-dialog textarea{height:100px;max-height:300px;overflow:auto;width:100%;font-size:11px;font-family:\"Courier New\", Courier, monospace}@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}){.tc-sidebar-scrollable .tmap-desktop-editor .tmap-widget:not(.tmap-fullscreen){display:none}}@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}){.tc-sidebar-scrollable .tmap-mobile-editor{display:none}.tc-modal-wrapper{z-index:1010}.tc-modal-wrapper .tc-modal{boder:1px solid #999999;left:calc(50% - 400px);width:802px}.tc-modal-wrapper .tc-modal-body{left:calc(50% - 400px);width:800px}}@-o-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@keyframes flash fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-o-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@keyframes flash fadeout-keyframes{0%{opacity:1}100%{opacity:0}}.tmap-config-widget{background:#F0F0F0;padding:5px;margin:5px 0;box-sizing:border-box;display:block}.tmap-config-widget .vis-network{display:none}.tmap-config-widget .vis-configuration-wrapper{width:100%}.tmap-config-widget .vis-configuration-wrapper .vis-config-rangeinput{height:inherit;margin-left:4px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item{width:100%;height:inherit;background:none;padding-left:0px;left:0}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item.tmap-vis-config-item-active .vis-config-label::after{content:\"(inherited)\";position:absolute;display:inline-block;margin-left:10px;-o-animation:fadein-keyframes 1s;-moz-animation:fadein-keyframes 1s;-webkit-animation:fadein-keyframes 1s;animation:fadein-keyframes 1s;content:\"✔\";color:green;font-weight:bold;font-size:15px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item button.tmap-config-item-reset{vertical-align:top;margin-left:5px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-range{width:150px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-range::-moz-range-track{width:150px !important}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-label{width:150px}.tmap-config-widget::after{clear:both;content:\"\";display:block}.tmap-flash-message{border:1px solid lightgray;padding:5px;margin:6px 0;display:block;color:#333333}.tmap-flash-message.tmap-info,.tmap-flash-message.tmap-plain,.tmap-flash-message.tmap-neutral{background:#F0F0F0}.tmap-flash-message.tmap-info::before,.tmap-flash-message.tmap-plain::before,.tmap-flash-message.tmap-neutral::before{content:\"i\";display:inline-block;border-radius:50%;width:0.8em;border:2px solid;font-family:serif;text-align:center;height:0.8em;font-weight:bold;line-height:0.8em;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-valid,.tmap-flash-message.tmap-success{background:#D1EED4}.tmap-flash-message.tmap-valid::before,.tmap-flash-message.tmap-success::before{content:\"i\";display:inline-block;border-radius:50%;width:0.8em;border:2px solid;font-family:serif;text-align:center;height:0.8em;font-weight:bold;line-height:0.8em;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-warning{background:#FFF6D1}.tmap-flash-message.tmap-warning::before{content:\"\";display:inline-block;background:url(<<tmap \"datauri\" \"$:/core/images/warning\" \"\">>);display:inline-block;width:1em;height:1em;background-size:100% 100%;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-malformed,.tmap-flash-message.tmap-invalid,.tmap-flash-message.tmap-danger{background:#EED5D1}.tmap-flash-message.tmap-malformed::before,.tmap-flash-message.tmap-invalid::before,.tmap-flash-message.tmap-danger::before{content:\"\";display:inline-block;background:url(<<tmap \"datauri\" \"$:/core/images/warning\" \"\">>);display:inline-block;width:1em;height:1em;background-size:100% 100%;vertical-align:text-top;margin-right:2px}.tmap-widget{background:#FFFFFF;width:auto;position:relative;border:1px dotted lightgray;padding:2px;color:#666;display:block}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active){cursor:pointer}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active) .vis-navigation{display:none}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active):hover:before{color:gray;background:white;content:\"Click to use\";font-size:14px;font-weight:bold;right:calc(50% - 65px - 5px);position:absolute;text-align:center;top:calc(50% - 14px - 5px);width:130px;z-index:2000;padding:5px;pointer-events:none;background-color:rgba(255,255,255,0.3)}.tmap-widget .tmap-loading-bar{display:none;position:absolute;text-align:center;font-size:2em;padding:10px;top:50%;background:rgba(245,245,245,0.5);z-index:1;width:250px;margin:auto;left:0px;right:0px}.tmap-widget .tmap-vis-graph{height:calc(100% - 35px)}.tmap-widget.tmap-no-buttons .vis-navigation{display:none}.tmap-widget.tmap-advanced-editor .tmap-topbar{background:#d6d9d8}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-active-button{color:#488DCD}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-active-button svg{fill:#488DCD}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-unicode-button{font-size:1.5em;vertical-align:bottom;height:28px;fill:#555555}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-unicode-button svg{vertical-align:baseline}.tmap-widget .tmap-menu-bar{width:100%}.tmap-widget .tmap-topbar{background:#F5F5F5;border-bottom:1px solid lightgray;padding:3px 5px;height:35px;position:relative}.tmap-widget .tmap-topbar .tmap-view-label{width:100%;text-align:center;font-weight:bold;padding-top:3px}.tmap-widget .tmap-topbar .tmap-focus-button{position:absolute;right:10px;top:6px}.tmap-widget .tmap-topbar .tmap-focus-button input{width:140px}.tmap-widget .tmap-topbar .tmap-search-dropdown{position:relative}.tmap-widget .tmap-topbar .tmap-search-dropdown .tc-drop-down{position:absolute;z-index:999;right:0px}.tmap-widget .tmap-topbar [hidden]{display:none}.tmap-widget .tmap-topbar select{width:30%;max-width:200px;word-wrap:initial;padding:0px;height:28px}.tmap-widget .tmap-topbar button{line-height:inherit;color:#666}.tmap-widget .tmap-topbar>*{display:inline-block}.tmap-widget .tmap-topbar .tmap-separator:after{color:#bdbdbd;margin:3px;content:\" | \"}.tmap-widget .tmap-topbar .tc-edit-add-tag .tc-add-tag-name input{width:70%}.tmap-widget .tmap-topbar .tc-sidebar-header{text-shadow:none}.tmap-widget .tmap-topbar .tc-edit-tags{border:none;padding:inherit;box-shadow:none}.tmap-widget.tmap-static-mode .tmap-topbar{height:initial}.tmap-widget.tmap-static-mode .tmap-vis-graph{text-align:center;cursor:not-allowed}.tmap-widget.tmap-static-mode .tmap-vis-graph:not(.tmap-graph-placeholder):hover::before{box-shadow:10px 10px 5px lightgray;color:gray;background:white;content:\"Static\";font-size:18px;font-weight:bold;left:50%;margin-left:-100px;position:absolute;text-align:center;top:50px;width:200px;z-index:2000;padding:5px;pointer-events:none}.tmap-widget.tmap-static-mode .tmap-vis-graph.tmap-graph-placeholder::before{content:\"No Preview\";display:block;text-align:center;padding:20px}.tmap-widget .tc-drop-down{min-width:170px;padding:5px;margin:5px 0}.tmap-widget .tc-drop-down button,.tmap-widget .tc-drop-down a{padding:0 2px;text-decoration:none}.tmap-widget .tc-drop-down button:hover,.tmap-widget .tc-drop-down a:hover{color:#ffffff}.tmap-widget .tc-drop-down button svg,.tmap-widget .tc-drop-down a svg{vertical-align:middle}.tmap-widget .tc-block-dropdown{width:370px;min-width:370px;padding:5px;margin:15px 0 0 -370px}.tmap-widget .tc-block-dropdown a{display:inline;padding:0px}.tmap-widget.tmap-plain-design{border:none;padding:0px}.tmap-widget.tmap-plain-design .tmap-topbar{display:none}.tc-sidebar-scrollable .tmap-widget{position:absolute;min-height:350px}.tmap-widget div.vis-network .vis-edit-mode{height:26px}.tmap-widget div.vis-network .vis-manipulation{height:34px;border-top:1px solid #d6d9d8;background:rgba(245,245,245,0.7)}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled{right:15px}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled.tmap-fullscreen-button{bottom:90px;background-image:url(<<tmap \"datauri\" \"$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png\" \"\">>)}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled.tmap-halfscreen-button{bottom:130px;background-image:url(<<tmap \"datauri\" \"$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png\" \"\">>)}.tmap-widget div.vis-network .vis-navigation .vis-button:hover{box-shadow:0 0 3px 3px rgba(75,75,75,0.3)}.tmap-widget div.vis-network .vis-navigation .vis-button:hover:before{background:beige;display:block;color:black;padding:3px;position:relative;border:1px solid lightgray;width:80px;left:-100px;top:-50px;z-index:1000;text-align:center}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-up:before{left:30px;content:\"Scroll up\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-down:before{left:30px;content:\"Scroll down\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-right:before{left:30px;content:\"Scroll right\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-left:before{left:30px;content:\"Scroll left\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomOut:before{content:\"Zoom out\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomIn:before{content:\"Zoom in\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomExtends:before{content:\"Fit whole graph\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.tmap-fullscreen-button:before{content:\"Toggle Fullscreen\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.tmap-halfscreen-button:before{content:\"Toggle Halfscreen\"}.tc-dropzone>.tc-story-river .tmap-widget .vis-navigation .tmap-halfscreen-button{display:none}.tc-dropzone>.tc-story-river .tmap-widget:not(.tmap-fullscreen) .vis-navigation .vis-button{display:none}.tc-dropzone>.tc-story-river .tmap-widget:hover .vis-navigation .vis-button.tmap-fullscreen-button{display:block}.tc-dropzone>.tc-story-river .tmap-widget:hover .vis-navigation .vis-button.vis-zoomExtends{display:block}body.tmap-has-fullscreen-widget{overflow:hidden}body.tmap-has-fullscreen-widget .tmap-widget.tmap-fullscreen{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important}body.tmap-has-fullscreen-widget .tc-dropzone>*.tmap-has-fullscreen-widget{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important}body.tmap-has-fullscreen-widget .tc-dropzone>*:not(.tmap-has-fullscreen-widget){display:none}body.tmap-has-halfscreen-widget .tmap-widget.tmap-halfscreen{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important;position:absolute !important;border-left:1px solid lightgray !important}.tc-modal-footer .tmap-hidden-close-button{display:none}.tmap-modal-content{position:relative;padding:1em 0;padding-top:0}.tmap-modal-content table tr td{vertical-align:top}.tmap-modal-content :not(pre)>code{padding:1px;font-size:0.9em;position:relative;top:-1px}.tmap-modal-content :not(pre)>code{color:#666}.tmap-modal-content .tc-tab-set .tc-tab-content{margin-top:0.5em}.tmap-modal-content .tc-image-button{font-size:14px}.tmap-modal-content fieldset{margin:0px}.tmap-modal-content fieldset legend{font-weight:bold}.tc-modal-body .tmap-modal-editor>p{margin:0px}.tc-modal-body .tmap-modal-editor .tmap-template-select select{width:50%}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame{margin:auto;width:auto}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame .tc-tiddler-controls{display:none}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame .tc-tiddler-title{display:none}.tc-modal-body table{margin:6px 0;border:none;width:100%}.tc-modal-body table td,.tc-modal-body table th{border:1px solid lightgray}.tc-modal-body table.tmap-key-value-table th{width:30%;background-color:#F0F0F0}.tc-modal-body table.tmap-config-table.tmap-large-input tr td:last-child{width:20%}.tc-modal-body table.tmap-config-table.tmap-small-input tr td:last-child{width:60%}.tc-modal-body table.tmap-config-table tr td{border:none;vertical-align:top;padding:5px}.tc-modal-body table.tmap-config-table tr td:first-child{width:15%}.tc-modal-body table.tmap-config-table tr td:last-child{width:40%}.tc-modal-body table.tmap-config-table tr td input:not([type=radio]),.tc-modal-body table.tmap-config-table tr td textarea,.tc-modal-body table.tmap-config-table tr td select{width:100%;word-wrap:normal}.tc-modal-body table.tmap-config-table tr td textarea{height:100%}.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch input,.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch textarea,.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch select{width:auto}.tc-modal-body table.tmap-config-table tr td div.tmap-button-wrapper{text-align:center}.tc-modal-body table.tmap-config-table tr td .tmap-note{margin-top:0.5em}.tc-modal-body table.tmap-config-table tr td .tmap-description{font-style:italic}#tmap-element-type-manager>div:first-child{height:50vh;float:left;width:21%;background:linear-gradient(90deg, #f5f5f5 0%, #fff 50%)}#tmap-element-type-manager>div:first-child .tmap-searchbar{padding:1em 0 0 0}#tmap-element-type-manager>div:first-child .tmap-searchbar input{width:calc(100% - 36px)}#tmap-element-type-manager>div:first-child .tmap-searchbar button{width:30px;float:right}#tmap-element-type-manager>div:first-child ul{height:calc(100% - 65px);overflow:auto;margin-top:1em;padding:0}#tmap-element-type-manager>div:first-child ul.no-bullets li{list-style:none}#tmap-element-type-manager>div:first-child ul li{white-space:nowrap}#tmap-element-type-manager>div:first-child ul li .tmap-ranking{width:30px;display:inline-block}#tmap-element-type-manager>div:last-child{height:100%;width:calc(79% - 15px);float:right}#tmap-element-type-manager>div:last-child .tc-tab-set .tc-tab-content{overflow:auto;height:50vh}.tmap-manage-node-types .tmap-edge-type-specific{display:none !important}.tmap-manage-edge-types .tmap-node-type-specific{display:none !important}.tmap-modal-fullscreen-editor .tc-tab-content p{margin:1em 0}.tmap-has-pending-template{background-color:#C1EDC4}#tmap-search-table td{border:none;padding-left:0px}#tmap-search-table td:first-child{width:30px}#tmap-search-table b{display:inline-block;width:40px;text-align:right}#tmap-search-table ul{padding-left:20px;margin:1em 0 0 0}#tmap-search-table ul li{list-style:inherit}#tmap-search-table ul button{text-align:left}button.tmap-go-back{margin-bottom:1em;font-weight:bold}.tmap-badges>span,.tmap-badge{background:gray;font-size:11px;color:white;padding:3px 4px;display:inline-block;font-weight:bold;border-radius:2px;line-height:1em;cursor:help}.tmap-badges>span.tmap-red-flag,.tmap-badge.tmap-red-flag{background:red}.tmap-popup{display:none;position:absolute;opacity:0;transition:opacity 0.3s ease}.tmap-popup.tmap-popup-active{opacity:1}.tmap-tooltip{box-shadow:3px 3px 10px rgba(0,0,0,0.2);min-width:100px;min-height:50px;max-width:<<tmap option config.sys.popups.width>>;max-height:<<tmap option config.sys.popups.height>>;padding:5px;resize:both;overflow:auto;cursor:auto;font-family:verdana;font-size:14px;background-color:#f5f4ed;border:1px solid #808074;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.tmap-tooltip[style*=\"height\"]{max-height:none !important}.tmap-tooltip[style*=\"width\"]{max-width:none !important}.tmap-quick-connect{font-size:0.7em}.tmap-quick-connect p{padding-left:0;padding-right:0}.tmap-quick-connect .tc-drop-down{padding:5px;width:250px;white-space:normal;line-height:1em;position:absolute;z-index:1000;right:50px;background:linear-gradient(45deg, #f5f5f5 0%, #fff 50%, #f5f5f5 100%)}.tmap-quick-connect .tc-drop-down:first-child{padding-top:0;margin-top:0}.tmap-quick-connect .tc-drop-down .title{margin:1.5em 0 0.5em 0;font-weight:bold;color:gray}.tmap-quick-connect .tc-drop-down select{width:80px;word-wrap:initial}.tmap-quick-connect .tc-drop-down table{width:100%;border:none;margin:0.5em 0}.tmap-quick-connect .tc-drop-down table td,.tmap-quick-connect .tc-drop-down table th{padding:3px 3px 3px 0;vertical-align:middle;font-weight:normal;border:none}.tmap-quick-connect .tc-drop-down table td table,.tmap-quick-connect .tc-drop-down table th table{margin:0}.tmap-quick-connect .tc-drop-down .tmap-quick-connect-search-bar,.tmap-quick-connect .tc-drop-down .tmap-quick-connect-existing-bar{background:#F1F1F1;margin-top:0;border-bottom:1px solid #D5D5D5;border-top:1px solid #D5D5D5}.tmap-quick-connect .tc-drop-down table.tmap-quick-connect-search-bar td,.tmap-quick-connect .tc-drop-down th{padding:5px}.tmap-quick-connect .tc-drop-down .tmap-quick-connect-existing-bar{padding:5px}.tmap-quick-connect .tc-drop-down .tmap-connection-table th,.tmap-quick-connect .tc-drop-down .tmap-connection-table td{text-align:left;padding:1px 1px 1px 0}.tmap-quick-connect .tc-drop-down .tmap-connection-table button{width:20px;padding:0px}.tmap-quick-connect .tc-drop-down .tmap-scroll-table{height:120px;overflow:auto;display:block}.tmap-quick-connect .tc-drop-down hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3)}.tmap-quick-connect .tc-drop-down a{display:inline;padding:0;color:#5778d8;background:transparent}.tmap-quick-connect .tc-drop-down a:hover{background:transparent;color:#5778d8;text-decoration:underline}.tmap-quick-connect .tc-drop-down button{display:inline-block;padding:0px 3px;text-align:center;color:#333333;line-height:1.0}.tmap-quick-connect .tc-drop-down button:hover{color:#ffffff}.tmap-quick-connect .tc-drop-down button svg{fill:inherit}.tmap-quick-connect .tc-drop-down button svg:hover{fill:#ffffff}\n",
"title": "$:/plugins/felixhayashi/tiddlymap/layout",
"type": "text/vnd.tiddlywiki",
"tags": [
"$:/tags/Stylesheet"
]
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var i=r[t];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(r,t,i){if(t)e(r.prototype,t);if(i)e(r,i);return r}}();/* @preserve TW-Guard */ /* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}var AbstractEdgeTypeSubscriber=function(){function e(r){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},i=t.priority,n=i===undefined?0:i,a=t.skipOthers,s=a===undefined?true:a,u=t.ignore,l=u===undefined?false:u;_classCallCheck(this,e);this.allEdgeTypes=r;this.priority=n;this.skipOthers=s;this.ignore=l}_createClass(e,[{key:\"setTracker\",value:function e(r){this.tracker=r}},{key:\"loadEdges\",value:function e(r,t,i){throw new _exception.MissingOverrideError(this,\"loadEdges\")}},{key:\"canHandle\",value:function e(r){throw new _exception.MissingOverrideError(this,\"canHandle\")}},{key:\"insertEdge\",value:function e(r,t,i){}},{key:\"deleteEdge\",value:function e(r,t,i){}}]);return e}();exports.default=AbstractEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var i=r[t];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(r,t,i){if(t)e(r.prototype,t);if(i)e(r,i);return r}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,r){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return r&&(typeof r===\"object\"||typeof r===\"function\")?r:e}function _inherits(e,r){if(typeof r!==\"function\"&&r!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof r)}e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(r)Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var AbstractMagicEdgeTypeSubscriber=function(e){_inherits(r,e);function r(e,t){_classCallCheck(this,r);var i=_possibleConstructorReturn(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));i.edgeTypesByFieldName=_utils2.default.makeHashMap();for(var a in e){var n=e[a];if(i.canHandle(n)){i.edgeTypesByFieldName[n.name]=n}}return i}_createClass(r,[{key:\"getReferencesFromField\",value:function e(r,t,i){throw new _exception.MissingOverrideError(this,\"getReferencesFromField\")}},{key:\"getReferences\",value:function e(r,t,i){var a=_utils2.default.makeHashMap();var n=r.fields;for(var s in n){var u=this.edgeTypesByFieldName[s];if(!u||i&&!i[u.id])continue;var o=this.getReferencesFromField(r,s,t);if(o&&o.length){a[u.id]=o}}return a}}]);return r}(_AbstractRefEdgeTypeSubscriber2.default);exports.default=AbstractMagicEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractMagicEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _AbstractEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\");var _AbstractEdgeTypeSubscriber2=_interopRequireDefault(_AbstractEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var AbstractRefEdgeTypeSubscriber=function(e){_inherits(t,e);function t(){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}_createClass(t,[{key:\"loadEdges\",value:function e(t,r,i){var a=this.getReferences(t,r,i);if(!a||!_utils2.default.hasElements(a))return;var s=t.fields[\"tmap.id\"];var n=$tm.tracker.getIdsByTiddlers();var u=this.allEdgeTypes;var l=_utils2.default.getTiddlerRef(t);var o=_utils2.default.makeHashMap();for(var f in a){var c=a[f];if(!c){continue}var p=u[f];for(var d=c.length;d--;){var _=c[d];if(!_||!$tw.wiki.tiddlerExists(_)||_utils2.default.isSystemOrDraft(_)||r&&!r[_]){continue}var b=p.id+$tw.utils.hashString(l+_);o[b]=new _Edge2.default(s,n[_],p.id,b)}}return o}},{key:\"getReferences\",value:function e(t,r,i){throw new _exception.MissingOverrideError(this,\"getReferences\")}}]);return t}(_AbstractEdgeTypeSubscriber2.default);exports.default=AbstractRefEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractRefEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var s=r[t];s.enumerable=s.enumerable||false;s.configurable=true;if(\"value\"in s)s.writable=true;Object.defineProperty(e,s.key,s)}}return function(r,t,s){if(t)e(r.prototype,t);if(s)e(r,s);return r}}();function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeTypeSubscriberRegistry=function(){function e(r,t,s){_classCallCheck(this,e);this.subscriberClasses=r;this.tracker=s;this.updateIndex(t)}_createClass(e,[{key:\"getAllForType\",value:function e(r){var t=this.allSubscribers;var s=[];for(var i=0,a=t.length;i<a;i++){if(t[i].canHandle(r)){s.push(t[i]);if(t[i].skipOthers){break}}}return s}},{key:\"getAll\",value:function e(){return this.allSubscribers}},{key:\"updateIndex\",value:function e(r){var t=[];var s=this.subscriberClasses;for(var i in s){var a=new s[i](r);a.setTracker(this.tracker);if(a.ignore===true){continue}t.push(a)}t.sort(function(e,r){return r.priority-e.priority});this.allSubscribers=t}}]);return e}();exports.default=EdgeTypeSubscriberRegistry;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/EdgeTypeSubscriberRegistry.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.TmapEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _AbstractEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\");var _AbstractEdgeTypeSubscriber2=_interopRequireDefault(_AbstractEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TmapEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:0},r)))}_createClass(t,[{key:\"loadEdges\",value:function e(t,r,i){var a=_utils2.default.parseFieldData(t,\"tmap.edges\");if(!a){return}var n=this.tracker.getTiddlersByIds();var u=t.fields[\"tmap.id\"];var s=_utils2.default.makeHashMap();for(var l in a){var o=a[l];var d=n[o.to];if(d&&(!r||r[d])&&(!i||i[o.type])){s[l]=new _Edge2.default(u,o.to,o.type,l)}}return s}},{key:\"insertEdge\",value:function e(t,r,i){var a=_utils2.default.parseFieldData(t,\"tmap.edges\",{});r.id=r.id||_utils2.default.genUUID();a[r.id]={to:r.to,type:i.id};_utils2.default.writeFieldData(t,\"tmap.edges\",a,$tm.config.sys.jsonIndentation);return r}},{key:\"deleteEdge\",value:function e(t,r,i){if(!r.id)return;var a=_utils2.default.parseFieldData(t,\"tmap.edges\",{});delete a[r.id];_utils2.default.writeFieldData(t,\"tmap.edges\",a,$tm.config.sys.jsonIndentation);return r}},{key:\"canHandle\",value:function e(t){return true}}]);return t}(_AbstractEdgeTypeSubscriber2.default);exports.TmapEdgeTypeSubscriber=TmapEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/TmapEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.FieldEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var FieldEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-field\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){return[t.fields[r]]}},{key:\"insertEdge\",value:function e(t,r,i){var n=this.tracker.getTiddlerById(r.to);if(n==null){return}_utils2.default.setField(t,i.name,n);return r}},{key:\"deleteEdge\",value:function e(t,r,i){var n=this.tracker.getTiddlerById(r.to);if(n==null){return}_utils2.default.setField(t,i.name,undefined);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.FieldEdgeTypeSubscriber=FieldEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/FieldEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.FilterEdgeTypeSubstriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);var _widget=require(\"$:/core/modules/widgets/widget.js\");var _widget2=_interopRequireDefault(_widget);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var FilterEdgeTypeSubstriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-filter\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){var n=t.fields[r];var a=new _widget2.default.widget({});a.setVariable(\"currentTiddler\",t.fields.title);var u=new _widget2.default.widget({},{parentWidget:a});var s=_utils2.default.getMatches(n,i,u);return s}},{key:\"insertEdge\",value:function e(t,r,i){if(!r.to){return}var n=i.name;var a=t.fields[n]||\"\";var u=this.tracker.getTiddlerById(r.to);var s=$tw.utils.stringifyList([u]);if(a.length>0){s=\" \"+s}_utils2.default.setField(t,n,a+s);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.FilterEdgeTypeSubstriber=FilterEdgeTypeSubstriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/FilterEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.ListEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var ListEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-list\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){return $tw.utils.parseStringArray(t.fields[r])}},{key:\"insertEdge\",value:function e(t,r,i){if(!r.to){return}var n=i.name;var s=$tw.utils.parseStringArray(t.fields[n]);s=(s||[]).slice();var a=this.tracker.getTiddlerById(r.to);s.push(a);_utils2.default.setField(t,n,$tw.utils.stringifyList(s));return r}},{key:\"deleteEdge\",value:function e(t,r,i){var n=$tw.utils.parseStringArray(t.fields[i.name]);n=(n||[]).slice();var s=this.tracker.getTiddlerById(r.to);var a=n.indexOf(s);if(a>-1){n.splice(a,1)}var u=void 0;if(n.length>0){u=$tw.utils.stringifyList(n)}_utils2.default.setField(t,i.name,u);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.ListEdgeTypeSubscriber=ListEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/ListEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.LinkEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var LinkEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:20},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.id===\"tw-body:link\"}},{key:\"getReferences\",value:function e(t,r,n){if(n&&!n[\"tw-body:link\"]){return}var i=$tw.wiki.getTiddlerLinks(t.fields.title);if(!i||!i.length){return}return{\"tw-body:link\":i}}}]);return t}(_AbstractRefEdgeTypeSubscriber2.default);exports.LinkEdgeTypeSubscriber=LinkEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/refEdgeTypeSubscriber/LinkEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.TranscludeEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t){if(Object.prototype.hasOwnProperty.call(t,n)){e[n]=t[n]}}}return e};var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(r,t,n){if(t)e(r.prototype,t);if(n)e(r,n);return r}}();var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,r){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return r&&(typeof r===\"object\"||typeof r===\"function\")?r:e}function _inherits(e,r){if(typeof r!==\"function\"&&r!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof r)}e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(r)Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TranscludeEdgeTypeSubscriber=function(e){_inherits(r,e);function r(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,r);return _possibleConstructorReturn(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,_extends({priority:20,ignore:typeof $tw.wiki.getTiddlerTranscludes!==\"function\"},t)))}_createClass(r,[{key:\"canHandle\",value:function e(r){return r.id===\"tw-body:transclude\"}},{key:\"getReferences\",value:function e(r,t,n){if(n&&!n[\"tw-body:transclude\"]){return}var i=$tw.wiki.getTiddlerTranscludes(r.fields.title);if(!i||!i.length){return}return{\"tw-body:transclude\":i}}}]);return r}(_AbstractRefEdgeTypeSubscriber2.default);exports.TranscludeEdgeTypeSubscriber=TranscludeEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/refEdgeTypeSubscriber/TranscludeEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/Edge": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Edge",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Edge\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var Edge=function e(t,i,s,l){_classCallCheck(this,e);this.from=t;this.to=i;this.type=s;this.id=l||_utils2.default.genUUID()};exports.default=Edge;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/Edge.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/EdgeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/EdgeType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _MapElementType2=require(\"$:/plugins/felixhayashi/tiddlymap/js/MapElementType\");var _MapElementType3=_interopRequireDefault(_MapElementType2);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/EdgeType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeType=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);var n=t.getIdParts(e),o=n.marker,a=n.namespace,i=n.name;e=t.getId(o,a,i);var l=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,env.path.edgeTypes,t.fieldMeta,r));l.id=e;l.marker=o;l.name=i;l.namespace=a;var u=(l.style||{}).arrows;if(u){l.invertedArrow=isArrowEnabled(u,\"from\");l.toArrow=isArrowEnabled(u,\"to\")||isArrowEnabled(u,\"middle\");l.biArrow=l.invertedArrow===l.toArrow;if(l.biArrow){l.toArrow=true;l.invertedArrow=true}}else{l.toArrow=true}Object.freeze(l);return l}_createClass(t,[{key:\"getLabel\",value:function e(){return this.label||this.name}}],[{key:\"getIdParts\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";t=_utils2.default.getWithoutPrefix(t,env.path.edgeTypes+\"/\");var r=t.match(edgeTypeRegex)||[];return{marker:r[1]||\"\",namespace:r[3]&&r[2]||\"\",name:r[3]||r[2]||\"\"}}},{key:\"getId\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";var n=arguments[2];return n?t+(r&&r+\":\")+n:\"tmap:unknown\"}}]);return t}(_MapElementType3.default);EdgeType.getInstance=function(e){return e instanceof EdgeType?e:new EdgeType(e)};EdgeType.fieldMeta=_extends({},_MapElementType3.default.fieldMeta,{label:{},\"show-label\":{}});var isArrowEnabled=function e(t,r){var n=t[r];if(n==null&&r===\"to\"){return true}return(typeof n===\"undefined\"?\"undefined\":_typeof(n))===\"object\"?n.enabled!==false:n===true};var edgeTypeRegex=new RegExp(\"^(_?)([^:_][^:]*):?([^:]*)\");exports.default=EdgeType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/EdgeType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/MapElementType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/MapElementType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol===\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};var _createClass=function(){function t(t,e){for(var i=0;i<e.length;i++){var l=e[i];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(t,l.key,l)}}return function(e,i,l){if(i)t(e.prototype,i);if(l)t(e,l);return e}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/MapElementType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _classCallCheck(t,e){if(!(t instanceof e)){throw new TypeError(\"Cannot call a class as a function\")}}var MapElementType=function(){function t(e,i,l,s){_classCallCheck(this,t);this.id=e;this.root=i;this._fieldMeta=l;this.fullPath=this.root+\"/\"+this.id;this.isShipped=$tw.wiki.getSubTiddler($tm.path.pluginRoot,this.fullPath);this._load(s||this.fullPath)}_createClass(t,[{key:\"_load\",value:function t(e){if(!e){return}if(typeof e===\"string\"){var i=_utils2.default.startsWith(e,this.root);var l=i?e:this.root+\"/\"+e;this._loadFromTiddler(l)}else if(e instanceof $tw.Tiddler){this._loadFromTiddler(e)}else if((typeof e===\"undefined\"?\"undefined\":_typeof(e))===\"object\"){for(var s in this._fieldMeta){this[s]=e[s]}}}},{key:\"_loadFromTiddler\",value:function t(e){var i=_utils2.default.getTiddler(e);if(!i){return}var l=$tw.wiki.getSubTiddler($tm.path.pluginRoot,this.fullPath)||{};var s=$tw.utils.extend({},l.fields,i.fields);for(var r in this._fieldMeta){var a=this._fieldMeta[r].parse;var f=s[r];this[r]=a?a.call(this,f):f}}},{key:\"exists\",value:function t(){return _utils2.default.tiddlerExists(this.fullPath)}},{key:\"setStyle\",value:function t(e,i){if(typeof e===\"string\"){e=_utils2.default.parseJSON(e)}if((typeof e===\"undefined\"?\"undefined\":_typeof(e))===\"object\"){if(i){_utils2.default.merge(this.style,e)}else{this.style=e}}}},{key:\"save\",value:function t(e,i){if(!e){e=this.fullPath}else if(typeof e!==\"string\"){return}var l={title:e,text:\"\"};if(!_utils2.default.startsWith(e,this.root)){l.id=this.id}for(var s in this._fieldMeta){var r=this._fieldMeta[s].stringify;l[s]=r?r.call(this,this[s]):this[s]}if(!this.exists()){Object.assign(l,$tw.wiki.getCreationFields())}if(i!==true){Object.assign(l,$tw.wiki.getModificationFields())}$tw.wiki.addTiddler(new $tw.Tiddler(l))}}]);return t}();MapElementType.fieldMeta={description:{},style:{parse:_utils2.default.parseJSON,stringify:JSON.stringify},modified:{},created:{}};exports.default=MapElementType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/MapElementType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/NodeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/NodeType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _MapElementType2=require(\"$:/plugins/felixhayashi/tiddlymap/js/MapElementType\");var _MapElementType3=_interopRequireDefault(_MapElementType2);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/NodeType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var NodeType=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);e=typeof e===\"string\"?_utils2.default.getWithoutPrefix(e,$tm.path.nodeTypes+\"/\"):\"tmap:unknown\";var n=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,$tm.path.nodeTypes,t.fieldMeta,r));Object.freeze(n);return n}_createClass(t,[{key:\"getInheritors\",value:function e(t){return this.scope?_utils2.default.getMatches(this.scope,t||$tw.wiki.allTitles()):[]}}]);return t}(_MapElementType3.default);NodeType.getInstance=function(e){return e instanceof NodeType?e:new NodeType(e)};NodeType.fieldMeta=_extends({},_MapElementType3.default.fieldMeta,{view:{},priority:{parse:function e(t){return isNaN(t)?1:parseInt(t)},stringify:function e(t){return _utils2.default.isInteger(t)?t.toString():\"1\"}},scope:{stringify:_utils2.default.getWithoutNewLines},\"fa-icon\":{},\"tw-icon\":{}});exports.default=NodeType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/NodeType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i){if(Object.prototype.hasOwnProperty.call(i,r)){e[r]=i[r]}}}return e};var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var ViewAbstraction=function(){function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,e);if(t instanceof e){return t}this._registerPaths(t);if(i.isCreate){if(!this.configTRef){var r=_utils2.default.getRandomLabel({plural:true});this.configTRef=$tw.wiki.generateNewTitle($tm.path.views+\"/\"+r)}this._createView(i)}else if(!e.exists(this.getRoot())){throw new ResourceNotFoundException(\"ViewAbstraction\",t)}}_createClass(e,[{key:\"isLocked\",value:function e(){return $tw.wiki.isShadowTiddler(this.configTRef)}},{key:\"update\",value:function e(t){var i=t.changedTiddlers;if(t[env.path.edgeTypes]||_utils2.default.hasKeyWithPrefix(i,this.getRoot())){this._clearCaches();return true}return false}},{key:\"addPlaceholder\",value:function e(t){_utils2.default.cp(_utils2.default.getTiddlerRef(t),this.snapshotTRef,true)}},{key:\"exists\",value:function t(){return e.exists(this)}},{key:\"getRoot\",value:function e(){return this.configTRef}},{key:\"getCreationDate\",value:function e(t){var i=$tw.wiki.getTiddler(this.configTRef).fields[\"created\"];if(t){return i instanceof Date?$tw.utils.formatDateString(i,\"DDth MMM YYYY\"):\"\"}return i}},{key:\"getLabel\",value:function e(){return _utils2.default.getBasename(this.configTRef)}},{key:\"destroy\",value:function e(){_utils2.default.deleteTiddlers(_utils2.default.getMatches(\"[prefix[\"+this.configTRef+\"]]\"))}},{key:\"getOccurrences\",value:function e(){var t=\"[regexp:text[<\\\\$(tiddlymap|tmap).*?view=.\"+this.getLabel()+\"..*?>]]\";return _utils2.default.getMatches(t)}},{key:\"rename\",value:function t(i){if(typeof i!==\"string\"){return false}if(_utils2.default.inArray(\"/\",i)){$tm.notify('A view name must not contain any \"/\"');return false}var r=this.getLabel();var a=env.path.views+\"/\"+i;var n=this.getRoot();_utils2.default.mv(n,a,true);if($tm.config.sys.defaultView===r){_utils2.default.setEntry($tm.ref.sysUserConf,\"defaultView\",i)}if($tm.config.sys.liveTab.fallbackView===r){_utils2.default.setEntry($tm.ref.sysUserConf,\"liveTab.fallbackView\",i)}$tw.wiki.each(function(t,a){if(t.fields[\"tmap.open-view\"]===r){_utils2.default.setField(a,\"tmap.open-view\",i);return}if(e.exists(a)){var n=new e(a);var l=n.getNodeData();for(var s in l){if(l[s][\"open-view\"]===r){l[s][\"open-view\"]=i}}n.saveNodeData(l)}});this._clearCaches();this._registerPaths(i)}},{key:\"isEnabled\",value:function e(t){return _utils2.default.isTrue(this.getConfig(t),false)}},{key:\"getConfig\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.configTRef,\"tmap-config\",function(){var e=_utils2.default.getTiddler(i.configTRef).fields;return _utils2.default.getPropertiesByPrefix(e,\"config.\")});var a=t&&_utils2.default.startsWith(t,\"config.\")?t:\"config.\"+t;return t?r[a]:r}},{key:\"setConfig\",value:function e(){for(var t=arguments.length,i=Array(t),r=0;r<t;r++){i[r]=arguments[r]}if(i[0]==null){return}if(i.length===1&&_typeof(i[0])===\"object\"){for(var a in i[0]){this.setConfig(a,i[0][a])}}else if(i.length===2&&typeof i[0]===\"string\"){var n=_utils2.default.getWithoutPrefix(i[0],\"config.\");var l=i[1];if(l===undefined){return}var s=this.getConfig();if(l===null){$tm.logger(\"debug\",\"Removing config\",n);delete s[\"config.\"+n]}else{if(n===\"edge_type_namespace\"){var o=l.match(/[^:]+/);l=o?o[0]:\"\"}}$tm.logger(\"log\",\"Setting config\",n,l);s[\"config.\"+n]=l;$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(this.configTRef),s))}else{throw new(Function.prototype.bind.apply(_exception.InvalidArgumentException,[null].concat(i)))}}},{key:\"isLiveView\",value:function e(){return this.getLabel()===$tm.misc.liveViewLabel}},{key:\"isNodeIncludedById\",value:function t(i){var r=$tw.utils.escapeRegExp(e._getNodeIdFilterPart(i));return this.getNodeFilter(\"raw\").match(r)}},{key:\"setNodeFilter\",value:function e(t,i){t=t.replace(/[\\n\\r]/g,\" \");if(this.getNodeFilter(\"raw\")===t){return}_utils2.default.setField(this.nodeFilterTRef,\"filter\",t);$tm.logger(\"debug\",\"Node filter set to\",t)}},{key:\"setEdgeTypeFilter\",value:function e(t){t=t.replace(/[\\n\\r]/g,\" \");if(this.getEdgeTypeFilter(\"raw\")===t){return}_utils2.default.setField(this.edgeTypeFilterTRef,\"filter\",t);$tm.logger(\"debug\",\"Edge filter set to\",t)}},{key:\"addNode\",value:function t(i){if(!this.isNodeIncludedById(i)){if(_utils2.default.isTrue($tm.config.sys.alwaysAddNodeIdToViewFilter)||!_utils2.default.isMatch(i.tRef,this.getNodeFilter(\"compiled\"))){var r=e._getNodeIdFilterPart(i);var a=\" \";this.setNodeFilter(this.getNodeFilter(\"raw\")+a+r)}this.saveNodePosition(i)}}},{key:\"removeNode\",value:function t(i){if(!this.isNodeIncludedById(i)){return false}var r=e._getNodeIdFilterPart(i);var a=this.getNodeFilter(\"raw\").replace(r,\"\");this.setNodeFilter(a);return true}},{key:\"getEdgeTypeFilter\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.edgeTypeFilterTRef,\"tmap-edgeTypeFilter\",function(){var e=$tm.indeces.allETy;var t=Object.keys(e);var r=$tw.wiki.getTiddler(i.edgeTypeFilterTRef);var a={};a.raw=r&&r.fields.filter||\"\";a.pretty=_utils2.default.getPrettyFilter(a.raw);a.matches=_utils2.default.getEdgeTypeMatches(a.raw,e);a.whitelist=_utils2.default.getLookupTable(a.matches);return a});return t?r[t]:r}},{key:\"isEdgeTypeVisible\",value:function e(t){return _utils2.default.isEdgeTypeMatch(_EdgeType2.default.getInstance(t).id,this.getEdgeTypeFilter(\"raw\"))}},{key:\"getNodeFilter\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.nodeFilterTRef,\"tmap-nodeFilter\",function(){var e=_utils2.default.makeHashMap();var t=$tw.wiki.getTiddler(i.nodeFilterTRef);e.raw=t&&t.fields.filter||\"\";e.pretty=_utils2.default.getPrettyFilter(e.raw);e.compiled=$tw.wiki.compileFilter(e.raw);return e});return t?r[t]:r}},{key:\"getNodeData\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.mapTRef,\"tmap-map\",function(){return _utils2.default.parseFieldData(i.mapTRef,\"text\",{})});return t?r[t]:r}},{key:\"equals\",value:function t(i){return i===this||e.exists(i)&&new e(i).getRoot()===this.getRoot()}},{key:\"saveNodeData\",value:function e(){var t=this.getNodeData();for(var i=arguments.length,r=Array(i),a=0;a<i;a++){r[a]=arguments[a]}if(r.length===2){if(_typeof(r[1])===\"object\"){if(r[1]===null){delete t[r[0]]}else{t[r[0]]=Object.assign(t[r[0]]||{},r[1])}}}else if(r.length===1&&_typeof(r[0])===\"object\"){$tm.logger(\"log\",\"Storing data in\",this.mapTRef);Object.assign(t,r[0])}else{throw new(Function.prototype.bind.apply(_exception.InvalidArgumentException,[null].concat(r)))}_utils2.default.writeFieldData(this.mapTRef,\"text\",t,$tm.config.sys.jsonIndentation)}},{key:\"saveNodePosition\",value:function e(t){if(t.id&&t.x!=null&&t.y!=null){this.saveNodeData(t.id,{x:t.x,y:t.y})}}},{key:\"saveNodePositions\",value:function e(t){var i=this.getNodeData();for(var r in t){i[r]=i[r]||{};i[r].x=t[r].x;i[r].y=t[r].y}this.saveNodeData(i)}},{key:\"setCentralTopic\",value:function e(t){this.setConfig(\"central-topic\",t)}},{key:\"saveNodeStyle\",value:function e(t,i){var r=this.getNodeData(t)||{};var a={x:r.x,y:r.y};for(var n in r){delete r[n]}this.saveNodeData(t,_extends({},i,a))}},{key:\"_registerPaths\",value:function t(i,r){this.configTRef=e._getRootPath(i);this.mapTRef=this.configTRef+\"/map\";this.nodeFilterTRef=this.configTRef+\"/filter/nodes\";this.edgeTypeFilterTRef=this.configTRef+\"/filter/edges\";this.snapshotTRef=this.getRoot()+\"/snapshot\"}},{key:\"_clearCaches\",value:function e(){_utils2.default.getMatches(\"[prefix[\"+this.getRoot()+\"]]\").forEach(function(e){$tw.wiki.clearCache(e)})}},{key:\"_createView\",value:function t(){var i=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},r=i.isForce,a=i.protoView,n=i.isHidden;if(e.exists(this)){if(!r){return}this.destroy()}if(e.exists(a)){_utils2.default.cp(new e(a).getRoot(),this.configTRef,true)}var l={title:this.configTRef,id:_utils2.default.genUUID()};if(!n){l[$tm.field.viewMarker]=true}$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(this.configTRef),l));this.setEdgeTypeFilter(env.filter.defaultEdgeTypeFilter)}}],[{key:\"_getNodeIdFilterPart\",value:function e(t){var i=(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"?t.id:t;return\"[field:tmap.id[\"+i+\"]]\"}},{key:\"_getRootPath\",value:function t(i){if(i instanceof e){return i.configTRef}if(i instanceof $tw.Tiddler){i=i.fields.title}if(typeof i===\"string\"){var r=_utils2.default.getWithoutPrefix(i,$tm.path.views+\"/\");if(r&&!_utils2.default.hasSubString(r,\"/\")){return $tm.path.views+\"/\"+r}}}},{key:\"exists\",value:function t(i){if(!i){return false}if(i instanceof e){i=i.configTRef}else{i=e._getRootPath(i)}return _utils2.default.tiddlerExists(i)}}]);return e}();exports.default=ViewAbstraction;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/ViewAbstraction.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/Popup": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Popup",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function Popup(e,t){t=t||{};this._parentDomNode=e;this._domNode=document.createElement(\"div\");this._domNode.style.display=\"none\";this._domNode.className=\"tmap-popup\";this._parentDomNode.appendChild(this._domNode);$tw.utils.addClass(this._domNode,t.className);this._isEnabled=true;this._isPreventShowOrHide=false;this._isHideOnClick=!!t.hideOnClick;this._timeoutShow=null;this._timeoutHide=null;this._isDisplayNoneAfterAnimation=true;var i=parseInt(t.leavingDelay);this._hideDelayLeavingPopup=_utils2.default.isInteger(i)?i:200;i=parseInt(t.hideDelay);this._hideDelay=_utils2.default.isInteger(i)?i:200;i=parseInt(t.showDelay);this._showDelay=_utils2.default.isInteger(i)?i:200;_utils2.default.bindTo(this,[\"_show\",\"_hide\",\"_handleEnter\",\"_handleLeave\",\"_handleAnimationEnd\",\"_handleClick\"]);this._listeners={mouseenter:this._handleEnter,mouseleave:this._handleLeave,click:[this._handleClick,true]};var s=this._handleAnimationEnd;this._listeners[$tw.utils.convertEventName(\"animationEnd\")]=s;this._listeners[$tw.utils.convertEventName(\"transitionEnd\")]=s;_utils2.default.setDomListeners(\"add\",this._domNode,this._listeners,false)}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Popup\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */Popup.prototype._handleEnter=function(e){this._isPreventShowOrHide=true};Popup.prototype._handleLeave=function(e){this._isPreventShowOrHide=false;this.hide(this._hideDelayLeavingPopup)};Popup.prototype._handleClick=function(e){if(this._isHideOnClick){this._hide(true)}};Popup.prototype._handleAnimationEnd=function(){if(this._isDisplayNoneAfterAnimation){this._domNode.style.display=\"none\"}};Popup.prototype._hide=function(e){if(!e&&this._isPreventShowOrHide)return;this._isDisplayNoneAfterAnimation=true;this._isPreventShowOrHide=false;$tw.utils.removeClass(this._domNode,\"tmap-popup-active\")};Popup.prototype._show=function(e,t){if(this._isPreventShowOrHide||$tm.mouse.ctrlKey||!this._isEnabled){return}this._domNode.style.display=\"none\";$tw.utils.removeClass(this._domNode,\"tmap-popup-active\");this._domNode.removeAttribute(\"style\");_utils2.default.removeDOMChildNodes(this._domNode);var i=this._domNode.appendChild(document.createElement(\"div\"));if(typeof t===\"function\"){t(e,i)}else{i.innerHTML=t}if(!i.childNodes.length)return;var s=this._parentDomNode.getBoundingClientRect();var o=$tm.mouse.clientX;var n=$tm.mouse.clientY;this._domNode.style.display=\"block\";var d=this._domNode.getBoundingClientRect();var l=s.right-(o+d.width);var h=o-d.width-s.left;var a=l>h;var u=s.bottom-(n+d.height);var r=n-d.height-s.top;var p=u>r;var _=a?-15:d.width+15;var m=p?-15:d.height+15;this._domNode.style.left=o-s.left-_+\"px\";this._domNode.style.top=n-s.top-m+\"px\";this._isDisplayNoneAfterAnimation=false;$tw.utils.addClass(this._domNode,\"tmap-popup-active\")};Popup.prototype.show=function(e,t,i){this._clearTimeouts();i=_utils2.default.isInteger(i)?i:this._showDelay;this._timeoutShow=setTimeout(this._show,i,e,t)};Popup.prototype.hide=function(e,t){this._clearTimeouts();e=_utils2.default.isInteger(e)?e:this._hideDelay;if(t||e===0){this._hide(t)}else{this._timeoutHide=setTimeout(this._hide,e,t)}};Popup.prototype.setEnabled=function(e){this._isEnabled=e};Popup.prototype.isShown=function(){return this._domNode.style.display===\"block\"};Popup.prototype._clearTimeouts=function(){clearTimeout(this._timeoutShow);clearTimeout(this._timeoutHide);this._timeoutShow=undefined;this._timeoutHide=undefined};exports.default=Popup;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/Popup.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(t,n.key,n)}}return function(e,i,n){if(i)t(e.prototype,i);if(n)t(e,n);return e}}();function _classCallCheck(t,e){if(!(t instanceof e)){throw new TypeError(\"Cannot call a class as a function\")}}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle\ntype: application/SelectionRectangle\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var SelectionRectangle=function(){function t(e,i){_classCallCheck(this,t);this.x1=e;this.x2=e;this.y1=i;this.y2=i}_createClass(t,[{key:\"span\",value:function t(e,i){this.x2=e;this.y2=i}},{key:\"getWidth\",value:function t(){return this.x2-this.x1}},{key:\"getHeight\",value:function t(){return this.y2-this.y1}},{key:\"getRect\",value:function t(){return[this.x1,this.y1,this.getWidth(),this.getHeight()]}},{key:\"isPointWithin\",value:function t(e){var i=e.x,n=e.y;var a=this.x1,r=this.x2,s=this.y1,u=this.y2;var h=Math.min(a,r);var c=Math.max(a,r);var l=Math.min(s,u);var o=Math.max(s,u);return h<i&&i<c&&l<n&&n<o}}]);return t}();exports.default=SelectionRectangle;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/SelectionRectangle.js.map\n",
"type": "application/SelectionRectangle",
"module-type": "library"
},
"/home/felo/projects/Tiddlywiki/TiddlyWiki5/plugins/felixhayashi/tiddlymap/js/lib/TypeDefs.js": {
"title": "/home/felo/projects/Tiddlywiki/TiddlyWiki5/plugins/felixhayashi/tiddlymap/js/lib/TypeDefs.js",
"text": "\"use strict\";\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/TypeDefs.js.map\n"
},
"$:/plugins/felixhayashi/tiddlymap/js/config/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/config/vis",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/config/vis\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var visConfig={locale:\"en_EN\",clickToUse:false,autoResize:false,height:\"100%\",width:\"100%\",configure:{enabled:false},interaction:{dragNodes:true,dragView:true,hideEdgesOnDrag:false,hideNodesOnDrag:false,hover:true,navigationButtons:true,multiselect:true,selectable:true,selectConnectedEdges:true,tooltipDelay:600,zoomView:false,keyboard:{enabled:false,speed:{x:10,y:10,zoom:.02},bindToWindow:false}},manipulation:{initiallyActive:true},nodes:{shape:\"box\",shadow:{enabled:false},color:{border:\"#2B7CE9\",background:\"#97C2FC\"}},edges:{smooth:{enabled:true},color:{color:\"#848484\",inherit:false},arrows:{to:{enabled:true}}},layout:{hierarchical:{enabled:false,levelSeparation:200,nodeSpacing:170,treeSpacing:230,sortMethod:\"directed\",parentCentralization:true,edgeMinimization:true,blockShifting:true,direction:\"UD\"}},physics:{forceAtlas2Based:{gravitationalConstant:-300,springLength:0,springConstant:.2,centralGravity:.015,damping:.4},hierarchicalRepulsion:{nodeDistance:120,centralGravity:0,springLength:100,springConstant:.01,damping:.09},solver:\"forceAtlas2Based\",stabilization:{enabled:true,iterations:1e3,updateInterval:10,onlyDynamicEdges:false,fit:false}}};exports.default=visConfig;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/VisConfig.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/environment": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/environment",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var i=1;i<arguments.length;i++){var a=arguments[i];for(var l in a){if(Object.prototype.hasOwnProperty.call(a,l)){e[l]=a[l]}}}return e};\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/environment\ntype: application/javascript\n module-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var path=exports.path={pluginRoot:\"$:/plugins/felixhayashi/tiddlymap\",edgeTypes:\"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes\",nodeTypes:\"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes\",views:\"$:/plugins/felixhayashi/tiddlymap/graph/views\",options:\"$:/plugins/felixhayashi/tiddlymap/config\",dialogs:\"$:/plugins/felixhayashi/tiddlymap/dialog\",footers:\"$:/plugins/felixhayashi/tiddlymap/dialogFooter\",tempRoot:\"$:/temp/tmap\",tempStates:\"$:/temp/tmap/state\",tempPopups:\"$:/temp/tmap/state/popup\",localHolders:\"$:/temp/tmap/holders\"};var ref=exports.ref={defaultViewHolder:\"$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder\",graphBar:\"$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar\",sysUserConf:\"$:/plugins/felixhayashi/tiddlymap/config/sys/user\",visUserConf:\"$:/plugins/felixhayashi/tiddlymap/config/vis/user\",welcomeFlag:\"$:/plugins/felixhayashi/tiddlymap/flag/welcome\",focusButton:\"$:/plugins/felixhayashi/tiddlymap/misc/focusButton\",sysMeta:\"$:/plugins/felixhayashi/tiddlymap/misc/meta\",liveTab:\"$:/plugins/felixhayashi/tiddlymap/hook/liveTab\",mainEditor:\"$:/plugins/felixhayashi/tiddlymap/hook/editor\",sidebarBreakpoint:\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"};var misc=exports.misc={unknownEdgeLabel:\"tmap:undefined\",liveViewLabel:\"Live View\",defaultViewLabel:\"Default\",mainEditorId:\"main_editor\",arrows:{in:\"⇦\",out:\"➡\",bi:\"⇄\"}};var config=exports.config={sys:{field:{nodeLabel:\"caption\",nodeIcon:\"icon\",nodeInfo:\"description\",viewMarker:\"isview\"},liveTab:{fallbackView:misc.liveViewLabel},suppressedDialogs:{},edgeClickBehaviour:\"manager\",debug:\"false\",notifications:\"true\",popups:{enabled:\"true\",delay:\"600\",width:\"240px\",height:\"140px\"},jsonIndentation:\"1\",alwaysAddNodeIdToViewFilter:\"true\",editNodeOnCreate:\"false\",singleClickMode:\"false\",nodeFilterNeighbours:\"false\",editorMenuBar:{showNeighScopeButton:\"true\",showRasterMenuButton:\"true\",showScreenshotButton:\"true\"}}};var filter=exports.filter={nodeTypes:\"[prefix[\"+path.nodeTypes+\"]]\",edgeTypes:\"[prefix[\"+path.edgeTypes+\"]]\",views:\"[\"+config.sys.field.viewMarker+\"[true]]\",defaultEdgeTypeFilter:\"-[prefix[_]] -[[tw-body:link]] -[[tw-list:tags]] -[[tw-list:list]]\"};var allSelector=\"[all[tiddlers+shadows]!has[draft.of]]\";var s={allEdgeTypes:allSelector+\" +\"+filter.edgeTypes,allNodeTypes:allSelector+\" +\"+filter.nodeTypes,allViews:allSelector+\" +\"+filter.views,allPotentialNodes:\"[all[tiddlers]!is[system]!has[draft.of]]\"};var selector=exports.selector=_extends({},s,{allEdgeTypesById:s.allEdgeTypes+\" +[removeprefix[\"+path.edgeTypes+\"/]]\",allNodeTypesById:s.allNodeTypes+\" +[removeprefix[\"+path.nodeTypes+\"/]]\",allViewsByLabel:s.allViews+\" +[removeprefix[\"+path.views+\"/]]\"});\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/environment.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/exception": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/exception",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function r(r,t){for(var e=0;e<t.length;e++){var o=t[e];o.enumerable=o.enumerable||false;o.configurable=true;if(\"value\"in o)o.writable=true;Object.defineProperty(r,o.key,o)}}return function(t,e,o){if(e)r(t.prototype,e);if(o)r(t,o);return t}}();function _classCallCheck(r,t){if(!(r instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(r,t){if(!r){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:r}function _inherits(r,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}r.prototype=Object.create(t&&t.prototype,{constructor:{value:r,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(r,t):r.__proto__=t}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/exception\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TiddlyMapError=function(r){_inherits(t,r);function t(r,e){_classCallCheck(this,t);var o=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,r));o.payload=e;return o}_createClass(t,[{key:\"getPayload\",value:function r(){return this.payload}}]);return t}(Error);var EnvironmentError=exports.EnvironmentError=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Critical parts of the underlying system changed: \"+r))}return t}(TiddlyMapError);var DependencyError=exports.DependencyError=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"TiddlyMap cannot run without: : \"+r))}return t}(TiddlyMapError);var MissingOverrideError=exports.MissingOverrideError=function(r){_inherits(t,r);function t(r,e){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,r.constructor.name+' does not override method \"'+e+'\"'))}return t}(TiddlyMapError);var ResourceNotFoundException=exports.ResourceNotFoundException=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);for(var e=arguments.length,o=Array(e>1?e-1:0),n=1;n<e;n++){o[n-1]=arguments[n]}return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Cannot resolve \"+r,o))}return t}(TiddlyMapError);var InvalidArgumentException=exports.InvalidArgumentException=function(r){_inherits(t,r);function t(){_classCallCheck(this,t);for(var r=arguments.length,e=Array(r),o=0;o<r;o++){e[o]=arguments[o]}return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Invalid or missing argument provided\",e))}return t}(TiddlyMapError);\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/exceptions.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/URL": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/URL",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/URL\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */\n/**\n * <<<\n * Lightweight URL manipulation with JavaScript. This library is\n * independent of any other libraries and has pretty simple interface\n * and lightweight code-base. Some ideas of query string parsing\n * had been taken from Jan Wolter.\"\n *\n * @see http://unixpapa.com/js/querystring.html\n * @license MIT\n * @author Mykhailo Stadnyk <mikhus@gmail.com>\n * <<< https://github.com/Mikhus/jsurl\n *\n * @class\n * @param {string} url\n */function Url(t){this.paths=function(t){var e=\"\",r=0,o;if(t&&t.length&&t+\"\"!==t){if(this.isAbsolute()){e=\"/\"}for(o=t.length;r<o;r++){t[r]=encode(t[r])}this.path=e+t.join(\"/\")}t=(this.path.charAt(0)===\"/\"?this.path.slice(1):this.path).split(\"/\");for(r=0,o=t.length;r<o;r++){t[r]=decode(t[r])}return t};this.encode=encode;this.decode=decode;this.isAbsolute=function(){return this.protocol||this.path.charAt(0)===\"/\"};this.toString=function(){return(this.protocol&&this.protocol+\"://\")+(this.user&&encode(this.user)+(this.pass&&\":\"+encode(this.pass))+\"@\")+(this.host&&this.host)+(this.port&&\":\"+this.port)+(this.path&&this.path)+(this.query.toString()&&\"?\"+this.query)+(this.hash&&\"#\"+encode(this.hash))};parse(this,t)}var map={protocol:\"protocol\",host:\"hostname\",port:\"port\",path:\"pathname\",query:\"search\",hash:\"hash\"},defaultPorts={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443},parse=function t(e,r){var o=document,s=o.createElement(\"a\"),r=r||o.location.href,i=r.match(/\\/\\/(.*?)(?::(.*?))?@/)||[],n;s.href=r;for(n in map){e[n]=s[map[n]]||\"\"}e.protocol=e.protocol.replace(/:$/,\"\");e.query=e.query.replace(/^\\?/,\"\");e.hash=decode(e.hash.replace(/^#/,\"\"));e.user=decode(i[1]||\"\");e.pass=decode(i[2]||\"\");e.port=defaultPorts[e.protocol]==e.port||e.port==0?\"\":e.port;if(!e.protocol&&!/^([a-z]+:)?\\/\\//.test(r)){var h=new Url(o.location.href.match(/(.*\\/)/)[0]),a=h.path.split(\"/\"),p=e.path.split(\"/\"),c=[\"protocol\",\"user\",\"pass\",\"host\",\"port\"],f=c.length;a.pop();for(n=0;n<f;n++){e[c[n]]=h[c[n]]}while(p[0]==\"..\"){a.pop();p.shift()}e.path=(r.charAt(0)!=\"/\"?a.join(\"/\"):\"\")+\"/\"+p.join(\"/\")}else{e.path=e.path.replace(/^\\/?/,\"/\")}e.paths((e.path.charAt(0)==\"/\"?e.path.slice(1):e.path).split(\"/\"));parseQs(e)},encode=function t(e){return encodeURIComponent(e).replace(/'/g,\"%27\")},decode=function t(e){e=e.replace(/\\+/g,\" \");e=e.replace(/%([ef][0-9a-f])%([89ab][0-9a-f])%([89ab][0-9a-f])/gi,function(t,e,r,o){var s=parseInt(e,16)-224,i=parseInt(r,16)-128;if(s==0&&i<32){return t}var n=parseInt(o,16)-128,h=(s<<12)+(i<<6)+n;if(h>65535){return t}return String.fromCharCode(h)});e=e.replace(/%([cd][0-9a-f])%([89ab][0-9a-f])/gi,function(t,e,r){var o=parseInt(e,16)-192;if(o<2){return t}var s=parseInt(r,16)-128;return String.fromCharCode((o<<6)+s)});e=e.replace(/%([0-7][0-9a-f])/gi,function(t,e){return String.fromCharCode(parseInt(e,16))});return e},parseQs=function t(e){var r=e.query;e.query=new function(t){var e=/([^=&]+)(=([^&]*))?/g,r;while(r=e.exec(t)){var o=decodeURIComponent(r[1].replace(/\\+/g,\" \")),s=r[3]?decode(r[3]):\"\";if(this[o]!=null){if(!(this[o]instanceof Array)){this[o]=[this[o]]}this[o].push(s)}else{this[o]=s}}this.clear=function(){for(var t in this){if(!(this[t]instanceof Function)){delete this[t]}}};this.count=function(){var t=0,e;for(e in this){if(!(this[e]instanceof Function)){t++}}return t};this.isEmpty=function(){return this.count()===0};this.toString=function(){var t=\"\",e=encode,r,o;for(r in this){if(this[r]instanceof Function){continue}if(this[r]instanceof Array){var s=this[r].length;if(s){for(o=0;o<s;o++){t+=t?\"&\":\"\";t+=e(r)+\"=\"+e(this[r][o])}}else{t+=(t?\"&\":\"\")+e(r)+\"=\"}}else{t+=t?\"&\":\"\";t+=e(r)+\"=\"+e(this[r])}}return t}}(r)};exports.default=Url;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/url.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.bindTo=exports.getNearestRasterPosition=exports.mod=exports.removeDOMChildNodes=exports.setDomListeners=exports.merge=exports.getRandomLabel=exports.getFirstElementByClassName=exports.getImgFromWeb=exports.pickRandom=exports.hasKeyWithPrefix=exports.getWithoutPrefix=exports.getPropertiesByPrefix=exports.removeArrayElement=exports.isTrue=exports.replaceAll=exports.isInteger=exports.findAndRemoveClassNames=exports.getAncestorWithClass=exports.makeHashMap=exports.getWithoutNewLines=exports.joinAndWrap=exports.parseJSON=exports.hasSubString=exports.inArray=exports.getRandomInt=exports.isEqual=exports.identity=exports.base64=exports.startsWith=exports.getBasename=exports.escapeRegex=exports.hasElements=exports.ucFirst=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var ucFirst=exports.ucFirst=function e(t){return t&&t[0].toUpperCase()+t.slice(1)};var hasElements=exports.hasElements=function e(t){return Object.keys(t).length>0};var escapeRegex=exports.escapeRegex=function e(t){return t.replace(/[-$^?.+*[\\]\\\\(){}|]/g,\"\\\\$&\")};var getBasename=exports.getBasename=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"/\";return t.substring(t.lastIndexOf(r)+1)};var startsWith=exports.startsWith=function e(t,r){return t.substring(0,r.length)===r};var base64=exports.base64=typeof window===\"undefined\"?function(e){return new Buffer(e).toString(\"base64\")}:window.btoa.bind(window);var identity=exports.identity=function e(t){return(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"&&t!==null?JSON.stringify(Object.keys(t).sort().map(function(e){return[e,t[e]]})):null};var isEqual=exports.isEqual=function e(t,r){return identity(t)===identity(r)};var getRandomInt=exports.getRandomInt=function e(t,r){return Math.floor(Math.random()*(r-t)+t)};var inArray=exports.inArray=function e(t,r){return r.indexOf(t)!==-1};var hasSubString=exports.hasSubString=function e(t,r){return t.indexOf(r)!==-1};var parseJSON=exports.parseJSON=function e(t,r){try{return JSON.parse(t)}catch(e){return r}};var joinAndWrap=exports.joinAndWrap=function e(t,r,n){var o=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\" \";return r+t.join(n+o+r)+n};var getWithoutNewLines=exports.getWithoutNewLines=function e(t){return typeof t===\"string\"?t.replace(/[\\n\\r]/g,\" \"):t};var makeHashMap=exports.makeHashMap=function e(t){var r=Object.create(null);Object.defineProperty(r,\"hasOwnProperty\",{enumerable:false,configurable:false,writable:false,value:Object.prototype.hasOwnProperty.bind(r)});if(t){for(var n in t){if(t.hasOwnProperty(n)){r[n]=t[n]}}}return r};var getAncestorWithClass=exports.getAncestorWithClass=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"||typeof r!==\"string\"){return}while(t.parentNode&&t.parentNode!==document){t=t.parentNode;if(t.classList.contains(r)){return t}}};var findAndRemoveClassNames=exports.findAndRemoveClassNames=function e(t){for(var r=t.length;r--;){var n=document.getElementsByClassName(t[r]);for(var o=n.length;o--;){n[o].classList.remove(t[r])}}};var isInteger=exports.isInteger=Number.isInteger||function(e){return typeof e===\"number\"&&isFinite(e)&&Math.floor(e)===e};var replaceAll=exports.replaceAll=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";var n=arguments[2];for(var o=n.length;o--;){var s=n[o];var i=r;if(Array.isArray(s)){i=s[1];s=s[0]}t=t.replace(s,i)}return t};var isTrue=exports.isTrue=function e(t,r){if(t==null){return!!r}else if(typeof t===\"string\"){var n=parseInt(t);return isNaN(n)?t===\"true\":n!==0}else if(typeof t===\"boolean\"){return t}else if(typeof t===\"number\"){return n!==0}return false};var removeArrayElement=exports.removeArrayElement=function e(t,r){var n=t.indexOf(r);if(n>-1){return t.splice(n,1)[0]}};var getPropertiesByPrefix=exports.getPropertiesByPrefix=function e(t,r,n){var o=makeHashMap();for(var s in t){if(startsWith(s,r)){o[n?s.substr(r.length):s]=t[s]}}return o};var getWithoutPrefix=exports.getWithoutPrefix=function e(t,r){return startsWith(t,r)?t.substr(r.length):t};var hasKeyWithPrefix=exports.hasKeyWithPrefix=function e(t,r){for(var n in t){if(startsWith(n,r)){return true}}return false};var pickRandom=exports.pickRandom=function e(t){return t[getRandomInt(0,t.length-1)]};var getImgFromWeb=exports.getImgFromWeb=function e(t,r){if(!t||typeof r!==\"function\")return;var n=new XMLHttpRequest;n.open(\"GET\",t,true);n.responseType=\"blob\";n.onerror=function(e){console.log(e)};n.onload=function(e){if(this.readyState===4&&(this.status===200||this.status===0&&this.response.size>0)){var t=this.response;r(window.URL.createObjectURL(t))}};try{n.send()}catch(e){console.log(e)}};var getFirstElementByClassName=exports.getFirstElementByClassName=function e(t,r,n){var o=(r||document).getElementsByClassName(t)[0];if(!o&&(typeof n===\"boolean\"?n:true)){var s='Missing element with class \"'+t+'\" inside '+r;throw new _exception.EnvironmentError(s)}return o};var getRandomLabel=exports.getRandomLabel=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var r=pickRandom([\"exciting\",\"notable\",\"epic\",\"new\",\"fancy\",\"great\",\"cool\",\"fresh\",\"funky\",\"clever\"]);var n=(t.object||pickRandom([\"concept\",\"idea\",\"thought\",\"topic\",\"subject\"]))+(t.plural?\"s\":\"\");return\"My \"+r+\" \"+n};var _merge=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"){t={}}for(var n in r){if(r.hasOwnProperty(n)){if(r[n]!=null){t[n]=_typeof(r[n])===\"object\"?e(t[n],r[n]):r[n]}}}return t};var merge=exports.merge=function e(t){for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;o<r;o++){n[o-1]=arguments[o]}for(var s=0,i=n.length;s<i;s++){var a=n[s];if(a!=null&&(typeof a===\"undefined\"?\"undefined\":_typeof(a))===\"object\"){t=_merge(t,a)}}return t};var setDomListeners=exports.setDomListeners=function e(t,r,n,o){o=typeof o===\"boolean\"?o:false;t=t+\"EventListener\";for(var s in n){var i=n[s];if(typeof i===\"function\"){r[t](s,i,o)}else{r[t](s,i[0],typeof i[1]===\"boolean\"?i[1]:o)}}};var removeDOMChildNodes=exports.removeDOMChildNodes=function e(t){for(var r=t.childNodes.length;r--;){t.removeChild(t.childNodes[r])}};var mod=exports.mod=function e(t,r){var n=t%r;return Math.floor(n>=0?n:n+r)};var getNearestRasterPosition=exports.getNearestRasterPosition=function e(t,r){var n=t.x,o=t.y;var s=r/2;var i=mod(n,r);var a=mod(o,r);return{x:i<s?n-i:n-i+r,y:a<s?o-a:o-a+r}};var bindTo=exports.bindTo=function e(t,r){for(var n=r.length;n--;){var o=t[r[n]];t[r[n]]=o.bind(t)}};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/basic.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var generateDraftTitle=exports.generateDraftTitle=function e(n){var r=0,t=void 0;do{t=\"Draft \"+(r?r+1+\" \":\"\")+\"of '\"+n+\"'\";r++}while($tw.wiki.tiddlerExists(t));return t};var makeDraftTiddler=exports.makeDraftTiddler=function e(n){var r=$tw.wiki.findDraft(n);if(r){return $tw.wiki.getTiddler(r)}var t=$tw.wiki.getTiddler(n);r=generateDraftTitle(n);var l=new $tw.Tiddler(t,{title:r,\"draft.title\":n,\"draft.of\":n},$tw.wiki.getModificationFields());$tw.wiki.addTiddler(l);return l};var getFullScreenApis=exports.getFullScreenApis=function e(){var n=document,r=n.body,t={_requestFullscreen:r.webkitRequestFullscreen!==undefined?\"webkitRequestFullscreen\":r.mozRequestFullScreen!==undefined?\"mozRequestFullScreen\":r.msRequestFullscreen!==undefined?\"msRequestFullscreen\":r.requestFullscreen!==undefined?\"requestFullscreen\":\"\",_exitFullscreen:n.webkitExitFullscreen!==undefined?\"webkitExitFullscreen\":n.mozCancelFullScreen!==undefined?\"mozCancelFullScreen\":n.msExitFullscreen!==undefined?\"msExitFullscreen\":n.exitFullscreen!==undefined?\"exitFullscreen\":\"\",_fullscreenElement:n.webkitFullscreenElement!==undefined?\"webkitFullscreenElement\":n.mozFullScreenElement!==undefined?\"mozFullScreenElement\":n.msFullscreenElement!==undefined?\"msFullscreenElement\":n.fullscreenElement!==undefined?\"fullscreenElement\":\"\",_fullscreenChange:n.webkitFullscreenElement!==undefined?\"webkitfullscreenchange\":n.mozFullScreenElement!==undefined?\"mozfullscreenchange\":n.msFullscreenElement!==undefined?\"MSFullscreenChange\":n.fullscreenElement!==undefined?\"fullscreenchange\":\"\"};if(!t._requestFullscreen||!t._exitFullscreen||!t._fullscreenElement){return null}else{return t}};var flatten=exports.flatten=function e(n){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var t=r.delimiter||\".\";var l=r.prefix||\"\";var i={};function u(e,n){Object.keys(e).forEach(function(f){var s=e[f];var c=r.safe&&Array.isArray(s);var a=Object.prototype.toString.call(s);var d=a===\"[object Object]\"||a===\"[object Array]\";var o=n?n+t+f:l+f;if(!c&&d){return u(s,o)}i[o]=s})}u(n);return i};var unflatten=exports.unflatten=function e(n){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var t=r.delimiter||\".\";var l={};if(Object.prototype.toString.call(n)!==\"[object Object]\"){return n}function i(e){var n=Number(e);return isNaN(n)||e.indexOf(\".\")!==-1?e:n}Object.keys(n).forEach(function(u){var f=u.split(t);var s=i(f.shift());var c=i(f[0]);var a=l;while(c!==undefined){if(a[s]===undefined){a[s]=typeof c===\"number\"&&!r.object?[]:{}}a=a[s];if(f.length>0){s=i(f.shift());c=i(f[0])}}a[s]=e(n[u],r)});return l};var genUUID=exports.genUUID=function(){var e=\"0123456789abcdefghijklmnopqrstuvwxyz\".split(\"\");return function(){var n=e,r=new Array(36);var t=0,l;for(var i=0;i<36;i++){if(i==8||i==13||i==18||i==23){r[i]=\"-\"}else if(i==14){r[i]=\"4\"}else{if(t<=2)t=33554432+Math.random()*16777216|0;l=t&15;t=t>>4;r[i]=n[i==19?l&3|8:l]}}return r.join(\"\")}}();\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/thirdParty.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.getSnapshotTitle=exports.getArrayValuesAsHashmapKeys=exports.getLookupTable=exports.keyOfItemWithProperty=exports.keysOfItemsWithProperty=exports.getDublicates=exports.getId=exports.refreshDataSet=exports.drawRaster=exports.getPrettyFilter=exports.groupByProperty=exports.isEdgeTypeMatch=exports.getEdgeTypeMatches=exports.getDataUri=exports.convert=exports.getValues=exports.getIterableCollection=exports.getLabel=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);var _wiki=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\");var wikiUtils=_interopRequireWildcard(_wiki);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var getLabel=exports.getLabel=function e(t,r){var i=wikiUtils.getTiddler(t);return(i&&i.fields[r]?i.fields[r]:i.fields.title).replace(\"\\\\n\",\"\\n\")};var getIterableCollection=exports.getIterableCollection=function e(t){return t instanceof _vis2.default.DataSet?t.get():t};var getValues=exports.getValues=function e(t){if(Array.isArray(t)){return t}else if(t instanceof _vis2.default.DataSet){return t.get({returnType:\"Array\"})}var r=[];var i=Object.keys(t);for(var a=i.length;a--;){r.push(t[i[a]])}return r};var convert=exports.convert=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"){throw new _exception.InvalidArgumentException(t,r)}if(r===\"object\"){r=\"hashmap\"}var i={array:function e(t){return getValues(t)},hashmap:function e(t){return t instanceof _vis2.default.DataSet?t.get({returnType:\"Object\"}):t},dataset:function e(t){return t instanceof _vis2.default.DataSet?t:!Array.isArray(t)?getValues(t):new _vis2.default.DataSet(t)}};return i[r](t)};var getDataUri=exports.getDataUri=function e(t,r,i){var a=wikiUtils.getTiddler(t);r=r||a.fields.type||\"image/svg+xml\";var s=a.fields.text;var o=$tw.config.contentTypeInfo[r].encoding;if(r===\"image/svg+xml\"){s=s.replace(/\\r?\\n|\\r/g,\" \");if(!basicUtils.hasSubString(\"xmlns\",s)){s=s.replace(/<svg/,'<svg xmlns=\"http://www.w3.org/2000/svg\"')}}if(i&&o!==\"base64\"){o=\"base64\";s=basicUtils.base64(s)}return\"data:\"+r+\";\"+o+\",\"+s};var eTyFiltAutoPrefix=\"[all[]] \";var getEdgeTypeMatches=exports.getEdgeTypeMatches=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";var r=arguments[1];if(!r){r=wikiUtils.getTiddlersByPrefix($tm.path.edgeTypes+\"/\",{iterator:\"eachTiddlerPlusShadows\",removePrefix:true})}if(r!=null&&!Array.isArray(r)){r=Object.keys(r)}return wikiUtils.getMatches(eTyFiltAutoPrefix+t,r)};var isEdgeTypeMatch=exports.isEdgeTypeMatch=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";return wikiUtils.isMatch(t,eTyFiltAutoPrefix+r)};var groupByProperty=exports.groupByProperty=function e(t,r){t=getIterableCollection(t);var i=basicUtils.makeHashMap();var a=Object.keys(t);for(var s in a){var o=t[a[s]];var n=o[r];if(n==null){throw\"Cannot group by property \"+r}else{if(!Array.isArray(i[n])){i[n]=[]}i[n].push(o)}}return i};var getPrettyFilter=exports.getPrettyFilter=function e(t){t=t.trim().replace(\"][\",\"] [\");var r=/[+-]?\\[.+?[\\]\\}\\>]\\]/g;var i=t.match(r);t=t.replace(r,\" [] \").trim();var a=t.split(/\\s+/);var s=0;var o=[];for(var n=0,l=a.length;n<l;n++){o[n]=a[n]===\"[]\"?i[s++]:a[n]}return o.join(\"\\n\")};var drawRaster=exports.drawRaster=function e(t,r,i,a){var s=arguments.length>4&&arguments[4]!==undefined?arguments[4]:\"#D9D9D9\";var o=basicUtils.getNearestRasterPosition(i,a),n=o.x,l=o.y;var u=t.canvas.width/r;var p=t.canvas.height/r;var f=a*2;var v=Math.ceil(u/a/2)*a+f;var c=Math.ceil(p/a/2)*a+f;var y=n-v;var g=n+v;var d=l-c;var h=l+c;t.beginPath();for(var b=y;b<g;b+=a){t.moveTo(b,d);t.lineTo(b,h)}for(var x=d;x<=h;x+=a){t.moveTo(y,x);t.lineTo(g,x)}t.strokeStyle=s;t.fillStyle=s;t.stroke()};var refreshDataSet=exports.refreshDataSet=function e(t,r){var i=t.get({returnType:\"Object\"});var a=[];var s=[];var o=[];var n=[];for(var l in r){if(i[l]){if(basicUtils.isEqual(i[l],r[l])){continue}s.push(l);t.remove(l)}else{a.push(l)}if(r[l].x===undefined){o.push(l)}t.add(r[l])}for(var u in i){if(!r[u]){n.push(u);t.remove(u)}}return{withoutPosition:o,inserted:a,updated:s,removed:n}};var getId=exports.getId=function e(t){return wikiUtils.getTiddler(t).fields[\"tmap.id\"]};var getDublicates=exports.getDublicates=function e(t){var r=getId(t);if(!r){return[]}var i=wikiUtils.getTiddlersWithField(\"tmap.id\",r,{limit:2});delete i[wikiUtils.getTiddlerRef(t)];return Object.keys(i)};var keysOfItemsWithProperty=exports.keysOfItemsWithProperty=function e(t,r,i,a){t=getIterableCollection(t);var s=Object.keys(t);var o=[];a=typeof a===\"number\"?a:s.length;for(var n=0,l=s.length;n<l;n++){var u=s[n];if(_typeof(t[u])===\"object\"&&t[u][r]){if(!i||t[u][r]===i){o.push(u);if(o.length===a){break}}}}return o};var keyOfItemWithProperty=exports.keyOfItemWithProperty=function e(t,r,i){return keysOfItemsWithProperty(t,r,i,1)[0]};var getLookupTable=exports.getLookupTable=function e(t,r){t=getIterableCollection(t);var i=basicUtils.makeHashMap();var a=Object.keys(t);for(var s=0,o=a.length;s<o;s++){var n=a[s];var l=r?t[n][r]:t[n];var u=typeof l===\"undefined\"?\"undefined\":_typeof(l);if(u===\"string\"&&l!==\"\"||u===\"number\"){if(!i[l]){i[l]=r?t[n]:true;continue}}if(r){throw new Error('Cannot use \"'+l+'\" as lookup table index')}}return i};var getArrayValuesAsHashmapKeys=exports.getArrayValuesAsHashmapKeys=getLookupTable;var getSnapshotTitle=exports.getSnapshotTitle=function e(t,r){return\"Snapshot – \"+t+\" (\"+(new Date).toDateString()+\").\"+(r||\"png\")};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/tmap.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/utils": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/utils",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.utils=undefined;var _extends=Object.assign||function(i){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var e in t){if(Object.prototype.hasOwnProperty.call(t,e)){i[e]=t[e]}}}return i};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/utils\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);var _thirdParty=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty\");var thirdPartyUtils=_interopRequireWildcard(_thirdParty);var _wiki=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\");var wikiUtils=_interopRequireWildcard(_wiki);var _tmap=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap\");var tMapUtils=_interopRequireWildcard(_tmap);function _interopRequireWildcard(i){if(i&&i.__esModule){return i}else{var r={};if(i!=null){for(var t in i){if(Object.prototype.hasOwnProperty.call(i,t))r[t]=i[t]}}r.default=i;return r}}var utils=exports.utils=_extends({},basicUtils,thirdPartyUtils,wikiUtils,tMapUtils);exports.default=utils;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/utils.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.touch=exports.addTiddler=exports.getTiddlersByPrefix=exports.getTiddlerWithField=exports.getTiddlersWithField=exports.deleteByPrefix=exports.cp=exports.mv=exports.addTWlisteners=exports.getChildWidgetByProperty=exports.getMergedTiddlers=exports.isSystemOrDraft=exports.isDraft=exports.setText=exports.getText=exports.isLeftVersionGreater=exports.getEntry=exports.setEntry=exports.clone=exports.writeFieldData=exports.parseFieldData=exports.isPreviewed=exports.notify=exports.registerTransclude=exports.getElementNode=exports.getTiddlerNode=exports.getTranscludeNode=exports.isMatch=exports.getMatches=exports.moveFieldValues=exports.deleteTiddlers=exports.setField=exports.setSidebarTab=exports.tiddlerExists=exports.getField=exports.getTiddler=exports.getTiddlerRef=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var getTiddlerRef=exports.getTiddlerRef=function e(t){if(t instanceof $tw.Tiddler){return t.fields.title}else if(typeof t===\"string\"){return t}else{throw new _exception.InvalidArgumentException(t)}};var getTiddler=exports.getTiddler=function e(t){return $tw.wiki.getTiddler(t instanceof $tw.Tiddler?t.fields.title:t)};var getField=exports.getField=function e(t,r){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"\";var d=getTiddler(t);return!d?i:d.fields[r]||i};var tiddlerExists=exports.tiddlerExists=function e(t){if(!t){return false}var r=getTiddlerRef(t);return Boolean(r&&($tw.wiki.tiddlerExists(r)||$tw.wiki.isShadowTiddler(r)))};var setSidebarTab=exports.setSidebarTab=function e(t){setText(getTiddlersByPrefix(\"$:/state/tab/sidebar-\")[0],t)};var setField=exports.setField=function e(t,r,i){if(!t||!r){return}var d=getTiddlerRef(t);var s=_defineProperty({title:d},r,i);var n=$tw.wiki.getTiddler(d,true);if(r!==\"text\"&&n&&!n.fields.text){s.text=\"\"}n=new $tw.Tiddler(n,s);$tw.wiki.addTiddler(n);return n};var deleteTiddlers=exports.deleteTiddlers=function e(t){var r=Object.keys(t);var i=$tw.wiki.getTiddlerList(\"$:/StoryList\");for(var d=r.length;d--;){var s=getTiddlerRef(t[r[d]]);if(!$tw.wiki.tiddlerExists(t[r[d]])){continue}var n=i.indexOf(s);if(n!==-1){i.splice(n,1);setField(\"$:/StoryList\",\"list\",i)}$tw.wiki.deleteTiddler(s)}};var moveFieldValues=exports.moveFieldValues=function e(t,r,i,d,s){if(t===r)return;var n=s||$tw.wiki.allTitles();for(var l=n.length;l--;){var a=getTiddler(n[l]);if(a.isDraft()||!a.fields[t]){continue}if(!d&&$tw.wiki.isSystemTiddler(n[l])){continue}var o=_defineProperty({},r,a.fields[t]);if(i){o[t]=undefined}$tw.wiki.addTiddler(new $tw.Tiddler(a,o))}};var getMatches=exports.getMatches=function e(t,r,i){var d=undefined;var s=$tw.wiki;if(typeof t===\"string\"){t=s.compileFilter(t)}if(r!=null&&(typeof r===\"undefined\"?\"undefined\":_typeof(r))===\"object\"){if(!Array.isArray(r)){r=Object.keys(r)}d=function e(t){for(var i=r.length;i--;){var d=s.getTiddler(r[i]);t(d,r[i])}}}return t.call(s,d,i)};var isMatch=exports.isMatch=function e(t,r){return getTiddlerRef(t)===getMatches(r,[getTiddlerRef(t)])[0]};var getTranscludeNode=exports.getTranscludeNode=function e(t,r){return{type:\"transclude\",attributes:{tiddler:{type:\"string\",value:getTiddlerRef(t)}},children:[],isBlock:!!r}};var getTiddlerNode=exports.getTiddlerNode=function e(t){return{type:\"tiddler\",attributes:{tiddler:{type:\"string\",value:getTiddlerRef(t)}},children:[]}};var getElementNode=exports.getElementNode=function e(t,r,i){return{type:\"element\",tag:t,attributes:{class:{type:\"string\",value:r}},children:i?[{type:\"text\",text:i}]:[]}};var registerTransclude=exports.registerTransclude=function e(t,r,i){basicUtils.removeArrayElement(t.children,t[r]);t[r]=t.makeChildWidget(getTranscludeNode(i,true));t.children.push(t[r]);return t[r]};var notify=exports.notify=function e(t){var r=\"$:/temp/tiddlymap/notify\";$tw.wiki.addTiddler(new $tw.Tiddler({title:r,text:t}));$tw.notifier.display(r)};var isPreviewed=exports.isPreviewed=function e(t){if(!t){return false}if(t.domNode.isTiddlyWikiFakeDom){return true}if(t.getVariable(\"tv-tiddler-preview\")){return true}else{var r=\"tc-tiddler-preview-preview\";return!!basicUtils.getAncestorWithClass(t.parentDomNode,r)}};var parseFieldData=exports.parseFieldData=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"text\";var i=arguments[2];var d=getTiddler(t);if(!d){return i}return basicUtils.parseJSON(d.fields[r],i)};var writeFieldData=exports.writeFieldData=function e(t,r,i,d){if((typeof i===\"undefined\"?\"undefined\":_typeof(i))!==\"object\"){return}d=parseInt(d);d=d>0&&r===\"text\"?d:0;setField(t,r,JSON.stringify(i,null,d))};var clone=exports.clone=function e(t,r){setField(t,\"title\",r)};var setEntry=exports.setEntry=function e(t,r,i){$tw.wiki.setText(getTiddlerRef(t),null,r,i)};var getEntry=exports.getEntry=function e(t,r,i){var d=$tw.wiki.getTiddlerData(getTiddlerRef(t),{});return d[r]==null?i:d[r]};var isLeftVersionGreater=exports.isLeftVersionGreater=function e(t,r){return t!==r&&$tw.utils.checkVersions(t,r)};var getText=exports.getText=function e(t,r){return getField(t,\"text\",r)};var setText=exports.setText=function e(t,r){setField(t,\"text\",r)};var isDraft=exports.isDraft=function e(t){var r=getTiddler(t);return r&&r.isDraft()};var isSystemOrDraft=exports.isSystemOrDraft=function e(t){return $tw.wiki.isSystemTiddler(getTiddlerRef(t))||isDraft(t)};var getMergedTiddlers=exports.getMergedTiddlers=function e(t,r){if(!Array.isArray(t)){return}for(var i=t.length;i--;){t[i]=getTiddler(t[i])}if(!t.length){return}t.push({title:r||t[0].fields.title},$tw.wiki.getModificationFields(),$tw.wiki.getCreationFields());t.unshift(null);return new(Function.prototype.bind.apply($tw.Tiddler,t))};var getChildWidgetByProperty=exports.getChildWidgetByProperty=function e(t,r,i){var d=t.children;for(var s=d.length;s--;){var n=d[s];if(n[r]===i){return n}else{n=e(n,r,i);if(n){return n}}}};var addTWlisteners=exports.addTWlisteners=function e(t,r,i){for(var d in t){r.addEventListener(d,t[d].bind(i))}};var mv=exports.mv=function e(t,r,i,d){if(t===r||!t||!r){return}i=typeof i===\"boolean\"?i:false;d=typeof d===\"boolean\"?d:true;var s=getTiddlersByPrefix(t);var n=basicUtils.makeHashMap();for(var l=s.length;l--;){var a=s[l];var o=a.replace(t,r);if($tw.wiki.tiddlerExists(o)&&!i){return}n[a]=o}for(var f in n){setField(f,\"title\",n[f]);if(d){$tw.wiki.deleteTiddler(f)}}return n};var cp=exports.cp=function e(t,r,i){return mv(t,r,i,false)};var deleteByPrefix=exports.deleteByPrefix=function e(t,r){if(!t){return}r=r||$tw.wiki.allTitles();var i=[];for(var d=r.length;d--;){if(basicUtils.startsWith(r[d],t)){$tw.wiki.deleteTiddler(r[d]);i.push(i[d])}}return i};var getTiddlersWithField=exports.getTiddlersWithField=function e(t,r){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var d=i.tiddlers||$tw.wiki.allTitles();var s=i.isIncludeDrafts===true;var n=basicUtils.makeHashMap();var l=Object.keys(d);var a=$tw.utils.hop;var o=i.limit||0;for(var f=l.length;f--;){var u=getTiddler(d[l[f]]);var p=u.fields;if(a(p,t)&&(!a(p,\"draft.of\")||s)){if(!r||p[t]===r){n[p.title]=u;if(--o===0){break}}}}return n};var getTiddlerWithField=exports.getTiddlerWithField=function e(t,r){return Object.keys(getTiddlersWithField(t,r,{limit:1}))[0]};var getTiddlersByPrefix=exports.getTiddlersByPrefix=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=r.removePrefix===true;var d=[];var s=$tw.wiki[r.iterator||\"each\"];s(function(e,r){if(basicUtils.startsWith(r,t)){d.push(i?basicUtils.getWithoutPrefix(r,t):r)}});return d};var addTiddler=exports.addTiddler=function e(t,r){var i=getTiddler(t);if(!r&&i){return i}i=new $tw.Tiddler({title:t,text:\"\"},$tw.wiki.getModificationFields(),$tw.wiki.getCreationFields());$tw.wiki.addTiddler(i);return i};var touch=exports.touch=function e(t){if(!t){return}var r=new $tw.Tiddler(getTiddler(t),$tw.wiki.getModificationFields());$tw.wiki.addTiddler(r)};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/wiki.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/macro/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/macro/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.params=exports.name=exports.run=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\ntitle: $:/plugins/felixhayashi/tiddlymap/js/macro/tmap\ntype: application/javascript\nmodule-type: macro\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var name=\"tmap\";var params=getParamSlots(5);function run(){this.substVarRefs=this.substituteVariableReferences;var e=command[arguments[0]];var t=null;if(typeof e===\"function\"){var r=Array.prototype.slice.call(arguments,1);t=e.apply(this,r)}return typeof t===\"string\"?t:\"\"}function getParamSlots(e){var t=[];for(var r=0;r<e;r++){t.push({name:\"arg\"+r})}return t}var command=_utils2.default.makeHashMap();command.basename=function(e){var t=this.getVariable(\"currentTiddler\");return _utils2.default.getBasename(t,e)};command.datauri=function(e,t){return _utils2.default.getDataUri(e,t,true)};command.testJSON=function(e){var t=$tw.wiki.getTiddler(this.getVariable(\"currentTiddler\"));try{JSON.parse(t.fields[e]);return\"valid\"}catch(e){return\"malformed\"}};command.splitAndSelect=function(e,t){var r=this.getVariable(\"currentTiddler\");var a=r.split(e)[t];return a!=null?a:r};command.concat=function(){var e=\"\";for(var t=1,r=arguments.length;t<r;t++){e+=arguments[t]}return e};command.uuid=function(){return _utils2.default.genUUID()};command.regRepl=function(){var e=this.substVarRefs(arguments[0]);var t=arguments[1];var r=this.substVarRefs(arguments[2]);var a=this.substVarRefs(arguments[4]);return e.replace(new RegExp(t,a),r)};command.halfOfString=function(){var e=this.substVarRefs(arguments[0]);if(!e){return\"\"}return e.substr(0,Math.ceil(e.length/2))};command.isETyVisible=function(e,t){e=new _ViewAbstraction2.default(e);var r=command.getETyId.call(this,e,t);return\"\"+e.isEdgeTypeVisible(r)};command.getETyId=function(e,t){e=new _ViewAbstraction2.default(e);var r=_EdgeType2.default.getInstance(t||this.getVariable(\"currentTiddler\"));if(!r.namespace){var a=_EdgeType2.default.getIdParts(r.id),n=a.marker,i=a.name;var u=e.getConfig(\"edge_type_namespace\");r=_EdgeType2.default.getInstance(_EdgeType2.default.getId(n,u,i))}return r.id};command.scale=function(){var e=\"\";for(var t=1,r=parseInt(arguments[0]);t<r;t++){e+=\"[[\"+t+\"]]\"}return e};command.mergeFields=function(){var e=_utils2.default.getTiddler(arguments[0]);var t=arguments[1];var r=arguments[2]||\" \";if(!e)return;var a=_utils2.default.getPropertiesByPrefix(e.fields,t);var n=\"\";for(var i in a){if(typeof a[i]===\"string\"){n+=a[i]+r}}return n};command.option=function(e,t){if(typeof $tm==\"undefined\"){return\"\"}var r=$tm;var a=e.split(\".\");for(var n=0;n<a.length;n++){if((typeof r===\"undefined\"?\"undefined\":_typeof(r))==\"object\"&&r[a[n]]){r=r[a[n]]}}if(t&&typeof r===\"string\"&&_utils2.default.hasSubString(t)&&r.lastIndexOf(t)+t.length===r.length){r=r+t}return r};exports.run=run;exports.name=name;exports.params=params;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/macro/MapMacro.js.map\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/plugins/felixhayashi/tiddlymap/js/Adapter": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Adapter",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Adapter\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _contrastcolour=require(\"$:/core/modules/macros/contrastcolour.js\");function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Adapter=function(){function e(t,i){_classCallCheck(this,e);this.getTiddlerById=t.getTiddlerById.bind(t);this.getId=t.getIdByTiddler.bind(t);this.assignId=t.assignId.bind(t);this.edgeTypeSubscriberRegistry=i;this.indeces=$tm.indeces;this.wiki=$tw.wiki;this.visShapesWithTextInside=_utils2.default.getLookupTable([\"ellipse\",\"circle\",\"database\",\"box\",\"text\"])}_createClass(e,[{key:\"deleteEdge\",value:function e(t){return this._processEdge(t,\"delete\")}},{key:\"insertEdge\",value:function e(t){return this._processEdge(t,\"insert\")}},{key:\"deleteEdges\",value:function e(t){t=_utils2.default.convert(t,\"array\");for(var i=t.length;i--;){this.deleteEdge(t[i])}}},{key:\"_processEdge\",value:function e(t,i){$tm.logger(\"debug\",\"Edge\",i,t);var r=this.getTiddlerById(t.from);if(!r||!_utils2.default.tiddlerExists(r)){return}var a=_utils2.default.getTiddler(r);var s=this.indeces.allETy[t.type]||_EdgeType2.default.getInstance(t.type);var l=this.edgeTypeSubscriberRegistry.getAllForType(s);var n=i+\"Edge\";for(var d=l.length;d--;){l[d][n](a,t,s)}if(i===\"insert\"&&!s.exists()){s.save()}return t}},{key:\"getAdjacencyList\",value:function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};$tm.start(\"Creating adjacency list\");if(!i.edges){var r=_utils2.default.getMatches(env.selector.allPotentialNodes);i.edges=this.getEdgesForSet(r,i.toWL,i.typeWL)}var a=_utils2.default.groupByProperty(i.edges,t||\"to\");$tm.stop(\"Creating adjacency list\");return a}},{key:\"getNeighbours\",value:function e(t){var i=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};$tm.start(\"Get neighbours\");var a=r.addProperties,s=r.toWL,l=r.typeWL,n=r.steps;var d=this.indeces.allETy;var o=_utils2.default.getArrayValuesAsHashmapKeys(t);var u=_ViewAbstraction2.default.exists(r.view)?new _ViewAbstraction2.default(r.view):null;var f=_utils2.default.makeHashMap();var g=_utils2.default.makeHashMap();var c=parseInt(n)>0?n:1;var v=r.direction||u&&u.getConfig(\"neighbourhood_directions\");var y=!v||v===\"both\";var h=y||v===\"in\";var p=y||v===\"out\";var _=u&&\"[all[]] \"+u.getNodeFilter(\"raw\");var b=this.getAdjacencyList(\"to\",r);var m=function e(t,r,s){f[t.id]=t;var l=i.getTiddlerById(t[r]);if(u&&_utils2.default.isTrue($tm.config.sys.nodeFilterNeighbours)&&!_utils2.default.isMatch(l,_)){return}if(!o[l]){o[l]=true;var n=i.makeNode(l,a);if(n){g[n.id]=n;s.push(l)}}};var w=void 0;for(w=0;w<c&&t.length;w++){var T=[];for(var k=t.length;k--;){if(_utils2.default.isSystemOrDraft(t[k])){continue}var E=this.getEdges(t[k],s,l);for(var N in E){var A=d[E[N].type];if(y||p&&A.toArrow||h&&A.invertedArrow){m(E[N],\"to\",T)}}var I=b[this.getId(t[k])];if(!I){continue}for(var x=I.length;x--;){var j=d[I[x].type];if(y||h&&j.toArrow||p&&j.invertedArrow){m(I[x],\"from\",T)}}}t=T}var S={nodes:g,edges:f};$tm.logger(\"debug\",\"Retrieved neighbourhood\",S,\"steps\",w);$tm.stop(\"Get neighbours\");return S}},{key:\"getGraph\",value:function e(t){var i=t.view,r=t.matches,a=t.includeNeighboursOf;$tm.start(\"Assembling Graph\");i=new _ViewAbstraction2.default(i);r=r||_utils2.default.getMatches(i.getNodeFilter(\"compiled\"));var s=parseInt(i.getConfig(\"neighbourhood_scope\"));var l=i.getEdgeTypeFilter(\"whitelist\");var n=_utils2.default.getArrayValuesAsHashmapKeys(r);var d={edges:this.getEdgesForSet(r,n,l),nodes:this.selectNodesByReferences(r,{view:i,outputType:\"hashmap\"})};if(s){var o=a?r.filter(a):r;var u=this.getNeighbours(o,{steps:s,view:i,typeWL:l,addProperties:{type:\"tmap:neighbour\"}});Object.assign(d.nodes,u.nodes);Object.assign(d.edges,u.edges);if(i&&i.isEnabled(\"show_inter_neighbour_edges\")){var f=this.getTiddlersByIds(u.nodes);var g=_utils2.default.getArrayValuesAsHashmapKeys(f);Object.assign(d.edges,this.getEdgesForSet(f,g))}}this.attachStylesToNodes(d.nodes,i);$tm.stop(\"Assembling Graph\");$tm.logger(\"debug\",\"Assembled graph:\",d);return d}},{key:\"getEdges\",value:function e(t,i,r){var a=_utils2.default.getTiddler(t);if(!a||_utils2.default.isSystemOrDraft(a)){return}var s=this.indeces.allETy;var l=_utils2.default.makeHashMap();var n=this.edgeTypeSubscriberRegistry.getAll();for(var d=0,o=n.length;d<o;d++){Object.assign(l,n[d].loadEdges(a,i,r))}for(var u in l){var f=l[u];if(!f.from||!f.to){continue}var g=s[f.type]||_EdgeType2.default.getInstance(f.type);addStyleToEdge(l[u],g);l[u]=f}return l}},{key:\"getEdgesForSet\",value:function e(t,i,r){var a=_utils2.default.makeHashMap();for(var s=t.length;s--;){Object.assign(a,this.getEdges(t[s],i,r))}return a}},{key:\"selectEdgesByType\",value:function e(t){var i=_utils2.default.makeHashMap(_defineProperty({},_EdgeType2.default.getInstance(t).id,true));return this.getEdgesForSet(this.getAllPotentialNodes(),null,i)}},{key:\"getAllPotentialNodes\",value:function e(){return _utils2.default.getMatches($tm.selector.allPotentialNodes)}},{key:\"_processEdgesWithType\",value:function e(t,i){var r=i.action,a=i.newName;t=_EdgeType2.default.getInstance(t);$tm.logger(\"debug\",\"Processing edges\",t,r);var s=this.selectEdgesByType(t);if(r===\"rename\"){new _EdgeType2.default(a,t).save()}for(var l in s){this._processEdge(s[l],\"delete\");if(r===\"rename\"){s[l].type=a;this._processEdge(s[l],\"insert\")}}this.wiki.deleteTiddler(t.fullPath)}},{key:\"selectNodesByReferences\",value:function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=i.addProperties,a=i.outputType;var s=_utils2.default.makeHashMap();var l=Object.keys(t);for(var n=l.length;n--;){var d=this.makeNode(t[l[n]],r);if(d){s[d.id]=d}}return _utils2.default.convert(s,a)}},{key:\"selectNodesByIds\",value:function e(t,i){var r=this.getTiddlersByIds(t);return this.selectNodesByReferences(r,i)}},{key:\"selectNodeById\",value:function e(t,i){i=Object.assign({},i,{outputType:\"hashmap\"});var r=this.selectNodesByIds([t],i);return r[t]}},{key:\"removeNodeType\",value:function e(t){t=_NodeType2.default.getInstance(t);this.wiki.deleteTiddler(t.fullPath)}},{key:\"makeNode\",value:function e(t,i){var r=_utils2.default.getTiddler(t);if(!r||_utils2.default.isSystemOrDraft(r))return;var a=_utils2.default.merge({},i);a.id=this.assignId(r);a.tRef=r.fields.title;var s=r.fields[$tm.field.nodeLabel];a.label=(s&&$tm.field.nodeLabel!==\"title\"?this.wiki.renderText(\"text/plain\",\"text/vnd-tiddlywiki\",s):r.fields.title).replace(\"\\\\n\",\"\\n\");return a}},{key:\"getInheritedNodeStyles\",value:function e(t){var i=this.getTiddlersByIds(t);var r={};var a=this.indeces.glNTy;for(var s=a.length;s--;){var l=a[s];var n=[];if(l.id===\"tmap:neighbour\"){for(var d in t){if(t[d].type===\"tmap:neighbour\"){n.push(this.getTiddlerById(d))}}}else{n=l.getInheritors(i)}for(var o=n.length;o--;){var u=n[o];var f=r[u]=r[u]||{};f.style=_utils2.default.merge(f.style||{},l.style);if(l[\"fa-icon\"]){f[\"fa-icon\"]=l[\"fa-icon\"]}else if(l[\"tw-icon\"]){f[\"tw-icon\"]=l[\"tw-icon\"]}}}return r}},{key:\"attachStylesToNodes\",value:function e(t,i){i=_ViewAbstraction2.default.exists(i)?new _ViewAbstraction2.default(i):null;var r=this.getInheritedNodeStyles(t);var a=i?i.getNodeData():_utils2.default.makeHashMap();var s=i&&!i.isEnabled(\"physics_mode\");for(var l in t){var n=this.getTiddlerById(l);var d=this.wiki.getTiddler(n);var o=d.fields;var u=t[l];var f=void 0;var g=r[n];if(g){_utils2.default.merge(u,g.style);f=getIcon(g[\"fa-icon\"],g[\"tw-icon\"])}if(o.color){u.color=o.color}if(o[\"tmap.style\"]){_utils2.default.merge(u,_utils2.default.parseJSON(o[\"tmap.style\"]))}f=getIcon(o[\"tmap.fa-icon\"],o[\"icon\"])||f;var c=a[l];if(c){_utils2.default.merge(u,c);if(s){u.fixed={x:u.x!=null,y:u.y!=null}}f=getIcon(c[\"fa-icon\"],c[\"tw-icon\"])||f}var v=u.color!==null&&_typeof(u.color)===\"object\";var y=v?u.color.background:u.color;u.color={background:y,border:v?u.color.border:undefined};addNodeIcon(u,f);u.font=u.font||{};if(u.shape&&!this.visShapesWithTextInside[u.shape]){u.font.color=\"black\"}else if(!u.font.color&&y){u.font.color=(0,_contrastcolour.run)(y,y,\"black\",\"white\")}if(u.shape===\"icon\"&&_typeof(u.icon)===\"object\"){u.icon.color=y}}if(i){var h=t[i.getConfig(\"central-topic\")];if(h){_utils2.default.merge(h,this.indeces.glNTyById[\"tmap:central-topic\"].style)}}}},{key:\"deleteNode\",value:function e(t){if(!t){return}var i=(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"?t.id:t;var r=this.getTiddlerById(i);if(r){_utils2.default.deleteTiddlers([r])}var a=_utils2.default.getMatches(env.selector.allViews);for(var s=a.length;s--;){var l=new _ViewAbstraction2.default(a[s]);l.removeNode(i)}var n=this.getNeighbours([r]);this.deleteEdges(n.edges)}},{key:\"deleteNodes\",value:function e(t){for(var i=t.length;i--;){this.deleteNode(t[i])}}},{key:\"insertNode\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var i=arguments[1];var r=arguments[2];t.label=this.wiki.generateNewTitle(t.label||_utils2.default.getRandomLabel());var a=new $tw.Tiddler({text:\"\"},r,{title:t.label,\"tmap.id\":null},this.wiki.getModificationFields(),this.wiki.getCreationFields());this.wiki.addTiddler(a);t=this.makeNode(a,t);if(_ViewAbstraction2.default.exists(i)){new _ViewAbstraction2.default(i).addNode(t)}return t}},{key:\"getTiddlersByIds\",value:function e(t){if(Array.isArray(t)){t=_utils2.default.getArrayValuesAsHashmapKeys(t)}else if(t instanceof _vis2.default.DataSet){t=_utils2.default.getLookupTable(t,\"id\")}var i=[];for(var r in t){var a=this.getTiddlerById(r);if(a){i.push(a)}}return i}}]);return e}();var getFAdigits=function e(t){return t.length===4?t:t.substr(3,4)};var addNodeIcon=function e(t,i){if(!i){return}if(i.fa){t.shape=\"icon\";t.icon={shape:\"icon\",face:\"FontAwesome\",color:t.color,code:String.fromCharCode(\"0x\"+getFAdigits(i.fa))};if(t.size){t.icon.size=t.size}return}if(i.tw){var r=_utils2.default.getTiddler(i.tw);if(!r){return}if(r.fields[\"_canonical_uri\"]){t.image=r.fields[\"_canonical_uri\"];t.shape=\"image\"}else if(r.fields.text){t.image=_utils2.default.getDataUri(r);t.shape=\"image\"}}};var removeObsoleteViewData=function e(t,i){if(!_ViewAbstraction2.default.exists(i)||!t){return}i=new _ViewAbstraction2.default(i);var r=i.getNodeData();var a=0;for(var s in r){if(t[s]===undefined&&r[s]!=null){r[s]=undefined;a++}}if(a){$tm.logger(\"debug\",\"[Cleanup]\",\"Removed obsolete node data:\",i.getLabel(),a);i.saveNodeData(r)}};var addStyleToEdge=function e(t,i){t=Object.assign(t,i.style);if(_utils2.default.isTrue(i[\"show-label\"],true)){t.label=i.getLabel()}};var getIcon=function e(t,i){return t&&{fa:t}||i&&{tw:i}};exports.default=Adapter;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Adapter.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/CallbackManager",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var l=t[a];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(e,l.key,l)}}return function(t,a,l){if(a)e(t.prototype,a);if(l)e(t,l);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/CallbackManager\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var CallbackManager=function(){function e(){_classCallCheck(this,e);this.callbacks=_utils2.default.makeHashMap();this.logger=$tm.logger;this.wiki=$tw.wiki}_createClass(e,[{key:\"add\",value:function e(t,a){var l=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;this.logger(\"debug\",'A callback was registered for changes of \"'+t+'\"');this.callbacks[t]={execute:a,isDeleteOnCall:l}}},{key:\"remove\",value:function e(t){if(!t){return}if(typeof t===\"string\"){t=[t]}for(var a=t.length;a--;){var l=t[a];if(this.callbacks[l]){this.logger(\"debug\",'Deleting callback for \"'+l+'\"');delete this.callbacks[l]}}}},{key:\"refresh\",value:function e(t){if(this.callbacks.length==0){return}for(var a in t){if(!this.callbacks[a]){continue}if(this.wiki.getTiddler(a)){this.logger(\"debug\",\"Executing a callback for: \"+a);this.callbacks[a].execute(a);if(!this.callbacks.isDeleteOnCall){continue}}this.remove(a)}}}]);return e}();exports.default=CallbackManager;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/CallbackManager.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/startup/caretaker": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/startup/caretaker",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.startup=exports.synchronous=exports.before=exports.after=exports.platforms=exports.name=undefined;var _rebuilders;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/startup/caretaker\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _vis=require(\"$:/plugins/felixhayashi/tiddlymap/js/config/vis\");var _vis2=_interopRequireDefault(_vis);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Fixer=require(\"$:/plugins/felixhayashi/tiddlymap/js/Fixer\");var _Fixer2=_interopRequireDefault(_Fixer);var _Adapter=require(\"$:/plugins/felixhayashi/tiddlymap/js/Adapter\");var _Adapter2=_interopRequireDefault(_Adapter);var _tracker=require(\"$:/plugins/felixhayashi/tiddlymap/js/services/tracker\");var _tracker2=_interopRequireDefault(_tracker);var _EdgeTypeSubscriberRegistry=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry\");var _EdgeTypeSubscriberRegistry2=_interopRequireDefault(_EdgeTypeSubscriberRegistry);var _DialogManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/DialogManager\");var _DialogManager2=_interopRequireDefault(_DialogManager);var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _vis3=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis4=_interopRequireDefault(_vis3);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _URL=require(\"$:/plugins/felixhayashi/tiddlymap/js/URL\");var _URL2=_interopRequireDefault(_URL);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}var init=function e(){window.$tm=_extends({},env,{utils:_utils2.default,url:new _URL2.default(window.location.href)});cleanup();registerPublicClasses($tm);updateGlobals($tm);createMetaFile($tm.logger);var t=attachIndeces($tm);var r=getInitializedServices(t);Object.assign($tm,r);loadDefaultView($tm.config.sys.defaultView);r.fixer.fix();$tm.registry=[];setInterval(routineCheck,5e3);registerChangeListener($tm.callbackManager);registerMousemoveListener();registerClickListener();if($tm.url.query[\"tmap-enlarged\"]){prepareFullscreenStart($tm.url)}$tm.logger(\"warn\",\"TiddlyMap's caretaker successfully started\")};var getInitializedServices=function e(t){var r=new _tracker2.default(d);var i=$tw.modules.applyMethods(\"tmap.edgetypehandler\");var a=new _EdgeTypeSubscriberRegistry2.default(i,t.allETy,r);var s=new _Adapter2.default(r,a);var l=new _CallbackManager2.default;var n=new _DialogManager2.default(l);var d=new _Fixer2.default(s,$tm.logger,t.glNTy);return{edgeTypeSubscriberRegistry:a,tracker:r,adapter:s,callbackManager:l,dialogManager:n,fixer:d}};var registerPublicClasses=function e(t){t.keycharm=_vis4.default.keycharm;t.NodeType=_NodeType2.default;t.EdgeType=_EdgeType2.default;t.ViewAbstraction=_ViewAbstraction2.default};var attachOptions=function e(t){var r=t;if(!r.config)r.config=_utils2.default.makeHashMap();r.config.sys=_utils2.default.merge(r.config.sys,_utils2.default.unflatten($tw.wiki.getTiddlerData(env.ref.sysUserConf)));r.config.vis=_utils2.default.merge({},_vis2.default,_utils2.default.parseFieldData(env.ref.visUserConf));if(!r.field)r.field=_utils2.default.makeHashMap();$tw.utils.extend(r.field,r.config.sys.field)};var attachIndeces=function e(t){$tm.start(\"Attaching Indeces\");t.indeces=t.indeces||{};updateNodeTypesIndeces(t.indeces);updateEdgeTypesIndeces(t.indeces);$tm.stop(\"Attaching Indeces\");return t.indeces};var updateNodeTypesIndeces=function e(t){t=t||$tm.indeces;var r=$tm.path.nodeTypes;var i=t.glNTy=[];var a=t.glNTyById=_utils2.default.makeHashMap();$tw.wiki.eachTiddlerPlusShadows(function(e,t){if(_utils2.default.startsWith(t,r)){var s=_NodeType2.default.getInstance(t);a[s.id]=s;i.push(s)}});i.sort(function(e,t){return e.priority-t.priority})};var updateEdgeTypesIndeces=function e(t){t=t||$tm.indeces;var r=$tm.path.edgeTypes;var i=t.allETy=_utils2.default.makeHashMap();$tw.wiki.eachTiddlerPlusShadows(function(e,t){if(_utils2.default.startsWith(t,r)){var a=_EdgeType2.default.getInstance(t);i[a.id]=a}});if($tm.edgeTypeSubscriberRegistry){$tm.edgeTypeSubscriberRegistry.updateIndex(i)}};var attachFunctions=function e(t){var r=t;var i=function e(){};if(_utils2.default.isTrue($tm.config.sys.debug,false)&&console){r.logger=function(){if(arguments.length<2)return;var e=Array.prototype.slice.call(arguments);var t=e.shift(e);var r=console.hasOwnProperty(t)?t:\"debug\";console[r].apply(console,e)};r.start=function(e){console.time(\"[timer] \"+e)};r.stop=function(e){console.timeEnd(\"[timer] \"+e)}}else{r.logger=r.start=r.stop=i}r.notify=_utils2.default.isTrue($tm.config.sys.notifications)?_utils2.default.notify:i};var routineCheck=function e(){for(var t=$tm.registry.length;t--;){var r=$tm.registry[t];if(!r.destruct||!r.isZombieWidget)return;if(r.isZombieWidget()){$tm.logger(\"warn\",\"a widget will be removed\");$tm.registry.splice(t,1);r.destruct()}}};var dispatchUpdates=function e(t){var r=$tm.registry;for(var i=r.length;i--;){var a=r[i];if(a.update&&a.isZombieWidget&&!a.isZombieWidget()){a.update(t)}}};var checkForClone=function e(t){var r=_utils2.default.getDublicates(t);if(!r.length){return}_utils2.default.setField(t,\"tmap.edges\",undefined);$tm.tracker.assignId(t,true);$tm.dialogManager.open(\"dublicateIdInfo\",{param:{changedTiddler:t.fields.title,filter:_utils2.default.joinAndWrap(r,\"[[\",\"]]\"),id:_utils2.default.getId(t)}})};var updateGlobals=function e(t){attachOptions($tm);attachFunctions($tm);$tm.logger(\"warn\",\"Rebuilt globals\")};var lastCurrentTiddler=null;var updateLiveViewTrigger=function e(t){if(t[\"$:/HistoryList\"]){var r=_utils2.default.getField(\"$:/HistoryList\",\"current-tiddler\")}else if(t[\"$:/temp/focussedTiddler\"]){var r=_utils2.default.getField(\"$:/temp/focussedTiddler\",\"text\")}if(r!=null&&lastCurrentTiddler!==r){lastCurrentTiddler=r;_utils2.default.setField(\"$:/temp/tmap/currentTiddler\",\"text\",r)}};var printChanges=function e(t,r){if(!_utils2.default.isTrue($tm.config.sys.debug,false))return;$tm.logger(\"warn\",\"=== Refresh \"+r+\" ===\");for(var i in t){var a=t[i].deleted?\"[Deleted]\":\"[Modified]\";$tm.logger(\"warn\",a,i,$tw.wiki.getTiddler(i))}};var registerMousemoveListener=function e(){$tm.mouse={};var t=function e(t){$tm.mouse=t};window.addEventListener(\"mousemove\",t,false)};var registerClickListener=function e(){var t=$tm.path.tempPopups;window.addEventListener(\"click\",function(e){var r=_utils2.default.getTiddlersByPrefix(t);for(var i=r.length;i--;){if(_utils2.default.getText(r[i]))break}if(i===-1)return;if(!$tw.utils.hasClass(e.target,\"tc-drop-down\")&&!_utils2.default.getAncestorWithClass(e.target,\"tc-drop-down\")){for(var i=r.length;i--;){_utils2.default.setText(r[i],\"\")}}},false)};var registerChangeListener=function e(t){var r=0;$tw.wiki.addEventListener(\"change\",function(e){$tm.start(\"Caretaker handling changes\");printChanges(e,r++);t.refresh(e);var i={changedTiddlers:{}};for(var a in e){var s=_utils2.default.getTiddler(a);if(s&&s.isDraft()){continue}var l=handleTiddlerChange(a,s,i);if(l){i.changedTiddlers[a]=e[a]}}dispatchUpdates(i);updateLiveViewTrigger(e);$tm.stop(\"Caretaker handling changes\")})};var rebuilders=(_rebuilders={},_defineProperty(_rebuilders,env.path.options,updateGlobals),_defineProperty(_rebuilders,env.path.nodeTypes,updateNodeTypesIndeces),_defineProperty(_rebuilders,env.path.edgeTypes,updateEdgeTypesIndeces),_rebuilders);var handleTiddlerChange=function e(t,r,i){if($tw.wiki.isSystemTiddler(t)){for(var a in rebuilders){if(_utils2.default.startsWith(t,a)&&!i[a]){$tm.logger(\"warn\",\"[System change]\",a);rebuilders[a]();i[a]=true}}}else if(r){if(r.fields.text===undefined){$tw.wiki.dispatchEvent(\"lazyLoad\",t);return false}checkForClone(r);$tm.tracker.assignId(r)}else{var s=$tm.tracker.getIdByTiddler(t);if(!s){return false}var l=_utils2.default.getTiddlerWithField(\"tmap.id\",s);if(l){$tm.logger(\"warn\",\"[Renamed]\",t,\"into\",l)}else{$tm.adapter.deleteNode(s)}}return true};var cleanup=function e(){_utils2.default.deleteByPrefix(\"$:/temp/felixhayashi\");_utils2.default.deleteByPrefix(\"$:/temp/tiddlymap\");_utils2.default.deleteByPrefix(\"$:/temp/tmap\")};var loadDefaultView=function e(t){if(t){_utils2.default.setText(env.ref.defaultViewHolder,$tm.config.sys.defaultView)}};var prepareFullscreenStart=function e(t){var r=env.ref,i=r.mainEditor,a=r.defaultViewHolder;_utils2.default.setSidebarTab(i);if(_ViewAbstraction2.default.exists(t)){t=new _ViewAbstraction2.default(t);_utils2.default.setField(a,\"text\",t.getLabel())}};var createMetaFile=function e(t){if(_utils2.default.tiddlerExists(env.ref.sysMeta)){return}t(\"warn\",\"Creating meta file\");var r=$tw.wiki.getTiddler(env.path.pluginRoot);$tw.wiki.setTiddlerData(env.ref.sysMeta,{originalVersion:r.fields.version,dataStructureState:\"0.6.9\",showWelcomeMessage:true})};var name=exports.name=\"tmap.caretaker\";var platforms=exports.platforms=[\"browser\"];var after=exports.after=[\"startup\"];var before=exports.before=[\"rootwidget\"];var synchronous=exports.synchronous=true;var startup=exports.startup=init;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Caretaker.js.map\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/tiddlymap/js/DialogManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/DialogManager",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var l=t[a];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(e,l.key,l)}}return function(t,a,l){if(a)e(t.prototype,a);if(l)e(t,l);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/DialogManager\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var DialogManager=function(){function e(t,a){_classCallCheck(this,e);this.callbackManager=t;this.context=a}_createClass(e,[{key:\"open\",value:function t(a){var l=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=arguments[2];if(_utils2.default.isTrue($tm.config.sys.suppressedDialogs[a],false)){$tm.logger(\"warning\",\"Suppressed dialog\",a);return}$tm.logger(\"debug\",\"Dialog param object\",l);if(typeof i===\"function\"&&this.context){i=i.bind(this.context)}var r=$tm.path.tempRoot+\"/dialog-\"+_utils2.default.genUUID();var n=_utils2.default.getTiddler($tm.path.dialogs+\"/\"+a);var u={title:r,buttons:n.fields[\"buttons\"]||\"ok_cancel\",classes:\"tmap-modal-content \"+n.fields[\"classes\"],output:r+\"/output\",result:r+\"/result\",temp:r+\"/temp\",template:n.fields.title,templateId:a,currentTiddler:r+\"/output\",text:_utils2.default.getText($tm.path.dialogs)};_utils2.default.touch(u.output);if(l.dialog){if(l.dialog.preselects){$tw.wiki.addTiddler(new $tw.Tiddler({title:u.output},_utils2.default.flatten(l.dialog.preselects)));delete l.dialog.preselects}_utils2.default.merge(u,l.dialog)}u.footer=_utils2.default.getText($tm.path.footers);u=_utils2.default.flatten(u);l=_utils2.default.flatten(l);var s=function t(a){e.getElement(\"hidden-close-button\").click();var l=$tw.wiki.getTiddler(a);var n=l.fields.text;var s=null;if(n){s=$tw.wiki.getTiddler(u.output)}else{$tm.notify(\"operation cancelled\")}if(typeof i===\"function\"){i(n,s)}_utils2.default.deleteByPrefix(r)};this.callbackManager.add(u.result,s,true);var o=new $tw.Tiddler(n,l,u);$tw.wiki.addTiddler(o);$tm.logger(\"debug\",\"Opening dialog\",o);$tw.rootWidget.dispatchEvent({type:\"tm-modal\",param:o.fields.title,paramObject:o.fields});e.addKeyBindings();return o}}],[{key:\"getElement\",value:function e(t){return _utils2.default.getFirstElementByClassName(\"tmap-\"+t)}},{key:\"addKeyBindings\",value:function t(){var a=$tm.keycharm({container:_utils2.default.getFirstElementByClassName(\"tc-modal\")});var l=/tmap-triggers-(.+?)-on-(.+?)(?:\\s|$)/;var i=document.getElementsByClassName(\"tmap-trigger-field\");var r=function t(r){var n=i[r].className.split(\" \");var u=function t(i){var r=n[i].match(l);if(!r){return\"continue\"}var u=r[1];var s=r[2];var o=e.getElement(u);if(!o){return\"continue\"}a.bind(s,function(){if(document.getElementsByClassName(n[i]).length){o.click()}})};for(var s=n.length;s--;){var o=u(s);if(o===\"continue\")continue}};for(var n=i.length;n--;){r(n)}}}]);return e}();exports.default=DialogManager;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/DialogManager.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/Fixer": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Fixer",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Fixer\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Fixer=function(){function e(t,i,r){_classCallCheck(this,e);this.adapter=t;this.logger=i;this.wiki=$tw.wiki;this.glNTy=r}_createClass(e,[{key:\"moveEdges\",value:function e(t,i){var r=_utils2.default.getTiddlersByPrefix(t);for(var a=0;a<r.length;a++){var u=_utils2.default.getBasename(r[a]);if(u===\"__noname__\"){u=\"tmap:unknown\"}u=_EdgeType2.default.getInstance(u);if(!u.exists()){u.save()}var n=this.wiki.getTiddlerData(r[a]);for(var s=0;s<n.length;s++){n[s].type=(i?i+\":\":\"\")+u.id;this.adapter.insertEdge(n[s])}this.wiki.deleteTiddler(r[a])}}},{key:\"executeUpgrade\",value:function e(t,i,r){if(!_utils2.default.isLeftVersionGreater(t,i)){return}this.logger(\"debug\",\"Upgrading data structure to \"+t);var a=r();_utils2.default.setEntry(env.ref.sysMeta,\"dataStructureState\",t);return a}},{key:\"fixId\",value:function e(){var t=this.wiki.getTiddlerData(env.ref.sysMeta,{});this.executeUpgrade(\"0.9.2\",t.dataStructureState,function(){if(_utils2.default.isLeftVersionGreater(\"0.9.2\",t.originalVersion)){var e=\"$:/plugins/felixhayashi/tiddlymap/config/sys/user\";var i=_utils2.default.getEntry(e,\"field.nodeId\",\"tmap.id\");_utils2.default.moveFieldValues(i,\"tmap.id\",true,false)}})}},{key:\"fix\",value:function e(){var t=this;var i=this.wiki.getTiddlerData(env.ref.sysMeta,{});this.logger(\"debug\",\"Fixer is started\");this.logger(\"debug\",\"Data-structure currently in use: \",i.dataStructureState);this.executeUpgrade(\"0.7.0\",i.dataStructureState,function(){t.moveEdges(\"$:/plugins/felixhayashi/tiddlymap/graph/edges\",null);var e=env.selector.allViews;var i=_utils2.default.getMatches(e);for(var r=0;r<i.length;r++){var a=new _ViewAbstraction2.default(i[r]);t.moveEdges(a.getRoot()+\"/graph/edges\",a)}});this.executeUpgrade(\"0.7.32\",i.dataStructureState,function(){if(!_ViewAbstraction2.default.exists(\"Live View\")){return}var e=new _ViewAbstraction2.default(\"Live View\");e.setNodeFilter(\"[field:title{$:/temp/tmap/currentTiddler}]\",true);e.setConfig({\"refresh-trigger\":null,\"refresh-triggers\":$tw.utils.stringifyList([\"$:/temp/tmap/currentTiddler\"])})});this.executeUpgrade(\"0.9.0\",i.dataStructureState,function(){var e=env.ref.visUserConf;var i=_utils2.default.unflatten(t.wiki.getTiddlerData(e,{}));if(_typeof(i.groups)===\"object\"){var r=_NodeType2.default.getInstance(\"tmap:neighbour\");r.setStyle(i.groups[\"neighbours\"]);r.save();delete i.groups;t.wiki.setTiddlerData(e,i)}});this.fixId();this.executeUpgrade(\"0.9.16\",i.dataStructureState,function(){for(var e=t.glNTy.length;e--;){t.glNTy[e].save(null,true)}});this.executeUpgrade(\"0.10.3\",i.dataStructureState,function(){var e=env.ref.liveTab;if(_utils2.default.getTiddler(e).hasTag(\"$:/tags/SideBar\")){this.wiki.deleteTiddler(e);_utils2.default.setField(e,\"tags\",\"$:/tags/SideBar\")}});this.executeUpgrade(\"0.11.0\",i.dataStructureState,function(){var e=_utils2.default.getMatches(env.selector.allViews);for(var t=e.length;t--;){var i=new _ViewAbstraction2.default(e[t]);var r=i.getEdgeTypeFilter(\"raw\");var a=\"edge_type_namespace\";i.setConfig(a,i.getConfig(a));var u=env.filter.defaultEdgeTypeFilter;if(r){var n=env.path.edgeTypes;r=_utils2.default.replaceAll(r,\"\",[n,n+\"/\",\"[prefix[\"+n+\"]]\",\"[prefix[\"+n+\"/]]\",[\"[suffix[tw-body:link]]\",\"[[tw-body:link]]\"],[\"[suffix[tw-list:tags]]\",\"[[tw-list:tags]]\"],[\"[suffix[tw-list:list]]\",\"[[tw-body:list]]\"],[\"[suffix[tmap:unknown]]\",\"[[tmap:unknown]]\"],[\"[suffix[unknown]]\",\"[[tmap:unknown]]\"]]);u=\"-[prefix[_]] \"+r}i.setEdgeTypeFilter(u)}})}}]);return e}();exports.default=Fixer;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Fixer.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/startup/listener": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/startup/listener",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.startup=exports.synchronous=exports.before=exports.after=exports.platforms=exports.name=undefined;var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _vis=require(\"$:/plugins/felixhayashi/tiddlymap/js/config/vis\");var _vis2=_interopRequireDefault(_vis);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var handleCancelDialog=function e(t){var a=t.param;_utils2.default.setField(a,\"text\",\"\")};\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/startup/listener\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var handleClearTiddler=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},a=t.paramObject;var r=a.title,d=a.keep;if(!r)return;var i=_utils2.default.getTiddler(r);var l=i?i.fields:{};var s=d?d.split():[];var n={title:r,text:\"\"};for(var p=s.length;p--;){var o=s[p];n[o]=l[o]}$tw.wiki.deleteTiddler(r);$tw.wiki.addTiddler(new $tw.Tiddler(n))};var handleMixTiddlers=function e(t){var a=t.paramObject,r=a===undefined?{}:a;var d=r.tiddlers,i=r.output;if(!d||!i)return;var l=$tw.utils.parseStringArray(d);var s=_utils2.default.getMergedTiddlers(l,i);$tw.wiki.addTiddler(s)};var handleConfirmDialog=function e(t){var a=t.param;_utils2.default.setField(a,\"text\",\"1\")};var handleSuppressDialog=function e(t){var a=t.paramObject;var r=a.dialog,d=a.suppress;if(_utils2.default.isTrue(d,false)){_utils2.default.setEntry($tm.ref.sysUserConf,\"suppressedDialogs.\"+r,true)}};var handleDownloadGraph=function e(t){var a=t.paramObject;var r=a.view;var d=$tm.adapter.getGraph({view:r});d.nodes=_utils2.default.convert(d.nodes,\"array\");d.edges=_utils2.default.convert(d.edges,\"array\");var i=\"$:/temp/tmap/export\";_utils2.default.setField(i,\"text\",JSON.stringify(d,null,2));$tw.rootWidget.dispatchEvent({type:\"tm-download-file\",param:i,paramObject:{filename:r+\".json\"}})};var handleConfigureSystem=function e(){var t=_utils2.default.getMatches($tm.selector.allPotentialNodes);var a=$tm.adapter.getEdgesForSet(t);var r=$tw.wiki.getTiddler($tm.path.pluginRoot).fields;var d=$tw.wiki.getTiddlerData($tm.ref.sysMeta);var i=_utils2.default.getTiddler($tm.ref.liveTab).hasTag(\"$:/tags/SideBar\");var l={numberOfNodes:\"\"+t.length,numberOfEdges:\"\"+Object.keys(a).length,pluginVersion:\"v\"+r.version,dataStructureVersion:\"v\"+d.dataStructureState,dialog:{preselects:{liveTab:\"\"+i,\"inherited-style\":JSON.stringify(_vis2.default),\"config.vis\":_utils2.default.getText($tm.ref.visUserConf),\"config.sys\":$tm.config.sys}}};$tm.dialogManager.open(\"globalConfig\",l,function(e,t){if(!e)return;var a=_utils2.default.getPropertiesByPrefix(t.fields,\"config.sys.\",true);$tw.wiki.setTiddlerData($tm.ref.sysUserConf,a);if(_utils2.default.isTrue(t.fields.liveTab,false)){_utils2.default.setField($tm.ref.liveTab,\"tags\",\"$:/tags/SideBar\")}else{$tw.wiki.deleteTiddler($tm.ref.liveTab)}_utils2.default.setField($tm.ref.visUserConf,\"text\",t.fields[\"config.vis\"])})};var handleGenerateWidget=function e(t){var a=t.paramObject,r=a===undefined?{}:a;var d={dialog:{preselects:{\"var.view\":r.view||$tm.misc.defaultViewLabel}}};$tm.dialogManager.open(\"widgetCodeGenerator\",d)};var handleRemoveEdge=function e(t){var a=t.paramObject;$tm.adapter.deleteEdge(a)};var handleCreateEdge=function e(t){var a=t.paramObject;var r=a.from,d=a.to,i=a.force;if(!r||!d)return;if(_utils2.default.tiddlerExists(r)&&_utils2.default.tiddlerExists(d)||i){_utils2.default.addTiddler(d);_utils2.default.addTiddler(r);var l=new _Edge2.default($tm.adapter.makeNode(r).id,$tm.adapter.makeNode(d).id,a.label,a.id);$tm.adapter.insertEdge(l);$tm.notify(\"Edge inserted\")}};var handleOpenTypeManager=function e(t){var a=t.type,r=t.paramObject,d=r===undefined?{}:r;var i=a.match(/tmap:tm-(.*)/)[1];if(i===\"manage-edge-types\"){var l=\"Edge-Type Manager\";var s=$tm.selector.allEdgeTypes;var n=$tm.path.edgeTypes}else{var l=\"Node-Type Manager\";var s=$tm.selector.allNodeTypes;var n=$tm.path.nodeTypes}var p={mode:i,topic:l,searchSelector:s,typeRootPath:n};var o=$tm.dialogManager.open(\"MapElementTypeManager\",p);if(d.type){handleLoadTypeForm({paramObject:{mode:i,id:d.type,output:o.fields[\"output\"]}})}};var handleLoadTypeForm=function e(t){var a=t.paramObject,r=a.mode,d=a.id,i=a.output;var l=i;var s=r===\"manage-edge-types\"?_EdgeType2.default.getInstance(d):_NodeType2.default.getInstance(d);s.save(l,true);if(r===\"manage-edge-types\"){var n=$tm.adapter.selectEdgesByType(s);var p=Object.keys(n).length;_utils2.default.setField(l,\"temp.usageCount\",p)}$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(l),{typeTRef:s.fullPath,\"temp.idImmutable\":s.isShipped?\"true\":\"\",\"temp.newId\":s.id,\"inherited-style\":JSON.stringify((r===\"manage-edge-types\"?$tm.config.vis.edges:$tm.config.vis.nodes)||{})}));_utils2.default.deleteByPrefix(\"$:/state/tabs/MapElementTypeManager\")};var handleSaveTypeForm=function e(t){var a=t.paramObject;var r=_utils2.default.getTiddler(a.output);if(!r)return;var d=r.fields.id;var i=a.mode;if(_utils2.default.isTrue(r.fields[\"temp.deleteType\"],false)){deleteType(i,d,r)}else{saveType(i,d,r)}};var deleteType=function e(t,a,r){var d=t===\"manage-edge-types\"?_EdgeType2.default.getInstance(a):_NodeType2.default.getInstance(a);$tm.logger(\"debug\",\"Deleting type\",d);if(t===\"manage-edge-types\"){$tm.adapter._processEdgesWithType(d,{action:\"delete\"})}else{$tm.adapter.removeNodeType(d)}$tw.wiki.addTiddler(new $tw.Tiddler({title:_utils2.default.getTiddlerRef(r)}));$tm.notify(\"Deleted type\")};var saveType=function e(t,a,r){var d=_utils2.default.getTiddler(r);var i=t===\"manage-edge-types\"?_EdgeType2.default:_NodeType2.default;var l=new i(a,d);l.save();var s=d.fields[\"temp.newId\"];if(s&&s!==d.fields[\"id\"]){if(t===\"manage-edge-types\"){$tm.adapter._processEdgesWithType(l,{action:\"rename\",newName:s})}else{new _NodeType2.default(s,l).save();$tw.wiki.deleteTiddler(l.fullPath)}_utils2.default.setField(d,\"id\",s)}$tm.notify(\"Saved type data\")};var handleCreateType=function e(t){var a=t.paramObject,r=a.mode,d=a.id,i=d===undefined?\"New type\":d,l=a.output;var s=r===\"manage-edge-types\"?new _EdgeType2.default(i):new _NodeType2.default(i);s.save();handleLoadTypeForm({paramObject:{id:s.id,mode:r,output:l}})};var name=exports.name=\"tmap.listener\";var platforms=exports.platforms=[\"browser\"];var after=exports.after=[\"rootwidget\",\"tmap.caretaker\"];var before=exports.before=[\"story\"];var synchronous=exports.synchronous=true;var startup=exports.startup=function e(){_utils2.default.addTWlisteners({\"tmap:tm-remove-edge\":handleRemoveEdge,\"tmap:tm-load-type-form\":handleLoadTypeForm,\"tmap:tm-save-type-form\":handleSaveTypeForm,\"tmap:tm-create-type\":handleCreateType,\"tmap:tm-create-edge\":handleCreateEdge,\"tmap:tm-suppress-dialog\":handleSuppressDialog,\"tmap:tm-generate-widget\":handleGenerateWidget,\"tmap:tm-download-graph\":handleDownloadGraph,\"tmap:tm-configure-system\":handleConfigureSystem,\"tmap:tm-manage-edge-types\":handleOpenTypeManager,\"tmap:tm-manage-node-types\":handleOpenTypeManager,\"tmap:tm-cancel-dialog\":handleCancelDialog,\"tmap:tm-clear-tiddler\":handleClearTiddler,\"tmap:tm-merge-tiddlers\":handleMixTiddlers,\"tmap:tm-confirm-dialog\":handleConfirmDialog},$tw.rootWidget,undefined)};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Listener.js.map\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/tiddlymap/js/services/tracker": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/services/tracker",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/services/tracker\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Tracker=function(){function e(t){_classCallCheck(this,e);this.wiki=$tw.wiki;this.logger=$tm.logger;this._createIndex()}_createClass(e,[{key:\"_createIndex\",value:function e(){var t=this.tById={};var i=this.idByT={};this.wiki.each(function(e,r){if(_utils2.default.isSystemOrDraft(e)){return}var l=e.fields[\"tmap.id\"];if(!l){l=_utils2.default.genUUID();_utils2.default.setField(e,\"tmap.id\",l)}t[l]=r;i[r]=l})}},{key:\"assignId\",value:function e(t,i){var r=_utils2.default.getTiddler(t);if(!r){throw new ResourceNotFoundException(t)}var l=r.fields[\"tmap.id\"];if(!l||i){l=_utils2.default.genUUID();_utils2.default.setField(r,\"tmap.id\",l);this.logger(\"info\",\"Assigning new id to\",r.fields.title)}this.tById[l]=r.fields.title;this.idByT[r.fields.title]=l;return l}},{key:\"getIdByTiddler\",value:function e(t){return this.idByT[_utils2.default.getTiddlerRef(t)]}},{key:\"getIdsByTiddlers\",value:function e(){return this.idByT}},{key:\"getTiddlersByIds\",value:function e(){return this.tById}},{key:\"getTiddlerById\",value:function e(t){return this.tById[t]}}]);return e}();exports.default=Tracker;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Tracker.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget",
"text": "\"use strict\";var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _widget=require(\"$:/core/modules/widgets/widget.js\");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function MapConfigWidget(e,t){_widget.widget.call(this);this.initialise(e,t);this.computeAttributes()}MapConfigWidget.prototype=Object.create(_widget.widget.prototype);MapConfigWidget.prototype.render=function(e,t){this.parentDomNode=e;if(!this.domNode){this.domNode=this.document.createElement(\"div\");$tw.utils.addClass(this.domNode,\"tmap-config-widget\");e.insertBefore(this.domNode,t)}if(this.network){this.network.destroy()}this.networkContainer=document.createElement(\"div\");this.domNode.appendChild(this.networkContainer);this.refreshTrigger=this.getAttribute(\"refresh-trigger\");this.pipeTRef=this.getVariable(\"currentTiddler\");this.inheritedFields=$tw.utils.parseStringArray(this.getAttribute(\"inherited\"));this.extensionTField=this.getAttribute(\"extension\");this.mode=this.getAttribute(\"mode\");for(var i=0;i<this.inheritedFields.length;i++){var s=this.inheritedFields[i];var n=_utils2.default.parseFieldData(this.pipeTRef,s,{});if(this.mode===\"manage-edge-types\"){n={edges:n}}else if(this.mode===\"manage-node-types\"){n={nodes:n}}this.inherited=_utils2.default.merge(this.inherited,n)}this.extension=_utils2.default.parseFieldData(this.pipeTRef,this.extensionTField,{});if(this.mode===\"manage-edge-types\"){if(!this.extension.edges){this.extension={edges:this.extension}}}else if(this.mode===\"manage-node-types\"){if(!this.extension.nodes){this.extension={nodes:this.extension}}}var r=_utils2.default.isTrue(this.getAttribute(\"save-only-changes\"));this.changes=r?{}:this.extension;var o={nodes:[],edges:[]};var a=_utils2.default.merge({},this.inherited,this.extension);$tw.utils.extend(a,{configure:{enabled:true,showButton:false,filter:this.getOptionFilter(this.mode)}});this.network=new _vis2.default.Network(this.networkContainer,o,a);this.network.on(\"configChange\",this.handleConfigChange.bind(this));var l=this.parentDomNode.getBoundingClientRect().height;this.parentDomNode.style[\"height\"]=l+\"px\";var h=this.handleResetEvent.bind(this);this.networkContainer.addEventListener(\"reset\",h,false);$tm.registry.push(this);this.enhanceConfigurator()};MapConfigWidget.prototype.handleResetEvent=function(e){var t={};t[e.detail.trigger.path]=null;this.handleConfigChange(t)};MapConfigWidget.prototype.handleConfigChange=function(e){var t=_utils2.default.flatten(this.changes);var i=_utils2.default.flatten(e);var s=Object.keys(_utils2.default.flatten(e))[0];var n=i[s]===null;if(n){t[s]=undefined;this.changes=_utils2.default.unflatten(t)}else{this.changes=_utils2.default.merge(this.changes,e)}var r=_utils2.default.merge({},this.changes);if(this.mode===\"manage-node-types\"){r=r[\"nodes\"]}if(this.mode===\"manage-edge-types\"){r=r[\"edges\"]}_utils2.default.writeFieldData(this.pipeTRef,this.extensionTField,r,$tm.config.sys.jsonIndentation);var o=\"vis-configuration-wrapper\";var a=this.networkContainer.getElementsByClassName(o)[0];a.style.height=a.getBoundingClientRect().height+\"px\";if(n){window.setTimeout(this.refresh.bind(this),0)}else{window.setTimeout(this.enhanceConfigurator.bind(this),50)}};MapConfigWidget.prototype.enhanceConfigurator=function(){var e=\"vis-configuration-wrapper\";var t=this.networkContainer.getElementsByClassName(e)[0].children;var i=[];var s=_utils2.default.flatten(this.changes);for(var n=0;n<t.length;n++){if(!t[n].classList.contains(\"vis-config-item\"))continue;var r=new VisConfElement(t[n],i,n);i.push(r);if(r.level===0)continue;r.setActive(!!s[r.path])}};function VisConfElement(e,t,i){var s=\"getElementsByClassName\";this.el=e;this.labelEl=e[s](\"vis-config-label\")[0]||e[s](\"vis-config-header\")[0]||e;var n=this.labelEl.innerText||this.labelEl.textContent;this.label=n&&n.match(/([a-zA-Z0-9]+)/)[1];this.level=parseInt(e.className.match(/.*vis-config-s(.).*/)[1])||0;this.path=this.label;if(this.level>0){for(var r=i;r--;){var o=t[r];if(o.level<this.level){this.path=o.path+\".\"+this.path;break}}}}VisConfElement.prototype.setActive=function(e){if(!e)return;var t=\"tmap-vis-config-item-\"+(e?\"active\":\"inactive\");$tw.utils.addClass(this.el,t);if(e){var i=document.createElement(\"button\");i.innerHTML=\"reset\";i.className=\"tmap-config-item-reset\";var s=this;i.addEventListener(\"click\",function(e){e.currentTarget.dispatchEvent(new CustomEvent(\"reset\",{detail:{trigger:s},bubbles:true,cancelable:true}))},false);this.el.appendChild(i)}};MapConfigWidget.prototype.getOptionFilter=function(e){var t={nodes:{borderWidth:true,borderWidthSelected:true,color:{background:true,border:true},font:{color:true,size:true},icon:true,labelHighlightBold:false,shadow:true,shape:true,shapeProperties:{borderDashes:true},size:true},edges:{arrows:true,color:true,dashes:true,font:true,labelHighlightBold:false,length:true,selfReferenceSize:false,shadow:true,smooth:true,width:true},interaction:{hideEdgesOnDrag:true,hideNodesOnDrag:true,tooltipDelay:true},layout:{hierarchical:true},manipulation:{initiallyActive:true},physics:{forceAtlas2Based:{gravitationalConstant:true,springLength:true,springConstant:true,damping:true,centralGravity:true}}};if(e===\"manage-edge-types\"){t={edges:t.edges}}else if(e===\"manage-node-types\"){t={nodes:t.nodes}}else{t.edges.arrows=false}return function(e,i){i=i.concat([e]);var s=t;for(var n=0,r=i.length;n<r;n++){if(s[i[n]]===true){return true}else if(s[i[n]]==null){return false}s=s[i[n]]}return false}};MapConfigWidget.prototype.isZombieWidget=function(){return!document.body.contains(this.parentDomNode)};MapConfigWidget.prototype.destruct=function(){if(this.network){this.network.destroy()}};MapConfigWidget.prototype.refresh=function(e){if(this.isZombieWidget()||!this.network)return;if(!e||e[this.refreshTrigger]){this.refreshSelf();return true}};MapConfigWidget.prototype.setNull=function(e){for(var t in e){if(_typeof(e[t])==\"object\"){this.setNull(e[t])}else{e[t]=undefined}}};exports[\"tmap-config\"]=MapConfigWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/ConfigurationWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem",
"text": "\"use strict\";var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeListItemWidget=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,r));i.arrows=$tm.misc.arrows;return i}_createClass(t,[{key:\"execute\",value:function e(){var t=this.parseTreeNode;var r=$tm.tracker.getTiddlerById(t.neighbour.id);var i=_utils2.default.flatten(t.edge);for(var o in i){if(typeof i[o]===\"string\"){this.setVariable(\"edge.\"+o,i[o])}}this.setVariable(\"currentTiddler\",r);this.setVariable(\"neighbour\",r);var n=$tm.indeces.allETy[i.type];var s=i.to===t.neighbour.id?\"to\":\"from\";var a=s;if(n.biArrow){a=\"bi\"}else{if(s===\"to\"&&n.invertedArrow){a=\"from\"}else if(s===\"from\"&&n.invertedArrow){a=\"to\"}}this.setVariable(\"direction\",a);this.setVariable(\"directionSymbol\",a===\"bi\"?this.arrows.bi:a===\"from\"?this.arrows.in:this.arrows.out);this.makeChildWidgets()}},{key:\"refresh\",value:function e(t){return this.refreshChildren(t)}}]);return t}(_widget.widget);exports[\"tmap-edgelistitem\"]=EdgeListItemWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/EdgeListItemWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget",
"text": "\"use strict\";var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeListWidget=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,r))}_createClass(t,[{key:\"render\",value:function e(t,r){this.parentDomNode=t;this.computeAttributes();this.execute();this.renderChildren(t,r)}},{key:\"execute\",value:function e(){var t=[this.getVariable(\"currentTiddler\")];var r=this.getAttribute(\"filter\",\"\");var i=this.getAttribute(\"direction\",\"both\");var s=$tm.indeces.allETy;var n=_utils2.default.getEdgeTypeMatches(r,s);var u={typeWL:_utils2.default.getLookupTable(n),direction:i};var o=$tm.adapter.getNeighbours(t,u),a=o.nodes,l=o.edges;var f=[];for(var c in l){var h=l[c];var p=a[h.to]||a[h.from];if(!p){continue}f.push({type:\"tmap-edgelistitem\",edge:h,typeWL:u.typeWL,neighbour:p,children:this.parseTreeNode.children})}if(!f.length){this.wasEmpty=true;f=this.getEmptyMessage()}else if(this.wasEmpty){this.removeChildDomNodes()}this.makeChildWidgets(f)}},{key:\"getEmptyMessage\",value:function e(){var t=this.wiki.parseText(\"text/vnd.tiddlywiki\",this.getAttribute(\"emptyMessage\",\"\"),{parseAsInline:true});return t?t.tree:[]}},{key:\"refresh\",value:function e(t){var r=this.computeAttributes();if(_utils2.default.hasElements(r)){this.refreshSelf();return true}for(var i in t){if(!_utils2.default.isSystemOrDraft(i)){this.refreshSelf();return true}}return this.refreshChildren(t)}}]);return t}(_widget.widget);exports[\"tmap-connections\"]=EdgeListWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/EdgeListWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.tiddlymap=exports.tmap=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var a in i){if(Object.prototype.hasOwnProperty.call(i,a)){e[a]=i[a]}}}return e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||false;a.configurable=true;if(\"value\"in a)a.writable=true;Object.defineProperty(e,a.key,a)}}return function(t,i,a){if(i)e(t.prototype,i);if(a)e(t,a);return t}}();var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _Popup=require(\"$:/plugins/felixhayashi/tiddlymap/js/Popup\");var _Popup2=_interopRequireDefault(_Popup);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _SelectionRectangle=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle\");var _SelectionRectangle2=_interopRequireDefault(_SelectionRectangle);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++){i[t]=e[t]}return i}else{return Array.from(e)}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var MapWidget=function(e){_inherits(t,e);function t(e,i){_classCallCheck(this,t);var a=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i));a.getAttr=a.getAttribute;a.isDebug=_utils2.default.isTrue($tm.config.sys.debug,false);_utils2.default.bindTo(a,[\"constructTooltip\",\"handleResizeEvent\",\"handleClickEvent\",\"handleCanvasKeyup\",\"handleCanvasKeydown\",\"handleCanvasScroll\",\"handleCanvasMouseMove\",\"handleWidgetKeyup\",\"handleWidgetKeydown\",\"handleTriggeredRefresh\",\"handleContextMenu\"]);a.callbackManager=new _CallbackManager2.default;a.computeAttributes();a.editorMode=a.getAttr(\"editor\");a.clickToUse=_utils2.default.isTrue(a.getAttr(\"click-to-use\"),false);a.id=a.getAttr(\"object-id\")||a.getStateQualifier();a.widgetPopupsPath=$tm.path.tempPopups+\"/\"+a.id;if(a.editorMode){_utils2.default.addTWlisteners({\"tmap:tm-create-view\":a.handleCreateView,\"tmap:tm-rename-view\":a.handleRenameView,\"tmap:tm-delete-view\":a.handleDeleteView,\"tmap:tm-delete-element\":a.handleDeleteElement,\"tmap:tm-edit-view\":a.handleEditView,\"tmap:tm-generate-widget\":a.handleGenerateWidget,\"tmap:tm-toggle-central-topic\":a.handleSetCentralTopic,\"tmap:tm-save-canvas\":a.handleSaveCanvas},a,a)}_utils2.default.addTWlisteners({\"tmap:tm-focus-node\":a.handleFocusNode,\"tmap:tm-reset-focus\":a.repaintGraph,\"tmap:tm-neighbourhood-reset-trace\":function e(){a.initAndRenderGraph(a.graphDomNode)}},a,a);a.visListeners={click:a.handleVisSingleClickEvent,doubleClick:a.handleVisDoubleClickEvent,stabilized:a.handleVisStabilizedEvent,selectNode:a.handleVisSelectNode,deselectNode:a.handleVisDeselectNode,dragStart:a.handleVisDragStart,dragEnd:a.handleVisDragEnd,hoverNode:a.handleVisHoverElement,hoverEdge:a.handleVisHoverElement,blurNode:a.handleVisBlurElement,blurEdge:a.handleVisBlurElement,beforeDrawing:a.handleVisBeforeDrawing,afterDrawing:a.handleVisAfterDrawing,stabilizationProgress:a.handleVisLoading,stabilizationIterationsDone:a.handleVisLoadingDone};a.windowDomListeners={resize:[a.handleResizeEvent,false],click:[a.handleClickEvent,false],mousemove:[a.handleCanvasMouseMove,true]};a.canvasDomListeners={keyup:[a.handleCanvasKeyup,true],keydown:[a.handleCanvasKeydown,true],mousewheel:[a.handleCanvasScroll,true],DOMMouseScroll:[a.handleCanvasScroll,true],contextmenu:[a.handleContextMenu,true],MozMousePixelScroll:[a.handleExtraCanvasScroll,true]};a.widgetDomListeners={keyup:[a.handleWidgetKeyup,true],keydown:[a.handleWidgetKeydown,true]};a.conVector={from:null,to:null};return a}_createClass(t,[{key:\"handleConnectionEvent\",value:function e(t,i){var a=this;var s=this.view.getEdgeTypeFilter();var r={fromLabel:$tm.adapter.selectNodeById(t.from).label,toLabel:$tm.adapter.selectNodeById(t.to).label,view:this.view.getLabel(),eTyFilter:s.raw};$tm.dialogManager.open(\"getEdgeType\",r,function(e,r){if(e){var n=_utils2.default.getText(r);var o=_EdgeType2.default.getInstance(n);if(!o.namespace){var l=_EdgeType2.default.getIdParts(o.id),d=l.marker,u=l.name;var h=a.view.getConfig(\"edge_type_namespace\");o=_EdgeType2.default.getInstance(_EdgeType2.default.getId(d,h,u))}if(!o.exists()){o.save()}t.type=o.id;$tm.adapter.insertEdge(t);a.isPreventZoomOnNextUpdate=true;if(!a.view.isEdgeTypeVisible(o)){$tm.dialogManager.open(\"edgeNotVisible\",{type:o.id,view:a.view.getLabel(),eTyFilter:s.pretty})}}if(typeof i===\"function\"){i(e)}})}},{key:\"checkForFreshInstall\",value:function e(){if(!_utils2.default.getEntry($tm.ref.sysMeta,\"showWelcomeMessage\",true)){return}_utils2.default.setEntry($tm.ref.sysMeta,\"showWelcomeMessage\",false);var t={dialog:{preselects:{\"config.storyview\":\"true\",\"config.navigation\":\"true\",\"config.sidebar\":\"true\",\"config.demo\":\"true\"}}};$tm.dialogManager.open(\"welcome\",t,function(e,t){var i=_utils2.default.getPropertiesByPrefix(t.fields,\"config.\",true);if(i[\"storyview\"]&&_utils2.default.tiddlerExists(\"$:/plugins/felixhayashi/topstoryview\")){_utils2.default.setText(\"$:/view\",\"top\")}if(i[\"navigation\"]){_utils2.default.setText(\"$:/config/Navigation/openLinkFromInsideRiver\",\"above\");_utils2.default.setText(\"$:/config/Navigation/openLinkFromOutsideRiver\",\"top\")}if(i[\"sidebar\"]){_utils2.default.setText(\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\",\"fixed-fluid\")}if(i[\"demo\"]){var a=$tm.misc.defaultViewLabel;var s=$tm.adapter.insertNode({label:\"Have fun with\",x:0,y:0},a);var r=$tm.adapter.insertNode({label:\"TiddlyMap!!\",x:100,y:100},a);$tm.adapter.insertEdge({from:s.id,to:r.id})}if(Object.keys(i).length){_utils2.default.touch(\"$:/plugins/felixhayashi/tiddlymap\")}})}},{key:\"openStandardConfirmDialog\",value:function e(t,i){var a={message:i};$tm.dialogManager.open(\"getConfirmation\",a,t)}},{key:\"logger\",value:function e(t,i){if(this.isDebug){var a=Array.prototype.slice.call(arguments,1);a.unshift(\"@\"+this.id);a.unshift(t);$tm.logger.apply(this,a)}}},{key:\"render\",value:function e(t,i){this.parentDomNode=t;this.domNode=this.document.createElement(\"div\");t.insertBefore(this.domNode,i);this.registerClassNames(this.domNode);this.viewHolderRef=this.getViewHolderRef();this.view=this.getView();this.graphBarDomNode=this.document.createElement(\"div\");$tw.utils.addClass(this.graphBarDomNode,\"tmap-topbar\");this.domNode.appendChild(this.graphBarDomNode);this.graphDomNode=this.document.createElement(\"div\");this.domNode.appendChild(this.graphDomNode);$tw.utils.addClass(this.graphDomNode,\"tmap-vis-graph\");if(_utils2.default.isPreviewed(this)){$tw.utils.addClass(this.domNode,\"tmap-static-mode\");this.renderPreview(this.graphBarDomNode,this.graphDomNode)}else{this.renderFullWidget(this.domNode,this.graphBarDomNode,this.graphDomNode)}}},{key:\"renderPreview\",value:function e(t,i){var a=this.view.getRoot()+\"/snapshot\";var s=_utils2.default.getTiddler(a);var r=this.document.createElement(\"span\");r.innerHTML=this.view.getLabel();r.className=\"tmap-view-label\";t.appendChild(r);if(s){var n=this.makeChildWidget(_utils2.default.getTranscludeNode(a),true);n.renderChildren(i,null)}else{$tw.utils.addClass(i,\"tmap-graph-placeholder\")}}},{key:\"renderFullWidget\",value:function e(t,i,a){_utils2.default.setDomListeners(\"add\",window,this.windowDomListeners);_utils2.default.setDomListeners(\"add\",t,this.widgetDomListeners);this.addLoadingBar(this.domNode);this.tooltip=new _Popup2.default(this.domNode,{className:\"tmap-tooltip\",showDelay:$tm.config.sys.popups.delay});this.contextMenu=new _Popup2.default(this.domNode,{className:\"tmap-context-menu\",showDelay:0,hideOnClick:true,leavingDelay:999999});this.sidebar=_utils2.default.getFirstElementByClassName(\"tc-sidebar-scrollable\");this.isInSidebar=this.sidebar&&!this.domNode.isTiddlyWikiFakeDom&&this.sidebar.contains(this.domNode);this.rebuildEditorBar(i);this.reloadRefreshTriggers();this.initAndRenderGraph(a);$tm.registry.push(this);this.checkForFreshInstall();if(this.id===$tm.misc.mainEditorId){var s=$tm.url;if(s&&s.query[\"tmap-enlarged\"]){this.toggleEnlargedMode(s.query[\"tmap-enlarged\"]);this.setView(s.query[\"tmap-view\"])}}}},{key:\"registerClassNames\",value:function e(t){var i=$tw.utils.addClass;i(t,\"tmap-widget\");if(this.clickToUse){i(t,\"tmap-click-to-use\")}if(this.getAttr(\"editor\")===\"advanced\"){i(t,\"tmap-advanced-editor\")}if(this.getAttr(\"design\")===\"plain\"){i(t,\"tmap-plain-design\")}if(!_utils2.default.isTrue(this.getAttr(\"show-buttons\"),true)){i(t,\"tmap-no-buttons\")}if(this.getAttr(\"class\")){i(t,this.getAttr(\"class\"))}}},{key:\"addLoadingBar\",value:function e(t){this.graphLoadingBarDomNode=this.document.createElement(\"progress\");$tw.utils.addClass(this.graphLoadingBarDomNode,\"tmap-loading-bar\");t.appendChild(this.graphLoadingBarDomNode)}},{key:\"rebuildEditorBar\",value:function e(){this.removeChildDomNodes();var t=this.view;var i=\"tmap-unicode-button\";var a=i+\" tmap-active-button\";var s={widgetQualifier:this.getStateQualifier(),widgetTempPath:this.widgetTempPath,widgetPopupsPath:this.widgetPopupsPath,isViewBound:String(this.isViewBound()),viewRoot:t.getRoot(),viewLabel:t.getLabel(),viewHolder:this.getViewHolderRef(),edgeTypeFilter:t.edgeTypeFilterTRef,allEdgesFilter:$tm.selector.allEdgeTypes,isShowNeighbourhood:String(t.isEnabled(\"neighbourhood_scope\")),tracingBtnClass:t.isEnabled(\"neighbourhood_trace_clicks\")?a:i,neighScopeBtnClass:t.isEnabled(\"neighbourhood_scope\")?a:i,rasterMenuBtnClass:t.isEnabled(\"raster\")?a:i};for(var r in s){this.setVariable(r,s[r])}var n=_utils2.default.getTiddlerNode(t.getRoot());if(this.editorMode===\"advanced\"){n.children.push(_utils2.default.getTranscludeNode($tm.ref.graphBar))}else{var o=_utils2.default.getElementNode(\"span\",\"tmap-view-label\",t.getLabel());n.children.push(o)}n.children.push(_utils2.default.getTranscludeNode($tm.ref.focusButton));this.makeChildWidgets([n]);this.renderChildren(this.graphBarDomNode,this.graphBarDomNode.firstChild)}},{key:\"refresh\",value:function e(t){return false}},{key:\"update\",value:function e(t){if(!this.network||this.isZombieWidget()||_utils2.default.isPreviewed(this)){return}var i=t.changedTiddlers;this.callbackManager.refresh(i);if(this.isViewSwitched(i)||this.hasChangedAttributes()||t[env.path.options]||i[this.view.getRoot()]){this.logger(\"warn\",\"View switched or config changed\");this.isPreventZoomOnNextUpdate=false;this.view=this.getView(true);this.reloadRefreshTriggers();this.trace=_utils2.default.makeHashMap();this.rebuildEditorBar();this.reloadBackgroundImage();this.initAndRenderGraph(this.graphDomNode)}else{var a=this.view.update(t);if(a){this.logger(\"warn\",\"View components modified\");this.rebuildGraph({resetFocus:{delay:1e3,duration:1e3}})}else{if(t[env.path.nodeTypes]||this.hasChangedElements(i)){this.rebuildGraph()}this.refreshChildren(i)}}}},{key:\"hidePopups\",value:function e(t,i){this.tooltip.hide(t,i);this.contextMenu.hide(0,true)}},{key:\"reloadRefreshTriggers\",value:function e(){this.callbackManager.remove(this.refreshTriggers);var t=this.getAttr(\"refresh-triggers\")||this.view.getConfig(\"refresh-triggers\");this.refreshTriggers=$tw.utils.parseStringArray(t)||[];this.logger(\"debug\",\"Registering refresh trigger\",this.refreshTriggers);for(var i=this.refreshTriggers.length;i--;){this.callbackManager.add(this.refreshTriggers[i],this.handleTriggeredRefresh,false)}}},{key:\"rebuildGraph\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},i=t.resetFocus;if(_utils2.default.isPreviewed(this)){return}this.logger(\"debug\",\"Rebuilding graph\");this.hidePopups(0,true);this.hasNetworkStabilized=false;var a=this.rebuildGraphData();if(a.changedNodes.withoutPosition.length){i=i||{delay:1e3,duration:1e3};if(!this.view.isEnabled(\"physics_mode\")){var s=this.visOptions.physics;s[s.solver].centralGravity=.25;this.network.setOptions(this.visOptions)}}if(!_utils2.default.hasElements(this.graphData.nodesById)){return}if(i){var r=this.isPreventZoomOnNextUpdate==null?false:typeof this.isPreventZoomOnNextUpdate===\"number\"?this.isPreventZoomOnNextUpdate>Date.now():this.isPreventZoomOnNextUpdate;if(!r){this.network.stabilize();this.resetFocus=i}if(typeof this.isPreventZoomOnNextUpdate!==\"number\"){this.isPreventZoomOnNextUpdate=false}}}},{key:\"getContainer\",value:function e(){return this.domNode}},{key:\"rebuildGraphData\",value:function e(){var t=this;$tm.start(\"Reloading Network\");var i={view:this.view};if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){var a=_utils2.default.getMatches(this.view.getNodeFilter(\"compiled\"));var s=Object.keys(this.trace);var r=[].concat(_toConsumableArray(a.filter(function(e){return!t.trace[e]})),_toConsumableArray(s));i.matches=r;i.includeNeighboursOf=this.view.isEnabled(\"neighbourhood_include_traced_node_neighbours\")?function(e){return r.includes(e)}:function(e){return a.includes(e)}}var n=$tm.adapter.getGraph(i);var o=_utils2.default.refreshDataSet(this.graphData.nodes,n.nodes);var l=_utils2.default.refreshDataSet(this.graphData.edges,n.edges);this.graphData.nodesById=n.nodes;this.graphData.edgesById=n.edges;_utils2.default.setField(\"$:/temp/tmap/nodes/\"+this.view.getLabel(),\"list\",$tm.adapter.getTiddlersByIds(n.nodes));$tm.stop(\"Reloading Network\");return{changedEdges:l,changedNodes:o}}},{key:\"isViewBound\",value:function e(){return _utils2.default.startsWith(this.getViewHolderRef(),$tm.path.localHolders)}},{key:\"isViewSwitched\",value:function e(t){return!_ViewAbstraction2.default.exists(this.view)||t[this.getViewHolderRef()]}},{key:\"hasChangedAttributes\",value:function e(){return Object.keys(this.computeAttributes()).length}},{key:\"hasChangedElements\",value:function e(t){var i=[];var a=this.graphData.nodesById;var s=this.view.isEnabled(\"neighbourhood_scope\");for(var r in t){if(_utils2.default.isSystemOrDraft(r)){continue}if(a[$tm.adapter.getId(r)]||s){return true}if(t[r].modified){i.push(r)}}if(i.length){var n=this.view.getNodeFilter(\"compiled\");var o=_utils2.default.getMatches(n,i);return!!o.length}}},{key:\"initAndRenderGraph\",value:function e(t){var i=this;if(this.network){this._destructVis()}this.logger(\"info\",\"Initializing and rendering the graph\");if(!this.isInSidebar){this.callbackManager.add(\"$:/state/sidebar\",this.handleResizeEvent)}this.visOptions=this.getVisOptions();this.graphData={nodes:new _vis2.default.DataSet,edges:new _vis2.default.DataSet,nodesById:_utils2.default.makeHashMap(),edgesById:_utils2.default.makeHashMap()};this.tooltip.setEnabled(_utils2.default.isTrue($tm.config.sys.popups.enabled,true));this.trace=_utils2.default.makeHashMap();this.network=new _vis2.default.Network(t,this.graphData,this.visOptions);this.canvas=t.getElementsByTagName(\"canvas\")[0];this.networkDomNode=_utils2.default.getFirstElementByClassName(\"vis-network\",t,true);this.canvas.tabIndex=0;for(var a in this.visListeners){this.network.on(a,this.visListeners[a].bind(this))}this.addGraphButtons({\"fullscreen-button\":function e(){i.toggleEnlargedMode(\"fullscreen\")},\"halfscreen-button\":function e(){i.toggleEnlargedMode(\"halfscreen\")}});_utils2.default.setDomListeners(\"add\",this.canvas,this.canvasDomListeners);this.reloadBackgroundImage();this.rebuildGraph({resetFocus:{delay:0,duration:0}});this.handleResizeEvent();this.canvas.focus();if(this.view.isLiveView()&&this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[_utils2.default.getText(this.refreshTriggers[0])]=true}}},{key:\"handleCanvasKeyup\",value:function e(t){var i=this;var a=this.network.getSelectedNodes();if(t.ctrlKey){t.preventDefault();if(t.keyCode===88){if(this.editorMode){this.handleAddNodesToClipboard(\"move\")}else{$tm.notify(\"Map is read only!\")}}else if(t.keyCode===67){this.handleAddNodesToClipboard(\"copy\")}else if(t.keyCode===86){this.handlePasteNodesFromClipboard()}else if(t.keyCode===65){var s=Object.keys(this.graphData.nodesById);this.network.selectNodes(s)}else if(t.keyCode===49||t.keyCode===50){if(a.length!==1)return;var r=t.keyCode===49?\"from\":\"to\";$tm.notify(_utils2.default.ucFirst(r)+\"-part selected\");this.conVector[r]=a[0];if(this.conVector.from&&this.conVector.to){this.handleConnectionEvent(this.conVector,function(){i.conVector={from:null,to:null}})}}}else{if(t.keyCode===13){if(a.length!==1)return;this.openTiddlerWithId(a[0])}}}},{key:\"handleCanvasKeydown\",value:function e(t){if(t.altKey||t.metaKey){t.preventDefault();if(t.keyCode>=48&&t.keyCode<=57){var i=String.fromCharCode(t.keyCode);this.view.setConfig(\"neighbourhood_scope\",i)}}else{if(t.keyCode===46){t.preventDefault();this.handleRemoveElements(this.network.getSelection())}}}},{key:\"handleDeleteElement\",value:function e(t){var i=t.paramObject.id;var a=i?[i]:this.network.getSelectedNodes();this.handleRemoveElements({nodes:a})}},{key:\"handleCanvasMouseMove\",value:function e(t){var i=this.network;if(!(t.ctrlKey&&t.buttons)){if(this.selectRect){this.selectRect=null;var a=i.getSelectedNodes();$tm.notify(a.length+\" nodes selected\");i.redraw()}return}t.preventDefault();t.stopPropagation();if(!this.domNode.contains(t.target)){return}var s=i.DOMtoCanvas({x:t.offsetX,y:t.offsetY});if(!this.selectRect){this.selectRect=new _SelectionRectangle2.default(s.x,s.y)}this.selectRect.span(s.x,s.y);var r=i.getPositions();var n=i.getSelectedNodes();for(var o in r){if(this.selectRect.isPointWithin(r[o])&&!_utils2.default.inArray(o,n)){n.push(o)}}i.selectNodes(n);this.assignActiveStyle(n);i.redraw()}},{key:\"handleCanvasScroll\",value:function e(t){var i=!!(this.isInSidebar||t.ctrlKey||this.enlargedMode||this.clickToUse&&this.networkDomNode.classList.contains(\"vis-active\"));var a=this.visOptions.interaction;var s=i===a.zoomView;if(i||!s){t.preventDefault()}if(!s){t.stopPropagation();a.zoomView=i;this.network.setOptions({interaction:{zoomView:i}});return false}}},{key:\"handleExtraCanvasScroll\",value:function e(t){t.preventDefault()}},{key:\"handleContextMenu\",value:function e(t){var i=this;t.preventDefault();var a=this.network;this.hidePopups(0,true);var s=a.getNodeAt({x:t.offsetX,y:t.offsetY});if(!s)return;var r=a.getSelectedNodes();if(!_utils2.default.inArray(s,r)){r=[s];a.selectNodes(r)}this.contextMenu.show(r,function(e,t){var a=e.length>1?\"multi\":\"single\";var s=\"$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node\";_utils2.default.registerTransclude(i,\"contextMenuWidget\",s);i.contextMenuWidget.setVariable(\"mode\",a);i.contextMenuWidget.render(t)})}},{key:\"handleWidgetKeyup\",value:function e(t){}},{key:\"handleWidgetKeydown\",value:function e(t){if(t.ctrlKey){t.preventDefault();if(t.keyCode===70){t.preventDefault();var i=this.widgetPopupsPath+\"/focus\";_utils2.default.setText(i,_utils2.default.getText(i)?\"\":\"1\")}else{return}}else if(t.keyCode===120){t.preventDefault();this.toggleEnlargedMode(\"halfscreen\")}else if(t.keyCode===121){t.preventDefault();this.toggleEnlargedMode(\"fullscreen\")}else if(t.keyCode===27){t.preventDefault();_utils2.default.deleteByPrefix(this.widgetPopupsPath)}else{return}this.canvas.focus()}},{key:\"handlePasteNodesFromClipboard\",value:function e(){if(!this.editorMode){$tm.notify(\"Map is read only!\");return}if(!$tm.clipBoard||$tm.clipBoard.type!==\"nodes\"){$tm.notify(\"TiddlyMap clipboad is empty!\")}var t=$tm.clipBoard.nodes;var i=Object.keys(t);for(var a=i.length;a--;){var s=i[a];if(this.graphData.nodesById[s]){continue}this.view.addNode(t[s]);this.graphData.nodes.update({id:s})}this.network.selectNodes(i);this.rebuildGraph({resetFocus:{delay:0,duration:0}});$tm.notify(\"pasted \"+i.length+\" nodes into map.\")}},{key:\"handleAddNodesToClipboard\",value:function e(t){var i=this.network.getSelectedNodes();if(!i.length){return}$tm.clipBoard={type:\"nodes\",nodes:this.graphData.nodes.get(i,{returnType:\"Object\"})};$tm.notify(\"Copied \"+i.length+\" nodes to clipboard\");if(t===\"move\"){for(var a=i.length;a--;){this.view.removeNode(i[a])}}this.isPreventZoomOnNextUpdate=true}},{key:\"getVisOptions\",value:function e(){var t=this;var i=$tm.config.vis;var a=_utils2.default.parseJSON(this.view.getConfig(\"vis\"))||{};var s=a.layout||{},r=s.hierarchical;var n={layout:{hierarchical:{enabled:r===undefined||r===null?false:typeof r===\"boolean\"?r:r.enabled!==false}}};var o=_utils2.default.merge({},i,_utils2.default.merge(a,n));o.clickToUse=this.clickToUse;o.manipulation.enabled=!!this.editorMode;o.manipulation.deleteNode=function(e,i){t.handleRemoveElements(e);t.resetVisManipulationBar(i)};o.manipulation.deleteEdge=function(e,i){t.handleRemoveElements(e);t.resetVisManipulationBar(i)};o.manipulation.addEdge=function(e,i){t.handleConnectionEvent(e);t.resetVisManipulationBar(i)};o.manipulation.addNode=function(e,i){t.handleInsertNode(e);t.resetVisManipulationBar(i)};o.manipulation.editNode=function(e,i){t.handleEditNode(e);t.resetVisManipulationBar(i)};o.interaction.zoomView=!!(this.isInSidebar||this.enlargedMode);o.manipulation.editEdge=false;var l=o.physics;l[l.solver]=l[l.solver]||{};l.stabilization.iterations=1e3;this.logger(\"debug\",\"Loaded graph options\",o);return o}},{key:\"resetVisManipulationBar\",value:function e(t){if(t){t(null)}this.network.disableEditMode();this.network.enableEditMode()}},{key:\"isVisInEditMode\",value:function e(){return this.graphDomNode.getElementsByClassName(\"vis-button vis-back\").length>0}},{key:\"handleCreateView\",value:function e(){var t=this;var i={view:this.view.getLabel()};$tm.dialogManager.open(\"createView\",i,function(e,i){if(!e)return;var a=_utils2.default.getField(i,\"name\");var s=_utils2.default.getField(i,\"clone\",false);if(_ViewAbstraction2.default.exists(a)){$tm.notify(\"Forbidden! View already exists!\");return}if(s&&t.view.isLiveView()){$tm.notify(\"Forbidden to clone the live view!\");return}var r=new _ViewAbstraction2.default(a,{isCreate:true,protoView:s?t.view:null});t.setView(r)})}},{key:\"handleRenameView\",value:function e(){var t=this;if(this.view.isLocked()){$tm.notify(\"Forbidden!\");return}var i=this.view.getOccurrences();var a={count:i.length.toString(),refFilter:_utils2.default.joinAndWrap(i,\"[[\",\"]]\")};$tm.dialogManager.open(\"renameView\",a,function(e,i){if(!e){return}var a=_utils2.default.getText(i);if(!a){$tm.notify(\"Invalid name!\")}else if(_ViewAbstraction2.default.exists(a)){$tm.notify(\"Forbidden! View already exists!\")}else{t.view.rename(a);t.setView(t.view)}})}},{key:\"handleEditView\",value:function e(){var t=this;var i=JSON.stringify($tm.config.vis);var a=this.graphData;var s=this.view.getConfig();var r={\"filter.prettyNodeFltr\":this.view.getNodeFilter(\"pretty\"),\"filter.prettyEdgeFltr\":this.view.getEdgeTypeFilter(\"pretty\"),\"inherited-style\":i};var n={view:this.view.getLabel(),createdOn:this.view.getCreationDate(true),numberOfNodes:Object.keys(a.nodesById).length.toString(),numberOfEdges:Object.keys(a.edgesById).length.toString(),dialog:{preselects:$tw.utils.extend({},s,r)}};$tm.dialogManager.open(\"configureView\",n,function(e,i){if(!e){return}var a=_utils2.default.getPropertiesByPrefix(i.fields,\"config.\",true);var s=t.view.getConfig(\"background_image\");t.view.setConfig(a);if(a[\"physics_mode\"]&&!t.view.isEnabled(\"physics_mode\")){t.view.saveNodePositions(t.network.getPositions())}var r=t.view.getConfig(\"background_image\");if(r&&r!==s){$tm.notify(\"Background changed! You may need to zoom out a bit.\")}var n=_utils2.default.getField(i,\"filter.prettyNodeFltr\",\"\");var o=_utils2.default.getField(i,\"filter.prettyEdgeFltr\",\"\");t.view.setNodeFilter(n);t.view.setEdgeTypeFilter(o)})}},{key:\"handleSaveCanvas\",value:function e(){var t=this;var i=\"$:/temp/tmap/snapshot\";this.createAndSaveSnapshot(i);var a=_utils2.default.getSnapshotTitle(this.view.getLabel(),\"png\");var s={dialog:{snapshot:i,width:this.canvas.width.toString(),height:this.canvas.height.toString(),preselects:{name:a,action:\"download\"}}};$tm.dialogManager.open(\"saveCanvas\",s,function(e,s){if(!e)return;a=s.fields.name||a;var r=s.fields.action;if(r===\"download\"){t.handleDownloadSnapshot(a)}else if(r===\"wiki\"){_utils2.default.cp(i,a,true);t.dispatchEvent({type:\"tm-navigate\",navigateTo:a})}else if(r===\"placeholder\"){t.view.addPlaceholder(i)}$tw.wiki.deleteTiddler(\"$:/temp/tmap/snapshot\")})}},{key:\"handleDownloadSnapshot\",value:function e(t){var i=this.document.createElement(\"a\");var a=this.view.getLabel();i.download=t||_utils2.default.getSnapshotTitle(a,\"png\");i.href=this.getSnapshot();var s=new MouseEvent(\"click\");i.dispatchEvent(s)}},{key:\"createAndSaveSnapshot\",value:function e(t){var i=t||this.view.getRoot()+\"/snapshot\";$tw.wiki.addTiddler(new $tw.Tiddler({title:i,type:\"image/png\",text:this.getSnapshot(true)},$tw.wiki.getCreationFields(),$tw.wiki.getModificationFields()));return i}},{key:\"getSnapshot\",value:function e(t){var i=this.canvas.toDataURL(\"image/png\");return t?_utils2.default.getWithoutPrefix(i,\"data:image/png;base64,\"):i}},{key:\"handleDeleteView\",value:function e(){var t=this;var i=this.view.getLabel();if(this.view.isLocked()){$tm.notify(\"Forbidden!\");return}var a=this.view.getOccurrences();if(a.length){var s={count:a.length.toString(),refFilter:_utils2.default.joinAndWrap(a,\"[[\",\"]]\")};$tm.dialogManager.open(\"cannotDeleteViewDialog\",s);return}var r=\"\\n You are about to delete the view ''\"+i+\"''\\n (no tiddler currently references this view).\\n \";this.openStandardConfirmDialog(function(e){if(!e){return}t.view.destroy();t.setView($tm.misc.defaultViewLabel);var a='view \"'+i+\"' deleted\";t.logger(\"debug\",a);$tm.notify(a)},r)}},{key:\"handleTriggeredRefresh\",value:function e(t){this.logger(\"log\",t,\"Triggered a refresh\");var i=_utils2.default.getTiddler(_utils2.default.getText(t));if(this.view.isLiveView()){if(i){if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[i.fields.title]=true}var a=i.fields[\"tmap.open-view\"]||$tm.config.sys.liveTab.fallbackView;if(a&&a!==this.view.getLabel()){this.setView(a);return}}}this.rebuildGraph({resetFocus:{delay:1e3,duration:1e3}})}},{key:\"handleRemoveElements\",value:function e(t){var i=t.nodes,a=t.edges;if(i.length){this.handleRemoveNodes(i)}else if(a.length){this.handleRemoveEdges(a)}this.resetVisManipulationBar()}},{key:\"handleRemoveEdges\",value:function e(t){$tm.adapter.deleteEdges(this.graphData.edges.get(t));$tm.notify(\"edge\"+(t.length>1?\"s\":\"\")+\" removed\")}},{key:\"handleRemoveNodes\",value:function e(t){var i=this;var a=$tm.adapter.getTiddlersByIds(t);var s={count:t.length.toString(),tiddlers:$tw.utils.stringifyList(a),dialog:{preselects:{\"delete-from\":\"filter\"}}};$tm.dialogManager.open(\"deleteNodeDialog\",s,function(e,a){if(!e)return;var s=0;for(var r=t.length;r--;){var n=i.view.removeNode(t[r]);if(n){s++}}if(a.fields[\"delete-from\"]===\"system\"){$tm.adapter.deleteNodes(t);s=t.length}i.isPreventZoomOnNextUpdate=true;$tm.notify(\"\\n Removed \"+s+\"\\n of \"+t.length+\"\\n from \"+a.fields[\"delete-from\"]+\"\\n \")})}},{key:\"toggleEnlargedMode\",value:function e(t){if(!this.isInSidebar&&t===\"halfscreen\"){return}this.logger(\"log\",\"Toggled graph enlargement\");var i=this.enlargedMode;if(i){this.network.setOptions({clickToUse:this.clickToUse});_utils2.default.findAndRemoveClassNames([\"tmap-has-\"+i+\"-widget\",\"tmap-\"+i]);this.enlargedMode=null;document.body.scrollTop=this.scrollTop}if(!i||i!==t&&(t===\"fullscreen\"||t===\"halfscreen\"&&!this.isInSidebar)){this.scrollTop=document.body.scrollTop;this.enlargedMode=t;var a=this.isInSidebar?this.sidebar:_utils2.default.getFirstElementByClassName(\"tc-story-river\");$tw.utils.addClass(this.document.body,\"tmap-has-\"+t+\"-widget\");$tw.utils.addClass(a,\"tmap-has-\"+t+\"-widget\");$tw.utils.addClass(this.domNode,\"tmap-\"+t);this.network.setOptions({clickToUse:false});$tm.notify(\"Toggled \"+t+\" mode\")}this.handleResizeEvent()}},{key:\"handleGenerateWidget\",value:function e(t){$tw.rootWidget.dispatchEvent({type:\"tmap:tm-generate-widget\",paramObject:{view:this.view.getLabel()}})}},{key:\"handleSetCentralTopic\",value:function e(t){var i=t.paramObject;var a=i.id||this.network.getSelectedNodes()[0];if(a===this.view.getConfig(\"central-topic\")){a=\"\"}this.view.setCentralTopic(a)}},{key:\"handleVisStabilizedEvent\",value:function e(t){if(this.hasNetworkStabilized){return}this.hasNetworkStabilized=true;this.logger(\"log\",\"Network stabilized after\",t.iterations,\"iterations\");if(!this.view.isEnabled(\"physics_mode\")){var i=this.graphData.nodesById;var a=[];for(var s in i){if(i[s].x===undefined){a.push(s)}}if(a.length){this.setNodesMoveable(a,false);$tm.notify(a.length+\" nodes were added to the graph\")}var r=this.visOptions.physics;r[r.solver].centralGravity=0;this.network.setOptions(this.visOptions)}if(this.resetFocus){this.fitGraph(this.resetFocus.delay,this.resetFocus.duration);this.resetFocus=null}}},{key:\"handleFocusNode\",value:function e(t){var i=t.param;this.network.focus($tm.adapter.getId(i),{scale:1.5,animation:true})}},{key:\"isZombieWidget\",value:function e(){return this.domNode.isTiddlyWikiFakeDom===true||!this.document.body.contains(this.getContainer())}},{key:\"fitGraph\",value:function e(){var t=this;var i=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;clearTimeout(this.activeFitTimeout);var s=function e(){if(t.isZombieWidget()){return}t.network.redraw();t.network.fit({animation:{duration:a,easingFunction:\"easeOutQuart\"}})};this.activeFitTimeout=setTimeout(s,i)}},{key:\"handleInsertNode\",value:function e(t){var i=this;$tm.dialogManager.open(\"addNodeToMap\",{},function(e,a){if(!e){return}var s=_utils2.default.getField(a,\"draft.title\");if(_utils2.default.tiddlerExists(s)){if(_utils2.default.isMatch(s,i.view.getNodeFilter(\"compiled\"))){$tm.notify(\"Node already exists\");return}else{t=$tm.adapter.makeNode(s,t);i.view.addNode(t)}}else{var r=new $tw.Tiddler(a,{\"draft.title\":null});t.label=s;$tm.adapter.insertNode(t,i.view,r)}i.isPreventZoomOnNextUpdate=true})}},{key:\"handleEditNode\",value:function e(t){var i=this;var a=$tm.tracker.getTiddlerById(t.id);var s=_utils2.default.getTiddler(a);var r=$tm.config.vis.nodes;var n=_utils2.default.parseJSON(this.view.getConfig(\"vis\"),{}).nodes;var o={};o[t.id]=t;var l=$tm.adapter.getInheritedNodeStyles(o);var d=l[a];var u=_utils2.default.merge({},{color:s.fields[\"color\"]},_utils2.default.parseJSON(s.fields[\"tmap.style\"]));var h=this.view.getLabel();var g=_extends({},this.view.getNodeData(t.id));delete g.x;delete g.y;var f={view:h,tiddler:s.fields.title,tidColor:s.fields[\"color\"],tidIcon:s.fields[$tm.field.nodeIcon]||s.fields[\"tmap.fa-icon\"],tidLabelField:\"global.\"+$tm.field.nodeLabel,tidIconField:\"global.\"+$tm.field.nodeIcon,dialog:{preselects:{\"inherited-global-default-style\":JSON.stringify(r),\"inherited-local-default-style\":JSON.stringify(n),\"inherited-group-styles\":JSON.stringify(d),\"global.tmap.style\":JSON.stringify(u),\"local-individual-node-style\":JSON.stringify(g)}}};var v=function e(t,i,a){for(var s=a.length;s--;){f.dialog.preselects[t+\".\"+a[s]]=i[a[s]]||\"\"}};v(\"local\",g,[\"label\",\"tw-icon\",\"fa-icon\",\"open-view\"]);v(\"global\",s.fields,[$tm.field.nodeLabel,$tm.field.nodeIcon,\"tmap.fa-icon\",\"tmap.open-view\"]);$tm.dialogManager.open(\"editNode\",f,function(e,s){if(!e)return;var r=s.fields;var n=_utils2.default.getPropertiesByPrefix(r,\"global.\",true);for(var o in n){_utils2.default.setField(a,o,n[o]||undefined)}var l=_utils2.default.getPropertiesByPrefix(r,\"local.\",true);var d=_utils2.default.parseJSON(r[\"local-individual-node-style\"],{});for(var u in l){d[u]=l[u]||undefined}i.view.saveNodeStyle(t.id,d);i.isPreventZoomOnNextUpdate=true})}},{key:\"handleVisSingleClickEvent\",value:function e(t){var i=_utils2.default.isTrue($tm.config.sys.singleClickMode);if(i&&!this.editorMode){this.handleOpenMapElementEvent(t)}}},{key:\"handleVisDoubleClickEvent\",value:function e(t){if(t.nodes.length||t.edges.length){if(this.editorMode||!_utils2.default.isTrue($tm.config.sys.singleClickMode)){this.handleOpenMapElementEvent(t)}}else{if(this.editorMode){this.handleInsertNode(t.pointer.canvas)}}}},{key:\"handleOpenMapElementEvent\",value:function e(t){var i=this;var a=t.nodes,s=t.edges;if(a.length){var r=this.graphData.nodesById[a[0]];if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[$tm.adapter.getTiddlerById(r.id)]=true;this.isPreventZoomOnNextUpdate=Date.now()+500;this.rebuildGraph();if(this.view.isEnabled(\"neighbourhood_focus_newly_traced_node\")){setTimeout(function(){i.network.focus(r.id,{scale:1,animation:true})},1500)}}if(r[\"open-view\"]){$tm.notify(\"Switching view\");this.setView(r[\"open-view\"])}else{this.openTiddlerWithId(a[0])}}else if(s.length){this.logger(\"debug\",\"Clicked on an Edge\");var n=this.graphData.edgesById[s[0]].type;this.handleEditEdgeType(n)}else{return}this.hidePopups(0,true)}},{key:\"handleEditEdgeType\",value:function e(t){if(!this.editorMode)return;var i=$tm.config.sys.edgeClickBehaviour;if(i!==\"manager\")return;$tw.rootWidget.dispatchEvent({type:\"tmap:tm-manage-edge-types\",paramObject:{type:t}})}},{key:\"handleResizeEvent\",value:function e(t){if(this.isZombieWidget())return;var i=this.getAttr(\"height\");var a=this.getAttr(\"width\");if(this.isInSidebar){var s=this.domNode.getBoundingClientRect();var r=15;a=document.body.clientWidth-s.left-r+\"px\";var n=parseInt(this.getAttr(\"bottom-spacing\"))||15;var o=window.innerHeight-s.top;i=o-n+\"px\"}this.domNode.style.height=i||\"300px\";this.domNode.style.width=a;this.repaintGraph()}},{key:\"handleClickEvent\",value:function e(t){if(this.isZombieWidget()||!this.network)return;if(!this.graphDomNode.contains(t.target)){var i=this.network.getSelection();if(i.nodes.length||i.edges.length){this.logger(\"debug\",\"Clicked outside; deselecting nodes/edges\");this.network.selectNodes([]);this.resetVisManipulationBar()}}else{this.canvas.focus()}if(t.button!==2){this.contextMenu.hide(0,true)}}},{key:\"handleVisSelectNode\",value:function e(t){var i=t.nodes;if(!this.isDraggingAllowed(i)){return}this.assignActiveStyle(i)}},{key:\"isDraggingAllowed\",value:function e(t){var i=t.nodes;return this.editorMode||this.view.isEnabled(\"physics_mode\")}},{key:\"assignActiveStyle\",value:function e(t){if(!Array.isArray(t))t=[t];var i=this.visOptions.nodes.color;for(var a=t.length;a--;){var s=t[a];var r=this.graphData.nodesById[s];var n=_utils2.default.merge({},i,r.color);this.graphData.nodes.update({id:s,color:{highlight:n,hover:n}})}}},{key:\"handleVisDeselectNode\",value:function e(t){}},{key:\"handleVisDragEnd\",value:function e(t){var i=t.nodes;if(!i.length){return}if(i.length===1&&this.view.isEnabled(\"raster\")){var a=this.network.getPositions()[i[0]];this.graphData.nodes.update(_extends({id:i[0]},_utils2.default.getNearestRasterPosition(a,parseInt(this.view.getConfig(\"raster\")))))}this.draggedNode=null;this.setNodesMoveable(i,false)}},{key:\"handleVisBeforeDrawing\",value:function e(t){var i=this.view,a=this.network,s=this.backgroundImage;if(s){t.drawImage(s,0,0)}if(i.isEnabled(\"raster\")){_utils2.default.drawRaster(t,a.getScale(),a.getViewPosition(),parseInt(i.getConfig(\"raster\")))}}},{key:\"handleVisAfterDrawing\",value:function e(t){if(this.selectRect){var i=this.selectRect.getRect();t.beginPath();t.globalAlpha=.5;t.fillStyle=\"#EAFFEF\";t.fillRect.apply(t,_toConsumableArray(i));t.beginPath();t.globalAlpha=1;t.strokeStyle=\"#B4D9BD\";t.strokeRect.apply(t,_toConsumableArray(i))}if(this.draggedNode&&this.view.isEnabled(\"raster\")){var a=this.network.getPositions()[this.draggedNode];var s=_utils2.default.getNearestRasterPosition(a,parseInt(this.view.getConfig(\"raster\")));t.strokeStyle=\"green\";t.fillStyle=\"green\";t.beginPath();t.moveTo(a.x,a.y);t.lineTo(s.x,s.y);t.stroke();t.beginPath();t.arc(s.x,s.y,5,0,Math.PI*2);t.fill()}}},{key:\"constructTooltip\",value:function e(t,i){var a=_utils2.default.parseJSON(t);var s=a.node||a.edge;var r=null;var n=\"text/html\";var o=\"text/vnd-tiddlywiki\";if(a.node){var l=$tm.tracker.getTiddlerById(s);var d=_utils2.default.getTiddler(l);var u=d.fields[$tm.field.nodeInfo];if(u){i.innerHTML=$tw.wiki.renderText(n,o,u)}else if(d.fields.text){_utils2.default.registerTransclude(this,\"tooltipWidget\",l);this.tooltipWidget.setVariable(\"tv-tiddler-preview\",\"yes\");this.tooltipWidget.render(i)}else{i.innerHTML=l}}else{var h=this.graphData.edgesById[s];var g=$tm.indeces.allETy[h.type];if(g.description){r=$tw.wiki.renderText(n,o,g.description)}i.innerHTML=r||g.label||g.id}}},{key:\"handleVisHoverElement\",value:function e(t){if($tm.mouse.buttons)return;var i=t.node||t.edge;var a=JSON.stringify(t);if(t.node){this.assignActiveStyle(i)}if(!this.isVisInEditMode()&&!this.contextMenu.isShown()){var s=this.constructTooltip;this.tooltip.show(a,s)}}},{key:\"handleVisBlurElement\",value:function e(t){this.tooltip.hide()}},{key:\"handleVisLoading\",value:function e(t){var i=t.total,a=t.iterations;this.graphLoadingBarDomNode.style.display=\"block\";this.graphLoadingBarDomNode.setAttribute(\"max\",i);this.graphLoadingBarDomNode.setAttribute(\"value\",a)}},{key:\"handleVisLoadingDone\",value:function e(t){this.graphLoadingBarDomNode.style.display=\"none\"}},{key:\"handleVisDragStart\",value:function e(t){var i=t.nodes;if(!i.length||!this.isDraggingAllowed(i)){return}this.hidePopups(0,true);this.assignActiveStyle(i);this.setNodesMoveable(i,true);if(i.length===1){this.draggedNode=i[0]}}},{key:\"destruct\",value:function e(){_utils2.default.setDomListeners(\"remove\",window,this.windowDomListeners);_utils2.default.setDomListeners(\"remove\",this.domNode,this.widgetDomListeners);this._destructVis()}},{key:\"_destructVis\",value:function e(){if(!this.network)return;_utils2.default.setDomListeners(\"remove\",this.canvas,this.canvasDomListeners);this.network.destroy();this.network=null}},{key:\"openTiddlerWithId\",value:function e(t){var i=this;var a=$tm.tracker.getTiddlerById(t);this.logger(\"debug\",\"Opening tiddler\",a,\"with id\",t);if(this.enlargedMode===\"fullscreen\"){var s=$tw.wiki.findDraft(a);var r=!!s;if(!r){var n=\"tm-edit-tiddler\";this.dispatchEvent({type:n,tiddlerTitle:a});s=$tw.wiki.findDraft(a)}var o={draftTRef:s,originalTRef:a};$tm.dialogManager.open(\"fullscreenTiddlerEditor\",o,function(e,t){if(e){var n=\"tm-save-tiddler\";i.dispatchEvent({type:n,tiddlerTitle:s})}else if(!r){_utils2.default.deleteTiddlers([s])}var o=\"tm-close-tiddler\";i.dispatchEvent({type:o,tiddlerTitle:a})})}else{var l=this.domNode.getBoundingClientRect();this.dispatchEvent({type:\"tm-navigate\",navigateTo:a,navigateFromTitle:this.getVariable(\"storyTiddler\"),navigateFromNode:this,navigateFromClientRect:{top:l.top,left:l.left,width:l.width,right:l.right,bottom:l.bottom,height:l.height}})}}},{key:\"getViewHolderRef\",value:function e(){if(this.viewHolderRef){return this.viewHolderRef}this.logger(\"info\",\"Retrieving or generating the view holder reference\");var t=this.getAttr(\"view\");var i=null;if(t){this.logger(\"log\",'User wants to bind view \"'+t+\"' to graph\");var a=$tm.path.views+\"/\"+t;if($tw.wiki.getTiddler(a)){i=$tm.path.localHolders+\"/\"+_utils2.default.genUUID();this.logger(\"log\",'Created an independent temporary view holder \"'+i+'\"');_utils2.default.setText(i,a);this.logger(\"log\",'View \"'+a+\"' inserted into independend holder\")}else{this.logger(\"log\",'View \"'+t+'\" does not exist')}}if(!i){this.logger(\"log\",\"Using default (global) view holder\");i=$tm.ref.defaultViewHolder}return i}},{key:\"setView\",value:function e(t,i){if(!_ViewAbstraction2.default.exists(t)){return}t=new _ViewAbstraction2.default(t);var a=t.getLabel();i=i||this.viewHolderRef;this.logger(\"info\",'Inserting view \"'+a+'\" into holder \"'+i+'\"');$tw.wiki.addTiddler(new $tw.Tiddler({title:i,text:a}));this.update({changedTiddlers:_defineProperty({},i,true)})}},{key:\"getView\",value:function e(t){if(!t&&this.view){return this.view}var i=this.getViewHolderRef();var a=_utils2.default.getText(i);this.logger(\"debug\",\"Retrieved view from holder\");var s=void 0;if(_ViewAbstraction2.default.exists(a)){s=new _ViewAbstraction2.default(a)}else{this.logger(\"debug\",'Warning: View \"'+a+\"\\\" doesn't exist. Default is used instead.\");s=new _ViewAbstraction2.default(\"Default\")}return s}},{key:\"reloadBackgroundImage\",value:function e(t){var i=this;this.backgroundImage=null;var a=this.view.getConfig(\"background_image\");var s=_utils2.default.getTiddler(a);if(!s&&!a)return;var r=new Image;var n=function e(t){r.src=t};r.onload=function(){i.backgroundImage=r;i.repaintGraph()};if(s){var o=s.fields[\"_canonical_uri\"];if(o){_utils2.default.getImgFromWeb(o,n)}else if(s.fields.text){r.src=$tw.utils.makeDataUri(s.fields.text,s.fields.type)}}else if(a){_utils2.default.getImgFromWeb(a,n)}}},{key:\"repaintGraph\",value:function e(){var t=$tw.utils.hasClass(this.document.body,\"tmap-has-fullscreen-widget\");if(this.network&&(!t||t&&this.enlargedMode)){this.logger(\"info\",\"Repainting the whole graph\");this.network.redraw();this.fitGraph(0,1e3)}}},{key:\"setGraphButtonEnabled\",value:function e(t,i){var a=\"vis-button tmap-\"+t;var s=_utils2.default.getFirstElementByClassName(a,this.domNode);$tw.utils.toggleClass(s,\"tmap-button-enabled\",i)}},{key:\"setNodesMoveable\",value:function e(t,i){if(!t||!t.length||this.view.isEnabled(\"physics_mode\")){return}var a=[];var s=!i;for(var r=t.length;r--;){a.push({id:t[r],fixed:{x:s,y:s}})}this.graphData.nodes.update(a);if(s){this.logger(\"debug\",\"Fixing\",a.length,\"nodes\");this.view.saveNodePositions(this.network.getPositions());this.isPreventZoomOnNextUpdate=true}}},{key:\"addGraphButtons\",value:function e(t){var i=_utils2.default.getFirstElementByClassName(\"vis-navigation\",this.domNode);for(var a in t){var s=this.document.createElement(\"div\");s.className=\"vis-button tmap-\"+a;s.addEventListener(\"click\",t[a].bind(this),false);i.appendChild(s);this.setGraphButtonEnabled(a,true)}}}]);return t}(_widget.widget);exports.tmap=MapWidget;exports.tiddlymap=MapWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/MapWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/license": {
"title": "$:/plugins/felixhayashi/tiddlymap/license",
"subtitle": "License",
"caption": "License",
"text": "\\rules except wikilink\n\n!! TiddlyMap\n\nCopyright (c) 2014, Felix Küppers\nAll rights reserved.\n\nTiddlyMap is licensed under the [[BSD 2-Clause License|http://opensource.org/licenses/BSD-2-Clause]]. For the exact license terms, please visit [[https://github.com/felixhayashi/TW5-TiddlyMap/blob/master/LICENSE]]. \n\n!! TiddlyWiki\n\nCreated by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright © Jeremy Ruston 2004-2007 Copyright © UnaMesa Association 2007-2014\n\nPublished under the following [licenses](https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses):\n\n# BSD 3-clause \"New\" or \"Revised\" License (including any right to adopt any future version of a license if permitted)\n# Creative Commons Attribution 3.0 (including any right to adopt any future version of a license if permitted)\n\n!! Vis.js\n\nCopyright (c) 2014 [Almende B.V.](https://github.com/almende/vis)\n\nPublished under the following licenses:\n\n# Apache License Version 2.0, January 2004 http://www.apache.org/licenses/\n# MIT License (MIT)\n"
},
"$:/plugins/felixhayashi/tiddlymap/readme": {
"title": "$:/plugins/felixhayashi/tiddlymap/readme",
"text": "* Please refer to the project-readme hosted at [[https://github.com/felixhayashi/TW5-TiddlyMap]].\n* A demo with several examples and explanations can be found at [[http://tiddlymap.org]]."
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tmap:unknown": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tmap:unknown",
"description": "Automatically assigned to an edge that does not have a type assigned",
"style": "{\"color\":\"gray\"}",
"show-label": "false"
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-body:link": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-body:link",
"description": "A link that is contained in the tiddler's body pointing to another resource.",
"style": "{\"color\":\"orange\", \"dashes\":true}",
"label": "links to",
"text": ""
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:list": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:list",
"description": "Contained in a list of this tiddler",
"style": "{ \"color\": \"red\", \"dashes\":true}",
"label": "listed in",
"text": ""
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:tags": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:tags",
"description": "A tag that refers to a tiddler of the same name.",
"style": "{ \"color\": \"darkslategray\", \"dashes\":true}",
"label": "tagged with"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/default",
"caption": "Overview",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-plain\">\n Please visit the [[online docs|http://tiddlymap.org/Documentation]]\n for more information about the available global options.\n</div>\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Plugin version</th>\n <td><<pluginVersion>></td>\n </tr>\n<!--\n <tr>\n <th align=\"left\">Datastructure version</th>\n <td><<dataStructureVersion>></td>\n </tr>\n-->\n <tr>\n <th align=\"left\">Nodes in system</th>\n <td><<numberOfNodes>></td>\n </tr>\n <tr>\n <th align=\"left\">Edges in system</th>\n <td><<numberOfEdges>></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/editor": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/editor",
"caption": "Editor",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Neighbour­hood menu\"\n field:\"config.sys.editorMenuBar.showNeighScopeButton\"\n descr:\"Show or hide the neighbourhood menu button.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Screen­shot menu\"\n field:\"config.sys.editorMenuBar.showScreenshotButton\"\n descr:\"Show or hide the screenshot menu button.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Raster­ menu\"\n field:\"config.sys.editorMenuBar.showRasterMenuButton\"\n descr:\"Show or hide the raster menu button.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/fields": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/fields",
"caption": "Field settings",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"Node-icon field\"\n field:\"config.sys.field.nodeIcon\" \n descr:\"Local image used as node image in the graphs.\">>\n <<tmap-row type:\"input-text\"\n title:\"Node-label field\"\n field:\"config.sys.field.nodeLabel\" \n descr:\"Alternative node label to use instead of the title.\">>\n <<tmap-row type:\"input-text\"\n title:\"Node-info field\"\n field:\"config.sys.field.nodeInfo\" \n descr:\"Field used as tooltip when hovering over a node in a graph.\"\n note:\"It is prohibited to use the text field here.\">>\n</table> \n\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/interaction": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/interaction",
"caption": "Interaction & behaviour",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Default startup view\"\n field=\"config.sys.defaultView\"\n nochoice=\"Last view used at startup\"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to display at startup\" />\n <<tmap-row type:\"input-checkbox\"\n title:\"Show popups\"\n field:\"config.sys.popups.enabled\"\n descr:\"Set this to true if you want to see automatic\n popups in the map.\">>\n <$list filter=\"[config.sys.popups.enabled[true]]\">\n <<tmap-row type:\"input-text\"\n title:\"Popup delay\"\n field:\"config.sys.popups.delay\"\n descr:\"The time in miliseconds that needs to pass after\n a tooltip is triggered.\">>\n <<tmap-row type:\"input-text\"\n title:\"Popup width\"\n field:\"config.sys.popups.width\"\n descr:\"The default max-width of the popup.\"\n note:\"Make sure you added the desired unit (e.g. `px`).\n Requires a wiki refresh.\">>\n <<tmap-row type:\"input-text\"\n title:\"Popup height\"\n field:\"config.sys.popups.height\"\n descr:\"The default max-height of the popup.\"\n note:\"Make sure you added desired the unit (e.g. `px`).\n Requires a wiki refresh.\">>\n </$list>\n <<tmap-row type:\"input-checkbox\"\n title:\"Allow single click mode\"\n field:\"config.sys.singleClickMode\"\n descr:\"A single click on a node is sufficient to open the\n corresponding tiddler.\"\n note:\"Drag and drop will still work and does not cause a\n tiddler to be opened. Single click is never active in\n the map editor.\">>\n <<tmap-row type:\"input-select\"\n title:\"Edge click behaviour\"\n field:\"config.sys.edgeClickBehaviour\"\n selectFilter:\"[[nothing|Nothing]]\n [[manager|Open edge-type manager]]\"\n descr:\"What should happen when you click on an edge?\">>\n <<tmap-row type:\"input-select\" title:\"Raster size\" field:\"config.sys.raster\"\n selectFilter:\"[[|disabled]] [[5|5px]] [[10|10px]] [[15|15px]] [[20|20px]] [[30|30px]] [[40|40px]]\"\n descr:\"Snap nodes to an invisible raster of the given size after drag'n'drop.\"\n note:\"Only works when the view is not in floating mode\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Apply node-filter to neighbours\"\n field:\"config.sys.nodeFilterNeighbours\"\n descr:\"If checked, neighbours displayed in the map will be filtered\n by the view's node-filter. Otherwise the node-filter will only be used\n to filter the original set of nodes in the map\">>\n</table>\n\n!! Suppressed dialogs\n\n<div class=\"tmap-flash-message tmap-plain\">\n Dialogs that you decided to suppress in the past are listed here.\n Remove the checkmark to enable dialogs again.\n</div>\n\n<table class=\"tmap-config-table\">\n <$list\n filter=\"[<output>fields[]prefix[config.sys.suppressedDialogs]]\"\n emptyMessage=\"–\">\n <$set name=\"dialogName\" value=<<tmap basename \".\">>>\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Suppress '$(dialogName)$' dialog\"\n field=<<currentTiddler>> />\n </$set>\n <br />\n </$list>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/liveTab": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/liveTab",
"caption": "Live tab",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Live tab\"\n field:\"liveTab\" \n descr:\"Show or hide the live tab in the sidebar.\">>\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Fallback view\"\n field=\"config.sys.liveTab.fallbackView\" \n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to display in the sidebar's live tab in\n case the current tiddler did not specify a view\n to open.\" />\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig",
"subtitle": "{{$:/core/images/options-button}} Global configuration of TiddlyMap",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<$macrocall $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/verbosity": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/verbosity",
"caption": "Verbosity",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-plain\">\n Here you can restrict the system's talkativeness.\n</div>\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Debug output\"\n field:\"config.sys.debug\" \n descr:\"Set this to true if you want debug information to be\n displayed in the browser console.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show notifications\"\n field:\"config.sys.notifications\" \n descr:\"Set this to true if you want to receive fade-out\n notifications for important events.\">>\n</table> "
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/vis",
"classes": "tmap-remove-top-space",
"caption": "Graph",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The global vis configurations will affect all views and their\n elements (nodes and edges) unless they are overridden on a lower\n level. All options below are documented at\n [[vis.js.org|http://visjs.org/docs/network]].\n</div>\n<div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n</div>\n<$tmap-config\n mode=\"manage-config\"\n inherited=\"inherited-style\"\n extension=\"config.vis\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/default",
"caption": "Overview",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n All configurations __only__ affect this view.\n</div>\n\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Created on</th>\n <td><<createdOn>></td>\n </tr>\n <tr>\n <th align=\"left\">Nodes contained in graph</th>\n <td><<numberOfNodes>></td>\n </tr>\n <tr>\n <th align=\"left\">Edges contained in graph</th>\n <td><<numberOfEdges>></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters",
"caption": "Edit filters",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n Completely new to filters? Please read\n [[Introduction to filter notation|http://tiddlywiki.com/#Introduction%20to%20filter%20notation]]\n first.\n</div>\n\n<fieldset>\n <legend>Filters <sup>[1]</sup></legend>\n <table class=\"tmap-config-table tmap-large-input\">\n <<tmap-row type:\"input-textarea\"\n title:\"Node filter\"\n field:\"filter.prettyNodeFltr\"\n descr:\"In the map, only those tiddlers that match this filter\n are shown. Drafts and system tiddlers are automatically\n excluded.\">>\n <<tmap-row type:\"input-textarea\"\n title:\"Edge-type filter\"\n field:\"filter.prettyEdgeFltr\" \n descr:\"Only edges with a type that matches the filter are shown.\">>\n </table> \n</fieldset>\n\n---\n\n<sup>[1]</sup> In the editors above, a new line is equivalent to a space symbol.<br />\n<sup>[2]</sup> It is suggested to read\n[[Node and edge-type filters|http://tiddlymap.org#Node%20and%20edge-type%20filters]]\nand [[Edge-type namespaces|http://tiddlymap.org#Node%20and%20edge-type%20filters]]\nbefore using Tiddlymap's filter editor."
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout",
"caption": "Layout",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Floating nodes\"\n field:\"config.physics_mode\"\n descr:\"Set this to true if you want your nodes to freely\n swirl around.\">>\n <<tmap-row type:\"input-text\"\n title:\"Background image\"\n field:\"config.background_image\"\n descr:\"The title of an image tiddler to be used as background\n in the view.\"\n note:\"You can also use an image url directly, however, the\n image needs be stored under the same domain as your wiki.\n Otherwise, it won't be displayed!\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/namespace": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/namespace",
"caption": "Namespace",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table tmap-small-input\">\n <<tmap-row type:\"input-text\"\n title:\"Edge-type namespace\"\n field:\"config.edge_type_namespace\" \n descr:\"A namespace (like `foaf` in `foaf:knows`) that will be\n automatically added to all edge types you create in\n this view. The namespace is only added if the types\n do not exist yet and do not have a namespace assigned yet.\n Namespaces are always hidden in the graph.\"\n note:\"Most likely, you don't want the edges created with this\n namespace to leak into other views, moreover, you don't\n want edges that do not possess the namespace ever to be\n shown here. In this case, use a private marker (`_`)\n in front of your namespace, e.g. `_mynamespace` and use\n an appropriate edge type filter, i.e. `+[prefix[_mynamespace]]`\n For further information see:\n \n * [[Edge-type namespaces|http://tiddlymap.org/#Edge-type%20namespaces]]\n * [[Private edge types|http://tiddlymap.org/#Private%20edge%20types]]\n \">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView",
"subtitle": "{{$:/core/images/options-button}} View configuration -- <<view>>",
"text": "\\rules except wikilink\n\n\\define privateEdgeTypes() [[private edge-types|http://tiddlymap.org/#Private%20edge%20types]]\n\n<$macrocall $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/vis",
"caption": "Graph",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The local vis configurations will affect all\n elements (nodes and edges) of this view, unless they are\n overridden on a lower level. All options below are documented at\n [[vis.js.org|http://visjs.org/docs/network]].\n</div>\n<div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on the\n graph. Other options are visible, yet, inactive.\n</div>\n<$tmap-config\n mode=\"manage-config\"\n inherited=\"inherited-style\"\n extension=\"config.vis\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/getEdgeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/getEdgeType",
"subtitle": "{{$:/plugins/felixhayashi/tiddlymap/icon}} Edge type specification",
"text": "\\rules except wikilink\n\\rules except underscore\n\n\\define filter() $(allEdgeTypes)$ +[search:title[$(term)$]]\n\n\\define badge(color, label, tooltip)\n<span style=\"background: $color$\" title=\"$tooltip$\">$label$</span>\n\\end\n\n\\define badges()\n<$tiddler tiddler={{!!text}}>\n<$set name=\"id\" value=<<tmap \"getETyId\" \"$(view)$\">>>\n<$set name=\"isVisible\" value=<<tmap \"isETyVisible\" \"$(view)$\">>>\n<div class=\"tmap-badges\">\n <span\n style=\"background: darkslategray\"\n title=\"Your input translates into this id.\">\n <<id>>\n </span>\n <$list filter=\"[<isVisible>regexp[true]]\">\n <<badge \"green\" \"visible\" \"Matches your view's filter\">>\n </$list>\n <$list filter=\"[<isVisible>regexp[false]]\">\n <<badge \"red\" \"not visible\" \"Doesn't match your view's filter\">>\n </$list>\n <$list filter=\"[<id>!regexp[^tmap:unknown$]]\" variable=\"item\">\n <$list filter=\"[<id>regexp[^_]]\">\n <<badge \"purple\" \"private\" \"Not shown in other views per default\">>\n </$list>\n <$list filter=\"[<id>regexp[.+:.+]]\">\n <<badge \"orange\" \"namespace\" \"This type is prefixed with a proper namespace\">>\n </$list>\n </$list>\n</div>\n</$set>\n</$set>\n</$tiddler>\n\\end\n\n\\define search()\n<p>\n You are about to connect \"<$text text=\"$(fromLabel)$\" />\"\n with \"<$text text=\"$(toLabel)$\" />\". Please specify a type.\n</p>\n<table id=\"tmap-search-table\">\n <tr>\n <td><b>Type:</b></td>\n <td>\n <$edit-text\n focus=\"true\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\"\n class=\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\" />\n <<badges>>\n </td>\n </tr>\n <tr>\n <td></td>\n <td>\n <$set name=\"term\" value={{!!text}}>\n <$set name=\"allEdgeTypes\" value=<<tmap \"option\" \"selector.allEdgeTypesById\">>>\n <ul class=\"tmap-small-list\">\n <$list filter=<<filter>>>\n <li>\n <$button class=\"tc-btn-invisible tmap-link\">\n <$view field=\"title\" />\n <$action-setfield $tiddler=<<output>> text={{!!title}} />\n </$button>\n </li>\n </$list>\n </ul>\n </$set>\n </$set>\n </td>\n </tr>\n</table>\n\\end\n\n<$list filter=\"[<temp>!has[more]]\" variable=\"item\"><<search>></$list>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/addNodeToMap": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/addNodeToMap",
"subtitle": "{{$:/core/images/tag-button}} Add node",
"classes": "tmap-modal-add-node",
"text": "\\rules except wikilink\n\n\\define backButtonText() back to list\n\\define outputAndTemplate() [[$(output)$]] [[$(template)$]]\n\n\\define editor()\n <$button class=\"tmap-go-back tc-btn-invisible\">\n {{$:/core/images/chevron-left}} <<backButtonText>>\n <$action-deletefield $tiddler=<<temp>> more template />\n <$action-sendmessage\n $message=\"tmap:tm-clear-tiddler\"\n keep=\"draft.title\"\n title=<<output>> />\n </$button>\n\n <$list filter=\"[<output>get[draft.title]is[tiddler]]\">\n <div class=\"tmap-flash-message tmap-warning\">\n Tiddler already exists! Use another title or click\n \"<<backButtonText>>\" to cancel your edit.\n </div>\n </$list>\n\n <div class=\"tmap-modal-editor\">\n <table class=\"tmap-config-table\">\n <tr class=\"tmap-template-select\">\n <td>Template</td>\n <td>\n <$select\n tiddler=<<temp>>\n field=\"template\">\n <option value=\"\"></option>\n <$list filter=<<tmap \"option\" \"selector.allPotentialNodes\">>>\n <option><$view field=\"title\" /></option>\n </$list>\n </$select>\n <$button>Load\n <$action-sendmessage\n $message=\"tmap:tm-clear-tiddler\"\n keep=\"draft.title\"\n title=<<output>> />\n <$list filter=\"[<temp>get[template]]\" variable=\"template\">\n <$action-sendmessage\n $message=\"tmap:tm-merge-tiddlers\"\n tiddlers=<<outputAndTemplate>>\n output=<<output>> />\n <$action-deletefield $tiddler=<<output>> tmap.id tmap.edges />\n </$list>\n </$button>\n </td>\n <td>Press the \"load\" button to activate the template.</td>\n </tr>\n </table>\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<output>>>\n <$transclude tiddler=\"$:/core/ui/EditTemplate\" mode=\"block\" />\n </$set>\n </$importvariables>\n </div>\n\\end\n\n\\define search()\n<p>Add an existing tiddler to the map or create a new one.</p>\n<table id=\"tmap-search-table\">\n <tr>\n <td><b>Title:</b></td>\n <td>\n <$edit-text\n tiddler=<<output>>\n field=\"draft.title\"\n focus=\"true\"\n type=\"text\"\n tag=\"input\"\n default=\"\"\n class=\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\" />\n <$list filter=\"[<output>get[draft.title]!is[tiddler]]\">\n <$button\n tooltip=\"The tiddler does not exist yet and you may edit it\n before it is added to the map\">\n {{$:/core/images/edit-button}}\n <$action-setfield $tiddler=<<temp>> more=\"true\" />\n </$button> <sup>[1]</sup>\n </$list>\n </td>\n </tr>\n <tr>\n <td></td>\n <td>\n <$set name=\"term\" value={{!!draft.title}}>\n <ul class=\"tmap-small-list\">\n <$list filter=\"[search:title<term>!is[system]!has[draft.of]]\">\n <li>\n <$button class=\"tc-btn-invisible tmap-link\">\n <$view field=\"title\" />\n <$action-setfield $tiddler=<<output>> draft.title={{!!title}} />\n </$button>\n </li>\n </$list>\n </ul>\n </$set>\n </td>\n </tr>\n</table>\n\n<$list filter=\"[<output>get[draft.title]!is[tiddler]]\">\n<hr />\n<sup>[1]</sup>\n<small>\n The tiddler does not exist yet and you may edit it\n before it is added to the map\n</small>\n</$list>\n\\end\n\n<$list filter=\"[<temp>!has[more]]\" variable=\"item\"><<search>></$list>\n<$list filter=\"[<temp>has[more]]\" variable=\"item\"><<editor>></$list>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/cannotDeleteViewDialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/cannotDeleteViewDialog",
"subtitle": "{{$:/core/images/locked-padlock}} You cannot delete this view!",
"buttons": "ok",
"text": "\\rules except wikilink\n\nIt is not possible to delete the current view as ''<<count>>'' tiddlers\nare referencing it. To delete the view you must first remove the tiddlymap\nwidgets in the tiddlers listed below or change their view attributes.\n\n''References''\n\n<ul>\n<$list filter=<<refFilter>> variable=\"item\">\n <li><$link><<item>></$link></li>\n</$list>\n</ul>\n\nAfter the references are removed, you may delete the view.\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/getConfirmation": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/getConfirmation",
"subtitle": "{{$:/core/images/import-button}} You must confirm in order to proceed!",
"text": "\\rules except wikilink\n\n<<message>>\n\n''Are you really sure you want to do this?''"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/createView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/createView",
"subtitle": "{{$:/core/images/new-button}} Creating a new view",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"View name\"\n field:\"name\"\n focus:\"true\"\n class:\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\"\n descr:\"The name for the new view. If no name is entered,\n the program will invent one for you.\"\n note:\"You cannot override an existing view. In this case,\n you need to delete the old view first! You must no use\n slashes (`/`) in the name.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Clone view\"\n field:\"clone\"\n descr:\"Use the view that is currently displayed in the\n editor as blueprint. The view will be an __exact__\n clone of the current one, only with a different\n name.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/deleteNodeDialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/deleteNodeDialog",
"subtitle": "{{$:/core/images/delete-button}} You are about to delete <<count>> nodes",
"text": "\\rules except wikilink\n\n''Please choose an option or abort:''\n\n<$radio tiddler=<<output>> field=\"delete-from\" value=\"system\">\n Delete nodes from system <sup>[1]</sup>\n</$radio><br />\n<$radio tiddler=<<output>> field=\"delete-from\" value=\"filter\">\n Delete nodes from graph's filter <sup>[2]</sup>\n</$radio>\n\nThe following nodes will be deleted:\n\n<ul>\n<$list filter=<<tiddlers>>>\n <li><$view tiddler={{!!title}} field=\"title\" /></li>\n</$list>\n</ul>\n\n---\n\n<sup>[1]</sup>\n<small>This will delete all nodes, their corresponding tiddlers and all connected edges.</small><br/>\n<sup>[2]</sup>\n<small>''Important:'' Removing a node from the graph's filter only works, if the node has been added in the map editor per double click or via \"Add Node\". If the node hasn't been added as mentioned above, you need to change the underlying tiddler in a way that it doesn't match your filter anymore, if you don't want it to be displayed in the graph.</small>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/dublicateIdInfo": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/dublicateIdInfo",
"subtitle": "{{$:/core/images/info-button}} Dublicate id detected",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nTiddlyMap requires the value of the id field (\"tmap.id\") to be\nunique in order to correctly identify nodes and tiddlers.\n\nThe id of the \"<<param.changedTiddler>>\" already exists for these tiddlers:\n\n<ul>\n<$list filter=<<param.filter>> variable=\"item\">\n <li><$link><<item>></$link></li>\n</$list>\n</ul>\n\nTherefore TiddlyMap\n\n* assigned a new id to tiddler \"<<param.changedTiddler>>\"\n* removed all edges from \"<<param.changedTiddler>>\"\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/edgeNotVisible": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/edgeNotVisible",
"subtitle": "{{$:/core/images/info-button}} Edge will not be visible in view \"<<view>>\"",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nYou just created an edge of type\n<code><$text text=<<type>> /></code> that will not be\nvisible in this view because it doesn't match your\nedge-type filter settings.\n\nThe current edge-type filter of view \"<<view>>\" looks like this:\n\n<pre><code><$text text=<<eTyFilter>> /></code></pre>\n\nTo have the newly added type displayed in your view, adjust your\nedge-type filter accordingly. \n\nSome suggestions:\n\n<ul>\n <li>\n Explicitly add the type to the filter:\n <code><$text text=\"[[\" /><$text text=<<type>> /><$text text=\"]]\" /></code>\n </li>\n <li>\n <$set\n filter=\"[<type>regexp[:]splitbefore[:]]\"\n name=\"prefix\"\n emptyValue=<<tmap halfOfString \"$(type)$\">>>\n Add a filter rule (e.g. a prefix filter) that will match\n your type: <code>[prefix[<<prefix>>]]</code>\n </$set>\n </li>\n <li>Make your current view-filter less restrictive.</li>\n</ul>\n\nFor further information, please see:\n[[Node and edge-type filters|http://tiddlymap.org#Node%20and%20edge-type%20filters]]."
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode/default",
"caption": "Global node style",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n A node's ''global configuration''\n (also referred to as //global individual config//) defines its\n individual appearance and behaviour in all views.\n</div>\n<<maybeShowTidColorWarning>>\n\n<$macrocall $name=\"sharedSettings\"\n twIconField=<<tidIconField>>\n faIconField=\"global.tmap.fa-icon\"\n labelField=<<tidLabelField>> />\n\n<$macrocall $name=\"visConfiguration\"\n mode=\"manage-node-types\"\n extensionField=\"global.tmap.style\"\n styleName=\"node's global style\"\n inheritedList=\"[[inherited-global-default-style]]\n [[inherited-local-default-style]]\n [[inherited-group-styles]]\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode/local": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode/local",
"caption": "Local node style",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The ''local node configuration''\n (also referred to as //view-specific node configuration//)\n overrides the //global individual configuration// and only affects\n the node's appearance and behaviour in the current view.\n</div>\n<<maybeShowTidColorWarning>>\n\n<fieldset>\n <legend>Behaviour</legend>\n <table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Open view\"\n field=\"local.open-view\"\n nochoice=\"Disabled\"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"Clicking on this node will open the specified\n view instead of the tiddler represented by this node.\" />\n </table>\n</fieldset>\n\n<$macrocall $name=\"sharedSettings\"\n twIconField=\"local.tw-icon\"\n faIconField=\"local.fa-icon\"\n labelField=\"local.label\" />\n\n<$macrocall $name=\"visConfiguration\"\n mode=\"manage-node-types\"\n extensionField=\"local-individual-node-style\"\n styleName=\"node's local style\"\n inheritedList=\"[[inherited-global-default-style]]\n [[inherited-local-default-style]]\n [[inherited-group-styles]]\n [[global.tmap.style]]\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode",
"subtitle": "{{$:/core/images/edit-button}} Editing style of node \"<<tiddler>>\"",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define maybeShowTidColorWarning()\n <$list filter=\"[<tidColor>regexp[.+]]\">\n <div class=\"tmap-flash-message tmap-warning\">\n You have set the tiddler's color\n field to \"<<tidColor>>\". This value will be completely ignored\n when you change node's color properties in the vis editor below.\n </div>\n </$list>\n\\end\n\n\\define iconSettings(twIconField, faIconField)\n <fieldset>\n <legend>Icon Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"TW-icon\"\n field:\"$twIconField$\"\n descr:\"A tiddlywiki image reference.\n For example '$:/core/icon' for Movotun Jack.\">>\n <<tmap-row type:\"input-text\"\n title:\"FA-icon\"\n field:\"$faIconField$\"\n descr:\"A Font Awesome icon code.\n For example 'f206' for the bicycle symbol.\">>\n </table>\n </fieldset>\n\\end\n\n\\define sharedSettings(twIconField, faIconField, labelField)\n <fieldset>\n <legend>General Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"Label\"\n field:\"$labelField$\"\n descr:\"Use this value as node label.\">>\n </table>\n </fieldset>\n <!-- display icon fieldset -->\n <<iconSettings \"$twIconField$\" \"$faIconField$\">> \n\\end\n\n<$macrocall\n $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft",
"caption": "Draft",
"text": "\\rules except wikilink\n\n<div class=\"tmap-modal-editor\">\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<draftTRef>> >\n <$transclude tiddler=\"$:/core/ui/EditTemplate\" field=\"text\" mode=\"block\" />\n </$set>\n </$importvariables>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original",
"caption": "Current Version",
"text": "\\rules except wikilink\n\n<div class=\"tmap-modal-editor\">\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<originalTRef>> >\n <$transclude tiddler=\"$:/core/ui/ViewTemplate\" field=\"text\" mode=\"block\" />\n </$set>\n </$importvariables>\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor",
"subtitle": "{{$:/core/images/edit-button}} <<originalTRef>>",
"classes": "tmap-modal-fullscreen-editor tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define defaultTab() $:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original\n\n<$macrocall $name=\"tabs\"\n default=<<defaultTab>>\n tabsList=\"[all[shadows]prefix[$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/]]\" />"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fieldChanged": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fieldChanged",
"subtitle": "{{$:/core/images/info-button}} The field \"<<name>>\" changed",
"text": "\\rules except wikilink\n\nYou changed the field \"<<name>>\" from \"<<oldValue>>\" to \"<<newValue>>\".\n\nIt is recommended to let TiddlyMap copy all values from the former field \"<<oldValue>>\" to the new field \"<<newValue>>\" so the data stored in \"<<oldValue>>\" is not lost. This operation has to be done now or never.\n\nDo you want to move each tiddler's existing \"<<oldValue>>\" value to \"<<newValue>>\"? Please note that any value currently stored in \"<<newValue>>\" would consequently be overridden and the old field \"<<oldValue>>\" would be eventually removed!"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenNotSupported": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenNotSupported",
"subtitle": "{{$:/core/images/info-button}} Your machine does not support fullscreen",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nPlease have a look [[here|http://caniuse.com/#feat=fullscreen]] to see a list of supported devices/browsers.\n\nSorry for this :("
},
"$:/plugins/felixhayashi/tiddlymap/dialog/renameView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/renameView",
"subtitle": "{{$:/core/images/tag-button}} Please specify a view name",
"text": "\\rules except wikilink\n\n''Name:''\n<$edit-text focus=\"true\" tiddler=<<output>> field=\"text\" type=\"text\" tag=\"input\" default=\"\"\n class=\"tmap-trigger-field tmap-triggers-ok-button-on-enter\" />\n\nNote that ''<<count>>'' tiddlers are referencing this view.\n\n<$reveal type=\"nomatch\" text=\"0\" default=<<count>>>\n\nRenaming the view will cause the reference to be invalid.\nIt is recommended to first remove the tiddlymap widgets in\nthe tiddlers listed below or change their view attributes\naccordingly.\n\n''References''\n\n<ul>\n<$list filter=<<refFilter>> variable=\"item\">\n <li><$text text=<<item>> /></li>\n</$list>\n</ul>\n\n</$reveal>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/saveCanvas": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/saveCanvas",
"subtitle": "{{$:/core/images/options-button}} Save a snapshot image of view \"<<view>>\"",
"text": "\\rules except wikilink\n\n\\define preview()\n<div class=\"tmap-save-canvas-preview\">\n <$transclude tiddler=<<snapshot>> /><br />\n Measures: <<width>> × <<height>>\n</div>\n\\end\n\n<table class=\"tmap-config-table\">\n<!--\n <<tmap-row type:\"input-text\"\n title:\"Name\"\n field:\"name\">\n-->\n<$macrocall $name=\"tmap-row\"\n type=\"input-text\"\n title=\"Name\"\n field=\"name\"\n descr=<<preview>> />\n</table>\n\n<fieldset><legend>Options</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-radio\"\n title:\"Action\"\n field:\"action\" \n selectFilter:\"[[download|Download]]\n [[wiki|Save in wiki]]\n [[placeholder|Use as placeholder for this view]]\"\n descr:\"Save the image by downloading it to your computer or\n save it as a tiddler in your wiki.<br /><br />\n A third option is to make TiddlyMap use this image as\n placeholder for the current view. Placeholders are used\n when tiddlers are exported in form of static html\n or when editing a tiddler while having the preview\n shown. In this case the title input is ignored.\">>\n </table>\n</fieldset>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog",
"text": "\\rules except wikilink\n\n<div class=<<classes>>>\n<$importvariables\n filter=\"[[$:/plugins/felixhayashi/tiddlymap/misc/macros]]\n [[$:/core/macros/tabs]]\">\n<$transclude tiddler=<<template>> mode=\"block\" />\n</$importvariables>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/welcome": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/welcome",
"subtitle": "{{$:/core/images/info-button }} Welcome",
"buttons": "ok",
"text": "\\rules except wikilink\n\nIt seems that you freshly installed TiddlyMap.\n\n* In case you need any help, please consult the [[online docs|http://tiddlymap.org#Documentation]] first.\n* You are welcome to create an [[issue|https://github.com/felixhayashi/TW5-TiddlyMap/issues]] at GitHub for any bug you discover.\n* Make sure to revisit the [[demo site|http://tiddlymap.org]] to see whether your version is up-to-date.\n* If you like TiddlyMap, please give it a star at [[GitHub|https://github.com/felixhayashi/TW5-TiddlyMap]] or tell your friends about it :)\n* ''Please note:'' TiddlyMap is distributed under the [[BSD 2-Clause License|http://opensource.org/licenses/BSD-2-Clause]], which belongs to the same license family, as the license used by TiddlyWiki. By using this plugin you agree to the product's [[License Terms|https://github.com/felixhayashi/TW5-TiddlyMap/blob/master/LICENSE]].\n\nEnjoy!\n\n---\n\nTiddlyMap will configure your wiki for optimal use. Everything can be changed back later by you, via the TiddlyWiki configurations panel, so no worries. If you checked some of the options below, please save & restart after closing this dialog.\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize storyview\"\n field:\"config.storyview\"\n descr:\"Sets the storyview to 'top' for optimal scrolling.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize sidebar\"\n field:\"config.sidebar\"\n descr:\"Sets sidebar layout to 'fixed-fluid' for larger editor.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize navigation\"\n field:\"config.navigation\"\n descr:\"Sets navigation style to open tiddlers at top for better map navigation.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Create demo welcome map\"\n field:\"config.demo\"\n descr:\"Creates a little hello world welcome map for you.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/widgetCodeGenerator": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/widgetCodeGenerator",
"subtitle": "{{$:/core/images/permalink-button}} Widget Code Generator",
"buttons": "close",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n Use the code below to embed a view in a tiddler.\n</div>\n\n<pre style=\"white-space: normal;\">\n<$tmap\n\n<$list filter=\"[<output>has[var.view]]\">\n view=\"<$view field='var.view' />\"</$list>\n<$list filter=\"[<output>field:var.click-to-use[true]]\">\n click-to-use=\"true\"</$list>\n<$list filter=\"[<output>has[var.editor]]\">\n editor=\"<$view field='var.editor' />\"</$list>\n<$list filter=\"[<output>has[var.width]]\">\n width=\"<$view field='var.width' />\"</$list>\n<$list filter=\"[<output>has[var.height]]\">\n height=\"<$view field='var.height' />\"</$list>\n<$list filter=\"[<output>has[var.class]]\">\n class=\"<$view field='var.class' />\"</$list>\n<$list filter=\"[<output>field:var.show-buttons[false]]\">\n show-buttons=\"false\"</$list>\n<$list filter=\"[<output>has[var.design]]\">\n design=\"<$view field='var.design' />\"</$list>></$tmap>\n</pre>\n\n<fieldset>\n <legend>Parameters</legend> \n <table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"View\"\n field=\"var.view\"\n nochoice=\" \"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to bind the wiedget to\" />\n <<tmap-row type:\"input-select\"\n title:\"Editor bar\"\n field:\"var.editor\"\n selectFilter:\"[[|Hidden]]\n [[vis|Simple]]\n [[advanced|Advanced]]\"\n descr:\"Whether the widget should act as an editor or not.\">>\n <<tmap-row type:\"input-select\"\n title:\"Design\"\n field:\"var.design\"\n selectFilter:\"[[|Normal]]\n [[plain|Plain]]\"\n descr:\"Usually a header is displayed and borders. Plain\n design will only show the mere graph.\">>\n <<tmap-row type:\"input-text\"\n title:\"Height\"\n field:\"var.height\"\n descr:\"Graph's height in css units. Defaults to '300px'.\">>\n <<tmap-row type:\"input-text\"\n title:\"Width\"\n field:\"var.width\"\n descr:\"Graph's width in css units. Defaults to '100%'.\">>\n <<tmap-row type:\"input-text\"\n title:\"Class\"\n field:\"var.class\"\n descr:\"A custom class to apply your own css.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Click to use\"\n field:\"var.click-to-use\"\n default:\"false\"\n descr:\"A click is needed to enable the graph.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show buttons\"\n field:\"var.show-buttons\"\n default:\"true\"\n descr:\"Show or hide the graph's navigation buttons.\">>\n </table>\n</fieldset>"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/close": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/close",
"text": "\\rules except wikilink\n\n<$button class=\"tmap-dialog-button tmap-close-button\" tooltip=\"Close this dialog\">Close\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok",
"text": "\\rules except wikilink\n\n<$button class=\"tmap-dialog-button tmap-ok-button\" tooltip=\"Confirm dialog\">OK\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_cancel": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_cancel",
"text": "\\rules except wikilink\n\n<$transclude tiddler=\"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok\" mode=\"inline\" />\n<$button class=\"tmap-dialog-button tmap-cancel-button\" tooltip=\"Close dialog without saving\">Cancel\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"\" />\n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_suppress": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_suppress",
"text": "\\rules except wikilink\n\n<$set name=\"currentTiddler\" value=<<title>> >\n\n<$checkbox field=\"suppress\" checked=\"1\" unchecked=\"0\" default=\"0\"> Do not show this dialog again</$checkbox>\n<$button class=\"tmap-dialog-button tmap-ok-button\" tooltip=\"Confirm this dialog\">OK\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n <!-- suppress dialog in the future -->\n <$action-sendmessage $message=\"tmap:tm-suppress-dialog\"\n dialog=<<templateId>>\n suppress={{!!suppress}} />\n \n</$button>\n\n</$set>"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter",
"text": "\\rules except wikilink\n\n\\define footer() $:/plugins/felixhayashi/tiddlymap/dialogFooter/$(buttons)$\n\n<$transclude tiddler=<<footer>> />\n\n<!-- we need this button to be able to close a tiddler from outside programmatically -->\n<$button class=\"tmap-hidden-close-button\" message=\"tm-close-tiddler\" />"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/element_type_manager": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/element_type_manager",
"text": "\\rules except wikilink\n\n<$button\n class=\"tmap-dialog-button tmap-save-button\"\n tooltip=\"Save the current changes\">Save\n <$action-sendmessage\n $message=\"tmap:tm-save-type-form\"\n mode=<<mode>>\n output=<<output>> />\n</$button>\n<$button\n class=\"tmap-dialog-button tmap-cancel-button\"\n tooltip=\"Cancel the most resent changes and exit\">Quit\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n</$button>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/deleteType": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/deleteType",
"caption": "Removal",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Delete type\"\n field=\"temp.deleteType\"\n default={{!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"If you want to delete this type, set this to true\n and click the save button afterwards. Predefined system\n types cannot be deleted.\" note=\"Consequently, all edges\n of this type will be deleted.\" />\n\\end\n\n\\define manage-node-types()\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Delete type\"\n field=\"temp.deleteType\"\n default={{!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"If you want to delete this type, set this to true and\n click the save button afterwards. Predefined system\n types cannot be deleted.\" />\n\\end\n\n<table class=\"tmap-config-table\"><$macrocall $name=<<mode>> /></table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/description": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/description",
"caption": "Description",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <<tmap-row type:\"input-textarea\"\n title:\"Description\"\n field:\"description\"\n descr:\"An optional description for this type. The\n description will be displayed as tooltip when\n moving the mouse over an edge of this type.\">>\n\\end\n\n\\define manage-node-types()\n <<tmap-row type:\"input-textarea\"\n title:\"Description\"\n field:\"description\" \n descr:\"An optional description for this type.\">>\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall $name=<<mode>> />\n</table>\n\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings",
"caption": "General",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <<tmap-row type:\"input-text\"\n title:\"Label\"\n field:\"label\" \n descr:\"An optional alias used as edge-label.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show label\"\n field:\"show-label\"\n default:\"true\"\n descr:\"If unchecked, no edge label will be displayed.\">>\n\\end\n\\define manage-node-types()\n <$list filter=\"[<currentTiddler>!regexp:id[tmap:]]\">\n <<tmap-row type:\"input-textarea\"\n title:\"Scope\"\n field:\"scope\" \n descr:\"A filter expression that defines, which nodes inherit\n this node-type and its style.\">>\n </$list>\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\" \n title=\"Priority\"\n field=\"priority\"\n selectFilter=<<tmap \"scale\" \"100\">>\n descr=\"When a type has a a higher priority than another type,\n its style will override the other style\" />\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall\n $name=\"tmap-row\"\n title=\"Identifier\"\n field=\"temp.newId\"\n type=\"input-text\"\n default={{!!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"A unique identifier\"\n />\n <$macrocall $name=<<mode>> />\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview",
"caption": "Overview",
"text": "\\rules except wikilink\n\n\\define date(f) <$view field=$f$ format=\"date\" template=\"DDth mmm hh:mm:ss\"/>\n\n! <$link to={{!!typeTRef}}><$view field=\"id\" /></$link>\n\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Created on</th>\n <td>\n <<date \"created\">>\n </td>\n </tr>\n <tr>\n <th align=\"left\">Modified on</th>\n <td><<date \"modified\">></td>\n </tr>\n <tr>\n <th align=\"left\">Usage count</th>\n <td>\n <span class=\"tmap-edge-type-specific\">\n <$view field=\"temp.usageCount\" />\n </span>\n <span class=\"tmap-node-type-specific\">\n <$count filter={{!!scope}}>0</$count>\n </span>\n </td>\n </tr>\n</table>\n\n<$view field=\"description\">//No description available//</$view>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/styling": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/styling",
"caption": "Styling",
"text": "\\rules except wikilink\n\n\\define url()\n <$set\n filter=\"[<mode>prefix[manage-edge-types]]\"\n name=\"module\"\n value=\"edges\"\n emptyValue=\"nodes\">\n [[visjs.org|http://visjs.org/docs/network/$(module)$]]\n </$set>\n\\end\n\n<fieldset class=\"tmap-node-type-specific\">\n <legend>Icon Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"TW-icon\"\n field:\"tw-icon\"\n descr:\"A tiddlywiki image reference.\n For example '$:/core/icon' for Movotun Jack.\">>\n <<tmap-row type:\"input-text\"\n title:\"FA-icon\"\n field:\"fa-icon\"\n descr:\"A Font Awesome icon code.\n For example 'f206' for the bicycle symbol.\">>\n </table>\n</fieldset>\n\n<fieldset><legend>Visjs styles</legend>\n <div class=\"tmap-flash-message tmap-info\">\n All visjs options below are documented at <<url>>.\n </div>\n <div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n </div>\n <$tmap-config\n mode=<<mode>>\n inherited=\"inherited-style\"\n extension=\"style\" />\n</fieldset>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager",
"subtitle": "{{$:/core/images/tag-button}} <<topic>>",
"buttons": "element_type_manager",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define defaultTab()\n$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview\n\\end\n\n\\define settingsTab()\n$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings\n\\end\n\n\\define tabsFilter()\n[all[shadows]prefix[$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/]]\n\\end\n\n\\define searchFilter()\n$(searchSelector)$\n+[sort[title]nsort[priority]]\n+[removeprefix<typeRootPath>removeprefix[/]]\n+[search:title{$:/temp/tmap/MapElementTypeSearch}]\n\\end\n\n\\define managerClass() tmap-$(mode)$\n\n\\define typePath() $(typeRootPath)$/$(id)$\n\n<div id=\"tmap-element-type-manager\" class=<<managerClass>>>\n <div>\n <div class=\"tmap-searchbar\">\n <$edit-text\n focus=\"true\"\n tiddler=\"$:/temp/tmap/MapElementTypeSearch\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <$list filter=\"[{$:/temp/tmap/MapElementTypeSearch}regexp[.+]]\n +[addprefix[/]]\n +[addprefix<typeRootPath>]\n +[!is[tiddler]!is[shadow]]\">\n <$button tooltip=\"Create a new type of this name\">\n {{$:/core/images/new-button}}\n <$action-sendmessage\n $message=\"tmap:tm-create-type\"\n mode=<<mode>>\n id={{$:/temp/tmap/MapElementTypeSearch}}\n output=<<output>> />\n <$action-setfield $tiddler=\"$:/temp/tmap/MapElementTypeSearch\" text=\"\" />\n </$button>\n </$list>\n\n </div>\n <ul>\n <$list\n filter=<<searchFilter>>\n emptyMessage=<<noTypeFound>>\n variable=\"id\">\n <li>\n <span class=\"tmap-ranking tmap-node-type-specific\">\n # <$view tiddler=<<typePath>> field=\"priority\">1</$view>\n </span>\n <$button class=\"tc-btn-invisible tmap-link\"><<id>>\n <$action-setfield\n $tiddler=<<qualify \"$:/state/tabs/MapElementTypeManager\">>\n text=<<defaultTab>> />\n <$action-sendmessage\n $message=\"tmap:tm-load-type-form\"\n id=<<id>>\n mode=<<mode>>\n output=<<output>> />\n </$button>\n </li>\n </$list>\n </ul>\n </div>\n <div>\n <$reveal type=\"nomatch\" text=\"\" default={{!!id}} >\n <$macrocall\n $name=\"tabs\"\n default=<<defaultTab>>\n state=\"$:/state/tabs/MapElementTypeManager\"\n tabsList=<<tabsFilter>> />\n </$reveal>\n <$reveal type=\"match\" text=\"\" default={{!!id}} >\n <div class=\"tmap-flash-message tmap-info\">\n Please select a type from the list or create a new one by\n entering the type name in the search field on the left.\n </div>\n <div class=\"tmap-flash-message tmap-info tmap-node-type-specific\">\n The number next to the node-type label represents it's priority.\n </div>\n </$reveal>\n </div>\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node": {
"title": "$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node",
"text": "\\define single()\n <$list filter=\"\n [[tmap:tm-toggle-central-topic, $:/core/images/star-filled, Toggle central topic]]\n [[tmap:tm-delete-element, $:/core/images/delete-button, Delete node]]\">\n <$button class=\"tc-btn-invisible\">\n <$action-sendmessage $message=<<tmap \"splitAndSelect\" \", \" \"0\">> />\n <$transclude tiddler=<<tmap \"splitAndSelect\" \", \" \"1\">> />\n <<tmap \"splitAndSelect\" \", \" \"2\">>\n </$button>\n </$list>\n\\end\n\n\\define multi()\n <$list filter=\"\n [[tmap:tm-delete-element, $:/core/images/delete-button, Delete selected nodes]]\">\n <$button class=\"tc-btn-invisible\">\n <$action-sendmessage $message=<<tmap \"splitAndSelect\" \", \" \"0\">> />\n <$transclude tiddler=<<tmap \"splitAndSelect\" \", \" \"1\">> />\n <<tmap \"splitAndSelect\" \", \" \"2\">>\n </$button>\n </$list>\n\\end\n\n<div class=\"tc-drop-down\">\n <$macrocall $name=<<mode>> />\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar",
"text": "\\rules except wikilink\n\\define showEdgeField() show-$(curEdgeId)$\n\n<!-- === View Switcher ========================================== -->\n\n<div class=\"tmap-menu-bar\">\n View:\n <$reveal type=\"match\" text=\"false\" default=<<isViewBound>> >\n <$select\n tiddler=<<viewHolder>>\n field=\"text\"\n default=<<viewLabel>> >\n <$list filter=<<tmap \"option\" \"selector.allViewsByLabel\">> >\n <option value={{!!title}}>\n <$view tiddler={{!!title}} field=\"title\" />\n </option>\n </$list>\n </$select>\n </$reveal>\n <$reveal type=\"match\" text=\"true\" default=<<isViewBound>> >\n <b><<viewLabel>></b>\n </$reveal>\n\n<!-- === Menu =================================================== -->\n\n <$button\n popup=<<qualify \"$:/temp/menu\">>\n class=\"tmap-unicode-button\"\n tooltip=\"Open the Menu\">{{$:/core/images/menu-button}}\n </$button>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/menu\">> >\n <div class=\"tc-drop-down\">\n <a href=\"http://tiddlymap.org#Documentation\" target=\"_blank\">\n {{$:/core/images/info-button}} Open online help\n </a>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-create-view\">\n {{$:/core/images/new-button}} Create new view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-generate-widget\">\n {{$:/core/images/permalink-button}} Grab widget code\n </$button>\n <div class=\"tmap-list-separator\">Global configurations:</div>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-configure-system\">\n {{$:/core/images/options-button}} Configure TiddlyMap\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-manage-edge-types\">\n <span class=\"tmap-unicode-icon\">◭</span> Manage edge-types\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-manage-node-types\">\n <span class=\"tmap-unicode-icon\">▢</span> Manage node-types\n </$button>\n <div class=\"tmap-view-actions\">\n <div class=\"tmap-list-separator\">Actions for this view:</div>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-edit-view\">\n {{$:/core/images/options-button}} Configure view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-rename-view\">\n {{$:/core/images/tag-button}} Rename view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-delete-view\">\n {{$:/core/images/delete-button}} Delete view\n </$button>\n </div>\n </div>\n </$reveal>\n\n<!-- === Neighbourhood menu ===================================== -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\"\n \"config.sys.editorMenuBar.showNeighScopeButton\">>>\n <$button\n class=<<neighScopeBtnClass>>\n tooltip=\"Change the neighbourhood scope\"\n popup=<<qualify \"$:/temp/neighScope\">>>\n {{$:/core/images/preview-open}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/neighScope\">> >\n <div class=\"tc-drop-down\">\n <div class=\"tmap-list-separator\">Neighbourhood scope</div>\n <$button class=\"tc-btn-invisible\">None\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=\"\" />\n </$button>\n <$list filter=\"[[1|1 step distance]]\n [[2|2 step distance]]\n [[3|3 step distance]]\n [[4|4 step distance]]\n [[5|5 step distance]]\">\n <$button class=\"tc-btn-invisible\">\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=<<tmap \"splitAndSelect\" \"|\" \"0\">> />\n </$button>\n </$list>\n <$button class=\"tc-btn-invisible\">No limit\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=\"100\" />\n </$button>\n\n <div class=\"tmap-list-separator\">Neighbourhood traversal</div>\n\n <$radio field=\"config.neighbourhood_directions\" value=\"in\"> Incoming</$radio><br />\n <$radio field=\"config.neighbourhood_directions\" value=\"out\"> Outgoing</$radio><br />\n <$radio field=\"config.neighbourhood_directions\" value=\"\"> Both</$radio>\n\n <div class=\"tmap-list-separator\">Other</div>\n\n <$checkbox field=\"config.show_inter_neighbour_edges\"\n checked=\"true\" unchecked=\"false\"> Inter-neighbour edges</$checkbox>\n\n </div>\n </$reveal>\n\n<!-- === Tracing ===================================== -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<isShowNeighbourhood>>>\n <$button\n class=<<tracingBtnClass>>\n tooltip=\"Trace your clicks on neighbouring nodes.\"\n popup=<<qualify \"$:/temp/tmap-tracing\">>>\n {{$:/core/images/timestamp-on}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/tmap-tracing\">> >\n <div class=\"tc-drop-down\">\n <$button message=\"tmap:tm-neighbourhood-reset-trace\">\n {{$:/core/images/erase}} Restart\n </$button>\n <span\n title=\"\n Enable this option to trace your clicks on neighbouring nodes.\n Traced neighbours are temporarily added to the map (until the map is closed)\n as if they where regular nodes of the map\"\n >\n <$checkbox\n field=\"config.neighbourhood_trace_clicks\"\n checked=\"true\"\n unchecked=\"false\"\n >\n Trace clicked nodes\n </$checkbox>\n </span>\n <br />\n <span title=\"Will focus an zoom on the latest traced node\">\n <$checkbox\n field=\"config.neighbourhood_focus_newly_traced_node\"\n checked=\"true\"\n unchecked=\"false\"\n >\n Focus traced nodes\n </$checkbox>\n </span>\n <br />\n <span title=\"Per default, only neighbours of nodes matching the node filter are displayed. Enable this option to also show neighbours of traced nodes.\">\n <$checkbox field=\"config.neighbourhood_include_traced_node_neighbours\"\n checked=\"true\" unchecked=\"false\"> Show neighbours of all traced nodes</$checkbox>\n </span>\n </div>\n </$reveal>\n\n<!-- === Export menu ============================================ -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\" \"config.sys.editorMenuBar.showScreenshotButton\">>>\n <$button class=\"tmap-unicode-button\" tooltip=\"Open the map-export menu\" popup=<<qualify \"$:/temp/mapExport\">>>\n {{$:/core/images/download-button}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/mapExport\">>>\n <div class=\"tc-drop-down\">\n <$button\n class=\"tc-btn-invisible\"\n tooltip=\"Export the graph and all its elements\n in form of a JSON file\">\n {{$:/core/images/permalink-button}} Save as JSON file\n <$action-sendmessage\n $message=\"tmap:tm-download-graph\"\n view=<<viewLabel>> />\n </$button>\n <$button\n class=\"tc-btn-invisible\"\n tooltip=\"Create a png image to download or save it\n as image or view-placeholder in your wiki\">\n {{$:/core/images/palette}} Save as png image\n <$action-sendmessage $message=\"tmap:tm-save-canvas\" />\n </$button>\n </div>\n </$reveal>\n\n<!-- === Raster menu ============================================ -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\" \"config.sys.editorMenuBar.showRasterMenuButton\">>>\n <$button\n tooltip=\"Change the raster of your map\"\n class=\"tmap-unicode-button\"\n popup=<<qualify \"$:/temp/rasterMenu\">>>\n {{$:/core/images/line-width}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/rasterMenu\">>>\n <div class=\"tc-drop-down\">\n <$button class=\"tc-btn-invisible\">Disable raster\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.raster=\"\" />\n </$button>\n <div class=\"tmap-list-separator\">Raster sizes</div>\n <$list filter=\"[[50|50px]]\n [[75|75px]]\n [[100|100px]]\n [[150|150px]]\">\n <$button class=\"tc-btn-invisible\">\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.raster=<<tmap \"splitAndSelect\" \"|\" \"0\">> />\n </$button>\n </$list>\n </div>\n </$reveal>\n\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/focusButton": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/focusButton",
"text": "\\define filter() [list[$:/temp/tmap/nodes/$(viewLabel)$]search:title{$:/temp/tmap/bar/search}]\n\\define concat(str) $str$\n\n\\define state() $(widgetPopupsPath)$/focus\n\n<div class=\"tmap-focus-button\">\n <$reveal type=\"match\" state=<<state>> text=\"\">\n <$button\n tooltip=\"Zoom on a specific node\"\n class=<<tv-config-toolbar-class>>>{{$:/core/images/advanced-search-button}}\n <$action-setfield $tiddler=\"$:/temp/tmap/bar/search\" text=\"\" />\n <$action-setfield $tiddler=<<state>> text=\"1\" />\n </$button>\n </$reveal>\n <$reveal type=\"nomatch\" state=<<state>> text=\"\">\n <$button\n tooltip=\"Close zoom popup\"\n class=<<tv-config-toolbar-class>>>{{$:/core/images/advanced-search-button}}\n <$action-setfield $tiddler=<<state>> text=\"\" />\n </$button>\n <div class=\"tmap-search-dropdown\">\n <div class=\"tc-drop-down\">\n <$edit-text\n focus=\"true\"\n tiddler=\"$:/temp/tmap/bar/search\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <small><$count filter=<<filter>> /> results</small>\n <hr />\n <div class=\"tmap-very-small-list\">\n <$list filter=<<filter>>\n variable=\"item\"\n emptyMessage=\"//No results//\">\n <$button\n class=\"tc-btn-invisible\"\n message=\"tmap:tm-focus-node\"\n param=<<item>>>\n <$view tiddler=<<item>> field=\"title\" />\n </$button>\n </$list>\n </div>\n </div>\n </div>\n </$reveal>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/hook/editor": {
"title": "$:/plugins/felixhayashi/tiddlymap/hook/editor",
"caption": "Map",
"tags": "$:/tags/SideBar",
"text": "\\define width() calc(100% - 15px)\n\n<div class=\"tmap-mobile-editor\">\n <div class=\"tmap-flash-message tmap-warning\">\n The editor is not displayed in mobile mode.\n </div>\n</div>\n<div class=\"tmap-desktop-editor\">\n <$tiddlymap\n class=\"tmap-sidebar-map-editor\"\n editor=\"advanced\"\n object-id=\"main_editor\"\n click-to-use=\"false\">\n </$tiddlymap>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/hook/liveTab": {
"title": "$:/plugins/felixhayashi/tiddlymap/hook/liveTab",
"caption": "Live",
"text": "\\define width() calc(100% - 15px)\n\n<div class=\"tmap-mobile-editor\">\n <div class=\"tmap-flash-message tmap-warning\">\n The live tab is not displayed in mobile mode.\n </div>\n</div>\n<div class=\"tmap-desktop-editor\">\n <$set name=\"view\"\n filter=\"[{$:/temp/tmap/currentTiddler}get[tmap.open-view]]\"\n emptyValue=<<tmap \"option\" \"config.sys.liveTab.fallbackView\">>>\n <div>\n <$tiddlymap\n view=<<view>>\n click-to-use=\"false\"\n refresh-triggers=\"$:/temp/tmap/currentTiddler\"\n object-id=\"live_tab\">\n </$tiddlymap>\n </div>\n </$set> \n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/misc/quickConnectButton": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/quickConnectButton",
"tags": "$:/tags/ViewToolbar",
"description": "{{$:/language/Buttons/TiddlyMap/Hint}}",
"caption": "{{$:/plugins/felixhayashi/tiddlymap/icon}} {{$:/language/Buttons/TiddlyMap/Caption}}",
"text": "\\define buttonClass() $(tv-config-toolbar-class)$ $(additional-classes)$\n\n\\define nonExistentItem()\n<<item>> <span style=\"color: #9E9E9E\">(will be created)</span>\n\\end\n\n\\define noConnectionsMsg()\n<tr><td colspan=\"4\">//No connections found!//</td></tr>\n\\end\n\n\\define normalSearchFilter()\n[!is[system]!has[draft.of]search:title{$:/temp/quickConnectSearch}sortcs[title]limit[50]]\n\\end\n\n\\define regexSearchFilter()\n[!is[system]!has[draft.of]regexp{$:/temp/quickConnectSearch}sortcs[title]limit[50]]\n\\end\n\n\\define showButton(state)\n<$button set=\"$:/temp/tmap/state/popup/quickConnect\"\n setTo=\"$state$\" tooltip={{$:/language/Buttons/TiddlyMap/Hint}} \n aria-label={{$:/language/Buttons/TiddlyMap/Caption}}\n class=<<buttonClass>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">{{$:/plugins/felixhayashi/tiddlymap/icon}}</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TiddlyMap/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n\\define searchResults()\n<td>\n <$button tooltip=\"Create incoming edge\">\n <<tmap \"option\" \"misc.arrows.in\">>\n <$action-sendmessage $message=\"tmap:tm-create-edge\"\n from=<<item>>\n to=<<currentTiddler>>\n force=\"true\"\n label={{$:/temp/quickConnectSearch/type}}\n view={{$:/temp/quickConnectSearch/view}} />\n </$button>\n</td>\n<td>\n <$button tooltip=\"Create outgoing edge\">\n <<tmap \"option\" \"misc.arrows.out\">>\n <$action-sendmessage $message=\"tmap:tm-create-edge\"\n from=<<currentTiddler>>\n to=<<item>>\n force=\"true\"\n label={{$:/temp/quickConnectSearch/type}}\n view={{$:/temp/quickConnectSearch/view}} />\n </$button>\n</td>\n<td>\n <$list\n filter=\"[<item>is[tiddler]]\"\n emptyMessage=<<nonExistentItem>>>\n <$view tiddler=<<item>> field=\"title\" />\n </$list>\n</td>\n\\end\n\n\\define hidePopup()\n<$macrocall $name=\"showButton\" state=<<qualify>> />\n\\end\n\n\\define showPopup()\n<$set name=\"additional-classes\" value=\"tmap-active-button\">\n <$macrocall $name=\"showButton\" state=\"\" />\n</$set>\n<$set\n name=\"searchFilter\"\n filter=\"[field:title[$:/state/tmap/tid-toolbar]has[re-filter]]\"\n value=<<regexSearchFilter>>\n emptyValue=<<normalSearchFilter>>>\n<div class=\"tmap-quick-connect tc-reveal tc-popup\">\n <div class=\"tc-drop-down\">\n <div class=\"title\">Create connection</div>\n <table class=\"tmap-quick-connect-search-bar\">\n <tr>\n <td>Type:</td>\n <td>\n <$edit-text\n tiddler=\"$:/temp/quickConnectSearch/type\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <$select tiddler=\"$:/temp/quickConnectSearch/type\" default=\"\">\n <option></option>\n <$list filter=<<tmap \"option\" \"selector.allEdgeTypesById\">>>\n <option>{{!!title}}</option>\n </$list>\n </$select>\n </td>\n </tr>\n <tr>\n <td>Search:</td>\n <td>\n <$edit-text tiddler=\"$:/temp/quickConnectSearch\" type=\"text\" tag=\"input\" default=\"\"></$edit-text>\n <$checkbox\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"re-filter\"\n checked=\"1\"\n unchecked=\"\"\n default=\"\"> regexp\n </$checkbox>\n<!--\n <small>(<$count filter=<<searchFilter>> /> results)</small>\n-->\n </td>\n </tr>\n </table>\n <table class=\"tmap-create-connection-table\">\n <tr>\n <td colspan=\"2\">\n <table class=\"tmap-very-small-list\">\n <$list\n filter=<<searchFilter>>\n variable=\"item\">\n <tr><<searchResults>></tr>\n </$list>\n <tr>\n <$list filter=\"[{$:/temp/quickConnectSearch}regexp[.+]] -[is[tiddler]]\" variable=\"item\">\n <<searchResults>>\n </$list>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n <div class=\"title\">Existing Connections</div>\n <div class=\"tmap-quick-connect-existing-bar\">\n <$select\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"direction\"\n default=\"both\">\n <option value=\"both\">both</option>\n <option value=\"in\">incoming</option>\n <option value=\"out\">outgoing</option>\n </$select>\n <$checkbox\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"filter.links\"\n checked=\"-[[tw-body:link]]\"\n unchecked=\"\"\n default=\"\"> hide links\n </$checkbox>\n </div>\n <table class=\"tmap-connection-table\">\n<!--\n <tr>\n <th></th>\n <th>Tiddler</th>\n <th>Type</th>\n <th></th>\n </tr>\n-->\n \n <$tmap-connections\n filter=<<tmap mergeFields \"$:/state/tmap/tid-toolbar\" \"filter.\">>\n direction={{$:/state/tmap/tid-toolbar!!direction}}\n emptyMessage=<<noConnectionsMsg>>>\n <tr>\n <td title=<<direction>>><<directionSymbol>></td>\n <td><$link to=<<neighbour>>><$view field=\"title\" /></$link></td>\n <td><<edge.type>></td>\n <td>\n <$button\n tooltip=\"Delete this connection\"\n class=\"tc-btn-invisible\">{{$:/core/images/close-button}}\n <$action-sendmessage $message=\"tmap:tm-remove-edge\"\n id=<<edge.id>>\n from=<<edge.from>>\n to=<<edge.to>>\n type=<<edge.type>> />\n </$button>\n </td>\n </tr>\n </$tmap-connections>\n </table> \n </div>\n</div>\n</$set>\n\\end\n\n<$list filter=\"[all[current]is[tiddler]]\"><$list filter=\"[{$:/temp/tmap/state/popup/quickConnect}prefix<qualify>]\" variable=\"item\" emptyMessage=<<hidePopup>>><<showPopup>></$list></$list>"
},
"$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/tiddlymap/icon": {
"title": "$:/plugins/felixhayashi/tiddlymap/icon",
"tags": "$:/tags/Image",
"text": "<svg\n xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n xmlns:cc=\"http://creativecommons.org/ns#\"\n xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\n class=\"tc-image-tiddlymap-button tc-image-button\"\n version=\"1.1\"\n width=\"22pt\"\n height=\"22pt\"\n viewBox=\"0 0 128 128\">\n <defs\n id=\"defs4\">\n <marker\n refX=\"0\"\n refY=\"0\"\n orient=\"auto\"\n id=\"Arrow1Lend\"\n style=\"overflow:visible\">\n <path\n d=\"M 0,0 5,-5 -12.5,0 5,5 0,0 z\"\n transform=\"matrix(-0.8,0,0,-0.8,-10,0)\"\n id=\"path3850\"\n style=\"fill-rule:evenodd;stroke:#000000;stroke-width:1pt\" />\n </marker>\n <marker\n refX=\"0\"\n refY=\"0\"\n orient=\"auto\"\n id=\"Arrow1Lstart\"\n style=\"overflow:visible\">\n <path\n d=\"M 0,0 5,-5 -12.5,0 5,5 0,0 z\"\n transform=\"matrix(0.8,0,0,0.8,10,0)\"\n id=\"path3847\"\n style=\"fill-rule:evenodd;stroke:#000000;stroke-width:1pt\" />\n </marker>\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4329\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4321\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4315\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4307\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4299\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4293\" />\n </defs>\n <g\n transform=\"translate(0,-1024.5289)\"\n id=\"layer1\">\n <path\n d=\"m 17.867073,4.5821643 a 3.7249374,3.7249374 0 1 1 -7.449875,0 3.7249374,3.7249374 0 1 1 7.449875,0 z\"\n transform=\"matrix(-6.3328802,0,0,6.2775831,193.9581,1100.3667)\"\n id=\"path4139-1-14\"\n style=\"fill-opacity:1;fill-rule:nonzero\" />\n <path\n d=\"M 77.450496,1064.5069 C 58.849552,1025.9634 15.704158,1023.3858 2.8821873e-7,1034.558 L 0.02388589,1035.2674 C 24.502636,1022.2072 44.810725,1042.1507 60.163934,1074.112 z\"\n id=\"path4337\"\n style=\"fill-opacity:1;stroke-width:0.58181816;stroke-miterlimit:4;stroke-dasharray:none;marker-start:none;marker-end:none\" />\n <path\n d=\"m 12.878637,11.280739 4.75937,-2.7478243 4.759371,-2.7478236 0,5.4956479 0,5.495648 -4.759371,-2.747824 z\"\n transform=\"matrix(4.6545455,0,0,4.6545455,-13.580429,1027.7638)\"\n id=\"path3004\"\n style=\"fill-opacity:1;fill-rule:nonzero\" />\n </g>\n <metadata\n id=\"metadata3772\">\n <rdf:RDF>\n <cc:Work\n rdf:about=\"\">\n <dc:title></dc:title>\n <dc:format>image/svg+xml</dc:format>\n <dc:type\n rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />\n </cc:Work>\n </rdf:RDF>\n </metadata>\n</svg>\n"
},
"$:/plugins/felixhayashi/tiddlymap/media/surface.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/surface.png",
"type": "image/png",
"text": "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"
},
"$:/config/EditTemplateFields/Visibility/tmap.id": {
"title": "$:/config/EditTemplateFields/Visibility/tmap.id",
"text": "hide"
},
"$:/language/Buttons/TiddlyMap/Caption": {
"title": "$:/language/Buttons/TiddlyMap/Caption",
"text": "tiddlymap"
},
"$:/language/Buttons/TiddlyMap/Hint": {
"title": "$:/language/Buttons/TiddlyMap/Hint",
"text": "Toggle TiddlyMap actions"
},
"$:/plugins/felixhayashi/tiddlymap/misc/macros": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/macros",
"text": "\\define concat(str) $str$\n\n\\define input-text(field, index, default, readonly, class, focus)\n <$reveal type=\"match\" text=\"\" default=\"$readonly$\">\n <$edit-text\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n type=\"text\"\n tag=\"input\"\n default=\"$default$\"\n focus=\"$focus$\"\n class=\"$class$\" />\n </$reveal>\n <$reveal type=\"nomatch\" text=\"\" default=\"$readonly$\">\n <input type=\"text\" value=\"$default$\" readonly=\"true\" disabled=\"true\" />\n </$reveal>\n\\end\n\n\\define input-button(field, index, default, default, label:\"Proceed\")\n <div class=\"tmap-button-wrapper\">\n <$button>$label$\n <$action-setfield $tiddler=<<output>> $field=\"$field$\" index=\"$index$\" $value=\"$default$\" />\n </$button>\n </div>\n\\end\n\n\\define input-textarea(field, index, default, default, class, focus)\n <$edit-text\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n autoHeight=\"no\"\n type=\"text\"\n tag=\"textarea\"\n default=\"$default$\"\n class=\"$class$\"\n focus=\"$focus$\" />\n\\end\n\n\\define input-checkbox(field, index, readonly, default)\n <$reveal type=\"match\" text=\"\" default=\"$readonly$\">\n <$checkbox\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n checked=\"true\"\n unchecked=\"false\"\n default=\"$default$\" />\n </$reveal>\n <$reveal type=\"nomatch\" text=\"\" default=\"$readonly$\">\n <input type=\"checkbox\" value=\"$default$\" readonly=\"true\" disabled=\"true\" />\n </$reveal>\n\\end\n\n\\define input-multi-checkbox(selectFilter, invert:\"no\", default)\n <div class=\"tmap-no-stretch\">\n <$list\n filter=\"$selectFilter$\"\n emptyMessage=\"– This list contains no items –\">\n <$checkbox\n tiddler=<<output>>\n tag=<<tmap \"splitAndSelect\" \"|\" \"0\">>>\n <$view\n tiddler=<<tmap \"splitAndSelect\" \"|\" \"1\">>\n field=\"title\" />\n </$checkbox><br />\n </$list>\n </div>\n\\end\n\n\\define input-select(field, index, selectFilter, default, nochoice)\n <$select\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n default=\"$default$\">\n <$set name=\"nochoice\" value=\"$nochoice$\">\n <$list filter=\"[<nochoice>regexp[.+]]\">\n <option value=\"\"><b><<nochoice>></b></option>\n </$list>\n </$set>\n <$list filter=\"$selectFilter$\">\n <option value=<<tmap \"splitAndSelect\" \"|\" \"0\">> >\n <$view tiddler=<<tmap \"splitAndSelect\" \"|\" \"1\">> field=\"title\" />\n </option>\n </$list>\n </$select>\n\\end\n\n\\define input-radio(field, index, selectFilter, default)\n <$list filter=\"$selectFilter$\">\n <$radio\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n value=<<tmap \"splitAndSelect\" \"|\" \"0\">>>\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n </$radio><br />\n </$list>\n\\end\n\n\\define tmap-row(title, field, index, type, descr, note, label, default, readonly, reset, selectFilter, nochoice, invert, class, focus)\n <tr>\n <td class=\"tmap-title\">$title$:</td>\n <td>\n <<$type$\n field:\"$field$\"\n index:\"$index$\"\n readonly:\"$readonly$\"\n default:\"$default$\"\n label:\"$label$\"\n invert:\"$invert$\"\n selectFilter:\"$selectFilter$\"\n nochoice:\"$nochoice$\"\n focus:\"$focus$\"\n class:\"$class$\">>\n <$reveal type=\"match\" text=\"true\" default=\"$reset$\">\n <$button>reset\n <$action-setfield $tiddler=<<output>> $field=\"$field$\" $index=\"$index$\" $value=\"$default$\" />\n </$button>\n </$reveal>\n </td>\n <td>\n <span class=\"tmap-description\">$descr$</span>\n <$reveal type=\"nomatch\" text=\"\" default=\"$note$\">\n <div class=\"tmap-note\">''Note:'' $note$</div>\n </$reveal>\n </td>\n </tr>\n\\end\n\n\\define visConfiguration(inheritedList, extensionField, styleName:\"style\")\n <fieldset><legend>Visjs configurations ($styleName$)</legend>\n <div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n </div>\n <$tmap-config\n mode=\"manage-node-types\"\n inherited=\"$inheritedList$\"\n extension=\"$extensionField$\" />\n </fieldset>\n\\end\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder",
"text": "Default"
},
"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:central-topic": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:central-topic",
"description": "The style is applied to the node that you marked as central topic in a map.",
"style": "{\"font\":{\"size\":22,\"color\":\"rgba(0,0,0,1)\"},\"shape\":\"star\"}"
},
"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:neighbour": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:neighbour",
"description": "Neighbours are all nodes that are not part of the original set of nodes (\"matches\") but are connected (either outgoing or incoming) to a node of the original set.",
"style": "{\"color\":\"#565656\"}"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/edges": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/edges"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/nodes"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default",
"config.physics_mode": "false",
"isview": "true"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/edges": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/edges",
"filter": "[prefix[$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes]]",
"text": "\n\n"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/nodes",
"filter": "[field:title{$:/temp/tmap/currentTiddler}]"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View",
"config.refresh-triggers": "$:/temp/tmap/currentTiddler",
"config.physics_mode": "true",
"config.vis": "{\"physics\":{\"forceAtlas2Based\":{\"springConstant\":0.09}}}",
"config.neighbourhood_scope": "1",
"created": "20150331114808577",
"modified": "20200509212547688",
"type": "text/vnd.tiddlywiki",
"isview": "true"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search/filter/nodes",
"filter": "[!is[system]search{$:/temp/search}] [!is[system]search:tags{$:/temp/search}] [!is[system]search:text{$:/temp/search}limit[10]]"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search",
"config.refresh-triggers": "$:/temp/search",
"config.neighbourhood_scope": "1",
"config.physics_mode": "true"
}
}
}
{
"field.nodeLabel": "caption",
"field.nodeIcon": "icon",
"field.nodeInfo": "description",
"field.viewMarker": "isview",
"liveTab.fallbackView": "Live View",
"edgeClickBehaviour": "manager",
"debug": "false",
"notifications": "true",
"popups.enabled": "true",
"popups.delay": "600",
"popups.width": "240px",
"popups.height": "140px",
"jsonIndentation": "1",
"alwaysAddNodeIdToViewFilter": "true",
"editNodeOnCreate": "false",
"singleClickMode": "false",
"nodeFilterNeighbours": "false",
"editorMenuBar.showNeighScopeButton": "true",
"editorMenuBar.showRasterMenuButton": "true",
"editorMenuBar.showScreenshotButton": "true",
"defaultView": "Live View",
"suppressedDialogs.dublicateIdInfo": true
}
{
"originalVersion": "0.16.1+9773",
"dataStructureState": "0.11.0",
"showWelcomeMessage": false
}
{
"tiddlers": {
"$:/plugins/felixhayashi/topstoryview/config.js": {
"title": "$:/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()}})();",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/topstoryview/layout": {
"text": "html .tc-story-river:after {\n content: \"\";\n display: block; }\n",
"title": "$:/plugins/felixhayashi/topstoryview/layout",
"type": "text/vnd.tiddlywiki",
"tags": [
"$:/tags/Stylesheet"
]
},
"$:/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": {
"title": "$:/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:{};$tw.hooks.addHook(\"th-opening-default-tiddlers-list\",this.hookOpenDefaultTiddlers);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.hookOpenDefaultTiddlers=function(t){return t};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()}.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(this.preventNextScrollAttempt){this.preventNextScrollAttempt=false}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})();",
"type": "application/javascript",
"module-type": "storyview"
}
}
}
{
"tiddlers": {
"$:/plugins/felixhayashi/vis/img/network/acceptDeleteIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/acceptDeleteIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNjo0NTowOCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTY6NDU6MDgrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjBmYzFjNjhhLTcwZTYtMGY0Ni05ZDk4LWFhNDVjNjYxYThjODwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpiYzZmYmUxNi1mOTBkLWI1NDQtODUzOC05MjFkNjBiZjU0ZWI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTY6NDU6MDgrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjBmYzFjNjhhLTcwZTYtMGY0Ni05ZDk4LWFhNDVjNjYxYThjODwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNjo0NTowOCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmJjNmZiZTE2LWY5MGQtYjU0NC04NTM4LTkyMWQ2MGJmNTRlYjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz450LuoAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATUSURBVHjajJZtTJVlGMd/13U/z+F4sBQOCiovZiMt8YiKZrMtypdh09StbLOtzA1RUmuTkppzIilJOB0Oa21tbaV+6UP5Mlnm5heVkfhyQJ1ONITAkAMqcTDonNOHA6g9qF3b/eF5/vf18r/u676uWwoLC3G73QCoKiICgIhQeGejVw3LMOTIP0xGdRQAFi1E9DyGSkLsKxtWEmAQuXfvHrJlyxZiYmIQkQHjeac/jjfKBsJ8YlnRzQKIgBoIh8ByaRSICAilRCjdk1UeAIhEIogIPT09SFFRER6PZ4DByqr1+WpRoYAquKYuqCPz9SZeeCVA4vggAC2XPVw54eXi0WTOH8yIslIIs+bryTsq+hl0d3cjxcXFuN1uVJVVp9dvEigSwP3iYj9vfV7L6IldPE5uXvZwcKuPsz/7+qLc/I1vexFAMBjEzJ49G9u2WV1TsEaVUhOBmJxVVeR9X8NTI3t5kgxN6GXakia67/bSeC4ZkexprccCZxLnVodCIRRgdU1BgsBuBVzz8qt49yv/oMb2f5TJd7kzBsXeLPHzal4VaiAmZnfupY0JIoKqKqoUGAHX9MV+llf4HxmtMaDyaDZLtvqZushPWEHsAlVFP/3rswSNsEEt4O0v/E9MCebx8PxCP5YNlr3hg7+/TFBEl6mClflGHUl9VdIvGycuJdDgvm/bAtu6j3c0uSmZufQhnRHPBsnIqcOyQGSZAjlEgCkLGh3RDHk6yJWTCQCUZi+gav8Mzh3KpGzeQgCuV3sZEhd06D2f3QgCas9XIuozCjw3q92xMXF8O8218QDM/fAMGLAsmLO2Jnof6rwkpjv10rLaURtEJimWJomtMDLdGUlyRhuBei8AU5Y0M2ZCMyPSW8hc2AxAW4OXUeOdbcKbFsQ2YKwkizCg1uAH9kxWOzU/+ga+X8s/Q/iBKur4w8tL79c69ESiTFXFQvQmyhhu1XsYNeHhW5s2o4OuwDB6ug2uISF8fZED9HQbgh1PM3Zah8PB7UYPGBBalDB+MFB/Kt6x0e0JMSzpDr9XxzmwprNxDB95F9eQkANrrI3HssFQq4hWAnDxaMqgaUoYF6DJ73X8b74Qz/C0Qds016tSUANqVypG92EMnD+SwZ9XPc5KSg/QWu900HotgRHjnA5uN3m4diojmiKzV3cNL25DdTvGwJESn0NhzMR2Ohqc6etoiidpgrNET3zrix6yKf3Bld8WLZ8IZcAG6ip9/LQpyOIt91vG2BltHCwezbbpKzEKYoFodKVO+fUh48f3+Lh20oexIBQqExFk586dxMbGkntp41rELscozFpRxaLN/6Mv/cf4hcMzCYdAzboDKXm7Ozs7MTk5ObhcLs4lzqmeeus4GCublgvJtF61Sc1qxR0beqzh7g4Xx3ZN5/KxaagCsvlASl4pQG9vb5TB0KFDibZtZfmlonxcVgVhAcuGjJxa0l9uImVKO3GpXahA4EYsjbXx3PgtmYbTk1CiKYM1h1LzKvrncmdnJ1JeXo7b7cYYQ9+A4L2r21IJR9ZhXOuxXGAZBvKv/Uui8wELVHYgUn44bdWNfmKRSIRgMIiUlJQQGxs78Krof7oYY8jt2TUCy3oH0XmI+MAejW0gYpoxxg/mF4zu3a8rbvXrPuigq6uLfwcA6IKAIsDf9kIAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2OWVmYWE1NS01ZTI5LTIzNGUtYTUzMy0xNDkxYjM1NDNmYmE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0Yjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjY5ZWZhYTU1LTVlMjktMjM0ZS1hNTMzLTE0OTFiMzU0M2ZiYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5WKqp9AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYXSURBVHjafFZtUFTXGX7e9z27sveuMCwYV8ElrA7YSFYHtJUPkaaI0aRqG8wP00zUzljDINNSA/2ROtpO24SxnahlxjYd7SSjmUkymcxYlDhQPzHGisEVp8HwYWCVVVgEsrsuLnL74+5uqTF9Z+7cO/d8PO95zvO851BlZSV0XQcAMDOYGQBARDhX3JRmMDYZwLPMWAzGHACYIgwS46oBNBNwtOL8CwE8EkSEUCgE2rJlC2w2G4go8Zwo/bMDgnoG6gxLfAAAYvPDMCCszKTAMIAGAhrWnf15AAAMwwARIRKJgDZv3gy73Q4iAjPjxIr9VVOMRhbAYKB8zvrO0llrfEsdKwLZek6YAPSFvtSu3GtLawu0ZJ6625SHGBQB1T88t6MxvopgMAjaunUrdF0HM+P4yv27DMYeJmB1RqW3Jnf3tQX2p0L4P9EXuqEd7PmDp+XuMU9sRbvXnnt1TxxACgoKYLVacbzsQDUJGkSATe6qi28uPtzusM6Kxie6NHLGUX3lxVUNX9StPHnn4wy3njuUYcu6n2pNi66avcEXnByP/nv8aiaIyrqz2gO5A9+9FI1GIfn5+WhZdTAdjFMkwMvZOy7uWnTAOz3L4Yk71m3t69fdfTDoUGTBeHTUfiHQ6lo7Z2OXJvpDAChKe+aOCdKRKWxZ2+1qb3yyd3GYmRkQ7GQBVs99wfv6on3eR2k4PdTkDEbH7IuS8/svld/561PJS/pDk1/bzwx94pze7xc5v/H+YPY6r5BAkdrJzODTK46lE6PeYEJt7u+8j+OZwCBiEAgAoNgKJoEQf6PvNvdrXgtZoNhSf7q0KZ3B2AQmVMze0Jmt54S/DcDCVig2NcvEUGxJAE4Pl+YOr0iv6BRSIPAmBeBZAmHlE2sH4p1uhrq1s0MnnEQMBsf8wRASAICQQCCITN1X7/sOuc0kgOVp3/fPs2WHv+coG7gQOJUnLGsUCTxEjPzUohEA+NfIWUdtx0+efzA1kSSkIGyBAQNCKgHAEBAJ3u79U7kiAcWoem/gb5Fd33nrH3kp+SMWtuAB+GllMJxMjCx9QRgA3uiqL5kwHiTlpxb3smlfMDGYGPP1hcMAkJvs8ScpfdJspdj+MK6Pf+5+u29vyb4lR4+BGEziVESAkEpw6Av1OhUpHCz4qOXbzFWz4Ncdj/v/o08Lt92ODDgZDCEFJYoUGH4mzugP92puPTf0pD3H7wvfdFZdqSxnMtWjoGAAmG9fOLxjwesdjT2/XzIQ7ks3sycYMSEwGHNtWf5bkX5NkYCJBxUBXiGV0XHvosOt54Zey33j/K+8P33++vjnbiGJbbLE+J9SANAb6nJ2B79wcUwETAwQQ7fMjPzMvfP8ja87HUIKMOiaAqMZhrGmLdAy78eZrwwsTS0eObTs+IdtgVanxBUExqGbb5VzrIISGIoUXsmqbgEhJldCQWqRf27SvPAn/o8XmgLhZsUkR4ll37mhk3n94Z4OlzY/7NLcYZfm7o1z2zT4vsvUNSXqprBCkmiTFbPX90/fh8GIT2sf+zTPdDMf4dVnNg4z+E0ixsGeBs9jd5ViSgLHjCb/peaR+MD3d4/ZJg2llyuG2Vwy7QWAs8PNnn1f7vkGSGxAzE6mk+kxkx/p/4unffSCR0hAoL1EBCYiPNdWNcwkNQTCR7feWX6g+7f/A7I8rcw/U6UEe0Ndrhc/W7mtL9ztmqlSgstSS/zTJ28dalpOpkRryrwbhwBACgsLMWPGDOT4ll3qyeqAkJTdCF7P/CrUY/GkLL1rE+2hTbSH8+0Lb/WEuhzhyaA905blf9Vd/895WnZwLHrPevir/cvOB1oLYpTtLrm6oYGIMDExAaqtrUVKSgqYGSKCk0WHq5ikkWEWtNL0imv5qUW+RclLRjJsrhBAuH1/QL8R7HR4xy5nescuP23E6hOA6mLv+sb4uTw6Ogqqq6uDpmkQkcStorX4XRcM1FjZ+kvFFjCJKU1WpkNJJUqIMtX1RyLeX3JtQ0JRhmGYZ/L27duRnJycuFGISOJ9pqh5lrB6iYgqGOxRrOaa54DcZmKvkJxk8JHC9rKh+KVhOsD4+Dj+MwADIf8n5m4xGwAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/backIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/backIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmOWQ3OGY4ZC1lNzY0LTc1NDgtODZiNy1iNmQ1OGMzZDg2OTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmY5ZDc4ZjhkLWU3NjQtNzU0OC04NmI3LWI2ZDU4YzNkODY5Nzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4jq1U/AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVTSURBVHjanFVfTFNnFP+d77ve8qeVFbBrpcVgRrCRFikFByLxwSAaE32oRCHD6JMxxhhn8G2RxxH3MsOTbyYsmCAxPMmMMYtkIUYmK60OO0qAK23BFlNob0uh3x7WS5jLZPpLbm6+k/P9zrm5v9855PF4UFhYCABgjIExBgAgIqRSqRIi6gDQRkQ1RGTB3wgR0e8AHgH4Sa/XR/EBiAiJRAJ04cIF5Ofng4g2n0gkUkxENwF0c843LzHGQEQQQkCLExEA9ALotVgsUQAQQmgNQhJCbF5kjCEUCl0moj4t5na7fTU1NUpVVVXUYrEkASAcDhe8efOmxOfzWScmJqoBdBNR99LS0hWz2dynNSSEAF28eBGFhYVgjCEcDn9HRD1EhIMHD3o9Hs9kWVlZAh9BKBQqGB4edr58+dKZ+6JbJpOpBwBWV1fB6+rqIMsyIpHIFcZYL2MMra2tY5cuXRrfuXNnBtvAYDBk3G63oqpqZm5uzgrgSDKZjBoMhueZTAbc5XIhFouVEtFTxhiOHTs2dv78eS8+Efv374+oqpqZnZ21cs5PJJPJPlmWkyynnBuMMTQ0NHi7uro+mVyDx+Pxulwu71ZOlkqlSonoJhGhvb39s8k1nDx50ss5hyRJN9PpdKlERB2aWjSVaEilUvzBgwcORVEs5eXloXPnzk1sV8BkMiUdDofP7/dXZ7PZDilnIhw4cGBeS1pbW2P37t1zBwKBikQiUUREWFhYsHHO0d7evm0Ru90+/+rVq2rO+XGJiJxEhMrKyhgAjI6OWoeHh5tWVla+4JzDZrO9bW5unhwcHGzz+/32np4e+xaDbfoHAMxmc6ijo2O0oqIiJkkSNjY2HBIRmRljMJvNyWfPnln7+/tPMMZQXl6+0NbW9qK2tjYcj8floaEhqKpq+HCkbD3PzMwYBgYG0NXV9UuusFna2kEgELAQEQ4dOvSis7PzN41Ar9dnrl27NqCNkv/C3bt3zy4tLVmICJxzEBFJRBQmorLFxcWCqqqq0Pj4eO3Y2JhbUZTdra2tL2pra8OJRGLHnTt3zkqS9K+huHU4EhHMZnMoGo0W5OIh7nK5jjLGKq1W69vDhw8rRqMxMjc3t2t5eXnX5ORklc/nM+fl5SWnpqa+0uv1K/n5+Ws6nW5NluXNd15e3ppOp1uz2WyzZ86cGQ0Gg6ZAIFCZzWZ/lYjokRDiuN/vt7W0tMw3NTUpbrd78P79++5gMFgRiUTKHj58WMYYQ3V19etTp05tq6Lp6Wkb5xxCiEfc7XZPM8a6FxcXTfX19a/1en2Gcy5qamreNjY2/qGq6joRZe12+9Tp06e3JY/FYgWPHz8+mhvr3/CWlpbk+vp6PmOseWVlBS6XS9GSJUkSdrs93NDQ8Oe+ffvC/8fJIyMjddFo9Esi6pVleVjT2m0A8Hq9zqGhIefnjoknT544A4GAM/eDbxMReFNTE0pKSpKqqsaI6Pj8/LxVVdWM3W6PfCr5xMTE1zllXS0uLn6aSqXAGxsbodPpoNfrn6uqCs75EUVRrJFIZMfevXsXdTrdxseIE4mEPDIyUu/3++tynd8yGo29RIR0Og26fv06ioqKwBgD5xzv3r27zBjrIyJIkgSHwzFZWVmp7NmzJ1ZaWpoAgGg0WqgoSvHMzIw1GAw6tvjhitFo7NPW5fv370Hd3d0oKCgA53zTQMvLy+VCiKuSJH0rSdLmztZytIWv5RPRD0T0Y3Fx8dzWfby6ugopHo//w4mcc8iyPMc5v5FOp7/PZrOdQohWInIC2C2EgBBigYi8Qoifs9lsv06nWyIiaFxagXg8jr8GAGxuIe7LBeWhAAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/vis/img/network/connectIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/connectIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3ZWRhMjI0MC0yYTQxLTNlNDQtYWM2My1iNzNiYTE5OWI3Y2E8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjdlZGEyMjQwLTJhNDEtM2U0NC1hYzYzLWI3M2JhMTk5YjdjYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ubxs+AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAUtSURBVHjajJZ/bNT1Gcdfz/P53PV6B4W7VltLqdAaplIOiMOoyxxJCSs/Gv/yB4gzJroAosmmDklwkYWR0bQsdmkykoojTpcsWYLxD/lRZdMQkTHRtkLZRqG0tIVe7662vTu43n32x/VKZ/jh89cn38/zvN7P5/l88zwf2blzJz6fDwARQUSm1n8s31CM0/VAnbNmsUPuAsDpgEO+Bg4C7//iyv5hvmMiQiqVQpqamvB6vVNwEeG1JZtCBrYi/MrkAwDNgjhwAlbzICBLA0rDb0+/839C6XQaaWxspLCw8Dp86cbNmqVFJQddE6KzdjZ9D89g+B6fSyCOcyn1nxil+O9xKg5HqWFSHGXLjrP7W/ICqVQK2bNnDz6fDxFh65KNvxbHDhF4rJj2bXPo+IGfcW5h5xL4f99P+FCEMIAob75x9t0dAMlkElNXV4e1lteXbNqiQoMaeOFOjrdU868SD2luYyEP6dUh+sYmSHeOU6GO5Z8VLx5+NNZxIpPJ5AS2L3upROCoCvz8Lo7vnkf77cAHhpiz/zIL9vWz8L8p/NvupmM0Q7pjnAoLqz8tDrc8MnQqYVUVhVdF4LEg7b+rvDn8wDDlH0WoPpukLJImSBaMwjcJqmwWts2jPZLG/8kwYVFeVdXXZcFf4yVDc2cNKfBFmD9X+0ncCP58F48eG+Feo2CAUkvs4dl0V/uJvdXLiiV+ut++n7YLSfxPfMMG54ChzB3WIesVWB2i82bw1AR6fJR7C4VsfYiv6u/k3A9nEgP4zXke8DiYHyAOMK+QxPIgnZ9GqSHr1itQJ8DK2fTerDQ+S/bHRXQJaHSCwNIZ2Xh+7+S3VAmwNMBA/tuPZtErgKquUmdMWIFlRURvdamRNEXGwIWrlP47pTMzLiunxghGMwTLvcTWlHAp77s4QNSrYMQtss6ZMgWqCm5cHoDHO1nbk6K8zEN8+3zatv2Hn1b59EqJZdxmYUERg9P9KwpIiAOTdWUWBXuLzB/vZG3P1Un4PNp2d1MbmyD45TWCxuCsQm0x56bHGHFYEZwxok7toAA9Sfw3hCcoL/NOwi9QO5wmWO1j4JEgZxTkodmcWRGkf3pcX0r8xoAaBixKu4U5/xwndM+0tpAvS6mP+PZK2nb1UBvPEKwKMLDvPj4ESGc55lGy303sdJKQdZB2rkMdctAB/4gzN+/Q2ENNd4LyUi/xN+bTtquX2thk5nk4wI3gAF+OMNcA1nFQDfK+BY5GqbkwWabTY5QZhXWlnNx1ntrY1Rz87fuvw29m/Sn8J+PUGAFj5T19baA1IspuBZp7cx1x4SwG1cEf+lgRSROs8jGwb+Ht4QB/GSSsAhYano39LWIBxNEIbP14hPDuiyS2VtJuHXQlKKvxM/jiXDq/D/xPlwifGMkJZB2NIoKpr69nxeiZxLHicFSFVWfGqBidIP3LSjrWltD94CyufF/4kQgPuVz2Lz93+dDRa9eu5QQ8Hg8/iXee+Dy4CKMs7xqn4nwKz9IirhQqmVuB42m8ey+x7LMoD6iAON782eChhqmRuXfvXgKBAKqKqtI0/8nNKrQI4BVYXkzHgzPpC88gWuHL/caXrhLoGiN0apSKr0ZZRBZM7q2w5ZnLR1oAnHOMjY0hra2tFBQUYIyZmstvVT1Z6eDlAuEVq7merxmwueNPDXy9PvybjKP5mctHLk4/XTKZRJqbm/H7/VNw1VyEMYbW4FN3WNWnnchKoy5sHeVGBRX6VWi3ymFx7r11Ix8MTX/y5C2RSPC/AQB61erowbpqSwAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/cross.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/cross.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAADvGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMjowNToxNyswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ODJjNjBiMC1lM2YzLTA5NDAtODI1NC0xYmU5YjVhNGUxODM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjIxODYxNmM2LTM1MWMtNDI0OS04YWFkLWJkZDQ2ZTczNWE0NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NTozNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+cZUZMwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA2ElEQVR42gDLADT/AS0tLUQFBQUVFxcXtPHx8fPl5eUNCAgITCkpKesEHx8fGgYGBjH+/v4a+Pj4qgQEBFU6OjodMTExzwQUFBSvEBAQEfX19SD19fVqNDQ0CElJSd/9/f2vAwEBAfrn5+fkBwcHLRYWFgsXFxfz29vbo9LS0uwDDQ0NDfPz81orKysXIyMj+ODg4Avh4eEa/f391gMkJCRYPz8/KUhISOMCAgKh8fHxHRsbGx4UFBQQBDk5OeY7Ozv7CAgItPb29vMEBASaJSUlTQ0NDesDAEwpT0Ko8Ri2AAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/vis/img/network/cross2.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/cross2.png",
"type": "image/png",
"text": "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/GMzLdsAADoRaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTY6MTUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDExOjU2OjE1KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMTo1NjoxNSswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6OWIwNjRhODctYWNlZi1jMjQ5LTg5MWUtNDAxOTVmMWJjMTNkPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjlmYTI2M2QyLTljOWMtNWY0OC1iYjNiLThmYmQ5NmI5ZTBhMjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjlmYTI2M2QyLTljOWMtNWY0OC1iYjNiLThmYmQ5NmI5ZTBhMjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ZmEyNjNkMi05YzljLTVmNDgtYmIzYi04ZmJkOTZiOWUwYTI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTY6MTUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjliMDY0YTg3LWFjZWYtYzI0OS04OTFlLTQwMTk1ZjFiYzEzZDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NjoxNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjU8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvQ0yV0AAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAHZJREFUeNoAaQCW/wE1NTWrERER3+3t7Xbp6emKOTk5IgQtLS3kBAQEdfLy8ipOTk5LQ0NDkAE0NDQAEhISxiEhITkTExPH9PT0OgMGBgaPMzMzVS8vL7XU1NRC7+/vEQNfX19lUFBQtfPz82EEBAQMNTU1HwMAMI4nIAoe9RQAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/deleteIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/deleteIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowNmE3NWYwMy04MDdhLWUzNGYtYjk1Zi1jZGU2MjM0Mzg4OGY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjA2YTc1ZjAzLTgwN2EtZTM0Zi1iOTVmLWNkZTYyMzQzODg4Zjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4aYJzYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYGSURBVHjalJZ7UJTnFcZ/73m/72PdJY1RbhoQp6lkXRAvmIYxdCUadLVOozPNtGObap1JsKipjiShbdoRbeKEiQHpQK3xj0xa03aamTbaTGyAYV1QGeqFi+JyiZFLAlmESBkWRmS3fyzslGkmnZ5/v/M873Oe75zzvqqoqAibzQaAiKCUAkApRdHIK/NFsx2NR91nOSILADDoJyzNaM4xxbtvPHh0iC+JiYkJ1OHDh4mJiUEpFSXPv/ziPC28TIiXDCOSrAClQDSEpsCwJPIhrEBRQpiSytXlQwDhcBilFPfu3UMVFxdjt9ujFTzfcLBADCoEEAFr1ZbrrNjch2vtEImPBgHob7fTcWE+bVXJNJ/NiFQlEGLvieXHKmYqGB8fRx05cgSbzYaIsPvywV8pKFaA7fGtLTzz61YWpo/xVTHQbufsq5lcez9zWuWhk5mvFwMEg0H0+vXrMU2Tn1wp3CtCiQ5DjGd3A/m/v8IDCZP8r4iNmyRrWx/j/5qktykZpXKzAjVDVxPzGqemptDr1q1jX3NRnIJarcDKK2hgR2ULXRfncv7UYv7xpovhnhiW5Mz+kefeSKO6LJ1A1xzEuk/Ojm4mRibpuZaMZW3OCtRUND60NmiICCIUShisx7a2sLMiQn4s77uEQgIabnqdfHIlgT1/qQeg8vs5dHhdCNB1wYn3RIiC995j26stjAbsNH+YiZJCESnS1Y/XxIXu8r4YIPv/VkVs3CTnTy2ms34xro1+sp9po6sxlTu34ultmsPVvy6is86FCHgO+DDs49zpjufBpCG+seYOC9OHaTidieicb9ouVAhKtouAseI710ma7pLuqwmgYfHqAFt+6WdLoQ/LBl11Lm7VudAa8vb72PCin9TlAWIsGGhLACD+kSAZnusYBii1XQAPYWDllt6ov2lrBkDBR2+6Ofuak2//3M+G/T4wAAPW7fPhKfRTVeqk9qQbFKRmDUTxS3N7QYGYmwzCkqklBGlPDEcTNv+sg9tNCbTXuvBWujE0bHrZj9JE1B/wU1Pm5PwJN6YBS9a2kVvQEcWnrh5GTFD3lxkYkqRMgYQlwVldUvDnen73LHTUuqitdKM0eAr9AFQfd1J/yo2aJn+2sn4Wdn5qEFODJskgBIjx5T0uCrQA08pnIjS9PERDjPnfOKXAMEBECUoGEIHBj+2zkt76UQ6dXheGAev3+cg74Kf6uJPqcicbfuond7cPy4SOiy7+tD9nFvZurx00KOk3CNEC+mE+vjSPBc7IWqgqTaPT60IMcO/xsXGa3HfKjRgRdbl7/KDg0jtubje6aHj7c7J3dgLQ2zoPwwQ91SooOQdAW1VKVMHty0kA5Bb48BycJn/LjWFGbLv4thvvb53kFvjJ+XEdWkPfjQVR/CcNKYgGMc8JWt5Fa2j+MIPPuyI2pa4IoHSkt6vLIuRaQ9q32khzt4GCxtNu6k46GeiIR2lIfDQQsafPzq1LGRGL9Gk9d+vrwewvfHPQOoexQVjxdB/auk/zmaUMdsfz6bVUtIalT7bxveP1ZHh6GPDPYeSzeD69kcpIfxymFWLNrka+ljhBTWkWwz2JiJT84YHnz2iPx0P20PkmRF5i6HYiwZFJsn/YzdezbzE3cQibY5xV266z6RfXohakb+xB9CjanCD9qTbW7Grk4WV38VZm0l6dhQiEw9taHSuDqrS0FIfDwXM3X9mHMsvRAk/sauDpQy38P+GtzOTGB9mEpkD0C2dS8n8zOjqK9ng8WJZFU+JTjasGvaCNXPpvJBPoMlm0OoDNMfWVxONfWNSUPUZ7TUQ56tCZlPwSgMnJSVRpaSmxsbFE1raw82ZxAZZRQUiBYUKGp5UlOX2krBzmoUVjiIKhHge9rfPo+Wcy3ZeXIYASgL1/X5RfMXMvj46OosrLy7HZbGitUUohIuzoem0RofALaOsghgWGjky0MiJTL8b0lOvI8hN1DKXKP0jd3TNTWDgcJhgMoo4ePYrD4Yi+KmaeLlprnrtXFo9h/AAlG1AqE8yFmBrC+jO0bgH9EVpO/1F2Dc5g//OAsbEx/j0Af+USsQynL1UAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/downArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/downArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/editIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/editIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozOWNhNzE5ZC03YzNlLTUyNGEtYmY1NS03NGVmMmM1MzE0YTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjM5Y2E3MTlkLTdjM2UtNTI0YS1iZjU1LTc0ZWYyYzUzMTRhNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ykninAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYpSURBVHjafFZtTFvnFX7Oea+NudiY2Hwam4CBlgQwXdKREDKUoYg0jbRJ29RJ2VZ1mjRFUxSpA3VTfkzJfkQbS7spU6rtx5Z2UtppScjaHxvLuiatWi2jLEoMIUDCh23g2gbj7+tPuPvhOurawPl1dc99n+c55z33fV46ceIEZFkGADAziAgAQERoe/9ZK4GPM/AcgbsIXAcABCgMvkfAqAa89eDoJyF8LogIqqqChoaGYDAYHr8kItS8uc8iIH6iAa9IkAo5EAQX8pqmgUVBCBggYFgDhv0/GAsBgKZpICJkMhnQ4OAgZFkGEYGZUXmp+0cS+CKBwWA0DVRPOg5Zl2q6zaHyJlnVAMQXVTkwHrUqH0Xsvn+tdQAAMQDgpPLS2MViFY8rkGUZzIzaS/t/xqCzGggtz9e697zsnKhoLUtim4jOq/LE6x7X0nsh16dEZ5a/O3a2SCAOHjwInU6Hujd6ThJ4mCDQ+b2G232v7v6vwarPbQn8MGlMr+X0kpE3Wr5Zt5hL5HPhqYSdQIfKJ+yhxDPKWC6Xg+jt7UXD5b5KBt1kCHS85Ljd8/On3NupfnhFaZj4rWff1B98B1R/hnUmKd36bdtCNl4g0en4edNE/cXwLq8qMTMIPAQwmo/WuHvObA8+9c58k/dKtD0TyZWXN5YGA7ej7epKxspM//7SoNOdWc/Jyq2wiwhDzPxT8cP0jys3VMM7OmL0/77zn4Ydui3b8uiK0jD7RrA77c9Wd57cefPpF+2T6bWsFPWkaiPTCWvTsZpHFU+XrS+8G3AR08F6X+1FJvBxQQzHQOWk2SmrW4FPX/U2LVwPuDZj+fJKl2khPpeyAqA9rzR/YqwuiWXX8taN/CabGkrVuq9YJlkQQDjOAJ5jAhz9Vt9W4N5/rNp8I+vtMV/aZm4zLnUNNt0urdYnF68HWoJj4Wo1mLGUNRr8LEgDgNqeCh8xQIKOsgC7iAjVe83rT9zQa8uNM28u70kspessu8q8zq/V3NcZpVzb9+0zmVhOvvvrhaMVzrJg0zeq7xMVCCwdpnWSGBqjUyJwLTFgbvxie3w31uoWR1Y74r60rdxZqrR8q85t2W2MGCp12bm/KC3hyaSTiMhxuGrKcahqpbjOaDOoEhOEoFqJQCCJvqA85I6bfTdDjQlf2lbxVNlS6wt19yy7jRHZZlDnrinNj/6sHMhnNw2Ogco7O79e5fm/xQywRBBCEAuwn4gQ96bkYj4Vyuq9N1Z3Bj4Od5bs0MXt/dZZ21ctiqFan174q985P+Lfp+U1g7XDON/1ctP458WlVjLyJhOISZE0wM0S1QfuRC3lTjkJAKKEtNC9eIOhSh9xHLZOJRZTFuXDsEoStLkR/768ummsaJG9Pb9oe+9J+xaeSVokiQDSJphAo5uaBuWjiKP4QTqS1cUWU7ayesN66wu22frD1vmVW6GW6T8u9eVjGyZzs+w78Nqu0a2mbvVu1KEJQAgeZRL0liQYyx+GOmKeQpu0rMYsAJPNEFGD2dLodLIy6c9Ys7G8yeSUl3tf2/X3rcBVJSOv34l3sCBogi7z1LH/rBHjl4IJ93/ncQFAnjeImJD0Z8zuCwu9q3djDXqTlAKID5xv+9t2R8n8VcUFBljQ8Gyfe40BYBM4DwDLt8Kue79ZcFkbzfEdbUbv+oN4c9KTtsfm1MbYQqqh+2zrVZYKs/7Ef+byimt1POYiJhDhPBFBIiIEXhxfs7/dfYoIF+auBfYTE/pebx/V8hqBP2ODvD34yvuh/WCAmU75Bx6sIgaI/v5+6PV6JLqUsYr7dpDAoehs0h73pHTWrvKgThYbRSt9UmSjef3MpaUvBz4O72UmADgTOPJguGiZor+/HyUlJWBmJFz+D8xTtlUiOpbwpmrmrweeSXrT+g11k4SBN3RGKUcAVCVdFhyP1nreDbY//NPyEXUlU/Pp4XYycGT6V0Ux2WwWdO7cOZSWlkII8diX7SPPNgDaKdbxoNAxwATBAEkEEgSWCEQAqPAMwqvMdCEwMO0tVqZpWsGTT58+DaPR+PhGIYQAAAgh0P7B3ioW/B0iGiCGiwXbCuOHFSJys6AbYFye2T+xWhT3WYJEIoH/DQBMw3kes8OJPgAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/leftArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/leftArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/minus.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/minus.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/plus.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/plus.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/rightArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/rightArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/upArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/upArrow.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJTG7oDgaAAAGZUlEQVRIx7WXXWxTVxLHZ+ZcY1mON8li44/GruPrsMT5UElzgSRswEIBOdUSARsZoUioHxIPCKUowBPUyrYv2y5aeOABtMsKJJ5YIaR+qBQwCS1u4zihUVw7DqTE1yFOlObDDmDTEHsfeo1SY1NTaefF8j3/md+5c86ZORehAHO5XBgMBv/MGHsrnU43EZEVAEoBABBxHhHvA4AHAD7jef7r7u7u9G/FxJcNbt26lbRa7fuIeBIRAfEXea5fIlrp2hUOh0/19PSkXhnsdDrfBoDzRASICAaDIWqz2cSqqqpps9kcKy4ufgoAEIvF5OPj48WhUEg7MjJiikajeiKCVCoFiPjO+fPn/1MweO/evX8DgBOICLW1taHt27cH6urqZgpZlqGhIY3b7bYFAoE/SVn68Ny5cx9k61gO6CkAOIaI0NLS0nfo0KE+vV7/ZKUmHo+v8ng8r42PjxevXr06IZfLlzNjOp3uSUNDQ/jx48fPwuFwGSJuEQSh1OfzfZkX7HQ6/05EXYgI+/btu+F0OkeyJxaPx1edOHHirwMDAza/32/1eDzWxsbG0Eo4AEBNTc20XC5fCIVCFkTcJAiC0ufzXX8B7HQ630bEj4kI9u/f/1Vra+uDXKk8c+bM5mg0aigvLxdLS0tjs7OzmomJCcWmTZvC2Vqe5+eVSuVsIBDgGWNNgiCI/f393z8Ht7e3M8bYABGBw+Hw7N69ezQXtL+/X3f9+vUmxtjygQMHvqqurp7o6+urnJ2d1eh0uocGg+FRto/ZbF5IJpNPRVE0ElGbyWT6KBAIpAkAgDHWiYhQU1MT6ujo8OfbONeuXatDRBAEYdhiscQsFkusvr5+mIjgxo0bdfn89uzZ47fZbCOICHq9vhMAgFwuFxLRSQCAHTt2BPI5X758uXpiYqKsqKjokdPpHFyxRIMqlerR5ORk2dWrV6vz+Tc3NwcYY8Bx3EmXy4U0OjraDABgNBqj69evz3lklpaWaHBw0MYYA4fD8Z1SqXyWGVMoFM9aWlq+4zgOhoaGbEtLS5QrRmVl5U96vT5KRBCPx5sJEVsRESorK8V8sz179uzmeDxeYjAYJrdt2/Zj9rjdbv9Rp9NNLi4ully8eHFzvjg8z4tEBDKZrJUQsVECT+cSDw8Pq4PB4DqO41Lt7e2efEF37drl4TguFQqF1gWDQU0ujcVimZbKawMhYgUigtlsjuUSh0IhHRFBbW1tYO3atXP5wFarda6qquoHjuNgbGxMl0tjNBpjUgleyyFiKRFBpvZmm0wmSxERLC8v04ULFzZkandHR4cXAODSpUvPn6XTaYaIIJPJlnPFUqlUT6VmUsplnPKZzWabunXrFgSDQRsRwQq9V1qKNzLPAQCICKxW61S+eBkdl06n54lIG4vF5GvWrElkCysqKuYOHjz439HRUV0ikVjl9Xo3ZAciIhAEwatQKH7meX6K5/mcS7K4uCiXwPMcEd0jIq0oisW5wBl4RUXFHACA1+vdwHHcC+C2trbvf6tzTU5OFkvZGiUi+hYR4d69e9pC2l5Ww3/h/8ssEolopVb5LSHi59LuNf1ecKFwURRNjDEAgC+orKzsNiLC9PS0fnh4WF1IgJWpLvSt79+/r56bm9MTETQ3N39N3d3daUTsAgDo6emx/b9SPTg4aJNORJfdbk/9ssXm509L6V535cqV6lcBIyJI6ctrbre7+sGDB+sAAJLJ5Onn/TgQCKQFQYggYpsoikaVSvWTyWTKWcn8fv9ryWSyqLe3983bt2+/SUSg0Wim6uvrQ7n0d+/eff3OnTt2acLvHT9+fOBXNxCfz3d348aNSkRsGhkZseaDazSamYcPH/4xkUgUMcZArVZPORyOb0pKShK5oG63e4e0kz85duzYx3lvmZ2dnacQsZOIYMuWLZ6dO3f64XdYb29vtc/na5SuuqePHDny/ktvmX19fV82NDQoGWNNkUjEGIlEihQKxRO1Wv2kEODY2Jjm5s2bQjAYXC+l95Ourq6ugi/0R48efRcA/pU5p1qtNsrzfLi8vHxar9fHVSrV00wZnJmZ+UM4HNZGIpHXFxYW9JmvDkR87/Dhw/9+5U8Yl8tFiUTiMGPsH5mzyxj71U7ObhDSkTlSV1f3T7vd/uqfMNkTSKVSmxHxL4jYSEQ8EZVKoHlEHCMiDwB8KgjCNy8DZux/ivJJxnpJh8sAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/zoomExtends.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/zoomExtends.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJgNYWjpZAAAGOElEQVRIx62XUUxUZxbH//9zJxkI4DgRMoxBRsVddDqYQFgHBTvsCxfZXdyYaBoSY9o0PLgm3YZd9EH70D5tu6Q18cmsNtm3No0+rGsYQQK60GABNcI4oxg7M8lepuNlABUdsXP7wL3jQIvF2pNMvnvvd+75fd+Zc853Ltvb2yEiIAkA2WvrniQSiQQB7Cb5BwD1IrIFgNOcTwGYJDlE8oJhGFe/afvCAAACMLAoBGCQ+HP/+zAMA7Zc0HLg1NSUkPwrya7lczmji6RLROoB/B0A6r5o6wDw2chbX2YMEwoAGWQgIotgy6CIZHcMAIlE4m2SZ62FrV+/XvN6vTGv15vYuHHj7Nq1a9MAMDMzY49Go45IJOIKh8Plmqa5RaQrk8l01X3V9s43B778HFkxsvZ5+PDhJVBzpx+SPEES27dvjzQ1NYVqamqSWIXcvHmzpK+vzxsKhSpNj3w0sv+rD2C6/Y9X/gKSUPx+f3bHJvQzkp0k0dTUNHzkyJFht9s9j1VKaWnp/M6dO6OPHz9+Ho1Gy0QkUBb2Of/vvd1NEpVx/4/BU1NT/xCRDpJoa2vrPXDgQBi/UKqqqhJ2u30mEolsJllXdvuNgilvpKcyvmMRXFdXBxGBpmlvk/xYRHDo0KFLLS0t9/GaUlFRkSooKNBDoVCFoij1ZeE3YgUFBTdILgaXpmmKiJwliebm5iFVVb89duxYu+WJ1tbWoN/vj64GNjIy4unu7lat++PHj5+enp4eGhgY2AXgbDKZ/LfL5fpezP/2PZKoqqqKHDx4cNxKlVeFAkBtbW10z549QRHJBu2+ffvGvV5vmCQURXlPRCCaplFEugBAVdWQZYAkWltbgxcuXFCvXbvmWS14dHTUc+nSJbW5uTmoKEr2+e7du0OKokBRlC5d12kTkTcBYMOGDVp1dXU2Zfbu3Rv0+/1RksGLFy+q58+fT83NzTmX572VhiICh8ORstvtTlVVgzU1NVEAQUvH6/U+cLvdWiKRcGcymTcFQAtJbNu2LZa7csu9O3bsiKbT6VR+fv4SqPWz2WzZReTl5TmfPXuWMqGwxpxgi5nvtNhI7jLBiZXcNzc353z06BFOnTp1+mVuPnr0aLthGM6V5jdv3pwYHh4GyZ02kr8hCY/HM7vSC7mB8jIxg2fF+bKyslnTzm9tJJ0iAqv2rgRejeSecj8la9asSZu2nLafU34V+GpsZc8FACmSmJ2dtb+uq38O/PDhQ7tpKyUk74oIYrGY49cAv0xP0zSHmRl3bCS/Jtlw9+5dV21t7dRPveBwOFJ5eXnOzs7O9lzjiqIs6VyKi4uxsLCQWgkci8Vcpv7XIiL/BYBIJFK+vAIBwNjYmCcvL8+5sLCQyoXabLYf5fTz589TdrvdOT4+7gEAa8wBlyuKAhG5aCN5xeyr3Ldu3Squqqp6AADBYFAlGezp6VGbmpqC1dXVq6rX4+PjnsHBQZVkcHBwUPX5fKcBYHJysnh6etpttj5XpbS01CDZAQD9/f3e3Jx8VSgA+Hy+aENDQ9CEZ5+PjY15Tc90rFu3LiPm5EnT3VvPnTvny23oent71Rs3bqz6kJiYmLB2nLXR19fnu3///lZT5SRJ8MSJExARJJPJd0ieURQF+/fvDzY0NETxK8j169c9vb29KkkYhvGu0+k8YxgGlMbGRpBEUVHR9fn5+QKS9eFweEtRUdGD8vLy2deF9vX1Wbv/ZLyx/2NPYttiRgQCgWxUFhYW9jx58sRJsi4cDm9Jp9PpysrK734JtL+/3zc0NPR7M5hOTjQOdJBE+dTWxZoeCASWNOiFhYXdT58+LRCR+ng8viEejxfm5+fPFxcXr6rTvHfvXsnly5d/Fw6Hq83U++R249UOkcXDw/Pd4o5tuVFsjSUlJZ26rkcA/OvOnTuVk5OTlS6XS6uoqIhu2rQp4Xa754qKitJWGUwmk2ui0agrHo97ZmZm3DmNwruhwJUzQmXxK4Ivqppt+YoNw7DgZ3Rd/xzA+wD+qeu6W9d19+jo6JLjL7eoWNeGYfyN5KehwJWM0NSDIGN8vzI4V0pKSjIi0qXr+qcAGkj+yTCMXSQrDMNwmodCCsA9ERki+R8A/5toHMgoVAASxItcFr4osT8Aaa5QMU/uqTYAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/timeline/delete.png": {
"title": "$:/plugins/felixhayashi/vis/img/timeline/delete.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAl2cEFnAAAAEAAAABAAXMatwwAAAVRJREFUOMt108FKG1EUBuBvYtxbRGwxiGBXeYCW0mVpDSKVvIJ0F/syJsFdn6GCkaZ9gro3G1u0ILQgheJKRUwXPQNnxvTAcGf+c/7/nPvfO8UEKLCFJg5w31aNqGtgG3c4xLSZyP0QgI8Tpu0quQhyPwTgsBnkAVYD3MM9DibVId5GbiW+B+VIt7hJha1IdhPWDayVsBvcFtHlDYZ4mgou8D7e+zXyN/TwuUhjbkSXLHIZ61KNvItxaYyayBDrZsf36DyGdilQE+ngA57UyD+xg08luTSxHvP/wRuRewDm7uV9WJ4hsBy5rczJJm7G/tcS6VesjxN2Hj4c5S10Qj2Tz/AunrOEr0VtB+Z6vMJ+zfkfcVQjnMbRvcRC5B/hBU4auMbVjBFHCRsFdp6wK1yXHjz37xItRuejfFQ1nwb4HXVfs4nPYsQv0p+oKlLgNf7gGP4Cw4ZUK7kMJVEAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDExLTA1LTE2VDExOjM1OjIxKzAyOjAw9uVF5gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMS0wNS0xNlQxMTozNToyMSswMjowMIe4/VoAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/readme": {
"title": "$:/plugins/felixhayashi/vis/readme",
"text": "! TW5-Vis.js\n\nA tiddlywiki plugin for the vis.js library.\n\n---\n\n! Notes on Copyright\n\n!! TiddlyWiki\n\nCreated by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright © Jeremy Ruston 2004-2007 Copyright © UnaMesa Association 2007-2014\n\nPublished under the following [licenses](https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses):\n\n1. BSD 3-clause \"New\" or \"Revised\" License (including any right to adopt any future version of a license if permitted)\n2. Creative Commons Attribution 3.0 (including any right to adopt any future version of a license if permitted)\n\n!! The **vis.js** library\n\nCopyright (c) 2014 [Almende B.V.](https://github.com/almende/vis)\n\nPublished under the following licenses:\n\n1. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/\n2. MIT License (MIT)\n"
},
"$:/plugins/felixhayashi/vis/vis.css": {
"title": "$:/plugins/felixhayashi/vis/vis.css",
"type": "text/vnd.tiddlywiki",
"tags": "$:/tags/Stylesheet",
"text": "\\rules except list\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\n\\end\n\n.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:bold}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 white;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%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dedede',endColorstr='#c8c8c8',GradientType=0);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%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#3876c2',endColorstr='#385380',GradientType=0);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%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9d9d9d',endColorstr='#c8c8c8',GradientType=0)}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%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dedede',endColorstr='#c8c8c8',GradientType=0);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:0;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid white;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:transparent;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:0;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,0.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,0.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,0.2);pointer-events:none;z-index:5}div.vis-color-picker{position:absolute;top:0;left:30px;margin-top:-140px;margin-left:30px;width:310px;height:444px;z-index:1;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,0.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow::after,div.vis-color-picker div.vis-arrow::before{right:100%;top:50%;border:solid transparent;content:\" \";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4c',endColorstr='#131313',GradientType=0)}div.vis-color-picker div.vis-new-color{position:absolute;width:140px;height:20px;border:1px solid rgba(0,0,0,0.1);border-radius:5px;top:380px;left:159px;text-align:right;padding-right:2px;font-size:10px;color:rgba(0,0,0,0.4);vertical-align:middle;line-height:20px}div.vis-color-picker div.vis-initial-color{position:absolute;width:140px;height:20px;border:1px solid rgba(0,0,0,0.1);border-radius:5px;top:380px;left:10px;text-align:left;padding-left:2px;font-size:10px;color:rgba(0,0,0,0.4);vertical-align:middle;line-height:20px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px}div.vis-network div.vis-manipulation{box-sizing:content-box;border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#fcfcfc',GradientType=0);padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/cross.png\">>);cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-manipulation div.vis-button,div.vis-network div.vis-edit-mode div.vis-button{float:left;font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;cursor:pointer;padding:0 8px 0 8px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,0.20)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,0.50)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/backIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px rgba(0,0,0,0.0);cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px rgba(0,0,0,0.0)}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:bold}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-edit,div.vis-network div.vis-edit-mode div.vis-button.vis-edit{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/editIcon.png\">>)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/connectIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/deleteIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-label,div.vis-network div.vis-edit-mode div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,0.30)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,0.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/upArrow.png\">>);bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/downArrow.png\">>);bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/leftArrow.png\">>);bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/rightArrow.png\">>);bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/plus.png\">>);bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/minus.png\">>);bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/zoomExtends.png\">>);bottom:50px;right:15px}.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:white;font-weight:bold;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,0.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,0.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}.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:0;background-color:rgba(213,221,246,0.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:white;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:after,.vis-item .vis-delete-rtl:after{content:\"\\00D7\";color:red;font-family:arial,sans-serif;font-size:22px;font-weight:bold;-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:hover,.vis-item .vis-delete-rtl:hover{background:red}.vis-item .vis-delete:hover:after,.vis-item .vis-delete-rtl:hover:after{color:white}.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:0}.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:0}.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-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top,.vis-panel.vis-bottom{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-center,.vis-panel.vis-top,.vis-panel.vis-bottom{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,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.0}.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}"
},
"$:/plugins/felixhayashi/vis/vis.js": {
"title": "$:/plugins/felixhayashi/vis/vis.js",
"text": "/*\\\ntitle: $:/plugins/felixhayashi/vis/vis.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\\*/\n\n/*** TO AVOID STRANGE LIB ERRORS FROM BUBBLING UP *****************/\n\nif($tw.boot.tasks.trapErrors) {\n\n var defaultHandler = window.onerror;\n window.onerror = function(errorMsg, url, lineNumber) {\n \n if(errorMsg.indexOf(\"NS_ERROR_NOT_AVAILABLE\") !== -1\n && url == \"$:/plugins/felixhayashi/vis/vis.js\") {\n \n var text = \"Strange firefox related vis.js error (see #125)\";\n console.error(text, arguments);\n \n } else if(errorMsg.indexOf(\"Permission denied to access property\") !== -1) {\n \n var text = \"Strange firefox related vis.js error (see #163)\";\n console.error(text, arguments);\n \n } else if(defaultHandler) {\n \n defaultHandler.apply(this, arguments);\n \n }\n \n }\n \n}\n\n/******************************************************************/\n\n/**\n * vis.js\n * https://github.com/almende/vis\n *\n * A dynamic, browser-based visualization library.\n *\n * @version 4.21.0\n * @date 2017-10-12\n *\n * @license\n * Copyright (C) 2011-2017 Almende B.V, http://almende.com\n *\n * Vis.js is dual licensed under both\n *\n * * The Apache 2.0 License\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * and\n *\n * * The MIT License\n * http://opensource.org/licenses/MIT\n *\n * Vis.js may be distributed under either license.\n */\n\"use strict\";(function webpackUniversalModuleDefinition(root,factory){if(typeof exports===\"object\"&&typeof module===\"object\")module.exports=factory();else if(typeof define===\"function\"&&define.amd)define([],factory);else if(typeof exports===\"object\")exports[\"vis\"]=factory();else root[\"vis\"]=factory()})(this,function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{configurable:false,enumerable:true,get:getter})}};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module[\"default\"]}:function getModuleExports(){return module};__webpack_require__.d(getter,\"a\",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p=\"\";return __webpack_require__(__webpack_require__.s=123)}([function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;exports.default=function(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\")}}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _defineProperty=__webpack_require__(169);var _defineProperty2=_interopRequireDefault(_defineProperty);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;(0,_defineProperty2.default)(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}()},function(module,exports,__webpack_require__){\"use strict\";var _getIterator2=__webpack_require__(77);var _getIterator3=_interopRequireDefault(_getIterator2);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var moment=__webpack_require__(9);var uuid=__webpack_require__(157);exports.isNumber=function(object){return object instanceof Number||typeof object==\"number\"};exports.recursiveDOMDelete=function(DOMobject){if(DOMobject){while(DOMobject.hasChildNodes()===true){exports.recursiveDOMDelete(DOMobject.firstChild);DOMobject.removeChild(DOMobject.firstChild)}}};exports.giveRange=function(min,max,total,value){if(max==min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}};exports.isString=function(object){return object instanceof String||typeof object==\"string\"};exports.isDate=function(object){if(object instanceof Date){return true}else if(exports.isString(object)){var match=ASPDateRegex.exec(object);if(match){return true}else if(!isNaN(Date.parse(object))){return true}}return false};exports.randomUUID=function(){return uuid.v4()};exports.assignAllKeys=function(obj,value){for(var prop in obj){if(obj.hasOwnProperty(prop)){if((0,_typeof3[\"default\"])(obj[prop])!==\"object\"){obj[prop]=value}}}};function copyOrDelete(a,b,prop,allowDeletion){var doDeletion=false;if(allowDeletion===true){doDeletion=b[prop]===null&&a[prop]!==undefined}if(doDeletion){delete a[prop]}else{a[prop]=b[prop]}}exports.fillIfDefined=function(a,b){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;for(var prop in a){if(b[prop]!==undefined){if(b[prop]===null||(0,_typeof3[\"default\"])(b[prop])!==\"object\"){copyOrDelete(a,b,prop,allowDeletion)}else{if((0,_typeof3[\"default\"])(a[prop])===\"object\"){exports.fillIfDefined(a[prop],b[prop],allowDeletion)}}}}};exports.extend=function(a,b){for(var i=1;i<arguments.length;i++){var other=arguments[i];for(var prop in other){if(other.hasOwnProperty(prop)){a[prop]=other[prop]}}}return a};exports.selectiveExtend=function(props,a,b){if(!Array.isArray(props)){throw new Error(\"Array with property names expected as first argument\")}for(var i=2;i<arguments.length;i++){var other=arguments[i];for(var p=0;p<props.length;p++){var prop=props[p];if(other&&other.hasOwnProperty(prop)){a[prop]=other[prop]}}}return a};exports.selectiveDeepExtend=function(props,a,b){var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(Array.isArray(b)){throw new TypeError(\"Arrays are not supported by deepExtend\")}for(var p=0;p<props.length;p++){var prop=props[p];if(b.hasOwnProperty(prop)){if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop],false,allowDeletion)}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){throw new TypeError(\"Arrays are not supported by deepExtend\")}else{copyOrDelete(a,b,prop,allowDeletion)}}}return a};exports.selectiveNotDeepExtend=function(propsToExclude,a,b){var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(Array.isArray(b)){throw new TypeError(\"Arrays are not supported by deepExtend\")}for(var prop in b){if(!b.hasOwnProperty(prop))continue;if(propsToExclude.indexOf(prop)!==-1)continue;if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop])}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){a[prop]=[];for(var i=0;i<b[prop].length;i++){a[prop].push(b[prop][i])}}else{copyOrDelete(a,b,prop,allowDeletion)}}return a};exports.deepExtend=function(a,b){var protoExtend=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;for(var prop in b){if(b.hasOwnProperty(prop)||protoExtend===true){if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop],protoExtend)}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){a[prop]=[];for(var i=0;i<b[prop].length;i++){a[prop].push(b[prop][i])}}else{copyOrDelete(a,b,prop,allowDeletion)}}}return a};exports.equalArray=function(a,b){if(a.length!=b.length)return false;for(var i=0,len=a.length;i<len;i++){if(a[i]!=b[i])return false}return true};exports.convert=function(object,type){var match;if(object===undefined){return undefined}if(object===null){return null}if(!type){return object}if(!(typeof type===\"string\")&&!(type instanceof String)){throw new Error(\"Type must be a string\")}switch(type){case\"boolean\":case\"Boolean\":return Boolean(object);case\"number\":case\"Number\":if(exports.isString(object)&&!isNaN(Date.parse(object))){return moment(object).valueOf()}else{return Number(object.valueOf())}case\"string\":case\"String\":return String(object);case\"Date\":if(exports.isNumber(object)){return new Date(object)}if(object instanceof Date){return new Date(object.valueOf())}else if(moment.isMoment(object)){return new Date(object.valueOf())}if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return new Date(Number(match[1]))}else{return moment(new Date(object)).toDate()}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type Date\")}case\"Moment\":if(exports.isNumber(object)){return moment(object)}if(object instanceof Date){return moment(object.valueOf())}else if(moment.isMoment(object)){return moment(object)}if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return moment(Number(match[1]))}else{return moment(object)}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type Date\")}case\"ISODate\":if(exports.isNumber(object)){return new Date(object)}else if(object instanceof Date){return object.toISOString()}else if(moment.isMoment(object)){return object.toDate().toISOString()}else if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return new Date(Number(match[1])).toISOString()}else{return moment(object).format()}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type ISODate\")}case\"ASPDate\":if(exports.isNumber(object)){return\"/Date(\"+object+\")/\"}else if(object instanceof Date){return\"/Date(\"+object.valueOf()+\")/\"}else if(exports.isString(object)){match=ASPDateRegex.exec(object);var value;if(match){value=new Date(Number(match[1])).valueOf()}else{value=new Date(object).valueOf()}return\"/Date(\"+value+\")/\"}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type ASPDate\")}default:throw new Error('Unknown type \"'+type+'\"')}};var ASPDateRegex=/^\\/?Date\\((\\-?\\d+)/i;exports.getType=function(object){var type=typeof object===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(object);if(type==\"object\"){if(object===null){return\"null\"}if(object instanceof Boolean){return\"Boolean\"}if(object instanceof Number){return\"Number\"}if(object instanceof String){return\"String\"}if(Array.isArray(object)){return\"Array\"}if(object instanceof Date){return\"Date\"}return\"Object\"}else if(type==\"number\"){return\"Number\"}else if(type==\"boolean\"){return\"Boolean\"}else if(type==\"string\"){return\"String\"}else if(type===undefined){return\"undefined\"}return type};exports.copyAndExtendArray=function(arr,newValue){var newArr=[];for(var i=0;i<arr.length;i++){newArr.push(arr[i])}newArr.push(newValue);return newArr};exports.copyArray=function(arr){var newArr=[];for(var i=0;i<arr.length;i++){newArr.push(arr[i])}return newArr};exports.getAbsoluteLeft=function(elem){return elem.getBoundingClientRect().left};exports.getAbsoluteRight=function(elem){return elem.getBoundingClientRect().right};exports.getAbsoluteTop=function(elem){return elem.getBoundingClientRect().top};exports.addClassName=function(elem,classNames){var classes=elem.className.split(\" \");var newClasses=classNames.split(\" \");classes=classes.concat(newClasses.filter(function(className){return classes.indexOf(className)<0}));elem.className=classes.join(\" \")};exports.removeClassName=function(elem,classNames){var classes=elem.className.split(\" \");var oldClasses=classNames.split(\" \");classes=classes.filter(function(className){return oldClasses.indexOf(className)<0});elem.className=classes.join(\" \")};exports.forEach=function(object,callback){var i,len;if(Array.isArray(object)){for(i=0,len=object.length;i<len;i++){callback(object[i],i,object)}}else{for(i in object){if(object.hasOwnProperty(i)){callback(object[i],i,object)}}}};exports.toArray=function(object){var array=[];for(var prop in object){if(object.hasOwnProperty(prop))array.push(object[prop])}return array};exports.updateProperty=function(object,key,value){if(object[key]!==value){object[key]=value;return true}else{return false}};exports.throttle=function(fn){var scheduled=false;return function throttled(){if(!scheduled){scheduled=true;requestAnimationFrame(function(){scheduled=false;fn()})}}};exports.addEventListener=function(element,action,listener,useCapture){if(element.addEventListener){if(useCapture===undefined)useCapture=false;if(action===\"mousewheel\"&&navigator.userAgent.indexOf(\"Firefox\")>=0){action=\"DOMMouseScroll\"}element.addEventListener(action,listener,useCapture)}else{element.attachEvent(\"on\"+action,listener)}};exports.removeEventListener=function(element,action,listener,useCapture){if(element.removeEventListener){if(useCapture===undefined)useCapture=false;if(action===\"mousewheel\"&&navigator.userAgent.indexOf(\"Firefox\")>=0){action=\"DOMMouseScroll\"}element.removeEventListener(action,listener,useCapture)}else{element.detachEvent(\"on\"+action,listener)}};exports.preventDefault=function(event){if(!event)event=window.event;if(event.preventDefault){event.preventDefault()}else{event.returnValue=false}};exports.getTarget=function(event){if(!event){event=window.event}var target;if(event.target){target=event.target}else if(event.srcElement){target=event.srcElement}if(target.nodeType!=undefined&&target.nodeType==3){target=target.parentNode}return target};exports.hasParent=function(element,parent){var e=element;while(e){if(e===parent){return true}e=e.parentNode}return false};exports.option={};exports.option.asBoolean=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return value!=false}return defaultValue||null};exports.option.asNumber=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return Number(value)||defaultValue||null}return defaultValue||null};exports.option.asString=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return String(value)}return defaultValue||null};exports.option.asSize=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(exports.isString(value)){return value}else if(exports.isNumber(value)){return value+\"px\"}else{return defaultValue||null}};exports.option.asElement=function(value,defaultValue){if(typeof value==\"function\"){value=value()}return value||defaultValue||null};exports.hexToRGB=function(hex){var shorthandRegex=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;hex=hex.replace(shorthandRegex,function(m,r,g,b){return r+r+g+g+b+b});var result=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);return result?{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}:null};exports.overrideOpacity=function(color,opacity){var rgb;if(color.indexOf(\"rgba\")!=-1){return color}else if(color.indexOf(\"rgb\")!=-1){rgb=color.substr(color.indexOf(\"(\")+1).replace(\")\",\"\").split(\",\");return\"rgba(\"+rgb[0]+\",\"+rgb[1]+\",\"+rgb[2]+\",\"+opacity+\")\"}else{rgb=exports.hexToRGB(color);if(rgb==null){return color}else{return\"rgba(\"+rgb.r+\",\"+rgb.g+\",\"+rgb.b+\",\"+opacity+\")\"}}};exports.RGBToHex=function(red,green,blue){return\"#\"+((1<<24)+(red<<16)+(green<<8)+blue).toString(16).slice(1)};exports.parseColor=function(color){var c;if(exports.isString(color)===true){if(exports.isValidRGB(color)===true){var rgb=color.substr(4).substr(0,color.length-5).split(\",\").map(function(value){return parseInt(value)});color=exports.RGBToHex(rgb[0],rgb[1],rgb[2])}if(exports.isValidHex(color)===true){var hsv=exports.hexToHSV(color);var lighterColorHSV={h:hsv.h,s:hsv.s*.8,v:Math.min(1,hsv.v*1.02)};var darkerColorHSV={h:hsv.h,s:Math.min(1,hsv.s*1.25),v:hsv.v*.8};var darkerColorHex=exports.HSVToHex(darkerColorHSV.h,darkerColorHSV.s,darkerColorHSV.v);var lighterColorHex=exports.HSVToHex(lighterColorHSV.h,lighterColorHSV.s,lighterColorHSV.v);c={background:color,border:darkerColorHex,highlight:{background:lighterColorHex,border:darkerColorHex},hover:{background:lighterColorHex,border:darkerColorHex}}}else{c={background:color,border:color,highlight:{background:color,border:color},hover:{background:color,border:color}}}}else{c={};c.background=color.background||undefined;c.border=color.border||undefined;if(exports.isString(color.highlight)){c.highlight={border:color.highlight,background:color.highlight}}else{c.highlight={};c.highlight.background=color.highlight&&color.highlight.background||undefined;c.highlight.border=color.highlight&&color.highlight.border||undefined}if(exports.isString(color.hover)){c.hover={border:color.hover,background:color.hover}}else{c.hover={};c.hover.background=color.hover&&color.hover.background||undefined;c.hover.border=color.hover&&color.hover.border||undefined}}return c};exports.RGBToHSV=function(red,green,blue){red=red/255;green=green/255;blue=blue/255;var minRGB=Math.min(red,Math.min(green,blue));var maxRGB=Math.max(red,Math.max(green,blue));if(minRGB==maxRGB){return{h:0,s:0,v:minRGB}}var d=red==minRGB?green-blue:blue==minRGB?red-green:blue-red;var h=red==minRGB?3:blue==minRGB?1:5;var hue=60*(h-d/(maxRGB-minRGB))/360;var saturation=(maxRGB-minRGB)/maxRGB;var value=maxRGB;return{h:hue,s:saturation,v:value}};var cssUtil={split:function split(cssText){var styles={};cssText.split(\";\").forEach(function(style){if(style.trim()!=\"\"){var parts=style.split(\":\");var key=parts[0].trim();var value=parts[1].trim();styles[key]=value}});return styles},join:function join(styles){return(0,_keys2[\"default\"])(styles).map(function(key){return key+\": \"+styles[key]}).join(\"; \")}};exports.addCssText=function(element,cssText){var currentStyles=cssUtil.split(element.style.cssText);var newStyles=cssUtil.split(cssText);var styles=exports.extend(currentStyles,newStyles);element.style.cssText=cssUtil.join(styles)};exports.removeCssText=function(element,cssText){var styles=cssUtil.split(element.style.cssText);var removeStyles=cssUtil.split(cssText);for(var key in removeStyles){if(removeStyles.hasOwnProperty(key)){delete styles[key]}}element.style.cssText=cssUtil.join(styles)};exports.HSVToRGB=function(h,s,v){var r,g,b;var i=Math.floor(h*6);var f=h*6-i;var p=v*(1-s);var q=v*(1-f*s);var t=v*(1-(1-f)*s);switch(i%6){case 0:r=v,g=t,b=p;break;case 1:r=q,g=v,b=p;break;case 2:r=p,g=v,b=t;break;case 3:r=p,g=q,b=v;break;case 4:r=t,g=p,b=v;break;case 5:r=v,g=p,b=q;break}return{r:Math.floor(r*255),g:Math.floor(g*255),b:Math.floor(b*255)}};exports.HSVToHex=function(h,s,v){var rgb=exports.HSVToRGB(h,s,v);return exports.RGBToHex(rgb.r,rgb.g,rgb.b)};exports.hexToHSV=function(hex){var rgb=exports.hexToRGB(hex);return exports.RGBToHSV(rgb.r,rgb.g,rgb.b)};exports.isValidHex=function(hex){var isOk=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex);return isOk};exports.isValidRGB=function(rgb){rgb=rgb.replace(\" \",\"\");var isOk=/rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/i.test(rgb);return isOk};exports.isValidRGBA=function(rgba){rgba=rgba.replace(\" \",\"\");var isOk=/rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(.{1,3})\\)/i.test(rgba);return isOk};exports.selectiveBridgeObject=function(fields,referenceObject){if(referenceObject!==null&&(typeof referenceObject===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(referenceObject))===\"object\"){var objectTo=(0,_create2[\"default\"])(referenceObject);for(var i=0;i<fields.length;i++){if(referenceObject.hasOwnProperty(fields[i])){if((0,_typeof3[\"default\"])(referenceObject[fields[i]])==\"object\"){objectTo[fields[i]]=exports.bridgeObject(referenceObject[fields[i]])}}}return objectTo}else{return null}};exports.bridgeObject=function(referenceObject){if(referenceObject!==null&&(typeof referenceObject===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(referenceObject))===\"object\"){var objectTo=(0,_create2[\"default\"])(referenceObject);if(referenceObject instanceof Element){objectTo=referenceObject}else{objectTo=(0,_create2[\"default\"])(referenceObject);for(var i in referenceObject){if(referenceObject.hasOwnProperty(i)){if((0,_typeof3[\"default\"])(referenceObject[i])==\"object\"){objectTo[i]=exports.bridgeObject(referenceObject[i])}}}}return objectTo}else{return null}};exports.insertSort=function(a,compare){for(var i=0;i<a.length;i++){var k=a[i];for(var j=i;j>0&&compare(k,a[j-1])<0;j--){a[j]=a[j-1]}a[j]=k}return a};exports.mergeOptions=function(mergeTarget,options,option){var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var isPresent=function isPresent(obj){return obj!==null&&obj!==undefined};var isObject=function isObject(obj){return obj!==null&&(typeof obj===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(obj))===\"object\"};var isEmpty=function isEmpty(obj){for(var x in obj){if(obj.hasOwnProperty(x))return false}return true};if(!isObject(mergeTarget)){throw new Error(\"Parameter mergeTarget must be an object\")}if(!isObject(options)){throw new Error(\"Parameter options must be an object\")}if(!isPresent(option)){throw new Error(\"Parameter option must have a value\")}if(!isObject(globalOptions)){throw new Error(\"Parameter globalOptions must be an object\")}var doMerge=function doMerge(target,options,option){if(!isObject(target[option])){target[option]={}}var src=options[option];var dst=target[option];for(var prop in src){if(src.hasOwnProperty(prop)){dst[prop]=src[prop]}}};var srcOption=options[option];var globalPassed=isObject(globalOptions)&&!isEmpty(globalOptions);var globalOption=globalPassed?globalOptions[option]:undefined;var globalEnabled=globalOption?globalOption.enabled:undefined;if(srcOption===undefined){return}if(typeof srcOption===\"boolean\"){if(!isObject(mergeTarget[option])){mergeTarget[option]={}}mergeTarget[option].enabled=srcOption;return}if(srcOption===null&&!isObject(mergeTarget[option])){if(isPresent(globalOption)){mergeTarget[option]=(0,_create2[\"default\"])(globalOption)}else{return}}if(!isObject(srcOption)){return}var enabled=true;if(srcOption.enabled!==undefined){enabled=srcOption.enabled}else{if(globalEnabled!==undefined){enabled=globalOption.enabled}}doMerge(mergeTarget,options,option);mergeTarget[option].enabled=enabled};exports.binarySearchCustom=function(orderedItems,comparator,field,field2){var maxIterations=1e4;var iteration=0;var low=0;var high=orderedItems.length-1;while(low<=high&&iteration<maxIterations){var middle=Math.floor((low+high)/2);var item=orderedItems[middle];var value=field2===undefined?item[field]:item[field][field2];var searchResult=comparator(value);if(searchResult==0){return middle}else if(searchResult==-1){low=middle+1}else{high=middle-1}iteration++}return-1};exports.binarySearchValue=function(orderedItems,target,field,sidePreference,comparator){var maxIterations=1e4;var iteration=0;var low=0;var high=orderedItems.length-1;var prevValue,value,nextValue,middle;comparator=comparator!=undefined?comparator:function(a,b){return a==b?0:a<b?-1:1};while(low<=high&&iteration<maxIterations){middle=Math.floor(.5*(high+low));prevValue=orderedItems[Math.max(0,middle-1)][field];value=orderedItems[middle][field];nextValue=orderedItems[Math.min(orderedItems.length-1,middle+1)][field];if(comparator(value,target)==0){return middle}else if(comparator(prevValue,target)<0&&comparator(value,target)>0){return sidePreference==\"before\"?Math.max(0,middle-1):middle}else if(comparator(value,target)<0&&comparator(nextValue,target)>0){return sidePreference==\"before\"?middle:Math.min(orderedItems.length-1,middle+1)}else{if(comparator(value,target)<0){low=middle+1}else{high=middle-1}}iteration++}return-1};exports.easingFunctions={linear:function linear(t){return t},easeInQuad:function easeInQuad(t){return t*t},easeOutQuad:function easeOutQuad(t){return t*(2-t)},easeInOutQuad:function easeInOutQuad(t){return t<.5?2*t*t:-1+(4-2*t)*t},easeInCubic:function easeInCubic(t){return t*t*t},easeOutCubic:function easeOutCubic(t){return--t*t*t+1},easeInOutCubic:function easeInOutCubic(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function easeInQuart(t){return t*t*t*t},easeOutQuart:function easeOutQuart(t){return 1- --t*t*t*t},easeInOutQuart:function easeInOutQuart(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function easeInQuint(t){return t*t*t*t*t},easeOutQuint:function easeOutQuint(t){return 1+--t*t*t*t*t},easeInOutQuint:function easeInOutQuint(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}};exports.getScrollBarWidth=function(){var inner=document.createElement(\"p\");inner.style.width=\"100%\";inner.style.height=\"200px\";var outer=document.createElement(\"div\");outer.style.position=\"absolute\";outer.style.top=\"0px\";outer.style.left=\"0px\";outer.style.visibility=\"hidden\";outer.style.width=\"200px\";outer.style.height=\"150px\";outer.style.overflow=\"hidden\";outer.appendChild(inner);document.body.appendChild(outer);var w1=inner.offsetWidth;outer.style.overflow=\"scroll\";var w2=inner.offsetWidth;if(w1==w2)w2=outer.clientWidth;document.body.removeChild(outer);return w1-w2};exports.topMost=function(pile,accessors){var candidate=void 0;if(!Array.isArray(accessors)){accessors=[accessors]}var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=(0,_getIterator3[\"default\"])(pile),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var member=_step.value;if(member){candidate=member[accessors[0]];for(var i=1;i<accessors.length;i++){if(candidate){candidate=candidate[accessors[i]]}else{continue}}if(typeof candidate!=\"undefined\"){break}}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator[\"return\"]){_iterator[\"return\"]()}}finally{if(_didIteratorError){throw _iteratorError}}}return candidate}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(194),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return call&&((typeof call===\"undefined\"?\"undefined\":(0,_typeof3.default)(call))===\"object\"||typeof call===\"function\")?call:self}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _setPrototypeOf=__webpack_require__(196);var _setPrototypeOf2=_interopRequireDefault(_setPrototypeOf);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+(typeof superClass===\"undefined\"?\"undefined\":(0,_typeof3.default)(superClass)))}subClass.prototype=(0,_create2.default)(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)_setPrototypeOf2.default?(0,_setPrototypeOf2.default)(subClass,superClass):subClass.__proto__=superClass}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _iterator=__webpack_require__(142);var _iterator2=_interopRequireDefault(_iterator);var _symbol=__webpack_require__(144);var _symbol2=_interopRequireDefault(_symbol);var _typeof=typeof _symbol2.default===\"function\"&&typeof _iterator2.default===\"symbol\"?function(obj){return typeof obj}:function(obj){return obj&&typeof _symbol2.default===\"function\"&&obj.constructor===_symbol2.default&&obj!==_symbol2.default.prototype?\"symbol\":typeof obj};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=typeof _symbol2.default===\"function\"&&_typeof(_iterator2.default)===\"symbol\"?function(obj){return typeof obj===\"undefined\"?\"undefined\":_typeof(obj)}:function(obj){return obj&&typeof _symbol2.default===\"function\"&&obj.constructor===_symbol2.default&&obj!==_symbol2.default.prototype?\"symbol\":typeof obj===\"undefined\"?\"undefined\":_typeof(obj)}},function(module,exports){var core=module.exports={version:\"2.5.1\"};if(typeof __e==\"number\")__e=core},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(140),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";module.exports=typeof window!==\"undefined\"&&window[\"moment\"]||__webpack_require__(154)},function(module,exports,__webpack_require__){\"use strict\";function hammerMock(){var noop=function noop(){};return{on:noop,off:noop,destroy:noop,emit:noop,get:function get(m){return{set:noop}}}}if(typeof window!==\"undefined\"){var propagating=__webpack_require__(175);var Hammer=window[\"Hammer\"]||__webpack_require__(176);module.exports=propagating(Hammer,{preventDefault:\"mouse\"})}else{module.exports=function(){return hammerMock()}}},function(module,exports,__webpack_require__){\"use strict\";var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Queue=__webpack_require__(43);function DataSet(data,options){if(data&&!Array.isArray(data)){options=data;data=null}this._options=options||{};this._data={};this.length=0;this._fieldId=this._options.fieldId||\"id\";this._type={};if(this._options.type){var fields=(0,_keys2[\"default\"])(this._options.type);for(var i=0,len=fields.length;i<len;i++){var field=fields[i];var value=this._options.type[field];if(value==\"Date\"||value==\"ISODate\"||value==\"ASPDate\"){this._type[field]=\"Date\"}else{this._type[field]=value}}}this._subscribers={};if(data){this.add(data)}this.setOptions(options)}DataSet.prototype.setOptions=function(options){if(options&&options.queue!==undefined){if(options.queue===false){if(this._queue){this._queue.destroy();delete this._queue}}else{if(!this._queue){this._queue=Queue.extend(this,{replace:[\"add\",\"update\",\"remove\"]})}if((0,_typeof3[\"default\"])(options.queue)===\"object\"){this._queue.setOptions(options.queue)}}}};DataSet.prototype.on=function(event,callback){var subscribers=this._subscribers[event];if(!subscribers){subscribers=[];this._subscribers[event]=subscribers}subscribers.push({callback:callback})};DataSet.prototype.off=function(event,callback){var subscribers=this._subscribers[event];if(subscribers){this._subscribers[event]=subscribers.filter(function(listener){return listener.callback!=callback})}};DataSet.prototype._trigger=function(event,params,senderId){if(event==\"*\"){throw new Error(\"Cannot trigger event *\")}var subscribers=[];if(event in this._subscribers){subscribers=subscribers.concat(this._subscribers[event])}if(\"*\"in this._subscribers){subscribers=subscribers.concat(this._subscribers[\"*\"])}for(var i=0,len=subscribers.length;i<len;i++){var subscriber=subscribers[i];if(subscriber.callback){subscriber.callback(event,params,senderId||null)}}};DataSet.prototype.add=function(data,senderId){var addedIds=[],id,me=this;if(Array.isArray(data)){for(var i=0,len=data.length;i<len;i++){id=me._addItem(data[i]);addedIds.push(id)}}else if(data&&(typeof data===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(data))===\"object\"){id=me._addItem(data);addedIds.push(id)}else{throw new Error(\"Unknown dataType\")}if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}return addedIds};DataSet.prototype.update=function(data,senderId){var addedIds=[];var updatedIds=[];var oldData=[];var updatedData=[];var me=this;var fieldId=me._fieldId;var addOrUpdate=function addOrUpdate(item){var id=item[fieldId];if(me._data[id]){var oldItem=util.extend({},me._data[id]);id=me._updateItem(item);updatedIds.push(id);updatedData.push(item);oldData.push(oldItem)}else{id=me._addItem(item);addedIds.push(id)}};if(Array.isArray(data)){for(var i=0,len=data.length;i<len;i++){if(data[i]&&(0,_typeof3[\"default\"])(data[i])===\"object\"){addOrUpdate(data[i])}else{console.warn(\"Ignoring input item, which is not an object at index \"+i)}}}else if(data&&(typeof data===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(data))===\"object\"){addOrUpdate(data)}else{throw new Error(\"Unknown dataType\")}if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}if(updatedIds.length){var props={items:updatedIds,oldData:oldData,data:updatedData};this._trigger(\"update\",props,senderId)}return addedIds.concat(updatedIds)};DataSet.prototype.get=function(args){var me=this;var id,ids,options;var firstType=util.getType(arguments[0]);if(firstType==\"String\"||firstType==\"Number\"){id=arguments[0];options=arguments[1]}else if(firstType==\"Array\"){\nids=arguments[0];options=arguments[1]}else{options=arguments[0]}var returnType;if(options&&options.returnType){var allowedValues=[\"Array\",\"Object\"];returnType=allowedValues.indexOf(options.returnType)==-1?\"Array\":options.returnType}else{returnType=\"Array\"}var type=options&&options.type||this._options.type;var filter=options&&options.filter;var items=[],item,itemIds,itemId,i,len;if(id!=undefined){item=me._getItem(id,type);if(item&&filter&&!filter(item)){item=null}}else if(ids!=undefined){for(i=0,len=ids.length;i<len;i++){item=me._getItem(ids[i],type);if(!filter||filter(item)){items.push(item)}}}else{itemIds=(0,_keys2[\"default\"])(this._data);for(i=0,len=itemIds.length;i<len;i++){itemId=itemIds[i];item=me._getItem(itemId,type);if(!filter||filter(item)){items.push(item)}}}if(options&&options.order&&id==undefined){this._sort(items,options.order)}if(options&&options.fields){var fields=options.fields;if(id!=undefined){item=this._filterFields(item,fields)}else{for(i=0,len=items.length;i<len;i++){items[i]=this._filterFields(items[i],fields)}}}if(returnType==\"Object\"){var result={},resultant;for(i=0,len=items.length;i<len;i++){resultant=items[i];result[resultant.id]=resultant}return result}else{if(id!=undefined){return item}else{return items}}};DataSet.prototype.getIds=function(options){var data=this._data,filter=options&&options.filter,order=options&&options.order,type=options&&options.type||this._options.type,itemIds=(0,_keys2[\"default\"])(data),i,len,id,item,items,ids=[];if(filter){if(order){items=[];for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(filter(item)){items.push(item)}}this._sort(items,order);for(i=0,len=items.length;i<len;i++){ids.push(items[i][this._fieldId])}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(filter(item)){ids.push(item[this._fieldId])}}}}else{if(order){items=[];for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];items.push(data[id])}this._sort(items,order);for(i=0,len=items.length;i<len;i++){ids.push(items[i][this._fieldId])}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=data[id];ids.push(item[this._fieldId])}}}return ids};DataSet.prototype.getDataSet=function(){return this};DataSet.prototype.forEach=function(callback,options){var filter=options&&options.filter,type=options&&options.type||this._options.type,data=this._data,itemIds=(0,_keys2[\"default\"])(data),i,len,item,id;if(options&&options.order){var items=this.get(options);for(i=0,len=items.length;i<len;i++){item=items[i];id=item[this._fieldId];callback(item,id)}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(!filter||filter(item)){callback(item,id)}}}};DataSet.prototype.map=function(callback,options){var filter=options&&options.filter,type=options&&options.type||this._options.type,mappedItems=[],data=this._data,itemIds=(0,_keys2[\"default\"])(data),i,len,id,item;for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(!filter||filter(item)){mappedItems.push(callback(item,id))}}if(options&&options.order){this._sort(mappedItems,options.order)}return mappedItems};DataSet.prototype._filterFields=function(item,fields){if(!item){return item}var filteredItem={},itemFields=(0,_keys2[\"default\"])(item),len=itemFields.length,i,field;if(Array.isArray(fields)){for(i=0;i<len;i++){field=itemFields[i];if(fields.indexOf(field)!=-1){filteredItem[field]=item[field]}}}else{for(i=0;i<len;i++){field=itemFields[i];if(fields.hasOwnProperty(field)){filteredItem[fields[field]]=item[field]}}}return filteredItem};DataSet.prototype._sort=function(items,order){if(util.isString(order)){var name=order;items.sort(function(a,b){var av=a[name];var bv=b[name];return av>bv?1:av<bv?-1:0})}else if(typeof order===\"function\"){items.sort(order)}else{throw new TypeError(\"Order must be a function or a string\")}};DataSet.prototype.remove=function(id,senderId){var removedIds=[],removedItems=[],ids=[],i,len,itemId,item;ids=Array.isArray(id)?id:[id];for(i=0,len=ids.length;i<len;i++){item=this._remove(ids[i]);if(item){itemId=item[this._fieldId];if(itemId!=undefined){removedIds.push(itemId);removedItems.push(item)}}}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems},senderId)}return removedIds};DataSet.prototype._remove=function(id){var item,ident;if(util.isNumber(id)||util.isString(id)){ident=id}else if(id&&(typeof id===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(id))===\"object\"){ident=id[this._fieldId]}if(ident!==undefined&&this._data[ident]){item=this._data[ident];delete this._data[ident];this.length--;return item}return null};DataSet.prototype.clear=function(senderId){var i,len;var ids=(0,_keys2[\"default\"])(this._data);var items=[];for(i=0,len=ids.length;i<len;i++){items.push(this._data[ids[i]])}this._data={};this.length=0;this._trigger(\"remove\",{items:ids,oldData:items},senderId);return ids};DataSet.prototype.max=function(field){var data=this._data,itemIds=(0,_keys2[\"default\"])(data),max=null,maxField=null,i,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var itemField=item[field];if(itemField!=null&&(!max||itemField>maxField)){max=item;maxField=itemField}}return max};DataSet.prototype.min=function(field){var data=this._data,itemIds=(0,_keys2[\"default\"])(data),min=null,minField=null,i,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var itemField=item[field];if(itemField!=null&&(!min||itemField<minField)){min=item;minField=itemField}}return min};DataSet.prototype.distinct=function(field){var data=this._data;var itemIds=(0,_keys2[\"default\"])(data);var values=[];var fieldType=this._options.type&&this._options.type[field]||null;var count=0;var i,j,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var value=item[field];var exists=false;for(j=0;j<count;j++){if(values[j]==value){exists=true;break}}if(!exists&&value!==undefined){values[count]=value;count++}}if(fieldType){for(i=0,len=values.length;i<len;i++){values[i]=util.convert(values[i],fieldType)}}return values};DataSet.prototype._addItem=function(item){var id=item[this._fieldId];if(id!=undefined){if(this._data[id]){throw new Error(\"Cannot add item: item with id \"+id+\" already exists\")}}else{id=util.randomUUID();item[this._fieldId]=id}var d={},fields=(0,_keys2[\"default\"])(item),i,len;for(i=0,len=fields.length;i<len;i++){var field=fields[i];var fieldType=this._type[field];d[field]=util.convert(item[field],fieldType)}this._data[id]=d;this.length++;return id};DataSet.prototype._getItem=function(id,types){var field,value,i,len;var raw=this._data[id];if(!raw){return null}var converted={},fields=(0,_keys2[\"default\"])(raw);if(types){for(i=0,len=fields.length;i<len;i++){field=fields[i];value=raw[field];converted[field]=util.convert(value,types[field])}}else{for(i=0,len=fields.length;i<len;i++){field=fields[i];value=raw[field];converted[field]=value}}if(!converted[this._fieldId]){converted[this._fieldId]=raw.id}return converted};DataSet.prototype._updateItem=function(item){var id=item[this._fieldId];if(id==undefined){throw new Error(\"Cannot update item: item has no id (item: \"+(0,_stringify2[\"default\"])(item)+\")\")}var d=this._data[id];if(!d){throw new Error(\"Cannot update item: no item with id \"+id+\" found\")}var fields=(0,_keys2[\"default\"])(item);for(var i=0,len=fields.length;i<len;i++){var field=fields[i];var fieldType=this._type[field];d[field]=util.convert(item[field],fieldType)}return id};module.exports=DataSet},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);function DataView(data,options){this._data=null;this._ids={};this.length=0;this._options=options||{};this._fieldId=\"id\";this._subscribers={};var me=this;this.listener=function(){me._onEvent.apply(me,arguments)};this.setData(data)}DataView.prototype.setData=function(data){var ids,id,i,len,items;if(this._data){if(this._data.off){this._data.off(\"*\",this.listener)}ids=this._data.getIds({filter:this._options&&this._options.filter});items=[];for(i=0,len=ids.length;i<len;i++){items.push(this._data._data[ids[i]])}this._ids={};this.length=0;this._trigger(\"remove\",{items:ids,oldData:items})}this._data=data;if(this._data){this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||\"id\";ids=this._data.getIds({filter:this._options&&this._options.filter});for(i=0,len=ids.length;i<len;i++){id=ids[i];this._ids[id]=true}this.length=ids.length;this._trigger(\"add\",{items:ids});if(this._data.on){this._data.on(\"*\",this.listener)}}};DataView.prototype.refresh=function(){var id,i,len;var ids=this._data.getIds({filter:this._options&&this._options.filter}),oldIds=(0,_keys2[\"default\"])(this._ids),newIds={},addedIds=[],removedIds=[],removedItems=[];for(i=0,len=ids.length;i<len;i++){id=ids[i];newIds[id]=true;if(!this._ids[id]){addedIds.push(id);this._ids[id]=true}}for(i=0,len=oldIds.length;i<len;i++){id=oldIds[i];if(!newIds[id]){removedIds.push(id);removedItems.push(this._data._data[id]);delete this._ids[id]}}this.length+=addedIds.length-removedIds.length;if(addedIds.length){this._trigger(\"add\",{items:addedIds})}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems})}};DataView.prototype.get=function(args){var me=this;var ids,options,data;var firstType=util.getType(arguments[0]);if(firstType==\"String\"||firstType==\"Number\"||firstType==\"Array\"){ids=arguments[0];options=arguments[1];data=arguments[2]}else{options=arguments[0];data=arguments[1]}var viewOptions=util.extend({},this._options,options);if(this._options.filter&&options&&options.filter){viewOptions.filter=function(item){return me._options.filter(item)&&options.filter(item)}}var getArguments=[];if(ids!=undefined){getArguments.push(ids)}getArguments.push(viewOptions);getArguments.push(data);return this._data&&this._data.get.apply(this._data,getArguments)};DataView.prototype.getIds=function(options){var ids;if(this._data){var defaultFilter=this._options.filter;var filter;if(options&&options.filter){if(defaultFilter){filter=function filter(item){return defaultFilter(item)&&options.filter(item)}}else{filter=options.filter}}else{filter=defaultFilter}ids=this._data.getIds({filter:filter,order:options&&options.order})}else{ids=[]}return ids};DataView.prototype.map=function(callback,options){var mappedItems=[];if(this._data){var defaultFilter=this._options.filter;var filter;if(options&&options.filter){if(defaultFilter){filter=function filter(item){return defaultFilter(item)&&options.filter(item)}}else{filter=options.filter}}else{filter=defaultFilter}mappedItems=this._data.map(callback,{filter:filter,order:options&&options.order})}else{mappedItems=[]}return mappedItems};DataView.prototype.getDataSet=function(){var dataSet=this;while(dataSet instanceof DataView){dataSet=dataSet._data}return dataSet||null};DataView.prototype._onEvent=function(event,params,senderId){var i,len,id,item;var ids=params&¶ms.items;var addedIds=[],updatedIds=[],removedIds=[],oldItems=[],updatedItems=[],removedItems=[];if(ids&&this._data){switch(event){case\"add\":for(i=0,len=ids.length;i<len;i++){id=ids[i];item=this.get(id);if(item){this._ids[id]=true;addedIds.push(id)}}break;case\"update\":for(i=0,len=ids.length;i<len;i++){id=ids[i];item=this.get(id);if(item){if(this._ids[id]){updatedIds.push(id);updatedItems.push(params.data[i]);oldItems.push(params.oldData[i])}else{this._ids[id]=true;addedIds.push(id)}}else{if(this._ids[id]){delete this._ids[id];removedIds.push(id);removedItems.push(params.oldData[i])}else{}}}break;case\"remove\":for(i=0,len=ids.length;i<len;i++){id=ids[i];if(this._ids[id]){delete this._ids[id];removedIds.push(id);removedItems.push(params.oldData[i])}}break}this.length+=addedIds.length-removedIds.length;if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}if(updatedIds.length){this._trigger(\"update\",{items:updatedIds,oldData:oldItems,data:updatedItems},senderId)}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems},senderId)}}};DataView.prototype.on=DataSet.prototype.on;DataView.prototype.off=DataSet.prototype.off;DataView.prototype._trigger=DataSet.prototype._trigger;DataView.prototype.subscribe=DataView.prototype.on;DataView.prototype.unsubscribe=DataView.prototype.off;module.exports=DataView},function(module,exports,__webpack_require__){var store=__webpack_require__(57)(\"wks\");var uid=__webpack_require__(40);var Symbol=__webpack_require__(18).Symbol;var USE_SYMBOL=typeof Symbol==\"function\";var $exports=module.exports=function(name){return store[name]||(store[name]=USE_SYMBOL&&Symbol[name]||(USE_SYMBOL?Symbol:uid)(\"Symbol.\"+name))};$exports.store=store},function(module,exports,__webpack_require__){\"use strict\";exports.prepareElements=function(JSONcontainer){for(var elementType in JSONcontainer){if(JSONcontainer.hasOwnProperty(elementType)){JSONcontainer[elementType].redundant=JSONcontainer[elementType].used;JSONcontainer[elementType].used=[]}}};exports.cleanupElements=function(JSONcontainer){for(var elementType in JSONcontainer){if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant){for(var i=0;i<JSONcontainer[elementType].redundant.length;i++){JSONcontainer[elementType].redundant[i].parentNode.removeChild(JSONcontainer[elementType].redundant[i])}JSONcontainer[elementType].redundant=[]}}}};exports.resetElements=function(JSONcontainer){exports.prepareElements(JSONcontainer);exports.cleanupElements(JSONcontainer);exports.prepareElements(JSONcontainer)};exports.getSVGElement=function(elementType,JSONcontainer,svgContainer){var element;if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant.length>0){element=JSONcontainer[elementType].redundant[0];JSONcontainer[elementType].redundant.shift()}else{element=document.createElementNS(\"http://www.w3.org/2000/svg\",elementType);svgContainer.appendChild(element)}}else{element=document.createElementNS(\"http://www.w3.org/2000/svg\",elementType);JSONcontainer[elementType]={used:[],redundant:[]};svgContainer.appendChild(element)}JSONcontainer[elementType].used.push(element);return element};exports.getDOMElement=function(elementType,JSONcontainer,DOMContainer,insertBefore){var element;if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant.length>0){element=JSONcontainer[elementType].redundant[0];JSONcontainer[elementType].redundant.shift()}else{element=document.createElement(elementType);if(insertBefore!==undefined){DOMContainer.insertBefore(element,insertBefore)}else{DOMContainer.appendChild(element)}}}else{element=document.createElement(elementType);JSONcontainer[elementType]={used:[],redundant:[]};if(insertBefore!==undefined){DOMContainer.insertBefore(element,insertBefore)}else{DOMContainer.appendChild(element)}}JSONcontainer[elementType].used.push(element);return element};exports.drawPoint=function(x,y,groupTemplate,JSONcontainer,svgContainer,labelObj){var point;if(groupTemplate.style==\"circle\"){point=exports.getSVGElement(\"circle\",JSONcontainer,svgContainer);point.setAttributeNS(null,\"cx\",x);point.setAttributeNS(null,\"cy\",y);point.setAttributeNS(null,\"r\",.5*groupTemplate.size)}else{point=exports.getSVGElement(\"rect\",JSONcontainer,svgContainer);point.setAttributeNS(null,\"x\",x-.5*groupTemplate.size);point.setAttributeNS(null,\"y\",y-.5*groupTemplate.size);point.setAttributeNS(null,\"width\",groupTemplate.size);point.setAttributeNS(null,\"height\",groupTemplate.size)}if(groupTemplate.styles!==undefined){point.setAttributeNS(null,\"style\",groupTemplate.styles)}point.setAttributeNS(null,\"class\",groupTemplate.className+\" vis-point\");if(labelObj){var label=exports.getSVGElement(\"text\",JSONcontainer,svgContainer);if(labelObj.xOffset){x=x+labelObj.xOffset}if(labelObj.yOffset){y=y+labelObj.yOffset}if(labelObj.content){label.textContent=labelObj.content}if(labelObj.className){label.setAttributeNS(null,\"class\",labelObj.className+\" vis-label\")}label.setAttributeNS(null,\"x\",x);label.setAttributeNS(null,\"y\",y)}return point};exports.drawBar=function(x,y,width,height,className,JSONcontainer,svgContainer,style){if(height!=0){if(height<0){height*=-1;y-=height}var rect=exports.getSVGElement(\"rect\",JSONcontainer,svgContainer);rect.setAttributeNS(null,\"x\",x-.5*width);rect.setAttributeNS(null,\"y\",y);rect.setAttributeNS(null,\"width\",width);rect.setAttributeNS(null,\"height\",height);rect.setAttributeNS(null,\"class\",className);if(style){rect.setAttributeNS(null,\"style\",style)}}}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.printStyle=undefined;var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var errorFound=false;var allOptions=void 0;var printStyle=\"background: #FFeeee; color: #dd0000\";var Validator=function(){function Validator(){(0,_classCallCheck3[\"default\"])(this,Validator)}(0,_createClass3[\"default\"])(Validator,null,[{key:\"validate\",value:function validate(options,referenceOptions,subObject){errorFound=false;allOptions=referenceOptions;var usedOptions=referenceOptions;if(subObject!==undefined){usedOptions=referenceOptions[subObject]}Validator.parse(options,usedOptions,[]);return errorFound}},{key:\"parse\",value:function parse(options,referenceOptions,path){for(var option in options){if(options.hasOwnProperty(option)){Validator.check(option,options,referenceOptions,path)}}}},{key:\"check\",value:function check(option,options,referenceOptions,path){if(referenceOptions[option]===undefined&&referenceOptions.__any__===undefined){Validator.getSuggestion(option,referenceOptions,path);return}var referenceOption=option;var is_object=true;if(referenceOptions[option]===undefined&&referenceOptions.__any__!==undefined){referenceOption=\"__any__\";is_object=Validator.getType(options[option])===\"object\"}else{}var refOptionObj=referenceOptions[referenceOption];if(is_object&&refOptionObj.__type__!==undefined){refOptionObj=refOptionObj.__type__}Validator.checkFields(option,options,referenceOptions,referenceOption,refOptionObj,path)}},{key:\"checkFields\",value:function checkFields(option,options,referenceOptions,referenceOption,refOptionObj,path){var log=function log(message){console.log(\"%c\"+message+Validator.printLocation(path,option),printStyle)};var optionType=Validator.getType(options[option]);var refOptionType=refOptionObj[optionType];if(refOptionType!==undefined){if(Validator.getType(refOptionType)===\"array\"&&refOptionType.indexOf(options[option])===-1){log('Invalid option detected in \"'+option+'\".'+\" Allowed values are:\"+Validator.print(refOptionType)+' not \"'+options[option]+'\". ');errorFound=true}else if(optionType===\"object\"&&referenceOption!==\"__any__\"){path=util.copyAndExtendArray(path,option);Validator.parse(options[option],referenceOptions[referenceOption],path)}}else if(refOptionObj[\"any\"]===undefined){log('Invalid type received for \"'+option+'\". Expected: '+Validator.print((0,_keys2[\"default\"])(refOptionObj))+\". Received [\"+optionType+'] \"'+options[option]+'\"');errorFound=true}}},{key:\"getType\",value:function getType(object){var type=typeof object===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(object);if(type===\"object\"){if(object===null){return\"null\"}if(object instanceof Boolean){return\"boolean\"}if(object instanceof Number){return\"number\"}if(object instanceof String){return\"string\"}if(Array.isArray(object)){return\"array\"}if(object instanceof Date){return\"date\"}if(object.nodeType!==undefined){return\"dom\"}if(object._isAMomentObject===true){return\"moment\"}return\"object\"}else if(type===\"number\"){return\"number\"}else if(type===\"boolean\"){return\"boolean\"}else if(type===\"string\"){return\"string\"}else if(type===undefined){return\"undefined\"}return type}},{key:\"getSuggestion\",value:function getSuggestion(option,options,path){var localSearch=Validator.findInOptions(option,options,path,false);var globalSearch=Validator.findInOptions(option,allOptions,[],true);var localSearchThreshold=8;var globalSearchThreshold=4;var msg=void 0;if(localSearch.indexMatch!==undefined){msg=\" in \"+Validator.printLocation(localSearch.path,option,\"\")+'Perhaps it was incomplete? Did you mean: \"'+localSearch.indexMatch+'\"?\\n\\n'}else if(globalSearch.distance<=globalSearchThreshold&&localSearch.distance>globalSearch.distance){msg=\" in \"+Validator.printLocation(localSearch.path,option,\"\")+\"Perhaps it was misplaced? Matching option found at: \"+Validator.printLocation(globalSearch.path,globalSearch.closestMatch,\"\")}else if(localSearch.distance<=localSearchThreshold){msg='. Did you mean \"'+localSearch.closestMatch+'\"?'+Validator.printLocation(localSearch.path,option)}else{msg=\". Did you mean one of these: \"+Validator.print((0,_keys2[\"default\"])(options))+Validator.printLocation(path,option)}console.log('%cUnknown option detected: \"'+option+'\"'+msg,printStyle);errorFound=true}},{key:\"findInOptions\",value:function findInOptions(option,options,path){var recursive=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var min=1e9;var closestMatch=\"\";var closestMatchPath=[];var lowerCaseOption=option.toLowerCase();var indexMatch=undefined;for(var op in options){var distance=void 0;if(options[op].__type__!==undefined&&recursive===true){var result=Validator.findInOptions(option,options[op],util.copyAndExtendArray(path,op));if(min>result.distance){closestMatch=result.closestMatch;closestMatchPath=result.path;min=result.distance;indexMatch=result.indexMatch}}else{if(op.toLowerCase().indexOf(lowerCaseOption)!==-1){indexMatch=op}distance=Validator.levenshteinDistance(option,op);if(min>distance){closestMatch=op;closestMatchPath=util.copyArray(path);min=distance}}}return{closestMatch:closestMatch,path:closestMatchPath,distance:min,indexMatch:indexMatch}}},{key:\"printLocation\",value:function printLocation(path,option){var prefix=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"Problem value found at: \\n\";var str=\"\\n\\n\"+prefix+\"options = {\\n\";for(var i=0;i<path.length;i++){for(var j=0;j<i+1;j++){str+=\" \"}str+=path[i]+\": {\\n\"}for(var _j=0;_j<path.length+1;_j++){str+=\" \"}str+=option+\"\\n\";for(var _i=0;_i<path.length+1;_i++){for(var _j2=0;_j2<path.length-_i;_j2++){str+=\" \"}str+=\"}\\n\"}return str+\"\\n\\n\"}},{key:\"print\",value:function print(options){return(0,_stringify2[\"default\"])(options).replace(/(\\\")|(\\[)|(\\])|(,\"__type__\")/g,\"\").replace(/(\\,)/g,\", \")}},{key:\"levenshteinDistance\",value:function levenshteinDistance(a,b){if(a.length===0)return b.length;if(b.length===0)return a.length;var matrix=[];var i;for(i=0;i<=b.length;i++){matrix[i]=[i]}var j;for(j=0;j<=a.length;j++){matrix[0][j]=j}for(i=1;i<=b.length;i++){for(j=1;j<=a.length;j++){if(b.charAt(i-1)==a.charAt(j-1)){matrix[i][j]=matrix[i-1][j-1]}else{matrix[i][j]=Math.min(matrix[i-1][j-1]+1,Math.min(matrix[i][j-1]+1,matrix[i-1][j]+1))}}}return matrix[b.length][a.length]}}]);return Validator}();exports[\"default\"]=Validator;exports.printStyle=printStyle},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);function Component(body,options){this.options=null;this.props=null}Component.prototype.setOptions=function(options){if(options){util.extend(this.options,options)}};Component.prototype.redraw=function(){return false};Component.prototype.destroy=function(){};Component.prototype._isResized=function(){var resized=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;this.props._previousWidth=this.props.width;this.props._previousHeight=this.props.height;return resized};module.exports=Component},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var core=__webpack_require__(7);var ctx=__webpack_require__(80);var hide=__webpack_require__(26);var PROTOTYPE=\"prototype\";var $export=function(type,name,source){var IS_FORCED=type&$export.F;var IS_GLOBAL=type&$export.G;var IS_STATIC=type&$export.S;var IS_PROTO=type&$export.P;var IS_BIND=type&$export.B;var IS_WRAP=type&$export.W;var exports=IS_GLOBAL?core:core[name]||(core[name]={});var expProto=exports[PROTOTYPE];var target=IS_GLOBAL?global:IS_STATIC?global[name]:(global[name]||{})[PROTOTYPE];var key,own,out;if(IS_GLOBAL)source=name;for(key in source){own=!IS_FORCED&&target&&target[key]!==undefined;if(own&&key in exports)continue;out=own?target[key]:source[key];exports[key]=IS_GLOBAL&&typeof target[key]!=\"function\"?source[key]:IS_BIND&&own?ctx(out,global):IS_WRAP&&target[key]==out?function(C){var F=function(a,b,c){if(this instanceof C){switch(arguments.length){case 0:return new C;case 1:return new C(a);case 2:return new C(a,b)}return new C(a,b,c)}return C.apply(this,arguments)};F[PROTOTYPE]=C[PROTOTYPE];return F}(out):IS_PROTO&&typeof out==\"function\"?ctx(Function.call,out):out;if(IS_PROTO){(exports.virtual||(exports.virtual={}))[key]=out;if(type&$export.R&&expProto&&!expProto[key])hide(expProto,key,out)}}};$export.F=1;$export.G=2;$export.S=4;$export.P=8;$export.B=16;$export.W=32;$export.U=64;$export.R=128;module.exports=$export},function(module,exports){var global=module.exports=typeof window!=\"undefined\"&&window.Math==Math?window:typeof self!=\"undefined\"&&self.Math==Math?self:Function(\"return this\")();if(typeof __g==\"number\")__g=global},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(160),__esModule:true}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var IE8_DOM_DEFINE=__webpack_require__(81);var toPrimitive=__webpack_require__(53);var dP=Object.defineProperty;exports.f=__webpack_require__(21)?Object.defineProperty:function defineProperty(O,P,Attributes){anObject(O);P=toPrimitive(P,true);anObject(Attributes);if(IE8_DOM_DEFINE)try{return dP(O,P,Attributes)}catch(e){}if(\"get\"in Attributes||\"set\"in Attributes)throw TypeError(\"Accessors not supported!\");if(\"value\"in Attributes)O[P]=Attributes.value;return O}},function(module,exports,__webpack_require__){module.exports=!__webpack_require__(28)(function(){return Object.defineProperty({},\"a\",{get:function(){return 7}}).a!=7})},function(module,exports){var hasOwnProperty={}.hasOwnProperty;module.exports=function(it,key){return hasOwnProperty.call(it,key)}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var NodeBase=function(){function NodeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,NodeBase);this.body=body;this.labelModule=labelModule;this.setOptions(options);this.top=undefined;this.left=undefined;this.height=undefined;this.width=undefined;this.radius=undefined;this.margin=undefined;this.refreshNeeded=true;this.boundingBox={top:0,left:0,right:0,bottom:0}}(0,_createClass3[\"default\"])(NodeBase,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"_setMargins\",value:function _setMargins(labelModule){this.margin={};if(this.options.margin){if((0,_typeof3[\"default\"])(this.options.margin)==\"object\"){this.margin.top=this.options.margin.top;this.margin.right=this.options.margin.right;this.margin.bottom=this.options.margin.bottom;this.margin.left=this.options.margin.left}else{this.margin.top=this.options.margin;this.margin.right=this.options.margin;this.margin.bottom=this.options.margin;this.margin.left=this.options.margin}}labelModule.adjustSizes(this.margin)}},{key:\"_distanceToBorder\",value:function _distanceToBorder(ctx,angle){var borderWidth=this.options.borderWidth;this.resize(ctx);return Math.min(Math.abs(this.width/2/Math.cos(angle)),Math.abs(this.height/2/Math.sin(angle)))+borderWidth}},{key:\"enableShadow\",value:function enableShadow(ctx,values){if(values.shadow){ctx.shadowColor=values.shadowColor;ctx.shadowBlur=values.shadowSize;ctx.shadowOffsetX=values.shadowX;ctx.shadowOffsetY=values.shadowY}}},{key:\"disableShadow\",value:function disableShadow(ctx,values){if(values.shadow){ctx.shadowColor=\"rgba(0,0,0,0)\";ctx.shadowBlur=0;ctx.shadowOffsetX=0;ctx.shadowOffsetY=0}}},{key:\"enableBorderDashes\",value:function enableBorderDashes(ctx,values){if(values.borderDashes!==false){if(ctx.setLineDash!==undefined){var dashes=values.borderDashes;if(dashes===true){dashes=[5,15]}ctx.setLineDash(dashes)}else{console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\");this.options.shapeProperties.borderDashes=false;values.borderDashes=false}}}},{key:\"disableBorderDashes\",value:function disableBorderDashes(ctx,values){if(values.borderDashes!==false){if(ctx.setLineDash!==undefined){ctx.setLineDash([0])}else{console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\");this.options.shapeProperties.borderDashes=false;values.borderDashes=false}}}},{key:\"needsRefresh\",value:function needsRefresh(selected,hover){if(this.refreshNeeded===true){this.refreshNeeded=false;return true}return this.width===undefined||this.labelModule.differentState(selected,hover)}},{key:\"initContextForDraw\",value:function initContextForDraw(ctx,values){var borderWidth=values.borderWidth/this.body.view.scale;ctx.lineWidth=Math.min(this.width,borderWidth);ctx.strokeStyle=values.borderColor;ctx.fillStyle=values.color}},{key:\"performStroke\",value:function performStroke(ctx,values){var borderWidth=values.borderWidth/this.body.view.scale;ctx.save();if(borderWidth>0){this.enableBorderDashes(ctx,values);ctx.stroke();this.disableBorderDashes(ctx,values)}ctx.restore()}},{key:\"performFill\",value:function performFill(ctx,values){this.enableShadow(ctx,values);ctx.fill();this.disableShadow(ctx,values);this.performStroke(ctx,values)}},{key:\"_addBoundingBoxMargin\",value:function _addBoundingBoxMargin(margin){this.boundingBox.left-=margin;this.boundingBox.top-=margin;this.boundingBox.bottom+=margin;this.boundingBox.right+=margin}},{key:\"_updateBoundingBox\",value:function _updateBoundingBox(x,y,ctx,selected,hover){if(ctx!==undefined){this.resize(ctx,selected,hover)}this.left=x-this.width/2;this.top=y-this.height/2;this.boundingBox.left=this.left;this.boundingBox.top=this.top;this.boundingBox.bottom=this.top+this.height;this.boundingBox.right=this.left+this.width}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y,ctx,selected,hover){this._updateBoundingBox(x,y,ctx,selected,hover)}},{key:\"getDimensionsFromLabel\",value:function getDimensionsFromLabel(ctx,selected,hover){this.textSize=this.labelModule.getTextSize(ctx,selected,hover);var width=this.textSize.width;var height=this.textSize.height;var DEFAULT_SIZE=14;if(width===0){width=DEFAULT_SIZE;height=DEFAULT_SIZE}return{width:width,height:height}}}]);return NodeBase}();exports[\"default\"]=NodeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2)\n;var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ShapeBase=function(_NodeBase){(0,_inherits3[\"default\"])(ShapeBase,_NodeBase);function ShapeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,ShapeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(ShapeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(ShapeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(ShapeBase,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var values=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{size:this.options.size};if(this.needsRefresh(selected,hover)){this.labelModule.getTextSize(ctx,selected,hover);var size=2*values.size;this.width=size;this.height=size;this.radius=.5*this.width}}},{key:\"_drawShape\",value:function _drawShape(ctx,shape,sizeMultiplier,x,y,selected,hover,values){this.resize(ctx,selected,hover,values);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx[shape](x,y,values.size);this.performFill(ctx,values);if(this.options.label!==undefined){this.labelModule.calculateLabelSize(ctx,selected,hover,x,y,\"hanging\");var yLabel=y+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(ctx,x,yLabel,selected,hover,\"hanging\")}this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size;if(this.options.label!==undefined&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height)}}}]);return ShapeBase}(_NodeBase3[\"default\"]);exports[\"default\"]=ShapeBase},function(module,exports,__webpack_require__){var IObject=__webpack_require__(78);var defined=__webpack_require__(51);module.exports=function(it){return IObject(defined(it))}},function(module,exports,__webpack_require__){var dP=__webpack_require__(20);var createDesc=__webpack_require__(39);module.exports=__webpack_require__(21)?function(object,key,value){return dP.f(object,key,createDesc(1,value))}:function(object,key,value){object[key]=value;return object}},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);module.exports=function(it){if(!isObject(it))throw TypeError(it+\" is not an object!\");return it}},function(module,exports){module.exports=function(exec){try{return!!exec()}catch(e){return true}}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(138),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _isIterable2=__webpack_require__(188);var _isIterable3=_interopRequireDefault(_isIterable2);var _getIterator2=__webpack_require__(77);var _getIterator3=_interopRequireDefault(_getIterator2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=(0,_getIterator3.default)(arr),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i[\"return\"])_i[\"return\"]()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr)){return arr}else if((0,_isIterable3.default)(Object(arr))){return sliceIterator(arr,i)}else{throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}}()},function(module,exports){module.exports={}},function(module,exports){module.exports=function(it){return typeof it===\"object\"?it!==null:typeof it===\"function\"}},function(module,exports,__webpack_require__){var $keys=__webpack_require__(84);var enumBugKeys=__webpack_require__(58);module.exports=Object.keys||function keys(O){return $keys(O,enumBugKeys)}},function(module,exports,__webpack_require__){\"use strict\";function Point3d(x,y,z){this.x=x!==undefined?x:0;this.y=y!==undefined?y:0;this.z=z!==undefined?z:0}Point3d.subtract=function(a,b){var sub=new Point3d;sub.x=a.x-b.x;sub.y=a.y-b.y;sub.z=a.z-b.z;return sub};Point3d.add=function(a,b){var sum=new Point3d;sum.x=a.x+b.x;sum.y=a.y+b.y;sum.z=a.z+b.z;return sum};Point3d.avg=function(a,b){return new Point3d((a.x+b.x)/2,(a.y+b.y)/2,(a.z+b.z)/2)};Point3d.crossProduct=function(a,b){var crossproduct=new Point3d;crossproduct.x=a.y*b.z-a.z*b.y;crossproduct.y=a.z*b.x-a.x*b.z;crossproduct.z=a.x*b.y-a.y*b.x;return crossproduct};Point3d.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)};module.exports=Point3d},function(module,exports,__webpack_require__){\"use strict\";var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(root,factory){if(true){!(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,__WEBPACK_AMD_DEFINE_RESULT__=typeof __WEBPACK_AMD_DEFINE_FACTORY__===\"function\"?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof exports===\"object\"){module.exports=factory()}else{root.keycharm=factory()}})(this,function(){function keycharm(options){var preventDefault=options&&options.preventDefault||false;var container=options&&options.container||window;var _exportFunctions={};var _bound={keydown:{},keyup:{}};var _keys={};var i;for(i=97;i<=122;i++){_keys[String.fromCharCode(i)]={code:65+(i-97),shift:false}}for(i=65;i<=90;i++){_keys[String.fromCharCode(i)]={code:i,shift:true}}for(i=0;i<=9;i++){_keys[\"\"+i]={code:48+i,shift:false}}for(i=1;i<=12;i++){_keys[\"F\"+i]={code:111+i,shift:false}}for(i=0;i<=9;i++){_keys[\"num\"+i]={code:96+i,shift:false}}_keys[\"num*\"]={code:106,shift:false};_keys[\"num+\"]={code:107,shift:false};_keys[\"num-\"]={code:109,shift:false};_keys[\"num/\"]={code:111,shift:false};_keys[\"num.\"]={code:110,shift:false};_keys[\"left\"]={code:37,shift:false};_keys[\"up\"]={code:38,shift:false};_keys[\"right\"]={code:39,shift:false};_keys[\"down\"]={code:40,shift:false};_keys[\"space\"]={code:32,shift:false};_keys[\"enter\"]={code:13,shift:false};_keys[\"shift\"]={code:16,shift:undefined};_keys[\"esc\"]={code:27,shift:false};_keys[\"backspace\"]={code:8,shift:false};_keys[\"tab\"]={code:9,shift:false};_keys[\"ctrl\"]={code:17,shift:false};_keys[\"alt\"]={code:18,shift:false};_keys[\"delete\"]={code:46,shift:false};_keys[\"pageup\"]={code:33,shift:false};_keys[\"pagedown\"]={code:34,shift:false};_keys[\"=\"]={code:187,shift:false};_keys[\"-\"]={code:189,shift:false};_keys[\"]\"]={code:221,shift:false};_keys[\"[\"]={code:219,shift:false};var down=function(event){handleEvent(event,\"keydown\")};var up=function(event){handleEvent(event,\"keyup\")};var handleEvent=function(event,type){if(_bound[type][event.keyCode]!==undefined){var bound=_bound[type][event.keyCode];for(var i=0;i<bound.length;i++){if(bound[i].shift===undefined){bound[i].fn(event)}else if(bound[i].shift==true&&event.shiftKey==true){bound[i].fn(event)}else if(bound[i].shift==false&&event.shiftKey==false){bound[i].fn(event)}}if(preventDefault==true){event.preventDefault()}}};_exportFunctions.bind=function(key,callback,type){if(type===undefined){type=\"keydown\"}if(_keys[key]===undefined){throw new Error(\"unsupported key: \"+key)}if(_bound[type][_keys[key].code]===undefined){_bound[type][_keys[key].code]=[]}_bound[type][_keys[key].code].push({fn:callback,shift:_keys[key].shift})};_exportFunctions.bindAll=function(callback,type){if(type===undefined){type=\"keydown\"}for(var key in _keys){if(_keys.hasOwnProperty(key)){_exportFunctions.bind(key,callback,type)}}};_exportFunctions.getKey=function(event){for(var key in _keys){if(_keys.hasOwnProperty(key)){if(event.shiftKey==true&&_keys[key].shift==true&&event.keyCode==_keys[key].code){return key}else if(event.shiftKey==false&&_keys[key].shift==false&&event.keyCode==_keys[key].code){return key}else if(event.keyCode==_keys[key].code&&key==\"shift\"){return key}}}return\"unknown key, currently not supported\"};_exportFunctions.unbind=function(key,callback,type){if(type===undefined){type=\"keydown\"}if(_keys[key]===undefined){throw new Error(\"unsupported key: \"+key)}if(callback!==undefined){var newBindings=[];var bound=_bound[type][_keys[key].code];if(bound!==undefined){for(var i=0;i<bound.length;i++){if(!(bound[i].fn==callback&&bound[i].shift==_keys[key].shift)){newBindings.push(_bound[type][_keys[key].code][i])}}}_bound[type][_keys[key].code]=newBindings}else{_bound[type][_keys[key].code]=[]}};_exportFunctions.reset=function(){_bound={keydown:{},keyup:{}}};_exportFunctions.destroy=function(){_bound={keydown:{},keyup:{}};container.removeEventListener(\"keydown\",down,true);container.removeEventListener(\"keyup\",up,true)};container.addEventListener(\"keydown\",down,true);container.addEventListener(\"keyup\",up,true);return _exportFunctions}return keycharm})},function(module,exports,__webpack_require__){\"use strict\";exports.convertHiddenOptions=function(moment,body,hiddenDates){if(hiddenDates&&!Array.isArray(hiddenDates)){return exports.convertHiddenOptions(moment,body,[hiddenDates])}body.hiddenDates=[];if(hiddenDates){if(Array.isArray(hiddenDates)==true){for(var i=0;i<hiddenDates.length;i++){if(hiddenDates[i].repeat===undefined){var dateItem={};dateItem.start=moment(hiddenDates[i].start).toDate().valueOf();dateItem.end=moment(hiddenDates[i].end).toDate().valueOf();body.hiddenDates.push(dateItem)}}body.hiddenDates.sort(function(a,b){return a.start-b.start})}}};exports.updateHiddenDates=function(moment,body,hiddenDates){if(hiddenDates&&!Array.isArray(hiddenDates)){return exports.updateHiddenDates(moment,body,[hiddenDates])}if(hiddenDates&&body.domProps.centerContainer.width!==undefined){exports.convertHiddenOptions(moment,body,hiddenDates);var start=moment(body.range.start);var end=moment(body.range.end);var totalRange=body.range.end-body.range.start;var pixelTime=totalRange/body.domProps.centerContainer.width;for(var i=0;i<hiddenDates.length;i++){if(hiddenDates[i].repeat!==undefined){var startDate=moment(hiddenDates[i].start);var endDate=moment(hiddenDates[i].end);if(startDate._d==\"Invalid Date\"){throw new Error(\"Supplied start date is not valid: \"+hiddenDates[i].start)}if(endDate._d==\"Invalid Date\"){throw new Error(\"Supplied end date is not valid: \"+hiddenDates[i].end)}var duration=endDate-startDate;if(duration>=4*pixelTime){var offset=0;var runUntil=end.clone();switch(hiddenDates[i].repeat){case\"daily\":if(startDate.day()!=endDate.day()){offset=1}startDate.dayOfYear(start.dayOfYear());startDate.year(start.year());startDate.subtract(7,\"days\");endDate.dayOfYear(start.dayOfYear());endDate.year(start.year());endDate.subtract(7-offset,\"days\");runUntil.add(1,\"weeks\");break;case\"weekly\":var dayOffset=endDate.diff(startDate,\"days\");var day=startDate.day();startDate.date(start.date());startDate.month(start.month());startDate.year(start.year());endDate=startDate.clone();startDate.day(day);endDate.day(day);endDate.add(dayOffset,\"days\");startDate.subtract(1,\"weeks\");endDate.subtract(1,\"weeks\");runUntil.add(1,\"weeks\");break;case\"monthly\":if(startDate.month()!=endDate.month()){offset=1}startDate.month(start.month());startDate.year(start.year());startDate.subtract(1,\"months\");endDate.month(start.month());endDate.year(start.year());endDate.subtract(1,\"months\");endDate.add(offset,\"months\");runUntil.add(1,\"months\");break;case\"yearly\":if(startDate.year()!=endDate.year()){offset=1}startDate.year(start.year());startDate.subtract(1,\"years\");endDate.year(start.year());endDate.subtract(1,\"years\");endDate.add(offset,\"years\");runUntil.add(1,\"years\");break;default:console.log(\"Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:\",hiddenDates[i].repeat);return}while(startDate<runUntil){body.hiddenDates.push({start:startDate.valueOf(),end:endDate.valueOf()});switch(hiddenDates[i].repeat){case\"daily\":startDate.add(1,\"days\");endDate.add(1,\"days\");break;case\"weekly\":startDate.add(1,\"weeks\");endDate.add(1,\"weeks\");break;case\"monthly\":startDate.add(1,\"months\");endDate.add(1,\"months\");break;case\"yearly\":startDate.add(1,\"y\");endDate.add(1,\"y\");break;default:console.log(\"Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:\",hiddenDates[i].repeat);return}}body.hiddenDates.push({start:startDate.valueOf(),end:endDate.valueOf()})}}}exports.removeDuplicates(body);var startHidden=exports.isHidden(body.range.start,body.hiddenDates);var endHidden=exports.isHidden(body.range.end,body.hiddenDates);var rangeStart=body.range.start;var rangeEnd=body.range.end;if(startHidden.hidden==true){rangeStart=body.range.startToFront==true?startHidden.startDate-1:startHidden.endDate+1}if(endHidden.hidden==true){rangeEnd=body.range.endToFront==true?endHidden.startDate-1:endHidden.endDate+1}if(startHidden.hidden==true||endHidden.hidden==true){body.range._applyRange(rangeStart,rangeEnd)}}};exports.removeDuplicates=function(body){var hiddenDates=body.hiddenDates;var safeDates=[];for(var i=0;i<hiddenDates.length;i++){for(var j=0;j<hiddenDates.length;j++){if(i!=j&&hiddenDates[j].remove!=true&&hiddenDates[i].remove!=true){if(hiddenDates[j].start>=hiddenDates[i].start&&hiddenDates[j].end<=hiddenDates[i].end){hiddenDates[j].remove=true}else if(hiddenDates[j].start>=hiddenDates[i].start&&hiddenDates[j].start<=hiddenDates[i].end){hiddenDates[i].end=hiddenDates[j].end;hiddenDates[j].remove=true}else if(hiddenDates[j].end>=hiddenDates[i].start&&hiddenDates[j].end<=hiddenDates[i].end){hiddenDates[i].start=hiddenDates[j].start;hiddenDates[j].remove=true}}}}for(i=0;i<hiddenDates.length;i++){if(hiddenDates[i].remove!==true){safeDates.push(hiddenDates[i])}}body.hiddenDates=safeDates;body.hiddenDates.sort(function(a,b){return a.start-b.start})};exports.printDates=function(dates){for(var i=0;i<dates.length;i++){console.log(i,new Date(dates[i].start),new Date(dates[i].end),dates[i].start,dates[i].end,dates[i].remove)}};exports.stepOverHiddenDates=function(moment,timeStep,previousTime){var stepInHidden=false;var currentValue=timeStep.current.valueOf();for(var i=0;i<timeStep.hiddenDates.length;i++){var startDate=timeStep.hiddenDates[i].start;var endDate=timeStep.hiddenDates[i].end;if(currentValue>=startDate&¤tValue<endDate){stepInHidden=true;break}}if(stepInHidden==true&¤tValue<timeStep._end.valueOf()&¤tValue!=previousTime){var prevValue=moment(previousTime);var newValue=moment(endDate);if(prevValue.year()!=newValue.year()){timeStep.switchedYear=true}else if(prevValue.month()!=newValue.month()){timeStep.switchedMonth=true}else if(prevValue.dayOfYear()!=newValue.dayOfYear()){timeStep.switchedDay=true}timeStep.current=newValue}};exports.toScreen=function(Core,time,width){var conversion;if(Core.body.hiddenDates.length==0){conversion=Core.range.conversion(width);return(time.valueOf()-conversion.offset)*conversion.scale}else{var hidden=exports.isHidden(time,Core.body.hiddenDates);if(hidden.hidden==true){time=hidden.startDate}var duration=exports.getHiddenDurationBetween(Core.body.hiddenDates,Core.range.start,Core.range.end);if(time<Core.range.start){conversion=Core.range.conversion(width,duration);var hiddenBeforeStart=exports.getHiddenDurationBeforeStart(Core.body.hiddenDates,time,conversion.offset);time=Core.options.moment(time).toDate().valueOf();time=time+hiddenBeforeStart;return-(conversion.offset-time.valueOf())*conversion.scale}else if(time>Core.range.end){var rangeAfterEnd={start:Core.range.start,end:time};time=exports.correctTimeForHidden(Core.options.moment,Core.body.hiddenDates,rangeAfterEnd,time);conversion=Core.range.conversion(width,duration);return(time.valueOf()-conversion.offset)*conversion.scale}else{time=exports.correctTimeForHidden(Core.options.moment,Core.body.hiddenDates,Core.range,time);conversion=Core.range.conversion(width,duration);return(time.valueOf()-conversion.offset)*conversion.scale}}};exports.toTime=function(Core,x,width){if(Core.body.hiddenDates.length==0){var conversion=Core.range.conversion(width);return new Date(x/conversion.scale+conversion.offset)}else{var hiddenDuration=exports.getHiddenDurationBetween(Core.body.hiddenDates,Core.range.start,Core.range.end);var totalDuration=Core.range.end-Core.range.start-hiddenDuration;var partialDuration=totalDuration*x/width;var accumulatedHiddenDuration=exports.getAccumulatedHiddenDuration(Core.body.hiddenDates,Core.range,partialDuration);return new Date(accumulatedHiddenDuration+partialDuration+Core.range.start)}};exports.getHiddenDurationBetween=function(hiddenDates,start,end){var duration=0;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=start&&endDate<end){duration+=endDate-startDate}}return duration};exports.getHiddenDurationBeforeStart=function(hiddenDates,start,end){var duration=0;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=start&&endDate<=end){duration+=endDate-startDate}}return duration};exports.correctTimeForHidden=function(moment,hiddenDates,range,time){time=moment(time).toDate().valueOf();time-=exports.getHiddenDurationBefore(moment,hiddenDates,range,time);return time};exports.getHiddenDurationBefore=function(moment,hiddenDates,range,time){var timeOffset=0;time=moment(time).toDate().valueOf();for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=range.start&&endDate<range.end){if(time>=endDate){timeOffset+=endDate-startDate}}}return timeOffset};exports.getAccumulatedHiddenDuration=function(hiddenDates,range,requiredDuration){var hiddenDuration=0;var duration=0;var previousPoint=range.start;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=range.start&&endDate<range.end){duration+=startDate-previousPoint;previousPoint=endDate;if(duration>=requiredDuration){break}else{hiddenDuration+=endDate-startDate}}}return hiddenDuration};exports.snapAwayFromHidden=function(hiddenDates,time,direction,correctionEnabled){var isHidden=exports.isHidden(time,hiddenDates);if(isHidden.hidden==true){if(direction<0){if(correctionEnabled==true){return isHidden.startDate-(isHidden.endDate-time)-1}else{return isHidden.startDate-1}}else{if(correctionEnabled==true){return isHidden.endDate+(time-isHidden.startDate)+1}else{return isHidden.endDate+1}}}else{return time}};exports.isHidden=function(time,hiddenDates){for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(time>=startDate&&time<endDate){return{hidden:true,startDate:startDate,endDate:endDate}}}return{hidden:false,startDate:startDate,endDate:endDate}}},function(module,exports,__webpack_require__){\"use strict\";exports.onTouch=function(hammer,callback){callback.inputHandler=function(event){if(event.isFirst){callback(event)}};hammer.on(\"hammer.input\",callback.inputHandler)};exports.onRelease=function(hammer,callback){callback.inputHandler=function(event){if(event.isFinal){callback(event)}};return hammer.on(\"hammer.input\",callback.inputHandler)};exports.offTouch=function(hammer,callback){hammer.off(\"hammer.input\",callback.inputHandler)};exports.offRelease=exports.offTouch;exports.disablePreventDefaultVertically=function(pinchRecognizer){var TOUCH_ACTION_PAN_Y=\"pan-y\";pinchRecognizer.getTouchAction=function(){return[TOUCH_ACTION_PAN_Y]};return pinchRecognizer}},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var moment=__webpack_require__(9);function Item(data,conversion,options){this.id=null;this.parent=null;this.data=data;this.dom=null;this.conversion=conversion||{};this.options=options||{};this.selected=false;this.displayed=false;this.groupShowing=true;this.dirty=true;this.top=null;this.right=null;this.left=null;this.width=null;this.height=null;this.editable=null;this._updateEditStatus()}Item.prototype.stack=true;Item.prototype.select=function(){this.selected=true;this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.unselect=function(){this.selected=false;this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.setData=function(data){var groupChanged=data.group!=undefined&&this.data.group!=data.group;if(groupChanged&&this.parent!=null){this.parent.itemSet._moveToGroup(this,data.group)}if(this.parent){this.parent.stackDirty=true}var subGroupChanged=data.subgroup!=undefined&&this.data.subgroup!=data.subgroup;if(subGroupChanged&&this.parent!=null){this.parent.changeSubgroup(this,this.data.subgroup,data.subgroup)}this.data=data;this._updateEditStatus();this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.setParent=function(parent){if(this.displayed){this.hide();this.parent=parent;if(this.parent){this.show()}}else{this.parent=parent}};Item.prototype.isVisible=function(range){return false};Item.prototype.show=function(){return false};Item.prototype.hide=function(){return false};Item.prototype.redraw=function(){};Item.prototype.repositionX=function(){};Item.prototype.repositionY=function(){};Item.prototype._repaintDragCenter=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragCenter){var me=this;var dragCenter=document.createElement(\"div\");dragCenter.className=\"vis-drag-center\";dragCenter.dragCenterItem=this;var hammer=new Hammer(dragCenter);hammer.on(\"tap\",function(event){me.parent.itemSet.body.emitter.emit(\"click\",{event:event,item:me.id})});hammer.on(\"doubletap\",function(event){event.stopPropagation();me.parent.itemSet._onUpdateItem(me);me.parent.itemSet.body.emitter.emit(\"doubleClick\",{event:event,item:me.id})});if(this.dom.box){if(this.dom.dragLeft){this.dom.box.insertBefore(dragCenter,this.dom.dragLeft)}else{this.dom.box.appendChild(dragCenter)}}else if(this.dom.point){this.dom.point.appendChild(dragCenter)}this.dom.dragCenter=dragCenter}else if(!this.selected&&this.dom.dragCenter){if(this.dom.dragCenter.parentNode){this.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter)}this.dom.dragCenter=null}};Item.prototype._repaintDeleteButton=function(anchor){var editable=(this.options.editable.overrideItems||this.editable==null)&&this.options.editable.remove||!this.options.editable.overrideItems&&this.editable!=null&&this.editable.remove;if(this.selected&&editable&&!this.dom.deleteButton){var me=this;var deleteButton=document.createElement(\"div\");if(this.options.rtl){deleteButton.className=\"vis-delete-rtl\"}else{deleteButton.className=\"vis-delete\"}deleteButton.title=\"Delete this item\";new Hammer(deleteButton).on(\"tap\",function(event){event.stopPropagation();me.parent.removeFromDataSet(me)});anchor.appendChild(deleteButton);this.dom.deleteButton=deleteButton}else if(!this.selected&&this.dom.deleteButton){if(this.dom.deleteButton.parentNode){this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton)}this.dom.deleteButton=null}};Item.prototype._repaintOnItemUpdateTimeTooltip=function(anchor){if(!this.options.tooltipOnItemUpdateTime)return;var editable=(this.options.editable.updateTime||this.data.editable===true)&&this.data.editable!==false;if(this.selected&&editable&&!this.dom.onItemUpdateTimeTooltip){var onItemUpdateTimeTooltip=document.createElement(\"div\");onItemUpdateTimeTooltip.className=\"vis-onUpdateTime-tooltip\";anchor.appendChild(onItemUpdateTimeTooltip);this.dom.onItemUpdateTimeTooltip=onItemUpdateTimeTooltip}else if(!this.selected&&this.dom.onItemUpdateTimeTooltip){if(this.dom.onItemUpdateTimeTooltip.parentNode){this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip)}this.dom.onItemUpdateTimeTooltip=null}if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?\"visible\":\"hidden\";if(this.options.rtl){this.dom.onItemUpdateTimeTooltip.style.right=this.dom.content.style.right}else{this.dom.onItemUpdateTimeTooltip.style.left=this.dom.content.style.left}var tooltipOffset=50;var scrollTop=this.parent.itemSet.body.domProps.scrollTop;var itemDistanceFromTop;if(this.options.orientation.item==\"top\"){itemDistanceFromTop=this.top}else{itemDistanceFromTop=this.parent.height-this.top-this.height}var isCloseToTop=itemDistanceFromTop+this.parent.top-tooltipOffset<-scrollTop;if(isCloseToTop){this.dom.onItemUpdateTimeTooltip.style.bottom=\"\";this.dom.onItemUpdateTimeTooltip.style.top=this.height+2+\"px\"}else{this.dom.onItemUpdateTimeTooltip.style.top=\"\";this.dom.onItemUpdateTimeTooltip.style.bottom=this.height+2+\"px\"}var content;var templateFunction;if(this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template){templateFunction=this.options.tooltipOnItemUpdateTime.template.bind(this);content=templateFunction(this.data)}else{content=\"start: \"+moment(this.data.start).format(\"MM/DD/YYYY hh:mm\");if(this.data.end){content+=\"<br> end: \"+moment(this.data.end).format(\"MM/DD/YYYY hh:mm\")}}this.dom.onItemUpdateTimeTooltip.innerHTML=content}};Item.prototype._updateContents=function(element){var content;var changed;var templateFunction;var itemVisibleFrameContent;var visibleFrameTemplateFunction;var itemData=this.parent.itemSet.itemsData.get(this.id);var frameElement=this.dom.box||this.dom.point;var itemVisibleFrameContentElement=frameElement.getElementsByClassName(\"vis-item-visible-frame\")[0];if(this.options.visibleFrameTemplate){visibleFrameTemplateFunction=this.options.visibleFrameTemplate.bind(this);itemVisibleFrameContent=visibleFrameTemplateFunction(itemData,frameElement)}else{itemVisibleFrameContent=\"\"}if(itemVisibleFrameContentElement){if(itemVisibleFrameContent instanceof Object&&!(itemVisibleFrameContent instanceof Element)){visibleFrameTemplateFunction(itemData,itemVisibleFrameContentElement)}else{changed=this._contentToString(this.itemVisibleFrameContent)!==this._contentToString(itemVisibleFrameContent);if(changed){if(itemVisibleFrameContent instanceof Element){itemVisibleFrameContentElement.innerHTML=\"\";itemVisibleFrameContentElement.appendChild(itemVisibleFrameContent)}else if(itemVisibleFrameContent!=undefined){itemVisibleFrameContentElement.innerHTML=itemVisibleFrameContent}else{if(!(this.data.type==\"background\"&&this.data.content===undefined)){throw new Error('Property \"content\" missing in item '+this.id)}}this.itemVisibleFrameContent=itemVisibleFrameContent}}}if(this.options.template){templateFunction=this.options.template.bind(this);content=templateFunction(itemData,element,this.data)}else{content=this.data.content}if(content instanceof Object&&!(content instanceof Element)){templateFunction(itemData,element)}else{changed=this._contentToString(this.content)!==this._contentToString(content);if(changed){if(content instanceof Element){element.innerHTML=\"\";element.appendChild(content)}else if(content!=undefined){element.innerHTML=content}else{if(!(this.data.type==\"background\"&&this.data.content===undefined)){throw new Error('Property \"content\" missing in item '+this.id)}}this.content=content}}};Item.prototype._updateDataAttributes=function(element){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var attributes=[];if(Array.isArray(this.options.dataAttributes)){attributes=this.options.dataAttributes}else if(this.options.dataAttributes==\"all\"){attributes=(0,_keys2[\"default\"])(this.data)}else{return}for(var i=0;i<attributes.length;i++){var name=attributes[i];var value=this.data[name];if(value!=null){element.setAttribute(\"data-\"+name,value)}else{element.removeAttribute(\"data-\"+name)}}}};Item.prototype._updateStyle=function(element){if(this.style){util.removeCssText(element,this.style);this.style=null}if(this.data.style){util.addCssText(element,this.data.style);this.style=this.data.style}};Item.prototype._contentToString=function(content){if(typeof content===\"string\")return content;if(content&&\"outerHTML\"in content)return content.outerHTML;return content};Item.prototype._updateEditStatus=function(){if(this.options){if(typeof this.options.editable===\"boolean\"){this.editable={updateTime:this.options.editable,updateGroup:this.options.editable,remove:this.options.editable}}else if((0,_typeof3[\"default\"])(this.options.editable)===\"object\"){this.editable={};util.selectiveExtend([\"updateTime\",\"updateGroup\",\"remove\"],this.editable,this.options.editable)}}if(!this.options||!this.options.editable||this.options.editable.overrideItems!==true){if(this.data){if(typeof this.data.editable===\"boolean\"){this.editable={updateTime:this.data.editable,updateGroup:this.data.editable,remove:this.data.editable}}else if((0,_typeof3[\"default\"])(this.data.editable)===\"object\"){this.editable={};util.selectiveExtend([\"updateTime\",\"updateGroup\",\"remove\"],this.editable,this.data.editable)}}}};Item.prototype.getWidthLeft=function(){return 0};Item.prototype.getWidthRight=function(){return 0};Item.prototype.getTitle=function(){return this.data.title};module.exports=Item},function(module,exports){module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value:value}}},function(module,exports){var id=0;var px=Math.random();module.exports=function(key){return\"Symbol(\".concat(key===undefined?\"\":key,\")_\",(++id+px).toString(36))}},function(module,exports,__webpack_require__){var defined=__webpack_require__(51);module.exports=function(it){return Object(defined(it))}},function(module,exports){exports.f={}.propertyIsEnumerable},function(module,exports,__webpack_require__){\"use strict\";function Queue(options){this.delay=null;this.max=Infinity;this._queue=[];this._timeout=null;this._extended=null;this.setOptions(options)}Queue.prototype.setOptions=function(options){if(options&&typeof options.delay!==\"undefined\"){this.delay=options.delay}if(options&&typeof options.max!==\"undefined\"){this.max=options.max}this._flushIfNeeded()};Queue.extend=function(object,options){var queue=new Queue(options);if(object.flush!==undefined){throw new Error(\"Target object already has a property flush\")}object.flush=function(){queue.flush()};var methods=[{name:\"flush\",original:undefined}];if(options&&options.replace){for(var i=0;i<options.replace.length;i++){var name=options.replace[i];methods.push({name:name,original:object[name]});queue.replace(object,name)}}queue._extended={object:object,methods:methods};return queue};Queue.prototype.destroy=function(){this.flush();if(this._extended){var object=this._extended.object;var methods=this._extended.methods;for(var i=0;i<methods.length;i++){var method=methods[i];if(method.original){object[method.name]=method.original}else{delete object[method.name]}}this._extended=null}};Queue.prototype.replace=function(object,method){var me=this;var original=object[method];if(!original){throw new Error(\"Method \"+method+\" undefined\")}object[method]=function(){var args=[];for(var i=0;i<arguments.length;i++){args[i]=arguments[i]}me.queue({args:args,fn:original,context:this})}};Queue.prototype.queue=function(entry){if(typeof entry===\"function\"){this._queue.push({fn:entry})}else{this._queue.push(entry)}this._flushIfNeeded()};Queue.prototype._flushIfNeeded=function(){\nif(this._queue.length>this.max){this.flush()}clearTimeout(this._timeout);if(this.queue.length>0&&typeof this.delay===\"number\"){var me=this;this._timeout=setTimeout(function(){me.flush()},this.delay)}};Queue.prototype.flush=function(){while(this._queue.length>0){var entry=this._queue.shift();entry.fn.apply(entry.context||entry.fn,entry.args||[])}};module.exports=Queue},function(module,exports){module.exports=Emitter;function Emitter(obj){if(obj)return mixin(obj)}function mixin(obj){for(var key in Emitter.prototype){obj[key]=Emitter.prototype[key]}return obj}Emitter.prototype.on=Emitter.prototype.addEventListener=function(event,fn){this._callbacks=this._callbacks||{};(this._callbacks[event]=this._callbacks[event]||[]).push(fn);return this};Emitter.prototype.once=function(event,fn){var self=this;this._callbacks=this._callbacks||{};function on(){self.off(event,on);fn.apply(this,arguments)}on.fn=fn;this.on(event,on);return this};Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(event,fn){this._callbacks=this._callbacks||{};if(0==arguments.length){this._callbacks={};return this}var callbacks=this._callbacks[event];if(!callbacks)return this;if(1==arguments.length){delete this._callbacks[event];return this}var cb;for(var i=0;i<callbacks.length;i++){cb=callbacks[i];if(cb===fn||cb.fn===fn){callbacks.splice(i,1);break}}return this};Emitter.prototype.emit=function(event){this._callbacks=this._callbacks||{};var args=[].slice.call(arguments,1),callbacks=this._callbacks[event];if(callbacks){callbacks=callbacks.slice(0);for(var i=0,len=callbacks.length;i<len;++i){callbacks[i].apply(this,args)}}return this};Emitter.prototype.listeners=function(event){this._callbacks=this._callbacks||{};return this._callbacks[event]||[]};Emitter.prototype.hasListeners=function(event){return!!this.listeners(event).length}},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Component=__webpack_require__(16);var TimeStep=__webpack_require__(66);var DateUtil=__webpack_require__(36);var moment=__webpack_require__(9);function TimeAxis(body,options){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}};this.props={range:{start:0,end:0,minimumStep:0},lineTop:0};this.defaultOptions={orientation:{axis:\"bottom\"},showMinorLabels:true,showMajorLabels:true,maxMinorChars:7,format:TimeStep.FORMAT,moment:moment,timeAxis:null};this.options=util.extend({},this.defaultOptions);this.body=body;this._create();this.setOptions(options)}TimeAxis.prototype=new Component;TimeAxis.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"showMinorLabels\",\"showMajorLabels\",\"maxMinorChars\",\"hiddenDates\",\"timeAxis\",\"moment\",\"rtl\"],this.options,options);util.selectiveDeepExtend([\"format\"],this.options,options);if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation.axis=options.orientation}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"&&\"axis\"in options.orientation){this.options.orientation.axis=options.orientation.axis}}if(\"locale\"in options){if(typeof moment.locale===\"function\"){moment.locale(options.locale)}else{moment.lang(options.locale)}}}};TimeAxis.prototype._create=function(){this.dom.foreground=document.createElement(\"div\");this.dom.background=document.createElement(\"div\");this.dom.foreground.className=\"vis-time-axis vis-foreground\";this.dom.background.className=\"vis-time-axis vis-background\"};TimeAxis.prototype.destroy=function(){if(this.dom.foreground.parentNode){this.dom.foreground.parentNode.removeChild(this.dom.foreground)}if(this.dom.background.parentNode){this.dom.background.parentNode.removeChild(this.dom.background)}this.body=null};TimeAxis.prototype.redraw=function(){var props=this.props;var foreground=this.dom.foreground;var background=this.dom.background;var parent=this.options.orientation.axis==\"top\"?this.body.dom.top:this.body.dom.bottom;var parentChanged=foreground.parentNode!==parent;this._calculateCharSize();var showMinorLabels=this.options.showMinorLabels&&this.options.orientation.axis!==\"none\";var showMajorLabels=this.options.showMajorLabels&&this.options.orientation.axis!==\"none\";props.minorLabelHeight=showMinorLabels?props.minorCharHeight:0;props.majorLabelHeight=showMajorLabels?props.majorCharHeight:0;props.height=props.minorLabelHeight+props.majorLabelHeight;props.width=foreground.offsetWidth;props.minorLineHeight=this.body.domProps.root.height-props.majorLabelHeight-(this.options.orientation.axis==\"top\"?this.body.domProps.bottom.height:this.body.domProps.top.height);props.minorLineWidth=1;props.majorLineHeight=props.minorLineHeight+props.majorLabelHeight;props.majorLineWidth=1;var foregroundNextSibling=foreground.nextSibling;var backgroundNextSibling=background.nextSibling;foreground.parentNode&&foreground.parentNode.removeChild(foreground);background.parentNode&&background.parentNode.removeChild(background);foreground.style.height=this.props.height+\"px\";this._repaintLabels();if(foregroundNextSibling){parent.insertBefore(foreground,foregroundNextSibling)}else{parent.appendChild(foreground)}if(backgroundNextSibling){this.body.dom.backgroundVertical.insertBefore(background,backgroundNextSibling)}else{this.body.dom.backgroundVertical.appendChild(background)}return this._isResized()||parentChanged};TimeAxis.prototype._repaintLabels=function(){var orientation=this.options.orientation.axis;var start=util.convert(this.body.range.start,\"Number\");var end=util.convert(this.body.range.end,\"Number\");var timeLabelsize=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf();var minimumStep=timeLabelsize-DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,timeLabelsize);minimumStep-=this.body.util.toTime(0).valueOf();var step=new TimeStep(new Date(start),new Date(end),minimumStep,this.body.hiddenDates,this.options);step.setMoment(this.options.moment);if(this.options.format){step.setFormat(this.options.format)}if(this.options.timeAxis){step.setScale(this.options.timeAxis)}this.step=step;var dom=this.dom;dom.redundant.lines=dom.lines;dom.redundant.majorTexts=dom.majorTexts;dom.redundant.minorTexts=dom.minorTexts;dom.lines=[];dom.majorTexts=[];dom.minorTexts=[];var current;var next;var x;var xNext;var isMajor;var nextIsMajor;var showMinorGrid;var width=0,prevWidth;var line;var labelMinor;var xFirstMajorLabel=undefined;var count=0;var MAX=1e3;var className;step.start();next=step.getCurrent();xNext=this.body.util.toScreen(next);while(step.hasNext()&&count<MAX){count++;isMajor=step.isMajor();className=step.getClassName();labelMinor=step.getLabelMinor();current=next;x=xNext;step.next();next=step.getCurrent();nextIsMajor=step.isMajor();xNext=this.body.util.toScreen(next);prevWidth=width;width=xNext-x;switch(step.scale){case\"week\":showMinorGrid=true;break;default:showMinorGrid=width>=prevWidth*.4;break}if(this.options.showMinorLabels&&showMinorGrid){var label=this._repaintMinorText(x,labelMinor,orientation,className);label.style.width=width+\"px\"}if(isMajor&&this.options.showMajorLabels){if(x>0){if(xFirstMajorLabel==undefined){xFirstMajorLabel=x}label=this._repaintMajorText(x,step.getLabelMajor(),orientation,className)}line=this._repaintMajorLine(x,width,orientation,className)}else{if(showMinorGrid){line=this._repaintMinorLine(x,width,orientation,className)}else{if(line){line.style.width=parseInt(line.style.width)+width+\"px\"}}}}if(count===MAX&&!warnedForOverflow){console.warn(\"Something is wrong with the Timeline scale. Limited drawing of grid lines to \"+MAX+\" lines.\");warnedForOverflow=true}if(this.options.showMajorLabels){var leftTime=this.body.util.toTime(0),leftText=step.getLabelMajor(leftTime),widthText=leftText.length*(this.props.majorCharWidth||10)+10;if(xFirstMajorLabel==undefined||widthText<xFirstMajorLabel){this._repaintMajorText(0,leftText,orientation,className)}}util.forEach(this.dom.redundant,function(arr){while(arr.length){var elem=arr.pop();if(elem&&elem.parentNode){elem.parentNode.removeChild(elem)}}})};TimeAxis.prototype._repaintMinorText=function(x,text,orientation,className){var label=this.dom.redundant.minorTexts.shift();if(!label){var content=document.createTextNode(\"\");label=document.createElement(\"div\");label.appendChild(content);this.dom.foreground.appendChild(label)}this.dom.minorTexts.push(label);label.innerHTML=text;label.style.top=orientation==\"top\"?this.props.majorLabelHeight+\"px\":\"0\";if(this.options.rtl){label.style.left=\"\";label.style.right=x+\"px\"}else{label.style.left=x+\"px\"}label.className=\"vis-text vis-minor \"+className;return label};TimeAxis.prototype._repaintMajorText=function(x,text,orientation,className){var label=this.dom.redundant.majorTexts.shift();if(!label){var content=document.createElement(\"div\");label=document.createElement(\"div\");label.appendChild(content);this.dom.foreground.appendChild(label)}label.childNodes[0].innerHTML=text;label.className=\"vis-text vis-major \"+className;label.style.top=orientation==\"top\"?\"0\":this.props.minorLabelHeight+\"px\";if(this.options.rtl){label.style.left=\"\";label.style.right=x+\"px\"}else{label.style.left=x+\"px\"}this.dom.majorTexts.push(label);return label};TimeAxis.prototype._repaintMinorLine=function(x,width,orientation,className){var line=this.dom.redundant.lines.shift();if(!line){line=document.createElement(\"div\");this.dom.background.appendChild(line)}this.dom.lines.push(line);var props=this.props;if(orientation==\"top\"){line.style.top=props.majorLabelHeight+\"px\"}else{line.style.top=this.body.domProps.top.height+\"px\"}line.style.height=props.minorLineHeight+\"px\";if(this.options.rtl){line.style.left=\"\";line.style.right=x-props.minorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical-rtl vis-minor \"+className}else{line.style.left=x-props.minorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical vis-minor \"+className}line.style.width=width+\"px\";return line};TimeAxis.prototype._repaintMajorLine=function(x,width,orientation,className){var line=this.dom.redundant.lines.shift();if(!line){line=document.createElement(\"div\");this.dom.background.appendChild(line)}this.dom.lines.push(line);var props=this.props;if(orientation==\"top\"){line.style.top=\"0\"}else{line.style.top=this.body.domProps.top.height+\"px\"}if(this.options.rtl){line.style.left=\"\";line.style.right=x-props.majorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical-rtl vis-major \"+className}else{line.style.left=x-props.majorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical vis-major \"+className}line.style.height=props.majorLineHeight+\"px\";line.style.width=width+\"px\";return line};TimeAxis.prototype._calculateCharSize=function(){if(!this.dom.measureCharMinor){this.dom.measureCharMinor=document.createElement(\"DIV\");this.dom.measureCharMinor.className=\"vis-text vis-minor vis-measure\";this.dom.measureCharMinor.style.position=\"absolute\";this.dom.measureCharMinor.appendChild(document.createTextNode(\"0\"));this.dom.foreground.appendChild(this.dom.measureCharMinor)}this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight;this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth;if(!this.dom.measureCharMajor){this.dom.measureCharMajor=document.createElement(\"DIV\");this.dom.measureCharMajor.className=\"vis-text vis-major vis-measure\";this.dom.measureCharMajor.style.position=\"absolute\";this.dom.measureCharMajor.appendChild(document.createTextNode(\"0\"));this.dom.foreground.appendChild(this.dom.measureCharMajor)}this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight;this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth};var warnedForOverflow=false;module.exports=TimeAxis},function(module,exports,__webpack_require__){\"use strict\";var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var Component=__webpack_require__(16);var moment=__webpack_require__(9);var locales=__webpack_require__(98);function CustomTime(body,options){this.body=body;this.defaultOptions={moment:moment,locales:locales,locale:\"en\",id:undefined,title:undefined};this.options=util.extend({},this.defaultOptions);if(options&&options.time){this.customTime=options.time}else{this.customTime=new Date}this.eventParams={};this.setOptions(options);this._create()}CustomTime.prototype=new Component;CustomTime.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"moment\",\"locale\",\"locales\",\"id\"],this.options,options)}};CustomTime.prototype._create=function(){var bar=document.createElement(\"div\");bar[\"custom-time\"]=this;bar.className=\"vis-custom-time \"+(this.options.id||\"\");bar.style.position=\"absolute\";bar.style.top=\"0px\";bar.style.height=\"100%\";this.bar=bar;var drag=document.createElement(\"div\");drag.style.position=\"relative\";drag.style.top=\"0px\";drag.style.left=\"-10px\";drag.style.height=\"100%\";drag.style.width=\"20px\";function onMouseWheel(e){this.body.range._onMouseWheel(e)}if(drag.addEventListener){drag.addEventListener(\"mousewheel\",onMouseWheel.bind(this),false);drag.addEventListener(\"DOMMouseScroll\",onMouseWheel.bind(this),false)}else{drag.attachEvent(\"onmousewheel\",onMouseWheel.bind(this))}bar.appendChild(drag);this.hammer=new Hammer(drag);this.hammer.on(\"panstart\",this._onDragStart.bind(this));this.hammer.on(\"panmove\",this._onDrag.bind(this));this.hammer.on(\"panend\",this._onDragEnd.bind(this));this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL})};CustomTime.prototype.destroy=function(){this.hide();this.hammer.destroy();this.hammer=null;this.body=null};CustomTime.prototype.redraw=function(){var parent=this.body.dom.backgroundVertical;if(this.bar.parentNode!=parent){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}parent.appendChild(this.bar)}var x=this.body.util.toScreen(this.customTime);var locale=this.options.locales[this.options.locale];if(!locale){if(!this.warned){console.log(\"WARNING: options.locales['\"+this.options.locale+\"'] not found. See http://visjs.org/docs/timeline/#Localization\");this.warned=true}locale=this.options.locales[\"en\"]}var title=this.options.title;if(title===undefined){title=locale.time+\": \"+this.options.moment(this.customTime).format(\"dddd, MMMM Do YYYY, H:mm:ss\");title=title.charAt(0).toUpperCase()+title.substring(1)}else if(typeof title===\"function\"){title=title.call(this.customTime)}this.bar.style.left=x+\"px\";this.bar.title=title;return false};CustomTime.prototype.hide=function(){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}};CustomTime.prototype.setCustomTime=function(time){this.customTime=util.convert(time,\"Date\");this.redraw()};CustomTime.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())};CustomTime.prototype.setCustomTitle=function(title){this.options.title=title};CustomTime.prototype._onDragStart=function(event){this.eventParams.dragging=true;this.eventParams.customTime=this.customTime;event.stopPropagation()};CustomTime.prototype._onDrag=function(event){if(!this.eventParams.dragging)return;var x=this.body.util.toScreen(this.eventParams.customTime)+event.deltaX;var time=this.body.util.toTime(x);this.setCustomTime(time);this.body.emitter.emit(\"timechange\",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:event});event.stopPropagation()};CustomTime.prototype._onDragEnd=function(event){if(!this.eventParams.dragging)return;this.body.emitter.emit(\"timechanged\",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:event});event.stopPropagation()};CustomTime.customTimeFromTarget=function(event){var target=event.target;while(target){if(target.hasOwnProperty(\"custom-time\")){return target[\"custom-time\"]}target=target.parentNode}return null};module.exports=CustomTime},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Label=__webpack_require__(117)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var Box=__webpack_require__(193)[\"default\"];var Circle=__webpack_require__(200)[\"default\"];var CircularImage=__webpack_require__(201)[\"default\"];var Database=__webpack_require__(202)[\"default\"];var Diamond=__webpack_require__(203)[\"default\"];var Dot=__webpack_require__(204)[\"default\"];var Ellipse=__webpack_require__(205)[\"default\"];var Icon=__webpack_require__(206)[\"default\"];var Image=__webpack_require__(207)[\"default\"];var Square=__webpack_require__(208)[\"default\"];var Hexagon=__webpack_require__(209)[\"default\"];var Star=__webpack_require__(210)[\"default\"];var Text=__webpack_require__(211)[\"default\"];var Triangle=__webpack_require__(212)[\"default\"];var TriangleDown=__webpack_require__(213)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var Node=function(){function Node(options,body,imagelist,grouplist,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Node);this.options=util.bridgeObject(globalOptions);this.globalOptions=globalOptions;this.defaultOptions=defaultOptions;this.body=body;this.edges=[];this.id=undefined;this.imagelist=imagelist;this.grouplist=grouplist;this.x=undefined;this.y=undefined;this.baseSize=this.options.size;this.baseFontSize=this.options.font.size;this.predefinedPosition=false;this.selected=false;this.hover=false;this.labelModule=new Label(this.body,this.options,false);this.setOptions(options)}(0,_createClass3[\"default\"])(Node,[{key:\"attachEdge\",value:function attachEdge(edge){if(this.edges.indexOf(edge)===-1){this.edges.push(edge)}}},{key:\"detachEdge\",value:function detachEdge(edge){var index=this.edges.indexOf(edge);if(index!=-1){this.edges.splice(index,1)}}},{key:\"setOptions\",value:function setOptions(options){var currentShape=this.options.shape;if(!options){return}if(options.id!==undefined){this.id=options.id}if(this.id===undefined){throw new Error(\"Node must have an id\")}Node.checkMass(options,this.id);if(options.x!==undefined){if(options.x===null){this.x=undefined;this.predefinedPosition=false}else{this.x=parseInt(options.x);this.predefinedPosition=true}}if(options.y!==undefined){if(options.y===null){this.y=undefined;this.predefinedPosition=false}else{this.y=parseInt(options.y);this.predefinedPosition=true}}if(options.size!==undefined){this.baseSize=options.size}if(options.value!==undefined){options.value=parseFloat(options.value)}Node.parseOptions(this.options,options,true,this.globalOptions,this.grouplist);var pile=[options,this.options,this.defaultOptions];this.chooser=ComponentUtil.choosify(\"node\",pile);this._load_images();this.updateLabelModule(options);this.updateShape(currentShape);return options.hidden!==undefined||options.physics!==undefined}},{key:\"_load_images\",value:function _load_images(){if(this.options.shape!==\"circularImage\"&&this.options.shape!==\"image\"){return}if(this.options.image===undefined){throw new Error(\"Option image must be defined for node type '\"+this.options.shape+\"'\")}if(this.imagelist===undefined){throw new Error(\"Internal Error: No images provided\")}if(typeof this.options.image===\"string\"){this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id)}else{if(this.options.image.unselected===undefined){throw new Error(\"No unselected image provided\")}this.imageObj=this.imagelist.load(this.options.image.unselected,this.options.brokenImage,this.id);if(this.options.image.selected!==undefined){this.imageObjAlt=this.imagelist.load(this.options.image.selected,this.options.brokenImage,this.id)}else{this.imageObjAlt=undefined}}}},{key:\"getFormattingValues\",value:function getFormattingValues(){var values={color:this.options.color.background,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover){if(this.chooser===true){if(this.selected){values.borderWidth*=2;values.color=this.options.color.highlight.background;values.borderColor=this.options.color.highlight.border;values.shadow=this.options.shadow.enabled}else if(this.hover){values.color=this.options.color.hover.background;values.borderColor=this.options.color.hover.border;values.shadow=this.options.shadow.enabled}}else if(typeof this.chooser===\"function\"){this.chooser(values,this.options.id,this.selected,this.hover);if(values.shadow===false){if(values.shadowColor!==this.options.shadow.color||values.shadowSize!==this.options.shadow.size||values.shadowX!==this.options.shadow.x||values.shadowY!==this.options.shadow.y){values.shadow=true}}}}else{values.shadow=this.options.shadow.enabled}return values}},{key:\"updateLabelModule\",value:function updateLabelModule(options){if(this.options.label===undefined||this.options.label===null){this.options.label=\"\"}Node.updateGroupOptions(this.options,options,this.grouplist);var currentGroup=this.grouplist.get(this.options.group,false);var pile=[options,this.options,currentGroup,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,pile);if(this.labelModule.baseSize!==undefined){this.baseFontSize=this.labelModule.baseSize}}},{key:\"updateShape\",value:function updateShape(currentShape){if(currentShape===this.options.shape&&this.shape){this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt)}else{switch(this.options.shape){case\"box\":this.shape=new Box(this.options,this.body,this.labelModule);break;case\"circle\":this.shape=new Circle(this.options,this.body,this.labelModule);break;case\"circularImage\":this.shape=new CircularImage(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"database\":this.shape=new Database(this.options,this.body,this.labelModule);break;case\"diamond\":this.shape=new Diamond(this.options,this.body,this.labelModule);break;case\"dot\":this.shape=new Dot(this.options,this.body,this.labelModule);break;case\"ellipse\":this.shape=new Ellipse(this.options,this.body,this.labelModule);break;case\"icon\":this.shape=new Icon(this.options,this.body,this.labelModule);break;case\"image\":this.shape=new Image(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"square\":this.shape=new Square(this.options,this.body,this.labelModule);break;case\"hexagon\":this.shape=new Hexagon(this.options,this.body,this.labelModule);break;case\"star\":this.shape=new Star(this.options,this.body,this.labelModule);break;case\"text\":this.shape=new Text(this.options,this.body,this.labelModule);break;case\"triangle\":this.shape=new Triangle(this.options,this.body,this.labelModule);break;case\"triangleDown\":this.shape=new TriangleDown(this.options,this.body,this.labelModule);break;default:this.shape=new Ellipse(this.options,this.body,this.labelModule);break}}this.needsRefresh()}},{key:\"select\",value:function select(){this.selected=true;this.needsRefresh()}},{key:\"unselect\",value:function unselect(){this.selected=false;this.needsRefresh()}},{key:\"needsRefresh\",value:function needsRefresh(){this.shape.refreshNeeded=true}},{key:\"getTitle\",value:function getTitle(){return this.options.title}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this.shape.distanceToBorder(ctx,angle)}},{key:\"isFixed\",value:function isFixed(){return this.options.fixed.x&&this.options.fixed.y}},{key:\"isSelected\",value:function isSelected(){return this.selected}},{key:\"getValue\",value:function getValue(){return this.options.value}},{key:\"getLabelSize\",value:function getLabelSize(){return this.labelModule.size()}},{key:\"setValueRange\",value:function setValueRange(min,max,total){if(this.options.value!==undefined){var scale=this.options.scaling.customScalingFunction(min,max,total,this.options.value);var sizeDiff=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===true){var fontDiff=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+scale*fontDiff}this.options.size=this.options.scaling.min+scale*sizeDiff}else{this.options.size=this.baseSize;this.options.font.size=this.baseFontSize}this.updateLabelModule()}},{key:\"draw\",value:function draw(ctx){var values=this.getFormattingValues();this.shape.draw(ctx,this.x,this.y,this.selected,this.hover,values)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(ctx){this.shape.updateBoundingBox(this.x,this.y,ctx)}},{key:\"resize\",value:function resize(ctx){var values=this.getFormattingValues();this.shape.resize(ctx,this.selected,this.hover,values)}},{key:\"getItemsOnPoint\",value:function getItemsOnPoint(point){var ret=[];if(this.labelModule.visible()){if(ComponentUtil.pointInRect(this.labelModule.getSize(),point)){ret.push({nodeId:this.id,labelId:0})}}if(ComponentUtil.pointInRect(this.shape.boundingBox,point)){ret.push({nodeId:this.id})}return ret}},{key:\"isOverlappingWith\",value:function isOverlappingWith(obj){return this.shape.left<obj.right&&this.shape.left+this.shape.width>obj.left&&this.shape.top<obj.bottom&&this.shape.top+this.shape.height>obj.top}},{key:\"isBoundingBoxOverlappingWith\",value:function isBoundingBoxOverlappingWith(obj){return this.shape.boundingBox.left<obj.right&&this.shape.boundingBox.right>obj.left&&this.shape.boundingBox.top<obj.bottom&&this.shape.boundingBox.bottom>obj.top}}],[{key:\"updateGroupOptions\",value:function updateGroupOptions(parentOptions,newOptions,groupList){if(groupList===undefined)return;var group=parentOptions.group;if(newOptions!==undefined&&newOptions.group!==undefined&&group!==newOptions.group){throw new Error(\"updateGroupOptions: group values in options don't match.\")}var hasGroup=typeof group===\"number\"||typeof group===\"string\"&&group!=\"\";if(!hasGroup)return;var groupObj=groupList.get(group);util.selectiveNotDeepExtend([\"font\"],parentOptions,groupObj);parentOptions.color=util.parseColor(parentOptions.color)}},{key:\"parseOptions\",value:function parseOptions(parentOptions,newOptions){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var groupList=arguments[4];var fields=[\"color\",\"fixed\",\"shadow\"];util.selectiveNotDeepExtend(fields,parentOptions,newOptions,allowDeletion);Node.checkMass(newOptions);util.mergeOptions(parentOptions,newOptions,\"shadow\",globalOptions);if(newOptions.color!==undefined&&newOptions.color!==null){var parsedColor=util.parseColor(newOptions.color);util.fillIfDefined(parentOptions.color,parsedColor)}else if(allowDeletion===true&&newOptions.color===null){parentOptions.color=util.bridgeObject(globalOptions.color)}if(newOptions.fixed!==undefined&&newOptions.fixed!==null){if(typeof newOptions.fixed===\"boolean\"){parentOptions.fixed.x=newOptions.fixed;parentOptions.fixed.y=newOptions.fixed}else{if(newOptions.fixed.x!==undefined&&typeof newOptions.fixed.x===\"boolean\"){parentOptions.fixed.x=newOptions.fixed.x}if(newOptions.fixed.y!==undefined&&typeof newOptions.fixed.y===\"boolean\"){parentOptions.fixed.y=newOptions.fixed.y}}}if(allowDeletion===true&&newOptions.font===null){parentOptions.font=util.bridgeObject(globalOptions.font)}Node.updateGroupOptions(parentOptions,newOptions,groupList);if(newOptions.scaling!==undefined){util.mergeOptions(parentOptions.scaling,newOptions.scaling,\"label\",globalOptions.scaling)}}},{key:\"checkMass\",value:function checkMass(options,id){if(options.mass!==undefined&&options.mass<=0){var strId=\"\";if(id!==undefined){strId=\" in node id: \"+id}console.log(\"%cNegative or zero mass disallowed\"+strId+\", setting mass to 1.\",printStyle);options.mass=1}}}]);return Node}();exports[\"default\"]=Node},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ComponentUtil=function(){function ComponentUtil(){(0,_classCallCheck3[\"default\"])(this,ComponentUtil)}(0,_createClass3[\"default\"])(ComponentUtil,null,[{key:\"choosify\",value:function choosify(subOption,pile){var allowed=[\"node\",\"edge\",\"label\"];var value=true;var chosen=util.topMost(pile,\"chosen\");if(typeof chosen===\"boolean\"){value=chosen}else if((typeof chosen===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(chosen))===\"object\"){if(allowed.indexOf(subOption)===-1){throw new Error(\"choosify: subOption '\"+subOption+\"' should be one of \"+\"'\"+allowed.join(\"', '\")+\"'\")}var chosenEdge=util.topMost(pile,[\"chosen\",subOption]);if(typeof chosenEdge===\"boolean\"||typeof chosenEdge===\"function\"){value=chosenEdge}}return value}},{key:\"pointInRect\",value:function pointInRect(rect,point,rotationPoint){if(rect.width<=0||rect.height<=0){return false}if(rotationPoint!==undefined){var tmp={x:point.x-rotationPoint.x,y:point.y-rotationPoint.y};if(rotationPoint.angle!==0){var angle=-rotationPoint.angle;var tmp2={x:Math.cos(angle)*tmp.x-Math.sin(angle)*tmp.y,y:Math.sin(angle)*tmp.x+Math.cos(angle)*tmp.y};point=tmp2}else{point=tmp}}var right=rect.x+rect.width;var bottom=rect.y+rect.width;return rect.left<point.x&&right>point.x&&rect.top<point.y&&bottom>point.y}},{key:\"isValidLabel\",value:function isValidLabel(text){return typeof text===\"string\"&&text!==\"\"}}]);return ComponentUtil}();exports[\"default\"]=ComponentUtil},function(module,exports,__webpack_require__){__webpack_require__(125);var global=__webpack_require__(18);var hide=__webpack_require__(26);var Iterators=__webpack_require__(31);var TO_STRING_TAG=__webpack_require__(13)(\"toStringTag\");var DOMIterables=(\"CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,\"+\"DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,\"+\"MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,\"+\"SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,\"+\"TextTrackList,TouchList\").split(\",\");for(var i=0;i<DOMIterables.length;i++){var NAME=DOMIterables[i];var Collection=global[NAME];var proto=Collection&&Collection.prototype;if(proto&&!proto[TO_STRING_TAG])hide(proto,TO_STRING_TAG,NAME);Iterators[NAME]=Iterators.Array}},function(module,exports){var toString={}.toString;module.exports=function(it){return toString.call(it).slice(8,-1)}},function(module,exports){module.exports=function(it){if(it==undefined)throw TypeError(\"Can't call method on \"+it);return it}},function(module,exports){module.exports=true},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);module.exports=function(it,S){if(!isObject(it))return it;var fn,val;if(S&&typeof(fn=it.toString)==\"function\"&&!isObject(val=fn.call(it)))return val;if(typeof(fn=it.valueOf)==\"function\"&&!isObject(val=fn.call(it)))return val;if(!S&&typeof(fn=it.toString)==\"function\"&&!isObject(val=fn.call(it)))return val;throw TypeError(\"Can't convert object to primitive value\")}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var dPs=__webpack_require__(130);var enumBugKeys=__webpack_require__(58);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\")\n;var Empty=function(){};var PROTOTYPE=\"prototype\";var createDict=function(){var iframe=__webpack_require__(82)(\"iframe\");var i=enumBugKeys.length;var lt=\"<\";var gt=\">\";var iframeDocument;iframe.style.display=\"none\";__webpack_require__(134).appendChild(iframe);iframe.src=\"javascript:\";iframeDocument=iframe.contentWindow.document;iframeDocument.open();iframeDocument.write(lt+\"script\"+gt+\"document.F=Object\"+lt+\"/script\"+gt);iframeDocument.close();createDict=iframeDocument.F;while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];return createDict()};module.exports=Object.create||function create(O,Properties){var result;if(O!==null){Empty[PROTOTYPE]=anObject(O);result=new Empty;Empty[PROTOTYPE]=null;result[IE_PROTO]=O}else result=createDict();return Properties===undefined?result:dPs(result,Properties)}},function(module,exports){var ceil=Math.ceil;var floor=Math.floor;module.exports=function(it){return isNaN(it=+it)?0:(it>0?floor:ceil)(it)}},function(module,exports,__webpack_require__){var shared=__webpack_require__(57)(\"keys\");var uid=__webpack_require__(40);module.exports=function(key){return shared[key]||(shared[key]=uid(key))}},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var SHARED=\"__core-js_shared__\";var store=global[SHARED]||(global[SHARED]={});module.exports=function(key){return store[key]||(store[key]={})}},function(module,exports){module.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(module,exports,__webpack_require__){var def=__webpack_require__(20).f;var has=__webpack_require__(22);var TAG=__webpack_require__(13)(\"toStringTag\");module.exports=function(it,tag,stat){if(it&&!has(it=stat?it:it.prototype,TAG))def(it,TAG,{configurable:true,value:tag})}},function(module,exports,__webpack_require__){\"use strict\";var $at=__webpack_require__(135)(true);__webpack_require__(79)(String,\"String\",function(iterated){this._t=String(iterated);this._i=0},function(){var O=this._t;var index=this._i;var point;if(index>=O.length)return{value:undefined,done:true};point=$at(O,index);this._i+=point.length;return{value:point,done:false}})},function(module,exports,__webpack_require__){exports.f=__webpack_require__(13)},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var core=__webpack_require__(7);var LIBRARY=__webpack_require__(52);var wksExt=__webpack_require__(61);var defineProperty=__webpack_require__(20).f;module.exports=function(name){var $Symbol=core.Symbol||(core.Symbol=LIBRARY?{}:global.Symbol||{});if(name.charAt(0)!=\"_\"&&!(name in $Symbol))defineProperty($Symbol,name,{value:wksExt.f(name)})}},function(module,exports){exports.f=Object.getOwnPropertySymbols},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var moment=__webpack_require__(9);var Component=__webpack_require__(16);var DateUtil=__webpack_require__(36);function Range(body,options){var now=moment().hours(0).minutes(0).seconds(0).milliseconds(0);var start=now.clone().add(-3,\"days\").valueOf();var end=now.clone().add(3,\"days\").valueOf();this.millisecondsPerPixelCache=undefined;if(options===undefined){this.start=start;this.end=end}else{this.start=options.start||start;this.end=options.end||end}this.rolling=false;this.body=body;this.deltaDifference=0;this.scaleOffset=0;this.startToFront=false;this.endToFront=true;this.defaultOptions={rtl:false,start:null,end:null,moment:moment,direction:\"horizontal\",moveable:true,zoomable:true,min:null,max:null,zoomMin:10,zoomMax:1e3*60*60*24*365*1e4,rollingMode:{follow:false,offset:.5}};this.options=util.extend({},this.defaultOptions);this.props={touch:{}};this.animationTimer=null;this.body.emitter.on(\"panstart\",this._onDragStart.bind(this));this.body.emitter.on(\"panmove\",this._onDrag.bind(this));this.body.emitter.on(\"panend\",this._onDragEnd.bind(this));this.body.emitter.on(\"mousewheel\",this._onMouseWheel.bind(this));this.body.emitter.on(\"touch\",this._onTouch.bind(this));this.body.emitter.on(\"pinch\",this._onPinch.bind(this));this.body.dom.rollingModeBtn.addEventListener(\"click\",this.startRolling.bind(this));this.setOptions(options)}Range.prototype=new Component;Range.prototype.setOptions=function(options){if(options){var fields=[\"animation\",\"direction\",\"min\",\"max\",\"zoomMin\",\"zoomMax\",\"moveable\",\"zoomable\",\"moment\",\"activate\",\"hiddenDates\",\"zoomKey\",\"rtl\",\"showCurrentTime\",\"rollingMode\",\"horizontalScroll\"];util.selectiveExtend(fields,this.options,options);if(options.rollingMode&&options.rollingMode.follow){this.startRolling()}if(\"start\"in options||\"end\"in options){this.setRange(options.start,options.end)}}};function validateDirection(direction){if(direction!=\"horizontal\"&&direction!=\"vertical\"){throw new TypeError('Unknown direction \"'+direction+'\". '+'Choose \"horizontal\" or \"vertical\".')}}Range.prototype.startRolling=function(){var me=this;function update(){me.stopRolling();me.rolling=true;var interval=me.end-me.start;var t=util.convert(new Date,\"Date\").valueOf();var start=t-interval*me.options.rollingMode.offset;var end=t+interval*(1-me.options.rollingMode.offset);var options={animation:false};me.setRange(start,end,options);var scale=me.conversion(me.body.domProps.center.width).scale;interval=1/scale/10;if(interval<30)interval=30;if(interval>1e3)interval=1e3;me.body.dom.rollingModeBtn.style.visibility=\"hidden\";me.currentTimeTimer=setTimeout(update,interval)}update()};Range.prototype.stopRolling=function(){if(this.currentTimeTimer!==undefined){clearTimeout(this.currentTimeTimer);this.rolling=false;this.body.dom.rollingModeBtn.style.visibility=\"visible\"}};Range.prototype.setRange=function(start,end,options,callback,frameCallback){if(!options){options={}}if(options.byUser!==true){options.byUser=false}var me=this;var finalStart=start!=undefined?util.convert(start,\"Date\").valueOf():null;var finalEnd=end!=undefined?util.convert(end,\"Date\").valueOf():null;this._cancelAnimation();this.millisecondsPerPixelCache=undefined;if(options.animation){var initStart=this.start;var initEnd=this.end;var duration=(0,_typeof3[\"default\"])(options.animation)===\"object\"&&\"duration\"in options.animation?options.animation.duration:500;var easingName=(0,_typeof3[\"default\"])(options.animation)===\"object\"&&\"easingFunction\"in options.animation?options.animation.easingFunction:\"easeInOutQuad\";var easingFunction=util.easingFunctions[easingName];if(!easingFunction){throw new Error(\"Unknown easing function \"+(0,_stringify2[\"default\"])(easingName)+\". \"+\"Choose from: \"+(0,_keys2[\"default\"])(util.easingFunctions).join(\", \"))}var initTime=(new Date).valueOf();var anyChanged=false;var next=function next(){if(!me.props.touch.dragging){var now=(new Date).valueOf();var time=now-initTime;var ease=easingFunction(time/duration);var done=time>duration;var s=done||finalStart===null?finalStart:initStart+(finalStart-initStart)*ease;var e=done||finalEnd===null?finalEnd:initEnd+(finalEnd-initEnd)*ease;changed=me._applyRange(s,e);DateUtil.updateHiddenDates(me.options.moment,me.body,me.options.hiddenDates);anyChanged=anyChanged||changed;var params={start:new Date(me.start),end:new Date(me.end),byUser:options.byUser,event:options.event};if(frameCallback){frameCallback(ease,changed,done)}if(changed){me.body.emitter.emit(\"rangechange\",params)}if(done){if(anyChanged){me.body.emitter.emit(\"rangechanged\",params);if(callback){return callback()}}}else{me.animationTimer=setTimeout(next,20)}}};return next()}else{var changed=this._applyRange(finalStart,finalEnd);DateUtil.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates);if(changed){var params={start:new Date(this.start),end:new Date(this.end),byUser:options.byUser,event:options.event};this.body.emitter.emit(\"rangechange\",params);clearTimeout(me.timeoutID);me.timeoutID=setTimeout(function(){me.body.emitter.emit(\"rangechanged\",params)},200);if(callback){return callback()}}}};Range.prototype.getMillisecondsPerPixel=function(){if(this.millisecondsPerPixelCache===undefined){this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth}return this.millisecondsPerPixelCache};Range.prototype._cancelAnimation=function(){if(this.animationTimer){clearTimeout(this.animationTimer);this.animationTimer=null}};Range.prototype._applyRange=function(start,end){var newStart=start!=null?util.convert(start,\"Date\").valueOf():this.start,newEnd=end!=null?util.convert(end,\"Date\").valueOf():this.end,max=this.options.max!=null?util.convert(this.options.max,\"Date\").valueOf():null,min=this.options.min!=null?util.convert(this.options.min,\"Date\").valueOf():null,diff;if(isNaN(newStart)||newStart===null){throw new Error('Invalid start \"'+start+'\"')}if(isNaN(newEnd)||newEnd===null){throw new Error('Invalid end \"'+end+'\"')}if(newEnd<newStart){newEnd=newStart}if(min!==null){if(newStart<min){diff=min-newStart;newStart+=diff;newEnd+=diff;if(max!=null){if(newEnd>max){newEnd=max}}}}if(max!==null){if(newEnd>max){diff=newEnd-max;newStart-=diff;newEnd-=diff;if(min!=null){if(newStart<min){newStart=min}}}}if(this.options.zoomMin!==null){var zoomMin=parseFloat(this.options.zoomMin);if(zoomMin<0){zoomMin=0}if(newEnd-newStart<zoomMin){var compensation=.5;if(this.end-this.start===zoomMin&&newStart>=this.start-compensation&&newEnd<=this.end){newStart=this.start;newEnd=this.end}else{diff=zoomMin-(newEnd-newStart);newStart-=diff/2;newEnd+=diff/2}}}if(this.options.zoomMax!==null){var zoomMax=parseFloat(this.options.zoomMax);if(zoomMax<0){zoomMax=0}if(newEnd-newStart>zoomMax){if(this.end-this.start===zoomMax&&newStart<this.start&&newEnd>this.end){newStart=this.start;newEnd=this.end}else{diff=newEnd-newStart-zoomMax;newStart+=diff/2;newEnd-=diff/2}}}var changed=this.start!=newStart||this.end!=newEnd;if(!(newStart>=this.start&&newStart<=this.end||newEnd>=this.start&&newEnd<=this.end)&&!(this.start>=newStart&&this.start<=newEnd||this.end>=newStart&&this.end<=newEnd)){this.body.emitter.emit(\"checkRangedItems\")}this.start=newStart;this.end=newEnd;return changed};Range.prototype.getRange=function(){return{start:this.start,end:this.end}};Range.prototype.conversion=function(width,totalHidden){return Range.conversion(this.start,this.end,width,totalHidden)};Range.conversion=function(start,end,width,totalHidden){if(totalHidden===undefined){totalHidden=0}if(width!=0&&end-start!=0){return{offset:start,scale:width/(end-start-totalHidden)}}else{return{offset:0,scale:1}}};Range.prototype._onDragStart=function(event){this.deltaDifference=0;this.previousDelta=0;if(!this.options.moveable)return;if(!this._isInsideRange(event))return;if(!this.props.touch.allowDragging)return;this.stopRolling();this.props.touch.start=this.start;this.props.touch.end=this.end;this.props.touch.dragging=true;if(this.body.dom.root){this.body.dom.root.style.cursor=\"move\"}};Range.prototype._onDrag=function(event){if(!event)return;if(!this.props.touch.dragging)return;if(!this.options.moveable)return;if(!this.props.touch.allowDragging)return;var direction=this.options.direction;validateDirection(direction);var delta=direction==\"horizontal\"?event.deltaX:event.deltaY;delta-=this.deltaDifference;var interval=this.props.touch.end-this.props.touch.start;var duration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);interval-=duration;var width=direction==\"horizontal\"?this.body.domProps.center.width:this.body.domProps.center.height;var diffRange;if(this.options.rtl){diffRange=delta/width*interval}else{diffRange=-delta/width*interval}var newStart=this.props.touch.start+diffRange;var newEnd=this.props.touch.end+diffRange;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,this.previousDelta-delta,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,this.previousDelta-delta,true);if(safeStart!=newStart||safeEnd!=newEnd){this.deltaDifference+=delta;this.props.touch.start=safeStart;this.props.touch.end=safeEnd;this._onDrag(event);return}this.previousDelta=delta;this._applyRange(newStart,newEnd);var startDate=new Date(this.start);var endDate=new Date(this.end);this.body.emitter.emit(\"rangechange\",{start:startDate,end:endDate,byUser:true,event:event});this.body.emitter.emit(\"panmove\")};Range.prototype._onDragEnd=function(event){if(!this.props.touch.dragging)return;if(!this.options.moveable)return;if(!this.props.touch.allowDragging)return;this.props.touch.dragging=false;if(this.body.dom.root){this.body.dom.root.style.cursor=\"auto\"}this.body.emitter.emit(\"rangechanged\",{start:new Date(this.start),end:new Date(this.end),byUser:true,event:event})};Range.prototype._onMouseWheel=function(event){var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(this.options.zoomKey&&!event[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable){return}if(!(this.options.zoomable&&this.options.moveable))return;if(!this._isInsideRange(event))return;if(delta){var scale;if(delta<0){scale=1-delta/5}else{scale=1/(1+delta/5)}var pointerDate;if(this.rolling){pointerDate=this.start+(this.end-this.start)*this.options.rollingMode.offset}else{var pointer=this.getPointer({x:event.clientX,y:event.clientY},this.body.dom.center);pointerDate=this._pointerToDate(pointer)}this.zoom(scale,pointerDate,delta,event);event.preventDefault()}};Range.prototype._onTouch=function(event){this.props.touch.start=this.start;this.props.touch.end=this.end;this.props.touch.allowDragging=true;this.props.touch.center=null;this.scaleOffset=0;this.deltaDifference=0;util.preventDefault(event)};Range.prototype._onPinch=function(event){if(!(this.options.zoomable&&this.options.moveable))return;util.preventDefault(event);this.props.touch.allowDragging=false;if(!this.props.touch.center){this.props.touch.center=this.getPointer(event.center,this.body.dom.center)}this.stopRolling();var scale=1/(event.scale+this.scaleOffset);var centerDate=this._pointerToDate(this.props.touch.center);var hiddenDuration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var hiddenDurationBefore=DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,centerDate);var hiddenDurationAfter=hiddenDuration-hiddenDurationBefore;var newStart=centerDate-hiddenDurationBefore+(this.props.touch.start-(centerDate-hiddenDurationBefore))*scale;var newEnd=centerDate+hiddenDurationAfter+(this.props.touch.end-(centerDate+hiddenDurationAfter))*scale;this.startToFront=1-scale<=0;this.endToFront=scale-1<=0;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,1-scale,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,scale-1,true);if(safeStart!=newStart||safeEnd!=newEnd){this.props.touch.start=safeStart;this.props.touch.end=safeEnd;this.scaleOffset=1-event.scale;newStart=safeStart;newEnd=safeEnd}var options={animation:false,byUser:true,event:event};this.setRange(newStart,newEnd,options);this.startToFront=false;this.endToFront=true};Range.prototype._isInsideRange=function(event){var clientX=event.center?event.center.x:event.clientX;var x;if(this.options.rtl){x=clientX-util.getAbsoluteLeft(this.body.dom.centerContainer)}else{x=util.getAbsoluteRight(this.body.dom.centerContainer)-clientX}var time=this.body.util.toTime(x);return time>=this.start&&time<=this.end};Range.prototype._pointerToDate=function(pointer){var conversion;var direction=this.options.direction;validateDirection(direction);if(direction==\"horizontal\"){return this.body.util.toTime(pointer.x).valueOf()}else{var height=this.body.domProps.center.height;conversion=this.conversion(height);return pointer.y/conversion.scale+conversion.offset}};Range.prototype.getPointer=function(touch,element){if(this.options.rtl){return{x:util.getAbsoluteRight(element)-touch.x,y:touch.y-util.getAbsoluteTop(element)}}else{return{x:touch.x-util.getAbsoluteLeft(element),y:touch.y-util.getAbsoluteTop(element)}}};Range.prototype.zoom=function(scale,center,delta,event){if(center==null){center=(this.start+this.end)/2}var hiddenDuration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var hiddenDurationBefore=DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,center);var hiddenDurationAfter=hiddenDuration-hiddenDurationBefore;var newStart=center-hiddenDurationBefore+(this.start-(center-hiddenDurationBefore))*scale;var newEnd=center+hiddenDurationAfter+(this.end-(center+hiddenDurationAfter))*scale;this.startToFront=delta>0?false:true;this.endToFront=-delta>0?false:true;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,delta,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,-delta,true);if(safeStart!=newStart||safeEnd!=newEnd){newStart=safeStart;newEnd=safeEnd}var options={animation:false,byUser:true,event:event};this.setRange(newStart,newEnd,options);this.startToFront=false;this.endToFront=true};Range.prototype.move=function(delta){var diff=this.end-this.start;var newStart=this.start+diff*delta;var newEnd=this.end+diff*delta;this.start=newStart;this.end=newEnd};Range.prototype.moveTo=function(moveTo){var center=(this.start+this.end)/2;var diff=center-moveTo;var newStart=this.start-diff;var newEnd=this.end-diff;var options={animation:false,byUser:true,event:null};this.setRange(newStart,newEnd,options)};module.exports=Range},function(module,exports,__webpack_require__){\"use strict\";var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Emitter=__webpack_require__(44);var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var TimeAxis=__webpack_require__(45);var Activator=__webpack_require__(97);var DateUtil=__webpack_require__(36);var CustomTime=__webpack_require__(46);function Core(){}Emitter(Core.prototype);Core.prototype._create=function(container){this.dom={};this.dom.container=container;this.dom.root=document.createElement(\"div\");this.dom.background=document.createElement(\"div\");this.dom.backgroundVertical=document.createElement(\"div\");this.dom.backgroundHorizontal=document.createElement(\"div\");this.dom.centerContainer=document.createElement(\"div\");this.dom.leftContainer=document.createElement(\"div\");this.dom.rightContainer=document.createElement(\"div\");this.dom.center=document.createElement(\"div\");this.dom.left=document.createElement(\"div\");this.dom.right=document.createElement(\"div\");this.dom.top=document.createElement(\"div\");this.dom.bottom=document.createElement(\"div\");this.dom.shadowTop=document.createElement(\"div\");this.dom.shadowBottom=document.createElement(\"div\");this.dom.shadowTopLeft=document.createElement(\"div\");this.dom.shadowBottomLeft=document.createElement(\"div\");this.dom.shadowTopRight=document.createElement(\"div\");this.dom.shadowBottomRight=document.createElement(\"div\");this.dom.rollingModeBtn=document.createElement(\"div\");this.dom.root.className=\"vis-timeline\";this.dom.background.className=\"vis-panel vis-background\";this.dom.backgroundVertical.className=\"vis-panel vis-background vis-vertical\";this.dom.backgroundHorizontal.className=\"vis-panel vis-background vis-horizontal\";this.dom.centerContainer.className=\"vis-panel vis-center\";this.dom.leftContainer.className=\"vis-panel vis-left\";this.dom.rightContainer.className=\"vis-panel vis-right\";this.dom.top.className=\"vis-panel vis-top\";this.dom.bottom.className=\"vis-panel vis-bottom\";this.dom.left.className=\"vis-content\";this.dom.center.className=\"vis-content\";this.dom.right.className=\"vis-content\";this.dom.shadowTop.className=\"vis-shadow vis-top\";this.dom.shadowBottom.className=\"vis-shadow vis-bottom\";this.dom.shadowTopLeft.className=\"vis-shadow vis-top\";this.dom.shadowBottomLeft.className=\"vis-shadow vis-bottom\";this.dom.shadowTopRight.className=\"vis-shadow vis-top\";this.dom.shadowBottomRight.className=\"vis-shadow vis-bottom\";this.dom.rollingModeBtn.className=\"vis-rolling-mode-btn\";this.dom.root.appendChild(this.dom.background);this.dom.root.appendChild(this.dom.backgroundVertical);this.dom.root.appendChild(this.dom.backgroundHorizontal);this.dom.root.appendChild(this.dom.centerContainer);this.dom.root.appendChild(this.dom.leftContainer);this.dom.root.appendChild(this.dom.rightContainer);this.dom.root.appendChild(this.dom.top);this.dom.root.appendChild(this.dom.bottom);this.dom.root.appendChild(this.dom.bottom);this.dom.root.appendChild(this.dom.rollingModeBtn);this.dom.centerContainer.appendChild(this.dom.center);this.dom.leftContainer.appendChild(this.dom.left);this.dom.rightContainer.appendChild(this.dom.right);this.dom.centerContainer.appendChild(this.dom.shadowTop);this.dom.centerContainer.appendChild(this.dom.shadowBottom);this.dom.leftContainer.appendChild(this.dom.shadowTopLeft);this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft);this.dom.rightContainer.appendChild(this.dom.shadowTopRight);this.dom.rightContainer.appendChild(this.dom.shadowBottomRight);this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0};this.on(\"rangechange\",function(){if(this.initialDrawDone===true){this._redraw()}}.bind(this));this.on(\"rangechanged\",function(){if(!this.initialRangeChangeDone){this.initialRangeChangeDone=true}}.bind(this));this.on(\"touch\",this._onTouch.bind(this));this.on(\"panmove\",this._onDrag.bind(this));var me=this;this._origRedraw=this._redraw.bind(this);this._redraw=util.throttle(this._origRedraw);this.on(\"_change\",function(properties){if(me.itemSet&&me.itemSet.initialItemSetDrawn&&properties&&properties.queue==true){me._redraw()}else{me._origRedraw()}});this.hammer=new Hammer(this.dom.root);var pinchRecognizer=this.hammer.get(\"pinch\").set({enable:true});hammerUtil.disablePreventDefaultVertically(pinchRecognizer);this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL});this.listeners={};var events=[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"];events.forEach(function(type){var listener=function listener(event){if(me.isActive()){me.emit(type,event)}};me.hammer.on(type,listener);me.listeners[type]=listener});hammerUtil.onTouch(this.hammer,function(event){me.emit(\"touch\",event)}.bind(this));hammerUtil.onRelease(this.hammer,function(event){me.emit(\"release\",event)}.bind(this));function onMouseWheel(event){if(this.isActive()){this.emit(\"mousewheel\",event)}var deltaX=0;var deltaY=0;if(\"detail\"in event){deltaY=event.detail*-1}if(\"wheelDelta\"in event){deltaY=event.wheelDelta}if(\"wheelDeltaY\"in event){deltaY=event.wheelDeltaY}if(\"wheelDeltaX\"in event){deltaX=event.wheelDeltaX*-1}if(\"axis\"in event&&event.axis===event.HORIZONTAL_AXIS){deltaX=deltaY*-1;deltaY=0}if(\"deltaY\"in event){deltaY=event.deltaY*-1}if(\"deltaX\"in event){deltaX=event.deltaX}if(!this.options.zoomKey||event[this.options.zoomKey])return;event.preventDefault();if(this.options.verticalScroll&&Math.abs(deltaY)>=Math.abs(deltaX)){var current=this.props.scrollTop;var adjusted=current+deltaY;if(this.isActive()){this._setScrollTop(adjusted);this._redraw();this.emit(\"scroll\",event)}}else if(this.options.horizontalScroll){var delta=Math.abs(deltaX)>=Math.abs(deltaY)?deltaX:deltaY;var diff=delta/120*(this.range.end-this.range.start)/20;var newStart=this.range.start+diff;var newEnd=this.range.end+diff;var options={animation:false,byUser:true,event:event};this.range.setRange(newStart,newEnd,options)}}if(this.dom.centerContainer.addEventListener){this.dom.centerContainer.addEventListener(\"mousewheel\",onMouseWheel.bind(this),false);this.dom.centerContainer.addEventListener(\"DOMMouseScroll\",onMouseWheel.bind(this),false)}else{this.dom.centerContainer.attachEvent(\"onmousewheel\",onMouseWheel.bind(this))}function onMouseScrollSide(event){if(!me.options.verticalScroll)return;event.preventDefault();if(me.isActive()){var adjusted=-event.target.scrollTop;me._setScrollTop(adjusted);me._redraw();me.emit(\"scrollSide\",event)}}this.dom.left.parentNode.addEventListener(\"scroll\",onMouseScrollSide.bind(this));this.dom.right.parentNode.addEventListener(\"scroll\",onMouseScrollSide.bind(this));var itemAddedToTimeline=false;function handleDragOver(event){if(event.preventDefault){event.preventDefault()}if(!event.target.className.indexOf(\"vis\")>-1)return;if(itemAddedToTimeline)return;event.dataTransfer.dropEffect=\"move\";itemAddedToTimeline=true;return false}function handleDrop(event){if(event.preventDefault){event.preventDefault()}if(event.stopPropagation){event.stopPropagation()}try{var itemData=JSON.parse(event.dataTransfer.getData(\"text\"));if(!itemData||!itemData.content)return}catch(err){return false}itemAddedToTimeline=false;event.center={x:event.clientX,y:event.clientY};if(itemData.target!==\"item\"){me.itemSet._onAddItem(event)}else{me.itemSet._onDropObjectOnItem(event)}me.emit(\"drop\",me.getEventProperties(event));return false}this.dom.center.addEventListener(\"dragover\",handleDragOver.bind(this),false);this.dom.center.addEventListener(\"drop\",handleDrop.bind(this),false);this.customTimes=[];this.touch={};this.redrawCount=0;this.initialDrawDone=false;this.initialRangeChangeDone=false;if(!container)throw new Error(\"No container provided\");container.appendChild(this.dom.root)};Core.prototype.setOptions=function(options){if(options){var fields=[\"width\",\"height\",\"minHeight\",\"maxHeight\",\"autoResize\",\"start\",\"end\",\"clickToUse\",\"dataAttributes\",\"hiddenDates\",\"locale\",\"locales\",\"moment\",\"rtl\",\"zoomKey\",\"horizontalScroll\",\"verticalScroll\"];util.selectiveExtend(fields,this.options,options);this.dom.rollingModeBtn.style.visibility=\"hidden\";if(this.options.rtl){this.dom.container.style.direction=\"rtl\";this.dom.backgroundVertical.className=\"vis-panel vis-background vis-vertical-rtl\"}if(this.options.verticalScroll){if(this.options.rtl){this.dom.rightContainer.className=\"vis-panel vis-right vis-vertical-scroll\"}else{this.dom.leftContainer.className=\"vis-panel vis-left vis-vertical-scroll\"}}if((0,_typeof3[\"default\"])(this.options.orientation)!==\"object\"){this.options.orientation={item:undefined,axis:undefined}}if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation={item:options.orientation,axis:options.orientation}}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"){if(\"item\"in options.orientation){this.options.orientation.item=options.orientation.item}if(\"axis\"in options.orientation){this.options.orientation.axis=options.orientation.axis}}}if(this.options.orientation.axis===\"both\"){if(!this.timeAxis2){var timeAxis2=this.timeAxis2=new TimeAxis(this.body);timeAxis2.setOptions=function(options){var _options=options?util.extend({},options):{};_options.orientation=\"top\";TimeAxis.prototype.setOptions.call(timeAxis2,_options)};this.components.push(timeAxis2)}}else{if(this.timeAxis2){var index=this.components.indexOf(this.timeAxis2);if(index!==-1){this.components.splice(index,1)}this.timeAxis2.destroy();this.timeAxis2=null}}if(typeof options.drawPoints==\"function\"){options.drawPoints={onRender:options.drawPoints}}if(\"hiddenDates\"in this.options){DateUtil.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates)}if(\"clickToUse\"in options){if(options.clickToUse){if(!this.activator){this.activator=new Activator(this.dom.root)}}else{if(this.activator){this.activator.destroy();delete this.activator}}}if(\"showCustomTime\"in options){throw new Error(\"Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])\")}this._initAutoResize()}this.components.forEach(function(component){return component.setOptions(options)});if(\"configure\"in options){if(!this.configurator){this.configurator=this._createConfigurator()}this.configurator.setOptions(options.configure);var appliedOptions=util.deepExtend({},this.options);this.components.forEach(function(component){util.deepExtend(appliedOptions,component.options)});this.configurator.setModuleOptions({global:appliedOptions})}this._redraw()};Core.prototype.isActive=function(){return!this.activator||this.activator.active};Core.prototype.destroy=function(){this.setItems(null);this.setGroups(null);this.off();this._stopAutoResize();if(this.dom.root.parentNode){this.dom.root.parentNode.removeChild(this.dom.root)}this.dom=null;if(this.activator){this.activator.destroy();delete this.activator}for(var event in this.listeners){if(this.listeners.hasOwnProperty(event)){delete this.listeners[event]}}this.listeners=null;this.hammer=null;this.components.forEach(function(component){return component.destroy()});this.body=null};Core.prototype.setCustomTime=function(time,id){var customTimes=this.customTimes.filter(function(component){return id===component.options.id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}if(customTimes.length>0){customTimes[0].setCustomTime(time)}};Core.prototype.getCustomTime=function(id){var customTimes=this.customTimes.filter(function(component){return component.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}return customTimes[0].getCustomTime()};Core.prototype.setCustomTimeTitle=function(title,id){var customTimes=this.customTimes.filter(function(component){return component.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}if(customTimes.length>0){return customTimes[0].setCustomTitle(title)}};Core.prototype.getEventProperties=function(event){return{event:event}};Core.prototype.addCustomTime=function(time,id){var timestamp=time!==undefined?util.convert(time,\"Date\").valueOf():new Date;var exists=this.customTimes.some(function(customTime){return customTime.options.id===id});if(exists){throw new Error(\"A custom time with id \"+(0,_stringify2[\"default\"])(id)+\" already exists\")}var customTime=new CustomTime(this.body,util.extend({},this.options,{time:timestamp,id:id}));this.customTimes.push(customTime);this.components.push(customTime);this._redraw();return id};Core.prototype.removeCustomTime=function(id){var customTimes=this.customTimes.filter(function(bar){return bar.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}customTimes.forEach(function(customTime){this.customTimes.splice(this.customTimes.indexOf(customTime),1);this.components.splice(this.components.indexOf(customTime),1);customTime.destroy()}.bind(this))};Core.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]};Core.prototype.fit=function(options,callback){var range=this.getDataRange();if(range.min===null&&range.max===null){return}var interval=range.max-range.min;var min=new Date(range.min.valueOf()-interval*.01);var max=new Date(range.max.valueOf()+interval*.01);var animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(min,max,{animation:animation},callback)};Core.prototype.getDataRange=function(){throw new Error(\"Cannot invoke abstract method getDataRange\")};Core.prototype.setWindow=function(start,end,options,callback){if(typeof arguments[2]==\"function\"){callback=arguments[2];options={}}var animation;var range;if(arguments.length==1){range=arguments[0];animation=range.animation!==undefined?range.animation:true;this.range.setRange(range.start,range.end,{animation:animation})}else if(arguments.length==2&&typeof arguments[1]==\"function\"){range=arguments[0];callback=arguments[1];animation=range.animation!==undefined?range.animation:true\n;this.range.setRange(range.start,range.end,{animation:animation},callback)}else{animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(start,end,{animation:animation},callback)}};Core.prototype.moveTo=function(time,options,callback){if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var interval=this.range.end-this.range.start;var t=util.convert(time,\"Date\").valueOf();var start=t-interval/2;var end=t+interval/2;var animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(start,end,{animation:animation},callback)};Core.prototype.getWindow=function(){var range=this.range.getRange();return{start:new Date(range.start),end:new Date(range.end)}};Core.prototype.zoomIn=function(percentage,options,callback){if(!percentage||percentage<0||percentage>1)return;if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var range=this.getWindow();var start=range.start.valueOf();var end=range.end.valueOf();var interval=end-start;var newInterval=interval/(1+percentage);var distance=(interval-newInterval)/2;var newStart=start+distance;var newEnd=end-distance;this.setWindow(newStart,newEnd,options,callback)};Core.prototype.zoomOut=function(percentage,options,callback){if(!percentage||percentage<0||percentage>1)return;if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var range=this.getWindow();var start=range.start.valueOf();var end=range.end.valueOf();var interval=end-start;var newStart=start-interval*percentage/2;var newEnd=end+interval*percentage/2;this.setWindow(newStart,newEnd,options,callback)};Core.prototype.redraw=function(){this._redraw()};Core.prototype._redraw=function(){this.redrawCount++;var resized=false;var options=this.options;var props=this.props;var dom=this.dom;if(!dom||!dom.container||dom.root.offsetWidth==0)return;DateUtil.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates);if(options.orientation==\"top\"){util.addClassName(dom.root,\"vis-top\");util.removeClassName(dom.root,\"vis-bottom\")}else{util.removeClassName(dom.root,\"vis-top\");util.addClassName(dom.root,\"vis-bottom\")}dom.root.style.maxHeight=util.option.asSize(options.maxHeight,\"\");dom.root.style.minHeight=util.option.asSize(options.minHeight,\"\");dom.root.style.width=util.option.asSize(options.width,\"\");props.border.left=(dom.centerContainer.offsetWidth-dom.centerContainer.clientWidth)/2;props.border.right=props.border.left;props.border.top=(dom.centerContainer.offsetHeight-dom.centerContainer.clientHeight)/2;props.border.bottom=props.border.top;props.borderRootHeight=dom.root.offsetHeight-dom.root.clientHeight;props.borderRootWidth=dom.root.offsetWidth-dom.root.clientWidth;if(dom.centerContainer.clientHeight===0){props.border.left=props.border.top;props.border.right=props.border.left}if(dom.root.clientHeight===0){props.borderRootWidth=props.borderRootHeight}props.center.height=dom.center.offsetHeight;props.left.height=dom.left.offsetHeight;props.right.height=dom.right.offsetHeight;props.top.height=dom.top.clientHeight||-props.border.top;props.bottom.height=dom.bottom.clientHeight||-props.border.bottom;var contentHeight=Math.max(props.left.height,props.center.height,props.right.height);var autoHeight=props.top.height+contentHeight+props.bottom.height+props.borderRootHeight+props.border.top+props.border.bottom;dom.root.style.height=util.option.asSize(options.height,autoHeight+\"px\");props.root.height=dom.root.offsetHeight;props.background.height=props.root.height-props.borderRootHeight;var containerHeight=props.root.height-props.top.height-props.bottom.height-props.borderRootHeight;props.centerContainer.height=containerHeight;props.leftContainer.height=containerHeight;props.rightContainer.height=props.leftContainer.height;props.root.width=dom.root.offsetWidth;props.background.width=props.root.width-props.borderRootWidth;if(!this.initialDrawDone){props.scrollbarWidth=util.getScrollBarWidth()}if(options.verticalScroll){if(options.rtl){props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth+props.scrollbarWidth||-props.border.right}else{props.left.width=dom.leftContainer.clientWidth+props.scrollbarWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right}}else{props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right}this._setDOM();var offset=this._updateScrollTop();if(options.orientation.item!=\"top\"){offset+=Math.max(props.centerContainer.height-props.center.height-props.border.top-props.border.bottom,0)}dom.center.style.top=offset+\"px\";var visibilityTop=props.scrollTop==0?\"hidden\":\"\";var visibilityBottom=props.scrollTop==props.scrollTopMin?\"hidden\":\"\";dom.shadowTop.style.visibility=visibilityTop;dom.shadowBottom.style.visibility=visibilityBottom;dom.shadowTopLeft.style.visibility=visibilityTop;dom.shadowBottomLeft.style.visibility=visibilityBottom;dom.shadowTopRight.style.visibility=visibilityTop;dom.shadowBottomRight.style.visibility=visibilityBottom;if(options.verticalScroll){dom.rightContainer.className=\"vis-panel vis-right vis-vertical-scroll\";dom.leftContainer.className=\"vis-panel vis-left vis-vertical-scroll\";dom.shadowTopRight.style.visibility=\"hidden\";dom.shadowBottomRight.style.visibility=\"hidden\";dom.shadowTopLeft.style.visibility=\"hidden\";dom.shadowBottomLeft.style.visibility=\"hidden\";dom.left.style.top=\"0px\";dom.right.style.top=\"0px\"}if(!options.verticalScroll||props.center.height<props.centerContainer.height){dom.left.style.top=offset+\"px\";dom.right.style.top=offset+\"px\";dom.rightContainer.className=dom.rightContainer.className.replace(new RegExp(\"(?:^|\\\\s)\"+\"vis-vertical-scroll\"+\"(?:\\\\s|$)\"),\" \");dom.leftContainer.className=dom.leftContainer.className.replace(new RegExp(\"(?:^|\\\\s)\"+\"vis-vertical-scroll\"+\"(?:\\\\s|$)\"),\" \");props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right;this._setDOM()}var contentsOverflow=props.center.height>props.centerContainer.height;this.hammer.get(\"pan\").set({direction:contentsOverflow?Hammer.DIRECTION_ALL:Hammer.DIRECTION_HORIZONTAL});this.components.forEach(function(component){resized=component.redraw()||resized});var MAX_REDRAW=5;if(resized){if(this.redrawCount<MAX_REDRAW){this.body.emitter.emit(\"_change\");return}else{console.log(\"WARNING: infinite loop in redraw?\")}}else{this.redrawCount=0}this.body.emitter.emit(\"changed\")};Core.prototype._setDOM=function(){var props=this.props;var dom=this.dom;props.leftContainer.width=props.left.width;props.rightContainer.width=props.right.width;var centerWidth=props.root.width-props.left.width-props.right.width-props.borderRootWidth;props.center.width=centerWidth;props.centerContainer.width=centerWidth;props.top.width=centerWidth;props.bottom.width=centerWidth;dom.background.style.height=props.background.height+\"px\";dom.backgroundVertical.style.height=props.background.height+\"px\";dom.backgroundHorizontal.style.height=props.centerContainer.height+\"px\";dom.centerContainer.style.height=props.centerContainer.height+\"px\";dom.leftContainer.style.height=props.leftContainer.height+\"px\";dom.rightContainer.style.height=props.rightContainer.height+\"px\";dom.background.style.width=props.background.width+\"px\";dom.backgroundVertical.style.width=props.centerContainer.width+\"px\";dom.backgroundHorizontal.style.width=props.background.width+\"px\";dom.centerContainer.style.width=props.center.width+\"px\";dom.top.style.width=props.top.width+\"px\";dom.bottom.style.width=props.bottom.width+\"px\";dom.background.style.left=\"0\";dom.background.style.top=\"0\";dom.backgroundVertical.style.left=props.left.width+props.border.left+\"px\";dom.backgroundVertical.style.top=\"0\";dom.backgroundHorizontal.style.left=\"0\";dom.backgroundHorizontal.style.top=props.top.height+\"px\";dom.centerContainer.style.left=props.left.width+\"px\";dom.centerContainer.style.top=props.top.height+\"px\";dom.leftContainer.style.left=\"0\";dom.leftContainer.style.top=props.top.height+\"px\";dom.rightContainer.style.left=props.left.width+props.center.width+\"px\";dom.rightContainer.style.top=props.top.height+\"px\";dom.top.style.left=props.left.width+\"px\";dom.top.style.top=\"0\";dom.bottom.style.left=props.left.width+\"px\";dom.bottom.style.top=props.top.height+props.centerContainer.height+\"px\";dom.center.style.left=\"0\";dom.left.style.left=\"0\";dom.right.style.left=\"0\"};Core.prototype.repaint=function(){throw new Error(\"Function repaint is deprecated. Use redraw instead.\")};Core.prototype.setCurrentTime=function(time){if(!this.currentTime){throw new Error(\"Option showCurrentTime must be true\")}this.currentTime.setCurrentTime(time)};Core.prototype.getCurrentTime=function(){if(!this.currentTime){throw new Error(\"Option showCurrentTime must be true\")}return this.currentTime.getCurrentTime()};Core.prototype._toTime=function(x){return DateUtil.toTime(this,x,this.props.center.width)};Core.prototype._toGlobalTime=function(x){return DateUtil.toTime(this,x,this.props.root.width)};Core.prototype._toScreen=function(time){return DateUtil.toScreen(this,time,this.props.center.width)};Core.prototype._toGlobalScreen=function(time){return DateUtil.toScreen(this,time,this.props.root.width)};Core.prototype._initAutoResize=function(){if(this.options.autoResize==true){this._startAutoResize()}else{this._stopAutoResize()}};Core.prototype._startAutoResize=function(){var me=this;this._stopAutoResize();this._onResize=function(){if(me.options.autoResize!=true){me._stopAutoResize();return}if(me.dom.root){if(me.dom.root.offsetWidth!=me.props.lastWidth||me.dom.root.offsetHeight!=me.props.lastHeight){me.props.lastWidth=me.dom.root.offsetWidth;me.props.lastHeight=me.dom.root.offsetHeight;me.props.scrollbarWidth=util.getScrollBarWidth();me.body.emitter.emit(\"_change\")}}};util.addEventListener(window,\"resize\",this._onResize);if(me.dom.root){me.props.lastWidth=me.dom.root.offsetWidth;me.props.lastHeight=me.dom.root.offsetHeight}this.watchTimer=setInterval(this._onResize,1e3)};Core.prototype._stopAutoResize=function(){if(this.watchTimer){clearInterval(this.watchTimer);this.watchTimer=undefined}if(this._onResize){util.removeEventListener(window,\"resize\",this._onResize);this._onResize=null}};Core.prototype._onTouch=function(event){this.touch.allowDragging=true;this.touch.initialScrollTop=this.props.scrollTop};Core.prototype._onPinch=function(event){this.touch.allowDragging=false};Core.prototype._onDrag=function(event){if(!event)return;if(!this.touch.allowDragging)return;var delta=event.deltaY;var oldScrollTop=this._getScrollTop();var newScrollTop=this._setScrollTop(this.touch.initialScrollTop+delta);if(this.options.verticalScroll){this.dom.left.parentNode.scrollTop=-this.props.scrollTop;this.dom.right.parentNode.scrollTop=-this.props.scrollTop}if(newScrollTop!=oldScrollTop){this.emit(\"verticalDrag\")}};Core.prototype._setScrollTop=function(scrollTop){this.props.scrollTop=scrollTop;this._updateScrollTop();return this.props.scrollTop};Core.prototype._updateScrollTop=function(){var scrollTopMin=Math.min(this.props.centerContainer.height-this.props.center.height,0);if(scrollTopMin!=this.props.scrollTopMin){if(this.options.orientation.item!=\"top\"){this.props.scrollTop+=scrollTopMin-this.props.scrollTopMin}this.props.scrollTopMin=scrollTopMin}if(this.props.scrollTop>0)this.props.scrollTop=0;if(this.props.scrollTop<scrollTopMin)this.props.scrollTop=scrollTopMin;if(this.options.verticalScroll){this.dom.left.parentNode.scrollTop=-this.props.scrollTop;this.dom.right.parentNode.scrollTop=-this.props.scrollTop}return this.props.scrollTop};Core.prototype._getScrollTop=function(){return this.props.scrollTop};Core.prototype._createConfigurator=function(){throw new Error(\"Cannot invoke abstract method _createConfigurator\")};module.exports=Core},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var DateUtil=__webpack_require__(36);var util=__webpack_require__(2);function TimeStep(start,end,minimumStep,hiddenDates,options){this.moment=moment;this.current=this.moment();this._start=this.moment();this._end=this.moment();this.autoScale=true;this.scale=\"day\";this.step=1;this.setRange(start,end,minimumStep);this.switchedDay=false;this.switchedMonth=false;this.switchedYear=false;if(Array.isArray(hiddenDates)){this.hiddenDates=hiddenDates}else if(hiddenDates!=undefined){this.hiddenDates=[hiddenDates]}else{this.hiddenDates=[]}this.format=TimeStep.FORMAT;this.options=options?options:{}}TimeStep.FORMAT={minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",week:\"w\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",week:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}};TimeStep.prototype.setMoment=function(moment){this.moment=moment;this.current=this.moment(this.current.valueOf());this._start=this.moment(this._start.valueOf());this._end=this.moment(this._end.valueOf())};TimeStep.prototype.setFormat=function(format){var defaultFormat=util.deepExtend({},TimeStep.FORMAT);this.format=util.deepExtend(defaultFormat,format)};TimeStep.prototype.setRange=function(start,end,minimumStep){if(!(start instanceof Date)||!(end instanceof Date)){throw\"No legal start or end date in method setRange\"}this._start=start!=undefined?this.moment(start.valueOf()):new Date;this._end=end!=undefined?this.moment(end.valueOf()):new Date;if(this.autoScale){this.setMinimumStep(minimumStep)}};TimeStep.prototype.start=function(){this.current=this._start.clone();this.roundToMinor()};TimeStep.prototype.roundToMinor=function(){if(this.scale==\"week\"){this.current.weekday(0)}switch(this.scale){case\"year\":this.current.year(this.step*Math.floor(this.current.year()/this.step));this.current.month(0);case\"month\":this.current.date(1);case\"week\":case\"day\":case\"weekday\":this.current.hours(0);case\"hour\":this.current.minutes(0);case\"minute\":this.current.seconds(0);case\"second\":this.current.milliseconds(0)}if(this.step!=1){switch(this.scale){case\"millisecond\":this.current.subtract(this.current.milliseconds()%this.step,\"milliseconds\");break;case\"second\":this.current.subtract(this.current.seconds()%this.step,\"seconds\");break;case\"minute\":this.current.subtract(this.current.minutes()%this.step,\"minutes\");break;case\"hour\":this.current.subtract(this.current.hours()%this.step,\"hours\");break;case\"weekday\":case\"day\":this.current.subtract((this.current.date()-1)%this.step,\"day\");break;case\"week\":this.current.subtract(this.current.week()%this.step,\"week\");break;case\"month\":this.current.subtract(this.current.month()%this.step,\"month\");break;case\"year\":this.current.subtract(this.current.year()%this.step,\"year\");break;default:break}}};TimeStep.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()};TimeStep.prototype.next=function(){var prev=this.current.valueOf();switch(this.scale){case\"millisecond\":this.current.add(this.step,\"millisecond\");break;case\"second\":this.current.add(this.step,\"second\");break;case\"minute\":this.current.add(this.step,\"minute\");break;case\"hour\":this.current.add(this.step,\"hour\");if(this.current.month()<6){this.current.subtract(this.current.hours()%this.step,\"hour\")}else{if(this.current.hours()%this.step!==0){this.current.add(this.step-this.current.hours()%this.step,\"hour\")}}break;case\"weekday\":case\"day\":this.current.add(this.step,\"day\");break;case\"week\":if(this.current.weekday()!==0){this.current.weekday(0);this.current.add(this.step,\"week\")}else if(this.options.showMajorLabels===false){this.current.add(this.step,\"week\")}else{var nextWeek=this.current.clone();nextWeek.add(1,\"week\");if(nextWeek.isSame(this.current,\"month\")){this.current.add(this.step,\"week\")}else{this.current.add(this.step,\"week\");this.current.date(1)}}break;case\"month\":this.current.add(this.step,\"month\");break;case\"year\":this.current.add(this.step,\"year\");break;default:break}if(this.step!=1){switch(this.scale){case\"millisecond\":if(this.current.milliseconds()>0&&this.current.milliseconds()<this.step)this.current.milliseconds(0);break;case\"second\":if(this.current.seconds()>0&&this.current.seconds()<this.step)this.current.seconds(0);break;case\"minute\":if(this.current.minutes()>0&&this.current.minutes()<this.step)this.current.minutes(0);break;case\"hour\":if(this.current.hours()>0&&this.current.hours()<this.step)this.current.hours(0);break;case\"weekday\":case\"day\":if(this.current.date()<this.step+1)this.current.date(1);break;case\"week\":if(this.current.week()<this.step)this.current.week(1);break;case\"month\":if(this.current.month()<this.step)this.current.month(0);break;case\"year\":break;default:break}}if(this.current.valueOf()==prev){this.current=this._end.clone()}this.switchedDay=false;this.switchedMonth=false;this.switchedYear=false;DateUtil.stepOverHiddenDates(this.moment,this,prev)};TimeStep.prototype.getCurrent=function(){return this.current};TimeStep.prototype.setScale=function(params){if(params&&typeof params.scale==\"string\"){this.scale=params.scale;this.step=params.step>0?params.step:1;this.autoScale=false}};TimeStep.prototype.setAutoScale=function(enable){this.autoScale=enable};TimeStep.prototype.setMinimumStep=function(minimumStep){if(minimumStep==undefined){return}var stepYear=1e3*60*60*24*30*12;var stepMonth=1e3*60*60*24*30;var stepDay=1e3*60*60*24;var stepHour=1e3*60*60;var stepMinute=1e3*60;var stepSecond=1e3;var stepMillisecond=1;if(stepYear*1e3>minimumStep){this.scale=\"year\";this.step=1e3}if(stepYear*500>minimumStep){this.scale=\"year\";this.step=500}if(stepYear*100>minimumStep){this.scale=\"year\";this.step=100}if(stepYear*50>minimumStep){this.scale=\"year\";this.step=50}if(stepYear*10>minimumStep){this.scale=\"year\";this.step=10}if(stepYear*5>minimumStep){this.scale=\"year\";this.step=5}if(stepYear>minimumStep){this.scale=\"year\";this.step=1}if(stepMonth*3>minimumStep){this.scale=\"month\";this.step=3}if(stepMonth>minimumStep){this.scale=\"month\";this.step=1}if(stepDay*5>minimumStep){this.scale=\"day\";this.step=5}if(stepDay*2>minimumStep){this.scale=\"day\";this.step=2}if(stepDay>minimumStep){this.scale=\"day\";this.step=1}if(stepDay/2>minimumStep){this.scale=\"weekday\";this.step=1}if(stepHour*4>minimumStep){this.scale=\"hour\";this.step=4}if(stepHour>minimumStep){this.scale=\"hour\";this.step=1}if(stepMinute*15>minimumStep){this.scale=\"minute\";this.step=15}if(stepMinute*10>minimumStep){this.scale=\"minute\";this.step=10}if(stepMinute*5>minimumStep){this.scale=\"minute\";this.step=5}if(stepMinute>minimumStep){this.scale=\"minute\";this.step=1}if(stepSecond*15>minimumStep){this.scale=\"second\";this.step=15}if(stepSecond*10>minimumStep){this.scale=\"second\";this.step=10}if(stepSecond*5>minimumStep){this.scale=\"second\";this.step=5}if(stepSecond>minimumStep){this.scale=\"second\";this.step=1}if(stepMillisecond*200>minimumStep){this.scale=\"millisecond\";this.step=200}if(stepMillisecond*100>minimumStep){this.scale=\"millisecond\";this.step=100}if(stepMillisecond*50>minimumStep){this.scale=\"millisecond\";this.step=50}if(stepMillisecond*10>minimumStep){this.scale=\"millisecond\";this.step=10}if(stepMillisecond*5>minimumStep){this.scale=\"millisecond\";this.step=5}if(stepMillisecond>minimumStep){this.scale=\"millisecond\";this.step=1}};TimeStep.snap=function(date,scale,step){var clone=moment(date);if(scale==\"year\"){var year=clone.year()+Math.round(clone.month()/12);clone.year(Math.round(year/step)*step);clone.month(0);clone.date(0);clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"month\"){if(clone.date()>15){clone.date(1);clone.add(1,\"month\")}else{clone.date(1)}clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"week\"){if(clone.weekday()>2){clone.weekday(0);clone.add(1,\"week\")}else{clone.weekday(0)}clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"day\"){switch(step){case 5:case 2:clone.hours(Math.round(clone.hours()/24)*24);break;default:clone.hours(Math.round(clone.hours()/12)*12);break}clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"weekday\"){switch(step){case 5:case 2:clone.hours(Math.round(clone.hours()/12)*12);break;default:clone.hours(Math.round(clone.hours()/6)*6);break}clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"hour\"){switch(step){case 4:clone.minutes(Math.round(clone.minutes()/60)*60);break;default:clone.minutes(Math.round(clone.minutes()/30)*30);break}clone.seconds(0);clone.milliseconds(0)}else if(scale==\"minute\"){switch(step){case 15:case 10:clone.minutes(Math.round(clone.minutes()/5)*5);clone.seconds(0);break;case 5:clone.seconds(Math.round(clone.seconds()/60)*60);break;default:clone.seconds(Math.round(clone.seconds()/30)*30);break}clone.milliseconds(0)}else if(scale==\"second\"){switch(step){case 15:case 10:clone.seconds(Math.round(clone.seconds()/5)*5);clone.milliseconds(0);break;case 5:clone.milliseconds(Math.round(clone.milliseconds()/1e3)*1e3);break;default:clone.milliseconds(Math.round(clone.milliseconds()/500)*500);break}}else if(scale==\"millisecond\"){var _step=step>5?step/2:1;clone.milliseconds(Math.round(clone.milliseconds()/_step)*_step)}return clone};TimeStep.prototype.isMajor=function(){if(this.switchedYear==true){switch(this.scale){case\"year\":case\"month\":case\"week\":case\"weekday\":case\"day\":case\"hour\":case\"minute\":case\"second\":case\"millisecond\":return true;default:return false}}else if(this.switchedMonth==true){switch(this.scale){case\"week\":case\"weekday\":case\"day\":case\"hour\":case\"minute\":case\"second\":case\"millisecond\":return true;default:return false}}else if(this.switchedDay==true){switch(this.scale){case\"millisecond\":case\"second\":case\"minute\":case\"hour\":return true;default:return false}}var date=this.moment(this.current);switch(this.scale){case\"millisecond\":return date.milliseconds()==0;case\"second\":return date.seconds()==0;case\"minute\":return date.hours()==0&&date.minutes()==0;case\"hour\":return date.hours()==0;case\"weekday\":case\"day\":return date.date()==1;case\"week\":return date.date()==1;case\"month\":return date.month()==0;case\"year\":return false;default:return false}};TimeStep.prototype.getLabelMinor=function(date){if(date==undefined){date=this.current}if(date instanceof Date){date=this.moment(date)}if(typeof this.format.minorLabels===\"function\"){return this.format.minorLabels(date,this.scale,this.step)}var format=this.format.minorLabels[this.scale];switch(this.scale){case\"week\":if(this.isMajor()&&date.weekday()!==0){return\"\"}default:return format&&format.length>0?this.moment(date).format(format):\"\"}};TimeStep.prototype.getLabelMajor=function(date){if(date==undefined){date=this.current}if(date instanceof Date){date=this.moment(date)}if(typeof this.format.majorLabels===\"function\"){return this.format.majorLabels(date,this.scale,this.step)}var format=this.format.majorLabels[this.scale];return format&&format.length>0?this.moment(date).format(format):\"\"};TimeStep.prototype.getClassName=function(){var _moment=this.moment;var m=this.moment(this.current);var current=m.locale?m.locale(\"en\"):m.lang(\"en\");var step=this.step;var classNames=[];function even(value){return value/step%2==0?\" vis-even\":\" vis-odd\"}function today(date){if(date.isSame(new Date,\"day\")){return\" vis-today\"}if(date.isSame(_moment().add(1,\"day\"),\"day\")){return\" vis-tomorrow\"}if(date.isSame(_moment().add(-1,\"day\"),\"day\")){return\" vis-yesterday\"}return\"\"}function currentWeek(date){return date.isSame(new Date,\"week\")?\" vis-current-week\":\"\"}function currentMonth(date){return date.isSame(new Date,\"month\")?\" vis-current-month\":\"\"}function currentYear(date){return date.isSame(new Date,\"year\")?\" vis-current-year\":\"\"}switch(this.scale){case\"millisecond\":classNames.push(today(current));classNames.push(even(current.milliseconds()));break;case\"second\":classNames.push(today(current));classNames.push(even(current.seconds()));break;case\"minute\":classNames.push(today(current));classNames.push(even(current.minutes()));break;case\"hour\":classNames.push(\"vis-h\"+current.hours()+(this.step==4?\"-h\"+(current.hours()+4):\"\"));classNames.push(today(current));classNames.push(even(current.hours()));break;case\"weekday\":classNames.push(\"vis-\"+current.format(\"dddd\").toLowerCase());classNames.push(today(current));classNames.push(currentWeek(current));classNames.push(even(current.date()));break;case\"day\":classNames.push(\"vis-day\"+current.date());classNames.push(\"vis-\"+current.format(\"MMMM\").toLowerCase());classNames.push(today(current));classNames.push(currentMonth(current));classNames.push(this.step<=2?today(current):\"\");classNames.push(this.step<=2?\"vis-\"+current.format(\"dddd\").toLowerCase():\"\");classNames.push(even(current.date()-1));break;case\"week\":classNames.push(\"vis-week\"+current.format(\"w\"));classNames.push(currentWeek(current));classNames.push(even(current.week()));break;case\"month\":classNames.push(\"vis-\"+current.format(\"MMMM\").toLowerCase());classNames.push(currentMonth(current));classNames.push(even(current.month()));break;case\"year\":classNames.push(\"vis-year\"+current.year());classNames.push(currentYear(current));classNames.push(even(current.year()));break}return classNames.filter(String).join(\" \")};module.exports=TimeStep},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);var Component=__webpack_require__(16);var moment=__webpack_require__(9);var locales=__webpack_require__(98);function CurrentTime(body,options){this.body=body;this.defaultOptions={rtl:false,showCurrentTime:true,moment:moment,locales:locales,locale:\"en\"};this.options=util.extend({},this.defaultOptions);this.offset=0;this._create();this.setOptions(options)}CurrentTime.prototype=new Component;CurrentTime.prototype._create=function(){var bar=document.createElement(\"div\");bar.className=\"vis-current-time\";bar.style.position=\"absolute\";bar.style.top=\"0px\";bar.style.height=\"100%\";this.bar=bar};CurrentTime.prototype.destroy=function(){this.options.showCurrentTime=false;this.redraw();this.body=null};CurrentTime.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"rtl\",\"showCurrentTime\",\"moment\",\"locale\",\"locales\"],this.options,options)}};CurrentTime.prototype.redraw=function(){if(this.options.showCurrentTime){var parent=this.body.dom.backgroundVertical;if(this.bar.parentNode!=parent){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}parent.appendChild(this.bar);this.start()}var now=this.options.moment((new Date).valueOf()+this.offset);var x=this.body.util.toScreen(now);var locale=this.options.locales[this.options.locale];if(!locale){if(!this.warned){console.log(\"WARNING: options.locales['\"+this.options.locale+\"'] not found. See http://visjs.org/docs/timeline/#Localization\");this.warned=true}locale=this.options.locales[\"en\"]}var title=locale.current+\" \"+locale.time+\": \"+now.format(\"dddd, MMMM Do YYYY, H:mm:ss\");title=title.charAt(0).toUpperCase()+title.substring(1);if(this.options.rtl){this.bar.style.right=x+\"px\"}else{this.bar.style.left=x+\"px\"}this.bar.title=title}else{if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}this.stop()}return false};CurrentTime.prototype.start=function(){var me=this;function update(){me.stop();var scale=me.body.range.conversion(me.body.domProps.center.width).scale;var interval=1/scale/10;if(interval<30)interval=30;if(interval>1e3)interval=1e3;me.redraw();me.body.emitter.emit(\"currentTimeTick\");me.currentTimeTimer=setTimeout(update,interval)}update()};CurrentTime.prototype.stop=function(){if(this.currentTimeTimer!==undefined){clearTimeout(this.currentTimeTimer);delete this.currentTimeTimer}};CurrentTime.prototype.setCurrentTime=function(time){var t=util.convert(time,\"Date\").valueOf();var now=(new Date).valueOf();this.offset=t-now;this.redraw()};CurrentTime.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)};module.exports=CurrentTime},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var stack=__webpack_require__(100);function Group(groupId,data,itemSet){this.groupId=groupId;this.subgroups={};this.subgroupStack={};this.subgroupStackAll=false;this.doInnerStack=false;this.subgroupIndex=0;this.subgroupOrderer=data&&data.subgroupOrder;this.itemSet=itemSet;this.isVisible=null;this.stackDirty=true;if(data&&data.nestedGroups){this.nestedGroups=data.nestedGroups;if(data.showNested==false){this.showNested=false}else{this.showNested=true}}if(data&&data.subgroupStack){if(typeof data.subgroupStack===\"boolean\"){this.doInnerStack=data.subgroupStack;this.subgroupStackAll=data.subgroupStack}else{for(var key in data.subgroupStack){this.subgroupStack[key]=data.subgroupStack[key];this.doInnerStack=this.doInnerStack||data.subgroupStack[key]}}}this.nestedInGroup=null;this.dom={};this.props={label:{width:0,height:0}};this.className=null;this.items={};this.visibleItems=[];this.itemsInRange=[];this.orderedItems={byStart:[],byEnd:[]};this.checkRangedItems=false;var me=this;this.itemSet.body.emitter.on(\"checkRangedItems\",function(){me.checkRangedItems=true});this._create();this.setData(data)}Group.prototype._create=function(){var label=document.createElement(\"div\");if(this.itemSet.options.groupEditable.order){label.className=\"vis-label draggable\"}else{label.className=\"vis-label\"}this.dom.label=label;var inner=document.createElement(\"div\");inner.className=\"vis-inner\";label.appendChild(inner);this.dom.inner=inner;var foreground=document.createElement(\"div\");foreground.className=\"vis-group\";foreground[\"timeline-group\"]=this;this.dom.foreground=foreground;this.dom.background=document.createElement(\"div\");this.dom.background.className=\"vis-group\";this.dom.axis=document.createElement(\"div\");this.dom.axis.className=\"vis-group\";this.dom.marker=document.createElement(\"div\");this.dom.marker.style.visibility=\"hidden\";this.dom.marker.style.position=\"absolute\";this.dom.marker.innerHTML=\"\";this.dom.background.appendChild(this.dom.marker)};Group.prototype.setData=function(data){var content;var templateFunction;if(this.itemSet.options&&this.itemSet.options.groupTemplate){templateFunction=this.itemSet.options.groupTemplate.bind(this);content=templateFunction(data,this.dom.inner)}else{content=data&&data.content}if(content instanceof Element){this.dom.inner.appendChild(content);while(this.dom.inner.firstChild){this.dom.inner.removeChild(this.dom.inner.firstChild)}this.dom.inner.appendChild(content)}else if(content instanceof Object){templateFunction(data,this.dom.inner)}else if(content!==undefined&&content!==null){this.dom.inner.innerHTML=content}else{this.dom.inner.innerHTML=this.groupId||\"\"}this.dom.label.title=data&&data.title||\"\";if(!this.dom.inner.firstChild){util.addClassName(this.dom.inner,\"vis-hidden\")}else{util.removeClassName(this.dom.inner,\"vis-hidden\")}if(data&&data.nestedGroups){if(!this.nestedGroups||this.nestedGroups!=data.nestedGroups){this.nestedGroups=data.nestedGroups}if(data.showNested!==undefined||this.showNested===undefined){if(data.showNested==false){this.showNested=false}else{this.showNested=true}}util.addClassName(this.dom.label,\"vis-nesting-group\");var collapsedDirClassName=this.itemSet.options.rtl?\"collapsed-rtl\":\"collapsed\";if(this.showNested){util.removeClassName(this.dom.label,collapsedDirClassName);util.addClassName(this.dom.label,\"expanded\")}else{util.removeClassName(this.dom.label,\"expanded\");util.addClassName(this.dom.label,collapsedDirClassName)}}else if(this.nestedGroups){this.nestedGroups=null;collapsedDirClassName=this.itemSet.options.rtl?\"collapsed-rtl\":\"collapsed\";util.removeClassName(this.dom.label,collapsedDirClassName);util.removeClassName(this.dom.label,\"expanded\");util.removeClassName(this.dom.label,\"vis-nesting-group\")}if(data&&data.nestedInGroup){util.addClassName(this.dom.label,\"vis-nested-group\");if(this.itemSet.options&&this.itemSet.options.rtl){this.dom.inner.style.paddingRight=\"30px\"}else{\nthis.dom.inner.style.paddingLeft=\"30px\"}}var className=data&&data.className||null;if(className!=this.className){if(this.className){util.removeClassName(this.dom.label,this.className);util.removeClassName(this.dom.foreground,this.className);util.removeClassName(this.dom.background,this.className);util.removeClassName(this.dom.axis,this.className)}util.addClassName(this.dom.label,className);util.addClassName(this.dom.foreground,className);util.addClassName(this.dom.background,className);util.addClassName(this.dom.axis,className);this.className=className}if(this.style){util.removeCssText(this.dom.label,this.style);this.style=null}if(data&&data.style){util.addCssText(this.dom.label,data.style);this.style=data.style}};Group.prototype.getLabelWidth=function(){return this.props.label.width};Group.prototype._didMarkerHeightChange=function(){var markerHeight=this.dom.marker.clientHeight;if(markerHeight!=this.lastMarkerHeight){this.lastMarkerHeight=markerHeight;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.items,function(item,key){item.dirty=true;if(item.displayed){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}return true}};Group.prototype._calculateGroupSizeAndPosition=function(){var offsetTop=this.dom.foreground.offsetTop;var offsetLeft=this.dom.foreground.offsetLeft;var offsetWidth=this.dom.foreground.offsetWidth;this.top=offsetTop;this.right=offsetLeft;this.width=offsetWidth};Group.prototype._redrawItems=function(forceRestack,lastIsVisible,margin,range){var restack=forceRestack||this.stackDirty||this.isVisible&&!lastIsVisible;if(restack){var visibleSubgroups={};var subgroup=null;if(typeof this.itemSet.options.order===\"function\"){var me=this;var limitSize=false;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.items,function(item,key){if(!item.displayed){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length;me.visibleItems.push(item)}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}util.forEach(this.items,function(item){item.repositionX(limitSize)});if(this.doInnerStack&&this.itemSet.options.stackSubgroups){for(subgroup in this.subgroups){visibleSubgroups[subgroup]=this.subgroups[subgroup].items.slice().sort(function(a,b){return me.itemSet.options.order(a.data,b.data)})}stack.stackSubgroupsWithInnerStack(visibleSubgroups,margin,this.subgroups)}else{var customOrderedItems=this.orderedItems.byStart.slice().sort(function(a,b){return me.itemSet.options.order(a.data,b.data)});stack.stack(customOrderedItems,margin,true)}this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range)}else{this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range);if(this.itemSet.options.stack){if(this.doInnerStack&&this.itemSet.options.stackSubgroups){for(subgroup in this.subgroups){visibleSubgroups[subgroup]=this.subgroups[subgroup].items}stack.stackSubgroupsWithInnerStack(visibleSubgroups,margin,this.subgroups)}else{stack.stack(this.visibleItems,margin,true)}}else{stack.nostack(this.visibleItems,margin,this.subgroups,this.itemSet.options.stackSubgroups)}}this.stackDirty=false}};Group.prototype._didResize=function(resized,height){resized=util.updateProperty(this,\"height\",height)||resized;var labelWidth=this.dom.inner.clientWidth;var labelHeight=this.dom.inner.clientHeight;resized=util.updateProperty(this.props.label,\"width\",labelWidth)||resized;resized=util.updateProperty(this.props.label,\"height\",labelHeight)||resized;return resized};Group.prototype._applyGroupHeight=function(height){this.dom.background.style.height=height+\"px\";this.dom.foreground.style.height=height+\"px\";this.dom.label.style.height=height+\"px\"};Group.prototype._updateItemsVerticalPosition=function(margin){for(var i=0,ii=this.visibleItems.length;i<ii;i++){var item=this.visibleItems[i];item.repositionY(margin);if(!this.isVisible&&this.groupId!=\"__background__\"){if(item.displayed)item.hide()}}};Group.prototype.redraw=function(range,margin,forceRestack,returnQueue){var resized=false;var lastIsVisible=this.isVisible;var height;var queue=[function(){forceRestack=this._didMarkerHeightChange.bind(this)}.bind(this),this._updateSubGroupHeights.bind(this,margin),this._calculateGroupSizeAndPosition.bind(this),function(){this.isVisible=this._isGroupVisible.bind(this)(range,margin)}.bind(this),function(){this._redrawItems.bind(this)(forceRestack,lastIsVisible,margin,range)}.bind(this),this._updateSubgroupsSizes.bind(this),function(){height=this._calculateHeight.bind(this)(margin)}.bind(this),this._calculateGroupSizeAndPosition.bind(this),function(){resized=this._didResize.bind(this)(resized,height)}.bind(this),function(){this._applyGroupHeight.bind(this)(height)}.bind(this),function(){this._updateItemsVerticalPosition.bind(this)(margin)}.bind(this),function(){if(!this.isVisible&&this.height){resized=false}return resized}];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};Group.prototype._updateSubGroupHeights=function(margin){if((0,_keys2[\"default\"])(this.subgroups).length>0){var me=this;this.resetSubgroups();util.forEach(this.visibleItems,function(item){if(item.data.subgroup!==undefined){me.subgroups[item.data.subgroup].height=Math.max(me.subgroups[item.data.subgroup].height,item.height+margin.item.vertical);me.subgroups[item.data.subgroup].visible=true}})}};Group.prototype._isGroupVisible=function(range,margin){return this.top<=range.body.domProps.centerContainer.height-range.body.domProps.scrollTop+margin.axis&&this.top+this.height+margin.axis>=-range.body.domProps.scrollTop};Group.prototype._calculateHeight=function(margin){var height;var itemsInRange=this.visibleItems;if(itemsInRange.length>0){var min=itemsInRange[0].top;var max=itemsInRange[0].top+itemsInRange[0].height;util.forEach(itemsInRange,function(item){min=Math.min(min,item.top);max=Math.max(max,item.top+item.height)});if(min>margin.axis){var offset=min-margin.axis;max-=offset;util.forEach(itemsInRange,function(item){item.top-=offset})}height=max+margin.item.vertical/2}else{height=0}height=Math.max(height,this.props.label.height);return height};Group.prototype.show=function(){if(!this.dom.label.parentNode){this.itemSet.dom.labelSet.appendChild(this.dom.label)}if(!this.dom.foreground.parentNode){this.itemSet.dom.foreground.appendChild(this.dom.foreground)}if(!this.dom.background.parentNode){this.itemSet.dom.background.appendChild(this.dom.background)}if(!this.dom.axis.parentNode){this.itemSet.dom.axis.appendChild(this.dom.axis)}};Group.prototype.hide=function(){var label=this.dom.label;if(label.parentNode){label.parentNode.removeChild(label)}var foreground=this.dom.foreground;if(foreground.parentNode){foreground.parentNode.removeChild(foreground)}var background=this.dom.background;if(background.parentNode){background.parentNode.removeChild(background)}var axis=this.dom.axis;if(axis.parentNode){axis.parentNode.removeChild(axis)}};Group.prototype.add=function(item){this.items[item.id]=item;item.setParent(this);this.stackDirty=true;if(item.data.subgroup!==undefined){this._addToSubgroup(item);this.orderSubgroups()}if(this.visibleItems.indexOf(item)==-1){var range=this.itemSet.body.range;this._checkIfVisible(item,this.visibleItems,range)}};Group.prototype._addToSubgroup=function(item,subgroupId){subgroupId=subgroupId||item.data.subgroup;if(subgroupId!=undefined&&this.subgroups[subgroupId]===undefined){this.subgroups[subgroupId]={height:0,top:0,start:item.data.start,end:item.data.end||item.data.start,visible:false,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[subgroupId]||false};this.subgroupIndex++}if(new Date(item.data.start)<new Date(this.subgroups[subgroupId].start)){this.subgroups[subgroupId].start=item.data.start}var itemEnd=item.data.end||item.data.start;if(new Date(itemEnd)>new Date(this.subgroups[subgroupId].end)){this.subgroups[subgroupId].end=itemEnd}this.subgroups[subgroupId].items.push(item)};Group.prototype._updateSubgroupsSizes=function(){var me=this;if(me.subgroups){for(var subgroup in me.subgroups){var initialEnd=me.subgroups[subgroup].items[0].data.end||me.subgroups[subgroup].items[0].data.start;var newStart=me.subgroups[subgroup].items[0].data.start;var newEnd=initialEnd-1;me.subgroups[subgroup].items.forEach(function(item){if(new Date(item.data.start)<new Date(newStart)){newStart=item.data.start}var itemEnd=item.data.end||item.data.start;if(new Date(itemEnd)>new Date(newEnd)){newEnd=itemEnd}});me.subgroups[subgroup].start=newStart;me.subgroups[subgroup].end=new Date(newEnd-1)}}};Group.prototype.orderSubgroups=function(){if(this.subgroupOrderer!==undefined){var sortArray=[];var subgroup;if(typeof this.subgroupOrderer==\"string\"){for(subgroup in this.subgroups){sortArray.push({subgroup:subgroup,sortField:this.subgroups[subgroup].items[0].data[this.subgroupOrderer]})}sortArray.sort(function(a,b){return a.sortField-b.sortField})}else if(typeof this.subgroupOrderer==\"function\"){for(subgroup in this.subgroups){sortArray.push(this.subgroups[subgroup].items[0].data)}sortArray.sort(this.subgroupOrderer)}if(sortArray.length>0){for(var i=0;i<sortArray.length;i++){this.subgroups[sortArray[i].subgroup].index=i}}}};Group.prototype.resetSubgroups=function(){for(var subgroup in this.subgroups){if(this.subgroups.hasOwnProperty(subgroup)){this.subgroups[subgroup].visible=false;this.subgroups[subgroup].height=0}}};Group.prototype.remove=function(item){delete this.items[item.id];item.setParent(null);this.stackDirty=true;var index=this.visibleItems.indexOf(item);if(index!=-1)this.visibleItems.splice(index,1);if(item.data.subgroup!==undefined){this._removeFromSubgroup(item);this.orderSubgroups()}};Group.prototype._removeFromSubgroup=function(item,subgroupId){subgroupId=subgroupId||item.data.subgroup;if(subgroupId!=undefined){var subgroup=this.subgroups[subgroupId];if(subgroup){var itemIndex=subgroup.items.indexOf(item);if(itemIndex>=0){subgroup.items.splice(itemIndex,1);if(!subgroup.items.length){delete this.subgroups[subgroupId]}else{this._updateSubgroupsSizes()}}}}};Group.prototype.removeFromDataSet=function(item){this.itemSet.removeItem(item.id)};Group.prototype.order=function(){var array=util.toArray(this.items);var startArray=[];var endArray=[];for(var i=0;i<array.length;i++){if(array[i].data.end!==undefined){endArray.push(array[i])}startArray.push(array[i])}this.orderedItems={byStart:startArray,byEnd:endArray};stack.orderByStart(this.orderedItems.byStart);stack.orderByEnd(this.orderedItems.byEnd)};Group.prototype._updateItemsInRange=function(orderedItems,oldVisibleItems,range){var visibleItems=[];var visibleItemsLookup={};var interval=(range.end-range.start)/4;var lowerBound=range.start-interval;var upperBound=range.end+interval;var searchFunction=function searchFunction(value){if(value<lowerBound){return-1}else if(value<=upperBound){return 0}else{return 1}};if(oldVisibleItems.length>0){for(var i=0;i<oldVisibleItems.length;i++){this._checkIfVisibleWithReference(oldVisibleItems[i],visibleItems,visibleItemsLookup,range)}}var initialPosByStart=util.binarySearchCustom(orderedItems.byStart,searchFunction,\"data\",\"start\");this._traceVisible(initialPosByStart,orderedItems.byStart,visibleItems,visibleItemsLookup,function(item){return item.data.start<lowerBound||item.data.start>upperBound});if(this.checkRangedItems==true){this.checkRangedItems=false;for(i=0;i<orderedItems.byEnd.length;i++){this._checkIfVisibleWithReference(orderedItems.byEnd[i],visibleItems,visibleItemsLookup,range)}}else{var initialPosByEnd=util.binarySearchCustom(orderedItems.byEnd,searchFunction,\"data\",\"end\");this._traceVisible(initialPosByEnd,orderedItems.byEnd,visibleItems,visibleItemsLookup,function(item){return item.data.end<lowerBound||item.data.end>upperBound})}var redrawQueue={};var redrawQueueLength=0;for(i=0;i<visibleItems.length;i++){var item=visibleItems[i];if(!item.displayed){var returnQueue=true;redrawQueue[i]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[i].length}}var needRedraw=redrawQueueLength>0;if(needRedraw){for(var j=0;j<redrawQueueLength;j++){util.forEach(redrawQueue,function(fns){fns[j]()})}}for(i=0;i<visibleItems.length;i++){visibleItems[i].repositionX()}return visibleItems};Group.prototype._traceVisible=function(initialPos,items,visibleItems,visibleItemsLookup,breakCondition){if(initialPos!=-1){var i,item;for(i=initialPos;i>=0;i--){item=items[i];if(breakCondition(item)){break}else{if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}}for(i=initialPos+1;i<items.length;i++){item=items[i];if(breakCondition(item)){break}else{if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}}}};Group.prototype._checkIfVisible=function(item,visibleItems,range){if(item.isVisible(range)){if(!item.displayed)item.show();item.repositionX();visibleItems.push(item)}else{if(item.displayed)item.hide()}};Group.prototype._checkIfVisibleWithReference=function(item,visibleItems,visibleItemsLookup,range){if(item.isVisible(range)){if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}else{if(item.displayed)item.hide()}};Group.prototype.changeSubgroup=function(item,oldSubgroup,newSubgroup){this._removeFromSubgroup(item,oldSubgroup);this._addToSubgroup(item,newSubgroup);this.orderSubgroups()};module.exports=Group},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Group=__webpack_require__(68);function BackgroundGroup(groupId,data,itemSet){Group.call(this,groupId,data,itemSet);this.width=0;this.height=0;this.top=0;this.left=0}BackgroundGroup.prototype=(0,_create2[\"default\"])(Group.prototype);BackgroundGroup.prototype.redraw=function(range,margin,forceRestack){var resized=false;this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range);this.width=this.dom.background.offsetWidth;this.dom.background.style.height=\"0\";for(var i=0,ii=this.visibleItems.length;i<ii;i++){var item=this.visibleItems[i];item.repositionY(margin)}return resized};BackgroundGroup.prototype.show=function(){if(!this.dom.background.parentNode){this.itemSet.dom.background.appendChild(this.dom.background)}};module.exports=BackgroundGroup},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function RangeItem(data,conversion,options){this.props={content:{width:0}};this.overflow=false;this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data.id)}if(data.end==undefined){throw new Error('Property \"end\" missing in item '+data.id)}}Item.call(this,data,conversion,options)}RangeItem.prototype=new Item(null,null,null);RangeItem.prototype.baseClassName=\"vis-item vis-range\";RangeItem.prototype.isVisible=function(range){return this.data.start<range.end&&this.data.end>range.start};RangeItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"div\");this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-item-overflow\";this.dom.box.appendChild(this.dom.frame);this.dom.visibleFrame=document.createElement(\"div\");this.dom.visibleFrame.className=\"vis-item-visible-frame\";this.dom.box.appendChild(this.dom.visibleFrame);this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.frame.appendChild(this.dom.content);this.dom.box[\"timeline-item\"]=this;this.dirty=true}};RangeItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var foreground=this.parent.dom.foreground;if(!foreground){throw new Error(\"Cannot redraw item: parent has no foreground container element\")}foreground.appendChild(this.dom.box)}this.displayed=true};RangeItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.box);this._updateStyle(this.dom.box);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.box.className=this.baseClassName+className;this.dom.content.style.maxWidth=\"none\"}};RangeItem.prototype._getDomComponentsSizes=function(){this.overflow=window.getComputedStyle(this.dom.frame).overflow!==\"hidden\";return{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}};RangeItem.prototype._updateDomComponentsSizes=function(sizes){this.props.content.width=sizes.content.width;this.height=sizes.box.height;this.dom.content.style.maxWidth=\"\";this.dirty=false};RangeItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box);this._repaintDeleteButton(this.dom.box);this._repaintDragCenter();this._repaintDragLeft();this._repaintDragRight()};RangeItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes.bind(this)()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};RangeItem.prototype.show=function(){if(!this.displayed){this.redraw()}};RangeItem.prototype.hide=function(){if(this.displayed){var box=this.dom.box;if(box.parentNode){box.parentNode.removeChild(box)}this.displayed=false}};RangeItem.prototype.repositionX=function(limitSize){var parentWidth=this.parent.width;var start=this.conversion.toScreen(this.data.start);var end=this.conversion.toScreen(this.data.end);var align=this.data.align===undefined?this.options.align:this.data.align;var contentStartPosition;var contentWidth;if(this.data.limitSize!==false&&(limitSize===undefined||limitSize===true)){if(start<-parentWidth){start=-parentWidth}if(end>2*parentWidth){end=2*parentWidth}}var boxWidth=Math.max(end-start+.5,1);if(this.overflow){if(this.options.rtl){this.right=start}else{this.left=start}this.width=boxWidth+this.props.content.width;contentWidth=this.props.content.width}else{if(this.options.rtl){this.right=start}else{this.left=start}this.width=boxWidth;contentWidth=Math.min(end-start,this.props.content.width)}if(this.options.rtl){this.dom.box.style.right=this.right+\"px\"}else{this.dom.box.style.left=this.left+\"px\"}this.dom.box.style.width=boxWidth+\"px\";switch(align){case\"left\":if(this.options.rtl){this.dom.content.style.right=\"0\"}else{this.dom.content.style.left=\"0\"}break;case\"right\":if(this.options.rtl){this.dom.content.style.right=Math.max(boxWidth-contentWidth,0)+\"px\"}else{this.dom.content.style.left=Math.max(boxWidth-contentWidth,0)+\"px\"}break;case\"center\":if(this.options.rtl){this.dom.content.style.right=Math.max((boxWidth-contentWidth)/2,0)+\"px\"}else{this.dom.content.style.left=Math.max((boxWidth-contentWidth)/2,0)+\"px\"}break;default:if(this.overflow){if(end>0){contentStartPosition=Math.max(-start,0)}else{contentStartPosition=-contentWidth}}else{if(start<0){contentStartPosition=-start}else{contentStartPosition=0}}if(this.options.rtl){this.dom.content.style.right=contentStartPosition+\"px\"}else{this.dom.content.style.left=contentStartPosition+\"px\";this.dom.content.style.width=\"calc(100% - \"+contentStartPosition+\"px)\"}}};RangeItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var box=this.dom.box;if(orientation==\"top\"){box.style.top=this.top+\"px\"}else{box.style.top=this.parent.height-this.top-this.height+\"px\"}};RangeItem.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var dragLeft=document.createElement(\"div\");dragLeft.className=\"vis-drag-left\";dragLeft.dragLeftItem=this;this.dom.box.appendChild(dragLeft);this.dom.dragLeft=dragLeft}else if(!this.selected&&!this.options.itemsAlwaysDraggable.range&&this.dom.dragLeft){if(this.dom.dragLeft.parentNode){this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft)}this.dom.dragLeft=null}};RangeItem.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var dragRight=document.createElement(\"div\");dragRight.className=\"vis-drag-right\";dragRight.dragRightItem=this;this.dom.box.appendChild(dragRight);this.dom.dragRight=dragRight}else if(!this.selected&&!this.options.itemsAlwaysDraggable.range&&this.dom.dragRight){if(this.dom.dragRight.parentNode){this.dom.dragRight.parentNode.removeChild(this.dom.dragRight)}this.dom.dragRight=null}};module.exports=RangeItem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ColorPicker=__webpack_require__(179)[\"default\"];var Configurator=function(){function Configurator(parentModule,defaultContainer,configureOptions){var pixelRatio=arguments.length>3&&arguments[3]!==undefined?arguments[3]:1;(0,_classCallCheck3[\"default\"])(this,Configurator);this.parent=parentModule;this.changedOptions=[];this.container=defaultContainer;this.allowCreation=false;this.options={};this.initialized=false;this.popupCounter=0;this.defaultOptions={enabled:false,filter:true,container:undefined,showButton:true};util.extend(this.options,this.defaultOptions);this.configureOptions=configureOptions;this.moduleOptions={};this.domElements=[];this.popupDiv={};this.popupLimit=5;this.popupHistory={};this.colorPicker=new ColorPicker(pixelRatio);this.wrapper=undefined}(0,_createClass3[\"default\"])(Configurator,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){this.popupHistory={};this._removePopup();var enabled=true;if(typeof options===\"string\"){this.options.filter=options}else if(options instanceof Array){this.options.filter=options.join()}else if((typeof options===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(options))===\"object\"){if(options.container!==undefined){this.options.container=options.container}if(options.filter!==undefined){this.options.filter=options.filter}if(options.showButton!==undefined){this.options.showButton=options.showButton}if(options.enabled!==undefined){enabled=options.enabled}}else if(typeof options===\"boolean\"){this.options.filter=true;enabled=options}else if(typeof options===\"function\"){this.options.filter=options;enabled=true}if(this.options.filter===false){enabled=false}this.options.enabled=enabled}this._clean()}},{key:\"setModuleOptions\",value:function setModuleOptions(moduleOptions){this.moduleOptions=moduleOptions;if(this.options.enabled===true){this._clean();if(this.options.container!==undefined){this.container=this.options.container}this._create()}}},{key:\"_create\",value:function _create(){var _this=this;this._clean();this.changedOptions=[];var filter=this.options.filter;var counter=0;var show=false;for(var option in this.configureOptions){if(this.configureOptions.hasOwnProperty(option)){this.allowCreation=false;show=false;if(typeof filter===\"function\"){show=filter(option,[]);show=show||this._handleObject(this.configureOptions[option],[option],true)}else if(filter===true||filter.indexOf(option)!==-1){show=true}if(show!==false){this.allowCreation=true;if(counter>0){this._makeItem([])}this._makeHeader(option);this._handleObject(this.configureOptions[option],[option])}counter++}}if(this.options.showButton===true){var generateButton=document.createElement(\"div\");generateButton.className=\"vis-configuration vis-config-button\";generateButton.innerHTML=\"generate options\";generateButton.onclick=function(){_this._printOptions()};generateButton.onmouseover=function(){generateButton.className=\"vis-configuration vis-config-button hover\"};generateButton.onmouseout=function(){generateButton.className=\"vis-configuration vis-config-button\"};this.optionsContainer=document.createElement(\"div\");this.optionsContainer.className=\"vis-configuration vis-config-option-container\";this.domElements.push(this.optionsContainer);this.domElements.push(generateButton)}this._push()}},{key:\"_push\",value:function _push(){this.wrapper=document.createElement(\"div\");this.wrapper.className=\"vis-configuration-wrapper\";this.container.appendChild(this.wrapper);for(var i=0;i<this.domElements.length;i++){this.wrapper.appendChild(this.domElements[i])}this._showPopupIfNeeded()}},{key:\"_clean\",value:function _clean(){for(var i=0;i<this.domElements.length;i++){this.wrapper.removeChild(this.domElements[i])}if(this.wrapper!==undefined){this.container.removeChild(this.wrapper);this.wrapper=undefined}this.domElements=[];this._removePopup()}},{key:\"_getValue\",value:function _getValue(path){var base=this.moduleOptions;for(var i=0;i<path.length;i++){if(base[path[i]]!==undefined){base=base[path[i]]}else{base=undefined;break}}return base}},{key:\"_makeItem\",value:function _makeItem(path){if(this.allowCreation===true){var item=document.createElement(\"div\");item.className=\"vis-configuration vis-config-item vis-config-s\"+path.length;for(var _len=arguments.length,domElements=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){domElements[_key-1]=arguments[_key]}domElements.forEach(function(element){item.appendChild(element)});this.domElements.push(item);return this.domElements.length}return 0}},{key:\"_makeHeader\",value:function _makeHeader(name){var div=document.createElement(\"div\");div.className=\"vis-configuration vis-config-header\";div.innerHTML=name;this._makeItem([],div)}},{key:\"_makeLabel\",value:function _makeLabel(name,path){var objectLabel=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var div=document.createElement(\"div\");div.className=\"vis-configuration vis-config-label vis-config-s\"+path.length;if(objectLabel===true){div.innerHTML=\"<i><b>\"+name+\":</b></i>\"}else{div.innerHTML=name+\":\"}return div}},{key:\"_makeDropdown\",value:function _makeDropdown(arr,value,path){var select=document.createElement(\"select\");select.className=\"vis-configuration vis-config-select\";var selectedValue=0;if(value!==undefined){if(arr.indexOf(value)!==-1){selectedValue=arr.indexOf(value)}}for(var i=0;i<arr.length;i++){var option=document.createElement(\"option\");option.value=arr[i];if(i===selectedValue){option.selected=\"selected\"}option.innerHTML=arr[i];select.appendChild(option)}var me=this;select.onchange=function(){me._update(this.value,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,select)}},{key:\"_makeRange\",value:function _makeRange(arr,value,path){var defaultValue=arr[0];var min=arr[1];var max=arr[2];var step=arr[3];var range=document.createElement(\"input\");range.className=\"vis-configuration vis-config-range\";try{range.type=\"range\";range.min=min;range.max=max}catch(err){}range.step=step;var popupString=\"\";var popupValue=0;if(value!==undefined){var factor=1.2;if(value<0&&value*factor<min){range.min=Math.ceil(value*factor);popupValue=range.min;popupString=\"range increased\"}else if(value/factor<min){range.min=Math.ceil(value/factor);popupValue=range.min;popupString=\"range increased\"}if(value*factor>max&&max!==1){range.max=Math.ceil(value*factor);popupValue=range.max;popupString=\"range increased\"}range.value=value}else{range.value=defaultValue}var input=document.createElement(\"input\");input.className=\"vis-configuration vis-config-rangeinput\";input.value=range.value;var me=this;range.onchange=function(){input.value=this.value;me._update(Number(this.value),path)};range.oninput=function(){input.value=this.value};var label=this._makeLabel(path[path.length-1],path);var itemIndex=this._makeItem(path,label,range,input);if(popupString!==\"\"&&this.popupHistory[itemIndex]!==popupValue){this.popupHistory[itemIndex]=popupValue;this._setupPopup(popupString,itemIndex)}}},{key:\"_setupPopup\",value:function _setupPopup(string,index){var _this2=this;if(this.initialized===true&&this.allowCreation===true&&this.popupCounter<this.popupLimit){var div=document.createElement(\"div\");div.id=\"vis-configuration-popup\";div.className=\"vis-configuration-popup\";div.innerHTML=string;div.onclick=function(){_this2._removePopup()};this.popupCounter+=1;this.popupDiv={html:div,index:index}}}},{key:\"_removePopup\",value:function _removePopup(){if(this.popupDiv.html!==undefined){this.popupDiv.html.parentNode.removeChild(this.popupDiv.html);clearTimeout(this.popupDiv.hideTimeout);clearTimeout(this.popupDiv.deleteTimeout);this.popupDiv={}}}},{key:\"_showPopupIfNeeded\",value:function _showPopupIfNeeded(){var _this3=this;if(this.popupDiv.html!==undefined){var correspondingElement=this.domElements[this.popupDiv.index];var rect=correspondingElement.getBoundingClientRect();this.popupDiv.html.style.left=rect.left+\"px\";this.popupDiv.html.style.top=rect.top-30+\"px\";document.body.appendChild(this.popupDiv.html);this.popupDiv.hideTimeout=setTimeout(function(){_this3.popupDiv.html.style.opacity=0},1500);this.popupDiv.deleteTimeout=setTimeout(function(){_this3._removePopup()},1800)}}},{key:\"_makeCheckbox\",value:function _makeCheckbox(defaultValue,value,path){var checkbox=document.createElement(\"input\");checkbox.type=\"checkbox\";checkbox.className=\"vis-configuration vis-config-checkbox\";checkbox.checked=defaultValue;if(value!==undefined){checkbox.checked=value;if(value!==defaultValue){if((typeof defaultValue===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(defaultValue))===\"object\"){if(value!==defaultValue.enabled){this.changedOptions.push({path:path,value:value})}}else{this.changedOptions.push({path:path,value:value})}}}var me=this;checkbox.onchange=function(){me._update(this.checked,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,checkbox)}},{key:\"_makeTextInput\",value:function _makeTextInput(defaultValue,value,path){var checkbox=document.createElement(\"input\");checkbox.type=\"text\";checkbox.className=\"vis-configuration vis-config-text\";checkbox.value=value;if(value!==defaultValue){this.changedOptions.push({path:path,value:value})}var me=this;checkbox.onchange=function(){me._update(this.value,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,checkbox)}},{key:\"_makeColorField\",value:function _makeColorField(arr,value,path){var _this4=this;var defaultColor=arr[1];var div=document.createElement(\"div\");value=value===undefined?defaultColor:value;if(value!==\"none\"){div.className=\"vis-configuration vis-config-colorBlock\";div.style.backgroundColor=value}else{div.className=\"vis-configuration vis-config-colorBlock none\"}value=value===undefined?defaultColor:value;div.onclick=function(){_this4._showColorPicker(value,div,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,div)}},{key:\"_showColorPicker\",value:function _showColorPicker(value,div,path){var _this5=this;div.onclick=function(){};this.colorPicker.insertTo(div);this.colorPicker.show();this.colorPicker.setColor(value);this.colorPicker.setUpdateCallback(function(color){\nvar colorString=\"rgba(\"+color.r+\",\"+color.g+\",\"+color.b+\",\"+color.a+\")\";div.style.backgroundColor=colorString;_this5._update(colorString,path)});this.colorPicker.setCloseCallback(function(){div.onclick=function(){_this5._showColorPicker(value,div,path)}})}},{key:\"_handleObject\",value:function _handleObject(obj){var path=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var checkOnly=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var show=false;var filter=this.options.filter;var visibleInSet=false;for(var subObj in obj){if(obj.hasOwnProperty(subObj)){show=true;var item=obj[subObj];var newPath=util.copyAndExtendArray(path,subObj);if(typeof filter===\"function\"){show=filter(subObj,path);if(show===false){if(!(item instanceof Array)&&typeof item!==\"string\"&&typeof item!==\"boolean\"&&item instanceof Object){this.allowCreation=false;show=this._handleObject(item,newPath,true);this.allowCreation=checkOnly===false}}}if(show!==false){visibleInSet=true;var value=this._getValue(newPath);if(item instanceof Array){this._handleArray(item,value,newPath)}else if(typeof item===\"string\"){this._makeTextInput(item,value,newPath)}else if(typeof item===\"boolean\"){this._makeCheckbox(item,value,newPath)}else if(item instanceof Object){var draw=true;if(path.indexOf(\"physics\")!==-1){if(this.moduleOptions.physics.solver!==subObj){draw=false}}if(draw===true){if(item.enabled!==undefined){var enabledPath=util.copyAndExtendArray(newPath,\"enabled\");var enabledValue=this._getValue(enabledPath);if(enabledValue===true){var label=this._makeLabel(subObj,newPath,true);this._makeItem(newPath,label);visibleInSet=this._handleObject(item,newPath)||visibleInSet}else{this._makeCheckbox(item,enabledValue,newPath)}}else{var _label=this._makeLabel(subObj,newPath,true);this._makeItem(newPath,_label);visibleInSet=this._handleObject(item,newPath)||visibleInSet}}}else{console.error(\"dont know how to handle\",item,subObj,newPath)}}}}return visibleInSet}},{key:\"_handleArray\",value:function _handleArray(arr,value,path){if(typeof arr[0]===\"string\"&&arr[0]===\"color\"){this._makeColorField(arr,value,path);if(arr[1]!==value){this.changedOptions.push({path:path,value:value})}}else if(typeof arr[0]===\"string\"){this._makeDropdown(arr,value,path);if(arr[0]!==value){this.changedOptions.push({path:path,value:value})}}else if(typeof arr[0]===\"number\"){this._makeRange(arr,value,path);if(arr[0]!==value){this.changedOptions.push({path:path,value:Number(value)})}}}},{key:\"_update\",value:function _update(value,path){var options=this._constructOptions(value,path);if(this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit){this.parent.body.emitter.emit(\"configChange\",options)}this.initialized=true;this.parent.setOptions(options)}},{key:\"_constructOptions\",value:function _constructOptions(value,path){var optionsObj=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var pointer=optionsObj;value=value===\"true\"?true:value;value=value===\"false\"?false:value;for(var i=0;i<path.length;i++){if(path[i]!==\"global\"){if(pointer[path[i]]===undefined){pointer[path[i]]={}}if(i!==path.length-1){pointer=pointer[path[i]]}else{pointer[path[i]]=value}}}return optionsObj}},{key:\"_printOptions\",value:function _printOptions(){var options=this.getOptions();this.optionsContainer.innerHTML=\"<pre>var options = \"+(0,_stringify2[\"default\"])(options,null,2)+\"</pre>\"}},{key:\"getOptions\",value:function getOptions(){var options={};for(var i=0;i<this.changedOptions.length;i++){this._constructOptions(this.changedOptions[i].value,this.changedOptions[i].path,options)}return options}}]);return Configurator}();exports[\"default\"]=Configurator},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var DOMutil=__webpack_require__(14);function Points(groupId,options){}Points.draw=function(dataset,group,framework,offset){offset=offset||0;var callback=getCallback(framework,group);for(var i=0;i<dataset.length;i++){if(!callback){DOMutil.drawPoint(dataset[i].screen_x+offset,dataset[i].screen_y,getGroupTemplate(group),framework.svgElements,framework.svg,dataset[i].label)}else{var callbackResult=callback(dataset[i],group);if(callbackResult===true||(typeof callbackResult===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(callbackResult))===\"object\"){DOMutil.drawPoint(dataset[i].screen_x+offset,dataset[i].screen_y,getGroupTemplate(group,callbackResult),framework.svgElements,framework.svg,dataset[i].label)}}}};Points.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");DOMutil.drawPoint(x+.5*iconWidth,y,getGroupTemplate(group),framework.svgElements,framework.svg)};function getGroupTemplate(group,callbackResult){callbackResult=typeof callbackResult===\"undefined\"?{}:callbackResult;return{style:callbackResult.style||group.options.drawPoints.style,styles:callbackResult.styles||group.options.drawPoints.styles,size:callbackResult.size||group.options.drawPoints.size,className:callbackResult.className||group.className}}function getCallback(framework,group){var callback=undefined;if(framework.options&&framework.options.drawPoints&&framework.options.drawPoints.onRender&&typeof framework.options.drawPoints.onRender==\"function\"){callback=framework.options.drawPoints.onRender}if(group.group.options&&group.group.options.drawPoints&&group.group.options.drawPoints.onRender&&typeof group.group.options.drawPoints.onRender==\"function\"){callback=group.group.options.drawPoints.onRender}return callback}module.exports=Points},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CircleImageBase=function(_NodeBase){(0,_inherits3[\"default\"])(CircleImageBase,_NodeBase);function CircleImageBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CircleImageBase);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(CircleImageBase.__proto__||(0,_getPrototypeOf2[\"default\"])(CircleImageBase)).call(this,options,body,labelModule));_this.labelOffset=0;_this.selected=false;return _this}(0,_createClass3[\"default\"])(CircleImageBase,[{key:\"setOptions\",value:function setOptions(options,imageObj,imageObjAlt){this.options=options;if(!(imageObj===undefined&&imageObjAlt===undefined)){this.setImages(imageObj,imageObjAlt)}}},{key:\"setImages\",value:function setImages(imageObj,imageObjAlt){if(imageObjAlt&&this.selected){this.imageObj=imageObjAlt;this.imageObjAlt=imageObj}else{this.imageObj=imageObj;this.imageObjAlt=imageObjAlt}}},{key:\"switchImages\",value:function switchImages(selected){var selection_changed=selected&&!this.selected||!selected&&this.selected;this.selected=selected;if(this.imageObjAlt!==undefined&&selection_changed){var imageTmp=this.imageObj;this.imageObj=this.imageObjAlt;this.imageObjAlt=imageTmp}}},{key:\"_resizeImage\",value:function _resizeImage(){var width,height;if(this.options.shapeProperties.useImageSize===false){var ratio_width=1;var ratio_height=1;if(this.imageObj.width&&this.imageObj.height){if(this.imageObj.width>this.imageObj.height){ratio_width=this.imageObj.width/this.imageObj.height}else{ratio_height=this.imageObj.height/this.imageObj.width}}width=this.options.size*2*ratio_width;height=this.options.size*2*ratio_height}else{width=this.imageObj.width;height=this.imageObj.height}this.width=width;this.height=height;this.radius=.5*this.width}},{key:\"_drawRawCircle\",value:function _drawRawCircle(ctx,x,y,values){this.initContextForDraw(ctx,values);ctx.circle(x,y,values.size);this.performFill(ctx,values)}},{key:\"_drawImageAtPosition\",value:function _drawImageAtPosition(ctx,values){if(this.imageObj.width!=0){ctx.globalAlpha=1;this.enableShadow(ctx,values);var factor=1;if(this.options.shapeProperties.interpolation===true){factor=this.imageObj.width/this.width/this.body.view.scale}this.imageObj.drawImageAtPosition(ctx,factor,this.left,this.top,this.width,this.height);this.disableShadow(ctx,values)}}},{key:\"_drawImageLabel\",value:function _drawImageLabel(ctx,x,y,selected,hover){var yLabel;var offset=0;if(this.height!==undefined){offset=this.height*.5;var labelDimensions=this.labelModule.getTextSize(ctx,selected,hover);if(labelDimensions.lineCount>=1){offset+=labelDimensions.height/2}}yLabel=y+offset;if(this.options.label){this.labelOffset=offset}this.labelModule.draw(ctx,x,yLabel,selected,hover,\"hanging\")}}]);return CircleImageBase}(_NodeBase3[\"default\"]);exports[\"default\"]=CircleImageBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Label=__webpack_require__(117)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var CubicBezierEdge=__webpack_require__(215)[\"default\"];var BezierEdgeDynamic=__webpack_require__(217)[\"default\"];var BezierEdgeStatic=__webpack_require__(218)[\"default\"];var StraightEdge=__webpack_require__(219)[\"default\"];var Edge=function(){function Edge(options,body,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Edge);if(body===undefined){throw new Error(\"No body provided\")}this.options=util.bridgeObject(globalOptions);this.globalOptions=globalOptions;this.defaultOptions=defaultOptions;this.body=body;this.id=undefined;this.fromId=undefined;this.toId=undefined;this.selected=false;this.hover=false;this.labelDirty=true;this.baseWidth=this.options.width;this.baseFontSize=this.options.font.size;this.from=undefined;this.to=undefined;this.edgeType=undefined;this.connected=false;this.labelModule=new Label(this.body,this.options,true);this.setOptions(options)}(0,_createClass3[\"default\"])(Edge,[{key:\"setOptions\",value:function setOptions(options){if(!options){return}Edge.parseOptions(this.options,options,true,this.globalOptions);if(options.id!==undefined){this.id=options.id}if(options.from!==undefined){this.fromId=options.from}if(options.to!==undefined){this.toId=options.to}if(options.title!==undefined){this.title=options.title}if(options.value!==undefined){options.value=parseFloat(options.value)}var pile=[options,this.options,this.defaultOptions];this.chooser=ComponentUtil.choosify(\"edge\",pile);this.updateLabelModule(options);var dataChanged=this.updateEdgeType();this._setInteractionWidths();this.connect();if(options.hidden!==undefined||options.physics!==undefined){dataChanged=true}return dataChanged}},{key:\"getFormattingValues\",value:function getFormattingValues(){var toArrow=this.options.arrows.to===true||this.options.arrows.to.enabled===true;var fromArrow=this.options.arrows.from===true||this.options.arrows.from.enabled===true;var middleArrow=this.options.arrows.middle===true||this.options.arrows.middle.enabled===true;var inheritsColor=this.options.color.inherit;var values={toArrow:toArrow,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,middleArrow:middleArrow,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,fromArrow:fromArrow,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,arrowStrikethrough:this.options.arrowStrikethrough,color:inheritsColor?undefined:this.options.color.color,inheritsColor:inheritsColor,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width};if(this.selected||this.hover){if(this.chooser===true){if(this.selected){var selectedWidth=this.options.selectionWidth;if(typeof selectedWidth===\"function\"){values.width=selectedWidth(values.width)}else if(typeof selectedWidth===\"number\"){values.width+=selectedWidth}values.width=Math.max(values.width,.3/this.body.view.scale);values.color=this.options.color.highlight;values.shadow=this.options.shadow.enabled}else if(this.hover){var hoverWidth=this.options.hoverWidth;if(typeof hoverWidth===\"function\"){values.width=hoverWidth(values.width)}else if(typeof hoverWidth===\"number\"){values.width+=hoverWidth}values.width=Math.max(values.width,.3/this.body.view.scale);values.color=this.options.color.hover;values.shadow=this.options.shadow.enabled}}else if(typeof this.chooser===\"function\"){this.chooser(values,this.options.id,this.selected,this.hover);if(values.color!==undefined){values.inheritsColor=false}if(values.shadow===false){if(values.shadowColor!==this.options.shadow.color||values.shadowSize!==this.options.shadow.size||values.shadowX!==this.options.shadow.x||values.shadowY!==this.options.shadow.y){values.shadow=true}}}}else{values.shadow=this.options.shadow.enabled;values.width=Math.max(values.width,.3/this.body.view.scale)}return values}},{key:\"updateLabelModule\",value:function updateLabelModule(options){var pile=[options,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,pile);if(this.labelModule.baseSize!==undefined){this.baseFontSize=this.labelModule.baseSize}}},{key:\"updateEdgeType\",value:function updateEdgeType(){var smooth=this.options.smooth;var dataChanged=false;var changeInType=true;if(this.edgeType!==undefined){if(this.edgeType instanceof BezierEdgeDynamic&&smooth.enabled===true&&smooth.type===\"dynamic\"||this.edgeType instanceof CubicBezierEdge&&smooth.enabled===true&&smooth.type===\"cubicBezier\"||this.edgeType instanceof BezierEdgeStatic&&smooth.enabled===true&&smooth.type!==\"dynamic\"&&smooth.type!==\"cubicBezier\"||this.edgeType instanceof StraightEdge&&smooth.type.enabled===false){changeInType=false}if(changeInType===true){dataChanged=this.cleanup()}}if(changeInType===true){if(smooth.enabled===true){if(smooth.type===\"dynamic\"){dataChanged=true;this.edgeType=new BezierEdgeDynamic(this.options,this.body,this.labelModule)}else if(smooth.type===\"cubicBezier\"){this.edgeType=new CubicBezierEdge(this.options,this.body,this.labelModule)}else{this.edgeType=new BezierEdgeStatic(this.options,this.body,this.labelModule)}}else{this.edgeType=new StraightEdge(this.options,this.body,this.labelModule)}}else{this.edgeType.setOptions(this.options)}return dataChanged}},{key:\"connect\",value:function connect(){this.disconnect();this.from=this.body.nodes[this.fromId]||undefined;this.to=this.body.nodes[this.toId]||undefined;this.connected=this.from!==undefined&&this.to!==undefined;if(this.connected===true){this.from.attachEdge(this);this.to.attachEdge(this)}else{if(this.from){this.from.detachEdge(this)}if(this.to){this.to.detachEdge(this)}}this.edgeType.connect()}},{key:\"disconnect\",value:function disconnect(){if(this.from){this.from.detachEdge(this);this.from=undefined}if(this.to){this.to.detachEdge(this);this.to=undefined}this.connected=false}},{key:\"getTitle\",value:function getTitle(){return this.title}},{key:\"isSelected\",value:function isSelected(){return this.selected}},{key:\"getValue\",value:function getValue(){return this.options.value}},{key:\"setValueRange\",value:function setValueRange(min,max,total){if(this.options.value!==undefined){var scale=this.options.scaling.customScalingFunction(min,max,total,this.options.value);var widthDiff=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===true){var fontDiff=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+scale*fontDiff}this.options.width=this.options.scaling.min+scale*widthDiff}else{this.options.width=this.baseWidth;this.options.font.size=this.baseFontSize}this._setInteractionWidths();this.updateLabelModule()}},{key:\"_setInteractionWidths\",value:function _setInteractionWidths(){if(typeof this.options.hoverWidth===\"function\"){this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width)}else{this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width}if(typeof this.options.selectionWidth===\"function\"){this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width)}else{this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}}},{key:\"draw\",value:function draw(ctx){var values=this.getFormattingValues();if(values.hidden){return}var viaNode=this.edgeType.getViaNode();var arrowData={};this.edgeType.fromPoint=this.edgeType.from;this.edgeType.toPoint=this.edgeType.to;if(values.fromArrow){arrowData.from=this.edgeType.getArrowData(ctx,\"from\",viaNode,this.selected,this.hover,values);if(values.arrowStrikethrough===false)this.edgeType.fromPoint=arrowData.from.core}if(values.toArrow){arrowData.to=this.edgeType.getArrowData(ctx,\"to\",viaNode,this.selected,this.hover,values);if(values.arrowStrikethrough===false)this.edgeType.toPoint=arrowData.to.core}if(values.middleArrow){arrowData.middle=this.edgeType.getArrowData(ctx,\"middle\",viaNode,this.selected,this.hover,values)}this.edgeType.drawLine(ctx,values,this.selected,this.hover,viaNode);this.drawArrows(ctx,arrowData,values);this.drawLabel(ctx,viaNode)}},{key:\"drawArrows\",value:function drawArrows(ctx,arrowData,values){if(values.fromArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.from)}if(values.middleArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.middle)}if(values.toArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.to)}}},{key:\"drawLabel\",value:function drawLabel(ctx,viaNode){if(this.options.label!==undefined){var node1=this.from;var node2=this.to;if(this.labelModule.differentState(this.selected,this.hover)){this.labelModule.getTextSize(ctx,this.selected,this.hover)}if(node1.id!=node2.id){this.labelModule.pointToSelf=false;var point=this.edgeType.getPoint(.5,viaNode);ctx.save();var rotationPoint=this._getRotation(ctx);if(rotationPoint.angle!=0){ctx.translate(rotationPoint.x,rotationPoint.y);ctx.rotate(rotationPoint.angle)}this.labelModule.draw(ctx,point.x,point.y,this.selected,this.hover);ctx.restore()}else{this.labelModule.pointToSelf=true;var x,y;var radius=this.options.selfReferenceSize;if(node1.shape.width>node1.shape.height){x=node1.x+node1.shape.width*.5;y=node1.y-radius}else{x=node1.x+radius;y=node1.y-node1.shape.height*.5}point=this._pointOnCircle(x,y,radius,.125);this.labelModule.draw(ctx,point.x,point.y,this.selected,this.hover)}}}},{key:\"getItemsOnPoint\",value:function getItemsOnPoint(point){var ret=[];if(this.labelModule.visible()){var rotationPoint=this._getRotation();if(ComponentUtil.pointInRect(this.labelModule.getSize(),point,rotationPoint)){ret.push({edgeId:this.id,labelId:0})}}var obj={left:point.x,top:point.y};if(this.isOverlappingWith(obj)){ret.push({edgeId:this.id})}return ret}},{key:\"isOverlappingWith\",value:function isOverlappingWith(obj){if(this.connected){var distMax=10;var xFrom=this.from.x;var yFrom=this.from.y;var xTo=this.to.x;var yTo=this.to.y;var xObj=obj.left;var yObj=obj.top;var dist=this.edgeType.getDistanceToEdge(xFrom,yFrom,xTo,yTo,xObj,yObj);return dist<distMax}else{return false}}},{key:\"_getRotation\",value:function _getRotation(ctx){var viaNode=this.edgeType.getViaNode();var point=this.edgeType.getPoint(.5,viaNode);if(ctx!==undefined){this.labelModule.calculateLabelSize(ctx,this.selected,this.hover,point.x,point.y)}var ret={x:point.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible()){return ret}if(this.options.font.align===\"horizontal\"){return ret}var dy=this.from.y-this.to.y;var dx=this.from.x-this.to.x;var angle=Math.atan2(dy,dx);if(angle<-1&&dx<0||angle>0&&dx<0){angle+=Math.PI}ret.angle=angle;return ret}},{key:\"_pointOnCircle\",value:function _pointOnCircle(x,y,radius,percentage){var angle=percentage*2*Math.PI;return{x:x+radius*Math.cos(angle),y:y-radius*Math.sin(angle)}}},{key:\"select\",value:function select(){this.selected=true}},{key:\"unselect\",value:function unselect(){this.selected=false}},{key:\"cleanup\",value:function cleanup(){return this.edgeType.cleanup()}},{key:\"remove\",value:function remove(){this.cleanup();this.disconnect();delete this.body.edges[this.id]}},{key:\"endPointsValid\",value:function endPointsValid(){return this.body.nodes[this.fromId]!==undefined&&this.body.nodes[this.toId]!==undefined}}],[{key:\"parseOptions\",value:function parseOptions(parentOptions,newOptions){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var copyFromGlobals=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;var fields=[\"arrowStrikethrough\",\"id\",\"from\",\"hidden\",\"hoverWidth\",\"labelHighlightBold\",\"length\",\"line\",\"opacity\",\"physics\",\"scaling\",\"selectionWidth\",\"selfReferenceSize\",\"to\",\"title\",\"value\",\"width\",\"font\",\"chosen\",\"widthConstraint\"];util.selectiveDeepExtend(fields,parentOptions,newOptions,allowDeletion);if(ComponentUtil.isValidLabel(newOptions.label)){parentOptions.label=newOptions.label}else{parentOptions.label=undefined}util.mergeOptions(parentOptions,newOptions,\"smooth\",globalOptions);util.mergeOptions(parentOptions,newOptions,\"shadow\",globalOptions);if(newOptions.dashes!==undefined&&newOptions.dashes!==null){parentOptions.dashes=newOptions.dashes}else if(allowDeletion===true&&newOptions.dashes===null){parentOptions.dashes=(0,_create2[\"default\"])(globalOptions.dashes)}if(newOptions.scaling!==undefined&&newOptions.scaling!==null){if(newOptions.scaling.min!==undefined){parentOptions.scaling.min=newOptions.scaling.min}if(newOptions.scaling.max!==undefined){parentOptions.scaling.max=newOptions.scaling.max}util.mergeOptions(parentOptions.scaling,newOptions.scaling,\"label\",globalOptions.scaling)}else if(allowDeletion===true&&newOptions.scaling===null){parentOptions.scaling=(0,_create2[\"default\"])(globalOptions.scaling)}if(newOptions.arrows!==undefined&&newOptions.arrows!==null){if(typeof newOptions.arrows===\"string\"){var arrows=newOptions.arrows.toLowerCase();parentOptions.arrows.to.enabled=arrows.indexOf(\"to\")!=-1;parentOptions.arrows.middle.enabled=arrows.indexOf(\"middle\")!=-1;parentOptions.arrows.from.enabled=arrows.indexOf(\"from\")!=-1}else if((0,_typeof3[\"default\"])(newOptions.arrows)===\"object\"){util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"to\",globalOptions.arrows);util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"middle\",globalOptions.arrows);util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"from\",globalOptions.arrows)}else{throw new Error(\"The arrow newOptions can only be an object or a string. Refer to the documentation. You used:\"+(0,_stringify2[\"default\"])(newOptions.arrows))}}else if(allowDeletion===true&&newOptions.arrows===null){parentOptions.arrows=(0,_create2[\"default\"])(globalOptions.arrows)}if(newOptions.color!==undefined&&newOptions.color!==null){var fromColor=newOptions.color;var toColor=parentOptions.color;if(copyFromGlobals){util.deepExtend(toColor,globalOptions.color,false,allowDeletion)}else{for(var i in toColor){if(toColor.hasOwnProperty(i)){delete toColor[i]}}}if(util.isString(toColor)){toColor.color=toColor;toColor.highlight=toColor;toColor.hover=toColor;toColor.inherit=false;if(fromColor.opacity===undefined){toColor.opacity=1}}else{var colorsDefined=false;if(fromColor.color!==undefined){toColor.color=fromColor.color;colorsDefined=true}if(fromColor.highlight!==undefined){toColor.highlight=fromColor.highlight;colorsDefined=true}if(fromColor.hover!==undefined){toColor.hover=fromColor.hover;colorsDefined=true}if(fromColor.inherit!==undefined){toColor.inherit=fromColor.inherit}if(fromColor.opacity!==undefined){toColor.opacity=Math.min(1,Math.max(0,fromColor.opacity))}if(colorsDefined===true){toColor.inherit=false}else{if(toColor.inherit===undefined){toColor.inherit=\"from\"}}}}else if(allowDeletion===true&&newOptions.color===null){parentOptions.color=util.bridgeObject(globalOptions.color)}if(allowDeletion===true&&newOptions.font===null){parentOptions.font=util.bridgeObject(globalOptions.font)}}}]);return Edge}();exports[\"default\"]=Edge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _EdgeBase2=__webpack_require__(118);var _EdgeBase3=_interopRequireDefault(_EdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeBase=function(_EdgeBase){(0,_inherits3[\"default\"])(BezierEdgeBase,_EdgeBase);function BezierEdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(BezierEdgeBase,[{key:\"_findBorderPositionBezier\",value:function _findBorderPositionBezier(nearNode,ctx){var viaNode=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this._getViaCoordinates();var maxIterations=10;var iteration=0;var low=0;var high=1;var pos,angle,distanceToBorder,distanceToPoint,difference;var threshold=.2;var node=this.to;var from=false;if(nearNode.id===this.from.id){node=this.from;from=true}while(low<=high&&iteration<maxIterations){var middle=(low+high)*.5;pos=this.getPoint(middle,viaNode);angle=Math.atan2(node.y-pos.y,node.x-pos.x);distanceToBorder=node.distanceToBorder(ctx,angle);distanceToPoint=Math.sqrt(Math.pow(pos.x-node.x,2)+Math.pow(pos.y-node.y,2));difference=distanceToBorder-distanceToPoint;if(Math.abs(difference)<threshold){break}else if(difference<0){if(from===false){low=middle}else{high=middle}}else{if(from===false){high=middle}else{low=middle}}iteration++}pos.t=middle;return pos}},{key:\"_getDistanceToBezierEdge\",value:function _getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via){var minDistance=1e9;var distance=void 0;var i=void 0,t=void 0,x=void 0,y=void 0;var lastX=x1;var lastY=y1;for(i=1;i<10;i++){t=.1*i;x=Math.pow(1-t,2)*x1+2*t*(1-t)*via.x+Math.pow(t,2)*x2;y=Math.pow(1-t,2)*y1+2*t*(1-t)*via.y+Math.pow(t,2)*y2;if(i>0){distance=this._getDistanceToLine(lastX,lastY,x,y,x3,y3);minDistance=distance<minDistance?distance:minDistance}lastX=x;lastY=y}return minDistance}},{key:\"_bezierCurve\",value:function _bezierCurve(ctx,values,viaNode1,viaNode2){var hasNode1=viaNode1!==undefined&&viaNode1.x!==undefined;var hasNode2=viaNode2!==undefined&&viaNode2.x!==undefined;ctx.beginPath();ctx.moveTo(this.fromPoint.x,this.fromPoint.y);if(hasNode1&&hasNode2){ctx.bezierCurveTo(viaNode1.x,viaNode1.y,viaNode2.x,viaNode2.y,this.toPoint.x,this.toPoint.y)}else if(hasNode1){ctx.quadraticCurveTo(viaNode1.x,viaNode1.y,this.toPoint.x,this.toPoint.y)}else{ctx.lineTo(this.toPoint.x,this.toPoint.y)}this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}}]);return BezierEdgeBase}(_EdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=function(){function NetworkUtil(){(0,_classCallCheck3[\"default\"])(this,NetworkUtil)}(0,_createClass3[\"default\"])(NetworkUtil,null,[{key:\"getRange\",value:function getRange(allNodes){var specificNodes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var minY=1e9,maxY=-1e9,minX=1e9,maxX=-1e9,node;if(specificNodes.length>0){for(var i=0;i<specificNodes.length;i++){node=allNodes[specificNodes[i]];if(minX>node.shape.boundingBox.left){minX=node.shape.boundingBox.left}if(maxX<node.shape.boundingBox.right){maxX=node.shape.boundingBox.right}if(minY>node.shape.boundingBox.top){minY=node.shape.boundingBox.top}if(maxY<node.shape.boundingBox.bottom){maxY=node.shape.boundingBox.bottom}}}if(minX===1e9&&maxX===-1e9&&minY===1e9&&maxY===-1e9){minY=0,maxY=0,minX=0,maxX=0}return{minX:minX,maxX:maxX,minY:minY,maxY:maxY}}},{key:\"getRangeCore\",value:function getRangeCore(allNodes){var specificNodes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var minY=1e9,maxY=-1e9,minX=1e9,maxX=-1e9,node;if(specificNodes.length>0){for(var i=0;i<specificNodes.length;i++){node=allNodes[specificNodes[i]];if(minX>node.x){minX=node.x}if(maxX<node.x){maxX=node.x}if(minY>node.y){minY=node.y}if(maxY<node.y){maxY=node.y}}}if(minX===1e9&&maxX===-1e9&&minY===1e9&&maxY===-1e9){minY=0,maxY=0,minX=0,maxX=0}return{minX:minX,maxX:maxX,minY:minY,maxY:maxY}}},{key:\"findCenter\",value:function findCenter(range){return{x:.5*(range.maxX+range.minX),y:.5*(range.maxY+range.minY)}}},{key:\"cloneOptions\",value:function cloneOptions(item,type){var clonedOptions={};if(type===undefined||type===\"node\"){util.deepExtend(clonedOptions,item.options,true);clonedOptions.x=item.x;clonedOptions.y=item.y;clonedOptions.amountOfConnections=item.edges.length}else{util.deepExtend(clonedOptions,item.options,true)}return clonedOptions}}]);return NetworkUtil}();exports[\"default\"]=NetworkUtil},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(124),__esModule:true}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);module.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(it){return cof(it)==\"String\"?it.split(\"\"):Object(it)}},function(module,exports,__webpack_require__){\"use strict\";var LIBRARY=__webpack_require__(52);var $export=__webpack_require__(17);var redefine=__webpack_require__(83);var hide=__webpack_require__(26);var has=__webpack_require__(22);var Iterators=__webpack_require__(31);var $iterCreate=__webpack_require__(129);var setToStringTag=__webpack_require__(59);var getPrototypeOf=__webpack_require__(85);var ITERATOR=__webpack_require__(13)(\"iterator\");var BUGGY=!([].keys&&\"next\"in[].keys())\n;var FF_ITERATOR=\"@@iterator\";var KEYS=\"keys\";var VALUES=\"values\";var returnThis=function(){return this};module.exports=function(Base,NAME,Constructor,next,DEFAULT,IS_SET,FORCED){$iterCreate(Constructor,NAME,next);var getMethod=function(kind){if(!BUGGY&&kind in proto)return proto[kind];switch(kind){case KEYS:return function keys(){return new Constructor(this,kind)};case VALUES:return function values(){return new Constructor(this,kind)}}return function entries(){return new Constructor(this,kind)}};var TAG=NAME+\" Iterator\";var DEF_VALUES=DEFAULT==VALUES;var VALUES_BUG=false;var proto=Base.prototype;var $native=proto[ITERATOR]||proto[FF_ITERATOR]||DEFAULT&&proto[DEFAULT];var $default=$native||getMethod(DEFAULT);var $entries=DEFAULT?!DEF_VALUES?$default:getMethod(\"entries\"):undefined;var $anyNative=NAME==\"Array\"?proto.entries||$native:$native;var methods,key,IteratorPrototype;if($anyNative){IteratorPrototype=getPrototypeOf($anyNative.call(new Base));if(IteratorPrototype!==Object.prototype&&IteratorPrototype.next){setToStringTag(IteratorPrototype,TAG,true);if(!LIBRARY&&!has(IteratorPrototype,ITERATOR))hide(IteratorPrototype,ITERATOR,returnThis)}}if(DEF_VALUES&&$native&&$native.name!==VALUES){VALUES_BUG=true;$default=function values(){return $native.call(this)}}if((!LIBRARY||FORCED)&&(BUGGY||VALUES_BUG||!proto[ITERATOR])){hide(proto,ITERATOR,$default)}Iterators[NAME]=$default;Iterators[TAG]=returnThis;if(DEFAULT){methods={values:DEF_VALUES?$default:getMethod(VALUES),keys:IS_SET?$default:getMethod(KEYS),entries:$entries};if(FORCED)for(key in methods){if(!(key in proto))redefine(proto,key,methods[key])}else $export($export.P+$export.F*(BUGGY||VALUES_BUG),NAME,methods)}return methods}},function(module,exports,__webpack_require__){var aFunction=__webpack_require__(128);module.exports=function(fn,that,length){aFunction(fn);if(that===undefined)return fn;switch(length){case 1:return function(a){return fn.call(that,a)};case 2:return function(a,b){return fn.call(that,a,b)};case 3:return function(a,b,c){return fn.call(that,a,b,c)}}return function(){return fn.apply(that,arguments)}}},function(module,exports,__webpack_require__){module.exports=!__webpack_require__(21)&&!__webpack_require__(28)(function(){return Object.defineProperty(__webpack_require__(82)(\"div\"),\"a\",{get:function(){return 7}}).a!=7})},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);var document=__webpack_require__(18).document;var is=isObject(document)&&isObject(document.createElement);module.exports=function(it){return is?document.createElement(it):{}}},function(module,exports,__webpack_require__){module.exports=__webpack_require__(26)},function(module,exports,__webpack_require__){var has=__webpack_require__(22);var toIObject=__webpack_require__(25);var arrayIndexOf=__webpack_require__(131)(false);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\");module.exports=function(object,names){var O=toIObject(object);var i=0;var result=[];var key;for(key in O)if(key!=IE_PROTO)has(O,key)&&result.push(key);while(names.length>i)if(has(O,key=names[i++])){~arrayIndexOf(result,key)||result.push(key)}return result}},function(module,exports,__webpack_require__){var has=__webpack_require__(22);var toObject=__webpack_require__(41);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\");var ObjectProto=Object.prototype;module.exports=Object.getPrototypeOf||function(O){O=toObject(O);if(has(O,IE_PROTO))return O[IE_PROTO];if(typeof O.constructor==\"function\"&&O instanceof O.constructor){return O.constructor.prototype}return O instanceof Object?ObjectProto:null}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);var TAG=__webpack_require__(13)(\"toStringTag\");var ARG=cof(function(){return arguments}())==\"Arguments\";var tryGet=function(it,key){try{return it[key]}catch(e){}};module.exports=function(it){var O,T,B;return it===undefined?\"Undefined\":it===null?\"Null\":typeof(T=tryGet(O=Object(it),TAG))==\"string\"?T:ARG?cof(O):(B=cof(O))==\"Object\"&&typeof O.callee==\"function\"?\"Arguments\":B}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);var core=__webpack_require__(7);var fails=__webpack_require__(28);module.exports=function(KEY,exec){var fn=(core.Object||{})[KEY]||Object[KEY];var exp={};exp[KEY]=exec(fn);$export($export.S+$export.F*fails(function(){fn(1)}),\"Object\",exp)}},function(module,exports,__webpack_require__){var $keys=__webpack_require__(84);var hiddenKeys=__webpack_require__(58).concat(\"length\",\"prototype\");exports.f=Object.getOwnPropertyNames||function getOwnPropertyNames(O){return $keys(O,hiddenKeys)}},function(module,exports,__webpack_require__){var pIE=__webpack_require__(42);var createDesc=__webpack_require__(39);var toIObject=__webpack_require__(25);var toPrimitive=__webpack_require__(53);var has=__webpack_require__(22);var IE8_DOM_DEFINE=__webpack_require__(81);var gOPD=Object.getOwnPropertyDescriptor;exports.f=__webpack_require__(21)?gOPD:function getOwnPropertyDescriptor(O,P){O=toIObject(O);P=toPrimitive(P,true);if(IE8_DOM_DEFINE)try{return gOPD(O,P)}catch(e){}if(has(O,P))return createDesc(!pIE.f.call(O,P),O[P])}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(162),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";function Point2d(x,y){this.x=x!==undefined?x:0;this.y=y!==undefined?y:0}module.exports=Point2d},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);function Slider(container,options){if(container===undefined){throw new Error(\"No container element defined\")}this.container=container;this.visible=options&&options.visible!=undefined?options.visible:true;if(this.visible){this.frame=document.createElement(\"DIV\");this.frame.style.width=\"100%\";this.frame.style.position=\"relative\";this.container.appendChild(this.frame);this.frame.prev=document.createElement(\"INPUT\");this.frame.prev.type=\"BUTTON\";this.frame.prev.value=\"Prev\";this.frame.appendChild(this.frame.prev);this.frame.play=document.createElement(\"INPUT\");this.frame.play.type=\"BUTTON\";this.frame.play.value=\"Play\";this.frame.appendChild(this.frame.play);this.frame.next=document.createElement(\"INPUT\");this.frame.next.type=\"BUTTON\";this.frame.next.value=\"Next\";this.frame.appendChild(this.frame.next);this.frame.bar=document.createElement(\"INPUT\");this.frame.bar.type=\"BUTTON\";this.frame.bar.style.position=\"absolute\";this.frame.bar.style.border=\"1px solid red\";this.frame.bar.style.width=\"100px\";this.frame.bar.style.height=\"6px\";this.frame.bar.style.borderRadius=\"2px\";this.frame.bar.style.MozBorderRadius=\"2px\";this.frame.bar.style.border=\"1px solid #7F7F7F\";this.frame.bar.style.backgroundColor=\"#E5E5E5\";this.frame.appendChild(this.frame.bar);this.frame.slide=document.createElement(\"INPUT\");this.frame.slide.type=\"BUTTON\";this.frame.slide.style.margin=\"0px\";this.frame.slide.value=\" \";this.frame.slide.style.position=\"relative\";this.frame.slide.style.left=\"-100px\";this.frame.appendChild(this.frame.slide);var me=this;this.frame.slide.onmousedown=function(event){me._onMouseDown(event)};this.frame.prev.onclick=function(event){me.prev(event)};this.frame.play.onclick=function(event){me.togglePlay(event)};this.frame.next.onclick=function(event){me.next(event)}}this.onChangeCallback=undefined;this.values=[];this.index=undefined;this.playTimeout=undefined;this.playInterval=1e3;this.playLoop=true}Slider.prototype.prev=function(){var index=this.getIndex();if(index>0){index--;this.setIndex(index)}};Slider.prototype.next=function(){var index=this.getIndex();if(index<this.values.length-1){index++;this.setIndex(index)}};Slider.prototype.playNext=function(){var start=new Date;var index=this.getIndex();if(index<this.values.length-1){index++;this.setIndex(index)}else if(this.playLoop){index=0;this.setIndex(index)}var end=new Date;var diff=end-start;var interval=Math.max(this.playInterval-diff,0);var me=this;this.playTimeout=setTimeout(function(){me.playNext()},interval)};Slider.prototype.togglePlay=function(){if(this.playTimeout===undefined){this.play()}else{this.stop()}};Slider.prototype.play=function(){if(this.playTimeout)return;this.playNext();if(this.frame){this.frame.play.value=\"Stop\"}};Slider.prototype.stop=function(){clearInterval(this.playTimeout);this.playTimeout=undefined;if(this.frame){this.frame.play.value=\"Play\"}};Slider.prototype.setOnChangeCallback=function(callback){this.onChangeCallback=callback};Slider.prototype.setPlayInterval=function(interval){this.playInterval=interval};Slider.prototype.getPlayInterval=function(){return this.playInterval};Slider.prototype.setPlayLoop=function(doLoop){this.playLoop=doLoop};Slider.prototype.onChange=function(){if(this.onChangeCallback!==undefined){this.onChangeCallback()}};Slider.prototype.redraw=function(){if(this.frame){this.frame.bar.style.top=this.frame.clientHeight/2-this.frame.bar.offsetHeight/2+\"px\";this.frame.bar.style.width=this.frame.clientWidth-this.frame.prev.clientWidth-this.frame.play.clientWidth-this.frame.next.clientWidth-30+\"px\";var left=this.indexToLeft(this.index);this.frame.slide.style.left=left+\"px\"}};Slider.prototype.setValues=function(values){this.values=values;if(this.values.length>0)this.setIndex(0);else this.index=undefined};Slider.prototype.setIndex=function(index){if(index<this.values.length){this.index=index;this.redraw();this.onChange()}else{throw new Error(\"Index out of range\")}};Slider.prototype.getIndex=function(){return this.index};Slider.prototype.get=function(){return this.values[this.index]};Slider.prototype._onMouseDown=function(event){var leftButtonDown=event.which?event.which===1:event.button===1;if(!leftButtonDown)return;this.startClientX=event.clientX;this.startSlideX=parseFloat(this.frame.slide.style.left);this.frame.style.cursor=\"move\";var me=this;this.onmousemove=function(event){me._onMouseMove(event)};this.onmouseup=function(event){me._onMouseUp(event)};util.addEventListener(document,\"mousemove\",this.onmousemove);util.addEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault(event)};Slider.prototype.leftToIndex=function(left){var width=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;var x=left-3;var index=Math.round(x/width*(this.values.length-1));if(index<0)index=0;if(index>this.values.length-1)index=this.values.length-1;return index};Slider.prototype.indexToLeft=function(index){var width=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;var x=index/(this.values.length-1)*width;var left=x+3;return left};Slider.prototype._onMouseMove=function(event){var diff=event.clientX-this.startClientX;var x=this.startSlideX+diff;var index=this.leftToIndex(x);this.setIndex(index);util.preventDefault()};Slider.prototype._onMouseUp=function(event){this.frame.style.cursor=\"auto\";util.removeEventListener(document,\"mousemove\",this.onmousemove);util.removeEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault()};module.exports=Slider},function(module,exports,__webpack_require__){\"use strict\";function StepNumber(start,end,step,prettyStep){this._start=0;this._end=0;this._step=1;this.prettyStep=true;this.precision=5;this._current=0;this.setRange(start,end,step,prettyStep)}StepNumber.prototype.isNumeric=function(n){return!isNaN(parseFloat(n))&&isFinite(n)};StepNumber.prototype.setRange=function(start,end,step,prettyStep){if(!this.isNumeric(start)){throw new Error(\"Parameter 'start' is not numeric; value: \"+start)}if(!this.isNumeric(end)){throw new Error(\"Parameter 'end' is not numeric; value: \"+start)}if(!this.isNumeric(step)){throw new Error(\"Parameter 'step' is not numeric; value: \"+start)}this._start=start?start:0;this._end=end?end:0;this.setStep(step,prettyStep)};StepNumber.prototype.setStep=function(step,prettyStep){if(step===undefined||step<=0)return;if(prettyStep!==undefined)this.prettyStep=prettyStep;if(this.prettyStep===true)this._step=StepNumber.calculatePrettyStep(step);else this._step=step};StepNumber.calculatePrettyStep=function(step){var log10=function log10(x){return Math.log(x)/Math.LN10};var step1=Math.pow(10,Math.round(log10(step))),step2=2*Math.pow(10,Math.round(log10(step/2))),step5=5*Math.pow(10,Math.round(log10(step/5)));var prettyStep=step1;if(Math.abs(step2-step)<=Math.abs(prettyStep-step))prettyStep=step2;if(Math.abs(step5-step)<=Math.abs(prettyStep-step))prettyStep=step5;if(prettyStep<=0){prettyStep=1}return prettyStep};StepNumber.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))};StepNumber.prototype.getStep=function(){return this._step};StepNumber.prototype.start=function(checkFirst){if(checkFirst===undefined){checkFirst=false}this._current=this._start-this._start%this._step;if(checkFirst){if(this.getCurrent()<this._start){this.next()}}};StepNumber.prototype.next=function(){this._current+=this._step};StepNumber.prototype.end=function(){return this._current>this._end};module.exports=StepNumber},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Camera=__webpack_require__(95);var Point3d=__webpack_require__(34);var STYLE={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9};var STYLENAME={dot:STYLE.DOT,\"dot-line\":STYLE.DOTLINE,\"dot-color\":STYLE.DOTCOLOR,\"dot-size\":STYLE.DOTSIZE,line:STYLE.LINE,grid:STYLE.GRID,surface:STYLE.SURFACE,bar:STYLE.BAR,\"bar-color\":STYLE.BARCOLOR,\"bar-size\":STYLE.BARSIZE};var OPTIONKEYS=[\"width\",\"height\",\"filterLabel\",\"legendLabel\",\"xLabel\",\"yLabel\",\"zLabel\",\"xValueLabel\",\"yValueLabel\",\"zValueLabel\",\"showXAxis\",\"showYAxis\",\"showZAxis\",\"showGrid\",\"showPerspective\",\"showShadow\",\"keepAspectRatio\",\"verticalRatio\",\"dotSizeRatio\",\"dotSizeMinFraction\",\"dotSizeMaxFraction\",\"showAnimationControls\",\"animationInterval\",\"animationPreload\",\"animationAutoStart\",\"axisColor\",\"gridColor\",\"xCenter\",\"yCenter\"];var PREFIXEDOPTIONKEYS=[\"xBarWidth\",\"yBarWidth\",\"valueMin\",\"valueMax\",\"xMin\",\"xMax\",\"xStep\",\"yMin\",\"yMax\",\"yStep\",\"zMin\",\"zMax\",\"zStep\"];var DEFAULTS=undefined;function isEmpty(obj){for(var prop in obj){if(obj.hasOwnProperty(prop))return false}return true}function capitalize(str){if(str===undefined||str===\"\"||typeof str!=\"string\"){return str}return str.charAt(0).toUpperCase()+str.slice(1)}function prefixFieldName(prefix,fieldName){if(prefix===undefined||prefix===\"\"){return fieldName}return prefix+capitalize(fieldName)}function forceCopy(src,dst,fields,prefix){var srcKey;var dstKey;for(var i=0;i<fields.length;++i){srcKey=fields[i];dstKey=prefixFieldName(prefix,srcKey);dst[dstKey]=src[srcKey]}}function safeCopy(src,dst,fields,prefix){var srcKey;var dstKey;for(var i=0;i<fields.length;++i){srcKey=fields[i];if(src[srcKey]===undefined)continue;dstKey=prefixFieldName(prefix,srcKey);dst[dstKey]=src[srcKey]}}function setDefaults(src,dst){if(src===undefined||isEmpty(src)){throw new Error(\"No DEFAULTS passed\")}if(dst===undefined){throw new Error(\"No dst passed\")}DEFAULTS=src;forceCopy(src,dst,OPTIONKEYS);forceCopy(src,dst,PREFIXEDOPTIONKEYS,\"default\");setSpecialSettings(src,dst);dst.margin=10;dst.showGrayBottom=false;dst.showTooltip=false;dst.onclick_callback=null;dst.eye=new Point3d(0,0,-1)}function setOptions(options,dst){if(options===undefined){return}if(dst===undefined){throw new Error(\"No dst passed\")}if(DEFAULTS===undefined||isEmpty(DEFAULTS)){throw new Error(\"DEFAULTS not set for module Settings\")}safeCopy(options,dst,OPTIONKEYS);safeCopy(options,dst,PREFIXEDOPTIONKEYS,\"default\");setSpecialSettings(options,dst)}function setSpecialSettings(src,dst){if(src.backgroundColor!==undefined){setBackgroundColor(src.backgroundColor,dst)}setDataColor(src.dataColor,dst);setStyle(src.style,dst);setShowLegend(src.showLegend,dst);setCameraPosition(src.cameraPosition,dst);if(src.tooltip!==undefined){dst.showTooltip=src.tooltip}if(src.onclick!=undefined){dst.onclick_callback=src.onclick}if(src.tooltipStyle!==undefined){util.selectiveDeepExtend([\"tooltipStyle\"],dst,src)}}function setShowLegend(showLegend,dst){if(showLegend===undefined){var isAutoByDefault=DEFAULTS.showLegend===undefined;if(isAutoByDefault){var isLegendGraphStyle=dst.style===STYLE.DOTCOLOR||dst.style===STYLE.DOTSIZE;dst.showLegend=isLegendGraphStyle}else{}}else{dst.showLegend=showLegend}}function getStyleNumberByName(styleName){var number=STYLENAME[styleName];if(number===undefined){return-1}return number}function checkStyleNumber(style){var valid=false;for(var n in STYLE){if(STYLE[n]===style){valid=true;break}}return valid}function setStyle(style,dst){if(style===undefined){return}var styleNumber;if(typeof style===\"string\"){styleNumber=getStyleNumberByName(style);if(styleNumber===-1){throw new Error(\"Style '\"+style+\"' is invalid\")}}else{if(!checkStyleNumber(style)){throw new Error(\"Style '\"+style+\"' is invalid\")}styleNumber=style}dst.style=styleNumber}function setBackgroundColor(backgroundColor,dst){var fill=\"white\";var stroke=\"gray\";var strokeWidth=1;if(typeof backgroundColor===\"string\"){fill=backgroundColor;stroke=\"none\";strokeWidth=0}else if((typeof backgroundColor===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(backgroundColor))===\"object\"){if(backgroundColor.fill!==undefined)fill=backgroundColor.fill;if(backgroundColor.stroke!==undefined)stroke=backgroundColor.stroke;if(backgroundColor.strokeWidth!==undefined)strokeWidth=backgroundColor.strokeWidth}else{throw new Error(\"Unsupported type of backgroundColor\")}dst.frame.style.backgroundColor=fill;dst.frame.style.borderColor=stroke;dst.frame.style.borderWidth=strokeWidth+\"px\";dst.frame.style.borderStyle=\"solid\"}function setDataColor(dataColor,dst){if(dataColor===undefined){return}if(dst.dataColor===undefined){dst.dataColor={}}if(typeof dataColor===\"string\"){dst.dataColor.fill=dataColor;dst.dataColor.stroke=dataColor}else{if(dataColor.fill){dst.dataColor.fill=dataColor.fill}if(dataColor.stroke){dst.dataColor.stroke=dataColor.stroke}if(dataColor.strokeWidth!==undefined){dst.dataColor.strokeWidth=dataColor.strokeWidth}}}function setCameraPosition(cameraPosition,dst){var camPos=cameraPosition;if(camPos===undefined){return}if(dst.camera===undefined){dst.camera=new Camera}dst.camera.setArmRotation(camPos.horizontal,camPos.vertical);dst.camera.setArmLength(camPos.distance)}module.exports.STYLE=STYLE;module.exports.setDefaults=setDefaults;module.exports.setOptions=setOptions;module.exports.setCameraPosition=setCameraPosition},function(module,exports,__webpack_require__){\"use strict\";var _sign=__webpack_require__(165);var _sign2=_interopRequireDefault(_sign);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Point3d=__webpack_require__(34);function Camera(){this.armLocation=new Point3d;this.armRotation={};this.armRotation.horizontal=0;this.armRotation.vertical=0;this.armLength=1.7;this.cameraOffset=new Point3d;this.offsetMultiplier=.6;this.cameraLocation=new Point3d;this.cameraRotation=new Point3d(.5*Math.PI,0,0);this.calculateCameraOrientation()}Camera.prototype.setOffset=function(x,y){var abs=Math.abs,sign=_sign2[\"default\"],mul=this.offsetMultiplier,border=this.armLength*mul;if(abs(x)>border){x=sign(x)*border}if(abs(y)>border){y=sign(y)*border}this.cameraOffset.x=x;this.cameraOffset.y=y;this.calculateCameraOrientation()};Camera.prototype.getOffset=function(){return this.cameraOffset};Camera.prototype.setArmLocation=function(x,y,z){this.armLocation.x=x;this.armLocation.y=y;this.armLocation.z=z;this.calculateCameraOrientation()};Camera.prototype.setArmRotation=function(horizontal,vertical){if(horizontal!==undefined){this.armRotation.horizontal=horizontal}if(vertical!==undefined){this.armRotation.vertical=vertical;if(this.armRotation.vertical<0)this.armRotation.vertical=0;if(this.armRotation.vertical>.5*Math.PI)this.armRotation.vertical=.5*Math.PI}if(horizontal!==undefined||vertical!==undefined){this.calculateCameraOrientation()}};Camera.prototype.getArmRotation=function(){var rot={};rot.horizontal=this.armRotation.horizontal;rot.vertical=this.armRotation.vertical;return rot};Camera.prototype.setArmLength=function(length){if(length===undefined)return;this.armLength=length;if(this.armLength<.71)this.armLength=.71;if(this.armLength>5)this.armLength=5;this.setOffset(this.cameraOffset.x,this.cameraOffset.y);this.calculateCameraOrientation()};Camera.prototype.getArmLength=function(){return this.armLength};Camera.prototype.getCameraLocation=function(){return this.cameraLocation};Camera.prototype.getCameraRotation=function(){return this.cameraRotation};Camera.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical);this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical);this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical);this.cameraRotation.x=Math.PI/2-this.armRotation.vertical;this.cameraRotation.y=0;this.cameraRotation.z=-this.armRotation.horizontal;var xa=this.cameraRotation.x;var za=this.cameraRotation.z;var dx=this.cameraOffset.x;var dy=this.cameraOffset.y;var sin=Math.sin,cos=Math.cos;this.cameraLocation.x=this.cameraLocation.x+dx*cos(za)+dy*-sin(za)*cos(xa);this.cameraLocation.y=this.cameraLocation.y+dx*sin(za)+dy*cos(za)*cos(xa);this.cameraLocation.z=this.cameraLocation.z+dy*sin(xa)};module.exports=Camera},function(module,exports,__webpack_require__){\"use strict\";var DataView=__webpack_require__(12);function Filter(dataGroup,column,graph){this.dataGroup=dataGroup;this.column=column;this.graph=graph;this.index=undefined;this.value=undefined;this.values=dataGroup.getDistinctValues(this.column);if(this.values.length>0){this.selectValue(0)}this.dataPoints=[];this.loaded=false;this.onLoadCallback=undefined;if(graph.animationPreload){this.loaded=false;this.loadInBackground()}else{this.loaded=true}}Filter.prototype.isLoaded=function(){return this.loaded};Filter.prototype.getLoadedProgress=function(){var len=this.values.length;var i=0;while(this.dataPoints[i]){i++}return Math.round(i/len*100)};Filter.prototype.getLabel=function(){return this.graph.filterLabel};Filter.prototype.getColumn=function(){return this.column};Filter.prototype.getSelectedValue=function(){if(this.index===undefined)return undefined;return this.values[this.index]};Filter.prototype.getValues=function(){return this.values};Filter.prototype.getValue=function(index){if(index>=this.values.length)throw new Error(\"Index out of range\");return this.values[index]};Filter.prototype._getDataPoints=function(index){if(index===undefined)index=this.index;if(index===undefined)return[];var dataPoints;if(this.dataPoints[index]){dataPoints=this.dataPoints[index]}else{var f={};f.column=this.column;f.value=this.values[index];var dataView=new DataView(this.dataGroup.getDataSet(),{filter:function filter(item){return item[f.column]==f.value}}).get();dataPoints=this.dataGroup._getDataPoints(dataView);this.dataPoints[index]=dataPoints}return dataPoints};Filter.prototype.setOnLoadCallback=function(callback){this.onLoadCallback=callback};Filter.prototype.selectValue=function(index){if(index>=this.values.length)throw new Error(\"Index out of range\");this.index=index;this.value=this.values[index]};Filter.prototype.loadInBackground=function(index){if(index===undefined)index=0;var frame=this.graph.frame;if(index<this.values.length){if(frame.progress===undefined){frame.progress=document.createElement(\"DIV\");frame.progress.style.position=\"absolute\";frame.progress.style.color=\"gray\";frame.appendChild(frame.progress)}var progress=this.getLoadedProgress();frame.progress.innerHTML=\"Loading animation... \"+progress+\"%\";frame.progress.style.bottom=60+\"px\";frame.progress.style.left=10+\"px\";var me=this;setTimeout(function(){me.loadInBackground(index+1)},10);this.loaded=false}else{this.loaded=true;if(frame.progress!==undefined){frame.removeChild(frame.progress);frame.progress=undefined}if(this.onLoadCallback)this.onLoadCallback()}};module.exports=Filter},function(module,exports,__webpack_require__){\"use strict\";var keycharm=__webpack_require__(35);var Emitter=__webpack_require__(44);var Hammer=__webpack_require__(10);var util=__webpack_require__(2);function Activator(container){this.active=false;this.dom={container:container};this.dom.overlay=document.createElement(\"div\");this.dom.overlay.className=\"vis-overlay\";this.dom.container.appendChild(this.dom.overlay);this.hammer=Hammer(this.dom.overlay);this.hammer.on(\"tap\",this._onTapOverlay.bind(this));var me=this;var events=[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"];events.forEach(function(event){me.hammer.on(event,function(event){event.stopPropagation()})});if(document&&document.body){this.onClick=function(event){if(!_hasParent(event.target,container)){me.deactivate()}};document.body.addEventListener(\"click\",this.onClick)}if(this.keycharm!==undefined){this.keycharm.destroy()}this.keycharm=keycharm();this.escListener=this.deactivate.bind(this)}Emitter(Activator.prototype);Activator.current=null;Activator.prototype.destroy=function(){this.deactivate();this.dom.overlay.parentNode.removeChild(this.dom.overlay);if(this.onClick){document.body.removeEventListener(\"click\",this.onClick)}this.hammer.destroy();this.hammer=null};Activator.prototype.activate=function(){if(Activator.current){Activator.current.deactivate()}Activator.current=this;this.active=true;this.dom.overlay.style.display=\"none\";util.addClassName(this.dom.container,\"vis-active\");this.emit(\"change\");this.emit(\"activate\");this.keycharm.bind(\"esc\",this.escListener)};Activator.prototype.deactivate=function(){this.active=false;this.dom.overlay.style.display=\"\";util.removeClassName(this.dom.container,\"vis-active\");this.keycharm.unbind(\"esc\",this.escListener);this.emit(\"change\");this.emit(\"deactivate\")};Activator.prototype._onTapOverlay=function(event){this.activate();event.stopPropagation()};function _hasParent(element,parent){while(element){if(element===parent){return true}element=element.parentNode}return false}module.exports=Activator},function(module,exports,__webpack_require__){\"use strict\";exports[\"en\"]={current:\"current\",time:\"time\"};exports[\"en_EN\"]=exports[\"en\"];exports[\"en_US\"]=exports[\"en\"];exports[\"it\"]={current:\"attuale\",time:\"tempo\"};exports[\"it_IT\"]=exports[\"it\"];exports[\"it_CH\"]=exports[\"it\"];exports[\"nl\"]={current:\"huidige\",time:\"tijd\"};exports[\"nl_NL\"]=exports[\"nl\"];exports[\"nl_BE\"]=exports[\"nl\"];exports[\"de\"]={current:\"Aktuelle\",time:\"Zeit\"};exports[\"de_DE\"]=exports[\"de\"];exports[\"fr\"]={current:\"actuel\",time:\"heure\"};exports[\"fr_FR\"]=exports[\"fr\"];exports[\"fr_CA\"]=exports[\"fr\"];exports[\"fr_BE\"]=exports[\"fr\"];exports[\"es\"]={current:\"corriente\",time:\"hora\"};exports[\"es_ES\"]=exports[\"es\"]},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var TimeStep=__webpack_require__(66);var Component=__webpack_require__(16);var Group=__webpack_require__(68);var BackgroundGroup=__webpack_require__(69);var BoxItem=__webpack_require__(101);var PointItem=__webpack_require__(102);var RangeItem=__webpack_require__(70);var BackgroundItem=__webpack_require__(103);var Popup=__webpack_require__(104)[\"default\"];var UNGROUPED=\"__ungrouped__\";var BACKGROUND=\"__background__\";function ItemSet(body,options){this.body=body;this.defaultOptions={type:null,orientation:{item:\"bottom\"},align:\"auto\",stack:true,stackSubgroups:true,groupOrderSwap:function groupOrderSwap(fromGroup,toGroup,groups){var targetOrder=toGroup.order;toGroup.order=fromGroup.order;fromGroup.order=targetOrder},groupOrder:\"order\",selectable:true,multiselect:false,itemsAlwaysDraggable:{item:false,range:false},editable:{updateTime:false,updateGroup:false,add:false,remove:false,overrideItems:false},groupEditable:{order:false,add:false,remove:false},snap:TimeStep.snap,onDropObjectOnItem:function onDropObjectOnItem(objectData,item,callback){callback(item)},onAdd:function onAdd(item,callback){callback(item)},onUpdate:function onUpdate(item,callback){callback(item)},onMove:function onMove(item,callback){callback(item)},onRemove:function onRemove(item,callback){callback(item)},onMoving:function onMoving(item,callback){callback(item)},onAddGroup:function onAddGroup(item,callback){callback(item)},onMoveGroup:function onMoveGroup(item,callback){callback(item)},onRemoveGroup:function onRemoveGroup(item,callback){callback(item)},margin:{item:{horizontal:10,vertical:10},axis:20},showTooltips:true,tooltip:{followMouse:false,overflowMethod:\"flip\"},tooltipOnItemUpdateTime:false};this.options=util.extend({},this.defaultOptions);this.options.rtl=options.rtl;this.itemOptions={type:{start:\"Date\",end:\"Date\"}};this.conversion={toScreen:body.util.toScreen,toTime:body.util.toTime};this.dom={};this.props={};this.hammer=null;var me=this;this.itemsData=null;this.groupsData=null;this.itemListeners={add:function add(event,params,senderId){me._onAdd(params.items)},update:function update(event,params,senderId){me._onUpdate(params.items)},remove:function remove(event,params,senderId){me._onRemove(params.items)}};this.groupListeners={add:function add(event,params,senderId){me._onAddGroups(params.items);if(me.groupsData&&me.groupsData.length>0){var groupsData=me.groupsData.getDataSet();groupsData.get().forEach(function(groupData){if(groupData.nestedGroups){if(groupData.showNested!=false){groupData.showNested=true}var updatedGroups=[];groupData.nestedGroups.forEach(function(nestedGroupId){var updatedNestedGroup=groupsData.get(nestedGroupId);if(!updatedNestedGroup){return}updatedNestedGroup.nestedInGroup=groupData.id;if(groupData.showNested==false){updatedNestedGroup.visible=false}updatedGroups=updatedGroups.concat(updatedNestedGroup)});groupsData.update(updatedGroups,senderId)}})}},update:function update(event,params,senderId){me._onUpdateGroups(params.items)},remove:function remove(event,params,senderId){me._onRemoveGroups(params.items)}};this.items={};this.groups={};this.groupIds=[];this.selection=[];this.popup=null;this.touchParams={};this.groupTouchParams={};this._create();this.setOptions(options)}ItemSet.prototype=new Component;ItemSet.types={background:BackgroundItem,box:BoxItem,range:RangeItem,point:PointItem};ItemSet.prototype._create=function(){var frame=document.createElement(\"div\");frame.className=\"vis-itemset\";frame[\"timeline-itemset\"]=this;this.dom.frame=frame;var background=document.createElement(\"div\");background.className=\"vis-background\";frame.appendChild(background);this.dom.background=background;var foreground=document.createElement(\"div\");foreground.className=\"vis-foreground\";frame.appendChild(foreground);this.dom.foreground=foreground;var axis=document.createElement(\"div\");axis.className=\"vis-axis\";this.dom.axis=axis;var labelSet=document.createElement(\"div\");labelSet.className=\"vis-labelset\";this.dom.labelSet=labelSet;this._updateUngrouped();var backgroundGroup=new BackgroundGroup(BACKGROUND,null,this);backgroundGroup.show();this.groups[BACKGROUND]=backgroundGroup;this.hammer=new Hammer(this.body.dom.centerContainer);this.hammer.on(\"hammer.input\",function(event){if(event.isFirst){this._onTouch(event)}}.bind(this));this.hammer.on(\"panstart\",this._onDragStart.bind(this));this.hammer.on(\"panmove\",this._onDrag.bind(this));this.hammer.on(\"panend\",this._onDragEnd.bind(this));this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL});this.hammer.on(\"tap\",this._onSelectItem.bind(this));this.hammer.on(\"press\",this._onMultiSelectItem.bind(this));this.hammer.on(\"doubletap\",this._onAddItem.bind(this));if(this.options.rtl){\nthis.groupHammer=new Hammer(this.body.dom.rightContainer)}else{this.groupHammer=new Hammer(this.body.dom.leftContainer)}this.groupHammer.on(\"tap\",this._onGroupClick.bind(this));this.groupHammer.on(\"panstart\",this._onGroupDragStart.bind(this));this.groupHammer.on(\"panmove\",this._onGroupDrag.bind(this));this.groupHammer.on(\"panend\",this._onGroupDragEnd.bind(this));this.groupHammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_VERTICAL});this.body.dom.centerContainer.addEventListener(\"mouseover\",this._onMouseOver.bind(this));this.body.dom.centerContainer.addEventListener(\"mouseout\",this._onMouseOut.bind(this));this.body.dom.centerContainer.addEventListener(\"mousemove\",this._onMouseMove.bind(this));this.body.dom.centerContainer.addEventListener(\"contextmenu\",this._onDragEnd.bind(this));this.body.dom.centerContainer.addEventListener(\"mousewheel\",this._onMouseWheel.bind(this));this.show()};ItemSet.prototype.setOptions=function(options){if(options){var fields=[\"type\",\"rtl\",\"align\",\"order\",\"stack\",\"stackSubgroups\",\"selectable\",\"multiselect\",\"multiselectPerGroup\",\"groupOrder\",\"dataAttributes\",\"template\",\"groupTemplate\",\"visibleFrameTemplate\",\"hide\",\"snap\",\"groupOrderSwap\",\"showTooltips\",\"tooltip\",\"tooltipOnItemUpdateTime\"];util.selectiveExtend(fields,this.options,options);if(\"itemsAlwaysDraggable\"in options){if(typeof options.itemsAlwaysDraggable===\"boolean\"){this.options.itemsAlwaysDraggable.item=options.itemsAlwaysDraggable;this.options.itemsAlwaysDraggable.range=false}else if((0,_typeof3[\"default\"])(options.itemsAlwaysDraggable)===\"object\"){util.selectiveExtend([\"item\",\"range\"],this.options.itemsAlwaysDraggable,options.itemsAlwaysDraggable);if(!this.options.itemsAlwaysDraggable.item){this.options.itemsAlwaysDraggable.range=false}}}if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation.item=options.orientation===\"top\"?\"top\":\"bottom\"}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"&&\"item\"in options.orientation){this.options.orientation.item=options.orientation.item}}if(\"margin\"in options){if(typeof options.margin===\"number\"){this.options.margin.axis=options.margin;this.options.margin.item.horizontal=options.margin;this.options.margin.item.vertical=options.margin}else if((0,_typeof3[\"default\"])(options.margin)===\"object\"){util.selectiveExtend([\"axis\"],this.options.margin,options.margin);if(\"item\"in options.margin){if(typeof options.margin.item===\"number\"){this.options.margin.item.horizontal=options.margin.item;this.options.margin.item.vertical=options.margin.item}else if((0,_typeof3[\"default\"])(options.margin.item)===\"object\"){util.selectiveExtend([\"horizontal\",\"vertical\"],this.options.margin.item,options.margin.item)}}}}if(\"editable\"in options){if(typeof options.editable===\"boolean\"){this.options.editable.updateTime=options.editable;this.options.editable.updateGroup=options.editable;this.options.editable.add=options.editable;this.options.editable.remove=options.editable;this.options.editable.overrideItems=false}else if((0,_typeof3[\"default\"])(options.editable)===\"object\"){util.selectiveExtend([\"updateTime\",\"updateGroup\",\"add\",\"remove\",\"overrideItems\"],this.options.editable,options.editable)}}if(\"groupEditable\"in options){if(typeof options.groupEditable===\"boolean\"){this.options.groupEditable.order=options.groupEditable;this.options.groupEditable.add=options.groupEditable;this.options.groupEditable.remove=options.groupEditable}else if((0,_typeof3[\"default\"])(options.groupEditable)===\"object\"){util.selectiveExtend([\"order\",\"add\",\"remove\"],this.options.groupEditable,options.groupEditable)}}var addCallback=function(name){var fn=options[name];if(fn){if(!(fn instanceof Function)){throw new Error(\"option \"+name+\" must be a function \"+name+\"(item, callback)\")}this.options[name]=fn}}.bind(this);[\"onDropObjectOnItem\",\"onAdd\",\"onUpdate\",\"onRemove\",\"onMove\",\"onMoving\",\"onAddGroup\",\"onMoveGroup\",\"onRemoveGroup\"].forEach(addCallback);this.markDirty()}};ItemSet.prototype.markDirty=function(options){this.groupIds=[];if(options&&options.refreshItems){util.forEach(this.items,function(item){item.dirty=true;if(item.displayed)item.redraw()})}};ItemSet.prototype.destroy=function(){this.hide();this.setItems(null);this.setGroups(null);this.hammer=null;this.body=null;this.conversion=null};ItemSet.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}if(this.dom.axis.parentNode){this.dom.axis.parentNode.removeChild(this.dom.axis)}if(this.dom.labelSet.parentNode){this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)}};ItemSet.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}if(!this.dom.axis.parentNode){this.body.dom.backgroundVertical.appendChild(this.dom.axis)}if(!this.dom.labelSet.parentNode){if(this.options.rtl){this.body.dom.right.appendChild(this.dom.labelSet)}else{this.body.dom.left.appendChild(this.dom.labelSet)}}};ItemSet.prototype.setSelection=function(ids){var i,ii,id,item;if(ids==undefined)ids=[];if(!Array.isArray(ids))ids=[ids];for(i=0,ii=this.selection.length;i<ii;i++){id=this.selection[i];item=this.items[id];if(item)item.unselect()}this.selection=[];for(i=0,ii=ids.length;i<ii;i++){id=ids[i];item=this.items[id];if(item){this.selection.push(id);item.select()}}};ItemSet.prototype.getSelection=function(){return this.selection.concat([])};ItemSet.prototype.getVisibleItems=function(){var range=this.body.range.getRange();var right,left;if(this.options.rtl){right=this.body.util.toScreen(range.start);left=this.body.util.toScreen(range.end)}else{left=this.body.util.toScreen(range.start);right=this.body.util.toScreen(range.end)}var ids=[];for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){var group=this.groups[groupId];var rawVisibleItems=group.isVisible?group.visibleItems:[];for(var i=0;i<rawVisibleItems.length;i++){var item=rawVisibleItems[i];if(this.options.rtl){if(item.right<left&&item.right+item.width>right){ids.push(item.id)}}else{if(item.left<right&&item.left+item.width>left){ids.push(item.id)}}}}}return ids};ItemSet.prototype._deselect=function(id){var selection=this.selection;for(var i=0,ii=selection.length;i<ii;i++){if(selection[i]==id){selection.splice(i,1);break}}};ItemSet.prototype.redraw=function(){var margin=this.options.margin,range=this.body.range,asSize=util.option.asSize,options=this.options,orientation=options.orientation.item,resized=false,frame=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top;if(this.options.rtl){this.props.right=this.body.domProps.right.width+this.body.domProps.border.right}else{this.props.left=this.body.domProps.left.width+this.body.domProps.border.left}frame.className=\"vis-itemset\";resized=this._orderGroups()||resized;var visibleInterval=range.end-range.start;var zoomed=visibleInterval!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;var scrolled=range.start!=this.lastRangeStart;var changedStackOption=options.stack!=this.lastStack;var changedStackSubgroupsOption=options.stackSubgroups!=this.lastStackSubgroups;var forceRestack=zoomed||scrolled||changedStackOption||changedStackSubgroupsOption;this.lastVisibleInterval=visibleInterval;this.lastRangeStart=range.start;this.lastStack=options.stack;this.lastStackSubgroups=options.stackSubgroups;this.props.lastWidth=this.props.width;var firstGroup=this._firstGroup();var firstMargin={item:margin.item,axis:margin.axis};var nonFirstMargin={item:margin.item,axis:margin.item.vertical/2};var height=0;var minHeight=margin.axis+margin.item.vertical;this.groups[BACKGROUND].redraw(range,nonFirstMargin,forceRestack);var redrawQueue={};var redrawQueueLength=0;util.forEach(this.groups,function(group,key){if(key===BACKGROUND)return;var groupMargin=group==firstGroup?firstMargin:nonFirstMargin;var returnQueue=true;redrawQueue[key]=group.redraw(range,groupMargin,forceRestack,returnQueue);redrawQueueLength=redrawQueue[key].length});var needRedraw=redrawQueueLength>0;if(needRedraw){var redrawResults={};for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns,key){redrawResults[key]=fns[i]()})}util.forEach(this.groups,function(group,key){if(key===BACKGROUND)return;var groupResized=redrawResults[key];resized=groupResized||resized;height+=group.height});height=Math.max(height,minHeight)}height=Math.max(height,minHeight);frame.style.height=asSize(height);this.props.width=frame.offsetWidth;this.props.height=height;this.dom.axis.style.top=asSize(orientation==\"top\"?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height);if(this.options.rtl){this.dom.axis.style.right=\"0\"}else{this.dom.axis.style.left=\"0\"}this.initialItemSetDrawn=true;resized=this._isResized()||resized;return resized};ItemSet.prototype._firstGroup=function(){var firstGroupIndex=this.options.orientation.item==\"top\"?0:this.groupIds.length-1;var firstGroupId=this.groupIds[firstGroupIndex];var firstGroup=this.groups[firstGroupId]||this.groups[UNGROUPED];return firstGroup||null};ItemSet.prototype._updateUngrouped=function(){var ungrouped=this.groups[UNGROUPED];var item,itemId;if(this.groupsData){if(ungrouped){ungrouped.hide();delete this.groups[UNGROUPED];for(itemId in this.items){if(this.items.hasOwnProperty(itemId)){item=this.items[itemId];item.parent&&item.parent.remove(item);var groupId=this._getGroupId(item.data);var group=this.groups[groupId];group&&group.add(item)||item.hide()}}}}else{if(!ungrouped){var id=null;var data=null;ungrouped=new Group(id,data,this);this.groups[UNGROUPED]=ungrouped;for(itemId in this.items){if(this.items.hasOwnProperty(itemId)){item=this.items[itemId];ungrouped.add(item)}}ungrouped.show()}}};ItemSet.prototype.getLabelSet=function(){return this.dom.labelSet};ItemSet.prototype.setItems=function(items){var me=this,ids,oldItemsData=this.itemsData;if(!items){this.itemsData=null}else if(items instanceof DataSet||items instanceof DataView){this.itemsData=items}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(oldItemsData){util.forEach(this.itemListeners,function(callback,event){oldItemsData.off(event,callback)});ids=oldItemsData.getIds();this._onRemove(ids)}if(this.itemsData){var id=this.id;util.forEach(this.itemListeners,function(callback,event){me.itemsData.on(event,callback,id)});ids=this.itemsData.getIds();this._onAdd(ids);this._updateUngrouped()}this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype.getItems=function(){return this.itemsData};ItemSet.prototype.setGroups=function(groups){var me=this,ids;if(this.groupsData){util.forEach(this.groupListeners,function(callback,event){me.groupsData.off(event,callback)});ids=this.groupsData.getIds();this.groupsData=null;this._onRemoveGroups(ids)}if(!groups){this.groupsData=null}else if(groups instanceof DataSet||groups instanceof DataView){this.groupsData=groups}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(this.groupsData){var groupsData=this.groupsData;if(this.groupsData instanceof DataView){groupsData=this.groupsData.getDataSet()}groupsData.get().forEach(function(group){if(group.nestedGroups){group.nestedGroups.forEach(function(nestedGroupId){var updatedNestedGroup=groupsData.get(nestedGroupId);updatedNestedGroup.nestedInGroup=group.id;if(group.showNested==false){updatedNestedGroup.visible=false}groupsData.update(updatedNestedGroup)})}});var id=this.id;util.forEach(this.groupListeners,function(callback,event){me.groupsData.on(event,callback,id)});ids=this.groupsData.getIds();this._onAddGroups(ids)}this._updateUngrouped();this._order();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype.getGroups=function(){return this.groupsData};ItemSet.prototype.removeItem=function(id){var item=this.itemsData.get(id),dataset=this.itemsData.getDataSet();if(item){this.options.onRemove(item,function(item){if(item){dataset.remove(id)}})}};ItemSet.prototype._getType=function(itemData){return itemData.type||this.options.type||(itemData.end?\"range\":\"box\")};ItemSet.prototype._getGroupId=function(itemData){var type=this._getType(itemData);if(type==\"background\"&&itemData.group==undefined){return BACKGROUND}else{return this.groupsData?itemData.group:UNGROUPED}};ItemSet.prototype._onUpdate=function(ids){var me=this;ids.forEach(function(id){var itemData=me.itemsData.get(id,me.itemOptions);var item=me.items[id];var type=itemData?me._getType(itemData):null;var constructor=ItemSet.types[type];var selected;if(item){if(!constructor||!(item instanceof constructor)){selected=item.selected;me._removeItem(item);item=null}else{me._updateItem(item,itemData)}}if(!item&&itemData){if(constructor){item=new constructor(itemData,me.conversion,me.options);item.id=id;me._addItem(item);if(selected){this.selection.push(id);item.select()}}else if(type==\"rangeoverflow\"){throw new TypeError('Item type \"rangeoverflow\" is deprecated. Use css styling instead: '+\".vis-item.vis-range .vis-item-content {overflow: visible;}\")}else{throw new TypeError('Unknown item type \"'+type+'\"')}}}.bind(this));this._order();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._onAdd=ItemSet.prototype._onUpdate;ItemSet.prototype._onRemove=function(ids){var count=0;var me=this;ids.forEach(function(id){var item=me.items[id];if(item){count++;me._removeItem(item)}});if(count){this._order();this.body.emitter.emit(\"_change\",{queue:true})}};ItemSet.prototype._order=function(){util.forEach(this.groups,function(group){group.order()})};ItemSet.prototype._onUpdateGroups=function(ids){this._onAddGroups(ids)};ItemSet.prototype._onAddGroups=function(ids){var me=this;ids.forEach(function(id){var groupData=me.groupsData.get(id);var group=me.groups[id];if(!group){if(id==UNGROUPED||id==BACKGROUND){throw new Error(\"Illegal group id. \"+id+\" is a reserved id.\")}var groupOptions=(0,_create2[\"default\"])(me.options);util.extend(groupOptions,{height:null});group=new Group(id,groupData,me);me.groups[id]=group;for(var itemId in me.items){if(me.items.hasOwnProperty(itemId)){var item=me.items[itemId];if(item.data.group==id){group.add(item)}}}group.order();group.show()}else{group.setData(groupData)}});this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._onRemoveGroups=function(ids){var groups=this.groups;ids.forEach(function(id){var group=groups[id];if(group){group.hide();delete groups[id]}});this.markDirty();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._orderGroups=function(){if(this.groupsData){var groupIds=this.groupsData.getIds({order:this.options.groupOrder});groupIds=this._orderNestedGroups(groupIds);var changed=!util.equalArray(groupIds,this.groupIds);if(changed){var groups=this.groups;groupIds.forEach(function(groupId){groups[groupId].hide()});groupIds.forEach(function(groupId){groups[groupId].show()});this.groupIds=groupIds}return changed}else{return false}};ItemSet.prototype._orderNestedGroups=function(groupIds){var newGroupIdsOrder=[];groupIds.forEach(function(groupId){var groupData=this.groupsData.get(groupId);if(!groupData.nestedInGroup){newGroupIdsOrder.push(groupId)}if(groupData.nestedGroups){var nestedGroups=this.groupsData.get({filter:function filter(nestedGroup){return nestedGroup.nestedInGroup==groupId},order:this.options.groupOrder});var nestedGroupIds=nestedGroups.map(function(nestedGroup){return nestedGroup.id});newGroupIdsOrder=newGroupIdsOrder.concat(nestedGroupIds)}},this);return newGroupIdsOrder};ItemSet.prototype._addItem=function(item){this.items[item.id]=item;var groupId=this._getGroupId(item.data);var group=this.groups[groupId];if(!group){item.groupShowing=false}else if(group&&group.data&&group.data.showNested){item.groupShowing=true}if(group)group.add(item)};ItemSet.prototype._updateItem=function(item,itemData){item.setData(itemData);var groupId=this._getGroupId(item.data);var group=this.groups[groupId];if(!group){item.groupShowing=false}else if(group&&group.data&&group.data.showNested){item.groupShowing=true}};ItemSet.prototype._removeItem=function(item){item.hide();delete this.items[item.id];var index=this.selection.indexOf(item.id);if(index!=-1)this.selection.splice(index,1);item.parent&&item.parent.remove(item)};ItemSet.prototype._constructByEndArray=function(array){var endArray=[];for(var i=0;i<array.length;i++){if(array[i]instanceof RangeItem){endArray.push(array[i])}}return endArray};ItemSet.prototype._onTouch=function(event){this.touchParams.item=this.itemFromTarget(event);this.touchParams.dragLeftItem=event.target.dragLeftItem||false;this.touchParams.dragRightItem=event.target.dragRightItem||false;this.touchParams.itemProps=null};ItemSet.prototype._getGroupIndex=function(groupId){for(var i=0;i<this.groupIds.length;i++){if(groupId==this.groupIds[i])return i}};ItemSet.prototype._onDragStart=function(event){if(this.touchParams.itemIsDragging){return}var item=this.touchParams.item||null;var me=this;var props;if(item&&(item.selected||this.options.itemsAlwaysDraggable.item)){if(this.options.editable.overrideItems&&!this.options.editable.updateTime&&!this.options.editable.updateGroup){return}if(item.editable!=null&&!item.editable.updateTime&&!item.editable.updateGroup&&!this.options.editable.overrideItems){return}var dragLeftItem=this.touchParams.dragLeftItem;var dragRightItem=this.touchParams.dragRightItem;this.touchParams.itemIsDragging=true;this.touchParams.selectedItem=item;if(dragLeftItem){props={item:dragLeftItem,initialX:event.center.x,dragLeft:true,data:this._cloneItemData(item.data)};this.touchParams.itemProps=[props]}else if(dragRightItem){props={item:dragRightItem,initialX:event.center.x,dragRight:true,data:this._cloneItemData(item.data)};this.touchParams.itemProps=[props]}else if(this.options.editable.add&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey)){this._onDragStartAddItem(event)}else{if(this.groupIds.length<1){this.redraw()}var baseGroupIndex=this._getGroupIndex(item.data.group);var itemsToDrag=this.options.itemsAlwaysDraggable.item&&!item.selected?[item.id]:this.getSelection();this.touchParams.itemProps=itemsToDrag.map(function(id){var item=me.items[id];var groupIndex=me._getGroupIndex(item.data.group);return{item:item,initialX:event.center.x,groupOffset:baseGroupIndex-groupIndex,data:this._cloneItemData(item.data)}}.bind(this))}event.stopPropagation()}else if(this.options.editable.add&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey)){this._onDragStartAddItem(event)}};ItemSet.prototype._onDragStartAddItem=function(event){var xAbs;var x;var snap=this.options.snap||null;if(this.options.rtl){xAbs=util.getAbsoluteRight(this.dom.frame);x=xAbs-event.center.x+10}else{xAbs=util.getAbsoluteLeft(this.dom.frame);x=event.center.x-xAbs-10}var time=this.body.util.toTime(x);var scale=this.body.util.getScale();var step=this.body.util.getStep();var start=snap?snap(time,scale,step):time;var end=start;var itemData={type:\"range\",start:start,end:end,content:\"new item\"};var id=util.randomUUID();itemData[this.itemsData._fieldId]=id;var group=this.groupFromTarget(event);if(group){itemData.group=group.groupId}var newItem=new RangeItem(itemData,this.conversion,this.options);newItem.id=id;newItem.data=this._cloneItemData(itemData);this._addItem(newItem);this.touchParams.selectedItem=newItem;var props={item:newItem,initialX:event.center.x,data:newItem.data};if(this.options.rtl){props.dragLeft=true}else{props.dragRight=true}this.touchParams.itemProps=[props];event.stopPropagation()};ItemSet.prototype._onDrag=function(event){if(this.touchParams.itemProps){event.stopPropagation();var me=this;var snap=this.options.snap||null;var xOffset;if(this.options.rtl){xOffset=this.body.dom.root.offsetLeft+this.body.domProps.right.width}else{xOffset=this.body.dom.root.offsetLeft+this.body.domProps.left.width}var scale=this.body.util.getScale();var step=this.body.util.getStep();var selectedItem=this.touchParams.selectedItem;var updateGroupAllowed=(this.options.editable.overrideItems||selectedItem.editable==null)&&this.options.editable.updateGroup||!this.options.editable.overrideItems&&selectedItem.editable!=null&&selectedItem.editable.updateGroup;var newGroupBase=null;if(updateGroupAllowed&&selectedItem){if(selectedItem.data.group!=undefined){var group=me.groupFromTarget(event);if(group){newGroupBase=this._getGroupIndex(group.groupId)}}}this.touchParams.itemProps.forEach(function(props){var current=me.body.util.toTime(event.center.x-xOffset);var initial=me.body.util.toTime(props.initialX-xOffset);var offset;var initialStart;var initialEnd;var start;var end;if(this.options.rtl){offset=-(current-initial)}else{offset=current-initial}var itemData=this._cloneItemData(props.item.data);if(props.item.editable!=null&&!props.item.editable.updateTime&&!props.item.editable.updateGroup&&!me.options.editable.overrideItems){return}var updateTimeAllowed=(this.options.editable.overrideItems||selectedItem.editable==null)&&this.options.editable.updateTime||!this.options.editable.overrideItems&&selectedItem.editable!=null&&selectedItem.editable.updateTime;if(updateTimeAllowed){if(props.dragLeft){if(this.options.rtl){if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");end=new Date(initialEnd.valueOf()+offset);itemData.end=snap?snap(end,scale,step):end}}else{if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\");start=new Date(initialStart.valueOf()+offset);itemData.start=snap?snap(start,scale,step):start}}}else if(props.dragRight){if(this.options.rtl){if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\");start=new Date(initialStart.valueOf()+offset);itemData.start=snap?snap(start,scale,step):start}}else{if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");end=new Date(initialEnd.valueOf()+offset);itemData.end=snap?snap(end,scale,step):end}}}else{if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\").valueOf();start=new Date(initialStart+offset);if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");var duration=initialEnd.valueOf()-initialStart.valueOf();itemData.start=snap?snap(start,scale,step):start;itemData.end=new Date(itemData.start.valueOf()+duration)}else{itemData.start=snap?snap(start,scale,step):start}}}}if(updateGroupAllowed&&!props.dragLeft&&!props.dragRight&&newGroupBase!=null){if(itemData.group!=undefined){var newOffset=newGroupBase-props.groupOffset;newOffset=Math.max(0,newOffset);newOffset=Math.min(me.groupIds.length-1,newOffset);itemData.group=me.groupIds[newOffset]}}itemData=this._cloneItemData(itemData);me.options.onMoving(itemData,function(itemData){if(itemData){props.item.setData(this._cloneItemData(itemData,\"Date\"))}}.bind(this))}.bind(this));this.body.emitter.emit(\"_change\")}};ItemSet.prototype._moveToGroup=function(item,groupId){var group=this.groups[groupId];if(group&&group.groupId!=item.data.group){var oldGroup=item.parent;oldGroup.remove(item);oldGroup.order();item.data.group=group.groupId;group.add(item);group.order()}};ItemSet.prototype._onDragEnd=function(event){this.touchParams.itemIsDragging=false;if(this.touchParams.itemProps){event.stopPropagation();var me=this;var dataset=this.itemsData.getDataSet();var itemProps=this.touchParams.itemProps;this.touchParams.itemProps=null;itemProps.forEach(function(props){var id=props.item.id;var exists=me.itemsData.get(id,me.itemOptions)!=null;if(!exists){me.options.onAdd(props.item.data,function(itemData){me._removeItem(props.item);if(itemData){me.itemsData.getDataSet().add(itemData)}me.body.emitter.emit(\"_change\")})}else{var itemData=this._cloneItemData(props.item.data);me.options.onMove(itemData,function(itemData){if(itemData){itemData[dataset._fieldId]=id;dataset.update(itemData)}else{props.item.setData(props.data);me.body.emitter.emit(\"_change\")}})}}.bind(this))}};ItemSet.prototype._onGroupClick=function(event){var group=this.groupFromTarget(event);if(!group||!group.nestedGroups)return;var groupsData=this.groupsData.getDataSet();var nestingGroup=groupsData.get(group.groupId);if(nestingGroup.showNested==undefined){nestingGroup.showNested=true}nestingGroup.showNested=!nestingGroup.showNested;var nestedGroups=groupsData.get(group.nestedGroups).map(function(nestedGroup){nestedGroup.visible=nestingGroup.showNested;return nestedGroup});groupsData.update(nestedGroups.concat(nestingGroup));if(nestingGroup.showNested){util.removeClassName(group.dom.label,\"collapsed\");util.addClassName(group.dom.label,\"expanded\")}else{util.removeClassName(group.dom.label,\"expanded\");var collapsedDirClassName=this.options.rtl?\"collapsed-rtl\":\"collapsed\";util.addClassName(group.dom.label,collapsedDirClassName)}};ItemSet.prototype._onGroupDragStart=function(event){if(this.options.groupEditable.order){this.groupTouchParams.group=this.groupFromTarget(event);if(this.groupTouchParams.group){event.stopPropagation();this.groupTouchParams.originalOrder=this.groupsData.getIds({order:this.options.groupOrder})}}};ItemSet.prototype._onGroupDrag=function(event){if(this.options.groupEditable.order&&this.groupTouchParams.group){event.stopPropagation();var groupsData=this.groupsData;if(this.groupsData instanceof DataView){groupsData=this.groupsData.getDataSet()}var group=this.groupFromTarget(event);if(group&&group.height!=this.groupTouchParams.group.height){var movingUp=group.top<this.groupTouchParams.group.top;var clientY=event.center?event.center.y:event.clientY;var targetGroupTop=util.getAbsoluteTop(group.dom.foreground);var draggedGroupHeight=this.groupTouchParams.group.height;if(movingUp){if(targetGroupTop+draggedGroupHeight<clientY){return}}else{var targetGroupHeight=group.height;if(targetGroupTop+targetGroupHeight-draggedGroupHeight>clientY){return}}}if(group&&group!=this.groupTouchParams.group){var targetGroup=groupsData.get(group.groupId);var draggedGroup=groupsData.get(this.groupTouchParams.group.groupId);if(draggedGroup&&targetGroup){this.options.groupOrderSwap(draggedGroup,targetGroup,groupsData);groupsData.update(draggedGroup);groupsData.update(targetGroup)}var newOrder=groupsData.getIds({order:this.options.groupOrder});if(!util.equalArray(newOrder,this.groupTouchParams.originalOrder)){var origOrder=this.groupTouchParams.originalOrder;var draggedId=this.groupTouchParams.group.groupId;var numGroups=Math.min(origOrder.length,newOrder.length);var curPos=0;var newOffset=0;var orgOffset=0;while(curPos<numGroups){while(curPos+newOffset<numGroups&&curPos+orgOffset<numGroups&&newOrder[curPos+newOffset]==origOrder[curPos+orgOffset]){curPos++}if(curPos+newOffset>=numGroups){break}if(newOrder[curPos+newOffset]==draggedId){newOffset=1}else if(origOrder[curPos+orgOffset]==draggedId){orgOffset=1}else{var slippedPosition=newOrder.indexOf(origOrder[curPos+orgOffset]);var switchGroup=groupsData.get(newOrder[curPos+newOffset]);var shouldBeGroup=groupsData.get(origOrder[curPos+orgOffset]);this.options.groupOrderSwap(switchGroup,shouldBeGroup,groupsData);groupsData.update(switchGroup);groupsData.update(shouldBeGroup);var switchGroupId=newOrder[curPos+newOffset];newOrder[curPos+newOffset]=origOrder[curPos+orgOffset];newOrder[slippedPosition]=switchGroupId;curPos++}}}}}};ItemSet.prototype._onGroupDragEnd=function(event){if(this.options.groupEditable.order&&this.groupTouchParams.group){event.stopPropagation();var me=this;var id=me.groupTouchParams.group.groupId;var dataset=me.groupsData.getDataSet();var groupData=util.extend({},dataset.get(id));me.options.onMoveGroup(groupData,function(groupData){if(groupData){groupData[dataset._fieldId]=id;dataset.update(groupData)}else{var newOrder=dataset.getIds({order:me.options.groupOrder});if(!util.equalArray(newOrder,me.groupTouchParams.originalOrder)){var origOrder=me.groupTouchParams.originalOrder;var numGroups=Math.min(origOrder.length,newOrder.length);var curPos=0;while(curPos<numGroups){while(curPos<numGroups&&newOrder[curPos]==origOrder[curPos]){curPos++}if(curPos>=numGroups){break}var slippedPosition=newOrder.indexOf(origOrder[curPos]);var switchGroup=dataset.get(newOrder[curPos]);var shouldBeGroup=dataset.get(origOrder[curPos]);me.options.groupOrderSwap(switchGroup,shouldBeGroup,dataset);dataset.update(switchGroup);dataset.update(shouldBeGroup);var switchGroupId=newOrder[curPos];newOrder[curPos]=origOrder[curPos];newOrder[slippedPosition]=switchGroupId;curPos++}}}});me.body.emitter.emit(\"groupDragged\",{groupId:id})}};ItemSet.prototype._onSelectItem=function(event){if(!this.options.selectable)return;var ctrlKey=event.srcEvent&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey);var shiftKey=event.srcEvent&&event.srcEvent.shiftKey;if(ctrlKey||shiftKey){this._onMultiSelectItem(event);return}var oldSelection=this.getSelection();var item=this.itemFromTarget(event);var selection=item?[item.id]:[];this.setSelection(selection);var newSelection=this.getSelection();if(newSelection.length>0||oldSelection.length>0){this.body.emitter.emit(\"select\",{items:newSelection,event:event})}};ItemSet.prototype._onMouseOver=function(event){var item=this.itemFromTarget(event);if(!item)return;var related=this.itemFromRelatedTarget(event);if(item===related){return}var title=item.getTitle();if(this.options.showTooltips&&title){if(this.popup==null){this.popup=new Popup(this.body.dom.root,this.options.tooltip.overflowMethod||\"flip\")}this.popup.setText(title);var container=this.body.dom.centerContainer;this.popup.setPosition(event.clientX-util.getAbsoluteLeft(container)+container.offsetLeft,event.clientY-util.getAbsoluteTop(container)+container.offsetTop);this.popup.show()}else{if(this.popup!=null){this.popup.hide()}}this.body.emitter.emit(\"itemover\",{item:item.id,event:event})};ItemSet.prototype._onMouseOut=function(event){var item=this.itemFromTarget(event);if(!item)return;var related=this.itemFromRelatedTarget(event);if(item===related){return}if(this.popup!=null){this.popup.hide()}this.body.emitter.emit(\"itemout\",{item:item.id,event:event})};ItemSet.prototype._onMouseMove=function(event){var item=this.itemFromTarget(event);if(!item)return;if(this.options.showTooltips&&this.options.tooltip.followMouse){if(this.popup){if(!this.popup.hidden){var container=this.body.dom.centerContainer;this.popup.setPosition(event.clientX-util.getAbsoluteLeft(container)+container.offsetLeft,event.clientY-util.getAbsoluteTop(container)+container.offsetTop);this.popup.show()}}}};ItemSet.prototype._onMouseWheel=function(event){if(this.touchParams.itemIsDragging){this._onDragEnd(event)}};ItemSet.prototype._onUpdateItem=function(item){if(!this.options.selectable)return;if(!this.options.editable.add)return;var me=this;if(item){var itemData=me.itemsData.get(item.id);this.options.onUpdate(itemData,function(itemData){if(itemData){me.itemsData.getDataSet().update(itemData)}})}};ItemSet.prototype._onDropObjectOnItem=function(event){var item=this.itemFromTarget(event);var objectData=JSON.parse(event.dataTransfer.getData(\"text\"));this.options.onDropObjectOnItem(objectData,item)};ItemSet.prototype._onAddItem=function(event){if(!this.options.selectable)return;if(!this.options.editable.add)return;var me=this;var snap=this.options.snap||null;var xAbs;var x;if(this.options.rtl){xAbs=util.getAbsoluteRight(this.dom.frame);x=xAbs-event.center.x}else{xAbs=util.getAbsoluteLeft(this.dom.frame);x=event.center.x-xAbs}var start=this.body.util.toTime(x);var scale=this.body.util.getScale();var step=this.body.util.getStep();var end;var newItemData;if(event.type==\"drop\"){newItemData=JSON.parse(event.dataTransfer.getData(\"text\"));newItemData.content=newItemData.content?newItemData.content:\"new item\";newItemData.start=newItemData.start?newItemData.start:snap?snap(start,scale,step):start;newItemData.type=newItemData.type||\"box\";newItemData[this.itemsData._fieldId]=newItemData.id||util.randomUUID();if(newItemData.type==\"range\"&&!newItemData.end){end=this.body.util.toTime(x+this.props.width/5);newItemData.end=snap?snap(end,scale,step):end}}else{newItemData={start:snap?snap(start,scale,step):start,content:\"new item\"};newItemData[this.itemsData._fieldId]=util.randomUUID();if(this.options.type===\"range\"){\nend=this.body.util.toTime(x+this.props.width/5);newItemData.end=snap?snap(end,scale,step):end}}var group=this.groupFromTarget(event);if(group){newItemData.group=group.groupId}newItemData=this._cloneItemData(newItemData);this.options.onAdd(newItemData,function(item){if(item){me.itemsData.getDataSet().add(item);if(event.type==\"drop\"){me.setSelection([item.id])}}})};ItemSet.prototype._onMultiSelectItem=function(event){if(!this.options.selectable)return;var item=this.itemFromTarget(event);if(item){var selection=this.options.multiselect?this.getSelection():[];var shiftKey=event.srcEvent&&event.srcEvent.shiftKey||false;if(shiftKey&&this.options.multiselect){var itemGroup=this.itemsData.get(item.id).group;var lastSelectedGroup=undefined;if(this.options.multiselectPerGroup){if(selection.length>0){lastSelectedGroup=this.itemsData.get(selection[0]).group}}if(!this.options.multiselectPerGroup||lastSelectedGroup==undefined||lastSelectedGroup==itemGroup){selection.push(item.id)}var range=ItemSet._getItemRange(this.itemsData.get(selection,this.itemOptions));if(!this.options.multiselectPerGroup||lastSelectedGroup==itemGroup){selection=[];for(var id in this.items){if(this.items.hasOwnProperty(id)){var _item=this.items[id];var start=_item.data.start;var end=_item.data.end!==undefined?_item.data.end:start;if(start>=range.min&&end<=range.max&&(!this.options.multiselectPerGroup||lastSelectedGroup==this.itemsData.get(_item.id).group)&&!(_item instanceof BackgroundItem)){selection.push(_item.id)}}}}}else{var index=selection.indexOf(item.id);if(index==-1){selection.push(item.id)}else{selection.splice(index,1)}}this.setSelection(selection);this.body.emitter.emit(\"select\",{items:this.getSelection(),event:event})}};ItemSet._getItemRange=function(itemsData){var max=null;var min=null;itemsData.forEach(function(data){if(min==null||data.start<min){min=data.start}if(data.end!=undefined){if(max==null||data.end>max){max=data.end}}else{if(max==null||data.start>max){max=data.start}}});return{min:min,max:max}};ItemSet.prototype.itemFromElement=function(element){var cur=element;while(cur){if(cur.hasOwnProperty(\"timeline-item\")){return cur[\"timeline-item\"]}cur=cur.parentNode}return null};ItemSet.prototype.itemFromTarget=function(event){return this.itemFromElement(event.target)};ItemSet.prototype.itemFromRelatedTarget=function(event){return this.itemFromElement(event.relatedTarget)};ItemSet.prototype.groupFromTarget=function(event){var clientY=event.center?event.center.y:event.clientY;var groupIds=this.groupIds;if(groupIds.length<=0&&this.groupsData){groupIds=this.groupsData.getIds({order:this.options.groupOrder})}for(var i=0;i<groupIds.length;i++){var groupId=groupIds[i];var group=this.groups[groupId];var foreground=group.dom.foreground;var top=util.getAbsoluteTop(foreground);if(clientY>top&&clientY<top+foreground.offsetHeight){return group}if(this.options.orientation.item===\"top\"){if(i===this.groupIds.length-1&&clientY>top){return group}}else{if(i===0&&clientY<top+foreground.offset){return group}}}return null};ItemSet.itemSetFromTarget=function(event){var target=event.target;while(target){if(target.hasOwnProperty(\"timeline-itemset\")){return target[\"timeline-itemset\"]}target=target.parentNode}return null};ItemSet.prototype._cloneItemData=function(itemData,type){var clone=util.extend({},itemData);if(!type){type=this.itemsData.getDataSet()._options.type}if(clone.start!=undefined){clone.start=util.convert(clone.start,type&&type.start||\"Date\")}if(clone.end!=undefined){clone.end=util.convert(clone.end,type&&type.end||\"Date\")}return clone};module.exports=ItemSet},function(module,exports,__webpack_require__){\"use strict\";var EPSILON=.001;exports.orderByStart=function(items){items.sort(function(a,b){return a.data.start-b.data.start})};exports.orderByEnd=function(items){items.sort(function(a,b){var aTime=\"end\"in a.data?a.data.end:a.data.start,bTime=\"end\"in b.data?b.data.end:b.data.start;return aTime-bTime})};exports.stack=function(items,margin,force){if(force){for(var i=0;i<items.length;i++){items[i].top=null}}for(var i=0;i<items.length;i++){var item=items[i];if(item.stack&&item.top===null){item.top=margin.axis;do{var collidingItem=null;for(var j=0,jj=items.length;j<jj;j++){var other=items[j];if(other.top!==null&&other!==item&&other.stack&&exports.collision(item,other,margin.item,other.options.rtl)){collidingItem=other;break}}if(collidingItem!=null){item.top=collidingItem.top+collidingItem.height+margin.item.vertical}}while(collidingItem)}}};exports.substack=function(items,margin,subgroup){for(var i=0;i<items.length;i++){items[i].top=null}var subgroupHeight=subgroup.height;for(i=0;i<items.length;i++){var item=items[i];if(item.stack&&item.top===null){item.top=item.baseTop;do{var collidingItem=null;for(var j=0,jj=items.length;j<jj;j++){var other=items[j];if(other.top!==null&&other!==item&&exports.collision(item,other,margin.item,other.options.rtl)){collidingItem=other;break}}if(collidingItem!=null){item.top=collidingItem.top+collidingItem.height+margin.item.vertical}if(item.top+item.height>subgroupHeight){subgroupHeight=item.top+item.height}}while(collidingItem)}}subgroup.height=subgroupHeight-subgroup.top+.5*margin.item.vertical};exports.nostack=function(items,margin,subgroups,stackSubgroups){for(var i=0;i<items.length;i++){if(items[i].data.subgroup==undefined){items[i].top=margin.item.vertical}else if(items[i].data.subgroup!==undefined&&stackSubgroups){var newTop=0;for(var subgroup in subgroups){if(subgroups.hasOwnProperty(subgroup)){if(subgroups[subgroup].visible==true&&subgroups[subgroup].index<subgroups[items[i].data.subgroup].index){newTop+=subgroups[subgroup].height;subgroups[items[i].data.subgroup].top=newTop}}}items[i].top=newTop+.5*margin.item.vertical}}if(!stackSubgroups){exports.stackSubgroups(items,margin,subgroups)}};exports.stackSubgroups=function(items,margin,subgroups){for(var subgroup in subgroups){if(subgroups.hasOwnProperty(subgroup)){subgroups[subgroup].top=0;do{var collidingItem=null;for(var otherSubgroup in subgroups){if(subgroups[otherSubgroup].top!==null&&otherSubgroup!==subgroup&&subgroups[subgroup].index>subgroups[otherSubgroup].index&&exports.collisionByTimes(subgroups[subgroup],subgroups[otherSubgroup])){collidingItem=subgroups[otherSubgroup];break}}if(collidingItem!=null){subgroups[subgroup].top=collidingItem.top+collidingItem.height}}while(collidingItem)}}for(var i=0;i<items.length;i++){if(items[i].data.subgroup!==undefined){items[i].top=subgroups[items[i].data.subgroup].top+.5*margin.item.vertical}}};exports.stackSubgroupsWithInnerStack=function(subgroupItems,margin,subgroups){var doSubStack=false;var subgroupOrder=[];for(var subgroup in subgroups){if(subgroups[subgroup].hasOwnProperty(\"index\")){subgroupOrder[subgroups[subgroup].index]=subgroup}else{subgroupOrder.push(subgroup)}}for(var j=0;j<subgroupOrder.length;j++){subgroup=subgroupOrder[j];if(subgroups.hasOwnProperty(subgroup)){doSubStack=doSubStack||subgroups[subgroup].stack;subgroups[subgroup].top=0;for(var otherSubgroup in subgroups){if(subgroups[otherSubgroup].visible&&subgroups[subgroup].index>subgroups[otherSubgroup].index){subgroups[subgroup].top+=subgroups[otherSubgroup].height}}var items=subgroupItems[subgroup];for(var i=0;i<items.length;i++){if(items[i].data.subgroup!==undefined){items[i].top=subgroups[items[i].data.subgroup].top+.5*margin.item.vertical;if(subgroups[subgroup].stack){items[i].baseTop=items[i].top}}}if(doSubStack&&subgroups[subgroup].stack){exports.substack(subgroupItems[subgroup],margin,subgroups[subgroup])}}}};exports.collision=function(a,b,margin,rtl){if(rtl){return a.right-margin.horizontal+EPSILON<b.right+b.width&&a.right+a.width+margin.horizontal-EPSILON>b.right&&a.top-margin.vertical+EPSILON<b.top+b.height&&a.top+a.height+margin.vertical-EPSILON>b.top}else{return a.left-margin.horizontal+EPSILON<b.left+b.width&&a.left+a.width+margin.horizontal-EPSILON>b.left&&a.top-margin.vertical+EPSILON<b.top+b.height&&a.top+a.height+margin.vertical-EPSILON>b.top}};exports.collisionByTimes=function(a,b){return a.start<=b.start&&a.end>=b.start&&a.top<b.top+b.height&&a.top+a.height>b.top||b.start<=a.start&&b.end>=a.start&&b.top<a.top+a.height&&b.top+b.height>a.top}},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function BoxItem(data,conversion,options){this.props={dot:{width:0,height:0},line:{width:0,height:0}};this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data)}}Item.call(this,data,conversion,options)}BoxItem.prototype=new Item(null,null,null);BoxItem.prototype.isVisible=function(range){var isVisible;var align=this.options.align;var widthInMs=this.width*range.getMillisecondsPerPixel();if(align==\"right\"){isVisible=this.data.start.getTime()>range.start&&this.data.start.getTime()-widthInMs<range.end}else if(align==\"left\"){isVisible=this.data.start.getTime()+widthInMs>range.start&&this.data.start.getTime()<range.end}else{isVisible=this.data.start.getTime()+widthInMs/2>range.start&&this.data.start.getTime()-widthInMs/2<range.end}return isVisible};BoxItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"DIV\");this.dom.content=document.createElement(\"DIV\");this.dom.content.className=\"vis-item-content\";this.dom.box.appendChild(this.dom.content);this.dom.line=document.createElement(\"DIV\");this.dom.line.className=\"vis-line\";this.dom.dot=document.createElement(\"DIV\");this.dom.dot.className=\"vis-dot\";this.dom.box[\"timeline-item\"]=this;this.dirty=true}};BoxItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var foreground=this.parent.dom.foreground;if(!foreground)throw new Error(\"Cannot redraw item: parent has no foreground container element\");foreground.appendChild(this.dom.box)}if(!this.dom.line.parentNode){var background=this.parent.dom.background;if(!background)throw new Error(\"Cannot redraw item: parent has no background container element\");background.appendChild(this.dom.line)}if(!this.dom.dot.parentNode){var axis=this.parent.dom.axis;if(!background)throw new Error(\"Cannot redraw item: parent has no axis container element\");axis.appendChild(this.dom.dot)}this.displayed=true};BoxItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.box);this._updateStyle(this.dom.box);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.box.className=\"vis-item vis-box\"+className;this.dom.line.className=\"vis-item vis-line\"+className;this.dom.dot.className=\"vis-item vis-dot\"+className}};BoxItem.prototype._getDomComponentsSizes=function(){return{previous:{right:this.dom.box.style.right,left:this.dom.box.style.left},dot:{height:this.dom.dot.offsetHeight,width:this.dom.dot.offsetWidth},line:{width:this.dom.line.offsetWidth},box:{width:this.dom.box.offsetWidth,height:this.dom.box.offsetHeight}}};BoxItem.prototype._updateDomComponentsSizes=function(sizes){if(this.options.rtl){this.dom.box.style.right=\"0px\"}else{this.dom.box.style.left=\"0px\"}this.props.dot.height=sizes.dot.height;this.props.dot.width=sizes.dot.width;this.props.line.width=sizes.line.width;this.width=sizes.box.width;this.height=sizes.box.height;if(this.options.rtl){this.dom.box.style.right=sizes.previous.right}else{this.dom.box.style.left=sizes.previous.left}this.dirty=false};BoxItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box);this._repaintDragCenter();this._repaintDeleteButton(this.dom.box)};BoxItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};BoxItem.prototype.show=function(){if(!this.displayed){this.redraw()}};BoxItem.prototype.hide=function(){if(this.displayed){var dom=this.dom;if(dom.box.parentNode)dom.box.parentNode.removeChild(dom.box);if(dom.line.parentNode)dom.line.parentNode.removeChild(dom.line);if(dom.dot.parentNode)dom.dot.parentNode.removeChild(dom.dot);this.displayed=false}};BoxItem.prototype.repositionX=function(){var start=this.conversion.toScreen(this.data.start);var align=this.options.align;if(align==\"right\"){if(this.options.rtl){this.right=start-this.width;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start-this.props.line.width+\"px\";this.dom.dot.style.right=start-this.props.line.width/2-this.props.dot.width/2+\"px\"}else{this.left=start-this.width;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start-this.props.line.width+\"px\";this.dom.dot.style.left=start-this.props.line.width/2-this.props.dot.width/2+\"px\"}}else if(align==\"left\"){if(this.options.rtl){this.right=start;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start+\"px\";this.dom.dot.style.right=start+this.props.line.width/2-this.props.dot.width/2+\"px\"}else{this.left=start;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start+\"px\";this.dom.dot.style.left=start+this.props.line.width/2-this.props.dot.width/2+\"px\"}}else{if(this.options.rtl){this.right=start-this.width/2;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start-this.props.line.width+\"px\";this.dom.dot.style.right=start-this.props.dot.width/2+\"px\"}else{this.left=start-this.width/2;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start-this.props.line.width/2+\"px\";this.dom.dot.style.left=start-this.props.dot.width/2+\"px\"}}};BoxItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var box=this.dom.box;var line=this.dom.line;var dot=this.dom.dot;if(orientation==\"top\"){box.style.top=(this.top||0)+\"px\";line.style.top=\"0\";line.style.height=this.parent.top+this.top+1+\"px\";line.style.bottom=\"\"}else{var itemSetHeight=this.parent.itemSet.props.height;var lineHeight=itemSetHeight-this.parent.top-this.parent.height+this.top;box.style.top=(this.parent.height-this.top-this.height||0)+\"px\";line.style.top=itemSetHeight-lineHeight+\"px\";line.style.bottom=\"0\"}dot.style.top=-this.props.dot.height/2+\"px\"};BoxItem.prototype.getWidthLeft=function(){return this.width/2};BoxItem.prototype.getWidthRight=function(){return this.width/2};module.exports=BoxItem},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function PointItem(data,conversion,options){this.props={dot:{top:0,width:0,height:0},content:{height:0,marginLeft:0,marginRight:0}};this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data)}}Item.call(this,data,conversion,options)}PointItem.prototype=new Item(null,null,null);PointItem.prototype.isVisible=function(range){var widthInMs=this.width*range.getMillisecondsPerPixel();return this.data.start.getTime()+widthInMs>range.start&&this.data.start<range.end};PointItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.point=document.createElement(\"div\");this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.point.appendChild(this.dom.content);this.dom.dot=document.createElement(\"div\");this.dom.point.appendChild(this.dom.dot);this.dom.point[\"timeline-item\"]=this;this.dirty=true}};PointItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.point.parentNode){var foreground=this.parent.dom.foreground;if(!foreground){throw new Error(\"Cannot redraw item: parent has no foreground container element\")}foreground.appendChild(this.dom.point)}this.displayed=true};PointItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.point);this._updateStyle(this.dom.point);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.point.className=\"vis-item vis-point\"+className;this.dom.dot.className=\"vis-item vis-dot\"+className}};PointItem.prototype._getDomComponentsSizes=function(){return{dot:{width:this.dom.dot.offsetWidth,height:this.dom.dot.offsetHeight},content:{width:this.dom.content.offsetWidth,height:this.dom.content.offsetHeight},point:{width:this.dom.point.offsetWidth,height:this.dom.point.offsetHeight}}};PointItem.prototype._updateDomComponentsSizes=function(sizes){this.props.dot.width=sizes.dot.width;this.props.dot.height=sizes.dot.height;this.props.content.height=sizes.content.height;if(this.options.rtl){this.dom.content.style.marginRight=2*this.props.dot.width+\"px\"}else{this.dom.content.style.marginLeft=2*this.props.dot.width+\"px\"}this.width=sizes.point.width;this.height=sizes.point.height;this.dom.dot.style.top=(this.height-this.props.dot.height)/2+\"px\";if(this.options.rtl){this.dom.dot.style.right=this.props.dot.width/2+\"px\"}else{this.dom.dot.style.left=this.props.dot.width/2+\"px\"}this.dirty=false};PointItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.point);this._repaintDragCenter();this._repaintDeleteButton(this.dom.point)};PointItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};PointItem.prototype.show=function(){if(!this.displayed){this.redraw()}};PointItem.prototype.hide=function(){if(this.displayed){if(this.dom.point.parentNode){this.dom.point.parentNode.removeChild(this.dom.point)}this.displayed=false}};PointItem.prototype.repositionX=function(){var start=this.conversion.toScreen(this.data.start);if(this.options.rtl){this.right=start-this.props.dot.width;this.dom.point.style.right=this.right+\"px\"}else{this.left=start-this.props.dot.width;this.dom.point.style.left=this.left+\"px\"}};PointItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var point=this.dom.point;if(orientation==\"top\"){point.style.top=this.top+\"px\"}else{point.style.top=this.parent.height-this.top-this.height+\"px\"}};PointItem.prototype.getWidthLeft=function(){return this.props.dot.width};PointItem.prototype.getWidthRight=function(){return this.props.dot.width};module.exports=PointItem},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);var BackgroundGroup=__webpack_require__(69);var RangeItem=__webpack_require__(70);function BackgroundItem(data,conversion,options){this.props={content:{width:0}};this.overflow=false;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data.id)}if(data.end==undefined){throw new Error('Property \"end\" missing in item '+data.id)}}Item.call(this,data,conversion,options)}BackgroundItem.prototype=new Item(null,null,null);BackgroundItem.prototype.baseClassName=\"vis-item vis-background\";BackgroundItem.prototype.stack=false;BackgroundItem.prototype.isVisible=function(range){return this.data.start<range.end&&this.data.end>range.start};BackgroundItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"div\");this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-item-overflow\";this.dom.box.appendChild(this.dom.frame);this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.frame.appendChild(this.dom.content);this.dirty=true}};BackgroundItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var background=this.parent.dom.background;if(!background){throw new Error(\"Cannot redraw item: parent has no background container element\")}background.appendChild(this.dom.box)}this.displayed=true};BackgroundItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.content);this._updateStyle(this.dom.box);var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\");this.dom.box.className=this.baseClassName+className}};BackgroundItem.prototype._getDomComponentsSizes=function(){this.overflow=window.getComputedStyle(this.dom.content).overflow!==\"hidden\";return{content:{width:this.dom.content.offsetWidth}}};BackgroundItem.prototype._updateDomComponentsSizes=function(sizes){this.props.content.width=sizes.content.width;this.height=0;this.dirty=false};BackgroundItem.prototype._repaintDomAdditionals=function(){};BackgroundItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes.bind(this)()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};BackgroundItem.prototype.show=RangeItem.prototype.show;BackgroundItem.prototype.hide=RangeItem.prototype.hide;BackgroundItem.prototype.repositionX=RangeItem.prototype.repositionX;BackgroundItem.prototype.repositionY=function(margin){var height;var orientation=this.options.orientation.item;if(this.data.subgroup!==undefined){var itemSubgroup=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[itemSubgroup].height+\"px\";if(orientation==\"top\"){this.dom.box.style.top=this.parent.top+this.parent.subgroups[itemSubgroup].top+\"px\"}else{this.dom.box.style.top=this.parent.top+this.parent.height-this.parent.subgroups[itemSubgroup].top-this.parent.subgroups[itemSubgroup].height+\"px\"}this.dom.box.style.bottom=\"\"}else{if(this.parent instanceof BackgroundGroup){height=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height);this.dom.box.style.bottom=orientation==\"bottom\"?\"0\":\"\";this.dom.box.style.top=orientation==\"top\"?\"0\":\"\"}else{height=this.parent.height;this.dom.box.style.top=this.parent.top+\"px\";this.dom.box.style.bottom=\"\"}}this.dom.box.style.height=height+\"px\"};module.exports=BackgroundItem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Popup=function(){function Popup(container,overflowMethod){(0,_classCallCheck3[\"default\"])(this,Popup);this.container=container;this.overflowMethod=overflowMethod||\"cap\";this.x=0;this.y=0;this.padding=5;this.hidden=false;this.frame=document.createElement(\"div\");this.frame.className=\"vis-tooltip\";this.container.appendChild(this.frame)}(0,_createClass3[\"default\"])(Popup,[{key:\"setPosition\",value:function setPosition(x,y){this.x=parseInt(x);this.y=parseInt(y)}},{key:\"setText\",value:function setText(content){if(content instanceof Element){this.frame.innerHTML=\"\";this.frame.appendChild(content)}else{this.frame.innerHTML=content}}},{key:\"show\",value:function show(doShow){if(doShow===undefined){doShow=true}if(doShow===true){var height=this.frame.clientHeight;var width=this.frame.clientWidth;var maxHeight=this.frame.parentNode.clientHeight;var maxWidth=this.frame.parentNode.clientWidth;var left=0,top=0;if(this.overflowMethod==\"flip\"){var isLeft=false,isTop=true;if(this.y-height<this.padding){isTop=false}if(this.x+width>maxWidth-this.padding){isLeft=true}if(isLeft){left=this.x-width}else{left=this.x}if(isTop){top=this.y-height}else{top=this.y}}else{top=this.y-height;if(top+height+this.padding>maxHeight){top=maxHeight-height-this.padding}if(top<this.padding){top=this.padding}left=this.x;if(left+width+this.padding>maxWidth){left=maxWidth-width-this.padding}if(left<this.padding){left=this.padding}}this.frame.style.left=left+\"px\";this.frame.style.top=top+\"px\";this.frame.style.visibility=\"visible\";this.hidden=false}else{this.hide()}}},{key:\"hide\",value:function hide(){this.hidden=true;this.frame.style.left=\"0\";this.frame.style.top=\"0\";this.frame.style.visibility=\"hidden\"}},{key:\"destroy\",value:function destroy(){this.frame.parentNode.removeChild(this.frame)}}]);return Popup}();exports[\"default\"]=Popup},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var date=\"date\";var object=\"object\";var dom=\"dom\";var moment=\"moment\";var any=\"any\";var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,function:\"function\"},container:{dom:dom},__type__:{object:object,boolean:bool,function:\"function\"}},align:{string:string},rtl:{boolean:bool,undefined:\"undefined\"},rollingMode:{follow:{boolean:bool},offset:{number:number,undefined:\"undefined\"},__type__:{object:object}},verticalScroll:{boolean:bool,undefined:\"undefined\"},horizontalScroll:{boolean:bool,undefined:\"undefined\"},autoResize:{boolean:bool},throttleRedraw:{number:number},clickToUse:{boolean:bool},dataAttributes:{string:string,array:array},editable:{add:{boolean:bool,undefined:\"undefined\"},remove:{boolean:bool,undefined:\"undefined\"},updateGroup:{boolean:bool,undefined:\"undefined\"},updateTime:{boolean:bool,undefined:\"undefined\"},overrideItems:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},end:{number:number,date:date,string:string,moment:moment},format:{minorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},week:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object,function:\"function\"}},majorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},week:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object,function:\"function\"}},__type__:{object:object}},moment:{function:\"function\"},groupOrder:{string:string,function:\"function\"},groupEditable:{add:{boolean:bool,undefined:\"undefined\"},remove:{boolean:bool,undefined:\"undefined\"},order:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},groupOrderSwap:{function:\"function\"},height:{string:string,number:number},hiddenDates:{start:{date:date,number:number,string:string,moment:moment},end:{date:date,number:number,string:string,moment:moment},repeat:{string:string},__type__:{object:object,array:array}},itemsAlwaysDraggable:{item:{boolean:bool,undefined:\"undefined\"},range:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},limitSize:{boolean:bool},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},margin:{axis:{number:number},item:{horizontal:{number:number,undefined:\"undefined\"},vertical:{number:number,undefined:\"undefined\"},__type__:{object:object,number:number}},__type__:{object:object,number:number}},max:{date:date,number:number,string:string,moment:moment},maxHeight:{number:number,string:string},maxMinorChars:{number:number},min:{date:date,number:number,string:string,moment:moment},minHeight:{number:number,string:string},moveable:{boolean:bool},multiselect:{boolean:bool},multiselectPerGroup:{boolean:bool},onAdd:{function:\"function\"},onDropObjectOnItem:{function:\"function\"},onUpdate:{function:\"function\"},onMove:{function:\"function\"},onMoving:{function:\"function\"},onRemove:{function:\"function\"},onAddGroup:{function:\"function\"},onMoveGroup:{function:\"function\"},onRemoveGroup:{function:\"function\"},onInitialDrawComplete:{function:\"function\"},order:{function:\"function\"},orientation:{axis:{string:string,undefined:\"undefined\"},item:{string:string,undefined:\"undefined\"},__type__:{string:string,object:object}},selectable:{boolean:bool},showCurrentTime:{boolean:bool},showMajorLabels:{boolean:bool},showMinorLabels:{boolean:bool},stack:{boolean:bool},stackSubgroups:{boolean:bool},snap:{function:\"function\",null:\"null\"},start:{date:date,number:number,string:string,moment:moment},template:{function:\"function\"},groupTemplate:{function:\"function\"},visibleFrameTemplate:{string:string,function:\"function\"},showTooltips:{boolean:bool},tooltip:{followMouse:{boolean:bool},overflowMethod:{string:[\"cap\",\"flip\"]},__type__:{object:object}},tooltipOnItemUpdateTime:{template:{function:\"function\"},__type__:{boolean:bool,object:object}},timeAxis:{scale:{string:string,undefined:\"undefined\"},step:{number:number,undefined:\"undefined\"},__type__:{object:object}},type:{string:string},width:{string:string,number:number},zoomable:{boolean:bool},zoomKey:{string:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"]},zoomMax:{number:number},zoomMin:{number:number},__type__:{object:object}};var configureOptions={global:{align:[\"center\",\"left\",\"right\"],direction:false,autoResize:true,clickToUse:false,editable:{add:false,remove:false,updateGroup:false,updateTime:false},end:\"\",format:{minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",week:\"w\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",week:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}},groupsDraggable:false,height:\"\",locale:\"\",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:\"\",maxHeight:\"\",maxMinorChars:[7,0,20,1],min:\"\",minHeight:\"\",moveable:false,multiselect:false,multiselectPerGroup:false,orientation:{axis:[\"both\",\"bottom\",\"top\"],item:[\"bottom\",\"top\"]},selectable:true,showCurrentTime:false,showMajorLabels:true,showMinorLabels:true,stack:true,stackSubgroups:true,start:\"\",showTooltips:true,tooltip:{followMouse:false,overflowMethod:\"flip\"},tooltipOnItemUpdateTime:false,type:[\"box\",\"point\",\"range\",\"background\"],width:\"100%\",zoomable:true,zoomKey:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Component=__webpack_require__(16);var DataAxis=__webpack_require__(107);var GraphGroup=__webpack_require__(109);var Legend=__webpack_require__(112);var Bars=__webpack_require__(110)\n;var Lines=__webpack_require__(111);var Points=__webpack_require__(72);var UNGROUPED=\"__ungrouped__\";function LineGraph(body,options){this.id=util.randomUUID();this.body=body;this.defaultOptions={yAxisOrientation:\"left\",defaultGroup:\"default\",sort:true,sampling:true,stack:false,graphHeight:\"400px\",shaded:{enabled:false,orientation:\"bottom\"},style:\"line\",barChart:{width:50,sideBySide:false,align:\"center\"},interpolation:{enabled:true,parametrization:\"centripetal\",alpha:.5},drawPoints:{enabled:true,size:6,style:\"square\"},dataAxis:{},legend:{},groups:{visibility:{}}};this.options=util.extend({},this.defaultOptions);this.dom={};this.props={};this.hammer=null;this.groups={};this.abortedGraphUpdate=false;this.updateSVGheight=false;this.updateSVGheightOnResize=false;this.forceGraphUpdate=true;var me=this;this.itemsData=null;this.groupsData=null;this.itemListeners={add:function add(event,params,senderId){me._onAdd(params.items)},update:function update(event,params,senderId){me._onUpdate(params.items)},remove:function remove(event,params,senderId){me._onRemove(params.items)}};this.groupListeners={add:function add(event,params,senderId){me._onAddGroups(params.items)},update:function update(event,params,senderId){me._onUpdateGroups(params.items)},remove:function remove(event,params,senderId){me._onRemoveGroups(params.items)}};this.items={};this.selection=[];this.lastStart=this.body.range.start;this.touchParams={};this.svgElements={};this.setOptions(options);this.groupsUsingDefaultStyles=[0];this.body.emitter.on(\"rangechanged\",function(){me.lastStart=me.body.range.start;me.svg.style.left=util.option.asSize(-me.props.width);me.forceGraphUpdate=true;me.redraw.call(me)});this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}LineGraph.prototype=new Component;LineGraph.prototype._create=function(){var frame=document.createElement(\"div\");frame.className=\"vis-line-graph\";this.dom.frame=frame;this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"relative\";this.svg.style.height=(\"\"+this.options.graphHeight).replace(\"px\",\"\")+\"px\";this.svg.style.display=\"block\";frame.appendChild(this.svg);this.options.dataAxis.orientation=\"left\";this.yAxisLeft=new DataAxis(this.body,this.options.dataAxis,this.svg,this.options.groups);this.options.dataAxis.orientation=\"right\";this.yAxisRight=new DataAxis(this.body,this.options.dataAxis,this.svg,this.options.groups);delete this.options.dataAxis.orientation;this.legendLeft=new Legend(this.body,this.options.legend,\"left\",this.options.groups);this.legendRight=new Legend(this.body,this.options.legend,\"right\",this.options.groups);this.show()};LineGraph.prototype.setOptions=function(options){if(options){var fields=[\"sampling\",\"defaultGroup\",\"stack\",\"height\",\"graphHeight\",\"yAxisOrientation\",\"style\",\"barChart\",\"dataAxis\",\"sort\",\"groups\"];if(options.graphHeight===undefined&&options.height!==undefined){this.updateSVGheight=true;this.updateSVGheightOnResize=true}else if(this.body.domProps.centerContainer.height!==undefined&&options.graphHeight!==undefined){if(parseInt((options.graphHeight+\"\").replace(\"px\",\"\"))<this.body.domProps.centerContainer.height){this.updateSVGheight=true}}util.selectiveDeepExtend(fields,this.options,options);util.mergeOptions(this.options,options,\"interpolation\");util.mergeOptions(this.options,options,\"drawPoints\");util.mergeOptions(this.options,options,\"shaded\");util.mergeOptions(this.options,options,\"legend\");if(options.interpolation){if((0,_typeof3[\"default\"])(options.interpolation)==\"object\"){if(options.interpolation.parametrization){if(options.interpolation.parametrization==\"uniform\"){this.options.interpolation.alpha=0}else if(options.interpolation.parametrization==\"chordal\"){this.options.interpolation.alpha=1}else{this.options.interpolation.parametrization=\"centripetal\";this.options.interpolation.alpha=.5}}}}if(this.yAxisLeft){if(options.dataAxis!==undefined){this.yAxisLeft.setOptions(this.options.dataAxis);this.yAxisRight.setOptions(this.options.dataAxis)}}if(this.legendLeft){if(options.legend!==undefined){this.legendLeft.setOptions(this.options.legend);this.legendRight.setOptions(this.options.legend)}}if(this.groups.hasOwnProperty(UNGROUPED)){this.groups[UNGROUPED].setOptions(options)}}if(this.dom.frame){this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})}};LineGraph.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}};LineGraph.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}};LineGraph.prototype.setItems=function(items){var me=this,ids,oldItemsData=this.itemsData;if(!items){this.itemsData=null}else if(items instanceof DataSet||items instanceof DataView){this.itemsData=items}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(oldItemsData){util.forEach(this.itemListeners,function(callback,event){oldItemsData.off(event,callback)});ids=oldItemsData.getIds();this._onRemove(ids)}if(this.itemsData){var id=this.id;util.forEach(this.itemListeners,function(callback,event){me.itemsData.on(event,callback,id)});ids=this.itemsData.getIds();this._onAdd(ids)}};LineGraph.prototype.setGroups=function(groups){var me=this;var ids;if(this.groupsData){util.forEach(this.groupListeners,function(callback,event){me.groupsData.off(event,callback)});ids=this.groupsData.getIds();this.groupsData=null;for(var i=0;i<ids.length;i++){this._removeGroup(ids[i])}}if(!groups){this.groupsData=null}else if(groups instanceof DataSet||groups instanceof DataView){this.groupsData=groups}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(this.groupsData){var id=this.id;util.forEach(this.groupListeners,function(callback,event){me.groupsData.on(event,callback,id)});ids=this.groupsData.getIds();this._onAddGroups(ids)}};LineGraph.prototype._onUpdate=function(ids){this._updateAllGroupData(ids)};LineGraph.prototype._onAdd=function(ids){this._onUpdate(ids)};LineGraph.prototype._onRemove=function(ids){this._onUpdate(ids)};LineGraph.prototype._onUpdateGroups=function(groupIds){this._updateAllGroupData(null,groupIds)};LineGraph.prototype._onAddGroups=function(groupIds){this._onUpdateGroups(groupIds)};LineGraph.prototype._onRemoveGroups=function(groupIds){for(var i=0;i<groupIds.length;i++){this._removeGroup(groupIds[i])}this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})};LineGraph.prototype._removeGroup=function(groupId){if(this.groups.hasOwnProperty(groupId)){if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.removeGroup(groupId);this.legendRight.removeGroup(groupId);this.legendRight.redraw()}else{this.yAxisLeft.removeGroup(groupId);this.legendLeft.removeGroup(groupId);this.legendLeft.redraw()}delete this.groups[groupId]}};LineGraph.prototype._updateGroup=function(group,groupId){if(!this.groups.hasOwnProperty(groupId)){this.groups[groupId]=new GraphGroup(group,groupId,this.options,this.groupsUsingDefaultStyles);if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.addGroup(groupId,this.groups[groupId]);this.legendRight.addGroup(groupId,this.groups[groupId])}else{this.yAxisLeft.addGroup(groupId,this.groups[groupId]);this.legendLeft.addGroup(groupId,this.groups[groupId])}}else{this.groups[groupId].update(group);if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.updateGroup(groupId,this.groups[groupId]);this.legendRight.updateGroup(groupId,this.groups[groupId]);this.yAxisLeft.removeGroup(groupId);this.legendLeft.removeGroup(groupId)}else{this.yAxisLeft.updateGroup(groupId,this.groups[groupId]);this.legendLeft.updateGroup(groupId,this.groups[groupId]);this.yAxisRight.removeGroup(groupId);this.legendRight.removeGroup(groupId)}}this.legendLeft.redraw();this.legendRight.redraw()};LineGraph.prototype._updateAllGroupData=function(ids,groupIds){if(this.itemsData!=null){var groupsContent={};var items=this.itemsData.get();var fieldId=this.itemsData._fieldId;var idMap={};if(ids){ids.map(function(id){idMap[id]=id})}var groupCounts={};for(var i=0;i<items.length;i++){var item=items[i];var groupId=item.group;if(groupId===null||groupId===undefined){groupId=UNGROUPED}groupCounts.hasOwnProperty(groupId)?groupCounts[groupId]++:groupCounts[groupId]=1}var existingItemsMap={};if(!groupIds&&ids){for(groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){group=this.groups[groupId];var existing_items=group.getItems();groupsContent[groupId]=existing_items.filter(function(item){existingItemsMap[item[fieldId]]=item[fieldId];return item[fieldId]!==idMap[item[fieldId]]});var newLength=groupCounts[groupId];groupCounts[groupId]-=groupsContent[groupId].length;if(groupsContent[groupId].length<newLength){groupsContent[groupId][newLength-1]={}}}}}for(i=0;i<items.length;i++){item=items[i];groupId=item.group;if(groupId===null||groupId===undefined){groupId=UNGROUPED}if(!groupIds&&ids&&item[fieldId]!==idMap[item[fieldId]]&&existingItemsMap.hasOwnProperty(item[fieldId])){continue}if(!groupsContent.hasOwnProperty(groupId)){groupsContent[groupId]=new Array(groupCounts[groupId])}var extended=util.bridgeObject(item);extended.x=util.convert(item.x,\"Date\");extended.end=util.convert(item.end,\"Date\");extended.orginalY=item.y;extended.y=Number(item.y);extended[fieldId]=item[fieldId];var index=groupsContent[groupId].length-groupCounts[groupId]--;groupsContent[groupId][index]=extended}for(groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){if(!groupsContent.hasOwnProperty(groupId)){groupsContent[groupId]=new Array(0)}}}for(groupId in groupsContent){if(groupsContent.hasOwnProperty(groupId)){if(groupsContent[groupId].length==0){if(this.groups.hasOwnProperty(groupId)){this._removeGroup(groupId)}}else{var group=undefined;if(this.groupsData!=undefined){group=this.groupsData.get(groupId)}if(group==undefined){group={id:groupId,content:this.options.defaultGroup+groupId}}this._updateGroup(group,groupId);this.groups[groupId].setItems(groupsContent[groupId])}}}this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})}};LineGraph.prototype.redraw=function(){var resized=false;this.props.width=this.dom.frame.offsetWidth;this.props.height=this.body.domProps.centerContainer.height-this.body.domProps.border.top-this.body.domProps.border.bottom;resized=this._isResized()||resized;var visibleInterval=this.body.range.end-this.body.range.start;var zoomed=visibleInterval!=this.lastVisibleInterval;this.lastVisibleInterval=visibleInterval;if(resized==true){this.svg.style.width=util.option.asSize(3*this.props.width);this.svg.style.left=util.option.asSize(-this.props.width);if((this.options.height+\"\").indexOf(\"%\")!=-1||this.updateSVGheightOnResize==true){this.updateSVGheight=true}}if(this.updateSVGheight==true){if(this.options.graphHeight!=this.props.height+\"px\"){this.options.graphHeight=this.props.height+\"px\";this.svg.style.height=this.props.height+\"px\"}this.updateSVGheight=false}else{this.svg.style.height=(\"\"+this.options.graphHeight).replace(\"px\",\"\")+\"px\"}if(resized==true||zoomed==true||this.abortedGraphUpdate==true||this.forceGraphUpdate==true){resized=this._updateGraph()||resized;this.forceGraphUpdate=false}else{if(this.lastStart!=0){var offset=this.body.range.start-this.lastStart;var range=this.body.range.end-this.body.range.start;if(this.props.width!=0){var rangePerPixelInv=this.props.width/range;var xOffset=offset*rangePerPixelInv;this.svg.style.left=-this.props.width-xOffset+\"px\"}}}this.legendLeft.redraw();this.legendRight.redraw();return resized};LineGraph.prototype._getSortedGroupIds=function(){var grouplist=[];for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){var group=this.groups[groupId];if(group.visible==true&&(this.options.groups.visibility[groupId]===undefined||this.options.groups.visibility[groupId]==true)){grouplist.push({id:groupId,zIndex:group.options.zIndex})}}}util.insertSort(grouplist,function(a,b){var az=a.zIndex;var bz=b.zIndex;if(az===undefined)az=0;if(bz===undefined)bz=0;return az==bz?0:az<bz?-1:1});var groupIds=new Array(grouplist.length);for(var i=0;i<grouplist.length;i++){groupIds[i]=grouplist[i].id}return groupIds};LineGraph.prototype._updateGraph=function(){DOMutil.prepareElements(this.svgElements);if(this.props.width!=0&&this.itemsData!=null){var group,i;var groupRanges={};var changeCalled=false;var minDate=this.body.util.toGlobalTime(-this.body.domProps.root.width);var maxDate=this.body.util.toGlobalTime(2*this.body.domProps.root.width);var groupIds=this._getSortedGroupIds();if(groupIds.length>0){var groupsData={};this._getRelevantData(groupIds,groupsData,minDate,maxDate);this._applySampling(groupIds,groupsData);for(i=0;i<groupIds.length;i++){this._convertXcoordinates(groupsData[groupIds[i]])}this._getYRanges(groupIds,groupsData,groupRanges);changeCalled=this._updateYAxis(groupIds,groupRanges);if(changeCalled==true){DOMutil.cleanupElements(this.svgElements);this.abortedGraphUpdate=true;return true}this.abortedGraphUpdate=false;var below=undefined;for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(this.options.stack===true&&this.options.style===\"line\"){if(group.options.excludeFromStacking==undefined||!group.options.excludeFromStacking){if(below!=undefined){this._stack(groupsData[group.id],groupsData[below.id]);if(group.options.shaded.enabled==true&&group.options.shaded.orientation!==\"group\"){if(group.options.shaded.orientation==\"top\"&&below.options.shaded.orientation!==\"group\"){below.options.shaded.orientation=\"group\";below.options.shaded.groupId=group.id}else{group.options.shaded.orientation=\"group\";group.options.shaded.groupId=below.id}}}below=group}}this._convertYcoordinates(groupsData[groupIds[i]],group)}var paths={};for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(group.options.style===\"line\"&&group.options.shaded.enabled==true){var dataset=groupsData[groupIds[i]];if(dataset==null||dataset.length==0){continue}if(!paths.hasOwnProperty(groupIds[i])){paths[groupIds[i]]=Lines.calcPath(dataset,group)}if(group.options.shaded.orientation===\"group\"){var subGroupId=group.options.shaded.groupId;if(groupIds.indexOf(subGroupId)===-1){console.log(group.id+\": Unknown shading group target given:\"+subGroupId);continue}if(!paths.hasOwnProperty(subGroupId)){paths[subGroupId]=Lines.calcPath(groupsData[subGroupId],this.groups[subGroupId])}Lines.drawShading(paths[groupIds[i]],group,paths[subGroupId],this.framework)}else{Lines.drawShading(paths[groupIds[i]],group,undefined,this.framework)}}}Bars.draw(groupIds,groupsData,this.framework);for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(groupsData[groupIds[i]].length>0){switch(group.options.style){case\"line\":if(!paths.hasOwnProperty(groupIds[i])){paths[groupIds[i]]=Lines.calcPath(groupsData[groupIds[i]],group)}Lines.draw(paths[groupIds[i]],group,this.framework);case\"point\":case\"points\":if(group.options.style==\"point\"||group.options.style==\"points\"||group.options.drawPoints.enabled==true){Points.draw(groupsData[groupIds[i]],group,this.framework)}break;case\"bar\":default:}}}}}DOMutil.cleanupElements(this.svgElements);return false};LineGraph.prototype._stack=function(data,subData){var index,dx,dy,subPrevPoint,subNextPoint;index=0;for(var j=0;j<data.length;j++){subPrevPoint=undefined;subNextPoint=undefined;for(var k=index;k<subData.length;k++){if(subData[k].x===data[j].x){subPrevPoint=subData[k];subNextPoint=subData[k];index=k;break}else if(subData[k].x>data[j].x){subNextPoint=subData[k];if(k==0){subPrevPoint=subNextPoint}else{subPrevPoint=subData[k-1]}index=k;break}}if(subNextPoint===undefined){subPrevPoint=subData[subData.length-1];subNextPoint=subData[subData.length-1]}dx=subNextPoint.x-subPrevPoint.x;dy=subNextPoint.y-subPrevPoint.y;if(dx==0){data[j].y=data[j].orginalY+subNextPoint.y}else{data[j].y=data[j].orginalY+dy/dx*(data[j].x-subPrevPoint.x)+subPrevPoint.y}}};LineGraph.prototype._getRelevantData=function(groupIds,groupsData,minDate,maxDate){var group,i,j,item;if(groupIds.length>0){for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];var itemsData=group.getItems();if(group.options.sort==true){var dateComparator=function dateComparator(a,b){return a.getTime()==b.getTime()?0:a<b?-1:1};var first=Math.max(0,util.binarySearchValue(itemsData,minDate,\"x\",\"before\",dateComparator));var last=Math.min(itemsData.length,util.binarySearchValue(itemsData,maxDate,\"x\",\"after\",dateComparator)+1);if(last<=0){last=itemsData.length}var dataContainer=new Array(last-first);for(j=first;j<last;j++){item=group.itemsData[j];dataContainer[j-first]=item}groupsData[groupIds[i]]=dataContainer}else{groupsData[groupIds[i]]=group.itemsData}}}};LineGraph.prototype._applySampling=function(groupIds,groupsData){var group;if(groupIds.length>0){for(var i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(group.options.sampling==true){var dataContainer=groupsData[groupIds[i]];if(dataContainer.length>0){var increment=1;var amountOfPoints=dataContainer.length;var xDistance=this.body.util.toGlobalScreen(dataContainer[dataContainer.length-1].x)-this.body.util.toGlobalScreen(dataContainer[0].x);var pointsPerPixel=amountOfPoints/xDistance;increment=Math.min(Math.ceil(.2*amountOfPoints),Math.max(1,Math.round(pointsPerPixel)));var sampledData=new Array(amountOfPoints);for(var j=0;j<amountOfPoints;j+=increment){var idx=Math.round(j/increment);sampledData[idx]=dataContainer[j]}groupsData[groupIds[i]]=sampledData.splice(0,Math.round(amountOfPoints/increment))}}}}};LineGraph.prototype._getYRanges=function(groupIds,groupsData,groupRanges){var groupData,group,i;var combinedDataLeft=[];var combinedDataRight=[];var options;if(groupIds.length>0){for(i=0;i<groupIds.length;i++){groupData=groupsData[groupIds[i]];options=this.groups[groupIds[i]].options;if(groupData.length>0){group=this.groups[groupIds[i]];if(options.stack===true&&options.style===\"bar\"){if(options.yAxisOrientation===\"left\"){combinedDataLeft=combinedDataLeft.concat(groupData)}else{combinedDataRight=combinedDataRight.concat(groupData)}}else{groupRanges[groupIds[i]]=group.getYRange(groupData,groupIds[i])}}}Bars.getStackedYRange(combinedDataLeft,groupRanges,groupIds,\"__barStackLeft\",\"left\");Bars.getStackedYRange(combinedDataRight,groupRanges,groupIds,\"__barStackRight\",\"right\")}};LineGraph.prototype._updateYAxis=function(groupIds,groupRanges){var resized=false;var yAxisLeftUsed=false;var yAxisRightUsed=false;var minLeft=1e9,minRight=1e9,maxLeft=-1e9,maxRight=-1e9,minVal,maxVal;if(groupIds.length>0){for(var i=0;i<groupIds.length;i++){var group=this.groups[groupIds[i]];if(group&&group.options.yAxisOrientation!=\"right\"){yAxisLeftUsed=true;minLeft=1e9;maxLeft=-1e9}else if(group&&group.options.yAxisOrientation){yAxisRightUsed=true;minRight=1e9;maxRight=-1e9}}for(i=0;i<groupIds.length;i++){if(groupRanges.hasOwnProperty(groupIds[i])){if(groupRanges[groupIds[i]].ignore!==true){minVal=groupRanges[groupIds[i]].min;maxVal=groupRanges[groupIds[i]].max;if(groupRanges[groupIds[i]].yAxisOrientation!=\"right\"){yAxisLeftUsed=true;minLeft=minLeft>minVal?minVal:minLeft;maxLeft=maxLeft<maxVal?maxVal:maxLeft}else{yAxisRightUsed=true;minRight=minRight>minVal?minVal:minRight;maxRight=maxRight<maxVal?maxVal:maxRight}}}}if(yAxisLeftUsed==true){this.yAxisLeft.setRange(minLeft,maxLeft)}if(yAxisRightUsed==true){this.yAxisRight.setRange(minRight,maxRight)}}resized=this._toggleAxisVisiblity(yAxisLeftUsed,this.yAxisLeft)||resized;resized=this._toggleAxisVisiblity(yAxisRightUsed,this.yAxisRight)||resized;if(yAxisRightUsed==true&&yAxisLeftUsed==true){this.yAxisLeft.drawIcons=true;this.yAxisRight.drawIcons=true}else{this.yAxisLeft.drawIcons=false;this.yAxisRight.drawIcons=false}this.yAxisRight.master=!yAxisLeftUsed;this.yAxisRight.masterAxis=this.yAxisLeft;if(this.yAxisRight.master==false){if(yAxisRightUsed==true){this.yAxisLeft.lineOffset=this.yAxisRight.width}else{this.yAxisLeft.lineOffset=0}resized=this.yAxisLeft.redraw()||resized;resized=this.yAxisRight.redraw()||resized}else{resized=this.yAxisRight.redraw()||resized}var tempGroups=[\"__barStackLeft\",\"__barStackRight\",\"__lineStackLeft\",\"__lineStackRight\"];for(i=0;i<tempGroups.length;i++){if(groupIds.indexOf(tempGroups[i])!=-1){groupIds.splice(groupIds.indexOf(tempGroups[i]),1)}}return resized};LineGraph.prototype._toggleAxisVisiblity=function(axisUsed,axis){var changed=false;if(axisUsed==false){if(axis.dom.frame.parentNode&&axis.hidden==false){axis.hide();changed=true}}else{if(!axis.dom.frame.parentNode&&axis.hidden==true){axis.show();changed=true}}return changed};LineGraph.prototype._convertXcoordinates=function(datapoints){var toScreen=this.body.util.toScreen;for(var i=0;i<datapoints.length;i++){datapoints[i].screen_x=toScreen(datapoints[i].x)+this.props.width;datapoints[i].screen_y=datapoints[i].y;if(datapoints[i].end!=undefined){datapoints[i].screen_end=toScreen(datapoints[i].end)+this.props.width}else{datapoints[i].screen_end=undefined}}};LineGraph.prototype._convertYcoordinates=function(datapoints,group){var axis=this.yAxisLeft;var svgHeight=Number(this.svg.style.height.replace(\"px\",\"\"));if(group.options.yAxisOrientation==\"right\"){axis=this.yAxisRight}for(var i=0;i<datapoints.length;i++){datapoints[i].screen_y=Math.round(axis.convertValue(datapoints[i].y))}group.setZeroPosition(Math.min(svgHeight,axis.convertValue(0)))};module.exports=LineGraph},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var Component=__webpack_require__(16);var DataScale=__webpack_require__(108);function DataAxis(body,options,svg,linegraphOptions){this.id=util.randomUUID();this.body=body;this.defaultOptions={orientation:\"left\",showMinorLabels:true,showMajorLabels:true,icons:false,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:\"40px\",visible:true,alignZeros:true,left:{range:{min:undefined,max:undefined},format:function format(value){return\"\"+parseFloat(value.toPrecision(3))},title:{text:undefined,style:undefined}},right:{range:{min:undefined,max:undefined},format:function format(value){return\"\"+parseFloat(value.toPrecision(3))},title:{text:undefined,style:undefined}}};this.linegraphOptions=linegraphOptions;this.linegraphSVG=svg;this.props={};this.DOMelements={lines:{},labels:{},title:{}};this.dom={};this.scale=undefined;this.range={start:0,end:0};this.options=util.extend({},this.defaultOptions);this.conversionFactor=1;this.setOptions(options);this.width=Number((\"\"+this.options.width).replace(\"px\",\"\"));this.minWidth=this.width;this.height=this.linegraphSVG.getBoundingClientRect().height;this.hidden=false;this.stepPixels=25;this.zeroCrossing=-1;this.amountOfSteps=-1;this.lineOffset=0;this.master=true;this.masterAxis=null;this.svgElements={};this.iconsRemoved=false;this.groups={};this.amountOfGroups=0;this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};var me=this;this.body.emitter.on(\"verticalDrag\",function(){me.dom.lineContainer.style.top=me.body.domProps.scrollTop+\"px\"})}DataAxis.prototype=new Component;DataAxis.prototype.addGroup=function(label,graphOptions){if(!this.groups.hasOwnProperty(label)){this.groups[label]=graphOptions}this.amountOfGroups+=1};DataAxis.prototype.updateGroup=function(label,graphOptions){if(!this.groups.hasOwnProperty(label)){this.amountOfGroups+=1}this.groups[label]=graphOptions};DataAxis.prototype.removeGroup=function(label){if(this.groups.hasOwnProperty(label)){delete this.groups[label];this.amountOfGroups-=1}};DataAxis.prototype.setOptions=function(options){if(options){var redraw=false;if(this.options.orientation!=options.orientation&&options.orientation!==undefined){redraw=true}var fields=[\"orientation\",\"showMinorLabels\",\"showMajorLabels\",\"icons\",\"majorLinesOffset\",\"minorLinesOffset\",\"labelOffsetX\",\"labelOffsetY\",\"iconWidth\",\"width\",\"visible\",\"left\",\"right\",\"alignZeros\"];util.selectiveDeepExtend(fields,this.options,options);this.minWidth=Number((\"\"+this.options.width).replace(\"px\",\"\"));if(redraw===true&&this.dom.frame){this.hide();this.show()}}};DataAxis.prototype._create=function(){this.dom.frame=document.createElement(\"div\");this.dom.frame.style.width=this.options.width;this.dom.frame.style.height=this.height;this.dom.lineContainer=document.createElement(\"div\");this.dom.lineContainer.style.width=\"100%\";this.dom.lineContainer.style.height=this.height;this.dom.lineContainer.style.position=\"relative\";this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"absolute\";this.svg.style.top=\"0px\";this.svg.style.height=\"100%\";this.svg.style.width=\"100%\";this.svg.style.display=\"block\";this.dom.frame.appendChild(this.svg)};DataAxis.prototype._redrawGroupIcons=function(){DOMutil.prepareElements(this.svgElements);var x;var iconWidth=this.options.iconWidth;var iconHeight=15;var iconOffset=4;var y=iconOffset+.5*iconHeight;if(this.options.orientation===\"left\"){x=iconOffset}else{x=this.width-iconWidth-iconOffset}var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible===true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]===true)){this.groups[groupId].getLegend(iconWidth,iconHeight,this.framework,x,y);y+=iconHeight+iconOffset}}DOMutil.cleanupElements(this.svgElements);this.iconsRemoved=false};DataAxis.prototype._cleanupIcons=function(){if(this.iconsRemoved===false){DOMutil.prepareElements(this.svgElements);DOMutil.cleanupElements(this.svgElements);this.iconsRemoved=true}};DataAxis.prototype.show=function(){this.hidden=false;if(!this.dom.frame.parentNode){if(this.options.orientation===\"left\"){this.body.dom.left.appendChild(this.dom.frame)}else{this.body.dom.right.appendChild(this.dom.frame)}}if(!this.dom.lineContainer.parentNode){this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)}};DataAxis.prototype.hide=function(){this.hidden=true;if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}if(this.dom.lineContainer.parentNode){this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)}};DataAxis.prototype.setRange=function(start,end){this.range.start=start;this.range.end=end};DataAxis.prototype.redraw=function(){var resized=false;var activeGroups=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+\"px\";for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){if(this.groups[groupId].visible===true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]===true)){activeGroups++}}}if(this.amountOfGroups===0||activeGroups===0){this.hide()}else{this.show();this.height=Number(this.linegraphSVG.style.height.replace(\"px\",\"\"));this.dom.lineContainer.style.height=this.height+\"px\";this.width=this.options.visible===true?Number((\"\"+this.options.width).replace(\"px\",\"\")):0;var props=this.props;var frame=this.dom.frame;frame.className=\"vis-data-axis\";this._calculateCharSize();var orientation=this.options.orientation;var showMinorLabels=this.options.showMinorLabels;var showMajorLabels=this.options.showMajorLabels;props.minorLabelHeight=showMinorLabels?props.minorCharHeight:0;props.majorLabelHeight=showMajorLabels?props.majorCharHeight:0;props.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset;props.minorLineHeight=1;props.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset;props.majorLineHeight=1;if(orientation===\"left\"){frame.style.top=\"0\";frame.style.left=\"0\";frame.style.bottom=\"\";frame.style.width=this.width+\"px\";frame.style.height=this.height+\"px\";this.props.width=this.body.domProps.left.width;this.props.height=this.body.domProps.left.height}else{frame.style.top=\"\";frame.style.bottom=\"0\";frame.style.left=\"0\";frame.style.width=this.width+\"px\";frame.style.height=this.height+\"px\";this.props.width=this.body.domProps.right.width;this.props.height=this.body.domProps.right.height}resized=this._redrawLabels();resized=this._isResized()||resized;if(this.options.icons===true){this._redrawGroupIcons()}else{this._cleanupIcons()}this._redrawTitle(orientation)}return resized};DataAxis.prototype._redrawLabels=function(){var _this=this;var resized=false;DOMutil.prepareElements(this.DOMelements.lines);DOMutil.prepareElements(this.DOMelements.labels);var orientation=this.options[\"orientation\"];var customRange=this.options[orientation].range!=undefined?this.options[orientation].range:{};var autoScaleEnd=true;if(customRange.max!=undefined){this.range.end=customRange.max;autoScaleEnd=false}var autoScaleStart=true;if(customRange.min!=undefined){this.range.start=customRange.min;autoScaleStart=false}this.scale=new DataScale(this.range.start,this.range.end,autoScaleStart,autoScaleEnd,this.dom.frame.offsetHeight,this.props.majorCharHeight,this.options.alignZeros,this.options[orientation].format);if(this.master===false&&this.masterAxis!=undefined){this.scale.followScale(this.masterAxis.scale)}this.maxLabelSize=0;var lines=this.scale.getLines();lines.forEach(function(line){var y=line.y;var isMajor=line.major;if(_this.options[\"showMinorLabels\"]&&isMajor===false){_this._redrawLabel(y-2,line.val,orientation,\"vis-y-axis vis-minor\",_this.props.minorCharHeight)}if(isMajor){if(y>=0){_this._redrawLabel(y-2,line.val,orientation,\"vis-y-axis vis-major\",_this.props.majorCharHeight)}}if(_this.master===true){if(isMajor){_this._redrawLine(y,orientation,\"vis-grid vis-horizontal vis-major\",_this.options.majorLinesOffset,_this.props.majorLineWidth)}else{_this._redrawLine(y,orientation,\"vis-grid vis-horizontal vis-minor\",_this.options.minorLinesOffset,_this.props.minorLineWidth)}}});var titleWidth=0;if(this.options[orientation].title!==undefined&&this.options[orientation].title.text!==undefined){titleWidth=this.props.titleCharHeight}var offset=this.options.icons===true?Math.max(this.options.iconWidth,titleWidth)+this.options.labelOffsetX+15:titleWidth+this.options.labelOffsetX+15;if(this.maxLabelSize>this.width-offset&&this.options.visible===true){this.width=this.maxLabelSize+offset;this.options.width=this.width+\"px\";DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);this.redraw();resized=true}else if(this.maxLabelSize<this.width-offset&&this.options.visible===true&&this.width>this.minWidth){this.width=Math.max(this.minWidth,this.maxLabelSize+offset);this.options.width=this.width+\"px\";DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);this.redraw();resized=true}else{DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);resized=false}return resized};DataAxis.prototype.convertValue=function(value){return this.scale.convertValue(value)};DataAxis.prototype.screenToValue=function(x){return this.scale.screenToValue(x)};DataAxis.prototype._redrawLabel=function(y,text,orientation,className,characterHeight){var label=DOMutil.getDOMElement(\"div\",this.DOMelements.labels,this.dom.frame);label.className=className;label.innerHTML=text;if(orientation===\"left\"){label.style.left=\"-\"+this.options.labelOffsetX+\"px\";label.style.textAlign=\"right\"}else{label.style.right=\"-\"+this.options.labelOffsetX+\"px\";label.style.textAlign=\"left\"}label.style.top=y-.5*characterHeight+this.options.labelOffsetY+\"px\";text+=\"\";var largestWidth=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);if(this.maxLabelSize<text.length*largestWidth){this.maxLabelSize=text.length*largestWidth}};DataAxis.prototype._redrawLine=function(y,orientation,className,offset,width){if(this.master===true){\nvar line=DOMutil.getDOMElement(\"div\",this.DOMelements.lines,this.dom.lineContainer);line.className=className;line.innerHTML=\"\";if(orientation===\"left\"){line.style.left=this.width-offset+\"px\"}else{line.style.right=this.width-offset+\"px\"}line.style.width=width+\"px\";line.style.top=y+\"px\"}};DataAxis.prototype._redrawTitle=function(orientation){DOMutil.prepareElements(this.DOMelements.title);if(this.options[orientation].title!==undefined&&this.options[orientation].title.text!==undefined){var title=DOMutil.getDOMElement(\"div\",this.DOMelements.title,this.dom.frame);title.className=\"vis-y-axis vis-title vis-\"+orientation;title.innerHTML=this.options[orientation].title.text;if(this.options[orientation].title.style!==undefined){util.addCssText(title,this.options[orientation].title.style)}if(orientation===\"left\"){title.style.left=this.props.titleCharHeight+\"px\"}else{title.style.right=this.props.titleCharHeight+\"px\"}title.style.width=this.height+\"px\"}DOMutil.cleanupElements(this.DOMelements.title)};DataAxis.prototype._calculateCharSize=function(){if(!(\"minorCharHeight\"in this.props)){var textMinor=document.createTextNode(\"0\");var measureCharMinor=document.createElement(\"div\");measureCharMinor.className=\"vis-y-axis vis-minor vis-measure\";measureCharMinor.appendChild(textMinor);this.dom.frame.appendChild(measureCharMinor);this.props.minorCharHeight=measureCharMinor.clientHeight;this.props.minorCharWidth=measureCharMinor.clientWidth;this.dom.frame.removeChild(measureCharMinor)}if(!(\"majorCharHeight\"in this.props)){var textMajor=document.createTextNode(\"0\");var measureCharMajor=document.createElement(\"div\");measureCharMajor.className=\"vis-y-axis vis-major vis-measure\";measureCharMajor.appendChild(textMajor);this.dom.frame.appendChild(measureCharMajor);this.props.majorCharHeight=measureCharMajor.clientHeight;this.props.majorCharWidth=measureCharMajor.clientWidth;this.dom.frame.removeChild(measureCharMajor)}if(!(\"titleCharHeight\"in this.props)){var textTitle=document.createTextNode(\"0\");var measureCharTitle=document.createElement(\"div\");measureCharTitle.className=\"vis-y-axis vis-title vis-measure\";measureCharTitle.appendChild(textTitle);this.dom.frame.appendChild(measureCharTitle);this.props.titleCharHeight=measureCharTitle.clientHeight;this.props.titleCharWidth=measureCharTitle.clientWidth;this.dom.frame.removeChild(measureCharTitle)}};module.exports=DataAxis},function(module,exports,__webpack_require__){\"use strict\";function DataScale(start,end,autoScaleStart,autoScaleEnd,containerHeight,majorCharHeight){var zeroAlign=arguments.length>6&&arguments[6]!==undefined?arguments[6]:false;var formattingFunction=arguments.length>7&&arguments[7]!==undefined?arguments[7]:false;this.majorSteps=[1,2,5,10];this.minorSteps=[.25,.5,1,2];this.customLines=null;this.containerHeight=containerHeight;this.majorCharHeight=majorCharHeight;this._start=start;this._end=end;this.scale=1;this.minorStepIdx=-1;this.magnitudefactor=1;this.determineScale();this.zeroAlign=zeroAlign;this.autoScaleStart=autoScaleStart;this.autoScaleEnd=autoScaleEnd;this.formattingFunction=formattingFunction;if(autoScaleStart||autoScaleEnd){var me=this;var roundToMinor=function roundToMinor(value){var rounded=value-value%(me.magnitudefactor*me.minorSteps[me.minorStepIdx]);if(value%(me.magnitudefactor*me.minorSteps[me.minorStepIdx])>.5*(me.magnitudefactor*me.minorSteps[me.minorStepIdx])){return rounded+me.magnitudefactor*me.minorSteps[me.minorStepIdx]}else{return rounded}};if(autoScaleStart){this._start-=this.magnitudefactor*2*this.minorSteps[this.minorStepIdx];this._start=roundToMinor(this._start)}if(autoScaleEnd){this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx];this._end=roundToMinor(this._end)}this.determineScale()}}DataScale.prototype.setCharHeight=function(majorCharHeight){this.majorCharHeight=majorCharHeight};DataScale.prototype.setHeight=function(containerHeight){this.containerHeight=containerHeight};DataScale.prototype.determineScale=function(){var range=this._end-this._start;this.scale=this.containerHeight/range;var minimumStepValue=this.majorCharHeight/this.scale;var orderOfMagnitude=range>0?Math.round(Math.log(range)/Math.LN10):0;this.minorStepIdx=-1;this.magnitudefactor=Math.pow(10,orderOfMagnitude);var start=0;if(orderOfMagnitude<0){start=orderOfMagnitude}var solutionFound=false;for(var l=start;Math.abs(l)<=Math.abs(orderOfMagnitude);l++){this.magnitudefactor=Math.pow(10,l);for(var j=0;j<this.minorSteps.length;j++){var stepSize=this.magnitudefactor*this.minorSteps[j];if(stepSize>=minimumStepValue){solutionFound=true;this.minorStepIdx=j;break}}if(solutionFound===true){break}}};DataScale.prototype.is_major=function(value){return value%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])===0};DataScale.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]};DataScale.prototype.getFirstMajor=function(){var majorStep=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(majorStep-this._start%majorStep)%majorStep)};DataScale.prototype.formatValue=function(current){var returnValue=current.toPrecision(5);if(typeof this.formattingFunction===\"function\"){returnValue=this.formattingFunction(current)}if(typeof returnValue===\"number\"){return\"\"+returnValue}else if(typeof returnValue===\"string\"){return returnValue}else{return current.toPrecision(5)}};DataScale.prototype.getLines=function(){var lines=[];var step=this.getStep();var bottomOffset=(step-this._start%step)%step;for(var i=this._start+bottomOffset;this._end-i>1e-5;i+=step){if(i!=this._start){lines.push({major:this.is_major(i),y:this.convertValue(i),val:this.formatValue(i)})}}return lines};DataScale.prototype.followScale=function(other){var oldStepIdx=this.minorStepIdx;var oldStart=this._start;var oldEnd=this._end;var me=this;var increaseMagnitude=function increaseMagnitude(){me.magnitudefactor*=2};var decreaseMagnitude=function decreaseMagnitude(){me.magnitudefactor/=2};if(other.minorStepIdx<=1&&this.minorStepIdx<=1||other.minorStepIdx>1&&this.minorStepIdx>1){}else if(other.minorStepIdx<this.minorStepIdx){this.minorStepIdx=1;if(oldStepIdx==2){increaseMagnitude()}else{increaseMagnitude();increaseMagnitude()}}else{this.minorStepIdx=2;if(oldStepIdx==1){decreaseMagnitude()}else{decreaseMagnitude();decreaseMagnitude()}}var otherZero=other.convertValue(0);var otherStep=other.getStep()*other.scale;var done=false;var count=0;while(!done&&count++<5){this.scale=otherStep/(this.minorSteps[this.minorStepIdx]*this.magnitudefactor);var newRange=this.containerHeight/this.scale;this._start=oldStart;this._end=this._start+newRange;var myOriginalZero=this._end*this.scale;var majorStep=this.magnitudefactor*this.majorSteps[this.minorStepIdx];var majorOffset=this.getFirstMajor()-other.getFirstMajor();if(this.zeroAlign){var zeroOffset=otherZero-myOriginalZero;this._end+=zeroOffset/this.scale;this._start=this._end-newRange}else{if(!this.autoScaleStart){this._start+=majorStep-majorOffset/this.scale;this._end=this._start+newRange}else{this._start-=majorOffset/this.scale;this._end=this._start+newRange}}if(!this.autoScaleEnd&&this._end>oldEnd+1e-5){decreaseMagnitude();done=false;continue}if(!this.autoScaleStart&&this._start<oldStart-1e-5){if(this.zeroAlign&&oldStart>=0){console.warn(\"Can't adhere to given 'min' range, due to zeroalign\")}else{decreaseMagnitude();done=false;continue}}if(this.autoScaleStart&&this.autoScaleEnd&&newRange<oldEnd-oldStart){increaseMagnitude();done=false;continue}done=true}};DataScale.prototype.convertValue=function(value){return this.containerHeight-(value-this._start)*this.scale};DataScale.prototype.screenToValue=function(pixels){return(this.containerHeight-pixels)/this.scale+this._start};module.exports=DataScale},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Bars=__webpack_require__(110);var Lines=__webpack_require__(111);var Points=__webpack_require__(72);function GraphGroup(group,groupId,options,groupsUsingDefaultStyles){this.id=groupId;var fields=[\"sampling\",\"style\",\"sort\",\"yAxisOrientation\",\"barChart\",\"drawPoints\",\"shaded\",\"interpolation\",\"zIndex\",\"excludeFromStacking\",\"excludeFromLegend\"];this.options=util.selectiveBridgeObject(fields,options);this.usingDefaultStyle=group.className===undefined;this.groupsUsingDefaultStyles=groupsUsingDefaultStyles;this.zeroPosition=0;this.update(group);if(this.usingDefaultStyle==true){this.groupsUsingDefaultStyles[0]+=1}this.itemsData=[];this.visible=group.visible===undefined?true:group.visible}GraphGroup.prototype.setItems=function(items){if(items!=null){this.itemsData=items;if(this.options.sort==true){util.insertSort(this.itemsData,function(a,b){return a.x>b.x?1:-1})}}else{this.itemsData=[]}};GraphGroup.prototype.getItems=function(){return this.itemsData};GraphGroup.prototype.setZeroPosition=function(pos){this.zeroPosition=pos};GraphGroup.prototype.setOptions=function(options){if(options!==undefined){var fields=[\"sampling\",\"style\",\"sort\",\"yAxisOrientation\",\"barChart\",\"zIndex\",\"excludeFromStacking\",\"excludeFromLegend\"];util.selectiveDeepExtend(fields,this.options,options);if(typeof options.drawPoints==\"function\"){options.drawPoints={onRender:options.drawPoints}}util.mergeOptions(this.options,options,\"interpolation\");util.mergeOptions(this.options,options,\"drawPoints\");util.mergeOptions(this.options,options,\"shaded\");if(options.interpolation){if((0,_typeof3[\"default\"])(options.interpolation)==\"object\"){if(options.interpolation.parametrization){if(options.interpolation.parametrization==\"uniform\"){this.options.interpolation.alpha=0}else if(options.interpolation.parametrization==\"chordal\"){this.options.interpolation.alpha=1}else{this.options.interpolation.parametrization=\"centripetal\";this.options.interpolation.alpha=.5}}}}}};GraphGroup.prototype.update=function(group){this.group=group;this.content=group.content||\"graph\";this.className=group.className||this.className||\"vis-graph-group\"+this.groupsUsingDefaultStyles[0]%10;this.visible=group.visible===undefined?true:group.visible;this.style=group.style;this.setOptions(group.options)};GraphGroup.prototype.getLegend=function(iconWidth,iconHeight,framework,x,y){if(framework==undefined||framework==null){var svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");framework={svg:svg,svgElements:{},options:this.options,groups:[this]}}if(x==undefined||x==null){x=0}if(y==undefined||y==null){y=.5*iconHeight}switch(this.options.style){case\"line\":Lines.drawIcon(this,x,y,iconWidth,iconHeight,framework);break;case\"points\":case\"point\":Points.drawIcon(this,x,y,iconWidth,iconHeight,framework);break;case\"bar\":Bars.drawIcon(this,x,y,iconWidth,iconHeight,framework);break}return{icon:framework.svg,label:this.content,orientation:this.options.yAxisOrientation}};GraphGroup.prototype.getYRange=function(groupData){var yMin=groupData[0].y;var yMax=groupData[0].y;for(var j=0;j<groupData.length;j++){yMin=yMin>groupData[j].y?groupData[j].y:yMin;yMax=yMax<groupData[j].y?groupData[j].y:yMax}return{min:yMin,max:yMax,yAxisOrientation:this.options.yAxisOrientation}};module.exports=GraphGroup},function(module,exports,__webpack_require__){\"use strict\";var DOMutil=__webpack_require__(14);var Points=__webpack_require__(72);function Bargraph(groupId,options){}Bargraph.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");var barWidth=Math.round(.3*iconWidth);var originalWidth=group.options.barChart.width;var scale=originalWidth/barWidth;var bar1Height=Math.round(.4*iconHeight);var bar2Height=Math.round(.75*iconHeight);var offset=Math.round((iconWidth-2*barWidth)/3);DOMutil.drawBar(x+.5*barWidth+offset,y+fillHeight-bar1Height-1,barWidth,bar1Height,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);DOMutil.drawBar(x+1.5*barWidth+offset+2,y+fillHeight-bar2Height-1,barWidth,bar2Height,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);if(group.options.drawPoints.enabled==true){var groupTemplate={style:group.options.drawPoints.style,styles:group.options.drawPoints.styles,size:group.options.drawPoints.size/scale,className:group.className};DOMutil.drawPoint(x+.5*barWidth+offset,y+fillHeight-bar1Height-1,groupTemplate,framework.svgElements,framework.svg);DOMutil.drawPoint(x+1.5*barWidth+offset+2,y+fillHeight-bar2Height-1,groupTemplate,framework.svgElements,framework.svg)}};Bargraph.draw=function(groupIds,processedGroupData,framework){var combinedData=[];var intersections={};var coreDistance;var key,drawData;var group;var i,j;var barPoints=0;for(i=0;i<groupIds.length;i++){group=framework.groups[groupIds[i]];if(group.options.style===\"bar\"){if(group.visible===true&&(framework.options.groups.visibility[groupIds[i]]===undefined||framework.options.groups.visibility[groupIds[i]]===true)){for(j=0;j<processedGroupData[groupIds[i]].length;j++){combinedData.push({screen_x:processedGroupData[groupIds[i]][j].screen_x,screen_end:processedGroupData[groupIds[i]][j].screen_end,screen_y:processedGroupData[groupIds[i]][j].screen_y,x:processedGroupData[groupIds[i]][j].x,end:processedGroupData[groupIds[i]][j].end,y:processedGroupData[groupIds[i]][j].y,groupId:groupIds[i],label:processedGroupData[groupIds[i]][j].label});barPoints+=1}}}}if(barPoints===0){return}combinedData.sort(function(a,b){if(a.screen_x===b.screen_x){return a.groupId<b.groupId?-1:1}else{return a.screen_x-b.screen_x}});Bargraph._getDataIntersections(intersections,combinedData);for(i=0;i<combinedData.length;i++){group=framework.groups[combinedData[i].groupId];var minWidth=group.options.barChart.minWidth!=undefined?group.options.barChart.minWidth:.1*group.options.barChart.width;key=combinedData[i].screen_x;var heightOffset=0;if(intersections[key]===undefined){if(i+1<combinedData.length){coreDistance=Math.abs(combinedData[i+1].screen_x-key)}drawData=Bargraph._getSafeDrawData(coreDistance,group,minWidth)}else{var nextKey=i+(intersections[key].amount-intersections[key].resolved);if(nextKey<combinedData.length){coreDistance=Math.abs(combinedData[nextKey].screen_x-key)}drawData=Bargraph._getSafeDrawData(coreDistance,group,minWidth);intersections[key].resolved+=1;if(group.options.stack===true&&group.options.excludeFromStacking!==true){if(combinedData[i].screen_y<group.zeroPosition){heightOffset=intersections[key].accumulatedNegative;intersections[key].accumulatedNegative+=group.zeroPosition-combinedData[i].screen_y}else{heightOffset=intersections[key].accumulatedPositive;intersections[key].accumulatedPositive+=group.zeroPosition-combinedData[i].screen_y}}else if(group.options.barChart.sideBySide===true){drawData.width=drawData.width/intersections[key].amount;drawData.offset+=intersections[key].resolved*drawData.width-.5*drawData.width*(intersections[key].amount+1)}}var dataWidth=drawData.width;var start=combinedData[i].screen_x;if(combinedData[i].screen_end!=undefined){dataWidth=combinedData[i].screen_end-combinedData[i].screen_x;start+=dataWidth*.5}else{start+=drawData.offset}DOMutil.drawBar(start,combinedData[i].screen_y-heightOffset,dataWidth,group.zeroPosition-combinedData[i].screen_y,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);if(group.options.drawPoints.enabled===true){var pointData={screen_x:combinedData[i].screen_x,screen_y:combinedData[i].screen_y-heightOffset,x:combinedData[i].x,y:combinedData[i].y,groupId:combinedData[i].groupId,label:combinedData[i].label};Points.draw([pointData],group,framework,drawData.offset)}}};Bargraph._getDataIntersections=function(intersections,combinedData){var coreDistance;for(var i=0;i<combinedData.length;i++){if(i+1<combinedData.length){coreDistance=Math.abs(combinedData[i+1].screen_x-combinedData[i].screen_x)}if(i>0){coreDistance=Math.min(coreDistance,Math.abs(combinedData[i-1].screen_x-combinedData[i].screen_x))}if(coreDistance===0){if(intersections[combinedData[i].screen_x]===undefined){intersections[combinedData[i].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}}intersections[combinedData[i].screen_x].amount+=1}}};Bargraph._getSafeDrawData=function(coreDistance,group,minWidth){var width,offset;if(coreDistance<group.options.barChart.width&&coreDistance>0){width=coreDistance<minWidth?minWidth:coreDistance;offset=0;if(group.options.barChart.align===\"left\"){offset-=.5*coreDistance}else if(group.options.barChart.align===\"right\"){offset+=.5*coreDistance}}else{width=group.options.barChart.width;offset=0;if(group.options.barChart.align===\"left\"){offset-=.5*group.options.barChart.width}else if(group.options.barChart.align===\"right\"){offset+=.5*group.options.barChart.width}}return{width:width,offset:offset}};Bargraph.getStackedYRange=function(combinedData,groupRanges,groupIds,groupLabel,orientation){if(combinedData.length>0){combinedData.sort(function(a,b){if(a.screen_x===b.screen_x){return a.groupId<b.groupId?-1:1}else{return a.screen_x-b.screen_x}});var intersections={};Bargraph._getDataIntersections(intersections,combinedData);groupRanges[groupLabel]=Bargraph._getStackedYRange(intersections,combinedData);groupRanges[groupLabel].yAxisOrientation=orientation;groupIds.push(groupLabel)}};Bargraph._getStackedYRange=function(intersections,combinedData){var key;var yMin=combinedData[0].screen_y;var yMax=combinedData[0].screen_y;for(var i=0;i<combinedData.length;i++){key=combinedData[i].screen_x;if(intersections[key]===undefined){yMin=yMin>combinedData[i].screen_y?combinedData[i].screen_y:yMin;yMax=yMax<combinedData[i].screen_y?combinedData[i].screen_y:yMax}else{if(combinedData[i].screen_y<0){intersections[key].accumulatedNegative+=combinedData[i].screen_y}else{intersections[key].accumulatedPositive+=combinedData[i].screen_y}}}for(var xpos in intersections){if(intersections.hasOwnProperty(xpos)){yMin=yMin>intersections[xpos].accumulatedNegative?intersections[xpos].accumulatedNegative:yMin;yMin=yMin>intersections[xpos].accumulatedPositive?intersections[xpos].accumulatedPositive:yMin;yMax=yMax<intersections[xpos].accumulatedNegative?intersections[xpos].accumulatedNegative:yMax;yMax=yMax<intersections[xpos].accumulatedPositive?intersections[xpos].accumulatedPositive:yMax}}return{min:yMin,max:yMax}};module.exports=Bargraph},function(module,exports,__webpack_require__){\"use strict\";var DOMutil=__webpack_require__(14);function Line(groupId,options){}Line.calcPath=function(dataset,group){if(dataset!=null){if(dataset.length>0){var d=[];if(group.options.interpolation.enabled==true){d=Line._catmullRom(dataset,group)}else{d=Line._linear(dataset)}return d}}};Line.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var path,fillPath;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");path=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);path.setAttributeNS(null,\"class\",group.className);if(group.style!==undefined){path.setAttributeNS(null,\"style\",group.style)}path.setAttributeNS(null,\"d\",\"M\"+x+\",\"+y+\" L\"+(x+iconWidth)+\",\"+y+\"\");if(group.options.shaded.enabled==true){fillPath=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);if(group.options.shaded.orientation==\"top\"){fillPath.setAttributeNS(null,\"d\",\"M\"+x+\", \"+(y-fillHeight)+\"L\"+x+\",\"+y+\" L\"+(x+iconWidth)+\",\"+y+\" L\"+(x+iconWidth)+\",\"+(y-fillHeight))}else{fillPath.setAttributeNS(null,\"d\",\"M\"+x+\",\"+y+\" \"+\"L\"+x+\",\"+(y+fillHeight)+\" \"+\"L\"+(x+iconWidth)+\",\"+(y+fillHeight)+\"L\"+(x+iconWidth)+\",\"+y)}fillPath.setAttributeNS(null,\"class\",group.className+\" vis-icon-fill\");if(group.options.shaded.style!==undefined&&group.options.shaded.style!==\"\"){fillPath.setAttributeNS(null,\"style\",group.options.shaded.style)}}if(group.options.drawPoints.enabled==true){var groupTemplate={style:group.options.drawPoints.style,styles:group.options.drawPoints.styles,size:group.options.drawPoints.size,className:group.className};DOMutil.drawPoint(x+.5*iconWidth,y,groupTemplate,framework.svgElements,framework.svg)}};Line.drawShading=function(pathArray,group,subPathArray,framework){if(group.options.shaded.enabled==true){var svgHeight=Number(framework.svg.style.height.replace(\"px\",\"\"));var fillPath=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);var type=\"L\";if(group.options.interpolation.enabled==true){type=\"C\"}var dFill;var zero=0;if(group.options.shaded.orientation==\"top\"){zero=0}else if(group.options.shaded.orientation==\"bottom\"){zero=svgHeight}else{zero=Math.min(Math.max(0,group.zeroPosition),svgHeight)}if(group.options.shaded.orientation==\"group\"&&subPathArray!=null&&subPathArray!=undefined){dFill=\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false)+\" L\"+subPathArray[subPathArray.length-1][0]+\",\"+subPathArray[subPathArray.length-1][1]+\" \"+this.serializePath(subPathArray,type,true)+subPathArray[0][0]+\",\"+subPathArray[0][1]+\" Z\"}else{dFill=\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false)+\" V\"+zero+\" H\"+pathArray[0][0]+\" Z\"}fillPath.setAttributeNS(null,\"class\",group.className+\" vis-fill\");if(group.options.shaded.style!==undefined){fillPath.setAttributeNS(null,\"style\",group.options.shaded.style)}fillPath.setAttributeNS(null,\"d\",dFill)}};Line.draw=function(pathArray,group,framework){if(pathArray!=null&&pathArray!=undefined){var path=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);path.setAttributeNS(null,\"class\",group.className);if(group.style!==undefined){path.setAttributeNS(null,\"style\",group.style)}var type=\"L\";if(group.options.interpolation.enabled==true){type=\"C\"}path.setAttributeNS(null,\"d\",\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false))}};Line.serializePath=function(pathArray,type,inverse){if(pathArray.length<2){return\"\"}var d=type;var i;if(inverse){for(i=pathArray.length-2;i>0;i--){d+=pathArray[i][0]+\",\"+pathArray[i][1]+\" \"}}else{for(i=1;i<pathArray.length;i++){d+=pathArray[i][0]+\",\"+pathArray[i][1]+\" \"}}return d};Line._catmullRomUniform=function(data){var p0,p1,p2,p3,bp1,bp2;var d=[];d.push([Math.round(data[0].screen_x),Math.round(data[0].screen_y)]);var normalization=1/6;var length=data.length;for(var i=0;i<length-1;i++){p0=i==0?data[0]:data[i-1];p1=data[i];p2=data[i+1];p3=i+2<length?data[i+2]:p2;bp1={screen_x:(-p0.screen_x+6*p1.screen_x+p2.screen_x)*normalization,screen_y:(-p0.screen_y+6*p1.screen_y+p2.screen_y)*normalization};bp2={screen_x:(p1.screen_x+6*p2.screen_x-p3.screen_x)*normalization,screen_y:(p1.screen_y+6*p2.screen_y-p3.screen_y)*normalization};d.push([bp1.screen_x,bp1.screen_y]);d.push([bp2.screen_x,bp2.screen_y]);d.push([p2.screen_x,p2.screen_y])}return d};Line._catmullRom=function(data,group){var alpha=group.options.interpolation.alpha;if(alpha==0||alpha===undefined){return this._catmullRomUniform(data)}else{var p0,p1,p2,p3,bp1,bp2,d1,d2,d3,A,B,N,M;var d3powA,d2powA,d3pow2A,d2pow2A,d1pow2A,d1powA;var d=[];d.push([Math.round(data[0].screen_x),Math.round(data[0].screen_y)]);var length=data.length;for(var i=0;i<length-1;i++){p0=i==0?data[0]:data[i-1];p1=data[i];p2=data[i+1];p3=i+2<length?data[i+2]:p2;d1=Math.sqrt(Math.pow(p0.screen_x-p1.screen_x,2)+Math.pow(p0.screen_y-p1.screen_y,2));d2=Math.sqrt(Math.pow(p1.screen_x-p2.screen_x,2)+Math.pow(p1.screen_y-p2.screen_y,2));d3=Math.sqrt(Math.pow(p2.screen_x-p3.screen_x,2)+Math.pow(p2.screen_y-p3.screen_y,2));d3powA=Math.pow(d3,alpha);d3pow2A=Math.pow(d3,2*alpha);d2powA=Math.pow(d2,alpha);d2pow2A=Math.pow(d2,2*alpha);d1powA=Math.pow(d1,alpha);d1pow2A=Math.pow(d1,2*alpha);A=2*d1pow2A+3*d1powA*d2powA+d2pow2A;B=2*d3pow2A+3*d3powA*d2powA+d2pow2A;N=3*d1powA*(d1powA+d2powA);if(N>0){N=1/N}M=3*d3powA*(d3powA+d2powA);if(M>0){M=1/M}bp1={screen_x:(-d2pow2A*p0.screen_x+A*p1.screen_x+d1pow2A*p2.screen_x)*N,screen_y:(-d2pow2A*p0.screen_y+A*p1.screen_y+d1pow2A*p2.screen_y)*N};bp2={screen_x:(d3pow2A*p1.screen_x+B*p2.screen_x-d2pow2A*p3.screen_x)*M,screen_y:(d3pow2A*p1.screen_y+B*p2.screen_y-d2pow2A*p3.screen_y)*M};if(bp1.screen_x==0&&bp1.screen_y==0){bp1=p1}if(bp2.screen_x==0&&bp2.screen_y==0){bp2=p2}d.push([bp1.screen_x,bp1.screen_y]);d.push([bp2.screen_x,bp2.screen_y]);d.push([p2.screen_x,p2.screen_y])}return d}};Line._linear=function(data){var d=[];for(var i=0;i<data.length;i++){d.push([data[i].screen_x,data[i].screen_y])}return d};module.exports=Line},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var Component=__webpack_require__(16);function Legend(body,options,side,linegraphOptions){this.body=body;this.defaultOptions={enabled:false,icons:true,iconSize:20,iconSpacing:6,left:{visible:true,position:\"top-left\"},right:{visible:true,position:\"top-right\"}};this.side=side;this.options=util.extend({},this.defaultOptions);this.linegraphOptions=linegraphOptions;this.svgElements={};this.dom={};this.groups={};this.amountOfGroups=0;this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};this.setOptions(options)}Legend.prototype=new Component;Legend.prototype.clear=function(){this.groups={};this.amountOfGroups=0};Legend.prototype.addGroup=function(label,graphOptions){if(graphOptions.options.excludeFromLegend!=true){if(!this.groups.hasOwnProperty(label)){this.groups[label]=graphOptions}this.amountOfGroups+=1}};Legend.prototype.updateGroup=function(label,graphOptions){this.groups[label]=graphOptions};Legend.prototype.removeGroup=function(label){if(this.groups.hasOwnProperty(label)){delete this.groups[label];this.amountOfGroups-=1}};Legend.prototype._create=function(){this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-legend\";this.dom.frame.style.position=\"absolute\";this.dom.frame.style.top=\"10px\";this.dom.frame.style.display=\"block\";this.dom.textArea=document.createElement(\"div\");this.dom.textArea.className=\"vis-legend-text\";this.dom.textArea.style.position=\"relative\";this.dom.textArea.style.top=\"0px\";this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"absolute\";this.svg.style.top=0+\"px\";this.svg.style.width=this.options.iconSize+5+\"px\";this.svg.style.height=\"100%\";this.dom.frame.appendChild(this.svg);this.dom.frame.appendChild(this.dom.textArea)};Legend.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}};Legend.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}};Legend.prototype.setOptions=function(options){var fields=[\"enabled\",\"orientation\",\"icons\",\"left\",\"right\"];util.selectiveDeepExtend(fields,this.options,options)};Legend.prototype.redraw=function(){var activeGroups=0;var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){activeGroups++}}if(this.options[this.side].visible==false||this.amountOfGroups==0||this.options.enabled==false||activeGroups==0){this.hide()}else{this.show();if(this.options[this.side].position==\"top-left\"||this.options[this.side].position==\"bottom-left\"){this.dom.frame.style.left=\"4px\";this.dom.frame.style.textAlign=\"left\";this.dom.textArea.style.textAlign=\"left\";this.dom.textArea.style.left=this.options.iconSize+15+\"px\";this.dom.textArea.style.right=\"\";this.svg.style.left=0+\"px\";this.svg.style.right=\"\"}else{this.dom.frame.style.right=\"4px\";this.dom.frame.style.textAlign=\"right\";this.dom.textArea.style.textAlign=\"right\";this.dom.textArea.style.right=this.options.iconSize+15+\"px\";this.dom.textArea.style.left=\"\";this.svg.style.right=0+\"px\";this.svg.style.left=\"\"}if(this.options[this.side].position==\"top-left\"||this.options[this.side].position==\"top-right\"){this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace(\"px\",\"\"))+\"px\";this.dom.frame.style.bottom=\"\"}else{var scrollableHeight=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+scrollableHeight+Number(this.body.dom.center.style.top.replace(\"px\",\"\"))+\"px\";this.dom.frame.style.top=\"\"}if(this.options.icons==false){this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+\"px\";this.dom.textArea.style.right=\"\";this.dom.textArea.style.left=\"\";this.svg.style.width=\"0px\"}else{this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+\"px\";this.drawLegendIcons()}var content=\"\";for(i=0;i<groupArray.length;i++){groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){content+=this.groups[groupId].content+\"<br />\"}}this.dom.textArea.innerHTML=content;this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+\"px\"}};Legend.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});DOMutil.resetElements(this.svgElements);var padding=window.getComputedStyle(this.dom.frame).paddingTop;var iconOffset=Number(padding.replace(\"px\",\"\"));var x=iconOffset;var iconWidth=this.options.iconSize;var iconHeight=.75*this.options.iconSize;var y=iconOffset+.5*iconHeight+3;this.svg.style.width=iconWidth+5+iconOffset+\"px\";for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){this.groups[groupId].getLegend(iconWidth,iconHeight,this.framework,x,y);y+=iconHeight+this.options.iconSpacing}}}};module.exports=Legend},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var date=\"date\";var object=\"object\";var dom=\"dom\";var moment=\"moment\";var any=\"any\";var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,function:\"function\"},container:{dom:dom},__type__:{object:object,boolean:bool,function:\"function\"}},yAxisOrientation:{string:[\"left\",\"right\"]},defaultGroup:{string:string},sort:{boolean:bool},sampling:{boolean:bool},stack:{boolean:bool},graphHeight:{string:string,number:number},shaded:{enabled:{boolean:bool},orientation:{string:[\"bottom\",\"top\",\"zero\",\"group\"]},groupId:{object:object},__type__:{boolean:bool,object:object}},style:{string:[\"line\",\"bar\",\"points\"]},barChart:{width:{number:number},minWidth:{number:number},sideBySide:{boolean:bool},align:{string:[\"left\",\"center\",\"right\"]},__type__:{object:object}},interpolation:{enabled:{boolean:bool},parametrization:{string:[\"centripetal\",\"chordal\",\"uniform\"]},alpha:{number:number},__type__:{object:object,boolean:bool}},drawPoints:{enabled:{boolean:bool},onRender:{function:\"function\"},size:{number:number},style:{string:[\"square\",\"circle\"]},__type__:{object:object,boolean:bool,function:\"function\"}},dataAxis:{showMinorLabels:{boolean:bool},showMajorLabels:{boolean:bool},icons:{boolean:bool},width:{string:string,number:number},visible:{boolean:bool},alignZeros:{boolean:bool},left:{range:{min:{\nnumber:number,undefined:\"undefined\"},max:{number:number,undefined:\"undefined\"},__type__:{object:object}},format:{function:\"function\"},title:{text:{string:string,number:number,undefined:\"undefined\"},style:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},right:{range:{min:{number:number,undefined:\"undefined\"},max:{number:number,undefined:\"undefined\"},__type__:{object:object}},format:{function:\"function\"},title:{text:{string:string,number:number,undefined:\"undefined\"},style:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},__type__:{object:object}},legend:{enabled:{boolean:bool},icons:{boolean:bool},left:{visible:{boolean:bool},position:{string:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},__type__:{object:object}},right:{visible:{boolean:bool},position:{string:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},__type__:{object:object}},__type__:{object:object,boolean:bool}},groups:{visibility:{any:any},__type__:{object:object}},autoResize:{boolean:bool},throttleRedraw:{number:number},clickToUse:{boolean:bool},end:{number:number,date:date,string:string,moment:moment},format:{minorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object}},majorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},moment:{function:\"function\"},height:{string:string,number:number},hiddenDates:{start:{date:date,number:number,string:string,moment:moment},end:{date:date,number:number,string:string,moment:moment},repeat:{string:string},__type__:{object:object,array:array}},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},max:{date:date,number:number,string:string,moment:moment},maxHeight:{number:number,string:string},maxMinorChars:{number:number},min:{date:date,number:number,string:string,moment:moment},minHeight:{number:number,string:string},moveable:{boolean:bool},multiselect:{boolean:bool},orientation:{string:string},showCurrentTime:{boolean:bool},showMajorLabels:{boolean:bool},showMinorLabels:{boolean:bool},start:{date:date,number:number,string:string,moment:moment},timeAxis:{scale:{string:string,undefined:\"undefined\"},step:{number:number,undefined:\"undefined\"},__type__:{object:object}},width:{string:string,number:number},zoomable:{boolean:bool},zoomKey:{string:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"]},zoomMax:{number:number},zoomMin:{number:number},zIndex:{number:number},__type__:{object:object}};var configureOptions={global:{sort:true,sampling:true,stack:false,shaded:{enabled:false,orientation:[\"zero\",\"top\",\"bottom\",\"group\"]},style:[\"line\",\"bar\",\"points\"],barChart:{width:[50,5,100,5],minWidth:[50,5,100,5],sideBySide:false,align:[\"left\",\"center\",\"right\"]},interpolation:{enabled:true,parametrization:[\"centripetal\",\"chordal\",\"uniform\"]},drawPoints:{enabled:true,size:[6,2,30,1],style:[\"square\",\"circle\"]},dataAxis:{showMinorLabels:true,showMajorLabels:true,icons:false,width:[40,0,200,1],visible:true,alignZeros:true,left:{title:{text:\"\",style:\"\"}},right:{title:{text:\"\",style:\"\"}}},legend:{enabled:false,icons:true,left:{visible:true,position:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},right:{visible:true,position:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]}},autoResize:true,clickToUse:false,end:\"\",format:{minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}},height:\"\",locale:\"\",max:\"\",maxHeight:\"\",maxMinorChars:[7,0,20,1],min:\"\",minHeight:\"\",moveable:true,orientation:[\"both\",\"bottom\",\"top\"],showCurrentTime:false,showMajorLabels:true,showMinorLabels:true,start:\"\",width:\"100%\",zoomable:true,zoomKey:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1],zIndex:0}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function parseDOT(data){dot=data;return parseGraph()}var NODE_ATTR_MAPPING={fontsize:\"font.size\",fontcolor:\"font.color\",labelfontcolor:\"font.color\",fontname:\"font.face\",color:[\"color.border\",\"color.background\"],fillcolor:\"color.background\",tooltip:\"title\",labeltooltip:\"title\"};var EDGE_ATTR_MAPPING=(0,_create2[\"default\"])(NODE_ATTR_MAPPING);EDGE_ATTR_MAPPING.color=\"color.color\";EDGE_ATTR_MAPPING.style=\"dashes\";var TOKENTYPE={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3};var DELIMITERS={\"{\":true,\"}\":true,\"[\":true,\"]\":true,\";\":true,\"=\":true,\",\":true,\"->\":true,\"--\":true};var dot=\"\";var index=0;var c=\"\";var token=\"\";var tokenType=TOKENTYPE.NULL;function first(){index=0;c=dot.charAt(0)}function next(){index++;c=dot.charAt(index)}function nextPreview(){return dot.charAt(index+1)}var regexAlphaNumeric=/[a-zA-Z_0-9.:#]/;function isAlphaNumeric(c){return regexAlphaNumeric.test(c)}function merge(a,b){if(!a){a={}}if(b){for(var name in b){if(b.hasOwnProperty(name)){a[name]=b[name]}}}return a}function setValue(obj,path,value){var keys=path.split(\".\");var o=obj;while(keys.length){var key=keys.shift();if(keys.length){if(!o[key]){o[key]={}}o=o[key]}else{o[key]=value}}}function addNode(graph,node){var i,len;var current=null;var graphs=[graph];var root=graph;while(root.parent){graphs.push(root.parent);root=root.parent}if(root.nodes){for(i=0,len=root.nodes.length;i<len;i++){if(node.id===root.nodes[i].id){current=root.nodes[i];break}}}if(!current){current={id:node.id};if(graph.node){current.attr=merge(current.attr,graph.node)}}for(i=graphs.length-1;i>=0;i--){var g=graphs[i];if(!g.nodes){g.nodes=[]}if(g.nodes.indexOf(current)===-1){g.nodes.push(current)}}if(node.attr){current.attr=merge(current.attr,node.attr)}}function addEdge(graph,edge){if(!graph.edges){graph.edges=[]}graph.edges.push(edge);if(graph.edge){var attr=merge({},graph.edge);edge.attr=merge(attr,edge.attr)}}function createEdge(graph,from,to,type,attr){var edge={from:from,to:to,type:type};if(graph.edge){edge.attr=merge({},graph.edge)}edge.attr=merge(edge.attr||{},attr);return edge}function getToken(){tokenType=TOKENTYPE.NULL;token=\"\";while(c===\" \"||c===\"\\t\"||c===\"\\n\"||c===\"\\r\"){next()}do{var isComment=false;if(c===\"#\"){var i=index-1;while(dot.charAt(i)===\" \"||dot.charAt(i)===\"\\t\"){i--}if(dot.charAt(i)===\"\\n\"||dot.charAt(i)===\"\"){while(c!=\"\"&&c!=\"\\n\"){next()}isComment=true}}if(c===\"/\"&&nextPreview()===\"/\"){while(c!=\"\"&&c!=\"\\n\"){next()}isComment=true}if(c===\"/\"&&nextPreview()===\"*\"){while(c!=\"\"){if(c===\"*\"&&nextPreview()===\"/\"){next();next();break}else{next()}}isComment=true}while(c===\" \"||c===\"\\t\"||c===\"\\n\"||c===\"\\r\"){next()}}while(isComment);if(c===\"\"){tokenType=TOKENTYPE.DELIMITER;return}var c2=c+nextPreview();if(DELIMITERS[c2]){tokenType=TOKENTYPE.DELIMITER;token=c2;next();next();return}if(DELIMITERS[c]){tokenType=TOKENTYPE.DELIMITER;token=c;next();return}if(isAlphaNumeric(c)||c===\"-\"){token+=c;next();while(isAlphaNumeric(c)){token+=c;next()}if(token===\"false\"){token=false}else if(token===\"true\"){token=true}else if(!isNaN(Number(token))){token=Number(token)}tokenType=TOKENTYPE.IDENTIFIER;return}if(c==='\"'){next();while(c!=\"\"&&(c!='\"'||c==='\"'&&nextPreview()==='\"')){if(c==='\"'){token+=c;next()}else if(c===\"\\\\\"&&nextPreview()===\"n\"){token+=\"\\n\";next()}else{token+=c}next()}if(c!='\"'){throw newSyntaxError('End of string \" expected')}next();tokenType=TOKENTYPE.IDENTIFIER;return}tokenType=TOKENTYPE.UNKNOWN;while(c!=\"\"){token+=c;next()}throw new SyntaxError('Syntax error in part \"'+chop(token,30)+'\"')}function parseGraph(){var graph={};first();getToken();if(token===\"strict\"){graph.strict=true;getToken()}if(token===\"graph\"||token===\"digraph\"){graph.type=token;getToken()}if(tokenType===TOKENTYPE.IDENTIFIER){graph.id=token;getToken()}if(token!=\"{\"){throw newSyntaxError(\"Angle bracket { expected\")}getToken();parseStatements(graph);if(token!=\"}\"){throw newSyntaxError(\"Angle bracket } expected\")}getToken();if(token!==\"\"){throw newSyntaxError(\"End of file expected\")}getToken();delete graph.node;delete graph.edge;delete graph.graph;return graph}function parseStatements(graph){while(token!==\"\"&&token!=\"}\"){parseStatement(graph);if(token===\";\"){getToken()}}}function parseStatement(graph){var subgraph=parseSubgraph(graph);if(subgraph){parseEdge(graph,subgraph);return}var attr=parseAttributeStatement(graph);if(attr){return}if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier expected\")}var id=token;getToken();if(token===\"=\"){getToken();if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier expected\")}graph[id]=token;getToken()}else{parseNodeStatement(graph,id)}}function parseSubgraph(graph){var subgraph=null;if(token===\"subgraph\"){subgraph={};subgraph.type=\"subgraph\";getToken();if(tokenType===TOKENTYPE.IDENTIFIER){subgraph.id=token;getToken()}}if(token===\"{\"){getToken();if(!subgraph){subgraph={}}subgraph.parent=graph;subgraph.node=graph.node;subgraph.edge=graph.edge;subgraph.graph=graph.graph;parseStatements(subgraph);if(token!=\"}\"){throw newSyntaxError(\"Angle bracket } expected\")}getToken();delete subgraph.node;delete subgraph.edge;delete subgraph.graph;delete subgraph.parent;if(!graph.subgraphs){graph.subgraphs=[]}graph.subgraphs.push(subgraph)}return subgraph}function parseAttributeStatement(graph){if(token===\"node\"){getToken();graph.node=parseAttributeList();return\"node\"}else if(token===\"edge\"){getToken();graph.edge=parseAttributeList();return\"edge\"}else if(token===\"graph\"){getToken();graph.graph=parseAttributeList();return\"graph\"}return null}function parseNodeStatement(graph,id){var node={id:id};var attr=parseAttributeList();if(attr){node.attr=attr}addNode(graph,node);parseEdge(graph,id)}function parseEdge(graph,from){while(token===\"->\"||token===\"--\"){var to;var type=token;getToken();var subgraph=parseSubgraph(graph);if(subgraph){to=subgraph}else{if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier or subgraph expected\")}to=token;addNode(graph,{id:to});getToken()}var attr=parseAttributeList();var edge=createEdge(graph,from,to,type,attr);addEdge(graph,edge);from=to}}function parseAttributeList(){var attr=null;var edgeStyles={dashed:true,solid:false,dotted:[1,5]};while(token===\"[\"){getToken();attr={};while(token!==\"\"&&token!=\"]\"){if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Attribute name expected\")}var name=token;getToken();if(token!=\"=\"){throw newSyntaxError(\"Equal sign = expected\")}getToken();if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Attribute value expected\")}var value=token;if(name===\"style\"){value=edgeStyles[value]}setValue(attr,name,value);getToken();if(token==\",\"){getToken()}}if(token!=\"]\"){throw newSyntaxError(\"Bracket ] expected\")}getToken()}return attr}function newSyntaxError(message){return new SyntaxError(message+', got \"'+chop(token,30)+'\" (char '+index+\")\")}function chop(text,maxLength){return text.length<=maxLength?text:text.substr(0,27)+\"...\"}function forEach2(array1,array2,fn){if(Array.isArray(array1)){array1.forEach(function(elem1){if(Array.isArray(array2)){array2.forEach(function(elem2){fn(elem1,elem2)})}else{fn(elem1,array2)}})}else{if(Array.isArray(array2)){array2.forEach(function(elem2){fn(array1,elem2)})}else{fn(array1,array2)}}}function setProp(object,path,value){var names=path.split(\".\");var prop=names.pop();var obj=object;for(var i=0;i<names.length;i++){var name=names[i];if(!(name in obj)){obj[name]={}}obj=obj[name]}obj[prop]=value;return object}function convertAttr(attr,mapping){var converted={};for(var prop in attr){if(attr.hasOwnProperty(prop)){var visProp=mapping[prop];if(Array.isArray(visProp)){visProp.forEach(function(visPropI){setProp(converted,visPropI,attr[prop])})}else if(typeof visProp===\"string\"){setProp(converted,visProp,attr[prop])}else{setProp(converted,prop,attr[prop])}}}return converted}function DOTToGraph(data){var dotData=parseDOT(data);var graphData={nodes:[],edges:[],options:{}};if(dotData.nodes){dotData.nodes.forEach(function(dotNode){var graphNode={id:dotNode.id,label:String(dotNode.label||dotNode.id)};merge(graphNode,convertAttr(dotNode.attr,NODE_ATTR_MAPPING));if(graphNode.image){graphNode.shape=\"image\"}graphData.nodes.push(graphNode)})}if(dotData.edges){var convertEdge=function convertEdge(dotEdge){var graphEdge={from:dotEdge.from,to:dotEdge.to};merge(graphEdge,convertAttr(dotEdge.attr,EDGE_ATTR_MAPPING));graphEdge.arrows=dotEdge.type===\"->\"?\"to\":undefined;return graphEdge};dotData.edges.forEach(function(dotEdge){var from,to;if(dotEdge.from instanceof Object){from=dotEdge.from.nodes}else{from={id:dotEdge.from}}if(dotEdge.to instanceof Object){to=dotEdge.to.nodes}else{to={id:dotEdge.to}}if(dotEdge.from instanceof Object&&dotEdge.from.edges){dotEdge.from.edges.forEach(function(subEdge){var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)})}forEach2(from,to,function(from,to){var subEdge=createEdge(graphData,from.id,to.id,dotEdge.type,dotEdge.attr);var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)});if(dotEdge.to instanceof Object&&dotEdge.to.edges){dotEdge.to.edges.forEach(function(subEdge){var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)})}})}if(dotData.attr){graphData.options=dotData.attr}return graphData}exports.parseDOT=parseDOT;exports.DOTToGraph=DOTToGraph},function(module,exports,__webpack_require__){\"use strict\";function parseGephi(gephiJSON,optionsObj){var edges=[];var nodes=[];var options={edges:{inheritColor:false},nodes:{fixed:false,parseColor:false}};if(optionsObj!==undefined){if(optionsObj.fixed!==undefined){options.nodes.fixed=optionsObj.fixed}if(optionsObj.parseColor!==undefined){options.nodes.parseColor=optionsObj.parseColor}if(optionsObj.inheritColor!==undefined){options.edges.inheritColor=optionsObj.inheritColor}}var gEdges=gephiJSON.edges;var gNodes=gephiJSON.nodes;for(var i=0;i<gEdges.length;i++){var edge={};var gEdge=gEdges[i];edge[\"id\"]=gEdge.id;edge[\"from\"]=gEdge.source;edge[\"to\"]=gEdge.target;edge[\"attributes\"]=gEdge.attributes;edge[\"label\"]=gEdge.label;edge[\"title\"]=gEdge.attributes!==undefined?gEdge.attributes.title:undefined;if(gEdge[\"type\"]===\"Directed\"){edge[\"arrows\"]=\"to\"}if(gEdge.color&&options.inheritColor===false){edge[\"color\"]=gEdge.color}edges.push(edge)}for(var j=0;j<gNodes.length;j++){var node={};var gNode=gNodes[j];node[\"id\"]=gNode.id;node[\"attributes\"]=gNode.attributes;node[\"x\"]=gNode.x;node[\"y\"]=gNode.y;node[\"label\"]=gNode.label;node[\"title\"]=gNode.attributes!==undefined?gNode.attributes.title:gNode.title;if(options.nodes.parseColor===true){node[\"color\"]=gNode.color}else{node[\"color\"]=gNode.color!==undefined?{background:gNode.color,border:gNode.color,highlight:{background:gNode.color,border:gNode.color},hover:{background:gNode.color,border:gNode.color}}:undefined}node[\"size\"]=gNode.size;node[\"fixed\"]=options.nodes.fixed&&gNode.x!==undefined&&gNode.y!==undefined;nodes.push(node)}return{nodes:nodes,edges:edges}}exports.parseGephi=parseGephi},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _CachedImage=__webpack_require__(185);var _CachedImage2=_interopRequireDefault(_CachedImage);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Images=function(){function Images(callback){(0,_classCallCheck3[\"default\"])(this,Images);this.images={};this.imageBroken={};this.callback=callback}(0,_createClass3[\"default\"])(Images,[{key:\"_tryloadBrokenUrl\",value:function _tryloadBrokenUrl(url,brokenUrl,imageToLoadBrokenUrlOn){if(url===undefined||imageToLoadBrokenUrlOn===undefined)return;if(brokenUrl===undefined){console.warn(\"No broken url image defined\");return}imageToLoadBrokenUrlOn.onerror=function(){console.error(\"Could not load brokenImage:\",brokenUrl)};imageToLoadBrokenUrlOn.image.src=brokenUrl}},{key:\"_redrawWithImage\",value:function _redrawWithImage(imageToRedrawWith){if(this.callback){this.callback(imageToRedrawWith)}}},{key:\"load\",value:function load(url,brokenUrl){var _this=this;var cachedImage=this.images[url];if(cachedImage)return cachedImage;var img=new _CachedImage2[\"default\"];this.images[url]=img;img.image.onload=function(){_this._fixImageCoordinates(img.image);img.init();_this._redrawWithImage(img)};img.image.onerror=function(){console.error(\"Could not load image:\",url);_this._tryloadBrokenUrl(url,brokenUrl,img)};img.image.src=url;return img}},{key:\"_fixImageCoordinates\",value:function _fixImageCoordinates(imageToCache){if(imageToCache.width===0){document.body.appendChild(imageToCache);imageToCache.width=imageToCache.offsetWidth;imageToCache.height=imageToCache.offsetHeight;document.body.removeChild(imageToCache)}}}]);return Images}();exports[\"default\"]=Images},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ComponentUtil=__webpack_require__(48)[\"default\"];var LabelSplitter=__webpack_require__(191)[\"default\"];var multiFontStyle=[\"bold\",\"ital\",\"boldital\",\"mono\"];var Label=function(){function Label(body,options){var edgelabel=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;(0,_classCallCheck3[\"default\"])(this,Label);this.body=body;this.pointToSelf=false;this.baseSize=undefined;this.fontOptions={};this.setOptions(options);this.size={top:0,left:0,width:0,height:0,yLine:0};this.isEdgeLabel=edgelabel}(0,_createClass3[\"default\"])(Label,[{key:\"setOptions\",value:function setOptions(options){this.elementOptions=options;this.initFontOptions(options.font);if(ComponentUtil.isValidLabel(options.label)){this.labelDirty=true}else{options.label=\"\"}if(options.font!==undefined&&options.font!==null){if(typeof options.font===\"string\"){this.baseSize=this.fontOptions.size}else if((0,_typeof3[\"default\"])(options.font)===\"object\"){var size=options.font.size;if(size!==undefined){this.baseSize=size}}}}},{key:\"initFontOptions\",value:function initFontOptions(newFontOptions){var _this=this;util.forEach(multiFontStyle,function(style){_this.fontOptions[style]={}});if(Label.parseFontString(this.fontOptions,newFontOptions)){this.fontOptions.vadjust=0;return}util.forEach(newFontOptions,function(prop,n){if(prop!==undefined&&prop!==null&&(typeof prop===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(prop))!==\"object\"){_this.fontOptions[n]=prop}})}},{key:\"constrain\",value:function constrain(pile){var fontOptions={constrainWidth:false,maxWdt:-1,minWdt:-1,constrainHeight:false,minHgt:-1,valign:\"middle\"};var widthConstraint=util.topMost(pile,\"widthConstraint\");if(typeof widthConstraint===\"number\"){fontOptions.maxWdt=Number(widthConstraint);fontOptions.minWdt=Number(widthConstraint)}else if((typeof widthConstraint===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(widthConstraint))===\"object\"){var widthConstraintMaximum=util.topMost(pile,[\"widthConstraint\",\"maximum\"]);if(typeof widthConstraintMaximum===\"number\"){fontOptions.maxWdt=Number(widthConstraintMaximum)}var widthConstraintMinimum=util.topMost(pile,[\"widthConstraint\",\"minimum\"]);if(typeof widthConstraintMinimum===\"number\"){fontOptions.minWdt=Number(widthConstraintMinimum)}}var heightConstraint=util.topMost(pile,\"heightConstraint\");if(typeof heightConstraint===\"number\"){fontOptions.minHgt=Number(heightConstraint)}else if((typeof heightConstraint===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(heightConstraint))===\"object\"){var heightConstraintMinimum=util.topMost(pile,[\"heightConstraint\",\"minimum\"]);if(typeof heightConstraintMinimum===\"number\"){fontOptions.minHgt=Number(heightConstraintMinimum)}var heightConstraintValign=util.topMost(pile,[\"heightConstraint\",\"valign\"]);if(typeof heightConstraintValign===\"string\"){if(heightConstraintValign===\"top\"||heightConstraintValign===\"bottom\"){fontOptions.valign=heightConstraintValign}}}return fontOptions}},{key:\"update\",value:function update(options,pile){this.setOptions(options,true);this.propagateFonts(pile);util.deepExtend(this.fontOptions,this.constrain(pile));this.fontOptions.chooser=ComponentUtil.choosify(\"label\",pile)}},{key:\"adjustSizes\",value:function adjustSizes(margins){var widthBias=margins?margins.right+margins.left:0;if(this.fontOptions.constrainWidth){this.fontOptions.maxWdt-=widthBias;this.fontOptions.minWdt-=widthBias}var heightBias=margins?margins.top+margins.bottom:0;if(this.fontOptions.constrainHeight){this.fontOptions.minHgt-=heightBias}}},{key:\"addFontOptionsToPile\",value:function addFontOptionsToPile(dstPile,srcPile){for(var i=0;i<srcPile.length;++i){this.addFontToPile(dstPile,srcPile[i])}}},{key:\"addFontToPile\",value:function addFontToPile(pile,options){if(options===undefined)return;if(options.font===undefined||options.font===null)return;var item=options.font;pile.push(item)}},{key:\"getBasicOptions\",value:function getBasicOptions(pile){var ret={};for(var n=0;n<pile.length;++n){var fontOptions=pile[n];var tmpShorthand={};if(Label.parseFontString(tmpShorthand,fontOptions)){fontOptions=tmpShorthand}util.forEach(fontOptions,function(opt,name){if(opt===undefined)return;if(ret.hasOwnProperty(name))return;if(multiFontStyle.indexOf(name)!==-1){ret[name]={}}else{ret[name]=opt}})}return ret}},{key:\"getFontOption\",value:function getFontOption(pile,multiName,option){var multiFont=void 0;for(var n=0;n<pile.length;++n){var fontOptions=pile[n];if(fontOptions.hasOwnProperty(multiName)){multiFont=fontOptions[multiName];if(multiFont===undefined||multiFont===null)continue;var tmpShorthand={};if(Label.parseFontString(tmpShorthand,multiFont)){multiFont=tmpShorthand}if(multiFont.hasOwnProperty(option)){return multiFont[option]}}}if(this.fontOptions.hasOwnProperty(option)){return this.fontOptions[option]}throw new Error(\"Did not find value for multi-font for property: '\"+option+\"'\")}},{key:\"getFontOptions\",value:function getFontOptions(pile,multiName){var result={};var optionNames=[\"color\",\"size\",\"face\",\"mod\",\"vadjust\"];for(var i=0;i<optionNames.length;++i){var mod=optionNames[i];result[mod]=this.getFontOption(pile,multiName,mod)}return result}},{key:\"propagateFonts\",value:function propagateFonts(pile){var _this2=this;var fontPile=[];this.addFontOptionsToPile(fontPile,pile);this.fontOptions=this.getBasicOptions(fontPile);var _loop=function _loop(i){var mod=multiFontStyle[i];var modOptions=_this2.fontOptions[mod];var tmpMultiFontOptions=_this2.getFontOptions(fontPile,mod);util.forEach(tmpMultiFontOptions,function(option,n){modOptions[n]=option});modOptions.size=Number(modOptions.size);modOptions.vadjust=Number(modOptions.vadjust)};for(var i=0;i<multiFontStyle.length;++i){_loop(i)}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover){var baseline=arguments.length>5&&arguments[5]!==undefined?arguments[5]:\"middle\";if(this.elementOptions.label===undefined)return;var viewFontSize=this.fontOptions.size*this.body.view.scale;if(this.elementOptions.label&&viewFontSize<this.elementOptions.scaling.label.drawThreshold-1)return;if(viewFontSize>=this.elementOptions.scaling.label.maxVisible){viewFontSize=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale}this.calculateLabelSize(ctx,selected,hover,x,y,baseline);this._drawBackground(ctx);this._drawText(ctx,x,this.size.yLine,baseline,viewFontSize)}},{key:\"_drawBackground\",value:function _drawBackground(ctx){if(this.fontOptions.background!==undefined&&this.fontOptions.background!==\"none\"){ctx.fillStyle=this.fontOptions.background;var size=this.getSize();ctx.fillRect(size.left,size.top,size.width,size.height)}}},{key:\"_drawText\",value:function _drawText(ctx,x,y){var baseline=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\"middle\";var viewFontSize=arguments[4];var _setAlignment2=this._setAlignment(ctx,x,y,baseline);var _setAlignment3=(0,_slicedToArray3[\"default\"])(_setAlignment2,2);x=_setAlignment3[0];y=_setAlignment3[1];ctx.textAlign=\"left\";x=x-this.size.width/2;if(this.fontOptions.valign&&this.size.height>this.size.labelHeight){if(this.fontOptions.valign===\"top\"){y-=(this.size.height-this.size.labelHeight)/2}if(this.fontOptions.valign===\"bottom\"){y+=(this.size.height-this.size.labelHeight)/2}}for(var i=0;i<this.lineCount;i++){var line=this.lines[i];if(line&&line.blocks){var width=0;if(this.isEdgeLabel||this.fontOptions.align===\"center\"){width+=(this.size.width-line.width)/2}else if(this.fontOptions.align===\"right\"){width+=this.size.width-line.width}for(var j=0;j<line.blocks.length;j++){var block=line.blocks[j];ctx.font=block.font;var _getColor2=this._getColor(block.color,viewFontSize,block.strokeColor),_getColor3=(0,_slicedToArray3[\"default\"])(_getColor2,2),fontColor=_getColor3[0],strokeColor=_getColor3[1];if(block.strokeWidth>0){ctx.lineWidth=block.strokeWidth;ctx.strokeStyle=strokeColor;ctx.lineJoin=\"round\"}ctx.fillStyle=fontColor;if(block.strokeWidth>0){ctx.strokeText(block.text,x+width,y+block.vadjust)}ctx.fillText(block.text,x+width,y+block.vadjust);width+=block.width}y+=line.height}}}},{key:\"_setAlignment\",value:function _setAlignment(ctx,x,y,baseline){if(this.isEdgeLabel&&this.fontOptions.align!==\"horizontal\"&&this.pointToSelf===false){x=0;y=0;var lineMargin=2;if(this.fontOptions.align===\"top\"){ctx.textBaseline=\"alphabetic\";y-=2*lineMargin}else if(this.fontOptions.align===\"bottom\"){ctx.textBaseline=\"hanging\";y+=2*lineMargin}else{ctx.textBaseline=\"middle\"}}else{ctx.textBaseline=baseline}return[x,y]}},{key:\"_getColor\",value:function _getColor(color,viewFontSize,initialStrokeColor){var fontColor=color||\"#000000\";var strokeColor=initialStrokeColor||\"#ffffff\";if(viewFontSize<=this.elementOptions.scaling.label.drawThreshold){var opacity=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-viewFontSize)));fontColor=util.overrideOpacity(fontColor,opacity);strokeColor=util.overrideOpacity(strokeColor,opacity)}return[fontColor,strokeColor]}},{key:\"getTextSize\",value:function getTextSize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;this._processLabel(ctx,selected,hover);return{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:\"getSize\",value:function getSize(){var lineMargin=2;var x=this.size.left;var y=this.size.top-.5*lineMargin;if(this.isEdgeLabel){var x2=-this.size.width*.5;switch(this.fontOptions.align){case\"middle\":x=x2;y=-this.size.height*.5;break;case\"top\":x=x2;y=-(this.size.height+lineMargin);break;case\"bottom\":x=x2;y=lineMargin;break}}var ret={left:x,top:y,width:this.size.width,height:this.size.height};return ret}},{key:\"calculateLabelSize\",value:function calculateLabelSize(ctx,selected,hover){var x=arguments.length>3&&arguments[3]!==undefined?arguments[3]:0;var y=arguments.length>4&&arguments[4]!==undefined?arguments[4]:0;var baseline=arguments.length>5&&arguments[5]!==undefined?arguments[5]:\"middle\";this._processLabel(ctx,selected,hover);this.size.left=x-this.size.width*.5;this.size.top=y-this.size.height*.5;this.size.yLine=y+(1-this.lineCount)*.5*this.fontOptions.size;if(baseline===\"hanging\"){this.size.top+=.5*this.fontOptions.size;this.size.top+=4;this.size.yLine+=4}}},{key:\"getFormattingValues\",value:function getFormattingValues(ctx,selected,hover,mod){var getValue=function getValue(fontOptions,mod,option){if(mod===\"normal\"){if(option===\"mod\")return\"\";return fontOptions[option]}if(fontOptions[mod][option]!==undefined){return fontOptions[mod][option]}else{return fontOptions[option]}};var values={color:getValue(this.fontOptions,mod,\"color\"),size:getValue(this.fontOptions,mod,\"size\"),face:getValue(this.fontOptions,mod,\"face\"),mod:getValue(this.fontOptions,mod,\"mod\"),vadjust:getValue(this.fontOptions,mod,\"vadjust\"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};if(selected||hover){if(mod===\"normal\"&&this.fontOptions.chooser===true&&this.elementOptions.labelHighlightBold){values.mod=\"bold\"}else{if(typeof this.fontOptions.chooser===\"function\"){this.fontOptions.chooser(values,this.elementOptions.id,selected,hover)}}}var fontString=\"\";if(values.mod!==undefined&&values.mod!==\"\"){fontString+=values.mod+\" \"}fontString+=values.size+\"px \"+values.face;ctx.font=fontString.replace(/\"/g,\"\");values.font=ctx.font;values.height=values.size;return values}},{key:\"differentState\",value:function differentState(selected,hover){return selected!==this.selectedState||hover!==this.hoverState}},{key:\"_processLabelText\",value:function _processLabelText(ctx,selected,hover,inText){var splitter=new LabelSplitter(ctx,this,selected,hover);return splitter.process(inText)}},{key:\"_processLabel\",value:function _processLabel(ctx,selected,hover){if(this.labelDirty===false&&!this.differentState(selected,hover))return;var state=this._processLabelText(ctx,selected,hover,this.elementOptions.label);if(this.fontOptions.minWdt>0&&state.width<this.fontOptions.minWdt){state.width=this.fontOptions.minWdt}this.size.labelHeight=state.height;if(this.fontOptions.minHgt>0&&state.height<this.fontOptions.minHgt){state.height=this.fontOptions.minHgt}this.lines=state.lines;this.lineCount=state.lines.length;this.size.width=state.width;this.size.height=state.height;this.selectedState=selected;this.hoverState=hover;this.labelDirty=false}},{key:\"visible\",value:function visible(){if(this.size.width===0||this.size.height===0||this.elementOptions.label===undefined){return false}var viewFontSize=this.fontOptions.size*this.body.view.scale;if(viewFontSize<this.elementOptions.scaling.label.drawThreshold-1){return false}return true}}],[{key:\"parseFontString\",value:function parseFontString(outOptions,inOptions){if(!inOptions||typeof inOptions!==\"string\")return false;var newOptionsArray=inOptions.split(\" \");outOptions.size=newOptionsArray[0].replace(\"px\",\"\");outOptions.face=newOptionsArray[1];outOptions.color=newOptionsArray[2];return true}}]);return Label}();exports[\"default\"]=Label},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var EndPoints=__webpack_require__(119)[\"default\"];var EdgeBase=function(){function EdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,EdgeBase);this.body=body;this.labelModule=labelModule\n;this.options={};this.setOptions(options);this.colorDirty=true;this.color={};this.selectionWidth=2;this.hoverWidth=1.5;this.fromPoint=this.from;this.toPoint=this.to}(0,_createClass3[\"default\"])(EdgeBase,[{key:\"connect\",value:function connect(){this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to]}},{key:\"cleanup\",value:function cleanup(){return false}},{key:\"setOptions\",value:function setOptions(options){this.options=options;this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];this.id=this.options.id}},{key:\"drawLine\",value:function drawLine(ctx,values,selected,hover,viaNode){ctx.strokeStyle=this.getColor(ctx,values,selected,hover);ctx.lineWidth=values.width;if(values.dashes!==false){this._drawDashedLine(ctx,values,viaNode)}else{this._drawLine(ctx,values,viaNode)}}},{key:\"_drawLine\",value:function _drawLine(ctx,values,viaNode,fromPoint,toPoint){if(this.from!=this.to){this._line(ctx,values,viaNode,fromPoint,toPoint)}else{var _getCircleData2=this._getCircleData(ctx),_getCircleData3=(0,_slicedToArray3[\"default\"])(_getCircleData2,3),x=_getCircleData3[0],y=_getCircleData3[1],radius=_getCircleData3[2];this._circle(ctx,values,x,y,radius)}}},{key:\"_drawDashedLine\",value:function _drawDashedLine(ctx,values,viaNode,fromPoint,toPoint){ctx.lineCap=\"round\";var pattern=[5,5];if(Array.isArray(values.dashes)===true){pattern=values.dashes}if(ctx.setLineDash!==undefined){ctx.save();ctx.setLineDash(pattern);ctx.lineDashOffset=0;if(this.from!=this.to){this._line(ctx,values,viaNode)}else{var _getCircleData4=this._getCircleData(ctx),_getCircleData5=(0,_slicedToArray3[\"default\"])(_getCircleData4,3),x=_getCircleData5[0],y=_getCircleData5[1],radius=_getCircleData5[2];this._circle(ctx,values,x,y,radius)}ctx.setLineDash([0]);ctx.lineDashOffset=0;ctx.restore()}else{if(this.from!=this.to){ctx.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,pattern)}else{var _getCircleData6=this._getCircleData(ctx),_getCircleData7=(0,_slicedToArray3[\"default\"])(_getCircleData6,3),_x=_getCircleData7[0],_y=_getCircleData7[1],_radius=_getCircleData7[2];this._circle(ctx,values,_x,_y,_radius)}this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}}},{key:\"findBorderPosition\",value:function findBorderPosition(nearNode,ctx,options){if(this.from!=this.to){return this._findBorderPosition(nearNode,ctx,options)}else{return this._findBorderPositionCircle(nearNode,ctx,options)}}},{key:\"findBorderPositions\",value:function findBorderPositions(ctx){var from={};var to={};if(this.from!=this.to){from=this._findBorderPosition(this.from,ctx);to=this._findBorderPosition(this.to,ctx)}else{var _getCircleData$slice=this._getCircleData(ctx).slice(0,2),_getCircleData$slice2=(0,_slicedToArray3[\"default\"])(_getCircleData$slice,2),x=_getCircleData$slice2[0],y=_getCircleData$slice2[1];from=this._findBorderPositionCircle(this.from,ctx,{x:x,y:y,low:.25,high:.6,direction:-1});to=this._findBorderPositionCircle(this.from,ctx,{x:x,y:y,low:.6,high:.8,direction:1})}return{from:from,to:to}}},{key:\"_getCircleData\",value:function _getCircleData(ctx){var x=void 0,y=void 0;var node=this.from;var radius=this.options.selfReferenceSize;if(ctx!==undefined){if(node.shape.width===undefined){node.shape.resize(ctx)}}if(node.shape.width>node.shape.height){x=node.x+node.shape.width*.5;y=node.y-radius}else{x=node.x+radius;y=node.y-node.shape.height*.5}return[x,y,radius]}},{key:\"_pointOnCircle\",value:function _pointOnCircle(x,y,radius,percentage){var angle=percentage*2*Math.PI;return{x:x+radius*Math.cos(angle),y:y-radius*Math.sin(angle)}}},{key:\"_findBorderPositionCircle\",value:function _findBorderPositionCircle(node,ctx,options){var x=options.x;var y=options.y;var low=options.low;var high=options.high;var direction=options.direction;var maxIterations=10;var iteration=0;var radius=this.options.selfReferenceSize;var pos=void 0,angle=void 0,distanceToBorder=void 0,distanceToPoint=void 0,difference=void 0;var threshold=.05;var middle=(low+high)*.5;while(low<=high&&iteration<maxIterations){middle=(low+high)*.5;pos=this._pointOnCircle(x,y,radius,middle);angle=Math.atan2(node.y-pos.y,node.x-pos.x);distanceToBorder=node.distanceToBorder(ctx,angle);distanceToPoint=Math.sqrt(Math.pow(pos.x-node.x,2)+Math.pow(pos.y-node.y,2));difference=distanceToBorder-distanceToPoint;if(Math.abs(difference)<threshold){break}else if(difference>0){if(direction>0){low=middle}else{high=middle}}else{if(direction>0){high=middle}else{low=middle}}iteration++}pos.t=middle;return pos}},{key:\"getLineWidth\",value:function getLineWidth(selected,hover){if(selected===true){return Math.max(this.selectionWidth,.3/this.body.view.scale)}else{if(hover===true){return Math.max(this.hoverWidth,.3/this.body.view.scale)}else{return Math.max(this.options.width,.3/this.body.view.scale)}}}},{key:\"getColor\",value:function getColor(ctx,values,selected,hover){if(values.inheritsColor!==false){if(values.inheritsColor===\"both\"&&this.from.id!==this.to.id){var grd=ctx.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y);var fromColor=void 0,toColor=void 0;fromColor=this.from.options.color.highlight.border;toColor=this.to.options.color.highlight.border;if(this.from.selected===false&&this.to.selected===false){fromColor=util.overrideOpacity(this.from.options.color.border,values.opacity);toColor=util.overrideOpacity(this.to.options.color.border,values.opacity)}else if(this.from.selected===true&&this.to.selected===false){toColor=this.to.options.color.border}else if(this.from.selected===false&&this.to.selected===true){fromColor=this.from.options.color.border}grd.addColorStop(0,fromColor);grd.addColorStop(1,toColor);return grd}if(values.inheritsColor===\"to\"){return util.overrideOpacity(this.to.options.color.border,values.opacity)}else{return util.overrideOpacity(this.from.options.color.border,values.opacity)}}else{return util.overrideOpacity(values.color,values.opacity)}}},{key:\"_circle\",value:function _circle(ctx,values,x,y,radius){this.enableShadow(ctx,values);ctx.beginPath();ctx.arc(x,y,radius,0,2*Math.PI,false);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getDistanceToEdge\",value:function getDistanceToEdge(x1,y1,x2,y2,x3,y3,via,values){var returnValue=0;if(this.from!=this.to){returnValue=this._getDistanceToEdge(x1,y1,x2,y2,x3,y3,via)}else{var _getCircleData8=this._getCircleData(undefined),_getCircleData9=(0,_slicedToArray3[\"default\"])(_getCircleData8,3),x=_getCircleData9[0],y=_getCircleData9[1],radius=_getCircleData9[2];var dx=x-x3;var dy=y-y3;returnValue=Math.abs(Math.sqrt(dx*dx+dy*dy)-radius)}return returnValue}},{key:\"_getDistanceToLine\",value:function _getDistanceToLine(x1,y1,x2,y2,x3,y3){var px=x2-x1;var py=y2-y1;var something=px*px+py*py;var u=((x3-x1)*px+(y3-y1)*py)/something;if(u>1){u=1}else if(u<0){u=0}var x=x1+u*px;var y=y1+u*py;var dx=x-x3;var dy=y-y3;return Math.sqrt(dx*dx+dy*dy)}},{key:\"getArrowData\",value:function getArrowData(ctx,position,viaNode,selected,hover,values){var angle=void 0;var arrowPoint=void 0;var node1=void 0;var node2=void 0;var guideOffset=void 0;var scaleFactor=void 0;var type=void 0;var lineWidth=values.width;if(position===\"from\"){node1=this.from;node2=this.to;guideOffset=.1;scaleFactor=values.fromArrowScale;type=values.fromArrowType}else if(position===\"to\"){node1=this.to;node2=this.from;guideOffset=-.1;scaleFactor=values.toArrowScale;type=values.toArrowType}else{node1=this.to;node2=this.from;scaleFactor=values.middleArrowScale;type=values.middleArrowType}if(node1!=node2){if(position!==\"middle\"){if(this.options.smooth.enabled===true){arrowPoint=this.findBorderPosition(node1,ctx,{via:viaNode});var guidePos=this.getPoint(Math.max(0,Math.min(1,arrowPoint.t+guideOffset)),viaNode);angle=Math.atan2(arrowPoint.y-guidePos.y,arrowPoint.x-guidePos.x)}else{angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);arrowPoint=this.findBorderPosition(node1,ctx)}}else{angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);arrowPoint=this.getPoint(.5,viaNode)}}else{var _getCircleData10=this._getCircleData(ctx),_getCircleData11=(0,_slicedToArray3[\"default\"])(_getCircleData10,3),x=_getCircleData11[0],y=_getCircleData11[1],radius=_getCircleData11[2];if(position===\"from\"){arrowPoint=this.findBorderPosition(this.from,ctx,{x:x,y:y,low:.25,high:.6,direction:-1});angle=arrowPoint.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI}else if(position===\"to\"){arrowPoint=this.findBorderPosition(this.from,ctx,{x:x,y:y,low:.6,high:1,direction:1});angle=arrowPoint.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI}else{arrowPoint=this._pointOnCircle(x,y,radius,.175);angle=3.9269908169872414}}if(position===\"middle\"&&scaleFactor<0)lineWidth*=-1;var length=15*scaleFactor+3*lineWidth;var xi=arrowPoint.x-length*.9*Math.cos(angle);var yi=arrowPoint.y-length*.9*Math.sin(angle);var arrowCore={x:xi,y:yi};return{point:arrowPoint,core:arrowCore,angle:angle,length:length,type:type}}},{key:\"drawArrowHead\",value:function drawArrowHead(ctx,values,selected,hover,arrowData){ctx.strokeStyle=this.getColor(ctx,values,selected,hover);ctx.fillStyle=ctx.strokeStyle;ctx.lineWidth=values.width;EndPoints.draw(ctx,arrowData);this.enableShadow(ctx,values);ctx.fill();this.disableShadow(ctx,values)}},{key:\"enableShadow\",value:function enableShadow(ctx,values){if(values.shadow===true){ctx.shadowColor=values.shadowColor;ctx.shadowBlur=values.shadowSize;ctx.shadowOffsetX=values.shadowX;ctx.shadowOffsetY=values.shadowY}}},{key:\"disableShadow\",value:function disableShadow(ctx,values){if(values.shadow===true){ctx.shadowColor=\"rgba(0,0,0,0)\";ctx.shadowBlur=0;ctx.shadowOffsetX=0;ctx.shadowOffsetY=0}}}]);return EdgeBase}();exports[\"default\"]=EdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var EndPoint=function(){function EndPoint(){(0,_classCallCheck3[\"default\"])(this,EndPoint)}(0,_createClass3[\"default\"])(EndPoint,null,[{key:\"transform\",value:function transform(points,arrowData){if(!(points instanceof Array)){points=[points]}var x=arrowData.point.x;var y=arrowData.point.y;var angle=arrowData.angle;var length=arrowData.length;for(var i=0;i<points.length;++i){var p=points[i];var xt=p.x*Math.cos(angle)-p.y*Math.sin(angle);var yt=p.x*Math.sin(angle)+p.y*Math.cos(angle);p.x=x+length*xt;p.y=y+length*yt}}},{key:\"drawPath\",value:function drawPath(ctx,points){ctx.beginPath();ctx.moveTo(points[0].x,points[0].y);for(var i=1;i<points.length;++i){ctx.lineTo(points[i].x,points[i].y)}ctx.closePath()}}]);return EndPoint}();var Arrow=function(_EndPoint){(0,_inherits3[\"default\"])(Arrow,_EndPoint);function Arrow(){(0,_classCallCheck3[\"default\"])(this,Arrow);return(0,_possibleConstructorReturn3[\"default\"])(this,(Arrow.__proto__||(0,_getPrototypeOf2[\"default\"])(Arrow)).apply(this,arguments))}(0,_createClass3[\"default\"])(Arrow,null,[{key:\"draw\",value:function draw(ctx,arrowData){var points=[{x:0,y:0},{x:-1,y:.3},{x:-.9,y:0},{x:-1,y:-.3}];EndPoint.transform(points,arrowData);EndPoint.drawPath(ctx,points)}}]);return Arrow}(EndPoint);var Circle=function(){function Circle(){(0,_classCallCheck3[\"default\"])(this,Circle)}(0,_createClass3[\"default\"])(Circle,null,[{key:\"draw\",value:function draw(ctx,arrowData){var point={x:-.4,y:0};EndPoint.transform(point,arrowData);ctx.circle(point.x,point.y,arrowData.length*.4)}}]);return Circle}();var Bar=function(){function Bar(){(0,_classCallCheck3[\"default\"])(this,Bar)}(0,_createClass3[\"default\"])(Bar,null,[{key:\"draw\",value:function draw(ctx,arrowData){var points=[{x:0,y:.5},{x:0,y:-.5},{x:-.15,y:-.5},{x:-.15,y:.5}];EndPoint.transform(points,arrowData);EndPoint.drawPath(ctx,points)}}]);return Bar}();var EndPoints=function(){function EndPoints(){(0,_classCallCheck3[\"default\"])(this,EndPoints)}(0,_createClass3[\"default\"])(EndPoints,null,[{key:\"draw\",value:function draw(ctx,arrowData){var type;if(arrowData.type){type=arrowData.type.toLowerCase()}switch(type){case\"circle\":Circle.draw(ctx,arrowData);break;case\"bar\":Bar.draw(ctx,arrowData);break;case\"arrow\":default:Arrow.draw(ctx,arrowData)}}}]);return EndPoints}();exports[\"default\"]=EndPoints},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BarnesHutSolver=function(){function BarnesHutSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,BarnesHutSolver);this.body=body;this.physicsBody=physicsBody;this.barnesHutTree;this.setOptions(options);this.randomSeed=5}(0,_createClass3[\"default\"])(BarnesHutSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options;this.thetaInversed=1/this.options.theta;this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}},{key:\"seededRandom\",value:function seededRandom(){var x=Math.sin(this.randomSeed++)*1e4;return x-Math.floor(x)}},{key:\"solve\",value:function solve(){if(this.options.gravitationalConstant!==0&&this.physicsBody.physicsNodeIndices.length>0){var node=void 0;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var nodeCount=nodeIndices.length;var barnesHutTree=this._formBarnesHutTree(nodes,nodeIndices);this.barnesHutTree=barnesHutTree;for(var i=0;i<nodeCount;i++){node=nodes[nodeIndices[i]];if(node.options.mass>0){this._getForceContributions(barnesHutTree.root,node)}}}}},{key:\"_getForceContributions\",value:function _getForceContributions(parentBranch,node){this._getForceContribution(parentBranch.children.NW,node);this._getForceContribution(parentBranch.children.NE,node);this._getForceContribution(parentBranch.children.SW,node);this._getForceContribution(parentBranch.children.SE,node)}},{key:\"_getForceContribution\",value:function _getForceContribution(parentBranch,node){if(parentBranch.childrenCount>0){var dx=void 0,dy=void 0,distance=void 0;dx=parentBranch.centerOfMass.x-node.x;dy=parentBranch.centerOfMass.y-node.y;distance=Math.sqrt(dx*dx+dy*dy);if(distance*parentBranch.calcSize>this.thetaInversed){this._calculateForces(distance,dx,dy,node,parentBranch)}else{if(parentBranch.childrenCount===4){this._getForceContributions(parentBranch,node)}else{if(parentBranch.children.data.id!=node.id){this._calculateForces(distance,dx,dy,node,parentBranch)}}}}}},{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,node,parentBranch){if(distance===0){distance=.1;dx=distance}if(this.overlapAvoidanceFactor<1&&node.shape.radius){distance=Math.max(.1+this.overlapAvoidanceFactor*node.shape.radius,distance-node.shape.radius)}var gravityForce=this.options.gravitationalConstant*parentBranch.mass*node.options.mass/Math.pow(distance,3);var fx=dx*gravityForce;var fy=dy*gravityForce;this.physicsBody.forces[node.id].x+=fx;this.physicsBody.forces[node.id].y+=fy}},{key:\"_formBarnesHutTree\",value:function _formBarnesHutTree(nodes,nodeIndices){var node=void 0;var nodeCount=nodeIndices.length;var minX=nodes[nodeIndices[0]].x;var minY=nodes[nodeIndices[0]].y;var maxX=nodes[nodeIndices[0]].x;var maxY=nodes[nodeIndices[0]].y;for(var i=1;i<nodeCount;i++){var _node=nodes[nodeIndices[i]];var x=_node.x;var y=_node.y;if(_node.options.mass>0){if(x<minX){minX=x}if(x>maxX){maxX=x}if(y<minY){minY=y}if(y>maxY){maxY=y}}}var sizeDiff=Math.abs(maxX-minX)-Math.abs(maxY-minY);if(sizeDiff>0){minY-=.5*sizeDiff;maxY+=.5*sizeDiff}else{minX+=.5*sizeDiff;maxX-=.5*sizeDiff}var minimumTreeSize=1e-5;var rootSize=Math.max(minimumTreeSize,Math.abs(maxX-minX));var halfRootSize=.5*rootSize;var centerX=.5*(minX+maxX),centerY=.5*(minY+maxY);var barnesHutTree={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:centerX-halfRootSize,maxX:centerX+halfRootSize,minY:centerY-halfRootSize,maxY:centerY+halfRootSize},size:rootSize,calcSize:1/rootSize,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(barnesHutTree.root);for(var _i=0;_i<nodeCount;_i++){node=nodes[nodeIndices[_i]];if(node.options.mass>0){this._placeInTree(barnesHutTree.root,node)}}return barnesHutTree}},{key:\"_updateBranchMass\",value:function _updateBranchMass(parentBranch,node){var centerOfMass=parentBranch.centerOfMass;var totalMass=parentBranch.mass+node.options.mass;var totalMassInv=1/totalMass;centerOfMass.x=centerOfMass.x*parentBranch.mass+node.x*node.options.mass;centerOfMass.x*=totalMassInv;centerOfMass.y=centerOfMass.y*parentBranch.mass+node.y*node.options.mass;centerOfMass.y*=totalMassInv;parentBranch.mass=totalMass;var biggestSize=Math.max(Math.max(node.height,node.radius),node.width);parentBranch.maxWidth=parentBranch.maxWidth<biggestSize?biggestSize:parentBranch.maxWidth}},{key:\"_placeInTree\",value:function _placeInTree(parentBranch,node,skipMassUpdate){if(skipMassUpdate!=true||skipMassUpdate===undefined){this._updateBranchMass(parentBranch,node)}var range=parentBranch.children.NW.range;var region=void 0;if(range.maxX>node.x){if(range.maxY>node.y){region=\"NW\"}else{region=\"SW\"}}else{if(range.maxY>node.y){region=\"NE\"}else{region=\"SE\"}}this._placeInRegion(parentBranch,node,region)}},{key:\"_placeInRegion\",value:function _placeInRegion(parentBranch,node,region){var children=parentBranch.children[region];switch(children.childrenCount){case 0:children.children.data=node;children.childrenCount=1;this._updateBranchMass(children,node);break;case 1:if(children.children.data.x===node.x&&children.children.data.y===node.y){node.x+=this.seededRandom();node.y+=this.seededRandom()}else{this._splitBranch(children);this._placeInTree(children,node)}break;case 4:this._placeInTree(children,node);break}}},{key:\"_splitBranch\",value:function _splitBranch(parentBranch){var containedNode=null;if(parentBranch.childrenCount===1){containedNode=parentBranch.children.data;parentBranch.mass=0;parentBranch.centerOfMass.x=0;parentBranch.centerOfMass.y=0}parentBranch.childrenCount=4;parentBranch.children.data=null;this._insertRegion(parentBranch,\"NW\");this._insertRegion(parentBranch,\"NE\");this._insertRegion(parentBranch,\"SW\");this._insertRegion(parentBranch,\"SE\");if(containedNode!=null){this._placeInTree(parentBranch,containedNode)}}},{key:\"_insertRegion\",value:function _insertRegion(parentBranch,region){var minX=void 0,maxX=void 0,minY=void 0,maxY=void 0;var childSize=.5*parentBranch.size;switch(region){case\"NW\":minX=parentBranch.range.minX;maxX=parentBranch.range.minX+childSize;minY=parentBranch.range.minY;maxY=parentBranch.range.minY+childSize;break;case\"NE\":minX=parentBranch.range.minX+childSize;maxX=parentBranch.range.maxX;minY=parentBranch.range.minY;maxY=parentBranch.range.minY+childSize;break;case\"SW\":minX=parentBranch.range.minX;maxX=parentBranch.range.minX+childSize;minY=parentBranch.range.minY+childSize;maxY=parentBranch.range.maxY;break;case\"SE\":minX=parentBranch.range.minX+childSize;maxX=parentBranch.range.maxX;minY=parentBranch.range.minY+childSize;maxY=parentBranch.range.maxY;break}parentBranch.children[region]={centerOfMass:{x:0,y:0},mass:0,range:{minX:minX,maxX:maxX,minY:minY,maxY:maxY},size:.5*parentBranch.size,calcSize:2*parentBranch.calcSize,children:{data:null},maxWidth:0,level:parentBranch.level+1,childrenCount:0}}},{key:\"_debug\",value:function _debug(ctx,color){if(this.barnesHutTree!==undefined){ctx.lineWidth=1;this._drawBranch(this.barnesHutTree.root,ctx,color)}}},{key:\"_drawBranch\",value:function _drawBranch(branch,ctx,color){if(color===undefined){color=\"#FF0000\"}if(branch.childrenCount===4){this._drawBranch(branch.children.NW,ctx);this._drawBranch(branch.children.NE,ctx);this._drawBranch(branch.children.SE,ctx);this._drawBranch(branch.children.SW,ctx)}ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(branch.range.minX,branch.range.minY);ctx.lineTo(branch.range.maxX,branch.range.minY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.maxX,branch.range.minY);ctx.lineTo(branch.range.maxX,branch.range.maxY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.maxX,branch.range.maxY);ctx.lineTo(branch.range.minX,branch.range.maxY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.minX,branch.range.maxY);ctx.lineTo(branch.range.minX,branch.range.minY);ctx.stroke()}}]);return BarnesHutSolver}();exports[\"default\"]=BarnesHutSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CentralGravitySolver=function(){function CentralGravitySolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,CentralGravitySolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(CentralGravitySolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx=void 0,dy=void 0,distance=void 0,node=void 0;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];node=nodes[nodeId];dx=-node.x;dy=-node.y;distance=Math.sqrt(dx*dx+dy*dy);this._calculateForces(distance,dx,dy,forces,node)}}},{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,forces,node){var gravityForce=distance===0?0:this.options.centralGravity/distance;forces[node.id].x=dx*gravityForce;forces[node.id].y=dy*gravityForce}}]);return CentralGravitySolver}();exports[\"default\"]=CentralGravitySolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var object=\"object\";var dom=\"dom\";var any=\"any\";var endPoints=[\"arrow\",\"circle\",\"bar\"];var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,string:string,array:array,function:\"function\"},container:{dom:dom},showButton:{boolean:bool},__type__:{object:object,boolean:bool,string:string,array:array,function:\"function\"}},edges:{arrows:{to:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},middle:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},from:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},__type__:{string:[\"from\",\"to\",\"middle\"],object:object}},arrowStrikethrough:{boolean:bool},chosen:{label:{boolean:bool,function:\"function\"},edge:{boolean:bool,function:\"function\"},__type__:{object:object,boolean:bool}},color:{color:{string:string},highlight:{string:string},hover:{string:string},inherit:{string:[\"from\",\"to\",\"both\"],boolean:bool},opacity:{number:number},__type__:{object:object,string:string}},dashes:{boolean:bool,array:array},font:{color:{string:string},size:{number:number},face:{string:string},background:{string:string},strokeWidth:{number:number},strokeColor:{string:string},align:{string:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},vadjust:{number:number},multi:{boolean:bool,string:string},bold:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},boldital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},ital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},mono:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},__type__:{object:object,string:string}},hidden:{boolean:bool},hoverWidth:{function:\"function\",number:number},label:{string:string,undefined:\"undefined\"},labelHighlightBold:{boolean:bool},length:{number:number,undefined:\"undefined\"},physics:{boolean:bool},scaling:{min:{number:number},max:{number:number},label:{enabled:{boolean:bool},min:{number:number},max:{number:number},maxVisible:{number:number},drawThreshold:{number:number},__type__:{object:object,boolean:bool}},customScalingFunction:{function:\"function\"},__type__:{object:object}},selectionWidth:{function:\"function\",number:number},selfReferenceSize:{number:number},shadow:{enabled:{boolean:bool},color:{string:string},size:{number:number},x:{number:number},y:{number:number},__type__:{object:object,boolean:bool}},smooth:{enabled:{boolean:bool},type:{string:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"]},roundness:{number:number},forceDirection:{string:[\"horizontal\",\"vertical\",\"none\"],boolean:bool},__type__:{object:object,boolean:bool}},title:{string:string,undefined:\"undefined\"},width:{number:number},widthConstraint:{maximum:{number:number},__type__:{object:object,boolean:bool,number:number}},value:{number:number,undefined:\"undefined\"},__type__:{object:object}},groups:{useDefaultGroups:{boolean:bool},__any__:\"get from nodes, will be overwritten below\",__type__:{object:object}},interaction:{dragNodes:{boolean:bool},dragView:{boolean:bool},hideEdgesOnDrag:{boolean:bool},hideNodesOnDrag:{boolean:bool},hover:{boolean:bool},keyboard:{enabled:{boolean:bool},speed:{x:{number:number},y:{number:number},zoom:{number:number},__type__:{object:object}},bindToWindow:{boolean:bool},__type__:{object:object,boolean:bool}},multiselect:{boolean:bool},navigationButtons:{boolean:bool},selectable:{boolean:bool},selectConnectedEdges:{boolean:bool},hoverConnectedEdges:{boolean:bool},tooltipDelay:{number:number},zoomView:{boolean:bool},__type__:{object:object}},layout:{randomSeed:{undefined:\"undefined\",number:number},improvedLayout:{boolean:bool},hierarchical:{enabled:{boolean:bool},levelSeparation:{number:number},nodeSpacing:{number:number},treeSpacing:{number:number},blockShifting:{boolean:bool},edgeMinimization:{boolean:bool},parentCentralization:{boolean:bool},direction:{string:[\"UD\",\"DU\",\"LR\",\"RL\"]},sortMethod:{string:[\"hubsize\",\"directed\"]},__type__:{object:object,boolean:bool}},__type__:{object:object}},manipulation:{enabled:{boolean:bool},initiallyActive:{boolean:bool},addNode:{boolean:bool,function:\"function\"},addEdge:{boolean:bool,function:\"function\"},editNode:{function:\"function\"},editEdge:{editWithoutDrag:{function:\"function\"},__type__:{object:object,boolean:bool,function:\"function\"}},deleteNode:{boolean:bool,function:\"function\"},deleteEdge:{boolean:bool,function:\"function\"},controlNodeStyle:\"get from nodes, will be overwritten below\",__type__:{object:object,boolean:bool}},nodes:{borderWidth:{number:number},borderWidthSelected:{number:number,undefined:\"undefined\"},brokenImage:{string:string,undefined:\"undefined\"},chosen:{label:{boolean:bool,function:\"function\"},node:{boolean:bool,function:\"function\"},__type__:{object:object,boolean:bool}},color:{border:{string:string},background:{string:string},highlight:{border:{string:string},background:{string:string},__type__:{object:object,string:string}},hover:{border:{string:string},background:{string:string},__type__:{object:object,string:string}},__type__:{object:object,string:string}},fixed:{x:{boolean:bool},y:{boolean:bool},__type__:{object:object,boolean:bool}},font:{align:{string:string},color:{string:string},size:{number:number},face:{string:string},background:{string:string},strokeWidth:{number:number},strokeColor:{string:string},vadjust:{number:number},multi:{boolean:bool,string:string},bold:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},boldital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},ital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},mono:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},__type__:{object:object,string:string}},group:{string:string,number:number,undefined:\"undefined\"},heightConstraint:{minimum:{number:number},valign:{string:string},__type__:{object:object,boolean:bool,number:number}},hidden:{boolean:bool},icon:{face:{string:string},code:{string:string},size:{number:number},color:{string:string},__type__:{object:object}},id:{string:string,number:number},image:{selected:{string:string,undefined:\"undefined\"},unselected:{string:string,undefined:\"undefined\"},__type__:{object:object,string:string}},label:{string:string,undefined:\"undefined\"},labelHighlightBold:{boolean:bool},level:{number:number,undefined:\"undefined\"},margin:{top:{number:number},right:{number:number},bottom:{number:number},left:{number:number},__type__:{object:object,number:number}},mass:{number:number},physics:{boolean:bool},scaling:{min:{number:number},max:{number:number},label:{enabled:{boolean:bool},min:{number:number},max:{number:number},maxVisible:{number:number},drawThreshold:{number:number},__type__:{object:object,boolean:bool}},customScalingFunction:{function:\"function\"},__type__:{object:object}},shadow:{enabled:{boolean:bool},color:{string:string},size:{number:number},x:{number:number},y:{number:number},__type__:{object:object,boolean:bool}},shape:{string:[\"ellipse\",\"circle\",\"database\",\"box\",\"text\",\"image\",\"circularImage\",\"diamond\",\"dot\",\"star\",\"triangle\",\"triangleDown\",\"square\",\"icon\",\"hexagon\"]},shapeProperties:{borderDashes:{boolean:bool,array:array},borderRadius:{number:number},interpolation:{boolean:bool},useImageSize:{boolean:bool},useBorderWithImage:{boolean:bool},__type__:{object:object}},size:{number:number},title:{string:string,dom:dom,undefined:\"undefined\"},value:{number:number,undefined:\"undefined\"},widthConstraint:{minimum:{number:number},maximum:{number:number},__type__:{object:object,boolean:bool,number:number}},x:{number:number},y:{number:number},__type__:{object:object}},physics:{enabled:{boolean:bool},barnesHut:{gravitationalConstant:{number:number},centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},damping:{number:number},avoidOverlap:{number:number},__type__:{object:object}},forceAtlas2Based:{gravitationalConstant:{number:number},centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},damping:{number:number},avoidOverlap:{number:number},__type__:{object:object}},repulsion:{centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},nodeDistance:{number:number},damping:{number:number},__type__:{object:object}},hierarchicalRepulsion:{centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},nodeDistance:{number:number},damping:{number:number},__type__:{object:object}},maxVelocity:{number:number},minVelocity:{number:number},solver:{string:[\"barnesHut\",\"repulsion\",\"hierarchicalRepulsion\",\"forceAtlas2Based\"]},stabilization:{enabled:{boolean:bool},iterations:{number:number},updateInterval:{number:number},onlyDynamicEdges:{boolean:bool},\nfit:{boolean:bool},__type__:{object:object,boolean:bool}},timestep:{number:number},adaptiveTimestep:{boolean:bool},__type__:{object:object,boolean:bool}},autoResize:{boolean:bool},clickToUse:{boolean:bool},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},height:{string:string},width:{string:string},__type__:{object:object}};allOptions.groups.__any__=allOptions.nodes;allOptions.manipulation.controlNodeStyle=allOptions.nodes;var configureOptions={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#97C2FC\"],highlight:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]},hover:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]}},fixed:{x:false,y:false},font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[0,0,50,1],strokeColor:[\"color\",\"#ffffff\"]},hidden:false,labelHighlightBold:true,physics:true,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:false,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:[\"ellipse\",\"box\",\"circle\",\"database\",\"diamond\",\"dot\",\"square\",\"star\",\"text\",\"triangle\",\"triangleDown\",\"hexagon\"],shapeProperties:{borderDashes:false,borderRadius:[6,0,20,1],interpolation:true,useImageSize:false},size:[25,0,200,1]},edges:{arrows:{to:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"},middle:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"},from:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"}},arrowStrikethrough:true,color:{color:[\"color\",\"#848484\"],highlight:[\"color\",\"#848484\"],hover:[\"color\",\"#848484\"],inherit:[\"from\",\"to\",\"both\",true,false],opacity:[1,0,1,.05]},dashes:false,font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[2,0,50,1],strokeColor:[\"color\",\"#ffffff\"],align:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},hidden:false,hoverWidth:[1.5,0,5,.1],labelHighlightBold:true,physics:true,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:true,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:true,type:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"],forceDirection:[\"horizontal\",\"vertical\",\"none\"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:false,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:true,edgeMinimization:true,parentCentralization:true,direction:[\"UD\",\"DU\",\"LR\",\"RL\"],sortMethod:[\"hubsize\",\"directed\"]}},interaction:{dragNodes:true,dragView:true,hideEdgesOnDrag:false,hideNodesOnDrag:false,hover:false,keyboard:{enabled:false,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:true},multiselect:false,navigationButtons:false,selectable:true,selectConnectedEdges:true,hoverConnectedEdges:true,tooltipDelay:[300,0,1e3,25],zoomView:true},manipulation:{enabled:false,initiallyActive:false},physics:{enabled:true,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:[\"barnesHut\",\"forceAtlas2Based\",\"repulsion\",\"hierarchicalRepulsion\"],timestep:[.5,.01,1,.01]}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);util.extend(exports,__webpack_require__(159));util.extend(exports,__webpack_require__(177));util.extend(exports,__webpack_require__(181))},function(module,exports,__webpack_require__){__webpack_require__(49);__webpack_require__(60);module.exports=__webpack_require__(136)},function(module,exports,__webpack_require__){\"use strict\";var addToUnscopables=__webpack_require__(126);var step=__webpack_require__(127);var Iterators=__webpack_require__(31);var toIObject=__webpack_require__(25);module.exports=__webpack_require__(79)(Array,\"Array\",function(iterated,kind){this._t=toIObject(iterated);this._i=0;this._k=kind},function(){var O=this._t;var kind=this._k;var index=this._i++;if(!O||index>=O.length){this._t=undefined;return step(1)}if(kind==\"keys\")return step(0,index);if(kind==\"values\")return step(0,O[index]);return step(0,[index,O[index]])},\"values\");Iterators.Arguments=Iterators.Array;addToUnscopables(\"keys\");addToUnscopables(\"values\");addToUnscopables(\"entries\")},function(module,exports){module.exports=function(){}},function(module,exports){module.exports=function(done,value){return{value:value,done:!!done}}},function(module,exports){module.exports=function(it){if(typeof it!=\"function\")throw TypeError(it+\" is not a function!\");return it}},function(module,exports,__webpack_require__){\"use strict\";var create=__webpack_require__(54);var descriptor=__webpack_require__(39);var setToStringTag=__webpack_require__(59);var IteratorPrototype={};__webpack_require__(26)(IteratorPrototype,__webpack_require__(13)(\"iterator\"),function(){return this});module.exports=function(Constructor,NAME,next){Constructor.prototype=create(IteratorPrototype,{next:descriptor(1,next)});setToStringTag(Constructor,NAME+\" Iterator\")}},function(module,exports,__webpack_require__){var dP=__webpack_require__(20);var anObject=__webpack_require__(27);var getKeys=__webpack_require__(33);module.exports=__webpack_require__(21)?Object.defineProperties:function defineProperties(O,Properties){anObject(O);var keys=getKeys(Properties);var length=keys.length;var i=0;var P;while(length>i)dP.f(O,P=keys[i++],Properties[P]);return O}},function(module,exports,__webpack_require__){var toIObject=__webpack_require__(25);var toLength=__webpack_require__(132);var toAbsoluteIndex=__webpack_require__(133);module.exports=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIObject($this);var length=toLength(O.length);var index=toAbsoluteIndex(fromIndex,length);var value;if(IS_INCLUDES&&el!=el)while(length>index){value=O[index++];if(value!=value)return true}else for(;length>index;index++)if(IS_INCLUDES||index in O){if(O[index]===el)return IS_INCLUDES||index||0}return!IS_INCLUDES&&-1}}},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var min=Math.min;module.exports=function(it){return it>0?min(toInteger(it),9007199254740991):0}},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var max=Math.max;var min=Math.min;module.exports=function(index,length){index=toInteger(index);return index<0?max(index+length,0):min(index,length)}},function(module,exports,__webpack_require__){var document=__webpack_require__(18).document;module.exports=document&&document.documentElement},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var defined=__webpack_require__(51);module.exports=function(TO_STRING){return function(that,pos){var s=String(defined(that));var i=toInteger(pos);var l=s.length;var a,b;if(i<0||i>=l)return TO_STRING?\"\":undefined;a=s.charCodeAt(i);return a<55296||a>56319||i+1===l||(b=s.charCodeAt(i+1))<56320||b>57343?TO_STRING?s.charAt(i):a:TO_STRING?s.slice(i,i+2):(a-55296<<10)+(b-56320)+65536}}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var get=__webpack_require__(137);module.exports=__webpack_require__(7).getIterator=function(it){var iterFn=get(it);if(typeof iterFn!=\"function\")throw TypeError(it+\" is not iterable!\");return anObject(iterFn.call(it))}},function(module,exports,__webpack_require__){var classof=__webpack_require__(86);var ITERATOR=__webpack_require__(13)(\"iterator\");var Iterators=__webpack_require__(31);module.exports=__webpack_require__(7).getIteratorMethod=function(it){if(it!=undefined)return it[ITERATOR]||it[\"@@iterator\"]||Iterators[classof(it)]}},function(module,exports,__webpack_require__){__webpack_require__(139);var $Object=__webpack_require__(7).Object;module.exports=function create(P,D){return $Object.create(P,D)}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Object\",{create:__webpack_require__(54)})},function(module,exports,__webpack_require__){__webpack_require__(141);module.exports=__webpack_require__(7).Object.keys},function(module,exports,__webpack_require__){var toObject=__webpack_require__(41);var $keys=__webpack_require__(33);__webpack_require__(87)(\"keys\",function(){return function keys(it){return $keys(toObject(it))}})},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(143),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(60);__webpack_require__(49);module.exports=__webpack_require__(61).f(\"iterator\")},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(145),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(146);__webpack_require__(151);__webpack_require__(152);__webpack_require__(153);module.exports=__webpack_require__(7).Symbol},function(module,exports,__webpack_require__){\"use strict\";var global=__webpack_require__(18);var has=__webpack_require__(22);var DESCRIPTORS=__webpack_require__(21);var $export=__webpack_require__(17);var redefine=__webpack_require__(83);var META=__webpack_require__(147).KEY;var $fails=__webpack_require__(28);var shared=__webpack_require__(57);var setToStringTag=__webpack_require__(59);var uid=__webpack_require__(40);var wks=__webpack_require__(13);var wksExt=__webpack_require__(61);var wksDefine=__webpack_require__(62);var enumKeys=__webpack_require__(148);var isArray=__webpack_require__(149);var anObject=__webpack_require__(27);var toIObject=__webpack_require__(25);var toPrimitive=__webpack_require__(53);var createDesc=__webpack_require__(39);var _create=__webpack_require__(54);var gOPNExt=__webpack_require__(150);var $GOPD=__webpack_require__(89);var $DP=__webpack_require__(20);var $keys=__webpack_require__(33);var gOPD=$GOPD.f;var dP=$DP.f;var gOPN=gOPNExt.f;var $Symbol=global.Symbol;var $JSON=global.JSON;var _stringify=$JSON&&$JSON.stringify;var PROTOTYPE=\"prototype\";var HIDDEN=wks(\"_hidden\");var TO_PRIMITIVE=wks(\"toPrimitive\");var isEnum={}.propertyIsEnumerable;var SymbolRegistry=shared(\"symbol-registry\");var AllSymbols=shared(\"symbols\");var OPSymbols=shared(\"op-symbols\");var ObjectProto=Object[PROTOTYPE];var USE_NATIVE=typeof $Symbol==\"function\";var QObject=global.QObject;var setter=!QObject||!QObject[PROTOTYPE]||!QObject[PROTOTYPE].findChild;var setSymbolDesc=DESCRIPTORS&&$fails(function(){return _create(dP({},\"a\",{get:function(){return dP(this,\"a\",{value:7}).a}})).a!=7})?function(it,key,D){var protoDesc=gOPD(ObjectProto,key);if(protoDesc)delete ObjectProto[key];dP(it,key,D);if(protoDesc&&it!==ObjectProto)dP(ObjectProto,key,protoDesc)}:dP;var wrap=function(tag){var sym=AllSymbols[tag]=_create($Symbol[PROTOTYPE]);sym._k=tag;return sym};var isSymbol=USE_NATIVE&&typeof $Symbol.iterator==\"symbol\"?function(it){return typeof it==\"symbol\"}:function(it){return it instanceof $Symbol};var $defineProperty=function defineProperty(it,key,D){if(it===ObjectProto)$defineProperty(OPSymbols,key,D);anObject(it);key=toPrimitive(key,true);anObject(D);if(has(AllSymbols,key)){if(!D.enumerable){if(!has(it,HIDDEN))dP(it,HIDDEN,createDesc(1,{}));it[HIDDEN][key]=true}else{if(has(it,HIDDEN)&&it[HIDDEN][key])it[HIDDEN][key]=false;D=_create(D,{enumerable:createDesc(0,false)})}return setSymbolDesc(it,key,D)}return dP(it,key,D)};var $defineProperties=function defineProperties(it,P){anObject(it);var keys=enumKeys(P=toIObject(P));var i=0;var l=keys.length;var key;while(l>i)$defineProperty(it,key=keys[i++],P[key]);return it};var $create=function create(it,P){return P===undefined?_create(it):$defineProperties(_create(it),P)};var $propertyIsEnumerable=function propertyIsEnumerable(key){var E=isEnum.call(this,key=toPrimitive(key,true));if(this===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return false;return E||!has(this,key)||!has(AllSymbols,key)||has(this,HIDDEN)&&this[HIDDEN][key]?E:true};var $getOwnPropertyDescriptor=function getOwnPropertyDescriptor(it,key){it=toIObject(it);key=toPrimitive(key,true);if(it===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return;var D=gOPD(it,key);if(D&&has(AllSymbols,key)&&!(has(it,HIDDEN)&&it[HIDDEN][key]))D.enumerable=true;return D};var $getOwnPropertyNames=function getOwnPropertyNames(it){var names=gOPN(toIObject(it));var result=[];var i=0;var key;while(names.length>i){if(!has(AllSymbols,key=names[i++])&&key!=HIDDEN&&key!=META)result.push(key)}return result};var $getOwnPropertySymbols=function getOwnPropertySymbols(it){var IS_OP=it===ObjectProto;var names=gOPN(IS_OP?OPSymbols:toIObject(it));var result=[];var i=0;var key;while(names.length>i){if(has(AllSymbols,key=names[i++])&&(IS_OP?has(ObjectProto,key):true))result.push(AllSymbols[key])}return result};if(!USE_NATIVE){$Symbol=function Symbol(){if(this instanceof $Symbol)throw TypeError(\"Symbol is not a constructor!\");var tag=uid(arguments.length>0?arguments[0]:undefined);var $set=function(value){if(this===ObjectProto)$set.call(OPSymbols,value);if(has(this,HIDDEN)&&has(this[HIDDEN],tag))this[HIDDEN][tag]=false;setSymbolDesc(this,tag,createDesc(1,value))};if(DESCRIPTORS&&setter)setSymbolDesc(ObjectProto,tag,{configurable:true,set:$set});return wrap(tag)};redefine($Symbol[PROTOTYPE],\"toString\",function toString(){return this._k});$GOPD.f=$getOwnPropertyDescriptor;$DP.f=$defineProperty;__webpack_require__(88).f=gOPNExt.f=$getOwnPropertyNames;__webpack_require__(42).f=$propertyIsEnumerable;__webpack_require__(63).f=$getOwnPropertySymbols;if(DESCRIPTORS&&!__webpack_require__(52)){redefine(ObjectProto,\"propertyIsEnumerable\",$propertyIsEnumerable,true)}wksExt.f=function(name){return wrap(wks(name))}}$export($export.G+$export.W+$export.F*!USE_NATIVE,{Symbol:$Symbol});for(var es6Symbols=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),j=0;es6Symbols.length>j;)wks(es6Symbols[j++]);for(var wellKnownSymbols=$keys(wks.store),k=0;wellKnownSymbols.length>k;)wksDefine(wellKnownSymbols[k++]);$export($export.S+$export.F*!USE_NATIVE,\"Symbol\",{for:function(key){return has(SymbolRegistry,key+=\"\")?SymbolRegistry[key]:SymbolRegistry[key]=$Symbol(key)},keyFor:function keyFor(sym){if(!isSymbol(sym))throw TypeError(sym+\" is not a symbol!\");for(var key in SymbolRegistry)if(SymbolRegistry[key]===sym)return key},useSetter:function(){setter=true},useSimple:function(){setter=false}});$export($export.S+$export.F*!USE_NATIVE,\"Object\",{create:$create,defineProperty:$defineProperty,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor,getOwnPropertyNames:$getOwnPropertyNames,getOwnPropertySymbols:$getOwnPropertySymbols});$JSON&&$export($export.S+$export.F*(!USE_NATIVE||$fails(function(){var S=$Symbol();return _stringify([S])!=\"[null]\"||_stringify({a:S})!=\"{}\"||_stringify(Object(S))!=\"{}\"})),\"JSON\",{stringify:function stringify(it){if(it===undefined||isSymbol(it))return;var args=[it];var i=1;var replacer,$replacer;while(arguments.length>i)args.push(arguments[i++]);replacer=args[1];if(typeof replacer==\"function\")$replacer=replacer;if($replacer||!isArray(replacer))replacer=function(key,value){if($replacer)value=$replacer.call(this,key,value);if(!isSymbol(value))return value};args[1]=replacer;return _stringify.apply($JSON,args)}});$Symbol[PROTOTYPE][TO_PRIMITIVE]||__webpack_require__(26)($Symbol[PROTOTYPE],TO_PRIMITIVE,$Symbol[PROTOTYPE].valueOf);setToStringTag($Symbol,\"Symbol\");setToStringTag(Math,\"Math\",true);setToStringTag(global.JSON,\"JSON\",true)},function(module,exports,__webpack_require__){var META=__webpack_require__(40)(\"meta\");var isObject=__webpack_require__(32);var has=__webpack_require__(22);var setDesc=__webpack_require__(20).f;var id=0;var isExtensible=Object.isExtensible||function(){return true};var FREEZE=!__webpack_require__(28)(function(){return isExtensible(Object.preventExtensions({}))});var setMeta=function(it){setDesc(it,META,{value:{i:\"O\"+ ++id,w:{}}})};var fastKey=function(it,create){if(!isObject(it))return typeof it==\"symbol\"?it:(typeof it==\"string\"?\"S\":\"P\")+it;if(!has(it,META)){if(!isExtensible(it))return\"F\";if(!create)return\"E\";setMeta(it)}return it[META].i};var getWeak=function(it,create){if(!has(it,META)){if(!isExtensible(it))return true;if(!create)return false;setMeta(it)}return it[META].w};var onFreeze=function(it){if(FREEZE&&meta.NEED&&isExtensible(it)&&!has(it,META))setMeta(it);return it};var meta=module.exports={KEY:META,NEED:false,fastKey:fastKey,getWeak:getWeak,onFreeze:onFreeze}},function(module,exports,__webpack_require__){var getKeys=__webpack_require__(33);var gOPS=__webpack_require__(63);var pIE=__webpack_require__(42);module.exports=function(it){var result=getKeys(it);var getSymbols=gOPS.f;if(getSymbols){var symbols=getSymbols(it);var isEnum=pIE.f;var i=0;var key;while(symbols.length>i)if(isEnum.call(it,key=symbols[i++]))result.push(key)}return result}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);module.exports=Array.isArray||function isArray(arg){return cof(arg)==\"Array\"}},function(module,exports,__webpack_require__){var toIObject=__webpack_require__(25);var gOPN=__webpack_require__(88).f;var toString={}.toString;var windowNames=typeof window==\"object\"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];var getWindowNames=function(it){try{return gOPN(it)}catch(e){return windowNames.slice()}};module.exports.f=function getOwnPropertyNames(it){return windowNames&&toString.call(it)==\"[object Window]\"?getWindowNames(it):gOPN(toIObject(it))}},function(module,exports){},function(module,exports,__webpack_require__){__webpack_require__(62)(\"asyncIterator\")},function(module,exports,__webpack_require__){__webpack_require__(62)(\"observable\")},function(module,exports,__webpack_require__){(function(module){var require;(function(global,factory){true?module.exports=factory():typeof define===\"function\"&&define.amd?define(factory):global.moment=factory()})(this,function(){\"use strict\";var hookCallback;function hooks(){return hookCallback.apply(null,arguments)}function setHookCallback(callback){hookCallback=callback}function isArray(input){return input instanceof Array||Object.prototype.toString.call(input)===\"[object Array]\"}function isObject(input){return input!=null&&Object.prototype.toString.call(input)===\"[object Object]\"}function isObjectEmpty(obj){if(Object.getOwnPropertyNames){return Object.getOwnPropertyNames(obj).length===0}else{var k;for(k in obj){if(obj.hasOwnProperty(k)){return false}}return true}}function isUndefined(input){return input===void 0}function isNumber(input){return typeof input===\"number\"||Object.prototype.toString.call(input)===\"[object Number]\"}function isDate(input){return input instanceof Date||Object.prototype.toString.call(input)===\"[object Date]\"}function map(arr,fn){var res=[],i;for(i=0;i<arr.length;++i){res.push(fn(arr[i],i))}return res}function hasOwnProp(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function extend(a,b){for(var i in b){if(hasOwnProp(b,i)){a[i]=b[i]}}if(hasOwnProp(b,\"toString\")){a.toString=b.toString}if(hasOwnProp(b,\"valueOf\")){a.valueOf=b.valueOf}return a}function createUTC(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,true).utc()}function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false,parsedDateParts:[],meridiem:null,rfc2822:false,weekdayMismatch:false}}function getParsingFlags(m){if(m._pf==null){m._pf=defaultParsingFlags()}return m._pf}var some;if(Array.prototype.some){some=Array.prototype.some}else{some=function(fun){var t=Object(this);var len=t.length>>>0;for(var i=0;i<len;i++){if(i in t&&fun.call(this,t[i],i,t)){return true}}return false}}function isValid(m){if(m._isValid==null){var flags=getParsingFlags(m);var parsedParts=some.call(flags.parsedDateParts,function(i){return i!=null});var isNowValid=!isNaN(m._d.getTime())&&flags.overflow<0&&!flags.empty&&!flags.invalidMonth&&!flags.invalidWeekday&&!flags.weekdayMismatch&&!flags.nullInput&&!flags.invalidFormat&&!flags.userInvalidated&&(!flags.meridiem||flags.meridiem&&parsedParts);if(m._strict){isNowValid=isNowValid&&flags.charsLeftOver===0&&flags.unusedTokens.length===0&&flags.bigHour===undefined}if(Object.isFrozen==null||!Object.isFrozen(m)){m._isValid=isNowValid}else{return isNowValid}}return m._isValid}function createInvalid(flags){var m=createUTC(NaN);if(flags!=null){extend(getParsingFlags(m),flags)}else{getParsingFlags(m).userInvalidated=true}return m}var momentProperties=hooks.momentProperties=[];function copyConfig(to,from){var i,prop,val;if(!isUndefined(from._isAMomentObject)){to._isAMomentObject=from._isAMomentObject}if(!isUndefined(from._i)){to._i=from._i}if(!isUndefined(from._f)){to._f=from._f}if(!isUndefined(from._l)){to._l=from._l}if(!isUndefined(from._strict)){to._strict=from._strict}if(!isUndefined(from._tzm)){to._tzm=from._tzm}if(!isUndefined(from._isUTC)){to._isUTC=from._isUTC}if(!isUndefined(from._offset)){to._offset=from._offset}if(!isUndefined(from._pf)){to._pf=getParsingFlags(from)}if(!isUndefined(from._locale)){to._locale=from._locale}if(momentProperties.length>0){for(i=0;i<momentProperties.length;i++){prop=momentProperties[i];val=from[prop];if(!isUndefined(val)){to[prop]=val}}}return to}var updateInProgress=false;function Moment(config){copyConfig(this,config);this._d=new Date(config._d!=null?config._d.getTime():NaN);if(!this.isValid()){this._d=new Date(NaN)}if(updateInProgress===false){updateInProgress=true;hooks.updateOffset(this);updateInProgress=false}}function isMoment(obj){return obj instanceof Moment||obj!=null&&obj._isAMomentObject!=null}function absFloor(number){if(number<0){return Math.ceil(number)||0}else{return Math.floor(number)}}function toInt(argumentForCoercion){var coercedNumber=+argumentForCoercion,value=0;if(coercedNumber!==0&&isFinite(coercedNumber)){value=absFloor(coercedNumber)}return value}function compareArrays(array1,array2,dontConvert){var len=Math.min(array1.length,array2.length),lengthDiff=Math.abs(array1.length-array2.length),diffs=0,i;for(i=0;i<len;i++){if(dontConvert&&array1[i]!==array2[i]||!dontConvert&&toInt(array1[i])!==toInt(array2[i])){diffs++}}return diffs+lengthDiff}function warn(msg){if(hooks.suppressDeprecationWarnings===false&&typeof console!==\"undefined\"&&console.warn){console.warn(\"Deprecation warning: \"+msg)}}function deprecate(msg,fn){var firstTime=true;return extend(function(){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(null,msg)}if(firstTime){var args=[];var arg;for(var i=0;i<arguments.length;i++){arg=\"\";if(typeof arguments[i]===\"object\"){arg+=\"\\n[\"+i+\"] \";for(var key in arguments[0]){arg+=key+\": \"+arguments[0][key]+\", \"}arg=arg.slice(0,-2)}else{arg=arguments[i]}args.push(arg)}warn(msg+\"\\nArguments: \"+Array.prototype.slice.call(args).join(\"\")+\"\\n\"+(new Error).stack);firstTime=false}return fn.apply(this,arguments)},fn)}var deprecations={};function deprecateSimple(name,msg){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(name,msg)}if(!deprecations[name]){warn(msg);deprecations[name]=true}}hooks.suppressDeprecationWarnings=false;hooks.deprecationHandler=null;function isFunction(input){return input instanceof Function||Object.prototype.toString.call(input)===\"[object Function]\"}function set(config){var prop,i;for(i in config){prop=config[i];if(isFunction(prop)){this[i]=prop}else{this[\"_\"+i]=prop}}this._config=config;this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)}function mergeConfigs(parentConfig,childConfig){var res=extend({},parentConfig),prop;for(prop in childConfig){if(hasOwnProp(childConfig,prop)){if(isObject(parentConfig[prop])&&isObject(childConfig[prop])){res[prop]={};extend(res[prop],parentConfig[prop]);extend(res[prop],childConfig[prop])}else if(childConfig[prop]!=null){res[prop]=childConfig[prop]}else{delete res[prop]}}}for(prop in parentConfig){if(hasOwnProp(parentConfig,prop)&&!hasOwnProp(childConfig,prop)&&isObject(parentConfig[prop])){res[prop]=extend({},res[prop])}}return res}function Locale(config){if(config!=null){this.set(config)}}var keys;if(Object.keys){keys=Object.keys}else{keys=function(obj){var i,res=[];for(i in obj){if(hasOwnProp(obj,i)){res.push(i)}}return res}}var defaultCalendar={sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"};function calendar(key,mom,now){var output=this._calendar[key]||this._calendar[\"sameElse\"];return isFunction(output)?output.call(mom,now):output}var defaultLongDateFormat={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\"};function longDateFormat(key){var format=this._longDateFormat[key],formatUpper=this._longDateFormat[key.toUpperCase()];if(format||!formatUpper){return format}this._longDateFormat[key]=formatUpper.replace(/MMMM|MM|DD|dddd/g,function(val){return val.slice(1)});return this._longDateFormat[key]}var defaultInvalidDate=\"Invalid date\";function invalidDate(){return this._invalidDate}var defaultOrdinal=\"%d\";var defaultDayOfMonthOrdinalParse=/\\d{1,2}/;function ordinal(number){return this._ordinal.replace(\"%d\",number)}var defaultRelativeTime={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\"};function relativeTime(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return isFunction(output)?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number)}function pastFuture(diff,output){var format=this._relativeTime[diff>0?\"future\":\"past\"];return isFunction(format)?format(output):format.replace(/%s/i,output)}var aliases={};function addUnitAlias(unit,shorthand){var lowerCase=unit.toLowerCase();aliases[lowerCase]=aliases[lowerCase+\"s\"]=aliases[shorthand]=unit}function normalizeUnits(units){return typeof units===\"string\"?aliases[units]||aliases[units.toLowerCase()]:undefined}function normalizeObjectUnits(inputObject){var normalizedInput={},normalizedProp,prop;for(prop in inputObject){if(hasOwnProp(inputObject,prop)){normalizedProp=normalizeUnits(prop);if(normalizedProp){normalizedInput[normalizedProp]=inputObject[prop]}}}return normalizedInput}var priorities={};function addUnitPriority(unit,priority){priorities[unit]=priority}function getPrioritizedUnits(unitsObj){var units=[];for(var u in unitsObj){units.push({unit:u,priority:priorities[u]})}units.sort(function(a,b){return a.priority-b.priority});return units}function zeroFill(number,targetLength,forceSign){var absNumber=\"\"+Math.abs(number),zerosToFill=targetLength-absNumber.length,sign=number>=0;return(sign?forceSign?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,zerosToFill)).toString().substr(1)+absNumber}var formattingTokens=/(\\[[^\\[]*\\])|(\\\\)?([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;var localFormattingTokens=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;var formatFunctions={};var formatTokenFunctions={};function addFormatToken(token,padded,ordinal,callback){var func=callback;if(typeof callback===\"string\"){func=function(){return this[callback]()}}if(token){formatTokenFunctions[token]=func}if(padded){formatTokenFunctions[padded[0]]=function(){return zeroFill(func.apply(this,arguments),padded[1],padded[2])}}if(ordinal){formatTokenFunctions[ordinal]=function(){return this.localeData().ordinal(func.apply(this,arguments),token)}}}function removeFormattingTokens(input){if(input.match(/\\[[\\s\\S]/)){return input.replace(/^\\[|\\]$/g,\"\")}return input.replace(/\\\\/g,\"\")}function makeFormatFunction(format){var array=format.match(formattingTokens),i,length;for(i=0,length=array.length;i<length;i++){if(formatTokenFunctions[array[i]]){array[i]=formatTokenFunctions[array[i]]}else{array[i]=removeFormattingTokens(array[i])}}return function(mom){var output=\"\",i;for(i=0;i<length;i++){output+=isFunction(array[i])?array[i].call(mom,format):array[i]}return output}}function formatMoment(m,format){if(!m.isValid()){return m.localeData().invalidDate()}format=expandFormat(format,m.localeData());formatFunctions[format]=formatFunctions[format]||makeFormatFunction(format);return formatFunctions[format](m)}function expandFormat(format,locale){var i=5;function replaceLongDateFormatTokens(input){return locale.longDateFormat(input)||input}localFormattingTokens.lastIndex=0;while(i>=0&&localFormattingTokens.test(format)){format=format.replace(localFormattingTokens,replaceLongDateFormatTokens);localFormattingTokens.lastIndex=0;i-=1}return format}var match1=/\\d/;var match2=/\\d\\d/;var match3=/\\d{3}/;var match4=/\\d{4}/;var match6=/[+-]?\\d{6}/;var match1to2=/\\d\\d?/;var match3to4=/\\d\\d\\d\\d?/;var match5to6=/\\d\\d\\d\\d\\d\\d?/;var match1to3=/\\d{1,3}/;var match1to4=/\\d{1,4}/;var match1to6=/[+-]?\\d{1,6}/;var matchUnsigned=/\\d+/;var matchSigned=/[+-]?\\d+/;var matchOffset=/Z|[+-]\\d\\d:?\\d\\d/gi;var matchShortOffset=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi;var matchTimestamp=/[+-]?\\d+(\\.\\d{1,3})?/;var matchWord=/[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;var regexes={};function addRegexToken(token,regex,strictRegex){regexes[token]=isFunction(regex)?regex:function(isStrict,localeData){return isStrict&&strictRegex?strictRegex:regex}}function getParseRegexForToken(token,config){if(!hasOwnProp(regexes,token)){return new RegExp(unescapeFormat(token))}return regexes[token](config._strict,config._locale)}function unescapeFormat(s){return regexEscape(s.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4}))}function regexEscape(s){return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}var tokens={};function addParseToken(token,callback){var i,func=callback;if(typeof token===\"string\"){token=[token]}if(isNumber(callback)){func=function(input,array){array[callback]=toInt(input)}}for(i=0;i<token.length;i++){tokens[token[i]]=func}}function addWeekParseToken(token,callback){addParseToken(token,function(input,array,config,token){config._w=config._w||{};callback(input,config._w,config,token)})}function addTimeToArrayFromToken(token,input,config){if(input!=null&&hasOwnProp(tokens,token)){tokens[token](input,config._a,config,token)}}var YEAR=0;var MONTH=1;var DATE=2;var HOUR=3;var MINUTE=4;var SECOND=5;var MILLISECOND=6;var WEEK=7;var WEEKDAY=8;addFormatToken(\"Y\",0,0,function(){var y=this.year();return y<=9999?\"\"+y:\"+\"+y});addFormatToken(0,[\"YY\",2],0,function(){return this.year()%100});addFormatToken(0,[\"YYYY\",4],0,\"year\");addFormatToken(0,[\"YYYYY\",5],0,\"year\");addFormatToken(0,[\"YYYYYY\",6,true],0,\"year\");addUnitAlias(\"year\",\"y\");addUnitPriority(\"year\",1);addRegexToken(\"Y\",matchSigned)\n;addRegexToken(\"YY\",match1to2,match2);addRegexToken(\"YYYY\",match1to4,match4);addRegexToken(\"YYYYY\",match1to6,match6);addRegexToken(\"YYYYYY\",match1to6,match6);addParseToken([\"YYYYY\",\"YYYYYY\"],YEAR);addParseToken(\"YYYY\",function(input,array){array[YEAR]=input.length===2?hooks.parseTwoDigitYear(input):toInt(input)});addParseToken(\"YY\",function(input,array){array[YEAR]=hooks.parseTwoDigitYear(input)});addParseToken(\"Y\",function(input,array){array[YEAR]=parseInt(input,10)});function daysInYear(year){return isLeapYear(year)?366:365}function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}hooks.parseTwoDigitYear=function(input){return toInt(input)+(toInt(input)>68?1900:2e3)};var getSetYear=makeGetSet(\"FullYear\",true);function getIsLeapYear(){return isLeapYear(this.year())}function makeGetSet(unit,keepTime){return function(value){if(value!=null){set$1(this,unit,value);hooks.updateOffset(this,keepTime);return this}else{return get(this,unit)}}}function get(mom,unit){return mom.isValid()?mom._d[\"get\"+(mom._isUTC?\"UTC\":\"\")+unit]():NaN}function set$1(mom,unit,value){if(mom.isValid()&&!isNaN(value)){if(unit===\"FullYear\"&&isLeapYear(mom.year())){mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+unit](value,mom.month(),daysInMonth(value,mom.month()))}else{mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+unit](value)}}}function stringGet(units){units=normalizeUnits(units);if(isFunction(this[units])){return this[units]()}return this}function stringSet(units,value){if(typeof units===\"object\"){units=normalizeObjectUnits(units);var prioritized=getPrioritizedUnits(units);for(var i=0;i<prioritized.length;i++){this[prioritized[i].unit](units[prioritized[i].unit])}}else{units=normalizeUnits(units);if(isFunction(this[units])){return this[units](value)}}return this}function mod(n,x){return(n%x+x)%x}var indexOf;if(Array.prototype.indexOf){indexOf=Array.prototype.indexOf}else{indexOf=function(o){var i;for(i=0;i<this.length;++i){if(this[i]===o){return i}}return-1}}function daysInMonth(year,month){if(isNaN(year)||isNaN(month)){return NaN}var modMonth=mod(month,12);year+=(month-modMonth)/12;return modMonth===1?isLeapYear(year)?29:28:31-modMonth%7%2}addFormatToken(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1});addFormatToken(\"MMM\",0,0,function(format){return this.localeData().monthsShort(this,format)});addFormatToken(\"MMMM\",0,0,function(format){return this.localeData().months(this,format)});addUnitAlias(\"month\",\"M\");addUnitPriority(\"month\",8);addRegexToken(\"M\",match1to2);addRegexToken(\"MM\",match1to2,match2);addRegexToken(\"MMM\",function(isStrict,locale){return locale.monthsShortRegex(isStrict)});addRegexToken(\"MMMM\",function(isStrict,locale){return locale.monthsRegex(isStrict)});addParseToken([\"M\",\"MM\"],function(input,array){array[MONTH]=toInt(input)-1});addParseToken([\"MMM\",\"MMMM\"],function(input,array,config,token){var month=config._locale.monthsParse(input,token,config._strict);if(month!=null){array[MONTH]=month}else{getParsingFlags(config).invalidMonth=input}});var MONTHS_IN_FORMAT=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;var defaultLocaleMonths=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\");function localeMonths(m,format){if(!m){return isArray(this._months)?this._months:this._months[\"standalone\"]}return isArray(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||MONTHS_IN_FORMAT).test(format)?\"format\":\"standalone\"][m.month()]}var defaultLocaleMonthsShort=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\");function localeMonthsShort(m,format){if(!m){return isArray(this._monthsShort)?this._monthsShort:this._monthsShort[\"standalone\"]}return isArray(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[MONTHS_IN_FORMAT.test(format)?\"format\":\"standalone\"][m.month()]}function handleStrictParse(monthName,format,strict){var i,ii,mom,llc=monthName.toLocaleLowerCase();if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[];for(i=0;i<12;++i){mom=createUTC([2e3,i]);this._shortMonthsParse[i]=this.monthsShort(mom,\"\").toLocaleLowerCase();this._longMonthsParse[i]=this.months(mom,\"\").toLocaleLowerCase()}}if(strict){if(format===\"MMM\"){ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null}}else{if(format===\"MMM\"){ii=indexOf.call(this._shortMonthsParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._longMonthsParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null}}}function localeMonthsParse(monthName,format,strict){var i,mom,regex;if(this._monthsParseExact){return handleStrictParse.call(this,monthName,format,strict)}if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[]}for(i=0;i<12;i++){mom=createUTC([2e3,i]);if(strict&&!this._longMonthsParse[i]){this._longMonthsParse[i]=new RegExp(\"^\"+this.months(mom,\"\").replace(\".\",\"\")+\"$\",\"i\");this._shortMonthsParse[i]=new RegExp(\"^\"+this.monthsShort(mom,\"\").replace(\".\",\"\")+\"$\",\"i\")}if(!strict&&!this._monthsParse[i]){regex=\"^\"+this.months(mom,\"\")+\"|^\"+this.monthsShort(mom,\"\");this._monthsParse[i]=new RegExp(regex.replace(\".\",\"\"),\"i\")}if(strict&&format===\"MMMM\"&&this._longMonthsParse[i].test(monthName)){return i}else if(strict&&format===\"MMM\"&&this._shortMonthsParse[i].test(monthName)){return i}else if(!strict&&this._monthsParse[i].test(monthName)){return i}}}function setMonth(mom,value){var dayOfMonth;if(!mom.isValid()){return mom}if(typeof value===\"string\"){if(/^\\d+$/.test(value)){value=toInt(value)}else{value=mom.localeData().monthsParse(value);if(!isNumber(value)){return mom}}}dayOfMonth=Math.min(mom.date(),daysInMonth(mom.year(),value));mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+\"Month\"](value,dayOfMonth);return mom}function getSetMonth(value){if(value!=null){setMonth(this,value);hooks.updateOffset(this,true);return this}else{return get(this,\"Month\")}}function getDaysInMonth(){return daysInMonth(this.year(),this.month())}var defaultMonthsShortRegex=matchWord;function monthsShortRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,\"_monthsRegex\")){computeMonthsParse.call(this)}if(isStrict){return this._monthsShortStrictRegex}else{return this._monthsShortRegex}}else{if(!hasOwnProp(this,\"_monthsShortRegex\")){this._monthsShortRegex=defaultMonthsShortRegex}return this._monthsShortStrictRegex&&isStrict?this._monthsShortStrictRegex:this._monthsShortRegex}}var defaultMonthsRegex=matchWord;function monthsRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,\"_monthsRegex\")){computeMonthsParse.call(this)}if(isStrict){return this._monthsStrictRegex}else{return this._monthsRegex}}else{if(!hasOwnProp(this,\"_monthsRegex\")){this._monthsRegex=defaultMonthsRegex}return this._monthsStrictRegex&&isStrict?this._monthsStrictRegex:this._monthsRegex}}function computeMonthsParse(){function cmpLenRev(a,b){return b.length-a.length}var shortPieces=[],longPieces=[],mixedPieces=[],i,mom;for(i=0;i<12;i++){mom=createUTC([2e3,i]);shortPieces.push(this.monthsShort(mom,\"\"));longPieces.push(this.months(mom,\"\"));mixedPieces.push(this.months(mom,\"\"));mixedPieces.push(this.monthsShort(mom,\"\"))}shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<12;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i])}for(i=0;i<24;i++){mixedPieces[i]=regexEscape(mixedPieces[i])}this._monthsRegex=new RegExp(\"^(\"+mixedPieces.join(\"|\")+\")\",\"i\");this._monthsShortRegex=this._monthsRegex;this._monthsStrictRegex=new RegExp(\"^(\"+longPieces.join(\"|\")+\")\",\"i\");this._monthsShortStrictRegex=new RegExp(\"^(\"+shortPieces.join(\"|\")+\")\",\"i\")}function createDate(y,m,d,h,M,s,ms){var date=new Date(y,m,d,h,M,s,ms);if(y<100&&y>=0&&isFinite(date.getFullYear())){date.setFullYear(y)}return date}function createUTCDate(y){var date=new Date(Date.UTC.apply(null,arguments));if(y<100&&y>=0&&isFinite(date.getUTCFullYear())){date.setUTCFullYear(y)}return date}function firstWeekOffset(year,dow,doy){var fwd=7+dow-doy,fwdlw=(7+createUTCDate(year,0,fwd).getUTCDay()-dow)%7;return-fwdlw+fwd-1}function dayOfYearFromWeeks(year,week,weekday,dow,doy){var localWeekday=(7+weekday-dow)%7,weekOffset=firstWeekOffset(year,dow,doy),dayOfYear=1+7*(week-1)+localWeekday+weekOffset,resYear,resDayOfYear;if(dayOfYear<=0){resYear=year-1;resDayOfYear=daysInYear(resYear)+dayOfYear}else if(dayOfYear>daysInYear(year)){resYear=year+1;resDayOfYear=dayOfYear-daysInYear(year)}else{resYear=year;resDayOfYear=dayOfYear}return{year:resYear,dayOfYear:resDayOfYear}}function weekOfYear(mom,dow,doy){var weekOffset=firstWeekOffset(mom.year(),dow,doy),week=Math.floor((mom.dayOfYear()-weekOffset-1)/7)+1,resWeek,resYear;if(week<1){resYear=mom.year()-1;resWeek=week+weeksInYear(resYear,dow,doy)}else if(week>weeksInYear(mom.year(),dow,doy)){resWeek=week-weeksInYear(mom.year(),dow,doy);resYear=mom.year()+1}else{resYear=mom.year();resWeek=week}return{week:resWeek,year:resYear}}function weeksInYear(year,dow,doy){var weekOffset=firstWeekOffset(year,dow,doy),weekOffsetNext=firstWeekOffset(year+1,dow,doy);return(daysInYear(year)-weekOffset+weekOffsetNext)/7}addFormatToken(\"w\",[\"ww\",2],\"wo\",\"week\");addFormatToken(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\");addUnitAlias(\"week\",\"w\");addUnitAlias(\"isoWeek\",\"W\");addUnitPriority(\"week\",5);addUnitPriority(\"isoWeek\",5);addRegexToken(\"w\",match1to2);addRegexToken(\"ww\",match1to2,match2);addRegexToken(\"W\",match1to2);addRegexToken(\"WW\",match1to2,match2);addWeekParseToken([\"w\",\"ww\",\"W\",\"WW\"],function(input,week,config,token){week[token.substr(0,1)]=toInt(input)});function localeWeek(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week}var defaultLocaleWeek={dow:0,doy:6};function localeFirstDayOfWeek(){return this._week.dow}function localeFirstDayOfYear(){return this._week.doy}function getSetWeek(input){var week=this.localeData().week(this);return input==null?week:this.add((input-week)*7,\"d\")}function getSetISOWeek(input){var week=weekOfYear(this,1,4).week;return input==null?week:this.add((input-week)*7,\"d\")}addFormatToken(\"d\",0,\"do\",\"day\");addFormatToken(\"dd\",0,0,function(format){return this.localeData().weekdaysMin(this,format)});addFormatToken(\"ddd\",0,0,function(format){return this.localeData().weekdaysShort(this,format)});addFormatToken(\"dddd\",0,0,function(format){return this.localeData().weekdays(this,format)});addFormatToken(\"e\",0,0,\"weekday\");addFormatToken(\"E\",0,0,\"isoWeekday\");addUnitAlias(\"day\",\"d\");addUnitAlias(\"weekday\",\"e\");addUnitAlias(\"isoWeekday\",\"E\");addUnitPriority(\"day\",11);addUnitPriority(\"weekday\",11);addUnitPriority(\"isoWeekday\",11);addRegexToken(\"d\",match1to2);addRegexToken(\"e\",match1to2);addRegexToken(\"E\",match1to2);addRegexToken(\"dd\",function(isStrict,locale){return locale.weekdaysMinRegex(isStrict)});addRegexToken(\"ddd\",function(isStrict,locale){return locale.weekdaysShortRegex(isStrict)});addRegexToken(\"dddd\",function(isStrict,locale){return locale.weekdaysRegex(isStrict)});addWeekParseToken([\"dd\",\"ddd\",\"dddd\"],function(input,week,config,token){var weekday=config._locale.weekdaysParse(input,token,config._strict);if(weekday!=null){week.d=weekday}else{getParsingFlags(config).invalidWeekday=input}});addWeekParseToken([\"d\",\"e\",\"E\"],function(input,week,config,token){week[token]=toInt(input)});function parseWeekday(input,locale){if(typeof input!==\"string\"){return input}if(!isNaN(input)){return parseInt(input,10)}input=locale.weekdaysParse(input);if(typeof input===\"number\"){return input}return null}function parseIsoWeekday(input,locale){if(typeof input===\"string\"){return locale.weekdaysParse(input)%7||7}return isNaN(input)?null:input}var defaultLocaleWeekdays=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\");function localeWeekdays(m,format){if(!m){return isArray(this._weekdays)?this._weekdays:this._weekdays[\"standalone\"]}return isArray(this._weekdays)?this._weekdays[m.day()]:this._weekdays[this._weekdays.isFormat.test(format)?\"format\":\"standalone\"][m.day()]}var defaultLocaleWeekdaysShort=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\");function localeWeekdaysShort(m){return m?this._weekdaysShort[m.day()]:this._weekdaysShort}var defaultLocaleWeekdaysMin=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\");function localeWeekdaysMin(m){return m?this._weekdaysMin[m.day()]:this._weekdaysMin}function handleStrictParse$1(weekdayName,format,strict){var i,ii,mom,llc=weekdayName.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(i=0;i<7;++i){mom=createUTC([2e3,1]).day(i);this._minWeekdaysParse[i]=this.weekdaysMin(mom,\"\").toLocaleLowerCase();this._shortWeekdaysParse[i]=this.weekdaysShort(mom,\"\").toLocaleLowerCase();this._weekdaysParse[i]=this.weekdays(mom,\"\").toLocaleLowerCase()}}if(strict){if(format===\"dddd\"){ii=indexOf.call(this._weekdaysParse,llc);return ii!==-1?ii:null}else if(format===\"ddd\"){ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}}else{if(format===\"dddd\"){ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}else if(format===\"ddd\"){ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._minWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null}}}function localeWeekdaysParse(weekdayName,format,strict){var i,mom,regex;if(this._weekdaysParseExact){return handleStrictParse$1.call(this,weekdayName,format,strict)}if(!this._weekdaysParse){this._weekdaysParse=[];this._minWeekdaysParse=[];this._shortWeekdaysParse=[];this._fullWeekdaysParse=[]}for(i=0;i<7;i++){mom=createUTC([2e3,1]).day(i);if(strict&&!this._fullWeekdaysParse[i]){this._fullWeekdaysParse[i]=new RegExp(\"^\"+this.weekdays(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\");this._shortWeekdaysParse[i]=new RegExp(\"^\"+this.weekdaysShort(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\");this._minWeekdaysParse[i]=new RegExp(\"^\"+this.weekdaysMin(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\")}if(!this._weekdaysParse[i]){regex=\"^\"+this.weekdays(mom,\"\")+\"|^\"+this.weekdaysShort(mom,\"\")+\"|^\"+this.weekdaysMin(mom,\"\");this._weekdaysParse[i]=new RegExp(regex.replace(\".\",\"\"),\"i\")}if(strict&&format===\"dddd\"&&this._fullWeekdaysParse[i].test(weekdayName)){return i}else if(strict&&format===\"ddd\"&&this._shortWeekdaysParse[i].test(weekdayName)){return i}else if(strict&&format===\"dd\"&&this._minWeekdaysParse[i].test(weekdayName)){return i}else if(!strict&&this._weekdaysParse[i].test(weekdayName)){return i}}}function getSetDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}var day=this._isUTC?this._d.getUTCDay():this._d.getDay();if(input!=null){input=parseWeekday(input,this.localeData());return this.add(input-day,\"d\")}else{return day}}function getSetLocaleDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}var weekday=(this.day()+7-this.localeData()._week.dow)%7;return input==null?weekday:this.add(input-weekday,\"d\")}function getSetISODayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}if(input!=null){var weekday=parseIsoWeekday(input,this.localeData());return this.day(this.day()%7?weekday:weekday-7)}else{return this.day()||7}}var defaultWeekdaysRegex=matchWord;function weekdaysRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysStrictRegex}else{return this._weekdaysRegex}}else{if(!hasOwnProp(this,\"_weekdaysRegex\")){this._weekdaysRegex=defaultWeekdaysRegex}return this._weekdaysStrictRegex&&isStrict?this._weekdaysStrictRegex:this._weekdaysRegex}}var defaultWeekdaysShortRegex=matchWord;function weekdaysShortRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysShortStrictRegex}else{return this._weekdaysShortRegex}}else{if(!hasOwnProp(this,\"_weekdaysShortRegex\")){this._weekdaysShortRegex=defaultWeekdaysShortRegex}return this._weekdaysShortStrictRegex&&isStrict?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}}var defaultWeekdaysMinRegex=matchWord;function weekdaysMinRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysMinStrictRegex}else{return this._weekdaysMinRegex}}else{if(!hasOwnProp(this,\"_weekdaysMinRegex\")){this._weekdaysMinRegex=defaultWeekdaysMinRegex}return this._weekdaysMinStrictRegex&&isStrict?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}}function computeWeekdaysParse(){function cmpLenRev(a,b){return b.length-a.length}var minPieces=[],shortPieces=[],longPieces=[],mixedPieces=[],i,mom,minp,shortp,longp;for(i=0;i<7;i++){mom=createUTC([2e3,1]).day(i);minp=this.weekdaysMin(mom,\"\");shortp=this.weekdaysShort(mom,\"\");longp=this.weekdays(mom,\"\");minPieces.push(minp);shortPieces.push(shortp);longPieces.push(longp);mixedPieces.push(minp);mixedPieces.push(shortp);mixedPieces.push(longp)}minPieces.sort(cmpLenRev);shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<7;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i]);mixedPieces[i]=regexEscape(mixedPieces[i])}this._weekdaysRegex=new RegExp(\"^(\"+mixedPieces.join(\"|\")+\")\",\"i\");this._weekdaysShortRegex=this._weekdaysRegex;this._weekdaysMinRegex=this._weekdaysRegex;this._weekdaysStrictRegex=new RegExp(\"^(\"+longPieces.join(\"|\")+\")\",\"i\");this._weekdaysShortStrictRegex=new RegExp(\"^(\"+shortPieces.join(\"|\")+\")\",\"i\");this._weekdaysMinStrictRegex=new RegExp(\"^(\"+minPieces.join(\"|\")+\")\",\"i\")}function hFormat(){return this.hours()%12||12}function kFormat(){return this.hours()||24}addFormatToken(\"H\",[\"HH\",2],0,\"hour\");addFormatToken(\"h\",[\"hh\",2],0,hFormat);addFormatToken(\"k\",[\"kk\",2],0,kFormat);addFormatToken(\"hmm\",0,0,function(){return\"\"+hFormat.apply(this)+zeroFill(this.minutes(),2)});addFormatToken(\"hmmss\",0,0,function(){return\"\"+hFormat.apply(this)+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});addFormatToken(\"Hmm\",0,0,function(){return\"\"+this.hours()+zeroFill(this.minutes(),2)});addFormatToken(\"Hmmss\",0,0,function(){return\"\"+this.hours()+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});function meridiem(token,lowercase){addFormatToken(token,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),lowercase)})}meridiem(\"a\",true);meridiem(\"A\",false);addUnitAlias(\"hour\",\"h\");addUnitPriority(\"hour\",13);function matchMeridiem(isStrict,locale){return locale._meridiemParse}addRegexToken(\"a\",matchMeridiem);addRegexToken(\"A\",matchMeridiem);addRegexToken(\"H\",match1to2);addRegexToken(\"h\",match1to2);addRegexToken(\"k\",match1to2);addRegexToken(\"HH\",match1to2,match2);addRegexToken(\"hh\",match1to2,match2);addRegexToken(\"kk\",match1to2,match2);addRegexToken(\"hmm\",match3to4);addRegexToken(\"hmmss\",match5to6);addRegexToken(\"Hmm\",match3to4);addRegexToken(\"Hmmss\",match5to6);addParseToken([\"H\",\"HH\"],HOUR);addParseToken([\"k\",\"kk\"],function(input,array,config){var kInput=toInt(input);array[HOUR]=kInput===24?0:kInput});addParseToken([\"a\",\"A\"],function(input,array,config){config._isPm=config._locale.isPM(input);config._meridiem=input});addParseToken([\"h\",\"hh\"],function(input,array,config){array[HOUR]=toInt(input);getParsingFlags(config).bigHour=true});addParseToken(\"hmm\",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos));getParsingFlags(config).bigHour=true});addParseToken(\"hmmss\",function(input,array,config){var pos1=input.length-4;var pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2));getParsingFlags(config).bigHour=true});addParseToken(\"Hmm\",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos))});addParseToken(\"Hmmss\",function(input,array,config){var pos1=input.length-4;var pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2))});function localeIsPM(input){return(input+\"\").toLowerCase().charAt(0)===\"p\"}var defaultLocaleMeridiemParse=/[ap]\\.?m?\\.?/i;function localeMeridiem(hours,minutes,isLower){if(hours>11){return isLower?\"pm\":\"PM\"}else{return isLower?\"am\":\"AM\"}}var getSetHour=makeGetSet(\"Hours\",true);var baseConfig={calendar:defaultCalendar,longDateFormat:defaultLongDateFormat,invalidDate:defaultInvalidDate,ordinal:defaultOrdinal,dayOfMonthOrdinalParse:defaultDayOfMonthOrdinalParse,relativeTime:defaultRelativeTime,months:defaultLocaleMonths,monthsShort:defaultLocaleMonthsShort,week:defaultLocaleWeek,weekdays:defaultLocaleWeekdays,weekdaysMin:defaultLocaleWeekdaysMin,weekdaysShort:defaultLocaleWeekdaysShort,meridiemParse:defaultLocaleMeridiemParse};var locales={};var localeFamilies={};var globalLocale;function normalizeLocale(key){return key?key.toLowerCase().replace(\"_\",\"-\"):key}function chooseLocale(names){var i=0,j,next,locale,split;while(i<names.length){split=normalizeLocale(names[i]).split(\"-\");j=split.length;next=normalizeLocale(names[i+1]);next=next?next.split(\"-\"):null;while(j>0){locale=loadLocale(split.slice(0,j).join(\"-\"));if(locale){return locale}if(next&&next.length>=j&&compareArrays(split,next,true)>=j-1){break}j--}i++}return null}function loadLocale(name){var oldLocale=null;if(!locales[name]&&typeof module!==\"undefined\"&&module&&module.exports){try{oldLocale=globalLocale._abbr;var aliasedRequire=require;!function webpackMissingModule(){var e=new Error('Cannot find module \"./locale\"');e.code=\"MODULE_NOT_FOUND\";throw e}();getSetGlobalLocale(oldLocale)}catch(e){}}return locales[name]}function getSetGlobalLocale(key,values){var data;if(key){if(isUndefined(values)){data=getLocale(key)}else{data=defineLocale(key,values)}if(data){globalLocale=data}}return globalLocale._abbr}function defineLocale(name,config){if(config!==null){var parentConfig=baseConfig;config.abbr=name;if(locales[name]!=null){deprecateSimple(\"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.\");parentConfig=locales[name]._config}else if(config.parentLocale!=null){if(locales[config.parentLocale]!=null){parentConfig=locales[config.parentLocale]._config}else{if(!localeFamilies[config.parentLocale]){localeFamilies[config.parentLocale]=[]}localeFamilies[config.parentLocale].push({name:name,config:config});return null}}locales[name]=new Locale(mergeConfigs(parentConfig,config));if(localeFamilies[name]){localeFamilies[name].forEach(function(x){defineLocale(x.name,x.config)})}getSetGlobalLocale(name);return locales[name]}else{delete locales[name];return null}}function updateLocale(name,config){if(config!=null){var locale,parentConfig=baseConfig;if(locales[name]!=null){parentConfig=locales[name]._config}config=mergeConfigs(parentConfig,config);locale=new Locale(config);locale.parentLocale=locales[name];locales[name]=locale;getSetGlobalLocale(name)}else{if(locales[name]!=null){if(locales[name].parentLocale!=null){locales[name]=locales[name].parentLocale}else if(locales[name]!=null){delete locales[name]}}}return locales[name]}function getLocale(key){var locale;if(key&&key._locale&&key._locale._abbr){key=key._locale._abbr}if(!key){return globalLocale}if(!isArray(key)){locale=loadLocale(key);if(locale){return locale}key=[key]}return chooseLocale(key)}function listLocales(){return keys(locales)}function checkOverflow(m){var overflow;var a=m._a;if(a&&getParsingFlags(m).overflow===-2){overflow=a[MONTH]<0||a[MONTH]>11?MONTH:a[DATE]<1||a[DATE]>daysInMonth(a[YEAR],a[MONTH])?DATE:a[HOUR]<0||a[HOUR]>24||a[HOUR]===24&&(a[MINUTE]!==0||a[SECOND]!==0||a[MILLISECOND]!==0)?HOUR:a[MINUTE]<0||a[MINUTE]>59?MINUTE:a[SECOND]<0||a[SECOND]>59?SECOND:a[MILLISECOND]<0||a[MILLISECOND]>999?MILLISECOND:-1;if(getParsingFlags(m)._overflowDayOfYear&&(overflow<YEAR||overflow>DATE)){overflow=DATE}if(getParsingFlags(m)._overflowWeeks&&overflow===-1){overflow=WEEK}if(getParsingFlags(m)._overflowWeekday&&overflow===-1){overflow=WEEKDAY}getParsingFlags(m).overflow=overflow}return m}function defaults(a,b,c){if(a!=null){return a}if(b!=null){return b}return c}function currentDateArray(config){var nowValue=new Date(hooks.now());if(config._useUTC){return[nowValue.getUTCFullYear(),nowValue.getUTCMonth(),nowValue.getUTCDate()]}return[nowValue.getFullYear(),nowValue.getMonth(),nowValue.getDate()]}function configFromArray(config){var i,date,input=[],currentDate,yearToUse;if(config._d){return}currentDate=currentDateArray(config);if(config._w&&config._a[DATE]==null&&config._a[MONTH]==null){dayOfYearFromWeekInfo(config)}if(config._dayOfYear!=null){yearToUse=defaults(config._a[YEAR],currentDate[YEAR]);if(config._dayOfYear>daysInYear(yearToUse)||config._dayOfYear===0){getParsingFlags(config)._overflowDayOfYear=true}date=createUTCDate(yearToUse,0,config._dayOfYear);config._a[MONTH]=date.getUTCMonth();config._a[DATE]=date.getUTCDate()}for(i=0;i<3&&config._a[i]==null;++i){config._a[i]=input[i]=currentDate[i]}for(;i<7;i++){config._a[i]=input[i]=config._a[i]==null?i===2?1:0:config._a[i]}if(config._a[HOUR]===24&&config._a[MINUTE]===0&&config._a[SECOND]===0&&config._a[MILLISECOND]===0){config._nextDay=true;config._a[HOUR]=0}config._d=(config._useUTC?createUTCDate:createDate).apply(null,input);if(config._tzm!=null){config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm)}if(config._nextDay){config._a[HOUR]=24}if(config._w&&typeof config._w.d!==\"undefined\"&&config._w.d!==config._d.getDay()){getParsingFlags(config).weekdayMismatch=true}}function dayOfYearFromWeekInfo(config){var w,weekYear,week,weekday,dow,doy,temp,weekdayOverflow;w=config._w;if(w.GG!=null||w.W!=null||w.E!=null){dow=1;doy=4;weekYear=defaults(w.GG,config._a[YEAR],weekOfYear(createLocal(),1,4).year);week=defaults(w.W,1);weekday=defaults(w.E,1);if(weekday<1||weekday>7){weekdayOverflow=true}}else{dow=config._locale._week.dow;doy=config._locale._week.doy;var curWeek=weekOfYear(createLocal(),dow,doy);weekYear=defaults(w.gg,config._a[YEAR],curWeek.year);week=defaults(w.w,curWeek.week);if(w.d!=null){weekday=w.d;if(weekday<0||weekday>6){weekdayOverflow=true}}else if(w.e!=null){weekday=w.e+dow;if(w.e<0||w.e>6){weekdayOverflow=true}}else{weekday=dow}}if(week<1||week>weeksInYear(weekYear,dow,doy)){getParsingFlags(config)._overflowWeeks=true}else if(weekdayOverflow!=null){getParsingFlags(config)._overflowWeekday=true}else{temp=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy);config._a[YEAR]=temp.year;config._dayOfYear=temp.dayOfYear}}var extendedIsoRegex=/^\\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)?)?$/;var basicIsoRegex=/^\\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)?)?$/;var tzRegex=/Z|[+-]\\d\\d(?::?\\d\\d)?/;var isoDates=[[\"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/,false],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,false],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,false],[\"YYYYDDD\",/\\d{7}/]];var isoTimes=[[\"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/]];var aspNetJsonRegex=/^\\/?Date\\((\\-?\\d+)/i;function configFromISO(config){var i,l,string=config._i,match=extendedIsoRegex.exec(string)||basicIsoRegex.exec(string),allowTime,dateFormat,timeFormat,tzFormat;if(match){getParsingFlags(config).iso=true;for(i=0,l=isoDates.length;i<l;i++){if(isoDates[i][1].exec(match[1])){dateFormat=isoDates[i][0];allowTime=isoDates[i][2]!==false;break}}if(dateFormat==null){config._isValid=false;return}if(match[3]){for(i=0,l=isoTimes.length;i<l;i++){if(isoTimes[i][1].exec(match[3])){timeFormat=(match[2]||\" \")+isoTimes[i][0];break}}if(timeFormat==null){config._isValid=false;return}}if(!allowTime&&timeFormat!=null){config._isValid=false;return}if(match[4]){if(tzRegex.exec(match[4])){tzFormat=\"Z\"}else{config._isValid=false;return}}config._f=dateFormat+(timeFormat||\"\")+(tzFormat||\"\");configFromStringAndFormat(config)}else{config._isValid=false}}var rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;function extractFromRFC2822Strings(yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr){var result=[untruncateYear(yearStr),defaultLocaleMonthsShort.indexOf(monthStr),parseInt(dayStr,10),parseInt(hourStr,10),parseInt(minuteStr,10)];if(secondStr){result.push(parseInt(secondStr,10))}return result}function untruncateYear(yearStr){var year=parseInt(yearStr,10);if(year<=49){return 2e3+year}else if(year<=999){return 1900+year}return year}function preprocessRFC2822(s){return s.replace(/\\([^)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").trim()}function checkWeekday(weekdayStr,parsedInput,config){if(weekdayStr){var weekdayProvided=defaultLocaleWeekdaysShort.indexOf(weekdayStr),weekdayActual=new Date(parsedInput[0],parsedInput[1],parsedInput[2]).getDay();if(weekdayProvided!==weekdayActual){getParsingFlags(config).weekdayMismatch=true;config._isValid=false;return false}}return true}var obsOffsets={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function calculateOffset(obsOffset,militaryOffset,numOffset){if(obsOffset){return obsOffsets[obsOffset]}else if(militaryOffset){return 0}else{var hm=parseInt(numOffset,10);var m=hm%100,h=(hm-m)/100;return h*60+m}}function configFromRFC2822(config){var match=rfc2822.exec(preprocessRFC2822(config._i));if(match){var parsedArray=extractFromRFC2822Strings(match[4],match[3],match[2],match[5],match[6],match[7]);if(!checkWeekday(match[1],parsedArray,config)){return}config._a=parsedArray;config._tzm=calculateOffset(match[8],match[9],match[10]);config._d=createUTCDate.apply(null,config._a);config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm);getParsingFlags(config).rfc2822=true}else{config._isValid=false}}function configFromString(config){var matched=aspNetJsonRegex.exec(config._i);if(matched!==null){config._d=new Date(+matched[1]);return}configFromISO(config);if(config._isValid===false){delete config._isValid}else{return}configFromRFC2822(config);if(config._isValid===false){delete config._isValid}else{return}hooks.createFromInputFallback(config)}hooks.createFromInputFallback=deprecate(\"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(config){config._d=new Date(config._i+(config._useUTC?\" UTC\":\"\"))});hooks.ISO_8601=function(){};hooks.RFC_2822=function(){};function configFromStringAndFormat(config){if(config._f===hooks.ISO_8601){configFromISO(config);return}if(config._f===hooks.RFC_2822){configFromRFC2822(config);return}config._a=[];getParsingFlags(config).empty=true\n;var string=\"\"+config._i,i,parsedInput,tokens,token,skipped,stringLength=string.length,totalParsedInputLength=0;tokens=expandFormat(config._f,config._locale).match(formattingTokens)||[];for(i=0;i<tokens.length;i++){token=tokens[i];parsedInput=(string.match(getParseRegexForToken(token,config))||[])[0];if(parsedInput){skipped=string.substr(0,string.indexOf(parsedInput));if(skipped.length>0){getParsingFlags(config).unusedInput.push(skipped)}string=string.slice(string.indexOf(parsedInput)+parsedInput.length);totalParsedInputLength+=parsedInput.length}if(formatTokenFunctions[token]){if(parsedInput){getParsingFlags(config).empty=false}else{getParsingFlags(config).unusedTokens.push(token)}addTimeToArrayFromToken(token,parsedInput,config)}else if(config._strict&&!parsedInput){getParsingFlags(config).unusedTokens.push(token)}}getParsingFlags(config).charsLeftOver=stringLength-totalParsedInputLength;if(string.length>0){getParsingFlags(config).unusedInput.push(string)}if(config._a[HOUR]<=12&&getParsingFlags(config).bigHour===true&&config._a[HOUR]>0){getParsingFlags(config).bigHour=undefined}getParsingFlags(config).parsedDateParts=config._a.slice(0);getParsingFlags(config).meridiem=config._meridiem;config._a[HOUR]=meridiemFixWrap(config._locale,config._a[HOUR],config._meridiem);configFromArray(config);checkOverflow(config)}function meridiemFixWrap(locale,hour,meridiem){var isPm;if(meridiem==null){return hour}if(locale.meridiemHour!=null){return locale.meridiemHour(hour,meridiem)}else if(locale.isPM!=null){isPm=locale.isPM(meridiem);if(isPm&&hour<12){hour+=12}if(!isPm&&hour===12){hour=0}return hour}else{return hour}}function configFromStringAndArray(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore;if(config._f.length===0){getParsingFlags(config).invalidFormat=true;config._d=new Date(NaN);return}for(i=0;i<config._f.length;i++){currentScore=0;tempConfig=copyConfig({},config);if(config._useUTC!=null){tempConfig._useUTC=config._useUTC}tempConfig._f=config._f[i];configFromStringAndFormat(tempConfig);if(!isValid(tempConfig)){continue}currentScore+=getParsingFlags(tempConfig).charsLeftOver;currentScore+=getParsingFlags(tempConfig).unusedTokens.length*10;getParsingFlags(tempConfig).score=currentScore;if(scoreToBeat==null||currentScore<scoreToBeat){scoreToBeat=currentScore;bestMoment=tempConfig}}extend(config,bestMoment||tempConfig)}function configFromObject(config){if(config._d){return}var i=normalizeObjectUnits(config._i);config._a=map([i.year,i.month,i.day||i.date,i.hour,i.minute,i.second,i.millisecond],function(obj){return obj&&parseInt(obj,10)});configFromArray(config)}function createFromConfig(config){var res=new Moment(checkOverflow(prepareConfig(config)));if(res._nextDay){res.add(1,\"d\");res._nextDay=undefined}return res}function prepareConfig(config){var input=config._i,format=config._f;config._locale=config._locale||getLocale(config._l);if(input===null||format===undefined&&input===\"\"){return createInvalid({nullInput:true})}if(typeof input===\"string\"){config._i=input=config._locale.preparse(input)}if(isMoment(input)){return new Moment(checkOverflow(input))}else if(isDate(input)){config._d=input}else if(isArray(format)){configFromStringAndArray(config)}else if(format){configFromStringAndFormat(config)}else{configFromInput(config)}if(!isValid(config)){config._d=null}return config}function configFromInput(config){var input=config._i;if(isUndefined(input)){config._d=new Date(hooks.now())}else if(isDate(input)){config._d=new Date(input.valueOf())}else if(typeof input===\"string\"){configFromString(config)}else if(isArray(input)){config._a=map(input.slice(0),function(obj){return parseInt(obj,10)});configFromArray(config)}else if(isObject(input)){configFromObject(config)}else if(isNumber(input)){config._d=new Date(input)}else{hooks.createFromInputFallback(config)}}function createLocalOrUTC(input,format,locale,strict,isUTC){var c={};if(locale===true||locale===false){strict=locale;locale=undefined}if(isObject(input)&&isObjectEmpty(input)||isArray(input)&&input.length===0){input=undefined}c._isAMomentObject=true;c._useUTC=c._isUTC=isUTC;c._l=locale;c._i=input;c._f=format;c._strict=strict;return createFromConfig(c)}function createLocal(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,false)}var prototypeMin=deprecate(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other<this?this:other}else{return createInvalid()}});var prototypeMax=deprecate(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other>this?this:other}else{return createInvalid()}});function pickBy(fn,moments){var res,i;if(moments.length===1&&isArray(moments[0])){moments=moments[0]}if(!moments.length){return createLocal()}res=moments[0];for(i=1;i<moments.length;++i){if(!moments[i].isValid()||moments[i][fn](res)){res=moments[i]}}return res}function min(){var args=[].slice.call(arguments,0);return pickBy(\"isBefore\",args)}function max(){var args=[].slice.call(arguments,0);return pickBy(\"isAfter\",args)}var now=function(){return Date.now?Date.now():+new Date};var ordering=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];function isDurationValid(m){for(var key in m){if(!(indexOf.call(ordering,key)!==-1&&(m[key]==null||!isNaN(m[key])))){return false}}var unitHasDecimal=false;for(var i=0;i<ordering.length;++i){if(m[ordering[i]]){if(unitHasDecimal){return false}if(parseFloat(m[ordering[i]])!==toInt(m[ordering[i]])){unitHasDecimal=true}}}return true}function isValid$1(){return this._isValid}function createInvalid$1(){return createDuration(NaN)}function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years=normalizedInput.year||0,quarters=normalizedInput.quarter||0,months=normalizedInput.month||0,weeks=normalizedInput.week||0,days=normalizedInput.day||0,hours=normalizedInput.hour||0,minutes=normalizedInput.minute||0,seconds=normalizedInput.second||0,milliseconds=normalizedInput.millisecond||0;this._isValid=isDurationValid(normalizedInput);this._milliseconds=+milliseconds+seconds*1e3+minutes*6e4+hours*1e3*60*60;this._days=+days+weeks*7;this._months=+months+quarters*3+years*12;this._data={};this._locale=getLocale();this._bubble()}function isDuration(obj){return obj instanceof Duration}function absRound(number){if(number<0){return Math.round(-1*number)*-1}else{return Math.round(number)}}function offset(token,separator){addFormatToken(token,0,0,function(){var offset=this.utcOffset();var sign=\"+\";if(offset<0){offset=-offset;sign=\"-\"}return sign+zeroFill(~~(offset/60),2)+separator+zeroFill(~~offset%60,2)})}offset(\"Z\",\":\");offset(\"ZZ\",\"\");addRegexToken(\"Z\",matchShortOffset);addRegexToken(\"ZZ\",matchShortOffset);addParseToken([\"Z\",\"ZZ\"],function(input,array,config){config._useUTC=true;config._tzm=offsetFromString(matchShortOffset,input)});var chunkOffset=/([\\+\\-]|\\d\\d)/gi;function offsetFromString(matcher,string){var matches=(string||\"\").match(matcher);if(matches===null){return null}var chunk=matches[matches.length-1]||[];var parts=(chunk+\"\").match(chunkOffset)||[\"-\",0,0];var minutes=+(parts[1]*60)+toInt(parts[2]);return minutes===0?0:parts[0]===\"+\"?minutes:-minutes}function cloneWithOffset(input,model){var res,diff;if(model._isUTC){res=model.clone();diff=(isMoment(input)||isDate(input)?input.valueOf():createLocal(input).valueOf())-res.valueOf();res._d.setTime(res._d.valueOf()+diff);hooks.updateOffset(res,false);return res}else{return createLocal(input).local()}}function getDateOffset(m){return-Math.round(m._d.getTimezoneOffset()/15)*15}hooks.updateOffset=function(){};function getSetOffset(input,keepLocalTime,keepMinutes){var offset=this._offset||0,localAdjust;if(!this.isValid()){return input!=null?this:NaN}if(input!=null){if(typeof input===\"string\"){input=offsetFromString(matchShortOffset,input);if(input===null){return this}}else if(Math.abs(input)<16&&!keepMinutes){input=input*60}if(!this._isUTC&&keepLocalTime){localAdjust=getDateOffset(this)}this._offset=input;this._isUTC=true;if(localAdjust!=null){this.add(localAdjust,\"m\")}if(offset!==input){if(!keepLocalTime||this._changeInProgress){addSubtract(this,createDuration(input-offset,\"m\"),1,false)}else if(!this._changeInProgress){this._changeInProgress=true;hooks.updateOffset(this,true);this._changeInProgress=null}}return this}else{return this._isUTC?offset:getDateOffset(this)}}function getSetZone(input,keepLocalTime){if(input!=null){if(typeof input!==\"string\"){input=-input}this.utcOffset(input,keepLocalTime);return this}else{return-this.utcOffset()}}function setOffsetToUTC(keepLocalTime){return this.utcOffset(0,keepLocalTime)}function setOffsetToLocal(keepLocalTime){if(this._isUTC){this.utcOffset(0,keepLocalTime);this._isUTC=false;if(keepLocalTime){this.subtract(getDateOffset(this),\"m\")}}return this}function setOffsetToParsedOffset(){if(this._tzm!=null){this.utcOffset(this._tzm,false,true)}else if(typeof this._i===\"string\"){var tZone=offsetFromString(matchOffset,this._i);if(tZone!=null){this.utcOffset(tZone)}else{this.utcOffset(0,true)}}return this}function hasAlignedHourOffset(input){if(!this.isValid()){return false}input=input?createLocal(input).utcOffset():0;return(this.utcOffset()-input)%60===0}function isDaylightSavingTime(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted)){return this._isDSTShifted}var c={};copyConfig(c,this);c=prepareConfig(c);if(c._a){var other=c._isUTC?createUTC(c._a):createLocal(c._a);this._isDSTShifted=this.isValid()&&compareArrays(c._a,other.toArray())>0}else{this._isDSTShifted=false}return this._isDSTShifted}function isLocal(){return this.isValid()?!this._isUTC:false}function isUtcOffset(){return this.isValid()?this._isUTC:false}function isUtc(){return this.isValid()?this._isUTC&&this._offset===0:false}var aspNetRegex=/^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;var isoRegex=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(input,key){var duration=input,match=null,sign,ret,diffRes;if(isDuration(input)){duration={ms:input._milliseconds,d:input._days,M:input._months}}else if(isNumber(input)){duration={};if(key){duration[key]=input}else{duration.milliseconds=input}}else if(!!(match=aspNetRegex.exec(input))){sign=match[1]===\"-\"?-1:1;duration={y:0,d:toInt(match[DATE])*sign,h:toInt(match[HOUR])*sign,m:toInt(match[MINUTE])*sign,s:toInt(match[SECOND])*sign,ms:toInt(absRound(match[MILLISECOND]*1e3))*sign}}else if(!!(match=isoRegex.exec(input))){sign=match[1]===\"-\"?-1:match[1]===\"+\"?1:1;duration={y:parseIso(match[2],sign),M:parseIso(match[3],sign),w:parseIso(match[4],sign),d:parseIso(match[5],sign),h:parseIso(match[6],sign),m:parseIso(match[7],sign),s:parseIso(match[8],sign)}}else if(duration==null){duration={}}else if(typeof duration===\"object\"&&(\"from\"in duration||\"to\"in duration)){diffRes=momentsDifference(createLocal(duration.from),createLocal(duration.to));duration={};duration.ms=diffRes.milliseconds;duration.M=diffRes.months}ret=new Duration(duration);if(isDuration(input)&&hasOwnProp(input,\"_locale\")){ret._locale=input._locale}return ret}createDuration.fn=Duration.prototype;createDuration.invalid=createInvalid$1;function parseIso(inp,sign){var res=inp&&parseFloat(inp.replace(\",\",\".\"));return(isNaN(res)?0:res)*sign}function positiveMomentsDifference(base,other){var res={milliseconds:0,months:0};res.months=other.month()-base.month()+(other.year()-base.year())*12;if(base.clone().add(res.months,\"M\").isAfter(other)){--res.months}res.milliseconds=+other-+base.clone().add(res.months,\"M\");return res}function momentsDifference(base,other){var res;if(!(base.isValid()&&other.isValid())){return{milliseconds:0,months:0}}other=cloneWithOffset(other,base);if(base.isBefore(other)){res=positiveMomentsDifference(base,other)}else{res=positiveMomentsDifference(other,base);res.milliseconds=-res.milliseconds;res.months=-res.months}return res}function createAdder(direction,name){return function(val,period){var dur,tmp;if(period!==null&&!isNaN(+period)){deprecateSimple(name,\"moment().\"+name+\"(period, number) is deprecated. Please use moment().\"+name+\"(number, period). \"+\"See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\");tmp=val;val=period;period=tmp}val=typeof val===\"string\"?+val:val;dur=createDuration(val,period);addSubtract(this,dur,direction);return this}}function addSubtract(mom,duration,isAdding,updateOffset){var milliseconds=duration._milliseconds,days=absRound(duration._days),months=absRound(duration._months);if(!mom.isValid()){return}updateOffset=updateOffset==null?true:updateOffset;if(months){setMonth(mom,get(mom,\"Month\")+months*isAdding)}if(days){set$1(mom,\"Date\",get(mom,\"Date\")+days*isAdding)}if(milliseconds){mom._d.setTime(mom._d.valueOf()+milliseconds*isAdding)}if(updateOffset){hooks.updateOffset(mom,days||months)}}var add=createAdder(1,\"add\");var subtract=createAdder(-1,\"subtract\");function getCalendarFormat(myMoment,now){var diff=myMoment.diff(now,\"days\",true);return diff<-6?\"sameElse\":diff<-1?\"lastWeek\":diff<0?\"lastDay\":diff<1?\"sameDay\":diff<2?\"nextDay\":diff<7?\"nextWeek\":\"sameElse\"}function calendar$1(time,formats){var now=time||createLocal(),sod=cloneWithOffset(now,this).startOf(\"day\"),format=hooks.calendarFormat(this,sod)||\"sameElse\";var output=formats&&(isFunction(formats[format])?formats[format].call(this,now):formats[format]);return this.format(output||this.localeData().calendar(format,this,createLocal(now)))}function clone(){return new Moment(this)}function isAfter(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(!isUndefined(units)?units:\"millisecond\");if(units===\"millisecond\"){return this.valueOf()>localInput.valueOf()}else{return localInput.valueOf()<this.clone().startOf(units).valueOf()}}function isBefore(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(!isUndefined(units)?units:\"millisecond\");if(units===\"millisecond\"){return this.valueOf()<localInput.valueOf()}else{return this.clone().endOf(units).valueOf()<localInput.valueOf()}}function isBetween(from,to,units,inclusivity){inclusivity=inclusivity||\"()\";return(inclusivity[0]===\"(\"?this.isAfter(from,units):!this.isBefore(from,units))&&(inclusivity[1]===\")\"?this.isBefore(to,units):!this.isAfter(to,units))}function isSame(input,units){var localInput=isMoment(input)?input:createLocal(input),inputMs;if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(units||\"millisecond\");if(units===\"millisecond\"){return this.valueOf()===localInput.valueOf()}else{inputMs=localInput.valueOf();return this.clone().startOf(units).valueOf()<=inputMs&&inputMs<=this.clone().endOf(units).valueOf()}}function isSameOrAfter(input,units){return this.isSame(input,units)||this.isAfter(input,units)}function isSameOrBefore(input,units){return this.isSame(input,units)||this.isBefore(input,units)}function diff(input,units,asFloat){var that,zoneDelta,delta,output;if(!this.isValid()){return NaN}that=cloneWithOffset(input,this);if(!that.isValid()){return NaN}zoneDelta=(that.utcOffset()-this.utcOffset())*6e4;units=normalizeUnits(units);switch(units){case\"year\":output=monthDiff(this,that)/12;break;case\"month\":output=monthDiff(this,that);break;case\"quarter\":output=monthDiff(this,that)/3;break;case\"second\":output=(this-that)/1e3;break;case\"minute\":output=(this-that)/6e4;break;case\"hour\":output=(this-that)/36e5;break;case\"day\":output=(this-that-zoneDelta)/864e5;break;case\"week\":output=(this-that-zoneDelta)/6048e5;break;default:output=this-that}return asFloat?output:absFloor(output)}function monthDiff(a,b){var wholeMonthDiff=(b.year()-a.year())*12+(b.month()-a.month()),anchor=a.clone().add(wholeMonthDiff,\"months\"),anchor2,adjust;if(b-anchor<0){anchor2=a.clone().add(wholeMonthDiff-1,\"months\");adjust=(b-anchor)/(anchor-anchor2)}else{anchor2=a.clone().add(wholeMonthDiff+1,\"months\");adjust=(b-anchor)/(anchor2-anchor)}return-(wholeMonthDiff+adjust)||0}hooks.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\";hooks.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";function toString(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")}function toISOString(){if(!this.isValid()){return null}var m=this.clone().utc();if(m.year()<0||m.year()>9999){return formatMoment(m,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}if(isFunction(Date.prototype.toISOString)){return this.toDate().toISOString()}return formatMoment(m,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function inspect(){if(!this.isValid()){return\"moment.invalid(/* \"+this._i+\" */)\"}var func=\"moment\";var zone=\"\";if(!this.isLocal()){func=this.utcOffset()===0?\"moment.utc\":\"moment.parseZone\";zone=\"Z\"}var prefix=\"[\"+func+'(\"]';var year=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\";var datetime=\"-MM-DD[T]HH:mm:ss.SSS\";var suffix=zone+'[\")]';return this.format(prefix+year+datetime+suffix)}function format(inputString){if(!inputString){inputString=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat}var output=formatMoment(this,inputString);return this.localeData().postformat(output)}function from(time,withoutSuffix){if(this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())){return createDuration({to:this,from:time}).locale(this.locale()).humanize(!withoutSuffix)}else{return this.localeData().invalidDate()}}function fromNow(withoutSuffix){return this.from(createLocal(),withoutSuffix)}function to(time,withoutSuffix){if(this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())){return createDuration({from:this,to:time}).locale(this.locale()).humanize(!withoutSuffix)}else{return this.localeData().invalidDate()}}function toNow(withoutSuffix){return this.to(createLocal(),withoutSuffix)}function locale(key){var newLocaleData;if(key===undefined){return this._locale._abbr}else{newLocaleData=getLocale(key);if(newLocaleData!=null){this._locale=newLocaleData}return this}}var lang=deprecate(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(key){if(key===undefined){return this.localeData()}else{return this.locale(key)}});function localeData(){return this._locale}function startOf(units){units=normalizeUnits(units);switch(units){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)}if(units===\"week\"){this.weekday(0)}if(units===\"isoWeek\"){this.isoWeekday(1)}if(units===\"quarter\"){this.month(Math.floor(this.month()/3)*3)}return this}function endOf(units){units=normalizeUnits(units);if(units===undefined||units===\"millisecond\"){return this}if(units===\"date\"){units=\"day\"}return this.startOf(units).add(1,units===\"isoWeek\"?\"week\":units).subtract(1,\"ms\")}function valueOf(){return this._d.valueOf()-(this._offset||0)*6e4}function unix(){return Math.floor(this.valueOf()/1e3)}function toDate(){return new Date(this.valueOf())}function toArray(){var m=this;return[m.year(),m.month(),m.date(),m.hour(),m.minute(),m.second(),m.millisecond()]}function toObject(){var m=this;return{years:m.year(),months:m.month(),date:m.date(),hours:m.hours(),minutes:m.minutes(),seconds:m.seconds(),milliseconds:m.milliseconds()}}function toJSON(){return this.isValid()?this.toISOString():null}function isValid$2(){return isValid(this)}function parsingFlags(){return extend({},getParsingFlags(this))}function invalidAt(){return getParsingFlags(this).overflow}function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}addFormatToken(0,[\"gg\",2],0,function(){return this.weekYear()%100});addFormatToken(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100});function addWeekYearFormatToken(token,getter){addFormatToken(0,[token,token.length],0,getter)}addWeekYearFormatToken(\"gggg\",\"weekYear\");addWeekYearFormatToken(\"ggggg\",\"weekYear\");addWeekYearFormatToken(\"GGGG\",\"isoWeekYear\");addWeekYearFormatToken(\"GGGGG\",\"isoWeekYear\");addUnitAlias(\"weekYear\",\"gg\");addUnitAlias(\"isoWeekYear\",\"GG\");addUnitPriority(\"weekYear\",1);addUnitPriority(\"isoWeekYear\",1);addRegexToken(\"G\",matchSigned);addRegexToken(\"g\",matchSigned);addRegexToken(\"GG\",match1to2,match2);addRegexToken(\"gg\",match1to2,match2);addRegexToken(\"GGGG\",match1to4,match4);addRegexToken(\"gggg\",match1to4,match4);addRegexToken(\"GGGGG\",match1to6,match6);addRegexToken(\"ggggg\",match1to6,match6);addWeekParseToken([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(input,week,config,token){week[token.substr(0,2)]=toInt(input)});addWeekParseToken([\"gg\",\"GG\"],function(input,week,config,token){week[token]=hooks.parseTwoDigitYear(input)});function getSetWeekYear(input){return getSetWeekYearHelper.call(this,input,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function getSetISOWeekYear(input){return getSetWeekYearHelper.call(this,input,this.isoWeek(),this.isoWeekday(),1,4)}function getISOWeeksInYear(){return weeksInYear(this.year(),1,4)}function getWeeksInYear(){var weekInfo=this.localeData()._week;return weeksInYear(this.year(),weekInfo.dow,weekInfo.doy)}function getSetWeekYearHelper(input,week,weekday,dow,doy){var weeksTarget;if(input==null){return weekOfYear(this,dow,doy).year}else{weeksTarget=weeksInYear(input,dow,doy);if(week>weeksTarget){week=weeksTarget}return setWeekAll.call(this,input,week,weekday,dow,doy)}}function setWeekAll(weekYear,week,weekday,dow,doy){var dayOfYearData=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy),date=createUTCDate(dayOfYearData.year,0,dayOfYearData.dayOfYear);this.year(date.getUTCFullYear());this.month(date.getUTCMonth());this.date(date.getUTCDate());return this}addFormatToken(\"Q\",0,\"Qo\",\"quarter\");addUnitAlias(\"quarter\",\"Q\");addUnitPriority(\"quarter\",7);addRegexToken(\"Q\",match1);addParseToken(\"Q\",function(input,array){array[MONTH]=(toInt(input)-1)*3});function getSetQuarter(input){return input==null?Math.ceil((this.month()+1)/3):this.month((input-1)*3+this.month()%3)}addFormatToken(\"D\",[\"DD\",2],\"Do\",\"date\");addUnitAlias(\"date\",\"D\");addUnitPriority(\"date\",9);addRegexToken(\"D\",match1to2);addRegexToken(\"DD\",match1to2,match2);addRegexToken(\"Do\",function(isStrict,locale){return isStrict?locale._dayOfMonthOrdinalParse||locale._ordinalParse:locale._dayOfMonthOrdinalParseLenient});addParseToken([\"D\",\"DD\"],DATE);addParseToken(\"Do\",function(input,array){array[DATE]=toInt(input.match(match1to2)[0],10)});var getSetDayOfMonth=makeGetSet(\"Date\",true);addFormatToken(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\");addUnitAlias(\"dayOfYear\",\"DDD\");addUnitPriority(\"dayOfYear\",4);addRegexToken(\"DDD\",match1to3);addRegexToken(\"DDDD\",match3);addParseToken([\"DDD\",\"DDDD\"],function(input,array,config){config._dayOfYear=toInt(input)});function getSetDayOfYear(input){var dayOfYear=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return input==null?dayOfYear:this.add(input-dayOfYear,\"d\")}addFormatToken(\"m\",[\"mm\",2],0,\"minute\");addUnitAlias(\"minute\",\"m\");addUnitPriority(\"minute\",14);addRegexToken(\"m\",match1to2);addRegexToken(\"mm\",match1to2,match2);addParseToken([\"m\",\"mm\"],MINUTE);var getSetMinute=makeGetSet(\"Minutes\",false);addFormatToken(\"s\",[\"ss\",2],0,\"second\");addUnitAlias(\"second\",\"s\");addUnitPriority(\"second\",15);addRegexToken(\"s\",match1to2);addRegexToken(\"ss\",match1to2,match2);addParseToken([\"s\",\"ss\"],SECOND);var getSetSecond=makeGetSet(\"Seconds\",false);addFormatToken(\"S\",0,0,function(){return~~(this.millisecond()/100)});addFormatToken(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)});addFormatToken(0,[\"SSS\",3],0,\"millisecond\");addFormatToken(0,[\"SSSS\",4],0,function(){return this.millisecond()*10});addFormatToken(0,[\"SSSSS\",5],0,function(){return this.millisecond()*100});addFormatToken(0,[\"SSSSSS\",6],0,function(){return this.millisecond()*1e3});addFormatToken(0,[\"SSSSSSS\",7],0,function(){return this.millisecond()*1e4});addFormatToken(0,[\"SSSSSSSS\",8],0,function(){return this.millisecond()*1e5});addFormatToken(0,[\"SSSSSSSSS\",9],0,function(){return this.millisecond()*1e6});addUnitAlias(\"millisecond\",\"ms\");addUnitPriority(\"millisecond\",16);addRegexToken(\"S\",match1to3,match1);addRegexToken(\"SS\",match1to3,match2);addRegexToken(\"SSS\",match1to3,match3);var token;for(token=\"SSSS\";token.length<=9;token+=\"S\"){addRegexToken(token,matchUnsigned)}function parseMs(input,array){array[MILLISECOND]=toInt((\"0.\"+input)*1e3)}for(token=\"S\";token.length<=9;token+=\"S\"){addParseToken(token,parseMs)}var getSetMillisecond=makeGetSet(\"Milliseconds\",false);addFormatToken(\"z\",0,0,\"zoneAbbr\");addFormatToken(\"zz\",0,0,\"zoneName\");function getZoneAbbr(){return this._isUTC?\"UTC\":\"\"}function getZoneName(){return this._isUTC?\"Coordinated Universal Time\":\"\"}var proto=Moment.prototype;proto.add=add;proto.calendar=calendar$1;proto.clone=clone;proto.diff=diff;proto.endOf=endOf;proto.format=format;proto.from=from;proto.fromNow=fromNow;proto.to=to;proto.toNow=toNow;proto.get=stringGet;proto.invalidAt=invalidAt;proto.isAfter=isAfter;proto.isBefore=isBefore;proto.isBetween=isBetween;proto.isSame=isSame;proto.isSameOrAfter=isSameOrAfter;proto.isSameOrBefore=isSameOrBefore;proto.isValid=isValid$2;proto.lang=lang;proto.locale=locale;proto.localeData=localeData;proto.max=prototypeMax;proto.min=prototypeMin;proto.parsingFlags=parsingFlags;proto.set=stringSet;proto.startOf=startOf;proto.subtract=subtract;proto.toArray=toArray;proto.toObject=toObject;proto.toDate=toDate;proto.toISOString=toISOString;proto.inspect=inspect;proto.toJSON=toJSON;proto.toString=toString;proto.unix=unix;proto.valueOf=valueOf;proto.creationData=creationData;proto.year=getSetYear;proto.isLeapYear=getIsLeapYear;proto.weekYear=getSetWeekYear;proto.isoWeekYear=getSetISOWeekYear;proto.quarter=proto.quarters=getSetQuarter;proto.month=getSetMonth;proto.daysInMonth=getDaysInMonth;proto.week=proto.weeks=getSetWeek;proto.isoWeek=proto.isoWeeks=getSetISOWeek;proto.weeksInYear=getWeeksInYear;proto.isoWeeksInYear=getISOWeeksInYear;proto.date=getSetDayOfMonth;proto.day=proto.days=getSetDayOfWeek;proto.weekday=getSetLocaleDayOfWeek;proto.isoWeekday=getSetISODayOfWeek;proto.dayOfYear=getSetDayOfYear;proto.hour=proto.hours=getSetHour;proto.minute=proto.minutes=getSetMinute;proto.second=proto.seconds=getSetSecond;proto.millisecond=proto.milliseconds=getSetMillisecond;proto.utcOffset=getSetOffset;proto.utc=setOffsetToUTC;proto.local=setOffsetToLocal;proto.parseZone=setOffsetToParsedOffset;proto.hasAlignedHourOffset=hasAlignedHourOffset;proto.isDST=isDaylightSavingTime;proto.isLocal=isLocal;proto.isUtcOffset=isUtcOffset;proto.isUtc=isUtc;proto.isUTC=isUtc;proto.zoneAbbr=getZoneAbbr;proto.zoneName=getZoneName;proto.dates=deprecate(\"dates accessor is deprecated. Use date instead.\",getSetDayOfMonth);proto.months=deprecate(\"months accessor is deprecated. Use month instead\",getSetMonth);proto.years=deprecate(\"years accessor is deprecated. Use year instead\",getSetYear);proto.zone=deprecate(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",getSetZone);proto.isDSTShifted=deprecate(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",isDaylightSavingTimeShifted);function createUnix(input){return createLocal(input*1e3)}function createInZone(){return createLocal.apply(null,arguments).parseZone()}function preParsePostFormat(string){return string}var proto$1=Locale.prototype;proto$1.calendar=calendar;proto$1.longDateFormat=longDateFormat;proto$1.invalidDate=invalidDate;proto$1.ordinal=ordinal;proto$1.preparse=preParsePostFormat;proto$1.postformat=preParsePostFormat;proto$1.relativeTime=relativeTime;proto$1.pastFuture=pastFuture;proto$1.set=set;proto$1.months=localeMonths;proto$1.monthsShort=localeMonthsShort;proto$1.monthsParse=localeMonthsParse;proto$1.monthsRegex=monthsRegex;proto$1.monthsShortRegex=monthsShortRegex;proto$1.week=localeWeek;proto$1.firstDayOfYear=localeFirstDayOfYear;proto$1.firstDayOfWeek=localeFirstDayOfWeek;proto$1.weekdays=localeWeekdays;proto$1.weekdaysMin=localeWeekdaysMin;proto$1.weekdaysShort=localeWeekdaysShort;proto$1.weekdaysParse=localeWeekdaysParse;proto$1.weekdaysRegex=weekdaysRegex;proto$1.weekdaysShortRegex=weekdaysShortRegex;proto$1.weekdaysMinRegex=weekdaysMinRegex;proto$1.isPM=localeIsPM;proto$1.meridiem=localeMeridiem;function get$1(format,index,field,setter){var locale=getLocale();var utc=createUTC().set(setter,index);return locale[field](utc,format)}function listMonthsImpl(format,index,field){if(isNumber(format)){index=format;format=undefined}format=format||\"\";if(index!=null){return get$1(format,index,field,\"month\")}var i;var out=[];for(i=0;i<12;i++){out[i]=get$1(format,i,field,\"month\")}return out}function listWeekdaysImpl(localeSorted,format,index,field){if(typeof localeSorted===\"boolean\"){if(isNumber(format)){index=format;format=undefined}format=format||\"\"}else{format=localeSorted;index=format;localeSorted=false;if(isNumber(format)){index=format;format=undefined}format=format||\"\"}var locale=getLocale(),shift=localeSorted?locale._week.dow:0;if(index!=null){return get$1(format,(index+shift)%7,field,\"day\")}var i;var out=[];for(i=0;i<7;i++){out[i]=get$1(format,(i+shift)%7,field,\"day\")}return out}function listMonths(format,index){return listMonthsImpl(format,index,\"months\")}function listMonthsShort(format,index){return listMonthsImpl(format,index,\"monthsShort\")}function listWeekdays(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdays\")}function listWeekdaysShort(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdaysShort\")}function listWeekdaysMin(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdaysMin\")}getSetGlobalLocale(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(number){var b=number%10,output=toInt(number%100/10)===1?\"th\":b===1?\"st\":b===2?\"nd\":b===3?\"rd\":\"th\";return number+output}});hooks.lang=deprecate(\"moment.lang is deprecated. Use moment.locale instead.\",getSetGlobalLocale);hooks.langData=deprecate(\"moment.langData is deprecated. Use moment.localeData instead.\",getLocale);var mathAbs=Math.abs;function abs(){var data=this._data;this._milliseconds=mathAbs(this._milliseconds);this._days=mathAbs(this._days);this._months=mathAbs(this._months);data.milliseconds=mathAbs(data.milliseconds);data.seconds=mathAbs(data.seconds);data.minutes=mathAbs(data.minutes);data.hours=mathAbs(data.hours);data.months=mathAbs(data.months);data.years=mathAbs(data.years);return this}function addSubtract$1(duration,input,value,direction){var other=createDuration(input,value);duration._milliseconds+=direction*other._milliseconds;duration._days+=direction*other._days;duration._months+=direction*other._months;return duration._bubble()}function add$1(input,value){return addSubtract$1(this,input,value,1)}function subtract$1(input,value){return addSubtract$1(this,input,value,-1)}function absCeil(number){if(number<0){return Math.floor(number)}else{return Math.ceil(number)}}function bubble(){var milliseconds=this._milliseconds;var days=this._days;var months=this._months;var data=this._data;var seconds,minutes,hours,years,monthsFromDays;if(!(milliseconds>=0&&days>=0&&months>=0||milliseconds<=0&&days<=0&&months<=0)){milliseconds+=absCeil(monthsToDays(months)+days)*864e5;days=0;months=0}data.milliseconds=milliseconds%1e3;seconds=absFloor(milliseconds/1e3);data.seconds=seconds%60;minutes=absFloor(seconds/60)\n;data.minutes=minutes%60;hours=absFloor(minutes/60);data.hours=hours%24;days+=absFloor(hours/24);monthsFromDays=absFloor(daysToMonths(days));months+=monthsFromDays;days-=absCeil(monthsToDays(monthsFromDays));years=absFloor(months/12);months%=12;data.days=days;data.months=months;data.years=years;return this}function daysToMonths(days){return days*4800/146097}function monthsToDays(months){return months*146097/4800}function as(units){if(!this.isValid()){return NaN}var days;var months;var milliseconds=this._milliseconds;units=normalizeUnits(units);if(units===\"month\"||units===\"year\"){days=this._days+milliseconds/864e5;months=this._months+daysToMonths(days);return units===\"month\"?months:months/12}else{days=this._days+Math.round(monthsToDays(this._months));switch(units){case\"week\":return days/7+milliseconds/6048e5;case\"day\":return days+milliseconds/864e5;case\"hour\":return days*24+milliseconds/36e5;case\"minute\":return days*1440+milliseconds/6e4;case\"second\":return days*86400+milliseconds/1e3;case\"millisecond\":return Math.floor(days*864e5)+milliseconds;default:throw new Error(\"Unknown unit \"+units)}}}function valueOf$1(){if(!this.isValid()){return NaN}return this._milliseconds+this._days*864e5+this._months%12*2592e6+toInt(this._months/12)*31536e6}function makeAs(alias){return function(){return this.as(alias)}}var asMilliseconds=makeAs(\"ms\");var asSeconds=makeAs(\"s\");var asMinutes=makeAs(\"m\");var asHours=makeAs(\"h\");var asDays=makeAs(\"d\");var asWeeks=makeAs(\"w\");var asMonths=makeAs(\"M\");var asYears=makeAs(\"y\");function clone$1(){return createDuration(this)}function get$2(units){units=normalizeUnits(units);return this.isValid()?this[units+\"s\"]():NaN}function makeGetter(name){return function(){return this.isValid()?this._data[name]:NaN}}var milliseconds=makeGetter(\"milliseconds\");var seconds=makeGetter(\"seconds\");var minutes=makeGetter(\"minutes\");var hours=makeGetter(\"hours\");var days=makeGetter(\"days\");var months=makeGetter(\"months\");var years=makeGetter(\"years\");function weeks(){return absFloor(this.days()/7)}var round=Math.round;var thresholds={ss:44,s:45,m:45,h:22,d:26,M:11};function substituteTimeAgo(string,number,withoutSuffix,isFuture,locale){return locale.relativeTime(number||1,!!withoutSuffix,string,isFuture)}function relativeTime$1(posNegDuration,withoutSuffix,locale){var duration=createDuration(posNegDuration).abs();var seconds=round(duration.as(\"s\"));var minutes=round(duration.as(\"m\"));var hours=round(duration.as(\"h\"));var days=round(duration.as(\"d\"));var months=round(duration.as(\"M\"));var years=round(duration.as(\"y\"));var a=seconds<=thresholds.ss&&[\"s\",seconds]||seconds<thresholds.s&&[\"ss\",seconds]||minutes<=1&&[\"m\"]||minutes<thresholds.m&&[\"mm\",minutes]||hours<=1&&[\"h\"]||hours<thresholds.h&&[\"hh\",hours]||days<=1&&[\"d\"]||days<thresholds.d&&[\"dd\",days]||months<=1&&[\"M\"]||months<thresholds.M&&[\"MM\",months]||years<=1&&[\"y\"]||[\"yy\",years];a[2]=withoutSuffix;a[3]=+posNegDuration>0;a[4]=locale;return substituteTimeAgo.apply(null,a)}function getSetRelativeTimeRounding(roundingFunction){if(roundingFunction===undefined){return round}if(typeof roundingFunction===\"function\"){round=roundingFunction;return true}return false}function getSetRelativeTimeThreshold(threshold,limit){if(thresholds[threshold]===undefined){return false}if(limit===undefined){return thresholds[threshold]}thresholds[threshold]=limit;if(threshold===\"s\"){thresholds.ss=limit-1}return true}function humanize(withSuffix){if(!this.isValid()){return this.localeData().invalidDate()}var locale=this.localeData();var output=relativeTime$1(this,!withSuffix,locale);if(withSuffix){output=locale.pastFuture(+this,output)}return locale.postformat(output)}var abs$1=Math.abs;function sign(x){return(x>0)-(x<0)||+x}function toISOString$1(){if(!this.isValid()){return this.localeData().invalidDate()}var seconds=abs$1(this._milliseconds)/1e3;var days=abs$1(this._days);var months=abs$1(this._months);var minutes,hours,years;minutes=absFloor(seconds/60);hours=absFloor(minutes/60);seconds%=60;minutes%=60;years=absFloor(months/12);months%=12;var Y=years;var M=months;var D=days;var h=hours;var m=minutes;var s=seconds?seconds.toFixed(3).replace(/\\.?0+$/,\"\"):\"\";var total=this.asSeconds();if(!total){return\"P0D\"}var totalSign=total<0?\"-\":\"\";var ymSign=sign(this._months)!==sign(total)?\"-\":\"\";var daysSign=sign(this._days)!==sign(total)?\"-\":\"\";var hmsSign=sign(this._milliseconds)!==sign(total)?\"-\":\"\";return totalSign+\"P\"+(Y?ymSign+Y+\"Y\":\"\")+(M?ymSign+M+\"M\":\"\")+(D?daysSign+D+\"D\":\"\")+(h||m||s?\"T\":\"\")+(h?hmsSign+h+\"H\":\"\")+(m?hmsSign+m+\"M\":\"\")+(s?hmsSign+s+\"S\":\"\")}var proto$2=Duration.prototype;proto$2.isValid=isValid$1;proto$2.abs=abs;proto$2.add=add$1;proto$2.subtract=subtract$1;proto$2.as=as;proto$2.asMilliseconds=asMilliseconds;proto$2.asSeconds=asSeconds;proto$2.asMinutes=asMinutes;proto$2.asHours=asHours;proto$2.asDays=asDays;proto$2.asWeeks=asWeeks;proto$2.asMonths=asMonths;proto$2.asYears=asYears;proto$2.valueOf=valueOf$1;proto$2._bubble=bubble;proto$2.clone=clone$1;proto$2.get=get$2;proto$2.milliseconds=milliseconds;proto$2.seconds=seconds;proto$2.minutes=minutes;proto$2.hours=hours;proto$2.days=days;proto$2.weeks=weeks;proto$2.months=months;proto$2.years=years;proto$2.humanize=humanize;proto$2.toISOString=toISOString$1;proto$2.toString=toISOString$1;proto$2.toJSON=toISOString$1;proto$2.locale=locale;proto$2.localeData=localeData;proto$2.toIsoString=deprecate(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",toISOString$1);proto$2.lang=lang;addFormatToken(\"X\",0,0,\"unix\");addFormatToken(\"x\",0,0,\"valueOf\");addRegexToken(\"x\",matchSigned);addRegexToken(\"X\",matchTimestamp);addParseToken(\"X\",function(input,array,config){config._d=new Date(parseFloat(input,10)*1e3)});addParseToken(\"x\",function(input,array,config){config._d=new Date(toInt(input))});hooks.version=\"2.19.1\";setHookCallback(createLocal);hooks.fn=proto;hooks.min=min;hooks.max=max;hooks.now=now;hooks.utc=createUTC;hooks.unix=createUnix;hooks.months=listMonths;hooks.isDate=isDate;hooks.locale=getSetGlobalLocale;hooks.invalid=createInvalid;hooks.duration=createDuration;hooks.isMoment=isMoment;hooks.weekdays=listWeekdays;hooks.parseZone=createInZone;hooks.localeData=getLocale;hooks.isDuration=isDuration;hooks.monthsShort=listMonthsShort;hooks.weekdaysMin=listWeekdaysMin;hooks.defineLocale=defineLocale;hooks.updateLocale=updateLocale;hooks.locales=listLocales;hooks.weekdaysShort=listWeekdaysShort;hooks.normalizeUnits=normalizeUnits;hooks.relativeTimeRounding=getSetRelativeTimeRounding;hooks.relativeTimeThreshold=getSetRelativeTimeThreshold;hooks.calendarFormat=getCalendarFormat;hooks.prototype=proto;return hooks})}).call(exports,__webpack_require__(155)(module))},function(module,exports){module.exports=function(module){if(!module.webpackPolyfill){module.deprecate=function(){};module.paths=[];if(!module.children)module.children=[];Object.defineProperty(module,\"loaded\",{enumerable:true,get:function(){return module.l}});Object.defineProperty(module,\"id\",{enumerable:true,get:function(){return module.i}});module.webpackPolyfill=1}return module}},function(module,exports){function webpackEmptyContext(req){throw new Error(\"Cannot find module '\"+req+\"'.\")}webpackEmptyContext.keys=function(){return[]};webpackEmptyContext.resolve=webpackEmptyContext;module.exports=webpackEmptyContext;webpackEmptyContext.id=156},function(module,exports,__webpack_require__){\"use strict\";(function(global){var _rng;var globalVar=typeof window!==\"undefined\"?window:typeof global!==\"undefined\"?global:null;if(globalVar&&globalVar.crypto&&crypto.getRandomValues){var _rnds8=new Uint8Array(16);_rng=function whatwgRNG(){crypto.getRandomValues(_rnds8);return _rnds8}}if(!_rng){var _rnds=new Array(16);_rng=function _rng(){for(var i=0,r;i<16;i++){if((i&3)===0)r=Math.random()*4294967296;_rnds[i]=r>>>((i&3)<<3)&255}return _rnds}}var _byteToHex=[];var _hexToByte={};for(var i=0;i<256;i++){_byteToHex[i]=(i+256).toString(16).substr(1);_hexToByte[_byteToHex[i]]=i}function parse(s,buf,offset){var i=buf&&offset||0,ii=0;buf=buf||[];s.toLowerCase().replace(/[0-9a-f]{2}/g,function(oct){if(ii<16){buf[i+ii++]=_hexToByte[oct]}});while(ii<16){buf[i+ii++]=0}return buf}function unparse(buf,offset){var i=offset||0,bth=_byteToHex;return bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]}var _seedBytes=_rng();var _nodeId=[_seedBytes[0]|1,_seedBytes[1],_seedBytes[2],_seedBytes[3],_seedBytes[4],_seedBytes[5]];var _clockseq=(_seedBytes[6]<<8|_seedBytes[7])&16383;var _lastMSecs=0,_lastNSecs=0;function v1(options,buf,offset){var i=buf&&offset||0;var b=buf||[];options=options||{};var clockseq=options.clockseq!==undefined?options.clockseq:_clockseq;var msecs=options.msecs!==undefined?options.msecs:(new Date).getTime();var nsecs=options.nsecs!==undefined?options.nsecs:_lastNSecs+1;var dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(dt<0&&options.clockseq===undefined){clockseq=clockseq+1&16383}if((dt<0||msecs>_lastMSecs)&&options.nsecs===undefined){nsecs=0}if(nsecs>=1e4){throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\")}_lastMSecs=msecs;_lastNSecs=nsecs;_clockseq=clockseq;msecs+=122192928e5;var tl=((msecs&268435455)*1e4+nsecs)%4294967296;b[i++]=tl>>>24&255;b[i++]=tl>>>16&255;b[i++]=tl>>>8&255;b[i++]=tl&255;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255;b[i++]=tmh&255;b[i++]=tmh>>>24&15|16;b[i++]=tmh>>>16&255;b[i++]=clockseq>>>8|128;b[i++]=clockseq&255;var node=options.node||_nodeId;for(var n=0;n<6;n++){b[i+n]=node[n]}return buf?buf:unparse(b)}function v4(options,buf,offset){var i=buf&&offset||0;if(typeof options==\"string\"){buf=options==\"binary\"?new Array(16):null;options=null}options=options||{};var rnds=options.random||(options.rng||_rng)();rnds[6]=rnds[6]&15|64;rnds[8]=rnds[8]&63|128;if(buf){for(var ii=0;ii<16;ii++){buf[i+ii]=rnds[ii]}}return buf||unparse(rnds)}var uuid=v4;uuid.v1=v1;uuid.v4=v4;uuid.parse=parse;uuid.unparse=unparse;module.exports=uuid}).call(exports,__webpack_require__(158))},function(module,exports){var g;g=function(){return this}();try{g=g||Function(\"return this\")()||(1,eval)(\"this\")}catch(e){if(typeof window===\"object\")g=window}module.exports=g},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Graph3d=__webpack_require__(161);exports.graph3d={Camera:__webpack_require__(95),Filter:__webpack_require__(96),Point2d:__webpack_require__(91),Point3d:__webpack_require__(34),Slider:__webpack_require__(92),StepNumber:__webpack_require__(93)};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){var core=__webpack_require__(7);var $JSON=core.JSON||(core.JSON={stringify:JSON.stringify});module.exports=function stringify(it){return $JSON.stringify.apply($JSON,arguments)}},function(module,exports,__webpack_require__){\"use strict\";var _assign=__webpack_require__(90);var _assign2=_interopRequireDefault(_assign);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Emitter=__webpack_require__(44);var util=__webpack_require__(2);var Point3d=__webpack_require__(34);var Point2d=__webpack_require__(91);var Slider=__webpack_require__(92);var StepNumber=__webpack_require__(93);var Settings=__webpack_require__(94);var Validator=__webpack_require__(15)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var _require2=__webpack_require__(172),allOptions=_require2.allOptions;var DataGroup=__webpack_require__(173);Graph3d.STYLE=Settings.STYLE;var autoByDefault=undefined;Graph3d.DEFAULTS={width:\"400px\",height:\"400px\",filterLabel:\"time\",legendLabel:\"value\",xLabel:\"x\",yLabel:\"y\",zLabel:\"z\",xValueLabel:function xValueLabel(v){return v},yValueLabel:function yValueLabel(v){return v},zValueLabel:function zValueLabel(v){return v},showXAxis:true,showYAxis:true,showZAxis:true,showGrid:true,showPerspective:true,showShadow:false,keepAspectRatio:true,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:autoByDefault,animationInterval:1e3,animationPreload:false,animationAutoStart:autoByDefault,axisColor:\"#4D4D4D\",gridColor:\"#D3D3D3\",xCenter:\"55%\",yCenter:\"50%\",style:Graph3d.STYLE.DOT,tooltip:false,tooltipStyle:{content:{padding:\"10px\",border:\"1px solid #4d4d4d\",color:\"#1a1a1a\",background:\"rgba(255,255,255,0.7)\",borderRadius:\"2px\",boxShadow:\"5px 5px 10px rgba(128,128,128,0.5)\"},line:{height:\"40px\",width:\"0\",borderLeft:\"1px solid #4d4d4d\"},dot:{height:\"0\",width:\"0\",border:\"5px solid #4d4d4d\",borderRadius:\"5px\"}},dataColor:{fill:\"#7DC1FF\",stroke:\"#3267D2\",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:autoByDefault,backgroundColor:autoByDefault,xBarWidth:autoByDefault,yBarWidth:autoByDefault,valueMin:autoByDefault,valueMax:autoByDefault,xMin:autoByDefault,xMax:autoByDefault,xStep:autoByDefault,yMin:autoByDefault,yMax:autoByDefault,yStep:autoByDefault,zMin:autoByDefault,zMax:autoByDefault,zStep:autoByDefault};function Graph3d(container,data,options){if(!(this instanceof Graph3d)){throw new SyntaxError(\"Constructor must be called with the new operator\")}this.containerElement=container;this.dataGroup=new DataGroup;this.dataPoints=null;this.create();Settings.setDefaults(Graph3d.DEFAULTS,this);this.colX=undefined;this.colY=undefined;this.colZ=undefined;this.colValue=undefined;this.setOptions(options);this.setData(data)}Emitter(Graph3d.prototype);Graph3d.prototype._setScale=function(){this.scale=new Point3d(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range());if(this.keepAspectRatio){if(this.scale.x<this.scale.y){this.scale.y=this.scale.x}else{this.scale.x=this.scale.y}}this.scale.z*=this.verticalRatio;if(this.valueRange!==undefined){this.scale.value=1/this.valueRange.range()}var xCenter=this.xRange.center()*this.scale.x;var yCenter=this.yRange.center()*this.scale.y;var zCenter=this.zRange.center()*this.scale.z;this.camera.setArmLocation(xCenter,yCenter,zCenter)};Graph3d.prototype._convert3Dto2D=function(point3d){var translation=this._convertPointToTranslation(point3d);return this._convertTranslationToScreen(translation)};Graph3d.prototype._convertPointToTranslation=function(point3d){var cameraLocation=this.camera.getCameraLocation(),cameraRotation=this.camera.getCameraRotation(),ax=point3d.x*this.scale.x,ay=point3d.y*this.scale.y,az=point3d.z*this.scale.z,cx=cameraLocation.x,cy=cameraLocation.y,cz=cameraLocation.z,sinTx=Math.sin(cameraRotation.x),cosTx=Math.cos(cameraRotation.x),sinTy=Math.sin(cameraRotation.y),cosTy=Math.cos(cameraRotation.y),sinTz=Math.sin(cameraRotation.z),cosTz=Math.cos(cameraRotation.z),dx=cosTy*(sinTz*(ay-cy)+cosTz*(ax-cx))-sinTy*(az-cz),dy=sinTx*(cosTy*(az-cz)+sinTy*(sinTz*(ay-cy)+cosTz*(ax-cx)))+cosTx*(cosTz*(ay-cy)-sinTz*(ax-cx)),dz=cosTx*(cosTy*(az-cz)+sinTy*(sinTz*(ay-cy)+cosTz*(ax-cx)))-sinTx*(cosTz*(ay-cy)-sinTz*(ax-cx));return new Point3d(dx,dy,dz)};Graph3d.prototype._convertTranslationToScreen=function(translation){var ex=this.eye.x,ey=this.eye.y,ez=this.eye.z,dx=translation.x,dy=translation.y,dz=translation.z;var bx;var by;if(this.showPerspective){bx=(dx-ex)*(ez/dz);by=(dy-ey)*(ez/dz)}else{bx=dx*-(ez/this.camera.getArmLength());by=dy*-(ez/this.camera.getArmLength())}return new Point2d(this.currentXCenter+bx*this.frame.canvas.clientWidth,this.currentYCenter-by*this.frame.canvas.clientWidth)};Graph3d.prototype._calcTranslations=function(points){for(var i=0;i<points.length;i++){var point=points[i];point.trans=this._convertPointToTranslation(point.point);point.screen=this._convertTranslationToScreen(point.trans);var transBottom=this._convertPointToTranslation(point.bottom);point.dist=this.showPerspective?transBottom.length():-transBottom.z}var sortDepth=function sortDepth(a,b){return b.dist-a.dist};points.sort(sortDepth)};Graph3d.prototype._initializeRanges=function(){var dg=this.dataGroup;this.xRange=dg.xRange;this.yRange=dg.yRange;this.zRange=dg.zRange;this.valueRange=dg.valueRange;this.xStep=dg.xStep;this.yStep=dg.yStep;this.zStep=dg.zStep;this.xBarWidth=dg.xBarWidth;this.yBarWidth=dg.yBarWidth;this.colX=dg.colX;this.colY=dg.colY;this.colZ=dg.colZ;this.colValue=dg.colValue;this._setScale()};Graph3d.prototype.getDataPoints=function(data){var dataPoints=[];for(var i=0;i<data.length;i++){var point=new Point3d;point.x=data[i][this.colX]||0;point.y=data[i][this.colY]||0;point.z=data[i][this.colZ]||0;point.data=data[i];if(this.colValue!==undefined){point.value=data[i][this.colValue]||0}var obj={};obj.point=point;obj.bottom=new Point3d(point.x,point.y,this.zRange.min);obj.trans=undefined;obj.screen=undefined;dataPoints.push(obj)}return dataPoints};Graph3d.prototype._getDataPoints=function(data){var x,y,i,obj;var dataPoints=[];if(this.style===Graph3d.STYLE.GRID||this.style===Graph3d.STYLE.SURFACE){var dataX=this.dataGroup.getDistinctValues(this.colX,data);var dataY=this.dataGroup.getDistinctValues(this.colY,data);dataPoints=this.getDataPoints(data);var dataMatrix=[];for(i=0;i<dataPoints.length;i++){obj=dataPoints[i];var xIndex=dataX.indexOf(obj.point.x);var yIndex=dataY.indexOf(obj.point.y);if(dataMatrix[xIndex]===undefined){dataMatrix[xIndex]=[]}dataMatrix[xIndex][yIndex]=obj}for(x=0;x<dataMatrix.length;x++){for(y=0;y<dataMatrix[x].length;y++){if(dataMatrix[x][y]){dataMatrix[x][y].pointRight=x<dataMatrix.length-1?dataMatrix[x+1][y]:undefined;dataMatrix[x][y].pointTop=y<dataMatrix[x].length-1?dataMatrix[x][y+1]:undefined;dataMatrix[x][y].pointCross=x<dataMatrix.length-1&&y<dataMatrix[x].length-1?dataMatrix[x+1][y+1]:undefined}}}}else{this._checkValueField(data);dataPoints=this.getDataPoints(data);if(this.style===Graph3d.STYLE.LINE){for(i=0;i<dataPoints.length;i++){if(i>0){dataPoints[i-1].pointNext=dataPoints[i]}}}}return dataPoints};Graph3d.prototype.create=function(){while(this.containerElement.hasChildNodes()){this.containerElement.removeChild(this.containerElement.firstChild)}this.frame=document.createElement(\"div\");this.frame.style.position=\"relative\";this.frame.style.overflow=\"hidden\";this.frame.canvas=document.createElement(\"canvas\");this.frame.canvas.style.position=\"relative\";this.frame.appendChild(this.frame.canvas);{var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.frame.canvas.appendChild(noCanvas)}this.frame.filter=document.createElement(\"div\");this.frame.filter.style.position=\"absolute\";this.frame.filter.style.bottom=\"0px\";this.frame.filter.style.left=\"0px\";this.frame.filter.style.width=\"100%\";this.frame.appendChild(this.frame.filter);var me=this;var onmousedown=function onmousedown(event){me._onMouseDown(event)};var ontouchstart=function ontouchstart(event){me._onTouchStart(event)};var onmousewheel=function onmousewheel(event){me._onWheel(event)};var ontooltip=function ontooltip(event){me._onTooltip(event)};var onclick=function onclick(event){me._onClick(event)};util.addEventListener(this.frame.canvas,\"mousedown\",onmousedown);util.addEventListener(this.frame.canvas,\"touchstart\",ontouchstart);util.addEventListener(this.frame.canvas,\"mousewheel\",onmousewheel);util.addEventListener(this.frame.canvas,\"mousemove\",ontooltip);util.addEventListener(this.frame.canvas,\"click\",onclick);this.containerElement.appendChild(this.frame)};Graph3d.prototype._setSize=function(width,height){this.frame.style.width=width;this.frame.style.height=height;this._resizeCanvas()};Graph3d.prototype._resizeCanvas=function(){this.frame.canvas.style.width=\"100%\";this.frame.canvas.style.height=\"100%\";this.frame.canvas.width=this.frame.canvas.clientWidth;this.frame.canvas.height=this.frame.canvas.clientHeight;this.frame.filter.style.width=this.frame.canvas.clientWidth-2*10+\"px\"};Graph3d.prototype.animationStart=function(){if(!this.animationAutoStart||!this.dataGroup.dataFilter)return;if(!this.frame.filter||!this.frame.filter.slider)throw new Error(\"No animation available\");this.frame.filter.slider.play()};Graph3d.prototype.animationStop=function(){if(!this.frame.filter||!this.frame.filter.slider)return;this.frame.filter.slider.stop()};Graph3d.prototype._resizeCenter=function(){if(this.xCenter.charAt(this.xCenter.length-1)===\"%\"){this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth}else{this.currentXCenter=parseFloat(this.xCenter)}if(this.yCenter.charAt(this.yCenter.length-1)===\"%\"){this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight)}else{this.currentYCenter=parseFloat(this.yCenter)}};Graph3d.prototype.getCameraPosition=function(){var pos=this.camera.getArmRotation();pos.distance=this.camera.getArmLength();return pos};Graph3d.prototype._readData=function(data){this.dataPoints=this.dataGroup.initializeData(this,data,this.style);this._initializeRanges();this._redrawFilter()};Graph3d.prototype.setData=function(data){if(data===undefined||data===null)return;this._readData(data);this.redraw();this.animationStart()};Graph3d.prototype.setOptions=function(options){if(options===undefined)return;var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}this.animationStop();Settings.setOptions(options,this);this.setPointDrawingMethod();this._setSize(this.width,this.height);this.setData(this.dataGroup.getDataTable());this.animationStart()};Graph3d.prototype.setPointDrawingMethod=function(){var method=undefined;switch(this.style){case Graph3d.STYLE.BAR:method=Graph3d.prototype._redrawBarGraphPoint;break;case Graph3d.STYLE.BARCOLOR:method=Graph3d.prototype._redrawBarColorGraphPoint;break;case Graph3d.STYLE.BARSIZE:method=Graph3d.prototype._redrawBarSizeGraphPoint;break;case Graph3d.STYLE.DOT:method=Graph3d.prototype._redrawDotGraphPoint;break;case Graph3d.STYLE.DOTLINE:method=Graph3d.prototype._redrawDotLineGraphPoint;break;case Graph3d.STYLE.DOTCOLOR:method=Graph3d.prototype._redrawDotColorGraphPoint;break;case Graph3d.STYLE.DOTSIZE:method=Graph3d.prototype._redrawDotSizeGraphPoint;break;case Graph3d.STYLE.SURFACE:method=Graph3d.prototype._redrawSurfaceGraphPoint;break;case Graph3d.STYLE.GRID:method=Graph3d.prototype._redrawGridGraphPoint;break;case Graph3d.STYLE.LINE:method=Graph3d.prototype._redrawLineGraphPoint;break;default:throw new Error(\"Can not determine point drawing method \"+\"for graph style '\"+this.style+\"'\")}this._pointDrawingMethod=method};Graph3d.prototype.redraw=function(){if(this.dataPoints===undefined){throw new Error(\"Graph data not initialized\")}this._resizeCanvas();this._resizeCenter();this._redrawSlider();this._redrawClear();this._redrawAxis();this._redrawDataGraph();this._redrawInfo();this._redrawLegend()};Graph3d.prototype._getContext=function(){var canvas=this.frame.canvas;var ctx=canvas.getContext(\"2d\");ctx.lineJoin=\"round\";ctx.lineCap=\"round\";return ctx};Graph3d.prototype._redrawClear=function(){var canvas=this.frame.canvas;var ctx=canvas.getContext(\"2d\");ctx.clearRect(0,0,canvas.width,canvas.height)};Graph3d.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio};Graph3d.prototype._getLegendWidth=function(){var width;if(this.style===Graph3d.STYLE.DOTSIZE){var dotSize=this._dotSize();width=dotSize*this.dotSizeMaxFraction}else if(this.style===Graph3d.STYLE.BARSIZE){width=this.xBarWidth}else{width=20}return width};Graph3d.prototype._redrawLegend=function(){if(this.showLegend!==true){return}if(this.style===Graph3d.STYLE.LINE||this.style===Graph3d.STYLE.BARSIZE){return}var isSizeLegend=this.style===Graph3d.STYLE.BARSIZE||this.style===Graph3d.STYLE.DOTSIZE;var isValueLegend=this.style===Graph3d.STYLE.DOTSIZE||this.style===Graph3d.STYLE.DOTCOLOR||this.style===Graph3d.STYLE.BARCOLOR;var height=Math.max(this.frame.clientHeight*.25,100);var top=this.margin;var width=this._getLegendWidth();var right=this.frame.clientWidth-this.margin;var left=right-width;var bottom=top+height;var ctx=this._getContext();ctx.lineWidth=1;ctx.font=\"14px arial\";if(isSizeLegend===false){var ymin=0;var ymax=height;var y;for(y=ymin;y<ymax;y++){var f=(y-ymin)/(ymax-ymin);var hue=f*240;var color=this._hsv2rgb(hue,1,1);ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(left,top+y);ctx.lineTo(right,top+y);ctx.stroke()}ctx.strokeStyle=this.axisColor;ctx.strokeRect(left,top,width,height)}else{var widthMin;if(this.style===Graph3d.STYLE.DOTSIZE){widthMin=width*(this.dotSizeMinFraction/this.dotSizeMaxFraction)}else if(this.style===Graph3d.STYLE.BARSIZE){}ctx.strokeStyle=this.axisColor;ctx.fillStyle=this.dataColor.fill;ctx.beginPath();ctx.moveTo(left,top);ctx.lineTo(right,top);ctx.lineTo(left+widthMin,bottom);ctx.lineTo(left,bottom);ctx.closePath();ctx.fill();ctx.stroke()}var gridLineLen=5;var legendMin=isValueLegend?this.valueRange.min:this.zRange.min;var legendMax=isValueLegend?this.valueRange.max:this.zRange.max;var step=new StepNumber(legendMin,legendMax,(legendMax-legendMin)/5,true);step.start(true);var from;var to;while(!step.end()){y=bottom-(step.getCurrent()-legendMin)/(legendMax-legendMin)*height;from=new Point2d(left-gridLineLen,y);to=new Point2d(left,y);this._line(ctx,from,to);ctx.textAlign=\"right\";ctx.textBaseline=\"middle\";ctx.fillStyle=this.axisColor;ctx.fillText(step.getCurrent(),left-2*gridLineLen,y);step.next()}ctx.textAlign=\"right\";ctx.textBaseline=\"top\";var label=this.legendLabel;ctx.fillText(label,right,bottom+this.margin)};Graph3d.prototype._redrawFilter=function(){var dataFilter=this.dataGroup.dataFilter;var filter=this.frame.filter;filter.innerHTML=\"\";if(!dataFilter){filter.slider=undefined;return}var options={visible:this.showAnimationControls};var slider=new Slider(filter,options);filter.slider=slider;filter.style.padding=\"10px\";slider.setValues(dataFilter.values);slider.setPlayInterval(this.animationInterval);var me=this;var onchange=function onchange(){var dataFilter=me.dataGroup.dataFilter;var index=slider.getIndex();dataFilter.selectValue(index);me.dataPoints=dataFilter._getDataPoints();me.redraw()};slider.setOnChangeCallback(onchange)};Graph3d.prototype._redrawSlider=function(){if(this.frame.filter.slider!==undefined){this.frame.filter.slider.redraw()}};Graph3d.prototype._redrawInfo=function(){var info=this.dataGroup.getInfo();if(info===undefined)return;var ctx=this._getContext();ctx.font=\"14px arial\";ctx.lineStyle=\"gray\";ctx.fillStyle=\"gray\";ctx.textAlign=\"left\";ctx.textBaseline=\"top\";var x=this.margin;var y=this.margin;ctx.fillText(info,x,y)};Graph3d.prototype._line=function(ctx,from,to,strokeStyle){if(strokeStyle!==undefined){ctx.strokeStyle=strokeStyle}ctx.beginPath();ctx.moveTo(from.x,from.y);ctx.lineTo(to.x,to.y);ctx.stroke()};Graph3d.prototype.drawAxisLabelX=function(ctx,point3d,text,armAngle,yMargin){if(yMargin===undefined){yMargin=0}var point2d=this._convert3Dto2D(point3d);if(Math.cos(armAngle*2)>0){ctx.textAlign=\"center\";ctx.textBaseline=\"top\";point2d.y+=yMargin}else if(Math.sin(armAngle*2)<0){ctx.textAlign=\"right\";ctx.textBaseline=\"middle\"}else{ctx.textAlign=\"left\";ctx.textBaseline=\"middle\"}ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x,point2d.y)};Graph3d.prototype.drawAxisLabelY=function(ctx,point3d,text,armAngle,yMargin){if(yMargin===undefined){yMargin=0}var point2d=this._convert3Dto2D(point3d);if(Math.cos(armAngle*2)<0){ctx.textAlign=\"center\";ctx.textBaseline=\"top\";point2d.y+=yMargin}else if(Math.sin(armAngle*2)>0){ctx.textAlign=\"right\";ctx.textBaseline=\"middle\"}else{ctx.textAlign=\"left\";ctx.textBaseline=\"middle\"}ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x,point2d.y)};Graph3d.prototype.drawAxisLabelZ=function(ctx,point3d,text,offset){if(offset===undefined){offset=0}var point2d=this._convert3Dto2D(point3d);ctx.textAlign=\"right\";ctx.textBaseline=\"middle\";ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x-offset,point2d.y)};Graph3d.prototype._line3d=function(ctx,from,to,strokeStyle){var from2d=this._convert3Dto2D(from);var to2d=this._convert3Dto2D(to);this._line(ctx,from2d,to2d,strokeStyle)};Graph3d.prototype._redrawAxis=function(){var ctx=this._getContext(),from,to,step,prettyStep,text,xText,yText,zText,offset,xOffset,yOffset;ctx.font=24/this.camera.getArmLength()+\"px arial\";var gridLenX=.025/this.scale.x;var gridLenY=.025/this.scale.y;var textMargin=5/this.camera.getArmLength();var armAngle=this.camera.getArmRotation().horizontal;var armVector=new Point2d(Math.cos(armAngle),Math.sin(armAngle));var xRange=this.xRange;var yRange=this.yRange;var zRange=this.zRange;var point3d;ctx.lineWidth=1;prettyStep=this.defaultXStep===undefined;step=new StepNumber(xRange.min,xRange.max,this.xStep,prettyStep);step.start(true);while(!step.end()){var x=step.getCurrent();if(this.showGrid){from=new Point3d(x,yRange.min,zRange.min);to=new Point3d(x,yRange.max,zRange.min);this._line3d(ctx,from,to,this.gridColor)}else if(this.showXAxis){from=new Point3d(x,yRange.min,zRange.min);to=new Point3d(x,yRange.min+gridLenX,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(x,yRange.max,zRange.min);to=new Point3d(x,yRange.max-gridLenX,zRange.min);this._line3d(ctx,from,to,this.axisColor)}if(this.showXAxis){yText=armVector.x>0?yRange.min:yRange.max;point3d=new Point3d(x,yText,zRange.min);var msg=\" \"+this.xValueLabel(x)+\" \";this.drawAxisLabelX(ctx,point3d,msg,armAngle,textMargin)}step.next()}ctx.lineWidth=1;prettyStep=this.defaultYStep===undefined;step=new StepNumber(yRange.min,yRange.max,this.yStep,prettyStep);step.start(true);while(!step.end()){var y=step.getCurrent();if(this.showGrid){from=new Point3d(xRange.min,y,zRange.min);to=new Point3d(xRange.max,y,zRange.min);this._line3d(ctx,from,to,this.gridColor)}else if(this.showYAxis){from=new Point3d(xRange.min,y,zRange.min);to=new Point3d(xRange.min+gridLenY,y,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(xRange.max,y,zRange.min);to=new Point3d(xRange.max-gridLenY,y,zRange.min);this._line3d(ctx,from,to,this.axisColor)}if(this.showYAxis){xText=armVector.y>0?xRange.min:xRange.max;point3d=new Point3d(xText,y,zRange.min);var _msg=\" \"+this.yValueLabel(y)+\" \";this.drawAxisLabelY(ctx,point3d,_msg,armAngle,textMargin)}step.next()}if(this.showZAxis){ctx.lineWidth=1;prettyStep=this.defaultZStep===undefined;step=new StepNumber(zRange.min,zRange.max,this.zStep,prettyStep);step.start(true);xText=armVector.x>0?xRange.min:xRange.max;yText=armVector.y<0?yRange.min:yRange.max;while(!step.end()){var z=step.getCurrent();var from3d=new Point3d(xText,yText,z);var from2d=this._convert3Dto2D(from3d);to=new Point2d(from2d.x-textMargin,from2d.y);this._line(ctx,from2d,to,this.axisColor);var _msg2=this.zValueLabel(z)+\" \";this.drawAxisLabelZ(ctx,from3d,_msg2,5);step.next()}ctx.lineWidth=1;from=new Point3d(xText,yText,zRange.min);to=new Point3d(xText,yText,zRange.max);this._line3d(ctx,from,to,this.axisColor)}if(this.showXAxis){var xMin2d;var xMax2d;ctx.lineWidth=1;xMin2d=new Point3d(xRange.min,yRange.min,zRange.min);xMax2d=new Point3d(xRange.max,yRange.min,zRange.min);this._line3d(ctx,xMin2d,xMax2d,this.axisColor);xMin2d=new Point3d(xRange.min,yRange.max,zRange.min);xMax2d=new Point3d(xRange.max,yRange.max,zRange.min);this._line3d(ctx,xMin2d,xMax2d,this.axisColor)}if(this.showYAxis){ctx.lineWidth=1;from=new Point3d(xRange.min,yRange.min,zRange.min);to=new Point3d(xRange.min,yRange.max,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(xRange.max,yRange.min,zRange.min);to=new Point3d(xRange.max,yRange.max,zRange.min);this._line3d(ctx,from,to,this.axisColor)}var xLabel=this.xLabel;if(xLabel.length>0&&this.showXAxis){yOffset=.1/this.scale.y;xText=(xRange.max+3*xRange.min)/4;yText=armVector.x>0?yRange.min-yOffset:yRange.max+yOffset\n;text=new Point3d(xText,yText,zRange.min);this.drawAxisLabelX(ctx,text,xLabel,armAngle)}var yLabel=this.yLabel;if(yLabel.length>0&&this.showYAxis){xOffset=.1/this.scale.x;xText=armVector.y>0?xRange.min-xOffset:xRange.max+xOffset;yText=(yRange.max+3*yRange.min)/4;text=new Point3d(xText,yText,zRange.min);this.drawAxisLabelY(ctx,text,yLabel,armAngle)}var zLabel=this.zLabel;if(zLabel.length>0&&this.showZAxis){offset=30;xText=armVector.x>0?xRange.min:xRange.max;yText=armVector.y<0?yRange.min:yRange.max;zText=(zRange.max+3*zRange.min)/4;text=new Point3d(xText,yText,zText);this.drawAxisLabelZ(ctx,text,zLabel,offset)}};Graph3d.prototype._hsv2rgb=function(H,S,V){var R,G,B,C,Hi,X;C=V*S;Hi=Math.floor(H/60);X=C*(1-Math.abs(H/60%2-1));switch(Hi){case 0:R=C;G=X;B=0;break;case 1:R=X;G=C;B=0;break;case 2:R=0;G=C;B=X;break;case 3:R=0;G=X;B=C;break;case 4:R=X;G=0;B=C;break;case 5:R=C;G=0;B=X;break;default:R=0;G=0;B=0;break}return\"RGB(\"+parseInt(R*255)+\",\"+parseInt(G*255)+\",\"+parseInt(B*255)+\")\"};Graph3d.prototype._getStrokeWidth=function(point){if(point!==undefined){if(this.showPerspective){return 1/-point.trans.z*this.dataColor.strokeWidth}else{return-(this.eye.z/this.camera.getArmLength())*this.dataColor.strokeWidth}}return this.dataColor.strokeWidth};Graph3d.prototype._redrawBar=function(ctx,point,xWidth,yWidth,color,borderColor){var surface;var me=this;var point3d=point.point;var zMin=this.zRange.min;var top=[{point:new Point3d(point3d.x-xWidth,point3d.y-yWidth,point3d.z)},{point:new Point3d(point3d.x+xWidth,point3d.y-yWidth,point3d.z)},{point:new Point3d(point3d.x+xWidth,point3d.y+yWidth,point3d.z)},{point:new Point3d(point3d.x-xWidth,point3d.y+yWidth,point3d.z)}];var bottom=[{point:new Point3d(point3d.x-xWidth,point3d.y-yWidth,zMin)},{point:new Point3d(point3d.x+xWidth,point3d.y-yWidth,zMin)},{point:new Point3d(point3d.x+xWidth,point3d.y+yWidth,zMin)},{point:new Point3d(point3d.x-xWidth,point3d.y+yWidth,zMin)}];top.forEach(function(obj){obj.screen=me._convert3Dto2D(obj.point)});bottom.forEach(function(obj){obj.screen=me._convert3Dto2D(obj.point)});var surfaces=[{corners:top,center:Point3d.avg(bottom[0].point,bottom[2].point)},{corners:[top[0],top[1],bottom[1],bottom[0]],center:Point3d.avg(bottom[1].point,bottom[0].point)},{corners:[top[1],top[2],bottom[2],bottom[1]],center:Point3d.avg(bottom[2].point,bottom[1].point)},{corners:[top[2],top[3],bottom[3],bottom[2]],center:Point3d.avg(bottom[3].point,bottom[2].point)},{corners:[top[3],top[0],bottom[0],bottom[3]],center:Point3d.avg(bottom[0].point,bottom[3].point)}];point.surfaces=surfaces;for(var j=0;j<surfaces.length;j++){surface=surfaces[j];var transCenter=this._convertPointToTranslation(surface.center);surface.dist=this.showPerspective?transCenter.length():-transCenter.z}surfaces.sort(function(a,b){var diff=b.dist-a.dist;if(diff)return diff;if(a.corners===top)return 1;if(b.corners===top)return-1;return 0});ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=borderColor;ctx.fillStyle=color;for(var _j=2;_j<surfaces.length;_j++){surface=surfaces[_j];this._polygon(ctx,surface.corners)}};Graph3d.prototype._polygon=function(ctx,points,fillStyle,strokeStyle){if(points.length<2){return}if(fillStyle!==undefined){ctx.fillStyle=fillStyle}if(strokeStyle!==undefined){ctx.strokeStyle=strokeStyle}ctx.beginPath();ctx.moveTo(points[0].screen.x,points[0].screen.y);for(var i=1;i<points.length;++i){var point=points[i];ctx.lineTo(point.screen.x,point.screen.y)}ctx.closePath();ctx.fill();ctx.stroke()};Graph3d.prototype._drawCircle=function(ctx,point,color,borderColor,size){var radius=this._calcRadius(point,size);ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=borderColor;ctx.fillStyle=color;ctx.beginPath();ctx.arc(point.screen.x,point.screen.y,radius,0,Math.PI*2,true);ctx.fill();ctx.stroke()};Graph3d.prototype._getColorsRegular=function(point){var hue=(1-(point.point.z-this.zRange.min)*this.scale.z/this.verticalRatio)*240;var color=this._hsv2rgb(hue,1,1);var borderColor=this._hsv2rgb(hue,1,.8);return{fill:color,border:borderColor}};Graph3d.prototype._getColorsColor=function(point){var color,borderColor;if(typeof point.point.value===\"string\"){color=point.point.value;borderColor=point.point.value}else{var hue=(1-(point.point.value-this.valueRange.min)*this.scale.value)*240;color=this._hsv2rgb(hue,1,1);borderColor=this._hsv2rgb(hue,1,.8)}return{fill:color,border:borderColor}};Graph3d.prototype._getColorsSize=function(){return{fill:this.dataColor.fill,border:this.dataColor.stroke}};Graph3d.prototype._calcRadius=function(point,size){if(size===undefined){size=this._dotSize()}var radius;if(this.showPerspective){radius=size/-point.trans.z}else{radius=size*-(this.eye.z/this.camera.getArmLength())}if(radius<0){radius=0}return radius};Graph3d.prototype._redrawBarGraphPoint=function(ctx,point){var xWidth=this.xBarWidth/2;var yWidth=this.yBarWidth/2;var colors=this._getColorsRegular(point);this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawBarColorGraphPoint=function(ctx,point){var xWidth=this.xBarWidth/2;var yWidth=this.yBarWidth/2;var colors=this._getColorsColor(point);this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawBarSizeGraphPoint=function(ctx,point){var fraction=(point.point.value-this.valueRange.min)/this.valueRange.range();var xWidth=this.xBarWidth/2*(fraction*.8+.2);var yWidth=this.yBarWidth/2*(fraction*.8+.2);var colors=this._getColorsSize();this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawDotGraphPoint=function(ctx,point){var colors=this._getColorsRegular(point);this._drawCircle(ctx,point,colors.fill,colors.border)};Graph3d.prototype._redrawDotLineGraphPoint=function(ctx,point){var from=this._convert3Dto2D(point.bottom);ctx.lineWidth=1;this._line(ctx,from,point.screen,this.gridColor);this._redrawDotGraphPoint(ctx,point)};Graph3d.prototype._redrawDotColorGraphPoint=function(ctx,point){var colors=this._getColorsColor(point);this._drawCircle(ctx,point,colors.fill,colors.border)};Graph3d.prototype._redrawDotSizeGraphPoint=function(ctx,point){var dotSize=this._dotSize();var fraction=(point.point.value-this.valueRange.min)/this.valueRange.range();var sizeMin=dotSize*this.dotSizeMinFraction;var sizeRange=dotSize*this.dotSizeMaxFraction-sizeMin;var size=sizeMin+sizeRange*fraction;var colors=this._getColorsSize();this._drawCircle(ctx,point,colors.fill,colors.border,size)};Graph3d.prototype._redrawSurfaceGraphPoint=function(ctx,point){var right=point.pointRight;var top=point.pointTop;var cross=point.pointCross;if(point===undefined||right===undefined||top===undefined||cross===undefined){return}var topSideVisible=true;var fillStyle;var strokeStyle;if(this.showGrayBottom||this.showShadow){var aDiff=Point3d.subtract(cross.trans,point.trans);var bDiff=Point3d.subtract(top.trans,right.trans);var crossproduct=Point3d.crossProduct(aDiff,bDiff);var len=crossproduct.length();topSideVisible=crossproduct.z>0}if(topSideVisible){var zAvg=(point.point.z+right.point.z+top.point.z+cross.point.z)/4;var h=(1-(zAvg-this.zRange.min)*this.scale.z/this.verticalRatio)*240;var s=1;var v;if(this.showShadow){v=Math.min(1+crossproduct.x/len/2,1);fillStyle=this._hsv2rgb(h,s,v);strokeStyle=fillStyle}else{v=1;fillStyle=this._hsv2rgb(h,s,v);strokeStyle=this.axisColor}}else{fillStyle=\"gray\";strokeStyle=this.axisColor}ctx.lineWidth=this._getStrokeWidth(point);var points=[point,right,cross,top];this._polygon(ctx,points,fillStyle,strokeStyle)};Graph3d.prototype._drawGridLine=function(ctx,from,to){if(from===undefined||to===undefined){return}var zAvg=(from.point.z+to.point.z)/2;var h=(1-(zAvg-this.zRange.min)*this.scale.z/this.verticalRatio)*240;ctx.lineWidth=this._getStrokeWidth(from)*2;ctx.strokeStyle=this._hsv2rgb(h,1,1);this._line(ctx,from.screen,to.screen)};Graph3d.prototype._redrawGridGraphPoint=function(ctx,point){this._drawGridLine(ctx,point,point.pointRight);this._drawGridLine(ctx,point,point.pointTop)};Graph3d.prototype._redrawLineGraphPoint=function(ctx,point){if(point.pointNext===undefined){return}ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=this.dataColor.stroke;this._line(ctx,point.screen,point.pointNext.screen)};Graph3d.prototype._redrawDataGraph=function(){var ctx=this._getContext();var i;if(this.dataPoints===undefined||this.dataPoints.length<=0)return;this._calcTranslations(this.dataPoints);for(i=0;i<this.dataPoints.length;i++){var point=this.dataPoints[i];this._pointDrawingMethod.call(this,ctx,point)}};Graph3d.prototype._storeMousePosition=function(event){this.startMouseX=getMouseX(event);this.startMouseY=getMouseY(event);this._startCameraOffset=this.camera.getOffset()};Graph3d.prototype._onMouseDown=function(event){event=event||window.event;if(this.leftButtonDown){this._onMouseUp(event)}this.leftButtonDown=event.which?event.which===1:event.button===1;if(!this.leftButtonDown&&!this.touchDown)return;this._storeMousePosition(event);this.startStart=new Date(this.start);this.startEnd=new Date(this.end);this.startArmRotation=this.camera.getArmRotation();this.frame.style.cursor=\"move\";var me=this;this.onmousemove=function(event){me._onMouseMove(event)};this.onmouseup=function(event){me._onMouseUp(event)};util.addEventListener(document,\"mousemove\",me.onmousemove);util.addEventListener(document,\"mouseup\",me.onmouseup);util.preventDefault(event)};Graph3d.prototype._onMouseMove=function(event){this.moving=true;event=event||window.event;var diffX=parseFloat(getMouseX(event))-this.startMouseX;var diffY=parseFloat(getMouseY(event))-this.startMouseY;if(event&&event.ctrlKey===true){var scaleX=this.frame.clientWidth*.5;var scaleY=this.frame.clientHeight*.5;var offXNew=(this._startCameraOffset.x||0)-diffX/scaleX*this.camera.armLength*.8;var offYNew=(this._startCameraOffset.y||0)+diffY/scaleY*this.camera.armLength*.8;this.camera.setOffset(offXNew,offYNew);this._storeMousePosition(event)}else{var horizontalNew=this.startArmRotation.horizontal+diffX/200;var verticalNew=this.startArmRotation.vertical+diffY/200;var snapAngle=4;var snapValue=Math.sin(snapAngle/360*2*Math.PI);if(Math.abs(Math.sin(horizontalNew))<snapValue){horizontalNew=Math.round(horizontalNew/Math.PI)*Math.PI-.001}if(Math.abs(Math.cos(horizontalNew))<snapValue){horizontalNew=(Math.round(horizontalNew/Math.PI-.5)+.5)*Math.PI-.001}if(Math.abs(Math.sin(verticalNew))<snapValue){verticalNew=Math.round(verticalNew/Math.PI)*Math.PI}if(Math.abs(Math.cos(verticalNew))<snapValue){verticalNew=(Math.round(verticalNew/Math.PI-.5)+.5)*Math.PI}this.camera.setArmRotation(horizontalNew,verticalNew)}this.redraw();var parameters=this.getCameraPosition();this.emit(\"cameraPositionChange\",parameters);util.preventDefault(event)};Graph3d.prototype._onMouseUp=function(event){this.frame.style.cursor=\"auto\";this.leftButtonDown=false;util.removeEventListener(document,\"mousemove\",this.onmousemove);util.removeEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault(event)};Graph3d.prototype._onClick=function(event){if(!this.onclick_callback)return;if(!this.moving){var boundingRect=this.frame.getBoundingClientRect();var mouseX=getMouseX(event)-boundingRect.left;var mouseY=getMouseY(event)-boundingRect.top;var dataPoint=this._dataPointFromXY(mouseX,mouseY);if(dataPoint)this.onclick_callback(dataPoint.point.data)}else{this.moving=false}util.preventDefault(event)};Graph3d.prototype._onTooltip=function(event){var delay=300;var boundingRect=this.frame.getBoundingClientRect();var mouseX=getMouseX(event)-boundingRect.left;var mouseY=getMouseY(event)-boundingRect.top;if(!this.showTooltip){return}if(this.tooltipTimeout){clearTimeout(this.tooltipTimeout)}if(this.leftButtonDown){this._hideTooltip();return}if(this.tooltip&&this.tooltip.dataPoint){var dataPoint=this._dataPointFromXY(mouseX,mouseY);if(dataPoint!==this.tooltip.dataPoint){if(dataPoint){this._showTooltip(dataPoint)}else{this._hideTooltip()}}}else{var me=this;this.tooltipTimeout=setTimeout(function(){me.tooltipTimeout=null;var dataPoint=me._dataPointFromXY(mouseX,mouseY);if(dataPoint){me._showTooltip(dataPoint)}},delay)}};Graph3d.prototype._onTouchStart=function(event){this.touchDown=true;var me=this;this.ontouchmove=function(event){me._onTouchMove(event)};this.ontouchend=function(event){me._onTouchEnd(event)};util.addEventListener(document,\"touchmove\",me.ontouchmove);util.addEventListener(document,\"touchend\",me.ontouchend);this._onMouseDown(event)};Graph3d.prototype._onTouchMove=function(event){this._onMouseMove(event)};Graph3d.prototype._onTouchEnd=function(event){this.touchDown=false;util.removeEventListener(document,\"touchmove\",this.ontouchmove);util.removeEventListener(document,\"touchend\",this.ontouchend);this._onMouseUp(event)};Graph3d.prototype._onWheel=function(event){if(!event)event=window.event;var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(delta){var oldLength=this.camera.getArmLength();var newLength=oldLength*(1-delta/10);this.camera.setArmLength(newLength);this.redraw();this._hideTooltip()}var parameters=this.getCameraPosition();this.emit(\"cameraPositionChange\",parameters);util.preventDefault(event)};Graph3d.prototype._insideTriangle=function(point,triangle){var a=triangle[0],b=triangle[1],c=triangle[2];function sign(x){return x>0?1:x<0?-1:0}var as=sign((b.x-a.x)*(point.y-a.y)-(b.y-a.y)*(point.x-a.x));var bs=sign((c.x-b.x)*(point.y-b.y)-(c.y-b.y)*(point.x-b.x));var cs=sign((a.x-c.x)*(point.y-c.y)-(a.y-c.y)*(point.x-c.x));return(as==0||bs==0||as==bs)&&(bs==0||cs==0||bs==cs)&&(as==0||cs==0||as==cs)};Graph3d.prototype._dataPointFromXY=function(x,y){var i,distMax=100,dataPoint=null,closestDataPoint=null,closestDist=null,center=new Point2d(x,y);if(this.style===Graph3d.STYLE.BAR||this.style===Graph3d.STYLE.BARCOLOR||this.style===Graph3d.STYLE.BARSIZE){for(i=this.dataPoints.length-1;i>=0;i--){dataPoint=this.dataPoints[i];var surfaces=dataPoint.surfaces;if(surfaces){for(var s=surfaces.length-1;s>=0;s--){var surface=surfaces[s];var corners=surface.corners;var triangle1=[corners[0].screen,corners[1].screen,corners[2].screen];var triangle2=[corners[2].screen,corners[3].screen,corners[0].screen];if(this._insideTriangle(center,triangle1)||this._insideTriangle(center,triangle2)){return dataPoint}}}}}else{for(i=0;i<this.dataPoints.length;i++){dataPoint=this.dataPoints[i];var point=dataPoint.screen;if(point){var distX=Math.abs(x-point.x);var distY=Math.abs(y-point.y);var dist=Math.sqrt(distX*distX+distY*distY);if((closestDist===null||dist<closestDist)&&dist<distMax){closestDist=dist;closestDataPoint=dataPoint}}}}return closestDataPoint};Graph3d.prototype.hasBars=function(style){return style==Graph3d.STYLE.BAR||style==Graph3d.STYLE.BARCOLOR||style==Graph3d.STYLE.BARSIZE};Graph3d.prototype._showTooltip=function(dataPoint){var content,line,dot;if(!this.tooltip){content=document.createElement(\"div\");(0,_assign2[\"default\"])(content.style,{},this.tooltipStyle.content);content.style.position=\"absolute\";line=document.createElement(\"div\");(0,_assign2[\"default\"])(line.style,{},this.tooltipStyle.line);line.style.position=\"absolute\";dot=document.createElement(\"div\");(0,_assign2[\"default\"])(dot.style,{},this.tooltipStyle.dot);dot.style.position=\"absolute\";this.tooltip={dataPoint:null,dom:{content:content,line:line,dot:dot}}}else{content=this.tooltip.dom.content;line=this.tooltip.dom.line;dot=this.tooltip.dom.dot}this._hideTooltip();this.tooltip.dataPoint=dataPoint;if(typeof this.showTooltip===\"function\"){content.innerHTML=this.showTooltip(dataPoint.point)}else{content.innerHTML=\"<table>\"+\"<tr><td>\"+this.xLabel+\":</td><td>\"+dataPoint.point.x+\"</td></tr>\"+\"<tr><td>\"+this.yLabel+\":</td><td>\"+dataPoint.point.y+\"</td></tr>\"+\"<tr><td>\"+this.zLabel+\":</td><td>\"+dataPoint.point.z+\"</td></tr>\"+\"</table>\"}content.style.left=\"0\";content.style.top=\"0\";this.frame.appendChild(content);this.frame.appendChild(line);this.frame.appendChild(dot);var contentWidth=content.offsetWidth;var contentHeight=content.offsetHeight;var lineHeight=line.offsetHeight;var dotWidth=dot.offsetWidth;var dotHeight=dot.offsetHeight;var left=dataPoint.screen.x-contentWidth/2;left=Math.min(Math.max(left,10),this.frame.clientWidth-10-contentWidth);line.style.left=dataPoint.screen.x+\"px\";line.style.top=dataPoint.screen.y-lineHeight+\"px\";content.style.left=left+\"px\";content.style.top=dataPoint.screen.y-lineHeight-contentHeight+\"px\";dot.style.left=dataPoint.screen.x-dotWidth/2+\"px\";dot.style.top=dataPoint.screen.y-dotHeight/2+\"px\"};Graph3d.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var prop in this.tooltip.dom){if(this.tooltip.dom.hasOwnProperty(prop)){var elem=this.tooltip.dom[prop];if(elem&&elem.parentNode){elem.parentNode.removeChild(elem)}}}}};function getMouseX(event){if(\"clientX\"in event)return event.clientX;return event.targetTouches[0]&&event.targetTouches[0].clientX||0}function getMouseY(event){if(\"clientY\"in event)return event.clientY;return event.targetTouches[0]&&event.targetTouches[0].clientY||0}Graph3d.prototype.setCameraPosition=function(pos){Settings.setCameraPosition(pos,this);this.redraw()};Graph3d.prototype.setSize=function(width,height){this._setSize(width,height);this.redraw()};module.exports=Graph3d},function(module,exports,__webpack_require__){__webpack_require__(163);module.exports=__webpack_require__(7).Object.assign},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S+$export.F,\"Object\",{assign:__webpack_require__(164)})},function(module,exports,__webpack_require__){\"use strict\";var getKeys=__webpack_require__(33);var gOPS=__webpack_require__(63);var pIE=__webpack_require__(42);var toObject=__webpack_require__(41);var IObject=__webpack_require__(78);var $assign=Object.assign;module.exports=!$assign||__webpack_require__(28)(function(){var A={};var B={};var S=Symbol();var K=\"abcdefghijklmnopqrst\";A[S]=7;K.split(\"\").forEach(function(k){B[k]=k});return $assign({},A)[S]!=7||Object.keys($assign({},B)).join(\"\")!=K})?function assign(target,source){var T=toObject(target);var aLen=arguments.length;var index=1;var getSymbols=gOPS.f;var isEnum=pIE.f;while(aLen>index){var S=IObject(arguments[index++]);var keys=getSymbols?getKeys(S).concat(getSymbols(S)):getKeys(S);var length=keys.length;var j=0;var key;while(length>j)if(isEnum.call(S,key=keys[j++]))T[key]=S[key]}return T}:$assign},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(166),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(167);module.exports=__webpack_require__(7).Math.sign},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Math\",{sign:__webpack_require__(168)})},function(module,exports){module.exports=Math.sign||function sign(x){return(x=+x)==0||x!=x?x:x<0?-1:1}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(170),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(171);var $Object=__webpack_require__(7).Object;module.exports=function defineProperty(it,key,desc){return $Object.defineProperty(it,key,desc)}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S+$export.F*!__webpack_require__(21),\"Object\",{defineProperty:__webpack_require__(20).f})},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var object=\"object\";var colorOptions={fill:{string:string},stroke:{string:string},strokeWidth:{number:number},__type__:{string:string,object:object,undefined:\"undefined\"}};var allOptions={animationAutoStart:{boolean:bool,undefined:\"undefined\"},animationInterval:{number:number},animationPreload:{boolean:bool},axisColor:{string:string},backgroundColor:colorOptions,xBarWidth:{number:number,undefined:\"undefined\"},yBarWidth:{number:number,undefined:\"undefined\"},cameraPosition:{distance:{number:number},horizontal:{number:number},vertical:{number:number},__type__:{object:object}},xCenter:{string:string},yCenter:{string:string},dataColor:colorOptions,dotSizeMinFraction:{number:number},dotSizeMaxFraction:{number:number},dotSizeRatio:{number:number},filterLabel:{string:string},gridColor:{string:string},onclick:{function:\"function\"},keepAspectRatio:{boolean:bool},xLabel:{string:string},yLabel:{string:string},zLabel:{string:string},legendLabel:{string:string},xMin:{number:number,undefined:\"undefined\"},yMin:{number:number,undefined:\"undefined\"},zMin:{number:number,undefined:\"undefined\"},xMax:{number:number,undefined:\"undefined\"},yMax:{number:number,undefined:\"undefined\"},zMax:{number:number,undefined:\"undefined\"},showAnimationControls:{boolean:bool,undefined:\"undefined\"},showGrid:{boolean:bool},showLegend:{boolean:bool,undefined:\"undefined\"},showPerspective:{boolean:bool},showShadow:{boolean:bool},showXAxis:{boolean:bool},showYAxis:{boolean:bool},showZAxis:{boolean:bool},xStep:{number:number,undefined:\"undefined\"},yStep:{number:number,undefined:\"undefined\"},zStep:{number:number,undefined:\"undefined\"},style:{number:number,string:[\"bar\",\"bar-color\",\"bar-size\",\"dot\",\"dot-line\",\"dot-color\",\"dot-size\",\"line\",\"grid\",\"surface\"]},tooltip:{boolean:bool,function:\"function\"},tooltipStyle:{content:{color:{string:string},background:{string:string},border:{string:string},borderRadius:{string:string},boxShadow:{string:string},padding:{string:string},__type__:{object:object}},line:{borderLeft:{string:string},height:{string:string},width:{string:string},__type__:{object:object}},dot:{border:{string:string},borderRadius:{string:string},height:{string:string},width:{string:string},__type__:{object:object}},__type__:{object:object}},xValueLabel:{function:\"function\"},yValueLabel:{function:\"function\"},zValueLabel:{function:\"function\"},valueMax:{number:number,undefined:\"undefined\"},valueMin:{number:number,undefined:\"undefined\"},verticalRatio:{number:number},height:{string:string},width:{string:string},__type__:{object:object}};exports.allOptions=allOptions},function(module,exports,__webpack_require__){\"use strict\";var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(174);var Filter=__webpack_require__(96);var Settings=__webpack_require__(94);var Point3d=__webpack_require__(34);function DataGroup(){this.dataTable=null}DataGroup.prototype.initializeData=function(graph3d,rawData,style){if(rawData===undefined)return;if(Array.isArray(rawData)){rawData=new DataSet(rawData)}var data;if(rawData instanceof DataSet||rawData instanceof DataView){data=rawData.get()}else{throw new Error(\"Array, DataSet, or DataView expected\")}if(data.length==0)return;this.style=style;if(this.dataSet){this.dataSet.off(\"*\",this._onChange)}this.dataSet=rawData;this.dataTable=data;var me=this;this._onChange=function(){graph3d.setData(me.dataSet)};this.dataSet.on(\"*\",this._onChange);this.colX=\"x\";this.colY=\"y\";this.colZ=\"z\";var withBars=graph3d.hasBars(style);if(withBars){if(graph3d.defaultXBarWidth!==undefined){this.xBarWidth=graph3d.defaultXBarWidth}else{this.xBarWidth=this.getSmallestDifference(data,this.colX)||1}if(graph3d.defaultYBarWidth!==undefined){this.yBarWidth=graph3d.defaultYBarWidth}else{this.yBarWidth=this.getSmallestDifference(data,this.colY)||1}}this._initializeRange(data,this.colX,graph3d,withBars);this._initializeRange(data,this.colY,graph3d,withBars);this._initializeRange(data,this.colZ,graph3d,false);if(data[0].hasOwnProperty(\"style\")){this.colValue=\"style\";var valueRange=this.getColumnRange(data,this.colValue);this._setRangeDefaults(valueRange,graph3d.defaultValueMin,graph3d.defaultValueMax);this.valueRange=valueRange}var table=this.getDataTable();if(table[0].hasOwnProperty(\"filter\")){if(this.dataFilter===undefined){this.dataFilter=new Filter(this,\"filter\",graph3d);this.dataFilter.setOnLoadCallback(function(){graph3d.redraw()})}}var dataPoints;if(this.dataFilter){dataPoints=this.dataFilter._getDataPoints()}else{dataPoints=this._getDataPoints(this.getDataTable())}return dataPoints};DataGroup.prototype._collectRangeSettings=function(column,graph3d){var index=[\"x\",\"y\",\"z\"].indexOf(column);if(index==-1){throw new Error(\"Column '\"+column+\"' invalid\")}var upper=column.toUpperCase();return{barWidth:this[column+\"BarWidth\"],min:graph3d[\"default\"+upper+\"Min\"],max:graph3d[\"default\"+upper+\"Max\"],step:graph3d[\"default\"+upper+\"Step\"],range_label:column+\"Range\",step_label:column+\"Step\"}};DataGroup.prototype._initializeRange=function(data,column,graph3d,withBars){var NUMSTEPS=5;var settings=this._collectRangeSettings(column,graph3d);var range=this.getColumnRange(data,column);if(withBars&&column!=\"z\"){range.expand(settings.barWidth/2)}this._setRangeDefaults(range,settings.min,settings.max);this[settings.range_label]=range;this[settings.step_label]=settings.step!==undefined?settings.step:range.range()/NUMSTEPS};DataGroup.prototype.getDistinctValues=function(column,data){if(data===undefined){data=this.dataTable}var values=[];for(var i=0;i<data.length;i++){var value=data[i][column]||0;if(values.indexOf(value)===-1){values.push(value)}}return values.sort(function(a,b){return a-b})};DataGroup.prototype.getSmallestDifference=function(data,column){var values=this.getDistinctValues(data,column);var smallest_diff=null;for(var i=1;i<values.length;i++){var diff=values[i]-values[i-1];if(smallest_diff==null||smallest_diff>diff){smallest_diff=diff}}return smallest_diff};DataGroup.prototype.getColumnRange=function(data,column){var range=new Range;for(var i=0;i<data.length;i++){var item=data[i][column];range.adjust(item)}return range};DataGroup.prototype.getNumberOfRows=function(){return this.dataTable.length};DataGroup.prototype._setRangeDefaults=function(range,defaultMin,defaultMax){if(defaultMin!==undefined){range.min=defaultMin}if(defaultMax!==undefined){range.max=defaultMax}if(range.max<=range.min)range.max=range.min+1};DataGroup.prototype.getDataTable=function(){return this.dataTable};DataGroup.prototype.getDataSet=function(){return this.dataSet};DataGroup.prototype.getDataPoints=function(data){var dataPoints=[];for(var i=0;i<data.length;i++){var point=new Point3d;point.x=data[i][this.colX]||0;point.y=data[i][this.colY]||0;point.z=data[i][this.colZ]||0;point.data=data[i];if(this.colValue!==undefined){point.value=data[i][this.colValue]||0}var obj={};obj.point=point;obj.bottom=new Point3d(point.x,point.y,this.zRange.min);obj.trans=undefined;obj.screen=undefined;dataPoints.push(obj)}return dataPoints};DataGroup.prototype.initDataAsMatrix=function(data){var x,y,i,obj;var dataX=this.getDistinctValues(this.colX,data);var dataY=this.getDistinctValues(this.colY,data);var dataPoints=this.getDataPoints(data);var dataMatrix=[];for(i=0;i<dataPoints.length;i++){obj=dataPoints[i];var xIndex=dataX.indexOf(obj.point.x);var yIndex=dataY.indexOf(obj.point.y);if(dataMatrix[xIndex]===undefined){dataMatrix[xIndex]=[]}dataMatrix[xIndex][yIndex]=obj}for(x=0;x<dataMatrix.length;x++){for(y=0;y<dataMatrix[x].length;y++){if(dataMatrix[x][y]){dataMatrix[x][y].pointRight=x<dataMatrix.length-1?dataMatrix[x+1][y]:undefined;dataMatrix[x][y].pointTop=y<dataMatrix[x].length-1?dataMatrix[x][y+1]:undefined;dataMatrix[x][y].pointCross=x<dataMatrix.length-1&&y<dataMatrix[x].length-1?dataMatrix[x+1][y+1]:undefined}}}return dataPoints};DataGroup.prototype.getInfo=function(){var dataFilter=this.dataFilter;if(!dataFilter)return undefined;return dataFilter.getLabel()+\": \"+dataFilter.getSelectedValue()};DataGroup.prototype.reload=function(){if(this.dataTable){this.setData(this.dataTable)}};DataGroup.prototype._getDataPoints=function(data){var dataPoints=[];if(this.style===Settings.STYLE.GRID||this.style===Settings.STYLE.SURFACE){dataPoints=this.initDataAsMatrix(data)}else{this._checkValueField(data);dataPoints=this.getDataPoints(data);if(this.style===Settings.STYLE.LINE){for(var i=0;i<dataPoints.length;i++){if(i>0){dataPoints[i-1].pointNext=dataPoints[i]}}}}return dataPoints};DataGroup.prototype._checkValueField=function(data){var hasValueField=this.style===Settings.STYLE.BARCOLOR||this.style===Settings.STYLE.BARSIZE||this.style===Settings.STYLE.DOTCOLOR||this.style===Settings.STYLE.DOTSIZE;if(!hasValueField){return}if(this.colValue===undefined){throw new Error(\"Expected data to have \"+\" field 'style' \"+\" for graph style '\"+this.style+\"'\")}if(data[0][this.colValue]===undefined){throw new Error(\"Expected data to have \"+\" field '\"+this.colValue+\"' \"+\" for graph style '\"+this.style+\"'\")}};module.exports=DataGroup},function(module,exports,__webpack_require__){\"use strict\";function Range(){this.min=undefined;this.max=undefined}Range.prototype.adjust=function(value){if(value===undefined)return;if(this.min===undefined||this.min>value){this.min=value}if(this.max===undefined||this.max<value){this.max=value}};Range.prototype.combine=function(range){this.add(range.min);this.add(range.max)};Range.prototype.expand=function(val){if(val===undefined){return}var newMin=this.min-val;var newMax=this.max+val;if(newMin>newMax){throw new Error(\"Passed expansion value makes range invalid\")}this.min=newMin;this.max=newMax};Range.prototype.range=function(){return this.max-this.min};Range.prototype.center=function(){return(this.min+this.max)/2};module.exports=Range},function(module,exports,__webpack_require__){\"use strict\";var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(factory){if(true){!(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,__WEBPACK_AMD_DEFINE_RESULT__=typeof __WEBPACK_AMD_DEFINE_FACTORY__===\"function\"?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof exports===\"object\"){module.exports=factory()}else{window.propagating=factory()}})(function(){var _firstTarget=null;return function propagating(hammer,options){var _options=options||{preventDefault:false};if(hammer.Manager){var Hammer=hammer;var PropagatingHammer=function(element,options){var o=Object.create(_options);if(options)Hammer.assign(o,options);return propagating(new Hammer(element,o),o)};Hammer.assign(PropagatingHammer,Hammer);PropagatingHammer.Manager=function(element,options){var o=Object.create(_options);if(options)Hammer.assign(o,options);return propagating(new Hammer.Manager(element,o),o)};return PropagatingHammer}var wrapper=Object.create(hammer);var element=hammer.element;if(!element.hammer)element.hammer=[];element.hammer.push(wrapper);hammer.on(\"hammer.input\",function(event){if(_options.preventDefault===true||_options.preventDefault===event.pointerType){event.preventDefault()}if(event.isFirst){_firstTarget=event.target}});wrapper._handlers={};wrapper.on=function(events,handler){split(events).forEach(function(event){var _handlers=wrapper._handlers[event];if(!_handlers){wrapper._handlers[event]=_handlers=[];hammer.on(event,propagatedHandler)}_handlers.push(handler)});return wrapper};wrapper.off=function(events,handler){split(events).forEach(function(event){var _handlers=wrapper._handlers[event];if(_handlers){_handlers=handler?_handlers.filter(function(h){return h!==handler}):[];if(_handlers.length>0){wrapper._handlers[event]=_handlers}else{hammer.off(event,propagatedHandler);delete wrapper._handlers[event]}}});return wrapper};wrapper.emit=function(eventType,event){_firstTarget=event.target;hammer.emit(eventType,event)};wrapper.destroy=function(){var hammers=hammer.element.hammer;var idx=hammers.indexOf(wrapper);if(idx!==-1)hammers.splice(idx,1);if(!hammers.length)delete hammer.element.hammer;wrapper._handlers={};hammer.destroy()};function split(events){return events.match(/[^ ]+/g)}function propagatedHandler(event){if(event.type!==\"hammer.input\"){if(!event.srcEvent._handled){event.srcEvent._handled={}}if(event.srcEvent._handled[event.type]){return}else{event.srcEvent._handled[event.type]=true}}var stopped=false\n;event.stopPropagation=function(){stopped=true};var srcStop=event.srcEvent.stopPropagation.bind(event.srcEvent);if(typeof srcStop==\"function\"){event.srcEvent.stopPropagation=function(){srcStop();event.stopPropagation()}}event.firstTarget=_firstTarget;var elem=_firstTarget;while(elem&&!stopped){var elemHammer=elem.hammer;if(elemHammer){var _handlers;for(var k=0;k<elemHammer.length;k++){_handlers=elemHammer[k]._handlers[event.type];if(_handlers)for(var i=0;i<_handlers.length&&!stopped;i++){_handlers[i](event)}}}elem=elem.parentNode}}return wrapper}})},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;(function(window,document,exportName,undefined){\"use strict\";var VENDOR_PREFIXES=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"];var TEST_ELEMENT=document.createElement(\"div\");var TYPE_FUNCTION=\"function\";var round=Math.round;var abs=Math.abs;var now=Date.now;function setTimeoutContext(fn,timeout,context){return setTimeout(bindFn(fn,context),timeout)}function invokeArrayArg(arg,fn,context){if(Array.isArray(arg)){each(arg,context[fn],context);return true}return false}function each(obj,iterator,context){var i;if(!obj){return}if(obj.forEach){obj.forEach(iterator,context)}else if(obj.length!==undefined){i=0;while(i<obj.length){iterator.call(context,obj[i],i,obj);i++}}else{for(i in obj){obj.hasOwnProperty(i)&&iterator.call(context,obj[i],i,obj)}}}function deprecate(method,name,message){var deprecationMessage=\"DEPRECATED METHOD: \"+name+\"\\n\"+message+\" AT \\n\";return function(){var e=new Error(\"get-stack-trace\");var stack=e&&e.stack?e.stack.replace(/^[^\\(]+?[\\n$]/gm,\"\").replace(/^\\s+at\\s+/gm,\"\").replace(/^Object.<anonymous>\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\";var log=window.console&&(window.console.warn||window.console.log);if(log){log.call(window.console,deprecationMessage,stack)}return method.apply(this,arguments)}}var assign;if(typeof Object.assign!==\"function\"){assign=function assign(target){if(target===undefined||target===null){throw new TypeError(\"Cannot convert undefined or null to object\")}var output=Object(target);for(var index=1;index<arguments.length;index++){var source=arguments[index];if(source!==undefined&&source!==null){for(var nextKey in source){if(source.hasOwnProperty(nextKey)){output[nextKey]=source[nextKey]}}}}return output}}else{assign=Object.assign}var extend=deprecate(function extend(dest,src,merge){var keys=Object.keys(src);var i=0;while(i<keys.length){if(!merge||merge&&dest[keys[i]]===undefined){dest[keys[i]]=src[keys[i]]}i++}return dest},\"extend\",\"Use `assign`.\");var merge=deprecate(function merge(dest,src){return extend(dest,src,true)},\"merge\",\"Use `assign`.\");function inherit(child,base,properties){var baseP=base.prototype,childP;childP=child.prototype=Object.create(baseP);childP.constructor=child;childP._super=baseP;if(properties){assign(childP,properties)}}function bindFn(fn,context){return function boundFn(){return fn.apply(context,arguments)}}function boolOrFn(val,args){if(typeof val==TYPE_FUNCTION){return val.apply(args?args[0]||undefined:undefined,args)}return val}function ifUndefined(val1,val2){return val1===undefined?val2:val1}function addEventListeners(target,types,handler){each(splitStr(types),function(type){target.addEventListener(type,handler,false)})}function removeEventListeners(target,types,handler){each(splitStr(types),function(type){target.removeEventListener(type,handler,false)})}function hasParent(node,parent){while(node){if(node==parent){return true}node=node.parentNode}return false}function inStr(str,find){return str.indexOf(find)>-1}function splitStr(str){return str.trim().split(/\\s+/g)}function inArray(src,find,findByKey){if(src.indexOf&&!findByKey){return src.indexOf(find)}else{var i=0;while(i<src.length){if(findByKey&&src[i][findByKey]==find||!findByKey&&src[i]===find){return i}i++}return-1}}function toArray(obj){return Array.prototype.slice.call(obj,0)}function uniqueArray(src,key,sort){var results=[];var values=[];var i=0;while(i<src.length){var val=key?src[i][key]:src[i];if(inArray(values,val)<0){results.push(src[i])}values[i]=val;i++}if(sort){if(!key){results=results.sort()}else{results=results.sort(function sortUniqueArray(a,b){return a[key]>b[key]})}}return results}function prefixed(obj,property){var prefix,prop;var camelProp=property[0].toUpperCase()+property.slice(1);var i=0;while(i<VENDOR_PREFIXES.length){prefix=VENDOR_PREFIXES[i];prop=prefix?prefix+camelProp:property;if(prop in obj){return prop}i++}return undefined}var _uniqueId=1;function uniqueId(){return _uniqueId++}function getWindowForElement(element){var doc=element.ownerDocument||element;return doc.defaultView||doc.parentWindow||window}var MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android/i;var SUPPORT_TOUCH=\"ontouchstart\"in window;var SUPPORT_POINTER_EVENTS=prefixed(window,\"PointerEvent\")!==undefined;var SUPPORT_ONLY_TOUCH=SUPPORT_TOUCH&&MOBILE_REGEX.test(navigator.userAgent);var INPUT_TYPE_TOUCH=\"touch\";var INPUT_TYPE_PEN=\"pen\";var INPUT_TYPE_MOUSE=\"mouse\";var INPUT_TYPE_KINECT=\"kinect\";var COMPUTE_INTERVAL=25;var INPUT_START=1;var INPUT_MOVE=2;var INPUT_END=4;var INPUT_CANCEL=8;var DIRECTION_NONE=1;var DIRECTION_LEFT=2;var DIRECTION_RIGHT=4;var DIRECTION_UP=8;var DIRECTION_DOWN=16;var DIRECTION_HORIZONTAL=DIRECTION_LEFT|DIRECTION_RIGHT;var DIRECTION_VERTICAL=DIRECTION_UP|DIRECTION_DOWN;var DIRECTION_ALL=DIRECTION_HORIZONTAL|DIRECTION_VERTICAL;var PROPS_XY=[\"x\",\"y\"];var PROPS_CLIENT_XY=[\"clientX\",\"clientY\"];function Input(manager,callback){var self=this;this.manager=manager;this.callback=callback;this.element=manager.element;this.target=manager.options.inputTarget;this.domHandler=function(ev){if(boolOrFn(manager.options.enable,[manager])){self.handler(ev)}};this.init()}Input.prototype={handler:function(){},init:function(){this.evEl&&addEventListeners(this.element,this.evEl,this.domHandler);this.evTarget&&addEventListeners(this.target,this.evTarget,this.domHandler);this.evWin&&addEventListeners(getWindowForElement(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&removeEventListeners(this.element,this.evEl,this.domHandler);this.evTarget&&removeEventListeners(this.target,this.evTarget,this.domHandler);this.evWin&&removeEventListeners(getWindowForElement(this.element),this.evWin,this.domHandler)}};function createInputInstance(manager){var Type;var inputClass=manager.options.inputClass;if(inputClass){Type=inputClass}else if(SUPPORT_POINTER_EVENTS){Type=PointerEventInput}else if(SUPPORT_ONLY_TOUCH){Type=TouchInput}else if(!SUPPORT_TOUCH){Type=MouseInput}else{Type=TouchMouseInput}return new Type(manager,inputHandler)}function inputHandler(manager,eventType,input){var pointersLen=input.pointers.length;var changedPointersLen=input.changedPointers.length;var isFirst=eventType&INPUT_START&&pointersLen-changedPointersLen===0;var isFinal=eventType&(INPUT_END|INPUT_CANCEL)&&pointersLen-changedPointersLen===0;input.isFirst=!!isFirst;input.isFinal=!!isFinal;if(isFirst){manager.session={}}input.eventType=eventType;computeInputData(manager,input);manager.emit(\"hammer.input\",input);manager.recognize(input);manager.session.prevInput=input}function computeInputData(manager,input){var session=manager.session;var pointers=input.pointers;var pointersLength=pointers.length;if(!session.firstInput){session.firstInput=simpleCloneInputData(input)}if(pointersLength>1&&!session.firstMultiple){session.firstMultiple=simpleCloneInputData(input)}else if(pointersLength===1){session.firstMultiple=false}var firstInput=session.firstInput;var firstMultiple=session.firstMultiple;var offsetCenter=firstMultiple?firstMultiple.center:firstInput.center;var center=input.center=getCenter(pointers);input.timeStamp=now();input.deltaTime=input.timeStamp-firstInput.timeStamp;input.angle=getAngle(offsetCenter,center);input.distance=getDistance(offsetCenter,center);computeDeltaXY(session,input);input.offsetDirection=getDirection(input.deltaX,input.deltaY);var overallVelocity=getVelocity(input.deltaTime,input.deltaX,input.deltaY);input.overallVelocityX=overallVelocity.x;input.overallVelocityY=overallVelocity.y;input.overallVelocity=abs(overallVelocity.x)>abs(overallVelocity.y)?overallVelocity.x:overallVelocity.y;input.scale=firstMultiple?getScale(firstMultiple.pointers,pointers):1;input.rotation=firstMultiple?getRotation(firstMultiple.pointers,pointers):0;input.maxPointers=!session.prevInput?input.pointers.length:input.pointers.length>session.prevInput.maxPointers?input.pointers.length:session.prevInput.maxPointers;computeIntervalInputData(session,input);var target=manager.element;if(hasParent(input.srcEvent.target,target)){target=input.srcEvent.target}input.target=target}function computeDeltaXY(session,input){var center=input.center;var offset=session.offsetDelta||{};var prevDelta=session.prevDelta||{};var prevInput=session.prevInput||{};if(input.eventType===INPUT_START||prevInput.eventType===INPUT_END){prevDelta=session.prevDelta={x:prevInput.deltaX||0,y:prevInput.deltaY||0};offset=session.offsetDelta={x:center.x,y:center.y}}input.deltaX=prevDelta.x+(center.x-offset.x);input.deltaY=prevDelta.y+(center.y-offset.y)}function computeIntervalInputData(session,input){var last=session.lastInterval||input,deltaTime=input.timeStamp-last.timeStamp,velocity,velocityX,velocityY,direction;if(input.eventType!=INPUT_CANCEL&&(deltaTime>COMPUTE_INTERVAL||last.velocity===undefined)){var deltaX=input.deltaX-last.deltaX;var deltaY=input.deltaY-last.deltaY;var v=getVelocity(deltaTime,deltaX,deltaY);velocityX=v.x;velocityY=v.y;velocity=abs(v.x)>abs(v.y)?v.x:v.y;direction=getDirection(deltaX,deltaY);session.lastInterval=input}else{velocity=last.velocity;velocityX=last.velocityX;velocityY=last.velocityY;direction=last.direction}input.velocity=velocity;input.velocityX=velocityX;input.velocityY=velocityY;input.direction=direction}function simpleCloneInputData(input){var pointers=[];var i=0;while(i<input.pointers.length){pointers[i]={clientX:round(input.pointers[i].clientX),clientY:round(input.pointers[i].clientY)};i++}return{timeStamp:now(),pointers:pointers,center:getCenter(pointers),deltaX:input.deltaX,deltaY:input.deltaY}}function getCenter(pointers){var pointersLength=pointers.length;if(pointersLength===1){return{x:round(pointers[0].clientX),y:round(pointers[0].clientY)}}var x=0,y=0,i=0;while(i<pointersLength){x+=pointers[i].clientX;y+=pointers[i].clientY;i++}return{x:round(x/pointersLength),y:round(y/pointersLength)}}function getVelocity(deltaTime,x,y){return{x:x/deltaTime||0,y:y/deltaTime||0}}function getDirection(x,y){if(x===y){return DIRECTION_NONE}if(abs(x)>=abs(y)){return x<0?DIRECTION_LEFT:DIRECTION_RIGHT}return y<0?DIRECTION_UP:DIRECTION_DOWN}function getDistance(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.sqrt(x*x+y*y)}function getAngle(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.atan2(y,x)*180/Math.PI}function getRotation(start,end){return getAngle(end[1],end[0],PROPS_CLIENT_XY)+getAngle(start[1],start[0],PROPS_CLIENT_XY)}function getScale(start,end){return getDistance(end[0],end[1],PROPS_CLIENT_XY)/getDistance(start[0],start[1],PROPS_CLIENT_XY)}var MOUSE_INPUT_MAP={mousedown:INPUT_START,mousemove:INPUT_MOVE,mouseup:INPUT_END};var MOUSE_ELEMENT_EVENTS=\"mousedown\";var MOUSE_WINDOW_EVENTS=\"mousemove mouseup\";function MouseInput(){this.evEl=MOUSE_ELEMENT_EVENTS;this.evWin=MOUSE_WINDOW_EVENTS;this.pressed=false;Input.apply(this,arguments)}inherit(MouseInput,Input,{handler:function MEhandler(ev){var eventType=MOUSE_INPUT_MAP[ev.type];if(eventType&INPUT_START&&ev.button===0){this.pressed=true}if(eventType&INPUT_MOVE&&ev.which!==1){eventType=INPUT_END}if(!this.pressed){return}if(eventType&INPUT_END){this.pressed=false}this.callback(this.manager,eventType,{pointers:[ev],changedPointers:[ev],pointerType:INPUT_TYPE_MOUSE,srcEvent:ev})}});var POINTER_INPUT_MAP={pointerdown:INPUT_START,pointermove:INPUT_MOVE,pointerup:INPUT_END,pointercancel:INPUT_CANCEL,pointerout:INPUT_CANCEL};var IE10_POINTER_TYPE_ENUM={2:INPUT_TYPE_TOUCH,3:INPUT_TYPE_PEN,4:INPUT_TYPE_MOUSE,5:INPUT_TYPE_KINECT};var POINTER_ELEMENT_EVENTS=\"pointerdown\";var POINTER_WINDOW_EVENTS=\"pointermove pointerup pointercancel\";if(window.MSPointerEvent&&!window.PointerEvent){POINTER_ELEMENT_EVENTS=\"MSPointerDown\";POINTER_WINDOW_EVENTS=\"MSPointerMove MSPointerUp MSPointerCancel\"}function PointerEventInput(){this.evEl=POINTER_ELEMENT_EVENTS;this.evWin=POINTER_WINDOW_EVENTS;Input.apply(this,arguments);this.store=this.manager.session.pointerEvents=[]}inherit(PointerEventInput,Input,{handler:function PEhandler(ev){var store=this.store;var removePointer=false;var eventTypeNormalized=ev.type.toLowerCase().replace(\"ms\",\"\");var eventType=POINTER_INPUT_MAP[eventTypeNormalized];var pointerType=IE10_POINTER_TYPE_ENUM[ev.pointerType]||ev.pointerType;var isTouch=pointerType==INPUT_TYPE_TOUCH;var storeIndex=inArray(store,ev.pointerId,\"pointerId\");if(eventType&INPUT_START&&(ev.button===0||isTouch)){if(storeIndex<0){store.push(ev);storeIndex=store.length-1}}else if(eventType&(INPUT_END|INPUT_CANCEL)){removePointer=true}if(storeIndex<0){return}store[storeIndex]=ev;this.callback(this.manager,eventType,{pointers:store,changedPointers:[ev],pointerType:pointerType,srcEvent:ev});if(removePointer){store.splice(storeIndex,1)}}});var SINGLE_TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var SINGLE_TOUCH_TARGET_EVENTS=\"touchstart\";var SINGLE_TOUCH_WINDOW_EVENTS=\"touchstart touchmove touchend touchcancel\";function SingleTouchInput(){this.evTarget=SINGLE_TOUCH_TARGET_EVENTS;this.evWin=SINGLE_TOUCH_WINDOW_EVENTS;this.started=false;Input.apply(this,arguments)}inherit(SingleTouchInput,Input,{handler:function TEhandler(ev){var type=SINGLE_TOUCH_INPUT_MAP[ev.type];if(type===INPUT_START){this.started=true}if(!this.started){return}var touches=normalizeSingleTouches.call(this,ev,type);if(type&(INPUT_END|INPUT_CANCEL)&&touches[0].length-touches[1].length===0){this.started=false}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function normalizeSingleTouches(ev,type){var all=toArray(ev.touches);var changed=toArray(ev.changedTouches);if(type&(INPUT_END|INPUT_CANCEL)){all=uniqueArray(all.concat(changed),\"identifier\",true)}return[all,changed]}var TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var TOUCH_TARGET_EVENTS=\"touchstart touchmove touchend touchcancel\";function TouchInput(){this.evTarget=TOUCH_TARGET_EVENTS;this.targetIds={};Input.apply(this,arguments)}inherit(TouchInput,Input,{handler:function MTEhandler(ev){var type=TOUCH_INPUT_MAP[ev.type];var touches=getTouches.call(this,ev,type);if(!touches){return}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function getTouches(ev,type){var allTouches=toArray(ev.touches);var targetIds=this.targetIds;if(type&(INPUT_START|INPUT_MOVE)&&allTouches.length===1){targetIds[allTouches[0].identifier]=true;return[allTouches,allTouches]}var i,targetTouches,changedTouches=toArray(ev.changedTouches),changedTargetTouches=[],target=this.target;targetTouches=allTouches.filter(function(touch){return hasParent(touch.target,target)});if(type===INPUT_START){i=0;while(i<targetTouches.length){targetIds[targetTouches[i].identifier]=true;i++}}i=0;while(i<changedTouches.length){if(targetIds[changedTouches[i].identifier]){changedTargetTouches.push(changedTouches[i])}if(type&(INPUT_END|INPUT_CANCEL)){delete targetIds[changedTouches[i].identifier]}i++}if(!changedTargetTouches.length){return}return[uniqueArray(targetTouches.concat(changedTargetTouches),\"identifier\",true),changedTargetTouches]}var DEDUP_TIMEOUT=2500;var DEDUP_DISTANCE=25;function TouchMouseInput(){Input.apply(this,arguments);var handler=bindFn(this.handler,this);this.touch=new TouchInput(this.manager,handler);this.mouse=new MouseInput(this.manager,handler);this.primaryTouch=null;this.lastTouches=[]}inherit(TouchMouseInput,Input,{handler:function TMEhandler(manager,inputEvent,inputData){var isTouch=inputData.pointerType==INPUT_TYPE_TOUCH,isMouse=inputData.pointerType==INPUT_TYPE_MOUSE;if(isMouse&&inputData.sourceCapabilities&&inputData.sourceCapabilities.firesTouchEvents){return}if(isTouch){recordTouches.call(this,inputEvent,inputData)}else if(isMouse&&isSyntheticEvent.call(this,inputData)){return}this.callback(manager,inputEvent,inputData)},destroy:function destroy(){this.touch.destroy();this.mouse.destroy()}});function recordTouches(eventType,eventData){if(eventType&INPUT_START){this.primaryTouch=eventData.changedPointers[0].identifier;setLastTouch.call(this,eventData)}else if(eventType&(INPUT_END|INPUT_CANCEL)){setLastTouch.call(this,eventData)}}function setLastTouch(eventData){var touch=eventData.changedPointers[0];if(touch.identifier===this.primaryTouch){var lastTouch={x:touch.clientX,y:touch.clientY};this.lastTouches.push(lastTouch);var lts=this.lastTouches;var removeLastTouch=function(){var i=lts.indexOf(lastTouch);if(i>-1){lts.splice(i,1)}};setTimeout(removeLastTouch,DEDUP_TIMEOUT)}}function isSyntheticEvent(eventData){var x=eventData.srcEvent.clientX,y=eventData.srcEvent.clientY;for(var i=0;i<this.lastTouches.length;i++){var t=this.lastTouches[i];var dx=Math.abs(x-t.x),dy=Math.abs(y-t.y);if(dx<=DEDUP_DISTANCE&&dy<=DEDUP_DISTANCE){return true}}return false}var PREFIXED_TOUCH_ACTION=prefixed(TEST_ELEMENT.style,\"touchAction\");var NATIVE_TOUCH_ACTION=PREFIXED_TOUCH_ACTION!==undefined;var TOUCH_ACTION_COMPUTE=\"compute\";var TOUCH_ACTION_AUTO=\"auto\";var TOUCH_ACTION_MANIPULATION=\"manipulation\";var TOUCH_ACTION_NONE=\"none\";var TOUCH_ACTION_PAN_X=\"pan-x\";var TOUCH_ACTION_PAN_Y=\"pan-y\";var TOUCH_ACTION_MAP=getTouchActionProps();function TouchAction(manager,value){this.manager=manager;this.set(value)}TouchAction.prototype={set:function(value){if(value==TOUCH_ACTION_COMPUTE){value=this.compute()}if(NATIVE_TOUCH_ACTION&&this.manager.element.style&&TOUCH_ACTION_MAP[value]){this.manager.element.style[PREFIXED_TOUCH_ACTION]=value}this.actions=value.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var actions=[];each(this.manager.recognizers,function(recognizer){if(boolOrFn(recognizer.options.enable,[recognizer])){actions=actions.concat(recognizer.getTouchAction())}});return cleanTouchActions(actions.join(\" \"))},preventDefaults:function(input){var srcEvent=input.srcEvent;var direction=input.offsetDirection;if(this.manager.session.prevented){srcEvent.preventDefault();return}var actions=this.actions;var hasNone=inStr(actions,TOUCH_ACTION_NONE)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];var hasPanY=inStr(actions,TOUCH_ACTION_PAN_Y)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];var hasPanX=inStr(actions,TOUCH_ACTION_PAN_X)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];if(hasNone){var isTapPointer=input.pointers.length===1;var isTapMovement=input.distance<2;var isTapTouchTime=input.deltaTime<250;if(isTapPointer&&isTapMovement&&isTapTouchTime){return}}if(hasPanX&&hasPanY){return}if(hasNone||hasPanY&&direction&DIRECTION_HORIZONTAL||hasPanX&&direction&DIRECTION_VERTICAL){return this.preventSrc(srcEvent)}},preventSrc:function(srcEvent){this.manager.session.prevented=true;srcEvent.preventDefault()}};function cleanTouchActions(actions){if(inStr(actions,TOUCH_ACTION_NONE)){return TOUCH_ACTION_NONE}var hasPanX=inStr(actions,TOUCH_ACTION_PAN_X);var hasPanY=inStr(actions,TOUCH_ACTION_PAN_Y);if(hasPanX&&hasPanY){return TOUCH_ACTION_NONE}if(hasPanX||hasPanY){return hasPanX?TOUCH_ACTION_PAN_X:TOUCH_ACTION_PAN_Y}if(inStr(actions,TOUCH_ACTION_MANIPULATION)){return TOUCH_ACTION_MANIPULATION}return TOUCH_ACTION_AUTO}function getTouchActionProps(){if(!NATIVE_TOUCH_ACTION){return false}var touchMap={};var cssSupports=window.CSS&&window.CSS.supports;[\"auto\",\"manipulation\",\"pan-y\",\"pan-x\",\"pan-x pan-y\",\"none\"].forEach(function(val){touchMap[val]=cssSupports?window.CSS.supports(\"touch-action\",val):true});return touchMap}var STATE_POSSIBLE=1;var STATE_BEGAN=2;var STATE_CHANGED=4;var STATE_ENDED=8;var STATE_RECOGNIZED=STATE_ENDED;var STATE_CANCELLED=16;var STATE_FAILED=32;function Recognizer(options){this.options=assign({},this.defaults,options||{});this.id=uniqueId();this.manager=null;this.options.enable=ifUndefined(this.options.enable,true);this.state=STATE_POSSIBLE;this.simultaneous={};this.requireFail=[]}Recognizer.prototype={defaults:{},set:function(options){assign(this.options,options);this.manager&&this.manager.touchAction.update();return this},recognizeWith:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"recognizeWith\",this)){return this}var simultaneous=this.simultaneous;otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);if(!simultaneous[otherRecognizer.id]){simultaneous[otherRecognizer.id]=otherRecognizer;otherRecognizer.recognizeWith(this)}return this},dropRecognizeWith:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"dropRecognizeWith\",this)){return this}otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);delete this.simultaneous[otherRecognizer.id];return this},requireFailure:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"requireFailure\",this)){return this}var requireFail=this.requireFail;otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);if(inArray(requireFail,otherRecognizer)===-1){requireFail.push(otherRecognizer);otherRecognizer.requireFailure(this)}return this},dropRequireFailure:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"dropRequireFailure\",this)){return this}otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);var index=inArray(this.requireFail,otherRecognizer);if(index>-1){this.requireFail.splice(index,1)}return this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(otherRecognizer){return!!this.simultaneous[otherRecognizer.id]},emit:function(input){var self=this;var state=this.state;function emit(event){self.manager.emit(event,input)}if(state<STATE_ENDED){emit(self.options.event+stateStr(state))}emit(self.options.event);if(input.additionalEvent){emit(input.additionalEvent)}if(state>=STATE_ENDED){emit(self.options.event+stateStr(state))}},tryEmit:function(input){if(this.canEmit()){return this.emit(input)}this.state=STATE_FAILED},canEmit:function(){var i=0;while(i<this.requireFail.length){if(!(this.requireFail[i].state&(STATE_FAILED|STATE_POSSIBLE))){return false}i++}return true},recognize:function(inputData){var inputDataClone=assign({},inputData);if(!boolOrFn(this.options.enable,[this,inputDataClone])){this.reset();this.state=STATE_FAILED;return}if(this.state&(STATE_RECOGNIZED|STATE_CANCELLED|STATE_FAILED)){this.state=STATE_POSSIBLE}this.state=this.process(inputDataClone);if(this.state&(STATE_BEGAN|STATE_CHANGED|STATE_ENDED|STATE_CANCELLED)){this.tryEmit(inputDataClone)}},process:function(inputData){},getTouchAction:function(){},reset:function(){}};function stateStr(state){if(state&STATE_CANCELLED){return\"cancel\"}else if(state&STATE_ENDED){return\"end\"}else if(state&STATE_CHANGED){return\"move\"}else if(state&STATE_BEGAN){return\"start\"}return\"\"}function directionStr(direction){if(direction==DIRECTION_DOWN){return\"down\"}else if(direction==DIRECTION_UP){return\"up\"}else if(direction==DIRECTION_LEFT){return\"left\"}else if(direction==DIRECTION_RIGHT){return\"right\"}return\"\"}function getRecognizerByNameIfManager(otherRecognizer,recognizer){var manager=recognizer.manager;if(manager){return manager.get(otherRecognizer)}return otherRecognizer}function AttrRecognizer(){Recognizer.apply(this,arguments)}inherit(AttrRecognizer,Recognizer,{defaults:{pointers:1},attrTest:function(input){var optionPointers=this.options.pointers;return optionPointers===0||input.pointers.length===optionPointers},process:function(input){var state=this.state;var eventType=input.eventType;var isRecognized=state&(STATE_BEGAN|STATE_CHANGED);var isValid=this.attrTest(input);if(isRecognized&&(eventType&INPUT_CANCEL||!isValid)){return state|STATE_CANCELLED}else if(isRecognized||isValid){if(eventType&INPUT_END){return state|STATE_ENDED}else if(!(state&STATE_BEGAN)){return STATE_BEGAN}return state|STATE_CHANGED}return STATE_FAILED}});function PanRecognizer(){AttrRecognizer.apply(this,arguments);this.pX=null;this.pY=null}inherit(PanRecognizer,AttrRecognizer,{defaults:{event:\"pan\",threshold:10,pointers:1,direction:DIRECTION_ALL},getTouchAction:function(){var direction=this.options.direction;var actions=[];if(direction&DIRECTION_HORIZONTAL){actions.push(TOUCH_ACTION_PAN_Y)}if(direction&DIRECTION_VERTICAL){actions.push(TOUCH_ACTION_PAN_X)}return actions},directionTest:function(input){var options=this.options;var hasMoved=true;var distance=input.distance;var direction=input.direction;var x=input.deltaX;var y=input.deltaY;if(!(direction&options.direction)){if(options.direction&DIRECTION_HORIZONTAL){direction=x===0?DIRECTION_NONE:x<0?DIRECTION_LEFT:DIRECTION_RIGHT;hasMoved=x!=this.pX;distance=Math.abs(input.deltaX)}else{direction=y===0?DIRECTION_NONE:y<0?DIRECTION_UP:DIRECTION_DOWN;hasMoved=y!=this.pY;distance=Math.abs(input.deltaY)}}input.direction=direction;return hasMoved&&distance>options.threshold&&direction&options.direction},attrTest:function(input){return AttrRecognizer.prototype.attrTest.call(this,input)&&(this.state&STATE_BEGAN||!(this.state&STATE_BEGAN)&&this.directionTest(input))},emit:function(input){this.pX=input.deltaX;this.pY=input.deltaY;var direction=directionStr(input.direction);if(direction){input.additionalEvent=this.options.event+direction}this._super.emit.call(this,input)}});function PinchRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(PinchRecognizer,AttrRecognizer,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.scale-1)>this.options.threshold||this.state&STATE_BEGAN)},emit:function(input){if(input.scale!==1){var inOut=input.scale<1?\"in\":\"out\";input.additionalEvent=this.options.event+inOut}this._super.emit.call(this,input)}});function PressRecognizer(){Recognizer.apply(this,arguments);this._timer=null;this._input=null}inherit(PressRecognizer,Recognizer,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[TOUCH_ACTION_AUTO]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance<options.threshold;var validTime=input.deltaTime>options.time;this._input=input;if(!validMovement||!validPointers||input.eventType&(INPUT_END|INPUT_CANCEL)&&!validTime){this.reset()}else if(input.eventType&INPUT_START){this.reset();this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit()},options.time,this)}else if(input.eventType&INPUT_END){return STATE_RECOGNIZED}return STATE_FAILED},reset:function(){clearTimeout(this._timer)},emit:function(input){if(this.state!==STATE_RECOGNIZED){return}if(input&&input.eventType&INPUT_END){this.manager.emit(this.options.event+\"up\",input)}else{this._input.timeStamp=now();this.manager.emit(this.options.event,this._input)}}});function RotateRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(RotateRecognizer,AttrRecognizer,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.rotation)>this.options.threshold||this.state&STATE_BEGAN)}});function SwipeRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(SwipeRecognizer,AttrRecognizer,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:DIRECTION_HORIZONTAL|DIRECTION_VERTICAL,pointers:1},getTouchAction:function(){return PanRecognizer.prototype.getTouchAction.call(this)},attrTest:function(input){var direction=this.options.direction;var velocity;if(direction&(DIRECTION_HORIZONTAL|DIRECTION_VERTICAL)){velocity=input.overallVelocity}else if(direction&DIRECTION_HORIZONTAL){velocity=input.overallVelocityX}else if(direction&DIRECTION_VERTICAL){velocity=input.overallVelocityY}return this._super.attrTest.call(this,input)&&direction&input.offsetDirection&&input.distance>this.options.threshold&&input.maxPointers==this.options.pointers&&abs(velocity)>this.options.velocity&&input.eventType&INPUT_END},emit:function(input){var direction=directionStr(input.offsetDirection);if(direction){this.manager.emit(this.options.event+direction,input)}this.manager.emit(this.options.event,input)}});function TapRecognizer(){Recognizer.apply(this,arguments);this.pTime=false;this.pCenter=false;this._timer=null;this._input=null;this.count=0}inherit(TapRecognizer,Recognizer,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[TOUCH_ACTION_MANIPULATION]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance<options.threshold;var validTouchTime=input.deltaTime<options.time;this.reset();if(input.eventType&INPUT_START&&this.count===0){return this.failTimeout()}if(validMovement&&validTouchTime&&validPointers){if(input.eventType!=INPUT_END){return this.failTimeout()}var validInterval=this.pTime?input.timeStamp-this.pTime<options.interval:true;var validMultiTap=!this.pCenter||getDistance(this.pCenter,input.center)<options.posThreshold;this.pTime=input.timeStamp;this.pCenter=input.center;if(!validMultiTap||!validInterval){this.count=1}else{this.count+=1}this._input=input;var tapCount=this.count%options.taps;if(tapCount===0){if(!this.hasRequireFailures()){return STATE_RECOGNIZED}else{this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit()},options.interval,this);return STATE_BEGAN}}}return STATE_FAILED},failTimeout:function(){this._timer=setTimeoutContext(function(){this.state=STATE_FAILED},this.options.interval,this);return STATE_FAILED},reset:function(){clearTimeout(this._timer)},emit:function(){if(this.state==STATE_RECOGNIZED){this._input.tapCount=this.count;this.manager.emit(this.options.event,this._input)}}});function Hammer(element,options){options=options||{};options.recognizers=ifUndefined(options.recognizers,Hammer.defaults.preset);return new Manager(element,options)}Hammer.VERSION=\"2.0.7\";Hammer.defaults={domEvents:false,touchAction:TOUCH_ACTION_COMPUTE,enable:true,inputTarget:null,inputClass:null,preset:[[RotateRecognizer,{enable:false}],[PinchRecognizer,{enable:false},[\"rotate\"]],[SwipeRecognizer,{direction:DIRECTION_HORIZONTAL}],[PanRecognizer,{direction:DIRECTION_HORIZONTAL},[\"swipe\"]],[TapRecognizer],[TapRecognizer,{event:\"doubletap\",taps:2},[\"tap\"]],[PressRecognizer]],cssProps:{userSelect:\"none\",touchSelect:\"none\",touchCallout:\"none\",contentZooming:\"none\",userDrag:\"none\",tapHighlightColor:\"rgba(0,0,0,0)\"}};var STOP=1;var FORCED_STOP=2;function Manager(element,options){this.options=assign({},Hammer.defaults,options||{});this.options.inputTarget=this.options.inputTarget||element;this.handlers={};this.session={};this.recognizers=[];this.oldCssProps={};this.element=element;this.input=createInputInstance(this);this.touchAction=new TouchAction(this,this.options.touchAction);toggleCssProps(this,true);each(this.options.recognizers,function(item){var recognizer=this.add(new item[0](item[1]));item[2]&&recognizer.recognizeWith(item[2]);item[3]&&recognizer.requireFailure(item[3])},this)}Manager.prototype={set:function(options){assign(this.options,options);if(options.touchAction){this.touchAction.update()}if(options.inputTarget){this.input.destroy();this.input.target=options.inputTarget;this.input.init()}return this},stop:function(force){this.session.stopped=force?FORCED_STOP:STOP},recognize:function(inputData){var session=this.session;if(session.stopped){return}this.touchAction.preventDefaults(inputData)\n;var recognizer;var recognizers=this.recognizers;var curRecognizer=session.curRecognizer;if(!curRecognizer||curRecognizer&&curRecognizer.state&STATE_RECOGNIZED){curRecognizer=session.curRecognizer=null}var i=0;while(i<recognizers.length){recognizer=recognizers[i];if(session.stopped!==FORCED_STOP&&(!curRecognizer||recognizer==curRecognizer||recognizer.canRecognizeWith(curRecognizer))){recognizer.recognize(inputData)}else{recognizer.reset()}if(!curRecognizer&&recognizer.state&(STATE_BEGAN|STATE_CHANGED|STATE_ENDED)){curRecognizer=session.curRecognizer=recognizer}i++}},get:function(recognizer){if(recognizer instanceof Recognizer){return recognizer}var recognizers=this.recognizers;for(var i=0;i<recognizers.length;i++){if(recognizers[i].options.event==recognizer){return recognizers[i]}}return null},add:function(recognizer){if(invokeArrayArg(recognizer,\"add\",this)){return this}var existing=this.get(recognizer.options.event);if(existing){this.remove(existing)}this.recognizers.push(recognizer);recognizer.manager=this;this.touchAction.update();return recognizer},remove:function(recognizer){if(invokeArrayArg(recognizer,\"remove\",this)){return this}recognizer=this.get(recognizer);if(recognizer){var recognizers=this.recognizers;var index=inArray(recognizers,recognizer);if(index!==-1){recognizers.splice(index,1);this.touchAction.update()}}return this},on:function(events,handler){if(events===undefined){return}if(handler===undefined){return}var handlers=this.handlers;each(splitStr(events),function(event){handlers[event]=handlers[event]||[];handlers[event].push(handler)});return this},off:function(events,handler){if(events===undefined){return}var handlers=this.handlers;each(splitStr(events),function(event){if(!handler){delete handlers[event]}else{handlers[event]&&handlers[event].splice(inArray(handlers[event],handler),1)}});return this},emit:function(event,data){if(this.options.domEvents){triggerDomEvent(event,data)}var handlers=this.handlers[event]&&this.handlers[event].slice();if(!handlers||!handlers.length){return}data.type=event;data.preventDefault=function(){data.srcEvent.preventDefault()};var i=0;while(i<handlers.length){handlers[i](data);i++}},destroy:function(){this.element&&toggleCssProps(this,false);this.handlers={};this.session={};this.input.destroy();this.element=null}};function toggleCssProps(manager,add){var element=manager.element;if(!element.style){return}var prop;each(manager.options.cssProps,function(value,name){prop=prefixed(element.style,name);if(add){manager.oldCssProps[prop]=element.style[prop];element.style[prop]=value}else{element.style[prop]=manager.oldCssProps[prop]||\"\"}});if(!add){manager.oldCssProps={}}}function triggerDomEvent(event,data){var gestureEvent=document.createEvent(\"Event\");gestureEvent.initEvent(event,true,true);gestureEvent.gesture=data;data.target.dispatchEvent(gestureEvent)}assign(Hammer,{INPUT_START:INPUT_START,INPUT_MOVE:INPUT_MOVE,INPUT_END:INPUT_END,INPUT_CANCEL:INPUT_CANCEL,STATE_POSSIBLE:STATE_POSSIBLE,STATE_BEGAN:STATE_BEGAN,STATE_CHANGED:STATE_CHANGED,STATE_ENDED:STATE_ENDED,STATE_RECOGNIZED:STATE_RECOGNIZED,STATE_CANCELLED:STATE_CANCELLED,STATE_FAILED:STATE_FAILED,DIRECTION_NONE:DIRECTION_NONE,DIRECTION_LEFT:DIRECTION_LEFT,DIRECTION_RIGHT:DIRECTION_RIGHT,DIRECTION_UP:DIRECTION_UP,DIRECTION_DOWN:DIRECTION_DOWN,DIRECTION_HORIZONTAL:DIRECTION_HORIZONTAL,DIRECTION_VERTICAL:DIRECTION_VERTICAL,DIRECTION_ALL:DIRECTION_ALL,Manager:Manager,Input:Input,TouchAction:TouchAction,TouchInput:TouchInput,MouseInput:MouseInput,PointerEventInput:PointerEventInput,TouchMouseInput:TouchMouseInput,SingleTouchInput:SingleTouchInput,Recognizer:Recognizer,AttrRecognizer:AttrRecognizer,Tap:TapRecognizer,Pan:PanRecognizer,Swipe:SwipeRecognizer,Pinch:PinchRecognizer,Rotate:RotateRecognizer,Press:PressRecognizer,on:addEventListeners,off:removeEventListeners,each:each,merge:merge,extend:extend,assign:assign,inherit:inherit,bindFn:bindFn,prefixed:prefixed});var freeGlobal=typeof window!==\"undefined\"?window:typeof self!==\"undefined\"?self:{};freeGlobal.Hammer=Hammer;if(true){!(__WEBPACK_AMD_DEFINE_RESULT__=function(){return Hammer}.call(exports,__webpack_require__,exports,module),__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof module!=\"undefined\"&&module.exports){module.exports=Hammer}else{window[exportName]=Hammer}})(window,document,\"Hammer\")},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Timeline=__webpack_require__(178);exports.Graph2d=__webpack_require__(180);exports.timeline={Core:__webpack_require__(65),DateUtil:__webpack_require__(36),Range:__webpack_require__(64),stack:__webpack_require__(100),TimeStep:__webpack_require__(66),components:{items:{Item:__webpack_require__(38),BackgroundItem:__webpack_require__(103),BoxItem:__webpack_require__(101),PointItem:__webpack_require__(102),RangeItem:__webpack_require__(70)},BackgroundGroup:__webpack_require__(69),Component:__webpack_require__(16),CurrentTime:__webpack_require__(67),CustomTime:__webpack_require__(46),DataAxis:__webpack_require__(107),DataScale:__webpack_require__(108),GraphGroup:__webpack_require__(109),Group:__webpack_require__(68),ItemSet:__webpack_require__(99),Legend:__webpack_require__(112),LineGraph:__webpack_require__(106),TimeAxis:__webpack_require__(45)}};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(64);var Core=__webpack_require__(65);var TimeAxis=__webpack_require__(45);var CurrentTime=__webpack_require__(67);var CustomTime=__webpack_require__(46);var ItemSet=__webpack_require__(99);var printStyle=__webpack_require__(15).printStyle;var allOptions=__webpack_require__(105).allOptions;var configureOptions=__webpack_require__(105).configureOptions;var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];function Timeline(container,items,groups,options){if(!(this instanceof Timeline)){throw new SyntaxError(\"Constructor must be called with the new operator\")}if(!(Array.isArray(groups)||groups instanceof DataSet||groups instanceof DataView)&&groups instanceof Object){var forthArgument=options;options=groups;groups=forthArgument}if(options&&options.throttleRedraw){console.warn('Timeline option \"throttleRedraw\" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.')}var me=this;this.defaultOptions={start:null,end:null,autoResize:true,orientation:{axis:\"bottom\",item:\"bottom\"},moment:moment,width:null,height:null,maxHeight:null,minHeight:null};this.options=util.deepExtend({},this.defaultOptions);this._create(container);if(!options||options&&typeof options.rtl==\"undefined\"){this.dom.root.style.visibility=\"hidden\";var directionFromDom,domNode=this.dom.root;while(!directionFromDom&&domNode){directionFromDom=window.getComputedStyle(domNode,null).direction;domNode=domNode.parentElement}this.options.rtl=directionFromDom&&directionFromDom.toLowerCase()==\"rtl\"}else{this.options.rtl=options.rtl}this.options.rollingMode=options&&options.rollingMode;this.options.onInitialDrawComplete=options&&options.onInitialDrawComplete;this.components=[];this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function getScale(){return me.timeAxis.step.scale},getStep:function getStep(){return me.timeAxis.step.step},toScreen:me._toScreen.bind(me),toGlobalScreen:me._toGlobalScreen.bind(me),toTime:me._toTime.bind(me),toGlobalTime:me._toGlobalTime.bind(me)}};this.range=new Range(this.body,this.options);this.components.push(this.range);this.body.range=this.range;this.timeAxis=new TimeAxis(this.body,this.options);this.timeAxis2=null;this.components.push(this.timeAxis);this.currentTime=new CurrentTime(this.body,this.options);this.components.push(this.currentTime);this.itemSet=new ItemSet(this.body,this.options);this.components.push(this.itemSet);this.itemsData=null;this.groupsData=null;this.dom.root.onclick=function(event){me.emit(\"click\",me.getEventProperties(event))};this.dom.root.ondblclick=function(event){me.emit(\"doubleClick\",me.getEventProperties(event))};this.dom.root.oncontextmenu=function(event){me.emit(\"contextmenu\",me.getEventProperties(event))};this.dom.root.onmouseover=function(event){me.emit(\"mouseOver\",me.getEventProperties(event))};if(window.PointerEvent){this.dom.root.onpointerdown=function(event){me.emit(\"mouseDown\",me.getEventProperties(event))};this.dom.root.onpointermove=function(event){me.emit(\"mouseMove\",me.getEventProperties(event))};this.dom.root.onpointerup=function(event){me.emit(\"mouseUp\",me.getEventProperties(event))}}else{this.dom.root.onmousemove=function(event){me.emit(\"mouseMove\",me.getEventProperties(event))};this.dom.root.onmousedown=function(event){me.emit(\"mouseDown\",me.getEventProperties(event))};this.dom.root.onmouseup=function(event){me.emit(\"mouseUp\",me.getEventProperties(event))}}this.initialFitDone=false;this.on(\"changed\",function(){if(this.itemsData==null||this.options.rollingMode)return;if(!me.initialFitDone){me.initialFitDone=true;if(me.options.start!=undefined||me.options.end!=undefined){if(me.options.start==undefined||me.options.end==undefined){var range=me.getItemRange()}var start=me.options.start!=undefined?me.options.start:range.min;var end=me.options.end!=undefined?me.options.end:range.max;me.setWindow(start,end,{animation:false})}else{me.fit({animation:false})}}if(!me.initialDrawDone&&me.initialRangeChangeDone){me.initialDrawDone=true;me.dom.root.style.visibility=\"visible\";if(me.options.onInitialDrawComplete){setTimeout(function(){return me.options.onInitialDrawComplete()},0)}}});if(options){this.setOptions(options)}if(groups){this.setGroups(groups)}if(items){this.setItems(items)}this._redraw()}Timeline.prototype=new Core;Timeline.prototype._createConfigurator=function(){return new Configurator(this,this.dom.container,configureOptions)};Timeline.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:true});this._redraw()};Timeline.prototype.setOptions=function(options){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}Core.prototype.setOptions.call(this,options);if(\"type\"in options){if(options.type!==this.options.type){this.options.type=options.type;var itemsData=this.itemsData;if(itemsData){var selection=this.getSelection();this.setItems(null);this.setItems(itemsData);this.setSelection(selection)}}}};Timeline.prototype.setItems=function(items){var newDataSet;if(!items){newDataSet=null}else if(items instanceof DataSet||items instanceof DataView){newDataSet=items}else{newDataSet=new DataSet(items,{type:{start:\"Date\",end:\"Date\"}})}this.itemsData=newDataSet;this.itemSet&&this.itemSet.setItems(newDataSet)};Timeline.prototype.setGroups=function(groups){var newDataSet;if(!groups){newDataSet=null}else{var filter=function filter(group){return group.visible!==false};if(groups instanceof DataSet||groups instanceof DataView){newDataSet=new DataView(groups,{filter:filter})}else{newDataSet=new DataSet(groups.filter(filter))}}this.groupsData=newDataSet;this.itemSet.setGroups(newDataSet)};Timeline.prototype.setData=function(data){if(data&&data.groups){this.setGroups(data.groups)}if(data&&data.items){this.setItems(data.items)}};Timeline.prototype.setSelection=function(ids,options){this.itemSet&&this.itemSet.setSelection(ids);if(options&&options.focus){this.focus(ids,options)}};Timeline.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]};Timeline.prototype.focus=function(id,options){if(!this.itemsData||id==undefined)return;var ids=Array.isArray(id)?id:[id];var itemsData=this.itemsData.getDataSet().get(ids,{type:{start:\"Date\",end:\"Date\"}});var start=null;var end=null;itemsData.forEach(function(itemData){var s=itemData.start.valueOf();var e=\"end\"in itemData?itemData.end.valueOf():itemData.start.valueOf();if(start===null||s<start){start=s}if(end===null||e>end){end=e}});if(start!==null&&end!==null){var me=this;var item=this.itemSet.items[ids[0]];var startPos=this._getScrollTop()*-1;var initialVerticalScroll=null;var verticalAnimationFrame=function verticalAnimationFrame(ease,willDraw,done){var verticalScroll=getItemVerticalScroll(me,item);if(!initialVerticalScroll){initialVerticalScroll=verticalScroll}if(initialVerticalScroll.itemTop==verticalScroll.itemTop&&!initialVerticalScroll.shouldScroll){return}else if(initialVerticalScroll.itemTop!=verticalScroll.itemTop&&verticalScroll.shouldScroll){initialVerticalScroll=verticalScroll;startPos=me._getScrollTop()*-1}var from=startPos;var to=initialVerticalScroll.scrollOffset;var scrollTop=done?to:from+(to-from)*ease;me._setScrollTop(-scrollTop);if(!willDraw){me._redraw()}};var setFinalVerticalPosition=function setFinalVerticalPosition(){var finalVerticalScroll=getItemVerticalScroll(me,item);if(finalVerticalScroll.shouldScroll&&finalVerticalScroll.itemTop!=initialVerticalScroll.itemTop){me._setScrollTop(-finalVerticalScroll.scrollOffset);me._redraw()}};var finalVerticalCallback=function finalVerticalCallback(){setFinalVerticalPosition();setTimeout(setFinalVerticalPosition,100)};var middle=(start+end)/2;var interval=Math.max(this.range.end-this.range.start,(end-start)*1.1);var animation=options&&options.animation!==undefined?options.animation:true;if(!animation){initialVerticalScroll={shouldScroll:false,scrollOffset:-1,itemTop:-1}}this.range.setRange(middle-interval/2,middle+interval/2,{animation:animation},finalVerticalCallback,verticalAnimationFrame)}};Timeline.prototype.fit=function(options,callback){var animation=options&&options.animation!==undefined?options.animation:true;var range;var dataset=this.itemsData&&this.itemsData.getDataSet();if(dataset.length===1&&dataset.get()[0].end===undefined){range=this.getDataRange();this.moveTo(range.min.valueOf(),{animation:animation},callback)}else{range=this.getItemRange();this.range.setRange(range.min,range.max,{animation:animation},callback)}};function getStart(item){return util.convert(item.data.start,\"Date\").valueOf()}function getEnd(item){var end=item.data.end!=undefined?item.data.end:item.data.start;return util.convert(end,\"Date\").valueOf()}function getItemVerticalScroll(timeline,item){var leftHeight=timeline.props.leftContainer.height;var contentHeight=timeline.props.left.height;var group=item.parent;var offset=group.top;var shouldScroll=true;var orientation=timeline.timeAxis.options.orientation.axis;var itemTop=function itemTop(){if(orientation==\"bottom\"){return group.height-item.top-item.height}else{return item.top}};var currentScrollHeight=timeline._getScrollTop()*-1;var targetOffset=offset+itemTop();var height=item.height;if(targetOffset<currentScrollHeight){if(offset+leftHeight<=offset+itemTop()+height){offset+=itemTop()-timeline.itemSet.options.margin.item.vertical}}else if(targetOffset+height>currentScrollHeight+leftHeight){offset+=itemTop()+height-leftHeight+timeline.itemSet.options.margin.item.vertical}else{shouldScroll=false}offset=Math.min(offset,contentHeight-leftHeight);return{shouldScroll:shouldScroll,scrollOffset:offset,itemTop:targetOffset}}Timeline.prototype.getItemRange=function(){var range=this.getDataRange();var min=range.min!==null?range.min.valueOf():null;var max=range.max!==null?range.max.valueOf():null;var minItem=null;var maxItem=null;if(min!=null&&max!=null){var interval=max-min;if(interval<=0){interval=10}var factor=interval/this.props.center.width;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.itemSet.items,function(item,key){if(item.groupShowing){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}util.forEach(this.itemSet.items,function(item){var start=getStart(item);var end=getEnd(item);var startSide;var endSide;if(this.options.rtl){startSide=start-(item.getWidthRight()+10)*factor;endSide=end+(item.getWidthLeft()+10)*factor}else{startSide=start-(item.getWidthLeft()+10)*factor;endSide=end+(item.getWidthRight()+10)*factor}if(startSide<min){min=startSide;minItem=item}if(endSide>max){max=endSide;maxItem=item}}.bind(this));if(minItem&&maxItem){var lhs=minItem.getWidthLeft()+10;var rhs=maxItem.getWidthRight()+10;var delta=this.props.center.width-lhs-rhs;if(delta>0){if(this.options.rtl){min=getStart(minItem)-rhs*interval/delta;max=getEnd(maxItem)+lhs*interval/delta}else{min=getStart(minItem)-lhs*interval/delta;max=getEnd(maxItem)+rhs*interval/delta}}}}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Timeline.prototype.getDataRange=function(){var min=null;var max=null;var dataset=this.itemsData&&this.itemsData.getDataSet();if(dataset){dataset.forEach(function(item){var start=util.convert(item.start,\"Date\").valueOf();var end=util.convert(item.end!=undefined?item.end:item.start,\"Date\").valueOf();if(min===null||start<min){min=start}if(max===null||end>max){max=end}})}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Timeline.prototype.getEventProperties=function(event){var clientX=event.center?event.center.x:event.clientX;var clientY=event.center?event.center.y:event.clientY;var x;if(this.options.rtl){x=util.getAbsoluteRight(this.dom.centerContainer)-clientX}else{x=clientX-util.getAbsoluteLeft(this.dom.centerContainer)}var y=clientY-util.getAbsoluteTop(this.dom.centerContainer);var item=this.itemSet.itemFromTarget(event);var group=this.itemSet.groupFromTarget(event);var customTime=CustomTime.customTimeFromTarget(event);var snap=this.itemSet.options.snap||null;var scale=this.body.util.getScale();var step=this.body.util.getStep();var time=this._toTime(x);var snappedTime=snap?snap(time,scale,step):time;var element=util.getTarget(event);var what=null;if(item!=null){what=\"item\"}else if(customTime!=null){what=\"custom-time\"}else if(util.hasParent(element,this.timeAxis.dom.foreground)){what=\"axis\"}else if(this.timeAxis2&&util.hasParent(element,this.timeAxis2.dom.foreground)){what=\"axis\"}else if(util.hasParent(element,this.itemSet.dom.labelSet)){what=\"group-label\"}else if(util.hasParent(element,this.currentTime.bar)){what=\"current-time\"}else if(util.hasParent(element,this.dom.center)){what=\"background\"}return{event:event,item:item?item.id:null,group:group?group.groupId:null,what:what,pageX:event.srcEvent?event.srcEvent.pageX:event.pageX,pageY:event.srcEvent?event.srcEvent.pageY:event.pageY,x:x,y:y,time:time,snappedTime:snappedTime}};Timeline.prototype.toggleRollingMode=function(){if(this.range.rolling){this.range.stopRolling()}else{if(this.options.rollingMode==undefined){this.setOptions(this.options)}this.range.startRolling()}};module.exports=Timeline},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var ColorPicker=function(){function ColorPicker(){var pixelRatio=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;(0,_classCallCheck3[\"default\"])(this,ColorPicker);this.pixelRatio=pixelRatio;this.generated=false;this.centerCoordinates={x:289/2,y:289/2};this.r=289*.49;this.color={r:255,g:255,b:255,a:1};this.hueCircle=undefined;this.initialColor={r:255,g:255,b:255,a:1};this.previousColor=undefined;this.applied=false;this.updateCallback=function(){};this.closeCallback=function(){};this._create()}(0,_createClass3[\"default\"])(ColorPicker,[{key:\"insertTo\",value:function insertTo(container){if(this.hammer!==undefined){this.hammer.destroy();this.hammer=undefined}this.container=container;this.container.appendChild(this.frame);this._bindHammer();this._setSize()}},{key:\"setUpdateCallback\",value:function setUpdateCallback(callback){if(typeof callback===\"function\"){this.updateCallback=callback}else{throw new Error(\"Function attempted to set as colorPicker update callback is not a function.\")}}},{key:\"setCloseCallback\",value:function setCloseCallback(callback){if(typeof callback===\"function\"){this.closeCallback=callback}else{throw new Error(\"Function attempted to set as colorPicker closing callback is not a function.\")}}},{key:\"_isColorString\",value:function _isColorString(color){var htmlColors={black:\"#000000\",navy:\"#000080\",darkblue:\"#00008B\",mediumblue:\"#0000CD\",blue:\"#0000FF\",darkgreen:\"#006400\",green:\"#008000\",teal:\"#008080\",darkcyan:\"#008B8B\",deepskyblue:\"#00BFFF\",darkturquoise:\"#00CED1\",mediumspringgreen:\"#00FA9A\",lime:\"#00FF00\",springgreen:\"#00FF7F\",aqua:\"#00FFFF\",cyan:\"#00FFFF\",midnightblue:\"#191970\",dodgerblue:\"#1E90FF\",lightseagreen:\"#20B2AA\",forestgreen:\"#228B22\",seagreen:\"#2E8B57\",darkslategray:\"#2F4F4F\",limegreen:\"#32CD32\",mediumseagreen:\"#3CB371\",turquoise:\"#40E0D0\",royalblue:\"#4169E1\",steelblue:\"#4682B4\",darkslateblue:\"#483D8B\",mediumturquoise:\"#48D1CC\",indigo:\"#4B0082\",darkolivegreen:\"#556B2F\",cadetblue:\"#5F9EA0\",cornflowerblue:\"#6495ED\",mediumaquamarine:\"#66CDAA\",dimgray:\"#696969\",slateblue:\"#6A5ACD\",olivedrab:\"#6B8E23\",slategray:\"#708090\",lightslategray:\"#778899\",mediumslateblue:\"#7B68EE\",lawngreen:\"#7CFC00\",chartreuse:\"#7FFF00\",aquamarine:\"#7FFFD4\",maroon:\"#800000\",purple:\"#800080\",olive:\"#808000\",gray:\"#808080\",skyblue:\"#87CEEB\",lightskyblue:\"#87CEFA\",blueviolet:\"#8A2BE2\",darkred:\"#8B0000\",darkmagenta:\"#8B008B\",saddlebrown:\"#8B4513\",darkseagreen:\"#8FBC8F\",lightgreen:\"#90EE90\",mediumpurple:\"#9370D8\",darkviolet:\"#9400D3\",palegreen:\"#98FB98\",darkorchid:\"#9932CC\",yellowgreen:\"#9ACD32\",sienna:\"#A0522D\",brown:\"#A52A2A\",darkgray:\"#A9A9A9\",lightblue:\"#ADD8E6\",greenyellow:\"#ADFF2F\",paleturquoise:\"#AFEEEE\",lightsteelblue:\"#B0C4DE\",powderblue:\"#B0E0E6\",firebrick:\"#B22222\",darkgoldenrod:\"#B8860B\",mediumorchid:\"#BA55D3\",rosybrown:\"#BC8F8F\",darkkhaki:\"#BDB76B\",silver:\"#C0C0C0\",mediumvioletred:\"#C71585\",indianred:\"#CD5C5C\",peru:\"#CD853F\",chocolate:\"#D2691E\",tan:\"#D2B48C\",lightgrey:\"#D3D3D3\",palevioletred:\"#D87093\",thistle:\"#D8BFD8\",orchid:\"#DA70D6\",goldenrod:\"#DAA520\",crimson:\"#DC143C\",gainsboro:\"#DCDCDC\",plum:\"#DDA0DD\",burlywood:\"#DEB887\",lightcyan:\"#E0FFFF\",lavender:\"#E6E6FA\",darksalmon:\"#E9967A\",violet:\"#EE82EE\",palegoldenrod:\"#EEE8AA\",lightcoral:\"#F08080\",khaki:\"#F0E68C\",aliceblue:\"#F0F8FF\",honeydew:\"#F0FFF0\",azure:\"#F0FFFF\",sandybrown:\"#F4A460\",wheat:\"#F5DEB3\",beige:\"#F5F5DC\",whitesmoke:\"#F5F5F5\",mintcream:\"#F5FFFA\",ghostwhite:\"#F8F8FF\",salmon:\"#FA8072\",antiquewhite:\"#FAEBD7\",linen:\"#FAF0E6\",lightgoldenrodyellow:\"#FAFAD2\",oldlace:\"#FDF5E6\",red:\"#FF0000\",fuchsia:\"#FF00FF\",magenta:\"#FF00FF\",deeppink:\"#FF1493\",orangered:\"#FF4500\",tomato:\"#FF6347\",hotpink:\"#FF69B4\",coral:\"#FF7F50\",darkorange:\"#FF8C00\",lightsalmon:\"#FFA07A\",orange:\"#FFA500\",lightpink:\"#FFB6C1\",pink:\"#FFC0CB\",gold:\"#FFD700\",peachpuff:\"#FFDAB9\",navajowhite:\"#FFDEAD\",moccasin:\"#FFE4B5\",bisque:\"#FFE4C4\",mistyrose:\"#FFE4E1\",blanchedalmond:\"#FFEBCD\",papayawhip:\"#FFEFD5\",lavenderblush:\"#FFF0F5\",seashell:\"#FFF5EE\",cornsilk:\"#FFF8DC\",lemonchiffon:\"#FFFACD\",floralwhite:\"#FFFAF0\",snow:\"#FFFAFA\",yellow:\"#FFFF00\",lightyellow:\"#FFFFE0\",ivory:\"#FFFFF0\",white:\"#FFFFFF\"};if(typeof color===\"string\"){return htmlColors[color]}}},{key:\"setColor\",value:function setColor(color){var setInitial=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(color===\"none\"){return}var rgba=void 0;var htmlColor=this._isColorString(color);if(htmlColor!==undefined){color=htmlColor}if(util.isString(color)===true){if(util.isValidRGB(color)===true){var rgbaArray=color.substr(4).substr(0,color.length-5).split(\",\");rgba={r:rgbaArray[0],g:rgbaArray[1],b:rgbaArray[2],a:1}}else if(util.isValidRGBA(color)===true){var _rgbaArray=color.substr(5).substr(0,color.length-6).split(\",\");rgba={r:_rgbaArray[0],g:_rgbaArray[1],b:_rgbaArray[2],a:_rgbaArray[3]}}else if(util.isValidHex(color)===true){var rgbObj=util.hexToRGB(color);rgba={r:rgbObj.r,g:rgbObj.g,b:rgbObj.b,a:1}}}else{if(color instanceof Object){if(color.r!==undefined&&color.g!==undefined&&color.b!==undefined){var alpha=color.a!==undefined?color.a:\"1.0\";rgba={r:color.r,g:color.g,b:color.b,a:alpha}}}}if(rgba===undefined){throw new Error(\"Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: \"+(0,_stringify2[\"default\"])(color))}else{this._setColor(rgba,setInitial)}}},{key:\"show\",value:function show(){if(this.closeCallback!==undefined){this.closeCallback();this.closeCallback=undefined}this.applied=false;this.frame.style.display=\"block\";this._generateHueCircle()}},{key:\"_hide\",value:function _hide(){var _this=this;var storePrevious=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;if(storePrevious===true){this.previousColor=util.extend({},this.color)}if(this.applied===true){this.updateCallback(this.initialColor)}this.frame.style.display=\"none\";setTimeout(function(){if(_this.closeCallback!==undefined){_this.closeCallback();_this.closeCallback=undefined}},0)}},{key:\"_save\",value:function _save(){this.updateCallback(this.color);this.applied=false;this._hide()}},{key:\"_apply\",value:function _apply(){this.applied=true;this.updateCallback(this.color);this._updatePicker(this.color)}},{key:\"_loadLast\",value:function _loadLast(){if(this.previousColor!==undefined){this.setColor(this.previousColor,false)}else{alert(\"There is no last color to load...\")}}},{key:\"_setColor\",value:function _setColor(rgba){var setInitial=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(setInitial===true){this.initialColor=util.extend({},rgba)}this.color=rgba;var hsv=util.RGBToHSV(rgba.r,rgba.g,rgba.b);var angleConvert=2*Math.PI;var radius=this.r*hsv.s;var x=this.centerCoordinates.x+radius*Math.sin(angleConvert*hsv.h);var y=this.centerCoordinates.y+radius*Math.cos(angleConvert*hsv.h);this.colorPickerSelector.style.left=x-.5*this.colorPickerSelector.clientWidth+\"px\";this.colorPickerSelector.style.top=y-.5*this.colorPickerSelector.clientHeight+\"px\";this._updatePicker(rgba)}},{key:\"_setOpacity\",value:function _setOpacity(value){this.color.a=value/100;this._updatePicker(this.color)}},{key:\"_setBrightness\",value:function _setBrightness(value){var hsv=util.RGBToHSV(this.color.r,this.color.g,this.color.b);hsv.v=value/100;var rgba=util.HSVToRGB(hsv.h,hsv.s,hsv.v);rgba[\"a\"]=this.color.a;this.color=rgba;this._updatePicker()}},{key:\"_updatePicker\",value:function _updatePicker(){var rgba=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.color;var hsv=util.RGBToHSV(rgba.r,rgba.g,rgba.b);var ctx=this.colorPickerCanvas.getContext(\"2d\");if(this.pixelRation===undefined){this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1)}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var w=this.colorPickerCanvas.clientWidth;var h=this.colorPickerCanvas.clientHeight;ctx.clearRect(0,0,w,h);ctx.putImageData(this.hueCircle,0,0);ctx.fillStyle=\"rgba(0,0,0,\"+(1-hsv.v)+\")\";ctx.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r);ctx.fill();this.brightnessRange.value=100*hsv.v;this.opacityRange.value=100*rgba.a;this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\";this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}},{key:\"_setSize\",value:function _setSize(){this.colorPickerCanvas.style.width=\"100%\";this.colorPickerCanvas.style.height=\"100%\";this.colorPickerCanvas.width=289*this.pixelRatio;this.colorPickerCanvas.height=289*this.pixelRatio}},{key:\"_create\",value:function _create(){this.frame=document.createElement(\"div\");this.frame.className=\"vis-color-picker\";this.colorPickerDiv=document.createElement(\"div\");this.colorPickerSelector=document.createElement(\"div\");this.colorPickerSelector.className=\"vis-selector\";this.colorPickerDiv.appendChild(this.colorPickerSelector);this.colorPickerCanvas=document.createElement(\"canvas\");this.colorPickerDiv.appendChild(this.colorPickerCanvas);if(!this.colorPickerCanvas.getContext){var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.colorPickerCanvas.appendChild(noCanvas)}else{var ctx=this.colorPickerCanvas.getContext(\"2d\");this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1);this.colorPickerCanvas.getContext(\"2d\").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}this.colorPickerDiv.className=\"vis-color\";this.opacityDiv=document.createElement(\"div\");this.opacityDiv.className=\"vis-opacity\";this.brightnessDiv=document.createElement(\"div\");this.brightnessDiv.className=\"vis-brightness\";this.arrowDiv=document.createElement(\"div\");this.arrowDiv.className=\"vis-arrow\";this.opacityRange=document.createElement(\"input\");try{this.opacityRange.type=\"range\";this.opacityRange.min=\"0\";this.opacityRange.max=\"100\"}catch(err){}this.opacityRange.value=\"100\";this.opacityRange.className=\"vis-range\";this.brightnessRange=document.createElement(\"input\");try{this.brightnessRange.type=\"range\";this.brightnessRange.min=\"0\";this.brightnessRange.max=\"100\"}catch(err){}this.brightnessRange.value=\"100\";this.brightnessRange.className=\"vis-range\";this.opacityDiv.appendChild(this.opacityRange);this.brightnessDiv.appendChild(this.brightnessRange);var me=this;this.opacityRange.onchange=function(){me._setOpacity(this.value)};this.opacityRange.oninput=function(){me._setOpacity(this.value)};this.brightnessRange.onchange=function(){me._setBrightness(this.value)};this.brightnessRange.oninput=function(){me._setBrightness(this.value)};this.brightnessLabel=document.createElement(\"div\");this.brightnessLabel.className=\"vis-label vis-brightness\";this.brightnessLabel.innerHTML=\"brightness:\";this.opacityLabel=document.createElement(\"div\");this.opacityLabel.className=\"vis-label vis-opacity\";this.opacityLabel.innerHTML=\"opacity:\";this.newColorDiv=document.createElement(\"div\");this.newColorDiv.className=\"vis-new-color\";this.newColorDiv.innerHTML=\"new\";this.initialColorDiv=document.createElement(\"div\");this.initialColorDiv.className=\"vis-initial-color\";this.initialColorDiv.innerHTML=\"initial\";this.cancelButton=document.createElement(\"div\");this.cancelButton.className=\"vis-button vis-cancel\";this.cancelButton.innerHTML=\"cancel\";this.cancelButton.onclick=this._hide.bind(this,false);this.applyButton=document.createElement(\"div\");this.applyButton.className=\"vis-button vis-apply\";this.applyButton.innerHTML=\"apply\";this.applyButton.onclick=this._apply.bind(this);this.saveButton=document.createElement(\"div\");this.saveButton.className=\"vis-button vis-save\";this.saveButton.innerHTML=\"save\";this.saveButton.onclick=this._save.bind(this);this.loadButton=document.createElement(\"div\");this.loadButton.className=\"vis-button vis-load\";this.loadButton.innerHTML=\"load last\";this.loadButton.onclick=this._loadLast.bind(this)\n;this.frame.appendChild(this.colorPickerDiv);this.frame.appendChild(this.arrowDiv);this.frame.appendChild(this.brightnessLabel);this.frame.appendChild(this.brightnessDiv);this.frame.appendChild(this.opacityLabel);this.frame.appendChild(this.opacityDiv);this.frame.appendChild(this.newColorDiv);this.frame.appendChild(this.initialColorDiv);this.frame.appendChild(this.cancelButton);this.frame.appendChild(this.applyButton);this.frame.appendChild(this.saveButton);this.frame.appendChild(this.loadButton)}},{key:\"_bindHammer\",value:function _bindHammer(){var _this2=this;this.drag={};this.pinch={};this.hammer=new Hammer(this.colorPickerCanvas);this.hammer.get(\"pinch\").set({enable:true});hammerUtil.onTouch(this.hammer,function(event){_this2._moveSelector(event)});this.hammer.on(\"tap\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panstart\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panmove\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panend\",function(event){_this2._moveSelector(event)})}},{key:\"_generateHueCircle\",value:function _generateHueCircle(){if(this.generated===false){var ctx=this.colorPickerCanvas.getContext(\"2d\");if(this.pixelRation===undefined){this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1)}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var w=this.colorPickerCanvas.clientWidth;var h=this.colorPickerCanvas.clientHeight;ctx.clearRect(0,0,w,h);var x=void 0,y=void 0,hue=void 0,sat=void 0;this.centerCoordinates={x:w*.5,y:h*.5};this.r=.49*w;var angleConvert=2*Math.PI/360;var hfac=1/360;var sfac=1/this.r;var rgb=void 0;for(hue=0;hue<360;hue++){for(sat=0;sat<this.r;sat++){x=this.centerCoordinates.x+sat*Math.sin(angleConvert*hue);y=this.centerCoordinates.y+sat*Math.cos(angleConvert*hue);rgb=util.HSVToRGB(hue*hfac,sat*sfac,1);ctx.fillStyle=\"rgb(\"+rgb.r+\",\"+rgb.g+\",\"+rgb.b+\")\";ctx.fillRect(x-.5,y-.5,2,2)}}ctx.strokeStyle=\"rgba(0,0,0,1)\";ctx.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r);ctx.stroke();this.hueCircle=ctx.getImageData(0,0,w,h)}this.generated=true}},{key:\"_moveSelector\",value:function _moveSelector(event){var rect=this.colorPickerDiv.getBoundingClientRect();var left=event.center.x-rect.left;var top=event.center.y-rect.top;var centerY=.5*this.colorPickerDiv.clientHeight;var centerX=.5*this.colorPickerDiv.clientWidth;var x=left-centerX;var y=top-centerY;var angle=Math.atan2(x,y);var radius=.98*Math.min(Math.sqrt(x*x+y*y),centerX);var newTop=Math.cos(angle)*radius+centerY;var newLeft=Math.sin(angle)*radius+centerX;this.colorPickerSelector.style.top=newTop-.5*this.colorPickerSelector.clientHeight+\"px\";this.colorPickerSelector.style.left=newLeft-.5*this.colorPickerSelector.clientWidth+\"px\";var h=angle/(2*Math.PI);h=h<0?h+1:h;var s=radius/this.r;var hsv=util.RGBToHSV(this.color.r,this.color.g,this.color.b);hsv.h=h;hsv.s=s;var rgba=util.HSVToRGB(hsv.h,hsv.s,hsv.v);rgba[\"a\"]=this.color.a;this.color=rgba;this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\";this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}}]);return ColorPicker}();exports[\"default\"]=ColorPicker},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(64);var Core=__webpack_require__(65);var TimeAxis=__webpack_require__(45);var CurrentTime=__webpack_require__(67);var CustomTime=__webpack_require__(46);var LineGraph=__webpack_require__(106);var printStyle=__webpack_require__(15).printStyle;var allOptions=__webpack_require__(113).allOptions;var configureOptions=__webpack_require__(113).configureOptions;var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];function Graph2d(container,items,groups,options){if(!(Array.isArray(groups)||groups instanceof DataSet||groups instanceof DataView)&&groups instanceof Object){var forthArgument=options;options=groups;groups=forthArgument}if(options&&options.throttleRedraw){console.warn('Graph2d option \"throttleRedraw\" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.')}var me=this;this.defaultOptions={start:null,end:null,autoResize:true,orientation:{axis:\"bottom\",item:\"bottom\"},moment:moment,width:null,height:null,maxHeight:null,minHeight:null};this.options=util.deepExtend({},this.defaultOptions);this._create(container);this.components=[];this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:me._toScreen.bind(me),toGlobalScreen:me._toGlobalScreen.bind(me),toTime:me._toTime.bind(me),toGlobalTime:me._toGlobalTime.bind(me)}};this.range=new Range(this.body);this.components.push(this.range);this.body.range=this.range;this.timeAxis=new TimeAxis(this.body);this.components.push(this.timeAxis);this.currentTime=new CurrentTime(this.body);this.components.push(this.currentTime);this.linegraph=new LineGraph(this.body);this.components.push(this.linegraph);this.itemsData=null;this.groupsData=null;this.on(\"tap\",function(event){me.emit(\"click\",me.getEventProperties(event))});this.on(\"doubletap\",function(event){me.emit(\"doubleClick\",me.getEventProperties(event))});this.dom.root.oncontextmenu=function(event){me.emit(\"contextmenu\",me.getEventProperties(event))};if(options){this.setOptions(options)}if(groups){this.setGroups(groups)}if(items){this.setItems(items)}this._redraw()}Graph2d.prototype=new Core;Graph2d.prototype.setOptions=function(options){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}Core.prototype.setOptions.call(this,options)};Graph2d.prototype.setItems=function(items){var initialLoad=this.itemsData==null;var newDataSet;if(!items){newDataSet=null}else if(items instanceof DataSet||items instanceof DataView){newDataSet=items}else{newDataSet=new DataSet(items,{type:{start:\"Date\",end:\"Date\"}})}this.itemsData=newDataSet;this.linegraph&&this.linegraph.setItems(newDataSet);if(initialLoad){if(this.options.start!=undefined||this.options.end!=undefined){var start=this.options.start!=undefined?this.options.start:null;var end=this.options.end!=undefined?this.options.end:null;this.setWindow(start,end,{animation:false})}else{this.fit({animation:false})}}};Graph2d.prototype.setGroups=function(groups){var newDataSet;if(!groups){newDataSet=null}else if(groups instanceof DataSet||groups instanceof DataView){newDataSet=groups}else{newDataSet=new DataSet(groups)}this.groupsData=newDataSet;this.linegraph.setGroups(newDataSet)};Graph2d.prototype.getLegend=function(groupId,width,height){if(width===undefined){width=15}if(height===undefined){height=15}if(this.linegraph.groups[groupId]!==undefined){return this.linegraph.groups[groupId].getLegend(width,height)}else{return\"cannot find group:'\"+groupId+\"'\"}};Graph2d.prototype.isGroupVisible=function(groupId){if(this.linegraph.groups[groupId]!==undefined){return this.linegraph.groups[groupId].visible&&(this.linegraph.options.groups.visibility[groupId]===undefined||this.linegraph.options.groups.visibility[groupId]==true)}else{return false}};Graph2d.prototype.getDataRange=function(){var min=null;var max=null;for(var groupId in this.linegraph.groups){if(this.linegraph.groups.hasOwnProperty(groupId)){if(this.linegraph.groups[groupId].visible==true){for(var i=0;i<this.linegraph.groups[groupId].itemsData.length;i++){var item=this.linegraph.groups[groupId].itemsData[i];var value=util.convert(item.x,\"Date\").valueOf();min=min==null?value:min>value?value:min;max=max==null?value:max<value?value:max}}}}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Graph2d.prototype.getEventProperties=function(event){var clientX=event.center?event.center.x:event.clientX;var clientY=event.center?event.center.y:event.clientY;var x=clientX-util.getAbsoluteLeft(this.dom.centerContainer);var y=clientY-util.getAbsoluteTop(this.dom.centerContainer);var time=this._toTime(x);var customTime=CustomTime.customTimeFromTarget(event);var element=util.getTarget(event);var what=null;if(util.hasParent(element,this.timeAxis.dom.foreground)){what=\"axis\"}else if(this.timeAxis2&&util.hasParent(element,this.timeAxis2.dom.foreground)){what=\"axis\"}else if(util.hasParent(element,this.linegraph.yAxisLeft.dom.frame)){what=\"data-axis\"}else if(util.hasParent(element,this.linegraph.yAxisRight.dom.frame)){what=\"data-axis\"}else if(util.hasParent(element,this.linegraph.legendLeft.dom.frame)){what=\"legend\"}else if(util.hasParent(element,this.linegraph.legendRight.dom.frame)){what=\"legend\"}else if(customTime!=null){what=\"custom-time\"}else if(util.hasParent(element,this.currentTime.bar)){what=\"current-time\"}else if(util.hasParent(element,this.dom.center)){what=\"background\"}var value=[];var yAxisLeft=this.linegraph.yAxisLeft;var yAxisRight=this.linegraph.yAxisRight;if(!yAxisLeft.hidden&&this.itemsData.length>0){value.push(yAxisLeft.screenToValue(y))}if(!yAxisRight.hidden&&this.itemsData.length>0){value.push(yAxisRight.screenToValue(y))}return{event:event,what:what,pageX:event.srcEvent?event.srcEvent.pageX:event.pageX,pageY:event.srcEvent?event.srcEvent.pageY:event.pageY,x:x,y:y,time:time,value:value}};Graph2d.prototype._createConfigurator=function(){return new Configurator(this,this.dom.container,configureOptions)};module.exports=Graph2d},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Network=__webpack_require__(182);exports.network={Images:__webpack_require__(116),dotparser:__webpack_require__(114),gephiParser:__webpack_require__(115),allOptions:__webpack_require__(122)};exports.network.convertDot=function(input){return exports.network.dotparser.DOTToGraph(input)};exports.network.convertGephi=function(input,options){return exports.network.gephiParser.parseGephi(input,options)};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){\"use strict\";__webpack_require__(183);var Emitter=__webpack_require__(44);var util=__webpack_require__(2);var dotparser=__webpack_require__(114);var gephiParser=__webpack_require__(115);var Activator=__webpack_require__(97);var locales=__webpack_require__(184);var Images=__webpack_require__(116)[\"default\"];var Groups=__webpack_require__(186)[\"default\"];var NodesHandler=__webpack_require__(187)[\"default\"];var EdgesHandler=__webpack_require__(214)[\"default\"];var PhysicsEngine=__webpack_require__(220)[\"default\"];var ClusterEngine=__webpack_require__(227)[\"default\"];var CanvasRenderer=__webpack_require__(229)[\"default\"];var Canvas=__webpack_require__(230)[\"default\"];var View=__webpack_require__(231)[\"default\"];var InteractionHandler=__webpack_require__(232)[\"default\"];var SelectionHandler=__webpack_require__(234)[\"default\"];var LayoutEngine=__webpack_require__(235)[\"default\"];var ManipulationSystem=__webpack_require__(237)[\"default\"];var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var _require2=__webpack_require__(122),allOptions=_require2.allOptions,configureOptions=_require2.configureOptions;var KamadaKawai=__webpack_require__(238)[\"default\"];function Network(container,data,options){var _this=this;if(!(this instanceof Network)){throw new SyntaxError(\"Constructor must be called with the new operator\")}this.options={};this.defaultOptions={locale:\"en\",locales:locales,clickToUse:false};util.extend(this.options,this.defaultOptions);this.body={container:container,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function onTap(){},onTouch:function onTouch(){},onDoubleTap:function onDoubleTap(){},onHold:function onHold(){},onDragStart:function onDragStart(){},onDrag:function onDrag(){},onDragEnd:function onDragEnd(){},onMouseWheel:function onMouseWheel(){},onPinch:function onPinch(){},onMouseMove:function onMouseMove(){},onRelease:function onRelease(){},onContext:function onContext(){}},data:{nodes:null,edges:null},functions:{createNode:function createNode(){},createEdge:function createEdge(){},getPointer:function getPointer(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}};this.bindEventListeners();this.images=new Images(function(){return _this.body.emitter.emit(\"_requestRedraw\")});this.groups=new Groups;this.canvas=new Canvas(this.body);this.selectionHandler=new SelectionHandler(this.body,this.canvas);this.interactionHandler=new InteractionHandler(this.body,this.canvas,this.selectionHandler);this.view=new View(this.body,this.canvas);this.renderer=new CanvasRenderer(this.body,this.canvas);this.physics=new PhysicsEngine(this.body);this.layoutEngine=new LayoutEngine(this.body);this.clustering=new ClusterEngine(this.body);this.manipulation=new ManipulationSystem(this.body,this.canvas,this.selectionHandler);this.nodesHandler=new NodesHandler(this.body,this.images,this.groups,this.layoutEngine);this.edgesHandler=new EdgesHandler(this.body,this.images,this.groups);this.body.modules[\"kamadaKawai\"]=new KamadaKawai(this.body,150,.05);this.body.modules[\"clustering\"]=this.clustering;this.canvas._create();this.setOptions(options);this.setData(data)}Emitter(Network.prototype);Network.prototype.setOptions=function(options){var _this2=this;if(options!==undefined){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}var fields=[\"locale\",\"locales\",\"clickToUse\"];util.selectiveDeepExtend(fields,this.options,options);options=this.layoutEngine.setOptions(options.layout,options);this.canvas.setOptions(options);this.groups.setOptions(options.groups);this.nodesHandler.setOptions(options.nodes);this.edgesHandler.setOptions(options.edges);this.physics.setOptions(options.physics);this.manipulation.setOptions(options.manipulation,options,this.options);this.interactionHandler.setOptions(options.interaction);this.renderer.setOptions(options.interaction);this.selectionHandler.setOptions(options.interaction);if(options.groups!==undefined){this.body.emitter.emit(\"refreshNodes\")}if(\"configure\"in options){if(!this.configurator){this.configurator=new Configurator(this,this.body.container,configureOptions,this.canvas.pixelRatio)}this.configurator.setOptions(options.configure)}if(this.configurator&&this.configurator.options.enabled===true){var networkOptions={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};util.deepExtend(networkOptions.nodes,this.nodesHandler.options);util.deepExtend(networkOptions.edges,this.edgesHandler.options);util.deepExtend(networkOptions.layout,this.layoutEngine.options);util.deepExtend(networkOptions.interaction,this.selectionHandler.options);util.deepExtend(networkOptions.interaction,this.renderer.options);util.deepExtend(networkOptions.interaction,this.interactionHandler.options);util.deepExtend(networkOptions.manipulation,this.manipulation.options);util.deepExtend(networkOptions.physics,this.physics.options);util.deepExtend(networkOptions.global,this.canvas.options);util.deepExtend(networkOptions.global,this.options);this.configurator.setModuleOptions(networkOptions)}if(options.clickToUse!==undefined){if(options.clickToUse===true){if(this.activator===undefined){this.activator=new Activator(this.canvas.frame);this.activator.on(\"change\",function(){_this2.body.emitter.emit(\"activate\")})}}else{if(this.activator!==undefined){this.activator.destroy();delete this.activator}this.body.emitter.emit(\"activate\")}}else{this.body.emitter.emit(\"activate\")}this.canvas.setSize();this.body.emitter.emit(\"startSimulation\")}};Network.prototype._updateVisibleIndices=function(){var nodes=this.body.nodes;var edges=this.body.edges;this.body.nodeIndices=[];this.body.edgeIndices=[];for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(!this.clustering._isClusteredNode(nodeId)&&nodes[nodeId].options.hidden===false){this.body.nodeIndices.push(nodes[nodeId].id)}}}for(var edgeId in edges){if(edges.hasOwnProperty(edgeId)){var edge=edges[edgeId];var fromNode=nodes[edge.fromId];var toNode=nodes[edge.toId];var edgeNodesPresent=fromNode!==undefined&&toNode!==undefined;var isVisible=!this.clustering._isClusteredEdge(edgeId)&&edge.options.hidden===false&&edgeNodesPresent&&fromNode.options.hidden===false&&toNode.options.hidden===false;if(isVisible){this.body.edgeIndices.push(edge.id)}}}};Network.prototype.bindEventListeners=function(){var _this3=this;this.body.emitter.on(\"_dataChanged\",function(){_this3.edgesHandler._updateState();_this3.body.emitter.emit(\"_dataUpdated\")});this.body.emitter.on(\"_dataUpdated\",function(){_this3.clustering._updateState();_this3._updateVisibleIndices();_this3._updateValueRange(_this3.body.nodes);_this3._updateValueRange(_this3.body.edges);_this3.body.emitter.emit(\"startSimulation\");_this3.body.emitter.emit(\"_requestRedraw\")})};Network.prototype.setData=function(data){this.body.emitter.emit(\"resetPhysics\");this.body.emitter.emit(\"_resetData\");this.selectionHandler.unselectAll();if(data&&data.dot&&(data.nodes||data.edges)){throw new SyntaxError('Data must contain either parameter \"dot\" or '+' parameter pair \"nodes\" and \"edges\", but not both.')}this.setOptions(data&&data.options);if(data&&data.dot){console.log(\"The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);\");var dotData=dotparser.DOTToGraph(data.dot);this.setData(dotData);return}else if(data&&data.gephi){console.log(\"The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);\");var gephiData=gephiParser.parseGephi(data.gephi);this.setData(gephiData);return}else{this.nodesHandler.setData(data&&data.nodes,true);this.edgesHandler.setData(data&&data.edges,true)}this.body.emitter.emit(\"_dataChanged\");this.body.emitter.emit(\"_dataLoaded\");this.body.emitter.emit(\"initPhysics\")};Network.prototype.destroy=function(){this.body.emitter.emit(\"destroy\");this.body.emitter.off();this.off();delete this.groups;delete this.canvas;delete this.selectionHandler;delete this.interactionHandler;delete this.view;delete this.renderer;delete this.physics;delete this.layoutEngine;delete this.clustering;delete this.manipulation;delete this.nodesHandler;delete this.edgesHandler;delete this.configurator;delete this.images;for(var nodeId in this.body.nodes){if(!this.body.nodes.hasOwnProperty(nodeId))continue;delete this.body.nodes[nodeId]}for(var edgeId in this.body.edges){if(!this.body.edges.hasOwnProperty(edgeId))continue;delete this.body.edges[edgeId]}util.recursiveDOMDelete(this.body.container)};Network.prototype._updateValueRange=function(obj){var id;var valueMin=undefined;var valueMax=undefined;var valueTotal=0;for(id in obj){if(obj.hasOwnProperty(id)){var value=obj[id].getValue();if(value!==undefined){valueMin=valueMin===undefined?value:Math.min(value,valueMin);valueMax=valueMax===undefined?value:Math.max(value,valueMax);valueTotal+=value}}}if(valueMin!==undefined&&valueMax!==undefined){for(id in obj){if(obj.hasOwnProperty(id)){obj[id].setValueRange(valueMin,valueMax,valueTotal)}}}};Network.prototype.isActive=function(){return!this.activator||this.activator.active};Network.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)};Network.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)};Network.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)};Network.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)};Network.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)};Network.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)};Network.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)};Network.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)};Network.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)};Network.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)};Network.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)};Network.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)};Network.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)};Network.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)};Network.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)};Network.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)};Network.prototype.editNodeMode=function(){console.log(\"Deprecated: Please use editNode instead of editNodeMode.\");return this.manipulation.editNode.apply(this.manipulation,arguments)};Network.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)};Network.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)};Network.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)};Network.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)};Network.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)};Network.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)};Network.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)};Network.prototype.getConnectedNodes=function(objectId){if(this.body.nodes[objectId]!==undefined){return this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments)}else{return this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)}};Network.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)};Network.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)};Network.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)};Network.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)};Network.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)};Network.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)};Network.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)};Network.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)};Network.prototype.getNodeAt=function(){var node=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);if(node!==undefined&&node.id!==undefined){return node.id}return node};Network.prototype.getEdgeAt=function(){var edge=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);if(edge!==undefined&&edge.id!==undefined){return edge.id}return edge};Network.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)};Network.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)};Network.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments);this.redraw()};Network.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)};Network.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)};Network.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)};Network.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)};Network.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)};Network.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)};Network.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)};Network.prototype.getOptionsFromConfigurator=function(){var options={};if(this.configurator){options=this.configurator.getOptions.apply(this.configurator)}return options};module.exports=Network},function(module,exports,__webpack_require__){\"use strict\";if(typeof CanvasRenderingContext2D!==\"undefined\"){CanvasRenderingContext2D.prototype.circle=function(x,y,r){this.beginPath();this.arc(x,y,r,0,2*Math.PI,false);this.closePath()};CanvasRenderingContext2D.prototype.square=function(x,y,r){this.beginPath();this.rect(x-r,y-r,r*2,r*2);this.closePath()};CanvasRenderingContext2D.prototype.triangle=function(x,y,r){this.beginPath();r*=1.15;y+=.275*r;var s=r*2;var s2=s/2;var ir=Math.sqrt(3)/6*s;var h=Math.sqrt(s*s-s2*s2);this.moveTo(x,y-(h-ir));this.lineTo(x+s2,y+ir);this.lineTo(x-s2,y+ir);this.lineTo(x,y-(h-ir));this.closePath()};CanvasRenderingContext2D.prototype.triangleDown=function(x,y,r){this.beginPath();r*=1.15;y-=.275*r;var s=r*2;var s2=s/2;var ir=Math.sqrt(3)/6*s;var h=Math.sqrt(s*s-s2*s2);this.moveTo(x,y+(h-ir));this.lineTo(x+s2,y-ir);this.lineTo(x-s2,y-ir);this.lineTo(x,y+(h-ir));this.closePath()};CanvasRenderingContext2D.prototype.star=function(x,y,r){this.beginPath();r*=.82;y+=.1*r;for(var n=0;n<10;n++){var radius=n%2===0?r*1.3:r*.5;this.lineTo(x+radius*Math.sin(n*2*Math.PI/10),y-radius*Math.cos(n*2*Math.PI/10))}this.closePath()};CanvasRenderingContext2D.prototype.diamond=function(x,y,r){this.beginPath();this.lineTo(x,y+r);this.lineTo(x+r,y);this.lineTo(x,y-r);this.lineTo(x-r,y);this.closePath()};CanvasRenderingContext2D.prototype.roundRect=function(x,y,w,h,r){var r2d=Math.PI/180;if(w-2*r<0){r=w/2}if(h-2*r<0){r=h/2}this.beginPath();this.moveTo(x+r,y);this.lineTo(x+w-r,y);this.arc(x+w-r,y+r,r,r2d*270,r2d*360,false);this.lineTo(x+w,y+h-r);this.arc(x+w-r,y+h-r,r,0,r2d*90,false);this.lineTo(x+r,y+h);this.arc(x+r,y+h-r,r,r2d*90,r2d*180,false);this.lineTo(x,y+r);this.arc(x+r,y+r,r,r2d*180,r2d*270,false);this.closePath()};CanvasRenderingContext2D.prototype.ellipse_vis=function(x,y,w,h){var kappa=.5522848,ox=w/2*kappa,oy=h/2*kappa,xe=x+w,ye=y+h,xm=x+w/2,ym=y+h/2;this.beginPath();this.moveTo(x,ym);this.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);this.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);this.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);this.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);this.closePath()};CanvasRenderingContext2D.prototype.database=function(x,y,w,h){var f=1/3;var wEllipse=w;var hEllipse=h*f;var kappa=.5522848,ox=wEllipse/2*kappa,oy=hEllipse/2*kappa,xe=x+wEllipse,ye=y+hEllipse,xm=x+wEllipse/2,ym=y+hEllipse/2,ymb=y+(h-hEllipse/2),yeb=y+h;this.beginPath();this.moveTo(xe,ym);this.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);this.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);this.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);this.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);this.lineTo(xe,ymb);this.bezierCurveTo(xe,ymb+oy,xm+ox,yeb,xm,yeb);this.bezierCurveTo(xm-ox,yeb,x,ymb+oy,x,ymb);this.lineTo(x,ym)};CanvasRenderingContext2D.prototype.dashedLine=function(x,y,x2,y2,pattern){this.beginPath();this.moveTo(x,y);var patternLength=pattern.length;var dx=x2-x;var dy=y2-y;var slope=dy/dx;var distRemaining=Math.sqrt(dx*dx+dy*dy);var patternIndex=0;var draw=true;var xStep=0;var dashLength=pattern[0];while(distRemaining>=.1){dashLength=pattern[patternIndex++%patternLength];if(dashLength>distRemaining){dashLength=distRemaining}xStep=Math.sqrt(dashLength*dashLength/(1+slope*slope));xStep=dx<0?-xStep:xStep;x+=xStep;y+=slope*xStep;if(draw===true){this.lineTo(x,y)}else{this.moveTo(x,y)}distRemaining-=dashLength;draw=!draw}};CanvasRenderingContext2D.prototype.hexagon=function(x,y,r){this.beginPath();var sides=6;var a=Math.PI*2/sides;this.moveTo(x+r,y);for(var i=1;i<sides;i++){this.lineTo(x+r*Math.cos(a*i),y+r*Math.sin(a*i))}this.closePath()}}},function(module,exports,__webpack_require__){\"use strict\";exports[\"en\"]={edit:\"Edit\",del:\"Delete selected\",back:\"Back\",addNode:\"Add Node\",addEdge:\"Add Edge\",editNode:\"Edit Node\",editEdge:\"Edit Edge\",addDescription:\"Click in an empty space to place a new node.\",edgeDescription:\"Click on a node and drag the edge to another node to connect them.\",editEdgeDescription:\"Click on the control points and drag them to a node to connect to it.\",createEdgeError:\"Cannot link edges to a cluster.\",deleteClusterError:\"Clusters cannot be deleted.\",editClusterError:\"Clusters cannot be edited.\"};exports[\"en_EN\"]=exports[\"en\"];exports[\"en_US\"]=exports[\"en\"];exports[\"de\"]={edit:\"Editieren\",del:\"Lösche Auswahl\",back:\"Zurück\",addNode:\"Knoten hinzufügen\",addEdge:\"Kante hinzufügen\",editNode:\"Knoten editieren\",editEdge:\"Kante editieren\",addDescription:\"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.\",edgeDescription:\"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.\",editEdgeDescription:\"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.\",createEdgeError:\"Es ist nicht möglich, Kanten mit Clustern zu verbinden.\",deleteClusterError:\"Cluster können nicht gelöscht werden.\",editClusterError:\"Cluster können nicht editiert werden.\"};exports[\"de_DE\"]=exports[\"de\"];exports[\"es\"]={edit:\"Editar\",del:\"Eliminar selección\",back:\"Átras\",addNode:\"Añadir nodo\",addEdge:\"Añadir arista\",editNode:\"Editar nodo\",editEdge:\"Editar arista\",addDescription:\"Haga clic en un lugar vacío para colocar un nuevo nodo.\",edgeDescription:\"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.\",editEdgeDescription:\"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.\",createEdgeError:\"No se puede conectar una arista a un grupo.\",deleteClusterError:\"No es posible eliminar grupos.\",editClusterError:\"No es posible editar grupos.\"};exports[\"es_ES\"]=exports[\"es\"];exports[\"it\"]={edit:\"Modifica\",del:\"Cancella la selezione\",back:\"Indietro\",addNode:\"Aggiungi un nodo\",addEdge:\"Aggiungi un vertice\",editNode:\"Modifica il nodo\",editEdge:\"Modifica il vertice\",addDescription:\"Clicca per aggiungere un nuovo nodo\",edgeDescription:\"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.\",editEdgeDescription:\"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.\",createEdgeError:\"Non si possono collegare vertici ad un cluster\",deleteClusterError:\"I cluster non possono essere cancellati\",editClusterError:\"I clusters non possono essere modificati.\"};exports[\"it_IT\"]=exports[\"it\"];exports[\"nl\"]={edit:\"Wijzigen\",del:\"Selectie verwijderen\",\nback:\"Terug\",addNode:\"Node toevoegen\",addEdge:\"Link toevoegen\",editNode:\"Node wijzigen\",editEdge:\"Link wijzigen\",addDescription:\"Klik op een leeg gebied om een nieuwe node te maken.\",edgeDescription:\"Klik op een node en sleep de link naar een andere node om ze te verbinden.\",editEdgeDescription:\"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.\",createEdgeError:\"Kan geen link maken naar een cluster.\",deleteClusterError:\"Clusters kunnen niet worden verwijderd.\",editClusterError:\"Clusters kunnen niet worden aangepast.\"};exports[\"nl_NL\"]=exports[\"nl\"];exports[\"nl_BE\"]=exports[\"nl\"];exports[\"pt-br\"]={edit:\"Editar\",del:\"Remover selecionado\",back:\"Voltar\",addNode:\"Adicionar nó\",addEdge:\"Adicionar aresta\",editNode:\"Editar nó\",editEdge:\"Editar aresta\",addDescription:\"Clique em um espaço em branco para adicionar um novo nó\",edgeDescription:\"Clique em um nó e arraste a aresta até outro nó para conectá-los\",editEdgeDescription:\"Clique nos pontos de controle e os arraste para um nó para conectá-los\",createEdgeError:\"Não foi possível linkar arestas a um cluster.\",deleteClusterError:\"Clusters não puderam ser removidos.\",editClusterError:\"Clusters não puderam ser editados.\"};exports[\"pt-BR\"]=exports[\"pt-br\"];exports[\"pt_BR\"]=exports[\"pt-br\"];exports[\"pt_br\"]=exports[\"pt-br\"];exports[\"ru\"]={edit:\"Редактировать\",del:\"Удалить выбранное\",back:\"Назад\",addNode:\"Добавить узел\",addEdge:\"Добавить ребро\",editNode:\"Редактировать узел\",editEdge:\"Редактировать ребро\",addDescription:\"Кликните в свободное место, чтобы добавить новый узел.\",edgeDescription:\"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.\",editEdgeDescription:\"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.\",createEdgeError:\"Невозможно соединить ребра в кластер.\",deleteClusterError:\"Кластеры не могут быть удалены\",editClusterError:\"Кластеры недоступны для редактирования.\"};exports[\"ru_RU\"]=exports[\"ru\"];exports[\"cn\"]={edit:\"编辑\",del:\"删除选定\",back:\"返回\",addNode:\"添加节点\",addEdge:\"添加连接线\",editNode:\"编辑节点\",editEdge:\"编辑连接线\",addDescription:\"单击空白处放置新节点。\",edgeDescription:\"单击某个节点并将该连接线拖动到另一个节点以连接它们。\",editEdgeDescription:\"单击控制节点并将它们拖到节点上连接。\",createEdgeError:\"无法将连接线连接到群集。\",deleteClusterError:\"无法删除群集。\",editClusterError:\"无法编辑群集。\"};exports[\"zh_CN\"]=exports[\"cn\"]},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CachedImage=function(){function CachedImage(){(0,_classCallCheck3[\"default\"])(this,CachedImage);this.NUM_ITERATIONS=4;this.image=new Image;this.canvas=document.createElement(\"canvas\")}(0,_createClass3[\"default\"])(CachedImage,[{key:\"init\",value:function init(){if(this.initialized())return;this.src=this.image.src;var w=this.image.width;var h=this.image.height;this.width=w;this.height=h;var h2=Math.floor(h/2);var h4=Math.floor(h/4);var h8=Math.floor(h/8);var h16=Math.floor(h/16);var w2=Math.floor(w/2);var w4=Math.floor(w/4);var w8=Math.floor(w/8);var w16=Math.floor(w/16);this.canvas.width=3*w4;this.canvas.height=h2;this.coordinates=[[0,0,w2,h2],[w2,0,w4,h4],[w2,h4,w8,h8],[5*w8,h4,w16,h16]];this._fillMipMap()}},{key:\"initialized\",value:function initialized(){return this.coordinates!==undefined}},{key:\"_fillMipMap\",value:function _fillMipMap(){var ctx=this.canvas.getContext(\"2d\");var to=this.coordinates[0];ctx.drawImage(this.image,to[0],to[1],to[2],to[3]);for(var iterations=1;iterations<this.NUM_ITERATIONS;iterations++){var from=this.coordinates[iterations-1];var _to=this.coordinates[iterations];ctx.drawImage(this.canvas,from[0],from[1],from[2],from[3],_to[0],_to[1],_to[2],_to[3])}}},{key:\"drawImageAtPosition\",value:function drawImageAtPosition(ctx,factor,left,top,width,height){if(!this.initialized())return;if(factor>2){factor*=.5;var iterations=0;while(factor>2&&iterations<this.NUM_ITERATIONS){factor*=.5;iterations+=1}if(iterations>=this.NUM_ITERATIONS){iterations=this.NUM_ITERATIONS-1}var from=this.coordinates[iterations];ctx.drawImage(this.canvas,from[0],from[1],from[2],from[3],left,top,width,height)}else{ctx.drawImage(this.image,left,top,width,height)}}}]);return CachedImage}();exports[\"default\"]=CachedImage},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Groups=function(){function Groups(){(0,_classCallCheck3[\"default\"])(this,Groups);this.clear();this.defaultIndex=0;this.groupsArray=[];this.groupIndex=0;this.defaultGroups=[{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},{border:\"#FFA500\",background:\"#FFFF00\",highlight:{border:\"#FFA500\",background:\"#FFFFA3\"},hover:{border:\"#FFA500\",background:\"#FFFFA3\"}},{border:\"#FA0A10\",background:\"#FB7E81\",highlight:{border:\"#FA0A10\",background:\"#FFAFB1\"},hover:{border:\"#FA0A10\",background:\"#FFAFB1\"}},{border:\"#41A906\",background:\"#7BE141\",highlight:{border:\"#41A906\",background:\"#A1EC76\"},hover:{border:\"#41A906\",background:\"#A1EC76\"}},{border:\"#E129F0\",background:\"#EB7DF4\",highlight:{border:\"#E129F0\",background:\"#F0B3F5\"},hover:{border:\"#E129F0\",background:\"#F0B3F5\"}},{border:\"#7C29F0\",background:\"#AD85E4\",highlight:{border:\"#7C29F0\",background:\"#D3BDF0\"},hover:{border:\"#7C29F0\",background:\"#D3BDF0\"}},{border:\"#C37F00\",background:\"#FFA807\",highlight:{border:\"#C37F00\",background:\"#FFCA66\"},hover:{border:\"#C37F00\",background:\"#FFCA66\"}},{border:\"#4220FB\",background:\"#6E6EFD\",highlight:{border:\"#4220FB\",background:\"#9B9BFD\"},hover:{border:\"#4220FB\",background:\"#9B9BFD\"}},{border:\"#FD5A77\",background:\"#FFC0CB\",highlight:{border:\"#FD5A77\",background:\"#FFD1D9\"},hover:{border:\"#FD5A77\",background:\"#FFD1D9\"}},{border:\"#4AD63A\",background:\"#C2FABC\",highlight:{border:\"#4AD63A\",background:\"#E6FFE3\"},hover:{border:\"#4AD63A\",background:\"#E6FFE3\"}},{border:\"#990000\",background:\"#EE0000\",highlight:{border:\"#BB0000\",background:\"#FF3333\"},hover:{border:\"#BB0000\",background:\"#FF3333\"}},{border:\"#FF6000\",background:\"#FF6000\",highlight:{border:\"#FF6000\",background:\"#FF6000\"},hover:{border:\"#FF6000\",background:\"#FF6000\"}},{border:\"#97C2FC\",background:\"#2B7CE9\",highlight:{border:\"#D2E5FF\",background:\"#2B7CE9\"},hover:{border:\"#D2E5FF\",background:\"#2B7CE9\"}},{border:\"#399605\",background:\"#255C03\",highlight:{border:\"#399605\",background:\"#255C03\"},hover:{border:\"#399605\",background:\"#255C03\"}},{border:\"#B70054\",background:\"#FF007E\",highlight:{border:\"#B70054\",background:\"#FF007E\"},hover:{border:\"#B70054\",background:\"#FF007E\"}},{border:\"#AD85E4\",background:\"#7C29F0\",highlight:{border:\"#D3BDF0\",background:\"#7C29F0\"},hover:{border:\"#D3BDF0\",background:\"#7C29F0\"}},{border:\"#4557FA\",background:\"#000EA1\",highlight:{border:\"#6E6EFD\",background:\"#000EA1\"},hover:{border:\"#6E6EFD\",background:\"#000EA1\"}},{border:\"#FFC0CB\",background:\"#FD5A77\",highlight:{border:\"#FFD1D9\",background:\"#FD5A77\"},hover:{border:\"#FFD1D9\",background:\"#FD5A77\"}},{border:\"#C2FABC\",background:\"#74D66A\",highlight:{border:\"#E6FFE3\",background:\"#74D66A\"},hover:{border:\"#E6FFE3\",background:\"#74D66A\"}},{border:\"#EE0000\",background:\"#990000\",highlight:{border:\"#FF3333\",background:\"#BB0000\"},hover:{border:\"#FF3333\",background:\"#BB0000\"}}];this.options={};this.defaultOptions={useDefaultGroups:true};util.extend(this.options,this.defaultOptions)}(0,_createClass3[\"default\"])(Groups,[{key:\"setOptions\",value:function setOptions(options){var optionFields=[\"useDefaultGroups\"];if(options!==undefined){for(var groupName in options){if(options.hasOwnProperty(groupName)){if(optionFields.indexOf(groupName)===-1){var group=options[groupName];this.add(groupName,group)}}}}}},{key:\"clear\",value:function clear(){this.groups={};this.groupsArray=[]}},{key:\"get\",value:function get(groupname){var shouldCreate=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var group=this.groups[groupname];if(group===undefined&&shouldCreate){if(this.options.useDefaultGroups===false&&this.groupsArray.length>0){var index=this.groupIndex%this.groupsArray.length;this.groupIndex++;group={};group.color=this.groups[this.groupsArray[index]];this.groups[groupname]=group}else{var _index=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++;group={};group.color=this.defaultGroups[_index];this.groups[groupname]=group}}return group}},{key:\"add\",value:function add(groupName,style){this.groups[groupName]=style;this.groupsArray.push(groupName);return style}}]);return Groups}();exports[\"default\"]=Groups},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Node=__webpack_require__(47)[\"default\"];var NodesHandler=function(){function NodesHandler(body,images,groups,layoutEngine){var _this=this;(0,_classCallCheck3[\"default\"])(this,NodesHandler);this.body=body;this.images=images;this.groups=groups;this.layoutEngine=layoutEngine;this.body.functions.createNode=this.create.bind(this);this.nodesListeners={add:function add(event,params){_this.add(params.items)},update:function update(event,params){_this.update(params.items,params.data,params.oldData)},remove:function remove(event,params){_this.remove(params.items)}};this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:undefined,color:{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},fixed:{x:false,y:false},font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:0,strokeColor:\"#ffffff\",align:\"center\",vadjust:0,multi:false,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"monospace\",vadjust:2}},group:undefined,hidden:false,icon:{face:\"FontAwesome\",code:undefined,size:50,color:\"#2B7CE9\"},image:undefined,label:undefined,labelHighlightBold:true,level:undefined,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:true,scaling:{min:10,max:30,label:{enabled:false,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function customScalingFunction(min,max,total,value){if(max===min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}}},shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},shape:\"ellipse\",shapeProperties:{borderDashes:false,borderRadius:6,interpolation:true,useImageSize:false,useBorderWithImage:false},size:25,title:undefined,value:undefined,x:undefined,y:undefined};if(this.defaultOptions.mass<=0){throw\"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative\"}this.options=util.bridgeObject(this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(NodesHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"refreshNodes\",this.refresh.bind(this));this.body.emitter.on(\"refresh\",this.refresh.bind(this));this.body.emitter.on(\"destroy\",function(){util.forEach(_this2.nodesListeners,function(callback,event){if(_this2.body.data.nodes)_this2.body.data.nodes.off(event,callback)});delete _this2.body.functions.createNode;delete _this2.nodesListeners.add;delete _this2.nodesListeners.update;delete _this2.nodesListeners.remove;delete _this2.nodesListeners})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){Node.parseOptions(this.options,options);if(options.shape!==undefined){for(var nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){this.body.nodes[nodeId].updateShape()}}}if(options.font!==undefined){for(var _nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId)){this.body.nodes[_nodeId].updateLabelModule();this.body.nodes[_nodeId].needsRefresh()}}}if(options.size!==undefined){for(var _nodeId2 in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId2)){this.body.nodes[_nodeId2].needsRefresh()}}}if(options.hidden!==undefined||options.physics!==undefined){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"setData\",value:function setData(nodes){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var oldNodesData=this.body.data.nodes;if(nodes instanceof DataSet||nodes instanceof DataView){this.body.data.nodes=nodes}else if(Array.isArray(nodes)){this.body.data.nodes=new DataSet;this.body.data.nodes.add(nodes)}else if(!nodes){this.body.data.nodes=new DataSet}else{throw new TypeError(\"Array or DataSet expected\")}if(oldNodesData){util.forEach(this.nodesListeners,function(callback,event){oldNodesData.off(event,callback)})}this.body.nodes={};if(this.body.data.nodes){var me=this;util.forEach(this.nodesListeners,function(callback,event){me.body.data.nodes.on(event,callback)});var ids=this.body.data.nodes.getIds();this.add(ids,true)}if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"add\",value:function add(ids){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var id=void 0;var newNodes=[];for(var i=0;i<ids.length;i++){id=ids[i];var properties=this.body.data.nodes.get(id);var node=this.create(properties);newNodes.push(node);this.body.nodes[id]=node}this.layoutEngine.positionInitially(newNodes);if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"update\",value:function update(ids,changedData,oldData){var nodes=this.body.nodes;var dataChanged=false;for(var i=0;i<ids.length;i++){var id=ids[i];var node=nodes[id];var data=changedData[i];if(node!==undefined){if(node.setOptions(data)){dataChanged=true}}else{dataChanged=true;node=this.create(data);nodes[id]=node}}if(!dataChanged&&oldData!==undefined){dataChanged=changedData.some(function(newValue,index){var oldValue=oldData[index];return oldValue&&oldValue.level!==newValue.level})}if(dataChanged===true){this.body.emitter.emit(\"_dataChanged\")}else{this.body.emitter.emit(\"_dataUpdated\")}}},{key:\"remove\",value:function remove(ids){var nodes=this.body.nodes;for(var i=0;i<ids.length;i++){var id=ids[i];delete nodes[id]}this.body.emitter.emit(\"_dataChanged\")}},{key:\"create\",value:function create(properties){var constructorClass=arguments.length>1&&arguments[1]!==undefined?arguments[1]:Node;return new constructorClass(properties,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:\"refresh\",value:function refresh(){var _this3=this;var clearPositions=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;util.forEach(this.body.nodes,function(node,nodeId){var data=_this3.body.data.nodes.get(nodeId);if(data!==undefined){if(clearPositions===true){node.setOptions({x:null,y:null})}node.setOptions({fixed:false});node.setOptions(data)}})}},{key:\"getPositions\",value:function getPositions(ids){var dataArray={};if(ids!==undefined){if(Array.isArray(ids)===true){for(var i=0;i<ids.length;i++){if(this.body.nodes[ids[i]]!==undefined){var node=this.body.nodes[ids[i]];dataArray[ids[i]]={x:Math.round(node.x),y:Math.round(node.y)}}}}else{if(this.body.nodes[ids]!==undefined){var _node=this.body.nodes[ids];dataArray[ids]={x:Math.round(_node.x),y:Math.round(_node.y)}}}}else{for(var _i=0;_i<this.body.nodeIndices.length;_i++){var _node2=this.body.nodes[this.body.nodeIndices[_i]];dataArray[this.body.nodeIndices[_i]]={x:Math.round(_node2.x),y:Math.round(_node2.y)}}}return dataArray}},{key:\"storePositions\",value:function storePositions(){var dataArray=[];var dataset=this.body.data.nodes.getDataSet();for(var nodeId in dataset._data){if(dataset._data.hasOwnProperty(nodeId)){var node=this.body.nodes[nodeId];if(dataset._data[nodeId].x!=Math.round(node.x)||dataset._data[nodeId].y!=Math.round(node.y)){dataArray.push({id:node.id,x:Math.round(node.x),y:Math.round(node.y)})}}}dataset.update(dataArray)}},{key:\"getBoundingBox\",value:function getBoundingBox(nodeId){if(this.body.nodes[nodeId]!==undefined){return this.body.nodes[nodeId].shape.boundingBox}}},{key:\"getConnectedNodes\",value:function getConnectedNodes(nodeId,direction){var nodeList=[];if(this.body.nodes[nodeId]!==undefined){var node=this.body.nodes[nodeId];var nodeObj={};for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];if(direction!==\"to\"&&edge.toId==node.id){if(nodeObj[edge.fromId]===undefined){nodeList.push(edge.fromId);nodeObj[edge.fromId]=true}}else if(direction!==\"from\"&&edge.fromId==node.id){if(nodeObj[edge.toId]===undefined){nodeList.push(edge.toId);nodeObj[edge.toId]=true}}}}return nodeList}},{key:\"getConnectedEdges\",value:function getConnectedEdges(nodeId){var edgeList=[];if(this.body.nodes[nodeId]!==undefined){var node=this.body.nodes[nodeId];for(var i=0;i<node.edges.length;i++){edgeList.push(node.edges[i].id)}}else{console.log(\"NodeId provided for getConnectedEdges does not exist. Provided: \",nodeId)}return edgeList}},{key:\"moveNode\",value:function moveNode(nodeId,x,y){var _this4=this;if(this.body.nodes[nodeId]!==undefined){this.body.nodes[nodeId].x=Number(x);this.body.nodes[nodeId].y=Number(y);setTimeout(function(){_this4.body.emitter.emit(\"startSimulation\")},0)}else{console.log(\"Node id supplied to moveNode does not exist. Provided: \",nodeId)}}}]);return NodesHandler}();exports[\"default\"]=NodesHandler},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(189),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(49);__webpack_require__(60);module.exports=__webpack_require__(190)},function(module,exports,__webpack_require__){var classof=__webpack_require__(86);var ITERATOR=__webpack_require__(13)(\"iterator\");var Iterators=__webpack_require__(31);module.exports=__webpack_require__(7).isIterable=function(it){var O=Object(it);return O[ITERATOR]!==undefined||\"@@iterator\"in O||Iterators.hasOwnProperty(classof(O))}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var LabelAccumulator=__webpack_require__(192)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var LabelSplitter=function(){function LabelSplitter(ctx,parent,selected,hover){var _this=this;(0,_classCallCheck3[\"default\"])(this,LabelSplitter);this.ctx=ctx;this.parent=parent;var textWidth=function textWidth(text,mod){if(text===undefined)return 0;var values=_this.parent.getFormattingValues(ctx,selected,hover,mod);var width=0;if(text!==\"\"){var measure=_this.ctx.measureText(text);width=measure.width}return{width:width,values:values}};this.lines=new LabelAccumulator(textWidth)}(0,_createClass3[\"default\"])(LabelSplitter,[{key:\"process\",value:function process(text){if(!ComponentUtil.isValidLabel(text)){return this.lines.finalize()}var font=this.parent.fontOptions;text=text.replace(/\\r\\n/g,\"\\n\");text=text.replace(/\\r/g,\"\\n\");var nlLines=String(text).split(\"\\n\");var lineCount=nlLines.length;if(font.multi){for(var i=0;i<lineCount;i++){var blocks=this.splitBlocks(nlLines[i],font.multi);if(blocks===undefined)continue;if(blocks.length===0){this.lines.newLine(\"\");continue}if(font.maxWdt>0){for(var j=0;j<blocks.length;j++){var mod=blocks[j].mod;var _text=blocks[j].text;this.splitStringIntoLines(_text,mod,true)}}else{for(var _j=0;_j<blocks.length;_j++){var _mod=blocks[_j].mod;var _text2=blocks[_j].text;this.lines.append(_text2,_mod)}}this.lines.newLine()}}else{if(font.maxWdt>0){for(var _i=0;_i<lineCount;_i++){this.splitStringIntoLines(nlLines[_i])}}else{for(var _i2=0;_i2<lineCount;_i2++){this.lines.newLine(nlLines[_i2])}}}return this.lines.finalize()}},{key:\"decodeMarkupSystem\",value:function decodeMarkupSystem(markupSystem){var system=\"none\";if(markupSystem===\"markdown\"||markupSystem===\"md\"){system=\"markdown\"}else if(markupSystem===true||markupSystem===\"html\"){system=\"html\"}return system}},{key:\"splitHtmlBlocks\",value:function splitHtmlBlocks(text){var blocks=[];var s={bold:false,ital:false,mono:false,spacing:false,position:0,buffer:\"\",modStack:[]};s.mod=function(){return this.modStack.length===0?\"normal\":this.modStack[0]};s.modName=function(){if(this.modStack.length===0)return\"normal\";else if(this.modStack[0]===\"mono\")return\"mono\";else{if(s.bold&&s.ital){return\"boldital\"}else if(s.bold){return\"bold\"}else if(s.ital){return\"ital\"}}};s.emitBlock=function(){var override=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.spacing){this.add(\" \");this.spacing=false}if(this.buffer.length>0){blocks.push({text:this.buffer,mod:this.modName()});this.buffer=\"\"}};s.add=function(text){if(text===\" \"){s.spacing=true}if(s.spacing){this.buffer+=\" \";this.spacing=false}if(text!=\" \"){this.buffer+=text}};while(s.position<text.length){var ch=text.charAt(s.position);if(/[ \\t]/.test(ch)){if(!s.mono){s.spacing=true}else{s.add(ch)}}else if(/</.test(ch)){if(!s.mono&&!s.bold&&/<b>/.test(text.substr(s.position,3))){s.emitBlock();s.bold=true;s.modStack.unshift(\"bold\");s.position+=2}else if(!s.mono&&!s.ital&&/<i>/.test(text.substr(s.position,3))){s.emitBlock();s.ital=true;s.modStack.unshift(\"ital\");s.position+=2}else if(!s.mono&&/<code>/.test(text.substr(s.position,6))){s.emitBlock();s.mono=true;s.modStack.unshift(\"mono\");s.position+=5}else if(!s.mono&&s.mod()===\"bold\"&&/<\\/b>/.test(text.substr(s.position,4))){s.emitBlock();s.bold=false;s.modStack.shift();s.position+=3}else if(!s.mono&&s.mod()===\"ital\"&&/<\\/i>/.test(text.substr(s.position,4))){s.emitBlock();s.ital=false;s.modStack.shift();s.position+=3}else if(s.mod()===\"mono\"&&/<\\/code>/.test(text.substr(s.position,7))){s.emitBlock();s.mono=false;s.modStack.shift();s.position+=6}else{s.add(ch)}}else if(/&/.test(ch)){if(/</.test(text.substr(s.position,4))){s.add(\"<\");s.position+=3}else if(/&/.test(text.substr(s.position,5))){s.add(\"&\");s.position+=4}else{s.add(\"&\")}}else{s.add(ch)}s.position++}s.emitBlock();return blocks}},{key:\"splitMarkdownBlocks\",value:function splitMarkdownBlocks(text){var blocks=[];var s={bold:false,ital:false,mono:false,beginable:true,spacing:false,position:0,buffer:\"\",modStack:[]};s.mod=function(){return this.modStack.length===0?\"normal\":this.modStack[0]};s.modName=function(){if(this.modStack.length===0)return\"normal\";else if(this.modStack[0]===\"mono\")return\"mono\";else{if(s.bold&&s.ital){return\"boldital\"}else if(s.bold){return\"bold\"}else if(s.ital){return\"ital\"}}};s.emitBlock=function(){var override=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.spacing){this.add(\" \");this.spacing=false}if(this.buffer.length>0){blocks.push({text:this.buffer,mod:this.modName()});this.buffer=\"\"}};s.add=function(text){if(text===\" \"){s.spacing=true}if(s.spacing){this.buffer+=\" \";this.spacing=false}if(text!=\" \"){this.buffer+=text}};while(s.position<text.length){var ch=text.charAt(s.position);if(/[ \\t]/.test(ch)){if(!s.mono){s.spacing=true}else{s.add(ch)}s.beginable=true}else if(/\\\\/.test(ch)){if(s.position<text.length+1){s.position++;ch=text.charAt(s.position);if(/ \\t/.test(ch)){s.spacing=true}else{s.add(ch);s.beginable=false}}}else if(!s.mono&&!s.bold&&(s.beginable||s.spacing)&&/\\*/.test(ch)){s.emitBlock();s.bold=true;s.modStack.unshift(\"bold\")}else if(!s.mono&&!s.ital&&(s.beginable||s.spacing)&&/\\_/.test(ch)){s.emitBlock();s.ital=true;s.modStack.unshift(\"ital\")}else if(!s.mono&&(s.beginable||s.spacing)&&/`/.test(ch)){s.emitBlock();s.mono=true;s.modStack.unshift(\"mono\")}else if(!s.mono&&s.mod()===\"bold\"&&/\\*/.test(ch)){if(s.position===text.length-1||/[.,_` \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.bold=false;s.modStack.shift()}else{s.add(ch)}}else if(!s.mono&&s.mod()===\"ital\"&&/\\_/.test(ch)){if(s.position===text.length-1||/[.,*` \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.ital=false;s.modStack.shift()}else{s.add(ch)}}else if(s.mono&&s.mod()===\"mono\"&&/`/.test(ch)){if(s.position===text.length-1||/[.,*_ \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.mono=false;s.modStack.shift()}else{s.add(ch)}}else{s.add(ch);s.beginable=false}s.position++}s.emitBlock();return blocks}},{key:\"splitBlocks\",value:function splitBlocks(text,markupSystem){var system=this.decodeMarkupSystem(markupSystem);if(system===\"none\"){return[{text:text,mod:\"normal\"}]}else if(system===\"markdown\"){return this.splitMarkdownBlocks(text)}else if(system===\"html\"){return this.splitHtmlBlocks(text)}}},{key:\"overMaxWidth\",value:function overMaxWidth(text){var width=this.ctx.measureText(text).width;return this.lines.curWidth()+width>this.parent.fontOptions.maxWdt}},{key:\"getLongestFit\",value:function getLongestFit(words){var text=\"\";var w=0;while(w<words.length){var pre=text===\"\"?\"\":\" \";var newText=text+pre+words[w];if(this.overMaxWidth(newText))break;text=newText;w++}return w}},{key:\"getLongestFitWord\",value:function getLongestFitWord(words){var w=0;while(w<words.length){if(this.overMaxWidth(words.slice(0,w)))break;w++}return w}},{key:\"splitStringIntoLines\",value:function splitStringIntoLines(str){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";var appendLast=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;str=str.replace(/^( +)/g,\"$1\\r\");str=str.replace(/([^\\r][^ ]*)( +)/g,\"$1\\r$2\\r\");var words=str.split(\"\\r\");while(words.length>0){var w=this.getLongestFit(words);if(w===0){var word=words[0];var x=this.getLongestFitWord(word);this.lines.newLine(word.slice(0,x),mod);words[0]=word.slice(x)}else{var newW=w;if(words[w-1]===\" \"){w--}else if(words[newW]===\" \"){newW++}var text=words.slice(0,w).join(\"\");if(w==words.length&&appendLast){this.lines.append(text,mod)}else{this.lines.newLine(text,mod)}words=words.slice(newW)}}}}]);return LabelSplitter}();exports[\"default\"]=LabelSplitter},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _assign=__webpack_require__(90);var _assign2=_interopRequireDefault(_assign);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var LabelAccumulator=function(){function LabelAccumulator(measureText){(0,_classCallCheck3[\"default\"])(this,LabelAccumulator);this.measureText=measureText;this.current=0;this.width=0;this.height=0;this.lines=[]}(0,_createClass3[\"default\"])(LabelAccumulator,[{key:\"_add\",value:function _add(l,text){var mod=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"normal\";if(this.lines[l]===undefined){this.lines[l]={width:0,height:0,blocks:[]}}var tmpText=text;if(text===undefined||text===\"\")tmpText=\" \";var result=this.measureText(tmpText,mod);var block=(0,_assign2[\"default\"])({},result.values);block.text=text;block.width=result.width;block.mod=mod;if(text===undefined||text===\"\"){block.width=0}this.lines[l].blocks.push(block);this.lines[l].width+=block.width}},{key:\"curWidth\",value:function curWidth(){var line=this.lines[this.current];if(line===undefined)return 0;return line.width}},{key:\"append\",value:function append(text){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";this._add(this.current,text,mod)}},{key:\"newLine\",value:function newLine(text){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";this._add(this.current,text,mod);this.current++}},{key:\"determineLineHeights\",value:function determineLineHeights(){for(var k=0;k<this.lines.length;k++){var line=this.lines[k];var height=0;if(line.blocks!==undefined){for(var l=0;l<line.blocks.length;l++){var block=line.blocks[l];if(height<block.height){height=block.height}}}line.height=height}}},{key:\"determineLabelSize\",value:function determineLabelSize(){var width=0;var height=0;for(var k=0;k<this.lines.length;k++){var line=this.lines[k];if(line.width>width){width=line.width}height+=line.height}this.width=width;this.height=height}},{key:\"removeEmptyBlocks\",value:function removeEmptyBlocks(){var tmpLines=[];for(var k=0;k<this.lines.length;k++){var line=this.lines[k];if(line.blocks.length===0)continue;if(k===this.lines.length-1){if(line.width===0)continue}var tmpLine={};(0,_assign2[\"default\"])(tmpLine,line);tmpLine.blocks=[];var firstEmptyBlock=void 0;var tmpBlocks=[];for(var l=0;l<line.blocks.length;l++){var block=line.blocks[l];if(block.width!==0){tmpBlocks.push(block)}else{if(firstEmptyBlock===undefined){firstEmptyBlock=block}}}if(tmpBlocks.length===0&&firstEmptyBlock!==undefined){tmpBlocks.push(firstEmptyBlock)}tmpLine.blocks=tmpBlocks;tmpLines.push(tmpLine)}return tmpLines}},{key:\"finalize\",value:function finalize(){this.determineLineHeights();this.determineLabelSize();var tmpLines=this.removeEmptyBlocks();return{width:this.width,height:this.height,lines:tmpLines}}}]);return LabelAccumulator}();exports[\"default\"]=LabelAccumulator},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Box=function(_NodeBase){(0,_inherits3[\"default\"])(Box,_NodeBase);function Box(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Box);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Box.__proto__||(0,_getPrototypeOf2[\"default\"])(Box)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Box,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);this.width=dimensions.width+this.margin.right+this.margin.left;this.height=dimensions.height+this.margin.top+this.margin.bottom;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx.roundRect(this.left,this.top,this.width,this.height,values.borderRadius);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y,ctx,selected,hover){this._updateBoundingBox(x,y,ctx,selected,hover)\n;var borderRadius=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(borderRadius)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);var borderWidth=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(angle)),Math.abs(this.height/2/Math.sin(angle)))+borderWidth}}]);return Box}(_NodeBase3[\"default\"]);exports[\"default\"]=Box},function(module,exports,__webpack_require__){__webpack_require__(195);module.exports=__webpack_require__(7).Object.getPrototypeOf},function(module,exports,__webpack_require__){var toObject=__webpack_require__(41);var $getPrototypeOf=__webpack_require__(85);__webpack_require__(87)(\"getPrototypeOf\",function(){return function getPrototypeOf(it){return $getPrototypeOf(toObject(it))}})},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(197),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(198);module.exports=__webpack_require__(7).Object.setPrototypeOf},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Object\",{setPrototypeOf:__webpack_require__(199).set})},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);var anObject=__webpack_require__(27);var check=function(O,proto){anObject(O);if(!isObject(proto)&&proto!==null)throw TypeError(proto+\": can't set as prototype!\")};module.exports={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(test,buggy,set){try{set=__webpack_require__(80)(Function.call,__webpack_require__(89).f(Object.prototype,\"__proto__\").set,2);set(test,[]);buggy=!(test instanceof Array)}catch(e){buggy=true}return function setPrototypeOf(O,proto){check(O,proto);if(buggy)O.__proto__=proto;else set(O,proto);return O}}({},false):undefined),check:check}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Circle=function(_CircleImageBase){(0,_inherits3[\"default\"])(Circle,_CircleImageBase);function Circle(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Circle);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Circle.__proto__||(0,_getPrototypeOf2[\"default\"])(Circle)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Circle,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);var diameter=Math.max(dimensions.width+this.margin.right+this.margin.left,dimensions.height+this.margin.top+this.margin.bottom);this.options.size=diameter/2;this.width=diameter;this.height=diameter;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this._drawRawCircle(ctx,x,y,values);this.updateBoundingBox(x,y);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,y,selected,hover)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.width*.5}}]);return Circle}(_CircleImageBase3[\"default\"]);exports[\"default\"]=Circle},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CircularImage=function(_CircleImageBase){(0,_inherits3[\"default\"])(CircularImage,_CircleImageBase);function CircularImage(options,body,labelModule,imageObj,imageObjAlt){(0,_classCallCheck3[\"default\"])(this,CircularImage);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(CircularImage.__proto__||(0,_getPrototypeOf2[\"default\"])(CircularImage)).call(this,options,body,labelModule));_this.setImages(imageObj,imageObjAlt);return _this}(0,_createClass3[\"default\"])(CircularImage,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var imageAbsent=this.imageObj.src===undefined||this.imageObj.width===undefined||this.imageObj.height===undefined;if(imageAbsent){var diameter=this.options.size*2;this.width=diameter;this.height=diameter;this.radius=.5*this.width;return}if(this.needsRefresh(selected,hover)){this._resizeImage()}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.switchImages(selected);this.resize();this.left=x-this.width/2;this.top=y-this.height/2;this._drawRawCircle(ctx,x,y,values);ctx.save();ctx.clip();this._drawImageAtPosition(ctx,values);ctx.restore();this._drawImageLabel(ctx,x,y,selected,hover);this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.width*.5}}]);return CircularImage}(_CircleImageBase3[\"default\"]);exports[\"default\"]=CircularImage},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Database=function(_NodeBase){(0,_inherits3[\"default\"])(Database,_NodeBase);function Database(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Database);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Database.__proto__||(0,_getPrototypeOf2[\"default\"])(Database)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Database,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);var size=dimensions.width+this.margin.right+this.margin.left;this.width=size;this.height=size;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx.database(x-this.width/2,y-this.height/2,this.width,this.height);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Database}(_NodeBase3[\"default\"]);exports[\"default\"]=Database},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Diamond=function(_ShapeBase){(0,_inherits3[\"default\"])(Diamond,_ShapeBase);function Diamond(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Diamond);return(0,_possibleConstructorReturn3[\"default\"])(this,(Diamond.__proto__||(0,_getPrototypeOf2[\"default\"])(Diamond)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Diamond,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"diamond\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Diamond}(_ShapeBase3[\"default\"]);exports[\"default\"]=Diamond},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Dot=function(_ShapeBase){(0,_inherits3[\"default\"])(Dot,_ShapeBase);function Dot(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Dot);return(0,_possibleConstructorReturn3[\"default\"])(this,(Dot.__proto__||(0,_getPrototypeOf2[\"default\"])(Dot)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Dot,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"circle\",2,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.options.size}}]);return Dot}(_ShapeBase3[\"default\"]);exports[\"default\"]=Dot},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Ellipse=function(_NodeBase){(0,_inherits3[\"default\"])(Ellipse,_NodeBase);function Ellipse(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Ellipse);return(0,_possibleConstructorReturn3[\"default\"])(this,(Ellipse.__proto__||(0,_getPrototypeOf2[\"default\"])(Ellipse)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Ellipse,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);this.height=dimensions.height*2;this.width=dimensions.width+dimensions.height;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width*.5;this.top=y-this.height*.5;this.initContextForDraw(ctx,values);ctx.ellipse_vis(this.left,this.top,this.width,this.height);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,x,y,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);var a=this.width*.5;var b=this.height*.5;var w=Math.sin(angle)*a;var h=Math.cos(angle)*b;return a*b/Math.sqrt(w*w+h*h)}}]);return Ellipse}(_NodeBase3[\"default\"]);exports[\"default\"]=Ellipse},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Icon=function(_NodeBase){(0,_inherits3[\"default\"])(Icon,_NodeBase);function Icon(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Icon);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Icon.__proto__||(0,_getPrototypeOf2[\"default\"])(Icon)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Icon,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)};this.width=this.iconSize.width+this.margin.right+this.margin.left;this.height=this.iconSize.height+this.margin.top+this.margin.bottom;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.options.icon.size=this.options.icon.size||50;this.left=x-this.width/2;this.top=y-this.height/2;this._icon(ctx,x,y,selected,hover,values);if(this.options.label!==undefined){var iconTextSpacing=5;this.labelModule.draw(ctx,this.left+this.iconSize.width/2+this.margin.left,y+this.height/2+iconTextSpacing,selected)}this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.icon.size*.5;this.boundingBox.left=x-this.options.icon.size*.5;this.boundingBox.right=x+this.options.icon.size*.5;this.boundingBox.bottom=y+this.options.icon.size*.5;if(this.options.label!==undefined&&this.labelModule.size.width>0){var iconTextSpacing=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+iconTextSpacing)}}},{key:\"_icon\",value:function _icon(ctx,x,y,selected,hover,values){var iconSize=Number(this.options.icon.size);if(this.options.icon.code!==undefined){ctx.font=(selected?\"bold \":\"\")+iconSize+\"px \"+this.options.icon.face;ctx.fillStyle=this.options.icon.color||\"black\";ctx.textAlign=\"center\";ctx.textBaseline=\"middle\";this.enableShadow(ctx,values);ctx.fillText(this.options.icon.code,x,y);this.disableShadow(ctx,values)}else{console.error(\"When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.\")}}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Icon}(_NodeBase3[\"default\"]);exports[\"default\"]=Icon},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Image=function(_CircleImageBase){(0,_inherits3[\"default\"])(Image,_CircleImageBase);function Image(options,body,labelModule,imageObj,imageObjAlt){(0,_classCallCheck3[\"default\"])(this,Image);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Image.__proto__||(0,_getPrototypeOf2[\"default\"])(Image)).call(this,options,body,labelModule));_this.setImages(imageObj,imageObjAlt);return _this}(0,_createClass3[\"default\"])(Image,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var imageAbsent=this.imageObj.src===undefined||this.imageObj.width===undefined||this.imageObj.height===undefined;if(imageAbsent){var side=this.options.size*2;this.width=side;this.height=side;return}if(this.needsRefresh(selected,hover)){this._resizeImage()}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.switchImages(selected);this.resize();this.left=x-this.width/2;this.top=y-this.height/2;if(this.options.shapeProperties.useBorderWithImage===true){var neutralborderWidth=this.options.borderWidth;var selectionLineWidth=this.options.borderWidthSelected||2*this.options.borderWidth;var borderWidth=(selected?selectionLineWidth:neutralborderWidth)/this.body.view.scale;ctx.lineWidth=Math.min(this.width,borderWidth);ctx.beginPath();ctx.strokeStyle=selected?this.options.color.highlight.border:hover?this.options.color.hover.border:this.options.color.border;ctx.fillStyle=selected?this.options.color.highlight.background:hover?this.options.color.hover.background:this.options.color.background;ctx.rect(this.left-.5*ctx.lineWidth,this.top-.5*ctx.lineWidth,this.width+ctx.lineWidth,this.height+ctx.lineWidth);ctx.fill();this.performStroke(ctx,values);ctx.closePath()}this._drawImageAtPosition(ctx,values);this._drawImageLabel(ctx,x,y,selected,hover);this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.resize();this._updateBoundingBox(x,y);if(this.options.label!==undefined&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Image}(_CircleImageBase3[\"default\"]);exports[\"default\"]=Image},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Square=function(_ShapeBase){(0,_inherits3[\"default\"])(Square,_ShapeBase);function Square(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Square);return(0,_possibleConstructorReturn3[\"default\"])(this,(Square.__proto__||(0,_getPrototypeOf2[\"default\"])(Square)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Square,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"square\",2,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Square}(_ShapeBase3[\"default\"]);exports[\"default\"]=Square},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hexagon=function(_ShapeBase){(0,_inherits3[\"default\"])(Hexagon,_ShapeBase);function Hexagon(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Hexagon);return(0,_possibleConstructorReturn3[\"default\"])(this,(Hexagon.__proto__||(0,_getPrototypeOf2[\"default\"])(Hexagon)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Hexagon,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"hexagon\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Hexagon}(_ShapeBase3[\"default\"]);exports[\"default\"]=Hexagon},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Star=function(_ShapeBase){(0,_inherits3[\"default\"])(Star,_ShapeBase);function Star(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Star);return(0,_possibleConstructorReturn3[\"default\"])(this,(Star.__proto__||(0,_getPrototypeOf2[\"default\"])(Star)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Star,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"star\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Star}(_ShapeBase3[\"default\"]);exports[\"default\"]=Star},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Text=function(_NodeBase){(0,_inherits3[\"default\"])(Text,_NodeBase);function Text(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Text);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Text.__proto__||(0,_getPrototypeOf2[\"default\"])(Text)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Text,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){this.textSize=this.labelModule.getTextSize(ctx,selected,hover);this.width=this.textSize.width+this.margin.right+this.margin.left;this.height=this.textSize.height+this.margin.top+this.margin.bottom;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.enableShadow(ctx,values);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover);this.disableShadow(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Text}(_NodeBase3[\"default\"]);exports[\"default\"]=Text},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Triangle=function(_ShapeBase){(0,_inherits3[\"default\"])(Triangle,_ShapeBase);function Triangle(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Triangle);return(0,_possibleConstructorReturn3[\"default\"])(this,(Triangle.__proto__||(0,_getPrototypeOf2[\"default\"])(Triangle)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Triangle,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"triangle\",3,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Triangle}(_ShapeBase3[\"default\"]);exports[\"default\"]=Triangle},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var TriangleDown=function(_ShapeBase){(0,_inherits3[\"default\"])(TriangleDown,_ShapeBase);function TriangleDown(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,TriangleDown);return(0,_possibleConstructorReturn3[\"default\"])(this,(TriangleDown.__proto__||(0,_getPrototypeOf2[\"default\"])(TriangleDown)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(TriangleDown,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"triangleDown\",3,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return TriangleDown}(_ShapeBase3[\"default\"]);exports[\"default\"]=TriangleDown},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Edge=__webpack_require__(74)[\"default\"];var EdgesHandler=function(){function EdgesHandler(body,images,groups){var _this=this;(0,_classCallCheck3[\"default\"])(this,EdgesHandler);this.body=body;this.images=images;this.groups=groups;this.body.functions.createEdge=this.create.bind(this);this.edgesListeners={add:function add(event,params){_this.add(params.items)},update:function update(event,params){_this.update(params.items)},remove:function remove(event,params){_this.remove(params.items)}};this.options={};this.defaultOptions={arrows:{to:{enabled:false,\nscaleFactor:1,type:\"arrow\"},middle:{enabled:false,scaleFactor:1,type:\"arrow\"},from:{enabled:false,scaleFactor:1,type:\"arrow\"}},arrowStrikethrough:true,color:{color:\"#848484\",highlight:\"#848484\",hover:\"#848484\",inherit:\"from\",opacity:1},dashes:false,font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:2,strokeColor:\"#ffffff\",align:\"horizontal\",multi:false,vadjust:0,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"courier new\",vadjust:2}},hidden:false,hoverWidth:1.5,label:undefined,labelHighlightBold:true,length:undefined,physics:true,scaling:{min:1,max:15,label:{enabled:true,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function customScalingFunction(min,max,total,value){if(max===min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},smooth:{enabled:true,type:\"dynamic\",forceDirection:\"none\",roundness:.5},title:undefined,width:1,value:undefined};util.deepExtend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(EdgesHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"_forceDisableDynamicCurves\",function(type){var emit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(type===\"dynamic\"){type=\"continuous\"}var dataChanged=false;for(var edgeId in _this2.body.edges){if(_this2.body.edges.hasOwnProperty(edgeId)){var edge=_this2.body.edges[edgeId];var edgeData=_this2.body.data.edges._data[edgeId];if(edgeData!==undefined){var smoothOptions=edgeData.smooth;if(smoothOptions!==undefined){if(smoothOptions.enabled===true&&smoothOptions.type===\"dynamic\"){if(type===undefined){edge.setOptions({smooth:false})}else{edge.setOptions({smooth:{type:type}})}dataChanged=true}}}}}if(emit===true&&dataChanged===true){_this2.body.emitter.emit(\"_dataChanged\")}});this.body.emitter.on(\"_dataUpdated\",function(){_this2.reconnectEdges()});this.body.emitter.on(\"refreshEdges\",this.refresh.bind(this));this.body.emitter.on(\"refresh\",this.refresh.bind(this));this.body.emitter.on(\"destroy\",function(){util.forEach(_this2.edgesListeners,function(callback,event){if(_this2.body.data.edges)_this2.body.data.edges.off(event,callback)});delete _this2.body.functions.createEdge;delete _this2.edgesListeners.add;delete _this2.edgesListeners.update;delete _this2.edgesListeners.remove;delete _this2.edgesListeners})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){Edge.parseOptions(this.options,options,true,this.defaultOptions,true);var dataChanged=false;if(options.smooth!==undefined){for(var edgeId in this.body.edges){if(this.body.edges.hasOwnProperty(edgeId)){dataChanged=this.body.edges[edgeId].updateEdgeType()||dataChanged}}}if(options.font!==undefined){for(var _edgeId in this.body.edges){if(this.body.edges.hasOwnProperty(_edgeId)){this.body.edges[_edgeId].updateLabelModule()}}}if(options.hidden!==undefined||options.physics!==undefined||dataChanged===true){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"setData\",value:function setData(edges){var _this3=this;var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var oldEdgesData=this.body.data.edges;if(edges instanceof DataSet||edges instanceof DataView){this.body.data.edges=edges}else if(Array.isArray(edges)){this.body.data.edges=new DataSet;this.body.data.edges.add(edges)}else if(!edges){this.body.data.edges=new DataSet}else{throw new TypeError(\"Array or DataSet expected\")}if(oldEdgesData){util.forEach(this.edgesListeners,function(callback,event){oldEdgesData.off(event,callback)})}this.body.edges={};if(this.body.data.edges){util.forEach(this.edgesListeners,function(callback,event){_this3.body.data.edges.on(event,callback)});var ids=this.body.data.edges.getIds();this.add(ids,true)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"add\",value:function add(ids){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var edges=this.body.edges;var edgesData=this.body.data.edges;for(var i=0;i<ids.length;i++){var id=ids[i];var oldEdge=edges[id];if(oldEdge){oldEdge.disconnect()}var data=edgesData.get(id,{showInternalIds:true});edges[id]=this.create(data)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"update\",value:function update(ids){var edges=this.body.edges;var edgesData=this.body.data.edges;var dataChanged=false;for(var i=0;i<ids.length;i++){var id=ids[i];var data=edgesData.get(id);var edge=edges[id];if(edge!==undefined){edge.disconnect();dataChanged=edge.setOptions(data)||dataChanged;edge.connect()}else{this.body.edges[id]=this.create(data);dataChanged=true}}if(dataChanged===true){this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");this.body.emitter.emit(\"_dataChanged\")}else{this.body.emitter.emit(\"_dataUpdated\")}}},{key:\"remove\",value:function remove(ids){var emit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(ids.length===0)return;var edges=this.body.edges;util.forEach(ids,function(id){var edge=edges[id];if(edge!==undefined){edge.remove()}});if(emit){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"refresh\",value:function refresh(){var _this4=this;util.forEach(this.body.edges,function(edge,edgeId){var data=_this4.body.data.edges._data[edgeId];if(data!==undefined){edge.setOptions(data)}})}},{key:\"create\",value:function create(properties){return new Edge(properties,this.body,this.options,this.defaultOptions)}},{key:\"reconnectEdges\",value:function reconnectEdges(){var id;var nodes=this.body.nodes;var edges=this.body.edges;for(id in nodes){if(nodes.hasOwnProperty(id)){nodes[id].edges=[]}}for(id in edges){if(edges.hasOwnProperty(id)){var edge=edges[id];edge.from=null;edge.to=null;edge.connect()}}}},{key:\"getConnectedNodes\",value:function getConnectedNodes(edgeId){var nodeList=[];if(this.body.edges[edgeId]!==undefined){var edge=this.body.edges[edgeId];if(edge.fromId!==undefined){nodeList.push(edge.fromId)}if(edge.toId!==undefined){nodeList.push(edge.toId)}}return nodeList}},{key:\"_updateState\",value:function _updateState(){this._addMissingEdges();this._removeInvalidEdges()}},{key:\"_removeInvalidEdges\",value:function _removeInvalidEdges(){var _this5=this;var edgesToDelete=[];util.forEach(this.body.edges,function(edge,id){var toNode=_this5.body.nodes[edge.toId];var fromNode=_this5.body.nodes[edge.fromId];if(toNode!==undefined&&toNode.isCluster===true||fromNode!==undefined&&fromNode.isCluster===true){return}if(toNode===undefined||fromNode===undefined){edgesToDelete.push(id)}});this.remove(edgesToDelete,false)}},{key:\"_addMissingEdges\",value:function _addMissingEdges(){var edges=this.body.edges;var edgesData=this.body.data.edges;var addIds=[];edgesData.forEach(function(edgeData,edgeId){var edge=edges[edgeId];if(edge===undefined){addIds.push(edgeId)}});this.add(addIds,true)}}]);return EdgesHandler}();exports[\"default\"]=EdgesHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CubicBezierEdgeBase2=__webpack_require__(216);var _CubicBezierEdgeBase3=_interopRequireDefault(_CubicBezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CubicBezierEdge=function(_CubicBezierEdgeBase){(0,_inherits3[\"default\"])(CubicBezierEdge,_CubicBezierEdgeBase);function CubicBezierEdge(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CubicBezierEdge);return(0,_possibleConstructorReturn3[\"default\"])(this,(CubicBezierEdge.__proto__||(0,_getPrototypeOf2[\"default\"])(CubicBezierEdge)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(CubicBezierEdge,[{key:\"_line\",value:function _line(ctx,values,viaNodes){var via1=viaNodes[0];var via2=viaNodes[1];this._bezierCurve(ctx,values,via1,via2)}},{key:\"_getViaCoordinates\",value:function _getViaCoordinates(){var dx=this.from.x-this.to.x;var dy=this.from.y-this.to.y;var x1=void 0,y1=void 0,x2=void 0,y2=void 0;var roundness=this.options.smooth.roundness;if((Math.abs(dx)>Math.abs(dy)||this.options.smooth.forceDirection===true||this.options.smooth.forceDirection===\"horizontal\")&&this.options.smooth.forceDirection!==\"vertical\"){y1=this.from.y;y2=this.to.y;x1=this.from.x-roundness*dx;x2=this.to.x+roundness*dx}else{y1=this.from.y-roundness*dy;y2=this.to.y+roundness*dy;x1=this.from.x;x2=this.to.x}return[{x:x1,y:y1},{x:x2,y:y2}]}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){return this._findBorderPositionBezier(nearNode,ctx)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){var _ref=arguments.length>6&&arguments[6]!==undefined?arguments[6]:this._getViaCoordinates(),_ref2=(0,_slicedToArray3[\"default\"])(_ref,2),via1=_ref2[0],via2=_ref2[1];return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via1,via2)}},{key:\"getPoint\",value:function getPoint(percentage){var _ref3=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this._getViaCoordinates(),_ref4=(0,_slicedToArray3[\"default\"])(_ref3,2),via1=_ref4[0],via2=_ref4[1];var t=percentage;var vec=[];vec[0]=Math.pow(1-t,3);vec[1]=3*t*Math.pow(1-t,2);vec[2]=3*Math.pow(t,2)*(1-t);vec[3]=Math.pow(t,3);var x=vec[0]*this.fromPoint.x+vec[1]*via1.x+vec[2]*via2.x+vec[3]*this.toPoint.x;var y=vec[0]*this.fromPoint.y+vec[1]*via1.y+vec[2]*via2.y+vec[3]*this.toPoint.y;return{x:x,y:y}}}]);return CubicBezierEdge}(_CubicBezierEdgeBase3[\"default\"]);exports[\"default\"]=CubicBezierEdge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CubicBezierEdgeBase=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(CubicBezierEdgeBase,_BezierEdgeBase);function CubicBezierEdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CubicBezierEdgeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(CubicBezierEdgeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(CubicBezierEdgeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(CubicBezierEdgeBase,[{key:\"_getDistanceToBezierEdge\",value:function _getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via1,via2){var minDistance=1e9;var distance=void 0;var i=void 0,t=void 0,x=void 0,y=void 0;var lastX=x1;var lastY=y1;var vec=[0,0,0,0];for(i=1;i<10;i++){t=.1*i;vec[0]=Math.pow(1-t,3);vec[1]=3*t*Math.pow(1-t,2);vec[2]=3*Math.pow(t,2)*(1-t);vec[3]=Math.pow(t,3);x=vec[0]*x1+vec[1]*via1.x+vec[2]*via2.x+vec[3]*x2;y=vec[0]*y1+vec[1]*via1.y+vec[2]*via2.y+vec[3]*y2;if(i>0){distance=this._getDistanceToLine(lastX,lastY,x,y,x3,y3);minDistance=distance<minDistance?distance:minDistance}lastX=x;lastY=y}return minDistance}}]);return CubicBezierEdgeBase}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=CubicBezierEdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeDynamic=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(BezierEdgeDynamic,_BezierEdgeBase);function BezierEdgeDynamic(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeDynamic);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeDynamic.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeDynamic)).call(this,options,body,labelModule));_this._boundFunction=function(){_this.positionBezierNode()};_this.body.emitter.on(\"_repositionBezierNodes\",_this._boundFunction);return _this}(0,_createClass3[\"default\"])(BezierEdgeDynamic,[{key:\"setOptions\",value:function setOptions(options){var physicsChange=false;if(this.options.physics!==options.physics){physicsChange=true}this.options=options;this.id=this.options.id;this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];this.setupSupportNode();this.connect();if(physicsChange===true){this.via.setOptions({physics:this.options.physics});this.positionBezierNode()}}},{key:\"connect\",value:function connect(){this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];if(this.from===undefined||this.to===undefined||this.options.physics===false){this.via.setOptions({physics:false})}else{if(this.from.id===this.to.id){this.via.setOptions({physics:false})}else{this.via.setOptions({physics:true})}}}},{key:\"cleanup\",value:function cleanup(){this.body.emitter.off(\"_repositionBezierNodes\",this._boundFunction);if(this.via!==undefined){delete this.body.nodes[this.via.id];this.via=undefined;return true}return false}},{key:\"setupSupportNode\",value:function setupSupportNode(){if(this.via===undefined){var nodeId=\"edgeId:\"+this.id;var node=this.body.functions.createNode({id:nodeId,shape:\"circle\",physics:true,hidden:true});this.body.nodes[nodeId]=node;this.via=node;this.via.parentEdgeId=this.id;this.positionBezierNode()}}},{key:\"positionBezierNode\",value:function positionBezierNode(){if(this.via!==undefined&&this.from!==undefined&&this.to!==undefined){this.via.x=.5*(this.from.x+this.to.x);this.via.y=.5*(this.from.y+this.to.y)}else if(this.via!==undefined){this.via.x=0;this.via.y=0}}},{key:\"_line\",value:function _line(ctx,values,viaNode){this._bezierCurve(ctx,values,viaNode)}},{key:\"getViaNode\",value:function getViaNode(){return this.via}},{key:\"getPoint\",value:function getPoint(percentage){var viaNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.via;var t=percentage;var x=void 0,y=void 0;if(this.from===this.to){var _getCircleData=this._getCircleData(this.from),_getCircleData2=(0,_slicedToArray3[\"default\"])(_getCircleData,3),cx=_getCircleData2[0],cy=_getCircleData2[1],cr=_getCircleData2[2];var a=2*Math.PI*(1-t);x=cx+cr*Math.sin(a);y=cy+cr-cr*(1-Math.cos(a))}else{x=Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*viaNode.x+Math.pow(t,2)*this.toPoint.x;y=Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*viaNode.y+Math.pow(t,2)*this.toPoint.y}return{x:x,y:y}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){return this._findBorderPositionBezier(nearNode,ctx,this.via)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,this.via)}}]);return BezierEdgeDynamic}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeDynamic},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeStatic=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(BezierEdgeStatic,_BezierEdgeBase);function BezierEdgeStatic(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeStatic);return(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeStatic.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeStatic)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(BezierEdgeStatic,[{key:\"_line\",value:function _line(ctx,values,viaNode){this._bezierCurve(ctx,values,viaNode)}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}},{key:\"_getViaCoordinates\",value:function _getViaCoordinates(){var xVia=undefined;var yVia=undefined;var factor=this.options.smooth.roundness;var type=this.options.smooth.type;var dx=Math.abs(this.from.x-this.to.x);var dy=Math.abs(this.from.y-this.to.y);if(type===\"discrete\"||type===\"diagonalCross\"){var stepX=void 0;var stepY=void 0;if(dx<=dy){stepX=stepY=factor*dy}else{stepX=stepY=factor*dx}if(this.from.x>this.to.x)stepX=-stepX;if(this.from.y>=this.to.y)stepY=-stepY;xVia=this.from.x+stepX;yVia=this.from.y+stepY;if(type===\"discrete\"){if(dx<=dy){xVia=dx<factor*dy?this.from.x:xVia}else{yVia=dy<factor*dx?this.from.y:yVia}}}else if(type===\"straightCross\"){var _stepX=(1-factor)*dx;var _stepY=(1-factor)*dy;if(dx<=dy){_stepX=0;if(this.from.y<this.to.y)_stepY=-_stepY}else{if(this.from.x<this.to.x)_stepX=-_stepX;_stepY=0}xVia=this.to.x+_stepX;yVia=this.to.y+_stepY}else if(type===\"horizontal\"){var _stepX2=(1-factor)*dx;if(this.from.x<this.to.x)_stepX2=-_stepX2;xVia=this.to.x+_stepX2;yVia=this.from.y}else if(type===\"vertical\"){var _stepY2=(1-factor)*dy;if(this.from.y<this.to.y)_stepY2=-_stepY2;xVia=this.from.x;yVia=this.to.y+_stepY2}else if(type===\"curvedCW\"){dx=this.to.x-this.from.x;dy=this.from.y-this.to.y;var radius=Math.sqrt(dx*dx+dy*dy);var pi=Math.PI;var originalAngle=Math.atan2(dy,dx);var myAngle=(originalAngle+(factor*.5+.5)*pi)%(2*pi);xVia=this.from.x+(factor*.5+.5)*radius*Math.sin(myAngle);yVia=this.from.y+(factor*.5+.5)*radius*Math.cos(myAngle)}else if(type===\"curvedCCW\"){dx=this.to.x-this.from.x;dy=this.from.y-this.to.y;var _radius=Math.sqrt(dx*dx+dy*dy);var _pi=Math.PI;var _originalAngle=Math.atan2(dy,dx);var _myAngle=(_originalAngle+(-factor*.5+.5)*_pi)%(2*_pi);xVia=this.from.x+(factor*.5+.5)*_radius*Math.sin(_myAngle);yVia=this.from.y+(factor*.5+.5)*_radius*Math.cos(_myAngle)}else{var _stepX3=void 0;var _stepY3=void 0;if(dx<=dy){_stepX3=_stepY3=factor*dy}else{_stepX3=_stepY3=factor*dx}if(this.from.x>this.to.x)_stepX3=-_stepX3;if(this.from.y>=this.to.y)_stepY3=-_stepY3;xVia=this.from.x+_stepX3;yVia=this.from.y+_stepY3;if(dx<=dy){if(this.from.x<=this.to.x){xVia=this.to.x<xVia?this.to.x:xVia}else{xVia=this.to.x>xVia?this.to.x:xVia}}else{if(this.from.y>=this.to.y){yVia=this.to.y>yVia?this.to.y:yVia}else{yVia=this.to.y<yVia?this.to.y:yVia}}}return{x:xVia,y:yVia}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};return this._findBorderPositionBezier(nearNode,ctx,options.via)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){var viaNode=arguments.length>6&&arguments[6]!==undefined?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,viaNode)}},{key:\"getPoint\",value:function getPoint(percentage){var viaNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this._getViaCoordinates();var t=percentage;var x=Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*viaNode.x+Math.pow(t,2)*this.toPoint.x;var y=Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*viaNode.y+Math.pow(t,2)*this.toPoint.y;return{x:x,y:y}}}]);return BezierEdgeStatic}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeStatic},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _EdgeBase2=__webpack_require__(118);var _EdgeBase3=_interopRequireDefault(_EdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var StraightEdge=function(_EdgeBase){(0,_inherits3[\"default\"])(StraightEdge,_EdgeBase);function StraightEdge(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,StraightEdge);return(0,_possibleConstructorReturn3[\"default\"])(this,(StraightEdge.__proto__||(0,_getPrototypeOf2[\"default\"])(StraightEdge)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(StraightEdge,[{key:\"_line\",value:function _line(ctx,values){ctx.beginPath();ctx.moveTo(this.fromPoint.x,this.fromPoint.y);ctx.lineTo(this.toPoint.x,this.toPoint.y);this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getViaNode\",value:function getViaNode(){return undefined}},{key:\"getPoint\",value:function getPoint(percentage){return{x:(1-percentage)*this.fromPoint.x+percentage*this.toPoint.x,y:(1-percentage)*this.fromPoint.y+percentage*this.toPoint.y}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){var node1=this.to;var node2=this.from;if(nearNode.id===this.from.id){node1=this.from;node2=this.to}var angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);var dx=node1.x-node2.x;var dy=node1.y-node2.y;var edgeSegmentLength=Math.sqrt(dx*dx+dy*dy);var toBorderDist=nearNode.distanceToBorder(ctx,angle);var toBorderPoint=(edgeSegmentLength-toBorderDist)/edgeSegmentLength;var borderPos={};borderPos.x=(1-toBorderPoint)*node2.x+toBorderPoint*node1.x;borderPos.y=(1-toBorderPoint)*node2.y+toBorderPoint*node1.y;return borderPos}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){return this._getDistanceToLine(x1,y1,x2,y2,x3,y3)}}]);return StraightEdge}(_EdgeBase3[\"default\"]);exports[\"default\"]=StraightEdge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BarnesHutSolver=__webpack_require__(120)[\"default\"];var Repulsion=__webpack_require__(221)[\"default\"];var HierarchicalRepulsion=__webpack_require__(222)[\"default\"];var SpringSolver=__webpack_require__(223)[\"default\"];var HierarchicalSpringSolver=__webpack_require__(224)[\"default\"];var CentralGravitySolver=__webpack_require__(121)[\"default\"];var ForceAtlas2BasedRepulsionSolver=__webpack_require__(225)[\"default\"];var ForceAtlas2BasedCentralGravitySolver=__webpack_require__(226)[\"default\"];var util=__webpack_require__(2);var EndPoints=__webpack_require__(119)[\"default\"];var PhysicsEngine=function(){function PhysicsEngine(body){(0,_classCallCheck3[\"default\"])(this,PhysicsEngine);this.body=body;this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}};this.physicsEnabled=true;this.simulationInterval=1e3/60;this.requiresTimeout=true;this.previousStates={};this.referenceState={};this.freezeCache={};this.renderTimer=undefined;this.adaptiveTimestep=false;this.adaptiveTimestepEnabled=false;this.adaptiveCounter=0;this.adaptiveInterval=3;this.stabilized=false;this.startedStabilization=false;this.stabilizationIterations=0;this.ready=false;this.options={};this.defaultOptions={enabled:true,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:\"barnesHut\",stabilization:{enabled:true,iterations:1e3,updateInterval:50,onlyDynamicEdges:false,fit:true},timestep:.5,adaptiveTimestep:true};util.extend(this.options,this.defaultOptions);this.timestep=.5;this.layoutFailed=false;this.bindEventListeners()}(0,_createClass3[\"default\"])(PhysicsEngine,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"initPhysics\",function(){_this.initPhysics()});this.body.emitter.on(\"_layoutFailed\",function(){_this.layoutFailed=true});this.body.emitter.on(\"resetPhysics\",function(){_this.stopSimulation();_this.ready=false});this.body.emitter.on(\"disablePhysics\",function(){_this.physicsEnabled=false;_this.stopSimulation()});this.body.emitter.on(\"restorePhysics\",function(){_this.setOptions(_this.options);if(_this.ready===true){_this.startSimulation()}});this.body.emitter.on(\"startSimulation\",function(){if(_this.ready===true){_this.startSimulation()}});this.body.emitter.on(\"stopSimulation\",function(){_this.stopSimulation()});this.body.emitter.on(\"destroy\",function(){_this.stopSimulation(false);_this.body.emitter.off()});this.body.emitter.on(\"_dataChanged\",function(){_this.updatePhysicsData()})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){if(options===false){this.options.enabled=false;this.physicsEnabled=false;this.stopSimulation()}else if(options===true){this.options.enabled=true;this.physicsEnabled=true;this.startSimulation()}else{this.physicsEnabled=true;util.selectiveNotDeepExtend([\"stabilization\"],this.options,options);util.mergeOptions(this.options,options,\"stabilization\");if(options.enabled===undefined){this.options.enabled=true}if(this.options.enabled===false){this.physicsEnabled=false;this.stopSimulation()}this.timestep=this.options.timestep}}this.init()}},{key:\"init\",value:function init(){var options;if(this.options.solver===\"forceAtlas2Based\"){options=this.options.forceAtlas2Based;this.nodesSolver=new ForceAtlas2BasedRepulsionSolver(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new ForceAtlas2BasedCentralGravitySolver(this.body,this.physicsBody,options)}else if(this.options.solver===\"repulsion\"){options=this.options.repulsion;this.nodesSolver=new Repulsion(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}else if(this.options.solver===\"hierarchicalRepulsion\"){options=this.options.hierarchicalRepulsion;this.nodesSolver=new HierarchicalRepulsion(this.body,this.physicsBody,options);this.edgesSolver=new HierarchicalSpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}else{options=this.options.barnesHut;this.nodesSolver=new BarnesHutSolver(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}this.modelOptions=options}},{key:\"initPhysics\",value:function initPhysics(){if(this.physicsEnabled===true&&this.options.enabled===true){if(this.options.stabilization.enabled===true){this.stabilize()}else{this.stabilized=false;this.ready=true;this.body.emitter.emit(\"fit\",{},this.layoutFailed);this.startSimulation()}}else{this.ready=true;this.body.emitter.emit(\"fit\")}}},{key:\"startSimulation\",value:function startSimulation(){if(this.physicsEnabled===true&&this.options.enabled===true){this.stabilized=false;this.adaptiveTimestep=false;this.body.emitter.emit(\"_resizeNodes\");if(this.viewFunction===undefined){this.viewFunction=this.simulationStep.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction);this.body.emitter.emit(\"_startRendering\")}}else{this.body.emitter.emit(\"_redraw\")}}},{key:\"stopSimulation\",value:function stopSimulation(){var emit=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.stabilized=true;if(emit===true){this._emitStabilized()}if(this.viewFunction!==undefined){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.viewFunction=undefined;if(emit===true){this.body.emitter.emit(\"_stopRendering\")}}}},{key:\"simulationStep\",value:function simulationStep(){var startTime=Date.now();this.physicsTick();var physicsTime=Date.now()-startTime;if((physicsTime<.4*this.simulationInterval||this.runDoubleSpeed===true)&&this.stabilized===false){this.physicsTick();this.runDoubleSpeed=true}if(this.stabilized===true){this.stopSimulation()}}},{key:\"_emitStabilized\",value:function _emitStabilized(){var _this2=this;var amountOfIterations=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.stabilizationIterations;if(this.stabilizationIterations>1||this.startedStabilization===true){setTimeout(function(){_this2.body.emitter.emit(\"stabilized\",{iterations:amountOfIterations});_this2.startedStabilization=false;_this2.stabilizationIterations=0},0)}}},{key:\"physicsStep\",value:function physicsStep(){this.gravitySolver.solve();this.nodesSolver.solve();this.edgesSolver.solve();this.moveNodes()}},{key:\"adjustTimeStep\",value:function adjustTimeStep(){var factor=1.2;if(this._evaluateStepQuality()===true){this.timestep=factor*this.timestep}else{if(this.timestep/factor<this.options.timestep){this.timestep=this.options.timestep}else{this.adaptiveCounter=-1;this.timestep=Math.max(this.options.timestep,this.timestep/factor)}}}},{key:\"physicsTick\",value:function physicsTick(){this._startStabilizing();if(this.stabilized===true)return;if(this.adaptiveTimestep===true&&this.adaptiveTimestepEnabled===true){var doAdaptive=this.adaptiveCounter%this.adaptiveInterval===0;if(doAdaptive){this.timestep=2*this.timestep;this.physicsStep();this.revert();this.timestep=.5*this.timestep;this.physicsStep();this.physicsStep();this.adjustTimeStep()}else{this.physicsStep()}this.adaptiveCounter+=1}else{this.timestep=this.options.timestep;this.physicsStep()}\nif(this.stabilized===true)this.revert();this.stabilizationIterations++}},{key:\"updatePhysicsData\",value:function updatePhysicsData(){this.physicsBody.forces={};this.physicsBody.physicsNodeIndices=[];this.physicsBody.physicsEdgeIndices=[];var nodes=this.body.nodes;var edges=this.body.edges;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(nodes[nodeId].options.physics===true){this.physicsBody.physicsNodeIndices.push(nodes[nodeId].id)}}}for(var edgeId in edges){if(edges.hasOwnProperty(edgeId)){if(edges[edgeId].options.physics===true){this.physicsBody.physicsEdgeIndices.push(edges[edgeId].id)}}}for(var i=0;i<this.physicsBody.physicsNodeIndices.length;i++){var _nodeId=this.physicsBody.physicsNodeIndices[i];this.physicsBody.forces[_nodeId]={x:0,y:0};if(this.physicsBody.velocities[_nodeId]===undefined){this.physicsBody.velocities[_nodeId]={x:0,y:0}}}for(var _nodeId2 in this.physicsBody.velocities){if(nodes[_nodeId2]===undefined){delete this.physicsBody.velocities[_nodeId2]}}}},{key:\"revert\",value:function revert(){var nodeIds=(0,_keys2[\"default\"])(this.previousStates);var nodes=this.body.nodes;var velocities=this.physicsBody.velocities;this.referenceState={};for(var i=0;i<nodeIds.length;i++){var nodeId=nodeIds[i];if(nodes[nodeId]!==undefined){if(nodes[nodeId].options.physics===true){this.referenceState[nodeId]={positions:{x:nodes[nodeId].x,y:nodes[nodeId].y}};velocities[nodeId].x=this.previousStates[nodeId].vx;velocities[nodeId].y=this.previousStates[nodeId].vy;nodes[nodeId].x=this.previousStates[nodeId].x;nodes[nodeId].y=this.previousStates[nodeId].y}}else{delete this.previousStates[nodeId]}}}},{key:\"_evaluateStepQuality\",value:function _evaluateStepQuality(){var dx=void 0,dy=void 0,dpos=void 0;var nodes=this.body.nodes;var reference=this.referenceState;var posThreshold=.3;for(var nodeId in this.referenceState){if(this.referenceState.hasOwnProperty(nodeId)&&nodes[nodeId]!==undefined){dx=nodes[nodeId].x-reference[nodeId].positions.x;dy=nodes[nodeId].y-reference[nodeId].positions.y;dpos=Math.sqrt(Math.pow(dx,2)+Math.pow(dy,2));if(dpos>posThreshold){return false}}}return true}},{key:\"moveNodes\",value:function moveNodes(){var nodeIndices=this.physicsBody.physicsNodeIndices;var maxNodeVelocity=0;var averageNodeVelocity=0;var velocityAdaptiveThreshold=5;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];var nodeVelocity=this._performStep(nodeId);maxNodeVelocity=Math.max(maxNodeVelocity,nodeVelocity);averageNodeVelocity+=nodeVelocity}this.adaptiveTimestepEnabled=averageNodeVelocity/nodeIndices.length<velocityAdaptiveThreshold;this.stabilized=maxNodeVelocity<this.options.minVelocity}},{key:\"calculateComponentVelocity\",value:function calculateComponentVelocity(v,f,m){var df=this.modelOptions.damping*v;var a=(f-df)/m;v+=a*this.timestep;var maxV=this.options.maxVelocity||1e9;if(Math.abs(v)>maxV){v=v>0?maxV:-maxV}return v}},{key:\"_performStep\",value:function _performStep(nodeId){var node=this.body.nodes[nodeId];var force=this.physicsBody.forces[nodeId];var velocity=this.physicsBody.velocities[nodeId];this.previousStates[nodeId]={x:node.x,y:node.y,vx:velocity.x,vy:velocity.y};if(node.options.fixed.x===false){velocity.x=this.calculateComponentVelocity(velocity.x,force.x,node.options.mass);node.x+=velocity.x*this.timestep}else{force.x=0;velocity.x=0}if(node.options.fixed.y===false){velocity.y=this.calculateComponentVelocity(velocity.y,force.y,node.options.mass);node.y+=velocity.y*this.timestep}else{force.y=0;velocity.y=0}var totalVelocity=Math.sqrt(Math.pow(velocity.x,2)+Math.pow(velocity.y,2));return totalVelocity}},{key:\"_freezeNodes\",value:function _freezeNodes(){var nodes=this.body.nodes;for(var id in nodes){if(nodes.hasOwnProperty(id)){if(nodes[id].x&&nodes[id].y){var fixed=nodes[id].options.fixed;this.freezeCache[id]={x:fixed.x,y:fixed.y};fixed.x=true;fixed.y=true}}}}},{key:\"_restoreFrozenNodes\",value:function _restoreFrozenNodes(){var nodes=this.body.nodes;for(var id in nodes){if(nodes.hasOwnProperty(id)){if(this.freezeCache[id]!==undefined){nodes[id].options.fixed.x=this.freezeCache[id].x;nodes[id].options.fixed.y=this.freezeCache[id].y}}}this.freezeCache={}}},{key:\"stabilize\",value:function stabilize(){var _this3=this;var iterations=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.options.stabilization.iterations;if(typeof iterations!==\"number\"){iterations=this.options.stabilization.iterations;console.log(\"The stabilize method needs a numeric amount of iterations. Switching to default: \",iterations)}if(this.physicsBody.physicsNodeIndices.length===0){this.ready=true;return}this.adaptiveTimestep=true&&this.options.adaptiveTimestep;this.body.emitter.emit(\"_resizeNodes\");this.stopSimulation();this.stabilized=false;this.body.emitter.emit(\"_blockRedraw\");this.targetIterations=iterations;if(this.options.stabilization.onlyDynamicEdges===true){this._freezeNodes()}this.stabilizationIterations=0;setTimeout(function(){return _this3._stabilizationBatch()},0)}},{key:\"_startStabilizing\",value:function _startStabilizing(){if(this.startedStabilization===true)return false;this.body.emitter.emit(\"startStabilizing\");this.startedStabilization=true;return true}},{key:\"_stabilizationBatch\",value:function _stabilizationBatch(){var _this4=this;var running=function running(){return _this4.stabilized===false&&_this4.stabilizationIterations<_this4.targetIterations};var sendProgress=function sendProgress(){_this4.body.emitter.emit(\"stabilizationProgress\",{iterations:_this4.stabilizationIterations,total:_this4.targetIterations})};if(this._startStabilizing()){sendProgress()}var count=0;while(running()&&count<this.options.stabilization.updateInterval){this.physicsTick();count++}sendProgress();if(running()){setTimeout(this._stabilizationBatch.bind(this),0)}else{this._finalizeStabilization()}}},{key:\"_finalizeStabilization\",value:function _finalizeStabilization(){this.body.emitter.emit(\"_allowRedraw\");if(this.options.stabilization.fit===true){this.body.emitter.emit(\"fit\")}if(this.options.stabilization.onlyDynamicEdges===true){this._restoreFrozenNodes()}this.body.emitter.emit(\"stabilizationIterationsDone\");this.body.emitter.emit(\"_requestRedraw\");if(this.stabilized===true){this._emitStabilized()}else{this.startSimulation()}this.ready=true}},{key:\"_drawForces\",value:function _drawForces(ctx){for(var i=0;i<this.physicsBody.physicsNodeIndices.length;i++){var index=this.physicsBody.physicsNodeIndices[i];var node=this.body.nodes[index];var force=this.physicsBody.forces[index];var factor=20;var colorFactor=.03;var forceSize=Math.sqrt(Math.pow(force.x,2)+Math.pow(force.x,2));var size=Math.min(Math.max(5,forceSize),15);var arrowSize=3*size;var color=util.HSVToHex((180-Math.min(1,Math.max(0,colorFactor*forceSize))*180)/360,1,1);var point={x:node.x+factor*force.x,y:node.y+factor*force.y};ctx.lineWidth=size;ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(node.x,node.y);ctx.lineTo(point.x,point.y);ctx.stroke();var angle=Math.atan2(force.y,force.x);ctx.fillStyle=color;EndPoints.draw(ctx,{type:\"arrow\",point:point,angle:angle,length:arrowSize});ctx.fill()}}}]);return PhysicsEngine}();exports[\"default\"]=PhysicsEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var RepulsionSolver=function(){function RepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,RepulsionSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(RepulsionSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx,dy,distance,fx,fy,repulsingForce,node1,node2;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;var nodeDistance=this.options.nodeDistance;var a=-2/3/nodeDistance;var b=4/3;for(var i=0;i<nodeIndices.length-1;i++){node1=nodes[nodeIndices[i]];for(var j=i+1;j<nodeIndices.length;j++){node2=nodes[nodeIndices[j]];dx=node2.x-node1.x;dy=node2.y-node1.y;distance=Math.sqrt(dx*dx+dy*dy);if(distance===0){distance=.1*Math.random();dx=distance}if(distance<2*nodeDistance){if(distance<.5*nodeDistance){repulsingForce=1}else{repulsingForce=a*distance+b}repulsingForce=repulsingForce/distance;fx=dx*repulsingForce;fy=dy*repulsingForce;forces[node1.id].x-=fx;forces[node1.id].y-=fy;forces[node2.id].x+=fx;forces[node2.id].y+=fy}}}}}]);return RepulsionSolver}();exports[\"default\"]=RepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var HierarchicalRepulsionSolver=function(){function HierarchicalRepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,HierarchicalRepulsionSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(HierarchicalRepulsionSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx,dy,distance,fx,fy,repulsingForce,node1,node2,i,j;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;var nodeDistance=this.options.nodeDistance;for(i=0;i<nodeIndices.length-1;i++){node1=nodes[nodeIndices[i]];for(j=i+1;j<nodeIndices.length;j++){node2=nodes[nodeIndices[j]];if(node1.level===node2.level){dx=node2.x-node1.x;dy=node2.y-node1.y;distance=Math.sqrt(dx*dx+dy*dy);var steepness=.05;if(distance<nodeDistance){repulsingForce=-Math.pow(steepness*distance,2)+Math.pow(steepness*nodeDistance,2)}else{repulsingForce=0}if(distance===0){distance=.01}else{repulsingForce=repulsingForce/distance}fx=dx*repulsingForce;fy=dy*repulsingForce;forces[node1.id].x-=fx;forces[node1.id].y-=fy;forces[node2.id].x+=fx;forces[node2.id].y+=fy}}}}}]);return HierarchicalRepulsionSolver}();exports[\"default\"]=HierarchicalRepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var SpringSolver=function(){function SpringSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,SpringSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(SpringSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var edgeLength=void 0,edge=void 0;var edgeIndices=this.physicsBody.physicsEdgeIndices;var edges=this.body.edges;var node1=void 0,node2=void 0,node3=void 0;for(var i=0;i<edgeIndices.length;i++){edge=edges[edgeIndices[i]];if(edge.connected===true&&edge.toId!==edge.fromId){if(this.body.nodes[edge.toId]!==undefined&&this.body.nodes[edge.fromId]!==undefined){if(edge.edgeType.via!==undefined){edgeLength=edge.options.length===undefined?this.options.springLength:edge.options.length;node1=edge.to;node2=edge.edgeType.via;node3=edge.from;this._calculateSpringForce(node1,node2,.5*edgeLength);this._calculateSpringForce(node2,node3,.5*edgeLength)}else{edgeLength=edge.options.length===undefined?this.options.springLength*1.5:edge.options.length;this._calculateSpringForce(edge.from,edge.to,edgeLength)}}}}}},{key:\"_calculateSpringForce\",value:function _calculateSpringForce(node1,node2,edgeLength){var dx=node1.x-node2.x;var dy=node1.y-node2.y;var distance=Math.max(Math.sqrt(dx*dx+dy*dy),.01);var springForce=this.options.springConstant*(edgeLength-distance)/distance;var fx=dx*springForce;var fy=dy*springForce;if(this.physicsBody.forces[node1.id]!==undefined){this.physicsBody.forces[node1.id].x+=fx;this.physicsBody.forces[node1.id].y+=fy}if(this.physicsBody.forces[node2.id]!==undefined){this.physicsBody.forces[node2.id].x-=fx;this.physicsBody.forces[node2.id].y-=fy}}}]);return SpringSolver}();exports[\"default\"]=SpringSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var HierarchicalSpringSolver=function(){function HierarchicalSpringSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,HierarchicalSpringSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(HierarchicalSpringSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var edgeLength,edge;var dx,dy,fx,fy,springForce,distance;var edges=this.body.edges;var factor=.5;var edgeIndices=this.physicsBody.physicsEdgeIndices;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];forces[nodeId].springFx=0;forces[nodeId].springFy=0}for(var _i=0;_i<edgeIndices.length;_i++){edge=edges[edgeIndices[_i]];if(edge.connected===true){edgeLength=edge.options.length===undefined?this.options.springLength:edge.options.length;dx=edge.from.x-edge.to.x;dy=edge.from.y-edge.to.y;distance=Math.sqrt(dx*dx+dy*dy);distance=distance===0?.01:distance;springForce=this.options.springConstant*(edgeLength-distance)/distance;fx=dx*springForce;fy=dy*springForce;if(edge.to.level!=edge.from.level){if(forces[edge.toId]!==undefined){forces[edge.toId].springFx-=fx;forces[edge.toId].springFy-=fy}if(forces[edge.fromId]!==undefined){forces[edge.fromId].springFx+=fx;forces[edge.fromId].springFy+=fy}}else{if(forces[edge.toId]!==undefined){forces[edge.toId].x-=factor*fx;forces[edge.toId].y-=factor*fy}if(forces[edge.fromId]!==undefined){forces[edge.fromId].x+=factor*fx;forces[edge.fromId].y+=factor*fy}}}}springForce=1;var springFx,springFy;for(var _i2=0;_i2<nodeIndices.length;_i2++){var _nodeId=nodeIndices[_i2];springFx=Math.min(springForce,Math.max(-springForce,forces[_nodeId].springFx));springFy=Math.min(springForce,Math.max(-springForce,forces[_nodeId].springFy));forces[_nodeId].x+=springFx;forces[_nodeId].y+=springFy}var totalFx=0;var totalFy=0;for(var _i3=0;_i3<nodeIndices.length;_i3++){var _nodeId2=nodeIndices[_i3];totalFx+=forces[_nodeId2].x;totalFy+=forces[_nodeId2].y}var correctionFx=totalFx/nodeIndices.length;var correctionFy=totalFy/nodeIndices.length;for(var _i4=0;_i4<nodeIndices.length;_i4++){var _nodeId3=nodeIndices[_i4];forces[_nodeId3].x-=correctionFx;forces[_nodeId3].y-=correctionFy}}}]);return HierarchicalSpringSolver}();exports[\"default\"]=HierarchicalSpringSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BarnesHutSolver2=__webpack_require__(120);var _BarnesHutSolver3=_interopRequireDefault(_BarnesHutSolver2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ForceAtlas2BasedRepulsionSolver=function(_BarnesHutSolver){(0,_inherits3[\"default\"])(ForceAtlas2BasedRepulsionSolver,_BarnesHutSolver);function ForceAtlas2BasedRepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,ForceAtlas2BasedRepulsionSolver);return(0,_possibleConstructorReturn3[\"default\"])(this,(ForceAtlas2BasedRepulsionSolver.__proto__||(0,_getPrototypeOf2[\"default\"])(ForceAtlas2BasedRepulsionSolver)).call(this,body,physicsBody,options))}(0,_createClass3[\"default\"])(ForceAtlas2BasedRepulsionSolver,[{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,node,parentBranch){if(distance===0){distance=.1*Math.random();dx=distance}if(this.overlapAvoidanceFactor<1&&node.shape.radius){distance=Math.max(.1+this.overlapAvoidanceFactor*node.shape.radius,distance-node.shape.radius)}var degree=node.edges.length+1;var gravityForce=this.options.gravitationalConstant*parentBranch.mass*node.options.mass*degree/Math.pow(distance,2);var fx=dx*gravityForce;var fy=dy*gravityForce;this.physicsBody.forces[node.id].x+=fx;this.physicsBody.forces[node.id].y+=fy}}]);return ForceAtlas2BasedRepulsionSolver}(_BarnesHutSolver3[\"default\"]);exports[\"default\"]=ForceAtlas2BasedRepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CentralGravitySolver2=__webpack_require__(121);var _CentralGravitySolver3=_interopRequireDefault(_CentralGravitySolver2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ForceAtlas2BasedCentralGravitySolver=function(_CentralGravitySolver){(0,_inherits3[\"default\"])(ForceAtlas2BasedCentralGravitySolver,_CentralGravitySolver);function ForceAtlas2BasedCentralGravitySolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,ForceAtlas2BasedCentralGravitySolver);return(0,_possibleConstructorReturn3[\"default\"])(this,(ForceAtlas2BasedCentralGravitySolver.__proto__||(0,_getPrototypeOf2[\"default\"])(ForceAtlas2BasedCentralGravitySolver)).call(this,body,physicsBody,options))}(0,_createClass3[\"default\"])(ForceAtlas2BasedCentralGravitySolver,[{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,forces,node){if(distance>0){var degree=node.edges.length+1;var gravityForce=this.options.centralGravity*degree*node.options.mass;forces[node.id].x=dx*gravityForce;forces[node.id].y=dy*gravityForce}}}]);return ForceAtlas2BasedCentralGravitySolver}(_CentralGravitySolver3[\"default\"]);exports[\"default\"]=ForceAtlas2BasedCentralGravitySolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var Cluster=__webpack_require__(228)[\"default\"];var Edge=__webpack_require__(74)[\"default\"];var Node=__webpack_require__(47)[\"default\"];var ClusterEngine=function(){function ClusterEngine(body){var _this=this;(0,_classCallCheck3[\"default\"])(this,ClusterEngine);this.body=body;this.clusteredNodes={};this.clusteredEdges={};this.options={};this.defaultOptions={};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"_resetData\",function(){_this.clusteredNodes={};_this.clusteredEdges={}})}(0,_createClass3[\"default\"])(ClusterEngine,[{key:\"clusterByHubsize\",value:function clusterByHubsize(hubsize,options){if(hubsize===undefined){hubsize=this._getHubSize()}else if((typeof hubsize===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(hubsize))===\"object\"){options=this._checkOptions(hubsize);hubsize=this._getHubSize()}var nodesToCluster=[];for(var i=0;i<this.body.nodeIndices.length;i++){var node=this.body.nodes[this.body.nodeIndices[i]];if(node.edges.length>=hubsize){nodesToCluster.push(node.id)}}for(var _i=0;_i<nodesToCluster.length;_i++){this.clusterByConnection(nodesToCluster[_i],options,true)}this.body.emitter.emit(\"_dataChanged\")}},{key:\"cluster\",value:function cluster(){var _this2=this;var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(options.joinCondition===undefined){throw new Error(\"Cannot call clusterByNodeData without a joinCondition function in the options.\")}options=this._checkOptions(options);var childNodesObj={};var childEdgesObj={};util.forEach(this.body.nodes,function(node,nodeId){var clonedOptions=NetworkUtil.cloneOptions(node);if(options.joinCondition(clonedOptions)===true){childNodesObj[nodeId]=node;util.forEach(node.edges,function(edge){if(_this2.clusteredEdges[edge.id]===undefined){childEdgesObj[edge.id]=edge}})}});this._cluster(childNodesObj,childEdgesObj,options,refreshData)}},{key:\"clusterByEdgeCount\",value:function clusterByEdgeCount(edgeCount,options){var _this3=this;var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;options=this._checkOptions(options);var clusters=[];var usedNodes={};var edge=void 0,edges=void 0,relevantEdgeCount=void 0;var _loop=function _loop(i){var childNodesObj={};var childEdgesObj={};var nodeId=_this3.body.nodeIndices[i];var node=_this3.body.nodes[nodeId];if(usedNodes[nodeId]===undefined){relevantEdgeCount=0;edges=[];for(var j=0;j<node.edges.length;j++){edge=node.edges[j];if(_this3.clusteredEdges[edge.id]===undefined){if(edge.toId!==edge.fromId){relevantEdgeCount++}edges.push(edge)}}if(relevantEdgeCount===edgeCount){checkJoinCondition=function checkJoinCondition(node){if(options.joinCondition===undefined||options.joinCondition===null){return true}var clonedOptions=NetworkUtil.cloneOptions(node);return options.joinCondition(clonedOptions)};var gatheringSuccessful=true;for(var _j=0;_j<edges.length;_j++){edge=edges[_j];var childNodeId=_this3._getConnectedId(edge,nodeId);if(checkJoinCondition(node)){childEdgesObj[edge.id]=edge;childNodesObj[nodeId]=node;childNodesObj[childNodeId]=_this3.body.nodes[childNodeId];usedNodes[nodeId]=true}else{gatheringSuccessful=false;break}}if((0,_keys2[\"default\"])(childNodesObj).length>0&&(0,_keys2[\"default\"])(childEdgesObj).length>0&&gatheringSuccessful===true){findClusterData=function findClusterData(){for(var n=0;n<clusters.length;++n){for(var m in childNodesObj){if(clusters[n].nodes[m]!==undefined){return clusters[n]}}}return undefined};foundCluster=findClusterData();if(foundCluster!==undefined){for(var m in childNodesObj){if(foundCluster.nodes[m]===undefined){foundCluster.nodes[m]=childNodesObj[m]}}for(var _m in childEdgesObj){if(foundCluster.edges[_m]===undefined){foundCluster.edges[_m]=childEdgesObj[_m]}}}else{clusters.push({nodes:childNodesObj,edges:childEdgesObj})}}}}};for(var i=0;i<this.body.nodeIndices.length;i++){var checkJoinCondition;var findClusterData;var foundCluster;_loop(i)}for(var i=0;i<clusters.length;i++){this._cluster(clusters[i].nodes,clusters[i].edges,options,false)}if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"clusterOutliers\",value:function clusterOutliers(options){var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;this.clusterByEdgeCount(1,options,refreshData)}},{key:\"clusterBridges\",value:function clusterBridges(options){var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;this.clusterByEdgeCount(2,options,refreshData)}},{key:\"clusterByConnection\",value:function clusterByConnection(nodeId,options){var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;if(nodeId===undefined){throw new Error(\"No nodeId supplied to clusterByConnection!\")}if(this.body.nodes[nodeId]===undefined){throw new Error(\"The nodeId given to clusterByConnection does not exist!\")}var node=this.body.nodes[nodeId];options=this._checkOptions(options,node);if(options.clusterNodeProperties.x===undefined){options.clusterNodeProperties.x=node.x}if(options.clusterNodeProperties.y===undefined){options.clusterNodeProperties.y=node.y}if(options.clusterNodeProperties.fixed===undefined){options.clusterNodeProperties.fixed={};options.clusterNodeProperties.fixed.x=node.options.fixed.x;options.clusterNodeProperties.fixed.y=node.options.fixed.y}var childNodesObj={};var childEdgesObj={};var parentNodeId=node.id;var parentClonedOptions=NetworkUtil.cloneOptions(node);childNodesObj[parentNodeId]=node;for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];if(this.clusteredEdges[edge.id]===undefined){var childNodeId=this._getConnectedId(edge,parentNodeId);if(this.clusteredNodes[childNodeId]===undefined){if(childNodeId!==parentNodeId){if(options.joinCondition===undefined){childEdgesObj[edge.id]=edge;childNodesObj[childNodeId]=this.body.nodes[childNodeId]}else{var childClonedOptions=NetworkUtil.cloneOptions(this.body.nodes[childNodeId]);if(options.joinCondition(parentClonedOptions,childClonedOptions)===true){childEdgesObj[edge.id]=edge;childNodesObj[childNodeId]=this.body.nodes[childNodeId]}}}else{childEdgesObj[edge.id]=edge}}}}var childNodeIDs=(0,_keys2[\"default\"])(childNodesObj).map(function(childNode){return childNodesObj[childNode].id});for(childNode in childNodesObj){if(!childNodesObj.hasOwnProperty(childNode))continue;var childNode=childNodesObj[childNode];for(var y=0;y<childNode.edges.length;y++){var childEdge=childNode.edges[y];if(childNodeIDs.indexOf(this._getConnectedId(childEdge,childNode.id))>-1){childEdgesObj[childEdge.id]=childEdge}}}this._cluster(childNodesObj,childEdgesObj,options,refreshData)}},{key:\"_createClusterEdges\",value:function _createClusterEdges(childNodesObj,childEdgesObj,clusterNodeProperties,clusterEdgeProperties){var edge=void 0,childNodeId=void 0,childNode=void 0,toId=void 0,fromId=void 0,otherNodeId=void 0;var childKeys=(0,_keys2[\"default\"])(childNodesObj);var createEdges=[];for(var i=0;i<childKeys.length;i++){childNodeId=childKeys[i];childNode=childNodesObj[childNodeId];for(var j=0;j<childNode.edges.length;j++){edge=childNode.edges[j];if(this.clusteredEdges[edge.id]===undefined){if(edge.toId==edge.fromId){childEdgesObj[edge.id]=edge}else{if(edge.toId==childNodeId){toId=clusterNodeProperties.id;fromId=edge.fromId;otherNodeId=fromId}else{toId=edge.toId;fromId=clusterNodeProperties.id;otherNodeId=toId}}if(childNodesObj[otherNodeId]===undefined){createEdges.push({edge:edge,fromId:fromId,toId:toId})}}}}var newEdges=[];var getNewEdge=function getNewEdge(createdEdge){for(var _j2=0;_j2<newEdges.length;_j2++){var newEdge=newEdges[_j2];var matchToDirection=createdEdge.fromId===newEdge.fromId&&createdEdge.toId===newEdge.toId;var matchFromDirection=createdEdge.fromId===newEdge.toId&&createdEdge.toId===newEdge.fromId;if(matchToDirection||matchFromDirection){return newEdge}}return null};for(var _j3=0;_j3<createEdges.length;_j3++){var createdEdge=createEdges[_j3];var _edge=createdEdge.edge;var newEdge=getNewEdge(createdEdge);if(newEdge===null){newEdge=this._createClusteredEdge(createdEdge.fromId,createdEdge.toId,_edge,clusterEdgeProperties);newEdges.push(newEdge)}else{newEdge.clusteringEdgeReplacingIds.push(_edge.id)}this.body.edges[_edge.id].edgeReplacedById=newEdge.id;this._backupEdgeOptions(_edge);_edge.setOptions({physics:false})}}},{key:\"_checkOptions\",value:function _checkOptions(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(options.clusterEdgeProperties===undefined){options.clusterEdgeProperties={}}if(options.clusterNodeProperties===undefined){options.clusterNodeProperties={}}return options}},{key:\"_cluster\",value:function _cluster(childNodesObj,childEdgesObj,options){var refreshData=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var tmpNodesToRemove=[];for(var _nodeId in childNodesObj){if(childNodesObj.hasOwnProperty(_nodeId)){if(this.clusteredNodes[_nodeId]!==undefined){tmpNodesToRemove.push(_nodeId)}}}for(var n=0;n<tmpNodesToRemove.length;++n){delete childNodesObj[tmpNodesToRemove[n]]}if((0,_keys2[\"default\"])(childNodesObj).length==0){return}if((0,_keys2[\"default\"])(childNodesObj).length==1&&options.clusterNodeProperties.allowSingleNodeCluster!=true){return}var clusterNodeProperties=util.deepExtend({},options.clusterNodeProperties);if(options.processProperties!==undefined){var childNodesOptions=[];for(var _nodeId2 in childNodesObj){if(childNodesObj.hasOwnProperty(_nodeId2)){var clonedOptions=NetworkUtil.cloneOptions(childNodesObj[_nodeId2]);childNodesOptions.push(clonedOptions)}}var childEdgesOptions=[];for(var edgeId in childEdgesObj){if(childEdgesObj.hasOwnProperty(edgeId)){if(edgeId.substr(0,12)!==\"clusterEdge:\"){var _clonedOptions=NetworkUtil.cloneOptions(childEdgesObj[edgeId],\"edge\");childEdgesOptions.push(_clonedOptions)}}}clusterNodeProperties=options.processProperties(clusterNodeProperties,childNodesOptions,childEdgesOptions);if(!clusterNodeProperties){throw new Error(\"The processProperties function does not return properties!\")}}if(clusterNodeProperties.id===undefined){clusterNodeProperties.id=\"cluster:\"+util.randomUUID()}var clusterId=clusterNodeProperties.id;if(clusterNodeProperties.label===undefined){clusterNodeProperties.label=\"cluster\"}var pos=undefined;if(clusterNodeProperties.x===undefined){pos=this._getClusterPosition(childNodesObj);clusterNodeProperties.x=pos.x}if(clusterNodeProperties.y===undefined){if(pos===undefined){pos=this._getClusterPosition(childNodesObj)}clusterNodeProperties.y=pos.y}clusterNodeProperties.id=clusterId;var clusterNode=this.body.functions.createNode(clusterNodeProperties,Cluster);clusterNode.containedNodes=childNodesObj;clusterNode.containedEdges=childEdgesObj;clusterNode.clusterEdgeProperties=options.clusterEdgeProperties;this.body.nodes[clusterNodeProperties.id]=clusterNode;this._clusterEdges(childNodesObj,childEdgesObj,clusterNodeProperties,options.clusterEdgeProperties);clusterNodeProperties.id=undefined;if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"_backupEdgeOptions\",value:function _backupEdgeOptions(edge){if(this.clusteredEdges[edge.id]===undefined){this.clusteredEdges[edge.id]={physics:edge.options.physics}}}},{key:\"_restoreEdge\",value:function _restoreEdge(edge){var originalOptions=this.clusteredEdges[edge.id];if(originalOptions!==undefined){edge.setOptions({physics:originalOptions.physics});delete this.clusteredEdges[edge.id]}}},{key:\"isCluster\",value:function isCluster(nodeId){if(this.body.nodes[nodeId]!==undefined){return this.body.nodes[nodeId].isCluster===true}else{console.log(\"Node does not exist.\");return false}}},{key:\"_getClusterPosition\",value:function _getClusterPosition(childNodesObj){var childKeys=(0,_keys2[\"default\"])(childNodesObj);var minX=childNodesObj[childKeys[0]].x;var maxX=childNodesObj[childKeys[0]].x;var minY=childNodesObj[childKeys[0]].y;var maxY=childNodesObj[childKeys[0]].y;var node=void 0;for(var i=1;i<childKeys.length;i++){node=childNodesObj[childKeys[i]];minX=node.x<minX?node.x:minX;maxX=node.x>maxX?node.x:maxX\n;minY=node.y<minY?node.y:minY;maxY=node.y>maxY?node.y:maxY}return{x:.5*(minX+maxX),y:.5*(minY+maxY)}}},{key:\"openCluster\",value:function openCluster(clusterNodeId,options){var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;if(clusterNodeId===undefined){throw new Error(\"No clusterNodeId supplied to openCluster.\")}var clusterNode=this.body.nodes[clusterNodeId];if(clusterNode===undefined){throw new Error(\"The clusterNodeId supplied to openCluster does not exist.\")}if(clusterNode.isCluster!==true||clusterNode.containedNodes===undefined||clusterNode.containedEdges===undefined){throw new Error(\"The node:\"+clusterNodeId+\" is not a valid cluster.\")}var stack=this.findNode(clusterNodeId);var parentIndex=stack.indexOf(clusterNodeId)-1;if(parentIndex>=0){var parentClusterNodeId=stack[parentIndex];var parentClusterNode=this.body.nodes[parentClusterNodeId];parentClusterNode._openChildCluster(clusterNodeId);delete this.body.nodes[clusterNodeId];if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}return}var containedNodes=clusterNode.containedNodes;var containedEdges=clusterNode.containedEdges;if(options!==undefined&&options.releaseFunction!==undefined&&typeof options.releaseFunction===\"function\"){var positions={};var clusterPosition={x:clusterNode.x,y:clusterNode.y};for(var _nodeId3 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId3)){var containedNode=this.body.nodes[_nodeId3];positions[_nodeId3]={x:containedNode.x,y:containedNode.y}}}var newPositions=options.releaseFunction(clusterPosition,positions);for(var _nodeId4 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId4)){var _containedNode=this.body.nodes[_nodeId4];if(newPositions[_nodeId4]!==undefined){_containedNode.x=newPositions[_nodeId4].x===undefined?clusterNode.x:newPositions[_nodeId4].x;_containedNode.y=newPositions[_nodeId4].y===undefined?clusterNode.y:newPositions[_nodeId4].y}}}}else{util.forEach(containedNodes,function(containedNode){if(containedNode.options.fixed.x===false){containedNode.x=clusterNode.x}if(containedNode.options.fixed.y===false){containedNode.y=clusterNode.y}})}for(var _nodeId5 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId5)){var _containedNode2=this.body.nodes[_nodeId5];_containedNode2.vx=clusterNode.vx;_containedNode2.vy=clusterNode.vy;_containedNode2.setOptions({physics:true});delete this.clusteredNodes[_nodeId5]}}var edgesToBeDeleted=[];for(var i=0;i<clusterNode.edges.length;i++){edgesToBeDeleted.push(clusterNode.edges[i])}for(var _i2=0;_i2<edgesToBeDeleted.length;_i2++){var edge=edgesToBeDeleted[_i2];var otherNodeId=this._getConnectedId(edge,clusterNodeId);var otherNode=this.clusteredNodes[otherNodeId];for(var j=0;j<edge.clusteringEdgeReplacingIds.length;j++){var transferId=edge.clusteringEdgeReplacingIds[j];var transferEdge=this.body.edges[transferId];if(transferEdge===undefined)continue;if(otherNode!==undefined){var otherCluster=this.body.nodes[otherNode.clusterId];otherCluster.containedEdges[transferEdge.id]=transferEdge;delete containedEdges[transferEdge.id];var fromId=transferEdge.fromId;var toId=transferEdge.toId;if(transferEdge.toId==otherNodeId){toId=otherNode.clusterId}else{fromId=otherNode.clusterId}this._createClusteredEdge(fromId,toId,transferEdge,otherCluster.clusterEdgeProperties,{hidden:false,physics:true})}else{this._restoreEdge(transferEdge)}}edge.remove()}for(var edgeId in containedEdges){if(containedEdges.hasOwnProperty(edgeId)){this._restoreEdge(containedEdges[edgeId])}}delete this.body.nodes[clusterNodeId];if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"getNodesInCluster\",value:function getNodesInCluster(clusterId){var nodesArray=[];if(this.isCluster(clusterId)===true){var containedNodes=this.body.nodes[clusterId].containedNodes;for(var _nodeId6 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId6)){nodesArray.push(this.body.nodes[_nodeId6].id)}}}return nodesArray}},{key:\"findNode\",value:function findNode(nodeId){var stack=[];var max=100;var counter=0;var node=void 0;while(this.clusteredNodes[nodeId]!==undefined&&counter<max){node=this.body.nodes[nodeId];if(node===undefined)return[];stack.push(node.id);nodeId=this.clusteredNodes[nodeId].clusterId;counter++}node=this.body.nodes[nodeId];if(node===undefined)return[];stack.push(node.id);stack.reverse();return stack}},{key:\"updateClusteredNode\",value:function updateClusteredNode(clusteredNodeId,newOptions){if(clusteredNodeId===undefined){throw new Error(\"No clusteredNodeId supplied to updateClusteredNode.\")}if(newOptions===undefined){throw new Error(\"No newOptions supplied to updateClusteredNode.\")}if(this.body.nodes[clusteredNodeId]===undefined){throw new Error(\"The clusteredNodeId supplied to updateClusteredNode does not exist.\")}this.body.nodes[clusteredNodeId].setOptions(newOptions);this.body.emitter.emit(\"_dataChanged\")}},{key:\"updateEdge\",value:function updateEdge(startEdgeId,newOptions){if(startEdgeId===undefined){throw new Error(\"No startEdgeId supplied to updateEdge.\")}if(newOptions===undefined){throw new Error(\"No newOptions supplied to updateEdge.\")}if(this.body.edges[startEdgeId]===undefined){throw new Error(\"The startEdgeId supplied to updateEdge does not exist.\")}var allEdgeIds=this.getClusteredEdges(startEdgeId);for(var i=0;i<allEdgeIds.length;i++){var edge=this.body.edges[allEdgeIds[i]];edge.setOptions(newOptions)}this.body.emitter.emit(\"_dataChanged\")}},{key:\"getClusteredEdges\",value:function getClusteredEdges(edgeId){var stack=[];var max=100;var counter=0;while(edgeId!==undefined&&this.body.edges[edgeId]!==undefined&&counter<max){stack.push(this.body.edges[edgeId].id);edgeId=this.body.edges[edgeId].edgeReplacedById;counter++}stack.reverse();return stack}},{key:\"getBaseEdge\",value:function getBaseEdge(clusteredEdgeId){return this.getBaseEdges(clusteredEdgeId)[0]}},{key:\"getBaseEdges\",value:function getBaseEdges(clusteredEdgeId){var IdsToHandle=[clusteredEdgeId];var doneIds=[];var foundIds=[];var max=100;var counter=0;while(IdsToHandle.length>0&&counter<max){var nextId=IdsToHandle.pop();if(nextId===undefined)continue;var nextEdge=this.body.edges[nextId];if(nextEdge===undefined)continue;counter++;var replacingIds=nextEdge.clusteringEdgeReplacingIds;if(replacingIds===undefined){foundIds.push(nextId)}else{for(var i=0;i<replacingIds.length;++i){var replacingId=replacingIds[i];if(IdsToHandle.indexOf(replacingIds)!==-1||doneIds.indexOf(replacingIds)!==-1){continue}IdsToHandle.push(replacingId)}}doneIds.push(nextId)}return foundIds}},{key:\"_getConnectedId\",value:function _getConnectedId(edge,nodeId){if(edge.toId!=nodeId){return edge.toId}else if(edge.fromId!=nodeId){return edge.fromId}else{return edge.fromId}}},{key:\"_getHubSize\",value:function _getHubSize(){var average=0;var averageSquared=0;var hubCounter=0;var largestHub=0;for(var i=0;i<this.body.nodeIndices.length;i++){var _node=this.body.nodes[this.body.nodeIndices[i]];if(_node.edges.length>largestHub){largestHub=_node.edges.length}average+=_node.edges.length;averageSquared+=Math.pow(_node.edges.length,2);hubCounter+=1}average=average/hubCounter;averageSquared=averageSquared/hubCounter;var variance=averageSquared-Math.pow(average,2);var standardDeviation=Math.sqrt(variance);var hubThreshold=Math.floor(average+2*standardDeviation);if(hubThreshold>largestHub){hubThreshold=largestHub}return hubThreshold}},{key:\"_createClusteredEdge\",value:function _createClusteredEdge(fromId,toId,baseEdge,clusterEdgeProperties,extraOptions){var clonedOptions=NetworkUtil.cloneOptions(baseEdge,\"edge\");util.deepExtend(clonedOptions,clusterEdgeProperties);clonedOptions.from=fromId;clonedOptions.to=toId;clonedOptions.id=\"clusterEdge:\"+util.randomUUID();if(extraOptions!==undefined){util.deepExtend(clonedOptions,extraOptions)}var newEdge=this.body.functions.createEdge(clonedOptions);newEdge.clusteringEdgeReplacingIds=[baseEdge.id];newEdge.connect();this.body.edges[newEdge.id]=newEdge;return newEdge}},{key:\"_clusterEdges\",value:function _clusterEdges(childNodes,childEdges,clusterNode,clusterEdgeProperties){if(childEdges instanceof Edge){var edge=childEdges;var obj={};obj[edge.id]=edge;childEdges=obj}if(childNodes instanceof Node){var _node2=childNodes;var _obj={};_obj[_node2.id]=_node2;childNodes=_obj}if(clusterNode===undefined||clusterNode===null){throw new Error(\"_clusterEdges: parameter clusterNode required\")}if(clusterEdgeProperties===undefined){clusterEdgeProperties=clusterNode.clusterEdgeProperties}this._createClusterEdges(childNodes,childEdges,clusterNode,clusterEdgeProperties);for(var edgeId in childEdges){if(childEdges.hasOwnProperty(edgeId)){if(this.body.edges[edgeId]!==undefined){var _edge2=this.body.edges[edgeId];this._backupEdgeOptions(_edge2);_edge2.setOptions({physics:false})}}}for(var _nodeId7 in childNodes){if(childNodes.hasOwnProperty(_nodeId7)){this.clusteredNodes[_nodeId7]={clusterId:clusterNode.id,node:this.body.nodes[_nodeId7]};this.body.nodes[_nodeId7].setOptions({physics:false})}}}},{key:\"_getClusterNodeForNode\",value:function _getClusterNodeForNode(nodeId){if(nodeId===undefined)return undefined;var clusteredNode=this.clusteredNodes[nodeId];if(clusteredNode===undefined)return undefined;var clusterId=clusteredNode.clusterId;if(clusterId===undefined)return undefined;return this.body.nodes[clusterId]}},{key:\"_filter\",value:function _filter(arr,callback){var ret=[];util.forEach(arr,function(item){if(callback(item)){ret.push(item)}});return ret}},{key:\"_updateState\",value:function _updateState(){var _this4=this;var nodeId=void 0;var deletedNodeIds=[];var deletedEdgeIds=[];var eachClusterNode=function eachClusterNode(callback){util.forEach(_this4.body.nodes,function(node){if(node.isCluster===true){callback(node)}})};for(nodeId in this.clusteredNodes){if(!this.clusteredNodes.hasOwnProperty(nodeId))continue;var _node3=this.body.nodes[nodeId];if(_node3===undefined){deletedNodeIds.push(nodeId)}}eachClusterNode(function(clusterNode){for(var n=0;n<deletedNodeIds.length;n++){delete clusterNode.containedNodes[deletedNodeIds[n]]}});for(var n=0;n<deletedNodeIds.length;n++){delete this.clusteredNodes[deletedNodeIds[n]]}util.forEach(this.clusteredEdges,function(edgeId){var edge=_this4.body.edges[edgeId];if(edge===undefined||!edge.endPointsValid()){deletedEdgeIds.push(edgeId)}});eachClusterNode(function(clusterNode){util.forEach(clusterNode.containedEdges,function(edge,edgeId){if(!edge.endPointsValid()&&deletedEdgeIds.indexOf(edgeId)===-1){deletedEdgeIds.push(edgeId)}})});util.forEach(this.body.edges,function(edge,edgeId){var isValid=true;var replacedIds=edge.clusteringEdgeReplacingIds;if(replacedIds!==undefined){var numValid=0;util.forEach(replacedIds,function(containedEdgeId){var containedEdge=_this4.body.edges[containedEdgeId];if(containedEdge!==undefined&&containedEdge.endPointsValid()){numValid+=1}});isValid=numValid>0}if(!edge.endPointsValid()||!isValid){deletedEdgeIds.push(edgeId)}});eachClusterNode(function(clusterNode){util.forEach(deletedEdgeIds,function(deletedEdgeId){delete clusterNode.containedEdges[deletedEdgeId];util.forEach(clusterNode.edges,function(edge,m){if(edge.id===deletedEdgeId){clusterNode.edges[m]=null;return}edge.clusteringEdgeReplacingIds=_this4._filter(edge.clusteringEdgeReplacingIds,function(id){return deletedEdgeIds.indexOf(id)===-1})});clusterNode.edges=_this4._filter(clusterNode.edges,function(item){return item!==null})})});util.forEach(deletedEdgeIds,function(edgeId){delete _this4.clusteredEdges[edgeId]});util.forEach(deletedEdgeIds,function(edgeId){delete _this4.body.edges[edgeId]});var ids=(0,_keys2[\"default\"])(this.body.edges);util.forEach(ids,function(edgeId){var edge=_this4.body.edges[edgeId];var shouldBeClustered=_this4._isClusteredNode(edge.fromId)||_this4._isClusteredNode(edge.toId);if(shouldBeClustered===_this4._isClusteredEdge(edge.id)){return}if(shouldBeClustered){var clusterFrom=_this4._getClusterNodeForNode(edge.fromId);if(clusterFrom!==undefined){_this4._clusterEdges(_this4.body.nodes[edge.fromId],edge,clusterFrom)}var clusterTo=_this4._getClusterNodeForNode(edge.toId);if(clusterTo!==undefined){_this4._clusterEdges(_this4.body.nodes[edge.toId],edge,clusterTo)}}else{throw new Error(\"remove edge from clustering not implemented!\")}});var changed=false;var continueLoop=true;var _loop2=function _loop2(){var clustersToOpen=[];eachClusterNode(function(clusterNode){var numNodes=(0,_keys2[\"default\"])(clusterNode.containedNodes).length;var allowSingle=clusterNode.options.allowSingleNodeCluster===true;if(allowSingle&&numNodes<1||!allowSingle&&numNodes<2){clustersToOpen.push(clusterNode.id)}});for(var _n=0;_n<clustersToOpen.length;++_n){_this4.openCluster(clustersToOpen[_n],{},false)}continueLoop=clustersToOpen.length>0;changed=changed||continueLoop};while(continueLoop){_loop2()}if(changed){this._updateState()}}},{key:\"_isClusteredNode\",value:function _isClusteredNode(nodeId){return this.clusteredNodes[nodeId]!==undefined}},{key:\"_isClusteredEdge\",value:function _isClusteredEdge(edgeId){return this.clusteredEdges[edgeId]!==undefined}}]);return ClusterEngine}();exports[\"default\"]=ClusterEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Node=__webpack_require__(47)[\"default\"];var Cluster=function(_Node){(0,_inherits3[\"default\"])(Cluster,_Node);function Cluster(options,body,imagelist,grouplist,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Cluster);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Cluster.__proto__||(0,_getPrototypeOf2[\"default\"])(Cluster)).call(this,options,body,imagelist,grouplist,globalOptions,defaultOptions));_this.isCluster=true;_this.containedNodes={};_this.containedEdges={};return _this}(0,_createClass3[\"default\"])(Cluster,[{key:\"_openChildCluster\",value:function _openChildCluster(childClusterId){var _this2=this;var childCluster=this.body.nodes[childClusterId];if(this.containedNodes[childClusterId]===undefined){throw new Error(\"node with id: \"+childClusterId+\" not in current cluster\")}if(!childCluster.isCluster){throw new Error(\"node with id: \"+childClusterId+\" is not a cluster\")}delete this.containedNodes[childClusterId];util.forEach(childCluster.edges,function(edge){delete _this2.containedEdges[edge.id]});util.forEach(childCluster.containedNodes,function(node,nodeId){_this2.containedNodes[nodeId]=node});childCluster.containedNodes={};util.forEach(childCluster.containedEdges,function(edge,edgeId){_this2.containedEdges[edgeId]=edge});childCluster.containedEdges={};util.forEach(childCluster.edges,function(clusterEdge){util.forEach(_this2.edges,function(parentClusterEdge){var index=parentClusterEdge.clusteringEdgeReplacingIds.indexOf(clusterEdge.id);if(index===-1)return;util.forEach(clusterEdge.clusteringEdgeReplacingIds,function(srcId){parentClusterEdge.clusteringEdgeReplacingIds.push(srcId);_this2.body.edges[srcId].edgeReplacedById=parentClusterEdge.id});parentClusterEdge.clusteringEdgeReplacingIds.splice(index,1)})});childCluster.edges=[]}}]);return Cluster}(Node);exports[\"default\"]=Cluster},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _initRequestAnimationFrame(){var func;if(window!==undefined){func=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame}if(func===undefined){window.requestAnimationFrame=function(callback){callback()}}else{window.requestAnimationFrame=func}}var util=__webpack_require__(2);var CanvasRenderer=function(){function CanvasRenderer(body,canvas){(0,_classCallCheck3[\"default\"])(this,CanvasRenderer);_initRequestAnimationFrame();this.body=body;this.canvas=canvas;this.redrawRequested=false;this.renderTimer=undefined;this.requiresTimeout=true;this.renderingActive=false;this.renderRequests=0;this.allowRedraw=true;this.dragging=false;this.options={};this.defaultOptions={hideEdgesOnDrag:false,hideNodesOnDrag:false};util.extend(this.options,this.defaultOptions);this._determineBrowserMethod();this.bindEventListeners()}(0,_createClass3[\"default\"])(CanvasRenderer,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"dragStart\",function(){_this.dragging=true});this.body.emitter.on(\"dragEnd\",function(){_this.dragging=false});this.body.emitter.on(\"_resizeNodes\",function(){_this._resizeNodes()});this.body.emitter.on(\"_redraw\",function(){if(_this.renderingActive===false){_this._redraw()}});this.body.emitter.on(\"_blockRedraw\",function(){_this.allowRedraw=false});this.body.emitter.on(\"_allowRedraw\",function(){_this.allowRedraw=true;_this.redrawRequested=false});this.body.emitter.on(\"_requestRedraw\",this._requestRedraw.bind(this));this.body.emitter.on(\"_startRendering\",function(){_this.renderRequests+=1;_this.renderingActive=true;_this._startRendering()});this.body.emitter.on(\"_stopRendering\",function(){_this.renderRequests-=1;_this.renderingActive=_this.renderRequests>0;_this.renderTimer=undefined});this.body.emitter.on(\"destroy\",function(){_this.renderRequests=0;_this.allowRedraw=false;_this.renderingActive=false;if(_this.requiresTimeout===true){clearTimeout(_this.renderTimer)}else{window.cancelAnimationFrame(_this.renderTimer)}_this.body.emitter.off()})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"hideEdgesOnDrag\",\"hideNodesOnDrag\"];util.selectiveDeepExtend(fields,this.options,options)}}},{key:\"_requestNextFrame\",value:function _requestNextFrame(callback,delay){if(typeof window===\"undefined\")return;var timer=void 0;var myWindow=window;if(this.requiresTimeout===true){timer=myWindow.setTimeout(callback,delay)}else{if(myWindow.requestAnimationFrame){timer=myWindow.requestAnimationFrame(callback)}}return timer}},{key:\"_startRendering\",value:function _startRendering(){if(this.renderingActive===true){if(this.renderTimer===undefined){this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval)}}}},{key:\"_renderStep\",value:function _renderStep(){if(this.renderingActive===true){this.renderTimer=undefined;if(this.requiresTimeout===true){this._startRendering()}this._redraw();if(this.requiresTimeout===false){this._startRendering()}}}},{key:\"redraw\",value:function redraw(){this.body.emitter.emit(\"setSize\");this._redraw()}},{key:\"_requestRedraw\",value:function _requestRedraw(){var _this2=this;if(this.redrawRequested!==true&&this.renderingActive===false&&this.allowRedraw===true){this.redrawRequested=true;this._requestNextFrame(function(){_this2._redraw(false)},0)}}},{key:\"_redraw\",value:function _redraw(){var hidden=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.allowRedraw===true){this.body.emitter.emit(\"initRedraw\");this.redrawRequested=false;if(this.canvas.frame.canvas.width===0||this.canvas.frame.canvas.height===0){this.canvas.setSize()}this.canvas.setTransform();var ctx=this.canvas.getContext();var w=this.canvas.frame.canvas.clientWidth;var h=this.canvas.frame.canvas.clientHeight;ctx.clearRect(0,0,w,h);if(this.canvas.frame.clientWidth===0){return}ctx.save();ctx.translate(this.body.view.translation.x,this.body.view.translation.y);ctx.scale(this.body.view.scale,this.body.view.scale);ctx.beginPath();this.body.emitter.emit(\"beforeDrawing\",ctx);ctx.closePath();if(hidden===false){if(this.dragging===false||this.dragging===true&&this.options.hideEdgesOnDrag===false){this._drawEdges(ctx)}}if(this.dragging===false||this.dragging===true&&this.options.hideNodesOnDrag===false){this._drawNodes(ctx,hidden)}ctx.beginPath();this.body.emitter.emit(\"afterDrawing\",ctx);ctx.closePath();ctx.restore();if(hidden===true){ctx.clearRect(0,0,w,h)}}}},{key:\"_resizeNodes\",value:function _resizeNodes(){this.canvas.setTransform();var ctx=this.canvas.getContext();ctx.save();ctx.translate(this.body.view.translation.x,this.body.view.translation.y);ctx.scale(this.body.view.scale,this.body.view.scale);var nodes=this.body.nodes;var node=void 0;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){node=nodes[nodeId];node.resize(ctx);node.updateBoundingBox(ctx,node.selected)}}ctx.restore()}},{key:\"_drawNodes\",value:function _drawNodes(ctx){var alwaysShow=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var nodes=this.body.nodes;var nodeIndices=this.body.nodeIndices;var node=void 0;var selected=[];var margin=20;var topLeft=this.canvas.DOMtoCanvas({x:-margin,y:-margin});var bottomRight=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+margin,y:this.canvas.frame.canvas.clientHeight+margin});var viewableArea={top:topLeft.y,left:topLeft.x,bottom:bottomRight.y,right:bottomRight.x};for(var i=0;i<nodeIndices.length;i++){node=nodes[nodeIndices[i]];if(node.isSelected()){selected.push(nodeIndices[i])}else{if(alwaysShow===true){node.draw(ctx)}else if(node.isBoundingBoxOverlappingWith(viewableArea)===true){node.draw(ctx)}else{node.updateBoundingBox(ctx,node.selected)}}}for(var _i=0;_i<selected.length;_i++){node=nodes[selected[_i]];node.draw(ctx)}}},{key:\"_drawEdges\",value:function _drawEdges(ctx){var edges=this.body.edges;var edgeIndices=this.body.edgeIndices;var edge=void 0;for(var i=0;i<edgeIndices.length;i++){edge=edges[edgeIndices[i]];if(edge.connected===true){edge.draw(ctx)}}}},{key:\"_determineBrowserMethod\",value:function _determineBrowserMethod(){if(typeof window!==\"undefined\"){var browserType=navigator.userAgent.toLowerCase();this.requiresTimeout=false;if(browserType.indexOf(\"msie 9.0\")!=-1){this.requiresTimeout=true}else if(browserType.indexOf(\"safari\")!=-1){if(browserType.indexOf(\"chrome\")<=-1){this.requiresTimeout=true}}}else{this.requiresTimeout=true}}}]);return CanvasRenderer}();exports[\"default\"]=CanvasRenderer},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var Canvas=function(){function Canvas(body){(0,_classCallCheck3[\"default\"])(this,Canvas);this.body=body;this.pixelRatio=1;this.resizeTimer=undefined;this.resizeFunction=this._onResize.bind(this);this.cameraState={};this.initialized=false;this.canvasViewCenter={};this.options={};this.defaultOptions={autoResize:true,height:\"100%\",width:\"100%\"};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(Canvas,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.once(\"resize\",function(obj){if(obj.width!==0){_this.body.view.translation.x=obj.width*.5}if(obj.height!==0){_this.body.view.translation.y=obj.height*.5}});this.body.emitter.on(\"setSize\",this.setSize.bind(this));this.body.emitter.on(\"destroy\",function(){_this.hammerFrame.destroy();_this.hammer.destroy();_this._cleanUp()})}},{key:\"setOptions\",value:function setOptions(options){var _this2=this;if(options!==undefined){var fields=[\"width\",\"height\",\"autoResize\"];util.selectiveDeepExtend(fields,this.options,options)}if(this.options.autoResize===true){this._cleanUp();this.resizeTimer=setInterval(function(){var changed=_this2.setSize();if(changed===true){_this2.body.emitter.emit(\"_requestRedraw\")}},1e3);this.resizeFunction=this._onResize.bind(this);util.addEventListener(window,\"resize\",this.resizeFunction)}}},{key:\"_cleanUp\",value:function _cleanUp(){if(this.resizeTimer!==undefined){clearInterval(this.resizeTimer)}util.removeEventListener(window,\"resize\",this.resizeFunction);this.resizeFunction=undefined}},{key:\"_onResize\",value:function _onResize(){this.setSize();this.body.emitter.emit(\"_redraw\")}},{key:\"_getCameraState\",value:function _getCameraState(){var pixelRatio=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.pixelRatio;if(this.initialized===true){this.cameraState.previousWidth=this.frame.canvas.width/pixelRatio;this.cameraState.previousHeight=this.frame.canvas.height/pixelRatio;this.cameraState.scale=this.body.view.scale;this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/pixelRatio,y:.5*this.frame.canvas.height/pixelRatio})}}},{key:\"_setCameraState\",value:function _setCameraState(){if(this.cameraState.scale!==undefined&&this.frame.canvas.clientWidth!==0&&this.frame.canvas.clientHeight!==0&&this.pixelRatio!==0&&this.cameraState.previousWidth>0){var widthRatio=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth;var heightRatio=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight;var newScale=this.cameraState.scale;if(widthRatio!=1&&heightRatio!=1){newScale=this.cameraState.scale*.5*(widthRatio+heightRatio)}else if(widthRatio!=1){newScale=this.cameraState.scale*widthRatio}else if(heightRatio!=1){newScale=this.cameraState.scale*heightRatio}this.body.view.scale=newScale;var currentViewCenter=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight});var distanceFromCenter={x:currentViewCenter.x-this.cameraState.position.x,y:currentViewCenter.y-this.cameraState.position.y};this.body.view.translation.x+=distanceFromCenter.x*this.body.view.scale;this.body.view.translation.y+=distanceFromCenter.y*this.body.view.scale}}},{key:\"_prepareValue\",value:function _prepareValue(value){if(typeof value===\"number\"){return value+\"px\"}else if(typeof value===\"string\"){if(value.indexOf(\"%\")!==-1||value.indexOf(\"px\")!==-1){return value}else if(value.indexOf(\"%\")===-1){return value+\"px\"}}throw new Error(\"Could not use the value supplied for width or height:\"+value)}},{key:\"_create\",value:function _create(){while(this.body.container.hasChildNodes()){this.body.container.removeChild(this.body.container.firstChild)}this.frame=document.createElement(\"div\");this.frame.className=\"vis-network\";this.frame.style.position=\"relative\";this.frame.style.overflow=\"hidden\";this.frame.tabIndex=900;this.frame.canvas=document.createElement(\"canvas\");this.frame.canvas.style.position=\"relative\";this.frame.appendChild(this.frame.canvas);if(!this.frame.canvas.getContext){var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.frame.canvas.appendChild(noCanvas)}else{this._setPixelRatio();this.setTransform()}this.body.container.appendChild(this.frame);this.body.view.scale=1;this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight};this._bindHammer()}},{key:\"_bindHammer\",value:function _bindHammer(){var _this3=this;if(this.hammer!==undefined){this.hammer.destroy()}this.drag={};this.pinch={};this.hammer=new Hammer(this.frame.canvas);this.hammer.get(\"pinch\").set({enable:true});this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_ALL});hammerUtil.onTouch(this.hammer,function(event){_this3.body.eventListeners.onTouch(event)});this.hammer.on(\"tap\",function(event){_this3.body.eventListeners.onTap(event)});this.hammer.on(\"doubletap\",function(event){_this3.body.eventListeners.onDoubleTap(event)});this.hammer.on(\"press\",function(event){_this3.body.eventListeners.onHold(event)});this.hammer.on(\"panstart\",function(event){_this3.body.eventListeners.onDragStart(event)});this.hammer.on(\"panmove\",function(event){_this3.body.eventListeners.onDrag(event)});this.hammer.on(\"panend\",function(event){_this3.body.eventListeners.onDragEnd(event)});this.hammer.on(\"pinch\",function(event){_this3.body.eventListeners.onPinch(event)});this.frame.canvas.addEventListener(\"mousewheel\",function(event){_this3.body.eventListeners.onMouseWheel(event)});this.frame.canvas.addEventListener(\"DOMMouseScroll\",function(event){_this3.body.eventListeners.onMouseWheel(event)});this.frame.canvas.addEventListener(\"mousemove\",function(event){_this3.body.eventListeners.onMouseMove(event)});this.frame.canvas.addEventListener(\"contextmenu\",function(event){_this3.body.eventListeners.onContext(event)});this.hammerFrame=new Hammer(this.frame);hammerUtil.onRelease(this.hammerFrame,function(event){_this3.body.eventListeners.onRelease(event)})}},{key:\"setSize\",value:function setSize(){var width=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.options.width;var height=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.options.height;width=this._prepareValue(width);height=this._prepareValue(height);var emitEvent=false;var oldWidth=this.frame.canvas.width;var oldHeight=this.frame.canvas.height;var previousRatio=this.pixelRatio;this._setPixelRatio();if(width!=this.options.width||height!=this.options.height||this.frame.style.width!=width||this.frame.style.height!=height){this._getCameraState(previousRatio);this.frame.style.width=width;this.frame.style.height=height;this.frame.canvas.style.width=\"100%\";this.frame.canvas.style.height=\"100%\";this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio);this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.options.width=width;this.options.height=height;this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight};emitEvent=true}else{var newWidth=Math.round(this.frame.canvas.clientWidth*this.pixelRatio);var newHeight=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);if(this.frame.canvas.width!==newWidth||this.frame.canvas.height!==newHeight){this._getCameraState(previousRatio)}if(this.frame.canvas.width!==newWidth){this.frame.canvas.width=newWidth;emitEvent=true}if(this.frame.canvas.height!==newHeight){this.frame.canvas.height=newHeight;emitEvent=true}}if(emitEvent===true){this.body.emitter.emit(\"resize\",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(oldWidth/this.pixelRatio),oldHeight:Math.round(oldHeight/this.pixelRatio)});this._setCameraState()}this.initialized=true;return emitEvent}},{key:\"getContext\",value:function getContext(){return this.frame.canvas.getContext(\"2d\")}},{key:\"_determinePixelRatio\",value:function _determinePixelRatio(){var ctx=this.getContext();if(ctx===undefined){throw new Error(\"Could not get canvax context\")}var numerator=1;if(typeof window!==\"undefined\"){numerator=window.devicePixelRatio||1}var denominator=ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1;return numerator/denominator}},{key:\"_setPixelRatio\",value:function _setPixelRatio(){this.pixelRatio=this._determinePixelRatio()}},{key:\"setTransform\",value:function setTransform(){var ctx=this.getContext();if(ctx===undefined){throw new Error(\"Could not get canvax context\")}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:\"_XconvertDOMtoCanvas\",value:function _XconvertDOMtoCanvas(x){return(x-this.body.view.translation.x)/this.body.view.scale}},{\nkey:\"_XconvertCanvasToDOM\",value:function _XconvertCanvasToDOM(x){return x*this.body.view.scale+this.body.view.translation.x}},{key:\"_YconvertDOMtoCanvas\",value:function _YconvertDOMtoCanvas(y){return(y-this.body.view.translation.y)/this.body.view.scale}},{key:\"_YconvertCanvasToDOM\",value:function _YconvertCanvasToDOM(y){return y*this.body.view.scale+this.body.view.translation.y}},{key:\"canvasToDOM\",value:function canvasToDOM(pos){return{x:this._XconvertCanvasToDOM(pos.x),y:this._YconvertCanvasToDOM(pos.y)}}},{key:\"DOMtoCanvas\",value:function DOMtoCanvas(pos){return{x:this._XconvertDOMtoCanvas(pos.x),y:this._YconvertDOMtoCanvas(pos.y)}}}]);return Canvas}();exports[\"default\"]=Canvas},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var View=function(){function View(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,View);this.body=body;this.canvas=canvas;this.animationSpeed=1/this.renderRefreshRate;this.animationEasingFunction=\"easeInOutQuint\";this.easingTime=0;this.sourceScale=0;this.targetScale=0;this.sourceTranslation=0;this.targetTranslation=0;this.lockedOnNodeId=undefined;this.lockedOnNodeOffset=undefined;this.touchTime=0;this.viewFunction=undefined;this.body.emitter.on(\"fit\",this.fit.bind(this));this.body.emitter.on(\"animationFinished\",function(){_this.body.emitter.emit(\"_stopRendering\")});this.body.emitter.on(\"unlockNode\",this.releaseNode.bind(this))}(0,_createClass3[\"default\"])(View,[{key:\"setOptions\",value:function setOptions(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};this.options=options}},{key:\"fit\",value:function fit(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{nodes:[]};var initialZoom=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var range=void 0;var zoomLevel=void 0;if(options.nodes===undefined||options.nodes.length===0){options.nodes=this.body.nodeIndices}if(initialZoom===true){var positionDefined=0;for(var nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){var node=this.body.nodes[nodeId];if(node.predefinedPosition===true){positionDefined+=1}}}if(positionDefined>.5*this.body.nodeIndices.length){this.fit(options,false);return}range=NetworkUtil.getRange(this.body.nodes,options.nodes);var numberOfNodes=this.body.nodeIndices.length;zoomLevel=12.662/(numberOfNodes+7.4147)+.0964822;var factor=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);zoomLevel*=factor}else{this.body.emitter.emit(\"_resizeNodes\");range=NetworkUtil.getRange(this.body.nodes,options.nodes);var xDistance=Math.abs(range.maxX-range.minX)*1.1;var yDistance=Math.abs(range.maxY-range.minY)*1.1;var xZoomLevel=this.canvas.frame.canvas.clientWidth/xDistance;var yZoomLevel=this.canvas.frame.canvas.clientHeight/yDistance;zoomLevel=xZoomLevel<=yZoomLevel?xZoomLevel:yZoomLevel}if(zoomLevel>1){zoomLevel=1}else if(zoomLevel===0){zoomLevel=1}var center=NetworkUtil.findCenter(range);var animationOptions={position:center,scale:zoomLevel,animation:options.animation};this.moveTo(animationOptions)}},{key:\"focus\",value:function focus(nodeId){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(this.body.nodes[nodeId]!==undefined){var nodePosition={x:this.body.nodes[nodeId].x,y:this.body.nodes[nodeId].y};options.position=nodePosition;options.lockedOnNode=nodeId;this.moveTo(options)}else{console.log(\"Node: \"+nodeId+\" cannot be found.\")}}},{key:\"moveTo\",value:function moveTo(options){if(options===undefined){options={};return}if(options.offset===undefined){options.offset={x:0,y:0}}if(options.offset.x===undefined){options.offset.x=0}if(options.offset.y===undefined){options.offset.y=0}if(options.scale===undefined){options.scale=this.body.view.scale}if(options.position===undefined){options.position=this.getViewPosition()}if(options.animation===undefined){options.animation={duration:0}}if(options.animation===false){options.animation={duration:0}}if(options.animation===true){options.animation={}}if(options.animation.duration===undefined){options.animation.duration=1e3}if(options.animation.easingFunction===undefined){options.animation.easingFunction=\"easeInOutQuad\"}this.animateView(options)}},{key:\"animateView\",value:function animateView(options){if(options===undefined){return}this.animationEasingFunction=options.animation.easingFunction;this.releaseNode();if(options.locked===true){this.lockedOnNodeId=options.lockedOnNode;this.lockedOnNodeOffset=options.offset}if(this.easingTime!=0){this._transitionRedraw(true)}this.sourceScale=this.body.view.scale;this.sourceTranslation=this.body.view.translation;this.targetScale=options.scale;this.body.view.scale=this.targetScale;var viewCenter=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight});var distanceFromCenter={x:viewCenter.x-options.position.x,y:viewCenter.y-options.position.y};this.targetTranslation={x:this.sourceTranslation.x+distanceFromCenter.x*this.targetScale+options.offset.x,y:this.sourceTranslation.y+distanceFromCenter.y*this.targetScale+options.offset.y};if(options.animation.duration===0){if(this.lockedOnNodeId!=undefined){this.viewFunction=this._lockedRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction)}else{this.body.view.scale=this.targetScale;this.body.view.translation=this.targetTranslation;this.body.emitter.emit(\"_requestRedraw\")}}else{this.animationSpeed=1/(60*options.animation.duration*.001)||1/60;this.animationEasingFunction=options.animation.easingFunction;this.viewFunction=this._transitionRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction);this.body.emitter.emit(\"_startRendering\")}}},{key:\"_lockedRedraw\",value:function _lockedRedraw(){var nodePosition={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y};var viewCenter=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight});var distanceFromCenter={x:viewCenter.x-nodePosition.x,y:viewCenter.y-nodePosition.y};var sourceTranslation=this.body.view.translation;var targetTranslation={x:sourceTranslation.x+distanceFromCenter.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:sourceTranslation.y+distanceFromCenter.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=targetTranslation}},{key:\"releaseNode\",value:function releaseNode(){if(this.lockedOnNodeId!==undefined&&this.viewFunction!==undefined){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.lockedOnNodeId=undefined;this.lockedOnNodeOffset=undefined}}},{key:\"_transitionRedraw\",value:function _transitionRedraw(){var finished=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;this.easingTime+=this.animationSpeed;this.easingTime=finished===true?1:this.easingTime;var progress=util.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*progress;this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*progress,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*progress};if(this.easingTime>=1){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.easingTime=0;if(this.lockedOnNodeId!=undefined){this.viewFunction=this._lockedRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction)}this.body.emitter.emit(\"animationFinished\")}}},{key:\"getScale\",value:function getScale(){return this.body.view.scale}},{key:\"getViewPosition\",value:function getViewPosition(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]);return View}();exports[\"default\"]=View},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NavigationHandler=__webpack_require__(233)[\"default\"];var Popup=__webpack_require__(104)[\"default\"];var InteractionHandler=function(){function InteractionHandler(body,canvas,selectionHandler){(0,_classCallCheck3[\"default\"])(this,InteractionHandler);this.body=body;this.canvas=canvas;this.selectionHandler=selectionHandler;this.navigationHandler=new NavigationHandler(body,canvas);this.body.eventListeners.onTap=this.onTap.bind(this);this.body.eventListeners.onTouch=this.onTouch.bind(this);this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this);this.body.eventListeners.onHold=this.onHold.bind(this);this.body.eventListeners.onDragStart=this.onDragStart.bind(this);this.body.eventListeners.onDrag=this.onDrag.bind(this);this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this);this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this);this.body.eventListeners.onPinch=this.onPinch.bind(this);this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this);this.body.eventListeners.onRelease=this.onRelease.bind(this);this.body.eventListeners.onContext=this.onContext.bind(this);this.touchTime=0;this.drag={};this.pinch={};this.popup=undefined;this.popupObj=undefined;this.popupTimer=undefined;this.body.functions.getPointer=this.getPointer.bind(this);this.options={};this.defaultOptions={dragNodes:true,dragView:true,hover:false,keyboard:{enabled:false,speed:{x:10,y:10,zoom:.02},bindToWindow:true},navigationButtons:false,tooltipDelay:300,zoomView:true};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(InteractionHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"destroy\",function(){clearTimeout(_this.popupTimer);delete _this.body.functions.getPointer})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"hideEdgesOnDrag\",\"hideNodesOnDrag\",\"keyboard\",\"multiselect\",\"selectable\",\"selectConnectedEdges\"];util.selectiveNotDeepExtend(fields,this.options,options);util.mergeOptions(this.options,options,\"keyboard\");if(options.tooltip){util.extend(this.options.tooltip,options.tooltip);if(options.tooltip.color){this.options.tooltip.color=util.parseColor(options.tooltip.color)}}}this.navigationHandler.setOptions(this.options)}},{key:\"getPointer\",value:function getPointer(touch){return{x:touch.x-util.getAbsoluteLeft(this.canvas.frame.canvas),y:touch.y-util.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:\"onTouch\",value:function onTouch(event){if((new Date).valueOf()-this.touchTime>50){this.drag.pointer=this.getPointer(event.center);this.drag.pinched=false;this.pinch.scale=this.body.view.scale;this.touchTime=(new Date).valueOf()}}},{key:\"onTap\",value:function onTap(event){var pointer=this.getPointer(event.center);var multiselect=this.selectionHandler.options.multiselect&&(event.changedPointers[0].ctrlKey||event.changedPointers[0].metaKey);this.checkSelectionChanges(pointer,event,multiselect);this.selectionHandler._generateClickEvent(\"click\",event,pointer)}},{key:\"onDoubleTap\",value:function onDoubleTap(event){var pointer=this.getPointer(event.center);this.selectionHandler._generateClickEvent(\"doubleClick\",event,pointer)}},{key:\"onHold\",value:function onHold(event){var pointer=this.getPointer(event.center);var multiselect=this.selectionHandler.options.multiselect;this.checkSelectionChanges(pointer,event,multiselect);this.selectionHandler._generateClickEvent(\"click\",event,pointer);this.selectionHandler._generateClickEvent(\"hold\",event,pointer)}},{key:\"onRelease\",value:function onRelease(event){if((new Date).valueOf()-this.touchTime>10){var pointer=this.getPointer(event.center);this.selectionHandler._generateClickEvent(\"release\",event,pointer);this.touchTime=(new Date).valueOf()}}},{key:\"onContext\",value:function onContext(event){var pointer=this.getPointer({x:event.clientX,y:event.clientY});this.selectionHandler._generateClickEvent(\"oncontext\",event,pointer)}},{key:\"checkSelectionChanges\",value:function checkSelectionChanges(pointer,event){var add=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var previousSelection=this.selectionHandler.getSelection();var selected=false;if(add===true){selected=this.selectionHandler.selectAdditionalOnPoint(pointer)}else{selected=this.selectionHandler.selectOnPoint(pointer)}var currentSelection=this.selectionHandler.getSelection();var deselectedItems=this._determineDifference(previousSelection,currentSelection);var selectedItems=this._determineDifference(currentSelection,previousSelection);if(deselectedItems.edges.length>0){this.selectionHandler._generateClickEvent(\"deselectEdge\",event,pointer,previousSelection);selected=true}if(deselectedItems.nodes.length>0){this.selectionHandler._generateClickEvent(\"deselectNode\",event,pointer,previousSelection);selected=true}if(selectedItems.nodes.length>0){this.selectionHandler._generateClickEvent(\"selectNode\",event,pointer);selected=true}if(selectedItems.edges.length>0){this.selectionHandler._generateClickEvent(\"selectEdge\",event,pointer);selected=true}if(selected===true){this.selectionHandler._generateClickEvent(\"select\",event,pointer)}}},{key:\"_determineDifference\",value:function _determineDifference(firstSet,secondSet){var arrayDiff=function arrayDiff(firstArr,secondArr){var result=[];for(var i=0;i<firstArr.length;i++){var value=firstArr[i];if(secondArr.indexOf(value)===-1){result.push(value)}}return result};return{nodes:arrayDiff(firstSet.nodes,secondSet.nodes),edges:arrayDiff(firstSet.edges,secondSet.edges)}}},{key:\"onDragStart\",value:function onDragStart(event){if(this.drag.pointer===undefined){this.onTouch(event)}var node=this.selectionHandler.getNodeAt(this.drag.pointer);this.drag.dragging=true;this.drag.selection=[];this.drag.translation=util.extend({},this.body.view.translation);this.drag.nodeId=undefined;if(node!==undefined&&this.options.dragNodes===true){this.drag.nodeId=node.id;if(node.isSelected()===false){this.selectionHandler.unselectAll();this.selectionHandler.selectObject(node)}this.selectionHandler._generateClickEvent(\"dragStart\",event,this.drag.pointer);var selection=this.selectionHandler.selectionObj.nodes;for(var nodeId in selection){if(selection.hasOwnProperty(nodeId)){var object=selection[nodeId];var s={id:object.id,node:object,x:object.x,y:object.y,xFixed:object.options.fixed.x,yFixed:object.options.fixed.y};object.options.fixed.x=true;object.options.fixed.y=true;this.drag.selection.push(s)}}}else{this.selectionHandler._generateClickEvent(\"dragStart\",event,this.drag.pointer,undefined,true)}}},{key:\"onDrag\",value:function onDrag(event){var _this2=this;if(this.drag.pinched===true){return}this.body.emitter.emit(\"unlockNode\");var pointer=this.getPointer(event.center);var selection=this.drag.selection;if(selection&&selection.length&&this.options.dragNodes===true){this.selectionHandler._generateClickEvent(\"dragging\",event,pointer);var deltaX=pointer.x-this.drag.pointer.x;var deltaY=pointer.y-this.drag.pointer.y;selection.forEach(function(selection){var node=selection.node;if(selection.xFixed===false){node.x=_this2.canvas._XconvertDOMtoCanvas(_this2.canvas._XconvertCanvasToDOM(selection.x)+deltaX)}if(selection.yFixed===false){node.y=_this2.canvas._YconvertDOMtoCanvas(_this2.canvas._YconvertCanvasToDOM(selection.y)+deltaY)}});this.body.emitter.emit(\"startSimulation\")}else{if(this.options.dragView===true){this.selectionHandler._generateClickEvent(\"dragging\",event,pointer,undefined,true);if(this.drag.pointer===undefined){this.onDragStart(event);return}var diffX=pointer.x-this.drag.pointer.x;var diffY=pointer.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+diffX,y:this.drag.translation.y+diffY};this.body.emitter.emit(\"_requestRedraw\")}}}},{key:\"onDragEnd\",value:function onDragEnd(event){this.drag.dragging=false;var selection=this.drag.selection;if(selection&&selection.length){selection.forEach(function(s){s.node.options.fixed.x=s.xFixed;s.node.options.fixed.y=s.yFixed});this.selectionHandler._generateClickEvent(\"dragEnd\",event,this.getPointer(event.center));this.body.emitter.emit(\"startSimulation\")}else{this.selectionHandler._generateClickEvent(\"dragEnd\",event,this.getPointer(event.center),undefined,true);this.body.emitter.emit(\"_requestRedraw\")}}},{key:\"onPinch\",value:function onPinch(event){var pointer=this.getPointer(event.center);this.drag.pinched=true;if(this.pinch[\"scale\"]===undefined){this.pinch.scale=1}var scale=this.pinch.scale*event.scale;this.zoom(scale,pointer)}},{key:\"zoom\",value:function zoom(scale,pointer){if(this.options.zoomView===true){var scaleOld=this.body.view.scale;if(scale<1e-5){scale=1e-5}if(scale>10){scale=10}var preScaleDragPointer=undefined;if(this.drag!==undefined){if(this.drag.dragging===true){preScaleDragPointer=this.canvas.DOMtoCanvas(this.drag.pointer)}}var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*pointer.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*pointer.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};if(preScaleDragPointer!=undefined){var postScaleDragPointer=this.canvas.canvasToDOM(preScaleDragPointer);this.drag.pointer.x=postScaleDragPointer.x;this.drag.pointer.y=postScaleDragPointer.y}this.body.emitter.emit(\"_requestRedraw\");if(scaleOld<scale){this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:pointer})}else{this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:pointer})}}}},{key:\"onMouseWheel\",value:function onMouseWheel(event){if(this.options.zoomView===true){var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(delta!==0){var scale=this.body.view.scale;var zoom=delta/10;if(delta<0){zoom=zoom/(1-zoom)}scale*=1+zoom;var pointer=this.getPointer({x:event.clientX,y:event.clientY});this.zoom(scale,pointer)}event.preventDefault()}}},{key:\"onMouseMove\",value:function onMouseMove(event){var _this3=this;var pointer=this.getPointer({x:event.clientX,y:event.clientY});var popupVisible=false;if(this.popup!==undefined){if(this.popup.hidden===false){this._checkHidePopup(pointer)}if(this.popup.hidden===false){popupVisible=true;this.popup.setPosition(pointer.x+3,pointer.y-5);this.popup.show()}}if(this.options.keyboard.bindToWindow===false&&this.options.keyboard.enabled===true){this.canvas.frame.focus()}if(popupVisible===false){if(this.popupTimer!==undefined){clearInterval(this.popupTimer);this.popupTimer=undefined}if(!this.drag.dragging){this.popupTimer=setTimeout(function(){return _this3._checkShowPopup(pointer)},this.options.tooltipDelay)}}if(this.options.hover===true){this.selectionHandler.hoverObject(event,pointer)}}},{key:\"_checkShowPopup\",value:function _checkShowPopup(pointer){var x=this.canvas._XconvertDOMtoCanvas(pointer.x);var y=this.canvas._YconvertDOMtoCanvas(pointer.y);var pointerObj={left:x,top:y,right:x,bottom:y};var previousPopupObjId=this.popupObj===undefined?undefined:this.popupObj.id;var nodeUnderCursor=false;var popupType=\"node\";if(this.popupObj===undefined){var nodeIndices=this.body.nodeIndices;var nodes=this.body.nodes;var node=void 0;var overlappingNodes=[];for(var i=0;i<nodeIndices.length;i++){node=nodes[nodeIndices[i]];if(node.isOverlappingWith(pointerObj)===true){if(node.getTitle()!==undefined){overlappingNodes.push(nodeIndices[i])}}}if(overlappingNodes.length>0){this.popupObj=nodes[overlappingNodes[overlappingNodes.length-1]];nodeUnderCursor=true}}if(this.popupObj===undefined&&nodeUnderCursor===false){var edgeIndices=this.body.edgeIndices;var edges=this.body.edges;var edge=void 0;var overlappingEdges=[];for(var _i=0;_i<edgeIndices.length;_i++){edge=edges[edgeIndices[_i]];if(edge.isOverlappingWith(pointerObj)===true){if(edge.connected===true&&edge.getTitle()!==undefined){overlappingEdges.push(edgeIndices[_i])}}}if(overlappingEdges.length>0){this.popupObj=edges[overlappingEdges[overlappingEdges.length-1]];popupType=\"edge\"}}if(this.popupObj!==undefined){if(this.popupObj.id!==previousPopupObjId){if(this.popup===undefined){this.popup=new Popup(this.canvas.frame)}this.popup.popupTargetType=popupType;this.popup.popupTargetId=this.popupObj.id;this.popup.setPosition(pointer.x+3,pointer.y-5);this.popup.setText(this.popupObj.getTitle());this.popup.show();this.body.emitter.emit(\"showPopup\",this.popupObj.id)}}else{if(this.popup!==undefined){this.popup.hide();this.body.emitter.emit(\"hidePopup\")}}}},{key:\"_checkHidePopup\",value:function _checkHidePopup(pointer){var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var stillOnObj=false;if(this.popup.popupTargetType===\"node\"){if(this.body.nodes[this.popup.popupTargetId]!==undefined){stillOnObj=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(pointerObj);if(stillOnObj===true){var overNode=this.selectionHandler.getNodeAt(pointer);stillOnObj=overNode===undefined?false:overNode.id===this.popup.popupTargetId}}}else{if(this.selectionHandler.getNodeAt(pointer)===undefined){if(this.body.edges[this.popup.popupTargetId]!==undefined){stillOnObj=this.body.edges[this.popup.popupTargetId].isOverlappingWith(pointerObj)}}}if(stillOnObj===false){this.popupObj=undefined;this.popup.hide();this.body.emitter.emit(\"hidePopup\")}}}]);return InteractionHandler}();exports[\"default\"]=InteractionHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var keycharm=__webpack_require__(35);var NavigationHandler=function(){function NavigationHandler(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,NavigationHandler);this.body=body;this.canvas=canvas;this.iconsCreated=false;this.navigationHammers=[];this.boundFunctions={};this.touchTime=0;this.activated=false;this.body.emitter.on(\"activate\",function(){_this.activated=true;_this.configureKeyboardBindings()});this.body.emitter.on(\"deactivate\",function(){_this.activated=false;_this.configureKeyboardBindings()});this.body.emitter.on(\"destroy\",function(){if(_this.keycharm!==undefined){_this.keycharm.destroy()}});this.options={}}(0,_createClass3[\"default\"])(NavigationHandler,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){this.options=options;this.create()}}},{key:\"create\",value:function create(){if(this.options.navigationButtons===true){if(this.iconsCreated===false){this.loadNavigationElements()}}else if(this.iconsCreated===true){this.cleanNavigation()}this.configureKeyboardBindings()}},{key:\"cleanNavigation\",value:function cleanNavigation(){if(this.navigationHammers.length!=0){for(var i=0;i<this.navigationHammers.length;i++){this.navigationHammers[i].destroy()}this.navigationHammers=[]}if(this.navigationDOM&&this.navigationDOM[\"wrapper\"]&&this.navigationDOM[\"wrapper\"].parentNode){this.navigationDOM[\"wrapper\"].parentNode.removeChild(this.navigationDOM[\"wrapper\"])}this.iconsCreated=false}},{key:\"loadNavigationElements\",value:function loadNavigationElements(){var _this2=this;this.cleanNavigation();this.navigationDOM={};var navigationDivs=[\"up\",\"down\",\"left\",\"right\",\"zoomIn\",\"zoomOut\",\"zoomExtends\"];var navigationDivActions=[\"_moveUp\",\"_moveDown\",\"_moveLeft\",\"_moveRight\",\"_zoomIn\",\"_zoomOut\",\"_fit\"];this.navigationDOM[\"wrapper\"]=document.createElement(\"div\");this.navigationDOM[\"wrapper\"].className=\"vis-navigation\";this.canvas.frame.appendChild(this.navigationDOM[\"wrapper\"]);for(var i=0;i<navigationDivs.length;i++){this.navigationDOM[navigationDivs[i]]=document.createElement(\"div\");this.navigationDOM[navigationDivs[i]].className=\"vis-button vis-\"+navigationDivs[i];this.navigationDOM[\"wrapper\"].appendChild(this.navigationDOM[navigationDivs[i]]);var hammer=new Hammer(this.navigationDOM[navigationDivs[i]]);if(navigationDivActions[i]===\"_fit\"){hammerUtil.onTouch(hammer,this._fit.bind(this))}else{hammerUtil.onTouch(hammer,this.bindToRedraw.bind(this,navigationDivActions[i]))}this.navigationHammers.push(hammer)}var hammerFrame=new Hammer(this.canvas.frame);hammerUtil.onRelease(hammerFrame,function(){_this2._stopMovement()});this.navigationHammers.push(hammerFrame);this.iconsCreated=true}},{key:\"bindToRedraw\",value:function bindToRedraw(action){if(this.boundFunctions[action]===undefined){this.boundFunctions[action]=this[action].bind(this);this.body.emitter.on(\"initRedraw\",this.boundFunctions[action]);this.body.emitter.emit(\"_startRendering\")}}},{key:\"unbindFromRedraw\",value:function unbindFromRedraw(action){if(this.boundFunctions[action]!==undefined){this.body.emitter.off(\"initRedraw\",this.boundFunctions[action]);this.body.emitter.emit(\"_stopRendering\");delete this.boundFunctions[action]}}},{key:\"_fit\",value:function _fit(){if((new Date).valueOf()-this.touchTime>700){this.body.emitter.emit(\"fit\",{duration:700});this.touchTime=(new Date).valueOf()}}},{key:\"_stopMovement\",value:function _stopMovement(){for(var boundAction in this.boundFunctions){if(this.boundFunctions.hasOwnProperty(boundAction)){this.body.emitter.off(\"initRedraw\",this.boundFunctions[boundAction]);this.body.emitter.emit(\"_stopRendering\")}}this.boundFunctions={}}},{key:\"_moveUp\",value:function _moveUp(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:\"_moveDown\",value:function _moveDown(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:\"_moveLeft\",value:function _moveLeft(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:\"_moveRight\",value:function _moveRight(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:\"_zoomIn\",value:function _zoomIn(){var scaleOld=this.body.view.scale;var scale=this.body.view.scale*(1+this.options.keyboard.speed.zoom);var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*this.canvas.canvasViewCenter.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*this.canvas.canvasViewCenter.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:null})}},{key:\"_zoomOut\",value:function _zoomOut(){var scaleOld=this.body.view.scale;var scale=this.body.view.scale/(1+this.options.keyboard.speed.zoom);var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*this.canvas.canvasViewCenter.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*this.canvas.canvasViewCenter.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:null})}},{key:\"configureKeyboardBindings\",value:function configureKeyboardBindings(){var _this3=this;if(this.keycharm!==undefined){this.keycharm.destroy()}if(this.options.keyboard.enabled===true){if(this.options.keyboard.bindToWindow===true){this.keycharm=keycharm({container:window,preventDefault:true})}else{this.keycharm=keycharm({container:this.canvas.frame,preventDefault:true})}this.keycharm.reset();if(this.activated===true){this.keycharm.bind(\"up\",function(){_this3.bindToRedraw(\"_moveUp\")},\"keydown\");this.keycharm.bind(\"down\",function(){_this3.bindToRedraw(\"_moveDown\")},\"keydown\");this.keycharm.bind(\"left\",function(){_this3.bindToRedraw(\"_moveLeft\")},\"keydown\");this.keycharm.bind(\"right\",function(){_this3.bindToRedraw(\"_moveRight\")},\"keydown\");this.keycharm.bind(\"=\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"num+\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"num-\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"-\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"[\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"]\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"pageup\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"pagedown\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"up\",function(){_this3.unbindFromRedraw(\"_moveUp\")},\"keyup\");this.keycharm.bind(\"down\",function(){_this3.unbindFromRedraw(\"_moveDown\")},\"keyup\");this.keycharm.bind(\"left\",function(){_this3.unbindFromRedraw(\"_moveLeft\")},\"keyup\");this.keycharm.bind(\"right\",function(){_this3.unbindFromRedraw(\"_moveRight\")},\"keyup\");this.keycharm.bind(\"=\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"num+\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"num-\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"-\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"[\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"]\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"pageup\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"pagedown\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\")}}}}]);return NavigationHandler}();exports[\"default\"]=NavigationHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Node=__webpack_require__(47)[\"default\"];var Edge=__webpack_require__(74)[\"default\"];var util=__webpack_require__(2);var SelectionHandler=function(){function SelectionHandler(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,SelectionHandler);this.body=body;this.canvas=canvas;this.selectionObj={nodes:[],edges:[]};this.hoverObj={nodes:{},edges:{}};this.options={};this.defaultOptions={multiselect:false,selectable:true,selectConnectedEdges:true,hoverConnectedEdges:true};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"_dataChanged\",function(){_this.updateSelection()})}(0,_createClass3[\"default\"])(SelectionHandler,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"multiselect\",\"hoverConnectedEdges\",\"selectable\",\"selectConnectedEdges\"];util.selectiveDeepExtend(fields,this.options,options)}}},{key:\"selectOnPoint\",value:function selectOnPoint(pointer){var selected=false;if(this.options.selectable===true){var obj=this.getNodeAt(pointer)||this.getEdgeAt(pointer);this.unselectAll();if(obj!==undefined){selected=this.selectObject(obj)}this.body.emitter.emit(\"_requestRedraw\")}return selected}},{key:\"selectAdditionalOnPoint\",value:function selectAdditionalOnPoint(pointer){var selectionChanged=false;if(this.options.selectable===true){var obj=this.getNodeAt(pointer)||this.getEdgeAt(pointer);if(obj!==undefined){selectionChanged=true;if(obj.isSelected()===true){this.deselectObject(obj)}else{this.selectObject(obj)}this.body.emitter.emit(\"_requestRedraw\")}}return selectionChanged}},{key:\"_initBaseEvent\",value:function _initBaseEvent(event,pointer){var properties={};properties[\"pointer\"]={DOM:{\nx:pointer.x,y:pointer.y},canvas:this.canvas.DOMtoCanvas(pointer)};properties[\"event\"]=event;return properties}},{key:\"_generateClickEvent\",value:function _generateClickEvent(eventType,event,pointer,oldSelection){var emptySelection=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;var properties=this._initBaseEvent(event,pointer);if(emptySelection===true){properties.nodes=[];properties.edges=[]}else{var tmp=this.getSelection();properties.nodes=tmp.nodes;properties.edges=tmp.edges}if(oldSelection!==undefined){properties[\"previousSelection\"]=oldSelection}if(eventType==\"click\"){properties.items=this.getClickedItems(pointer)}this.body.emitter.emit(eventType,properties)}},{key:\"selectObject\",value:function selectObject(obj){var highlightEdges=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.options.selectConnectedEdges;if(obj!==undefined){if(obj instanceof Node){if(highlightEdges===true){this._selectConnectedEdges(obj)}}obj.select();this._addToSelection(obj);return true}return false}},{key:\"deselectObject\",value:function deselectObject(obj){if(obj.isSelected()===true){obj.selected=false;this._removeFromSelection(obj)}}},{key:\"_getAllNodesOverlappingWith\",value:function _getAllNodesOverlappingWith(object){var overlappingNodes=[];var nodes=this.body.nodes;for(var i=0;i<this.body.nodeIndices.length;i++){var nodeId=this.body.nodeIndices[i];if(nodes[nodeId].isOverlappingWith(object)){overlappingNodes.push(nodeId)}}return overlappingNodes}},{key:\"_pointerToPositionObject\",value:function _pointerToPositionObject(pointer){var canvasPos=this.canvas.DOMtoCanvas(pointer);return{left:canvasPos.x-1,top:canvasPos.y+1,right:canvasPos.x+1,bottom:canvasPos.y-1}}},{key:\"getNodeAt\",value:function getNodeAt(pointer){var returnNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var positionObject=this._pointerToPositionObject(pointer);var overlappingNodes=this._getAllNodesOverlappingWith(positionObject);if(overlappingNodes.length>0){if(returnNode===true){return this.body.nodes[overlappingNodes[overlappingNodes.length-1]]}else{return overlappingNodes[overlappingNodes.length-1]}}else{return undefined}}},{key:\"_getEdgesOverlappingWith\",value:function _getEdgesOverlappingWith(object,overlappingEdges){var edges=this.body.edges;for(var i=0;i<this.body.edgeIndices.length;i++){var edgeId=this.body.edgeIndices[i];if(edges[edgeId].isOverlappingWith(object)){overlappingEdges.push(edgeId)}}}},{key:\"_getAllEdgesOverlappingWith\",value:function _getAllEdgesOverlappingWith(object){var overlappingEdges=[];this._getEdgesOverlappingWith(object,overlappingEdges);return overlappingEdges}},{key:\"getEdgeAt\",value:function getEdgeAt(pointer){var returnEdge=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var canvasPos=this.canvas.DOMtoCanvas(pointer);var mindist=10;var overlappingEdge=null;var edges=this.body.edges;for(var i=0;i<this.body.edgeIndices.length;i++){var edgeId=this.body.edgeIndices[i];var edge=edges[edgeId];if(edge.connected){var xFrom=edge.from.x;var yFrom=edge.from.y;var xTo=edge.to.x;var yTo=edge.to.y;var dist=edge.edgeType.getDistanceToEdge(xFrom,yFrom,xTo,yTo,canvasPos.x,canvasPos.y);if(dist<mindist){overlappingEdge=edgeId;mindist=dist}}}if(overlappingEdge!==null){if(returnEdge===true){return this.body.edges[overlappingEdge]}else{return overlappingEdge}}else{return undefined}}},{key:\"_addToSelection\",value:function _addToSelection(obj){if(obj instanceof Node){this.selectionObj.nodes[obj.id]=obj}else{this.selectionObj.edges[obj.id]=obj}}},{key:\"_addToHover\",value:function _addToHover(obj){if(obj instanceof Node){this.hoverObj.nodes[obj.id]=obj}else{this.hoverObj.edges[obj.id]=obj}}},{key:\"_removeFromSelection\",value:function _removeFromSelection(obj){if(obj instanceof Node){delete this.selectionObj.nodes[obj.id];this._unselectConnectedEdges(obj)}else{delete this.selectionObj.edges[obj.id]}}},{key:\"unselectAll\",value:function unselectAll(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){this.selectionObj.nodes[nodeId].unselect()}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){this.selectionObj.edges[edgeId].unselect()}}this.selectionObj={nodes:{},edges:{}}}},{key:\"_getSelectedNodeCount\",value:function _getSelectedNodeCount(){var count=0;for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){count+=1}}return count}},{key:\"_getSelectedNode\",value:function _getSelectedNode(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){return this.selectionObj.nodes[nodeId]}}return undefined}},{key:\"_getSelectedEdge\",value:function _getSelectedEdge(){for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){return this.selectionObj.edges[edgeId]}}return undefined}},{key:\"_getSelectedEdgeCount\",value:function _getSelectedEdgeCount(){var count=0;for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){count+=1}}return count}},{key:\"_getSelectedObjectCount\",value:function _getSelectedObjectCount(){var count=0;for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){count+=1}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){count+=1}}return count}},{key:\"_selectionIsEmpty\",value:function _selectionIsEmpty(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){return false}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){return false}}return true}},{key:\"_clusterInSelection\",value:function _clusterInSelection(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){if(this.selectionObj.nodes[nodeId].clusterSize>1){return true}}}return false}},{key:\"_selectConnectedEdges\",value:function _selectConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.select();this._addToSelection(edge)}}},{key:\"_hoverConnectedEdges\",value:function _hoverConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.hover=true;this._addToHover(edge)}}},{key:\"_unselectConnectedEdges\",value:function _unselectConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.unselect();this._removeFromSelection(edge)}}},{key:\"emitBlurEvent\",value:function emitBlurEvent(event,pointer,object){var properties=this._initBaseEvent(event,pointer);if(object.hover===true){object.hover=false;if(object instanceof Node){properties.node=object.id;this.body.emitter.emit(\"blurNode\",properties)}else{properties.edge=object.id;this.body.emitter.emit(\"blurEdge\",properties)}}}},{key:\"emitHoverEvent\",value:function emitHoverEvent(event,pointer,object){var properties=this._initBaseEvent(event,pointer);var hoverChanged=false;if(object.hover===false){object.hover=true;this._addToHover(object);hoverChanged=true;if(object instanceof Node){properties.node=object.id;this.body.emitter.emit(\"hoverNode\",properties)}else{properties.edge=object.id;this.body.emitter.emit(\"hoverEdge\",properties)}}return hoverChanged}},{key:\"hoverObject\",value:function hoverObject(event,pointer){var object=this.getNodeAt(pointer);if(object===undefined){object=this.getEdgeAt(pointer)}var hoverChanged=false;for(var nodeId in this.hoverObj.nodes){if(this.hoverObj.nodes.hasOwnProperty(nodeId)){if(object===undefined||object instanceof Node&&object.id!=nodeId||object instanceof Edge){this.emitBlurEvent(event,pointer,this.hoverObj.nodes[nodeId]);delete this.hoverObj.nodes[nodeId];hoverChanged=true}}}for(var edgeId in this.hoverObj.edges){if(this.hoverObj.edges.hasOwnProperty(edgeId)){if(hoverChanged===true){this.hoverObj.edges[edgeId].hover=false;delete this.hoverObj.edges[edgeId]}else if(object===undefined||object instanceof Edge&&object.id!=edgeId||object instanceof Node&&!object.hover){this.emitBlurEvent(event,pointer,this.hoverObj.edges[edgeId]);delete this.hoverObj.edges[edgeId];hoverChanged=true}}}if(object!==undefined){hoverChanged=hoverChanged||this.emitHoverEvent(event,pointer,object);if(object instanceof Node&&this.options.hoverConnectedEdges===true){this._hoverConnectedEdges(object)}}if(hoverChanged===true){this.body.emitter.emit(\"_requestRedraw\")}}},{key:\"getSelection\",value:function getSelection(){var nodeIds=this.getSelectedNodes();var edgeIds=this.getSelectedEdges();return{nodes:nodeIds,edges:edgeIds}}},{key:\"getSelectedNodes\",value:function getSelectedNodes(){var idArray=[];if(this.options.selectable===true){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){idArray.push(this.selectionObj.nodes[nodeId].id)}}}return idArray}},{key:\"getSelectedEdges\",value:function getSelectedEdges(){var idArray=[];if(this.options.selectable===true){for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){idArray.push(this.selectionObj.edges[edgeId].id)}}}return idArray}},{key:\"setSelection\",value:function setSelection(selection){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=void 0,id=void 0;if(!selection||!selection.nodes&&!selection.edges)throw\"Selection must be an object with nodes and/or edges properties\";if(options.unselectAll||options.unselectAll===undefined){this.unselectAll()}if(selection.nodes){for(i=0;i<selection.nodes.length;i++){id=selection.nodes[i];var node=this.body.nodes[id];if(!node){throw new RangeError('Node with id \"'+id+'\" not found')}this.selectObject(node,options.highlightEdges)}}if(selection.edges){for(i=0;i<selection.edges.length;i++){id=selection.edges[i];var edge=this.body.edges[id];if(!edge){throw new RangeError('Edge with id \"'+id+'\" not found')}this.selectObject(edge)}}this.body.emitter.emit(\"_requestRedraw\")}},{key:\"selectNodes\",value:function selectNodes(selection){var highlightEdges=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(!selection||selection.length===undefined)throw\"Selection must be an array with ids\";this.setSelection({nodes:selection},{highlightEdges:highlightEdges})}},{key:\"selectEdges\",value:function selectEdges(selection){if(!selection||selection.length===undefined)throw\"Selection must be an array with ids\";this.setSelection({edges:selection})}},{key:\"updateSelection\",value:function updateSelection(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){if(!this.body.nodes.hasOwnProperty(nodeId)){delete this.selectionObj.nodes[nodeId]}}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){if(!this.body.edges.hasOwnProperty(edgeId)){delete this.selectionObj.edges[edgeId]}}}}},{key:\"getClickedItems\",value:function getClickedItems(pointer){var point=this.canvas.DOMtoCanvas(pointer);var items=[];var nodeIndices=this.body.nodeIndices;var nodes=this.body.nodes;for(var i=nodeIndices.length-1;i>=0;i--){var node=nodes[nodeIndices[i]];var ret=node.getItemsOnPoint(point);items.push.apply(items,ret)}var edgeIndices=this.body.edgeIndices;var edges=this.body.edges;for(var _i=edgeIndices.length-1;_i>=0;_i--){var edge=edges[edgeIndices[_i]];var _ret=edge.getItemsOnPoint(point);items.push.apply(items,_ret)}return items}}]);return SelectionHandler}();exports[\"default\"]=SelectionHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var _require=__webpack_require__(236),HorizontalStrategy=_require.HorizontalStrategy,VerticalStrategy=_require.VerticalStrategy;var HierarchicalStatus=function(){function HierarchicalStatus(){(0,_classCallCheck3[\"default\"])(this,HierarchicalStatus);this.childrenReference={};this.parentReference={};this.trees={};this.distributionOrdering={};this.levels={};this.distributionIndex={};this.isTree=false;this.treeIndex=-1}(0,_createClass3[\"default\"])(HierarchicalStatus,[{key:\"addRelation\",value:function addRelation(parentNodeId,childNodeId){if(this.childrenReference[parentNodeId]===undefined){this.childrenReference[parentNodeId]=[]}this.childrenReference[parentNodeId].push(childNodeId);if(this.parentReference[childNodeId]===undefined){this.parentReference[childNodeId]=[]}this.parentReference[childNodeId].push(parentNodeId)}},{key:\"checkIfTree\",value:function checkIfTree(){for(var i in this.parentReference){if(this.parentReference[i].length>1){this.isTree=false;return}}this.isTree=true}},{key:\"numTrees\",value:function numTrees(){return this.treeIndex+1}},{key:\"setTreeIndex\",value:function setTreeIndex(node,treeId){if(treeId===undefined)return;if(this.trees[node.id]===undefined){this.trees[node.id]=treeId;this.treeIndex=Math.max(treeId,this.treeIndex)}}},{key:\"ensureLevel\",value:function ensureLevel(nodeId){if(this.levels[nodeId]===undefined){this.levels[nodeId]=0}}},{key:\"getMaxLevel\",value:function getMaxLevel(nodeId){var _this=this;var accumulator={};var _getMaxLevel=function _getMaxLevel(nodeId){if(accumulator[nodeId]!==undefined){return accumulator[nodeId]}var level=_this.levels[nodeId];if(_this.childrenReference[nodeId]){var children=_this.childrenReference[nodeId];if(children.length>0){for(var i=0;i<children.length;i++){level=Math.max(level,_getMaxLevel(children[i]))}}}accumulator[nodeId]=level;return level};return _getMaxLevel(nodeId)}},{key:\"levelDownstream\",value:function levelDownstream(nodeA,nodeB){if(this.levels[nodeB.id]===undefined){if(this.levels[nodeA.id]===undefined){this.levels[nodeA.id]=0}this.levels[nodeB.id]=this.levels[nodeA.id]+1}}},{key:\"setMinLevelToZero\",value:function setMinLevelToZero(nodes){var minLevel=1e9;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(this.levels[nodeId]!==undefined){minLevel=Math.min(this.levels[nodeId],minLevel)}}}for(var _nodeId in nodes){if(nodes.hasOwnProperty(_nodeId)){if(this.levels[_nodeId]!==undefined){this.levels[_nodeId]-=minLevel}}}}},{key:\"getTreeSize\",value:function getTreeSize(nodes,index){var min_x=1e9;var max_x=-1e9;var min_y=1e9;var max_y=-1e9;for(var nodeId in this.trees){if(this.trees.hasOwnProperty(nodeId)){if(this.trees[nodeId]===index){var node=nodes[nodeId];min_x=Math.min(node.x,min_x);max_x=Math.max(node.x,max_x);min_y=Math.min(node.y,min_y);max_y=Math.max(node.y,max_y)}}}return{min_x:min_x,max_x:max_x,min_y:min_y,max_y:max_y}}},{key:\"hasSameParent\",value:function hasSameParent(node1,node2){var parents1=this.parentReference[node1.id];var parents2=this.parentReference[node2.id];if(parents1===undefined||parents2===undefined){return false}for(var i=0;i<parents1.length;i++){for(var j=0;j<parents2.length;j++){if(parents1[i]==parents2[j]){return true}}}return false}},{key:\"inSameSubNetwork\",value:function inSameSubNetwork(node1,node2){return this.trees[node1.id]===this.trees[node2.id]}},{key:\"getLevels\",value:function getLevels(){return(0,_keys2[\"default\"])(this.distributionOrdering)}},{key:\"addToOrdering\",value:function addToOrdering(node,level){if(this.distributionOrdering[level]===undefined){this.distributionOrdering[level]=[]}var isPresent=false;var curLevel=this.distributionOrdering[level];for(var n in curLevel){if(curLevel[n]===node){isPresent=true;break}}if(!isPresent){this.distributionOrdering[level].push(node);this.distributionIndex[node.id]=this.distributionOrdering[level].length-1}}}]);return HierarchicalStatus}();var LayoutEngine=function(){function LayoutEngine(body){(0,_classCallCheck3[\"default\"])(this,LayoutEngine);this.body=body;this.initialRandomSeed=Math.round(Math.random()*1e6);this.randomSeed=this.initialRandomSeed;this.setPhysics=false;this.options={};this.optionsBackup={physics:{}};this.defaultOptions={randomSeed:undefined,improvedLayout:true,hierarchical:{enabled:false,levelSeparation:150,nodeSpacing:100,treeSpacing:200,blockShifting:true,edgeMinimization:true,parentCentralization:true,direction:\"UD\",sortMethod:\"hubsize\"}};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(LayoutEngine,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"_dataChanged\",function(){_this2.setupHierarchicalLayout()});this.body.emitter.on(\"_dataLoaded\",function(){_this2.layoutNetwork()});this.body.emitter.on(\"_resetHierarchicalLayout\",function(){_this2.setupHierarchicalLayout()});this.body.emitter.on(\"_adjustEdgesForHierarchicalLayout\",function(){if(_this2.options.hierarchical.enabled!==true){return}var type=_this2.direction.curveType();_this2.body.emitter.emit(\"_forceDisableDynamicCurves\",type,false)})}},{key:\"setOptions\",value:function setOptions(options,allOptions){if(options!==undefined){var hierarchical=this.options.hierarchical;var prevHierarchicalState=hierarchical.enabled;util.selectiveDeepExtend([\"randomSeed\",\"improvedLayout\"],this.options,options);util.mergeOptions(this.options,options,\"hierarchical\");if(options.randomSeed!==undefined){this.initialRandomSeed=options.randomSeed}if(hierarchical.enabled===true){if(prevHierarchicalState===true){this.body.emitter.emit(\"refresh\",true)}if(hierarchical.direction===\"RL\"||hierarchical.direction===\"DU\"){if(hierarchical.levelSeparation>0){hierarchical.levelSeparation*=-1}}else{if(hierarchical.levelSeparation<0){hierarchical.levelSeparation*=-1}}this.setDirectionStrategy();this.body.emitter.emit(\"_resetHierarchicalLayout\");return this.adaptAllOptionsForHierarchicalLayout(allOptions)}else{if(prevHierarchicalState===true){this.body.emitter.emit(\"refresh\");return util.deepExtend(allOptions,this.optionsBackup)}}}return allOptions}},{key:\"adaptAllOptionsForHierarchicalLayout\",value:function adaptAllOptionsForHierarchicalLayout(allOptions){if(this.options.hierarchical.enabled===true){var backupPhysics=this.optionsBackup.physics;if(allOptions.physics===undefined||allOptions.physics===true){allOptions.physics={enabled:backupPhysics.enabled===undefined?true:backupPhysics.enabled,solver:\"hierarchicalRepulsion\"};backupPhysics.enabled=backupPhysics.enabled===undefined?true:backupPhysics.enabled;backupPhysics.solver=backupPhysics.solver||\"barnesHut\"}else if((0,_typeof3[\"default\"])(allOptions.physics)===\"object\"){backupPhysics.enabled=allOptions.physics.enabled===undefined?true:allOptions.physics.enabled;backupPhysics.solver=allOptions.physics.solver||\"barnesHut\";allOptions.physics.solver=\"hierarchicalRepulsion\"}else if(allOptions.physics!==false){backupPhysics.solver=\"barnesHut\";allOptions.physics={solver:\"hierarchicalRepulsion\"}}var type=this.direction.curveType();if(allOptions.edges===undefined){this.optionsBackup.edges={smooth:{enabled:true,type:\"dynamic\"}};allOptions.edges={smooth:false}}else if(allOptions.edges.smooth===undefined){this.optionsBackup.edges={smooth:{enabled:true,type:\"dynamic\"}};allOptions.edges.smooth=false}else{if(typeof allOptions.edges.smooth===\"boolean\"){this.optionsBackup.edges={smooth:allOptions.edges.smooth};allOptions.edges.smooth={enabled:allOptions.edges.smooth,type:type}}else{var smooth=allOptions.edges.smooth;if(smooth.type!==undefined&&smooth.type!==\"dynamic\"){type=smooth.type}this.optionsBackup.edges={smooth:smooth.enabled===undefined?true:smooth.enabled,type:smooth.type===undefined?\"dynamic\":smooth.type,roundness:smooth.roundness===undefined?.5:smooth.roundness,forceDirection:smooth.forceDirection===undefined?false:smooth.forceDirection};allOptions.edges.smooth={enabled:smooth.enabled===undefined?true:smooth.enabled,type:type,roundness:smooth.roundness===undefined?.5:smooth.roundness,forceDirection:smooth.forceDirection===undefined?false:smooth.forceDirection}}}this.body.emitter.emit(\"_forceDisableDynamicCurves\",type)}return allOptions}},{key:\"seededRandom\",value:function seededRandom(){var x=Math.sin(this.randomSeed++)*1e4;return x-Math.floor(x)}},{key:\"positionInitially\",value:function positionInitially(nodesArray){if(this.options.hierarchical.enabled!==true){this.randomSeed=this.initialRandomSeed;var radius=nodesArray.length+50;for(var i=0;i<nodesArray.length;i++){var node=nodesArray[i];var angle=2*Math.PI*this.seededRandom();if(node.x===undefined){node.x=radius*Math.cos(angle)}if(node.y===undefined){node.y=radius*Math.sin(angle)}}}}},{key:\"layoutNetwork\",value:function layoutNetwork(){if(this.options.hierarchical.enabled!==true&&this.options.improvedLayout===true){var indices=this.body.nodeIndices;var positionDefined=0;for(var i=0;i<indices.length;i++){var node=this.body.nodes[indices[i]];if(node.predefinedPosition===true){positionDefined+=1}}if(positionDefined<.5*indices.length){var MAX_LEVELS=10;var level=0;var clusterThreshold=150;var clusterOptions={clusterNodeProperties:{shape:\"ellipse\",label:\"\",group:\"\",font:{multi:false}},clusterEdgeProperties:{label:\"\",font:{multi:false},smooth:{enabled:false}}};if(indices.length>clusterThreshold){var startLength=indices.length;while(indices.length>clusterThreshold&&level<=MAX_LEVELS){level+=1;var before=indices.length;if(level%3===0){this.body.modules.clustering.clusterBridges(clusterOptions)}else{this.body.modules.clustering.clusterOutliers(clusterOptions)}var after=indices.length;if(before==after&&level%3!==0){this._declusterAll();this.body.emitter.emit(\"_layoutFailed\");console.info(\"This network could not be positioned by this version of the improved layout algorithm.\"+\" Please disable improvedLayout for better performance.\");return}}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*startLength)})}if(level>MAX_LEVELS){console.info(\"The clustering didn't succeed within the amount of interations allowed,\"+\" progressing with partial result.\")}this.body.modules.kamadaKawai.solve(indices,this.body.edgeIndices,true);this._shiftToCenter();var offset=70;for(var _i=0;_i<indices.length;_i++){var _node=this.body.nodes[indices[_i]];if(_node.predefinedPosition===false){_node.x+=(.5-this.seededRandom())*offset;_node.y+=(.5-this.seededRandom())*offset}}this._declusterAll();this.body.emitter.emit(\"_repositionBezierNodes\")}}}},{key:\"_shiftToCenter\",value:function _shiftToCenter(){var range=NetworkUtil.getRangeCore(this.body.nodes,this.body.nodeIndices);var center=NetworkUtil.findCenter(range);for(var i=0;i<this.body.nodeIndices.length;i++){var node=this.body.nodes[this.body.nodeIndices[i]];node.x-=center.x;node.y-=center.y}}},{key:\"_declusterAll\",value:function _declusterAll(){var clustersPresent=true;while(clustersPresent===true){clustersPresent=false;for(var i=0;i<this.body.nodeIndices.length;i++){if(this.body.nodes[this.body.nodeIndices[i]].isCluster===true){clustersPresent=true;this.body.modules.clustering.openCluster(this.body.nodeIndices[i],{},false)}}if(clustersPresent===true){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"getSeed\",value:function getSeed(){return this.initialRandomSeed}},{key:\"setupHierarchicalLayout\",value:function setupHierarchicalLayout(){if(this.options.hierarchical.enabled===true&&this.body.nodeIndices.length>0){var node=void 0,nodeId=void 0;var definedLevel=false;var undefinedLevel=false;this.lastNodeOnLevel={};this.hierarchical=new HierarchicalStatus;for(nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){node=this.body.nodes[nodeId];if(node.options.level!==undefined){definedLevel=true;this.hierarchical.levels[nodeId]=node.options.level}else{undefinedLevel=true}}}if(undefinedLevel===true&&definedLevel===true){throw new Error(\"To use the hierarchical layout, nodes require either no predefined levels\"+\" or levels have to be defined for all nodes.\")}else{if(undefinedLevel===true){var sortMethod=this.options.hierarchical.sortMethod;if(sortMethod===\"hubsize\"){this._determineLevelsByHubsize()}else if(sortMethod===\"directed\"){this._determineLevelsDirected()}else if(sortMethod===\"custom\"){this._determineLevelsCustomCallback()}}for(var _nodeId2 in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId2)){this.hierarchical.ensureLevel(_nodeId2)}}var distribution=this._getDistribution();this._generateMap();this._placeNodesByHierarchy(distribution);this._condenseHierarchy();this._shiftToCenter()}}}},{key:\"_condenseHierarchy\",value:function _condenseHierarchy(){var _this3=this;var stillShifting=false;var branches={};var shiftTrees=function shiftTrees(){var treeSizes=getTreeSizes();var shiftBy=0;for(var i=0;i<treeSizes.length-1;i++){var diff=treeSizes[i].max-treeSizes[i+1].min;shiftBy+=diff+_this3.options.hierarchical.treeSpacing;shiftTree(i+1,shiftBy)}};var shiftTree=function shiftTree(index,offset){var trees=_this3.hierarchical.trees;for(var nodeId in trees){if(trees.hasOwnProperty(nodeId)){if(trees[nodeId]===index){_this3.direction.shift(nodeId,offset)}}}};var getTreeSizes=function getTreeSizes(){var treeWidths=[];for(var i=0;i<_this3.hierarchical.numTrees();i++){treeWidths.push(_this3.direction.getTreeSize(i))}return treeWidths};var getBranchNodes=function getBranchNodes(source,map){if(map[source.id]){return}map[source.id]=true;if(_this3.hierarchical.childrenReference[source.id]){var children=_this3.hierarchical.childrenReference[source.id];if(children.length>0){for(var i=0;i<children.length;i++){getBranchNodes(_this3.body.nodes[children[i]],map)}}}};var getBranchBoundary=function getBranchBoundary(branchMap){var maxLevel=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1e9;var minSpace=1e9;var maxSpace=1e9;var min=1e9;var max=-1e9;for(var branchNode in branchMap){if(branchMap.hasOwnProperty(branchNode)){var node=_this3.body.nodes[branchNode];var level=_this3.hierarchical.levels[node.id];var position=_this3.direction.getPosition(node);var _getSpaceAroundNode2=_this3._getSpaceAroundNode(node,branchMap),_getSpaceAroundNode3=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode2,2),minSpaceNode=_getSpaceAroundNode3[0],maxSpaceNode=_getSpaceAroundNode3[1];minSpace=Math.min(minSpaceNode,minSpace);maxSpace=Math.min(maxSpaceNode,maxSpace);if(level<=maxLevel){min=Math.min(position,min);max=Math.max(position,max)}}}return[min,max,minSpace,maxSpace]};var getCollisionLevel=function getCollisionLevel(node1,node2){var maxLevel1=_this3.hierarchical.getMaxLevel(node1.id);var maxLevel2=_this3.hierarchical.getMaxLevel(node2.id);return Math.min(maxLevel1,maxLevel2)};var shiftElementsCloser=function shiftElementsCloser(callback,levels,centerParents){var hier=_this3.hierarchical;for(var i=0;i<levels.length;i++){var level=levels[i];var levelNodes=hier.distributionOrdering[level];if(levelNodes.length>1){for(var j=0;j<levelNodes.length-1;j++){var node1=levelNodes[j];var node2=levelNodes[j+1];if(hier.hasSameParent(node1,node2)&&hier.inSameSubNetwork(node1,node2)){callback(node1,node2,centerParents)}}}}};var branchShiftCallback=function branchShiftCallback(node1,node2){var centerParent=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var pos1=_this3.direction.getPosition(node1);var pos2=_this3.direction.getPosition(node2);var diffAbs=Math.abs(pos2-pos1);var nodeSpacing=_this3.options.hierarchical.nodeSpacing;if(diffAbs>nodeSpacing){var branchNodes1={};var branchNodes2={};getBranchNodes(node1,branchNodes1);getBranchNodes(node2,branchNodes2);var maxLevel=getCollisionLevel(node1,node2);var branchNodeBoundary1=getBranchBoundary(branchNodes1,maxLevel);var branchNodeBoundary2=getBranchBoundary(branchNodes2,maxLevel);var max1=branchNodeBoundary1[1];var min2=branchNodeBoundary2[0];var minSpace2=branchNodeBoundary2[2];var diffBranch=Math.abs(max1-min2);if(diffBranch>nodeSpacing){var offset=max1-min2+nodeSpacing;if(offset<-minSpace2+nodeSpacing){offset=-minSpace2+nodeSpacing}if(offset<0){_this3._shiftBlock(node2.id,offset);stillShifting=true;if(centerParent===true)_this3._centerParent(node2)}}}};var minimizeEdgeLength=function minimizeEdgeLength(iterations,node){var nodeId=node.id;var allEdges=node.edges;var nodeLevel=_this3.hierarchical.levels[node.id];var C2=_this3.options.hierarchical.levelSeparation*_this3.options.hierarchical.levelSeparation;var referenceNodes={};var aboveEdges=[];for(var i=0;i<allEdges.length;i++){var edge=allEdges[i];if(edge.toId!=edge.fromId){var otherNode=edge.toId==nodeId?edge.from:edge.to;referenceNodes[allEdges[i].id]=otherNode;if(_this3.hierarchical.levels[otherNode.id]<nodeLevel){aboveEdges.push(edge)}}}var getFx=function getFx(point,edges){var sum=0;for(var _i2=0;_i2<edges.length;_i2++){if(referenceNodes[edges[_i2].id]!==undefined){var a=_this3.direction.getPosition(referenceNodes[edges[_i2].id])-point;sum+=a/Math.sqrt(a*a+C2)}}return sum};var getDFx=function getDFx(point,edges){var sum=0;for(var _i3=0;_i3<edges.length;_i3++){if(referenceNodes[edges[_i3].id]!==undefined){var a=_this3.direction.getPosition(referenceNodes[edges[_i3].id])-point;sum-=C2*Math.pow(a*a+C2,-1.5)}}return sum};var getGuess=function getGuess(iterations,edges){var guess=_this3.direction.getPosition(node);var guessMap={};for(var _i4=0;_i4<iterations;_i4++){var fx=getFx(guess,edges);var dfx=getDFx(guess,edges);var limit=40;var ratio=Math.max(-limit,Math.min(limit,Math.round(fx/dfx)));guess=guess-ratio;if(guessMap[guess]!==undefined){break}guessMap[guess]=_i4}return guess};var moveBranch=function moveBranch(guess){var nodePosition=_this3.direction.getPosition(node);if(branches[node.id]===undefined){var branchNodes={};getBranchNodes(node,branchNodes);branches[node.id]=branchNodes}var branchBoundary=getBranchBoundary(branches[node.id]);var minSpaceBranch=branchBoundary[2];var maxSpaceBranch=branchBoundary[3];var diff=guess-nodePosition;var branchOffset=0;if(diff>0){branchOffset=Math.min(diff,maxSpaceBranch-_this3.options.hierarchical.nodeSpacing)}else if(diff<0){branchOffset=-Math.min(-diff,minSpaceBranch-_this3.options.hierarchical.nodeSpacing)}if(branchOffset!=0){_this3._shiftBlock(node.id,branchOffset);stillShifting=true}};var moveNode=function moveNode(guess){var nodePosition=_this3.direction.getPosition(node);var _getSpaceAroundNode4=_this3._getSpaceAroundNode(node),_getSpaceAroundNode5=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode4,2),minSpace=_getSpaceAroundNode5[0],maxSpace=_getSpaceAroundNode5[1];var diff=guess-nodePosition;var newPosition=nodePosition;if(diff>0){newPosition=Math.min(nodePosition+(maxSpace-_this3.options.hierarchical.nodeSpacing),guess)}else if(diff<0){newPosition=Math.max(nodePosition-(minSpace-_this3.options.hierarchical.nodeSpacing),guess)}if(newPosition!==nodePosition){_this3.direction.setPosition(node,newPosition);stillShifting=true}};var guess=getGuess(iterations,aboveEdges);moveBranch(guess);guess=getGuess(iterations,allEdges);moveNode(guess)};var minimizeEdgeLengthBottomUp=function minimizeEdgeLengthBottomUp(iterations){var levels=_this3.hierarchical.getLevels();levels=levels.reverse();for(var i=0;i<iterations;i++){stillShifting=false;for(var j=0;j<levels.length;j++){var level=levels[j];var levelNodes=_this3.hierarchical.distributionOrdering[level];for(var k=0;k<levelNodes.length;k++){minimizeEdgeLength(1e3,levelNodes[k])}}if(stillShifting!==true){break}}};var shiftBranchesCloserBottomUp=function shiftBranchesCloserBottomUp(iterations){var levels=_this3.hierarchical.getLevels();levels=levels.reverse();for(var i=0;i<iterations;i++){stillShifting=false;shiftElementsCloser(branchShiftCallback,levels,true);if(stillShifting!==true){break}}};var centerAllParents=function centerAllParents(){for(var nodeId in _this3.body.nodes){if(_this3.body.nodes.hasOwnProperty(nodeId))_this3._centerParent(_this3.body.nodes[nodeId])}};var centerAllParentsBottomUp=function centerAllParentsBottomUp(){var levels=_this3.hierarchical.getLevels()\n;levels=levels.reverse();for(var i=0;i<levels.length;i++){var level=levels[i];var levelNodes=_this3.hierarchical.distributionOrdering[level];for(var j=0;j<levelNodes.length;j++){_this3._centerParent(levelNodes[j])}}};if(this.options.hierarchical.blockShifting===true){shiftBranchesCloserBottomUp(5);centerAllParents()}if(this.options.hierarchical.edgeMinimization===true){minimizeEdgeLengthBottomUp(20)}if(this.options.hierarchical.parentCentralization===true){centerAllParentsBottomUp()}shiftTrees()}},{key:\"_getSpaceAroundNode\",value:function _getSpaceAroundNode(node,map){var useMap=true;if(map===undefined){useMap=false}var level=this.hierarchical.levels[node.id];if(level!==undefined){var index=this.hierarchical.distributionIndex[node.id];var position=this.direction.getPosition(node);var ordering=this.hierarchical.distributionOrdering[level];var minSpace=1e9;var maxSpace=1e9;if(index!==0){var prevNode=ordering[index-1];if(useMap===true&&map[prevNode.id]===undefined||useMap===false){var prevPos=this.direction.getPosition(prevNode);minSpace=position-prevPos}}if(index!=ordering.length-1){var nextNode=ordering[index+1];if(useMap===true&&map[nextNode.id]===undefined||useMap===false){var nextPos=this.direction.getPosition(nextNode);maxSpace=Math.min(maxSpace,nextPos-position)}}return[minSpace,maxSpace]}else{return[0,0]}}},{key:\"_centerParent\",value:function _centerParent(node){if(this.hierarchical.parentReference[node.id]){var parents=this.hierarchical.parentReference[node.id];for(var i=0;i<parents.length;i++){var parentId=parents[i];var parentNode=this.body.nodes[parentId];var children=this.hierarchical.childrenReference[parentId];if(children!==undefined){var newPosition=this._getCenterPosition(children);var position=this.direction.getPosition(parentNode);var _getSpaceAroundNode6=this._getSpaceAroundNode(parentNode),_getSpaceAroundNode7=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode6,2),minSpace=_getSpaceAroundNode7[0],maxSpace=_getSpaceAroundNode7[1];var diff=position-newPosition;if(diff<0&&Math.abs(diff)<maxSpace-this.options.hierarchical.nodeSpacing||diff>0&&Math.abs(diff)<minSpace-this.options.hierarchical.nodeSpacing){this.direction.setPosition(parentNode,newPosition)}}}}}},{key:\"_placeNodesByHierarchy\",value:function _placeNodesByHierarchy(distribution){this.positionedNodes={};for(var level in distribution){if(distribution.hasOwnProperty(level)){var nodeArray=(0,_keys2[\"default\"])(distribution[level]);nodeArray=this._indexArrayToNodes(nodeArray);this.direction.sort(nodeArray);var handledNodeCount=0;for(var i=0;i<nodeArray.length;i++){var node=nodeArray[i];if(this.positionedNodes[node.id]===undefined){var spacing=this.options.hierarchical.nodeSpacing;var pos=spacing*handledNodeCount;if(handledNodeCount>0){pos=this.direction.getPosition(nodeArray[i-1])+spacing}this.direction.setPosition(node,pos,level);this._validatePositionAndContinue(node,level,pos);handledNodeCount++}}}}}},{key:\"_placeBranchNodes\",value:function _placeBranchNodes(parentId,parentLevel){var childRef=this.hierarchical.childrenReference[parentId];if(childRef===undefined){return}var childNodes=[];for(var i=0;i<childRef.length;i++){childNodes.push(this.body.nodes[childRef[i]])}this.direction.sort(childNodes);for(var _i5=0;_i5<childNodes.length;_i5++){var childNode=childNodes[_i5];var childNodeLevel=this.hierarchical.levels[childNode.id];if(childNodeLevel>parentLevel&&this.positionedNodes[childNode.id]===undefined){var spacing=this.options.hierarchical.nodeSpacing;var pos=void 0;if(_i5===0){pos=this.direction.getPosition(this.body.nodes[parentId])}else{pos=this.direction.getPosition(childNodes[_i5-1])+spacing}this.direction.setPosition(childNode,pos,childNodeLevel);this._validatePositionAndContinue(childNode,childNodeLevel,pos)}else{return}}var center=this._getCenterPosition(childNodes);this.direction.setPosition(this.body.nodes[parentId],center,parentLevel)}},{key:\"_validatePositionAndContinue\",value:function _validatePositionAndContinue(node,level,pos){if(!this.hierarchical.isTree)return;if(this.lastNodeOnLevel[level]!==undefined){var previousPos=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[level]]);if(pos-previousPos<this.options.hierarchical.nodeSpacing){var diff=previousPos+this.options.hierarchical.nodeSpacing-pos;var sharedParent=this._findCommonParent(this.lastNodeOnLevel[level],node.id);this._shiftBlock(sharedParent.withChild,diff)}}this.lastNodeOnLevel[level]=node.id;this.positionedNodes[node.id]=true;this._placeBranchNodes(node.id,level)}},{key:\"_indexArrayToNodes\",value:function _indexArrayToNodes(idArray){var array=[];for(var i=0;i<idArray.length;i++){array.push(this.body.nodes[idArray[i]])}return array}},{key:\"_getDistribution\",value:function _getDistribution(){var distribution={};var nodeId=void 0,node=void 0;for(nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){node=this.body.nodes[nodeId];var level=this.hierarchical.levels[nodeId]===undefined?0:this.hierarchical.levels[nodeId];this.direction.fix(node,level);if(distribution[level]===undefined){distribution[level]={}}distribution[level][nodeId]=node}}return distribution}},{key:\"_getActiveEdges\",value:function _getActiveEdges(node){var _this4=this;var result=[];util.forEach(node.edges,function(edge){if(_this4.body.edgeIndices.indexOf(edge.id)!==-1){result.push(edge)}});return result}},{key:\"_getHubSizes\",value:function _getHubSizes(){var _this5=this;var hubSizes={};var nodeIds=this.body.nodeIndices;util.forEach(nodeIds,function(nodeId){var node=_this5.body.nodes[nodeId];var hubSize=_this5._getActiveEdges(node).length;hubSizes[hubSize]=true});var result=[];util.forEach(hubSizes,function(size){result.push(Number(size))});result.sort(function(a,b){return b-a});return result}},{key:\"_determineLevelsByHubsize\",value:function _determineLevelsByHubsize(){var _this6=this;var levelDownstream=function levelDownstream(nodeA,nodeB){_this6.hierarchical.levelDownstream(nodeA,nodeB)};var hubSizes=this._getHubSizes();var _loop=function _loop(i){var hubSize=hubSizes[i];if(hubSize===0)return\"break\";util.forEach(_this6.body.nodeIndices,function(nodeId){var node=_this6.body.nodes[nodeId];if(hubSize===_this6._getActiveEdges(node).length){_this6._crawlNetwork(levelDownstream,nodeId)}})};for(var i=0;i<hubSizes.length;++i){var _ret=_loop(i);if(_ret===\"break\")break}}},{key:\"_determineLevelsCustomCallback\",value:function _determineLevelsCustomCallback(){var _this7=this;var minLevel=1e5;var customCallback=function customCallback(nodeA,nodeB,edge){};var levelByDirection=function levelByDirection(nodeA,nodeB,edge){var levelA=_this7.hierarchical.levels[nodeA.id];if(levelA===undefined){levelA=_this7.hierarchical.levels[nodeA.id]=minLevel}var diff=customCallback(NetworkUtil.cloneOptions(nodeA,\"node\"),NetworkUtil.cloneOptions(nodeB,\"node\"),NetworkUtil.cloneOptions(edge,\"edge\"));_this7.hierarchical.levels[nodeB.id]=levelA+diff};this._crawlNetwork(levelByDirection);this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:\"_determineLevelsDirected\",value:function _determineLevelsDirected(){var _this8=this;var minLevel=1e4;var isBidirectional=function isBidirectional(edge){util.forEach(_this8.body.edges,function(otherEdge){if(otherEdge.toId===edge.fromId&&otherEdge.fromId===edge.toId){return true}});return false};var levelByDirection=function levelByDirection(nodeA,nodeB,edge){var levelA=_this8.hierarchical.levels[nodeA.id];var levelB=_this8.hierarchical.levels[nodeB.id];if(isBidirectional(edge)&&levelA!==undefined&&levelB!==undefined){return}if(levelA===undefined){levelA=_this8.hierarchical.levels[nodeA.id]=minLevel}if(edge.toId==nodeB.id){_this8.hierarchical.levels[nodeB.id]=levelA+1}else{_this8.hierarchical.levels[nodeB.id]=levelA-1}};this._crawlNetwork(levelByDirection);this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:\"_generateMap\",value:function _generateMap(){var _this9=this;var fillInRelations=function fillInRelations(parentNode,childNode){if(_this9.hierarchical.levels[childNode.id]>_this9.hierarchical.levels[parentNode.id]){_this9.hierarchical.addRelation(parentNode.id,childNode.id)}};this._crawlNetwork(fillInRelations);this.hierarchical.checkIfTree()}},{key:\"_crawlNetwork\",value:function _crawlNetwork(){var _this10=this;var callback=arguments.length>0&&arguments[0]!==undefined?arguments[0]:function(){};var startingNodeId=arguments[1];var progress={};var crawler=function crawler(node,tree){if(progress[node.id]===undefined){_this10.hierarchical.setTreeIndex(node,tree);progress[node.id]=true;var childNode=void 0;var edges=_this10._getActiveEdges(node);for(var i=0;i<edges.length;i++){var edge=edges[i];if(edge.connected===true){if(edge.toId==node.id){childNode=edge.from}else{childNode=edge.to}if(node.id!=childNode.id){callback(node,childNode,edge);crawler(childNode,tree)}}}}};if(startingNodeId===undefined){var treeIndex=0;for(var i=0;i<this.body.nodeIndices.length;i++){var nodeId=this.body.nodeIndices[i];if(progress[nodeId]===undefined){var node=this.body.nodes[nodeId];crawler(node,treeIndex);treeIndex+=1}}}else{var _node2=this.body.nodes[startingNodeId];if(_node2===undefined){console.error(\"Node not found:\",startingNodeId);return}crawler(_node2)}}},{key:\"_shiftBlock\",value:function _shiftBlock(parentId,diff){var _this11=this;var progress={};var shifter=function shifter(parentId){if(progress[parentId]){return}progress[parentId]=true;_this11.direction.shift(parentId,diff);var childRef=_this11.hierarchical.childrenReference[parentId];if(childRef!==undefined){for(var i=0;i<childRef.length;i++){shifter(childRef[i])}}};shifter(parentId)}},{key:\"_findCommonParent\",value:function _findCommonParent(childA,childB){var _this12=this;var parents={};var iterateParents=function iterateParents(parents,child){var parentRef=_this12.hierarchical.parentReference[child];if(parentRef!==undefined){for(var i=0;i<parentRef.length;i++){var parent=parentRef[i];parents[parent]=true;iterateParents(parents,parent)}}};var findParent=function findParent(parents,child){var parentRef=_this12.hierarchical.parentReference[child];if(parentRef!==undefined){for(var i=0;i<parentRef.length;i++){var parent=parentRef[i];if(parents[parent]!==undefined){return{foundParent:parent,withChild:child}}var branch=findParent(parents,parent);if(branch.foundParent!==null){return branch}}}return{foundParent:null,withChild:child}};iterateParents(parents,childA);return findParent(parents,childB)}},{key:\"setDirectionStrategy\",value:function setDirectionStrategy(){var isVertical=this.options.hierarchical.direction===\"UD\"||this.options.hierarchical.direction===\"DU\";if(isVertical){this.direction=new VerticalStrategy(this)}else{this.direction=new HorizontalStrategy(this)}}},{key:\"_getCenterPosition\",value:function _getCenterPosition(childNodes){var minPos=1e9;var maxPos=-1e9;for(var i=0;i<childNodes.length;i++){var childNode=void 0;if(childNodes[i].id!==undefined){childNode=childNodes[i]}else{var childNodeId=childNodes[i];childNode=this.body.nodes[childNodeId]}var position=this.direction.getPosition(childNode);minPos=Math.min(minPos,position);maxPos=Math.max(maxPos,position)}return.5*(minPos+maxPos)}}]);return LayoutEngine}();exports[\"default\"]=LayoutEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.VerticalStrategy=exports.HorizontalStrategy=undefined;var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var DirectionInterface=function(){function DirectionInterface(){(0,_classCallCheck3[\"default\"])(this,DirectionInterface)}(0,_createClass3[\"default\"])(DirectionInterface,[{key:\"abstract\",value:function abstract(){throw new Error(\"Can't instantiate abstract class!\")}},{key:\"fake_use\",value:function fake_use(){}},{key:\"curveType\",value:function curveType(){return this.abstract()}},{key:\"getPosition\",value:function getPosition(node){this.fake_use(node);return this.abstract()}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;this.fake_use(node,position,level);this.abstract()}},{key:\"getTreeSize\",value:function getTreeSize(index){this.fake_use(index);return this.abstract()}},{key:\"sort\",value:function sort(nodeArray){this.fake_use(nodeArray);this.abstract()}},{key:\"fix\",value:function fix(node,level){this.fake_use(node,level);this.abstract()}},{key:\"shift\",value:function shift(nodeId,diff){this.fake_use(nodeId,diff);this.abstract()}}]);return DirectionInterface}();var VerticalStrategy=function(_DirectionInterface){(0,_inherits3[\"default\"])(VerticalStrategy,_DirectionInterface);function VerticalStrategy(layout){(0,_classCallCheck3[\"default\"])(this,VerticalStrategy);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(VerticalStrategy.__proto__||(0,_getPrototypeOf2[\"default\"])(VerticalStrategy)).call(this));_this.layout=layout;return _this}(0,_createClass3[\"default\"])(VerticalStrategy,[{key:\"curveType\",value:function curveType(){return\"horizontal\"}},{key:\"getPosition\",value:function getPosition(node){return node.x}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(level!==undefined){this.layout.hierarchical.addToOrdering(node,level)}node.x=position}},{key:\"getTreeSize\",value:function getTreeSize(index){var res=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,index);return{min:res.min_x,max:res.max_x}}},{key:\"sort\",value:function sort(nodeArray){nodeArray.sort(function(a,b){if(a.x===undefined||b.x===undefined)return 0;return a.x-b.x})}},{key:\"fix\",value:function fix(node,level){node.y=this.layout.options.hierarchical.levelSeparation*level;node.options.fixed.y=true}},{key:\"shift\",value:function shift(nodeId,diff){this.layout.body.nodes[nodeId].x+=diff}}]);return VerticalStrategy}(DirectionInterface);var HorizontalStrategy=function(_DirectionInterface2){(0,_inherits3[\"default\"])(HorizontalStrategy,_DirectionInterface2);function HorizontalStrategy(layout){(0,_classCallCheck3[\"default\"])(this,HorizontalStrategy);var _this2=(0,_possibleConstructorReturn3[\"default\"])(this,(HorizontalStrategy.__proto__||(0,_getPrototypeOf2[\"default\"])(HorizontalStrategy)).call(this));_this2.layout=layout;return _this2}(0,_createClass3[\"default\"])(HorizontalStrategy,[{key:\"curveType\",value:function curveType(){return\"vertical\"}},{key:\"getPosition\",value:function getPosition(node){return node.y}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(level!==undefined){this.layout.hierarchical.addToOrdering(node,level)}node.y=position}},{key:\"getTreeSize\",value:function getTreeSize(index){var res=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,index);return{min:res.min_y,max:res.max_y}}},{key:\"sort\",value:function sort(nodeArray){nodeArray.sort(function(a,b){if(a.y===undefined||b.y===undefined)return 0;return a.y-b.y})}},{key:\"fix\",value:function fix(node,level){node.x=this.layout.options.hierarchical.levelSeparation*level;node.options.fixed.x=true}},{key:\"shift\",value:function shift(nodeId,diff){this.layout.body.nodes[nodeId].y+=diff}}]);return HorizontalStrategy}(DirectionInterface);exports.HorizontalStrategy=HorizontalStrategy;exports.VerticalStrategy=VerticalStrategy},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var ManipulationSystem=function(){function ManipulationSystem(body,canvas,selectionHandler){var _this=this;(0,_classCallCheck3[\"default\"])(this,ManipulationSystem);this.body=body;this.canvas=canvas;this.selectionHandler=selectionHandler;this.editMode=false;this.manipulationDiv=undefined;this.editModeDiv=undefined;this.closeDiv=undefined;this.manipulationHammers=[];this.temporaryUIFunctions={};this.temporaryEventFunctions=[];this.touchTime=0;this.temporaryIds={nodes:[],edges:[]};this.guiEnabled=false;this.inMode=false;this.selectedControlNode=undefined;this.options={};this.defaultOptions={enabled:false,initiallyActive:false,addNode:true,addEdge:true,editNode:undefined,editEdge:true,deleteNode:true,deleteEdge:true,controlNodeStyle:{shape:\"dot\",size:6,color:{background:\"#ff0000\",border:\"#3c3c3c\",highlight:{background:\"#07f968\",border:\"#3c3c3c\"}},borderWidth:2,borderWidthSelected:2}};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"destroy\",function(){_this._clean()});this.body.emitter.on(\"_dataChanged\",this._restore.bind(this));this.body.emitter.on(\"_resetData\",this._restore.bind(this))}(0,_createClass3[\"default\"])(ManipulationSystem,[{key:\"_restore\",value:function _restore(){if(this.inMode!==false){if(this.options.initiallyActive===true){this.enableEditMode()}else{this.disableEditMode()}}}},{key:\"setOptions\",value:function setOptions(options,allOptions,globalOptions){if(allOptions!==undefined){if(allOptions.locale!==undefined){this.options.locale=allOptions.locale}else{this.options.locale=globalOptions.locale}if(allOptions.locales!==undefined){this.options.locales=allOptions.locales}else{this.options.locales=globalOptions.locales}}if(options!==undefined){if(typeof options===\"boolean\"){this.options.enabled=options}else{this.options.enabled=true;util.deepExtend(this.options,options)}if(this.options.initiallyActive===true){this.editMode=true}this._setup()}}},{key:\"toggleEditMode\",value:function toggleEditMode(){if(this.editMode===true){this.disableEditMode()}else{this.enableEditMode()}}},{key:\"enableEditMode\",value:function enableEditMode(){this.editMode=true;this._clean();if(this.guiEnabled===true){this.manipulationDiv.style.display=\"block\";this.closeDiv.style.display=\"block\";this.editModeDiv.style.display=\"none\";this.showManipulatorToolbar()}}},{key:\"disableEditMode\",value:function disableEditMode(){this.editMode=false;this._clean();if(this.guiEnabled===true){this.manipulationDiv.style.display=\"none\";this.closeDiv.style.display=\"none\";this.editModeDiv.style.display=\"block\";this._createEditButton()}}},{key:\"showManipulatorToolbar\",value:function showManipulatorToolbar(){this._clean();this.manipulationDOM={};if(this.guiEnabled===true){this.editMode=true;this.manipulationDiv.style.display=\"block\";this.closeDiv.style.display=\"block\";var selectedNodeCount=this.selectionHandler._getSelectedNodeCount();var selectedEdgeCount=this.selectionHandler._getSelectedEdgeCount();var selectedTotalCount=selectedNodeCount+selectedEdgeCount;var locale=this.options.locales[this.options.locale];var needSeperator=false;if(this.options.addNode!==false){this._createAddNodeButton(locale);needSeperator=true}if(this.options.addEdge!==false){if(needSeperator===true){this._createSeperator(1)}else{needSeperator=true}this._createAddEdgeButton(locale)}if(selectedNodeCount===1&&typeof this.options.editNode===\"function\"){if(needSeperator===true){this._createSeperator(2)}else{needSeperator=true}this._createEditNodeButton(locale)}else if(selectedEdgeCount===1&&selectedNodeCount===0&&this.options.editEdge!==false){if(needSeperator===true){this._createSeperator(3)}else{needSeperator=true}this._createEditEdgeButton(locale)}if(selectedTotalCount!==0){if(selectedNodeCount>0&&this.options.deleteNode!==false){if(needSeperator===true){this._createSeperator(4)}this._createDeleteButton(locale)}else if(selectedNodeCount===0&&this.options.deleteEdge!==false){if(needSeperator===true){this._createSeperator(4)}this._createDeleteButton(locale)}}this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this));this._temporaryBindEvent(\"select\",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit(\"_redraw\")}},{key:\"addNodeMode\",value:function addNodeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"addNode\";if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"addDescription\"]||this.options.locales[\"en\"][\"addDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent(\"click\",this._performAddNode.bind(this))}},{key:\"editNode\",value:function editNode(){var _this2=this;if(this.editMode!==true){this.enableEditMode()}this._clean();var node=this.selectionHandler._getSelectedNode();if(node!==undefined){this.inMode=\"editNode\";if(typeof this.options.editNode===\"function\"){if(node.isCluster!==true){var data=util.deepExtend({},node.options,false);data.x=node.x;data.y=node.y;if(this.options.editNode.length===2){this.options.editNode(data,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this2.inMode===\"editNode\"){_this2.body.data.nodes.getDataSet().update(finalizedData)}_this2.showManipulatorToolbar()})}else{throw new Error(\"The function for edit does not support two arguments (data, callback)\")}}else{alert(this.options.locales[this.options.locale][\"editClusterError\"]||this.options.locales[\"en\"][\"editClusterError\"])}}else{throw new Error(\"No function has been configured to handle the editing of nodes.\")}}else{this.showManipulatorToolbar()}}},{key:\"addEdgeMode\",value:function addEdgeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"addEdge\";if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"edgeDescription\"]||this.options.locales[\"en\"][\"edgeDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI(\"onTouch\",this._handleConnect.bind(this));this._temporaryBindUI(\"onDragEnd\",this._finishConnect.bind(this));this._temporaryBindUI(\"onDrag\",this._dragControlNode.bind(this));this._temporaryBindUI(\"onRelease\",this._finishConnect.bind(this));this._temporaryBindUI(\"onDragStart\",this._dragStartEdge.bind(this));this._temporaryBindUI(\"onHold\",function(){})}},{key:\"editEdgeMode\",value:function editEdgeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"editEdge\";if((0,_typeof3[\"default\"])(this.options.editEdge)===\"object\"&&typeof this.options.editEdge.editWithoutDrag===\"function\"){this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0];if(this.edgeBeingEditedId!==undefined){var edge=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(edge.from,edge.to);return}}if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"editEdgeDescription\"]||this.options.locales[\"en\"][\"editEdgeDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0];if(this.edgeBeingEditedId!==undefined){var _edge=this.body.edges[this.edgeBeingEditedId];var controlNodeFrom=this._getNewTargetNode(_edge.from.x,_edge.from.y);var controlNodeTo=this._getNewTargetNode(_edge.to.x,_edge.to.y);this.temporaryIds.nodes.push(controlNodeFrom.id);this.temporaryIds.nodes.push(controlNodeTo.id);this.body.nodes[controlNodeFrom.id]=controlNodeFrom;this.body.nodeIndices.push(controlNodeFrom.id);this.body.nodes[controlNodeTo.id]=controlNodeTo;this.body.nodeIndices.push(controlNodeTo.id);this._temporaryBindUI(\"onTouch\",this._controlNodeTouch.bind(this));this._temporaryBindUI(\"onTap\",function(){});this._temporaryBindUI(\"onHold\",function(){});this._temporaryBindUI(\"onDragStart\",this._controlNodeDragStart.bind(this));this._temporaryBindUI(\"onDrag\",this._controlNodeDrag.bind(this));this._temporaryBindUI(\"onDragEnd\",this._controlNodeDragEnd.bind(this));this._temporaryBindUI(\"onMouseMove\",function(){});this._temporaryBindEvent(\"beforeDrawing\",function(ctx){var positions=_edge.edgeType.findBorderPositions(ctx);if(controlNodeFrom.selected===false){controlNodeFrom.x=positions.from.x;controlNodeFrom.y=positions.from.y}if(controlNodeTo.selected===false){controlNodeTo.x=positions.to.x;controlNodeTo.y=positions.to.y}});this.body.emitter.emit(\"_redraw\")}else{this.showManipulatorToolbar()}}},{key:\"deleteSelected\",value:function deleteSelected(){var _this3=this;if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"delete\";var selectedNodes=this.selectionHandler.getSelectedNodes();var selectedEdges=this.selectionHandler.getSelectedEdges();var deleteFunction=undefined;if(selectedNodes.length>0){for(var i=0;i<selectedNodes.length;i++){if(this.body.nodes[selectedNodes[i]].isCluster===true){alert(this.options.locales[this.options.locale][\"deleteClusterError\"]||this.options.locales[\"en\"][\"deleteClusterError\"]);return}}if(typeof this.options.deleteNode===\"function\"){deleteFunction=this.options.deleteNode}}else if(selectedEdges.length>0){if(typeof this.options.deleteEdge===\"function\"){deleteFunction=this.options.deleteEdge}}if(typeof deleteFunction===\"function\"){var data={nodes:selectedNodes,edges:selectedEdges};if(deleteFunction.length===2){deleteFunction(data,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this3.inMode===\"delete\"){_this3.body.data.edges.getDataSet().remove(finalizedData.edges);_this3.body.data.nodes.getDataSet().remove(finalizedData.nodes);_this3.body.emitter.emit(\"startSimulation\");_this3.showManipulatorToolbar()}else{_this3.body.emitter.emit(\"startSimulation\");_this3.showManipulatorToolbar()}})}else{throw new Error(\"The function for delete does not support two arguments (data, callback)\")}}else{this.body.data.edges.getDataSet().remove(selectedEdges);this.body.data.nodes.getDataSet().remove(selectedNodes);this.body.emitter.emit(\"startSimulation\");this.showManipulatorToolbar()}}},{key:\"_setup\",value:function _setup(){if(this.options.enabled===true){this.guiEnabled=true;this._createWrappers();if(this.editMode===false){this._createEditButton()}else{this.showManipulatorToolbar()}}else{this._removeManipulationDOM();this.guiEnabled=false}}},{key:\"_createWrappers\",value:function _createWrappers(){if(this.manipulationDiv===undefined){this.manipulationDiv=document.createElement(\"div\");this.manipulationDiv.className=\"vis-manipulation\";if(this.editMode===true){this.manipulationDiv.style.display=\"block\"}else{this.manipulationDiv.style.display=\"none\"}this.canvas.frame.appendChild(this.manipulationDiv)}if(this.editModeDiv===undefined){this.editModeDiv=document.createElement(\"div\");this.editModeDiv.className=\"vis-edit-mode\";if(this.editMode===true){this.editModeDiv.style.display=\"none\"}else{this.editModeDiv.style.display=\"block\"}this.canvas.frame.appendChild(this.editModeDiv)}if(this.closeDiv===undefined){this.closeDiv=document.createElement(\"div\");this.closeDiv.className=\"vis-close\";this.closeDiv.style.display=this.manipulationDiv.style.display;this.canvas.frame.appendChild(this.closeDiv)}}},{key:\"_getNewTargetNode\",value:function _getNewTargetNode(x,y){var controlNodeStyle=util.deepExtend({},this.options.controlNodeStyle);controlNodeStyle.id=\"targetNode\"+util.randomUUID();controlNodeStyle.hidden=false;controlNodeStyle.physics=false;controlNodeStyle.x=x;controlNodeStyle.y=y;var node=this.body.functions.createNode(controlNodeStyle);node.shape.boundingBox={left:x,right:x,top:y,bottom:y};return node}},{key:\"_createEditButton\",value:function _createEditButton(){this._clean();this.manipulationDOM={};util.recursiveDOMDelete(this.editModeDiv);var locale=this.options.locales[this.options.locale];var button=this._createButton(\"editMode\",\"vis-button vis-edit vis-edit-mode\",locale[\"edit\"]||this.options.locales[\"en\"][\"edit\"]);this.editModeDiv.appendChild(button);this._bindHammerToDiv(button,this.toggleEditMode.bind(this))}},{key:\"_clean\",value:function _clean(){this.inMode=false;if(this.guiEnabled===true){util.recursiveDOMDelete(this.editModeDiv);util.recursiveDOMDelete(this.manipulationDiv);this._cleanManipulatorHammers()}this._cleanupTemporaryNodesAndEdges();this._unbindTemporaryUIs();this._unbindTemporaryEvents();this.body.emitter.emit(\"restorePhysics\")}},{key:\"_cleanManipulatorHammers\",value:function _cleanManipulatorHammers(){if(this.manipulationHammers.length!=0){for(var i=0;i<this.manipulationHammers.length;i++){this.manipulationHammers[i].destroy()}this.manipulationHammers=[]}}},{key:\"_removeManipulationDOM\",value:function _removeManipulationDOM(){this._clean();util.recursiveDOMDelete(this.manipulationDiv);util.recursiveDOMDelete(this.editModeDiv);util.recursiveDOMDelete(this.closeDiv);if(this.manipulationDiv){this.canvas.frame.removeChild(this.manipulationDiv)}if(this.editModeDiv){this.canvas.frame.removeChild(this.editModeDiv)}if(this.closeDiv){this.canvas.frame.removeChild(this.closeDiv)}this.manipulationDiv=undefined;this.editModeDiv=undefined;this.closeDiv=undefined}},{key:\"_createSeperator\",value:function _createSeperator(){var index=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;this.manipulationDOM[\"seperatorLineDiv\"+index]=document.createElement(\"div\");this.manipulationDOM[\"seperatorLineDiv\"+index].className=\"vis-separator-line\";this.manipulationDiv.appendChild(this.manipulationDOM[\"seperatorLineDiv\"+index])}},{key:\"_createAddNodeButton\",value:function _createAddNodeButton(locale){var button=this._createButton(\"addNode\",\"vis-button vis-add\",locale[\"addNode\"]||this.options.locales[\"en\"][\"addNode\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.addNodeMode.bind(this))}},{key:\"_createAddEdgeButton\",value:function _createAddEdgeButton(locale){var button=this._createButton(\"addEdge\",\"vis-button vis-connect\",locale[\"addEdge\"]||this.options.locales[\"en\"][\"addEdge\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.addEdgeMode.bind(this))}},{key:\"_createEditNodeButton\",value:function _createEditNodeButton(locale){var button=this._createButton(\"editNode\",\"vis-button vis-edit\",locale[\"editNode\"]||this.options.locales[\"en\"][\"editNode\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.editNode.bind(this))}},{key:\"_createEditEdgeButton\",value:function _createEditEdgeButton(locale){var button=this._createButton(\"editEdge\",\"vis-button vis-edit\",locale[\"editEdge\"]||this.options.locales[\"en\"][\"editEdge\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.editEdgeMode.bind(this))}},{key:\"_createDeleteButton\",value:function _createDeleteButton(locale){var deleteBtnClass;if(this.options.rtl){deleteBtnClass=\"vis-button vis-delete-rtl\"}else{deleteBtnClass=\"vis-button vis-delete\"}var button=this._createButton(\"delete\",deleteBtnClass,locale[\"del\"]||this.options.locales[\"en\"][\"del\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.deleteSelected.bind(this))}},{key:\"_createBackButton\",value:function _createBackButton(locale){\nvar button=this._createButton(\"back\",\"vis-button vis-back\",locale[\"back\"]||this.options.locales[\"en\"][\"back\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.showManipulatorToolbar.bind(this))}},{key:\"_createButton\",value:function _createButton(id,className,label){var labelClassName=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\"vis-label\";this.manipulationDOM[id+\"Div\"]=document.createElement(\"div\");this.manipulationDOM[id+\"Div\"].className=className;this.manipulationDOM[id+\"Label\"]=document.createElement(\"div\");this.manipulationDOM[id+\"Label\"].className=labelClassName;this.manipulationDOM[id+\"Label\"].innerHTML=label;this.manipulationDOM[id+\"Div\"].appendChild(this.manipulationDOM[id+\"Label\"]);return this.manipulationDOM[id+\"Div\"]}},{key:\"_createDescription\",value:function _createDescription(label){this.manipulationDiv.appendChild(this._createButton(\"description\",\"vis-button vis-none\",label))}},{key:\"_temporaryBindEvent\",value:function _temporaryBindEvent(event,newFunction){this.temporaryEventFunctions.push({event:event,boundFunction:newFunction});this.body.emitter.on(event,newFunction)}},{key:\"_temporaryBindUI\",value:function _temporaryBindUI(UIfunctionName,newFunction){if(this.body.eventListeners[UIfunctionName]!==undefined){this.temporaryUIFunctions[UIfunctionName]=this.body.eventListeners[UIfunctionName];this.body.eventListeners[UIfunctionName]=newFunction}else{throw new Error(\"This UI function does not exist. Typo? You tried: \"+UIfunctionName+\" possible are: \"+(0,_stringify2[\"default\"])((0,_keys2[\"default\"])(this.body.eventListeners)))}}},{key:\"_unbindTemporaryUIs\",value:function _unbindTemporaryUIs(){for(var functionName in this.temporaryUIFunctions){if(this.temporaryUIFunctions.hasOwnProperty(functionName)){this.body.eventListeners[functionName]=this.temporaryUIFunctions[functionName];delete this.temporaryUIFunctions[functionName]}}this.temporaryUIFunctions={}}},{key:\"_unbindTemporaryEvents\",value:function _unbindTemporaryEvents(){for(var i=0;i<this.temporaryEventFunctions.length;i++){var eventName=this.temporaryEventFunctions[i].event;var boundFunction=this.temporaryEventFunctions[i].boundFunction;this.body.emitter.off(eventName,boundFunction)}this.temporaryEventFunctions=[]}},{key:\"_bindHammerToDiv\",value:function _bindHammerToDiv(domElement,boundFunction){var hammer=new Hammer(domElement,{});hammerUtil.onTouch(hammer,boundFunction);this.manipulationHammers.push(hammer)}},{key:\"_cleanupTemporaryNodesAndEdges\",value:function _cleanupTemporaryNodesAndEdges(){for(var i=0;i<this.temporaryIds.edges.length;i++){this.body.edges[this.temporaryIds.edges[i]].disconnect();delete this.body.edges[this.temporaryIds.edges[i]];var indexTempEdge=this.body.edgeIndices.indexOf(this.temporaryIds.edges[i]);if(indexTempEdge!==-1){this.body.edgeIndices.splice(indexTempEdge,1)}}for(var _i=0;_i<this.temporaryIds.nodes.length;_i++){delete this.body.nodes[this.temporaryIds.nodes[_i]];var indexTempNode=this.body.nodeIndices.indexOf(this.temporaryIds.nodes[_i]);if(indexTempNode!==-1){this.body.nodeIndices.splice(indexTempNode,1)}}this.temporaryIds={nodes:[],edges:[]}}},{key:\"_controlNodeTouch\",value:function _controlNodeTouch(event){this.selectionHandler.unselectAll();this.lastTouch=this.body.functions.getPointer(event.center);this.lastTouch.translation=util.extend({},this.body.view.translation)}},{key:\"_controlNodeDragStart\",value:function _controlNodeDragStart(event){var pointer=this.lastTouch;var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var from=this.body.nodes[this.temporaryIds.nodes[0]];var to=this.body.nodes[this.temporaryIds.nodes[1]];var edge=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=undefined;var fromSelect=from.isOverlappingWith(pointerObj);var toSelect=to.isOverlappingWith(pointerObj);if(fromSelect===true){this.selectedControlNode=from;edge.edgeType.from=from}else if(toSelect===true){this.selectedControlNode=to;edge.edgeType.to=to}if(this.selectedControlNode!==undefined){this.selectionHandler.selectObject(this.selectedControlNode)}this.body.emitter.emit(\"_redraw\")}},{key:\"_controlNodeDrag\",value:function _controlNodeDrag(event){this.body.emitter.emit(\"disablePhysics\");var pointer=this.body.functions.getPointer(event.center);var pos=this.canvas.DOMtoCanvas(pointer);if(this.selectedControlNode!==undefined){this.selectedControlNode.x=pos.x;this.selectedControlNode.y=pos.y}else{var diffX=pointer.x-this.lastTouch.x;var diffY=pointer.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+diffX,y:this.lastTouch.translation.y+diffY}}this.body.emitter.emit(\"_redraw\")}},{key:\"_controlNodeDragEnd\",value:function _controlNodeDragEnd(event){var pointer=this.body.functions.getPointer(event.center);var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var edge=this.body.edges[this.edgeBeingEditedId];if(this.selectedControlNode===undefined){return}this.selectionHandler.unselectAll();var overlappingNodeIds=this.selectionHandler._getAllNodesOverlappingWith(pointerObj);var node=undefined;for(var i=overlappingNodeIds.length-1;i>=0;i--){if(overlappingNodeIds[i]!==this.selectedControlNode.id){node=this.body.nodes[overlappingNodeIds[i]];break}}if(node!==undefined&&this.selectedControlNode!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{var from=this.body.nodes[this.temporaryIds.nodes[0]];if(this.selectedControlNode.id===from.id){this._performEditEdge(node.id,edge.to.id)}else{this._performEditEdge(edge.from.id,node.id)}}}else{edge.updateEdgeType();this.body.emitter.emit(\"restorePhysics\")}this.body.emitter.emit(\"_redraw\")}},{key:\"_handleConnect\",value:function _handleConnect(event){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(event.center);this.lastTouch.translation=util.extend({},this.body.view.translation);var pointer=this.lastTouch;var node=this.selectionHandler.getNodeAt(pointer);if(node!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{var targetNode=this._getNewTargetNode(node.x,node.y);this.body.nodes[targetNode.id]=targetNode;this.body.nodeIndices.push(targetNode.id);var connectionEdge=this.body.functions.createEdge({id:\"connectionEdge\"+util.randomUUID(),from:node.id,to:targetNode.id,physics:false,smooth:{enabled:true,type:\"continuous\",roundness:.5}});this.body.edges[connectionEdge.id]=connectionEdge;this.body.edgeIndices.push(connectionEdge.id);this.temporaryIds.nodes.push(targetNode.id);this.temporaryIds.edges.push(connectionEdge.id)}}this.touchTime=(new Date).valueOf()}}},{key:\"_dragControlNode\",value:function _dragControlNode(event){var pointer=this.body.functions.getPointer(event.center);if(this.temporaryIds.nodes[0]!==undefined){var targetNode=this.body.nodes[this.temporaryIds.nodes[0]];targetNode.x=this.canvas._XconvertDOMtoCanvas(pointer.x);targetNode.y=this.canvas._YconvertDOMtoCanvas(pointer.y);this.body.emitter.emit(\"_redraw\")}else{var diffX=pointer.x-this.lastTouch.x;var diffY=pointer.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+diffX,y:this.lastTouch.translation.y+diffY}}}},{key:\"_finishConnect\",value:function _finishConnect(event){var pointer=this.body.functions.getPointer(event.center);var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var connectFromId=undefined;if(this.temporaryIds.edges[0]!==undefined){connectFromId=this.body.edges[this.temporaryIds.edges[0]].fromId}var overlappingNodeIds=this.selectionHandler._getAllNodesOverlappingWith(pointerObj);var node=undefined;for(var i=overlappingNodeIds.length-1;i>=0;i--){if(this.temporaryIds.nodes.indexOf(overlappingNodeIds[i])===-1){node=this.body.nodes[overlappingNodeIds[i]];break}}this._cleanupTemporaryNodesAndEdges();if(node!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{if(this.body.nodes[connectFromId]!==undefined&&this.body.nodes[node.id]!==undefined){this._performAddEdge(connectFromId,node.id)}}}this.body.emitter.emit(\"_redraw\")}},{key:\"_dragStartEdge\",value:function _dragStartEdge(event){var pointer=this.lastTouch;this.selectionHandler._generateClickEvent(\"dragStart\",event,pointer,undefined,true)}},{key:\"_performAddNode\",value:function _performAddNode(clickData){var _this4=this;var defaultData={id:util.randomUUID(),x:clickData.pointer.canvas.x,y:clickData.pointer.canvas.y,label:\"new\"};if(typeof this.options.addNode===\"function\"){if(this.options.addNode.length===2){this.options.addNode(defaultData,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this4.inMode===\"addNode\"){_this4.body.data.nodes.getDataSet().add(finalizedData);_this4.showManipulatorToolbar()}})}else{this.showManipulatorToolbar();throw new Error(\"The function for add does not support two arguments (data,callback)\")}}else{this.body.data.nodes.getDataSet().add(defaultData);this.showManipulatorToolbar()}}},{key:\"_performAddEdge\",value:function _performAddEdge(sourceNodeId,targetNodeId){var _this5=this;var defaultData={from:sourceNodeId,to:targetNodeId};if(typeof this.options.addEdge===\"function\"){if(this.options.addEdge.length===2){this.options.addEdge(defaultData,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this5.inMode===\"addEdge\"){_this5.body.data.edges.getDataSet().add(finalizedData);_this5.selectionHandler.unselectAll();_this5.showManipulatorToolbar()}})}else{throw new Error(\"The function for connect does not support two arguments (data,callback)\")}}else{this.body.data.edges.getDataSet().add(defaultData);this.selectionHandler.unselectAll();this.showManipulatorToolbar()}}},{key:\"_performEditEdge\",value:function _performEditEdge(sourceNodeId,targetNodeId){var _this6=this;var defaultData={id:this.edgeBeingEditedId,from:sourceNodeId,to:targetNodeId,label:this.body.data.edges._data[this.edgeBeingEditedId].label};var eeFunct=this.options.editEdge;if((typeof eeFunct===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(eeFunct))===\"object\"){eeFunct=eeFunct.editWithoutDrag}if(typeof eeFunct===\"function\"){if(eeFunct.length===2){eeFunct(defaultData,function(finalizedData){if(finalizedData===null||finalizedData===undefined||_this6.inMode!==\"editEdge\"){_this6.body.edges[defaultData.id].updateEdgeType();_this6.body.emitter.emit(\"_redraw\");_this6.showManipulatorToolbar()}else{_this6.body.data.edges.getDataSet().update(finalizedData);_this6.selectionHandler.unselectAll();_this6.showManipulatorToolbar()}})}else{throw new Error(\"The function for edit does not support two arguments (data, callback)\")}}else{this.body.data.edges.getDataSet().update(defaultData);this.selectionHandler.unselectAll();this.showManipulatorToolbar()}}}]);return ManipulationSystem}();exports[\"default\"]=ManipulationSystem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _FloydWarshall=__webpack_require__(239);var _FloydWarshall2=_interopRequireDefault(_FloydWarshall);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var KamadaKawai=function(){function KamadaKawai(body,edgeLength,edgeStrength){(0,_classCallCheck3[\"default\"])(this,KamadaKawai);this.body=body;this.springLength=edgeLength;this.springConstant=edgeStrength;this.distanceSolver=new _FloydWarshall2[\"default\"]}(0,_createClass3[\"default\"])(KamadaKawai,[{key:\"setOptions\",value:function setOptions(options){if(options){if(options.springLength){this.springLength=options.springLength}if(options.springConstant){this.springConstant=options.springConstant}}}},{key:\"solve\",value:function solve(nodesArray,edgesArray){var ignoreClusters=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var D_matrix=this.distanceSolver.getDistances(this.body,nodesArray,edgesArray);this._createL_matrix(D_matrix);this._createK_matrix(D_matrix);this._createE_matrix();var threshold=.01;var innerThreshold=1;var iterations=0;var maxIterations=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3));var maxInnerIterations=5;var maxEnergy=1e9;var highE_nodeId=0,dE_dx=0,dE_dy=0,delta_m=0,subIterations=0;while(maxEnergy>threshold&&iterations<maxIterations){iterations+=1;var _getHighestEnergyNode2=this._getHighestEnergyNode(ignoreClusters);var _getHighestEnergyNode3=(0,_slicedToArray3[\"default\"])(_getHighestEnergyNode2,4);highE_nodeId=_getHighestEnergyNode3[0];maxEnergy=_getHighestEnergyNode3[1];dE_dx=_getHighestEnergyNode3[2];dE_dy=_getHighestEnergyNode3[3];delta_m=maxEnergy;subIterations=0;while(delta_m>innerThreshold&&subIterations<maxInnerIterations){subIterations+=1;this._moveNode(highE_nodeId,dE_dx,dE_dy);var _getEnergy2=this._getEnergy(highE_nodeId);var _getEnergy3=(0,_slicedToArray3[\"default\"])(_getEnergy2,3);delta_m=_getEnergy3[0];dE_dx=_getEnergy3[1];dE_dy=_getEnergy3[2]}}}},{key:\"_getHighestEnergyNode\",value:function _getHighestEnergyNode(ignoreClusters){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var maxEnergy=0;var maxEnergyNodeId=nodesArray[0];var dE_dx_max=0,dE_dy_max=0;for(var nodeIdx=0;nodeIdx<nodesArray.length;nodeIdx++){var m=nodesArray[nodeIdx];if(nodes[m].predefinedPosition===false||nodes[m].isCluster===true&&ignoreClusters===true||nodes[m].options.fixed.x===true||nodes[m].options.fixed.y===true){var _getEnergy4=this._getEnergy(m),_getEnergy5=(0,_slicedToArray3[\"default\"])(_getEnergy4,3),delta_m=_getEnergy5[0],dE_dx=_getEnergy5[1],dE_dy=_getEnergy5[2];if(maxEnergy<delta_m){maxEnergy=delta_m;maxEnergyNodeId=m;dE_dx_max=dE_dx;dE_dy_max=dE_dy}}}return[maxEnergyNodeId,maxEnergy,dE_dx_max,dE_dy_max]}},{key:\"_getEnergy\",value:function _getEnergy(m){var _E_sums$m=(0,_slicedToArray3[\"default\"])(this.E_sums[m],2),dE_dx=_E_sums$m[0],dE_dy=_E_sums$m[1];var delta_m=Math.sqrt(Math.pow(dE_dx,2)+Math.pow(dE_dy,2));return[delta_m,dE_dx,dE_dy]}},{key:\"_moveNode\",value:function _moveNode(m,dE_dx,dE_dy){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var d2E_dx2=0;var d2E_dxdy=0;var d2E_dy2=0;var x_m=nodes[m].x;var y_m=nodes[m].y;var km=this.K_matrix[m];var lm=this.L_matrix[m];for(var iIdx=0;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var x_i=nodes[i].x;var y_i=nodes[i].y;var kmat=km[i];var lmat=lm[i];var denominator=1/Math.pow(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2),1.5);d2E_dx2+=kmat*(1-lmat*Math.pow(y_m-y_i,2)*denominator);d2E_dxdy+=kmat*(lmat*(x_m-x_i)*(y_m-y_i)*denominator);d2E_dy2+=kmat*(1-lmat*Math.pow(x_m-x_i,2)*denominator)}}var A=d2E_dx2,B=d2E_dxdy,C=dE_dx,D=d2E_dy2,E=dE_dy;var dy=(C/A+E/B)/(B/A-D/B);var dx=-(B*dy+C)/A;nodes[m].x+=dx;nodes[m].y+=dy;this._updateE_matrix(m)}},{key:\"_createL_matrix\",value:function _createL_matrix(D_matrix){var nodesArray=this.body.nodeIndices;var edgeLength=this.springLength;this.L_matrix=[];for(var i=0;i<nodesArray.length;i++){this.L_matrix[nodesArray[i]]={};for(var j=0;j<nodesArray.length;j++){this.L_matrix[nodesArray[i]][nodesArray[j]]=edgeLength*D_matrix[nodesArray[i]][nodesArray[j]]}}}},{key:\"_createK_matrix\",value:function _createK_matrix(D_matrix){var nodesArray=this.body.nodeIndices;var edgeStrength=this.springConstant;this.K_matrix=[];for(var i=0;i<nodesArray.length;i++){this.K_matrix[nodesArray[i]]={};for(var j=0;j<nodesArray.length;j++){this.K_matrix[nodesArray[i]][nodesArray[j]]=edgeStrength*Math.pow(D_matrix[nodesArray[i]][nodesArray[j]],-2)}}}},{key:\"_createE_matrix\",value:function _createE_matrix(){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;this.E_matrix={};this.E_sums={};for(var mIdx=0;mIdx<nodesArray.length;mIdx++){this.E_matrix[nodesArray[mIdx]]=[]}for(var _mIdx=0;_mIdx<nodesArray.length;_mIdx++){var m=nodesArray[_mIdx];var x_m=nodes[m].x;var y_m=nodes[m].y;var dE_dx=0;var dE_dy=0;for(var iIdx=_mIdx;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var x_i=nodes[i].x;var y_i=nodes[i].y;var denominator=1/Math.sqrt(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2));this.E_matrix[m][iIdx]=[this.K_matrix[m][i]*(x_m-x_i-this.L_matrix[m][i]*(x_m-x_i)*denominator),this.K_matrix[m][i]*(y_m-y_i-this.L_matrix[m][i]*(y_m-y_i)*denominator)];this.E_matrix[i][_mIdx]=this.E_matrix[m][iIdx];dE_dx+=this.E_matrix[m][iIdx][0];dE_dy+=this.E_matrix[m][iIdx][1]}}this.E_sums[m]=[dE_dx,dE_dy]}}},{key:\"_updateE_matrix\",value:function _updateE_matrix(m){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var colm=this.E_matrix[m];var kcolm=this.K_matrix[m];var lcolm=this.L_matrix[m];var x_m=nodes[m].x;var y_m=nodes[m].y;var dE_dx=0;var dE_dy=0;for(var iIdx=0;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var cell=colm[iIdx];var oldDx=cell[0];var oldDy=cell[1];var x_i=nodes[i].x;var y_i=nodes[i].y;var denominator=1/Math.sqrt(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2));var dx=kcolm[i]*(x_m-x_i-lcolm[i]*(x_m-x_i)*denominator);var dy=kcolm[i]*(y_m-y_i-lcolm[i]*(y_m-y_i)*denominator);colm[iIdx]=[dx,dy];dE_dx+=dx;dE_dy+=dy;var sum=this.E_sums[i];sum[0]+=dx-oldDx;sum[1]+=dy-oldDy}}this.E_sums[m]=[dE_dx,dE_dy]}}]);return KamadaKawai}();exports[\"default\"]=KamadaKawai},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var FloydWarshall=function(){function FloydWarshall(){(0,_classCallCheck3[\"default\"])(this,FloydWarshall)}(0,_createClass3[\"default\"])(FloydWarshall,[{key:\"getDistances\",value:function getDistances(body,nodesArray,edgesArray){var D_matrix={};var edges=body.edges;for(var i=0;i<nodesArray.length;i++){var node=nodesArray[i];var cell={};D_matrix[node]=cell;for(var j=0;j<nodesArray.length;j++){cell[nodesArray[j]]=i==j?0:1e9}}for(var _i=0;_i<edgesArray.length;_i++){var edge=edges[edgesArray[_i]];if(edge.connected===true&&D_matrix[edge.fromId]!==undefined&&D_matrix[edge.toId]!==undefined){D_matrix[edge.fromId][edge.toId]=1;D_matrix[edge.toId][edge.fromId]=1}}var nodeCount=nodesArray.length;for(var k=0;k<nodeCount;k++){var knode=nodesArray[k];var kcolm=D_matrix[knode];for(var _i2=0;_i2<nodeCount-1;_i2++){var inode=nodesArray[_i2];var icolm=D_matrix[inode];for(var _j=_i2+1;_j<nodeCount;_j++){var jnode=nodesArray[_j];var jcolm=D_matrix[jnode];var val=Math.min(icolm[jnode],icolm[knode]+kcolm[jnode]);icolm[jnode]=val;jcolm[inode]=val}}}return D_matrix}}]);return FloydWarshall}();exports[\"default\"]=FloydWarshall}])});\n",
"type": "application/javascript",
"module-type": "library"
}
}
}
{
"tiddlers": {
"$:/plugins/flibbles/relink/js/bulkops.js": {
"text": "/*\\\nmodule-type: startup\n\nReplaces the relinkTiddler defined in $:/core/modules/wiki-bulkops.js\n\nThis is a startup instead of a wikimethods module-type because it's the only\nway to ensure this runs after the old relinkTiddler method is applied.\n\n\\*/\n(function(){\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nexports.name = \"redefine-relinkTiddler\";\nexports.synchronous = true;\n// load-modules is when wikimethods are applied in\n// ``$:/core/modules/startup/load-modules.js``\nexports.after = ['load-modules'];\n\nexports.startup = function() {\n\t$tw.Wiki.prototype.relinkTiddler = relinkTiddler;\n};\n\n/** Walks through all relinkable tiddlers and relinks them.\n * This replaces the existing function in core Tiddlywiki.\n */\nfunction relinkTiddler(fromTitle, toTitle, options) {\n\tvar self = this;\n\tvar failures = this.eachRelinkableTiddler(\n\t\t\tfromTitle,\n\t\t\ttoTitle,\n\t\t\toptions,\n\t\t\tfunction(changes, tiddler) {\n\t\tvar newTiddler = new $tw.Tiddler(tiddler,changes,self.getModificationFields())\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\tself.addTiddler(newTiddler);\n\t});\n\tif (failures.length > 0) {\n\t\tlanguage.reportFailures(failures);\n\t}\n};\n\n})();\n",
"module-type": "startup",
"title": "$:/plugins/flibbles/relink/js/bulkops.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/errors.js": {
"text": "/*\\\nmodule-type: library\n\nThis is the exception that gets thrown when a relink is impossible.\n (Or the hoops we'd have to go through to make it work are more than the user\n would want Relink to do, like create new tiddlers)\n\\*/\n\nfunction RelinkError() {};\nRelinkError.prototype = Object.create(Error);\nexports.RelinkError = RelinkError;\n\nfunction CannotRelinkError() { };\nCannotRelinkError.prototype = new RelinkError();\nexports.CannotRelinkError = CannotRelinkError\n\nfunction CannotFindMacroDefError(macroName) { this.macroName = macroName; };\nCannotFindMacroDefError.prototype = new RelinkError();\nexports.CannotFindMacroDefError = CannotFindMacroDefError;\n//Cannot find definition for ${macroName}. Make sure your macro whitelist is configured properly, and that you're macro is globally defined, or defined in all the places it's used.\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/errors.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/language.js": {
"text": "/*\\\nmodule-type: library\n\nThis handles all logging and alerts Relink emits.\n\n\\*/\n\nexports.logRelink = function(message, args, options) {\n\tif (options.quiet) {\n\t\treturn;\n\t}\n\tvar raw = exports.log[message];\n\tif (raw) {\n\t\t// This is cheap, but whatevs. To do a proper\n\t\t// rendering would require working through a wiki\n\t\t// object. Too heavy weight for log messages.\n\t\tvar msg = raw.replace(/<<([^<>]+)>>/g, function(match, key) {\n\t\t\treturn args[key] || (\"<<\"+key+\">>\");\n\t\t});\n\t\tif (raw.indexOf('%c') >= 0) {\n\t\t\t// Doing a little bit of bold so the user sees\n\t\t\t// where we had to jump through hoops.\n\t\t\tconsole.log(\"%c\" + msg, \"\", \"font-weight: bold;\");\n\t\t} else {\n\t\t\tconsole.log(msg);\n\t\t}\n\t} else {\n\t\tconsole.warn(\"No such log message: \" + message);\n\t}\n};\n\nexports.getString = function(title, options) {\n\ttitle = \"$:/plugins/flibbles/relink/language/\" + title;\n\treturn options.wiki.renderTiddler(\"text/plain\", title,\n\t {variables: options.variables});\n};\n\nexports.failureAlert = \"Relink was unable to update the following tiddlers due to the complexity of the title:\";\n\nexports.reportFailures = function(failureList) {\n\tvar reportList = failureList.map(function(f) {return \"\\n \" + f});\n\tconsole.warn(exports.failureAlert + reportList);\n};\n\nexports.log = {\n\t\"attribute\": \"Renaming '<<from>>' to '<<to>>' in <<<element>> <<attribute>> /> attribute of tiddler '<<tiddler>>'\",\n\t\"attribute-placeholder\": \"Renaming '<<from>>' to '<<to>>' in <<<element>> <<attribute>> /> attribute of tiddler '<<tiddler>>' %cby creating placeholder macros\",\n\t\"field\": \"Renaming '<<from>>' to '<<to>>' in <<field>> of tiddler '<<tiddler>>'\",\n\t\"filteredtransclude\": \"Renaming '<<from>>' to '<<to>>' in filtered transclusion of tiddler '<<tiddler>>'\",\n\t\"filteredtransclude-placeholder\": \"Renaming '<<from>>' to '<<to>>' in filtered transclusion of tiddler '<<tiddler>>' %cby creating placeholder macros\",\n\t\"filteredtransclude-placeholder-widget\": \"Renaming '<<from>>' to '<<to>>' in filtered transclusion of tiddler '<<tiddler>>' %cby converting it into a widget and creating placeholder macros\",\n\t\"filteredtransclude-widget\": \"Renaming '<<from>>' to '<<to>>' in filtered transclusion of tiddler '<<tiddler>>' %cby converting it into a widget\",\n\t\"import\": \"Renaming '<<from>>' to '<<to>>' in \\\\import filter of tiddler '<<tiddler>>'\",\n\t\"import-placeholder\": \"Renaming '<<from>>' to '<<to>>' in \\\\import filter of tiddler '<<tiddler>>' %cby creating placeholder macros\",\n\t\"macrodef\": \"Renaming '<<from>>' to '<<to>>' in <<macro>> definition of tiddler '<<tiddler>>'\",\n\t\"macrodef-placeholder\": \"Renaming '<<from>>' to '<<to>>' in <<macro>> definition of tiddler '<<tiddler>>' %cby creating more placeholder macros\",\n\t\"prettylink\": \"Renaming '<<from>>' to '<<to>>' in prettylink of tiddler '<<tiddler>>'\",\n\t\"prettylink-placeholder\": \"Renaming '<<from>>' to '<<to>>' in prettylink of tiddler '<<tiddler>>' %cby converting it into a widget and creating placeholder macros\",\n\t\"prettylink-widget\": \"Renaming '<<from>>' to '<<to>>' in prettylink of tiddler '<<tiddler>>' %cby converting it into a widget\",\n\t\"transclude\": \"Renaming '<<from>>' to '<<to>>' in transclusion of tiddler '<<tiddler>>'\",\n\t\"transclude-placeholder\": \"Renaming '<<from>>' to '<<to>>' in transclusion of tiddler '<<tiddler>>' %cby converting it into a widget and creating placeholder macros\",\n\t\"transclude-widget\": \"Renaming '<<from>>' to '<<to>>' in transclusion of tiddler '<<tiddler>>' %cby converting it into a widget\",\n\t\"wikilink\": \"Renaming '<<from>>' to '<<to>>' in CamelCase link of tiddler '<<tiddler>>'\",\n\t\"wikilink-placeholder\": \"Renaming '<<from>>' to '<<to>>' in CamelCase link of tiddler '<<tiddler>>' %cby converting it into a widget and creating placeholder macros\",\n\t\"wikilink-pretty\": \"Renaming '<<from>>' to '<<to>>' in CamelCase link of tiddler '<<tiddler>>' %cby converting it into a prettylink\"\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/language.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/settings.js": {
"text": "/*\\\nmodule-type: library\n\nThis handles the fetching and distribution of relink settings.\n\n\\*/\n\nvar fieldTypes = Object.create(null);\n\n$tw.modules.forEachModuleOfType(\"relinkfieldtype\", function(title, exports) {\n\tfieldTypes[exports.name] = exports;\n\t// For legacy reasons, some of the field types can go by other names\n\tif (exports.aliases) {\n\t\t$tw.utils.each(exports.aliases, function(alias) {\n\t\t\tfieldTypes[alias] = exports;\n\t\t});\n\t}\n});\n\n/**Returns a specific relinker.\n * This is useful for wikitext rules which need to parse a filter or a list\n */\nexports.getRelinker = function(name) {\n\treturn fieldTypes[name];\n};\n\nexports.getAttributes = function(options) {\n\treturn getSettings(options).attributes;\n};\n\nexports.getFields = function(options) {\n\treturn getSettings(options).fields;\n};\n\nexports.getMacros = function(options) {\n\treturn getSettings(options).macros;\n};\n\nexports.getOperators = function(options) {\n\treturn getSettings(options).operators;\n};\n\n/**Factories define methods that create settings given config tiddlers.\n * for factory method 'example', it will be called once for each:\n * \"$:/config/flibbles/relink/example/...\" tiddler that exists.\n * the argument \"key\" will be set to the contents of \"...\"\n *\n * The reason I build relink settings in this convoluted way is to minimize\n * the number of times tiddlywiki has to run through EVERY tiddler looking\n * for relink config tiddlers.\n *\n * Also, by exporting \"factories\", anyone who extends relink can patch in\n * their own factory methods to create settings that are generated exactly\n * once per rename.\n */\nexports.factories = {\n\tattributes: function(attributes, tiddler, key) {\n\t\tvar relinker = fieldTypes[tiddler.fields.text];\n\t\tif (relinker) {\n\t\t\tvar elem = root(key);\n\t\t\tvar attr = key.substr(elem.length+1);\n\t\t\tattributes[elem] = attributes[elem] || Object.create(null);\n\t\t\tattributes[elem][attr] = relinker;\n\t\t}\n\t},\n\tfields: function(fields, tiddler, name) {\n\t\tvar relinker = fieldTypes[tiddler.fields.text];\n\t\tif (relinker) {\n\t\t\tfields[name] = relinker;\n\t\t}\n\t},\n\tmacros: function(macros, tiddler, key) {\n\t\tvar relinker = fieldTypes[tiddler.fields.text];\n\t\tif (relinker) {\n\t\t\t// We take the last index, not the first, because macro\n\t\t\t// parameters can't have slashes, but macroNames can.\n\t\t\tvar name = dir(key);\n\t\t\tvar arg = key.substr(name.length+1);\n\t\t\tmacros[name] = macros[name] || Object.create(null);\n\t\t\tmacros[name][arg] = relinker;\n\t\t}\n\t},\n\toperators: function(operators, tiddler, name) {\n\t\tvar relinker = fieldTypes[tiddler.fields.text];\n\t\tif (relinker) {\n\t\t\toperators[name] = relinker;\n\t\t}\n\t}\n};\n\n/**We're caching the generated settings inside of options. Not exactly how\n * options was meant to be used, but it's fiiiiine.\n * The wiki global cache isn't a great place, because it'll get cleared many\n * times during a bulk relinking operation, and we can't recalculate this every\n * time without exploding a rename operation's time.\n * options works great. It only lasts just as long as the rename.\n * No longer, no shorter.\n */\nfunction getSettings(options) {\n\tvar secretCache = \"__relink_settings\";\n\tvar cache = options[secretCache];\n\tif (cache === undefined) {\n\t\tcache = options[secretCache] = compileSettings(options.wiki);\n\t}\n\treturn cache;\n};\n\nfunction compileSettings(wiki) {\n\tvar prefix = \"$:/config/flibbles/relink/\";\n\tvar settings = Object.create(null);\n\tfor (var name in exports.factories) {\n\t\tsettings[name] = Object.create(null);\n\t}\n\twiki.eachShadowPlusTiddlers(function(tiddler, title) {\n\t\tif (title.substr(0, prefix.length) === prefix) {\n\t\t\tvar remainder = title.substr(prefix.length);\n\t\t\tvar category = root(remainder);\n\t\t\tvar factory = exports.factories[category];\n\t\t\tif (factory) {\n\t\t\t\tvar name = remainder.substr(category.length+1);\n\t\t\t\tfactory(settings[category], tiddler, name);\n\t\t\t}\n\t\t}\n\t});\n\treturn settings;\n};\n\n/* Returns first bit of a path. path/to/tiddler -> path\n */\nfunction root(string) {\n\tvar index = string.indexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n};\n\n/* Returns all but the last bit of a path. path/to/tiddler -> path/to\n */\nfunction dir(string) {\n\tvar index = string.lastIndexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n}\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/settings.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/wikimethods.js": {
"text": "/*\\\nmodule-type: wikimethod\n\nIntroduces some utility methods used by Relink.\n\n\\*/\n\nvar errors = require('$:/plugins/flibbles/relink/js/errors');\n\nvar relinkOperations = Object.create(null);\n$tw.modules.applyMethods('relinkoperator', relinkOperations);\n\n/**Walks through all non-shadow tiddlers and sees which ones need to be relinked\n *\n * For each one, calls method on it with arguments (changes, tiddler, title)\n * Returns a list of tiddlers it would fail to update.\n */\nexports.eachRelinkableTiddler = function(fromTitle, toTitle, options, method) {\n\tvar data = this.getRelinkableTiddlers(fromTitle, toTitle, options);\n\tfor (var title in data.changes) {\n\t\tmethod(data.changes[title], this.getTiddler(title), title);\n\t}\n\treturn data.failures;\n};\n\n/** Returns a pair like this,\n * { changes: {...}, failures: [] }\n */\nexports.getRelinkableTiddlers = function(fromTitle, toTitle, options) {\n\tvar cache = this.getGlobalCache(\"relink-\"+fromTitle, function() {\n\t\treturn Object.create(null);\n\t});\n\tif (!cache[toTitle]) {\n\t\tcache[toTitle] = getFreshRelinkableTiddlers(this, fromTitle, toTitle, options);\n\t}\n\treturn cache[toTitle];\n};\n\nfunction getFreshRelinkableTiddlers(wiki, fromTitle, toTitle, options) {\n\toptions = options || {};\n\toptions.wiki = options.wiki || wiki;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\tvar failures = [];\n\tvar changeList = Object.create(null);\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tvar toUpdate = getRelinkFilter(wiki);\n\t\tvar tiddlerList = toUpdate.call(wiki); // no source or widget\n\t\tfor (var i = 0; i < tiddlerList.length; i++) {\n\t\t\tvar title = tiddlerList[i];\n\t\t\tvar tiddler = wiki.getTiddler(title);\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(tiddler\n\t\t\t&& !tiddler.fields[\"plugin-type\"]\n\t\t\t&& tiddler.fields.type !== \"application/javascript\") {\n\t\t\t\ttry {\n\t\t\t\t\tvar changes = Object.create(null);\n\t\t\t\t\tfor (var operation in relinkOperations) {\n\t\t\t\t\t\trelinkOperations[operation](tiddler, fromTitle, toTitle, changes, options);\n\t\t\t\t\t}\n\t\t\t\t\t// If any fields changed, update tiddler\n\t\t\t\t\tif(Object.keys(changes).length > 0) {\n\t\t\t\t\t\tchangeList[title] = changes;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (e instanceof errors.RelinkError) {\n\t\t\t\t\t\tfailures.push(title);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Should we test for instanceof Error instead?: yes\n\t\t\t\t\t\t// Does that work in the testing environment?: no\n\t\t\t\t\t\tif (e.message) {\n\t\t\t\t\t\t\te.message = e.message + \"\\nWhen relinking '\" + title + \"'\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn {changes: changeList, failures: failures};\n};\n\nfunction getRelinkFilter(wiki) {\n\tvar toUpdate = \"$:/config/flibbles/relink/to-update\";\n\treturn wiki.getCacheForTiddler(toUpdate, \"relink-toUpdate\", function() {\n\t\tvar tiddler = wiki.getTiddler(toUpdate);\n\t\tif (tiddler) {\n\t\t\tvar filter = wiki.compileFilter(tiddler.fields.text);\n\t\t\treturn filter;\n\t\t} else {\n\t\t\treturn wiki.allTitles;\n\t\t}\n\t});\n};\n\n/**Returns a list of tiddlers that would be renamed by a relink operations.\n */\nexports.relinkTiddlerDryRun = function(fromTitle, toTitle, options) {\n\tvar results = [];\n\tthis.eachRelinkableTiddler(\n\t\t\tfromTitle,\n\t\t\ttoTitle,\n\t\t\toptions,\n\t\t\tfunction(changes, tiddler, title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\nvar ImportVariablesWidget = require(\"$:/core/modules/widgets/importvariables.js\").importvariables;\n\nexports.relinkGlobalMacros = function() {\n\tif (!this._relinkWidget) {\n\t\tvar importWidget = this.relinkGenerateVariableWidget( \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\");\n\t\tthis.addEventListener(\"change\", function(changes) {\n\t\t\timportWidget.refresh(changes);\n\t\t});\n\t\tthis._relinkWidget = importWidget;\n\t}\n\tvar rtn = this._relinkWidget;\n\twhile (rtn.children.length > 0) {\n\t\trtn = rtn.children[0];\n\t}\n\treturn rtn;\n};\n\nexports.relinkGenerateVariableWidget = function(filter, parent) {\n\tvar treeNode = { attributes: {\n\t\t\"filter\": {\n\t\t\ttype: \"string\",\n\t\t\tvalue: filter\n\t\t}\n\t}};\n\tvar importWidget = new ImportVariablesWidget(treeNode,{parentWidget: parent, wiki: this});\n\timportWidget.computeAttributes();\n\timportWidget.execute();\n\t// These two functions neuter the widget, so it never tries\n\t// to render.\n\timportWidget.findNextSiblingDomNode = function() {};\n\timportWidget.renderChildren(this.parentDomNode);\n\treturn importWidget;\n};\n",
"module-type": "wikimethod",
"title": "$:/plugins/flibbles/relink/js/wikimethods.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/impossible.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nGiven an input of toTitles, (probably just one), outputs all the tiddlers in\nwhich Relink would fail to update the operand to any of those given titles.\n\n`[[{terrible'}!!\"title\"]relink:impossible[fromTiddler]]`\n\nWould output all the tiddlers where Relink would fail to update `from here` to\n`{terrible'}!!\"title\"`\n\nI know, it's weird. You'd think it would test all incoming inputs instead of\nusing them as to fromTitle, but this is the only way to input both a fromTitle\nand a toTitle.\n\nResults are dominantly appanded if more than one input tiddler is given.\n\\*/\n\nexports.impossible = function(source,operator,options) {\n\tvar fromTitle = operator.operand,\n\t\tresults = [];\n\tif (fromTitle) {\n\t\tsource(function(toTiddler, toTitle) {\n\t\t\tvar fails = options.wiki.eachRelinkableTiddler(\n\t\t\t\tfromTitle, toTitle,\n\t\t\t\t$tw.utils.extend({quiet: true}, options),\n\t\t\t\tfunction(tiddler, title) {});\n\t\t\t$tw.utils.pushTop(results, fails);\n\t\t});\n\t}\n\treturn results;\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/impossible.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/references.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nGiven a title as an operand, returns all non-shadow tiddlers that have any\nsort of updatable reference to it.\n\n\n`relink:references[fromTiddler]]`\n\nReturns all tiddlers that reference `fromTiddler` somewhere inside them.\n\nInput is ignored. Maybe it shouldn't do this.\nAlso, maybe it should properly recon, instead of fake replacing the title with\n`__relink_dummy__`\n\\*/\n\nexports.references = function(source,operator,options) {\n\tvar fromTitle = operator.operand,\n\t\tresults = [];\n\tif (fromTitle) {\n\t\toptions.wiki.eachRelinkableTiddler(\n\t\t\tfromTitle, \"__relink_dummy__\",\n\t\t\t$tw.utils.extend({quiet: true}, options),\n\t\t\tfunction(changes, tiddler, title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t}\n\treturn results;\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/references.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/relink.js": {
"text": "/*\\\nmodule-type: filteroperator\n\nThis filter acts as a namespace for several small, simple filters, such as\n\n`[relink:impossible[]]`\n\n\\*/\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nvar relinkFilterOperators;\n\nfunction getRelinkFilterOperators() {\n\tif(!relinkFilterOperators) {\n\t\trelinkFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"relinkfilteroperator\",\n\t\t relinkFilterOperators);\n\t}\n\treturn relinkFilterOperators;\n}\n\nexports.relink = function(source,operator,options) {\n\tvar suffixPair = parseSuffix(operator.suffix);\n\tvar relinkFilterOperator = getRelinkFilterOperators()[suffixPair[0]];\n\tif (relinkFilterOperator) {\n\t\tvar newOperator = $tw.utils.extend({}, operator);\n\t\tnewOperator.suffix = suffixPair[1];\n\t\treturn relinkFilterOperator(source, newOperator, options);\n\t} else {\n\t\treturn [language.getString(\"Error/RelinkFilterOperator\", options)];\n\t}\n};\n\nfunction parseSuffix(suffix) {\n\tvar index = suffix? suffix.indexOf(\":\"): -1;\n\tif (index >= 0) {\n\t\treturn [suffix.substr(0, index), suffix.substr(index+1)];\n\t} else {\n\t\treturn [suffix];\n\t}\n}\n",
"module-type": "filteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/relink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/splitafter.js": {
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: relinkfilteroperator\n\nFilter operator that splits each result on the last occurance of the specified separator and returns the last bit.\n\nWhat does this have to do with relink? Nothing. I need this so I can render\nthe configuration menu. I //could// use [splitregexp[]], but then I'd be\nlimited to Tiddlywiki v5.1.20 or later.\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.splitafter = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar index = title.lastIndexOf(operator.operand);\n\t\tif(index < 0) {\n\t\t\t$tw.utils.pushTop(results,title);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,title.substr(index+1));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n\n",
"title": "$:/plugins/flibbles/relink/js/filteroperators/splitafter.js",
"type": "application/javascript",
"module-type": "relinkfilteroperator"
},
"$:/plugins/flibbles/relink/js/fieldtypes/filter.js": {
"text": "/*\\\nThis specifies logic for updating filters to reflect title changes.\n\\*/\n\n/**Returns undefined if no change was made.\n */\n\nvar CannotRelinkError = require(\"$:/plugins/flibbles/relink/js/errors.js\").CannotRelinkError;\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\n\nexports.name = \"filter\";\n\nexports.relink = function(filter, fromTitle, toTitle, options) {\n\tif (!filter || filter.indexOf(fromTitle) < 0) {\n\t\treturn undefined;\n\t}\n\tvar relinker = new Rebuilder(filter);\n\tvar whitelist = settings.getOperators(options);\n\tvar p = 0, // Current position in the filter string\n\t\tmatch, noPrecedingWordBarrier,\n\t\twordBarrierRequired=false;\n\tvar whitespaceRegExp = /\\s+/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filter.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filter);\n\t\tnoPrecedingWordBarrier = false;\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t} else if (p != 0) {\n\t\t\tif (wordBarrierRequired) {\n\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\twordBarrierRequired = false;\n\t\t\t} else {\n\t\t\t\tnoPrecedingWordBarrier = true;\n\t\t\t}\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filter.length) {\n\t\t\tvar val;\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filter);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\t// It's a bad filter\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif(match[1]) { // prefix\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\t// We check if this is a standalone title,\n\t\t\t\t// like `[[MyTitle]]`. We treat those like\n\t\t\t\t// `\"MyTitle\"` or `MyTitle`. Not like a run.\n\t\t\t\tvar standaloneTitle = /\\[\\[([^\\]]+)\\]\\]/g;\n\t\t\t\tstandaloneTitle.lastIndex = p;\n\t\t\t\tvar alone = standaloneTitle.exec(filter);\n\t\t\t\tif (!alone || alone.index != p) {\n\t\t\t\t\t// It's a legit run\n\t\t\t\t\tp =parseFilterOperation(relinker,fromTitle,toTitle,filter,p,whitelist,options);\n\t\t\t\t\tif (p === undefined) {\n\t\t\t\t\t\t// The filter is malformed\n\t\t\t\t\t\t// We do nothing.\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbracketTitle = alone[1];\n\t\t\t\toperandRegExp.lastIndex = standaloneTitle.lastIndex;\n\t\t\t\tval = alone[1];\n\t\t\t} else {\n\t\t\t\t// standalone Double quoted string, single\n\t\t\t\t// quoted string, or noquote ahead.\n\t\t\t\tval = match[3] || match[4] || match[5];\n\t\t\t}\n\t\t\t// From here on, we're dealing with a standalone title\n\t\t\t// expression. like `\"MyTitle\"` or `[[MyTitle]]`\n\t\t\t// We're much more flexible about relinking these.\n\t\t\tvar preference = undefined;\n\t\t\tif (match[3]) {\n\t\t\t\tpreference = '\"';\n\t\t\t} else if (match[4]) {\n\t\t\t\tpreference = \"'\";\n\t\t\t} else if (match[5]) {\n\t\t\t\tpreference = '';\n\t\t\t}\n\t\t\tif (val === fromTitle) {\n\t\t\t\tvar newVal = wrapTitle(toTitle, preference);\n\t\t\t\tif (newVal === undefined) {\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\tthrow new CannotRelinkError();\n\t\t\t\t\t}\n\t\t\t\t\tnewVal = \"[<\"+options.placeholder.getPlaceholderFor(toTitle)+\">]\";\n\t\t\t\t\toptions.usedPlaceholder = true;\n\t\t\t\t}\n\t\t\t\tif (newVal[0] != '[') {\n\t\t\t\t\t// not bracket enclosed\n\t\t\t\t\t// this requires whitespace\n\t\t\t\t\t// arnound it\n\t\t\t\t\tif (noPrecedingWordBarrier && !match[1]) {\n\t\t\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\t\t}\n\t\t\t\t\twordBarrierRequired = true;\n\t\t\t\t}\n\t\t\t\trelinker.add(newVal,p,operandRegExp.lastIndex);\n\t\t\t}\n\t\t\tp = operandRegExp.lastIndex;\n\t\t}\n\t}\n\treturn relinker.results();\n};\n\nfunction wrapTitle(value, preference) {\n\tvar choices = {\n\t\t\"\": function(v) {return !/[\\s\\[\\]]/.test(v); },\n\t\t\"[\": canBePrettyOperand,\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; }\n\t};\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"[\": function(v) {return \"[[\"+v+\"]]\"; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; }\n\t};\n\tif (choices[preference]) {\n\t\tif (choices[preference](value)) {\n\t\t\treturn wrappers[preference](value);\n\t\t}\n\t}\n\tfor (var quote in choices) {\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrappers[quote](value);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n}\n\nfunction parseFilterOperation(relinker, fromTitle, toTitle, filterString, p, whitelist, options) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\t// Missing [ in filter expression\n\t\treturn undefined;\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\tp++;\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\t// Missing [ in filter expression\n\t\t\treturn undefined;\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\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\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tvar operand = filterString.substring(p,nextBracketPos);\n\t\t\t\tvar ref = $tw.utils.parseTextReference(operand);\n\t\t\t\tif (ref.title === fromTitle) {\n\t\t\t\t\tif(!canBePrettyIndirect(toTitle)) {\n\t\t\t\t\t\tthrow new CannotRelinkError();\n\t\t\t\t\t}\n\t\t\t\t\tref.title = toTitle;\n\t\t\t\t\tvar newRef = refHandler.toString(ref);\n\t\t\t\t\t// We don't check the whitelist.\n\t\t\t\t\t// All indirect operands convert.\n\t\t\t\t\trelinker.add(newRef,p,nextBracketPos);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tvar operand = filterString.substring(p,nextBracketPos);\n\t\t\t\t// Check if this is a relevant operator\n\t\t\t\tvar handler = fieldType(whitelist, operator);\n\t\t\t\tif (!handler) {\n\t\t\t\t\t// This operator isn't managed. Bye.\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tvar result = handler.relink(operand, fromTitle, toTitle, options);\n\t\t\t\tif (!result) {\n\t\t\t\t\t// The fromTitle wasn't in the operand.\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tvar wrapped;\n\t\t\t\tif (!canBePrettyOperand(result)) {\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\tthrow new CannotRelinkError();\n\t\t\t\t\t}\n\t\t\t\t\tvar ph = options.placeholder.getPlaceholderFor(result);\n\t\t\t\t\twrapped = \"<\"+ph+\">\";\n\t\t\t\t\toptions.usedPlaceholder = true;\n\t\t\t\t} else {\n\t\t\t\t\twrapped = \"[\"+result+\"]\";\n\t\t\t\t}\n\t\t\t\trelinker.add(wrapped, p-1, nextBracketPos+1);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\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\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Unterminated regular expression\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\t// Missing closing bracket in filter expression\n\t\t\t// return undefined;\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\t// Missing ] in filter expression\n\t\treturn undefined;\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n// Returns the relinker needed for a given operator, or returns undefined.\nfunction fieldType(whitelist, operator) {\n\treturn whitelist[operator.operator] ||\n\t (operator.suffix &&\n\t whitelist[operator.operator + \":\" + operator.suffix]);\n};\n\nfunction canBePrettyOperand(value) {\n\treturn value.indexOf(']') < 0;\n};\n\nfunction canBePrettyIndirect(value) {\n\treturn value.indexOf('}') < 0;\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/filter.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/list.js": {
"text": "/*\\\nThis manages replacing titles that occur within stringLists, like,\n\nTiddlerA [[Tiddler with spaces]] [[Another Title]]\n\\*/\n\nvar CannotRelinkError = require(\"$:/plugins/flibbles/relink/js/errors.js\").CannotRelinkError;\n\nexports.name = \"list\";\n\n/**Returns undefined if no change was made.\n * Parameter: value can literally be a list. This can happen for builtin\n * types 'list' and 'tag'. In those cases, we also return list.\n */\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tvar isModified = false,\n\t\tactualList = false,\n\t\tlist;\n\tif (typeof value !== \"string\") {\n\t\t// Not a string. Must be a list.\n\t\t// clone it, since we may make changes to this possibly\n\t\t// frozen list.\n\t\tlist = (value || []).slice(0);\n\t\tactualList = true;\n\t} else {\n\t\tlist = $tw.utils.parseStringArray(value || \"\");\n\t}\n\t$tw.utils.each(list,function (title,index) {\n\t\tif(title === fromTitle) {\n\t\t\tlist[index] = toTitle;\n\t\t\tisModified = true;\n\t\t}\n\t});\n\tif (isModified) {\n\t\t// It doesn't parse correctly alone, it won't\n\t\t// parse correctly in any list.\n\t\tif (!canBeListItem(toTitle)) {\n\t\t\tthrow new CannotRelinkError();\n\t\t}\n\t\tif (actualList) {\n\t\t\treturn list;\n\t\t} else {\n\t\t\treturn $tw.utils.stringifyList(list);\n\t\t}\n\t}\n\treturn undefined;\n};\n\nfunction canBeListItem(value) {\n\tvar regexp = /\\]\\][^\\S\\xA0]/m;\n\treturn !regexp.test(value);\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/list.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/reference.js": {
"text": "/*\\\nThis manages replacing titles that occur inside text references,\n\ntiddlerTitle\ntiddlerTitle!!field\n!!field\ntiddlerTitle##propertyIndex\n\\*/\n\nvar CannotRelinkError = require(\"$:/plugins/flibbles/relink/js/errors.js\").CannotRelinkError;\n\nexports.name = \"reference\";\n\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tvar reference = $tw.utils.parseTextReference(value);\n\tif (reference.title !== fromTitle) {\n\t\treturn undefined;\n\t}\n\treference.title = toTitle;\n\treturn exports.toString(reference);\n};\n\nexports.toString = function(textReference) {\n\tvar title = textReference.title || '';\n\tif (!exports.canBePretty(title)) {\n\t\tthrow new CannotRelinkError();\n\t}\n\tif (textReference.field) {\n\t\treturn title + \"!!\" + textReference.field;\n\t} else if (textReference.index) {\n\t\treturn title + \"##\" + textReference.index;\n\t}\n\treturn title;\n};\n\nexports.canBePretty = function(title) {\n\treturn title.indexOf(\"!!\") < 0 && title.indexOf(\"##\") < 0;\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/reference.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/title.js": {
"text": "/*\\\nThis specifies logic for replacing a single-tiddler field. This is the\nsimplest kind of field type. One title swaps out for the other.\n\\*/\n\n// NOTE TO MODDERS: If you're making your own field types, the name must be\n// alpha characters only.\nexports.name = 'title';\n\n/**Returns undefined if no change was made.\n */\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tif (value === fromTitle) {\n\t\treturn toTitle;\n\t}\n\treturn undefined;\n};\n\n// This is legacy support for when 'title' was known as 'field'\nexports.aliases = ['field', 'yes'];\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/title.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/fields.js": {
"text": "/*\\\n\nHandles all fields specified in the plugin configuration. Currently, this\nonly supports single-value fields.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\n\nexports['fields'] = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar fields = settings.getFields(options);\n\t$tw.utils.each(fields, function(handler, field) {\n\t\tvar input = tiddler.fields[field];\n\t\tvar value = handler.relink(input, fromTitle, toTitle, options);\n\t\tif (value !== undefined) {\n\t\t\tlog(\"field\", {\n\t\t\t\tfrom: fromTitle,\n\t\t\t\tto: toTitle,\n\t\t\t\ttiddler: tiddler.fields.title,\n\t\t\t\tfield: descriptor(field)\n\t\t\t}, options);\n\t\t\tchanges[field] = value;\n\t\t}\n\t});\n};\n\nfunction descriptor(field) {\n\tif (field === \"tags\") {\n\t\treturn \"tags\";\n\t} else {\n\t\treturn field + \" field\" ;\n\t}\n};\n",
"module-type": "relinkoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/fields.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text.js": {
"text": "/*\\\n\nDepending on the tiddler type, this will apply textOperators which may\nrelink titles within the body.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar defaultOperator = \"text/vnd.tiddlywiki\";\n\nvar textOperators = Object.create(null);\n$tw.modules.applyMethods('relinktextoperator', textOperators);\n\nexports['text'] = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar text = tiddler.fields.text,\n\t\tbuilder = [],\n\t\tbuildIndex = 0;\n\tif (text && text.indexOf(fromTitle) >= 0) {\n\t\tvar type = tiddler.fields.type || defaultOperator;\n\t\tif (textOperators[type]) {\n\t\t\ttextOperators[type].call(this, tiddler, fromTitle, toTitle, changes, options);\n\t\t}\n\t}\n};\n",
"module-type": "relinkoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext.js": {
"text": "/*\\\n\nChecks for fromTitle in a tiddler's text. If found, sees if it's relevant,\nand tries to swap it out if it is.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar type = 'text/vnd.tiddlywiki';\nvar WikiParser = require(\"$:/core/modules/parsers/wikiparser/wikiparser.js\")[type];\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder.js\");\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar rules = Object.create(null);\n\n$tw.modules.forEachModuleOfType(\"relinkwikitextrule\", function(title, exports) {\n\tvar names = exports.name;\n\tif (typeof names === \"string\") {\n\t\tnames = [names];\n\t}\n\tfor (var i = 0; i < names.length; i++) {\n\t\trules[names[i]] = exports;\n\t}\n});\n\nfunction WikiRelinker(text, title, toTitle, options) {\n\tWikiParser.call(this, null, text, options);\n\tif (!this.relinkMethodsInjected) {\n\t\t$tw.utils.each([this.pragmaRuleClasses, this.blockRuleClasses, this.inlineRuleClasses], function(classList) {\n\t\t\tfor (var name in classList) {\n\t\t\t\tif (rules[name]) {\n\t\t\t\t\tdelete rules[name].name;\n\t\t\t\t\t$tw.utils.extend(classList[name].prototype, rules[name]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tWikiRelinker.prototype.relinkMethodsInjected = true;\n\t}\n\tthis.title = title;\n\tthis.toTitle = toTitle;\n\tthis.inlineRules = this.blockRules.concat(this.pragmaRules, this.inlineRules);\n\t// We work through relinkRules so we can change it later.\n\t// relinkRules is inlineRules so it gets touched up by amendRules().\n\tthis.relinkRules = this.inlineRules;\n\tthis.placeholders = Object.create(null);\n\tthis.reverseMap = Object.create(null);\n\tthis.knownMacros = Object.create(null);\n\tthis.widget = undefined;\n};\n\nWikiRelinker.prototype = Object.create(WikiParser.prototype);\nWikiRelinker.prototype.parsePragmas = function() {return []; };\nWikiRelinker.prototype.parseInlineRun = function() {};\nWikiRelinker.prototype.parseBlocks = function() {};\n\nWikiRelinker.prototype.getPlaceholderFor = function(value, category) {\n\tvar placeholder = this.reverseMap[value];\n\tif (placeholder) {\n\t\treturn placeholder;\n\t}\n\tvar number = 0;\n\tvar prefix = \"relink-\"\n\tif (category && category !== \"title\") {\n\t\t// I don't like \"relink-title-1\". \"relink-1\" should be for\n\t\t// titles. lists, and filters can have descriptors though.\n\t\tprefix += category + \"-\";\n\t}\n\tdo {\n\t\tnumber += 1;\n\t\tplaceholder = prefix + number;\n\t} while (this.knownMacros[placeholder]);\n\tthis.placeholders[placeholder] = value;\n\tthis.reverseMap[value] = placeholder;\n\tthis.reserve(placeholder);\n\treturn placeholder;\n};\n\nWikiRelinker.prototype.addWidget = function(widget) {\n\tthis.widget = widget;\n\twhile (this.widget.children.length > 0) {\n\t\tthis.widget = this.widget.children[0];\n\t}\n};\n\nWikiRelinker.prototype.getVariableWidget = function() {\n\tif (!this.widget) {\n\t\tthis.widget = this.wiki.relinkGlobalMacros();\n\t\tvar parentWidget = new Widget({}, {parentWidget: this.widget});\n\t\tparentWidget.setVariable(\"currentTiddler\", this.title);\n\t\tvar widget = new Widget({}, {parentWidget: parentWidget});\n\t\tthis.addWidget(widget);\n\t}\n\treturn this.widget;\n};\n\nWikiRelinker.prototype.reserve = function(macro) {\n\tthis.knownMacros[macro] = true;\n};\n\nWikiRelinker.prototype.getPreamble = function() {\n\tvar results = [];\n\tfor (var name in this.placeholders) {\n\t\tvar val = this.placeholders[name];\n\t\tresults.push(\"\\\\define \"+name+\"() \"+val+\"\\n\");\n\t}\n\tif (results.length > 0) {\n\t\treturn results.join('');\n\t} else {\n\t\treturn undefined;\n\t}\n};\n\nexports[type] = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar text = tiddler.fields.text,\n\t\tbuilder = new Rebuilder(text),\n\t\tparser = new WikiRelinker(text, tiddler.fields.title, toTitle, options),\n\t\tmatchingRule;\n\twhile (matchingRule = parser.findNextMatch(parser.relinkRules, parser.pos)) {\n\t\tif (matchingRule.rule.relink) {\n\t\t\tvar newSegment = matchingRule.rule.relink(tiddler, text, fromTitle, toTitle, options);\n\t\t\tif (newSegment !== undefined) {\n\t\t\t\tbuilder.add(newSegment, matchingRule.matchIndex, parser.pos);\n\t\t\t}\n\t\t} else {\n\t\t\tif (matchingRule.rule.matchRegExp !== undefined) {\n\t\t\t\tparser.pos = matchingRule.rule.matchRegExp.lastIndex;\n\t\t\t} else {\n\t\t\t\t// We can't easily determine the end of this\n\t\t\t\t// rule match. We'll \"parse\" it so that\n\t\t\t\t// parser.pos gets updated, but we throw away\n\t\t\t\t// the results.\n\t\t\t\tmatchingRule.rule.parse();\n\t\t\t}\n\t\t}\n\t}\n\tif (builder.changed()) {\n\t\tbuilder.prepend(parser.getPreamble());\n\t\tchanges.text = builder.results();\n\t}\n};\n",
"module-type": "relinktextoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/comment.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles comment blocks. Or rather //doesn't// handle them, since we should\nignore their contents.\n\n\"<!-- [[Renamed Title]] -->\" will remain unchanged.\n\n\\*/\n\nexports.name = [\"commentinline\", \"commentblock\"];\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\treturn undefined;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/comment.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/filteredtransclude.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement of filtered transclusions in wiki text like,\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\nThis renames both the list and the template field.\n\n\\*/\n\nexports.name = ['filteredtranscludeinline', 'filteredtranscludeblock'];\n\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/settings\").getRelinker('filter');\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar utils = require(\"./utils.js\");\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tvar m = this.match;\n\t\tfilter = m[1],\n\t\ttooltip = m[2],\n\t\ttemplate = m[3],\n\t\tstyle = m[4],\n\t\tclasses = m[5],\n\t\tparser = this.parser,\n\t\tlogArguments = {\n\t\t\tfrom: fromTitle,\n\t\t\tto: toTitle,\n\t\t\ttiddler: tiddler.fields.title\n\t\t};\n\tparser.pos = this.matchRegExp.lastIndex;\n\tvar modified = false;\n\tif ($tw.utils.trim(template) === fromTitle) {\n\t\t// preserves user-inputted whitespace\n\t\ttemplate = template.replace(fromTitle, toTitle);\n\t\tmodified = true;\n\t}\n\tvar extendedOptions = $tw.utils.extend({placeholder: this.parser}, options);\n\tvar relinkedFilter = filterHandler.relink(filter, fromTitle, toTitle, extendedOptions);\n\tvar message = \"filteredtransclude\";\n\tif (extendedOptions.usedPlaceholder) {\n\t\tmessage = \"filteredtransclude-placeholder\";\n\t}\n\tif (relinkedFilter !== undefined) {\n\t\tfilter = relinkedFilter;\n\t\tmodified = true;\n\t}\n\tif (!modified) {\n\t\treturn undefined;\n\t}\n\tif (canBePretty(filter) && canBePrettyTemplate(template)) {\n\t\tlog(message, logArguments, options);\n\t\treturn prettyList(filter, tooltip, template, style, classes);\n\t}\n\tmessage = message + \"-widget\";\n\tif (classes !== undefined) {\n\t\tclasses = classes.split('.').join(' ');\n\t}\n\tfunction wrap(name, value, treatAsTitle) {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\t\tvar wrappedValue = utils.wrapAttributeValue(value);\n\t\tif (wrappedValue === undefined) {\n\t\t\tvar category = treatAsTitle ? undefined : name;\n\t\t\twrappedValue = \"<<\"+parser.getPlaceholderFor(value,category)+\">>\";\n\t\t\tmessage = \"filteredtransclude-placeholder-widget\";\n\t\t}\n\t\treturn \" \"+name+\"=\"+wrappedValue;\n\t};\n\tvar widget = [\n\t\t\"<$list\",\n\t\twrap(\"filter\", filter),\n\t\twrap(\"tooltip\", tooltip),\n\t\twrap(\"template\", template, true),\n\t\twrap(\"style\", style),\n\t\twrap(\"itemClass\", classes),\n\t\t\"/>\"\n\t].join('');\n\tlog(message, logArguments, options);\n\treturn widget;\n};\n\nfunction canBePretty(filter) {\n\treturn filter.indexOf('|') < 0 && filter.indexOf('}}') < 0;\n};\n\nfunction canBePrettyTemplate(template) {\n\treturn !template || (\n\t\ttemplate.indexOf('|') < 0\n\t\t&& template.indexOf('{') < 0\n\t\t&& template.indexOf('}') < 0);\n};\n\nfunction prettyList(filter, tooltip, template, style, classes) {\n\tif (tooltip === undefined) {\n\t\ttooltip = '';\n\t} else {\n\t\ttooltip = \"|\" + tooltip;\n\t}\n\tif (template === undefined) {\n\t\ttemplate = '';\n\t} else {\n\t\ttemplate = \"||\" + template;\n\t}\n\tif (classes === undefined) {\n\t\tclasses = '';\n\t} else {\n\t\tclasses = \".\" + classes;\n\t}\n\tstyle = style || '';\n\treturn \"{{{\"+filter+tooltip+template+\"}}\"+style+\"}\"+classes;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/filteredtransclude.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in attributes of widgets and html elements\nThis is configurable to select exactly which attributes of which elements\nshould be changed.\n\n<$link to=\"TiddlerTitle\" />\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar html = require(\"$:/core/modules/parsers/wikiparser/rules/html.js\");\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/settings\").getRelinker('filter');\nvar macrocall = require(\"./macrocall.js\");\nvar CannotRelinkError = require(\"$:/plugins/flibbles/relink/js/errors.js\").CannotRelinkError;\n\nexports.name = \"html\";\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tvar managedElement = settings.getAttributes(options)[this.nextTag.tag],\n\t\tbuilder = new Rebuilder(text, this.nextTag.start);\n\tvar importFilterAttr;\n\tfor (var attributeName in this.nextTag.attributes) {\n\t\tvar attr = this.nextTag.attributes[attributeName];\n\t\tvar nextEql = text.indexOf('=', attr.start);\n\t\t// This is the rare case of changing tiddler\n\t\t// \"true\" to something else when \"true\" is\n\t\t// implicit, like <$link to /> We ignore those.\n\t\tif (nextEql < 0 || nextEql > attr.end) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (this.nextTag.tag === \"$importvariables\" && attributeName === \"filter\") {\n\t\t\timportFilterAttr = attr;\n\t\t}\n\t\tvar oldValue, quote, logMessage = \"attribute\";\n\t\tif (attr.type === \"string\") {\n\t\t\tvar handler = getAttributeHandler(this.nextTag, attributeName, options);\n\t\t\tif (!handler) {\n\t\t\t\t// We don't manage this attribute. Bye.\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar extendedOptions = $tw.utils.extend({placeholder: this.parser}, options);\n\t\t\toldValue = attr.value;\n\t\t\tvar value = handler.relink(attr.value, fromTitle, toTitle, extendedOptions);\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (extendedOptions.usedPlaceholder) {\n\t\t\t\tlogMessage = \"attribute-placeholder\";\n\t\t\t}\n\t\t\tquote = utils.determineQuote(text, attr);\n\t\t\tattr.quotedValue = utils.wrapAttributeValue(value,quote);\n\t\t\tif (attr.quotedValue === undefined) {\n\t\t\t\t// The value was unquotable. We need to make\n\t\t\t\t// a macro in order to replace it.\n\t\t\t\tvalue = this.parser.getPlaceholderFor(value,handler.name)\n\t\t\t\tattr.type = \"macro\";\n\t\t\t\tattr.quotedValue = \"<<\"+value+\">>\";\n\t\t\t\tlogMessage = \"attribute-placeholder\";\n\t\t\t}\n\t\t\tattr.value = value;\n\t\t} else if (attr.type === \"indirect\") {\n\t\t\tif (toTitle.indexOf(\"}\") >= 0) {\n\t\t\t\t// Impossible replacement\n\t\t\t\tthrow new CannotRelinkError();\n\t\t\t}\n\t\t\toldValue = attr.textReference;\n\t\t\tquote = \"{{\";\n\t\t\tvar ref = $tw.utils.parseTextReference(attr.textReference);\n\t\t\tif (ref.title !== fromTitle) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tref.title = toTitle;\n\t\t\tattr.textReference = refHandler.toString(ref);\n\t\t\tattr.quotedValue = \"{{\"+attr.textReference+\"}}\";\n\t\t} else if (attr.type === \"filtered\") {\n\t\t\tvar extendedOptions = $tw.utils.extend({placeholder: this.parser}, options);\n\t\t\toldValue = attr.filter\n\t\t\tvar filter = filterHandler.relink(attr.filter, fromTitle, toTitle, extendedOptions);\n\t\t\tif (filter === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!canBeFilterValue(filter)) {\n\t\t\t\t// Although I think we can actually do this one.\n\t\t\t\tthrow new CannotRelinkError();\n\t\t\t}\n\t\t\tattr.filter = filter;\n\t\t\tattr.quotedValue = \"{{{\" + filter + \"}}}\";\n\t\t\tquote = \"{{{\";\n\t\t} else if (attr.type === \"macro\") {\n\t\t\tvar macro = attr.value;\n\t\t\toldValue = attr.value;\n\t\t\tvar newMacro = macrocall.relinkMacroInvocation(macro, text, this.parser, fromTitle, toTitle, options);\n\t\t\tif (newMacro === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (macrocall.mustBeAWidget(newMacro)) {\n\t\t\t\tthrow new CannotRelinkError();\n\t\t\t}\n\t\t\tattr.value = newMacro;\n\t\t\t// TODO: Let's not hack like this. attr.value is\n\t\t\t// expected to be a string of the unquoted value below.\n\t\t\t// Make this better when I can.\n\t\t\toldValue.length = (macro.end-macro.start)-4;\n\t\t\tquote = \"<<\";\n\t\t\tattr.quotedValue = macrocall.macroToString(newMacro, text, this.parser, options);\n\t\t} else {\n\t\t\tcontinue;\n\t\t}\n\t\t// account for the quote if it's there.\n\t\t// We count backwards from the end to preserve whitespace\n\t\tvar valueStart = attr.end\n\t\t - (quote.length*2)\n\t\t - oldValue.length;\n\t\tbuilder.add(attr.quotedValue, valueStart, attr.end);\n\t\tvar logArguments = {\n\t\t\tfrom: fromTitle,\n\t\t\tto: toTitle,\n\t\t\ttiddler: tiddler.fields.title,\n\t\t\telement: this.nextTag.tag,\n\t\t\tattribute: attributeName\n\t\t};\n\t\tlog(logMessage, logArguments, options);\n\t}\n\tif (importFilterAttr) {\n\t\tvar importFilter = computeAttribute(importFilterAttr, this.parser, options);\n\t\tvar parentWidget = this.parser.getVariableWidget();\n\t\tvar varHolder = options.wiki.relinkGenerateVariableWidget(importFilter, parentWidget);\n\t\tthis.parser.addWidget(varHolder);\n\t}\n\tthis.parser.pos = this.nextTag.end;\n\treturn builder.results(this.nextTag.end);\n};\n\n/** Returns the field handler for the given attribute of the given widget.\n * If this returns undefined, it means we don't handle it. So skip.\n */\nfunction getAttributeHandler(widget, attributeName, options) {\n\tif (widget.tag === \"$macrocall\") {\n\t\tvar nameAttr = widget.attributes[\"$name\"];\n\t\tvar macro = settings.getMacros(options)[nameAttr.value];\n\t\tif (macro) {\n\t\t\treturn macro[attributeName];\n\t\t}\n\t} else {\n\t\tvar element = settings.getAttributes(options)[widget.tag];\n\t\tif (element) {\n\t\t\treturn element[attributeName];\n\t\t}\n\t}\n\treturn undefined;\n};\n\nfunction computeAttribute(attribute, parser, options) {\n\tvar value;\n\tif(attribute.type === \"filtered\") {\n\t\tvar parentWidget = parser.getVariableWidget();\n\t\tvalue = options.wiki.filterTiddlers(attribute.filter,parentWidget)[0] || \"\";\n\t} else if(attribute.type === \"indirect\") {\n\t\tvar parentWidget = parser.getVariableWidget();\n\t\tvalue = options.wiki.getTextReference(attribute.textReference,\"\",parentWidget.variables.currentTiddler.value);\n\t} else if(attribute.type === \"macro\") {\n\t\tvar parentWidget = parser.getVariableWidget();\n\t\tvalue = parentWidget.getVariable(attribute.value.name,{params: attribute.value.params});\n\t} else { // String attribute\n\t\tvalue = attribute.value;\n\t}\n\treturn value;\n};\n\nfunction canBeFilterValue(value) {\n\treturn value.indexOf(\"}}}\") < 0 && value.substr(value.length-2) !== '}}';\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/import.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles import pragmas\n\n\\import [tag[MyTiddler]]\n\\*/\n\nvar settings = require(\"$:/plugins/flibbles/relink/js/settings.js\");\nvar log = require(\"$:/plugins/flibbles/relink/js/language.js\").logRelink;\nvar filterRelinker = settings.getRelinker('filter');\n\nexports.name = \"import\";\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\t// In this one case, I'll let the parser parse out the filter and move\n\t// the ptr.\n\tvar start = this.matchRegExp.lastIndex;\n\tvar parseTree = this.parse();\n\tvar filter = parseTree[0].attributes.filter.value;\n\n\tvar extendedOptions = $tw.utils.extend({placeholder: this.parser},options);\n\tvar value = filterRelinker.relink(filter, fromTitle, toTitle, extendedOptions);\n\tvar rtn = undefined;\n\tif (value !== undefined) {\n\t\tvar message = extendedOptions.usedPlaceholder ? \"import-placeholder\" : \"import\";\n\t\tlog(message, {\n\t\t\tfrom: fromTitle,\n\t\t\tto: toTitle,\n\t\t\ttiddler: tiddler.fields.title\n\t\t}, options);\n\t\tvar newline = text.substring(start+filter.length, this.parser.pos);\n\t\tfilter = value;\n\t\trtn = \"\\\\import \" + value + newline;\n\t}\n\n\t// Before we go, we need to actually import the variables\n\t// it's calling for.\n\tvar parentWidget = this.parser.getVariableWidget();\n\tvar variableHolder = options.wiki.relinkGenerateVariableWidget(filter, parentWidget);\n\tthis.parser.addWidget(variableHolder);\n\n\treturn rtn;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/import.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrocall.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles macro calls.\n\n<<myMacro '[[MyFilter]]' 'myTitle'>>\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar CannotFindMacroDefError = require(\"$:/plugins/flibbles/relink/js/errors.js\").CannotFindMacroDefError;\n\nexports.name = [\"macrocallinline\", \"macrocallblock\"];\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2],\n\t\tmacroText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar start = this.matchRegExp.lastIndex - this.match[0].length;\n\tvar managedMacro = settings.getMacros(options)[macroName];\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tvar offset = macroName.length+2;\n\toffset = $tw.utils.skipWhiteSpace(macroText, offset);\n\tvar params = parseParams(paramString, offset+start);\n\tvar macroInfo = {\n\t\tname: macroName,\n\t\tstart: start,\n\t\tend: this.matchRegExp.lastIndex,\n\t\tparams: params\n\t};\n\tvar results = this.relinkMacroInvocation(macroInfo, text, this.parser, fromTitle, toTitle, options);\n\tif (results) {\n\t\treturn this.macroToString(results, text, this.parser, options);\n\t} else {\n\t\treturn undefined;\n\t}\n};\n\n/**Processes the given macro,\n * macro: {name:, params:, start:, end:}\n * each parameters: {name:, end:, value:}\n * Macro invocation returned is the same, but relinked, and may have new keys:\n * parameters: {type: macro, start:, newValue: (quoted replacement value)}\n */\nexports.relinkMacroInvocation = function(macro, text, parser, fromTitle, toTitle, options) {\n\tvar managedMacro = settings.getMacros(options)[macro.name];\n\tvar modified = false;\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tif (macro.params.every(function(p) {\n\t\treturn p.value.indexOf(fromTitle) < 0;\n\t})) {\n\t\t// We cut early if the fromTitle doesn't even appear\n\t\t// anywhere in the title. This is to avoid any headache\n\t\t// about finding macro definitions (and any resulting\n\t\t// exceptions if there isn't even a title to replace.\n\t\treturn undefined;\n\t}\n\tvar outMacro = $tw.utils.extend({}, macro);\n\toutMacro.params = macro.params.slice();\n\tfor (var managedArg in managedMacro) {\n\t\tvar index = getParamIndexWithinMacrocall(macro.name, managedArg, macro.params, parser, options);\n\t\tif (index < 0) {\n\t\t\t// this arg either was not supplied, or we can't find\n\t\t\t// the definition, so we can't tie it to an anonymous\n\t\t\t// argument. Either way, move on to the next.\n\t\t\tcontinue;\n\t\t}\n\t\tvar param = macro.params[index];\n\t\tvar handler = managedMacro[managedArg];\n\t\tvar extendedOptions = $tw.utils.extend({placeholder: parser}, options);\n\t\tvar value = handler.relink(param.value, fromTitle, toTitle, extendedOptions);\n\t\tif (value === undefined) {\n\t\t\tcontinue;\n\t\t}\n\t\tvar quote = utils.determineQuote(text, param);\n\t\tvar quoted = utils.wrapAttributeValue(value, quote, ['', \"'\", '\"', '[[', '\"\"\"']);\n\t\tvar newParam = $tw.utils.extend({}, param);\n\t\tif (quoted === undefined) {\n\t\t\tvar ph = parser.getPlaceholderFor(value,handler.name);\n\t\t\tnewParam.newValue = \"<<\"+ph+\">>\";\n\t\t\tnewParam.type = \"macro\";\n\t\t} else {\n\t\t\tnewParam.start = newParam.end - (newParam.value.length + (quote.length*2));\n\t\t\tnewParam.value = value;\n\t\t\tnewParam.newValue = quoted;\n\t\t}\n\t\toutMacro.params[index] = newParam;\n\t\tmodified = true;\n\t}\n\tif (modified) {\n\t\treturn outMacro;\n\t}\n\treturn undefined;\n};\n\nexports.mustBeAWidget = function(macro) {\n\tfor (var i = 0; i < macro.params.length; i++) {\n\t\tif (macro.params[i].type === \"macro\") {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false\n};\n\n/**Given a macro object ({name:, params:, start: end:}), and the text where\n * it was parsed from, returns a new macro that maintains any syntactic\n * structuring.\n */\nexports.macroToString = function(macro, text, parser, options) {\n\tif (exports.mustBeAWidget(macro)) {\n\t\tvar names = getParamNames(macro.name, macro.params, parser, options);\n\t\tvar attrs = [];\n\t\tfor (var i = 0; i < macro.params.length; i++) {\n\t\t\tvar p = macro.params[i];\n\t\t\tvar val;\n\t\t\tif (p.newValue) {\n\t\t\t\tval = p.newValue;\n\t\t\t} else {\n\t\t\t\tval = utils.wrapAttributeValue(p.value);\n\t\t\t}\n\t\t\tattrs.push(\" \"+names[i]+\"=\"+val);\n\t\t}\n\t\treturn \"<$macrocall $name=\"+utils.wrapAttributeValue(macro.name)+attrs.join('')+\"/>\";\n\t} else {\n\t\tvar builder = new Rebuilder(text, macro.start);\n\t\tfor (var i = 0; i < macro.params.length; i++) {\n\t\t\tvar param = macro.params[i];\n\t\t\tif (param.newValue) {\n\t\t\t\tbuilder.add(param.newValue, param.start, param.end);\n\t\t\t}\n\t\t}\n\t\treturn builder.results(macro.end);\n\t}\n};\n\nfunction getParamIndexWithinMacrocall(macroName, param, params, parser, options) {\n\tvar index, i;\n\tfor (i = 0; i < params.length; i++) {\n\t\tif (params[i].name === param) {\n\t\t\treturn i;\n\t\t}\n\t}\n\tvar expectedIndex = indexOfParameterDef(macroName, param, parser, options);\n\t// We've got to skip over all the named parameter instances.\n\tif (expectedIndex >= 0) {\n\t\tvar anonI = 0;\n\t\tfor (i = 0; i < params.length; i++) {\n\t\t\tif (params[i].name === undefined) {\n\t\t\t\tif (anonI === expectedIndex) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t\tanonI++;\n\t\t\t} else {\n\t\t\t\tvar indexOfOther = indexOfParameterDef(macroName, params[i].name, parser, options);\n\t\t\t\tif (indexOfOther < expectedIndex) {\n\t\t\t\t\tanonI++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn -1;\n};\n\n// Looks up the definition of a macro, and figures out what the expected index\n// is for the given parameter.\nfunction indexOfParameterDef(macroName, paramName, parser, options) {\n\tvar def = getDefinition(macroName, parser, options);\n\tvar params = def.params || [];\n\tfor (var i = 0; i < params.length; i++) {\n\t\tif (params[i].name === paramName) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\nfunction getParamNames(macroName, params, parser, options) {\n\tvar used = Object.create(null);\n\tvar rtn = new Array(params.length);\n\tvar anonsExist = false;\n\tvar i;\n\tfor (i = 0; i < params.length; i++) {\n\t\tvar name = params[i].name;\n\t\tif (name) {\n\t\t\trtn[i] = name;\n\t\t\tused[name] = true;\n\t\t} else {\n\t\t\tanonsExist = true;\n\t\t}\n\t}\n\tif (anonsExist) {\n\t\tvar defParams = getDefinition(macroName, parser, options).params || [];\n\t\tvar defPtr = 0;\n\t\tfor (i = 0; i < params.length; i++) {\n\t\t\tif (rtn[i] === undefined) {\n\t\t\t\twhile(defPtr < defParams.length && used[defParams[defPtr].name]) {\n\t\t\t\t\tdefPtr++;\n\t\t\t\t}\n\t\t\t\tif (defPtr >= defParams.length) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\trtn[i] = defParams[defPtr].name;\n\t\t\t\tused[defParams[defPtr].name] = true;\n\t\t\t}\n\t\t}\n\t}\n\treturn rtn;\n};\n\n/** Returns undefined if the definition cannot be found.\n */\nfunction getDefinition (macroName, parser, options) {\n\tvar variableContainer = parser.getVariableWidget();\n\tvar def = variableContainer.variables[macroName];\n\tif (!def) {\n\t\t// Check with the macro modules\n\t\tif ($tw.utils.hop($tw.macros, macroName)) {\n\t\t\tdef = $tw.macros[macroName];\n\t\t} else {\n\t\t\tthrow new CannotFindMacroDefError(macroName);\n\t\t}\n\t}\n\treturn def;\n};\n\nfunction parseParams(paramString, pos) {\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\t//paramInfo.start = pos;\n\t\tparamInfo.end = reParam.lastIndex + pos;\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn params;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrocall.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrodef.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles pragma macro definitions. Except we only update placeholder macros\nthat we may have previously install.\n\n\\define relink-?() Tough title\n\n\\*/\n\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar settings = require(\"$:/plugins/flibbles/relink/js/settings\");\n\nexports.name = \"macrodef\";\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tvar setParseTreeNode = this.parse();\n\tvar parentWidget = this.parser.getVariableWidget();\n\tvar setWidget = parentWidget.makeChildWidget(setParseTreeNode[0]);\n\tsetWidget.computeAttributes();\n\tsetWidget.execute();\n\tthis.parser.addWidget(setWidget);\n\t// Parse set the pos pointer, but we don't want to skip the macro body.\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar m = this.match;\n\t// This macro is not available should we need to make one.\n\tthis.parser.reserve(m[1]);\n\t// !m[3] means it's not a multiline macrodef\n\tvar placeholder = /^relink-(?:(\\w+)-)?(\\d+)$/.exec(m[1]);\n\tif (placeholder && m[2] === '' && !m[3]) {\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(text, this.parser.pos);\n\t\tvar valueRegExp = /([^\\n\\r]+)(\\r?\\n)/mg;\n\t\tvalueRegExp.lastIndex = this.parser.pos;\n\t\tvar match = valueRegExp.exec(text);\n\t\tif (match) {\n\t\t\tvar handler = settings.getRelinker(placeholder[1] || 'title');\n\t\t\t\t// This is a filter\n\t\t\tvar extendedOptions = $tw.utils.extend({placeholder: this.parser}, options);\n\t\t\tvar value = handler.relink(match[1], fromTitle, toTitle, extendedOptions);\n\t\t\tif (value !== undefined) {\n\t\t\t\tvar message = \"macrodef\";\n\t\t\t\tif (extendedOptions.usedPlaceholder) {\n\t\t\t\t\tmessage = \"macrodef-placeholder\";\n\t\t\t\t}\n\t\t\t\tlog(message, {\n\t\t\t\t\tfrom: fromTitle,\n\t\t\t\t\tto: toTitle,\n\t\t\t\t\ttiddler: tiddler.fields.title,\n\t\t\t\t\tmacro: m[1]\n\t\t\t\t}, options);\n\t\t\t\tthis.parser.pos += match[0].length;\n\t\t\t\treturn \"\\\\define \"+m[1]+\"() \"+value+match[2];\n\t\t\t}\n\t\t}\n\t}\n\treturn undefined;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrodef.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in wiki text inline rules, like,\n\n[[Introduction]]\n\n[[link description|TiddlerTitle]]\n\n\\*/\n\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar utils = require(\"./utils.js\");\n\nexports.name = \"prettylink\";\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar caption, quoted, m = this.match;\n\tif (m[2] === fromTitle) {\n\t\t// format is [[caption|MyTiddler]]\n\t\tcaption = m[1];\n\t} else if (m[2] !== undefined || m[1] !== fromTitle) {\n\t\t// format is [[MyTiddler]], and it doesn't match\n\t\treturn undefined;\n\t}\n\tvar logArguments = {\n\t\tfrom: fromTitle,\n\t\tto: toTitle,\n\t\ttiddler: tiddler.fields.title\n\t};\n\tif (utils.canBePretty(toTitle)) {\n\t\tlog(\"prettylink\", logArguments, options);\n\t\treturn prettyLink(toTitle, caption);\n\t} else if (caption === undefined) {\n\t\t// If we don't have a caption, we have to resort to placeholders\n\t\t// anyway to prevent link/caption desync from later relinks.\n\t\t// It doesn't matter whether the toTitle is quotable\n\t\tlog(\"prettylink-placeholder\", logArguments, options);\n\t\tvar ph = this.parser.getPlaceholderFor(toTitle);\n\t\treturn \"<$link to=<<\"+ph+\">>><$text text=<<\"+ph+\">>/></$link>\";\n\t} else if (quoted = utils.wrapAttributeValue(toTitle)) {\n\t\tlog(\"prettylink-widget\", logArguments, options);\n\t\treturn \"<$link to=\"+quoted+\">\"+caption+\"</$link>\";\n\t} else {\n\t\tlog(\"prettylink-placeholder\", logArguments, options);\n\t\tvar ph = this.parser.getPlaceholderFor(toTitle);\n\t\treturn \"<$link to=<<\"+ph+\">>>\"+caption+\"</$link>\";\n\t}\n};\n\nfunction prettyLink(title, caption) {\n\tif (caption) {\n\t\treturn \"[[\" + caption + \"|\" + title + \"]]\";\n\t} else {\n\t\treturn \"[[\" + title + \"]]\";\n\t}\n};\n\nfunction isSafe(value) {\n\treturn value.indexOf(\"]]\") < 0 && value[value.length-1] !== ']';\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/rules.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nParses and acknowledges any pragma rules a tiddler has.\n\n\\rules except html wikilink\n\n\\*/\n\nexports.name = \"rules\";\n\n/**This is all we have to do. The rules rule doesn't parse. It just amends\n * the rules, which is exactly what I want it to do too.\n * It also takes care of moving the pos pointer forward.\n */\nexports.relink = function() { this.parse(); };\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/rules.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/transclude.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement of transclusions in wiki text like,\n\n{{RenamedTiddler}}\n{{RenamedTiddler||TemplateTitle}}\n\nThis renames both the tiddler and the template field.\n\n\\*/\n\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar utils = require(\"./utils.js\");\n\nexports.name = ['transcludeinline', 'transcludeblock'];\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tvar m = this.match,\n\t\treference = m[1],\n\t\ttemplate = m[2],\n\t\tquoted,\n\t\tlogArguments = {\n\t\t\tfrom: fromTitle,\n\t\t\tto: toTitle,\n\t\t\ttiddler: tiddler.fields.title\n\t\t};\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar trimmedRef = $tw.utils.trim(reference);\n\tvar ref = $tw.utils.parseTextReference(trimmedRef);\n\t// This block takes care of 99% of all cases\n\tif (canBePrettyTemplate(toTitle) &&\n\t\t// title part has one extra restriction\n\t (ref.title !== fromTitle || refHandler.canBePretty(toTitle))) {\n\t\tvar modified = false;\n\t\tif (ref.title === fromTitle) {\n\t\t\tmodified = true;\n\t\t\tref.title = toTitle;\n\t\t\tvar refString = refHandler.toString(ref);\n\t\t\t// preserve user's whitespace\n\t\t\treference = reference.replace(trimmedRef, refString);\n\t\t}\n\t\tif ($tw.utils.trim(template) === fromTitle) {\n\t\t\tmodified = true;\n\t\t\t// preserve user's whitespace\n\t\t\ttemplate = template.replace(fromTitle, toTitle);\n\t\t}\n\t\tif (modified) {\n\t\t\tlog(\"transclude\", logArguments, options);\n\t\t\treturn prettyTransclude(reference, template);\n\t\t}\n\t\treturn undefined;\n\t}\n\t// Now for the 1%...\n\tif (ref.title === fromTitle) {\n\t\tvar resultTitle = utils.wrapAttributeValue(toTitle);\n\t\tif (resultTitle === undefined) {\n\t\t\tresultTitle = \"<<\"+this.parser.getPlaceholderFor(toTitle)+\">>\";\n\t\t\tlog(\"transclude-placeholder\", logArguments, options);\n\t\t} else {\n\t\t\tlog(\"transclude-widget\", logArguments, options);\n\t\t}\n\t\tif ($tw.utils.trim(template) === fromTitle) {\n\t\t\t// Now for this bizarre-ass use-case, where both the\n\t\t\t// title and template are being replaced.\n\t\t\tvar attrs = this.transcludeAttributes(ref.field, ref.index);\n\t\t\treturn \"<$tiddler tiddler=\"+resultTitle+\"><$transclude tiddler=\"+resultTitle+attrs+\"/></$tiddler>\";\n\t\t} else {\n\t\t\tref.title = undefined;\n\t\t\treturn \"<$tiddler tiddler=\"+resultTitle+\">\"+prettyTransclude(ref, template)+\"</$tiddler>\";\n\t\t}\n\t}\n\tif ($tw.utils.trim(template) === fromTitle) {\n\t\tvar resultTemplate = utils.wrapAttributeValue(toTitle);\n\t\tvar message = \"transclude-widget\";\n\t\tvar rtn;\n\t\tif (resultTemplate === undefined) {\n\t\t\tresultTemplate = \"<<\"+this.parser.getPlaceholderFor(toTitle)+\">>\";\n\t\t\tmessage = \"transclude-placeholder\";\n\t\t}\n\t\tif (ref.title) {\n\t\t\tvar resultTitle = utils.wrapAttributeValue(ref.title);\n\t\t\tif (resultTitle === undefined) {\n\t\t\t\t// This is one of the rare cases were we need\n\t\t\t\t// to placeholder a title OTHER than the one\n\t\t\t\t// we're changing.\n\t\t\t\tresultTitle = \"<<\"+this.parser.getPlaceholderFor(ref.title)+\">>\";\n\t\t\t\tmessage = \"transclude-placeholder\";\n\t\t\t}\n\t\t\tvar attrs = this.transcludeAttributes(ref.field, ref.index);\n\t\t\trtn = \"<$tiddler tiddler=\"+resultTitle+\"><$transclude tiddler=\"+resultTemplate+attrs+\"/></$tiddler>\";\n\t\t} else {\n\t\t\trtn = \"<$transclude tiddler=\"+resultTemplate+\"/>\";\n\t\t}\n\t\tlog(message, logArguments, options);\n\t\treturn rtn;\n\t}\n\treturn undefined;\n};\n\nfunction canBePrettyTemplate(value) {\n\treturn value.indexOf('}') < 0 && value.indexOf('{') < 0 && value.indexOf('|') < 0;\n};\n\n/**Returns attributes for a transclude widget.\n * only field or index should be used, not both, but both will return\n * the intuitive (albeit useless) result.\n */\nexports.transcludeAttributes = function(field, index) {\n\treturn rtn = [\n\t\twrapAttribute(this.parser, \"field\", field),\n\t\twrapAttribute(this.parser, \"index\", index)\n\t].join('');\n};\n\nfunction wrapAttribute(wikiRelinker, name, value) {\n\tif (value) {\n\t\tvar wrappedValue = utils.wrapAttributeValue(value);\n\t\tif (wrappedValue === undefined) {\n\t\t\twrappedValue = \"<<\"+wikiRelinker.getPlaceholderFor(value, name)+\">>\";\n\t\t}\n\t\treturn \" \"+name+\"=\"+wrappedValue;\n\t}\n\treturn '';\n};\n\nfunction prettyTransclude(textReference, template) {\n\tif (typeof textReference !== \"string\") {\n\t\ttextReference = refHandler.toString(textReference);\n\t}\n\tif (!textReference) {\n\t\ttextReference = '';\n\t}\n\tif (template !== undefined) {\n\t\treturn \"{{\"+textReference+\"||\"+template+\"}}\";\n\t} else {\n\t\treturn \"{{\"+textReference+\"}}\";\n\t}\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/transclude.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/utils.js": {
"text": "/*\\\nmodule-type: library\n\nUtility methods for the wikitext relink rules.\n\n\\*/\n\n/**Finds an appropriate quote mark for a given value.\n *\n *Tiddlywiki doesn't have escape characters for attribute values. Instead,\n * we just have to find the type of quotes that'll work for the given title.\n * There exist titles that simply can't be quoted.\n * If it can stick with the preference, it will.\n *\n * return: Returns the wrapped value, or undefined if it's impossible to wrap\n */\nexports.wrapAttributeValue = function(value, preference, whitelist) {\n\twhitelist = whitelist || [\"\", \"'\", '\"', '\"\"\"'];\n\tvar choices = {\n\t\t\"\": function(v) {return !/([\\/\\s<>\"'=])/.test(v); },\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; },\n\t\t'\"\"\"': function(v) {return v.indexOf('\"\"\"') < 0 && v[v.length-1] != '\"';},\n\t\t\"[[\": exports.canBePrettyOperand\n\t};\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; },\n\t\t'\"\"\"': function(v) {return '\"\"\"'+v+'\"\"\"'; },\n\t\t\"[[\": function(v) {return \"[[\"+v+\"]]\"; }\n\t};\n\tif (choices[preference]) {\n\t\tif (choices[preference](value)) {\n\t\t\treturn wrappers[preference](value);\n\t\t}\n\t}\n\tfor (var i = 0; i < whitelist.length; i++) {\n\t\tvar quote = whitelist[i];\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrappers[quote](value);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n};\n\n/**Return true if value can be used inside a prettylink.\n */\nexports.canBePretty = function(value) {\n\treturn value.indexOf(\"]]\") < 0 && value[value.length-1] !== ']';\n};\n\nexports.canBePrettyOperand = function(value) {\n\treturn value.indexOf(']') < 0;\n};\n\n/**Given some text, and a param or attribute within that text, this returns\n * what type of quotation that attribute is using.\n *\n * param: An object in the form {end:, ...}\n */\nexports.determineQuote = function(text, param) {\n\tvar pos = param.end-1;\n\tif (text[pos] === \"'\") {\n\t\treturn \"'\";\n\t}\n\tif (text[pos] === '\"') {\n\t\tif (text.substr(pos-2, 3) === '\"\"\"') {\n\t\t\treturn '\"\"\"';\n\t\t} else {\n\t\t\treturn '\"';\n\t\t}\n\t}\n\tif (text.substr(pos-1,2) === ']]' && text.substr((pos-param.value.length)-3, 2) === '[[') {\n\t\treturn \"[[\";\n\t}\n\treturn '';\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/utils.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/wikilink.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles CamelCase links\n\nWikiLink\n\nbut not:\n\n~WikiLink\n\n\\*/\n\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar utils = require(\"./utils.js\");\n\nexports.name = \"wikilink\";\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (this.match[0] === fromTitle && this.match[0][0] !== '~') {\n\t\tvar logArguments = {\n\t\t\tfrom: fromTitle,\n\t\t\tto: toTitle,\n\t\t\ttiddler: tiddler.fields.title\n\t\t};\n\t\tif (toTitle.match(this.matchRegExp) && toTitle[0] !== '~') {\n\t\t\tlog(\"wikilink\", logArguments, options);\n\t\t\treturn toTitle;\n\t\t} else if (utils.canBePretty(toTitle)) {\n\t\t\tlog(\"wikilink-pretty\", logArguments, options);\n\t\t\treturn \"[[\" + toTitle + \"]]\";\n\t\t} else {\n\t\t\tvar ph = this.parser.getPlaceholderFor(toTitle);\n\t\t\tlog(\"wikilink-placeholder\", logArguments, options);\n\t\t\treturn \"<$link to=<<\"+ph+\">>><$text text=<<\"+ph+\">>/></$link>\";\n\t\t}\n\t}\n\treturn undefined;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/wikilink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils/rebuilder.js": {
"text": "/*\\\n\nThis helper class aids in reconstructing an existing string with new parts.\n\n\\*/\n\nfunction Rebuilder(text, start) {\n\tthis.text = text;\n\tthis.index = start || 0;\n\tthis.pieces = [];\n};\n\nmodule.exports = Rebuilder;\n\n/**Pieces must be added consecutively.\n * Start and end are the indices in the old string specifying where to graft\n * in the new piece.\n */\nRebuilder.prototype.add = function(value, start, end) {\n\tthis.pieces.push(this.text.substring(this.index, start), value);\n\tthis.index = end;\n};\n\nRebuilder.prototype.changed = function() {\n\treturn this.pieces.length > 0;\n};\n\n/** This sticks something on the beginning of the resulting content.\n */\nRebuilder.prototype.prepend = function(content) {\n\tif (content) {\n\t\tthis.pieces.unshift(content);\n\t}\n};\n\nRebuilder.prototype.results = function(end) {\n\tif (this.changed()) {\n\t\tthis.pieces.push(this.text.substring(this.index, end));\n\t\treturn this.pieces.join('');\n\t}\n\treturn undefined;\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils/rebuilder.js",
"type": "application/javascript"
},
"$:/config/flibbles/relink/attributes/$button/to": {
"title": "$:/config/flibbles/relink/attributes/$button/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$checkbox/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$checkbox/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$checkbox/tag": {
"title": "$:/config/flibbles/relink/attributes/$checkbox/tag",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$count/filter": {
"title": "$:/config/flibbles/relink/attributes/$count/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$draggable/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$draggable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$draggable/filter": {
"title": "$:/config/flibbles/relink/attributes/$draggable/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$edit-bitmap/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit-bitmap/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$edit-text/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit-text/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$edit/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$encrypt/filter": {
"title": "$:/config/flibbles/relink/attributes/$encrypt/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$fieldmangler/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$fieldmangler/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$fields/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$fields/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$image/source": {
"title": "$:/config/flibbles/relink/attributes/$image/source",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$importvariables/filter": {
"title": "$:/config/flibbles/relink/attributes/$importvariables/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$linkcatcher/to": {
"title": "$:/config/flibbles/relink/attributes/$linkcatcher/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$linkcatcher/set": {
"title": "$:/config/flibbles/relink/attributes/$linkcatcher/set",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$link/to": {
"title": "$:/config/flibbles/relink/attributes/$link/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/filter": {
"title": "$:/config/flibbles/relink/attributes/$list/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$list/template": {
"title": "$:/config/flibbles/relink/attributes/$list/template",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/editTemplate": {
"title": "$:/config/flibbles/relink/attributes/$list/editTemplate",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/history": {
"title": "$:/config/flibbles/relink/attributes/$list/history",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$navigator/story": {
"title": "$:/config/flibbles/relink/attributes/$navigator/story",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$navigator/history": {
"title": "$:/config/flibbles/relink/attributes/$navigator/history",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$radio/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$radio/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$range/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$range/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$reveal/stateTitle": {
"title": "$:/config/flibbles/relink/attributes/$reveal/stateTitle",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$select/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$select/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/filter": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$set/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$set/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$set/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$set/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$set/filter": {
"title": "$:/config/flibbles/relink/attributes/$set/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$tiddler/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$tiddler/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$transclude/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$transclude/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$transclude/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$transclude/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$view/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$view/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$view/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$view/subtiddler",
"text": "title"
},
"$:/plugins/flibbles/relink/configuration": {
"title": "$:/plugins/flibbles/relink/configuration",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/flibbles/relink/Configuration]!has[draft.of]]\" \"$:/plugins/flibbles/relink/ui/configuration/Fields\">>\n</div>\n"
},
"$:/config/flibbles/relink/fields/list": {
"title": "$:/config/flibbles/relink/fields/list",
"text": "list"
},
"$:/config/flibbles/relink/fields/list-after": {
"title": "$:/config/flibbles/relink/fields/list-after",
"text": "title"
},
"$:/config/flibbles/relink/fields/list-before": {
"title": "$:/config/flibbles/relink/fields/list-before",
"text": "title"
},
"$:/config/flibbles/relink/fields/tags": {
"title": "$:/config/flibbles/relink/fields/tags",
"text": "list"
},
"$:/plugins/flibbles/relink/language/Buttons/Delete/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/Delete/Caption",
"text": "delete"
},
"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Hint",
"text": "Specify a new widget/element attribute to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewField/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewField/Hint",
"text": "Specify a new field to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewField/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewField/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewOperator/Hint",
"text": "Specify a new filter operator to be considered whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewOperator/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewParameter/Hint",
"text": "Specify a new macro parameter to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewParameter/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Error/RelinkFilterOperator": {
"title": "$:/plugins/flibbles/relink/language/Error/RelinkFilterOperator",
"text": "Filter Error: Unknown suffix for the 'relink' filter operator"
},
"$:/plugins/flibbles/relink/language/Help/Attributes": {
"title": "$:/plugins/flibbles/relink/language/Help/Attributes",
"text": "See the [[Attributes documentation page|https://flibbles.github.io/tw5-relink/#Attributes]] for details."
},
"$:/plugins/flibbles/relink/language/Help/Fields": {
"title": "$:/plugins/flibbles/relink/language/Help/Fields",
"text": "See the [[Fields documentation page|https://flibbles.github.io/tw5-relink/#Fields]] for details."
},
"$:/plugins/flibbles/relink/language/Help/Macros": {
"title": "$:/plugins/flibbles/relink/language/Help/Macros",
"text": "See the [[Macros documentation page|https://flibbles.github.io/tw5-relink/#Macros]] for details."
},
"$:/plugins/flibbles/relink/language/Help/Operators": {
"title": "$:/plugins/flibbles/relink/language/Help/Operators",
"text": "See the [[Operators documentation page|https://flibbles.github.io/tw5-relink/#Operators]] for details."
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Empty": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Empty",
"text": "No tiddlers contain any fields, links, macros, transclusions, or widgets referencing this one"
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Description": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Description",
"text": "The following tiddlers contain fields, links, macros, transclusions, or widgets referencing this one:"
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption",
"text": "//Relink// References"
},
"$:/plugins/flibbles/relink/language/ui/Attributes/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Attributes/Caption",
"text": "Attributes"
},
"$:/plugins/flibbles/relink/language/ui/Fields/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Fields/Caption",
"text": "Fields"
},
"$:/plugins/flibbles/relink/language/ui/Macros/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Macros/Caption",
"text": "Macros"
},
"$:/plugins/flibbles/relink/language/ui/Operators/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Operators/Caption",
"text": "Operators"
},
"$:/config/flibbles/relink/macros/csvtiddlers/filter": {
"title": "$:/config/flibbles/relink/macros/csvtiddlers/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/datauri/title": {
"title": "$:/config/flibbles/relink/macros/datauri/title",
"text": "title"
},
"$:/config/flibbles/relink/macros/jsontiddler/title": {
"title": "$:/config/flibbles/relink/macros/jsontiddler/title",
"text": "title"
},
"$:/config/flibbles/relink/macros/jsontiddlers/filter": {
"title": "$:/config/flibbles/relink/macros/jsontiddlers/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/list-links/filter": {
"title": "$:/config/flibbles/relink/macros/list-links/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/list-links-draggable/tiddler": {
"title": "$:/config/flibbles/relink/macros/list-links-draggable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-links-draggable/itemTemplate": {
"title": "$:/config/flibbles/relink/macros/list-links-draggable/itemTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-tagged-draggable/tag": {
"title": "$:/config/flibbles/relink/macros/list-tagged-draggable/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-tagged-draggable/itemTemplate": {
"title": "$:/config/flibbles/relink/macros/list-tagged-draggable/itemTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc/tag": {
"title": "$:/config/flibbles/relink/macros/toc/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc/selectedTiddler": {
"title": "$:/config/flibbles/relink/macros/toc/selectedTiddler",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc/template": {
"title": "$:/config/flibbles/relink/macros/toc/template",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/buttonTemplate": {
"title": "$:/config/flibbles/relink/macros/tabs/buttonTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/default": {
"title": "$:/config/flibbles/relink/macros/tabs/default",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/tabsList": {
"title": "$:/config/flibbles/relink/macros/tabs/tabsList",
"text": "filter"
},
"$:/config/flibbles/relink/macros/tabs/template": {
"title": "$:/config/flibbles/relink/macros/tabs/template",
"text": "title"
},
"$:/config/flibbles/relink/macros/tag/tag": {
"title": "$:/config/flibbles/relink/macros/tag/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/tag-pill/tag": {
"title": "$:/config/flibbles/relink/macros/tag-pill/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/timeline/subfilter": {
"title": "$:/config/flibbles/relink/macros/timeline/subfilter",
"text": "filter"
},
"$:/config/flibbles/relink/operators/list": {
"title": "$:/config/flibbles/relink/operators/list",
"text": "reference"
},
"$:/config/flibbles/relink/operators/tag": {
"title": "$:/config/flibbles/relink/operators/tag",
"text": "title"
},
"$:/config/flibbles/relink/operators/title": {
"title": "$:/config/flibbles/relink/operators/title",
"text": "title"
},
"$:/config/flibbles/relink/operators/field:title": {
"title": "$:/config/flibbles/relink/operators/field:title",
"text": "title"
},
"$:/language/EditTemplate/Title/Impossibles/Prompt": {
"title": "$:/language/EditTemplate/Title/Impossibles/Prompt",
"text": "The following references to this tiddler can ''not'' be updated by //Relink// due to the complexity of the new title:"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following tiddlers will be updated if relinking:"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Use //Relink// to update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' across all other tiddlers"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "\\define conditional-list(state, prompt, filter)\n<$list filter=\"[subfilter<__filter__>limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/$state$\">> >\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 [[$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 [[$prompt$]]>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$list filter=<<__filter__>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>\n</$reveal>\n\n</$vars>\n\\end\n\n<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\" tabindex={{$:/config/EditTabIndex}}/>\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<<conditional-list impossibles EditTemplate/Title/Impossibles/Prompt \"[{!!draft.title}relink:impossible<fromTitle>]\">>\n\n<<conditional-list references EditTemplate/Title/References/Prompt \"[relink:references<fromTitle>!title[$:/StoryList]sort[title]]\">>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/plugins/flibbles/relink/readme": {
"title": "$:/plugins/flibbles/relink/readme",
"type": "text/vnd.tiddlywiki",
"text": "When renaming a tiddler, Relink can update the fields, filters, and widgets\nof all other tiddlers. However, it works through whitelisting.\n\nIt's already configured to update tiddler titles for all core widgets, filters,\nand fields, but the whitelists can be customized for each of this in the\nconfiguration panel.\n\nSee [[the tw5-relink website|https://github.com/flibbles/tw5-relink]] for\nmore details and examples.\n"
},
"$:/config/flibbles/relink/settings/default-type": {
"title": "$:/config/flibbles/relink/settings/default-type",
"text": "title"
},
"$:/plugins/flibbles/relink/ui/TiddlerInfo/References": {
"title": "$:/plugins/flibbles/relink/ui/TiddlerInfo/References",
"caption": "{{$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption}}",
"tags": "$:/tags/TiddlerInfo",
"text": "\\define lingo-base() $:/plugins/flibbles/relink/language/TiddlerInfo/\n\\define filter() [relink:references<currentTiddler>!title[$:/StoryList]sort[title]]\n<$list filter=\"[subfilter<filter>first[]]\">\n\n<<lingo References/Description>>\n</$list>\n\n<$list filter=<<filter>> emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n"
},
"$:/plugins/flibbles/relink/ui/components/button-delete": {
"title": "$:/plugins/flibbles/relink/ui/components/button-delete",
"text": "\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\n<$button class=\"tc-btn-invisible\"><$list filter=\"[all[current]is[tiddler]]\">\n<$action-deletetiddler $tiddler=<<currentTiddler>> />\n</$list><$list filter=\"[all[current]is[shadow]]\">\n<$action-setfield $tiddler=<<tiddlerName>> text=\"\" />\n</$list>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">{{$:/core/images/delete-button}}</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$(lingo-base)$Delete/Caption}}/></span>\n</$list></$button>\n"
},
"$:/plugins/flibbles/relink/ui/components/select-fieldtype": {
"title": "$:/plugins/flibbles/relink/ui/components/select-fieldtype",
"text": "<$select tiddler=<<currentTiddler>> default={{$:/config/flibbles/relinke/settings/default-type}} >\n<$list variable=\"option\"\n filter=\"[[relinkfieldtype]modules[]removeprefix[$:/plugins/flibbles/relink/js/fieldtypes/]removesuffix[.js]move:-100{$:/config/flibbles/relink/settings/default-type}]\">\n<option><$text text=<<option>> /></option>\n</$list>\n</$select>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Attributes": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Attributes",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Attributes/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\define prefix-attr() $:/config/flibbles/relink/attributes/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define state-base() $:/state/flibbles/relink/\n\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Attributes}}\n\n<table><tbody>\n<tr><th>Widget/HTML Element</th><th>Attribute</th><th>Type</th><th>Delete</th></tr>\n<$list filter=\"[all[shadows+tiddlers]prefix<prefix-attr>!has[draft.of]has[text]]\">\n<$set name=\"element\"\n filter=\"[all[current]removeprefix<prefix-attr>splitbefore[/]removesuffix[/]]\">\n<$set name=\"attribute\"\n filter=\"[all[current]removeprefix<prefix-attr>removeprefix<element>removeprefix[/]]\">\n<tr>\n<td><$text text=<<element>> /></td>\n<td><$text text=<<attribute>> /></td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</tr>\n</$set></$set></$list>\n</tbody></table>\n\n<em class=\"tc-edit\">Add a new attribute:</em>\n<$edit-text tiddler=\"$(state-base)$element-name\"\n tag=\"input\" default=\"\" placeholder=\"widget/element\" />\n<$edit-text tiddler=\"$(state-base)$attribute-name\"\n tag=\"input\" default=\"\" placeholder=\"attribute\" />\n<$button tooltip={{$(lingo-base)$NewAttribute/Hint}}\n aria-label={{$(lingo-base)$NewAttribute/Caption}}>\n<$set name=\"tiddlerName\"\n filter=\"[<prefix-attr>addsuffix{$(state-base)$element-name}addsuffix[/]addsuffix{$(state-base)$attribute-name}]\">\n<$action-setfield $tiddler=<<tiddlerName>>\n text={{$:/config/flibbles/relink/settings/default-type}} />\n</$set>\n<$action-deletetiddler $tiddler=\"$(state-base)$attribute-name\" />\n<$action-deletetiddler $tiddler=\"$(state-base)$element-name\" />\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Fields": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Fields",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Fields/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\define prefix-fields() $:/config/flibbles/relink/fields/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define state-base() $:/state/flibbles/relink/\n\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Fields}}\n\n<table><tbody>\n<tr><th>Field Name</th><th>Field Type</th><th>Delete</th></tr>\n<$list filter=\"[all[shadows+tiddlers]prefix<prefix-fields>!has[draft.of]has[text]]\">\n<tr>\n<td><$list filter=\"[all[current]removeprefix<prefix-fields>]\"><<currentTiddler>></$list></td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</tr>\n</$list>\n</tbody></table>\n\n<em class=\"tc-edit\">Add a new field:</em>\n<$edit-text tiddler=\"$(state-base)$field-name\"\n tag=\"input\" default=\"\" placeholder=\"field name\" />\n<$button tooltip={{$(lingo-base)$NewField/Hint}}\n aria-label={{$(lingo-base)$NewField/Caption}}>\n<$set name=\"tiddlerName\"\n filter=\"[<prefix-fields>addsuffix{$(state-base)$field-name}]\">\n<$action-setfield $tiddler=<<tiddlerName>>\n text={{$:/config/flibbles/relink/settings/default-type}} />\n</$set>\n<$action-deletetiddler $tiddler=\"$(state-base)$field-name\" />\n<$text text={{$(lingo-base)$NewField/Caption}}/>\n</$button>\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Macros": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Macros",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Macros/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\define prefix-macro() $:/config/flibbles/relink/macros/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define state-base() $:/state/flibbles/relink/\n\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Macros}}\n\n<table><tbody>\n<tr><th>Macro</th><th>Parameter</th><th>Type</th><th>Delete</th></tr>\n<$list filter=\"[all[shadows+tiddlers]prefix<prefix-macro>!has[draft.of]has[text]]\">\n<$set name=\"parameter\"\n filter=\"[all[current]removeprefix<prefix-macro>relink:splitafter[/]]\">\n<$set name=\"macro\"\n filter=\"[all[current]removeprefix<prefix-macro>removesuffix<parameter>removesuffix[/]]\">\n<tr>\n<td><$text text=<<macro>> /></td>\n<td><$text text=<<parameter>> /></td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</tr>\n</$set></$set></$list>\n</tbody></table>\n\n<em class=\"tc-edit\">Add a new macro parameter:</em>\n<$edit-text tiddler=\"$(state-base)$macro-name\"\n tag=\"input\" default=\"\" placeholder=\"macro\" />\n<$edit-text tiddler=\"$(state-base)$parameter-name\"\n tag=\"input\" default=\"\" placeholder=\"parameter\" />\n<$button tooltip={{$(lingo-base)$NewParameter/Hint}}\n aria-label={{$(lingo-base)$NewParameter/Caption}}>\n<$set name=\"tiddlerName\"\n filter=\"[<prefix-macro>addsuffix{$(state-base)$macro-name}addsuffix[/]addsuffix{$(state-base)$parameter-name}]\">\n<$action-setfield $tiddler=<<tiddlerName>>\n text={{$:/config/flibbles/relink/settings/default-type}} />\n</$set>\n<$action-deletetiddler $tiddler=\"$(state-base)$parameter-name\" />\n<$action-deletetiddler $tiddler=\"$(state-base)$macro-name\" />\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Operators": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Operators",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Operators/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\define prefix-ops() $:/config/flibbles/relink/operators/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define state-base() $:/state/flibbles/relink/\n\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Operators}}\n\n<table><tbody>\n<tr><th>Filter Operator</th><th>Operand Type</th><th>Delete</th></tr>\n<$list filter=\"[all[shadows+tiddlers]prefix<prefix-ops>!has[draft.of]has[text]]\">\n<tr>\n<td><$list variable=\"listItem\" filter=\"[<currentTiddler>removeprefix<prefix-ops>]\"><<listItem>></$list></td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</tr>\n</$list>\n</tbody></table>\n\n<em class=\"tc-edit\">Add a new filter operator:</em>\n<$edit-text tiddler=\"$(state-base)$operator-name\"\n tag=\"input\" default=\"\" placeholder=\"operator name\" />\n<$button tooltip={{$(lingo-base)$NewOperator/Hint}}\n aria-label={{$(lingo-base)$NewOperator/Caption}}>\n<$set name=\"tiddlerName\"\n filter=\"[<prefix-ops>addsuffix{$(state-base)$operator-name}]\">\n<$action-setfield $tiddler=<<tiddlerName>> text={{$:/config/flibbles/relink/settings/default-type}} />\n</$set>\n<$action-deletetiddler $tiddler=\"$(state-base)$operator-name\" />\n<$text text={{$(lingo-base)$NewOperator/Caption}}/>\n</$button>\n\\end\n\n<<body>>\n"
}
}
}
{
"tiddlers": {
"$:/plugins/giffmex/subsume/editortoolbarbutton/subsume": {
"text": "<$action-sendmessage\n $message=\"tm-edit-text-operation\"\n $param=\"wrap-selection\"\n prefix='<<subsume \"'\n suffix='\">>'\n/>",
"title": "$:/plugins/giffmex/subsume/editortoolbarbutton/subsume",
"tags": "$:/tags/EditorToolbar",
"modified": "20210817151638727",
"icon": "$:/plugins/giffmex/subsume/images/subsume",
"created": "20210710170117616",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]"
},
"$:/plugins/giffmex/subsume/editortoolbarbutton/subsume-edit": {
"text": "<$action-sendmessage\n $message=\"tm-edit-text-operation\"\n $param=\"wrap-selection\"\n prefix='<<subsume-edit \"'\n suffix='\">>'\n/>",
"title": "$:/plugins/giffmex/subsume/editortoolbarbutton/subsume-edit",
"tags": "$:/tags/EditorToolbar",
"modified": "20210817131225113",
"icon": "$:/plugins/giffmex/subsume/images/subsume-edit",
"created": "20210817131157395",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]"
},
"$:/plugins/giffmex/subsume/images/subsume": {
"text": "<strong>subs</strong>",
"title": "$:/plugins/giffmex/subsume/images/subsume",
"tags": "",
"modified": "20210716134940260",
"created": "20210716133010586"
},
"$:/plugins/giffmex/subsume/images/subsume-edit": {
"text": "<strong>subs-e</strong>",
"title": "$:/plugins/giffmex/subsume/images/subsume-edit",
"tags": "",
"modified": "20210817125312358",
"created": "20210817125257505"
},
"$:/plugins/giffmex/subsume/macro/": {
"text": "\\define subsume(tid:\"\") <details><summary><$view tiddler=\"$tid$\" field=\"title\"/><$link to=\"$tid$\"> * </$link></summary><span class=\"indent1\"><$transclude tiddler=\"$tid$\" field=\"text\" mode=\"block\"/></span></details>",
"title": "$:/plugins/giffmex/subsume/macro/",
"tags": "$:/tags/Macro",
"modified": "20210817123924920",
"icon": "$:/plugins/giffmex/subsume/images/subsume",
"created": "20210716133749386"
},
"$:/plugins/giffmex/subsume/macro/subsume-edit": {
"text": "\\define subsume-edit(tid:\"\") <details><summary><$view tiddler=\"$tid$\" field=\"title\"/> <$button class=\"tc-btn-invisible\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param=\"$tid$\" /> ^^{{$:/core/images/edit-button}}^^ </$button></summary><span class=\"indent1\"><$transclude tiddler=\"$tid$\" field=\"text\" mode=\"block\"/></span></details>",
"title": "$:/plugins/giffmex/subsume/macro/subsume-edit",
"tags": "$:/tags/Macro",
"modified": "20210817134812180",
"icon": "$:/plugins/giffmex/subsume/images/subsume-edit",
"created": "20210817123937594"
},
"$:/plugins/giffmex/subsume/readme": {
"text": "The Subsume plugin allows you to \"subsume\" (insert) one tiddler inside another under a slider and either\n\n* a link (to open in view mode) `<<subsume \"tiddler title\">>`\n* or a button (to open in edit mode). `<<subsume-edit \"tiddler title\">>`\n\n\n\nFor usage instructions see the demo site: https://giffmex.org/gifts/subsume.html\n\n",
"title": "$:/plugins/giffmex/subsume/readme",
"tags": "",
"modified": "20210817131256516",
"created": "20210817125801191"
},
"$:/plugins/giffmex/subsume/stylesheet": {
"text": "html body.tc-body details summary > * {\n display: inline;\n}\n\nhtml body.tc-body details summary { \n cursor: pointer;\n}\n\nhtml body.tc-body summary a * {\n pointer-events: none;\n}\n\ndetails {\n border:none;padding-left:10px;padding-right:20px;\n\n}\n\ndetails[open] > summary {\nfont-weight:bold;\n}\n\nhtml body.tc-body .indent1 {\nmargin-left:1.5em;display:block;\n}",
"type": "text/css",
"title": "$:/plugins/giffmex/subsume/stylesheet",
"tags": "$:/tags/Stylesheet",
"modified": "20210716142155614",
"created": "20210716133039906"
},
"$:/config/flibbles/relink/macros/subsume-edit/tide": {
"text": "title",
"title": "$:/config/flibbles/relink/macros/subsume-edit/tide",
"tags": "",
"modified": "20210819135726162",
"created": "20210819135548785"
},
"$:/config/flibbles/relink/macros/subsume/tid": {
"created": "20210903183205275",
"text": "title",
"tags": "",
"title": "$:/config/flibbles/relink/macros/subsume/tid",
"modified": "20210903183222526"
}
}
}
{
"tiddlers": {
"$:/jd/fullscreen-editor/EditButton": {
"text": "\\whitespace trim\n<$navigator story=\"$:/fullscreen-editor\">\n<$button message=\"tm-edit-tiddler\" tooltip=\"Edit in full screen mode\" 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\">\n<$text text=\" \"/>\n<$text text=\"edit in full screen\"/>\n</span>\n</$list>\n</$button>\n</$navigator>",
"title": "$:/jd/fullscreen-editor/EditButton",
"tags": "$:/tags/ViewToolbar",
"modifier": "jd",
"modified": "20190204134418116",
"description": "Edit in full screen mode",
"creator": "jd",
"created": "20190204123121582",
"caption": "{{$:/core/images/full-screen-button}} edit in full screen"
},
"$:/jd/fullscreen-editor/EditTemplate": {
"text": "<$navigator story=\"$:/fullscreen-editor\">\n<$keyboard key=((cancel-edit-tiddler)) message=\"tm-cancel-tiddler\">\n<$keyboard key=((save-tiddler)) actions=\"\"\"<$action-sendmessage $message=\"tm-save-tiddler\"/><$action-sendmessage $message=\"tm-close-tiddler\"/>\"\"\" class=\"fullscreen-story-river\" tag=\"div\">\n{{||$:/core/ui/EditTemplate/controls}}\n{{||$:/core/ui/EditTemplate/body}}\n</$keyboard>\n</$keyboard>\n</$navigator>",
"title": "$:/jd/fullscreen-editor/EditTemplate",
"modifier": "jd",
"modified": "20190204140310285",
"creator": "jd",
"created": "20190204123536452"
},
"$:/jd/fullscreen-editor/PageTemplate": {
"text": "<$list filter=\"[list[$:/fullscreen-editor]]\" template=\"$:/jd/fullscreen-editor/ViewTemplate\" editTemplate=\"$:/jd/fullscreen-editor/EditTemplate\"/>\n",
"title": "$:/jd/fullscreen-editor/PageTemplate",
"tags": "$:/tags/PageTemplate",
"modifier": "jd",
"modified": "20190204135522488",
"creator": "jd",
"created": "20190204123350692"
},
"$:/jd/fullscreen-editor/Stylesheet": {
"text": "<$list filter=\"[[$:/fullscreen-editor]has:field[list]!field:list[]]\">\n<$list filter=\"[[$:/fullscreen-editor]search:list[draft of]]\">\n\n.tc-story-river {display: none; }\n\n.fullscreen-story-river {\n background-color: <<colour tiddler-editor-background>>;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: block;\n z-index: 2200;\n overflow-y: auto;\n}\n\n.fullscreen-story-river .tc-tiddler-edit-title {\n position: sticky;\n top: 0;\n background: <<colour page-background>>;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.5em 1em;\n}\n\n.fullscreen-story-river .tc-tiddler-edit-title > div:nth-child(2) {\n display: none;\n}\n\n.fullscreen-story-river .tc-tiddler-controls.tc-titlebar,\n.fullscreen-story-river .tc-tiddler-controls.tc-titlebar .tc-btn-invisible {\n display: flex;\n align-items: center;\n}\n\n.fullscreen-story-river .tc-editor-toolbar {\n background: <<colour page-background>>;\n padding: 0.25em 1em;\n margin: 0;\n}\n\n.fullscreen-story-river .tc-editor-toolbar button {\n background: <<colour page-background>>;\n}\n\n.fullscreen-story-river textarea.tc-edit-texteditor {\n border: none;\n padding: 1em;\n background-color: <<colour tiddler-editor-background>>;\n}\n\n<$list filter=\"[[$:/state/showeditpreview]text[yes]]\">\n.fullscreen-story-river iframe.tc-edit-texteditor { width: 49%; }\n</$list>\n\n<$list filter=\"[[$:/state/showeditpreview]!text[yes]]\">\n.fullscreen-story-river iframe.tc-edit-texteditor { width: 100%; }\n</$list>\n\n</$list>\n</$list>",
"title": "$:/jd/fullscreen-editor/Stylesheet",
"tags": "$:/tags/Stylesheet",
"modifier": "jd",
"modified": "20190204141756609",
"creator": "jd",
"created": "20190204124703056"
},
"$:/jd/fullscreen-editor/readme": {
"created": "20190206054820870",
"creator": "HC Haase",
"text": "With ''~FullscreenEditor'', you'll be able to edit the current tiddler distraction-free with this button, found at the usual tiddler controls: @@font-size:1.5em;{{||$:/jd/fullscreen-editor/EditButton}}@@\n\nAlso in this mode, <kbd>ctrl</kbd>+<kbd>enter</kbd> will save and close the tiddler, and <kbd>esc</kbd> will cancel the edit (or whatever keyboard shortcut have been set for these two actions at $:/core/ui/ControlPanel/KeyboardShortcuts).",
"title": "$:/jd/fullscreen-editor/readme",
"modifier": "HC Haase",
"modified": "20190206054846709"
}
}
}
{"tiddlers":{"$:/plugins/kookma/timelines/history":{"title":"$:/plugins/kookma/timelines/history","created":"20190728105034927","modified":"20190809095334421","tags":"","type":"text/vnd.tiddlywiki","text":"!! 1.0.0 -- final release\n<<<\n; 9th August 2019\n* The `timeline-horizontal` gets data format to control how event date is displayed\n* Timelines macros have gotten new name for consistency\n* Several demo tiddlers have been added\n* Documentation has been improved\n<<<\n\n!! 0.6.0 -- beta release\n<<<\n; 31st July 2019\n* New tehran timeline added\n* New ilam timeline added\n<<<\n\n!! 0.5.0 -- first release\n<<<\n; 28th July 2019\n* added gilan timeline\n* added kerman timeline\n\n<<<"},"$:/plugins/kookma/timelines/images/right-arrow":{"title":"$:/plugins/kookma/timelines/images/right-arrow","created":"20190803170744291","modified":"20190803172150770","tags":"","type":"image/svg+xml","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\">\n <path fill=\"#7b9d6f\" d=\"M6 13.4L4.6 12l4-4-4-4L6 2.6 11.4 8z\"/>\n</svg>\n"},"$:/plugins/kookma/timelines/license":{"title":"$:/plugins/kookma/timelines/license","created":"20190728105034927","modified":"20190731141014378","tags":"","type":"text/vnd.tiddlywiki","text":"This plugin is licensed under the ..."},"$:/plugins/kookma/timelines/macros/gilan":{"title":"$:/plugins/kookma/timelines/macros/gilan","created":"20190728030350471","creator":"Mohammad","modified":"20190809091950902","modifier":"Mohammad","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define __tl-gilan(filter, limit:10, template:\"\", footer:\"footer\", class, date:\"modified\")\n<$set name=templateTiddler value=<<__template__>> emptyValue=\"$:/plugins/kookma/timelines/templates/gilan\" >\n<div class=\"kk-tl-gilan\">\n\n<$list filter=\"[subfilter<__filter__>limit[$limit$]]\" emptyMessage=\"Timeline: no tiddler found or wrong filter is passed!\" >\n<div class=\"item kk-tl-gilan-$class$\"> <!--display content-->\n\n<$transclude tiddler=<<templateTiddler>> mode=\"block\"/>\n\n</div>\n</$list>\n\n</div>\n</$set>\n\\end\n"},"$:/plugins/kookma/timelines/macros/ilam/left-pos":{"title":"$:/plugins/kookma/timelines/macros/ilam/left-pos","created":"20190808091910997","creator":"Mohammad","modified":"20190809095022884","modifier":"Mohammad","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define __tlIlam-ItemSpace() 120 <!-- the space at the left of each item used to calculate the position of items-->\n\\define __tlIlam-EventLength()\n<!--this calculate the extra pixels required for events date appears on the timeline. Each format has a certain width which has to be added to calculate the length of filling line -->\n\n<$list filter=\"[<__dateformat__>match[YYYY]]\" variable=ignore>16</$list>\n<$list filter=\"[<__dateformat__>match[0DD mmm YYYY]]\" variable=ignore>32</$list>\n<$list filter=\"[<__dateformat__>match[mmm DDth]]\" variable=ignore>20</$list>\n\\end\n\n\n\n\n\n\\define __tlIlam-LeftPosition() \n<!--calculates the left position of each item -->\n<$list filter=\"[list<container>allbefore:include<currentTiddler>count[]multiply<__tlIlam-ItemSpace>]\" variable=\"leftpos\">\nleft:<<leftpos>>px;\n</$list>\n\\end\n\n\\define __tlIlam-LineLength() \n<!--calculates the length of filling line -->\n<!-- number of items displayed on screen: 3 -->\n\n<$wikify name=txt-length text=<<__tlIlam-EventLength>> >\n<!-- selected item is in the container list -->\n<$list filter=\"[list<container>allbefore:include<selected-item>limit[1]]\">\n<$set name=length filter=\"[list<container>allbefore:include<selected-item>count[]multiply<__tlIlam-ItemSpace>add<txt-length>]\">\nwidth: <<length>>px;\n</$set>\n</$list>\n\n<!-- container items are after selected item -->\n<$set name=last-item filter=\"[list<container>last[]]\" >\n<$list filter=\"[subfilter<__filter__>allafter<last-item>match<selected-item>]\">\n<$set name=length filter=\"[[3]multiply<__tlIlam-ItemSpace>add<txt-length>]\">\nwidth: <<length>>px;\n</$set>\n</$list>\n</$set>\n\n</$wikify>\n\\end"},"$:/plugins/kookma/timelines/macros/ilam/pull-next":{"title":"$:/plugins/kookma/timelines/macros/ilam/pull-next","created":"20190802111248208","creator":"Mohammad","modified":"20190809091129857","modifier":"Mohammad","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define __tlIlam-PullNext()\n<!-- number of items displayed on screen: 3 -->\n<$vars\n first-item={{{ [list<container>first[1]] }}}\n last-item={{{ [list<container>last[1]] }}}\n>\n\n<$action-setfield $tiddler=<<container>> list=\"\"/>\n<$list filter=\"[subfilter<__filter__>allafter:include<last-item>first[3]count[]] -1 -2 ~[[::false]]\" variable=result>\n <$list filter=\"[<result>prefix[::false]]\" variable=ignore>\n <$action-listops $tiddler=<<container>> $subfilter=\"[subfilter<__filter__>last[3]]\"/>\n </$list>\n <$list filter=\"[<result>!prefix[::false]]\" variable=case>\n <$action-listops $tiddler=<<container>> $subfilter=\"[subfilter<__filter__>allafter:include<last-item>first[3]] ~[subfilter<__filter__>last[3]]\"/> \n </$list> \n</$list>\n\n</$vars>\n\\end\n"},"$:/plugins/kookma/timelines/macros/ilam/pull-prev":{"title":"$:/plugins/kookma/timelines/macros/ilam/pull-prev","created":"20190802101726795","creator":"Mohammad","modified":"20190809091132645","modifier":"Mohammad","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define __tlIlam-PullPrevious()\n<!-- number of items displayed on screen: 3 -->\n<$vars\n first-item={{{ [list<container>first[1]] }}}\n last-item={{{ [list<container>last[1]] }}}\n>\n\n<$action-setfield $tiddler=<<container>> list=\"\"/>\n<$list filter=\"[subfilter<__filter__>allbefore:include<first-item>last[3]count[]] -1 -2 ~[[::false]]\" variable=result>\n <$list filter=\"[<result>prefix[::false]]\" variable=ignore>\n <$action-listops $tiddler=<<container>> $subfilter=\"[subfilter<__filter__>first[3]]\"/>\n </$list>\n <$list filter=\"[<result>!prefix[::false]]\" variable=case>\n <$action-listops $tiddler=<<container>> $subfilter=\"[subfilter<__filter__>allbefore:include<first-item>last[3]] ~[subfilter<__filter__>first[3]]\"/> \n </$list> \n</$list>\n\n</$vars>\n\\end\n"},"$:/plugins/kookma/timelines/macros/ilam":{"title":"$:/plugins/kookma/timelines/macros/ilam","created":"20190807174733718","creator":"Mohammad","modified":"20190809094107338","modifier":"Mohammad","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define __tl-ilam(filter, limit:10, template:\"\", footer:\"footer\", class, date:\"modified\", stateTiddler:\"\", dateformat:\"YYYY\")\n<!-- dateformat here is a hidden argument. It can be changed to \"0DD mmm YYYY\" if the eventlength is set to 32.\nSee $:/plugins/kookma/timelines/macros/ilamleft-pos -->\n\n\n<$set name=container value=<<qualify \"\"\"$:/state-tl/ilam-$stateTiddler$\"\"\">> emptyValue=<<__tlIlam-CreateStateTiddler>> >\n<$set name=selected-item value={{{[<container>get[text]] ~[subfilter<__filter__>first[]]}}} >\n\n\n<div class=\"kk-tl-ilam kk-tl-ilam-container\">\n<div class=\"dates\">\n<div class=\"line\">\n\n<ol>\n\n<$list filter=\"[list<container>]\" variable=\"entry\"> <!-- main list -->\n\n<$list filter=\"[subfilter<__filter__>allbefore<selected-item>match<entry>]\"><!-- all before selected item -->\n<$wikify name=\"stleft\" text=<<__tlIlam-LeftPosition>> >\n<li>\n<$button class=\"tc-btn-invisible date date--older-event\" style=<<stleft>> >\n<<__tlIlam-changeit>><<__tlIlam_ShowEventDate>>\n</$button>\n</li>\n</$wikify>\n</$list>\n\n<$list filter=\"[<entry>match<selected-item>]\"><!-- the selected item -->\n<$wikify name=\"stleft\" text=<<__tlIlam-LeftPosition>> >\n<li>\n<$button class=\"tc-btn-invisible date date--selected\" style=<<stleft>> >\n<<__tlIlam-changeit>><<__tlIlam_ShowEventDate>> \n</$button>\n</li>\n</$wikify>\n</$list>\n\n<$list filter=\"[subfilter<__filter__>allafter<selected-item>match<entry>]\"><!-- all after selected item -->\n<$wikify name=\"stleft\" text=<<__tlIlam-LeftPosition>> >\n<$button class=\"tc-btn-invisible date\" style=<<stleft>> >\n<<__tlIlam-changeit>><<__tlIlam_ShowEventDate>> \n</$button>\n</$wikify>\n</$list>\n\n</$list><!--- main list -->\n\n</ol>\n\n\n<$wikify name=\"stlength\" text=<<__tlIlam-LineLength>> ><!-- the filling line -->\n<span class=\"filling-line\" style=<<stlength>> aria-hidden=\"xtrue\"></span>\n</$wikify>\n\n</div><!--line-->\n</div><!-- dates-->\n\n<ul><!-- arrow btns-->\n<li>\n<$button class=\"tc-btn-invisible text-replace navigation navigation--prev\">Prev\n<<__tlIlam-PullPrevious>>\n</$button>\n</li>\n<li>\n<$button class=\"tc-btn-invisible text-replace navigation navigation--next\">Next\n<<__tlIlam-PullNext>>\n</$button>\n</li>\n</ul>\n</div><!-- container-->\n\n<$set name=templateTiddler value=<<__template__>> emptyValue=\"$:/plugins/kookma/timelines/templates/ilam\" >\n<div class=\"kk-tl-ilam-content kk-tl-ilam-$class$\"><!--display contents-->\n<$tiddler tiddler=<<selected-item>> >\n<$transclude tiddler=<<templateTiddler>> mode=\"block\"/>\n</$tiddler>\n</div>\n</$set>\n\n</$set>\n</$set>\n\\end\n\n\n\\define __tlIlam-changeit()\n<$action-setfield $tiddler=<<container>> text=<<currentTiddler>>/>\n\\end\n\n\\define __tlIlam_ShowEventDate()\n<$list filter=\"[<__dateformat__>match[YYYY]]\" variable=ignore>\n<$view field=<<__date__>> format=date template=\"YYYY\" /> \n</$list>\n<$list filter=\"[<__dateformat__>match[0DD mmm YYYY]]\" variable=ignore>\n<$view field=<<__date__>> format=date template=\"0DD mmm YYYY\" /> \n</$list>\n<$list filter=\"[<__dateformat__>match[mmm DDth]]\" variable=ignore>\n<$view field=<<__date__>> format=date template=\"mmm DDth\" /> \n</$list>\n\\end\n\n\\define __tlIlam-CreateStateTiddler() \n<!-- the statet tiddler intentionally prefixed with $:/state-tl to remain after closing the wiki. On \nNode.js closing and reopening wiki will remove all $:/state tiddlers -->\n<<qualify \"\"\"$:/state-tl/ilam-$(currentTiddler)$\"\"\">>\n\\end"},"$:/plugins/kookma/timelines/macros/kerman":{"title":"$:/plugins/kookma/timelines/macros/kerman","created":"20190728110533303","modified":"20190809100443490","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define __tl-kerman(filter, limit:10, template:\"\", footer:\"footer\", class:\"light\", date:\"modified\", dateformat:\"mmm 0DDth YYYY\")\n<$set name=templateTiddler value=<<__template__>> emptyValue=\"$:/plugins/kookma/timelines/templates/kerman\" >\n<div class=\"kk-tl-kerman kk-tl-kerman-$class$\">\n<ul>\n<$list filter=\"[subfilter<__filter__>limit[$limit$]]\" emptyMessage=\"Timeline: no tiddler found or wrong filter is passed!\" >\n<li>\n<span></span><!--display content-->\n\n<$transclude tiddler=<<templateTiddler>> mode=\"block\"/>\n\n<div class=\"item-timedate\">\n<span><<____tlkerman_ShowEventDate-month>></span>\n<span><<____tlkerman_ShowEventDate-year>></span>\n</div>\n</li>\n</$list>\n</ul>\n</div>\n\\end\n\n\\define ____tlkerman_ShowEventDate-year()\n<$list filter=\"[<__dateformat__>search[YYYY]]\" variable=ignore>\n<$view field=<<__date__>> format=date template=\"YYYY\"/>\n</$list>\n\\end\n\n\\define ____tlkerman_ShowEventDate-month()\n<$list filter=\"[<__dateformat__>search[mmm DDth]]\" variable=ignore>\n<$view field=<<__date__>> format=date template=\"mmm DDth\"/>\n</$list>\n\\end"},"$:/plugins/kookma/timelines/macros/main":{"title":"$:/plugins/kookma/timelines/macros/main","created":"20190807191809183","creator":"Mohammad","modified":"20190809100321680","modifier":"Mohammad","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define timeline-horizontal(filter, limit:10, template:\"\", footer:\"footer\", class, date:\"modified\", stateTiddler, dateformat:\"YYYY\")\n<$macrocall $name=\"__tl-ilam\" filter=<<__filter__>> limit=<<__limit__>> template=<<__template__>> footer=<<__footer__>> class=<<__class__>> date=<<__date__>> stateTiddler=<<__stateTiddler__>> dateformat=<<__dateformat__>> />\n\\end\n\\define timeline-vertical(filter, limit:10, template:\"\", footer:\"footer\", class:\"light\", date:\"modified\", dateformat:\"mmm 0DDth YYYY\")\n<$macrocall $name=\"__tl-kerman\" filter=<<__filter__>> limit=<<__limit__>> template=<<__template__>> footer=<<__footer__>> class=<<__class__>> date=<<__date__>> dateformat=<<__dateformat__>> />\n\\end\n\n\n\\define sequence-horizontal(filter, limit:10, template:\"\", footer:\"footer\", class:\"primary\", date:\"modified\", stateTiddler)\n<$macrocall $name=\"__tl-tehran\" filter=<<__filter__>> limit=<<__limit__>> template=<<__template__>>\n footer=<<__footer__>> class=<<__class__>> date=<<__date__>> stateTiddler=<<__stateTiddler__>> />\n\\end\n\\define sequence-vertical(filter, limit:10, template:\"\", footer:\"footer\", class, date:\"modified\")\n<$macrocall $name=\"__tl-gilan\" filter=<<__filter__>> limit=<<__limit__>> template=<<__template__>>\n footer=<<__footer__>> class=<<__class__>> date=<<__date__>> />\n\\end"},"$:/plugins/kookma/timelines/macros/tehran":{"title":"$:/plugins/kookma/timelines/macros/tehran","created":"20190730190751458","creator":"Mohammad","modified":"20190809091708029","modifier":"Mohammad","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define __tl-tehran(filter, limit:10, template:\"\", footer:\"footer\", class:\"primary\", date:\"modified\", stateTiddler)\n<!-- creates a horizontal sequence -->\n\n<$set name=container value=<<qualify \"\"\"$:/state/tl/tehran-$stateTiddler$\"\"\">> emptyValue=<<__tlTehran-CreateStateTiddler>> >\n<$set name=selected-item value={{{[<container>get[text]] ~[subfilter<__filter__>first[]]}}} >\n\n<div class=\"kk-tl-tehran kk-tl-tehran-$class$\">\n\n<$set name=templateTiddler value=<<__template__>> emptyValue=\"$:/plugins/kookma/timelines/templates/tehran\" >\n<div class=\"kk-tl-tehran-content\"><!-- display content of selected tiddler -->\n<$list filter=\"[<container>get[text]] ~[<selected-item>]\" template=<<templateTiddler>> />\n</div>\n</$set>\n\n<ul>\n<$list filter=\"[subfilter<__filter__>limit[$limit$]]\" variable=\"entry\"><!-- main list -->\n<$list filter=\"[<entry>match<selected-item>] ~[[::not-selected]]\" variable=choice>\n<$list filter=\"[<choice>match<selected-item>]\">\n<li class=\"kk-tl-tehran-active\">\n<$button class=\"tc-btn-invisible\"><<__tlTehran-changeit>>\n<$count filter='[subfilter<__filter__>allbefore:include<entry>]'/>\n</$button>\n</li>\n</$list>\n<$list filter=\"[<choice>match[::not-selected]]\">\n<li>\n<$button class=\"tc-btn-invisible\"><<__tlTehran-changeit>>\n<$count filter='[subfilter<__filter__>allbefore:include<entry>]'/>\n</$button>\n</li>\n</$list>\n</$list>\n</$list>\n</ul>\n\n</div>\n</$set>\n</$set>\n\\end\n\n\\define __tlTehran-changeit()\n<$action-setfield $tiddler=<<container>> text=<<entry>>/>\n\\end\n\n\\define __tlTehran-CreateStateTiddler() <<qualify \"\"\"$:/state/tl/tehran-$(currentTiddler)$\"\"\">>"},"$:/plugins/kookma/timelines/readme":{"title":"$:/plugins/kookma/timelines/readme","created":"20190806191421721","modified":"20190809193007184","tags":"","type":"text/vnd.tiddlywiki","text":"!! How to use\n<<<\nTimelines is a collection of four macros for creating vertical and horizontal timeline and sequence. The content or description and data of events are stored in individual tiddlers. \n\nTimelines contain two timeline macros and two sequence macros. A sequence macro shows event contents in sequence not necessarily in chronological order. The order can be determined by tag or list field or other methods.\n\nThe date of events can be stored in a separate field or the `modified` field can be used.\n<<<\n\n!! Syntax\n<<<\n```\n<<timeline-horizontal filter limit:10 template:\"\" footer:\"footer\" \n class date:\"modified\" stateTiddler dateformat:\"YYYY\">>\n<<sequence-horizontal filter limit:10 template:\"\" footer:\"footer\" \n class date:\"modified\" stateTiddler dateformat:\"mmm DDth YYYY\">>\n\n<<timeline-vertical filter limit:10 template:\"\" footer:\"footer\" class date:\"modified\">>\n<<sequence-vertical filter limit:10 template:\"\" footer:\"footer\" class date:\"modified\">>\n```\n!! Content and parameters\n\n|Parameter |Type |Description |h\n|filter |required|a Tiddlywiki filter to select tiddlers for presentation |\n|limit | optional|maximum number of tiddlers to be shown. Default value is 10|\n|template |optional|a template to display the tiddler content|\n|footer |optional|the field name which stores an extra text to be displayed as footer|\n|class|optional|an extra class to customize how tiddler content is displayed|\n|date |optional|the field name which stores a date in standard Tiddlywiki format. Default field is `modified`|\n|stateTiddler |optional|the name of a state tiddler to keep the state of events. Each call to macro needs a unique state tiddler|\n|dateformat |optional|only in `timeline-horizontal` and `timeline-vertical`, the format for displaying event date.|\n\nMore explanation with examples can be found at [[GitHub demo page|https://kookma.github.io/TW-Timelines/#Filter%20Parameter:%5B%5BFilter%20Parameter%5D%5D%20%5B%5BColor%20classes%5D%5D%20%5B%5BTemplate%20Parameter%5D%5D]].\n\n!!! The dateformat parameter\nThe dateformat lets to customize the event date displayed on the timeline.\n\n;timeline-horizontal\nFor `timeline-horizontal` macro the default value is `YYYY`, the other two forms of date are \n\n* `mmm DDth`, and \n* `0DD mmm YYYY`. \n\nOther format will not be displayed!\n\n;timeline-vertical\nFor the `timeline-vertical` macro the default value is `mmm DDth YYYY`, the other two forms of date are \n\n* `mmm DDth` to show only the month and day and hide year\n* `YYYY` to show only year and hide the month\n\nOther format will not be displayed!\n\n!!! Important note\nWhen the `timeline-horizontal` is used, the timeline at first does not show the event date on the line. This is because the macro uses a state tiddler at first it does not exist. Simply click on pull previous or pull next buttons to create the state tiddler and show the events date. Note that the state tiddlers here are prefixed with `$:/state-tl/ilam` and so when TW closed and reopened the state tiddler will not removed.\n<<<\n\n! Install\n<<<\nSimply drag and drop $:/plugins/kookma/timelines into your wiki\n<<<\n\n\n! Project code and demo\n<<<\n* [[GitHub demo page|https://kookma.github.io/TW-Timelines/]]\n* [[GitHub code page|https://github.com/kookma/TW-Timelines]]\n<<<"},"$:/plugins/kookma/timelines/styles/colors/danger":{"title":"$:/plugins/kookma/timelines/styles/colors/danger","created":"20190728130345162","modified":"20190807125132908","type":"application/json","text":"{\n \"class\": \"danger\",\n \"color\": \"#721c24\",\n \"background\": \"#f8d7da\",\n \"border\": \"#f5c6cb\",\n \"link\":\"#491217\",\n \"light-background\":\"#fdf4f5\"\n}"},"$:/plugins/kookma/timelines/styles/colors/dark":{"title":"$:/plugins/kookma/timelines/styles/colors/dark","created":"20190728131052818","modified":"20190807125535256","type":"application/json","text":"{\n \"class\": \"dark\",\n \"color\": \"#1b1e21\",\n \"background\": \"#d6d8d9\",\n \"border\": \"#c6c8ca\",\n \"link\":\"#040505\",\n \"light-background\":\"#f0f1f2\"\n}\n"},"$:/plugins/kookma/timelines/styles/colors/info":{"title":"$:/plugins/kookma/timelines/styles/colors/info","created":"20190728130904282","modified":"20190807125146617","type":"application/json","text":"{\n \"class\": \"info\",\n \"color\": \"#0c5460\",\n \"background\": \"#d1ecf1\",\n \"border\": \"#bee5eb\",\n \"link\":\"#062c33\",\n \"light-background\":\"#ebf7f9\"\n}"},"$:/plugins/kookma/timelines/styles/colors/light":{"title":"$:/plugins/kookma/timelines/styles/colors/light","created":"20190728130954966","modified":"20190807125356967","type":"application/json","text":"{\n \"class\": \"light\",\n \"color\": \"#818182\",\n \"background\": \"#fefefe\",\n \"border\": \"#818182\",\n \"link\":\"#686868\",\n \"light-background\":\"#ededed\"\n}"},"$:/plugins/kookma/timelines/styles/colors/primary":{"title":"$:/plugins/kookma/timelines/styles/colors/primary","created":"20190728121750730","modified":"20190807125316412","type":"application/json","text":"{\n \"class\": \"primary\",\n \"color\": \"#004085\",\n \"background\": \"#cce5ff\",\n \"border\": \"#b8daff\",\n \"link\": \"#002752\",\n \"light-background\":\"#eef6ff\"\n}"},"$:/plugins/kookma/timelines/styles/colors/secondary":{"title":"$:/plugins/kookma/timelines/styles/colors/secondary","created":"20190728125327822","modified":"20190807125306047","type":"application/json","text":"{\n \"class\": \"secondary\",\n \"color\": \"#383d41\",\n \"background\": \"#e2e3e5\",\n \"border\": \"#d6d8db\",\n \"link\":\"#202326\",\n \"light-background\":\"#f4f4f5\"\n}"},"$:/plugins/kookma/timelines/styles/colors/success":{"title":"$:/plugins/kookma/timelines/styles/colors/success","created":"20190728130620957","modified":"20190807125248679","type":"application/json","text":"{\n \"class\": \"success\",\n \"color\": \"#155724\",\n \"background\": \"#d4edda\",\n \"border\": \"#c3e6cb\",\n \"link\":\"#0b2e13\",\n \"light-background\":\"#ecf7ef\"\n}"},"$:/plugins/kookma/timelines/styles/colors/warning":{"title":"$:/plugins/kookma/timelines/styles/colors/warning","created":"20190728125523989","modified":"20190807125239308","type":"application/json","text":"{\n \"class\": \"warning\",\n \"color\": \"#856404\",\n \"background\": \"#fff3cd\",\n \"border\": \"#ffeeba\",\n \"link\":\"#533f03\",\n \"light-background\":\"#fffbef\"\n}"},"$:/plugins/kookma/timelines/styles/gilan-colors.css":{"title":"$:/plugins/kookma/timelines/styles/gilan-colors.css","created":"20190807150506323","modified":"20190807151323662","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]]\" variable=\"type\">\n\n<$vars \n selector={{{[<type>getindex[class]addprefix[.kk-tl-gilan-]]}}} \n color={{{[<type>getindex[color]]}}} \n background-color={{{[<type>getindex[background]]}}} \n border-color={{{[<type>getindex[border]]}}} \n link-color={{{[<type>getindex[link]]}}} \n light-background={{{[<type>getindex[light-background]]}}} \n >\n \n<<selector>> { color:<<color>>;}\n</$vars>\n</$list>\n"},"$:/plugins/kookma/timelines/styles/gilan.css":{"title":"$:/plugins/kookma/timelines/styles/gilan.css","created":"20190728031341875","modified":"20190809044943309","tags":"$:/tags/Stylesheet","type":"text/css","url":"https://codepen.io/letsbleachthis/pen/YJgNpv","text":"/* Lauren Chilcote acknowledged for this stylesheet */\n\n.kk-tl-gilan {\n min-width: 160px;\n max-width: 480px;\n margin: auto;\n}\n\n.kk-tl-gilan .item {\n font-size: 1em;\n line-height: 1.75em;\n border-top: 3px solid;\n -o-border-image: linear-gradient(to right, #743ad5 0%, #d53a9d 100%);\n border-image: linear-gradient(to right, #743ad5 0%, #d53a9d 100%);\n border-image-slice: 1;\n border-width: 3px;\n margin: 0;\n padding: 40px;\n counter-increment: section;\n position: relative;\n /*color: #34435E;*/\n}\n.kk-tl-gilan .item:before {\n content: counter(section);\n position: absolute;\n border-radius: 50%;\n padding: 10px;\n height: 1.25em;\n width: 1.25em;\n background-color: #34435E;\n text-align: center;\n line-height: 1.25em;\n color: #ffffff;\n font-size: 1em;\n}\n\n.kk-tl-gilan .item:nth-child(odd) {\n border-right: 3px solid;\n padding-left: 0;\n}\n.kk-tl-gilan .item:nth-child(odd):before {\n left: 100%;\n margin-left: -20px;\n}\n\n.kk-tl-gilan .item:nth-child(even) {\n border-left: 3px solid;\n padding-right: 0;\n}\n.kk-tl-gilan .item:nth-child(even):before {\n right: 100%;\n margin-right: -20px;\n}\n\n.kk-tl-gilan .item:first-child {\n border-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n\n.kk-tl-gilan .item:last-child {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.kk-tl-gilan .item-footer{\n margin-top: 10px;\n font-style: italic;\n margin-right: 20px\n}\n\n.kk-tl-gilan .item:nth-child(even) .item-footer{\n text-align: left;\n}\n.kk-tl-gilan .item:nth-child(odd) .item-footer{\n text-align: right;\n}\n"},"$:/plugins/kookma/timelines/styles/ilam/navigation-img":{"title":"$:/plugins/kookma/timelines/styles/ilam/navigation-img","created":"20190731214015056","creator":"Mohammad","modified":"20190808065558039","modifier":"Mohammad","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":".kk-tl-ilam .navigation::after {\n/*background: url(img/cd-arrow.svg) no-repeat 0 0*/\nbackground: url(<<datauri \"$:/plugins/kookma/timelines/images/right-arrow\">>) no-repeat 0 0;\n}"},"$:/plugins/kookma/timelines/styles/ilam-colors.css":{"title":"$:/plugins/kookma/timelines/styles/ilam-colors.css","created":"20190807131506701","modified":"20190807192848229","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]]\" variable=\"type\">\n\n<$vars \n selector={{{[<type>getindex[class]addprefix[.kk-tl-ilam-]]}}} \n color={{{[<type>getindex[color]]}}} \n background-color={{{[<type>getindex[background]]}}} \n border-color={{{[<type>getindex[border]]}}} \n link-color={{{[<type>getindex[link]]}}} \n light-background={{{[<type>getindex[light-background]]}}} \n >\n \n<<selector>> { background:<<background-color>>; color:<<color>>;}\n<<selector>> {padding: 15px 10px; border-radius:2px;}\n</$vars>\n</$list>\n"},"$:/plugins/kookma/timelines/styles/ilam.css":{"title":"$:/plugins/kookma/timelines/styles/ilam.css","created":"20190731203939797","creator":"Mohammad","list":"","modified":"20190809044317671","modifier":"Mohammad","tags":"$:/tags/Stylesheet","type":"text/css","text":"/* Container */\n:root {\n --max-width-large: 800px;\n}\n\n.kk-tl-ilam {\n position: relative;\n height: 100px;\n max-width: var(--max-width-large);\n}\n\n.kk-tl-ilam-container {\n width: calc(100% - 1.25em);\n margin-left: auto;\n margin-right: auto\n}\n\n/* event content */\n.kk-tl-ilam-content {\n max-width: var(--max-width-large);\n margin-left: auto;\n margin-right: auto\n}\n\n/*added later*/\n.cl.kk-tl-ilam {\n background-color: hsl(0, 0%, 97%);\n}\n.kk-tl-ilam *::before,\n.kk-tl-ilam *::after,\n.kk-tl-ilam *{\n box-sizing:border-box;\n}\n\n/* list ordered and unordered */\n.kk-tl-ilam ul, \n.kk-tl-ilam ol{\n list-type: none;\n}\n.kk-tl-ilam ul{\n font-size:0.85em\n}\n.kk-tl-ilam li{\ndisplay:inline-block\n}\n\n/*line axis events placed on that*/\n.kk-tl-ilam .line {\n position: absolute;\n z-index: 1;\n width:100%;\n left: 0;\n top: 49px;\n height: 2px;\n background-color: hsl(0, 0%, 87.3%);\n transition: transform 0.4s;\n}\n\n/* filling line */\n.kk-tl-ilam .filling-line {\n position: absolute;\n z-index: 1;\n left: 0;\n top: 0;\n height: 100%;\n background-color: hsl(74, 93%, 32%);\n -webkit-transform-origin: left center;\n -ms-transform-origin: left center;\n transform-origin: left center;\n transition: -webkit-transform 0.3s;\n transition: transform 0.3s;\n transition: transform 0.3s, -webkit-transform 0.3s\n}\n\n/* dates */\n.kk-tl-ilam .dates {\n position: relative;\n height: 100%;\n margin: 0 40px;\n overflow: hidden\n}\n\n.kk-tl-ilam .dates::after,\n.kk-tl-ilam .dates::before {\n content: '';\n position: absolute;\n z-index: 2;\n top: 0;\n height: 100%;\n width: 20px\n}\n\n.kk-tl-ilam .dates::before {\n left: 0;\n background: linear-gradient(to right, hsl(0, 0%, 100%), hsla(0, 0%, 100%, 0));\n}\n\n.kk-tl-ilam .dates::after {\n right: 0;\n background: linear-gradient(to left, hsl(0, 0%, 100%), hsla(0, 0%, 100%, 0));\n}\n\n/* date item */\n.kk-tl-ilam .date {\n position: absolute;\n bottom: 0; \n z-index: 2;\n text-align: center;\n font-size: 0.8em;\n padding-bottom: 0.75em;\n color: hsl(0, 0%, 22%);\n user-select: none;\n text-decoration: none\n}\n\n.kk-tl-ilam .date::after {\n content: '';\n position: absolute;\n /* left: 50%;\n -webkit-transform: translateX(-50%);\n -ms-transform: translateX(-50%);\n transform: translateX(-50%);*/\n bottom: -5px;\n height: 12px;\n width: 12px;\n border-radius: 50%;\n border-width: 2px;\n border-style: solid;\n border-color: hsl(0, 0%, 87.3%);\n background-color: hsl(0, 0%, 97%);\n transition: background-color 0.3s, border-color .3s\n}\n\n.kk-tl-ilam .date:hover::after {\n background-color: hsl(74, 93%, 32%);\n border-color: hsl(74, 93%, 32%);\n}\n\n/* date older event */\n.kk-tl-ilam .date--older-event::after {\n border-color: hsl(74, 93%, 32%);\n}\n\n/* date selected */\n.kk-tl-ilam .date--selected {\n pointer-events: none\n}\n\n.kk-tl-ilam .date--selected::after {\n background-color: hsl(74, 93%, 32%);\n border-color: hsl(74, 93%, 32%);\n}\n\n/* navigation buttons */\n.kk-tl-ilam .navigation {\n position: absolute;\n z-index: 1;\n top: 50%;\n -webkit-transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n transform: translateY(-50%);\n height: 34px;\n width: 34px;\n border-radius: 50%;\n border-width: 2px;\n border-style: solid;\n border-color: hsl(0, 0%, 87.3%);\n transition: border-color 0.3s\n}\n\n.kk-tl-ilam .navigation::after {\n content: '';\n position: absolute;\n height: 16px;\n width: 16px;\n top: 50%;\n left: 50%;\n -webkit-transform: translateX(-50%) translateY(-50%);\n -ms-transform: translateX(-50%) translateY(-50%);\n transform: translateX(-50%) translateY(-50%);\n}\n\n.kk-tl-ilam .navigation:hover {\n border-color: hsl(74, 93%, 32%)\n}\n\n.kk-tl-ilam .navigation--prev {\n left: 0;\n -webkit-transform: translateY(-50%) rotate(180deg);\n -ms-transform: translateY(-50%) rotate(180deg);\n transform: translateY(-50%) rotate(180deg)\n}\n\n\n.kk-tl-ilam .navigation--next {\n right: 0\n}\n\n/*text replace*/\n.kk-tl-ilam .text-replace {\n overflow: hidden;\n color: transparent;\n text-indent: 100%;\n white-space: nowrap\n}\n\n/* remove blue border from buttons */\n.kk-tl-ilam .tc-btn-invisible { outline:none; }\n\n"},"$:/plugins/kookma/timelines/styles/kerman-colors.css":{"title":"$:/plugins/kookma/timelines/styles/kerman-colors.css","created":"20190728113300986","modified":"20190807122749682","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]] -[<currentTiddler>]\" variable=\"type\">\n\n<$vars \n selector={{{[<type>getindex[class]addprefix[.kk-tl-kerman-]]}}} \n color={{{[<type>getindex[color]]}}} \n background-color={{{[<type>getindex[background]]}}} \n border-color={{{[<type>getindex[border]]}}} \n link-color={{{[<type>getindex[link]]}}} \n >\n \n<<selector>> ul li{color:<<color>>; background-color: <<background-color>>; border-color: <<border-color>>;\t}\t\t\n<<selector>> ul:before{border-color:<<border-color>>;}\n<<selector>> ul li > span{border-color:<<border-color>>;}\n<<selector>> ul li > span:before, \n<<selector>> ul li > span:after{background:<<background-color>>; border-color:<<border-color>>;}\n<<selector>> .item-timedate span{color:<<color>>;}\n<<selector>> .item-link {color:<<link-color>>;}\n</$vars>\n</$list>\n"},"$:/plugins/kookma/timelines/styles/kerman.css":{"title":"$:/plugins/kookma/timelines/styles/kerman.css","created":"20190728105114218","modified":"20190808061335955","tags":"$:/tags/Stylesheet","type":"text/css","text":"/*The Kerman main stylesheet*/\n.kk-tl-kerman{\n margin:0 10%;\n padding: 10px 0 40px 60px\n}\n\n.kk-tl-kerman ul{\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n transition: all 0.5s linear;\n top:0\n}\n\n.kk-tl-kerman ul:last-of-type{\n top:40px\n }\n\n.kk-tl-kerman ul:before{\n content: \"\";\n display: block;\n width: 0;\n height: 100%;\n position: absolute;\n top:0;\n left:30px;\n border-width:1px;\n border-style:dashed;\n}\n\n\n.kk-tl-kerman ul li{\n margin: 20px 60px 60px;\n position: relative;\n padding: 10px 20px;\n border-radius: 10px;\n line-height: 20px;\n width: 65%\n}\n\n\n.kk-tl-kerman ul li > span{\n content: \"\";\n display: block;\n width: 0;\n height: 100%;\n position: absolute;\n top:0;\n left:-30px;\n\tborder-width:1px;\n border-style:solid;\n}\n\n\n\n.kk-tl-kerman ul li > span:before,\n.kk-tl-kerman ul li > span:after{\n content: \"\";\n display: block;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n position: absolute;\n left:-7.5px;\n\t\tborder-width:2px;\n\t\tborder-style:solid;\n}\n\n\n\n.kk-tl-kerman .item-title{\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 5px\n}\n\n\n.kk-tl-kerman .item-body:first-letter{\n text-transform: capitalize;\n\tline-height: 1.7\n}\n\n.kk-tl-kerman .item-footer{\n margin-top: 10px;\n text-transform: capitalize;\n font-style: italic;\n text-align: right;\n margin-right: 20px\n}\n\n\n.kk-tl-kerman .item-timedate span{\n position: absolute;\n font-size:80%;\n font-weight: bold;\n}\n/* */\n\n.kk-tl-kerman .item-link{\n font-weight:700;\n}\n\n/* date time */\n.kk-tl-kerman .item-timedate span:first-child {left:-93px; top:-14px;}\n.kk-tl-kerman .item-timedate span:last-child {left:-73px; bottom:-10px;}\n\n.kk-tl-kerman ul li > span:before{top:-10px}\n.kk-tl-kerman ul li > span:after{bottom:-10px;}"},"$:/plugins/kookma/timelines/styles/tehran-colors.css":{"title":"$:/plugins/kookma/timelines/styles/tehran-colors.css","created":"20190807113546515","modified":"20190807180700580","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]]\" variable=\"type\">\n\n<$vars \n selector={{{[<type>getindex[class]addprefix[.kk-tl-tehran-]]}}} \n color={{{[<type>getindex[color]]}}} \n background-color={{{[<type>getindex[background]]}}} \n border-color={{{[<type>getindex[border]]}}} \n link-color={{{[<type>getindex[link]]}}} \n light-background={{{[<type>getindex[light-background]]}}} \n >\n \n<<selector>> .kk-tl-tehran-content{ background:<<background-color>>; color:<<color>>;}\n<<selector>> li {color:<<color>>;background:<<background-color>>;}\n<<selector>> .kk-tl-tehran-active {background:<<background-color>>;}\n<<selector>> .kk-tl-tehran-active~li {color:<<color>>; background:<<light-background>>;}\n\n</$vars>\n</$list>\n\n/*overwrite light theme for Tehran*/\n.kk-tl-tehran-light li {background:#d7d8d8;}\n.kk-tl-tehran-light .kk-tl-tehran-active {background:#e8e9e9;}"},"$:/plugins/kookma/timelines/styles/tehran.css":{"title":"$:/plugins/kookma/timelines/styles/tehran.css","created":"20190729191846502","creator":"Mohammad","modified":"20190809104643909","modifier":"Mohammad","tags":"$:/tags/Stylesheet","type":"text/css","text":".kk-tl-tehran{\n width:60%;\n margin: 10px auto;\n\tbox-sizing:border-box;\n}\n\n.kk-tl-tehran-content{\n padding:15px;\n min-height:140px;\n /* border-width:1px;\n border-style:dotted; */\n}\n\n.kk-tl-tehran ul{\n padding:0;\n text-align:center;\n}\n.kk-tl-tehran li {\n width: 2em;\n height: 2em;\n line-height: 2em;\n text-align: center;\n border-radius: 50%;\n display: inline-block;\n position: relative;\n margin: 8px 5px;\n}\n\n/*Extra setting */\n.kk-tl-tehran .tc-btn-invisible { outline:none; }\n\n\n/* Colors \n\n.kk-tl-tehran-textbox{\n\tborder-color:dodgerblue;\n}\n.kk-tl-tehran li {\n\t color: white;\n\t background: dodgerblue;\n}\n.kk-tl-tehran-active {\n background: dodgerblue;\n}\n\n.kk-tl-tehran-active~li {\n background: lightblue;\n}\n\n.kk-tl-tehran-active~li::before {\n background: lightblue;\n}\n\n*/"},"$:/plugins/kookma/timelines/templates/gilan":{"title":"$:/plugins/kookma/timelines/templates/gilan","created":"20190804113001452","modified":"20190804115559259","type":"text/vnd.tiddlywiki","text":"<div class=\"item-title\"><$link class=\"item-link\"><$text text=<<currentTiddler>>/></$link></div>\n<div class=\"tc-subtitle\"><$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/></div>\n<$transclude mode=\"block\"/>\n<div class=\"item-footer\"><$view field=<<__footer__>>/></div>"},"$:/plugins/kookma/timelines/templates/ilam":{"title":"$:/plugins/kookma/timelines/templates/ilam","created":"20190804113037299","modified":"20190804153547321","tags":"","type":"text/vnd.tiddlywiki","text":"<h1><$transclude field=\"title\"/></h1>\n<$transclude mode=\"block\"/>"},"$:/plugins/kookma/timelines/templates/kerman":{"title":"$:/plugins/kookma/timelines/templates/kerman","created":"20190804113047364","modified":"20190804152811491","tags":"","type":"text/vnd.tiddlywiki","text":"<div class=\"item-title\"><$link class=\"item-link\"><$text text=<<currentTiddler>>/></$link></div>\n<div class=\"item-body\"><$transclude mode=\"block\"/></div>\n<div class=\"item-footer\"><$view field=<<__footer__>>/></div>\n"},"$:/plugins/kookma/timelines/templates/tehran":{"title":"$:/plugins/kookma/timelines/templates/tehran","created":"20190804113057300","modified":"20190805165149153","tags":"","type":"text/vnd.tiddlywiki","text":"<$transclude mode=block/>"}}}
{
"tiddlers": {
"$:/sk/WhiteList": {
"text": "LeDoux,McCloud,McDonald,TiddlyWiki,TiddlyWiki5,CamelCase,DuBay,McGraw,McCullough,LeGrange,NaCl,MeOH,EtOH,PiB,TiddlyTools,ResetFind,WikiText,WinBuilder,WinPE,ProgramData,TiddlyFox,GuillermoMartin,AndrewFraser,RochesterMNwalkers,DEdwardsCalgary,WalkaboutMM,HarveyG,McCoy,GeForce,SideBar,AirBnB,PayPal,LeBron,JavaScript,ExpressJet,CutePDF,McClouds,McElroy,McGovern,TableHelper,ShadowTiddler",
"caption": "Words to never consider as CamelCase links",
"created": "20150210172146298",
"creator": "Stephen",
"description": "Words that should never be considered as CamelCase wikiwords. Separate the individual words with commas (,).",
"modified": "20160427151253707",
"modifier": "Stephen",
"tags": "ske",
"title": "$:/sk/WhiteList"
},
"$:/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// If the link is on the whitelist then just output is as plain text\nvar dummy = \"$:/sk/WhiteList\"\nvar whitelist=$tw.wiki.getTiddlerText(dummy).split(\",\");\nvar n=whitelist.indexOf(linkText);\n\nif(n>-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n}\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",
"created": "20150209183326265",
"creator": "Stephen",
"modified": "20150210183324354",
"modifier": "Stephen",
"module-type": "wikirule",
"tags": "ske",
"title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
"type": "application/javascript"
}
}
}
{
"tiddlers": {
"$:/plugins/snowgoon88/edit-comptext/config": {
"title": "$:/plugins/snowgoon88/edit-comptext/config",
"type": "application/json",
"text": "{\n \"configuration\": {\n \"caseSensitive\" : false,\n \"maxMatch\" : 8,\n \"minPatLength\" : 2,\n \"triggerKeyCombination\" : \"^ \"\n },\n \"template\": [{\n \"pattern\": \"[[\",\n \"filter\": \"[all[tiddlers]!is[system]]\",\n \"start\": \"[[\",\n \"end\": \"]]\"\n }\n ]\n}\n"
},
"$:/plugins/snowgoon88/edit-comptext/edit-comptext.js": {
"title": "$:/plugins/snowgoon88/edit-comptext/edit-comptext.js",
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/edit-comptext.js\ntype: application/javascript\nmodule-type: widget\n\nTaken from original Edit-text widget\nVersion 5.1.13 of TW5\nAdd link-to-tiddler completion in framed.js and simple.js\n\nTODO : CHECK usefull, and particularly save_changes after every input ??\nTODO : where should popupNode be created in the DOM ?\nTODO : check that options are valid (numeric ?)\nvar isNumeric = function(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\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\tFramedCompEngine = require(\"$:/plugins/snowgoon88/edit-comptext/framed.js\").FramedCompEngine,\n\tSimpleCompEngine = require(\"$:/plugins/snowgoon88/edit-comptext/simple.js\").SimpleCompEngine;\n\nexports[\"edit-comptext\"] = editTextWidgetFactory(FramedCompEngine,SimpleCompEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/snowgoon88/edit-comptext/examples": {
"title": "$:/plugins/snowgoon88/edit-comptext/examples",
"text": "The configuration file [[$:/plugins/snowgoon88/edit-comptext/config]] allow you to use the completion plugin for various usages. Here are some examples...\n\n!! Link Completion\nThe basic and default usage. Completion is triggered by `[[`, the search is among all non-system tiddlers. When selected, the `title` of the tiddler is inserted in the text, surrounded by `[[` and `]]`. This gives the following Completion Template.\n\n\n```\n{\n \"pattern\": \"[[\",\n \"title\": \"[all[tiddlers]!is[system]]\",\n \"start\": \"[[\",\n \"end\": \"]]\"\n}\t \n```\n\n\n!! Special macro completion\nI have a 'pnjin' macro that is invoked by `<<pnjin \"TiddlerPNJName\">>` where 'TiddlerPNJName is a tiddler that hold data about a PNJ. I use tiddlywiki to organise my Role Playing Games campaigns. So, I want `<p` to trigger the completion. The search is among all non-system tiddlers tagged `PNJ` and, once selected, the title of the tiddler must be inserted surrouned by `<<pnjin \\\"` and `\\\">>`. So...\n\n```\n{\n\t\"pattern\": \"<p\",\n \t\"title\": \"[tag[PNJ]!is[system]]\",\n \t\"start\": \"<<pnjin \\\"\",\n \t\"end\": \"\\\">>\"\n}\n```\n\n!! Insert some templates or stamp or snippets into text.\nI frequently use some text pattern and I want to insert them easily. So, I could create several tiddlers, tagged '$:stamp' and in their body are the piece of texte I want to insert. The titles of these tiddlers always start with `$:/config/stamp/` (i.e. $:/config/stamp/macro, $:/config/stamp/list1, $:/config/stamp/list2). I want to trigger the completion by using `<<`, then I only want to chose among the last part of the titles of tiddlers tagged `$:stamp` so I use a mask (`$:/config/stamp/`) to only display the last part of the tiddlers title. When selectected, the `body` of the tiddler is inserted, with no surrounding strings. As a results, the Completion Template is (notice the `body` field):\n\n```\n{\n \"pattern\": \"<<\",\n \"body\": \"[tag[$:stamp]]\",\n \"mask\" : \"$:/config/stamp/\",\n \"start\": \"\",\n \"end\": \"\"\n}\n```\n\n!! And you ?\nIf you have funny usages of completion, let me know. If you'd like to do something that is not yet possible, let me know...\n\nmail : snowgoon88(AT)gmail(DOT)com"
},
"$:/plugins/snowgoon88/edit-comptext/framed.js": {
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/framed.js\ntype: application/javascript\nmodule-type: library\n\nTaken from $:/core/modules/editor/engines/framed.js\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\n// Configuration tiddler\nvar COMPLETION_OPTIONS = \"$:/plugins/snowgoon88/edit-comptext/config\";\nvar Completion = require(\"$:/plugins/snowgoon88/edit-comptext/completion.js\").Completion;\n\t\nfunction FramedCompEngine(options) {\n //DEBUG console.log( \"==FramedCompEngine::creation\" );\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\n\t// Completion\n\t// Load Completion configuration as JSON\n this._configOptions = $tw.wiki.getTiddlerData( COMPLETION_OPTIONS, {} );\n\t\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 dummy popup for reading its styles\n\t//this._dummyCompletion = new Completion( this.widget, this.dummyTextArea, this._configOptions);\n\t//REMOVEthis._dummyCompletion.setAttribute(\"hidden\",\"true\");\n\t\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: \"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\t// add Completion popup\n this._completion = new Completion( this.widget, this.domNode, this._configOptions, this.dummyTextArea, this.iframeNode.offsetTop, this.iframeNode.offsetLeft );\n\t// print iframe offset\n\t//DEBUG console.log( \" __iframe.offsetLeft: \"+this.iframeNode.offsetLeft );\n //DEBUG console.log( \" __iframe.offsetTop: \"+this.iframeNode.offsetTop );\n \n\t// Copy all styles from dummyCompletion\n\t//$tw.utils.copyStyles(this._dummyCompletion._popNode, this._completion._popNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\t//this._completion._popNode.style.display = \"block\";\n\t//this._completion._popNode.style.width = \"100%\";\n\t//this._completion._popNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\t//this._completion._popNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n \n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedCompEngine.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*/\nFramedCompEngine.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*/\nFramedCompEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedCompEngine.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*/\nFramedCompEngine.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*/\nFramedCompEngine.prototype.handleInputEvent = function(event) {\n //DEBUG console.log( \"__framed.js::handleInputEvent\");\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedCompEngine.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*/\nFramedCompEngine.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.FramedCompEngine = FramedCompEngine;\n\n})();\n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/framed.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/simple.js": {
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/simple.js\ntype: application/javascript\nmodule-type: library\n\nTaken from $:/core/modules/editor/engines/simple.js\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\n// Configuration tiddler\nvar COMPLETION_OPTIONS = \"$:/plugins/snowgoon88/edit-comptext/config\";\nvar Completion = require(\"$:/plugins/snowgoon88/edit-comptext/completion.js\").Completion;\n\nfunction SimpleCompEngine(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\n // Completion\n\t// Load Completion configuration as JSON\n this._configOptions = $tw.wiki.getTiddlerData( COMPLETION_OPTIONS, {} );\n\t\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\t// add Completion popup\n this._completion = new Completion( this.widget, this.domNode, this._configOptions );\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleCompEngine.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*/\nSimpleCompEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleCompEngine.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*/\nSimpleCompEngine.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*/\nSimpleCompEngine.prototype.handleInputEvent = function(event) {\n\tconsole.log( \"__simple.js::handleInputEvent\");\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleCompEngine.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*/\nSimpleCompEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleCompEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleCompEngine = SimpleCompEngine;\n\n})();\n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/simple.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/cursor-position.js": {
"text": "/*\\\nModule that compute the pixel position of the cursor of a text\nements.\n\nTaken from https://github.com/component/textarea-caret-position\n\n(as https://github.com/kir/js_cursor_position is not updated any more)\n\\*/\n// Fonction anonyme executée immediatement\n( function(){\n \n// The properties that we copy into a mirrored div.\n// Note that some browsers, such as Firefox,\n// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,\n// so we have to do every single property specifically.\nvar properties = [\n 'direction', // RTL support\n 'boxSizing',\n 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n 'height',\n 'overflowX',\n 'overflowY', // copy the scrollbar for IE\n\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderStyle',\n\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n 'fontStyle',\n 'fontVariant',\n 'fontWeight',\n 'fontStretch',\n 'fontSize',\n 'fontSizeAdjust',\n 'lineHeight',\n 'fontFamily',\n\n 'textAlign',\n 'textTransform',\n 'textIndent',\n 'textDecoration', // might not make a difference, but better be safe\n\n 'letterSpacing',\n 'wordSpacing',\n\n 'tabSize',\n 'MozTabSize'\n\n];\nvar isFirefox = false;\nif($tw.browser) {\n isFirefox = window.mozInnerScreenX != null;\n}\n\nfunction getCaretCoordinates(element, position, options) {\n\n var debug = options && options.debug || false;\n if (debug) {\n var el = document.querySelector('#input-textarea-caret-position-mirror-div');\n if ( el ) { el.parentNode.removeChild(el); }\n }\n\n // mirrored div\n var div = document.createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n document.body.appendChild(div);\n\n var style = div.style;\n var computed;\n if($tw.browser) {\n computed = window.getComputedStyle? getComputedStyle(element) : element.currentStyle; // currentStyle for IE < 9\n } \n else {\n computed = element.currentStyle;\n }\n \n\n // default textarea styles\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT')\n style.wordWrap = 'break-word'; // only for textarea-s\n\n // position off-screen\n style.position = 'absolute'; // required to return coordinates properly\n if (!debug)\n style.visibility = 'hidden'; // not 'display: none' because we want rendering\n\n // transfer the element's properties to the div\n properties.forEach(function (prop) {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n }\n\n div.textContent = element.value.substring(0, position);\n // the second special handling for input type=\"text\" vs textarea: spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n if (element.nodeName === 'INPUT')\n div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\n\n var span = document.createElement('span');\n // Wrapping must be replicated *exactly*, including when a long word gets\n // onto the next line, with whitespace at the end of the line before (#7).\n // The *only* reliable way to do that is to copy the *entire* rest of the\n // textarea's content into the <span> created at the caret position.\n // for inputs, just '.' would be enough, but why bother?\n span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n div.appendChild(span);\n\n var coordinates = {\n top: span.offsetTop + parseInt(computed['borderTopWidth']),\n left: span.offsetLeft + parseInt(computed['borderLeftWidth'])\n };\n\n if (debug) {\n span.style.backgroundColor = '#aaa';\n } else {\n document.body.removeChild(div);\n }\n\n return coordinates;\n}\n\n// Exporte as a module of node.js otherwise set as global\nif (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\n module.exports = getCaretCoordinates;\n} else {\n window.getCaretCoordinates = getCaretCoordinates;\n}\n\n})();\n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/cursor-position.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/completion.js": {
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/completion.js\ntype: application/javascript\nmodule-type: library\n\nTry to make self-contained completion module.\n\nTo use this 'module', you need a `widget` with a kind of `editarea` node.\nI do not know the exacte prerequisites of this editarea node for the module to\nwork, but mostly one should be able to attach the following `eventHandler` to\nit:\n - input\n - keydown\n - keypress\n - keyup\nThe `widget` is needed because I use:\n - widget.document\n - widget.wiki.filterTiddlers(...)\n\nFrom the Widget, once you have a proper editarea, you just have to call\n - var completion = new Completion( theWidget, theEditAreaNode, configObject);\nwhere `configObject` is expected to have the following fields. if a field is missing, a default value will be given.\nOne can have many `elements' in the template array.\n\n{\n \"configuration\": {\n \"caseSensitive\" : false,\n \"maxMatch\" : 8,\n \"minPatLength\" : 2,\n \"triggerKeyCombination\" : \"^ \"\n },\n \"template\": [{\n \"pattern\": \"[[\",\n \"filter\": \"[all[tiddlers]!is[system]]\",\n \"start\": \"[[\",\n \"end\": \"]]\"\n }\n ]\n}\n\nTODO : CHECK if needed\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// To compute pixel coordinates of cursor\nvar getCaretCoordinates = require(\"$:/plugins/snowgoon88/edit-comptext/cursor-position.js\");\n\n/** Default Completion Attributes */\nvar DEFATT = { maxMatch: 5, minPatLength: 2, caseSensitive: false, triggerKeyCombination: \"^ \" };\n\n/** \n * Struct for generic Completion Templates.\n * <ul>\n * <li>pat : pattern searched for.</li>\n * <li>filter : filter operation used to find the list of completion options</li>\n * <li>mask: replaced by \"\" when presenting completion options</li>\n * </ul>\n */\nvar Template = function( pat, filter, mask, field, start, end ) {\n this.pat = pat;\n this.filter = filter;\n this.mask = \"^\"+regExpEscape(mask);\n this.field = field;\n this.start = start;\n this.end = end;\n this.pos = 0;\n};\n/**\n * Struct for storing completion options, as we need to memorise \n * the titles of the tiddlers when masked and when body must be displayed.\n */\nvar OptCompletion = function( title, str ) {\n this.title = title;\n this.str = str;\n};\n\nvar keyMatchGenerator = function(combination) {\n\tlet singleMatchGenerator = function(character) {\n\t\tif (character === '^') {\n\t\t\treturn event => event.ctrlKey;\n\t\t}\n\t\telse if (character === '+') {\n\t\t\treturn event => event.shiftKey;\n\t\t}\n\t\telse if (character === '!') {\n\t\t\treturn event => event.altKey;\n\t\t}\n\t\telse {\n\t\t\treturn event => (event.keyCode || event.which) === character.charCodeAt(0);\n\t\t}\n\t};\n\n\tlet matchers = [];\n\tfor (let i = 0; i < combination.length; i++) {\n\t\tmatchers.push(singleMatchGenerator(combination[i]));\n\t}\n\n\treturn event => {\n\t\tfor (let i = 0; i < matchers.length; i++) {\n\t\t\tif (!matchers[i](event)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n};\n\n/**\n * Widget is needed in creating popupNode.\n * - widget.document\n * - widget.wiki.filterTiddlers(...)\n * - sibling : where to create the popup in the DOM.\n */\n\tvar Completion = function( editWidget, areaNode, param, sibling, offTop, offLeft ) {\n\tconsole.log( \"==Completion::creation\" );\n\n // About underlying Widget\n this._widget = editWidget;\n\tthis._areaNode = areaNode;\n\tthis._sibling = (typeof sibling !== 'undefined') ? sibling : this._areaNode;\n\tthis._offTop = (typeof offTop !== 'undefined') ? offTop : 0;\n\tthis._offLeft = (typeof offLeft !== 'undefined') ? offLeft : 0;\t\n\t\t\n // Completions attributes\n /** State */\n this._state = \"VOID\";\n this._template = undefined;\n /** Best matches */\n this._bestMatches = []; // An array of OptCompletion\n this._idxChoice = -1;\n /** Param */\n // maximum nb of match displayed\n this._maxMatch = param.configuration.maxMatch || DEFATT.maxMatch; \n this._minPatLength = param.configuration.minPatLength || DEFATT.minPatLength;\n this._caseSensitive= param.configuration.caseSensitive || DEFATT.caseSensitive;\n this._triggerKeyMatcher = keyMatchGenerator(param.configuration.triggerKeyCombination || DEFATT.triggerKeyCombination);\n /** Input information */\n this._lastChar = \"\";\n this._hasInput = false;\n /** List of Completion Templates */\n this._listTemp = [];\n \n // Read templates from Param\n if( param.template ) {\n \tvar idT;\n \tfor( idT=0; idT<param.template.length; idT++ ) {\n \t var temp = param.template[idT];\n\t // field 'body' ou 'title' (default)\n\t if( temp.body ) {\t\t\n \t\tthis._listTemp.push( \n \t\t new Template( temp.pattern, temp.body,\n\t\t\t\t temp.mask ? temp.mask : \"\",\n\t\t\t\t \"body\",\n \t\t\t\t temp.start, temp.end )\n \t\t);\n\t }\n\t else {\n \t\tthis._listTemp.push( \n \t\t new Template( temp.pattern, \n\t\t\t\t temp.title ? temp.title : temp.filter,\n\t\t\t\t temp.mask ? temp.mask : \"\",\n\t\t\t\t \"title\",\n \t\t\t\t temp.start, temp.end )\n \t\t);\n\t }\n\t //DEBUG temp = this._listTemp[this._listTemp.length-1];\n\t //DEBUG console.log( \"__CONF : \"+temp.pattern+\":\"+temp.filter+\":\"+temp.mask+\":\"+temp.field+\":\"+temp.start+\":\"+temp.end );\n \t}\n }\n // or defaut template\n else {\n \tthis._listTemp = [\n \t new Template( \"[[\", \"[all[tiddlers]!is[system]]\", \n\t\t\t \"\", \"title\",\n\t\t\t \"[[\", \"]]\" )\n \t];\n }\n // Create Popup\n\t//this._popNode = createPopup(this._widget, this._areaNode );\n\tthis._popNode = createPopup(this._widget, this._sibling );\t\n \n // Listen to the Keyboard\n $tw.utils.addEventListeners( this._areaNode,[\n\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInput\"},\n\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydown\"},\n\t{name: \"keypress\", handlerObject: this, handlerMethod: \"handleKeypress\"},\n \t{name: \"keyup\", handlerObject: this, handlerMethod: \"handleKeyup\"}\n ]);\n \n /** \n * Find the bestMatches among listChoice with given pattern\n * @param listChoice : array of String\n * @change : this._bestMatches => array of OptCompletion\n */\n this._findBestMatches = function( listChoice, pattern, nbMax) {\n\t// regexp search pattern, case sensitive\n\tvar flagSearch = this._caseSensitive ? \"\" : \"i\" ;\n\tvar regpat = RegExp( regExpEscape(pattern), flagSearch );\n\tvar regpat_start = RegExp( \"^\"+regExpEscape(pattern), flagSearch );\n\tvar regMask = RegExp( this._template.mask ? this._template.mask : \"\",\"\");\n\tvar nbMatch = 0;\n\t// nbMax set to _maxMatch if no value given\n\tnbMax = nbMax !== undefined ? nbMax : this._maxMatch;\n\n\t//DEBUG console.log( \"__FIND masked=\"+regMask+\" regPat=\"+regpat);\n\n\tthis._bestMatches= [];\n\tvar otherMatches = [];\n\t// We test every possible choice\n\tfor( var i=0; i< listChoice.length; i++ ) {\n\t // apply mask over potential choice\n\t var maskedChoice = listChoice[i].replace( regMask, \"\");\n\t // Test first if pattern is found at START of the maskedChoice\n\t // THEN added to BestMatches\n \t if( regpat_start.test( maskedChoice )) {\n\t\tif (nbMatch >= nbMax) {\n\t\t this._bestMatches.push( new OptCompletion(\"\",\"...\") );\n\t\t return;\n\t\t} else {\n\t\t this._bestMatches.push( new OptCompletion(listChoice[i],maskedChoice) );\n\t\t nbMatch += 1;\n\t\t}\n\t }\n\t // then if pattern is found WITHIN the maskedChoice\n\t // added AFTER the choices that starts with pattern\n\t else if( regpat.test( maskedChoice ) ) {\n\t\tif (nbMatch >= nbMax) {\n\t\t // add all otherMatches to _bestMatches\n\t\t this._bestMatches.push( new OptCompletion(\"\",\"<hr>\") ) ; //separator\n\t\t this._bestMatches = this._bestMatches.concat( otherMatches );\n\t\t this._bestMatches.push( new OptCompletion(\"\",\"...\") );\n\t\t return;\n\t\t} else {\n\t\t otherMatches.push( new OptCompletion(listChoice[i],maskedChoice) );\n\t\t nbMatch += 1;\n\t\t}\n\t }\n\t}\n\t// Here, must add the otherMatches\n\tthis._bestMatches.push( new OptCompletion(\"\",\"<hr>\") ) ; //separator\n\tthis._bestMatches = this._bestMatches.concat( otherMatches );\n };\n /**\n * Change Selected Status of Items\n */\n this._next = function (node) {\n\tvar count = node.children.length;\n\t//DEBUG console.log( \"__NEXT: co=\"+count+\" nbMatch=\"+this._bestMatches.length);\n\tif( this._bestMatches.length > 0 ) \n\t this._goto( node, this._idxChoice < count - 1 ? this._idxChoice + 1 : -1);\n\t//DEBUG this._logStatus( \"NexT\" );\n };\n this._previous = function (node) {\n\tvar count = node.children.length;\n\tvar selected = this._idxChoice > -1;\n\t//DEBUG console.log( \"__PREV: co=\"+count+\" nbMatch=\"+this._bestMatches.length);\n\tif( this._bestMatches.length > 0 ) \n\t this._goto( node, selected ? this._idxChoice - 1 : count - 1);\n\t//DEBUG this._logStatus( \"PreV\" );\n };\n // Should not be used, highlights specific item without any checks!\n this._goto = function (node, idx) {\n\tvar lis = node.children;\n\tvar selected = this._idxChoice > -1;\n\tif (selected) {\n\t lis[this._idxChoice].setAttribute(\"patt-selected\", \"false\");\n\t}\n\n\tthis._idxChoice = idx;\n \n\tif (idx > -1 && lis.length > 0) {\n\t lis[idx].setAttribute(\"patt-selected\", \"true\");\n\t}\n };\n /**\n * Abort pattern and undisplay.\n */\n this._abortPattern = function (displayNode) {\n\tthis._state = \"VOID\";\n\tthis._bestChoices = [];\n\tthis._idxChoice = -1;\n\tthis._undisplay( displayNode );\n\tthis._template = undefined;\n };\n /**\n * Display popupNode at the cursor position in areaNode.\n */\n this._display = function( areaNode, popupNode ) {\n\tif ( popupNode.style.display == 'none' ) {\n\t // Must get coordinate\n\t // Cursor coordinates within area + area coordinates + scroll\n var coord = getCaretCoordinates(areaNode, areaNode.selectionEnd);\n var styleSize = getComputedStyle(areaNode).getPropertyValue('font-size');\n var fontSize = parseFloat(styleSize); \n\t\t\n\t popupNode.style.left = (this._offLeft+areaNode.offsetLeft-areaNode.scrollLeft+coord.left) + 'px';\n\t popupNode.style.top = (this._offTop+areaNode.offsetTop-areaNode.scrollTop+coord.top+fontSize*2) + 'px';\n\t popupNode.style.display = 'block';\n\t}\n };\n /**\n * Undisplay someNode\n */\n this._undisplay = function( displayNode ) {\n\tif ( displayNode.style.display != 'none' ) {\n\t displayNode.style.display = 'none';\n\t}\n };\n\n /**\n * Used for debug\n */\n this._logStatus = function(msg) {\n\tconsole.log( \"__STATUS: \"+this._state+\":-\"+msg+\"- idx=\"+this._idxChoice );\n };\n\n};\n// **************************************************************************\n// ******************************************************************eventCbk\n// **************************************************************************\n/**\n * Disable the *effects* of ENTER / UP / DOWN / ESC when needed.\n * Set _hasInput to false.\n */\nCompletion.prototype.handleKeydown = function(event) {\n // key \n var key = event.keyCode;\n this._hasInput = false;\n \n //DEBUG console.log( \"__KEYDOWN (\"+key+\") hasI=\"+this._hasInput);\n \n // ENTER while selecting\n if( (this._state === \"PATTERN\" || this._state === \"SELECT\") && key === 13 ) {\n \tevent.preventDefault();\n \tevent.stopPropagation();\n }\n // ESC while selecting\n if( (this._state === \"PATTERN\" || this._state === \"SELECT\") && key === 27 ) {\n \tevent.preventDefault();\n \tevent.stopPropagation();\n }\n // UP/DOWN while a pattern is extracted\n if( (key===38 || key===40) && \n\t(this._state === \"PATTERN\" || this._state === \"SELECT\") ) {\n\tevent.preventDefault();\n }\n};\n/**\n * Means that something has been added/deleted => set _hasInput\n */\nCompletion.prototype.handleInput = function(event) {\n this._hasInput = true;\n //DEBUG console.log( \"__INPUT hasI=\"+this._hasInput );\n};\n\t\n/**\n * Set _lastChar, detects CTRL+SPACE.\n */\nCompletion.prototype.handleKeypress = function(event) {\n var curPos = this._areaNode.selectionStart; // cursor position\n var val = this._areaNode.value; // text in the area\n // key \n var key = event.keyCode || event.which;\n\t\n this._lastChar = String.fromCharCode(key);\n //DEBUG console.log( \"__KEYPRESS (\"+key+\") hasI=\"+this._hasInput+\" char=\"+this._lastChar );\n //DEBUG this._logStatus( \"KEYPRESS\" );\n \n // Detect Ctrl+Space\n if( this._triggerKeyMatcher(event) && this._state === \"VOID\" ) {\n\t//Find a proper Template\n\t// first from which we can extract a pattern\n\tif( this._template === undefined ) {\n\t //DEBUG console.log(\"__SPACE : find a Template\" );\n\t var idT, res;\n\t for( idT=0; idT < this._listTemp.length; idT++ ) {\n\t\tres = extractPattern( val, curPos, this._listTemp[idT] );\n\t\t//DEBUG console.log(\" t=\"+this._listTemp[idT].pat+\" res=\"+res);\n\t\t// res is not undefined => good template candidate\n\t\tif( res ) {\n\t\t this._template = this._listTemp[idT];\n\t\t this._state = \"PATTERN\";\n\t\t break;\n\t\t}\n\t }\n\t}\n\telse {\n\t //DEBUG console.log(\"__SPACE : already a template\" );\n\t this._state = \"PATTERN\";\n\t}\n }\n};\n/**\n * ESC -> abort; \n * Detect [ -> VOID switch to _state=PATTERN\n * PATTERN || SELECT : ENTER -> insertText\n * UP/DOWN -> previous/next\n * pattern.length > _minPatternLength -> display \n */\nCompletion.prototype.handleKeyup = function(event) {\n var curPos = this._areaNode.selectionStart; // cursor position\n var val = this._areaNode.value; // text in the area\n // key a\n var key = event.keyCode;\n \n //DEBUG console.log( \"__KEYUP (\"+key+\") hasI=\"+this._hasInput );\n \n // ESC\n if( key === 27 ) {\n\tthis._abortPattern( this._popNode );\n\t//DEBUG this._logStatus( \"\" );\n }\n // Check for every template\n if( this._hasInput && this._state === \"VOID\" ) {\n\t// check every template's pattern\n\tvar idT, template;\n\tfor( idT=0; idT < this._listTemp.length; idT++ ) {\n\t template = this._listTemp[idT];\n\t if( this._lastChar === template.pat[template.pos] ) {\n\t\ttemplate.pos += 1;\n\t\t//DEBUG console.log( \"__CHECK : pat=\"+template.pat+\" pos=\"+template.pos );\n\t\t// Pattern totaly matched ?\n\t\tif( template.pos === template.pat.length ) {\n\t\t //DEBUG console.log( \"__CHECK => found \"+template.pat );\n\t\t this._state = \"PATTERN\";\n\t\t this._template = template;\n\t\t \n\t\t break; // get out of loop\n\t\t}\n\t }\n\t else {\n\t\ttemplate.pos = 0;\n\t\t//DEBUG console.log( \"__CHECK : pat=\"+template.pat+\" pos=\"+template.pos );\n\t }\n\t}\n }\n // a pattern\n else if( this._state === \"PATTERN\" || this._state === \"SELECT\" ) {\n\t// Pattern below cursor : undefined if no pattern\n\tvar pattern = extractPattern( val, curPos, this._template );\n\tif( key === 13 ) { // ENTER\n\t //DEBUG console.log( \"KEY : Enter\" );\n \t // Choice made in the displayNode ?\n \t var selected = this._idxChoice > -1 && this._idxChoice !== this._maxMatch;\n \t //DEBUG console.log( \" > sel=\"+selected+\" len=\"+this._bestChoices.length );\n \t if( selected ) {\n \t\t//DEBUG console.log( \" > selected\" );\n\t\tvar temp = this._bestMatches[this._idxChoice];\n\t\tvar str = temp.str;\n\t\tif( this._template.field === \"body\" ) {\n\t\t str = $tw.wiki.getTiddlerText( temp.title );\n\t\t}\n \t\tinsertInto( this._areaNode,\n\t\t\t str,\n\t\t\t pattern.start, curPos, this._template );\n\t\t// save this new content\n\t\tthis._widget.saveChanges( this._areaNode.value );\n\t }\n\t // otherwise take the first choice (if exists)\n\t else if( this._bestMatches.length > 0 ) {\n \t\t//DEBUG console.log( \" > take first one\" );\n\t\tvar temp = this._bestMatches[0];\n\t\tvar str = temp.str;\n\t\tif( this._template.field === \"body\" ) {\n\t\t str = $tw.wiki.getTiddlerText( temp.title );\n\t\t}\n \t\tinsertInto( this._areaNode,\n\t\t\t str,\n\t\t\t pattern.start, curPos, this._template );\n\t\t// save this new content\n\t\tthis._widget.saveChanges( this._areaNode.value );\n\t }\n\t this._abortPattern( this._popNode );\n\t\t//DEBUG this._logStatus( \"\" );\n \t }\n\t else if( key === 38 && this._hasInput === false) { // up\n\t\tthis._state = \"SELECT\";\n \t\tevent.preventDefault();\n \t\tthis._previous( this._popNode );\n\t\t//DEBUG this._logStatus( pattern.text );\n \t\t//event.stopPropagation();\n \t }\n \t else if( key === 40 && this._hasInput === false) { // down\n\t\tthis._state = \"SELECT\";\n \t\tevent.preventDefault();\n \t\tthis._next( this._popNode );\n\t\t//DEBUG this._logStatus( pattern.text );\n \t\t//event.stopPropagation();\n \t }\n \t else if( pattern ) { // pattern changed by keypressed\n\t\tthis._idxChoice = -1;\n \t\t// log\n\t\t//DEBUG this._logStatus( pattern.text );\n \t\t// Popup with choices if pattern at least minPatLength letters long\n\t\tif( pattern.text.length > (this._minPatLength-1) ) {\n\t\t // compute listOptions from templateFilter\n\t\t var allOptions;\n\t\t if( this._template )\n\t\t\tallOptions = this._widget.wiki.filterTiddlers( this._template.filter );\n\t\t else\n\t\t\tallOptions = this._widget.wiki.filterTiddlers(\"[all[tiddlers]]\");\n\t\t this._findBestMatches( allOptions, pattern.text );\n \t\t this._popNode.innerHTML = \"\";\n \t\t //console.log( \"BC \"+ this._pattern + \" => \" + choice );\n \t\t if (this._bestMatches.length > 0) {\n\t\t\tfor( var i=0; i<this._bestMatches.length; i++) {\n \t\t\t this._popNode.appendChild( \n\t\t\t\titemHTML(this._bestMatches[i].str,\n\t\t\t\t\t pattern.text));\n \t\t\t}\n\t\t\tthis._display( this._areaNode, this._popNode );\t\t\t\n \t\t }\n\t\t else { // no matches\n\t\t\tthis._state = \"PATTERN\";\n\t\t\tthis._undisplay( this._popNode );\n\t\t }\n\t\t}\n \t }\n\t else { // no pattern detected\n\t\tthis._abortPattern( this._popNode );\n\t }\n\t}\n\t// to ensure that one MUST add an input (through onInput())\n\tthis._hasInput = false;\n};\n// **************************************************************************\n// ******************************************************** private functions\n// **************************************************************************\n/**\n * Create popup element.\n */\nvar createPopup = function( widget, node ) {\n // Insert a special \"div\" element for poping up\n // Its 'display' property in 'style' control its visibility\n var popupNode = widget.document.createElement(\"div\");\n popupNode.setAttribute( \"style\", \"display:none; position: absolute;\");\n popupNode.className = \"tc-block-dropdown ect-block-dropdown\";\n // Insert the element into the DOM\n node.parentNode.insertBefore(popupNode,node.nextSibling);\n //CHECK the domNodes is a attribute of Widget [widget.js]\n //CHECK this.domNodes.push(popupNode);\n \n return popupNode;\n};\n/**\n * Extract Pattern from text at a given position.\n *\n * Between previous template.pat (or '[[') and pos\n * \n * If no pattern -> undefined\n */\nvar extractPattern = function( text, pos, template ) {\n // Detect previous and next ]]=>STOP or [[=>START\n var sPat = template.pat ? template.pat : '[[';\n var pos_prevOpen = text.lastIndexOf( sPat, pos );\n var ePat = template.end ? template.end : ']]';\n var pos_prevClosed = text.lastIndexOf( ePat, pos );\n var pos_nextClosed = text.indexOf( ePat, pos );\n //DEBUG console.log(\"__CALC st=\"+sPat+\" -> en=\"+ePat );\n //DEBUG console.log(\"__CALC po=\"+pos_prevOpen+\" pc=\"+pos_prevClosed+\" nc=\"+pos_nextClosed+\" pos=\"+pos);\n pos_nextClosed = (pos_nextClosed >= 0) ? pos_nextClosed : pos;\n \n if( (pos_prevOpen >= 0) && // must be opened\n\t((pos_prevOpen > pos_prevClosed ) || // not closed yet\n\t (pos_prevClosed === pos))) { // closed at cursor\n\t//DEBUG console.log(\" pat=\"+text.slice( pos_prevOpen+sPat.length, pos) );\n\treturn { text: text.slice( pos_prevOpen+sPat.length, pos ),\n\t\t start: pos_prevOpen,\n\t\t end: pos_nextClosed\n\t };\n }\n};\n/**\n * Controls how list items are generated.\n * Function that takes two parameters :\n * - text : suggestion text\n * - input : the user’s input\n * Returns : list item. \n * Generates list items with the user’s input highlighted via <mark>.\n */\nvar itemHTML = function (text, input ) {\n // text si input === ''\n // otherwise, build RegExp that is global (g) and case insensitive (i)\n // to replace with <mark>$&</mark> where \"$&\" is the matched pattern\n var html = input === '' ? text : text.replace(RegExp(regExpEscape(input.trim()), \"gi\"), \"<mark>$&</mark>\");\n return create(\"li\", {\n\tinnerHTML: html,\n\t\"patt-selected\": \"false\"\n });\n};\n/**\n * Insert text into a textarea node, \n * enclosing in 'template.start..template.end'\n *\n * - posBefore : where the 'template.pat+pattern' starts\n * - posAfter : where the cursor currently is\n */\nvar insertInto = function(node, text, posBefore, posAfter, template ) {\n //DEBUG console.log( \"__INSERT : \"+template.pattern+\":\"+template.filter+\":\"+template.mask+\":\"+template.field+\":\"+template.start+\":\"+template.end );\n var val = node.value;\n var sStart = template.start !== undefined ? template.start : '[[';\n var sEnd = template.end !== undefined ? template.end : ']]';\n var newVal = val.slice(0, posBefore) + sStart + text + sEnd + val.slice(posAfter);\n //console.log(\"__INSERT s=\"+sStart+\" e=\"+sEnd);\n //console.log (\"__INSERT pb=\"+posBefore+\" pa=\"+posAfter+\" txt=\"+text);\n //console.log( \"NEW VAL = \"+newVal );\n // WARN : Directly modifie domNode.value.\n // Not sure it does not short-circuit other update methods of the domNode....\n // i.e. could use widget.updateEditor(newVal) from edit-comptext widget.\n // but how to be sure that cursor is well positionned ?\n node.value = newVal;\n node.setSelectionRange(posBefore+text.length+sStart.length+sEnd.length, posBefore+text.length+sStart.length+sEnd.length );\n};\n/**\n * Add an '\\' in front of -\\^$*+?.()|[]{}\n */\nvar regExpEscape = function (s) {\n return s.replace(/[-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n};\n/**\n * Add an element in the DOM.\n */\nvar create = function(tag, o) {\n var element = document.createElement(tag);\n \n for (var i in o) {\n\tvar val = o[i];\n\t\n\tif (i === \"inside\") {\n\t $(val).appendChild(element);\n\t}\n\telse if (i === \"around\") {\n\t var ref = $(val);\n\t ref.parentNode.insertBefore(element, ref);\n\t element.appendChild(ref);\n\t}\n\telse if (i in element) {\n\t element[i] = val;\n\t}\n\telse {\n\t element.setAttribute(i, val);\n\t}\n }\n \n return element;\n};\n\n\nexports.Completion = Completion;\n\n})();\n\n \n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/completion.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/edit-comptext.css": {
"text": "\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/* The \\rules pragma at the top of the tiddler restricts the WikiText \n * to just allow macros and transclusion. This avoids mistakenly \n * triggering unwanted WikiText processing.\n * \n * MUST not save as text/css for macro to be processed\n*/\n\n.ect-block-dropdown li {\n display: block;\n padding: 4px 14px 4px 14px;\n text-decoration: none;\n color: <<colour tiddler-link-foreground>>; /*#5778d8;*/ \n background: transparent;\n}\n.ect-block-dropdown li[patt-selected=\"true\"] {\n color: <<colour tiddler-link-background>>; /*#ffffff; */\n background-color: <<colour tiddler-link-foreground>>; /*#5778d8; */\n}\n.ect-block-dropdown li[patt-selected=\"true\"] mark {\n background: hsl(86, 100%, 21%);\n color: inherit;\n}\n\n",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/snowgoon88/edit-comptext/edit-comptext.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/snowgoon88/edit-comptext/readme": {
"title": "$:/plugins/snowgoon88/edit-comptext/readme",
"text": "!! What ?\nThis plugin adds ''completion'' when editing the body of a tiddler.\n\n* Enter completion-mode by typing `[[` or `CTRL+SPACE`\n* A list of tiddlers with a title that matches the pattern between `[[` and cursor appears\n* `UP/DOWN` keys can select a tiddler, `ENTER` to validate\n* If there is only one match, `ENTER` selects it.\n* `NEW` : you can specify you own trigger pattern and the list of possible completions. See [[$:/plugins/snowgoon88/edit-comptext/usage]] for more details.\n\n\n!! To try it or get the latest news\nSee [[http://snowgoon88.github.io/TW5-extendedit]]\n\n!! Install \n\nTo add the plugin to your own TiddlyWiki5, just drag this link to the browser window:\n\n[[$:/plugins/snowgoon88/edit-comptext]]\n\nSometime, a small configuration step is then needed\n\nin `$:/ControlPanel -> Advanced -> Editor Type -> text/vnd.tiddlywiki` you must chose `comptext` instead of `text`.\n\nReload and « voilà »...\n\nThis plugin is quite mature now :o)\n\n!! Old version\n\n* A version compatible with 5.0.8 to 5.1.11 : [[http://snowgoon88.github.io/TW5-extendedit/index_5.1.11.html]]\n\n!! Source code\nOn github [[https://github.com/snowgoon88/TW5-extendedit]]\n\nGet in touch : snowgoon88(AT)gmail(DOT)com\n"
},
"$:/plugins/snowgoon88/edit-comptext/usage": {
"title": "$:/plugins/snowgoon88/edit-comptext/usage",
"text": "''Important'' : be sure that in `$:/ControlPanel -> Advanced -> Editor Type -> text/vnd.tiddlywiki` you have chosen `comptext` instead of `text`.\n\nConfiguration of the edit-comptext plugin can be done through the tiddler [[$:/plugins/snowgoon88/edit-comptext/config]]. Use a JSON tiddler (do not forget to set the type to `application/json`. See some examples at [[$:/plugins/snowgoon88/edit-comptext/examples]]\n\nIn the `configuration` object you can set :\n\n* `caseSensitive`: `true`/`false` (is search case sensitive ?)\n* `maxMatch` : an `integer` (max number of match displayed)\n* `minPatLength` : an `integer` (minimal length of a pattern to trigger completion search)\n* `triggerKeyCombination ` : a `string` representing the key combination that triggers the autocompletion popup. To use modifier keys in your combination, use following conversions : `ctrl` -> `^`, `alt` -> `!`, `shift` -> `+`. Note: ` ` (literally a whitespace) represents the `space` key.\n\nIn the `template` array you can specify the various completion templates that will be used. Every template can have the following members.\n\n* `pattern` : `string` (pattern that triggers a completion, default \"[[\" )\n* `title` or `body`: `string` (the filter operators that gives the list of valid completions, default \"[all[tiddlers]!is[system]]\"). If you specify `body`, then the body of the tiddler will be inserted on selection.\n* `start` : `string` (when completion is chosen, start is put before the completion, default \"[[\")\n* `end` : `string` (when completion is chosen, end is put after the completion, default \"]]\")\n\n!! Current body of Config Tiddler\n\n{{$:/plugins/snowgoon88/edit-comptext/config}}\n\n"
}
}
}
{
"configuration": {
"caseSensitive" : false,
"maxMatch" : 8,
"minPatLength" : 2,
"triggerKeyCombination" : "^ "
},
"template": [{
"pattern": "[[",
"filter": "[all[tiddlers]!is[system]]",
"start": "[[",
"end": "]]"
}
]
}
LeDoux,McCloud,McDonald,TiddlyWiki,TiddlyWiki5,CamelCase,DuBay,McGraw,McCullough,LeGrange,NaCl,MeOH,EtOH,PiB,TiddlyTools,ResetFind,WikiText,WinBuilder,WinPE,ProgramData,TiddlyFox,GuillermoMartin,AndrewFraser,RochesterMNwalkers,DEdwardsCalgary,WalkaboutMM,HarveyG,McCoy,GeForce,SideBar,AirBnB,PayPal,LeBron,JavaScript,ExpressJet,CutePDF,McClouds,McElroy,McGovern,TableHelper,ShadowTiddler,WikiWords
§Reasons for Illegitimate Births
~Completely Devoted to Liege
§Barbarian Culture Package
§101.01: Beast-Blooded Ancestry
§Barbarian Culture Package
$:/core/ui/AdvancedSearch/Standard
$:/themes/tiddlywiki/vanilla/themetweaks
$:/core/ui/ControlPanel/Advanced
§Decadent Culture Package
$:/core/ui/ControlPanel/TiddlerFields
+Orphaned Bastard Brothers
$:/core/ui/DefaultSearchResultList
$:/core/ui/ControlPanel/Saving
§101 Ancestry / Racial Stock
$:/core/ui/ControlPanel/Saving/TiddlySpot
§Civilized Culture Package
§217: Significant Childhood Events
~Sparrow's Southward Call
$:/core/ui/MoreSideBar/Tags
$:/core/ui/SideBar/Recent
$:/core/ui/ControlPanel/Toolbars/ViewToolbar
*Requirements: 01 Trigger
{
"tiddlers": {
"$:/info/browser": {
"title": "$:/info/browser",
"text": "yes"
},
"$:/info/node": {
"title": "$:/info/node",
"text": "no"
},
"$:/info/url/full": {
"title": "$:/info/url/full",
"text": "file:///Users/lewmaestas/Library/Mobile%20Documents/iCloud~com~cjhunt~quine/Documents/Shattered%20Realms%20Wiki.html"
},
"$:/info/url/host": {
"title": "$:/info/url/host",
"text": ""
},
"$:/info/url/hostname": {
"title": "$:/info/url/hostname",
"text": ""
},
"$:/info/url/protocol": {
"title": "$:/info/url/protocol",
"text": "file:"
},
"$:/info/url/port": {
"title": "$:/info/url/port",
"text": ""
},
"$:/info/url/pathname": {
"title": "$:/info/url/pathname",
"text": "/Users/lewmaestas/Library/Mobile%20Documents/iCloud~com~cjhunt~quine/Documents/Shattered%20Realms%20Wiki.html"
},
"$:/info/url/search": {
"title": "$:/info/url/search",
"text": ""
},
"$:/info/url/origin": {
"title": "$:/info/url/origin",
"text": "file://"
},
"$:/info/browser/screen/width": {
"title": "$:/info/browser/screen/width",
"text": "1920"
},
"$:/info/browser/screen/height": {
"title": "$:/info/browser/screen/height",
"text": "1080"
},
"$:/info/browser/language": {
"title": "$:/info/browser/language",
"text": "en-US"
}
}
}
$:/themes/tiddlywiki/vanilla
\define tiddler-background-datauri()
<$set name="background" value={{$:/themes/intrinsical/dnd5e/settings/backgroundimage}}>
<$list filter="[<background>is[image]]">
`background: url(`
<$list filter="[<background>!has[_canonical_uri]]">
`"`<$macrocall $name="datauri" title={{$:/themes/intrinsical/dnd5e/settings/backgroundimage}}/>`"`
</$list>
<$list filter="[<background>has[_canonical_uri]]">
`"`<$view tiddler={{$:/themes/intrinsical/dnd5e/settings/backgroundimage}} field="_canonical_uri"/>`"`
</$list>
`) center center;`
`background-attachment: `{{$:/themes/intrinsical/dnd5e/settings/backgroundimageattachment}}`;
-webkit-background-size:` {{$:/themes/intrinsical/dnd5e/settings/backgroundimagesize}}`;
-moz-background-size:` {{$:/themes/intrinsical/dnd5e/settings/backgroundimagesize}}`;
-o-background-size:` {{$:/themes/intrinsical/dnd5e/settings/backgroundimagesize}}`;
background-size:` {{$:/themes/intrinsical/dnd5e/settings/backgroundimagesize}}`;`
</$list>
</$set>
\end
\define sidebarbreakpoint-minus-one()
<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>
\end
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline
.tc-tiddler-frame .tc-tiddler-body h1, .tc-tiddler-preview-preview h1, .tc-tiddler-frame .tc-tiddler-body h2, .tc-tiddler-preview-preview h2, .tc-tiddler-frame .tc-tiddler-body h3, .tc-tiddler-preview-preview h3, .tc-tiddler-frame .tc-tiddler-body h4, .tc-tiddler-preview-preview h4, .tc-tiddler-frame .tc-tiddler-body h5, .tc-tiddler-preview-preview h5, .tc-tiddler-frame .tc-tiddler-body h6, .tc-tiddler-preview-preview h6 {
line-height: normal;
font-weight: bold;
border-bottom: 1px solid <<colour muted-foreground>>;
}
.tc-tiddler-title-icon span {
font-size: 1em !important;
}
.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: <<sidebarbreakpoint-minus-one>>) {
.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)">>
}
.tc-tiddler-view-frame, .tc-tiddler-edit-frame {
background-color: #f9f3d7;
<<tiddler-background-datauri>>
}
{
"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"
}
}
}
{
"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 > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\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\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\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\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\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.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\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 \tcursor: pointer;\n\tcolor: <<colour foreground>>;\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\tborder-radius: 2px;\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-primary-btn {\n \tbackground: <<colour primary>>;\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-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\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\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: text-bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\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\tmargin-right: .1em;\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-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\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\tcolor: <<colour tiddler-controls-foreground-selected>>;\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-type-selector .tc-edit-typeeditor {\n\twidth: 20%;\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-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\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 .tc-drop-down-info {\n\tpadding-left: 14px;\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\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\toverflow: auto;\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: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n line-height: 0;\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 font-size: 0.8em;\n margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\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: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n padding: 2px 7px;\n font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\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 margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\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 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\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\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\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/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\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 v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\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``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"
}
}
}
parchment_2_wallpaper.jpeg
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">School</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Concentration</th>
<th style="background: #b3ad97;">G/I</th>
<th style="background: #b3ad97;">Target</th><th style="background: #b3ad97;">Range</th><th style="background: #b3ad97;">Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Druidic]level[0]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!school}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="right">{{!!concentration}}</td>
<td align="center">{{!!gestures}} / {{!!incantation}}</td>
<td align="center">{{!!target}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!area}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
\define select-alignment()
<$select field="value_alignment" default="0" >
<option value="Lawful Good">Lawful Good</option>
<option value="Lawful Neutral">Lawful Neutral</option>
<option value="Lawful Evil">Lawful Evil</option>
<option value="Neutral Good">Neutral Good</option>
<option value="True Neutral">True Neutral</option>
<option value="Neutral Evil">Lawful Evil</option>
<option value="Chaotic Good">Chaotic Good</option>
<option value="Chaotic Neutral">Chaotic Neutral</option>
<option value="Chaotic Evil">Chaotic Evil</option>
</$select>
\end
\define select-skill(field)
<$select field="$field$" default="0" actions=<<update-saving-throws-skills>> >
<option value="0">Unskilled</option>
<option value="1">Proficient</option>
<option value="2">Expert</option>
</$select>
\end
\define update-proficiencies()
<$list filter="[<currentTiddler>!has[proficiency_strength]]"><$action-setfield proficiency_strength=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_dexterity]]"><$action-setfield proficiency_dexterity=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_constitution]]"><$action-setfield proficiency_constitution=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_intelligence]]"><$action-setfield proficiency_intelligence=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_wisdom]]"><$action-setfield proficiency_wisdom=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_charisma]]"><$action-setfield proficiency_charisma=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_acrobatics]]"><$action-setfield proficiency_acrobatics=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_animalhandling]]"><$action-setfield proficiency_animalhandling=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_arcana]]"><$action-setfield proficiency_arcana=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_athletics]]"><$action-setfield proficiency_athletics=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_deception]]"><$action-setfield proficiency_deception=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_history]]"><$action-setfield proficiency_history=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_insight]]"><$action-setfield proficiency_insight=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_intimidation]]"><$action-setfield proficiency_intimidation=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_investigation]]"><$action-setfield proficiency_investigation=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_medicine]]"><$action-setfield proficiency_medicine=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_nature]]"><$action-setfield proficiency_nature=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_perception]]"><$action-setfield proficiency_perception=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_performance]]"><$action-setfield proficiency_performance=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_persuasion]]"><$action-setfield proficiency_persuasion=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_religion]]"><$action-setfield proficiency_religion=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_sleightofhand]]"><$action-setfield proficiency_sleightofhand=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_stealth]]"><$action-setfield proficiency_stealth=0 /></$list>
<$list filter="[<currentTiddler>!has[proficiency_survival]]"><$action-setfield proficiency_survival=0 /></$list>
<$list filter="[<currentTiddler>!has[modifier_global_saves]]"><$action-setfield modifier_global_saves=0 /></$list>
<$list filter="[<currentTiddler>!has[modifier_global_skills]]"><$action-setfield modifier_global_skills=0 /></$list>
\end
\define update-level()
<$action-setfield value_level={{{ [all[current]fields[]prefix[level_]] :map[<..currentTiddler>get<currentTiddler>] +[sum[]] }}} />
<$macrocall $name="update-proficiency-bonus"/>
\end
\define update-modifiers()
<$action-setfield
modifier_strength={{{ [[Modifiers]getindex{!!value_strength}] }}}
modifier_dexterity={{{ [[Modifiers]getindex{!!value_dexterity}] }}}
modifier_constitution={{{ [[Modifiers]getindex{!!value_constitution}] }}}
modifier_intelligence={{{ [[Modifiers]getindex{!!value_intelligence}] }}}
modifier_wisdom={{{ [[Modifiers]getindex{!!value_wisdom}] }}}
modifier_charisma={{{ [[Modifiers]getindex{!!value_charisma}] }}}
/>
<$macrocall $name="update-proficiency-bonus"/>
\end
\define update-proficiency-bonus()
<$action-setfield proficiency_bonus={{{ [[ProficiencyBonus]getindex{!!value_level}] }}} />
<$macrocall $name="update-saving-throws-skills" />
\end
\define update-saving-throws-skills()
<$macrocall $name="update-proficiencies" />
<$action-setfield
save_strength={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_strength]] +[product[]] =[all[current]get[modifier_strength]] =[all[current]get[modifier_global_saves]] +[sum[]] }}}
save_dexterity={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_dexterity]] +[product[]] =[all[current]get[modifier_dexterity]] =[all[current]get[modifier_global_saves]] +[sum[]] }}}
save_constitution={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_constitution]] +[product[]] =[all[current]get[modifier_constitution]] =[all[current]get[modifier_global_saves]] +[sum[]] }}}
save_intelligence={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_intelligence]] +[product[]] =[all[current]get[modifier_intelligence]] =[all[current]get[modifier_global_saves]] +[sum[]] }}}
save_wisdom={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_wisdom]] +[product[]] =[all[current]get[modifier_wisdom]] =[all[current]get[modifier_global_saves]] +[sum[]] }}}
save_charisma={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_charisma]] +[product[]] =[all[current]get[modifier_charisma]] =[all[current]get[modifier_global_saves]] +[sum[]] }}}
modifier_initiative={{{ =[all[current]get[modifier_dexterity]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_acrobatics={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_acrobatics]] +[product[]] =[all[current]get[modifier_dexterity]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_animalhandling={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_animalhandling]] +[product[]] =[all[current]get[modifier_wisdom]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_arcana={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_arcana]] +[product[]] =[all[current]get[modifier_intelligence]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_athletics={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_athletics]] +[product[]] =[all[current]get[modifier_strength]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_deception={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_deception]] +[product[]] =[all[current]get[modifier_charisma]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_history={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_history]] +[product[]] =[all[current]get[modifier_intelligence]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_insight={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_insight]] +[product[]] =[all[current]get[modifier_wisdom]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_intimidation={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_intimidation]] +[product[]] =[all[current]get[modifier_charisma]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_investigation={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_investigation]] +[product[]] =[all[current]get[modifier_intelligence]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_medicine={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_medicine]] +[product[]] =[all[current]get[modifier_wisdom]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_nature={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_nature]] +[product[]] =[all[current]get[modifier_intelligence]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_perception={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_perception]] +[product[]] =[all[current]get[modifier_wisdom]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_performance={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_performance]] +[product[]] =[all[current]get[modifier_charisma]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_persuasion={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_persuasion]] +[product[]] =[all[current]get[modifier_charisma]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_religion={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_religion]] +[product[]] =[all[current]get[modifier_intelligence]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_sleightofhand={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_sleightofhand]] +[product[]] =[all[current]get[modifier_dexterity]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_stealth={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_stealth]] +[product[]] =[all[current]get[modifier_dexterity]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
skill_survival={{{ [all[current]get[proficiency_bonus]] [all[current]get[proficiency_survival]] +[product[]] =[all[current]get[modifier_wisdom]] =[all[current]get[modifier_global_skills]] +[sum[]] }}}
/>
<$action-setfield
passive_insight={{{ =[[10]] =[all[current]get[skill_insight]] +[sum[]] }}}
passive_investigation={{{ =[[10]] =[all[current]get[skill_investigation]] +[sum[]] }}}
passive_perception={{{ =[[10]] =[all[current]get[skill_perception]] +[sum[]] }}}
/>
\end
"""
''<<select-alignment>>'' - Render a drop-down selection box for alignment
''<<select-skill'' //field//''>>'' - Render a drop-down selection box for skill proficiency
''<<update-level>>'' - Recalculate level
''<<update-modifiers>>'' - Recalculate ability modifiers
''<<update-proficiencies>>'' - Initialize attribute & skill proficiencies
''<<update-proficiency-bonus>>'' - Recalculate proficiency bonus
''<<update-saving-throws-skills>>'' - Recalculate saving throws & skill modifiers
"""
|Bakers |<$edit-text field=_bakers/>|Barbers |<$edit-text field=_barbers/>|Bathers |<$edit-text field=_bathers/>|
|Beer-sellers |<$edit-text field=_beer_sellers/>|Blacksmiths |<$edit-text field=_blacksmiths/>|Bleachers |<$edit-text field=_bleachers/>|
|Bookbinders |<$edit-text field=_bookbinders/>|Booksellers |<$edit-text field=_booksellers/>|Buckle Makers |<$edit-text field=_buckle_makers/>|
|Butchers |<$edit-text field=_butchers/>|Carpenters |<$edit-text field=_carpenters/>|Chandlers |<$edit-text field=_chandlers/>|
|Chicken Butchers |<$edit-text field=_chicken_butchers/>|Coopers | <$edit-text field=_coopers/>|Copyists |<$edit-text field=_copyists/>|
|Cutlers |<$edit-text field=_cutlers/>|Doctors |<$edit-text field=_doctors/>|Fishmongers |<$edit-text field=_fishmongers/>|
|Furriers |<$edit-text field=_furriers/>|Glovemakers |<$edit-text field=_glovemakers/>|Harness Makers |<$edit-text field=_harness_makers/>|
|Hatmakers |<$edit-text field=_hatmakers/>|Hay Merchants |<$edit-text field=_hay_merchants/>|Illuminators |<$edit-text field=illuminators/>|
|Inns |<$edit-text field=_inns/>|Jewelers |<$edit-text field=_jewelers/>|Locksmiths |<$edit-text field=_locksmiths/>|
|Magic Shops |<$edit-text field=_magic_shops/>|Maidservants |<$edit-text field=_maidservants/>|Masons |<$edit-text field=_masons/>|
|Mercers |<$edit-text field=_mercers/>|Old Clothes |<$edit-text field=_old_clothes/>|Painters |<$edit-text field=_painters/>|
|Pastrycooks |<$edit-text field=_pastrycooks/>|Plasterers |<$edit-text field=_plasterers/>|Pursemakers |<$edit-text field=_pursemakers/>|
|Roofers |<$edit-text field=_roofers/>|Ropemakers |<$edit-text field=_ropemakers/>|Rugmakers |<$edit-text field=_rugmakers/>|
|Saddlers |<$edit-text field=_saddlers/>|Scabbardmakers |<$edit-text field=_scabbardmakers/>|Sculptors |<$edit-text field=_sculptors/>|
|Shoemakers |<$edit-text field=_shoemakers/>|Spice Merchants |<$edit-text field=_spice_merchants/>|Tailors |<$edit-text field=_tailors/>|
|Tanners |<$edit-text field=_tanners/>|Taverns |<$edit-text field=_taverns/>|Watercarriers |<$edit-text field=_watercarriers/>|
|Weavers |<$edit-text field=_weavers/>|Wine Sellers |<$edit-text field=_wine_sellers/>|Woodcarvers |<$edit-text field=_woodcarvers/>|
|Woodsellers |<$edit-text field=_woodsellers/>|<|<|<|<|
§Primitive Culture Package
§Primitive Culture Package
!! §[[title goes here]]
<<<
shared common ground; shared philosophy; specific goals; how they set aside differences; what personal sacrifices of time and effort and resources are expected or offered to the group; how do they work for the good of the group; how do they survive, propagate, and grow beyond the lifetime of the current members
<<<
---
!!! <<subsume "title Homelife">>
!!! <<subsume "title Community">>
!!! <<subsume "title Religion">>
!!! <<subsume "title Government">>
---
!!! <<subsume "title Cultural Package, Options, Professions">>
\define ornate-box(value, header, footer, background:"frame-ornate.svg")
<div class="dnd-box">
<div class="dnd-background"><$transclude tiddler="$background$" /></div>
<div class="dnd-header">$header$</div>
<div class="dnd-value">$value$</div>
<div class="dnd-footer">$footer$</div>
</div>
\end
\define ability(label, value, modifier, saving)
<table style="width: 100px;">
<tr><td colspan="2" align="center" style="width: 75px; height: 78px;">$label$<br/><div style="font-size:x-large; font-weight: bold; width: 1.5em; height: 1.5em; padding-top: 0.3em;">$value$</div></td></tr>
<tr>
<td align="center">Mod</td><td align="center">$modifier$</td>
</tr>
<tr>
<td align="center">Save</td><td align="center">$saving$</td>
</tr>
</table>
\end
\define ability-value(label, value)
<$macrocall $name="ability" label=$label$ value=$value$ modifier={{Modifiers##$value$}} saving={{Modifiers##$value$}} />
\end
\define ability-field(label, field)
<$macrocall $name="ability-value" label=$label$ value={{$field$}} />
\end
\define stat(label1, value, label2, class="")
<table style="width: 100px; height: 100px; margin: 0px;" class="$class$">
<tr><td style="text-align: center; vertical-align: middle; height: 22px; border: none; font-size: 90%;">$label1$</td></tr>
<tr><td style="text-align: center; vertical-align: middle; height: 31px; border: none; font-size: x-large;">$value$</td></tr>
<tr><td style="text-align: center; vertical-align: middle; height: 22px; border: none; font-size: 90%;">$label2$</td></tr>
</table>
\end
\define box(field)
<$checkbox field="$field$" checked="Used" unchecked="" class="box" />
\end
\define skill(level)
<$reveal type="match" default="0" text="$level$">○○</$reveal><$reveal type="match" default="1" text="$level$">◉○</$reveal><$reveal type="match" default="2" text="$level$">◉◉</$reveal>
\end
\define diceroll(title dice field)
<table><tr><th style="padding: 0;" colspan="2">$title$</th></tr>
<tr><td style="padding: 0;" align="center"><$button>
<$action-dice $dice="$dice$" $field="$field$" />
$dice$
</$button></td><td style="padding: 0px 5px 1px 5px;"><$view field="$field$" class="dice" /></td></tr></table>
\end
\define dicerollv(title dice field)
<table><tr><th style="padding: 0;" colspan="2">$title$</th></tr>
<tr><td style="padding: 0;" align="center"><$button>
<$action-dice $dice="$dice$" $field="$field$" $verbose=1 />
$dice$
</$button></td><td style="padding: 0px 5px 1px 5px;"><$view field="$field$" class="dice" /></td></tr></table>
\end
\define attack(prefix name damage_type tohit damage info)
<tr><th colspan="4">Deprecated function</th></tr>
\end
\define attack2(prefix name tohit damage1 damage2 info)
<tr><th colspan="4">Deprecated function</th></tr>
\end
\define dc(prefix name damage_type dc damage info)
<tr><th colspan="4">Deprecated function</th></tr>
\end
\define item(tiddler)
{{$tiddler$||LabelItem}}
\end
"""
''<<ornate-box'' //value// //header// //footer// //background//''>>'' - Display an ornate box
''<<ability'' //label// //value// //modifier// //saving_throw//''>>'' - Display a single character ability score
''<<ability-value'' //label// //value//''>>'' - Display a single character ability score, modifiers are automatically calculated from value
''<<ability-field'' //label// //field//''>>'' - Display a single character ability score, with value is stored in a tiddler field
''<<statistic'' //top_label// //value// //bottom_label// //stylesheet class//''>>'' - Display a single character statistic
''<<box'' //field//''>>'' - Create a checkbox field
''<<skill'' //proficiency_level//''>>'' - <<skill 1>>
''<<diceroll'' //title 1d6 field//''>>'' - Roll dice
''<<dicerollv'' //title 3d6 field//''>>'' - Roll dice, with detailed results
''<<attack'' //name damage_type tohit dmg_dice field_prefix info//''>>'' - Roll attack dice
''<<dc'' //name damage_type dc dmg_dice field_prefix info//''>>'' - Roll saving throw attack damage
''<<item'' //tiddler//''>>'' - Render magic item with quality and attunement information
"""
[data-tags*="Character"] .tc-tiddler-body {
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
}
[data-tags*="Character"] .tc-tiddlylink {
font-weight: bold;
}
[data-tags*="Monster"] .tc-tiddler-body {
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
width: 500px;
}
[data-tags*="Monster"] .tc-tiddlylink {
font-weight: bold;
}
.dnd-effect {
font-family: -apple-system, ~BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
}
.dnd-icon {
vertical-align: sub;
padding-left: 1px;
padding-right: 1px;
}
.dnd-statbox {
width: 98px;
height: 98px;
display: flex;
flex-direction: column;
background-size: contain;
text-align: center;
vertical-align: middle;
}
.dnd-statbox-label {
display: block;
box-sizing: inherit;
outline: 0;
font-weight: 700;
font-size: 10px;
text-transform: uppercase;
line-height: 1;
}
.dnd-statbox-value {
display: block;
box-sizing: inherit;
font-size: 26px;
letter-spacing: -1px;
box-sizing: inherit;
outline: 0;
}
.tc-tiddler-frame .tc-tiddler-body h1, .tc-tiddler-preview-preview h1, .tc-tiddler-frame .tc-tiddler-body h2, .tc-tiddler-preview-preview h2, .tc-tiddler-frame .tc-tiddler-body h3, .tc-tiddler-preview-preview h3, .tc-tiddler-frame .tc-tiddler-body h4, .tc-tiddler-preview-preview h4, .tc-tiddler-frame .tc-tiddler-body h5, .tc-tiddler-preview-preview h5, .tc-tiddler-frame .tc-tiddler-body h6, .tc-tiddler-preview-preview h6 {
line-height: normal;
font-weight: bold;
border-bottom: 1px solid <<colour muted-foreground>>;
}
.fold {
font-weight: bold;
}
.unfold {
font-weight: bold;
}
table.max {
width: 100%;
}
table.top th {
vertical-align: top;
}
table.top td {
vertical-align: top;
}
table.noborder {
border: 0px;
margin: 0;
}
table.noborder th, table.noborder td {
border: none;
padding: 0;
}
table.column2 tr td:nth-child(1) {
min-width: 80px;
max-width: 150px !important;
width: 10%;
padding-right: 7px;
}
table.column3 td:nth-child(1) {
min-width: 150px;
max-width: 200px !important;
width: 15%;
padding-right: 7px;
}
table.column3 td:nth-child(3) {
min-width: 80px;
max-width: 150px;
width: 10%;
padding-left: 7px;
}
table.column4 tr td:nth-child(1) {
min-width: 80px;
max-width: 150px !important;
width: 10%;
padding-right: 7px;
}
table.column4 tr td:nth-child(3) {
min-width: 80px;
max-width: 150px !important;
width: 10%;
padding-right: 7px;
}
table.spelltable tr td:nth-child(1) {
width: 30%; /* Spell */
}
table.spelltable tr td:nth-child(2) {
width: 5%; /* Level */
}
table.spelltable tr td:nth-child(3) {
width: 15%; /* School */
}
table.spelltable tr td:nth-child(4) {
width: 10%; /* Casting time */
}
table.spelltable tr td:nth-child(5) {
width: 5%; /* Components */
}
table.spelltable tr td:nth-child(6) {
width: 17.5%; /* Range */
}
table.spelltable tr td:nth-child(7) {
width: 12.5%; /* Duration*/
}
table.spelltable tr td:nth-child(8) {
width: 5%; /* Meta */
}
label.box input[type=checkbox]
{
-ms-transform: scale(1.5); /* IE */
-moz-transform: scale(1.5); /* FF */
-webkit-transform: scale(1.5); /* Safari and Chrome */
-o-transform: scale(1.5); /* Opera */
transform: scale(1.5);
margin: 0.25em;
width: 15px;
height: 15px;
}
.padding {
padding: 5px;
}
.gallery {
display: flex;
flex-wrap: wrap;
width: 100%;
}
.icon {
text-align: center;
width:100px;
padding: 5px;
}
.shadow-box {
width: 99%;
padding: 5px 5px;
<<box-shadow "inset 1px 1px grey, 4px 4px 6px grey">>
}
.grid2 {
display: grid;
grid-template-columns: 300px 300px;
grid-gap: 10px;
width: 610px;
}
.grid4 {
display: grid;
grid-template-columns: 100px 100px 100px 100px;
grid-gap: 10px;
width: 430px;
}
.grid6 {
display: grid;
grid-template-columns: 100px 100px 100px 100px 100px 100px;
grid-gap: 10px;
width: 650px;
}
.monster {
background-repeat: repeat-x, repeat;
box-shadow: 0 0 5px #979aa4;
padding: 15px 15px 15px 15px;
display: flex;
flex-wrap: wrap;
flex-direction: column;
min-height: 400px;
max-height: 700px;
}
.monster h1 {
margin-block-start: 0px;
font-weight: bold;
border-bottom: none;
}
.monster div {
width: 500px;
}
.btn-download {
width: 250px;
padding: 10px;
border-radius: 5px;
background: #1462ff;
border-radius: 5px;
border: none;
box-shadow: 0 2px 2px 0 #4a74c9;
overflow: hidden;
cursor: pointer;
font-size: 1.2em;
line-height: 1.4em;
color: #fff;
fill: #fff;
}
.btn-download:active {
background: #1475ff;
}
.max-width {
width: 100%;
}
textarea.max-width {
width: 100%;
min-height: 1em;
height: 3em !important;
}
.dnd-label {
display: inline-block;
font-weight: normal;
line-height: 1.2em;
white-space: no-wrap;
vertical-align: baseline;
}
.dnd-label svg, .dnd-label img {
height: 1em;
width: 1em;
margin-right: 2px;
margin-bottom: 1px;
vertical-align: bottom;
}
.dnd-common {
color: #777777 !important;
}
.dnd-uncommon {
color: #33a823 !important;
}
.dnd-rare {
color: #2366a8 !important;
}
.dnd-veryrare {
color: #7223a8 !important;
}
.dnd-legendary {
color: #d9832d !important;
}
.dnd-unique {
color: #a82323 !important;
}
table.dnd-session {
min-width: 50%;
}
table.dnd-session th {
text-align: left;
width: 150px;
min-width: 120px;
}
table.dnd-session td.dnd-title {
text-align: left;
background-color: #c0b5a3;
}
table.dnd-session td.dnd-title a {
color: #594d36;
font-weight: bold;
}
table.dnd-session td.dnd-ticker {
background-color: #d9ceb8;
}
table.dnd-session .dnd-label {
padding-right: 40px;
}
.dnd-session-icon {
float: left !important;
font-size: 2em !important;
padding-top: 5px !important;
padding-right: 5px !important;
}
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
!!! Game Abilities
!!! Epithets
!!! Languages Known
!!! Appearance
!!! Mannerisms/Habits
!!! Personality/Motives
!!! Response to Key Stimuli
!!! Exploitable Traits / Weaknesses
!!! Background / History
!!! Typical Tactics
!!! Henchmen
<$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>
One of the most overlooked aspects in the design and play of traditional roleplaying games is the underlying game structure. Or, to put it another way, there are two questions which every game designer and GM must ask themselves:
(1) What do the characters do?
(2) How do the players do it?
These questions might seem deceptively simple, but the answers are complex. And getting the right answers is absolutely critical to having a successful gaming session.
Some of you may already be challenging this. “How difficult can it be? The players tell me what their characters are doing and then we resolve it. What could be easier?”
To demonstrate the oversight taking place here, let me give you a quick example of play:
Player: I want to explore the dungeon.
GM: Okay, make a Dungeoneering check.
Player: I succeed.
GM: Okay, you kill a tribe of goblins and emerge with 546 gp in loot.
Is there anything wrong with that? Not necessarily. But it’s certainly a very different game structure than the traditional D&D dungeoncrawl.
And, of course, that example already assumes that the PCs are fantasy heroes who do things like dungeoncrawling. Given the exact same setting and the exact same game system, they could just as easily be monarchs, dragons, farmers, magical researchers, planar travelers, gods, military masterminds, or any of a dozen other things for whom these dungeoncrawling game structures are irrelevant.
BOARD AND CARD GAMES
The reason game structures become an issue for us is because roleplaying games are functionally open-ended: There is an expectation (and a reasonable one) that the players should be able to say “I want my character to do X” and then we’ll be able to figure out if (a) they’re successful and (b) what happens as a result.
Twilight Imperium - Fantasy Flight GamesTraditional board and card games don’t run into this problem because their game structure is rigidly defined and limited by the rules: Each time you take a turn in Monopoly or Chess or Arkham Horror there is a precisely defined sequence of actions for you to take. The complexity of this structure can vary quite a bit – in Candyland you simply follow the instructions in order; in Twilight Imperium your decisions would require an incredibly complicated flowchart to model – but the structure is invariable and comprehensive.
Or, to put it another way, boardgames and card games always have an answer to the questions of “What should I be doing now?” and “What happens next?”
ROLEPLAYING GAMES
Consider a hypothetical scenario in which you drop a group of PCs onto a random street corner. Now, take the same group of PCs and drop them into a random room in a dungeon. Why does one group say “I head through the north door” while the other says “I go looking for the local police station”? Why doesn’t the guy in the dungeon say “I go looking for the treasure” and the guy on the street corner say “I take the street on the left”?
Partly, of course, this is a matter of each group of characters having a different set of immediate goals. But it has a lot more to do with habits that have been casually engrained into us through years of playing RPGs.
Another example: Consider the difference between playing D&D and playing the Wrath of Ashardalon boardgame. Both feature similar mechanics, similar settings, and similar character goals. Why is my D&D group likely to spend time examining the walls and investigating arcane circles while my Wrath of Ashardalon group isn’t? Because the game structure is different.
In addition, as our example of dungeon vs. urban scenarios suggests, roleplaying games will often switch game structures. By contrast, computer games usually don’t swap game structures, choosing instead to unify their gameplay: In Elder Scrolls you use the same interface and commands whether you’re exploring a dungeon, traveling through the wilderness, or shopping in town.
On the other hand, games like Final Fantasy VII give you an overland map for travel. And Elder Scrolls V introduced a “fast travel” system that also changes that structure. Meanwhile, at the other extreme, the engine for the original Bard’s Tale was so limited that the town of Skara Brae was a murderville in which citizens attacked like monsters and the gameplay was almost completely indistinguishable from the dungeon at even the micro-level.
In a similar fashion, when I was twelve years old, I tried to run my earliest wilderness adventures as if they were dungeoncrawls: “Okay, you see some trees. What do you do?” “We go north.” “Okay, you go about a hundred feet. There are still trees. What do you do now?”
Use the wrong game structure and you can end up with a really lousy game.
---
All of this can be somewhat difficult to discuss because game structures have become invisible partners in our games. They are generally not spoken of. We don’t even really think about them.
Apocalypse World - Vincent D. BakerIn The Elfish Gene, Mark Barrowcliffe writes: “When D&D is played it sounds like a series of questions and answers.” Similarly, in Apocalypse World, D. Vincent Baker says, “Roleplaying is a conversation. You and the other players go back and forth, talking about these fictional characters in their fictional circumstances doing whatever it is that they do. Like any conversation, you take turns, but it’s not like taking turns, right?”
So as we begin looking at game structures in traditional roleplaying games, what we’re really doing is cracking open this conversation at the game table and looking at what makes it tick. And, just like a formal debate, we’re also looking at how we impose rules onto that conversation and what effect those rules have. (Some of those rules are the actual mechanics of the game, but most of them are actually looser and more universally applicable than that.)
With that in mind, let’s start by imagining ourselves sitting at a hypothetical game table. We want to start playing a traditional roleplaying game. What needs to happen?
(1) A player needs to propose an action for their character.
(2) The GM needs to adjudicate that action and provide an outcome.
Once that outcome has been determined, this cycle repeats itself. (The player proposes a new action for their character and the GM then adjudicates that action.) This is the fundamental basis for the conversation at the heart of all roleplaying games.
But, as we established at the beginning of this essay, this is not as simple as it looks. Complications arise once we consider two questions:
(1) What, exactly, is the action being resolved?
(2) How, exactly, do we resolve that action?
The first question can be largely thought of as conceptually chunking or breaking actions apart. (Is “exploring the dungeon” a single action or is it made up of many different actions?) Sometimes the GM will need to break a proposed action down into smaller actions; sometimes they’ll need to figure out how to get the player to chunk multiple actions together into a meaningful package. Ideally, of course, both player and GM would get on the same page about what type of “chunk” to propose and resolve. (And this is, of course, where shared game structures come into play.)
The second question is often answered by the mechanics of the game, but not always. (And often those mechanics will only provide a partial answer.)
For a relatively simple example at the micro-level, consider a situation in which Elizabeth the Duchess of Canterlocke is providing a formal introduction for her friend, the Duke of Donalberry. But, in reality, the Duke of Donalberry is a fraud and Elizabeth knows this (she’s trying to smuggle him into some formal affair for reasons that aren’t really important). Is this resolved with a Bluff check? If so, is the check made by the duchess or the duke? Or both? Or should the duchess make a Bluff check while the duke makes a Disguise check? If the duchess fails her Bluff check, does that mean the whole fraud has been discovered? Or does it just alert the target that something funny is going on (thus applying a penalty to the duke’s Disguise check)?
There is no “right” answer here. But which structure you choose will have a significant impact on how this scene plays out at the table.
MICRO vs. MACRO
For the sake of convenience, I’m going to conceptually break down my discussion of game structures into two types:
At the micro-level, game structures usually take the form of GM rulings: As in our example of the Duchess of Canterlocke, the PCs propose an action and the GM determines how that action will be resolved. (In some cases this ruling is straightforward – the players want to do X; there is a rule for X; the GM uses the rule – and in other cases it will require greater innovation.)
At the macro-level, game structures become scenario structures. These larger scaffoldings determine how the players move through complex environments (physical, social, conceptual, or otherwise).
For example, imagine a simple scenario concept: “The PCs go to Castle Osterkark and investigate the rumors of cultist activity.”
A GM could choose to use any number of game structures to flesh out this concept: Is it a crawl from room to room? Is there a network of clues that will take the PCs to various locations throughout the castle? Will the PCs seek out particular NPCs and question them? Is there a timeline of events? Some combination of these techniques? Some other technique entirely?
At both the macro- and micro-level, game structures have a significant impact on what happens at the actual game table.
To help us get a better grasp on what scenario structures look like in practice, let’s take a peek at the grand-daddy of them all: The dungeoncrawl.
---
The most successful scenario structure in the history of roleplaying games is the traditional dungeoncrawl. In fact, I believe that much of D&D’s success rests on the strength of the traditional dungeoncrawl as a scenario structure. (Notably, it is a structure which has proven extremely effective even when translated into other mediums and executed with completely different mechanics.)
Catacombs - Legends & LabyrinthsWhat makes it work?
First, for the player, it provides:
(1) A default goal. Specifically, “find all the treasure”, “kill all the monsters”, or some other variant of “clear the dungeon”. In other words, the structure inherently provides a reason for the player to engage the scenario.
(2) A default action. If a player is standing in a room and there’s nothing interesting to do in the room, then they should pick an exit and go to the next room.
Collectively, these mean that the player always has an answer to the question, “What do I do next?”
Second, for the GM, the dungeoncrawl is:
(1) Easy to prep. In fact, it’s virtually impossible for even a neophyte DM to screw up the design of a dungeoncrawl. What’s he going to do? Forget to draw an exit from the room?
(2) Easy to run. This extends beyond the macro-structure of the dungeoncrawl and begins to depend on the D&D ruleset itself, but, in general, any action proposed by the players within the dungeon will usually have a self-evident method of resolution. The dungeoncrawl also “firewalls” the adventure into discrete chunks (the individual rooms) which can generally be run as small, manageable packets.
Collectively, these mean that even first time DMs can reliably design and run a dungeoncrawl without leaving either (a) their players stymied or (b) themselves confused.
This is huge. Thanks to the dungeoncrawl, D&D can reliably create new DMs in a way that most other RPGs can’t and don’t.
But the dungeoncrawl also has a couple of other key features:
(1) It provides structure, but not a straitjacket. When the players ask themselves, “What do I do now?” the dungeoncrawl provides them with a default answer (“go through an exit”), but doesn’t prohibit them from creating all sorts of other answers for themselves: Fight the goblins. Investigate the arcane runes. Set up a fungal garden. Check for traps. Translate the hieroglyphics. Reverse engineer the construction of dwarven golems. Negotiate with the necromancer. And on and on and on. (It doesn’t even prevent you from leaving the structure entirely: The D&D rules include a multitude of options for bypassing the structure of the dungeon itself.)
(2) Flexibility within the form. The DM can put just about anything into the structure. Each dungeon room – each chunk of content delivered by the scenario structure – is a completely blank canvas.
Having this simple-to-understand, simple-to-design, and simple-to-use scenario structure makes D&D universally accessible in a way that, for example, Transhuman Space isn’t.
Next, let’s shift from the macro-level to the micro-level.
---
Tied into the success of the dungeoncrawl is the success of traditional combat systems in roleplaying games. Although individual mechanics may vary, virtually all roleplaying games use a basic game structure for combat derived from D&D: Combat is divided into rounds in which everyone gets to take an action (or actions). Usually combat is further defined by an initiative system of some sort, so that you can easily answer the question, “Who goes next?”
If this sounds like the rigid structure of a boardgame or card game, that’s because it is: Derived from tabletop wargames, the average RPG combat system supplies clear-cut answers to the questions of, “What do I do?” and “How do I do it?”
Or, to break it down in a fashion similar to the dungeoncrawl:
Default Goal: Kill (or incapacitate) your opponents.
Default Action: Hit them.
Easy to Prep: Grab a bunch of monsters from the Monster Manual.
Easy to Run: The combat system breaks the action down into a specific sequence and usually provides a fairly comprehensive method of how each action should be resolved.
This is one of the reasons why so many roleplaying games focus so much mechanical attention on combat: No matter how much the players may be floundering, all you have to do is throw a couple of thugs at them and suddenly everyone at the table knows what to do. It’s a comfortable and easy position to default to.
It should also be fairly easy to see the almost perfect mesh between the macro-level structure of the dungeoncrawl and the micro-level structure of combat: When you pick an exit in the dungeoncrawl and find a room filled with monsters, you seamlessly switch into combat. When the combat has been resolved (and the room emptied of interest), you effortlessly return to the dungeoncrawl scenario structure and pick another exit.
Rinse, wash, repeat.
REWARDS
Combat also shows us how D&D links its systems of reward directly to its default game structures: The dungeoncrawl takes you to monsters, combat lets you defeat the monsters, and defeated monsters reward you with XP and treasure.
This is something which I believe other XP reward systems have generally overlooked: Many games have broken XP away from being a combat reward, but they haven’t reattached the XP award to another concrete game structure.
Whether or not that’s a desirable thing is a completely different discussion; a discussion involving Skinner boxes, the psychology of reward-driven pleasure, mechanical-reinforcement techniques, and a whole mess of other stuff.
But I think it’s an unexplored design space that would be interesting to turn some focus on. Particularly when you consider that (A)D&D has featured non-combat rewards for more than 20 years, and yet people still complain about all the XP in D&D coming from killing monsters.
---
The first really successful “post-crawl” scenario structure in the RPG industry is the mystery scenario. While it’s easy to find antecedents, it’s really with the publication of Call of Cthulhu in 1981 that the mystery scenario’s popularity exploded.
Call of Cthulhu - Sandy Antunes (1981)Thirty years later it can be a little difficult to appreciate how radical Call of Cthulhu was and just how fresh a breath of air it provided. It’s been said that the game “busted gaming out of the dungeon” (which is more literally true if we understand “dungeon” to mean crawl-based scenario structures in general), but its revolution has now become ubiquitous. If you look at published scenarios today, mystery-based scenarios are at least as popular as crawl-based scenarios (and even the crawl-based scenarios often include a large dose of mystery-based play). And outside of D&D the victory is even more complete: Virtually every published scenario is mystery-based.
The degree to which this marketplace dominance reflects actual practice at the gaming table can perhaps be quibbled with. But, either way, it’s actually rather curious once you start reflecting on it: Outside of gaming, mysteries are popular, but they aren’t all-consuming. (And even within gaming you don’t see mysteries consuming the board game or video game markets.)
There are probably several reasons for the popularity of mystery scenarios in RPGs. (For example, an unsolved mystery presents a challenge. Overcoming that challenge – by solving the mystery – provides the kind of clear-cut victory condition that can be achieved with only a few things outside of direct competition or combat.) But I suspect a large part of it is that mystery scenarios present straight-forward game structures that are (a) easy to explain to GMs and (b) intuitively grasped by players.
If we start to look at mystery scenarios using the same structural analysis we used for dungeoncrawls, it’s relatively easy to see this from the player’s point of view:
Default Goal? Solve the mystery.
Default Action? Look for clues.
At this point, however, we have to acknowledge that there’s something different about the mystery scenario structure. While it gives some guidance in answering the player’s question, “What do I do next?” it doesn’t provide a complete answer. Instead, once the players have found their clues, they’ll need to draw a conclusion from those clues. If they don’t draw the necessary conclusion, the mystery scenario will stop providing a default action for them to take.
In other words, mystery scenario structures are more fragile than dungeoncrawls. And this fragility becomes more evident as we shift to the GM’s side of the equation:
Easy to Prep? Unlike a dungeoncrawl, it’s very easy for a neophyte GM to screw up the design of a mystery scenario: If they don’t include a necessary clue, for example, or expect the players to make an intuitive leap they’re not capable of making, the scenario structure will break.
Easy to Run? At a macro-level, mystery scenarios are usually still chunked into smaller, more manageable packets (e.g., each location where clues can be found). But, unlike a basic ‘crawl, these chunks are not as firmly “firewalled”. This generally requires the GM to have a greater understanding of the scenario’s totality and makes a mystery scenario a little more difficult for neophytes to run.
At a micro-level, however, mystery scenarios are generally pretty easy to run if you’re using a skill-based system. (Which, perhaps not coincidentally, were becoming ubiquitous right around the same time mystery scenarios were sky-rocketing to dominance.) This is because skill-based systems can generally be broken down into (a) resolving the success or failure of a physical action or (b) the acquisition of information. Clues, of course, are a type of information, so skill-based systems provide a self-evident method of resolution.
By way of contrast, running a mystery-based scenario in a system like OD&D – which lacks a mechanical basis for determining clue acquisition – can be a lot more challenging. Of course, this difficulty can be overcome if you simply introduce such a mechanic. A simple one would be something like, “If the players say they’re looking around, they automatically find any clues in the area.”
The GUMSHOE system uses a similar mechanic. It says, “If the players say they’re using the right skill, they automatically find any matching clues in the area.” As a game structure, of course, this leaves something to be desired (encouraging, as it does, players to treat their skills like a laundry list in every scene).
But I digress.
FRAGILE SCENARIOS
The point here is that mystery scenarios are a relatively fragile scenario structure: More likely to leave the players stymied; more likely to leave new GMs confused; more difficult for new GMs to design.
What we will discover is that this is often true: Many of the RPG scenario structures we use are remarkably fragile. Like delicate sugar crystals, they are often smashed to smithereens during the course of actual play, forcing GMs to stitch them back together on-the-fly. The robust simplicity offered by the geography of a crawl-based scenario structure – “pick a direction and go” – is difficult to replicate.
Obviously, once you’re aware of the fragility in your game structures, you can start thinking about ways to make them more robust. The Three Clue Rule is a simple example of this: It provides a straight-forward methodology which specifically buttresses the fragile breaking point of a basic mystery scenario.
For now, however, our attention must turn back to the robust demesnes of the ‘crawl structure. For that, we’ll need to journey overland to the wild realms of the hexcrawl…
---
The basic, traditional design of a hexcrawl looks something like this:
(1) Draw a hexmap. In general, the terrain of each hex is given as a visual reference and the hex is numbered (either directly or by a gridded cross-reference). Additional features like settlements, dungeons, rivers, roads, and polities are also typically shown on the map.
(2) Key the hexmap. Using the numbered references, key each hex with an encounter or location. (It is not necessary to key all of the hexes on the map.)
(3) Use (or design) mechanics which will let you determine how far the PCs can move while traveling overland. Determine the hex the PCs start in and track their movement.
(4) Whenever the PCs enter a new hex, the GM tells them the terrain type of the hex and triggers the encounter or location keyed to that hex: The PCs experience the event, encounter the monsters, or see the location.
In the traditional structure, it’s also expected that the PCs will be mapping the hexes as they explore.
And that’s pretty much it.
ANALYZING THE CRAWL
As we look at this basic structure for the hexcrawl, we can begin to see some common features of the ‘crawl structure in general.
Default Goal: The default goal of a hexcrawl is exploration. This notably lacks a strong, specific motivator. In a dungeoncrawl, as we discussed, the default goal is to “find all the treasure”, “kill all the monsters”, or some other variant of “clear the dungeon”. Exploring and mapping the dungeon is usually a part of this experience, but the exploration is primarily a means to an end.
Thus, over the years, various goals have been grafted onto the hexcrawl structure to provide a strong motivation for the exploration. (For example, the hexcrawl campaign I’m currently designing takes place on the edge of civilization and there are bounties paid for those who first make interesting discoveries in the wilderness.) But I suspect one of the reasons hexcrawling faded away in the early days of the hobby is because, unlike dungeoncrawling, it lacked a clear, default goal to provide strong motivation and a reward structure.
Default Action: Just like a dungeoncrawl, the default action of a hexcrawl is “pick a direction and go”.
Easy to Prep: In terms of robust design, hexcrawls are very easy to prep. If it’s difficult for the GM of a dungeoncrawl to forget to include a door, it’s even more difficult for a GM to prep a hexcrawl in which the players can’t pick a direction to go. (If the GM isn’t keying every hex, there is a slight danger that they won’t include a sufficient density of content to make play interesting. This is a minimal risk, but consider something like X1 Isle of Dread: Presented as the introductory hexcrawl wilderness scenario for BECMI, the content of the module is actually too sparse to be effectively run as such.)
In terms of prep load, however, hexcrawls can be a little more difficult. Partly this is because there’s no natural “end point” for prepping a hexcrawl: Trying to key an entire world (or even just a full sheet of hexes) can look pretty daunting, and early game manuals weren’t very instructive in terms of explaining how prep load could be managed.
But hexcrawls can also represent a heavy prep load because any given hex can literally require just as much prep as an entire dungeon (if it, for example, has a dungeon in it).
Easy to Run: Once given a proper game structure, I find hexcrawls very easy to run. Even moreso than dungeoncrawls the content of the hexcrawl is naturally firewalled into discrete sections.
One thing that makes hexcrawls a little more difficult to run, however, is the transition between “levels” of material. In a dungeoncrawl, everything is handled at roughly the same level of abstraction: Whether you’re moving between keyed areas or interacting with the content in a keyed area, the actions are described in a consistent (and very specific) way. In a hexcrawl, however, the GM needs to find the effective transition point between “you spend most of the afternoon traveling over the rolling hills east of Maernath” and “you’re fighting orcs; where are you moving in the next ten seconds?”
This is not a massive difficulty, of course, but it does require the GM to develop an additional skill set. Thus it is easy to see the hexcrawl as a natural progression from the dungeoncrawl for the GM: A robust structure using many of the same skills, but also requiring the development of a few new tricks.
Structure, Not Straitjacket: As with the dungeoncrawl, players are given a default action (“pick a direction and go”), but within the hexcrawl scenario structure they’re still free to do pretty much anything their imaginations can concoct.
Flexibility Within the Form: Even moreso than the dungeoncrawl, a GM can put just about anything they want into a hexcrawl scenario structure. (It is, after all, a method for keying an entire world.)
SUMMARIZING THE ‘CRAWL
Looking at the dungeoncrawl and hexcrawl side-by-side, I think we can begin to draw some general conclusions about the ‘crawl structure in general:
(1) It uses a map with keyed locations. (This provides a straight-forward prep structure.)
(2) Characters transition between keyed locations through simple, geographic movement. (This provides a default action and makes it easy to prep robust scenarios.)
(3) The structure includes an exploration-based default goal. (This motivates player engagement with the material and also synchronizes with the geographic-based navigation through the scenario structure.)
In practice, I’ve also found that these ‘crawl structures make it very easy for groups to engage, disengage, and re-engage with the scenario. (You can go into a dungeon, fight stuff for awhile, leave, and when you come back the dungeon will still be there.) This, it turns out, makes them ideal structures for casual play (because players can feel as if they’ve accomplished something even if the dungeon is only half-explored) and open tables (because the disengagement/re-engagement process allows completely different groups of players to interact with the same material).
After considerable thought, I’ve concluded that these latter properties come from:
(A) Material within the scenario structure is firewalled. (In general, area 20 of a dungeon isn’t dependent on area 5.)
(B) The default goal is holographic. (You can explore some of the wilderness or get some of the treasure and still feel like you’ve accomplished something. You can’t half-solve a mystery or execute half a heist and feel the same way.)
(C) The default goal is non-specific. (You can get a bunch of treasure from Dungeon A; then get more treasure from Dungeon B and still be accomplishing your goal of Getting Lots of Treasure.)
(D) The default goal isn’t interdependent. (You can clear the first half of a dungeon and somebody else can clear the second half. In general, you can’t solve the second half of a mystery unless you’ve got the clues from the first half.)
We’ll be coming back to see what we can do with these general principles of the ‘crawl structure, but first I want to turn back to the hexcrawl scenario structure and see what we can build on top of a basic structure.
---
Once an experienced GM has learned how to use a particular game structure, it’s usually trivial for them to “bling it out” with additional game structures that add flavor, complexity, or detail to a scenario.
If we take the basic structure of a hexcrawl, for example, what could we add (or tweak) to change (and hopefully improve) our game?
Random Encounters: A simple example. Just as random encounters add life and activity to a dungeon complex, they can also make a wilderness setting come alive. And it’s pretty easy to add periodic encounter checks to our hexcrawl procedures. Of course there are still questions to be answered about our exact methodology: Do we check once per hex? Once per day? Several times per day?
World of Greyhawk (1980)Hexes Are Big: Does it make sense for PCs to automatically find a hex’s keyed encounter as soon as they enter the hex? Probably not. A typical 30-mile hex (like those used in the original Darlene map of Greyhawk) is larger than New York City and two-thirds the size of Rhode Island. That’s a lot of territory for a couple dozen orcs or a lonely cave entrance to get lost in.
To model this, we could make the chance of experiencing a hex’s keyed encounter variable. We could even vary the probability of this (making it less likely to encounter hidden locations and more likely to encounter highly visible locations).
Navigating the Wilderness: Once you’ve left roads and well-beaten trails behind you, it’s relatively easy to become lost in the wilderness (particularly if you’re not properly trained). So rather than just letting players determine precisely the direction they want to go, we could add a skill check to determine whether or not they become lost (and, if they do, determine their true direction of travel randomly). To spice things up, we could set the difficulty of this check based on the terrain type they’re currently traveling through. We could even have weather conditions modify this check (so that, for example, it would be more difficult to find your way on stormy, overcast nights than when the stars were visible).
Mode of Travel: Are the PCs traveling at a normal pace, racing at high speeds, covering their tracks, spending time foraging, or crisscrossing their own path in order to thoroughly explore the local area? Based on these decisions, we could vary the speed at which they travel; the difficulty of navigation; the odds of finding local points of interest; and so forth.
Tulan of the Isles - Raymond E. Feist and Stephen Abrams (1981)Other Game Structures: Tulan of the Isles, a lesser known product written by Raymond E. Feist and Stephen Abrams in 1981, includes a full game structure for prospecting gems. The Ready Ref Sheets from Judges Guild included a similar system for prospecting, detailing the amount of time it takes to prospect a hex, the percentile chances of finding a vein of precious metal, and a methodology for randomly determining the type of vein and its value.
I offer this up not as something that every hexcrawl campaign requires, but rather as an example of how we often don’t think about the game structures that we use. If your players decided they wanted to go prospecting, how would you adjudicate that at the table? Would the method you use remain balanced over time if the players decided to make prospecting a major part of their characters? Could you make it as much as fun as dungeoncrawling? (If not, why not? Think about it.)
Consider, too, how the availability of game structures subconsciously shapes the way we play the game. Would you, as a GM, be more likely to design a scenario hook in which the PCs are hired by a dwarven king to prospect potential gold mines in the Frostbite Peaks if you had a fun little mechanic for prospecting to build a larger situation involving goblin reavers, icingdeath undead, and rogue frostmancers around? Would your cash-strapped players be more likely to spontaneously consider prospecting in the wilderness a viable alternative for cash if the rulebook included a chapter of rules for it?
---
As we begin to add these kinds of complexity to a game structure, it becomes crucial that we develop efficient procedures for managing that game structure.
Let me explain that by way of example. Over the past year, I’ve been using my OD&D open table campaign as a testbed for developing an enhanced system for hexcrawling. As part of that development work, I trawled my way through multiple editions, supplements, adventures, and games looking for interesting material and then worked to recombine all of that disparate material into a handful of unified mechanics.
When I was done, I had a handful of “core systems” into which I had boiled down a lot of ancillary details. The quick highlights include:
Encounter Tables: Which unified the chance of encountering the keyed encounter for a hex, random encounters, monster lairs, and monster tracks into a single encounter check mechanic.
Spot Distances: Bringing together all the information on when PCs spot encounters, creatures, and/or terrain features.
Timekeeping System: Breaking the day down into six watches (each four hours long), including a system for randomly determining time within a watch. (Why? Because it provides a cleaner structure for “mid-day course corrections”, which it turns out people want to do a lot during a hexcrawl. It also provides a convenient structure for making multiple encounter checks per day, which I found useful for a number of reasons.)
Speed and Distance: Mostly based on the 3rd Edition system for determining how far a group travels based on their base speed and the terrain they’re traveling through.
Navigating the Wilderness: A system for determining whether PCs become lost and, if so, how they get lost. (And also how they can get back on track.)
When it came time to put this into actual playtesting, I had gone over these systems multiple times with a fine-toothed comb. And most of it was based on “existing tech”. I was pretty confident that the system was basically rock solid.
But when it came time for the actual playtesting, this is roughly what it looked like: “Okay, check for an encounter. There is an encounter, so let’s determine what the encounter is. A group of 1d12 goblins. Roll the number of goblins, mark that down. Okay, where does the encounter take place? First, determine time of day. Okay, where would they be at that time? Ask them which direction they’re going, then calculate their speed, figure out where they’ll be. Now, determine if they got lost. They did, so go back and determine where they actually ended up… Hmm. So that means they’re in this hex over here. But the terrain type has shifted… Oh, and the encounter table changed. So that means they didn’t encounter goblins, they would have encountered… Wait, what did I roll? Umm… Must have been an 83 since it was goblins, so on the new encounter table that would be vampire wombats. Roll those up. Now, since the terrain type changed I need to re-determine how far they actually got…”
And so forth. It was a train wreck. Lots of painfully long pauses while I fidgeted with my notes.
(This, by the way, is why you do playtesting.)
RESOLUTION SEQUENCES
Playtesting did result in my tweaking a few of the rules. (For example, I was running into a lot of headaches with groups who wanted to change direction in the middle of a hex. So I introduced a generic system for tracking progress through a hex and an abstract mechanic for groups that wanted to just cross and re-cross a given patch of terrain looking for stuff.)
But what I eventually figured out was that my biggest problem was the lack of a clear resolution sequence. I had three or four little sub-systems that were interdependent on each other, and, as a result, I would frequently end up backtracking and needing to redo calculations that I had already performed in light of new information that had been thrown up.
It took a couple more sessions of playtesting after that to really nail it down, but I eventually came up with a clean resolution sequence:
Determine direction and mode of travel.
Are They Lost?
Encounter Check
Determine Actual Distance Traveled
Generate Encounter
And with the addition of a brief resolution sequence used when a group leaves a hex, this basically solved the problem and made the Thracian Hexcrawl campaign possible.
In the dozens of sessions since then, I’ve learned a few additional tricks to make play more efficient (like putting landmarks visible from a distance on the hexmap and pre-rolling encounter checks so that I know which watches encounters are going to take place in and can skip straight to generating the encounter), but it all rests on the firm foundation of a clean resolution sequence.
(My next experiment is a keying system for trails: Players in hexcrawls will often follow roads, rivers, or other trails. I think there’s a way to create separate “trail maps” which will massively simplify and streamline travel along known routes. I think this should also make it possible to add a trailblazing system that will allow players to create their own trails through the wilderness. But I digress.)
REFERENCES, WORKSHEETS, AND NOTE-TAKING
My point with all this, of course, is that a game structure is not just a mass of mechanics: It is also the way in which you use those mechanics. If we return to the similar structures of board games and card games, for example, it is relatively trivial to note how the rules for those games are almost always presented in a clear sequence of steps: Do this, then do this, then do that…
The flexible and open nature of roleplaying games obviously complicates this rigid sequencing. But, once again, we can see the value of having a default structure to serve as a backbone from which flights of greater fancy can be launched.
On a similar note, I want to briefly mention the value of reference sheets, worksheets, and efficient note-taking.
A common reference sheet is the GM’s screen. And it’s usually amazing to me how often the design of these screens seem to evidence no understanding of how a particular game is actually played. So, my general tip: As a GM, pay attention to the rules and tables you, personally, are looking up during play. Particularly note anything that you’re referencing frequently or which you find yourself wanting to reference quickly (during combat, for example). That’s the stuff you want to put on your GM screen.
Structured worksheets for the GM used to be common place in the hobby, but they became very scarce in the late ‘80s and ‘90s. I suspect this is because this was a period in which the hobby was abandoning clear game structures, which meant that there was no way to design worksheets that would actually be widely applicable. But one of the first things I developed for running my Thracian Hexcrawl was a worksheet for tracking travel progress through hexes.
On a less formal level, spend some time thinking about how you take notes. What type of stuff – like retainer morale or AC – are you frequently asking your players to look for? Is there a better way you could be keeping track of hit points for your monsters? And so forth.
---
As we wrap up our discussion of the hexcrawl game structure, I thought it might be interesting to take a few moments to revisit a few archaic game structures that have been abandoned by the hobby.
Wilderlands of High Fantasy - Necromancer GamesUntil recently, of course, the hexcrawl itself could be described as an archaic structure. By 1989 there were a few vestigial hex maps cropping up in products, but none of them were actually designed for hexcrawl play. The 2nd Edition of AD&D removed hexcrawling procedures from the rulebooks entirely. It wasn’t until Necromancer Games brought the Wilderlands back into print and Ben Robbins’ West Marches campaign went viral that people started to rediscover the lost art of the hexcrawl.
The original game structure for hexcrawls described in OD&D is actually quite distinct from the hexcrawl procedures I described earlier (which were largely innovated by Judges Guild and than adapted into AD&D). The bulk of wilderness adventures in OD&D focused on castles:
Castles: As stated, the ponds [on the Outdoor Survival gameboard] indicate Castles. The inhabitants of these strongholds are determined at random. Occupants of these castles will venture out if a party of adventurers passes nearby. If passing over the castle hex there is a 50% chance (die 1-3) that they will come out, if one hex away there is a 33-1/3% chance (die 1-2), and if two hexes away there is only a 16-2/3% chance (die 1). If the party is on the castle hex and hails the castle, the occupants will come forth if the party is not obviously very strong and warlike. Patriarchs are always Lawful, and Evil High Priests are always Chaotic. All other castle inhabitants will be either hostile to the adventurers (die 1-3) or neutral (4-6).
This is followed by a random table for determining the occupant of a castle and their guards/retainers. Then specific procedures for each type of inhabitant are provided: Fighters will “demand a jousting match with all passersby of like class”, Magic-Users will “send passerby after treasure by Geas if they are not hostile, with the Magic-User taking at least half of all treasure so gained”, Clerics will “require passersby to give a tithe (10%) of all their money and jewels” and so forth.
A vestigial remnant of this structure survived all the way into the Rule Cyclopedia (where tables were still being presented to randomly determine the attitude of castle occupants), but I’m guessing it’s been essentially nonexistent in actual play since 1980 at the latest. And, unlike JG-style hexcrawling, I doubt these “castle occupant rides forth” game structures are likely to enjoy a significant renaissance any time soon.
(Although, on the other hand, there are some potentially interesting things lurking in there: First, the implied setting – in which civilization is so sparsely populated that feudal lords will ride out to meet travelers who pass anywhere within a dozen leagues of their walls – is a fascinating one. Second, note how the structure provides default scenario hooks: Like the treasure maps seeded randomly into OD&D hordes, the quests proffered by feudal lords can spontaneously transform the aimless exploration of the hexcrawl into specific direction. But I digress.)
The other major procedure for wilderness play in OD&D was the idea of “clearing” a hex of monsters (which was a prerequisite for establishing a barony or stronghold):
The player/character moves a force to the hex, the referee rolls a die to determine if there is a monster encountered, and if there is one the player/character’s force must remove it. If no monster is encountered the hex is already cleared. Territory up to 20 miles distant from a stronghold may be kept clear of monsters once cleared – the inhabitation of the stronghold being considered as sufficient to maintain the monster-free status.
This basic structure was greatly expanded in AD&D. (For example, it added a precise system for determining when and how monsters return to an area, along with all kinds of modifiers – like placing skulls and carcasses as warning signs.) And then it, too, faded away.
Boot Hill (1st Edition) - Blume & GygaxIn fact, if you look back at the early history of gaming you’ll find these kinds of explicit game structures all over the place: The system for artifact use in Gamma World, the mercantile models of Traveller, the posse and tracking system for Boot Hill (which, in the 2nd Edition, could be tied into a larger competitive structure of lawmen vs. outlaws), the status points of En Garde, and so forth.
What you had, in short, were a bunch of wargamers who were very familiar with creating specific game structures heavily laden with the details of world simulation: After all, they’d been using precisely defined game structures to model historical battlefields for years. Roleplaying games, however, cracked open the game world, and the game designers were applying game structures to a much wider “world simulation”.
Over time, for a variety of reasons, these explicit game structures became more and more simulationist in nature. As the focus shifted from structures that were fun to play to structures that were accurate “models of the game world”, however, the structures became rather boring and (as the details of the simulation became fetishized) often too complicated to use in actual play to any great effect.
What followed next (and this all happened over the course of only a few short years) was almost inevitable: The explicit game structures became vestigial and then, with the advent of universal systems, disappeared from rulebooks entirely. (With the notable exception, of course, of highly structured combat systems.)
But — and this is important to understand! — the game structures didn’t actually disappear from gaming! They are, after all, essential for play. Instead, a handful of the most popular structures became treated as a sort of common knowledge: Everybody “knew them”, so game designers didn’t bother explaining them. (Although, in truth, very few people really thought about them at all.)
In short, the general sense that playing an RPG consisted of nothing more than “the players tell me what they want to do and then we resolve it” settled over the industry. But, as we’ve seen, this is completely false. What happened in actual practice was that GMs would use a random grab-bag of unexamined techniques that they had collected from people they played with, published adventures, and the occasional unique insight. And this, of course, resulted in a lot of frustrating play.
The lack of explicit game structures in the rulebooks – particularly explicit scenario structures – also helped to make roleplaying games a lot less accessible to people who hadn’t played them before.
Arkham Horror - Fantasy Flight GamesImagine that you took the rules for the boardgame Arkham Horror and you stripped out all the rules about explicit turn sequencing (i.e., the scenario structure of the game): Instead, you’re left with some rules about how to make skill checks; how far you can move around the board each turn; how to fight monsters; how you can move through gates and close them behind you; how you can fight Ancient Ones if they wake up; and so forth. But… what do you do with all those rules?
And that, in short, is what virtually every RPG for the past thirty years except for D&D has looked like to newcomers. (And it is somewhat worrisome to note that every iteration of Dungeons & Dragons since 1983 has reduced the amount of explicit game structure in the core rulebooks until, finally, 4th Edition eliminated dungeoncrawling procedures almost entirely.)
But as we look back at the archaic era of explicit game structures, I think there is something else of import to note that may help to explain why they went way: With the exception of the ‘crawls and a few others, almost all of these game structures were fundamentally incomplete.
---
Consider, for a moment, the explicit game structure presented in the original Traveller.
(1) Create a subsector. For this, the game gives guidelines for creating a starmap; populating that starmap with planets; determining the population, law level, and technological level of those planets; determining travel zones and trade routes; and so forth.
(2) Own a starship. The game offers several options by which the PCs can own, lease, or otherwise operate a starship.
(3) Interstellar movement. Providing mechanics for determining how far and how fast PCs can move between planetary systems.
(4) Trade and revenue. Finally, explicit guidelines on how revenue can be earned by carrying cargo, passengers, and the like.
When you boil it down, this is Firefly: The Roleplaying Game.
Firefly as Marc Miller's Traveller
But what this scenario structure notably lacks is any support for play below the interplanetary level. Traveller recognizes this lack and works to patch the hole with the concept of the Patron:
The key to adventure in Traveller is the patron. When a band of adventurers meets an appropriate patron, they have a person who can give them direction in their activities, and who can reward them for success. The patron is the single most important NPC there can be. (Book 3: Worlds and Adventure)
Basically, the patron serves as a default method for delivering adventure seeds to the PCs. And Traveller integrates the patron into its larger game structure by triggering patrons through its random encounter system. (So, basically, every time the PCs fly into a starport there’s a chance they’ll be contacted by someone with a special job.)
Of course, this still leaves the vast gulf of what the game structure for the actual mission itself is. But it’s not as if Traveller is alone in having such gaps in its scenario structure. In fact, virtually all RPGs have such gaps. (And, at a micro-level, virtually all RPG mechanics constitute incomplete game structures, as our example of the Duchess of Canterlocke demonstrated.)
MECHANICS WITHOUT STRUCTURE
I’ve long maintained that RPGs naturally gravitate towards their mechanics. For example, when I added counter-intelligence mechanics to D&D, counter-intelligence suddenly became a significant part of my campaign. When I added usable encumbrance mechanics to my OD&D campaign, encumbrance-based gameplay immediately followed.
What’s even more true, however, is that RPG gameplay naturally gravitates towards structure. Because they’re open-ended, of course, RPGs are not bound to their structure (like a boardgame is) and good game structures in RPGs won’t act as straitjackets, but clear game structures nevertheless attract players and GMs alike.
Or, to put it another way: If you’re in a dungeon, at some point you’re almost certainly going to start dungeoncrawling.
An interesting corollary of this is that mechanics which aren’t (a) required by a well-defined game structure or (b) enhancing a well-defined game structure are often ignored.
As a result of this corollary, you’ll often find popular game systems ringed with a large number of rules which nobody uses. Many of these rules seem to accumulate from a vestigial urge for simulationism.
This is particularly true with specialized supplements. For example, the D20 market is crammed full with supplements that aimed to provide the “Definitive Guide to Ships”. The little simulationist urge says: “There are ships in fantasyland. So we must need rules for ships.”
But once you have them, what do you do with them?
A typical seafaring supplement, for example, usually included all kinds of rules for varying the speed at which a group traveled: The ship they’re using, wind speed, crew experience, navigation checks, weather conditions, tidal drifts, and so forth. But unless you’re using a scenario structure in which travel time matters – and in a modern era of railroaded scenarios, it generally doesn’t – all of these rules are pretty much irrelevant. Oh, having some guidelines for how long it takes to get from Point A to Point B is nice, but anything involving a lot of calculation which varies from one day to the next is basically useless chaff.
That’s how you get books full of feats that nobody takes, spells that are rarely cast, rules for ramming that nobody bothers with, and so forth. Without a supporting scenario structure, this stuff just flounders: It occasionally gets toyed with, but it rarely gets used.
But imagine for a moment that someone took the time to design a fully-integrated scenario structure for sea-based play that, for example, made playing a pirate or a privateer just as much fun as dungeoncrawling or solving mysteries. You could build entire campaigns around this structure, or just slot it in as appropriate. Maybe you could even go ahead and publish a full campaign that people can just pick up and play. Suddenly all those rules for handling crew morale and ship-to-ship combat are being used.
And if your new scenario structure were really successful, suddenly you’d have opened up a whole new market for support products.
THE VALUE OF PARTIAL STRUCTURES
The “gravitational effects” of clearly defined game structures may also help to explain why even partial scenario structures have often proved monstrously successful in the RPG industry.
For example, consider Shadowrun and Paranoia. Neither game features a comprehensive scenario structure, but they both have default methods for delivering scenario hooks which also tend to lend a common shape to their scenario concepts. And you can see evidence for the efficacy of these techniques in the number of “traitorous Mr. Johnson” stories you see from Shadowrun and the number of “briefing room horror stories” you see from Paranoia.
In fact, even partial scenario structures seem to be very effective at providing a commonality of experience which can draw a player base together into more meaningful communities. (This is particularly true for default scenario hooks.) Such communities provide a strong network effect which further strengthens the game.
This commonality of experience also makes it possible to produce supplements which target that common ground. 76 Patrons for Traveller or Mr. Johnson’s Little Black Book for Shadowrun are obvious examples given the context of our current discussion, but it’s particularly true when it comes to adventure modules: You can trivially produce an adventure module for D&D which could theoretically be plugged into 90% or more of the current campaigns being run in the system. On the other hand, it would be essentially impossible to produce a Heavy Gear module for which that would be true.
Of course, having a viable market for those kinds of adventure products makes it easier for a publisher to produce adventure products. And having adventure products available makes it easier for new GMs to start playing the game. Which further enhances the network externality of the game.
# Click the '+' on the right to make a new Tiddler
# Add some text
# Include a bi-directional link to another page with [[Other Topic]].
# Click through to the link above to make the page.
#View it on 'Map'
<div class="tc-table-of-contents">
<<toc-selective-expandable '^Governmental Form'>>
</div>
!!''Ancestrial Backgrounds''
!!!''//Faith//'' (Faith + Faith)
Humen are known holding fast to their religious and cultural beliefs even under duress or when presented with contrary evidence.
+1 EGO; +3 Mental Defence -- Costs 5 points.
!!!''//Aethist//'' (Faith - Faith)
Determined to not be a pawn of the gods or fate or destiny.
+2 EGO -- costs 4 points
!!!''//Broken Faith//'' (Faith + Honor)
If something happens to a humen's faith, they begin rejecting all cultural, governmental, religious structures. They begin to doubt everything they hear.
+5 Mental Defense -- costs 5 points
!!!''//Rebel without Cause//'' (Faith + War)
Some humen see the injustice in the world and set out to change the systems.
!!!(Faith + Justice)
!!!(Faith + Freedom)
!!!(Faith + Order)
<$list filter="[all[current]tag[#city]]">
<table style=“width:100%”>
<tr>
<th style="width:20%">''Class''</th>
<th style="width:4%">01</th> <th style="width:4%">02</th> <th style="width:4%">03</th> <th style="width:4%">04</th> <th style="width:4%">05</th>
<th style="width:4%">06</th> <th style="width:4%">07</th> <th style="width:4%">08</th> <th style="width:4%">09</th> <th style="width:4%">10</th>
<th style="width:4%">11</th> <th style="width:4%">12</th> <th style="width:4%">13</th> <th style="width:4%">14</th> <th style="width:4%">15</th>
<th style="width:4%">16</th> <th style="width:4%">17</th> <th style="width:4%">18</th> <th style="width:4%">19</th> <th style="width:4%">20</th></tr>
<tr>
<td>''Barbian''</td>
<td><$edit-text field=_barbarian-01/></td> <td><$edit-text field=_barbarian-02/></td> <td><$edit-text field=_barbarian-03/></td> <td><$edit-text field=_barbarian-04/></td>
<td><$edit-text field=_barbarian-05/></td> <td><$edit-text field=_barbarian-06/></td> <td><$edit-text field=_barbarian-07/></td> <td><$edit-text field=_barbarian-08/></td>
<td><$edit-text field=_barbarian-09/></td> <td><$edit-text field=_barbarian-10/></td> <td><$edit-text field=_barbarian-11/></td> <td><$edit-text field=_barbarian-12/></td>
<td><$edit-text field=_barbarian-13/></td> <td><$edit-text field=_barbarian-14/></td> <td><$edit-text field=_barbarian-15/></td> <td><$edit-text field=_barbarian-16/></td>
<td><$edit-text field=_barbarian-17/></td> <td><$edit-text field=_barbarian-18/></td> <td><$edit-text field=_barbarian-19/></td> <td><$edit-text field=_barbarian-20/></td></tr>
<tr>
<td>''Bard''</td>
<td><$edit-text field=_bard-01/></td> <td><$edit-text field=_bard-02/></td> <td><$edit-text field=_bard-03/></td> <td><$edit-text field=_bard-04/></td>
<td><$edit-text field=_bard-05/></td> <td><$edit-text field=_bard-06/></td> <td><$edit-text field=_bard-07/></td> <td><$edit-text field=_bard-08/></td>
<td><$edit-text field=_bard-09/></td> <td><$edit-text field=_bard-10/></td> <td><$edit-text field=_bard-11/></td> <td><$edit-text field=_bard-12/></td>
<td><$edit-text field=_bard-13/></td> <td><$edit-text field=_bard-14/></td> <td><$edit-text field=_bard-15/></td> <td><$edit-text field=_bard-16/></td>
<td><$edit-text field=_bard-17/></td> <td><$edit-text field=_bard-18/></td> <td><$edit-text field=_bard-19/></td> <td><$edit-text field=_bard-20/></td></tr>
<tr>
<td>''Cleric''</td>
<td><$edit-text field=_cleric-01/></td> <td><$edit-text field=_cleric-02/></td> <td><$edit-text field=_cleric-03/></td> <td><$edit-text field=_cleric-04/></td>
<td><$edit-text field=_cleric-05/></td> <td><$edit-text field=_cleric-06/></td> <td><$edit-text field=_cleric-07/></td> <td><$edit-text field=_cleric-08/></td>
<td><$edit-text field=_cleric-09/></td> <td><$edit-text field=_cleric-10/></td> <td><$edit-text field=_cleric-11/></td> <td><$edit-text field=_cleric-12/></td>
<td><$edit-text field=_cleric-13/></td> <td><$edit-text field=_cleric-14/></td> <td><$edit-text field=_cleric-15/></td> <td><$edit-text field=_cleric-16/></td>
<td><$edit-text field=_cleric-17/></td> <td><$edit-text field=_cleric-18/></td> <td><$edit-text field=_cleric-19/></td> <td><$edit-text field=_cleric-20/></td></tr>
<tr>
<td>''Druid''</td>
<td><$edit-text field=_druid-01/></td> <td><$edit-text field=_druid-02/></td> <td><$edit-text field=_druid-03/></td> <td><$edit-text field=_druid-04/></td>
<td><$edit-text field=_druid-05/></td> <td><$edit-text field=_druid-06/></td> <td><$edit-text field=_druid-07/></td> <td><$edit-text field=_druid-08/></td>
<td><$edit-text field=_druid-09/></td> <td><$edit-text field=_druid-10/></td> <td><$edit-text field=_druid-11/></td> <td><$edit-text field=_druid-12/></td>
<td><$edit-text field=_druid-13/></td> <td><$edit-text field=_druid-14/></td> <td><$edit-text field=_druid-15/></td> <td><$edit-text field=_druid-16/></td>
<td><$edit-text field=_druid-17/></td> <td><$edit-text field=_druid-18/></td> <td><$edit-text field=_druid-19/></td> <td><$edit-text field=_druid-20/></td></tr>
<tr>
<td>''Fighter''</td>
<td><$edit-text field=_fighter-01/></td> <td><$edit-text field=_fighter-02/></td> <td><$edit-text field=_fighter-03/></td> <td><$edit-text field=_fighter-04/></td>
<td><$edit-text field=_fighter-05/></td> <td><$edit-text field=_fighter-06/></td> <td><$edit-text field=_fighter-07/></td> <td><$edit-text field=_fighter-08/></td>
<td><$edit-text field=_fighter-09/></td> <td><$edit-text field=_fighter-10/></td> <td><$edit-text field=_fighter-11/></td> <td><$edit-text field=_fighter-12/></td>
<td><$edit-text field=_fighter-13/></td> <td><$edit-text field=_fighter-14/></td> <td><$edit-text field=_fighter-15/></td> <td><$edit-text field=_fighter-16/></td>
<td><$edit-text field=_fighter-17/></td> <td><$edit-text field=_fighter-18/></td> <td><$edit-text field=_fighter-19/></td> <td><$edit-text field=_fighter-20/></td></tr>
<tr>
<td>''Monk''</td>
<td><$edit-text field=_monk-01/></td> <td><$edit-text field=_monk-02/></td> <td><$edit-text field=_monk-03/></td> <td><$edit-text field=_monk-04/></td>
<td><$edit-text field=_monk-05/></td> <td><$edit-text field=_monk-06/></td> <td><$edit-text field=_monk-07/></td> <td><$edit-text field=_monk-08/></td>
<td><$edit-text field=_monk-09/></td> <td><$edit-text field=_monk-10/></td> <td><$edit-text field=_monk-11/></td> <td><$edit-text field=_monk-12/></td>
<td><$edit-text field=_monk-13/></td> <td><$edit-text field=_monk-14/></td> <td><$edit-text field=_monk-15/></td> <td><$edit-text field=_monk-16/></td>
<td><$edit-text field=_monk-17/></td> <td><$edit-text field=_monk-18/></td> <td><$edit-text field=_monk-19/></td> <td><$edit-text field=_monk-20/></td></tr>
<tr>
<td>''Paladin''</td>
<td><$edit-text field=_paladin-01/></td> <td><$edit-text field=_paladin-02/></td> <td><$edit-text field=_paladin-03/></td> <td><$edit-text field=_paladin-04/></td>
<td><$edit-text field=_paladin-05/></td> <td><$edit-text field=_paladin-06/></td> <td><$edit-text field=_paladin-07/></td> <td><$edit-text field=_paladin-08/></td>
<td><$edit-text field=_paladin-09/></td> <td><$edit-text field=_paladin-10/></td> <td><$edit-text field=_paladin-11/></td> <td><$edit-text field=_paladin-12/></td>
<td><$edit-text field=_paladin-13/></td> <td><$edit-text field=_paladin-14/></td> <td><$edit-text field=_paladin-15/></td> <td><$edit-text field=_paladin-16/></td>
<td><$edit-text field=_paladin-17/></td> <td><$edit-text field=_paladin-18/></td> <td><$edit-text field=_paladin-19/></td> <td><$edit-text field=_paladin-20/></td></tr>
<tr>
<td>''Ranger''</td>
<td><$edit-text field=_ranger-01/></td> <td><$edit-text field=_ranger-02/></td> <td><$edit-text field=_ranger-03/></td> <td><$edit-text field=_ranger-04/></td>
<td><$edit-text field=_ranger-05/></td> <td><$edit-text field=_ranger-06/></td> <td><$edit-text field=_ranger-07/></td> <td><$edit-text field=_ranger-08/></td>
<td><$edit-text field=_ranger-09/></td> <td><$edit-text field=_ranger-10/></td> <td><$edit-text field=_ranger-11/></td> <td><$edit-text field=_ranger-12/></td>
<td><$edit-text field=_ranger-13/></td> <td><$edit-text field=_ranger-14/></td> <td><$edit-text field=_ranger-15/></td> <td><$edit-text field=_ranger-16/></td>
<td><$edit-text field=_ranger-17/></td> <td><$edit-text field=_ranger-18/></td> <td><$edit-text field=_ranger-19/></td> <td><$edit-text field=_ranger-20/></td></tr>
<tr>
<td>''Rogue''</td>
<td><$edit-text field=_rogue-01/></td> <td><$edit-text field=_rogue-02/></td> <td><$edit-text field=_rogue-03/></td> <td><$edit-text field=_rogue-04/></td>
<td><$edit-text field=_rogue-05/></td> <td><$edit-text field=_rogue-06/></td> <td><$edit-text field=_rogue-07/></td> <td><$edit-text field=_rogue-08/></td>
<td><$edit-text field=_rogue-09/></td> <td><$edit-text field=_rogue-10/></td> <td><$edit-text field=_rogue-11/></td> <td><$edit-text field=_rogue-12/></td>
<td><$edit-text field=_rogue-13/></td> <td><$edit-text field=_rogue-14/></td> <td><$edit-text field=_rogue-15/></td> <td><$edit-text field=_rogue-16/></td>
<td><$edit-text field=_rogue-17/></td> <td><$edit-text field=_rogue-18/></td> <td><$edit-text field=_rogue-19/></td> <td><$edit-text field=_rogue-20/></td></tr>
<tr>
<td>''Sorcerer''</td>
<td><$edit-text field=_sorcerer-01/></td> <td><$edit-text field=_sorcerer-02/></td> <td><$edit-text field=_sorcerer-03/></td> <td><$edit-text field=_sorcerer-04/></td>
<td><$edit-text field=_sorcerer-05/></td> <td><$edit-text field=_sorcerer-06/></td> <td><$edit-text field=_sorcerer-07/></td> <td><$edit-text field=_sorcerer-08/></td>
<td><$edit-text field=_sorcerer-09/></td> <td><$edit-text field=_sorcerer-10/></td> <td><$edit-text field=_sorcerer-11/></td> <td><$edit-text field=_sorcerer-12/></td>
<td><$edit-text field=_sorcerer-13/></td> <td><$edit-text field=_sorcerer-14/></td> <td><$edit-text field=_sorcerer-15/></td> <td><$edit-text field=_sorcerer-16/></td>
<td><$edit-text field=_sorcerer-17/></td> <td><$edit-text field=_sorcerer-18/></td> <td><$edit-text field=_sorcerer-19/></td> <td><$edit-text field=_sorcerer-20/></td></tr>
<tr>
<td>''Wizard''</td>
<td><$edit-text field=_wizard-01/></td> <td><$edit-text field=_wizard-02/></td> <td><$edit-text field=_wizard-03/></td> <td><$edit-text field=_wizard-04/></td>
<td><$edit-text field=_wizard-05/></td> <td><$edit-text field=_wizard-06/></td> <td><$edit-text field=_wizard-07/></td> <td><$edit-text field=_wizard-08/></td>
<td><$edit-text field=_wizard-09/></td> <td><$edit-text field=_wizard-10/></td> <td><$edit-text field=_wizard-11/></td> <td><$edit-text field=_wizard-12/></td>
<td><$edit-text field=_wizard-13/></td> <td><$edit-text field=_wizard-14/></td> <td><$edit-text field=_wizard-15/></td> <td><$edit-text field=_wizard-16/></td>
<td><$edit-text field=_wizard-17/></td> <td><$edit-text field=_wizard-18/></td> <td><$edit-text field=_wizard-19/></td> <td><$edit-text field=_wizard-20/></td></tr>
<tr>
<td>''Adept''</td>
<td><$edit-text field=_adept-01/></td> <td><$edit-text field=_adept-02/></td> <td><$edit-text field=_adept-03/></td> <td><$edit-text field=_adept-04/></td>
<td><$edit-text field=_adept-05/></td> <td><$edit-text field=_adept-06/></td> <td><$edit-text field=_adept-07/></td> <td><$edit-text field=_adept-08/></td>
<td><$edit-text field=_adept-09/></td> <td><$edit-text field=_adept-10/></td> <td><$edit-text field=_adept-11/></td> <td><$edit-text field=_adept-12/></td>
<td><$edit-text field=_adept-13/></td> <td><$edit-text field=_adept-14/></td> <td><$edit-text field=_adept-15/></td> <td><$edit-text field=_adept-16/></td>
<td><$edit-text field=_adept-17/></td> <td><$edit-text field=_adept-18/></td> <td><$edit-text field=_adept-19/></td> <td><$edit-text field=_adept-20/></td></tr>
<tr>
<td>''Aristocrat''</td>
<td><$edit-text field=_aristocrat-01/></td> <td><$edit-text field=_aristocrat-02/></td> <td><$edit-text field=_aristocrat-03/></td> <td><$edit-text field=_aristocrat-04/></td>
<td><$edit-text field=_aristocrat-05/></td> <td><$edit-text field=_aristocrat-06/></td> <td><$edit-text field=_aristocrat-07/></td> <td><$edit-text field=_aristocrat-08/></td>
<td><$edit-text field=_aristocrat-09/></td> <td><$edit-text field=_aristocrat-10/></td> <td><$edit-text field=_aristocrat-11/></td> <td><$edit-text field=_aristocrat-12/></td>
<td><$edit-text field=_aristocrat-13/></td> <td><$edit-text field=_aristocrat-14/></td> <td><$edit-text field=_aristocrat-15/></td> <td><$edit-text field=_aristocrat-16/></td>
<td><$edit-text field=_aristocrat-17/></td> <td><$edit-text field=_aristocrat-18/></td> <td><$edit-text field=_aristocrat-19/></td> <td><$edit-text field=_aristocrat-20/></td></tr>
<tr>
<td>''Commoner''</td>
<td><$edit-text field=_commoner-01/></td> <td><$edit-text field=_commoner-02/></td> <td><$edit-text field=_commoner-03/></td> <td><$edit-text field=_commoner-04/></td>
<td><$edit-text field=_commoner-05/></td> <td><$edit-text field=_commoner-06/></td> <td><$edit-text field=_commoner-07/></td> <td><$edit-text field=_commoner-08/></td>
<td><$edit-text field=_commoner-09/></td> <td><$edit-text field=_commoner-10/></td> <td><$edit-text field=_commoner-11/></td> <td><$edit-text field=_commoner-12/></td>
<td><$edit-text field=_commoner-13/></td> <td><$edit-text field=_commoner-14/></td> <td><$edit-text field=_commoner-15/></td> <td><$edit-text field=_commoner-16/></td>
<td><$edit-text field=_commoner-17/></td> <td><$edit-text field=_commoner-18/></td> <td><$edit-text field=_commoner-19/></td> <td><$edit-text field=_commoner-20/></td></tr>
<tr>
<td>''Expert''</td>
<td><$edit-text field=_expert-01/></td> <td><$edit-text field=_expert-02/></td> <td><$edit-text field=_expert-03/></td> <td><$edit-text field=_expert-04/></td>
<td><$edit-text field=_expert-05/></td> <td><$edit-text field=_expert-06/></td> <td><$edit-text field=_expert-07/></td> <td><$edit-text field=_expert-08/></td>
<td><$edit-text field=_expert-09/></td> <td><$edit-text field=_expert-10/></td> <td><$edit-text field=_expert-11/></td> <td><$edit-text field=_expert-12/></td>
<td><$edit-text field=_expert-13/></td> <td><$edit-text field=_expert-14/></td> <td><$edit-text field=_expert-15/></td> <td><$edit-text field=_expert-16/></td>
<td><$edit-text field=_expert-17/></td> <td><$edit-text field=_expert-18/></td> <td><$edit-text field=_expert-19/></td> <td><$edit-text field=_expert-20/></td></tr>
<tr>
<td>''Warrior''</td>
<td><$edit-text field=_warrior-01/></td> <td><$edit-text field=_warrior-02/></td> <td><$edit-text field=_warrior-03/></td> <td><$edit-text field=_warrior-04/></td>
<td><$edit-text field=_warrior-05/></td> <td><$edit-text field=_warrior-06/></td> <td><$edit-text field=_warrior-07/></td> <td><$edit-text field=_warrior-08/></td>
<td><$edit-text field=_warrior-09/></td> <td><$edit-text field=_warrior-10/></td> <td><$edit-text field=_warrior-11/></td> <td><$edit-text field=_warrior-12/></td>
<td><$edit-text field=_warrior-13/></td> <td><$edit-text field=_warrior-14/></td> <td><$edit-text field=_warrior-15/></td> <td><$edit-text field=_warrior-16/></td>
<td><$edit-text field=_warrior-17/></td> <td><$edit-text field=_warrior-18/></td> <td><$edit-text field=_warrior-19/></td> <td><$edit-text field=_warrior-20/></td></tr>
</table>
<table style="width:100%">
<tr>
<th style="width:20%">''Class''</th>
<th style="width:4%">01</th> <th style="width:4%">02</th> <th style="width:4%">03</th> <th style="width:4%">04</th> <th style="width:4%">05</th>
<th style="width:4%">06</th> <th style="width:4%">07</th> <th style="width:4%">08</th> <th style="width:4%">09</th> <th style="width:4%">10</th>
<th style="width:4%">11</th> <th style="width:4%">12</th> <th style="width:4%">13</th> <th style="width:4%">14</th> <th style="width:4%">15</th>
<th style="width:4%">16</th> <th style="width:4%">17</th> <th style="width:4%">18</th> <th style="width:4%">19</th> <th style="width:4%">20</th></tr>
<tr>
<td>''Barbian''</td>
<td><$macrocall $name="eval" cell="_barbarian-01"/></td> <td><$macrocall $name="eval" cell="_barbarian-02"/></td> <td><$macrocall $name="eval" cell="_barbarian-03"/></td> <td><$macrocall $name="eval" cell="_barbarian-04"/></td>
<td><$macrocall $name="eval" cell="_barbarian-05"/></td> <td><$macrocall $name="eval" cell="_barbarian-06"/></td> <td><$macrocall $name="eval" cell="_barbarian-07"/></td> <td><$macrocall $name="eval" cell="_barbarian-08"/></td>
<td><$macrocall $name="eval" cell="_barbarian-09"/></td> <td><$macrocall $name="eval" cell="_barbarian-10"/></td> <td><$macrocall $name="eval" cell="_barbarian-11"/></td> <td><$macrocall $name="eval" cell="_barbarian-12"/></td>
<td><$macrocall $name="eval" cell="_barbarian-13"/></td> <td><$macrocall $name="eval" cell="_barbarian-14"/></td> <td><$macrocall $name="eval" cell="_barbarian-15"/></td> <td><$macrocall $name="eval" cell="_barbarian-16"/></td>
<td><$macrocall $name="eval" cell="_barbarian-17"/></td> <td><$macrocall $name="eval" cell="_barbarian-18"/></td> <td><$macrocall $name="eval" cell="_barbarian-19"/></td> <td><$macrocall $name="eval" cell="_barbarian-20"/></td></tr>
<tr>
<td>''Bard''</td>
<td><$macrocall $name="eval" cell="_bard-01"/></td> <td><$macrocall $name="eval" cell="_bard-02"/></td> <td><$macrocall $name="eval" cell="_bard-03"/></td> <td><$macrocall $name="eval" cell="_bard-04"/></td>
<td><$macrocall $name="eval" cell="_bard-05"/></td> <td><$macrocall $name="eval" cell="_bard-06"/></td> <td><$macrocall $name="eval" cell="_bard-07"/></td> <td><$macrocall $name="eval" cell="_bard-08"/></td>
<td><$macrocall $name="eval" cell="_bard-09"/></td> <td><$macrocall $name="eval" cell="_bard-10"/></td> <td><$macrocall $name="eval" cell="_bard-11"/></td> <td><$macrocall $name="eval" cell="_bard-12"/></td>
<td><$macrocall $name="eval" cell="_bard-13"/></td> <td><$macrocall $name="eval" cell="_bard-14"/></td> <td><$macrocall $name="eval" cell="_bard-15"/></td> <td><$macrocall $name="eval" cell="_bard-16"/></td>
<td><$macrocall $name="eval" cell="_bard-17"/></td> <td><$macrocall $name="eval" cell="_bard-18"/></td> <td><$macrocall $name="eval" cell="_bard-19"/></td> <td><$macrocall $name="eval" cell="_bard-20"/></td></tr>
<tr>
<td>''Cleric''</td>
<td><$macrocall $name="eval" cell="_cleric-01"/></td> <td><$macrocall $name="eval" cell="_cleric-02"/></td> <td><$macrocall $name="eval" cell="_cleric-03"/></td> <td><$macrocall $name="eval" cell="_cleric-04"/></td>
<td><$macrocall $name="eval" cell="_cleric-05"/></td> <td><$macrocall $name="eval" cell="_cleric-06"/></td> <td><$macrocall $name="eval" cell="_cleric-07"/></td> <td><$macrocall $name="eval" cell="_cleric-08"/></td>
<td><$macrocall $name="eval" cell="_cleric-09"/></td> <td><$macrocall $name="eval" cell="_cleric-10"/></td> <td><$macrocall $name="eval" cell="_cleric-11"/></td> <td><$macrocall $name="eval" cell="_cleric-12"/></td>
<td><$macrocall $name="eval" cell="_cleric-13"/></td> <td><$macrocall $name="eval" cell="_cleric-14"/></td> <td><$macrocall $name="eval" cell="_cleric-15"/></td> <td><$macrocall $name="eval" cell="_cleric-16"/></td>
<td><$macrocall $name="eval" cell="_cleric-17"/></td> <td><$macrocall $name="eval" cell="_cleric-18"/></td> <td><$macrocall $name="eval" cell="_cleric-19"/></td> <td><$macrocall $name="eval" cell="_cleric-20"/></td></tr>
<tr>
<td>''Druid''</td>
<td><$macrocall $name="eval" cell="_druid-01"/></td> <td><$macrocall $name="eval" cell="_druid-02"/></td> <td><$macrocall $name="eval" cell="_druid-03"/></td> <td><$macrocall $name="eval" cell="_druid-04"/></td>
<td><$macrocall $name="eval" cell="_druid-05"/></td> <td><$macrocall $name="eval" cell="_druid-06"/></td> <td><$macrocall $name="eval" cell="_druid-07"/></td> <td><$macrocall $name="eval" cell="_druid-08"/></td>
<td><$macrocall $name="eval" cell="_druid-09"/></td> <td><$macrocall $name="eval" cell="_druid-10"/></td> <td><$macrocall $name="eval" cell="_druid-11"/></td> <td><$macrocall $name="eval" cell="_druid-12"/></td>
<td><$macrocall $name="eval" cell="_druid-13"/></td> <td><$macrocall $name="eval" cell="_druid-14"/></td> <td><$macrocall $name="eval" cell="_druid-15"/></td> <td><$macrocall $name="eval" cell="_druid-16"/></td>
<td><$macrocall $name="eval" cell="_druid-17"/></td> <td><$macrocall $name="eval" cell="_druid-18"/></td> <td><$macrocall $name="eval" cell="_druid-19"/></td> <td><$macrocall $name="eval" cell="_druid-20"/></td></tr>
<tr>
<td>''Fighter''</td>
<td><$macrocall $name="eval" cell="_fighter-01"/></td> <td><$macrocall $name="eval" cell="_fighter-02"/></td> <td><$macrocall $name="eval" cell="_fighter-03"/></td> <td><$macrocall $name="eval" cell="_fighter-04"/></td>
<td><$macrocall $name="eval" cell="_fighter-05"/></td> <td><$macrocall $name="eval" cell="_fighter-06"/></td> <td><$macrocall $name="eval" cell="_fighter-07"/></td> <td><$macrocall $name="eval" cell="_fighter-08"/></td>
<td><$macrocall $name="eval" cell="_fighter-09"/></td> <td><$macrocall $name="eval" cell="_fighter-10"/></td> <td><$macrocall $name="eval" cell="_fighter-11"/></td> <td><$macrocall $name="eval" cell="_fighter-12"/></td>
<td><$macrocall $name="eval" cell="_fighter-13"/></td> <td><$macrocall $name="eval" cell="_fighter-14"/></td> <td><$macrocall $name="eval" cell="_fighter-15"/></td> <td><$macrocall $name="eval" cell="_fighter-16"/></td>
<td><$macrocall $name="eval" cell="_fighter-17"/></td> <td><$macrocall $name="eval" cell="_fighter-18"/></td> <td><$macrocall $name="eval" cell="_fighter-19"/></td> <td><$macrocall $name="eval" cell="_fighter-20"/></td></tr>
<tr>
<td>''Monk''</td>
<td><$macrocall $name="eval" cell="_monk-01"/></td> <td><$macrocall $name="eval" cell="_monk-02"/></td> <td><$macrocall $name="eval" cell="_monk-03"/></td> <td><$macrocall $name="eval" cell="_monk-04"/></td>
<td><$macrocall $name="eval" cell="_monk-05"/></td> <td><$macrocall $name="eval" cell="_monk-06"/></td> <td><$macrocall $name="eval" cell="_monk-07"/></td> <td><$macrocall $name="eval" cell="_monk-08"/></td>
<td><$macrocall $name="eval" cell="_monk-09"/></td> <td><$macrocall $name="eval" cell="_monk-10"/></td> <td><$macrocall $name="eval" cell="_monk-11"/></td> <td><$macrocall $name="eval" cell="_monk-12"/></td>
<td><$macrocall $name="eval" cell="_monk-13"/></td> <td><$macrocall $name="eval" cell="_monk-14"/></td> <td><$macrocall $name="eval" cell="_monk-15"/></td> <td><$macrocall $name="eval" cell="_monk-16"/></td>
<td><$macrocall $name="eval" cell="_monk-17"/></td> <td><$macrocall $name="eval" cell="_monk-18"/></td> <td><$macrocall $name="eval" cell="_monk-19"/></td> <td><$macrocall $name="eval" cell="_monk-20"/></td></tr>
<tr>
<td>''Paladin''</td>
<td><$macrocall $name="eval" cell="_paladin-01"/></td> <td><$macrocall $name="eval" cell="_paladin-02"/></td> <td><$macrocall $name="eval" cell="_paladin-03"/></td> <td><$macrocall $name="eval" cell="_paladin-04"/></td>
<td><$macrocall $name="eval" cell="_paladin-05"/></td> <td><$macrocall $name="eval" cell="_paladin-06"/></td> <td><$macrocall $name="eval" cell="_paladin-07"/></td> <td><$macrocall $name="eval" cell="_paladin-08"/></td>
<td><$macrocall $name="eval" cell="_paladin-09"/></td> <td><$macrocall $name="eval" cell="_paladin-10"/></td> <td><$macrocall $name="eval" cell="_paladin-11"/></td> <td><$macrocall $name="eval" cell="_paladin-12"/></td>
<td><$macrocall $name="eval" cell="_paladin-13"/></td> <td><$macrocall $name="eval" cell="_paladin-14"/></td> <td><$macrocall $name="eval" cell="_paladin-15"/></td> <td><$macrocall $name="eval" cell="_paladin-16"/></td>
<td><$macrocall $name="eval" cell="_paladin-17"/></td> <td><$macrocall $name="eval" cell="_paladin-18"/></td> <td><$macrocall $name="eval" cell="_paladin-19"/></td> <td><$macrocall $name="eval" cell="_paladin-20"/></td></tr>
<tr>
<td>''Ranger''</td>
<td><$macrocall $name="eval" cell="_ranger-01"/></td> <td><$macrocall $name="eval" cell="_ranger-02"/></td> <td><$macrocall $name="eval" cell="_ranger-03"/></td> <td><$macrocall $name="eval" cell="_ranger-04"/></td>
<td><$macrocall $name="eval" cell="_ranger-05"/></td> <td><$macrocall $name="eval" cell="_ranger-06"/></td> <td><$macrocall $name="eval" cell="_ranger-07"/></td> <td><$macrocall $name="eval" cell="_ranger-08"/></td>
<td><$macrocall $name="eval" cell="_ranger-09"/></td> <td><$macrocall $name="eval" cell="_ranger-10"/></td> <td><$macrocall $name="eval" cell="_ranger-11"/></td> <td><$macrocall $name="eval" cell="_ranger-12"/></td>
<td><$macrocall $name="eval" cell="_ranger-13"/></td> <td><$macrocall $name="eval" cell="_ranger-14"/></td> <td><$macrocall $name="eval" cell="_ranger-15"/></td> <td><$macrocall $name="eval" cell="_ranger-16"/></td>
<td><$macrocall $name="eval" cell="_ranger-17"/></td> <td><$macrocall $name="eval" cell="_ranger-18"/></td> <td><$macrocall $name="eval" cell="_ranger-19"/></td> <td><$macrocall $name="eval" cell="_ranger-20"/></td></tr>
<tr>
<td>''Rogue''</td>
<td><$macrocall $name="eval" cell="_rogue-01"/></td> <td><$macrocall $name="eval" cell="_rogue-02"/></td> <td><$macrocall $name="eval" cell="_rogue-03"/></td> <td><$macrocall $name="eval" cell="_rogue-04"/></td>
<td><$macrocall $name="eval" cell="_rogue-05"/></td> <td><$macrocall $name="eval" cell="_rogue-06"/></td> <td><$macrocall $name="eval" cell="_rogue-07"/></td> <td><$macrocall $name="eval" cell="_rogue-08"/></td>
<td><$macrocall $name="eval" cell="_rogue-09"/></td> <td><$macrocall $name="eval" cell="_rogue-10"/></td> <td><$macrocall $name="eval" cell="_rogue-11"/></td> <td><$macrocall $name="eval" cell="_rogue-12"/></td>
<td><$macrocall $name="eval" cell="_rogue-13"/></td> <td><$macrocall $name="eval" cell="_rogue-14"/></td> <td><$macrocall $name="eval" cell="_rogue-15"/></td> <td><$macrocall $name="eval" cell="_rogue-16"/></td>
<td><$macrocall $name="eval" cell="_rogue-17"/></td> <td><$macrocall $name="eval" cell="_rogue-18"/></td> <td><$macrocall $name="eval" cell="_rogue-19"/></td> <td><$macrocall $name="eval" cell="_rogue-20"/></td></tr>
<tr>
<td>''Sorcerer''</td>
<td><$macrocall $name="eval" cell="_sorcerer-01"/></td> <td><$macrocall $name="eval" cell="_sorcerer-02"/></td> <td><$macrocall $name="eval" cell="_sorcerer-03"/></td> <td><$macrocall $name="eval" cell="_sorcerer-04"/></td>
<td><$macrocall $name="eval" cell="_sorcerer-05"/></td> <td><$macrocall $name="eval" cell="_sorcerer-06"/></td> <td><$macrocall $name="eval" cell="_sorcerer-07"/></td> <td><$macrocall $name="eval" cell="_sorcerer-08"/></td>
<td><$macrocall $name="eval" cell="_sorcerer-09"/></td> <td><$macrocall $name="eval" cell="_sorcerer-10"/></td> <td><$macrocall $name="eval" cell="_sorcerer-11"/></td> <td><$macrocall $name="eval" cell="_sorcerer-12"/></td>
<td><$macrocall $name="eval" cell="_sorcerer-13"/></td> <td><$macrocall $name="eval" cell="_sorcerer-14"/></td> <td><$macrocall $name="eval" cell="_sorcerer-15"/></td> <td><$macrocall $name="eval" cell="_sorcerer-16"/></td>
<td><$macrocall $name="eval" cell="_sorcerer-17"/></td> <td><$macrocall $name="eval" cell="_sorcerer-18"/></td> <td><$macrocall $name="eval" cell="_sorcerer-19"/></td> <td><$macrocall $name="eval" cell="_sorcerer-20"/></td></tr>
<tr>
<td>''Wizard''</td>
<td><$macrocall $name="eval" cell="_wizard-01"/></td> <td><$macrocall $name="eval" cell="_wizard-02"/></td> <td><$macrocall $name="eval" cell="_wizard-03"/></td> <td><$macrocall $name="eval" cell="_wizard-04"/></td>
<td><$macrocall $name="eval" cell="_wizard-05"/></td> <td><$macrocall $name="eval" cell="_wizard-06"/></td> <td><$macrocall $name="eval" cell="_wizard-07"/></td> <td><$macrocall $name="eval" cell="_wizard-08"/></td>
<td><$macrocall $name="eval" cell="_wizard-09"/></td> <td><$macrocall $name="eval" cell="_wizard-10"/></td> <td><$macrocall $name="eval" cell="_wizard-11"/></td> <td><$macrocall $name="eval" cell="_wizard-12"/></td>
<td><$macrocall $name="eval" cell="_wizard-13"/></td> <td><$macrocall $name="eval" cell="_wizard-14"/></td> <td><$macrocall $name="eval" cell="_wizard-15"/></td> <td><$macrocall $name="eval" cell="_wizard-16"/></td>
<td><$macrocall $name="eval" cell="_wizard-17"/></td> <td><$macrocall $name="eval" cell="_wizard-18"/></td> <td><$macrocall $name="eval" cell="_wizard-19"/></td> <td><$macrocall $name="eval" cell="_wizard-20"/></td></tr>
<tr>
<td>''Adept''</td>
<td><$macrocall $name="eval" cell="_adept-01"/></td> <td><$macrocall $name="eval" cell="_adept-02"/></td> <td><$macrocall $name="eval" cell="_adept-03"/></td> <td><$macrocall $name="eval" cell="_adept-04"/></td>
<td><$macrocall $name="eval" cell="_adept-05"/></td> <td><$macrocall $name="eval" cell="_adept-06"/></td> <td><$macrocall $name="eval" cell="_adept-07"/></td> <td><$macrocall $name="eval" cell="_adept-08"/></td>
<td><$macrocall $name="eval" cell="_adept-09"/></td> <td><$macrocall $name="eval" cell="_adept-10"/></td> <td><$macrocall $name="eval" cell="_adept-11"/></td> <td><$macrocall $name="eval" cell="_adept-12"/></td>
<td><$macrocall $name="eval" cell="_adept-13"/></td> <td><$macrocall $name="eval" cell="_adept-14"/></td> <td><$macrocall $name="eval" cell="_adept-15"/></td> <td><$macrocall $name="eval" cell="_adept-16"/></td>
<td><$macrocall $name="eval" cell="_adept-17"/></td> <td><$macrocall $name="eval" cell="_adept-18"/></td> <td><$macrocall $name="eval" cell="_adept-19"/></td> <td><$macrocall $name="eval" cell="_adept-20"/></td></tr>
<tr>
<td>''Aristocrat''</td>
<td><$macrocall $name="eval" cell="_aristocrat-01"/></td> <td><$macrocall $name="eval" cell="_aristocrat-02"/></td> <td><$macrocall $name="eval" cell="_aristocrat-03"/></td> <td><$macrocall $name="eval" cell="_aristocrat-04"/></td>
<td><$macrocall $name="eval" cell="_aristocrat-05"/></td> <td><$macrocall $name="eval" cell="_aristocrat-06"/></td> <td><$macrocall $name="eval" cell="_aristocrat-07"/></td> <td><$macrocall $name="eval" cell="_aristocrat-08"/></td>
<td><$macrocall $name="eval" cell="_aristocrat-09"/></td> <td><$macrocall $name="eval" cell="_aristocrat-10"/></td> <td><$macrocall $name="eval" cell="_aristocrat-11"/></td> <td><$macrocall $name="eval" cell="_aristocrat-12"/></td>
<td><$macrocall $name="eval" cell="_aristocrat-13"/></td> <td><$macrocall $name="eval" cell="_aristocrat-14"/></td> <td><$macrocall $name="eval" cell="_aristocrat-15"/></td> <td><$macrocall $name="eval" cell="_aristocrat-16"/></td>
<td><$macrocall $name="eval" cell="_aristocrat-17"/></td> <td><$macrocall $name="eval" cell="_aristocrat-18"/></td> <td><$macrocall $name="eval" cell="_aristocrat-19"/></td> <td><$macrocall $name="eval" cell="_aristocrat-20"/></td></tr>
<tr>
<td>''Commoner''</td>
<td><$macrocall $name="eval" cell="_commoner-01"/></td> <td><$macrocall $name="eval" cell="_commoner-02"/></td> <td><$macrocall $name="eval" cell="_commoner-03"/></td> <td><$macrocall $name="eval" cell="_commoner-04"/></td>
<td><$macrocall $name="eval" cell="_commoner-05"/></td> <td><$macrocall $name="eval" cell="_commoner-06"/></td> <td><$macrocall $name="eval" cell="_commoner-07"/></td> <td><$macrocall $name="eval" cell="_commoner-08"/></td>
<td><$macrocall $name="eval" cell="_commoner-09"/></td> <td><$macrocall $name="eval" cell="_commoner-10"/></td> <td><$macrocall $name="eval" cell="_commoner-11"/></td> <td><$macrocall $name="eval" cell="_commoner-12"/></td>
<td><$macrocall $name="eval" cell="_commoner-13"/></td> <td><$macrocall $name="eval" cell="_commoner-14"/></td> <td><$macrocall $name="eval" cell="_commoner-15"/></td> <td><$macrocall $name="eval" cell="_commoner-16"/></td>
<td><$macrocall $name="eval" cell="_commoner-17"/></td> <td><$macrocall $name="eval" cell="_commoner-18"/></td> <td><$macrocall $name="eval" cell="_commoner-19"/></td> <td><$macrocall $name="eval" cell="_commoner-20"/></td></tr>
<tr>
<td>''Expert''</td>
<td><$macrocall $name="eval" cell="_expert-01"/></td> <td><$macrocall $name="eval" cell="_expert-02"/></td> <td><$macrocall $name="eval" cell="_expert-03"/></td> <td><$macrocall $name="eval" cell="_expert-04"/></td>
<td><$macrocall $name="eval" cell="_expert-05"/></td> <td><$macrocall $name="eval" cell="_expert-06"/></td> <td><$macrocall $name="eval" cell="_expert-07"/></td> <td><$macrocall $name="eval" cell="_expert-08"/></td>
<td><$macrocall $name="eval" cell="_expert-09"/></td> <td><$macrocall $name="eval" cell="_expert-10"/></td> <td><$macrocall $name="eval" cell="_expert-11"/></td> <td><$macrocall $name="eval" cell="_expert-12"/></td>
<td><$macrocall $name="eval" cell="_expert-13"/></td> <td><$macrocall $name="eval" cell="_expert-14"/></td> <td><$macrocall $name="eval" cell="_expert-15"/></td> <td><$macrocall $name="eval" cell="_expert-16"/></td>
<td><$macrocall $name="eval" cell="_expert-17"/></td> <td><$macrocall $name="eval" cell="_expert-18"/></td> <td><$macrocall $name="eval" cell="_expert-19"/></td> <td><$macrocall $name="eval" cell="_expert-20"/></td></tr>
<tr>
<td>''Warrior''</td>
<td><$macrocall $name="eval" cell="_warrior-01"/></td> <td><$macrocall $name="eval" cell="_warrior-02"/></td> <td><$macrocall $name="eval" cell="_warrior-03"/></td> <td><$macrocall $name="eval" cell="_warrior-04"/></td>
<td><$macrocall $name="eval" cell="_warrior-05"/></td> <td><$macrocall $name="eval" cell="_warrior-06"/></td> <td><$macrocall $name="eval" cell="_warrior-07"/></td> <td><$macrocall $name="eval" cell="_warrior-08"/></td>
<td><$macrocall $name="eval" cell="_warrior-09"/></td> <td><$macrocall $name="eval" cell="_warrior-10"/></td> <td><$macrocall $name="eval" cell="_warrior-11"/></td> <td><$macrocall $name="eval" cell="_warrior-12"/></td>
<td><$macrocall $name="eval" cell="_warrior-13"/></td> <td><$macrocall $name="eval" cell="_warrior-14"/></td> <td><$macrocall $name="eval" cell="_warrior-15"/></td> <td><$macrocall $name="eval" cell="_warrior-16"/></td>
<td><$macrocall $name="eval" cell="_warrior-17"/></td> <td><$macrocall $name="eval" cell="_warrior-18"/></td> <td><$macrocall $name="eval" cell="_warrior-19"/></td> <td><$macrocall $name="eval" cell="_warrior-20"/></td></tr>
</table>
math-cell power constructor goes here
<$list filter="[all[current]tag[~Spell]]">
"""
''Real Cost'': {{!!real_cost}}<span style="float:right">''Active Points'': {{!!active_points}}</span>
''Provider'': {{!!provider}} <span style="float:right">''Source'': {{!!source}}</span>
"""
</$list>
<style> body { background-image: parchment_2_wallpaper.jpeg; } </style>
<<tabs "[tag[MainPage]sort[order]]" default:"§Sections">>
---
//Quick Links//: [[%Calendar]] | [[@Cast of Characters]] | [[&Free]] | [[#Gazetteer]] | [[*Loopy Planning]] | [[-Minuses]] | [[^Organizations]] | [[+Pluses]] | [[!Quartermaster]] | [[~Rules]] | [[§Sections]]
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/4RMcRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAADEBAgANAAAAZgAAADIBAgAUAAAAdAAAAGmHBAABAAAAiAAAAJoAAAAsAQAAAQAAACwBAAABAAAAR0lNUCAyLjEwLjIwAAAyMDIxOjExOjA2IDEzOjMzOjQ2AAEAAaADAAEAAAABAAAAAAAAAAgAAAEEAAEAAAAAAQAAAQEEAAEAAAAAAQAAAgEDAAMAAAAAAQAAAwEDAAEAAAAGAAAABgEDAAEAAAAGAAAAFQEDAAEAAAADAAAAAQIEAAEAAAAGAQAAAgIEAAEAAAAOEgAAAAAAAAgACAAIAP/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgBAAEAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A9lJzweh70zIGRjim5II4pSdxrjNRrAFeTz7UgGOelKevX6UHpkfjSGJksOelRgAHP+TUhOCABSFSfwpMBp6jB60qpnJHbtSgZPvTgODQgGKMAkj8aQHLYzxTyCPxpvIGaADgHg9KaH7GgMScnikJY9KTAeWXGDTweOvH86gHOMipRxxQA4gDI/lQTSH2pAc8HincB2TjHanCkHPOeadimAbeDg0wY78VMBxg1Ht5NFhCYB6DrSYYA5796fgce1DDPI60ACjjAOKYRzxyfWnbQe9OAxwKYyIDBOOlKMdT0qQoMAmozkCgB24YwOadkY44FNB5oOQelADsnoR0pcgimZ4570oJwM8/SgB4OTihuufbFICMjsPWgnjFAhhBDZ7U3IB/Cgk556elA460hgME4pBnOKcAV6jig8A+nrQAUZyMDr600nIoA/SkA44xx1pAPU/lQPu0vGD3OaYCdSD1preuKXvjpTepIpMBeoJ/WmYyevanYx0pAMHJ60MAUYbg1JweDUZ+9Tgc0AIeDSepzTs9s4pQMdDg/wA6QAMjAqQZpAMc4p+BjrimAUmB1pAOc0uPzqhAOTnNOx1B70gHbNLnv1oAMDvSH1xQTigYIyaADg5GKaR2pw56daQ9RgUAHAApSOB70wnNL82CTQMMYzg5pPqMChc5OBmkORSYC549PY0A/LjNNGWbnoeMU7AIyKAGk85HagnHP6U7HSjAHJ5oAYDzj9KUgHGKTgEnueKXK4z09qAEIxR7ZpDzwaXB7GkAucDB60nQe9ITSbuOaYAxHVTz703PzUvBGf0ppXOKTAXPelHX600UvXk80gHADml2855pwXoadjmmA0cHpTlUnkGkwM5FKucH0oAXGD1oJ/CkBy2c8U4e/NACdKMYNGeT3pM4HWmA6kyc0089KM0XAUn9KXP5U3qMgU4UAOB7dxQR696bkZyOtKcnnNMQm0UckmjPr1pw/lQAg9D1o29Qe9KecY70n86AEKj04FH8OOtLyePzpo4BHegYoIB9/SjAY8Uw4zjpTs9MdKAG4GfpSsO2KQ55xTc8cikAbepPWkJz9Kd16im87jSATrSHqfpTiMcCkOehoAQe1BHNKAAM0oX1oAbipAnGcUKAOTmng9v0oAQ5A60o9BRjI5pw7CmIOAOabnPfmlOeABSAZ5J+lACoMk8/SnEYGRSqMAgdaCeP6UwGHv8A0puMcUhJzmlBGBmkMUd6UrxmgY4x1oOcUxAO4oxxR0780ZPSkALx3p30NN4pRjHHFMBpBzSjilHX+tJwKQDicjAFKMevNNB449aYXOcdwaYDyc9OKT5Qck4xQDxSdeTQMMZzRwvB60oYgYP51G5yeOPelcEBOeRR7k9KYTj/AOtRjJzSuA8kEcUwA55zQOT0pw6Ak/jQAdqTbzzTsmjvzTAZjmn5wKO+KXbzQAZ7U3OKdjpQI+9ADlbPBp/A6VGo5OaeAcYNMQM3p0pAwI9KGAx9KjD47deKVxkgbGcn6UjHJyKZznOfwp+eBmkA1icikzzjvQeDxTBy3ORSTAlUnuKUmlHAAFIe3rVgL3oJ7elB5OM80gHPSkAUCnY4ppOc0wDP5UmcUh4pOtJsBwPPTrSFc89zQTjpQHxx3oAUdRnr60oOSaaWA6Ugz1AoEBYnJ6e1MY5HvTuwpCOaQxoOOo5qTdxTegFKOuc0AJnJx2o47YpCaBSAUZ7UuCT1oxxS/SmAfzpQOlIvAzTic8CmgHHjHSndBTV549KXtk8e1MQuB1pMg+9R/NnjnNKAT17daAsKx4JPT1poTPX1qTbnGego4B46UrDuNK8jFB45HQdzTyMg4/OmEHjv7UmAwnsaQ5HQfpSgZNPAAGD0FKwDFJHWn++OaaBzg9O1K3y5xTQBk5JHWlB7nk0wHBJIxSgk9OKYEm/IIqLfzQWx6UzGTnNK4EhOaaRikVuPanZzSuA3rSDJBzSg+tAb2pjF2k/X1p33Rz0pM8UhORQIXP6UnQ08j9aYRQ0AZzSZpc0mRnmkAzsacORzS555pfc0WAUZ/WlGKbuGTjrSAsOT+lMCTHHTikzjgClHPOcUowSMUwAdMjikBJ6UpHHBpoBPsT60wAHBz2qYY79ahAwST1Hr3p4JDD1oAcWGcAUE56CmZ+b+VL249aAFz3pCRnPX2pDg4waafcZHpQAvBIAOfenAYz/KmYYD2oySOtIB4BJyKYTuOB60BzkA0EgHg0CDg5B7mkPXGcfWgkdT+VIOTyMUhjGPNKMkdaGXHIHNB+lIBGGBSg/jRsJpdu2gAApQKUA4pcdqAExx+tGD1NPxSe1NABzTSpNOIyKKAGH1xTQOelSewpCD1x1oAZg8d6X696dgdT9KP50WAaevHUUhBzgnipFGcnrnpQwA+tMAAABzQSMcdKPQ9RTu44/CgAHTjpQuCenQ9aOccnihQV5NMBxXJyfypSOw/OlyOuaAcHmgBh7cc96fjoaMA8CgccGgQ0rznHXtRtHWncgkimE8etAAxxx+tRY6gGlOe9Nzzgc0mMaWYNkinB1bAxz+dLgEcjJxTBtzkVIDjgZJoDZ4PFDMSPT3qMfe46igZNhc+/pSMQcAUgOBgHJpvP507iJsqOO1GQehpgAPX8KUldo9vSmAvtSjg00N3PenjkUgDORikppyOgzShqADJxinCkHPOeadimAbeDg0wY78VMBxg1Ht5NFhCYB6DrSYYA5796fgce1DDPI60ACjjAOKYRzxyfWnbQe9OAxwKYyIDBOOlKMdT0qQoMAmozkCgB24YwOadkY44FNB5oOQelADsnoR0pcgimZ4570oJwM8/SgB4OTihuufbFICMjsPWgnjFAhSc8Hoe9MyBkY4puSCOKUncaAGsAV5PPtSAY56Up69fpQemR+NIYmSw56VGAAc/wCTUhOCABSFSfwpMBp6jB60qpnJHbtSgZPvTgODQgGKMAkj8aQHLYzxTyCPxpvIGaADgHg9KaH7GgMScnikJY9KTAeWXGDTweOvH86gHOMipRxxQA4gDI/lQTSH2pAc8HincBRkYFSDNIBjnFPwMdcUAFJgdaQDnNLj86oQDk5zTsdQe9IB2zS579aADA70h9cUE4oGCMmgA4ORimkdqcOenWkPUYFABwAKUjge9MJzS/Ngk0DDGM4OaT6jAoXOTgZpDkUmAuePT2NAPy4zTRlm56HjFOwCMigAIIbPam5AP4UEnPPT0oHHWgAGCcUgznFOAK9RxQeAfT1oAKM5GB19aaTkUAfpSAccY460gHqfyoH3aXjB7nNMBOpB601vXFL3x0pvUkUmAvUE/rTMZPXtTsY6UgGDk9aGAKMNwak4PBqM/epwOaAEPBpPU5p2e2cUoGOhwf50gJMYPWgn8KQHLZzxTh780wE6UYwaM8nvSZwOtMB1Jk5pp56UZouApP6UufypvUZApwoAcD27igj1703IzkdaU5POaYhNoo5JNGfXrTh/KgBB6HrRt6g96U84x3pP50AIVHpwKP4cdaXk8fnTRwCO9AxpPOR2oJxz+lOx0owByeaQDAecfpSkA4xScAk9zxS5XGentQAhGKPbNIeeDS4PY0gFzgYPWk6D3pCaTdxzTAGI6qefem5+al4Iz+lNK5xSYC570o6/Wmil68nmkA4Ac0u3nPNOC9DTsc0wGjg9Kcqk8g0mBnIpVzg+lACoMk8/SnEYGRSqMAgdaCeP6VQhh7/0puMcUhJzmlBGBmkMUd6UrxmgY4x1oOcUxAO4oxxR0780ZPSkALx3p30NN4pRjHHFMBpBzSjilHX+tJwKQDicjAFKMevNNB449aYXOcdwaYDyc9OKT5Qck4xQDxSdeTQMUEA+/pRgMeKYcZx0p2emOlADcDP0pWHbFIc84pueORSANvUnrSE5+lO69RTedxpAJ1pD1P0pxGOBSHPQ0AIPagjmlAAGaUL60ANxUgTjOKFAHJzTwe36UAIcgdaUegoxkc04dhTEHAHNNznvzSnPAApAM8k/SgBQ2M5P0pGOTkUznOc/hT88DNIY1icikzzjvQeDxTBy3ORSTAlUnuKUmlHAAFIe3rVgL3oJ7elB5OM80gHPSkAUCnY4ppOc0wDP5UmcUh4pOtJsBwPPTrSFc89zQTjpQHxx3oAUdRnr60oOSaaWA6Ugz1AoEPxnNHC8HrShiBg/nUbnJ4496LjQE55FHuT0phOP/rUYyc0rgPJBHFMAOec0Dk9KcOgJP40AHak28807Jo780wGY5p+cCjvil280AGe1NzinY6UCPvQA5WzwafwOlRqOTmngHGDTEDN6dKQMCPShgMfSow+O3XilcY8ryMUHjkdB3NPIyDj86YQeO/tSYDCexpDkdB+lKBk08AAYPQUrAMUkdaf745poHOD07UrfLnFNAGTkkdaUHueTTAcEkjFKCT04pgSb8giot/NBbHpTMZOc0rgSE5ppGKRW49qdnNK4DetIMkHNKD60BvamMXaT9fWnfdHPSkzxSE5FAhSxOT09qYxyPendhSEc0ANBx1HNSbuKb0ApR1zmgBM5OO1HHbFITQKQCjPalwSetGOKX6UwD+dKB0pF4GacTngU0A48Y6U7oKavPHpS9snj2piFwOtJkH3qP5s8c5pQCevbrQFhWPBJ6etNCZ6+tSbc4z0FHAPHSlYdwz3pCRnPX2pDg4waafcZHpTAXgkAHPvTgMZ/lTMMB7UZJHWkA8Ak5FMJ3HA9aA5yAaCQDwaBBwcg9zSHrjOPrQSOp/KkHJ5GKQxjHmlGSOtDLjkDmg/SkAjDApQfxo2E0u3bQAAUoFKAcUuO1ACY4/WjB6mn4pPamgG5/Sk6GnkfrTCKGgDOaTNLmkyM80gGdjThyOaXPPNL7miwCjP60oxTdwycdaQFhyf0pgSY46cUmccAUo55zilGCRimADpkcUgJPSlI44NNAJ9ifWmAA4Oe1TDHfrUIGCSeo9e9PBIYetADiwzgCgnPQUzPzfype3HrQApXnOOvajaOtO5BJFMJ49aBAxxx+tRY6gGlOe9Nzzgc0mMaWYNkinB1bAxz+dLgEcjJxTBtzkVIDjgZJoDZ4PFDMSPT3qMfe46igZNhc+/pSMQcAUgOBgHJpvP507iJsqOO1GQehpgAPX8KUldo9vSmAvtSjg00N3PenjkUgDORikppyOgzShqAFOaaVJpxGRRQAw+uKaBz0qT2FIQeuOtADMHjvS/XvTsDqfpR/OiwDT146ikIOcE8VIozk9c9KGAH1pgAAAOaCRjjpR6HqKd3HH4UAA6cdKFwT06HrRzjk8UKCvJpgOK5OT+VKR2H50uR1zQDg80AMPbjnvT8dDRgHgUDjg0CP//Z/+ICsElDQ19QUk9GSUxFAAEBAAACoGxjbXMEMAAAbW50clJHQiBYWVogB+UACwAGAAUAHwAdYWNzcE1TRlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1sY21zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANZGVzYwAAASAAAABAY3BydAAAAWAAAAA2d3RwdAAAAZgAAAAUY2hhZAAAAawAAAAsclhZWgAAAdgAAAAUYlhZWgAAAewAAAAUZ1hZWgAAAgAAAAAUclRSQwAAAhQAAAAgZ1RSQwAAAhQAAAAgYlRSQwAAAhQAAAAgY2hybQAAAjQAAAAkZG1uZAAAAlgAAAAkZG1kZAAAAnwAAAAkbWx1YwAAAAAAAAABAAAADGVuVVMAAAAkAAAAHABHAEkATQBQACAAYgB1AGkAbAB0AC0AaQBuACAAcwBSAEcAQm1sdWMAAAAAAAAAAQAAAAxlblVTAAAAGgAAABwAUAB1AGIAbABpAGMAIABEAG8AbQBhAGkAbgAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEIAAAXe///zJQAAB5MAAP2Q///7of///aIAAAPcAADAblhZWiAAAAAAAABvoAAAOPUAAAOQWFlaIAAAAAAAACSfAAAPhAAAtsRYWVogAAAAAAAAYpcAALeHAAAY2XBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbY2hybQAAAAAAAwAAAACj1wAAVHwAAEzNAACZmgAAJmcAAA9cbWx1YwAAAAAAAAABAAAADGVuVVMAAAAIAAAAHABHAEkATQBQbWx1YwAAAAAAAAABAAAADGVuVVMAAAAIAAAAHABzAFIARwBC/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8IAEQgBAAEAAwERAAIRAQMRAf/EABkAAQEBAQEBAAAAAAAAAAAAAAIBAAMECP/EABkBAQEBAQEBAAAAAAAAAAAAAAABAgMEBf/aAAwDAQACEAMQAAAB+hvm+gRzUxjlgi6aJVoYI61tJJbUWBZSDoSkVOkmVJTHCEBZEJlofQYAcpBO9UkPU6U9Tlmo1EdY5Soxio6xzgywwjENpMjGOeVrroMjHTTrTslaFWklU5yqqAmWtoJMtTBWZLawKOE02EpFKdbHRq1SyRbZgqJUhU4k1XRJEEhlxayBeeFKW2oxl1KSsKjLkoqoIlKNRWyFdJzVUIsGpGrnhTWd7WkFbMnqGJqyTLqUbUUkEuqGUya2yc1pzg5TUkujLo62PUtKDSGc0MtpEKQac1SK2oVKiGnNTFQZuSW6rCOgrFRjV0McJcjqkjVSplkm1Rkq1uSS84xADIFeiUJ1s6EiVg4pojpVotFLG0OWqRhmZ5t8szS6loi1IqZbZToGXlGjppz5ht6NSW2IjsDRyOVrJalSXnhK60YlmVJbVp0ZsWyTRzQKthziVa66GRatTlGDmldFs6aDImLRy1NLWp2pFXKWydNNM0543zOlhjapikOeSpQbcJIWplrI1zyaPS1bNaiEO9kKEKnMWrU54ZTHKKQojCrbIGEJGLV0MdbFbqMY6IS2wMaSLUwZZAjFNY5bSTasylGCQpq0da2iLSKgjpRMGOMvPJRSD2g62UkVWpLk1HF2kNSTWwZjHWymMY5HOURcucI5Tfa5CdKumy6nM1l1VFgWUg6EpFTpJlSUxARzUxjlgi6aJVoYI61tJJTpT1OWajUR1jlKjGKjrHKEBZEJlofQYAcpBO9UkXTrTslaFWklU5yqqAmWtpEMsMIxDaTIxjnla66DIx6dR0atUskW2YKiVIVOJNV0ZMtTBWZLawKOE02EpFKddSkrCoy5KKqCJSjUVsnNZEEhlxayBeeFKW2oxmHqGJqyTLqUbUUkEuqGUyRdJzVUIsGpGrnhTWd7WkFbbGc0MtpEKQac1SK2oVK4snNac4OU1JLoy6Otj1LSg11McJcjqkjVSplkm1Rkq1ohpzUxUGbkluqwjoKxUY1UOKaI6VaLRSxtDlqkYZtJLzjEAMgV6JQnWzoSJXHF6ac+YbejUltiI7A0cjlayWpXSZ5t8szS6loi1IqZbZToGXlHSthziVa66GRatTlGDmldFs6aE54SutGJZlSW1adGbFsk0c0HbWOeN8zpYY2qYpDnkqUG3CSGCYtHLU0tanakVcpbJ000zroqcxatTnhlMcopCiMKttsplrI1zyaPS1bNaiEO9kKclMaSLUwZZAjFNY5bSTasoYQkYtXQx1sVuoxjohLakwY4y88lFIPaDrZSRVaksiUYJCmrR1raItIqCOlU5HOURcucI5Tfa5CdKumy6nM1iNRxdpDUk1sGYx1spjH/xAAeEAACAgIDAQEAAAAAAAAAAAAAARARIDECIUESMP/aAAgBAQABBQKHpI3K4iPT6LQsEVPYhlRcXCGWPsc1CGaLO4UXhUMqHxGLCxse4WTj1dP8KweNi04Soc+Rs0I9hIr8XHYtm3Q4TH2VGoZ7NQlncJxUIoo8nrC4amo9R7Fj/XcMrBDhcceI1KKlYXDOhw59mhIsqaFDLh/g+U0ayrFOGxMsbHCLxssRQoTOTLzoo+RQ0LlLFv8AH6LixsReFQlixcRocqbPqz6N4Ua/FFijuKhjij19ChuE5uH+9zeG5cNRUUVnZ3NQj30cdln0MuGo+SqEsaipeKKKiiihuG3f0nCZ0MtSvxSHgui8W4soVDZ6pdVYouEVPYhlRcXCHL0kblcRHp9FoWVQyofEYsLGyx9jmoQzRZ3Ci8qweNi09wsnHq6c1+LjsWzbocJUOfI2aEewlncJxUIoo8cJj7KjUM9moSPYsf79YXDU1HqOI1KKlYXDOo3DKwQ4XHFQy4f4PlLhz7NCRZU0WNjhF42WIoUUayrFOGxOWLf4/RcJnJl50UfIoaFyGhyps+rPo3hRosbEXhUJYsXEY4o9fQobhObh/iixR3FTeG5cNRUUV+9w47LPoZcNR8lUJflZ3NQj30oobht39JwmdDLUrCoqXiiioqG4soVDZ6pdVYovNIeC6Lw//8QAFxEBAAMAAAAAAAAAAAAAAAAAEXCAkP/aAAgBAwEBPwGthggQJ//EAB0RAAICAwEBAQAAAAAAAAAAAAERADAQIEBQYHD/2gAIAQIBAT8BpFJHxLqEFD4B9gfAMcfWsnJjudxwqHHu7RFY9XDofjTDg5By+cw0ncjnHpPwxuIKH+AHD7jHgx9KycKhx7u42PVx2iLiOh80w4OQcvnMNJ5f/8QAFxABAAMAAAAAAAAAAAAAAAAAIXCAkP/aAAgBAQAGPwKCDBArR//EACQQAAIDAAMAAgIDAQEAAAAAAAABESExQVFhEHGBoZGxweHw/9oACAEBAAE/IW5p4+SYlRQs2d+EF4TC8Eoc/wDmPVD0mlrgWE6/InMJox08FxHFA3v/AEaiV/Q2TXw5QL+CJxaQic8i1CcCXVvsUG4wXbwzCslRVI6NEyhpcG58gkmqGka0eShuGkkOYlL9EpiR+TEim5wbbBXFFB+ClToV3NkCVWbZCrwWbLiUUihNlENY6eE1fIm4U39CsuF2UCRLgmH+BW4NR8TKhaPzRL3+DfTvBq/0idCYM3R0zuxSoQviBWzkQPuDROCkkNUvSImHJ9qEY68Y2JGu86FWnIVFE+huUJCFQ+TmMNNEBIcsYTkniYIMcP8AsULghRsCVyR/IkT+RuBWpFeGkNyYbNoscoXJjospQ1yuBuLLBKDgeSTCDEOtEieRb9iSv4KhrxkQ9G/wYRHxLkf6En8g138bbZ0ZzTH5pH8iMIi3ZjfpMOvB2QxsxZTX+EkCN9FyIsjSJw+hOZTQvbJvsoi2EmqUhErjRy+Se9EO4+NoVJrkTSfpCaiFIvEHJvRuTR6eBLIKJHS0RismebEluyBSPn/CIr4PmLoiinw1YqHJRAvuxp8KOW4g1GE5GErJq0b8GopD6YklYuwhWxcP0WQuEPhIUrbFhNcjdDWKguI0wZ9k8fCyqEYJ0WR6Jm2y0nR6NzZ+cG01Qk55ODVkWTBPBME9Mw6iVdCjMsmcoa0Tfo76GORvj4R+hQaxyvk0p3sTlshUP+SR9Dh/wiRWxcSSzmzmDXwRTZEqhlRBx4czP4JpSUZbkhUkP9jt+iVkUNyOjRuBQoaoU6kOcvCRejQYJlxwUKSTe/I6jDEQtJn0em3hJvZaoKWs9Gx1x+hmtP7Jcti5abfBsNQaKWrL/fZmzhDVmQLdGxEV8UscsLHE54aqxKdLxOGOsElOBM5EpYoKxLlhrA0S2oE2/CHoibK/CZE+xCaGlEmMmSThitWIRFYTHAsqhOcE4ci90d4SG5xE8jtOlNpJz6JRIk3g3KF2bK9Hux9jCtEQn+RBIx+yQ0NEkqSb+IXAmm/oV8wK2h0Ep8fokNt6u+ROE7JPFdlohj9UrohF4WWiskxodMfYVvIIbgf0SfxMIIPByOQ+4FYh1yfZqtGnOiUJyN1WCysLvOdHNyx8EPirOA7zB3Iq/ZGpMSk0KAosdS2S06Il70MnCRB9Ep4zwoTKj4alfLXhHL+j+yaXosfZ09Ryq/BxboXTO0icOyJpCqmY20Udjnk1CssrUuCyUTrr0XTRoUJy/hKdGg/wQsh16IS4+HKBfwROLSETnkWoTgS6t9ig3GC7eGYVkqKpHRomUNLg3PkDc08fJMSooWbO/CC8JheCUOf/ADHqh6TS1wLCdfkTmE0Y6eC4jigb3/o1Er+hsV3NkCVWbZCrwWbLiUUihNlENY6eE1fIm4U39CsuF2UEk1Q0jWjyUNw0khzEpfolMSPyYkU3ODbYK4ooPwUqdClQhfECtnIgfcGicFJIapekRMOT7UIx14xsSJEuCYf4Fbg1HxMqFo/NEvf4N9O8Gr/SJ0JgzdHTO7FC4IUbAlckfyJE/kbgVqRXhpDcmGzaLHKFyY6LKUNd50KtOQqKJ9DcoSEKh8nMYaaICQ5YwnJPEwQY4f8AZEPRv8GER8S5H+hJ/INd/G22dGc0x+aR/Ia5XA3FlglBwPJJhBiHWiRPIt+xJX8FQ14xOZTQvbJvsoi2EmqUhErjRy+Se9EO4+NoVJrkjCIt2Y36TDrwdkMbMWU1/hJAjfRciLI0icPoSW7IFI+f8Iivg+YuiKKfDVioclEC+7Gnwo5biBNJ+kJqIUi8Qcm9G5NHp4EsgokdLRGKyZ5sWE1yN0NYqC4jTBn2Tx8LKoRgnRZHombbNRhORhKyatG/BqKQ+mJJWLsIVsXD9FkLhD4SFK2xRmWTOUNaJv0d9DHI3x8I/QoNY5XyaU72Jy2Wk6PRubPzg2mqEnPJwasiyYJ4JgnpmHUSro5mfwTSkoy3JCpIf7Hb9ErIobkdGjcChQ1Qp1IhUP8AkkfQ4f8ACJFbFxJLObOYNfBFNkSqGVEHHhaoKWs9Gx1x+hmtP7Jcti5abfBsNQaKWrL/AH2Zsc5eEi9GgwTLjgoUkm9+R1GGIhaTPo9NvCTexJTgTORKWKCsS5YawNEtqBNvwh6ImyvwmRPsQmhpRwhqzIFujYiK+KWOWFjic8NVYlOl4nDHWE8jtOlNpJz6JRIk3g3KF2bK9Hux9jCtEQn+RBIx+yRJjJkk4YrViERWExwLKoTnBOHIvdHeEhucRaIY/VK6IReFlorJMaHTH2FbyCG4H9En8TCCDwaGiSVJN/ELgTTf0K+YFbQ6CU+P0SG29XfInCdkniux3mDuRV+yNSYlJoUBRY6lslp0RL3oZOEiD6JTxnhQmVHw5HIfcCsQ65Ps1WjTnRKE5G6rBZWF3nOjm5Y+CHxVnAxtoo7HPJqFZZWpcFkonXXoumjQoTl/CU6NB/ghZDr0QalfLXhHL+j+yaXosfZ09Ryq/BxboXTO0icOyJpCqmf/2gAMAwEAAgADAAAAEEmS2WS23uyIES2mkkmS2yW+X6IEIkS2kkSSa6W/e6MNN3kkGwQCSf6/6khBk3uvy2SGyD+f+gJBGslkmmCebT3ygWPT/q0lmmjbye2RIknIks1l02L41zpRokrkhl0sI0XbSXbVgliQpGDMICezabCEiXKNj0TXgCz3sr3+iS788MbO8S3fcoUmE28P2hS2sS2gW4S2kkw0mf8At+2//wDtj7aTbBA/fZ/x5ZtbLbaSSRLet/8Aw6m2QW20kkmW2H2cn6yIES2mkkmS2WS23qIEIkS2kkmS2yW+X6MNN3kkG0SSa6W/e0hBk3uvywQCSf6/6gJBGslkmmSGyD+f+mPT/q0lmmCebT3ygUnIks1l02jbye2RIkrkhl0sI2L41zpRoliQpGDMIEXbSXbVgnKNj0TXgCezabCEiS788MbO8Sz3sr3+iW8P2hS2sS3fcoUmE0w0mf8At+0toFuEtpJsED99n/G//wDtj7aTSRLet/8Aw+WbWy22kkmW2H2cn6m2QW20kv/EABwRAAICAgMAAAAAAAAAAAAAAAERQFAAEDBgcP/aAAgBAwEBPxCwPnLx9HNUNmSfKeprhM8ihPrLx05qhsyXWjZqoIwwP//EABsRAAIDAQEBAAAAAAAAAAAAAAERABBAIDBQ/9oACAECAQE/EO10EccBh0gNixS1DgWdQdhBazgPBYRgJsYFwNi4HxwdDWOxgdGgY4+x8y8D9g8Q44/IH7xdrOAYIYTFtAMOYXQRxwUtANixZ0hwILWkPotAHiTY9R8NcDYuB2OhuBgdGgY48Q/A/UHzLwccfoHuB+4ANLtaAIYTF6//xAAmEAACAgEDBAMBAQEBAAAAAAAAAREhMRBBUWFxgZGhsdEgweHw/9oACAEBAAE/EAgg4CNAASIRpAHwAJA9AhRDcDUhTGAQzBErUSJ4KJRgNYkEW9hqB6IP+AAAhAENEAl0BD+QACC/Af6GhAzxwfSNAYCnlcDpPgYRWSxH3dxItRQ0OnVjGkCoByV0lsKq1PYaLrbCY5CFDIkR3oBAEtAS1AACAGAMIgSAJaH2AIojuFFg22TwG3WG05iSo2UidVGUhQkbsoeBKvwhuQeIt7jtuXQ2p44GszlkJJwNIR72hrvsL/oSpqK5EfZ6Yj+QAAAM0AMJZ/MaF8GBF5bldxI3FgnYUPAvWwl7IaqENZpUrkpqJjYaOcjDPkgPsAlgnThsNL5FkNmxvLBBnYdSKPI3ESgXcZChWAjoBKCXiAhpAH4BgfAigkCbahhsJpFshSLO4pZL6i2KJLoewzjLq3gebZTGsypSYqbFouOxojJXISwGr1xQmmxqSYgkfyFPauCCnhgh7iE0Mhu5ueQEA4D/AIEAKc3oZIPg/RA6dD+4nk2joOQ93kNovlCx3YlRtyTK0KSbrka7jUACUbg7J7ByLmHAzdNhVnnBEtibKJuZ6CU5BI3loILsiiFSTDS3L+zQD6A0K1dhJGTgbpiOesHoRkkqSsSmsiVIVLIrziu9EispHe0RxXvoKNMHwQMgE5BIu5cjSnHgoSdoFdptgbWeUTSW7Gk1TjqNUFhjPsEQAiiw2OhAgDyG5DBULNQNxlqiGm4Y4CNXZy+BO032F3CmKYHLHN7hCRmKLJ0D4IIADvwNthIQkl0x04AzwH19iE+RWXhDqDCM1hbkJlLrsbKnIzqKDKL96gURhBOVL7ApSkiG3LgaWTsnL2L8U9xIkNGHLkTorwOcJTKDwhAPgg4oHrg4GjghYbsMjgbcbhilS4JalbMgs4eSiSXgO2XTwhuzPBhMho8hogwAh0eQx10yg5ZWGNSlHDRGGaYeRXS66jcsmHU1rkn2DsvUEbkdIMAjwPJCwEhJVG5TOR4iHVbhIE3yIIJSnuV4dSG1mBn4CSal2ZIhOxKbm9xxR9AGfEaUpSrF/mWmjkxtJajsNkhJGg0ubMDfoZAi8UggHyAPoGgLNhuNhksNDmzcCZDIpJNYcCLA7TzlmY1TwWeo5htwhW2EyZ6gn0WwtAJQhkTKha1MC5fNihTKFM0LCVcDqbhXR5Q3MgeQGdrJ2QUR9kDF8iG2CIMEQQ7AqI1pCNIVuREopwNWaP2JUn2I8a5Mkr4IbaHCG2+hfQbgYpKqToGrIl8CwYDNVhTIijqTXAx4kJOQMLoQhAI1Agj6GmA/AGEhX/oMcMzcTUAOnnqM4G4ZBlOSW4kSS4vdvcS3GEuBcgeR5HeyO4mRqrdCzBqpOiJt4WBzJkPJJsrBlEuCKj8DOs0AAYB/w0ENYAJIDPYCCEK/TqNkBdFiG+QmL9ijkg3gyj4HZDvIduw1ZbfYRpZUSSS6kEmIfROx4DJROggBGgCHQB9EH6BD5BuHcGxDQb6AegA/RAgAkhZWlAdDcMYpf+BJOPR+AdiGlWNTSyJbL2MzuIAqR1CwI1gCwGEhGgCGkS/4gABDQgBhDdgdwAJN+RH0HZApl74G7i3GbSkJYbkURRKMBrEgi3sNQPRB/wAAABCAIaIBLoCH8AAEEHARoACRCNIA+ABIHoEKIbgakKYwCGYIlaiRUA5K6S2FVansNF1thMchChkSI70AgCWgJagABADA1IL8B/oaEDPHB9I0BgKeVwOk+BhFZLEfd3Ei1FDQ6dWMaQPEW9x23LobU8cDWZyyEk4GkI97Q132F/0JU1FciPs9MR/IAAAGEQJAEtD7AEUR3CiwbbJ4DbrDacxJUbKROqjKQoSN2UPAlX4Q3IfYBLBOnDYaXyLIbNjeWCDOw6kUeRuIlAu4yFCsBHQCUEvEBAhmgBhLP5jQvgwIvLcruJG4sE7Ch4F62EvZDVQhrNKlclNRMbDRzkYZ8kNCMlchLAavXFCabGpJiCR/IU9q4IKeGCHuITQyG7m55AQDhoA/AMD4EUEgTbUMNhNItkKRZ3FLJfUWxRJdD2GcZdW8DzbKY1mVKTFTYtFx2NAEo3B2T2DkXMOBm6bCrPOCJbE2UTcz0EpyCRvLQQXZFEKkmGluX9mgH/AgBTm9DJB8H6IHTof3E8m0dByHu8htF8oWO7EqNuSZWhSTdcjXcaA+CBkAnIJF3LkaU48FCTtArtNsDazyiaS3Y0mqcdRqgsMZ9giAEUWGx0IH0BoVq7CSMnA3TEc9YPQjJJUlYlNZEqQqWRXnFd6JFZSO9ojivfQUaYIADvwNthIQkl0x04AzwH19iE+RWXhDqDCM1hbkJlLrsbKnIzqKDKL96CAPIbkMFQs1A3GWqIabhjgI1dnL4E7TfYXcKYpgcsc3uEJGYosnQPgg+CDigeuDgaOCFhuwyOBtxuGKVLglqVsyCzh5KJJeA7ZdPCG7M8GEyGjyGqAojCCcqX2BSlJENuXA0snZOXsX4p7iRIaMOXInRXgc4SmUHhCAWAkJKo3KZyPEQ6rcJAm+RBBKU9yvDqQ2swM/ASTUuzJEJ2JTc3uOKPoAwAh0eQx10yg5ZWGNSlHDRGGaYeRXS66jcsmHU1rkn2DsvUEbkdIMAjwPJaAWbDcbDJYaHNm4EyGRSSaw4EWB2nnLMxqngs9RzDbhCtsJkz1BPothnxGlKUqxf5lpo5MbSWo7DZISRoNLmzA36GQIvFIIB8gD6AfZAxfIhtgiDBEEOwKiNaQjSFbkRKKcDVmj9iVJ9iPGuTJK+CG2hwhtvoS0AlCGRMqFrUwLl82KFMoUzQsJVwOpuFdHlDcyB5AZ2snZBWkCPoaYD8AYSFf+gxwzNxNQA6eeozgbhkGU5JbiRJLi929xLcYS4FyB5Hk+g3AxSVUnQNWRL4FgwGarCmRFHUmuBjxIScgYXQhCARoBIawASQGewEEIV+nUbIC6LEN8hMX7FHJBvBlHwOyHeQ72R3EyNVboWYNVJ0RNvCwOZMh5JNlYMolwRUfgZ1mgADAP+Gg7g2IaDfQD0AH6IEAEkLK0oDobhjFL/wACScej8A7Dt2GrLb7CNLKiSSXUgkxD6J2PAZKJ0EAI0AQ6APog/QIfINwv+IAAQ0IAYQ3YHcACTfkR9B2QKZe+Bu4txm0pCWG5IaVY1NLIlsvYzO4gCpHULAjWALAYSEaAIaRP/9k=
/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCAQ4B4ADASIAAhEBAxEB/8QAGwAAAwEBAQEBAAAAAAAAAAAAAgMEBQEABgf/xABDEAACAgEDAgUBBgYCAQQAAgsBAgMRAAQSITFBEyJRYXGBBRQykaHwI0KxwdHhUvEzBhUkYkNygjRTkqIlshZEwmP/xAAZAQADAQEBAAAAAAAAAAAAAAABAgMABAX/xAAoEQACAwADAAIDAQEBAQEBAQEAAQIRIRIxQQNRImFxMhNCgQTwobH/2gAMAwEAAhEDEQA/APmJdXsQwuspUpRFgsOvXt+uIMkGnBDSF/GFq9Weeorp2GBHMCXkgVRIG/D+EHoKIN9snl1EDzxxDTAmNSK3nk3f06/OeQonsNlRVHmQoHESrW4mix9iO3qKxscSIFnZQqklikdbWHr3NWK9/nFqsyRk0BvIYtJwQQL5vqRQ6459TMkIRRIquAF2SFavvff6/wBcD+jIn1a+Lt8WYyGt3nJBXnp0H6jPQal4YIyzGIL+Gn+ljt6/7xywzPA8sZiaSj4gh/Eeg5vJ9NAEkdn07CyNxJ/Ku4574fNB6VQyxz6ZYX0ySMTTG1DMCfUYb/ZixyqQtKv8qLe2/e+w7ceuP0kSyo2olXwtwPh0SCeOijqT7++cm8PSzNp/xAkbdNf/AJb/AOR6jn+2St3g4Eek0r//ADZmb7vEfJIFNn1FfzHL21DyxK6aNhCp3Kii9i3xx0J+cn1Mkp0hUiSMhttItKB6AenTDjOoGnqaoyAdkgAU0eOe37GBysNC0TUa53Ro1WHsSm0H2NA0cB45NNM6SwlRI/meUhib6/0HPvjtJDNIpC6sJGNqMtA2w6joOPce+PbaQY9RI+1Te9FB2+3rXTA3WBRkCB5JmZNF4kScqykk36Hp+Q/1gtO6Qk6dHLbqO42TZ6fl7Xmi8WtlRnXVjwmIUIPw/Pv7+mL1mlncJK+oCsTywQx36jrhUl6aiA6/VQhwHrwrZtppm6Dn/fOM0bTvNH94leNUs1tsLx64A+z5ifEV3Z3YMzXXbge/fv0yoaC4yZGk3pwRHtr6ew9P64ZONUjJP0OYQFks1OKKb+47i/T9cGGQ6WQBBLL5qC7STz0o9uf6ZTF9nAbEMPiIVJKqeQfz+uCPA0siosWzYS3lFcV611/pkryh6OTfa3gv4MEJkbxGG9ztWiep9RgtPJqAVZVp+QQ/Aqx36Dj9cNFlknRhplaMHkMeSR2N98p+5A6gNJuAcDcG/EAO5rjgdsDpAozW0HjurtLIUIBd5KO3jpxj0bwyTp2k8Pd/5CALHQUuX677O0mmkBi1pEFigwJon24zraGGSCld3WJvKV6Kf7jBKTaDGgB9oRorBgrhVAZuRtrsPfHpAn2ghLz7twoIfTtfv74poTCjMrGSShttuTxndPp1k0jaguFUcnuCfjpWIn6F14Ok+ztTokXw4zICAAQBwPf1P74xAgXxR94TcHtgpPK9u2GNZM8fiLKVA4ZpBQ9RXtnZlh14QzIj8h/K4oV0HwcorZPSWHX6WeRopI/BdTsUCW9wHoR/bvlCxuslMgJTkvHfI+Oucl0J1gDkRq3DIFawPf8APHRakoGUxyh4wN7Io5Ptzf8ArHawWx/3ec6d5Nh2E0oXgkHg/vuPTIoo28YqNzR8hlWiB9OuOT7QYSkxxyMrmizKRtvoSPnF6qBVmjljZwdtPfb3r0vIywZP7LZFiCbFLIT5lLDYPi+cQAsjRJ4C0eDIh4P0yPUfaGqeXw4omkOymJQEUPqbOcilmR1V9OFF26r5R06/2zVgUh+p1I0mlVUtVU0FkWtvthaTVHVNG9ybCLoWAa6n88LWpJJpVm0bHiwyBb49Nt1idHqmXR7108QY8FlAFt8cegzcswFFmqVoE8RXkkjZr8v8g49P3ziY/B1DiRJSpjJI4IYX357/AExumWWOYvNM2xWpkXkAfGVu8MVPHPFtApdnBLHoOcS7DdEDaiQ6jZKm7Yp5IJHQ87brmumdk1pMnhLJwE4LACqvisY8L6jUF2YRqw6MeXANj69cQEfVKTAoIBIdnBBAuuPcYocGx+FMPOw07izzwp+Ow9/jLNH942rsUDaaBAHOZyaJ0m3hjNYohj39ePbNCCLTrEFjL+IhsjcQeTd4b8QGWhz4h8YhmA6KOL9PzxTNAqFPBRaN+GnW+xGN00rCRgGEjjy7X4yTVQ6lGDMi8fiA54u7IxuTonWhNCuqVpBHGzj8LkXfziFiAk2lhuAtU7r9fywIgCRFfmolN5Kkknkf0xzaSVgyCS2KEbiaIPucno/6PSaaOSQN5mMf4Af5b750ambTKqiBdpcK243uB4u/XGU8MaI4DOdvk23fOI8Jo5kRyskdmkAI6YdDjL41gKmUOVcnaWLXR9MCdjp5XDIs0flKJVFTzz8dMJE8VNyxc3XYX75LLNIFdliYKhrrxXqMzbFSsYY55T51OyMcAmzR/v8A4zjBlZAdpU8SKqE8dQTjIGlmJMwH8QV0sH3zwZEHhLMPCVaeiQVN9OfXFYUQzyym/EhlSvwqoHPt/wB54p4ErM+omBdACFF16A/TKp5UpVkhkq75bn6fOBsMa/8AyF3KwvYygmvX1BF5kPeHNNPpmiBlZnu/OO/z6njJHkjkQQJ/EjXlXVqo+nzlxeOKBk0yR1YUEx/nx/fExwwIHKRUSSHVqJH+cwESKak8Pw4wNpK0osWf174+GXTxypDKjNu7stAH+xxZ1IiijJkLNIaBI4HPT2OEqn7q0kbR7g1KCSef9jB07GOjTvBKWUfyUHVPxC/X6YqeSOaEqI23Rn1PP+qx7zS66FUWMLtBBKcfNj8uMCDQeJp22IDsNEM1ACut9sOA0ZHrBFobi0yl2HVWB4A6gd/r65GGg1MLI8Yka6VOO3oexzwii1MkyfdjE8S0Gsbm4r8uucggh5liJ3xNwqDoO/7vGwKJo/swPIVikbczUtG7vnnDCy6NXidUbayhircd6sC80zJMknNlnJBZdvA7G/UdMh1UWnGpZxxK3Nsu0g9+mHlfYQdV4+s+x9RpUmDz6mFlWN0og+v+/wCmSfZZXWfZWkjgYxSaRRDKrpRDjhgT2/uM3tNp0DK/iAyIgYHduJN1z85k/YEOod/t0MQJE1pMxPWqNUPXLRfL42voi3U0xWu+x49U8kS6X/xHyhRdE+uHodANNGQXKM/ALEV6/T/eaj6htPHEsKMbYbgXNm/30zk5nNSamQlD5TFXlK9jzkuUmqbwpZyP7KVDcSNJQ8siMA3PNHOaGLU6fVtJM5ZXNbPxBSL9+uBGw0Sp/CkQs9hi5Cj06f345yqOIMROwLWTRem2m/zxQNv0VqtY8genMMqgiN3YHaa4o9P1ynQvJFoIz4QM3/kkKGjZ6n0OC7RHcFRJpXFESAgcfQjHIpSJmZeWrci8gew+MZdE2ULq9PQllKkbSeTRFd/fKNNPHKn3jftWQUtsRfwOl5nkpKrOgVBRVz3U9uMTG8IVY4pVlIU7It1km+cKbQONmnqRqI0/glmHdZW3UMQriSYRkkmwSG6H0+uEUEpiaaFiiEk09Ufz6e2J+86ePUs/H4LFAbvYYedmUR6uYQZUjj8MkAqY+bwWDSqs8ulQbeS44s9sbo46jM8l7n8pUngc9PbBh07RmWOFTZH8zCix7Vg5JgFRX4ltAY5IwVPdefUXnJvtWJTskhA8wUlJKHI9xidVpZ4yJEItkHlbd5a9MniddXL4UqrIQ10DRXjj5ydsqop6WajV6NirJBJTcWOKPp846GSKjLL4oXkKzUx/L0ydNIgkDupVzYUDt6YyQxTKlSESI1Nv8vOa2K0uhmlTSGSSVTODW02pA+gwoIVWOSGbUxtGw8oYUa+e+cCOJVQK9MPOy0CT63nJ5dpCsFAPC7+Mfl9oFARaMx7i0sYQEMjUTtrt/fKI10svTURcnzAGrvFLOY0BjvgE88CjiVEVGRUWb+by8g4rafgaZZGZNkkKRRlgQdxl5HxiItPrlJLqWUUeosD6YkqqXcdF6IDN1/fOUBFcBTQBYUVJ49uM1pmaoKTRySAfiZCLqPsf7/XGRCSIBm009saK3ur2xZRg26PUCSh0vr9M5HumdrmK9tgfv85sTwXwKVZo3V4xIoLHdu7fQdsBdWsRUaqJ917dxW+/lzhSVpGh8YsD1Yubj7flgtqpKWFGJKkBWVj1/uMFq7GosP2e6uJo5LvnYTf5YuUQiZwI5BNQLVR6dx84Gn1epW4wxXeaUsAR8+3PGG32qI0MUiBn3gMyr0vvjKUGhKkiMq51SokoMQc+JGxo19PT9co08axappXDbSBtbrft+/XHl59qsmyRH6NtBNYMutJBiJjda/8A2ffsMRpIa28FSumqS3V+CfLXT3xGl+z90u+SElIrIXdadOAM4JQi7UUMvJA8LoelZowNNDpDYEjcWFUr9c0UnpncVRn63UIde4AVt0flBPUjtntKEeSQiR+GugenHS++M1w088gaRI1NG6v9/wDeJi1MfjtENIkbiqKsaOK3tjr/ADQ7TahW1MqfhQDy7Wuz/fHBkJRZn5WqdvKQP7/GTaXVRhmURBX3E29gE/IygauOCNnmhJpjfUn99MeL8EktFamJopROjrIh5XapsfPthQeNJqWOoRFoUrr120Ov79Mqi1eh1VoAFYAEoxI4+M9NJCr7hpXf/wCgUkH49OmU/wCaW2JyfVErRsEEavtT/iB0v88mk0UxDlNi8eYOpFn1FZfHMsm+SOAixQt6JPp04xcDrDtVoGlDXReQWPri4MrRA07aaL/5EbcdyBtAsccZqafS2rmSMC6JFX9M5GkS8rG2xvIAdQKP7OPk1ccafxUCEgfjk4PteGl6BtvoRqtP0LSAqf5COR3yMfZYnR/u6UwHm/lP/eXz+HMAIVAVjfD8X9MM6qCKUgsFciq8Q+b9MDirMm0sMnRaN4F2NJIo3ch7vkV2+nxlQhaGVgobbYHmPf19cqTW6XbVILPl2ykk889uxOcfUwSFgClpwxWQnn3498zivsPJ/QOnHiJUoaPbyRXB9/fGeEqM1bQj0Ff1PxnBtVA3gou0cuz8gA+uOm8M+ZkjNgCt5uj7YFFUI27IBpEXVEbwNnLAHkj1x0kkOlgaWlLRqWIq2avQdzjoNMyk7U0yst2FeziT94GqVWjiVaP4XG417f7wqCQ3KwTMsieLKTGtB66cHoTfcYsI87Ku6TkHzDpz0+eOh98udJZFUeFa9KtSSf8AOehGqii8PcylBt4WgR+/TM4m5JISujV4JJBptpfvXnHvf9sHSPJFIyQnxFTiXxeCTjHbX7GtJGIbygcHrz1yWeOZJ2kGjdq52ohJJGK1TVGW9jtVHNH4RVFiKg8bqA79PTFnToobUmSNdyKQougPyxaaYOfH1WnmWQKSjupLpfsO3tlcz6adKgG8Af8A4lnn1wpaboBdpRZZtQHjHVooz+pvpgyppWKNK+oCsO60PQXfS86m9o13Hw0NWkZu/f8A1hzRxDTsI2YsnWrO09rGFtPpAXYSafTRTKyh1Kjym6vnnOR+EolaKNS4bqzcc98HTOraUacu0gAp3djfNnr9cNdCIQzRSsCDY4FfAxqy4g/ouLUmLe6wRxoASGAHJz0iya+CaHxCwblaAWiO14rUSCFfDdbL+alHLfTA06NNppF3+ZWAZFUix1v5ySk26H4+kUMW0vp5i7VMA6Ndi+a9/pmk2q0+liZ2FEmhvP6/p+WBqYJTA4GnYcEjkgheO475BqF1I0EUcellkkY0S3mZR3u+eli8CTsfJFjGTWuo08kbAAmt34r/AK1edOjJIEcYYUBsbjaR0I9DiNDppNHKEUvI/UMzAWfSqzTlSSYsYJLdh+Fua+DfzjJX0K8eEemWfS6yRokBRiN0ZHXjv733y2Rm8JZhC0asvmo7qv8Af6ZBHqdRp41jnlRp2YqnNE9yK9qGXxzTtp97Ruvm2kOPxDHi/BZJ3Zn6zxJoHXe6oPKW6cetY2HQiOMLvLOtEEkHjv8AXL5IoQivDF5Au3y9vb6YtYoHT+Of5rXzAX78ZOUadMKnmGXDpYpS8yPsBbgr0r++aWpXw9iMQa54sce+Aw3SiOFPE2Hq4oGvjGSq7KCVO8ULJoDAqSM3bFnTzTIBCdijqGHXAkhLQjxGIiWw3vzWWRAOEkeV/ID5bAv34zojisyDffe26n8sfheoHKiUw/hqRRGPKVH6YkRuz0kiMFbjd0HsR65aY4xM6puQmg1c3k8ukjWQkMFG4bSR07fv5xXEKZFG8RE21V3M1Egbav0bCbTL4Ch6Rv8AlZYg2O/bKovDinUu3iVdVH5R8+mdQxGKSQwhN34bAFf7yaX2Pf0c+z4N84kKyMI7JJ6cemSa6DZK8jm1ov1AF9bxjauT7oyxoCjHYxfix34woNQWR45IUkNfgq6FevbHuLikzVJOybTvC7ncPD4F0bLfTDj0hY7ASrDnqCW9MKTT6ZGJ2gsWsnoB8YsTGKU/dkJIsctyCeOmJaQ2ssZyY2/jeGiBRyN1flnR/HVwsxUAbQwNH8sCOWSfzLsZIhygQjn4zpmYBrhiQdXK9SfT4x+ViUFPKn3WMeKFRP52G4n5yN9ZbuIjGz0KDHaDfc499R4t34d0ePTvWKiDeI0cUSeXkuFrv+uBysKjXY6Cfw3vYWLt0VuSK6j2yq4pI3mVQrKt7T1HPpnYgrm3iC7eljkYTAAOxVV3CiR6XlIE5NHYtUsib1jF1+IjEu80wLUEZfL5aJH556BGgvY+8iyDITx7YxpmjBBgBsX5WsY3K1rB7giHVeFGd29m3EVtBYj1zsjqyMpVyCLHl4H1xAaSWWPwId3mUE9aHc5okIAbVvKLBH9MCba0LpELQxQwiNlbc38w/pjEiRTe47CTSFehwWV5N1Jdm1F8gfnjQA4kfYEsAgknEWsN4LESAB4r8wojCjRok2JvHa/xEVxjAzeCRGY2kTzGweBnVDRMWQK5Y9CbBPphcUawRLC1I0lSdB1v/WDNp2eNovDbbIeWVhxlPjjTvtkhUGrJodc4zKpJsPZB6Y9JC3TI0jk0prb4lKFDXXwPnOanUSiHfv2+HTEbdxYdxX98OZAitI6oAbA459uMnOo3RFHipxx5/WuxybdYOleidNq45JSyojK4u04YZ7VaxDK25VtjXhjt754MyStsVIS3WxYv1xPgyU0vmlEjG2ZOR8Xk21VFKVnBGHIaJpGY8eYVx6c4sTb02KjHnaB0PXteX6fTahKdkdVVeA4xUizJNciGTeTTUQV+MEY/YeWi1R4yplam/Fs2jgds8YpRGgXUHbt5Vl4+mWpFLOzxyRKCFoUOaOd1OjXUhNOk0gRQCzRHa1fONxsVy0WVZo0EiC+hYGso1IlZd4XaEG7bxZPbJtQZZAGMDukLAIo8xLdBXvlNs6shBWUCyNwOw10+mZe2I/CJJ55pGjZCpVQBY3C8XNHqYyxjYAhrsi/kDFmKdNV5ydo5dr6/GVzIm1HiBG48mt3H1wN2U6Z2JJBJJI7CQnmwAAeOnvgr98BP8IQqt06dev6Y5vs3w0oNtVxzTcnn0wV2xSDTBWkVudxONTFbQyIzSlVkkJ5skKTeeZJI5P4T8kfzkjnGPMmnKeRgCCAwHJrtXpnV2713WbHk2p0wv6FsXIk8LnYULEi6XqclRdQrM7yblks04Hly9IE8RikzLKTZv0wdqruPikkihzeDQpiYEEsDGWSwOgY9R9MR4AKs0YcbOT1YAY9qaISHwxfHJ2g/PfEvtbYZNQeopI3NMR/bC+goXJp50mDacENRp2awCR2GOhVlTa7B9/Br0HfHoqoeSd9/ztVjFyk3sSKlXsGOZVWmsV9zVKpwQB5d5sjBkTwoq8RxIa2sULAj4GeRoIXd30e26PiM92cY+rhRhLIB4cgAVQbP1+uFKPZtOlB48bpGrq4PMick/X0wptGkkJZmJW7NCgP85wjTwBpJJQpHZjzjdjawR+GtrV+JdD/eC7VCv7FxrDpoY1UU56N/nKtTDBuDzOxWuiHgn3yTU6WWOUnciR2GA38muecMXpgjBBOJuoU3yf7Vjx/ZmvUSSuqu33eQlttqbonnjg9cWYtR4jNLHKFPFsBZ9/bLZ/Ajcujjyr5nHAX2yPxDrYmli1JlS+jHaKH9cEh0xM3hnylfK/BBF2PS/T4y+DQhJxb7VUcBep+uTTPL4AWTSuVH8y0q/GMkKlVkUhAbtUc230zGdnZI1gcuW8QsaoD16ZNr5YZdA6xSKN5K2eC1dcZMkEiAPI6yKnJ6kcdz2zMhiSQCOaORAg3K5IAb6d8VYMlek80SwoDKjqppfN02/T+2Wx6OKAJqpZnocqNnDGroDqeM8fE1Mygj1Z2KkoqjqetXmgCq+UOy8VGQKoV059sawyshhl8cSMqSKGO0ryGzwfdKgckkLY3jkX/Xpjg0iFSgYE8Et3GDLp9R4lqviKGBZroEDFCch00UrneUUg0AFH6nPTRxaZQoAFHjigBXJJy2WBUVJYjaKPMAou66ZkmIzTO0rqGBsRsCwXB/QLRrGKVd2xGEfcN0PbjPQfaEc8bIiupTmPca59cUsJWQBtOji/KePz+melQsYmYSirF9BXvhtBoes4m42s7MOW2Xz75YI0VDp/OgK2SBZ+f2cb9lKfG8P8SryCOnxhayC9dvQsjIgI2ggf1ykVUeRJv8qF6dECkSF9qjaeKBGBLqkkDoIn8NFG3y0TlCqfuygq3Tk0OvvkuoG9adY1ckAbugH+8VsKWiYNKZH8RpZUjrkAX8cYcujkCwr99MhViaBql9a6YMUjeJsRI1RBtISz+uPeQk7GjKiMArsu29s3JLDO7M7Vv4U8iyBWY/hZlN9P0yfwNSGaTSrG+4DcjChfrxmkdUJYWZ7DOSdzGqGS+IdOq7dwQAk7e5w2NG0LWWbQSbI4laSReT4nX6Yh4k08qBEmmRlLnaeD9DlGl8ORXhl2CTs22yARzk7SyieQ7x4RHkliqx6E4U2H0RrXLawlI/BsAKzmg3t64cbnTqgvavWgboj274GpSTzNIzybhzuTcrY7TqzJHOEQJdBdu2/f8AfpjPUFYhizJQLAtETYUC7v1r/oZSr3GjRowYEhWJrj29sDQIs8skmq1QhAIscOSPQjtjBGA7yaaMlIjR3Ntq/bFqgOmdLRTSO3ijcq1tLdx685HqREKdUEjD+Z2BIHwM9N95ecbIoo+ltQs/GN0/2dO8255kCkW1knjNZkq7JZBNsZlJVXFAKv8AQnjOQaeAhnl1Egfuu5bI+Bl2pguYQ6YGSNePKwFf4yLTx6PxJDqmSJ04Y+ICG+KxlbNaD1MemSNhG0gjHUVfxeLhEC0ybySKP4Sw9q6Y59Lp41kddSWjI730yOQfd0YU13YKvwR7j++aLNVj5vBmjRCZF29SQAV984kfiGO5ZHiJrzruJIxsb14bahy6qt+HGdx/6yfXfaSwMqwKgBWxuPXGUm8QrRZINsdJGrgG1dh0+mejhZIdxYLuNsws0PXqKzLj+1JWYh4mVJB5uRtrK45P/GBIx0x4/F6dxzVYGpLsKSLZfAhRC8hDG/KRdD8+mTQjTpI6ySJGxbq9UxPb1ybVy73uq2g7XK+X6+59sngaNdOd4Ehvk2bHPXNWWGjYk18c38OWkVLAPHmWu/c/OKmmhgJnXdsY1uVvLXuB1ORERzkeDqFax5h0PwbygRLGscH8QqDYYWBxzzg/pqSAEkGqLJHLtkY7v49Up9sbIq+A6OjyqLJeNbAo9eO2I10/gOTFtCkXsQeW/bA0+p1MTkGTapoNtNCv1/TGr038PTaXUQw7olV1q6Dc1XXk3/bBZpIkBm0+1H6KCSSPW+/OXhw87L427atkBTxzf14xM2p0sjQiScB6JssXv2PpxmW+A/pm743ZmQAhyGDGx+X+sNdUZdzKh8Pnc6EEj1NYiSOzJLBKFUkruPFn6/2GLinbSqTZpvxbRwGv1/xllEBoyRwiG4pAWDWCn4j+fevpkkpE8UreIjqx8wagSR29OPXFLNICZUXaxBp+3PfPR6cyV91fc1gspb89p/tmSSBpC2qEi+VEauFBIYjjmr9cRKzjUbpEDMa27UtiRR4Pf3/plUCtPIsI5jUXbdAPQ13HrhMJIUaaY7QLLEGzuPaq4IvrYzrTp0iDVhadIjK0kjSIJAGTxf5j69j1z09yxKvV997FFAADqfkjp3xMosmFNXEI2NEqu8t9Oo6evfHaZrazp1dC1UsdH9O/aie+B5pluFGg0mpSU6ks8YV9qKqUGHc0eK7d80T9l6WKXeJGeMKXYOaJ7kMf7dfjOLLBplaOZxRthEnAHoCR+H3HrhayaPUSoTMgiVCSlExqa6/sk+1ZJybGol/9w8KUSRuizP5fFkXc9deB0Ve2TbpYz40WoVpG5Lbu31yjXRaYkjwjHuG0KqKxI/5XdgfA65A+jslgFnZet80a9uPaz64VTD0VRxzTuNRJIBuUcm2AF3dD+pGUabTGQRjeZFC9AjL1PWj8ZPpzI8PiMBCV/wDKFJ2sR3/164YldWDeLI4UcFlrafQfs5OV9Do2BBp00m7UTl55RtQyN1A9vT5wJYdQYmKx0iru3yUKHYBeKP6VmX9rjUPq4yysrLApYqTUft+WCJvtCWJXMjLXI2vZPpYHa6798HEBR94dQRC7+KoAbxAPOOv7GUHUyxkrJEsYAF2eSe3Pof8AGYEsOolm3NKA5JKohJBHcj365QPF8FYC0Lb7PSifj1I45OO/jX2DkakWojjLzeFvMh53SbRuvseR2zkksM6gHebc0DRC81ySB1zOiWLTkrIDIepDL0Prf9MNVbUyVFy6coQt7QKPPveJx0dPC3Ss6syljEjDna4UN8kmv32xc00iMsbJ5QSCypu3deD34/K8FNbEIXXVT0bopsoj3onn6ZYjaNpN0MzWO3Tnrde+I8fQyOeKY9MJDGqNHwNt8/l26C85o9R4jeJIrHcxBSrQGv7jCU0yRu4VWphXY+/+O+PikgjkdU2KQ23ftBW/Y+/98TyjMXI//wAlnjVdyp4gEgJO3pfP9v74TzLHO4k1PjCWgAl+U/PT9M7roZF8FX3gxuaf09ich1kWrbWACFWcm95WiBXTMkApXVaeSQu/nUkAkEE38cUcY32gxgLPZUGqIu/Ue39MjeWQIsaMtr1ZRXAHTp15zskMkaNLPCirIK6E0K5Fk9fbBVjUIkWOaLe8LaqMt+PxCNte/b+2VQExRTLpUmj3qCjSyFgfbrx++MX9m6ckpCSFjY2i1ZArr/rNzTfZCyFmr08zgc13rKW+kI2lrMtEkIMiyBjfA77u9gfGVaZUm3PqSqsBW8cd+v76ZXqtGqsLAAB3K8f764u4TxI6ynorou3bz64tsGMPTmWKZkjkEiqNp3kcjsQa/wA57VbYYLZIjE3Va5J+e35ZPMYI2KrHKAOLV+SQL4wWKzSiaWIhAwraQTz3r/OI6ZqEiOKTbKilTEa3knaD7eudlLtCGRBuc1ujUlj75Yup0cjeDLHHdHbtblsMQ6UBkCzWUJquK9L7/XNTRrIY1ZoH8j7bBGxtrFvSx06X64Jid6LBoZSCVBTxC4/tmjDDE8arBK6MK3BXsk/I6f6xEGnn1f2k3jKWjZKJkZhtF9vXFsY7umOjRW/iqwG1SdoAN9W9fbKdJpGaZ3mKag1Sgjj4FYQjSOIRwSJIsbAttqgRyOO2N0izyM07TSRq48qDg3XXFsDYmSPVwBTLIgDceE6k8f5/LphpO8em8KOOMP0852kn2H65RNJBG6xzyzljyr1yO9ZOmmjkF+HLQWlJUDavPPzmo2VpWzacIEpGLUAQO+KigBRpNqMVBJb/AO3qMRptL4kzKNRFYax5vMB6/nl33WSEeC2oBRSWBc9DmaYHSwUrIQBBKvl7UDz9fnKY9JJNEzSsC4vzDpV+mTmCfTqbRH2ruDXTkj0/dc4vTTOWBQhVJJCseoGLf2Z/obprXVDdZHH/AJByPSvbGuzyxN4iJ4e4EgMTRGAWLTljKRQJ2cHj565z7zE+9lQKBwd4vH5YLVnfB8Z0ZCF8M2vN3Qr8sXqoU1EXguwdnUn8P9Dj0mSaRRQ2UQDXF+4ySWoAI1jkcdyQBs56fHODy0FdgRwjSLHDDMIlRSAt15j/AFylZHVgvLEkEnijk6T6WSBPCUgi2UFaHx7/AFyaWBv4qhZNrqriQGxXsfTF9HqzQdmdxKm8bvxbVqqxM0EaahZjJ4aBeSB1N9OO9YZ0z+Evhs4VCAGD/oPb2x40H8RwyKFYUVY8kj4/7zJWC0iGVTrN+7+IEawWW6Bzi6QRsEWMl5DVuxIB7deeKzSMWniR1bUFeQB14Pp8YCQwbVUSSmb2U2Pzw0zcsFSiKI253MnN7a3eo/XJ1kJiCCN6ez4w45Ha+3bKXjghnETpqGA6EPXPr7YHh6QzDwlZpSKZHc2FB7epsYKsKZBqljUFJEppPwx3+M+3HUViZNKI1YRvJZ8x5sN9fXNhjogEig00e9SSqE3yPTm8RMZKE52wMeViqwwoEH5GYKbEiKWLSJK0quz8NtXlb9fXKYNOzRKDG7LKhN7aDEdj/bAi1kpgjcShHbkkgAnr6fGEZdVMwLWCvIJlN/GBUgNsj8CRmbxBtY8NvTmP0N9s991kVGcSLuVgJAKvjvXrj21AliWLU3KR3jPm9v375OF8UbopGMsZNRuKtf74WNp2RvEjVEDRhF2+Vu57H1/teTP9mu8A2zuGA3NuPYdOelj2wpWnCu1rEwolEHArqT6ZyWfTacNHp5pg24k2xdSa6/rhVoNfQ7TS7J1M7gEAU6lSt8VZ+mK+xYI5f/Un27I0rw7ZUfwdwBsgnd8f1vH6MQFhPKg29G2r1Pv6C/XI5Ib/APWUqlGCS/Zwf13gNwfp/bK/H1JfolPtGtONO04KoXQkLJ5+np/ntjJSZtSunjlc6eJeXJBYc8gHM1RDCvhyuY1YVbncbPYX2vtgDZFrhHFGUYWQLsE+t9T3yQ1F+vaMyN4JDOQNgkF7qHF+/wAZN9itqR4kmoJZG/lLEHdjy7tMJmjUEOfMTQAqu/v3GHqYjISyKjSNyxD1scdQPpyMG1QcqjQgKasqhiB1ABBXizim0s2nWVZPNN1DJwfn9+mM+zWngC+IqSnbe7dRr+xxk2s081ltNJGx4u+h+cdJVd6R26XQMYkbThIlB2gbiSDfvkiRbrklgjeQEgSRx1QPUfPS84NZOrsg0vkFBXQlub5s9L9sdPGzQl0M6h3vcrU0Z/vmsaqJZdIJIkVCy800e+r574fgbwV37dnV+tn0PbC1cgeHdLDG8iAgErzX/WJTUMGWZYGkjZbUDoB6ViMZWVJqJxpxHCPEavMKv6gd+xzqagpDs8TdIeQzeUjnkY5vCgjDHaGYgqGNFeel+uK1ZgfTNI29iV2t5QOP64DLfCKafUHVyDUVJAq7owrefjk/OdMQ2qYY9wbkCMAX7nEOsisrKm4JwN1X9Pz9cq8Zy7+AqFqAsgLuHpfrm77Gquj0G54/4qGtp5boPY30wZYUDHTRzHe4DRljYJHbnjD0+q0urjZJwybDYbpz7Z37vp4WfUKRval8zeVjfHvjJCt6N0aeIm0sVritxUV84ZjSWTwySWB4B8wrnpiH1Ukjgys21um4X7HoOMl+0PF08mncNLIpcBYwm4g0enpWbvDU+zUfTLGdk+ojVDd9wB15PrgvpNI3ki1iJIy0UAI3L1r/AKwYt0en8SSONt//AN/T1zsGwgOrBShA8tMFHY4U19C79nW+zwVCNMwYcbgC1/v0zkuj8o8OXUbwwIMabeOnN4vVP42oBUBlNlWQbQT+/wBMAQOk6usUhYckA2tjBavoan6zR1MGkO072jlUeV343eo98CNNCj2XsIPKpF1fNc5zULLKIvHi83/G+QOxrOxbtqyGMbRYKC7Y+uHlfhNLDsPhzOUaBFCrYPi9RfNjthbdIWQrox/F8u4EkHEQalBE0tkR7aDO11/fK9LLHDFUakLdUpsA+xzJ6CSZK6GKeT7xAFjUeQIeoPbFifcN0aKFX8MbL7+vrhTSTEnfGSyPYfd1zrTQ0EYMhHIYdB8D0ych1YcepGm2sheONjTIaIH0/vgTaeLVyrKgFHp5iCT74lQzvsZL7jeOTWdjWUPJ5J4RXlo2bw8s0NaMi00kcsZaZUo7mToSP39ML7xqiXkUgoxoIE8w7WcGSRm/g6t5HtAaVBxZ6e+Nb7Khk04TSTfj5YjpfXD3/kF/ZxIndVRRuUAcSL/TGyaTxJN0iFXXoN138noMBX1sbGBZFLJVDgAD1zryyPJUknLLto3wR/bNlaDbJ1h1EMTxRvGjMSoFgEf95Tp21Yhcu0YA7MBZPrkzRxTU4RJCj+U3RBHvlQDFl3RgBLI8/OZOjSCZC5ErsoJ44A4+cVqNJPqbiZRIoUbZFb9DjfvG8pICEB6A1f8ATJNXqVmXaNRtVWooPKPyPGbkhY3Z2aOBGiaTVaeNgaBX179M6E0roWDhmPVi1C/3/TM7URyfdaCIsbJTbTxzf+cDSamKOBtxYA0QkhLbgD2Pqb74bVFKZpyyIzIskXlBNEGyPyyaSdDKxmK2OELjaG9Mdp2uMmIvGxY1G7X9MlMscUvhzMNxFOADxXvVXimSB0ZkSBJIzFJGLATeQtDv3OW/+UMBIjMygraHp74GnZNmzYpvjcx20B0wpQkMaGhDfJ/PqPrmC+yjTaZFoh/DV6uJRwPXnPatWjZJI4CxFWEq+vr3xDqVmU7x5n3DaLJHvlPjBG3FDIhFMw/fvjppiO7PFk80pgAfkbW6UfX3xaa2FZQjoAXA2bugHz2yaYvPq0WFtsgBbaBYYfPS85FE+oJl2yIxk28rRTj8iMVv6G4r01LiWY+dSGN7dpPP+OmKnPlaSNBI46BuAPjEOZEAjWN1BY04HTpx8Z6IPPLtkYk9dpG2812Ko0NkjP3hGVI9x55F19cPxgCDM3korTEqCR/XI1Oqd2g0MIdWXcZCx2RVxVjv7ZVpNNKEE2spplsA3e0+y81xx646ToV0ApmnfxYl8KHg7zZdgR2H8owVjm06yfdn8KIPbb3LM5479e2WQGKRxsLsq8Xtqz398DUDxFd/ABI6HfyPTN4C9oiXWatPELTTKQwoE9s0Tq5IlRmYyqPKdwHcZFDG6hvDDHaaABA/3nF0kkuskLyRrBsUIuw2T3P9MVOSHaiyqXVg0z6ZQzUFKPWIkXTL4xMkytIxIO+93YgAnGzCOOYWzybQALF/v59sXKdPHKGaNAQKLsfk1f0xnvYqzomTQvHKNVHqGhtSAQKuutg8Z6MayOMatWdt7kEhCxr6dsf4k00JEDwwhQDtAv8AL3xsRR0eKOUmQ/zFup9a/wAYqXiGbfpE+oMsqyTzIpseQeVlrvlEE0sJdXnd3fhN5JPfnHOxePZNsmN0v8IttI55ON00ESyePMgjdVr1Ff1zRjTxgclRnQLMhDtI8jSMH2E2AOb6+xyifQzSeHLH54ALALHpmikaOo8JSxXm65X6YqfU7kMC+JYsbiO/+MdxpaDk28MWFZJdc6+HsKE14p5oUSQPS6zZaQJJSz76IFXVH8sW06nSs0rI1CnY+U33xKj+RGJQi1LHn8++TUuPQz/LsWIZtVr49SUR3va19e3K/TNA6iVplj8O1JoMU4A56frkigKrK0DnZyX9LyrTxq8IEZC+GBRNnn2OUi34LIUur2ystbo34aiAfnjAmL6ZpNjpsAFbjwB/yxc2jkOrE0su608oSwL+euP1IJ08KBnDrGPwLYPU1iS60OZRP/7lLtRYxEpryuO473jV8R2UyFQCtnm8TteKdJQOCKauD8A42MyGNlhViwFjcRTe2IpX2FpeFMcnl3KGVByeOTi11zPuYROwIsbf84EMimJmdWSQimVRYvtnBIsMjLTLxzt5JHr8Y3Ji8UUjUQy7bBWThtr9sGRYSGUnzdQQOnxgacJLsdt8m1PxuO2edo49xdgjHgMTV/GZvAVuHEghaJVAdQORR5PHONh0kTpuaSRgg6sSAfbEvIqbVQ8tzZU0PbnC08DSzLIWJVqFKeB71milZnddnvtCGN/DjlikJRbAjs19cjfTBlCxtJsAsqzctz0v2yvUSxPqHtwz+JwFN3XH0wB9oqAunlYg8cKvXn1xJ05MePKkRiIRhXO6JEG1vOWHXHRwu/CtsHFgiq+cr2aMabmEKoF89h9cXCm2yUJQtYs8/GLVMPO0dWAGQPFIHVjVA9c5qNLE9HcV4AK31rp8jGae1kKICqdWUji8ol3CEKqL19e2VSTRPk7M6CAKCSPEW+B/KCMJIqZ2VwpHCkg371hyL5WVUZBfmJN9v6YSaQtCn8QsaHO6j7/rk0ndIdv0BXJZ13ljfJI9ffK4YmMDM7AEkWfQXiz9nlxUY8MHqu8k2PfvnIYJIoJN0ju5Pl54Htl4KS7EdNYwn00W7ft3kG7A71gkhoHV1K8HkGznlMgiLTRgP6Dm8TUg/iJdNxd2KxbMkCsbKEIJpuOtFeMerSOnhrEincL3i84igxeJEUkYckMcjH2h4oKs7K1VQ7H1OLfENOQyWQjzSAoy9z0A9cX952nzyAqy/hIJ4zssJm2sBuZa5I5b5z2pEhN7lUjiiLN+uI3tlEl0d02ti28f8eaFE+5x0U6b3F7VJquov0rM6CNopDJKolZhtDIaUf7OWRSrIyqhCANTcd/7/XDGTs0ooHxJ2JH3dHQcb2crfHoO2ckmmj1AkjpQydLsk+t5QpQrZFkmySvUZK0P8aRlDb0Xn2vNJsCoaftJvDLSEbiaB2cAjFLqfvV+P4SOq2WZOeO+FpVfwvEePxg54F97x2phCkmNau91ckH/AHmuTRsTojZZn3HxkkQKDSii35dsKGWSWLwVp27r/Mfrivu7LvUkpHIo3AuBQHasbMs1RBNjEHzbGsjFHGwyFBsYsSDRa72jOzTGEC2L7x5Sw5/Lti2ZQvh+L5gbby8H1s+uLSWYfyKWJChup/LMrWC16WaWeKKNo9QQzkg2OKsf1x0MHiRMYzUbcnJYpl0mmdJVWSbkeGg4vtfvnDPLsV5ZC7MBtUDaqcdxlE6Wk3F+FUk0axLDDuRi1Fj39ecCWEwR7UclpAeaBF+mLXUPLthm4KruJqgP94SB3N7vDJPlTrQwt3oaohmbUnYruHsedtoB47ZbLKIoVd2IFdOBdYlhKWKsDtN0zDnENGdVuDyBhHVc0R85JNplKs0AWlSMsdsgvg33xEu2JyzWxUVw3BP+c4q6lNGCxWUR0bHziZNWnTbtDeg6k++M5CqJXApYIF3O3VWc8Y5IiFAkB5FcG6zJi1IAWMAt4h6EGxX/AFlUniw+ba4fqXvgjGUkwOLRQ7SFtygMN1HnqAMS5qZdg/EQKHN42KV5owJFcD+a+KxE7vvWSOMK23+c3x7jtmbRkgpAdRDIZkSuQovIYodybyfDYAgoq2DlekWXVLuddpArpVg9KGU/dUpiY12+o/vmWob/ADhngCORBKxkl6Bb6ntjdPpm8N13MHqySfMSfn+2UwzJMCgRAqDg9fbpk7ywgHajgoSAeeT6DFaRrbI5YwQtyhwfW+T6Y1I08Rt0O1U5Um7vp+ee1CCMRqw2EjcFqzffnFuraiLw/H2L1tSSAPf3xWOtHwqS4V5F1ACmyVuh751JJVlIjmIBFgKAVAxcWnkWAN4u4Ak7l43e3pno9NqIYqjRiSbIYjp75kn4DCmcFxa2xPXkdPU4Mvjoiqy/w6/FdEel+ueUGeWijhCbrsT74rUODqfHDSLHWzZ2Nd8os7B+hS6iKWR45DujqjYtSfTHzPG8VBlMY6qBRXJZZVlXxVRlCm2qlDj+udUaaREl2NJIWoqWuvr2GBsNAkKXLmU+GTYQcBfesamukj1B3ICnVWoGv6ZPOjbyIqdgaIXgKfjrecHhlzNJvVV4bd1JwWxqXppwSwzQtJMyKqN/Mn9Pc5l/aEukOtEWmQl1oIpO4densMB/tGRpf4QWQdBGDVH4+MljkVJ3nmJWVuY2K3XvQ6Y9utNGNMukiYs0KeCshI8UobUH/iE9svXTnwnROGuyLAHTrzmIqIH3pIA6eYiib+TmjpJmk2OJFO4kbDXmxJO2NJV0LXRJo9zyzyKTxUvr/jLjKrQr52lsCyBeTyeO0iiSlqwBe4Kcp07eHAHMgYuaseW81iS+yZ5JFBUMUdnsBe/tfpmZJuLqTQAYkgHaPyzcd4pDsLIGdhYK9MVq9LFDI6+GlNxtvpmd1fg0ZpECTyRxjYO3LOKKj9/niA87yjxC/hmgP5iecq1MRErNG+1NnCVYJyddRHFJGKaFiasHliepzL9Bs1PstTDrAXlFhDYvkH4zjTyz68t4ixqG8wbmx2+MXC+n8ZFQBXcMCV/nH98bJojbbVdgQByBxlU21SJOuVs8HdtyhOpvgc1+f64RlMkm0ARsVJAIPAw9NAIWcK1juFbn9e2DJAW1IATyrwVPFe+GsBekcz/d3R5Gh2nlUbq3a84dU0zFr/ENoQ8lfn3OFqtLFHrGYsHiJDBR5T73jPu+nYXEh3kXw1fXJyX0NFr0imYKTHHDypBDUAAB8dfriWm1HLHc6kgqHor9fXvlMuikgZ1VgSy7qYc/T88DUQOml2xsJFC+YOaJzIomieT7TjOoPhgMV4ZWq2+v+MTHr03RldOKs7ghv8sQItOmolV5N1HcwUdPn2/XOx6IyahBBZUHyuDQv1GUpDUuyibXCGbb4Y2FuXJsAV7ZPDOZNwAdE7Bzan4HXPauGaAzLJLvFioyOCenb64uSJmHCBE/5K23bx0v0w8Yior08JLNO6eIYlqxXJ+PXNaDQsdOxn1CsJFG4EBfzz5lBMJQzneh/nQ2Ae2aWn1MzALvtuRtHX69hmaoElZoaiGLSaNJSQZE5UM/mPx/1gLrUKvJFHCdQV83NgDINfqDHK0XKl+RYsihz24v1xegcaecqIh0st/r0zdKwKN9nNVrdfFqHDHdHQoRIApPHHGeiXT6pfF3QvKgooOd3vjdRDEAfII+Cd240O/A9Mh0q6h5iItPu5reoHT57f4xrtGpF6auGSbaikheCA1qfqcri+ztINO3i1yLocEH37ZGkOn0wMsQDahuDI/f4+M5NrZ49OAsTMwFNTgAelDBnSFab6HzoNI9o4RGI3KTZU9umZOqnjfVLp0lV1s77NM5PoemaCTKNMraxX5/lVaA+uSsC8skkIWGMgkWBuI+vrhjSGUaEyaOOf8AgrA7JfnZj5fzxqKuldjE6qzcEgANi9Omo1PXVKsMXO3+X6Af3yoaHVOq3EpjBoNGbsetf2xn9WEegJUSgEu1qCoq75rvzilgk08DM04EjPu/Dy/scV48cfiQhZUWDduL2pB636/GNg1UM6lZdO7FgCoZjZxNQCd9NrHmMgEaLQAYUSK55xm9/BQamRl5AdghJI9/9ZciabT2ssTAO3XeCPnjn642HToNOsxMngFrH81DuPjC2azMi0unaRZH1G41SAji+9YqWVU8gXkISWiqjR7+vzlerI8YhNQfDogKYzVf3ySPSwMpM88fiMaEW4AEdvz98MXYP2TxaqXV+EHbxIkPDj24qj71+WPgOm3P4z72NhgQV3Gu56dL9MF/s/TQQjTvKq6lzudF6/6xUelmL7kR9zfytRBPQknKuvDYe1MemlgZopfMh4NeWh/Qj0yOVwJEicK5aMEkAV6Dkd/6HL9T9n6hdIshEIPJC7qvrxXBxGm+yNWysB4fhuvW6N+g648aEbZKfGdtjDcByjFuvPOPi/h7PGW3UiirX8Ejvmv/AO2zadR4UXjSjna5ASq7Dqck1c2o0z7Wh01kVwoA6/1H1wNthTR8/BI4cGDw1VxVbdwBJ/z9M09B9qRQS7GjaQEHe0LDcxHcKK9O/NZL9l6ZXn0oeRU3kAEmyaugR6YvURpBrnaAPGNzbdqjgX0IGdTUW6IKyrUfaMDalaUsQPOPCo8+/r0Gd0U/gqVEU0FqEsObF979ePjIjNJqJow6s5JJFjaw56m/798e2ml0yElBGinar7qI7cD88VqlQfbLZVVZo2Z0WUoL3ksbHSjfHuOcQs7PI9IGLAn+aqA/sf65I9PuMjcBrcECiew3e49cdHEi2iFZgo3UJgNg9L4PFYvHNGvS3fFtQlQwobbolm5IAHWu3OO1+6SPTQwHY0VsyICPNzyO9XeSaKLUybdrNtWQPEr/AIh/f99stlCPG6ykEfhZkADg97PF/lksTG7IVXUgl5G3eGLCug5J7gD+tX8ZR9niTW61U1SkRht7hTW0Dp/Tp74mDRNHMYoZUJko+cm6B4INdf8AGXLpYog/j6xowhYUzhGZqFVfFY0mvDL9gfaEx1Ookmh2hmYEEqDQrg8cnv2wI5IIl2ah5E2GzIAfP/8AX4w9VFHCCu6RtoDDaCFN+/v6DFaZ0j1Mkz9WBBQgrXrXPTE80ZHhJEgHjMgUChGSSfr85FqJzJGVVAVFjrwo9PyypUjk1LhVkjaNqUbjtc9xQ5oDv0s4UnjBGaJlk42AoQGX5vv8YVSZmQDUsU8CFt6f/ZvK3xx8ZRHLLCigbNrHcI+OTVVd880axiGGFKUHcL83h8MODz3Axml1Hg6gHUabyMPxUTQJ7egxpS+kLTRMmnGtLvNKwZbJdQCe/Ht0ynTfZ4nnjljjWTThPxlvMe3P1zUVopUEMDpC24E30a/X1OPYu7vHLEYEYFVKkeb3rr/1nO/lbwdIyp/uUG1nRHWiCwYnce3lPP8AfHJrkIENybWYDn8K53W6WBtONNQRyAQp/E3PXGaaxKr6f+XksK2sLPOLeDDJdVKeXSMxCwF3UWrvkokMkxkRQXNcyEcfH79MrmSAyFJZmfcQ9n07ge2J1Th38iq7RkLtQAMf6WPbApeGSR2HxZNS2+g1UGrqfcni8snk2VFITEI14HFkkda6HIo43M7cMtHkMOG79P8AGMdzqUtGjIYbHbr+mJ6M6PaRmavDKOoPDqdp+SPXLvvTaaUiaQLx6igMxWg1CptO1VPmDJ0IHoD3+Mo02nGpceJtdgdoZKBUD998taWkmrN0szaUFjHJGnPHB9vbIJQuqkZA0qhGsN+E0fXOSRtp5EaTfGpNBj0r0I98bom8N2lDeQitpPB7E84rlZkqFtpRDrGKyglwKB85r09v6YU0DIpkgQAgHxJP5iegA6V/vGa/VxRIpSN5U5GxDR4+uFoZn1OkcFXhjWhukAHH9zmin2zNmcqSELHPpZZlBsPtojvW4Dgj9coDpqBTo7RlfJXHB7fnWXaj7vFcfgyyAC9pby10vr7fridR4M0AeGBI6ACSAGgCMLmKlY4fZEBEUjoGcoGUbQpQDqPrmhAEKSRlDaGwpI5v9ck+yZnMRdmjaZB5lA5I/tlSSyzyJPDEpRj0deQe/wA81k3oHYBVJZ38JVcMwLLGvIb1Pav1z2hXbIVlA/hgi2bmvcYU8U6Qs0Maxu53Eg0KyT7nJHOuolnVZGIOzdZI/ocW/sOND9XqHMblfChjHY9QPXJpQZgSZDYAI3m+PXGGQPOw1DiNgeGI/F6AV/fGbkSYSKYwGFcKACPf3wWEDSIZoSzwKCTW3gMcF2YhgOgBDAd/Sh0v5yqaeJ5lR94LAEEKfKR3+MYunbf4R7iuvHzeGrBYtZpRUbKNn8pJABod8TrtPp5JElO2KubQjax+O+N1EMRKjzJTbQqEEEet4oKtj7ui7S1Mx/kHbA34FL09pm062s8m43uUhbr2xMkigvEQQjkndfJ9z6Z3TKz6gqSUO8MBdrXfnKddo9JIVlico1+XwiCB84Kw10xMKSoATAWYXtok2ewxsR1kKvFJeoSQWFdPwj29Bi3SPSkStGTwaKte/vVdLxsc7siyoPCBP4bHlPvhWA7JirzowhLqe6k3x7DClW1YIGl8gXgWPkd8OLUSRal2nIIAonaLJJ6CsYJoNQd8SyxykWyofLfpZ+MLqsDpGreCVDJv2f8A4JJ8x/Xp8ds4xk1MrU58Mmmj2i1IF8k4zU1JNIogG4JbNzTD/Oe0yNqIVEbNFIV2eKynk+4OBBOwTiWRVKEOH/D0LUOvvmjFLCo8cu6OvlFDkX7ZCkcumBJWMbRa8fib1N9+udc6ppAJoXhLpayRCtp7cdMyM1ZoMoZQCu7xGvcASPn2yWb7MjjiaNEXgXQ5IzsEGtiDEzwvB1s7r+axmlJnYzyp4TKCCVYNQ+e+ahFnpDp6klZkgJ2dTuoH3Hv1wvtFzJAuyVQSCA5HW/c/TGz6OaJjtdzG7WK6j0qvriNRppXkBbSswPlCsR9SR6e+JpRNdkvgapG2sDZICqKF8dxngxiO1oHiL8GmsA9ua5xU+meFy0UyLIeF3yEAf2wZ1dGHjkNSgK0MgN9/9Y1WMNG3wZFeHcI+W8vmA7G8dtDaUBNL5hW12eq9/wB+uTNME3IkbJGVt5G6c+nXKY5ZVRNOqbYwrFWY0KHUH07+uEzKN0UjGR45DIRt3be4Hf0+MytXDMriSOAeIWClV8pX2r09++VRSbjtI8rm03E2K7H298TqJp4YDHFtkrgIpux7d/yzWZKgtAV05sRtHIxo2KJ6cen98zv/AFBrRpPtn7H1O5k2zNEdgPlRgBt/rmrptVBqJFgnYR6l1AUSA0SR+h6ZkQaHVfa/2rqZNWwEX2VqNkelr8b1yx+P8Zf4VTcn1RKbs14zE6FNUKWY0qyUTY5Avp+ed8LfK0finTbRwd20/HvXpk8eoIj+7hBEAeRIKZue4PbKZIUZhFJAjRxUASKrnoD++mQrSgSoSn8XU+Md23YG4bj1/vlH2a8SSgSQkNFYDuwY163175ODMhMRCeDJ/Mw4qvSrzw0iHULIJEb+VWQcN7fv0zJ0BrDRfVxQ6kyIUeNzuKcCz7YBgTUlzpYjHLL/AORgo3Dt9cXHFp9QApISRB18P8Q/fplez7vqF2vGqsRZY0Ub1+uEn0KkWWNY42RBGbBrkjkVg72J/gICgs+G4og++Vv4uqi88yeWxyQAeOD9P7YB00upiCSMslVZ3UD8YWgX9mc4fYUd1R6sb6N/B9bziAKD/HcM3C8AAdO3QXlsvhaaZWnO5GFncdyr88/lkkgLny3s3eXaNzD0+mSd9FUP+9RzxDfErqwvaD5lOJ1Tx6mMRK25LFG+W4H6/XC2O38NnZ4mNtvXkHoPTvf5Y/SobGn2tHGi8PMbLfB+uG2DEKbTwyadoJGBfbwHIN1/Xpk+m8QjbTln4sRgXXYe/vlGng8Sn1e0CIkFnHX4x8n2hC6KYG8KJD3Q+Yeg74Yq+zW1iOS6LVSGzpwsfFf8q+P94qL7Ln85chWApXHUD4wpZpyEjhn/APIQUskiuvXridUZRwXLTg80Tx/rpxjfigLkOg0hkd5mmC2Nr3wwr0PcY1dLHK8ZOrSPaegYc81kMYLyAio3vaFY2SB2r99Mpcho1GweJ+Hdt6WcS19BplWoigYBU18cbc1a8e/GLhSJY1jm1iy7iNvkNWbHXJZgWPPGxavgken1x8ULiNQWDFbIVgLP0w8l9C8aXYxvuenvw0WR/wDkSaBHGej1WonJhkaNPLStEpsn698lhVmJIjkVib7Hv156DKY92q1gAVf4V8VfJ6Zub8M0ifXzzhX8d7jHRpBZc9gp9cl0kupl1Lo0cgQNW6+emXa+GNwA4oLyRf50DipYCsHixA31BX8WZKx01xJptLqAhZTag8A+vpeWRnUDTK+nbw16BSBzR/ocV4MuoVNM+41RUj8Mnv8A66jG28TMY1PhqpXafMDz375qoDdoLqrttKkigpPAA98n0vgliyp4ghXiKQEunqffC1cgC+HLsVTzyOb+OmTuQdr6d3EoXcLG0keg/wBYLCkOiVpAzeLG6kkhKPlA7V14OaOkvxN0nEScgMfxfGZ6hdYfGSMeIOLvlgD1+coXeukbly7seOCQB19jgjrFmj2oMjatp1j37rOwGyfr2+MVC8KTMyJJFKGBbaSNt/BrOh4TqKZpVbkUoP8A1j2SMI+5WVX4LL0YehwUzdKjxDmcsApUjyMQbr0JyjZ4kdBPGS6DA9P8ZJNFHOiRrIQgPCj2+cL7Pjli2LDOTHRBsWPnGi90VrDk0MkBO4b42va6ijf9O2MeZdJui+8x/hDXXIsWD6ZZ4p1aNG67VDcUBR+b/ZyfVfZ6mBfDAVgQSpUVVY7jjaFUvJCHlJAkEh6BSStj3OTGMakeBGnlLWQ4qz+6wX02r0y+EQFV24FgAfnjdMJY2jjMpXbyS60FBH+snRTroUI2LmLlvDU3uN2Krp1ByDSxaggksPAbkck2L7/J9ec2AYwzsrDi6IFjOpJ5lRYwFPJG0UD8/n+eFGUiEv4UzQaaJX2LfmcgewvreSNqpZZpNHLpx47V4YokFQep/d5rzld8ipC0kknnUEjj4HpxgySzwwpGqOrPyT+KgOubkgpijG0aqWpW3WWjTy/l/bKWkeQeZU8MceckA/P0wVSeS0VY+D+OiDWelnZIwHtW7tfB/pmsBR5XVIwq1VcNV16Z4NcAJIPHNdD74pHbwiJ0WVq8vBpT/nnrnhvjgUF7kYFQRzQ9TjXgtCzGZYrjjclT543NVxjW8QSRoSFtdpLGrHt74sK4nVtQ/gxlv5hZPHQD0+cpkniLlYYkR16SSeb349MWl6G2dGmCxCRnKx2D5+fbpjTAvh7dMFWRvwPJyQfUdsi1Ek82yPdW7nZfLc84STSaaEpI8ZVLO48BRWMml0K02aDyll5mDALRUc2elemRxMWbcXI8PgkkAtx/nC0MU21mQqxPO0LQJ9bySbdBIZ98KMfxIrcr616412BLtFcSGKJpPDJSVQSA5P0zkrMNOyxgEbLBHWulE9jgaWaWVrM0bQkHbsU8c41gqgPJGpYDrZ/D36c9cDX0Bd6JVppRvVk2uOH9P7dsLeCqgsCXPmDPgqYZDcW1iHtgR19KvOyvHG+8R04a145Brti2OGyOIQEUFmF+tDgV84DxhEuVUj2PyetD0wpJpTp5NQKKhQUHS29P9++Cf47tLGGG40bXqf8AHvjWkgBLFAi/xAzDbRA8tD1r6ZPqpG05qJ0iYqQEILBulfXK9NIHB8U/i4I2UV6/TEzfZDmRnLmQMfKCaB+cDTatGTp0yfSpLuO6RyGJYEHqRzRrpyctlm2bdPqZDuIDBRYI+DXPxg/cTELiba3/ABHIv3vPanUEQbdSGANBSy3XyOMCdILpsdBqWK74h1FLx/XI9Rrwp/8AmHYzgrGDGZBd+tWD09sbpp9sNpIJLYKxPQ5RvaCJpZCjVdp/vH5WhVjJDoh9pBpH1hjeMgG+FYVz15HODH9naiKRnIBj5ZSvmC334OVIv2cWSZo/4jnuL9/7YUxEkQfSzFGo7SOl+h9sm+LVjcn0BpZJYnKK/iLW4BhusdCMujjTwmG0IxJbuLOTQyTkRhtMsj9HnjIu/jLX/jKQUuxQa/7Zb41a7JTemNq5HT7QiCuKLdNwuz04/fGMTxRqmQjlySCw6duMuT7LihfxljTxBwr9/k++CY9R4gEnhtY6rYrElCloymvBSKEDEqrEkC2HAwlDQorom8rfTnC3LLavEVdTag8Cx3xoImTaHUxngjnrgSXgGyYLI6Ryyy/d1YW6dbN9vT0z0sAmkYpuIoEHsMoZZZIuZI1N+Y1f0w9y7AXc2DxyAMZRsDkyRJF1Sb9rKRwSymjz6DF6giOYSRqjPwFdzYHbj/PXHEy+I9OtfPAGJllSOePxHJNUSeK+mK+h1djVMk6sqtybBN2Qe4zujYoWkYIPDDVR5+o9TgCcgbmZWUHkoDwMGFBPopNgai9Hd3GKmrtGfWksoVX3He9kUgAr8/8AGMMZLvGAoUdDz/f0yh4NsbqyBwa46D2xar4OnI3bmXjZu5Px75Ovspy+gXXUCRVILI/O8NR/LCkaXcsax0V5KtVket4DMHCVvHHIuwD79zjHaRY2fd4inmz1X2rMqAwJtTHFNTAgL1HYe95LFI8wbWLLqNvUpyE4NVWPeU6h1hfT9QSQo4HveM0iRmqiIZDw11zhWvAqkjqmVnaRmI3ABE3UL7nCV5CkaIgRujA89MXqwZbdR/FQ7lJa654OHCNRIHKyx7jwTVm/XN2xaVWei1KRO3iuAWbgNYNZfaSaU0CrBhyDz9My49IgkuRKseckhievT/WaEKFdJI4BanBUPx2yvxp7Yk0l0TpGPB2rM4Ynqxs44aUFKZwWHm8xs4tNRp/uyuixg7juIbhTjhKCQLPIugOB9cZRj9gdkraLUqFYTJtUkkFCd1/GK3EruEQZDa8rRHwfTHHVTFXTe6gN/wAeP85AuokViY9SGBJ/DZselHJSq8KRTaHCGeCSaV5HcbvKEIoD1odT1/LFS6pTJRdNtfjo8ntQx0WoaON2cg71qiSLJ+c9IdJtZ1hAcjk1xfzisZftC4G0xtnndf8An5TXzeUKmlL8b/DHVrNH6YoaaN41Kk0DZAbkGsJ08WLarhkPF3d4E/0Z0O0pjlL7GGxD5e3OEY9ySAeG+wm2c8n+2TNomZVgFLu4Vlrp8H98ZVptMyRMrr4oRas/zZVS/QjruydI9SrCSRSpJ4VXBCj3+mSamadWAEJ8J2NFefzynVxsGkYiloVZJ3H046Zw6ZhpyZAzqAWFcgdPTJNtlFXZHGDOxM0Z2sOGXkD2+c7Jqx4O0rHvAvyjzAf5zpdJtMQg2k80po16nOyaIOImiDlzXK9/c+mBMbPTjwtJAu0qzuRexefjL4N2h09TRSGYC2cD8PsPf4wo2XThYopVD3Tuep9a9MVMzOfDLU7N+ycdNL+k+/4TtpjI3jK8kcjWbXqO/wCxhmdgh3CRzV7X6X6cd87MpjIUzPKyDknoffPaKWOBSrGkryAt1wLsZrAZ5f4SpGNjycOijzYccbN4TtENoPkvkj3wNQYxqbMYlfqoJ68dj64azRIjPJAVAYH8ZsewzJpvWDpBODLJ5lkoGhtH4s5qIo3BIiET7tx28HK4pR/+GI1YC+LyFz48paYkiM8enxmnRou2eMmoiinWR1/iA0FA3cdgMiMsLFRqtw2rwOtnHu8I+0YgyFTuKlvWx1/pnA5nCRtGhDWNw5/PFu1Y6wEKsUhViOwVaP61lZj1KLsLxkf/AEHf2zg0MAj81lmIO6iaNZzaq7YnD0vQxmgD7jD+gPejungnDuSXlLfiB4UfXPP9nmMtLLM2w8AKL+n54Q1zvp3AgNdPU/0oYnVyeNpmBV49nXYbb88P4gSlZcJoo4F2MiALzfF5lanUDX6OYRs0QPLhTW36jnGx6goixgx+IxAFJZBx8ekZDahtx5Nnk84zk30alHsm00c0RuUCNK/FdvY9Tjnk0vijy2Te1GF8cc/OGkcfLBjatRIIrPLBZV2c0eDYAxGmG16SukmrIU7o4ydoPF/6xWogXSsoRW8vND+Y+/bLdK6yTskhQxvxuHasVq9VGdUIkkCulkPVjp1rvmSwKbujqrOsDW25m8xLN+mcgnnfTmoTuPl8x4H1xUer1Ms0ccA4HMrmjR9ctkWWTSAMEAv8XY/TGRn+yNtRLEVEhjYVRC8We1HOGVZ51KOUKtSgCrPrz89e+KePU+O6igiirJ6/T5wUhUlU3E7PKQDtI+MGhpBSNPJIUZAykkbS273JNfTF+M0TNWzxCACqAqCfSv8AeP3PAywxootSeRRX0HvnoiZ5CI47ZhzJ1CHtfbMYlhb/AOQ/iwukl2Ah/F6Afn3z2skjULpkhkZSTvN2AR79804YJQAsjDxEF23NH1yaQwP5Agmaxe0FQvqxPp75jctF6HTaaQ/eZtkaRqQVZeL6/N1/XJNYIZQWjBIVtm7d+E+gHpjVn00kjFgGRaCoO3PUel4xJI7ZIdOUj3US4Ar3GFsfU7IAJ5U2/hbpITxXPFZTpoWlsqm1gaZmYigPTA2bLglVncvy7HgHsffEq8ifaILUYb81NweKwdjWa8WkUf8A4rL5TwT19cKERozN4YYk/wA/QYqLTt4iFCT4i8GhQGHLvSVVWInuLFgV3OBIi9LEdPFQFE3f8qv5zD+1dWTrWICxnpVWCPU3l+o1M3hh4QSSDuG2rPr/AKz5n7b+1TpdKTtfx5eERzRX3r0GWjFzaigRVazamceBHqACzBgoTtXcmsHWuXIKx3Kwvg/h98+U+xvtH7Um2aWGNNT22kebryc+j0eqSDfH4SF3JDlSeK7Y/wAnxP43Q61Wh40zOI1SQu5XapI5P9sb931HKvLJvjPIXHaPUtqAscQCbR5BI11785QmmngEl6lomKg2PNQ+MmkxW/CNW1Q080UassgIAc0Afnm8p0+sj3t4jSCYDad/O7i+MFFWNgRKstnmup9yMegeaCwoVxYIVuF+PfCm2K/2L+7xyFZnl4bjcpo11wPDMb0hXeTW9Tyw97zs0MysmxDIwN2e3t/vCIYkOUVJyfNtPAHrf+szRjqo/ikAB7PQHpeQtHKdbIrOkagGwWs11/rmk8G1S0k0W2929uAfbMrUahIJV8BFkXcSoI2gnpx7DM19mjbF/doonGoaUMLG1dtEe1/OKm+0Elmj2SlAp/CFAAHWzfOLaVNR5NUhUFqBU2B68dsExqU8SFd6K/AYncT6374yKV9nNTHG8zBGvvV9R9O2cjDTREzRFhRTYFI6d7ymeDTxrvPiK4QUd1fpgiV4o9wZ97XbBKs/nmv6NtEZQoQyxsCtKgDHb9RiFhljkE2xbdTW1SDfc+wzV1Ih8EWGi7eIzjzGupwFfdC/AlTmmHFnvxhUqD2hTRr4b6g00jCiWsngdMPTaSbUDaBsav5msMM4zwxBiyFL/Ct2fyxkMz7h4DeReoDdD34xdYHhVDGI0kh1RjmB4A5JF/rgQTaGBxp1IiYix5rr5HfBCNNBvMbIgrzotr1vrk/3fTx+JMWSZpGtwy0SPTjCn9i1YE8Wmd97Os43Eg7SqV8et419To1SNGUFusZ2myK/LFJOsziOab8B20AfPfcZS8En8TafGTYWXbXHthN0TOziURSeI0Zb8TiuPT0wpIlEZiiWNWUEgPRPz6/lkrHwoz52VuoDOLUnFyRSzw+MmoiQoSAC3LCuemMkjXZxzLFuGjbZtNmVDd+o9hlf2c2obQTMqSrGb/h7vLz7drOSk79JF4JSIFeBu79+n98c2l1Msdj2Jaib60e37GM3lMYqH36SDwWCMCSFO4Fl9M4jaWCbw9Tpg7IByvUfJHfA0ml8FCXcEMbZjfBvqe94LwtFOWgUSEqCxLUR8e+TTV4ajVj1mjGj2zfZZ8JTXlUbT6EX1OIl1Wm0iWA5he3UMCAB0I/6zOkVpAoUuvJreNoB96yITuJVjIKLVkFib+uNXLsCii+b7Y0uskLSFgIiNqRDjj2qszNXGjaqKCPUBg5AQyRkEkdQB0zr+AZEkL2yEBuaof0OUfZ+oTdJIsiuN+wKKJX3BHfKqlqQGhsT6OCUXF94ciirWEB7Wa/1lX2Z9oaYgRxaaMO5IAEhZTX74yLWFdV4Q00Mq1YLC2B579vzySdJtMUOni3KaFheRXsMyVqjUja1U+olFQQx+Qk7lTc3+Qb798y3+0dVA8hbUzb2HNpX1vExvr4Vdk02pRnNgrG3Xvx6fnnEl+0TqvEMTgnht3lLenXjGjCSFdHpftHVRnxxqGBclST1F9lzh1MkjR7JVnYLuksURz3HNjD+6T6mUJIdKsTcsGlUHjjjnrjm0sOnVVdowwQ72idSW54sj0vGdVoV2Q/Z7xaKRpdXEiKo8jB926+lewq7xurGiUKY50WY87Vbhie456d+cjP2pp9VMPH07u0YsqlUK9LHT15zxjE6LJECsQYFVZDuU1yBx0+uXlHbZBOygT6RYohKpeVbBKkgE9uen9s4upWckUHrlI3YgkH3PU/HPOGsEsaFdRppNkqedtg4/wD0rq+uIf7LD+JJBqDNGa2qRyPZrxVGPobfgc53yrGfLEoOwBaN9epPY+uNgVGT8IjF2yt3917fQYiCafSsolCsFHC8Gz8fnzjYdQuqGzwEWhVD8K1z/e+nTEdjINdQQBMt7dxDAWCB05NdenHbOB5GS9RH5UNFmNHnnnpx+eBIZYfDjQRSMgNGNhRv06ev6Yto5xalGEhXlmBof7A7ZkkMXRPFSAERql0x5ccWaJ9qxMWogTWs0MZkIN7aY/Wj0/oMjhikDMrbAQQCDW7r0NjpnXknlNGKTw+7dRXrz2/LMogbLwNXqIRJ4TTFmpR4gWhfoP0xX3WJZGcxFTGDckduOvPBH+cdpElhQCSNW3E7QyUBxxRvjHIsksZRAUBe/K/WhwBdk4jlXQUj0MRk04ijRi3DtITVf5+PbGxKg05powwSy20gkj2wRr5YZ1pAnlYeYAhh9B09cNoo9VF40cu1v5UjtQw7deoHtkxgXZotErxLutaJbgMPf3+c5Bo9G+3UO8p3XsJbhvn29P74CaTWrCkc7gJxsHbr0I7/ANzjd02mKqipuP41Yglh6+3HTpgeYmN2P0/2chYKrfhJYEtwt+nv84T79M6p4qnYo2bhzXzWJj1beYiMAqOB1ZRfHxjwGJErxeKU/nugPnuRk3foRLCWSUy20YK8MvIHx3v4wYF3MKmdoRY4tSxr88ugkTUSqY4Am4biFcr0NWPb5x0uiimQSIws8lFnBv1rirHvhQGzKfwnmRUid2HCkGuvfnuP1yvSQvEh8R2nNkCKR7L33v8AfTGN91igkkkLDxH2qwA8oHQE/wCvzyODTyNIaZDEQDy20+/p9fnA+jYVStLEpRlQ2fwkbgfy/wCxixBsgnV4xucbkQDd+hH7GekMlDSssbtICf8AyUY/X/u8dpjqETdAaX8TWdx47HFWdhokgOqkHhzQmNGN/wD2sjpeaL6Rl04lmbaAtiTcLX5vJZJSsyW0kqCiNpBsE3yT2H6ZpJpY9TG48ZirAE7HrbzwCPX4640qYl0QSSyKkiJOx2C1rpfoP2MHxA0DKWlZJXHiCwOB/wAeD+mHqdAiK0kcskwThyDaj598Vp5NK17pSoD2UCngHv8A7wIL0fHIEaVtviKRQZZO3ocs00kMsRE2lLKKZS1sB7+2Z6waSeZ30yo0u4jmxuX2rqOO+PMy7fBULsDeYODz6X0sY11orVjZHmGoMsbr92NFTtvae/PX/vLoiNQsYlWNtoK1tqj8emTLO0fBRGAYDapPPHNcdssh1cc7jwY0LXt9KYdjfTA3Yrwmm1E2jV/Dj3y8IUMpXj6dMcutngZANO4BFnzFhfpeOl0s/jN480attpSoFj1vscztPNLCrKFdiBy1gs3PoemDo2M1odQv2gltGUdQSFYjp9DmXLp5vE8IVHuJJ5JJ9v8ArK4JdN4CmFvu7DmzXl+fb/ON02raTUSLqxAUAtAtqf2fn0xXTArXRLo5GQeHJtAU2b6/TK10O+XfHqBt/Ft2gFvnGpAuqjkniIk5NKV2lRWAImhYSeJZPl2snN++I1XZuVgMgEQfwnN+UEN05zryTJGquqCSiWY9AO2aTiKUGW1O4VytURmff3bfGrNKzcnkdPjKOl6KnYsoJggZS21r8QHoOfzz0xRNPsRWUElgp4odP2BjIyiRO9h1A8uxa5v+uTvI+pnBhBdxww7gfB/7xEqQ/YlhSBUQp03UbDfOPSQV93WNi70d/YD0JwIlimjCNuVo/wATAUpHvnFmD6g7up8gZRYFevOboL1HNPpmMpSVP4d8HoW+h/fzjmreFCqGdmVhwK/LPRsXbc0oYEEKTwAfp2xXAl3SRbSvQgWoHt9e+Dsw+aBApCRNuUeYnj88l8DZGSvmVRan0B5xmq1OoeMruCBCbY9T7Ejti1k8QNtWy3QV5pAfb1GGl4FWuzweRdKs6IQDxb0aBHBPerwjqwqLGB4h3WTQoGvnjCE+njcQNIXjNbkAJ83x+WP0I0kuoYAlZGY1vFX36ewzJXgOtYcUkcumQOvi7vNu38/l+7y3Saczacyl/Gry23Svj2zJ12yLW/w6ZNtWO5H+sr+z5gir93mvm2B4HvhusYsk6tFkOiQsVO3a4o9arM5dCND9qOkIEcNbqDE8+/tmjqJpIn8ONFKMDbE1WZY16SSbJHLKgpgAFI/vgbVULFSenvtPVTxqE2BlFNfb3GZ8e8zeEFFMbFMeOPX15y59OkjufvAdWUMoerr0+M74cBCiMsuoYhd3HHqffELKkjPmGoZHil5dRYVTR47c/vnFfeNQrqIkjAWjZP8AfplfhSHUNppJJCbI543cdP8ArpndTp0ECgWsQFbXkoA9OL+mMMn4TPql1ckSnTxq4P4go5A5yl5ZXKBdliwwZa3/ACBwM42jVURkBYUQ7Xde94EkawTCYyMp5A2kG74PHXNdgwadXD4LQNHvcilVG2ke4vMjUxpRKGQzKwuLjt3o9/jNOEhYyQBIWFbunXsfj2ybXaKOSaPdKiyE2vlPFfTDB6Hoxm1cMepZhG5rzRuyc/7F3xmh9nT7f/Uv2vIk8lvHDP0HXbRJH+M6/wBkvMrIC8s9bSgAB+T6ZlfdPtT7N/8AUuiOo06I8ymFyGBDD0vpu6cZ1wpppfRKfh9hpdTH9oaIJGrvMpJ3oo/TnIopX1BaJfOXFFxwyt73/rMFJ/tD7L+0TFEaZ3JRWBUd+a7ZfoddK0sqorsz3vocqepPHbISi1pRRN0wlnWNpwdnQEbSR0sD99M9FB4cJVYvN+K7H5nteJ02rlZNOUdRHe2peBfpfX65qzpBp0jL6kqx4NGwOfXEUbJybWECLNBIH1TAxMlBC4v569fbOzyRlixFSEC99kED61lU80EhELSxFiBXiHk/HbFSQMyMFKpHuqiwLKP75mtCn9ndMINSpMcdgHkMwPNdvXGadUCKFVTMg8wPJ49T8Z3wpHiAUoRdURX19znINE8JWVHVQbNDnf7nDQpKdWxVlRGTihS+/vznWCiPiUQygbbk6bf7Gjj9RpUdleQ09VSGga9P32xH3aKRhRFk0A9/lZxKpj2goY3TS+IokV1Fhw3Xn+uJkBZv4rSsrtbLYYgdaHoOmc0n3tAI2MMQJKgIAAevb65ZENu6OaILIE8wVaLelcn64a+jXQJ1UXhrDGitZJ8/Br19M67FKkEzgCgVKcX04684HhoFk3uUA5q+SOwrJpfHCosH8FOhIawR7jti2ZJDtUrwJugqSQWdgosfcH99cl1eqnSRXkiidjfmKndz161X+sdDOkfiKsaF36NfmHpxnnkj8aNFhbdILJdiQa7E/njWg6iVhDFHvWAq17i5B4Hr1N5o6dxGfDdA6k+XzHv6+2D9oasRxqBCVNX5QPb0xEU6MwpSrIbpX4rqRimbtDX1DSzyRoQwAHlayT2/d5VozE8SCUhbsUrWB7jjEyyRzoW046GnNcg9ue+ehikMquWuVfLywUEHm+ObzAeovcIIgI33qeSCdrfIyeEwvt8pjJ/41ZGTzS+DMQ8i0epY8fTLNBEvjMjkOKu7HHtYzXbpCNUhWrd7CacxyqtDY/4uvPOLVkdWVh4AK8yGrw9Zo1OqZ0YgJVLfXJ5NOHcpJCu11FP2+CM1tMZVQ0Q6eY1ptUFIfjaTRPt+6wd8mk1JZnsutbx5ga7f95O8SKqrQC9CVH69emWzbl0yh0G0D8BFHGsNExmEms2Ku4FQrBjRUUeRk6itcH8J2dBt3Hhb7HpzzlhjhZUa9rKfL4nP/wDEM88axJHuZweoJIYE9/0wMCdBtpmVd7xhX4FoT+I8dBXGdlmVdSE3gbBW9Tz9fbPafU6U/wDyWkpUBZVJ4J7ceuTTBNbFLpUdbc+dyCAMyVdG19jUheKZUtBYtPfn2wpDKRSgutjynqa/vgReLEIo5449qLYVvPtodQet4x9UzAiMRudvRbJBBqqvjF9w2nk0exS+lJYByAUN9+RWJ8DVMWWOUvGKBpaKi+Prky60zaplAaOQjkoRwe910yzRtqUbyaaQy8sSrjaaPf5xqDqGQQzQNsYF4/KFYub49BlReSNAyo3iV+HtQ/rhxbF1KfxJYyRzG1Edet989NAVcFp1NPxuXsfQg8ZaKpEW7ehM3IZQHBWt1dPpmfPo3EisOham8xG/6ZVqp4YVLSTJGyig9kHnEyfaEcSKs7xQO9bXLeRwfY+mCSTZo2uhLeBEgXzxGwGcD/8Aq/TG6V4Zy5V3XwzRR+f2MdOkepiLxFYz3cOATXzxkMun1sSySUFDCz/EUg9z16ZJxfg6prR+qNeHy26yVHFD3rAjkZkHh7gzcMa4v+2e0mnnlVHmSM3RG2T8HuMqjikjl3ABoXs2tGvc85lBmbSwml8QbAqBmTluenfES0xSBYAHPPPND2GPCpPLKwY+Ig2sYyCRzfbgZ5nDq4GxaIvc/XjBqYUKkhRdOC2paPYDvSPgsT/SsTFIUTdDFslAA3M1k36t69D0zzmWE2hF/hJcHn683hAK0Mkh2+blaJN/6wXg6QEky0JJpPMaG6iwfplSy6TW6cARlIn3Btxq+T9RiYIxKHV98ZqxYr5rBWIwxiTfbKwGxF8tV0N/n84E/s2M0EUxqpVEIXyi+o9DfUnD8SU3CQgYkcirXjrinlUySJFKGkBHkYg19PbOMpkU+IyFwLNdB7nH3wnQ1vGA8VZN4Qcgsab0rPeJBqd9oG3A2nFj69sXJ4xBaN97BdobgAj98/TFGNURo4GKvIQCAw2s23oAcdagUDGs0OljWCNFUSU6rwR7/wCcfIPE1CNGL1G08fy9rAOLVv4Ks0hETdYxwFPf4x8RiKmRXJauBVkf5yfbCA0e+3nEnm6bOE5/fXOwaXcyvNBHG9lbViQne/8Aed8VZg25HCpRoDpfoMZoze6TfJHCoIben4vqcogO6BXTCGLZJKh8M7go5rr3+uURyaZVOnWUGQEWqr09LySTwRqCnjOHbzqENEYQaDQxkupTdLZYgckntgUkgNWc2wLqmlnYR7eauh9cqaVG0VrIQAtggFiPpmTPp431bPEgljbh7XqcoECsY4Su/dySoo2OvTF5NYhnFOmziEiaFg9+u80T7jG63SQaqJQ0+2K+aa7PpV5RHo925ImYFTalkBF9bxX3WXTrGQVZRdqSKYk9sKVroHJXh37NOn02nc6cSNRr+J6/4zqyGPSsNQECs5J2p0OFptPHFvYRUHW2HUA+wxbvJ5nKBgWJ2MLoV6d+mZyaB2wOY4xGRG6mgGHAb3AyrTyRRhoxs2lPN/8AWunGZ85kkg8iB1ZqUHk+4rKoYZYw1EQqTXm60T+eJG07SHklWnotZ4J8zlQP+Hsew98tXVqYfHlXYZOQK5Hzk8CRoEWaYyyBjsZlCj/8tdTndUI9VHtlj27f5ZB17AZeNxXZKSi2POpXVApFqF3UQTHRK17Z19GbE4YmTaLY9Tmdp/snR6Mxzfd9jMSRS8385e2pngenjLJIaLg3t+cryT/0hWq/ycV4Z2J2FSeDuP7rAkjSNxIEsDncLwWaKVioUKxW7QEBh7jGhY2hpttDkBGvn2ybr0KwnBaFy8shYNwm1bA/LF6kJvWizbuhjP4fX4yj7wu8bo1ZR0Ab8JPqMCWeVCGSNUXb1UWT7DjJWvsotBlSUbVhj/hV7Xf774hIpEeJ5YCzkEdKrv8AXLtLql8AENfS/LtruaxKja7yb3YSHgluR6V6DC4rsKbWE8u+MNKkY8N+Gtvwn1r19seHGl08aODuctQCn04zr2ymMxqfdDyPrjpEWEostMtBFX09cEVjoDfjM4MJVU7z2BB69e2cXdK7NEotG6309ssn0qMG2qisQKPt3/LOaKF4x+JXUcWR5j9Mk07ofkqGwKkbeI6p41UzAfixM0xaQ0y0fw8USf6euKn1RYlYCdpahtG6/c+meCu1WxVEAJAW79/bC34BR9YbSeJBGHKsSaB746CNdLHEJgpAtjbXXPvio4mUgITsLcE0CfUjE6qUatlBitidu5jR+RXGGLrfQNXnhRJHG7MyOaPmuueO+dZPC01I5ZnI8yjk33xKQLDJvaVm3LW4/vj64+WQFFK9I+OD098ResH6DeJWG5SVo3we3ocpkYro/wCei4/D8ZmwSu0W7cygnknplKyfeNN4rcjxrB6iwK/LLfHLsWUWekCCRWC7aBvsaPtiXPgrYJ2g3uLDH+H4haV4jwOpINn4yWaCIFWcFt5vyf1wO1oy+jxnSVZkGxebPNde3GQuCmoVoo3Yc2a6DLwnhuAUTc38xUDp8YaSFVIKhhdggdv84j16OnXRnSNKumaNlKGxQQ2VvCgkiB2SKRtB8QqaskdTlLzRmUhgXN3RpaHeznP/AG/TzJ4gBG1rKk8H3PrgSt4M2q0Xpo0/iS6ZUMTEDbt4498p8OOYjbCVIAJrji8LSOY6i2+Q3tB9cesLhHZvwMePNlVHCTlpMm6OUokfJ4q+B+eUJJJEuxtm6u3fAjdkfa7LQAtu4GG3hpTLGzGune8CVegZmPqzHqPLAdr/AIeRR+mUrICu9I9lggsy0BXbPagimSF1jrk7BXHzkoin1ioN+1AfM5FivW8nx0rSa+ijwNNK5USKr7TwrXt9/jFzQPJpVh077hfmIH4vfGkqU8OEDgfiIouPXOTmRBGsJUWLbi69emZg04uk/hqy2zHjzdV984unVHMTyPuPJkU0V+uO8SKB5DFKSvXkcA+mEGjiBYDfvq1J6HBlgtk00Sm03N5PxNZJF4vYiRoxUNR788fGVSzRptBU7V/FQyffDMpeNSql+eODfrgYyboNhBIyo4CeWww6Entk5SaG6Yhd34SAf2Mf4UAJaNl3KCNt3jWcaWSONkLLJydxB5zUC/ohEskcZt1A22dvXk/rnodSuogL7QBdA9Dx3OVnw9RMGd42U2BGgqslMLRujLUkY4JI/KzmawdNPsOHyrfhn8Y3Xzu9sKYJvWBiysljhiD9MZHKzMxXYCP5AOB74es/jKdqnzclgeemZdC/+hTacPHG0ps7uD3r0zmoRYYU3Nto1wO575RGrJH4aEblUEMeg/Pk56ULMOHss1gAixjaC6ZEZmPiMCSpStzWOfph6eIIjFV/GtUDdg42VIwtbWNc8cX8YW6NUVYyUY0SpPJGKuxr+hcY8AbWSgG49sHUaqeGQ0kZWh1er/xidVLOxCpJHuMmwm6P0OTyeNEhRo1IBO/cOK73hsKV9lCPp23TqI2AA8kf9sOOWTULsRdr/iKPzmd48QX+CojB6UvLfQZyNpmnKyyFRf4qqh6Yy0PE2otLtkDggMB5kAAW8GfSLOpeUU0dgllrjEaUmNCp29aVb5PpeMj1DGe5FN8AqDeLaEd9kboER5QCFA2WboH+/wCmPXVCCPwY1Y7xQ4oAnvx/TG6pHi3ojjefwoTX9eMhi03jztH/AOIPzvPb63xjIZU1bO/dxEtSAyK/4iOoN5PC3maKJ2Vb/Fu5rvl88E0bDTyF5NgtSh2gLiikcau5Ydet7iL+cXoZM4k0cjPEAVdFAQkWGHzjlSJFeOMNE7MCGLWL9TmfNA5m3xoCgFtvG2z85WjJPErCRQIxyhPAP76YTNDJXZUIk84vYGrlTf63kjuX1DafrG1rK1ivj98ZdBODtTUw+Z7MXQADpdfoMzNZopZJlYKIUQUoUnzH3wmiTapo4dP4cTLbMASt2wH9sRJqZSwjZSx/5dBfXpljSbRG00f8Tkc+W+ev6YnVRspafebBHO0ceteuFfRVBww27OQG3dWZjY+MoaOGxKZD4hYVGQAQP7jI4dTKwJcCuh9a7fBytZljdrUvyCt0SvveBp2K7LndSkdvt2r0Xtfvhs+5NlkbeAdv4r/tk+ondUIhYud1PfIrBj1GxAGWnUWLFAYqZOiieGOMPENUAQLor5h75m6nT/ZcrL47bnUWJWFOf36V3zROtgCmWZdyhOvT8si1emikiDhJDb2KPf39sopU7RkvsXpv/ZtHoZIdHFUg5LFad6/+1Dj2xMA08sgMbLsU3wRd175WEhjhBkIVbIAYgDjC0kcE8sC9nk890tD1rGcnN2b/ACjR08UUMMMmpjXk3yBx9ccrB3Yqu4t1avywftCXxfD8GqW1Vao9PfAhleOHfGTIxHVhQyj43SIa1bDCwafiSCix/GBz9cCUxyRpDp9II4g1lywWyP1yhjJNphPGrbiKIXqDmTLE+9ppDvI58x5BrrWK7iGOhrro4XPiH8LFhwRXt8YM+oVmVllBbkg/ykfHrk6gWxeNS78EdAB6DDSJNLF5WCjfZLDjE5OitJHDGNVEodQyC1KNzf09s42m0sbbfuYCgUHVjYPubzqztH4hZl1Ct5UKiih+mTyMzkqN3Q+VroH3Pa8NvoyTEmJH/wD8QSBQed9X8/TF65kRGePRiwQRue6+gypnk8APHJExICgLyF/TkZnarbH/AA5p1bcatRz1v6YybsZHptbH4myWKNS8Y3Fr8v0vpleh1EJhE0sSPz4Yb0+b6YMsEUumXyJExAVGJ3br7Xi4dHMqAIRI0nBJJ5OM2jLUaGp0ESMHGrR1boGBJGDDpFAcSAx0nl3EkH4wIRIF/iC2U/i7KOhHzj45BIpUtuV+h4A+nOI3Yuk3hyl/BkjKOvR1b+2cXQRrD45cO3deTZHt2zQOtkhkFsrpxweo/wA53VHVSwq6GIqO6KCWPpWMqoFsyHDmEFnMMd34YF8fnnI4IUt0kKs11zyp9D81mi2liXfqdQphIHS+b+LyJRFLHG0fh6ZUJJLHczfXM0FSskTTQajUSaiecKkbbrAsk1jPvq6ceFEfDEi2zWASPb2x0e6fdJNKxAbgFO3sBwMYfspAnm/AOln+5/vhDa9M6TTxST+IkqsGPPm5qumSyxzLqd+2SOMHcocdfj/Ob8GmKyKsrIzHhSibiv8AnF6j7O+zVcLepkcNYo1z6E4yl9g5Iy4NNM6eJ4ZDKOWZfy69c0I4y2oaOWTzIAeWIHHqMqjeLTeGyaKSQ8ht8xJH6YcOoFvOYU3dAFUWfqcRu3rDbJTHJLG0UKMx28k2eT3vpnV0ixxxRTSxtsFi7Y36gKOuIl1c8szrLM8qg0qkmk9v94GnMgU7xEjP05boPfDi6No/URadNM0S6iSaRzRAHp89Mh1Wqj8BSdKGlUVZlJb/APdFZcpidRPcUJugydenrkbaVdWJZEhDcbnlHJPoBfGNF6bog++SGRQFVC3bYvP6HKRLIxqPUyJ4aggRiiT+XTO6aHwv4kp8oFBf5iT6DvxjYYllheKCSVJQQqj2vkk9vbKORqFR6jXPMYpZZ9vRRuYbverxMwllB3yzJRK7fFKkH165x9S76cW0okU0PEAXm69/3zkat4s8jsDC6x1uaW1F+3rjRTuwNgSbpdsbSzd1Yb+APb1v9MKDSRGcINPEytZHivwDWFFHFLIvhNckQsjsB6YuaRfF8OkQK90Of19TlLfSBXo+CN5JxECI2Tqgdab0o9BjG1STSnT6mOIyMKOzgDtRP+6yGMw+JciqHc+Xc1D44+nGMnMTwSNtAtvKK8w46fmMDjugsyYWV0UbCN9gqtkgD0Ppl8cLtpzDC8ZcNbkA7ms9CDxQHOQaeeJqeVQJL2gKdwr6/wBLrCEvianxVkI7WvWq7Djp/fOySbZzppI0YNWVjfZK8LVRDXQ5rH6T7UplVNU8t8kt5zf7/LM4QtIUBZiE4dloirHW8q0ngiVozGzbSVDPxR67QBwcjKKoZO2Mn1Uc7s40hMpYkOrXQI9PU8+mLMQZVIjK2u805JHYE9s0F+z5IYvEZZ4h1JjUlh88e4yrQsqxM06IiuhDyudoIPyf0xOWYO0RF1aLes1uACrOSb9OK/d56VZRAsgkdmvkoSAPVSev5ZRqfseMzLJHMnhgbthfczcdh1yKf7tFJslmJYtxa1QA9ffES+g2ApaSvE8EMbBR0JJHqCBycqNCKKWKJAY+4YHvYvm6x8DPFpwYdgF2DVAD05P6nBjnryQxQvLdAPGLB61+zgbsZKh9TSIWRB5qG5F3Fh34zyaaB2Ji00jSADcysQEb5vgelY6X7U1GnkVUAZAtsiJzfvXT64Gp+0H1Eex/Klg3zV/mKxejaejAjU6eRmjVRQ3UGYX68e3XsMCJlWYQLql3gfhVw/H+vzyWLXmKAokG8XSs6gIw9ARz09sbJHPEA0ccjLdv5OHF9Lvr9O2BquwlpGi0UjPHLK5O2xYPSv3ZxUusUQGfbD5nsM1uRf5DJIdQyrvmT/8AE4Ow8WQdpN8npjH1UeplSWNjusgCQEMp69MVrbCh0MuoEzshhVK2lwg8w9Df9cu+8PqIlcyIN67XXcAF+MQIxHpGZlLNJzXhk7W79TkQlknmbbe0ddvB49Pc+n9cR2wqjRYiBdiqzPZtlALewof1wH8aRgUk8KzwjgNa0b4J/wCsZBJ9107LC5abpfG44txLLEsggXaOSebc/wBjibZvDkTT6qcK+nKCNaLFuvp8DDj08kRp4pFKki1rn36f5wtJG8TyySpsZgAhj5J+vpjpNZHRiMjSCrZAa+tdsz1mRBKQWO8+U8+JHxz0APH6/TD0gaJv4khZGj5VORY7j0985ptVHqFkE8VqW8nNUfc506e5QknIFgOeTY68/XC/oKYPiiSR2hZiyrdMKNdh85XpZ3hjDGREsjzEHr7DripIItOvLkgCmZlNkDpRvrnNPEznfEu1hTLLQ9OnJs8eubKA2aCSNLBu0uoRAhuU7L3DuPnIZEk1Myp0XlmBA8vYV05+c6wk8FoA/lJIJKkA129Ov04wdBPCgkZPK48rK3f65kAeWlaaWdZNygEWRW3txXcfs4cwmBkLMkdHbYH4QPW+f+8t0zpqoN2nQRgEqq7QOCOOR9czNQX8bw2ifeBYs2SfXm8DYFpqQukkakqjtQ2yUa+pGKi1H8VpBpWLm7dXskdPwmvT5ydVY6fczNGF4BHVvUf7OVQl4QjR3KG5AYcizzz6YEwNJCdPri/iyopAQchlO011r49MLUSCSE3IviOfIdu3tfpyMfDLDO7Q6ldhDcbV4H09Tj1h08hhBlXYBScUSfjBYPSKL7Kc6czS7WBUHYGJJP8AnKZNPpXjVDCRyACFI3E4yZI5T4Sv4bt1JHAPa6zkcLLMoM/lQ9rq+lYDWUQyR/Z0kbJG72CaB6fOE+rSaR2bzuCQCrG/jJpY9W0ku5RIoA44sj49cfpwS7w+cr1sDnt/rG2hKXYyGOdmKK5F+Zb4JHehi9QqWXLPvVDasBZI9MXp31MMkglk5Dfw3AAsdrHS8Z9qHVSRwtG3hAsN7hbO3/GKlEO2SSa6VUSBRU7gErtFEHufTOjTF38SPfCeA43gg9unPH65QdMVC6sBZVJ8zonKj4x8cgcGRk/hMLDJjpAv6IhDDAzRlw7MxCrfQ/8AHGSI4ha4/DKG6UfhHwMrVI2iVoJ1pm4c8Mfj3yXUxM6NpXB68+emA7AnvgnGkFO2J0swBd12BE5KVVH1PphxfeZZWjmYLztDN5gPgjFS6aWIboiUUKaur/7wo5JtylpDaDz1XXJq+h2VHSMY3RVdWSl5bgj574jT/Z6tOd29qBYGqC+305xiaiSKICSUgMfxc3+X7/TGyaxl8Ow3K87v5r741IT8iPTaeKTVbDKbLWLIBNYWr0YSctJG4ogJtPpfOcm1EGrdd0civ+ENHW5ff4yxpY/FihmHi7fKoZhZ9zziht2Zk6QSxJJK0qc2K5B9j+uVRafTSQHUQDYeEFmjfSqxmuiSR0aNQsYYqU58p9fyyXdNCjQjb4fXefNXOL+hrtYFPLLCHJlIcchWFE89P95Od80akx0VXa1gcj2Pr7ZSY11Ejo53eGRtJfiyPT064Un2ePGkmdxKFWvC9aHXAlo3JCIYTESZd0wVSPMQOD1qsp0s0bMscaPZYLukSvr/ALxMOml1A8MRS7jW0A7b/wDsD6dOmaK/Z6wKSZQrUNoskrxz/U5VRYk2iWbSmFTKG8R2UkJ3B57+mTRCSZgksZZtvnV+i+9+2W6oI+nEgncEGmYi2r0Pv/nFIU1sLSSHw4aoq3Xjjn5wPGBPDzz6bwVhR9rd+rfp6537Q0mjMcSLo2eaMeRjwenW/wDOKingV7TUiPatrvPIHt6YJXdLKsc7hnF7t17u9UemG6CkZyxSDVlZIkjkALKqsWPPpjZpbQMw/CwAIBFt2PHTPDVoZB94k8pvaxJVvcH2zQn+z0ihaWPWNEW5LBxb9hYPr0zJN6O3XZly64mHfwsi8txz72e+cnaOf7PnOui3aZl8zFuhHRh6MOt5H9pLJAzbm6gAeYH069cn1E0mt0/hwTtuSt3FKT7C64xop4xqTRzUy6fS6eObUqdVEKRNch5vsJF7HtfQ4yPV6Rg0aWkznb15UntfcZjln0UzyCJdRvUrKkg8sgPUf7yyFP8A2rWIznbp5CoCnzNESOFf/wD1YenOdMoKStdip8XRvaSMaktGZF2RAKAW/Ael33xkXhKSkeqNx017eF9j7/GS/Z00PjtCskRH8jOOOvQ8X373jm0c8SGZIhvW2pR+Ik1X5dM5OhmUGEukiX/FfzCMCgATxX98ITytq1STThUby7kJBWvUX64GnaIyMgVYn2AK79W9fXHQ6LU6fU3qk+8eIoIKNdG+5HQZqYloe+pM82yWNW8Nq3ByCBd3XTsPzykSR6mTdC5Vq4O7g+2C/wBkxVvaZhuJJDgNZPY5JNpfu4EXikKfwhT+ZHocLUl2J+L6KtUzJGd7tG/UADrzz3+MnOoRQGVS5BFhuosevzj5oDqVjDmxHwrixddvXJfuqx6qNEQK5cAr3qiL+Biuwxr0kEB1cnhxTOJN25e/IPQ5bq5mihBiEiSg34qmiTXeuRgarRS6VPHklphwWo8e/GRyTSDVW5J3ACz/ADj/ADh6HS5F+mg1E8fm1FAsCw7363jPB1enf+F4Um+qIbv347GsVp98SLLHIjbiQhY8jjoQfyx0ExUSLqF2E9WB239P84gHYhtAEf8ADbPRcKKpfc9umUrSvQBUljdEGh/cYcSwOVeKXeZDuF9SP2Ma0Cl6dlj3L0urF9x+eFJiuQuSOKSNXfaxHA56jMpdO0DyNEzq1ErR3KfjNEaLUsf/AI7RRwgHlf5iPQY4QwhGEbMsgALcVR+PTGdgjSMrSyTeEFje2XlbFED0xz/aLIyxuUEl8DYTx165S8Z0y7EUqJjakLdMefp8dMhkj1AIMsxEZoLuXzA9SMn6UyQXjfxWtt0jivP0B9eK4ynRzyq0ZtR1DhOf1xLuBI7bKK159l2D1q+hxkJYT+LGnh8ebwo6Zh8dKwrANWiucnUTeEUSUKVN7gG/3ipXRD4IkRpL8gHJ6d+vvh6tn3Vy4c2QUBv0HqMOPWgS+HHp/Drndxx+uNSfYi6M77lqdXbaklYa2qh8tt810wk+zljUBpCQn4ebo+nXNaFDqJWkdzITVL02/GI+0BJEjCOGR6IFbvzPrmerAqe0QTaUS8eCEBPBIrd6/XO7VXTmNtOQinlSwsHLQxdABe0jnuQfn0yJhWqZEtVJ5pgC/pf5Yl0MnfYSxovhDf4ke0uVItlvp+Q75QrqitG1bWAC+pvscj0scsas0kaq5bcHc2Cf7ZZFOu5nEAYs+3bv6H1F9sKk7NJAKyhEAJJIAvqLJ68/7xUZOkIdgJSSaj/DyaskY9xCyBljBV2si9y5Jq1kVtu1TSbqN0Oe+ZJ3Zu8KI5NEsbRKzAMRYS7sjge+BHEeJ2lKbh+Iin46e49cig1AMqq+jdLIAdb4s9Pp1zcbTrJFIZtQobbRkA83we15TWI6iJSZISlo/iJfWzdnnnt2xc08jy2zkkeVtjbior98YaCFIlIkdBHGP4jrW79/njJBDFGZpVHBsNusMDi06Aqsl1SbomWSpOlO5qufocTqonOoijKsVCgivw/GNgi1DxLKCkgLFiVIsV0s9KrHv4M3Mm2l8piS2PvZ6DNxy2NdAxQRIWgAKlhY2naDjYlIg/8Alp4aubPiHaD2/fGP0sm1wABHuYkBTuv64n7Qjnd0KbGZrJLchR/jHX4q0Tu3TCGmQSxvGm8URtD7VA/vhPqGgiZVi2xtYqtoH1yDTaqeMPKxjtWq7sH2r/eaTSy6iDTlPBok2H5Vvb2zKSaC412Zy6vTLFLS7R1dtl7u2DqCWYFvBWM1VGz9csn0hUJKkSxMOACbU9qPfAZTpIpN7lStFRQcD29cm012OmvCPWRyNLHM5LiO9pHNWeo7YhBp9SWSSWt68qG5PsctZopYY0LVJV7BwOT6ds6NFAICBGqSBLsCtw9Sf3eL6MnXYEesdR5XpgACrmx9MEaoPp2dgIT2sd+2Jhk1M2kCwybyziy6UK56ehx8USeOsK3G1E2BSk+nPU5nFthpIe+gCQLqXRDIO+yib9ff3zoZb5G9mc3SVwOmS6fRRrqJZHipms7k3MXN88fAyuNFiYsofbKbClCNn7vvlBGMj8Fyo8M/hrrW36YXgxpUkh3FWoAEcnJ20cixDbTF2u3NbRlC6VABudF3fy7t1nscyTEdAaZrG2OKlTzO1UHJ/fphOUWAOzHdxwvG7HOdLaXvN9SsfBwIzAZzErSvXYOBWDjvYLEqBtZ2jdWY11rrz0rFSy2/hGN9wrw2bke59PTLpNRCjtHPCG8tDknn6YiIOJC8McSqu3jw7/XGa/YV9gI0ZW1mDEW3lHPH06/5x8qSTyFBC21SACwJsgfpjmaR4nEUpibttWgP7YoaV54ROJ5FUgX5+uK45gLFNC0ThiuxmBCsRtAPqQT85TFAiQM7FEZhdxm7PfnItTEsTrKJfEbdzuI4HxjZ5k08fldmBSgqjg/7xE6GatIsTdVRSduwJKis7GYpyTNPNuQc+XZfz2OZZ1zsFZWJXqojUUw9/wDGUN9oeGsY8EkM4FccjoTXtlI/JWIV/Gy5GSPUDwoe3B9clnn1TSEQokW42Sw2jjrR65ePNo2ki2ruFLx0PpkE6PqIGaNVLrxtcXX+sedpISFXpOs0sE21pBtcWTdm8c4jlQOjkFh5uxB98gEMiStEVE0n4gL2gc9v8ZV4A04vexZlG7eor/vJJtrToaQYj8aQ2oUDo5PAHY+mWmdpE7hVIVlC2R7g5Bpwk8m6NgwfmTbfH5/2zRgijGn8RkZlPdzRI9xlfjTfRGdI48GnkNMG3A2oJv2xEICnw4B4So1kkcHnmsrjkf8AkgAF8H0xUq6p5zUqC+4W/LfT5ysnloRMCYszj7uVt1sMwsH6+mKgilgcyTL5y5LEHykY8xyuQoKoiWDQ6Z10kSVA771cX5eK+mTlb0Ka6EzRxzGgux3FAqeL9sklfVCZYVgYCBhvZyLqv5f15y14AW4kYFR5fNd+uDOrGMrM5ZWHALG8m0vR4yoSql4h4agG/IQaBWuMFydSqq5NVzuBBPwcY0EbAIkwLqN6oG64ccUyqHKkKbJ56nFpjWuz0cREkZjO4EAMTw3vXrhz6T73Okq7wLJJrgdazwEpaQ3tASwSLFnjEN96jYj702wnypHXPx9fX1x01Wi73YWmVnNOChF3QA/ZxczyGVk04V6F/GMl8a7cuSPw87ST26cfTOfd90BcB1kat71yR3ybS8GX2yaOOWQkMN27ih2OVqx0sREkm1mHAvkYKo/hKgIdUFE9Cc48UKpvCsTsNLXT1GKsC3yYcURdlZ5eSepNX/jC1cIGxN6be53dMm08imXeY23niiTS/GMkkSfSOQiAgEurcgjvhtUK07HQaeJISBIpK2QRz9T65Pq4xuUBeGPmZTy1YUTEQ+IopapNvQfI7UcGfVNFGoMaFyw7ct8YbVBSdgsoDFQwDLytLZH54Ymlk0hR5DzJQ4sihznNPUrbl3CiTtII/r1+cOdki0+53VP4hCbhzf0zR9C/olEsr8uXC1Q54rtxnoNWGQnVBQo6c8KPU+mch0zasCZplo+aNVWuPrlQ0sf3anFv0O4Ch+eCmM2hBlLKJI5T4Lda4A9SSe2OiAMLMhWSyd1dB84t/vGlRjEq7W7HORxl4TcpXbzQpQe9YAMTX3dCzgbgbDC2se+dm1Sp/FjaV5ehH4R8++MEXhk7pd6lb5HTgD64sQtEghfz212BR/PBbSGxjoPtLxISHj2bj5e5AvrlKufCVVO8A/JGR6WAQlkkmYgXQq+L9cbJIkES+FHJ5TzRPPXH5OtZOSV4PnLPvUgFjR4PPti2lVI9y9R79PpgiSN7Cxmidw3NzdZwAPL4R2oG5KqDXTkk+mZ6BKuxUBEpmpio6liK2+/54Tax1SONUJhQWSatj6kYvUxgxfdoJPDQcqBTGT3wGkkiJkMXAULVAYqbWFKT0qeYKCrRWTxXfr04xbMiaWk2kDigTxzxnNHOI5fGh2vYIpqBBPc4Q02+TeZFDDyFa3D6YHoOhUkMg27grW1hQ1fXORSSte3sOb5+ecl1UUsksibOhH8Qg+Y36ZZotTFBC0TKGPO747DEVWM7qx0EC/cWBG4t23cYMm9ImVYyeb/EPnKjTqsYBUBb45H0yZ9KNlt5dpqhx3yjWYInfZIplV4/FQpIo3bRRJymaKTVPOxRxwNnlIr645HKQjbDuk/5Xd/4GDPqZZpoTsKnd5vjCkkg27wklQxKG8EkLX4KHNcY2LXldrTClPZh049MZK0xcDwlkG6xtqgPfJ3jkI2+CrKnmDf8fbrirHg3fZZFBEJPGBHnonjkiumUPHGqqVHLL9fzzL3SFqVgSDWwHoPjLRqZPurhl4XgWODx2xlJbgkouxRlikH8M7VB8zDkE3nCKSQqgAksCupGeMYk0gMdEihsNisOFJKaOhwasE8DFpsOE6yOyOFGzbVFR19s7HIFhA8plbzPS2ThtqEXiMbqursgkZO+ss2+l2SEVvZaGD/6NR4LvkMaojEG9zp5l/tkf2gs04pZBCYzu4Tyn985TCI1NuRwb3dR9MZp/u0kbK5c2Ks9TmtjXRm6vwDBDLGbYHmhRN+nocSdRCuqBa1Jrh2sD1J9c0l08XRWZiOHB/f7GcbSwwTIIzuJSwAtKo/dY0ZINnYTCtuxKmRaBIvk+mE/go28IXkQUzJ2GL1EUkTeLG7FR2aiA39cSk/glFeKQysgJJ9+5PSu+LQKNA+JqYyQ9SIPLfU17dsnWWQ7vEQcmqIr64EWuXxCFT8RrkkbR6ZW5Ej+H4YmjYdDwLvCmLVC/DkjkLBQy7QBtP8AXBaR4ph/AtSfxkDbfvzzgqqxMxibybgeGqq63fbO/fDK1soXY34QnBH+sNDUL1HiKWmlVvDKkdar/GL0+tgjgDTI3g1bDeGDHt74pvtWaXVrpkSNtx2kN2F8E52b7RRZpI0gjkHRpW6uw68emMouhqfVBSBte7appiVvcDsIC8cD3wZJVeZI3dtzmiVuq9sVGxlVUkkC7jW0twD7fGVa+KLTSRzFtu8bY6WyT3OLtm6wl18QLokFFUUEO7fhv9njPJEwJikQ+YeUqQL98ml2I1ln2E2zsauu4/pjIWWSRgsNRqBUjGgSf841DdD4oJDAVWIk3whNebree1Ojk8OSWNiHkIpdvb5wtGghkdJOQzc2b+uVKscwefY7Kl3u4NDpQH/eL0xWyJIdXGVZYzIXIADE8cVYypIVkimlMQSVQRW+6+PfDhLRu585a7BDGlGNlkRZ0PhSSIebU1uN4RW3YhNFNJEROCK/D4Z5Y9zR7ZIEOnaNllkUntww+Bz098q1OuLllEhipeBZLHnpg7ZXCSSfwxdBe5GDEFX6T/aTtrxFGZI66qwUWhHQ1nYYjAi6ZfD/AIlGc+g7f0yyMLA/i7V8P8PQbmPb3zyyyTgxR7ZHsWwqx9B/fHUsAJhGojbxPEJBIqSTuK4rNGDVtG4gMbNYsvsJJPt6DJpklRYo/Dk1FtZoVyPcf3zsUtaonncAPxCuMMZUI1yLxLPuaMmSRQtqaqvb3zPnZ1dI2hHm43gUMeqCMytJfI8u7p1yHUmUrsQB2vcorafUjGcrFigJfs/a7P4asykHcHCj55zj7oQVl6MPMQ3fGvM4aNxBS/zFxyCPWu2SaxpJkJ8MyKxBbi9vv64MKK/TqBEm37kvknqar070Mcmp0sm5YdUFJHOyImiep7ZEIdsfjDz7AQdoqx24yfTupm8OjGkgIHbm+cCQ9WX6qOKDa0UjPsqypC7vpkbO+skkLaZhsHmDMAVvv04/LKS6SwbgPFZH/mHIGdnhmlG8QyeddwjLCh6E36YUwLAZgpigiMBe/wANNRv39R15w1gSIWytF4g5KPfH1HTEamPwljSVtoX8T/8AMnsPbPaTWbH2zKxqygIvjsL9MIC6aoYC6LKwNXbAVXfJt8US1tQr1O4sOPT1+uUR+BICzfwWbjqec5tSXTCOSOjdWjXYOGxRXhJqGBH2amyvxs7EfQXhj7Q0ulbdp4BuPlvceT045zk4WSJoYHQCqs9x6X65neOumQp4bTCgHZUqh85k28DxTLv/AHGCaJ2litiCGsGx+eZkuunk1IiSOJFFc+HztPe64xzRSaqnU1H0RZOfkV64yLZFIUCFwgtnUeVD+/fGTSNVCxNrZA0UeoJQH8LcWPnFanRajakckiiMtewNdj57/XNDVweGUeHbKguzf9RgQaiCSCRZGCwhbviz7X/jBykb9oR4ssLo0pIWBAPwgnn/ALyeLUM32pZkJB5IbzXz1z2rWOVo0QncEpz1IrtyOuDBDI89ectXDMBx7D05xsQyRZrpzpwsjJ4wbjkUzeh9qxGllkWN1JtZDyBwRWUSK+o00UTqxZBZZgeTkXgr4bEkst8gDb9cTKMikyaefxFVFQGyVBIJb+2TTiGWKpJHQR8Aqd3PpX+cKSMRIiDqxu19fz/rhrDJIHUx2/Vt3VR2HvhWOxhOyOXRbJHSTa7MQQyl76A9efjA+z212pYojsEU7jFI1qntXS+mP2GbewhqGuqkeYjuR6ZVDp1MRfxF2pzcY2EGuO+PyyhGhWpV0IidfFZTwVI233GRyWuoZmLrE42MjVtP19MKWItK0srbvDArbdE+/tilR549pMiiyStkj4s9rzKloRZ060wBQKo5VXB/0MQI9PEu9yIx1G1vxj6ZXueKKRF08XisOFeMsP8A9Ku2FNMsemk04hiYRqGDFCAWPHX49MomKzKh1ksW5QrWVKopFir68YtdTFLqIoxYbqyp3P8AnL4I0OiZUZrrjaRYN9DxmdqYzG7JAACxJcLxRvLx4tsR2hkqpKxVGYR3ua+dx7V6fTK441VkVD4pskccUR75OYJpGDM5PhgAoK6/GOg0utksx6d/DulpOvv6/wDeLLV2FZoC/wDpqSJBLNrDGqj8IF0B39uPm8Qmm+yQFdtRIxBIqipYXyenz85QdVp9Zovu6yTuqrwAnKgdyasj6c5EdT4EraaR2aBaJdDRvb0F9PjOlOT7OfEUfe9BDQhj1GprhztKq/W/6jFx6/Vae44NDFEsnmG/qBXQEnphtq4XhEB04cs9orNyBXQ11H98WojRyZJjG4bdwvU107ihgz6DpRHrPtCTmTXMm5Cdigm/jt09M9FOYXGohEiE3R4Wz0PqPbELKiIFcRMassGNgdunT8s4rFIZHV6NEKOGPvZ7YjQyZRqJ/EjLAuNUoLX0u/6cYzTaIfaERYSI7VShyAfkEf3GRw7lZKbebtiBYv4/3lWk+0dXDLuLblYnzBQQOT1wVXRlbNLS6aKDnUNVCqMYF+2Ra3WnVAfgiVBQTki79OLzmq1gcNJPIofdzytUf1HyMJvGVVWYmJwvlfhiLBrnv9bxEq0oJ0olkJCRFa4sig15pPEyQHcBKjrYoHk8jpwQee2QxyTx+Iram1Y7toA8x97/AM1jJJHKxkgqqpTHYL59/jFkk3hk8C3Qx8QP5qvZMLA+OcerpCwP3hmYivIKCnv3ySFkkVCwVmN7VG2yPXG+XwSvCseCtWCBiyQUx+u1zHckcsssB4tW/F6WDV4Mb6NyBp/FjagdzDi/p0Hz6ZBqYPEji/nkscpwij0I9xlLaLVKfDMABMm9drXu45oelYWo0C3YLTSaaVmV5KY0NlKDz69hjdOms8P7wxk/FQpfwnp1zmm28KzC6vcnYDsa4zk6u0RiV5IY9/JLGwfbmufXFzoY0EnkBRZNPINptiBy1j64ccmnhmUxjWHcfICNov0PU5EDMsNWwbolA0SByQf8Z3xWk04h2FXNlXDAG/f3vvkmglMzNHKsc0pWx0I4HteDvhXxUaRhISA0h5DDtWdjgZTC2o8TY4I3k7vp75TNozLqGAEkZKVW6j07+mKg2LhilCtIzqqbqYlSecvaNZdKrHWI55/CaAb9MiQ6iH7LaGSBmJY1L2o+/rnYX2QKTNHIu6zG6j2PfrhwS2DJAV1cCSuPE3EUW6mvW+c5C8ySqJHkjVBuAjjsAH1Y98frXjnnj+5xoCeJGMQUHp7VkiyQRzbFZo1jXmQ8b/msY12aSiORUkaR5WPBcJR+Kuq98h1ch00bja25xSoACT9a65RCXiijlbUfgNjaRbYUmjZJFmceMOtXzGOx+cT0NoVpZm8MAbkVCOH6V7ntjzr44tzyqZVJ5bbfPqPnpffjJho5NVJKYWCrGSpduASO3r+ueQxlI4ZJGV7to1Fk30+Pp6YtGemhPqE2KWc7HG4MPT49MRFrSpkhcSMt2No7f3xUsbp4SKjIFakZx0Hx65qRHTyTBZZLdfMOav8APCoiN0TLI93ysW8AFjbE+pPzj52KvccZtSNwK2V+KGdETvNMxYNFu5Cc9O/HP0yhkljMUhINEcqTZ49MDizKRHDGVVo3Hhu3IWQDp/XDiXwN0YjWKEWWCX5iT1vvlM8DOzSqwDAjcepFe2DPqItPs2x76IKRVVj1wdGTsNotPM7M4edQbtY7qv6ZZAUJ8eb+FAPwjhifau2Z2k+1NQZHJfahB8iiufS8nmk1Gl07RIWEpbdxyUB/3WVwnTNDVTwmUp4T2CNjFOmIl1SCMvTs18hDx+WRzyrqBDLEjl+h8xtuOp+mFUcOrJlom7sVUYI/6xJRXYytD49U5XdC5UN1I6qPXrlum1cH2hGsWpR4xfD3QLdOD++uZC6GCfT6iYIS8b70F0feseHV5I41MjShd77ugHxhTa6M9L9QIdO1Lfk5DbQx+ffOan8XmRHWQA7v5r9SMSJhJrC7laC81wCe+Bq2kIHhyhQTxH0BH79sVmVkw1DpqWQhmQDzAHkr64SzabVM5aQIAO8ZoEdb7VlQ+6pqHLgIzGmu/wBMg1CPpdE0ixi3c2auh64aGTtjhLE8ispbZwoBWlr2ygtp9i70Nq10vX0zK8UT6eLcrIxblwQSar1zQh3pqlO6PwzyHP8AjFoLY/TRq0TTQxjkElr/AHecXxZJYnI3k1xQJHHHXJZvHlV40hSIWx8SNiL+Rj/s5JNJH453uHO2yP7dsFIWX2U6h00xPhs/it1QLya6jIWVdQshEryOnNXQ29xlmteSCVpWFWBu2i67ZHpftYq+ogEQWkP4wDQ9cyijRb8JIW/CFifee7eUe3Jy55fvQZ5WNGh4oFBf374pVm1UQ2rEtWQtD8+vGM+zEjXTNpppQ7Bm8gFCz/o4asZyyzkrtPCPFBkVOEKGiP6Vj4Zn+zgqqpcPywA5Uep/fGJ1EaRiNJG3bWu06V7nGLroG1aEM0a16+U+/PbAkBu0NOs0yTOoQuHXke+CNmo04Mo2KCRuU8j59chfURSa6ceCChYWyN0+Kx7xSSaGWJdPsNm2Yiz8H1+mGgdEOp0yOPGeRhturBph0/plA0kUcviaabc6KHUbSbOJ1PiHSRRM7ptrdG63tA6kHv8A7xMkDaWZPDlI3Ld+vGN+hlf2XqE1X4kjXUK1kuv4gb7/AL7ZFr45v4k2oYqzqNiuo/D6Hnr6fGWaSaScyIZIHVPOr9LJAsEfGFP4mq0bSg71V66Ch6m/T/GDpmTZmJJppfB02oUrI6miV4r0xAn+zfubDzRy2VkQLfm54r4rpmn92idDIrJI0YApht2j39czxAuj1DyFYSDzZbqO46dcKodOySQxS6LTuuslZi26RGj/AAkGhz6Vk6yQ6ud5PKYvw6i13K8Z4Lccgjg5ZOGk1MlNHtZSWIAsCqN/TMOJBpNrrIfP5UCGib4vnoMvDdDJ4XfZP2j4reC8i6gozRhwgIO3o3ryKz6BYtWhZJPFiDqCTZKk/Hrnwmn0E32b/wCo009biQStL+IUT0Pf/Gfb6WL7Qm00f8Lwg5pbPm9zX764P/0wUZXHpifHJyVMCGXUmS/BMrRvukQRkbvS8230rtMkrwSVMAFomhf14/pjtJo0+zoy00tlmtiN3Jrjp/1hyfbKQxxnTaOV2Bpg1c9+PfI0n2LJ2/xQ9Hk0y+G6u6hfKfxE+3rnodHFqHJkT/xG9snQfTEJrL1xDrJGy9RRUV1sHHABGkmDSbmsJuJ5NZdJUQdpk+p1MEVIulkcIwClDSufXAl1+mKxwrFJFqZG8rJR2+xPvg/xI4S4mlmYAAq9EDnt74U6BpIniUxy7OnqT6HriyiOmek1umhURajRAm/OnQ/vpmZLrPFkdIdKgF+UAc189s0H0SanVxSzSMZAKLMevaunPUc5Bq9MkMvhfxI5if5G4PxkWikWhkX2gunEjyyFgzeRXH42oevYZ2VN1OqSqCCBwCB++M5qNJGIYYpIiRv8ttffnj5x2p0UqRRiPU0B1UmwD6X1xGMnpOkiwTqqMyObBKi6Pr75XFrX8XbKr0o4Dr5qPYHI4NEDKs0j+I3IvsPnLo1M8qpCpbw+N/T57YaM3ouP7Ulh1PglHMdeUlas89/385S2pVdNw5k6eGdtbufTFTRnU701LS74+Ajdvpk+9tqhwSFPFHgj1zPBcZYmoSRhEzsXJDX+E56JF2MZ3MiBz+JbJ9rzPgaSN1OxSqLbP/8AbGFW8KcrPL4gtlRR0F5lQWn4aheNASFAHVRuo3/rEadmWbwUBFE0GNkD4xY1JaCGQlJVjO2Q0PTrWJeYSTFgBTdOwGFV6LpqaqVWZY3Y0vmoULI9/wC2HL4Ue5DGzWL8g6fTtkcRdZnDbWVaBF9Pj3xY1zw/aMyzRukcgBjdhfPWhhtCU/CiDUsZXeFWVbJrLJmb7orsm1Wvy0LJ9czYo5Ak0gdFL8tZ9T1x0000f2cEQB3UHzUSB7+4x4pMV3ZK0UsMhMg2iwwJksn++LjUyappP4a0tOji6X298YPHlePxIRtK8qooH88fCEGte05dPNYsr75NwRbk6BYQqrsU8QqLJHFn3wII5hphtcdeWqifb6YwI+lLGVnUBvIqrYfjv6YWnl050ziSFyjdwLH+sKgljF5PwRzGfBjYvKxpUdNoH+8CWIwg+HLLG6/jbgCu5ywOHZYobkB62OnvghI5neGZXMoQoXlI8pI44HNZnFeBjP7M/Svp5iPE1Eo7hmWlb15/tmjqtb4epWONZPC8MqKXkEkVQ75ng6DR6eRHVmYcbCNqnn9cYNVqEljeLwkh2m1RaKnvffNiC1ejXZWmbxmkQp5gjAWPUgf1vOtq9LJGDGm8/wAu9R+dXV5IdNeoWVCps0WCk8elE++MXTnwpViHDHlrG0nnBgGEm2YNI0s+0eUDYUT3BA/qMu0aI/iKqhRu8m1rJ/vkPMGiRZWC0eeNwOFFABK0iv4aULJJ5J9MDaD2WHdBNvewFalKkVXQ3+ee1HjLq1CRkKycN/x9/Q4zSiYwhJF3Mh8pVb/PACakTqviBFHAfp37YrE9M2cJBqACksccvLutAbr6/wDeV6ZUkka5JEIawGReRfSu+FrbTTbHqRhJXQevXORTw6rUDbGodGs702k1X+Mal6FybQeqmiClI2m2JxvjA6nA1H2jHJpU0+qVzHIouUVYruRkWqnlfUSeOr72Qhf+JHbpwc8y6ZdEyzGRmofz8Dnthv6NX2W+BAJ1PiOkRAXngN7g44lNKoR4TM3dYloge+TRahE08MMLs4Uiw8ZFD57ZRMY5tRLIJm2MK3RGiDXT5x1GMlnYjlIFTEdFJthXwzxSObAwYZRK2x5DybViar4w4Y/u+lmBVgpXdufkt74k6VNRFFWoVH6gepxXHikwp2xmu04CJIzszoQw2vQxfiCSRREm2+lvYJ6XlRgbT6BhNJ4lnrd4Es+i2IyRFaIsla2/6xuKa0XkxcjTRAackIUT+Rbbtz8ZyEyDTAnqik0Dh6mZ13EqSiqSout3tkmjkb7ozPLIhPcAdCelfpiUq0dNsr02pmjtXZnBaowVoV2sn98Ykj/5TO2pUMgLHaRQOcVmkZkMh1CsV2xFR5a6m+94csSyzhAY0auLWugwZdGKImR47eQla3W9Ldck+vGTSfaERYxRSV3VtvBr09cm1aSOqkRqzQpQ2Hleeenri4SJVYrHIx6s7f2GGhkqVmhP9olCg04dww3E9L49MXPqdkAU6d1DfhjXjue3pgbfvE8Lpww/BUe388PWaOUzKwHiIwqRg/Knn+mLV9ATROk5aUlI9+8lkXgWfe8fBHJKJZSlon8rjr+We0+jgl1gZtpj0i7vISGrmhfHX0yvR6rbLMrhQzWypySAcpH4otb2aU/omDQrpRIsatDu4eMcYyGTwomZaRnJK2gF305wvA0zaYv4oRieBu7XzXbHavSowgCyxhQQw5Hp39sP/Kuhf+ljdNroYgUlLyyj+U+Y4Gn1IfVmaPfs7gihXfri10gjn8STUo4qr6gexyjTNp4ppA++QEE0EPT5OOk2lZOVXgMsOkDNqhp2DOx85HF+uN1MRlhWpFKEAM+6r9KxUGoHiNDEZ1Zr/huose/phqIwqRFXO42vmsA83jSjGsNGTXZnnULpmWDTKZ3U2aPNjis19LIJNP8AeDIpQi9p6jIoTp9NJOW4s2o29c7FM+s0+5IhFz+EDkj4wfFGKemm3IsXUxR8sZAr0LZaHzix9oRUqlZFI5O0XuHxidWY5ohHALYEFty8Lximd1mPh1vH4Ruq/rlHKsFUbKp/tNAoeGGUrVbQvIyeIR/+WKE7iQSwHP1wtI/ixzEyqWYGh2zulcppubHJAvp+uS+RXo8cwNCrzszSkMRQYdvn3wtR/FRNrKw6XdE4qRTJMrQgsgtTXFfIwo9OrFkQswPBPUDIq3iHzsmTSxqGnaRiy9h6envj01iGPa8cixn+c9MdqU8OJqjuuQTXtyPQZM0hm0nhBy0y0VRbPX+vGWXx0rEcrKZdYINJuLl97UoA5rFL9oxBWYsVKG9rruJ9xkziO9OjXEu0s2w9z/1irCTy7VKAUQebA9cnKVaFJWVN9qSylHigDgjlhHwMPUa+GPTiWeQK78KiEXk2j1kUUJR1KEg1Y68dj6ZNrUPhxvLG67DwsS3x64JddjJW6odBqG1moaOMMGU8WNp+fT6Y54i0tjxqA84N8D6HIIXaTUhtP4jrGhvdzz7e9Zz7Olm0+qMgYDeSHDWxHPA/riR4L/RR34XmKWCNgP5QSSRVj998j0pR3uQEx96vqctGs1JYgzB1CncADR+OcTHq1j0jKYmZ2PlsdvTDUF0xeUvS1l0scaodwVxSqAfMPnJ/vemg1BgSNdxIJRhRA9ecik+0JBp4YhHOVNgn69LyqLSxy6hWj/GR5twu8PFNYKm12cn1qMuyCTxZQTdIAP2M6UvR6aSRg5lcsWHQntWKj0o0DOku1hZoKhujjdaDHotMCp2txt9OTzWZJq7C2vCkiGxHGrPtN7UHQ/1wxqEkXap4U8mumI0yNA3ghi9/hY+Ue+CpaCOaI6c+Jflofi+ubBRM07gNMF3KTXm6jBDxSxFZHJULfmU17fXBYoNJ4bEu+6zd8D2z2vJh00SRIpApthNtfTjnJUiibZTFKs0yuEZAV4scenH77Zxiry+HsUiO+e3/AHks8g1SokYJcm/K1VQz02oWOcLJG4Eq7QNpO0+xXMbSiPVLHIylA1AAeU3x9cGTXfetKyiIxqoO4gcfleIgjl8R0dmEY67hzV9PUHORaTfpnZJeRZYgcV7i/wDvGVhwsiYiisytG3O0KLArrmdPM8erVQNkV2+4cuff2ylzK0EKRxyeGOWdiASB/b2xuo02mM0BeSmYVdckenxhUcwHKnoldYYYtzKXUdSo4XKRPp3iUzeWNrAar5J46+uZVGGbZDqJNOEc+VhYI9gP748Qy/dxNtdzu7mq96yeIalZZcGmdpZkH8QbSB/N6Z4mDURM0LMCtblYc/8AWTVI0iMzMoqv4mdkldojJAq2ABv3Vf8An0w+A97AOpR49TseVmU0joOFsf2z3h6GGLxRbeUEWeS3rxnYp0Gh8NFAfhRGPX6ZPPDII4gzmEC2N+vFcZqCpMs++xKNxDCUCi1FiT7DPHUyyruJZEPGxz1PoeOMUkSidHgnoKDyijzHnk4zTufvUkUjhujbGHAP0xWjdMr0qto9oaQhe99vf4wpXikcgklgONy1X1zLlYw6kh5NyOe92p61lEUcjkF7ck0oQ0a+Ppg5OqGcfWPV2ZDthMIXkEty3fnEN9o+I0iKptAWIZdwr+2DJMI5P4g3G9vnbpfti4IpIDIqsI4+pKjr14vGjoGkiiBtqSStEqqQORxfwDjI5RNDLC1xlGDXfQemStpPB0O+JmBL2SBz+ec00i/eQYGd2KEbmFDd179caMdoRu9KoZ4FbwFMjgCwK3A+/r+eVGfbpXm30qAmjyfyyPTakCR5ZIgGYUxAqvywVLBZlRTtlbp3/wC8KpCu2yqOaCQKoBQtyCV8pOTauF3AhliMjAg7v5cj1Em8KrCVmRqA/lGOXVyrrSSQSqDcpvnM3F9jJSWoZ90pSjEleojHJJ65FqFbR6uXxpEESAsQVsrY7e+a7bZ5A0kpVuwUdP1ybUacarUs4jULGb5/EPSx2wqCrA83emXFM8yfeIndI1XlmXofQf7yl9SXVAUZWDWGPT61iY5G+6TAxk29gUbXrzWCI1i2yqrna1szMT9MSlZRyPHVSiQo1gFrtRdmsu51WiLI+562kDqMnkYx6tZGjZVl/wCQPftlUfjxaeeQQeFGwvp1GZIWT+iDUPJoIgHmamAbyryvzjYdfNKVj8KV96Xd9QP1zxhZZYZ38Lw+N3lNtjdYFgmSZGVVIslrJPsBjUkblaoXG+nOqbTySXJEu/lQOnP7GSbijGUys7WWNjy4xNWrTvKwCuR+E8bTXT1zPaebURTmOYtFGabaNoa+1++ZaOmwpJ9QZHdog7y9VQdF/wB47bC8qMXRiwFLVAegxUEinSFXgPiAmyvXnsMWsOojjLoqsYCGUqe3v/rNjY1ujVm0sAdJJR5g1BUoAf4y1J9LPEsRiEtX+IWT7g9s+ffXmZoKDsxJDuwrce/XL442DMY5GuiD3Hbrg67Ekm/RsugiIDLK5hUUQQCb+uIjMLaN4li1CHcDvK1dcUBkx1uthgZOQpbafL+H0zss+rd1CjepIvd0XjrjJG/KtZoyDQRRj71C8jqtgoKJz2jnh1UMvg+JEFpqBoj0FHJpPtBhqF8SNmYDgj9Mv0Woi1Kslm1PHloX/esVrLFdrsQ2tTYC9MtbnJIBod8ZJr9NIVZUcb04N8E5L9o6KN9KXiYUXtrNX9MXGkBkiXTqRGvQ2bw5QXT1DpPCdgq6beNoZjd1jZ9VFJEu2JlZepRLrHbUiWaOaB7ZLj2i+cCWEJoZZ9RG4kkoCMVdduBh42heeiG10ckSO6kQoKX+GQWNf1yvQaiKZ2jTStZ5LqKvITM0UKxUFQfyuOQcs3NHs3qvJFgVWBVYW3RbqJwpEKOoj6sVbkn0ydtNIJt5b/ycC16fGQrNH4wjSIh2Y36n3ypNWx/h88mlJ9ut5m7YOLQxBE82w7tx4XuoI/vk2r2/ehDGxaQeljn/ADlzQxlFlCqztzV8fTMyZ4tPq90iG0Fnnkj1xo/TBf0cmFyuyLJIFADb26epwoZY9PGZBp22snlPYY1mj1AmeCTazrSjqSfjIPElbSmmZpF8oq+RhcVYU20UPNE2nqZRsYEWBuJHuMhWOGXVIkEYDDjoK+evH1xj6gRyCR1kIC/hA4HGcaUIRqYY3LEUGPb4xawZWmSF1i1MoBnRwapFJU/v2z0uqZZkE48WVr3FmvaDwRQ6WOvfDMciBi2pkWbsfxKL7/JwZNC8mmR1ouTtLLHVk/PbHVBs0kkSTQsRC5rhQObzJ1Xh+PFIkMzGy7C+QR7Zaw/+LHCZdm0kGhQ9+hxUlwPDJHBUQvaS/B9664I/Zujgmjk3ghmYdVpi1cf3woNS6yqkzsVW+ACBzhRDUO26lcdCFQ03vkuraeV3jWKVa4IUHjnGSs1lEoCbZVYoFPlQ9D8V3OJlDGRlWKUF+dm8ih3OG+kJhibZtSGt1Af942FY5yG8VdqG9wG3NVdAUiPSxxtHJQdmBpQ5ph7jGzyTxfZ33dA17gS34SPkXnUgQo+o00gVlY11IPuMVrKm8HxnbeaJZm4PrxhpWZM8knhhgsx33Rtdqj88SUSVGP3o0DxHGvU+o9sDWxQzzJplLuXJ3AsTu57V0ybT6UJqnVBQRqZFFg12x1xqw6M1Uun0uoiVZJ5VaPlFBLUT3yiOXSSg6hInbZZpnIv0rEyFy6JrEULyBS+ZgP8Aie/GVaTw2glEdlWFgSihX175pVRk2M0mrhMQGqV2iRSLiNu3Pf2w9RJpo4FaOFwG5smlr+5xStC8ZCPG5jFMv4cLVN4k6HfsU1SBf7YlAvRKaoSSVGDuRbqwpr/GF95jdnReN48zIwGNkhhj1XiWEVk5JFbv8/TFwTKIikkaMpO4b16+nQe2akNZ4TqYP+NcbUJvjteHLuTbE0RcubcAEGxnYZU1ELOX2GKyFogCv+V8f3yePWkTDZKsoU7iWXyg/vth4ipsKHVhnKQgySMaJB4B9ecaWV0CKCsgFPvfix3Fev0xTypq5X1E8niS35I0XarE+2KJ8SBoFWSNlq1NAsbusKivAthyxQwESKx3J5dp6E1f7vFFdLqIiHSVCAfKpFe1f4w5g2nhSdoh5jTcqT7UfnGaZ49x8QGY0aUdD3PA79hhSM2T6OCPUp4elLvX4mKfh/fzhS6D7N02oRtVMEvkAhaNcHjAm+2gsbSQBhv4CMdjV0qr9+uYcuuHib5I2ndRXnbcF6+3JzohDbJttn0q67SaZfDTTySUha2AAbEn7bZ4ZEj0YUXtIJ/D8VWZEMBdlMliQReIZGYAInWq6E4b6/UJIwhKKCpZnRACRXAP76ZnHcGSJjM8OoWXwdh27gHQFWHqa6/1yyORDHIsqQr4jAALZs+p9szuG33OxKndtdCCOvNf2wVkTYw8UMV586Ekn0OdDRA0pBp4F5h8Jo/ICkoO6/QUM9HpdOzBjHIVCgKGkqjz0IsfrwTitFq4wkKSLvK87ixsH2/PK2oTeFAUCMAWUMQQfXoQMm20MhD6FTKLjkjLUFZCG3Ai7sUf+sdHDFp18IBJk3C2AIAP6/4yjSyzpEo8dJCDtq/N7VVe/XO6hZZnB38KL867fagQee+Tcn0xzkGm0PiUFo2GACEDk/lxXx2zup0sSoTptRCwJLeZzYbnrx0zn3WdysiICI+Aoegp55Nm++Ij066bUbdjBj/+ECWok9TQ6YthVi9TpSZA0qMFU8Up2/PQV0/XKdJqqZoprKr5l62PUi+1X04xkWr1LhkSS0XzOrKNqgdvXPa6fUzDyCx6lbB+l8cZuT6Ya9An08ckR+7aoyqOXIApeeAR2+vGcTQRsBH4zoo5JUkKfr3+M9EdRppRK4UD8Ozdy1jpx2zTki0s8QQRLCUG64nFr9D/AFHrgcq6MiFNA6RNPEokiXkLe6h2I96xyaN6AYqySAhhwACPXnj9cQIZoZRqDLvK/jdCePcjniucphbTGJpp0kYleSDQb5/z1xWET9zI8pcRBlug1AnsKu8IOUj3Ehq4W2BDD159PT3zwg3rvIdBuoNKQCfr+nvlLfZ+p8BWWBZHFAFHBv5HfEb0bKJNJC8qyAy7aIoAih3FHvjTCwBJCsJCTa2LPbjpiy4DkOJYmjqmAHNfP76Y6SSPUN4hEkSstNtsr16H/eBtmSKZdQWH3XYG8JQbZiKPoR0Iz0YAn8TbDtU3uLWov8jfz1xETyrp5V5YAH+Je1Bfqe5+B8ZOyGObksUB3eZupr+bpZ/6rM9AakWvTSzA1KdzEBwvK/HteDN91nj2yztE9kqxQ8/J6fT2yeNpJTsRYgt8rust+f8A2MJYYtfp2MW5HI2sGJNV/KB25s4qpdhHmJo4A3igxfyyqxJBvvxVZGut8DUyKybllYtd8n4NWOl85owyT6OWMOsbRuNpXyqLrge/xWTOAYjKumSM3bVwQPb1xTL9nX10ZCy7DG3G4DkFfX498qi1Wj+8LGsaRvJ1bkbj6G+DmS08M+ldYomKoxJjMdANdijnoiGUJJICgAIjaQAgep45quv6ZSKoWSN9tM01Jp5fAJ6KaIJ9B6YjxNVHuZ4iFPO0VYPv0sY/7MiTSQSStJIPE4UA3X79cTrtVKgYqqpHttt/T26c9ck+6QqWiPDi8QxO5d927huDzWMchIzF40oYEm1JIHahk5EOoWOSJAFUUwav+6/zjo3kWy0TeOCAWEnDKPX0rNQ7OffNSaWPxZYwdru1bvr6/OXFDIKjBaONB+MVXOIeaXciqtu5qnbkisNVkVmjhVFCEFyhJH7rMKP0rSrN4ZDOrXfG4D6DLNoWQGMACqa2PI9evORQiY6tZIFIjPVweVv1H09OMr1EERkEqzMZQp6g0On+MdYicuwiZIoTFJFwW6Dzc+uZkzmRxDIh5FXyLI5+mURRWrMZ5nNUSGNke3546MIIQHkazxvY0T7n/rFq3gVhLpYeJIwqnc12OTfp7ZY0SzpIxkIA7A84tn+z1dVC+YoAQoon39MasMJJCrQC+VfE4ajfHpjcfszYqGKOaExlfACHhR/MKwI9KDqpBJbgrtCFfb2ymNYZNW8cG5VAujHwPn/OUyxxTQGpNkgHTb/bNxbFszI9NDp2Tw4S1qSEJsj3o/vjFuxSdwybRw5Zep9q9ctGlCyeJ48bcXVEN7Cz1xA0UnjSEoW3Hd+MG7HT6YkkOmEtzyqUpQa8lg7j64rV6fUIGCjxHL0No5H9v8DKJxP4kCmkRehKg50Rs0ZV33AXzfT9++CjWNcBCiO0chBG5RXB9SMmkTWLvjeVAnaxVA9uO3zjIn08m+ONSky028gc1+v/AHhO5R7UGw20hgf0wO/AdGedOJYEEB8J7ZSWPH5YzTLLHqFM0XkkW1cc7/njLNR9nwRQ+KQ7ULABvafXERzICoDiXjhjwQOtfsYWvsPK+h8WmYanxJDamyNvT6j1ymPURsfBaRRYoBuB/wB+2MgcyRERgxKDXII3fnkfg6cK/i0S5tGU+YfXBxoTvsn18A1c7OsrLsHIW6B+MzoZJUmeJoIlkPmMi+f4v0+uazSwrHtY0XWrocfTpkCgKqsiM1Hb04Oa2UisGRAPAyFbNfyqCK9x2xmj8GJpdsqF1cIUHVQfXFacyTyM6uyFVpmI5I9ffKdLGYY2Vl3OR/5VC37X7/pmSDII6cLOziSo+9LVe3xgqzvv8SMpRFkr+I9KOWw+ECyynlrBs0O3XEyljARYJLmmDEhR6knp9M1CJkuo0yJJGiXGicqKqz3+c9qHk1YdYl8VB/yBJBHfO6kMgWkWSx5ZSb2+tHJk1kpCrExtTW4tV8YLHSbJzqNQi191LlwVYqBZ4PHc4bSyuiO8E6gLQJj6Dmh841ppg9tQHDFgeSR2OKlnhczFowt8MqNyor/vNaY4nVMizeEu5XdAfMm362emW6OSXTxboo97sPIg5W/i6+uTRaHSAK6FnUowFvuHr0/plg+1ZINKYwAB/Odlsfax6YyoV30gI210skyJp3VkFEhRTe1/vpjdNJpZZfCmlVGHColvRrpY4zGk1mofTmpCm4UqM3mSr59x/nGaeUO6sU8R14CKoBb3s4aDxK5dZ9mw6xlj086Ney32qOeOnfMH7T08eg1tR6UFkO4Ix/CAenX65WviRzBZo1eJpLYb7NDv7EYySDXa5g0Hhrsatt/+Qdb/ANY8XTCsMDXzB9To/thFSkmWOWJSfJ2H585tD7Rhn0izfe5FmUlXLA0LB4H1zJ+1NK8n2ZqRDEizqQ/ksVRs2DnPs37R0DqX2CTfDumiAKhGsWRzzf0zocVOCa8E/wAyo2tB9saoDwwyNHe0b1sEAdc+r02rg/8AbotRqSIpOy7z17DnPmdINPED4sbrvAaN0PW+4N8H881IotJqovBeWVaWxKJmJDA9z3yDdAmkzVcRahxLIQAR/P0zkjQadN20FBZFMSR249MyIvvelYprtQk0KEqviCmHfm+B9MpeZjIoAC70JsAcD24/tgc3YvA09MieGTuSQHzcH+ud1EMWpKsHV2Req9QDgxs0uhWYnYBxwoBPrYGIBgUlPHpTf/kpSDwa9sZTJ8bZyeDUwEmOTcFphZ3cd/fpnNO4nGyRBA7k+6k8YwFB5Ek8XZwb6H0Hv84EqadNUGLTLu60QVB6fOSfZSydtI2knkYEu3/En93gMGXTB2br2PFc/wDeNfXQEyNM8jgMRtZdtfGCdJDqgrQsqxoCW8Q2fYUMXivBk36TPNExWOGJlDX254xmo1bRwjbCzSEgDj9T7Z2L7M1DafxlcUOQnB469u2e1HgeAZXR3ofiUWR7YrTQ1oNnlnMaB9oUgngmz6A4yaPwY4y+wybr45APqP3WJ0cy6qBVLskfY0N3r09Mf4LGIsh3gk8txgadA6YkQR7fMGqTnaD0yebVyaaZkYiWIAlVI5v3OVoNQkTl3NbPIVYGyfnmsjgEsuqIfxGZCCRXUc+v16YUMmH9nyv9paIl02tfBHevWspXSSvTTTNdeUKP3WMR106yFYqPHA5+hxya6ENCs0e7xRWzqevt2xlTJu+0BDENRB4c0JLKeGHQ/wCfnDGi8DTsZGDlOEBBH6ZasyNQjjIBpfSsnMTytbTs5QkEVzhapfZO22BI0UoYxgRysOGe/KaxSyOI2RS115RRFkfOVlEnKtLp1kY9SvX0598klKKzRQCqNBNpIOZr6HjXQqSVpJ0jBYXyYye3fnKQNJNCviSPIedvh9QR2475yLQIsniu4UkAfxG6etd8cNPBGQqsb/EBe0e/74wRTXZnJdIilWd0G5mauKZq29uffD05hQGHUMJJCfwryRXvjZVl3CFqVOykeUj6f3xOkUI6wsqB7/Dt3cetjDVMN2jkmsMTOscmwkjtbfH7rEJMfHbhmABDFb5+byqcIk8iLJKrsKFchfrnlMKO6FQZZKNlqZh6Ykk/sKquhEh02qCr4W9SeQBd/Gc02jiG4xlwz+tggfPc5fGdNAESGFYWILLYFLjYodTI0cqziupUEUPbHXx4K50iUaB1j2rIiSEbvMvU+tXnfuzrJ/DYgkdSKAHf4yt2MPmZdsbWS5PmT6YvxCU8bxf4bcciyffDUUJykzmzTMxDSO6jkoeVB64qZtOgU6ZRYv8AGTzhfd9xEiSbbNmjeJ2xRqs0odeCCCOST8YrbCkcVJ01R8OQxhhZTsfbJH1TrKjxpNIDYZARXX1zRJiQqQoCxiyzSXR/xi1gZN00zKrgU2wXx7evz1xHYykvSJ5BYdIXCn+ZV5PPcd+OcYI9RGu6EJ5jY3yggjuB3yuGXTs6LGWdQByxNnB+0NeukYMgD308o69LzKvQ27pIXHETqF3vIu5b68fHbOajRNtbctKCpWwDxdUO+dj1UkyErDuVAd25+R7+mURzSPpkMhs/ygnr6/GFUB2QTsb3lgA9UXNWPpjhEYZNsDFCef4Q/F0s4Ux3p+BSOCVDfiHriIdOYgsscp2uSNnHPqfX0xX2N4b0KJqIQGCncOvXvmfrTFG4SR1bbJwR1+CMNUCoD4hCjmunBGeiUI5abzRbuLToa75dz5KqIpU7OFUjQlb3EGyO1dfjJW1DNqk3bpgygrQuvpmgY/s/WL5JOPw+TjBk0A08gaKMGh+G6+vvmfxvtdGUl6SalfHDMu6NkNqdthvb/eBGkpkXTpHKFAHnCcGuxvGLFqHm8R3eh2uwwx6Ss8diUAjlvMAR6YqSYzdLCSZjBOQTctbgjE369O2BDJGSniM5l3HkD9DmkqJMpVtSGoVfXt64lhHvUnYGq1Nc9PbFcadoKllAyxq22RN8lhgGBFj65Dp0nEfhS7tqEWFNEX6Edc0VMScLHtJNOWJIb498H7R0enm0rwmSQLKAriMAE9OMPvZk10xkWoAV0a+DX/5sPwzLAEklFAWtrtJrM9YJBq2ZJCpC22wHpxxXTKPDh1DwtLBITICvnu4+n9ax4p0BpLoXLKzSssPH8wCirNd/XtnILaWGR7LnmyNtcdvbjvjJfsphQimcKoreeGUenvkzyTK7wRvtawWYkjcD6YjjJO5DqmqRdHr4J9PLKpSkFEsRY9ePTA3uwLxvGI3H4FXaaqhiVeCHT/d2ISVrYMFtavnmv0x52FBEYo5EVlZ65LfTtjv9i0l0KleLT8lmD7lChT+K+n19sv8AGZgtrbLRvtfxkk4BkeRSiIa2qykhSPWv65OJp1mjjX+Gpos5aw3+cCa6M1ZsTiTZGbaybYqeAD24wngOxV3miCLA696wU3SEIn4R+Km5xscXiI6yAbf+I4I+udHGznujNlgVdztbANSgknr1rD0uoRJCiKi9yep/PC2I6SxBrset8d8GGFYYmMW2ZgeGrbX65zxTUrRZtVpcYGmBJ78g+uSavTmWRRp5GiMZq1I5/PKYdQ7R7CxDMOARnGUuVDBtqmwTxX0zokotYSi2mSuXSpXfZ5gJCeB7fnjJGR9yvGQvcOMY7J95BZmCha2kWGH9sRqT/GBRt52ggXSt6ZOXTKLWCiQqWIHhqDVV3P8AXHQOIwVjDlSeS3A+mJeTzAIqhgaAs8n65QWlWJQxvrYI74kHTNIadMrDfK/8Q8WOh+nfOiFIEQKoJJrdt5574MLjgMbV+DZs4xnMUm48joBV1nVFpxJNNMkn/wDNUZXbFZG/pkjSq0cjyOpBbZS8UDjZotQ7sa4/Eu09cl+6SykiRO1j0OcM7vo6IpV2HDNHpo44Y6mUHqTR64c0i6iHxIRukJIO1qKjJ4dDHLtDCQSCwxWqGEzRQLGiKWFFWo9b98Xm2tGpXgbN93TYkyyeGNrKoJIPzntIqamPa0ZVm4Ymm8PPJNDJCsaoFLDld1gHt75WYtkSrAVRlHIU8H6Y0auwN1gqc7QDG4bb5b4woZGlg8qblPO6+/TjFLDLEp8UKQQTQN/TG+Eyx7qQKSBYBsE+vpm1sDojeeGKZfIbS7Xqxv2ylNQqAeCuzeeR6nJNRGRGfCjJCGi90SO9d8KOFJSsg1DKSOB7Hti20NSrS15VeVkCHb6pjp9L51Ct56ABPW/XJlSYwkKiB0ahV0fnHLPHNqJHBAF7Tx1I98eLTTsn10CXiiWjViy9dfm8X4TSSl017UV4BHUHpycokMRSpCjgr+Ejp9clOo2SbX8IBuQaPTpmb4mSs8NPGrKqp4gB8pLXXyPzx9xtqUQRKGA6FeDk5AKsI5iGWwaHfGpGAjAuSu0A7hVe+ImNWHniZjJtKrzdFKr3Hvk8kVKpEnCc7e+HCzTeJ4SSkX5Q3Fn2xrxMxHKrGOJCByT6DM1YegdNC2odZnAMY/D3HTDnBeKtp8NOVriz6k+mKkJDIY1ZIkUjZydx9fnPFyVFofM38xvC5JKgU7sJ55HjjjUbFIrcB059fXJz4kjF3O4A9WFELjnkj2xx2ehLBeR9f8YR3hwhDFT6rYxXb7CsJI0AbxAbFnZtHXBi1Omke/EawdpFkX/nnHT6dwHam59a4Hbpk6znSoNyqd/FgUfr75PplO0WF4y+8kg9gDWBJ4nhDxEsbvKLqxgPsRRJKWIP/j22APn9989LGqQr4cgCMCTxwpPbGdiBrpgIVKxkFDaiv0JyeV5JpCrbEMfVbHf19sKVy2kZC9FwBYNX8YEbFi1x7W28WKBHrWZtBin2xhLMNsc0YdOL6Ar6+5yXUzy7VKgGUmgvND6Z6Vhv7Hjym629OT65M2qKFgXaR6B3qOKzXZRIfGHdNjqWVDZY1fuQPTEavUSp5I/FAfptHPXrY7YUmoedBPHp/DWr32SDjdLIdQgYyEsnLgAHd9PTMHpWNlikh0ynYDYtjV0emHoJZ4Ii0jsyFuRt6Cu+UsYmgDSCQAOGNPVn0xLs88tx1/DAC+aq/wB4euiV32OMClDsuyOLHPzh6dFWWGXftawCpAs3357++EzlW3MxLBejV074J1O2lMbEEgKaH7GNGSTF1oSYEGrlbaeWqmFWL9cN3TxuUba3QA8kjqfjGTGJ5NzUwla6UWf3xhJJE8zDzWO18DGa0F4ZsMSPKzTK7HdtUtIVI9j645wi6cMiFf5eU3HLZxA22Rk3BBatV0cEiGZC7biLtRurkfGK0huVk0W2NuQFugz309OcGOeXTsxDIxDEgKxquxx7QLLKJG2gmhR6VipodNGG3LtP8rKtUL/pi20G0xsmrjG9poVMhG4BOh+cU2kSSNZIJEuQAlGvn2rtkoj02rnEKzsXK+YEGx7/AOsoaNNPKmnjeMJHzWw2T6k41+s1ViBl0zwKvLM5PDgXQ/pi4jLLGzB3BBN2aPS+mVHUR+MrSMXN3Q5r3z33vS6kmRNQnBvaBX5nBS8Nb9RB9myz6uST7w5bpsJFGx/bFajxlMzh2Mg8qjbe78/3xj5oaljoNueitdCB2vB1EiFgrxA+bcVqyOeKxbY9aRwHRvJ/GLbyLd6Cg+v5Z6RNNqNOxS4Yww2IoBJ56k++Uvp4o2dZINzyrbL+HYOwJwZpIotO+nGiIQAcoQNp/wA5rY2eEcofRuzIhkQHyqGNYcTO8Tsq+E+0GmHXKdKqRiQ6rTOhQ7l2tusHucOICRi8Mj7G5rgV7X6H2zIPIiATYCsJaQGmV05P+cbLqFhZo1johbZNp87Ht8DGnXrCjwh0W6CIBe0nqfjELN40e3xV8QPZYJww6cYf2b+kMmvdAfEZUtaNp+HGmTyK8tgoAU2dB8jDl0z7gNu33U3x8/vrnYNMIpBJxuPG7iq/xjWqGGaLTy6nVDVagoUHqDTA5YrNHqlCqFjXhQE6c+vrijLOdOuoVOBYKmrPv7YJHjMpafwTINyuCQL6YjdiMtlSRZH8QlRdihdD+2RmKWSzGqMA1KR642TVmB9sku6ktgF/F259MCFGbcFLNsb+TkEZgLEaum1Mmjg3yJAkjkKCbs/T0xE4E0niqUllc+btXv74vxZNQpLBXC8AhuVOEJBtZSArHlmuifbHc7VEuNOyRdCEktJA8l+YK5uz3wZpZ43oTBU4G2uR7++U6SVY3YRAszHzFhzfznJ0R0eR627vSr97xbHvdEDS+LIdzFG9VWrv3xwiDbYQNrAmieRndPE6o0pDJJu470McrTbCCoG3ksL/AHWMkZyGXHtEUm9iDXH9vbJTokfWiSU3Q/Ay3Xznm1EkyFY2LAdX/wCOVSRDZsjXznnce+UTJvCPUR6Ul1smR+T24/riuJmKr5SqeZtxG4fOMm1YllMaxKZFpfM17vXFxMxnCgGNWHKowoAewxWym0TvppdX4bqwBA9cWiyabUATT/wRYZJDyTfA9LvLtWEQUjuzkjoeT/vIFf73qTFIu1IrLhwCS3rftgTCmVc6t73KIhz5BR/Lpkv2nNJ99WOCR/CI5vgXXQ5ZJIIgWUL4fTngg9OnfI5naKdSVV4/w2w28Hqa75osy7HaCIz6Zi4EYQFgidyD0vrnI9SYNykBTYrc1/PXvhacSRKqbgRKePKbwwdLKzB5TIFPnEYohvc98KemfenfHcwiN5pQLsOxFD/eSB3YODK0rLxtBux2J5/TNAzhUYKAyKbO/wA3HsMHwfvGk8RoY0jP8yeViR6+2G2BUjIE3ix025gBYZuef7Y8TsqNHaM5HIagD7AYenVtreGsigVVr5mHS+e2Mn0YmlEyIi15WDDzHvx9cN6Fk3iTjdE5CK5sxq1kD9McywaqJUQ+HQrcjfu8e8CwBSRw1iSzZA9zimdAY10saqijddfi+M1i9kjaRNL5mm2vYCB+APqOpOC1SIVKjcOWV+56XlercJvMsSnf0HWvnIdDAfEZZJA0YJ8khFV6jNdq2PEJnWXTxmVI4gCeKO41XQ4CKJnYxDYgNFSxr59Mq1+lhdIFRQNznaNobdxz2w9NFHpLWSdIt/FlRaH4w3YLzBOiTZLK2oY2OLVgePis79oanTwRLNHIjOSepJZAcfq9ZoV0rR6aNtVLupZWHU1yeMz49G+qbcu6yKI221emN09Mt1nvvy6nTPFO5Arcjtxfbg+gzkarOGmYq0ca7Vod/XF6rQyRsvjOYxdBC36+2PXVaWKoppEConEcPS76nC/0N/AU08uhjALxSyPy5ING+wHxk8bTaqVthJ2cgqn9PfjGzfbEDzKE0wUDnzuQfc36YiXW3Mkkc21aA2qP1J+uGn6EumGgQx6qfTP4qJt5faa9x7euI1mvQsQ+mVRV1YI57nueMg0+tghYieMaiRv/AMWWYlavsBi5NRAHBkgk2EkrskoH475Ti70SssMO06EPqBGFvZsG5hx1rtxjdPvlhEcMgPink1zt+oxUZfSQhodOoH/KQmiD/UZNKFB37zAlfgAtT712xqTBo/UafUwzGeeNRGnlAkIXtweOo753T6OFSkg2z+WmI6CupvM3WQyTM7PBaKfITJR568XlreFtUNOVPBO0AH4ONJYqZkx2pl0+lcLp1VtyguHUbV9FP9cy9RqEZWOyONnU0FHb69Me2rhfxo4fKxPDVZPsfbIftAGHc4J8UUIx0+fnKfHHaM3llbzbG3yqsgK+URnzg97Ff1rvkcoSQMYwjbVvchCsv0xbSOIQI55YtlDbd33GU/d49UInURpXJLmiT3qu/wDbL0o6c6t4L02nV0L+Ftr8IN2fUk/H9cog2PGfEikVhyLY1+QHtnV0BkLSzSgsDRJF7R0HJ61+mFHCIl/ioGW/KytYI631PPscSUkx0mi3TvBqVuN5FkiBAcR1vHQ9OenYDGM5ChNQrTKxJUkBuPfpX1zMmqC5h4rUtI26trduQDhiRCFGpkJdlO2PaCoH9PfJ8fRy5dVpVhkjiVm6eci1s8Vd84/TGFGQbZPFjJPLC657+nt8ZCqIml2BAgY+VJQF3H654LKGhZWgQFdwslj732Hr1xWkzFs8Ec0brHTmZiXCCgRzwOP0w9NshGyWKyF8qMRSgenF/l6ZkzzanSMyhgHkNhF5rr+E1wTnIJDKQweUbQCYw1nvbD2GB/G2g3p9CmtUOrLp0snalndx3+uIl1cUx2bHRTwFQ7enWuP7ZngmRBtV9oPDMh3Lz39f95bNqdMyrEVG4G1Pg8EVVZPjTDR2adNKykMssFfw95D+NZ5HHII9CMZpJdLNDc8Owo1gBStCjxX7vImj8MNLGq2w2FSS1j35r/eNhj8dliYzRr2VRvHI6841JoGlwhj8Mz6dhND08qmlFevf5GVaWWR4x4bs61tXtu9rFZk6aKeLxlaUiM8SEptB6CuP7/rlME2+B9IajW9w3MfLXQ/HtkZKg1gWrWBIm07xsz8eRZTanqKOTLPqD/CjZwdvmDSVs6WSfTKCZdTJ4ERUqo/jOyFVX357174uVzCx08LkqCVZwv4j6k/2/rg/oyCZ40akjd1XimHDN1u/XEv4WoeIGVVcgsR4e79OMS51EbbY9kiG7KuQo59OOc8WVJPHkKGRx5fDA4Njt24xkqCUPIdLD4rQfeN9lFUCj07dePXKdBIZFR5QFLk8Bybrpx/nJU8URABYxHfBdfMSO369sZ96dAiJEd6m+fNxfN9PX9cV9ANBAsql0aRwVNnhgK7H652OCSVyJ967zTCgL4698n1WpaBt8yI0N2oQ1Y+f9Y370mpjVFkHhkbnU1fsPXJUzUTnQ6YbVacnc5IQEVwK7de3W8I7o5BHKYXKklTs/Ce3uPmsTHLH4rxtACrc+IDQPfpX5437spZnDp4fSlBuvzylsAc+nmPkWV4Y+jIt+YH39DiJS8UggSCQKTVE3RoUBfbjvlaMsA8PhQ9HcjcE/wBc8NVJ4+zZyO+zgkc2TQxbMjO0+nd5dupDFTW5FFWO95rKDLqHDF4lFBFXafL27XWMSRnkKuDtC0S1qVHrd1hDyakSpGGW+XIKsDX6/wCsDlbMxrqVkWUBSx8u9h1HoPy6HKW00ilbfdfNIwBHpxnEmiZypfkmlDHaTxxyc7938aRnUbNxG8Fx5awUTsTp4Y9NqHlkMizSDdXdwPXNR4QdKsiA7uCN3v8AXExQRLuHlEl0KJ6eme07eLIVsLRsBBwf369cddaK9EmWHTvIoZZC3oOldclLmVSd/IHNV06c/vtjdQHglKTzVJyVHHm9rrAi2qS6OLqmA6DjgnpeK2Ol6HoEdIzE5LUKBcE3z2OPMhOnkiU+Y9WUcj88DTrKdyl0QKt/i4PtX7ORqwM2+rK+UsT37fOawVbLNLHMJAsk6zyHlaWgfyyjURtpRcDA30Ba6/TEsTHTqUjJ49KPejjvK8Bd5EUjkAGj74QPs4bmjRzI29FryjqfXEzTNpRHKEV5D/yNV74aFURWDEkk87rv598HUswUxy8C/KyG/wB9sHem/R2TU71Ejunh7uxqjnZlcI0sEkW57ABsjp3rtk/3VzIpZI2LdASDtHx/fDWN9kqSaVUSJd0bq5IJruBm0NIJEGniJBQbzwegHqBi5tQT4asx2kDaQooH3OSQSEmkhKeI3LJ0Ndv39cqM2nAEZeRVL24Xr8/GANF0c8bQW3LL5Tv53YLq+pjEiQeGwAFJxfODpPu8EyyBlaG9u5j1yzxYJkcxKpK9lcWPjGSzsm8ZFqFeGPcGd2JBKhqIHuc94ThFZlMsTdQZgAv0OHJErwJtcG+CbvjEs22eOAgSoRe5m6++awoOXwZ4RGhHHlBJFH6Zzw1iJURbR3LEkN8ZO6ajS6hWBRk22wCgEelYw/aDeCscyeLHuFF+eb9Ri4NvgcIgEIM6HdxyGqzlEA0kclrs3KBuG43+/wCuRWsQuOWOQG/4b9QPY98VCwSYOQBuHlKrYAwXRqs0t8DsDGD/AM/MLA+PjOTrJRZJFjYG7I3A+h9xkSI+om3790aNQUKQV7UP95RqisKEROG5AK0LPti2CtJnLsZEZwysd3Cj5/LEakRP9m7whhmAO1gP/IfTBjCTIwUvGiBvEPer6e/tgwzSsWkeQuHiA20fk0D3xlmlKA+8M6M0oCEBeFNnp1+cCmk07sr7eaUs9hvripNKItQjiQujtZJBoV05xqO8SOpk8ZjdRLa19Ot++al2h/4FHra3r4iNsobbHPHX9cimeaNBIDuNbnUkjjDlVpFIMJ8xDAmwSP8AWdLlpPAePzDi7oAc/XHWArSNtQNwVKKN+JLO09/z/TPR6pYpS0EhjfcdrsaYcdjftndYhGmCxoUkBHA7D9nIZJJYBuNlTXFWCfyx0rGoon1rCZGcRpHd80fm/n/OPX7TeMMJJdm61KqeAPejkCCeSYTMjlhbKhFEEDjrxftimXV6dt0sBthdBOD/AG69cooJ4Tboqf7TiilSNUaWJwVJ/C3oR6fnkv8A6Khjl12sjdQSkZaNSm7179u2e+y9QkmpWJtH4lsS4NjcPT0r/OX/AGVF/wC0f+r9RFGjqmphBhKHoN3S/wAxlcjGURJW2mN0kGpi1VrtKeH1INX075t6OT7rOrx+Vn5IB3WT3yZnSRpIzRvqdtgsT/f0x0EcsI2agKXKnaq8X2r55zilJsq0jWLRyzLG+nDs3LPRYV/T6YbQRfwRHOkRQjeANo2j2/LM3U62TQnbAGprsPHwvbj9cpSf/wDl6vKP4jL5iFoD0r3wckkTaZfqftHRRpHH4m6ND5o1j4o+orp79sj1c+i8fdHppaAId4xZYD2OZml1TSyMZWRxyE3DceP30yx9SXNqqkiyQOoOaXyXjMocQ4JZllLRnxULBaZTvX8+gxer1CxyN4xkUmqEa8Bvf1xT69n0buY1V2YDnn888+qhKgywnxB0cGwD7friXYyjtkbwzyalpdJGzlFFoWPTqaGW6fSS7qdXRpzucDkD2+cCKdppE2+J5bO5RRA7jNDRqwS5Ay724aqoe9YOwyk0C0CxONrOSCEFNyP89c5EJJHYcTSEEA1w1evOFLNpxIkGoWSORm/hyhbU+x9M6dTsfwiI1WMgMwYAEHi79e+OT2iePTmJdjRReUbqC0w7/n1yj73G6FXi47EH8Z+R3wjHIZPAWCUqeN4O43ffPJp3jbdOgUUF2B6s98zTWoNpnpJbVYvu7khbRgxrv5TjNM6ofFljcKRakufKT2vES6g//hpQHmVSeb/vznUg108i+JEvhiiWA/Hx2F8/OGLsDWFEvgFSVjZgfxPuonqePrgIvhupWJlA/kZ+DffFaqElLLosZA3cd/jK49KPu6sqhbWizcX8d+cFv6M8QWn1EHieHHp3Xaaff/Kfa8CWBhJIyF2YtXl6BfcnvjIwkEkjSKRGBe9x+WT6iT7zOiNMpjNMNpI+fpjdrRF3gUgVEtJjZsDavGPVpTpm8NwdwohVo+5vAk08bvv5puSK4B+M7F5vM0YJBAO00fywK0wt4IMQgZRqgwkl5PTYx9u/bKljWdtryIl/+NK4OG/g6mQg20iEFSBe339s5vt5FUgM6+QMaF+/5ZTikxeTZFqNMsUoiM5tpAANxpew5zw+0PsvTTBtOTqJv+MVMTz+g+cphOoiaRpwsgbrHH1B9QT1ySRNJNJ96igOnZaJBjrcfoecDpK0MtxjQqyReJNtEx5C7eQSKHPrzhHTrIEjAcuo5YNXsb9bziyUCzfhJu2HIPoax8HGrrd5XW9vp8H+2ItM3QxhBBpRA0fiqFPDDdQ9Mm000cIMAnCgbisIjK8daGMm3bmUoSwHIPfPKWAEJjZAGqivT3vGU2mJWAaiJdQ3irsfYoB3Emz7j656KKQBiNOjFQACfKPcZTMBHpz4Y2oLIXYKHrkb6vVbZDGzoQAoWuPpmbipWwq2qR3WFPvTIroWIBZOu38sTqQwiSVGExA5LtQbnv8A4x4eSWESOpezxtXkfXrkZ0JRejMguwTuv5vuMR92PHCswz/c1VdM67hZUUaHz3yHes4MbNNHGfMSb5/+o/L6ZckLNoCn3rapAZWD7SfWvbBheMThVkkWiOG5WvrgaToCdWRJoXWZghC2tbTzYHN1jNXo544AfFR0sEMWPP0NkZfI8GqVkYNHIOA8aij9OucOjl1EarHNG0WzgE0K+KzL42+g/wDT7MyIanUR+HEFTy3RHH0rHRsfuSkSX/LdXXoPi8049AdL5wQwk/EGWiK6AYDw+JEyRfhYEk3/AKzODiDmn0Z5hWZixFOAFZwCKH9soj0yKwJYkhup6/GFpG2xKojJLAb1uxxgvLGZVCptVuVNCuvXnvipehbbwKRX1JKxnaq0aHB5vmxhxqdL4cL227oWbvQ4zqTRhlRidqngnyjHeKJpP4BRyVFkcge+UVdrsm76OCNUcFQUJNFVIoV1/fXGysSdomG1qKnreKFqWdlQ7W8ovk+5z0o3m5D+D0HTKcqQlaUrFvUM6888DofnJJNIsfjSRxiQuu19yjk9s6upIG86kKoNClsj5+ctTUbZCGk8p9B0HvlPwkD8kYUGkK7h4W6YoQu1+APQ9sdHCI4wHfkAeXcOB3zVkiSaNmjKAMaF9zkTQAsqPsC7TZWufp3Hvk5fHxKr5LE+EURhC21W6l+fr7YMaO8ksUq72VOOn7rKQdpjMilt+6rocAHp65G0E2oj8WLVqqHyrwA3wcmorthsZGkulhkkcB6by7eSP+v1ymPXLqQmyQbmH83H9cleN00xQvQ7kNyfjORFi+wtHtK3vk5JrtXXHj8nFUjON6VTT6oExsI2BqtrEcX1/LJvN4rSTS3GBW5V4HJN124rA+97IkjJKACiDbmv6jPNHNqTGdK0epj2m1LEd/3+WZzc1hlGgZZN0R2MGBPlB4ce4xQSeKW3kVfF6miSR6WOmUSRyGHzS7QOPInX4/pjkRAjyAyqHU+SUVRPt85KmxuVEzag+KqGaXfR6jp641J4nhssVQcD/OJXRSzzUyuAD1U7aHbkZSoKMWbe1rQANjjMrC2h8JZVBiXYzGib5/PGNIyyyK8+1nWh3K/OTtGyamMoLH4juuwe4zs+rGke3hIJsKKsE9cdTpkqt4K0xlhkcorvJWxm28HuTz2ypGAZTJxfZTYyV9UzauMs2zdztIq+2VeH9xhan/8AI1niyfYemGL/AP8ABpL7G708rr2BF96/xkDNI8iBmbYrWCCQCP8A7fGUxQOEZlj3SE3wKwZNI8Mg1EjvxQK3YN9zmblIEaTKNPMspCAl3WzZH4RdYsj7ypTwQu316HnOaeWPSQSSyDdKWp2VK/MfXPeK5O4SDkWSbr4x28VgrTpbYg5PJrnv7A5x9QA23xDtRSQKzmwk+KRtj3gsGawp9vbEz6RDIrCQqVO3a3KnIu/Bkk+y2OQJF4iL4ofqbvGTTNZkCgACtt9SckUtHCFhTpwEqr9/0wnVvA/jAF2aueBY6ZVTdCcVYqbxZ42ZXdSQVbjoPbIVEkUiq0skwIFWOfcXmkfEWBpIVVnAoAXR+uIeUTJsEkZVWH4etemRmvSkWeQVEQysqueNtXXviwsKQOpUKy9B0xw/heRLFdz0/XJRC88gV5h2PmFHr1xRkdXTt93Z2WlC+VQepPtgaVpPEjuMsB0ZhVDrlsKqkW0I/wCLyt2r2z0jK7Kyje97RyarNxNyHRapZi8aQkAcbhjkRXiIC7L85B6n0OIghLzcMV/m2kUSeg64Hjgkq7WzcEA8jnKptK2RcfoRrnPglZCpseYgcgeg9sRpo5ItIDbbb/E3N+maE4HlV4gyrwQv81jriQ0caiBRsVhwvbjEaTelFLDui8VdaqOfM3XvfGGgoeGQq88kNfT1xmmRodQtBuK7cHGa7eEQ7GfcaNj8zjKNRsRyuRPFHIYSFYi/5gL+mSwhjMyQoz0Sd7dOOwyyJ2UsxZ6qwpHTFk7+lkniwLrEdOhk2DIUhhRvMLIBZoebP7740zJQpbG27JoXipJwW2SxOaHHPA98YE2yC1Uw7TTE0Sf8Zv4b+nI9QscW6aQkKTQA/EfQf5xUmpYhGZB4R7KORedfTLPIomTyL/KeOc94bRrHuNlCRR4AwW6GqJKk7JG8+x3DGigWqF+mUEEqotmct0PYYagxzbrF9WBbt65SUiCeItMSeL52/GCMX2ZyREjuqs9KVArgcj5xrsNQjTycInmBBoE4Ooc+CNiBrfcV4BAwZtSxdKChewAus10ar0a8aSoIJXeJ7DBg15HqYkEjzRFWXpY5rnr+mWgrJtdzGpRatT0zigWzBP4klblIBB+uHAJ0ZWoWRp0YLGsagEc9Qcp3xuoiZBteyBRJ49u2HFEk0rsYWTaOzfpghrhQo4okm/75Mo/oUkSbDDNGbLD2B9P6ZzWFxLUIZ2KnamwAH6nGK8qyKGDkdK64yVGE0qNHt8vlJPJ+MCN0zERNX4hR4nRFYBmJN0evrzmm0DRKKVXaugf/ABg+LKELbPxmib4GLZRGA+1UhPJ2myPnHUkO7YguXjaGGKTynzEfhP075fFpvDjEyxENIBxX4R7/AK55YXGl8NYwN0m9W3jr6k3nZXZ4mImIAFEWBur1wukI23hzYzu0MkYJNVb8V1xbPJDqk2Rll4Atb4xukjM5lcMiyEWW3cV7X2zggmWfc6Wo/DZFH8sG9gwbqESSXzeaNz5F7n1xbI8vDxxNHdr5TS+mVTGNNu8lroqBwF+DnIZN7GILsF9eo+mb2hU8DRQdJZGx1O1WroO2KePUKwfgk1upeAMthRWjaLez7hwo7V3yOQM04SKVzx5h0r4yksSYsXos+I0hKAMi8gBuP+saA6aXaVRTdEJyAPXOJCsbbq3A8UeOcCCQzeaVvwkrtFgVk+hhpBl04EhVhxfbIptQ0ZZpELFAPIGsj4y3UaWR2D3GOOBu/UZOqq0+6PayA0wuirdq74KfTDFoCAR6dTM0YWZzY5PA9/TFMscLMZSW3ncATuP0yuTRSvEzqAJGa5Nz0APQXkE+9JfCMIXy2pN7VX54zOLHjTYS6dHB8QNe78KtyD2vjriJG8QgSxvFza7RxfocqaKVCrBkG82gDWS3UemObTLZ3MBInIXb1OZIPJInEVQbtqjaLUtdA9bzmgSKCT707mZhyeeN3YfHfnPTQyXGjzBl+B36cYmR3ACRs4VCQdhC2e5r0zLNDVnJRPMEkABVtxYbu/r7nC08koj2oquBQ27QWJ9z2wpEaWESkliOnI81ds4GlWWMQRFUPDgkceua8N+jrSvvZ5Ifw+ViOfbjJJNSwhKmBlA8tkeUfHrlwjjh/iGNnjYsQzNZGT02onLVvjA8ofoPc84toKoyowLZRsLmyzbe/TjL5oHmEQijeONFCksKF/HXC+4F5Ug04RSV4k3A0fisokh1a/aYUMZ46AtHsKe+UfVoLkjN1Gn1MZTYF2e44P0GXabTyRxLPqYqCjsDQv2ywaKVlEkkXhhCRbsOnt74/TR+ON/nkQcA7tt/S8GvBH8mGdqIndAF2PG38pFbj/bGn7OneCCyGKGgvT3x8+kDKyaeDdX4ragD7ZyKCaBUYt/E81KWuheamvBeWCodOXJYKqMDRCjcf9nD1yRvEulMzIoBMvh8XXQEjtjNHtkl8VEYPZ6ny2Op+mDJEdTKohkDRRgh07/l64VaWAvdJkgaODchALUPXDdBqtMyNJSirIFk5QkY8fwNsapt43N5mA7D0GVKkMaySoBGT7ijmUL0DmQQERRkxAlT0IWuMdBPpnsM9t6FRxjvDMsXHkUNwd13jotCWBeExq44thVj1xowb6EckSRaxWlVYiWHQ+Xt75X5i/hlK3WLYdvbJS6xI5WW5FNKSar6Z15TC4camNncfhLVjptAe9C1V9zKF2IO5bgjHkq0TbQb6Gj0zxleUhfCpa6huCf8YBSiQHYoFJLHoPg98Gp4bvsyZ+Z6j83BKkZ4TN93uIqsgNSEcUPbKy2nSFl2gJtI3BtpPxkzaRWjWbR7fEYUN77qHuO5xUi6dgn7QTSSkIwbxLsubN119cRNqVawGjRmNG0Hm54xr/Zw1Uscpk/CNqh2C2K5NYB+zYWYDxgsV8LYv9++asD+JNqtYYdX/EYsvupJP5cVh6RBrJ2EhUpw1qLJ6ZQfsiVFEcIZl6imsE33xz6fXvqQpSUrQXei0HrtjVgeSooOniiQMyPZsKzEEfNdshGn0sIZVMjySGxS8sfrlS/Zka2XilcxnaNzlgP8Z46aKO1i0ssYToT+RPOZq+iaZDPJHH+Jtw45s2T8Dp9MqLxOApRisgFJzZ+M40YkYRTGRQxB2sg8w9Pa89Joki1CskjLtX+YltgPasyX2FtBzbZytRhgEoKwsenrkxdke921yTd9hlKaaCEmcS/wnADKQbv5xWo0u+MvEvl4plbd+mPxYqaIV1Y3sfGDvGNoQ/ze27BDOuobVMNqAW0fPH1xaRlJ3LaiMiNrdmjrcMHVagvp4yCA0vC3zu9wM1eIpgzXsdXJHIlIvU9aA+emKJ8IEpJGu5vKXfgD147ZM6eIgjbVKCeBuY9fe69Mp0mmZkj3R71AoOx4PwT3zUMqSLYlM2mRjPE7b7Do3I9hddcsMGni05lYOkjg7g3nYfHvkI8PTwwKWaNaa2PBJvp/vMzUzeLq5FLSM5SllEhGznj3P54VonFsul0iLaRoy7But+5PbET6yOFwxM8rBK2qAiX+xnU1ep0x3yREbR5GZj+fexgFDrCsrzK0yWAVBA/LtmxdjpMXBqJNZMs8mnklavLG5Cjrxfqf61lP/telfTzSTayLRyISphALMT24Hb/OTB0+zws7RmRl/Cy9Hbsa9P8AGZ2p1urn1Eksbx+JIeKT+ntlYqzNATKyOviStGLIO4X+XOTaZQdSef4adG5rr/TLAZJA6ai5JAKXfRAHsO2FFqFECwzAmN2vajUB26VlLpUCjhjhV2kdAQR5V3VZ9eefTOErqGUtE6qTSlyAD7Cs6VQq0iwLAPSRdwHyet+2P0eh+0G0P3mKYLGSQKYA/lxQxQnJ5gIo4pSJU6AvflH98j1BWN4pREps+VEagMZHqwUdNRK0x6jxASfej2wWiE0jSwzzCT0UfiwxVPTMm8NJWkk0xkWROV6fof3eUf8AturhfxG08rvW47iAR84qIymRyCyTL/Kw6+pGaEWp1LNvdFSMLbFzyx+fz5x22sBRn+VJGV1KOpth2ByXVqZLeKImNgP4m2trHqLzTVZNZKGkh2IpAiZWvg+/r35xsn2U8OoaGLc0TmiwhO0MBhUkmBmAhgMRVgqbeu6Q+Yfv6YQlbSgmIRkXwRz8VR98VHpz4pWMvKCfw3zx1v4xpLqyCNNwU8jof3WdTo50i86oOgVXAeXmlkr2FjpWSlNYzjzFoyaNEMD7qOB+WS7hCo3MiiwBZBN+o9Bl0Kpp41j3eUkeZJKIJuv2LGTa49D9jYYnLK6bogwBuSQru+D6HPanS/dSSjcsQWMb8j2HPB+uMNRgs58limPU9iLA4+gw4jOo8WNC5UVZrgE9yB+7yXJrUNQMUcryNR5UD8RDBORwc5qYohCRHAuolYhdyrQUeqj5zQ2xyShUIj1FWbQUSP785yTRo5Dy6hSzruKtbBffr0PHHbF56b9GTptIZB4jo6m6Cr6V0OMlRtN/BkjdAq2i1dAnrXUD/eVpDOsvkZypJ3OeQa61XT64xfsxpJ7SeNWU7iVJN+tnG5boaJ1k3whRFubs4Ngfr/XjOR6bUaVX1jHY0noOg7cnjKAW8R63yqWLSGPqw/ddOmUajUTSQosL+HEQCLBok9h3/wC8S6CZ7faFKNxtlrbtXzN+XYnGQ+CkYWKHw5ioLNZZ67fAyKUGNw1FRfZuL5uv9ZZpdTqNWrc7VjWr/FY7UP2cLWYBPdNOEadIIzIgkrj/AMlkHvQPS8T910thDUcIJ4Rh5z145/6rJlaKOnaNXZgpG9rYn0B6DO6rUS6hmDeKyEAFOqqT6ZKhilfEkKKsf8BGKqmwkk2CK62fnrlA0ksYWSSGRUY2VkIO3uDQPGZmk1raaUp4jMpNFdxWvpf9MfJrVnb/APVrjAokjn5BP/eCUXeGQ3UoOXtBIWDE2K9v3zjdkTjxZlhiQk7qWmY+3c4uKRWKnTMuzcQvl/Cfc+/rhzRz05aRlIH/AI1AIAPfpf8AbE/QT0M8B3iHUrBJygHh3u+LNiv84toozZR5/LyDtCqR81f+c7AkMVzEo8lAqSvJ7X7D9Tl2mkOpkWFpopFXltgCgH175m/oBzSrPq9Eyxsspjbadj8sPQ9xipdO2khURfZhlSqYo4chvcdeMqhgkOnngiZoyH3VZA9a46DCi+96hSPGeNmNuu2gR6V1H+sW0YzZDLIgYgob6OBuF8V/irx8Gj1qsSZZW2n+ZQST6cH2y2bSTtGgSB2kTqwTcSPz4zzwarSgOWVIjwFa9yNz0Pv3vMmwNiS+oik3PsKt/wDg7Su4+tf7yhtSq7S6g23ReWrjr34xRST7sIZtMAW/mVrv2v0+uIcRSBRHpn8vBKuQa684GrZjY066PVDbMjM1+XcSNvoRitRHMmojWE70/E3BCgVXW8QdHLBLHulnZm53bj5fT/vLNNLJJGdPIpaiO3X64qSsDzo9o9PLqpC8USgjqHJpT/QnHal5TKscUZYqfxFarG+Lp5ahjQI0RBHYH4xWoiiViVYtze5iDt+O+UazCae6EmqlphZCRizv6ive8JdjwGpWiY1utjZv+mTieIrsCMwexvoG8GQSBgkcJP8AD5qgMFh4jorkMqTBZEPlXeDf1PTJ4tLDE0jSh/KaUrZr2OFoHecldQphpuNx2s1cWD0OOeBonYoWlDHoi1Q+uK0N1gClhAxaS7PUnkiuvGZ3n+8K5YvAwI2FeWPbLJIBIpVYdrc07cken98PSxLHp9szRybhtLCPjd/bNFGsLxzMAojZGB3XyKPbPRwNNEyqgZDYVwecq8LxAipIr9m29foOmJhiWOeQRRgKWpmAFg967H6YKBYr7tqY0UKAnFL5wO/TJwyzlvNHvjblXehXW/pm1q3jJVYo73Ctx4C5kaj7KQzrMT4jbztAPTjjj0PONVGUr7CDz7gGeCT0IPB9wRf9somVZIEJAth5t3FD0474vbtlSCEKg2kkDhR8nADu0jXzzQRaonAw9hQQQySjcBRN2e3z6cYM0JjAjh27B+Fk8wHz7Z5XaYFi25IzW8ijt9DgB12FY9uwjk1wa73ih2y2LUCaM6ZxHQXlSwY1/jBSOM6cqq1u8rdhfbp2ychItqRfifqwFGvnKoypn/iI67uODtIPTp6ZuxaofpEMMLb1XddgA0B2ymSFJWaR3IeOiVWiAckj04hl8NEH8VaDhve+fpgzRzo58I/xEPDNyT++2OnSqibVsZLEzsoJpT3vqfjFajRaaaB3hUxTUbPVffjOO8jLF/F8/I47H3GLllCQrGbUHht4qq9BeLY6TE/d9M0axl2kZCWDUVBNV1HT1rIoZJYtTJCiJOr9yRzQ/Ox6Yes1Uwn8FWFgCyCQPYn5wFVm08TO291IshuADwf2cxVIteZ9oKgqWjseU8flxi4hqmjIeLc20kA9SPbCeOU6GF4nYg+UBTwfistgjfR1JLI7t4fmZxYH6dSf0xfRW6M0B1kiO2mZNxRhwR0A5/fTOtpN06mE7R1APPNds9r5JvFeXYhBO4ENdVxQw2m8BmdJZFYmqI7cdgcHuDbQ7xIo9HLHtJZqJ3giz/TtkMUEU2nacPTc0A3c+35ZfptyadWaAFVspZ6j+3XCiigineQol9KsUfb/ABmFujM1kUoijkkkcFVslDXyPcXmWUhJLRzzFFshQbIJOb2uWZnMseoVYLAawfS675kpo3hn05h8MLyNu6y5BuxYuucsnSCtEQtHLP5yQVBVQe59T6ZfqJmkISGMq+0Br4Uke/piXiDbXcqAfKP4lc+i19MMwyRMFcuyEUNq/hHHNnriduyiF6+Jl+x53MhWXcCoBvb29bqu3TIdOmqWJZEnllDhU3MPzr4zRnM7QJPpYR4oIG5lsjkjn298gmOv02oj8WSSP71wUF7Y2HU/6GVhdULWjo9DLGY0lmHBJB4JB9B/XA+0gqfdp9OGnl0RZZ//ALxtyx+n4vzzEbV6uH7VoSlno2p5Av0H1z6T7N+ztTJvSWYbJAfM3msCiLB9RY4x2nBpt9maTQen2uzXMZAgBR/E8rWAQfX64encvI2x9rt+Idd1et+mQRyv9ja+XS6iLw9GZidNG1EbT/IG6ceh5zWOoSeRRDDKjKgITgK/arPT9MjODTzoKdoomnDQQ6xQJF3+HIgryseL57ZzWPHNp3h2yL4aA7yfKw7UOpw9OkiaaRn0/gmNvKdxcN3s/X+2I8SJIfHgdfvLSbCKNjv3/p75MX+CgYFawAGPZqUbq6/HGa2h8GQHdCAxF3fXMvURRBWkSWNmXl1UUN3U/njtN44iVzSr+JUZeo46jt7YoZK0V6uRrACqqqbKg1ZGBpIRqlIYU3cE8MPXO+LN4rFhus+WwQU9DjUkabzLKGbglRx+ubBelQ4LEkNR7o0X0A/Me2LjaKJl4Ry3UkeY4waoxJtbZzz5rom8dCkE9OYngcDzELVD27Yy0n12TahJRqQGZWZ18jVQAHvnZG8KK5IozuNVYauO+OLRJIJCD2BJHT3wNVpyklEna/mYlbrvfuMDS7QUy3SSiYpIq+GaqiecTqNLKG8ThlHHmehY5BwWAlQhWKBgCGDUf+soaUlAGmjkYEdADZ+csnyVMn07I49DGgMiuEc1StdXyeecoVhuB3gNERe1bJ7mh0GemjmV3WILRshq59v9ZLp4nljqS/FHSRaF9sDqPSG71s7PqkOobYjAX5m73hxpIjtbBrO8MD0+ueeOPSqXUG2Pm5LfphyaNmTxI5WiLUa2jg/GLrYbVBoq6hFjkAO8XtD2T73htpvBKlUTilDdQMkeJZF8WJnjIeyUbaGPa6649Nadp00yGORhe5VOwm+CD6Y64tCNPwRqp5YtQtruG3zUBQ/ftlsB3REqqixx6H9+mLKSqwMiUbAtDxnY5FEjSycqgsX+n980VUrYz1YOsxr4ini62jGQr4jEynaeoA9Mz5ftOTxEXwIpNIDUjbtpHx65yTVHVSEwSuqOK2gHygdwcfmlonBlBm0UcnhzSCSSQ+VY15Hzg3HOCDGpZCRR4oH99syoxu1nhRsDZIBu2ast3Tog3KWAJNrQr0sH985H/peNFXCvRun2IWjggdmI/m6J7ZQikTKVjAG3uORjPBl8BtpFsvNDoc5HqSlloXHIVi3fH4/ZJu+ieR3kn22u43s8tj64+XU+BvMsLgKQN3FH3GLdFEybV8QXbgHlPQ/1wws7FlCgkg2S3QduMRWgNpiH1reFboHXbu2j8ROBGpkEc0SluDtBumv178Z3VwGMeNC7LIByp6MPb3yQSzyeIYBMr/iYuLU/GC2no8VawomZ9ORJJFTbvKiEtWLYeOpBUbgK3A0R7H1Gdif7QfbsiL2pO5SKb2o9/jpjNPC0m7bCV8Q7r3UPpgabG6JYtV9n6JiZ4iXegECWevQC+l5qaKTSahWcPDJ4bWC3Hh/Q8jIYtDHq2YpOqsTTbQSQeh5yOb7KjkibTzsgkClBIqjp88npjxlxptAlFS903YdTppdS4YaeSThAV5JPpjZIIWDlaSTaL8l0PcZj6X7Pmhlja98cALJHY2qaoH/l+vfNFNfJ4AKxGV/wkopI3daF9s6I/ImtIyjTwvjk08aAbCWc3+HqfbItQngyOyQr4Z8tCgCcjWdoZp5Zy8TyAnaF80foAeR78ZboXlfSAyBTY/GSDvP9MaTU1xBxcdM6SWQKWnQxGhwh/wAf9YqMSySvLYYAnbuAvjjNWPTRQRgaohjfLV+HngX2yWSJLYCWlLUbHHznJP43EtGaJ49O2lpzGH3m/wD7fX2xsUiszHbt8u7Z0+tYcn2awijBhllCmgNxBPuc7BMv2bIkJ2E0d7UbA7AHvhhB3uGcrQYlLurKi16s3XHR6sUW29OKbjBjSNm3BojEDT7TVH4wnQyMQTQBIFmuMolJdEnQMjwFd0qqF731xZkGkAei1nglfbFzK6ztEZ1BobSoF3fW89GCkVykSFjQrn63iO2x0sAk1YmLObjIrZtUHd6g+mch1wlcxzwWsJG11Sqxx08YR4lgkFiw3qfXEFo0iUM4Dd1IIB7YPyQ64tFOli++j7wZ2FvSrdbavp7HPHSSNO5JLMpsUdoyfxpdFE0kMybSeI2FAc9fWs0tHqklVhP4cMxOzg2G+D3ysVCWPsSXKOrozW00kctzKbqrVrX6dxznmRfCZWIhkR7U7fxH3+mXa0SxIEhChz+FugP07/GQT6fxFV5ZAObEe277cE5GSSbQ8ZX2RMsskzOtqvAN9xlen0zR+GVk8q82DQHz74UylHWViyKOeAAR2vBKhUZ0YhSt2R7cUMksdlG7RoJJGjbWa3IsM2em0sMitNGdxYVto+v9MlDsqkMCEQWWNUOnzl8EosKwKVwVu+c6otTVM55Jx1EfhzRBttbj0KsTtv2OM0umYN/GZpAT7AjGSSKjMrq7W3FcbcfFKiqKUMGNc8YFFN9gcnQrYYJXk8NmAPl3G9vHXJEnij1JM5u2slgevp6VmgY38OR1df4nJvpkY07TBSwBVeoccH65pRaqgxa2ybV6ovqC8TbkbkAf2OU6Xf8AidSGa6BawO2cmhhRhH4figdVNEAe+EryrCSVjCg2LFAfsZKnejtqqQcLaiJWaV40ZRVq3T2rIZfvRjILCaW93nNcdhmhAWl3kxIhAuyQdw+mJD75CpPA/nVe/WvX/rNPpUCOMPRq6WZIyZGO5gAeuelhaWR1CkUNtEcE9j752CTY25olF8rIGsk96wNQ7yLuWVo2VtpLgebDnAG8hsEbRJtmQqj0CbsE+w7Y2SBSwJEYIH4+LByZnJdCzEknvXHtlFRSdDTXam+uUjTwDtOwlYNayvzybDdc9PFFKwQtW1OCeBz/AHyevDW42LljtIJJHXrjgyySyKGBINVXTHvKYGttATlYUkRIzK1DyBuBkSRePCWVTVnj3+fTG62lhIhI3VbleDeSaY6ka5LchRy3kI3V1Ng++QlUpUUivxssbSxx7UEw4AFXY+Bi1SOBjGV3ub2sWFg47VyoH8oc3fJ8wHpks2sEYjLFQq8bqN/nglSeBjbQyFo5F5UsG4O5q/XHpCplLx0GUUfjI5ZyJI0hjDqyXuJ8p+D0w4fEIVkRkGwEkHgnsKwJ/YXEdD9pKCIvK238Vcf94DzFp5Jqq6Cj0OFCDPG7PGIwDtAUUQfWsppUWNNqDaObejdd8ZKUlrwTE+idpNoVQo8aUFQXHPH1w/AaKBfEZ5mLV2sX742DbJOQqSbkXbTmqJwJZYY0aIPulXigvA/LKKKStgvaQ7xCUCxKy+fhm5oYeq3tujJU9dvmqsz9BPNNvsr4aivQjLHLFklKq5HlbmwPT88KlyixHGmJdG8Nj1JAW/XEKh2MoHPQKOPpeU6hvJ4hWmJ6enGShYjFuBXsRR/O8hJaUj0ch0pETSup3X5lAuv9YxVXbSqR18xHF/1yaOaR9U2+vDRTTLdjCbUhkcSMI1TpuJO7ngjF/FIdpjNsmyRpaajYJFXi0lLyxiRrXm+P2cEanxCyK9kEVTc174LK/iNICrC+hej6XfriNjJfZXbWE3KR7gG/pjJGMjfwlCGwKBHJyINGJAV2Kz8df3745Cqfw1Q73NlqrdlIyyhHEKZdnLlHSqNG7yOGANMJnUR7B5R2zQAAgUlwWU9jzgMokAaUcOtC17X0rFaCnQBkXyljuQnk+meRd+mZvEoD8Ncce+KjhCb5Am1b4S6v6YMu2QA2W7+lj0v0xetYaBU7t0SRkdFU/wAvPv8Ang6SEjxS7OTZAUJf6+uPKLNXjF2j7bDt59yM59n6OYbplKlVcgKGPPqfXCo30FvGcItPFRCWHl5q8mKqy3MSxQA0T2ypgQ/hywXI18kcE2emTauKcFmVlbaLO/uPpitBjpwrEgBJ/mq6JCjAdB4TGVi0h5FdAMVJPB4QQyNLf4k6Dp1r0xsDLqelgLagDiuMHQ9UEFXw0SICr5N1/wB4ictP4scTRtY/8qrwP85bBp7mZJHLInANdOMWdL4K7UTxP+XUUO3GEHJWKh1n3WN4n2NJwGKjk5dCQ5FkNwRxQBGT+HHCTv8ADA6mRzu2D24zmnmh1EM/hqDxZJFNWNYrV6ihHSR1Uj+aqA4HzlCou4J4d2eK7DItMWlmTw4pVULdsRQv++X2scTr+K+QS12L6YYonI7BHKG3SAMu4/gPT2OKZ23skcb8ej9MojWONfL51PO89sZqQVbaoVdy2WyrhcSfLTORrfYaZlNmjfB/r9MEAB1PQKTQY7QT648xoQDIEUCrN8g/2xbt4CPKAZYxyqgbjd5KiqdhqpjNEx7pBQN/i988UWNNgJYsb3d/phK8axo0inxOpDLdGv0ySfWO2uJjZOOK7nC0kBJtidX4azhvHkCqDRdaBPejka6ebVapqLheCQHsN7Uec0HeWSWmjBpbpz0PrX+cq+z1TyzSx+WrIC9TmVOVFHLjESy/dIA04ou1Feoxsv2jpgkcJSQuTuO0d+wNds9qftSUCkfgvwzDkA9AO3GZp1+7VDxFJO7zEqN1V145wtpOosSMXLWhrbYwzRoxZwQqg8n1JNfTjJ00sskL7UVm3HgnscKXUSSNyp2MBsog0OlA/wDWLWZdO2xmNNxatRPsTkiyToA6ZQfCEjfwz5gDwL9PjONEyIJkUdO1116k5RpJ0WXc22JeQx4LdOOfXCim0s0UiGOZn20FL81/QDCZtoRvkeSOFpDJakjjofbJ9LIUQpLKEUkqAa3H6+mUwwsdUqrqUipCqoASSPr1PvhoNNFrVWGNCqkgu4tmH0981JhsODQeSopJ1XbwCbB9r65z7skRCtHGjueSBV/IyvXSzauEOwdFUigoGSR6bWTzBkknkPRbUHbx+mFrxE4tvs6GbVaaAG49h78K3NXeNUqsmwapPMLY1Z+cfH9jFl26qfxKalBJv889P9naUyxsZgLGwhVBvH4PtiuUboj186mHdBG58M2TfBHwM5pJnbVxIY40jY+ZAvb/AJEnnNCTT/Z6Qs255V3cKos/9YKbIJIgmmaQshss4LAdrw8WnrNyVUkDNWpm2RrMiBSAAaU+9YnZE2tKRJF5SFbkg+v9Mpm+0AhEemiCvfLEVeR677U1Txhk2KxYIh2/hJ73zhbj9gipMujhY6hm8RIQ4K3xYA69cdQFoz+MP5TdX8Z87HKikbUdKG3bdk+vGWQzujx72C0t9On7GKp14GXxs1BJ4L0HjVr/AAOtce2EdTqZdxjjU0du5KPHzkUUyvqN4YMoryLzYyv75JJEVjAUD+UdsrGWdkmhA+9OGZUjkYniwK/PGvpzIoaRog6eq9Lw4pW08TlpCW6hTQVfT6YGn1plIVipfvsN384ycUtegd+AHXNGqoiqr9zt4AxOp1ETwniyRuNqav3ylzP4LsFRueQvp85JpmglY7kQHdyPxfHGTbd1YyS7JtTGJ9KWSNZGHJ2irxOhVotIzyx+G0nkUA8j1zR1GlfwvCpSX4AiFCvjJp51h1aQlJmSgkdsO3UkYulYu1SIpAfApyzEHyngB8GOcQMCQGJ69Cb9MvlSMSlG3gHkVx7/AEwYvs5CrMYoxQtNo5AOTG5KtE6Iar+eQRq1k7uDVdAc5qJNQ5VImZEIsIGZX+pvrjooGVi5dTsBCM7EVziC8js6pJHvatxdSDf165S8wHbH6OOZVlC6ltytYVzyD+fH1wlinlBabWNJs5cX2Pbg51ozJroyRC5QdSSCfr0OOlgKG5JEjJ/CnYcY6QjenpPHRf8A4zblAC1wRXsayLURyxsFjB3SinLMWVvn1y0wA7dzEu4JuyB/TJZ4TPFtg1P4GpiyiiPb1zNNsEWiUNqaMDygRqLLDzC/riZtV9oRyb9O4VC3IY2Dx/3lEcMwHMQ2XQVzQUYOsQwSq/grTvQG6+PjFTaK4+zs0jSgSFjKqkEmNR1+MlTbLrCZUIcC6VNxAP6fTKELDaiQ6dEbksBdke+ImmXaZXMqv0/hE16j3xrTCkAmm8XUnVNEsvUbDEFH098DUvLNGVi+z1pbIkElV713+MYDqftEBRqnGytw5U9PU477s0YMk0wVmG1S4Bs1VVh5aF/sm1alNNB44SQLGCzOhLEnrzfGC+r0skEoj0xhBraWPX6jE/aSbftNGaAtEkah9y9RX76dM5FptOJmmiQbVFqKJwukMlgaayBwom08sT/hvxCbF9ryRuda506TmNwVIkXcffjvjZH8TUGiNyN5QxArBfUnTQtI2mtmuvOQQOl4U/ozRS0uhadYx9oHcFIRRCQvH9e+IlhkkdJvvGmRqJCSR14nHYVzxkUWpjRQTp3mqgbFmvQHEl9PJqndtOVct0diQoyiW2amPVdMmnMrvEzgsuzaynp19/jC0qT/AHaUzLEH4KMHoj2oA3i20SNMJmm8Pm23q1n4PTHDRCZ3ZdXG/JAIBFcdzXXNaozAOieWLdKzJEG8pXv9P7nJXRI1ILkbfKrNzf7+Md9wqPbHLGjXztkFvXoP74mSOWJhGwCFuqHk362e/vhX9MgERXqJ5GsHcl9Lxz6ldpJQl1agzA/pk4W3ZDSbT0sVX6n+uWTpqZCv8FJIQv8A5lF9/fmx0rGa3TWJWeo/ClnRdwuwLZfa+2LnkYIsOnJkWqY0Bu9x75dH9ryxr4RQyFP53UWPoRnG+1ZPFkn8CAlvwIyEi+5OFdisUi6yNFWMytLtBXgcCutD24w9VrWXTGE6qRTtCsjXuJ5J46+mFo9dFrVVJdDGwY8BBtH19/rWTavUaU60RabTvL4QNlXsn9OMbi7Fsxo3kkIbwFQOu0g1063wPrlI1CSxpGYweQNyn+4OK8YiUqAbTjyiugq8XMqGNHMavZ2uW7g1V9x3zqatkE8G7hCwaKJQws7q6drJ/wBYUOskBJQRliLFryR1Js4pDHqPKwK01nZyPYV+eengXdGgI8NhdbCvHTn3+MFLpjb4aUerlSYTGRyQCxGxQAO/W+v54c+qlkiIj1jevhyWL9wenXt3yMMVQJIDDb8hCOSBwaPUf0z0shEZRI2IBvcG3VzfbJVoxTp5JZltWk3KRfiLyB7H/eUs8+olRI7HlpTYY/Uf3yHRy7FZmaVt1HzMASL4ynSJBppxKC2pYAnc1l0J6n6YjSsYpMbfZpQGaKaVuH2mliHUYafashpLhVRXlbTDaD62OuZz6ddJqGSQpI6kg7mJv0IH6++ENKdQgUBo4917y4G0+uB0GizWweI6a7TwRSljTL+Kjz9K+cdApHmkSW5PwAMDkYePTtNGhZ1YCivPmH9fnK9LqYxHcgBYjkuKJNVYxZvDJC9TApAO54Wb1alrjg/PrnPB08MBijTksFLIg5N9B+7647wlLgnem+yWqgK6dv1GJm0uo0cZKrMyj8LuPxc2fn2xFK1Q3ohFMEh8aVbNbEKkD04/PDjeX7wIg5iJqwEsMv1vCJjQlNRpy6v5kZR+Lj1Pv84WnYWhV5xfmCkdR9Oov64z6sBXHBBqHcs6716KBwPz6fOTTwIoYqxkVWAPcX1N+vP9cOQlnZYpFdbDF9wJ6+nXv6986kY3CR4nIiNBd1i+46A3klaGYzxfDRSqlnYUFHJU9Dz04z2lDLRknZYw/oQb/wCJ+ayiNJHiMzt4RcUwUEt06H+uBqPA8EAgh+ECp1APrfFYv6B2ANZoo/PHEY52Y3G3mIHex6Y6NYmk8bTKFZVId1AoA+mLg8FI/wCNIlkbFBO7p1I/rhoI5U2JAQgXqjVx+/bM/wBGDBM2pRIxJ4P4pCOCx9vU5U40elkEnnVnNnfGf85NB4bhZI5QNw6LY6HuR097x+rgaaNVUqzXRBJIH1/XBfgr7HJqIpy3hSCONfLu2WH+B1vGSSTFKicyG+FLkg/n/Q5j6aHx12qsoZRQsD/HIrLYdx1SIYlFNRJBJP7/AL4WCqLKkcPp/D8GSr2qA1d+K6frnYtEWZA8beHyVYkEqO5Nf064cRkgZlm1Kbr8iqAdt9r7ZQjUXjeZ1VhyQCPg8/2wC2SO08kkkengeOht8RlNuBx06ZVp9FJHp/PIDIxvcW2geuAkPhRsVU7SArPu5avfOEskjMyL4fAFj8Nj1wUjMpl0elMqiQA0bQ1dHreHHG8bMvhxOaHQ19aw4HiiJamj44YMWU/ngTQ6U+VSwAAFe3XjKUuydsmdUDqWjjiN3Xic164xoYhHsZNy7eK54+mRawRHXKsUoB6CyQSKu+mIikm8UuhRlJq0F16/rk2VSwvaLTQqWnBO0hl2Hn0zRQQyw+GjF0K9KIzLZmm2jwzM8XcdD9RnTL93Cxx7EEh5iVLq+gFVzhVAabHI0RemVttWt3RyaZ005NKQxHUAkA/TjOzaiVUKvG1pwVQcEHFEvQfeATXXgVgTNTNDTukcS73VVcXa3+xlEBjlfZwxUX06fPvmZJqI0jMjFXs0ObJNdxj9AV/HHw7Cz6n2zWBxyyqWJketg4PkKr1HvnfESBHLKu6qodVHfERapfE8MyPRrytyPfjCnhR4/wCIzB7sbeAfQf6zJgr7CqBo1RpttcgAdL7X1xWo0+/ymP8AloL0LH2v/vIyzrPE0oeKLmyOQPSx6ZRHqZdRvkMc3CXvAFn0H76YGxqaCCgyNG7yRtVuAOmHqY1TSVHJv2c7dvX0yN9Hq5EYx2m4fzO3Bv8AvgmQUwmk3OqUFXn98YGsD7Y7RAOplkmEe02w/ERxyAMB5XE6q0beFICUJAHN5xYUQXsS5lLUW2lfY/ONaMAEyyFAtfgbn3+MA2D01scWq/ioyH8O5aIbjv7jGtqY5HuWSlK+Z76e1epyPwkWOIrCyRspJYJ0HvfPvnUETAHwmV2NeYA2D2rDYnFCpI4p9OdVGGtr2yj8S9r6cfORzCGLRrKmoZmkIuQ/8vXt+uaMlpCqafcAp452n557YpdBDKrA6f8AjAUSXpG9yBijJmO8hk1dLtVUNs5F3+7+mX6VopSAWbcp6pxddbyZ/srwJfGtUZ+VJPHb9Bj1hl0mmkXw/Nvvjk16e/Y4zarB3+ioERy+EsB2v1JPA5/S7yjUhUVUkQEBSNwPAOZaQGeQyLK4YcEqbHbj2PzwecJzI0jHfaAAFqHlrt+x2xaBxLhDHIqh9jsvJIjpCD7dQPbFIQJSXUb934RxQ9b74Onki1GqkiCbHRTVttB6dvXH6lI01SrFTELfJ4u+3viuwfoMqYPM7MVJta6X9B0zvhiYWPDUAlhYvcbwmuIAamRVU0oRT0/zk8oXxUZUkbaSoN9b6dL/AMcY1C9iJ0i1C7Cf4sZO2l3C/RjfGcV205SKZIj5RbKwPHasZ9o6WVdDGmnKeI/Ltuo2Ox7ZNoYUmRTNLEyqPxfhI7du14X0OhUyDeViVdtlir8EZLqtbpZpU0YGyWqHWye1Vmjr9IwRSJgzL+JfQevzmPJo0g1HnEMqudxdgQydh0740KfZRMCP7T1CKNK7LsB5YXYHP584rVa6PUD7tM8crlqEgfkEfTrjX0pkRFUqGicNVXtHuMo1P2dGujQMAoDbztoq99LPYZW4p2ARqT9nPJDqR4atuCbowLsVz04/PrlkDhdQqI5VQLCO56Hv5q/pkel06MN0bAXSugsFvcZTo9OZpWUBJwVJD7S0h7cD0xZNPA0brfZ8Uviy6mT7xp9SADCaIJAr9++fKapT9g6uaFVkl+ziAySSA3AxNU3tn10eglXQldROVMcgCOwHAI6fnndLFppBLHqJPHiktAGSwwPb65ozrH0Qf2iNVfUUjvFZAKqsnBNdL6jETSaicRwR6V2ml5LMvFD9cnmhk/8ASc4hREk0c8gEepdQz6f0R76j0PGUT/aGsnlk2a+WRwVAEQrafp/3glBRf6HhJspT7K1xlaNdOhSgfKKN12yhA27wozE8kYpkckmx/XMeP7T+09NN/wDrD0STIJDbNwfS+n0zah1o1GlkjkkMbEA/hs1fSsm4oL5DQREgaMmRr8vN8+/74wiNRKu+NIwSA3XzV75yCYRSyRmIuzkNuHm/PGRu0gKvasO4N7hifomDp43cv4kpY9bCjbxjo5ohJuCLIydbY8DqP+sRpmjkSYRtSh/KC3QnOyaVpEJFQKer76o12xkjPeyrWIJYjqVjdgFtaO279MCIGVk8ceGN4aNd1lq9PbBGtmi0ohbnaaDHj64toz5QwFPw2w1fOM2rFSyinUEUdsYWjzR7decUgGmheSMKooFKIIPtQyuXTBkHB/idQaPTuKyN4hpJiSqBLFkDgcdvrmaadgi01RXJNIka6gIWD8pH3+D6Z3T6kJpjdsp52kVXvizZBcAUDVDoMCY/h8qkXYN0Dhc2ngOKZbFOIRtKhrFUevtzjHEergYhmA6MAbv1GTacAEqpDEdO9d8oik00Qa22E9dxq/bKwbePom1TwjgH4kdww6fhoD65V4iNHRJO3jyrdjJWkZUACkByR7nnjnKoP4Lku1rV8UAPfFg6dBl9niybbktVXnnrWKP3dY6gkJR+eTd4KQosskyo1ve0OSS3xfb4wNJNG88qja21qoWKOPJmSGIVlNyRhlVb7AD/AHg7DM4eIGNCACCtH259McFKIzMo4469sF3jZV27o2JBGw1frkEvsN/ROkUK6guACe0l8n29ucMGMyMsqsH67lJr9Md4cXg2BwLvij9MExxspjjlZL5G02b+uNxC5WGsBUspkDR0eLPJ98bG89gqeF423gRxyFyHUkjoSaJxgc/hVwSB+GuuGJNs9LI0Y3tEl31HbPLKlsykxlxZCoPMcXqZrir8LDi6uj8ZPHoJ3l8Ulmj20qdie9+gwuUrwySrSiZY2lUSSkqTzYIH/eSKINKskXNvILCFtv0vj8sZsaCbfIAFT/ie+GZCyESkLu/mJs12xbVjrBcivpgoUfw+BtHJWvbFKsupjYyyzJbEqgNUOn5ZWAkhCecV1sdPr2+cWhVkkpdyoLA29sD0NnYIooYkAKhVFF935/HOTyRo38e0Nkgeb8XfkdsaJYIo2r+GjcvZ6HFRFjGYoyzRhS24mzR9CMzpqgpO7BiLNvndmi2sABHxvA736c986JJFmEccQjjjffvZzb2ObGLiUxSwL4g8N22hT+JqGXnS+eonG0sDtbtmV1SNKk9MvXSxSqs07um0jhTVd+fX6Yek1W6RgGnavKGKbQetAH/GWeBwySBfDJ83G78vTI5YdSTthA2A3vCWK/scD5LRk01RZOI5PD8QOr/i4JNcfkPnKoHjXSoUj3OeV3c0MngnbTaYzyHxD05pRye2NSZpI1Y34gJDULDD+2Wi136Rdgvqp2l5X+YAOSALPf4ybcgm8B5XFkhUTqq+/wA31z0iJOWLiGSdW3RqoK8DpfY84rTK9EOgQqTaSE8f/lPYfpiOTHjFUUVNfhx75L5Vmbp648ziIlWYErxffOaZUkWMo60RyFHHHHXFazTS6qNkIpS3RR097xtoXG9EIZJjI3jKV7pXnB/xhGbwzDtQMp4dSOR7is9p9P8AdZrVZKoAtVg+gx2pQacRz+EzAv5d/UV6fp1xUn2Nauj0MTJI6F7jHACmyPXnI9Tp1LWUdlDCgHofPxlUsjrodgiKqzktRJsdT3zzRQDQBvGNxr5/D6Ed8DjawKdaZWq01oscEf3h0cMd52gDnv8AoM0BpV0hin8GSXUUQlnyBTV8dOO2HuVNOygU7tYUmhX9+2MGui8Dw+BYryrfHesSKSfYZSbAk1R+6qromoT0PO34rpnmhbUSmTSsoRfxlgbojqM8JNPAxZX2jbXEdcf1vE6eIfaEwkilWuDakg/phX09MurBEZnVw68N0c9CRz++mdamjVid4uwyDhvzyk63TLUWqjKyNxu9T7/lnpHUxq6bUDdGoEDEcU+g2/okt413kFWsmt3Ue4GUwiUEMsoKen/HPFX0pZ2L3fX8SN7e2BqNeunhjlWNQHPpVmsZLj2B70WPqBGRcTk7b3V1w0alphxXTr9byOLV+LIqznyv37HKWgVUXaSFslee+VTvUTarsJpDHp9xDCv5cHTBjqPHINN0WzQ+nrhyqJKp12/zDsDit5j4cVuNVd1gcqabAuioeErtIjBmIpl74kCSdjGTVHuKsYZZREiCwBfRv1yfxHZFkJWgKPRieebOM5RZkmF938MgByRzupSDfbPeZB4ccgdx5trA7jz64SSB1fYrqCKtWND6YATZuXdyOWrg4skl0FN+nZIXZVpNtc1ZBwpIiI22x89QCOv1zsgVirFiyj8IB5+uNipgSEooawwSdoDbozjEzFB4W4AcMTyoxkgY8xgxqh6hbs/2yh4xHLtCbQ/4WBqr7ZyWEkbjKdvAFmifr3yfGrH5WMiqXa4BAH4+Ko4qPTO4laRzTcgdCo9MZBsRJm3KyAfhPTnBCpF51b+GwoA9vb2+uUtNKxPXQqYbfCRJCfRl4FYWmZoZWG47ytKx6t3vM6RnafySu5cgFR/KLuxxmiit94iLea14LUT0q/nEjXK0UcaWgl0kJYo7N3459q9cz5T4ikLpz+Owp4J980I4I3LmYmNhxSv2wxFDI7MT4e42C3cVWZxcjKSiQMGCrGCFC8gH9QKx2x4d8k1rfCgNuPH9Mc08EJZYUZuyt07YtHllgsM0QNAN/auuTpL3Rrscs0GmgBFp4jEjapaz84LR7tvAJsG2N0Dno2VRwg37+O+caRPF8oa1J4C3eUuxaGyw6hd0aSoS/Hm479azn3ZkiVSqMBYO3sMUZip8PwvEYC9wHb3OJl1HhziJgN55HWwO/pxyOcLcQJMdoYod7yh1ND8NUB83jtqwyMZT/DPFHvz++czo2MaM5PDtVWbPvljs0A3HktQo0a9friqSoLTsrlhj8rEtIB5h2ByKfUxNMsG4I7kClFWPb/OUwagTlle9o43dCD/nOT6JZVV4pqYf/iKO3v75SX5K4k446kShZOWu1U1d9TkWs1LeKqIAjFfM23r6fXNFtZFsdWZmC82KJ/xiJF0/hmUxblFhQp8wBznf1ZaMt0ij8VpBHFpXSMDqSRfvznmU7WMrbQjk8N0I68ZeYogA8bupApk/EfbOR6OAbgWUvu4AYi8VwH5on8O1jMYaxz5l6X6ZRBslCk/iQllY9vjFCOXxVVW8T+WuPL9cYsckYIK7ABQBHH1wKwPoIOdxar5/Dx+eCUZHLsWYhfXgC7+LyaUtHGWFeGBexXNk+uckllnJLEoEFHdwO3fBYeJTqdREdPvQrYIBDMTWRQQiUszsh5PU3QzgjijJQqGZ+WIahfrjE8CTfC8iDkm7uj+WbsKXFYU6cFobET0F2qoPX88cJvuzjaAu4UVA4B+mSRamRrRHDgAC0PA9TigTTkWeQF45b1+MZOuheN9mjqmIUeIwEhUny8kZnaoSbxUrhnN7aq8s1KwmXxpC23YFYbTd+vvkbwGTcoD263Gdw5564ZK2aGIp+7Iioygbeu4jljlccEcaqx2rsX88THPLIgTwk3J13NVe9Z1D4lMJGVO4qh8/v1w4Td+gHw2aQNH5iPxFjz6fGNUwIpk3ECuAD19/nJ0VJJJHjY8miCOh7n06YtmijCRSh2CndvB/GOwrFGqyeZ21O47NunB8xDcmvfKAdNHp1jhRh4jWo23Q6d8VGieObKFHPlN/hPxljtEQHV12x0Ch4Cn5/rmSGf0J8OZFReXAvvX54bB5GDh2JHO1RQ9hz0wG8moDtZ3fhN3ff6YL6vxwIDHfl5kQ8D2A6/ngRqZcmpLjwwAHPJoXh6i5NECttsajXLEds5ArpydgF8ADsMrSBJY2EnN96I986oRlNUc8mkyA00QJVSLo0OPbC2PEXkSQqrGgh/rlO4F90cYCgVzdt8e2BHGZrkdhIrEhqH4axeHgeRAzzOSxjBJNGhe73wGQ6ZPIg3Vd1yuUfc1fw4QTHGzghYzW2jfOPYyS6uSKUDww10B09LPri8HQ7kRPpH1hXUPGCS1FgwAah/3x0wpYBFAFMrbm6KOld/30xmo1baU/hq+rM4IUdjka63x2pJlXqAHYEk+owSUV/Qrk/wCEWoKFTISgVFG16OeEqaeMxjxNz0XfbuJXsoPp3ylYpQk0iw+WNerCwx7AAdbw0XWRMdQukUIVt3UBS3uR2ydNFr8JDFpfDczsQF8ijpRxcqxFBUBt+Ba7io7Css0+m3sZdQIQRZ2Kbr9/pj5Do9Np5Jog0rbqIUbQD8/OBRZudMyCvhzopDttvahXkCh09v8AGOEOsiBYMXUncRtNUPfteaUH2hDAi7I5U3E0Dyt9/nB132nuZAzA7bIevbpQ64eKrs3KTfRLJpZJtJHI2nXx7IEVUWHXr0GDF9mvpNONSZgssg8sB5IJPTk1iX1sshCjVy7ZDtKqxA/P/GC0D+J94m4j3VF4iBj+XXGtI1NG5ptIgiH3jawP40DGge5ymDW6aFdkVSdlCDrXvmLHrYXRlMjpJ+ELu6gdvjOGTUSSbQamX+b+VV9Lxl8rj0iT+Nvs1JtcJ57aMKQPKhO75PGTF/BcK4j2kE3u/oMh0w+0NrGeYUprwvD5P/6XfPSzCRraEK0TG9qWB7emJOTbthUEsQazs8jah9Tti05BYWFDH0OT6j7QkmdYVQO8nLygUvt/1halH1PhRwlUg5Bpq3H6DriYNMySbkkJ2k/iHJ9ucXlhVJegyT6lSrICN9gXwPzwpWieOGGON90fmBDXXvf1wpohJBUS/wD22DnbnIpVSCR5EZpSAlr25skj5/pirRs8DHhxFnEYWhVE8t9cRpWm1k5k5WM/hBNcDtkM02t1mqihjbZR2lm/Ce3GaEwi+z4P4cWxVJ8TcaA9x79Mqo4K8/p6N5/vbiJSqEckt07VVdc34leLRpBNH5mG3etAjPn/AAYRo2LqDY3bzd17ZZpHg0oji087SNJyfEJJvvzjKSROasp+6Txu34zCRwCwJOMhbTmQKCfF/CxFnbx29fnKCRuFk0w27eTuyTWasxyxwxRGOyBvCnp6dOcbFpLZYVuIDAxeYrf4WJ4vErpZDtdZorr+XqcE6RZfDEkZkCgjlav3A6YMsOoJCQhlZACCVJUc9eOuBu+0ZL6Y2JleXeXCtH5abmifTJzEkOokBUrEy1Q6lsZOS0aqYuU83Tv0v5zxWalO7w1U9H7++Z/QyDmii2DevRB+FipGcZ4EG+KqK1XiVf557wWkfxo5ba/MN1g/2zJ+0EkjlLC+TtRODQrr74GaKvBkyqzK6tsR+o6g/Xvg6lkcht7xoFvsQD6A57QwrqiqPI+wDyrt4U+pNdcdPpTHHSxI23uao+/zitUrKXTokTUyJq0E2r8FAu4ABQG7cnNVNTJK4jEwO43dCyPnMOVG1GrSQqSqAhl28E5fBZkSOSRUvoEPB97rrjKTXRpxtWV6oTSCQEpLHtoUa/XJtJpWd5XlcccdKK9x2yrT6N13hdUFG4sfLu/XENF44kQPv2HzGj5fj5wtPsRPw5qBFHGRC0pv/kD+gOIkYr+KLe92TtI4PrQ9sJJXcosb8BeBdAnJdZJKXaJY3Vto56j6WcT0ol4edtQosRoYje0XQ5/POvpz4V7VUVyCAT8cYqIfd3VZVUqOSzC+f657UQS2VjlJV4yRSkcHp07/ADh/Qw2eVF04ZDRbkEEmz8dsOYarUfZ4D6I+ThAeT8nJTEYP4M7n8Hcf6/XPaSJjqkgjlAoipLHnHX88dM1En2lp9V9/bxGNWFVb/DQq+euAmilikXxZUL31KED8/bKNc86aszOEsvdbhyPqa+uT/ewKDFTvJPx3s4XJvoZXRTLpVMqmQbljIB2Lwf8AvI/tCOKSXxwigqeByAeOmXKs50UZQrJA5s7Tz+nTFyyyaePesHPq1EV3wJtGRHLGXY+GkiAKNoLCumJi0pk3sJJG6NYfaAfz5y12h1MglWJHZiOC1fI4POHtmJJ0yRBl52mPge9nGTaQbA08bIdzT8HkK3P1s3nEMxZ4xKqqe3HT3HQjOs+vYqDyq/yooa6xW2ZN8kbxLt5DOwAW/Y84FbFHy6eFJFYsYytUSwF9OR+Z47ZLRYyvvEql6R3QFqHp7YyDVSeKz6gQtsFBl28DuQMFYIWkLCOCfxidpWXlT157Y6TMRlmd18WNY3QEbgi8+/TNKPRA6aQNNGVZLCq4Ybh2/I4yHTjwiIvCMn8zBxQ9rxM2mWEFzJFxwwjrgnvx0xuQOyKQmRFjYBA1jcjXurteRzGLcTIylE8qqgJ/Wq/Zy19RohDJCqSykG23NVfXr9Mlnni8G49OY/VFsg10o365SKNomGcCJ4oo4zGbLO1iuna/XFSxSacjZRarYjgJ6YwtpdPDJ4sIXxOAQ3N9SaOMT7qYv4UaSNtti53D6njp7ZXrQPTM1MCqSqybyFBDHy8+ld/64+HSxvpWEssai+d5piP9jI1dJKjkKnrtPAF9rzuwKw8RAxBsqFN19OM6Gn1ZzovEejdVDyGNF5VipN+5GTaueEMFjcSKCDuYkgnr3/7wGCzxppwpZ93mAvgetepvGTaNYpUCMJFQAeceYnuOOtH1xUku2Nb8ChWYASBELu3RfMQB6n/OUTM0pKbTHqNlKK2Hv9PpiZt8au0MTClJuME7e3Ucj5xend5mDlgjgWxLA/Ujn/OK1f5DJ+BmFFKs1xvtG2iSrgnoPSsZ4ZbTW5W4v567k0OP84UyyQsjalGhRlO00DfHI9fpj5WWSON47EakMLS2ZueSCPrit9MKQCRO2hkkkIGohFjebBU+w747TwznRBnBjZOQLFkH57dsav2hPo9UtR8R8MOgPHf+2e1TOZ01mkG53IEiOQ2zpyK9v6YjdoYbptIIBczIQ/I3j8fwe39DjYUjcMabeH2goSSe18cfvpi55mikYSTxvcnJU88dunQZZBCRG0sTug/Fu3Abh/vnINv0Y9LIkJR0Jsmm38Ue/wDTOaiPayyxOhY+ZSJOBR6VkkhUqfGKqr9iwJPwcndNsBEch8MdWAsCuvP+8yiYNta861zIgNsS1gN78CvzvJ4W+0UlMV74zTIqG+egF/T6Xj/HSF18KM7ttGjQv2rPQtI7b5lSkFsx8re/I974I9MouuhTQhSL7z93kkAQVv8AJY56AG+vHf1xk5iJsVGxO1SFAb446H88WdSIRHG0hKLyAXsgHkgenbjDOpj1JVYI2AJqyQQvub6n5yIwLu+4udinZ1b+cdyTVHt1wII6LEuCxAtS5Hp0v6fnlGokSODwxK9coGVSBX+z+WTq0fhxySOFYg7B/NQOAyG6eHxVVXocUdqrz+Z7fmcu00EaPudTQBAWQgmul+3TI0eONnWR3bmwx7g31yvTzPKj7HCgkEeY8f7OK2B2L+9CZ5VV4G20Wpff1HtjIpmfTnw2DckLv6L6G6u8ZK33aRSux0dbCsOOuca0TdRBI4W7HXp7ZnvQEL0sRaZFk2BvUMeuWfidZIhGd9jkdR3q/fJ0ZJZLiMimqU109sbFFqC91vDctu49vX2zGY1vIxJeq5J9DhRahmaSpBGqkB+NxJ9AMFlkPAZSCo/m64ccRVPBVmVkYsGKgg/vpmT0Voc84osFO38XmPJrnpWckmAoNCQz02/07++Ar6ZX8USlz0Brk/Ht/jGxTwyv4MZKkD8LHqPg41iByTSGLysPMpoMOOMAeLJbFxs4AZByrd7HfJkBllMa+auvtXQnL/DRl2khWah5T0wXYKoj1MUcsRDHliA7Xtof1xI06mRPOPDuvD638E/rlZ0skNbbe2P/AJGokdx74uSFo/DCqAS17L3cel1m0ZMAxR0YopDssmSuK/XBVo44wiMQovoRZvjp3/rj0CySruQtJu2N5qHxjJNJGvifd4445F5G/nccAbJ9ZBDpwhjLoSfEYK3A+fTEGPxSZPEdWFKPL0+n98dJqkM7Rzac+UHiqBr9OcW8Y06KQCw6KjN0/PA+wo7qxHCFSFolFUVZeQOt+nfK4PCSPwhukKDzGyC3161kyOJ5N0ygK5rzEAfT3x8yiMsVWzXlodR6Xms3eHg0HiiYL4JoFgjlmJ9PfDimg8ddpBB8ymQG/nM2cs0bg2NxABYEEj0+fTL9PGTDGm0oeh8nJ9LwWzNKh0ywybklmVDdnbyBhMYxowsEgcfhuj361WAdJIJC50xkHXcSAOR69s7LtjQTAr4SjqDZH0zUIMd54dNE2zcp5FH9Tk40v3mUyqitRorRI9+nHtlx8LV6PdC4ao/ES+ldCL785n6SOXTje0hZRdql11H9MeSAmdTxZBL40MccwFAAEAHpYsf3ORGOSOaQGVE2seFBBB/6zTbUxzpU8pvfa/8A1o+v5fnmbI6Q6ljGzNGOSSOb68epxGUiVTu08YamoDbSuLuuKzmlMbQltu4oLCtZLG+57njIJZoURHJlEm4klhwp6fT4OXafbHEJYQW3C5LBt76HAGqRJqdQrxTsoCbGFebqb6flk+nErRyCEBZAeFBPPHbv/jH+IIdcul8MSRupLGqBFX1OdaaNIWh0xaOzSoOdtdhfS/W++FUNoBhkSFROTJKy8gnpf9/jLooo3iCtE3NjbvIIXt9Txma7LCFneZvEjN7CbIHz++2WJqH1UZ1EbGOuhvdu/wAHB/AOzqaL7u0h+8mjYYMbIrkXWRtBG8vEybeSS3B+B/nKypaQyPJtUcyFUpj0/d4jU6UzIwWXxFILcrRA7V3vB6FBLDFM4KORFVCTbZJ789c0JI9OFiLFmVOAdm6vfIIl1OjjDKNwYUFVgBz34789Mt0eq1RliXVHcxoccrVV8+/1zfsWVjC+j3l3slySqHiu3S8z5/tDUSM0UP4UHmRR07ZTqIZlcOYQYmJVvNwwr064to/uoYhyN/AbaPfqeDmsCojT7R0rxSxNCjC7byl+3Njr19OMadNpvuP3iNzseiiqlAH4+mLTVLpy0TpGit+E7gSeliucUkOrKyRLpNQpPCyqoINm/wAsar6HeFWmk8ZDGEkfwuS1cDiu31wo/sddUgPIcv5m4BPt+WZskn2gNIumcPIo4MYUKpb3rrlf2brTptqSxyrqUStiqfN8nkHthca6NvgE+hi0tx6pS0Sm1CNtPFVZzu5hp5IYYzz1U82bvg9s1ZHRogJidxXmP0uuLxcEaIFbT1uUVfUV7ZLk60PLNMRoZFdkBosPNRo9et9jjk1Go06uA2qVIxahwNpvr069enGNnVI9QupnFbW3FWY813rrjVSOba4YReJ5o08QNfciuuOpDPoVp5jrfs5kgmCRmULew7ia6VjZH0mm0sAJHiqNoKk259h6+2Mk0hE0W9m3FQdu4qBzd/oM6TAJBHGplaW9jh+PfA5aLYvUywTQppftBGCahRGk3UN6bwffj+4zJk+zpNARpptTKdJCPEUIvmMdgXfRqPFHkZpwyNqJZIpYEjjjB8Pa5uwOpvpXv6Y+ZZPtHRS6ZdV4WqjiKwThBSt6buOCOCD7HLwl/wCWJJNagZPsowok0E0MikH8a8jv0r64cGkWQDUpqCd1BgRRA+Mz/wD09JPrtDp9LqT4kul3JqBdFCDwK78Vz7ZuwQF22yKyV5W89gn1yfyLi+JlLBTNDoYmaZgSP+Ki+fWsCLVtNpmZYvKDfiG+Rx/QZRLJ4SxgRxhT5QzC+e/T++JngkeJfCl4YVtK0p9eMk0FNelC+EyBNHTNYZqXge/rhrKgkZZI1UghgWJ2nvx75HHHqdJtk05UlAA5I3A8/wCMuk1tnerJGGPrZPGGvsV9kzHxWYSOBs9T19/TGNvjRW+6lwpDcEiiCOf742Pw9qgVGxBbyDj1xrFHIZhvZBSlr4+MyM2WacifxJCdvRyj8hRVEDt2vJW1kRPhLt2MKAJ447XiomkaQIq8ncDuHS1/zWTyh1EJcIxUUxby/v1GVlJ8RIwVlquwCh2Siw/C3HzntQ8cali3WwD2POTJMQSpjDDhlKc/J98BdQzQMQG3F+AbOTsPF2P09IA6yFmHNqeThvEC5m2h7I8t8j1+uKgV0XdJIWJa6ABsemUGICZ5KA8Ufh9RhQH2HEzLvMnrZ2c7c5qHGoVo0lCMD1CcnJpdS8e1UZlYE7o1UAH5ONS54g4QXVgoOD7DteNfiBVawYVVSG3B3AoM5NgYSAaeZqH8QdG39fj2wTpzv8kPhqFBUE2Qff0GLXTSzkMNQsZ38P2bn+uBt9DYymKWRvK/k/4q5zsBiZVYSB0BoUO+dJVw6su5ksE1V++c0L6cqQimNr/Aa6++ZL8qEfWDJGnOpCQi4l/HadfrhRCIyORXQEUO+ejlBXgAVzQNYt5RFuk8S0/mB4PxjWrF/RQJFoiNnYc8HFxzlk3Soo29SPXBeeKJ/KDbfzBvw/OIkOoecfd443WjauKN/P7+c3OujKBqx6mFvxlVNWtrRzpkfeApJWuRfTMiaUwzwymN1ZwVD0Ct9wxBsf6xryllViX3dRRoHKP52sYv/Mp1BZRI6odpF0TyDi9lwoAhPS2vdX98njeTVSKXJGxQau+uXMwRLj22Peiclalof84IKCNCFkNtdkngZ1JYTL4QbcdoHl4HvkskxVVII3S+V76gnpixuRBcY8vO4GyPWh/jBGVMpxtaUTMkjMiFl2cMdt37ZOk2niKow2BFrcnqbrjKYI5PvSmRTRPY3t+uKm0iS6mnQlrPmfvz++MEr7MmumJdHXUJOnQClJHC/F/TLtJ94VT/ABleP/8AiH+sYdPGqKr7QOtgG8YIA22gKPp0r3xoqViSkmqI5BJIzEMwG3yoP5u3W8P7PhnE5ba/hqCDbWL9DjmREkMW4KSRzXpgHUGJJIwybrrbd181lFGpJs1uqQOpUTKsblZFlYlVauB7YBMYhCRsUYgjaBww6E+2L8R5dQgC1acKf5T6H2x21fBSIxUxPKqebHpi3bbGqhKQ0AxVW2fh55/TKoooZRvcA+a9xXocR4LkyJIhHAChjtP/AFjQsqqFYkJdgdz++MSOAbsaghjViAWQg3Q5OI2JE8pVyyyUEs2FoUAMcsCldxB6etWMKbTxKCIlWMGubPTvlXdWJasmaXewRm3givbj+mL1eqaGS9iVW1aJN/2GGiwxTFIgniLztB/EKwTNHOm2ONnK/wAhFEc+hyfJpdlFVky+I8auBIoHVtoG4elfOUywtFpy5nbdIeldMNNOwVRsQydUXt7f3zz7/DXxI4lbu69FOCmkHluEIIMt7twjIWm597+Mtd9Pp4oU3K0rH0qicUD4hMEkSMo6KFBWuvXAn8xVNu0KLIDd66YqdKxmrY3xJwCwpt/BDvWLiWbxDLGqUvB2Vf6ZK80o1caAgIwslxZ4P7OVRENVq6kHigaP798XlYWqQbLHqIwGh2bXJBI6n/BwdMv3R9zRM+8bSC44HQ43ZJIH42bia812PnAXciDZCC6k9+b68Y3TsC6opgnRk+7ks5/lL8b19/f1wpYfDRSPLzQBUNx85MZXXaAabqoZSVbgiicemqJKoUJHXaTTKD3GVU1JaTaa6OeJEvG5lqjwOCcpVZlhJO116gqu04AhcuZCDICABfb5xhldOJOL9OgOMlXYjd9EqoDZQ2B1BF1htHGyLyVsWT1z1dxai+g9ffJzPVIy7lU2o+OK9TkW4+jpNjPBMzNHHxtPUNzgvpCEC1vcMbN8V6Zxdmok2MNpA/lsDKFVUcGNQoHovGNBJ6Zto7pplRzEF5FCz3+mOkokVxYqx65x7LpQq+CDjF8PbsBpgbvrzlu8Jv7EmgyjxHX12kE/GMjCqWLMSGHxfvgSQKWJ8QKAOwN4B05SLg9ORxdYqbT6NjO6xI5ijBnXaDsKkg3/AHyIzhIk+8fjKmwtc+w9z6ZoIGPmK2QOOO+J1GlhmvxYwD69LOD5It6NBrpkskzLEqKtK5un/FfoRnBOyhgQSrGpD6cdcZqtPG22ONiXireAw3D068HPRRyyfxFjfbyNpIJ7+9HIVKyuUJm0w08qsDf8wYcWPnGq/wDFVzGaoA9ePi+uXQxoYU8blbtT2H+sn1OkJKo5HXgA+UjKOLStC808YbhIJ2MQjLkmy3U5LHqg0kqSkArzwL3XnpI1SU0r+fyhjfX2wI2bS+JC4MjLzub+2LKbsKSoc8StOGrm+t8Vx3wwqA7BMm67DEXWLialVlcgEVtPRcbHpFWBpGkDbq2kAHi7zLekZ52TzM0bMAX1FsBxQI70P3zk+r1iRSjwEeeRCFaNQCyX6kmhXpljppVkWYacnbyHYWR8ZOyxSMzQyXZJ29B7374rdDIDRpLqfFk10nhorfw4ojQPay3Fn26fOUPptMR4aAPtoFr5r0JydST/AAoVLLQW6NA/XASUJug/lLgkcgsffMp/aDxd4VTSQQ6dUReRwCnQfH+c66t4O+MIxWq3H+mQyEOXh2+E605oDoe+aMLxtEKYMVIFk5lKxWqEap5tNoWoeHMxADM3A5y3xYtyLbGxwRwf+8DdHJFv3Fz13D27AYQjErPI8QUsLojkY6vwR16c8Z4EZnDPGfYNXx3ySeaEDfNCXQC9xUqf8Y6aRVk8MKaZgKUckepvtk6wvAS0pO6yODY6VWI2xopHYjC6/wANXRTzuDcn8xjvu8MziVJpEdRZL9R7iuMnjdXQRKjM1Hgmxx6m87CZTqNrrtIAB2jjpgX7Q7RQVlZSYlEisOqNRH0OTyiXaUnO0EVXPl+cLapKqrO4NksQeMKN5vD3hqXbQrtfzmdMHRl6kmd49PvdVU/jHAIA5ypSjvGBJ4l2QAfL6HKWYSwrHJpGdnb8Q4UfT/WM02nRxUVq4/ESoo/lmULdIZzwkihVz5XdtzUWA/F17nOfdBFM67N+02G4IPtlQ0r6aFYJXvvcXVfc4jUyxuDGsh3MPK7EXmarsylbwnGshE6yvpwdrbSu0gt2HPpnZWhfUOY4WCMwBRZLUcVWdhXTPuaVyXZeoo1XsOpwpAkm0R0STyFXkemC8HwYsccPiEEt4h2pGCSYx3JyeOKEpIwSRlJNkG6o9v8AGV6TTnTM7uvemtuFFcDJhGkUxRGPcsB3718Zn0KmejRVmD/iVuRuF7T69cdJqoolMSkSSDoDx9TiDTyEBWUgWC3AJPr+nGKlXYE3LaIeCKs4iGqyuH+M92gUV5FWwSff0xSLINe+8RLGP5ido+PjExPLL5FtVJsF2IHtyMNYnmnDOh9GrkH3x0CqsN1h3iTY0TvZQQiifXGbV1I8ORLukAbrftXGJCahdsqEMU8vXzNeP0w2zLJOviUOBwSLNA3mXdCvoUsU+nncUXRTSgmgP94b6csG8Ency9VFD3z0hXTamWN9QfxgCMm+vvjYEikIaKRbAKjYOAB6+mZLaM36VaCIGJW4cXYPUE5dzGFvyr14PGRwyjwxHGvkPQXX5c52TU7ag1Mu215W64+c7vjnGMTlkm2FqGMEhMe0qaIAXpZ9sUrzSQlUUBlJF2RnJ5BPpf8A4ro1Dgsdo/PIpJBCQUmCc0SGsA/3+ch8jSlhSEbRoaWKbw9xAV6PBrgdjxjtPGY0aNqBPJazbdzWQ6R4joSVe1diCwPN/OSTpqZo/LqZVBB4Q817enzg/wCijRuFto0jBpY2aSeZJF3AorUSKyKaf7OmnjRSs1/giVOSee/7GQzvOgVDEy7WBUKwLE89B+eVaVmaM6iQhf5YTY4J/F+/fF/6LxFeFK7G/aP2rpPs7TADkchlBogjtmYftNPCYTzOBLRCfh3d646+mImWPUTtag1ajeLP1JxKo5lCrpgypTUT7833/LFlPkVhCKRfppw+pUMNlgngnr71lcsM82p3Knhr3ZjtAHr79szUncTu0jJplvcoZN1UOnHNc98pm1EbusQJmeVL3swpaHUAXiJI0k7wLUw6WN90k6KwIG4CxXcV2xJh0rpJIYZ9yC1JU0bwppZZIEEUwDM1r4agN25xUaTus3iSFpOb3kVdn8+ubo20JMUcOxpdO6gD+dro+wHzlk2mjk0sbiVqC+TZTBf7g5nQ6eWDUUyO/iCzYBHHf0J/xmpJqPOAhYem0DoPXMwu8INZDCrQBQBqEFSKrAGz8ZSINQ8P84iraBVj8+uMtxqFmGnQ+Lysix8qPyx0LyNH5v4z88hha8YOxW3RFCmqMMsVKqI/O/i/oOuLi36eQtKXiCkBFBFH1J+M7qIjNJ4ETuFc+XdbWe5HbJtTv/hsY7WPy+fmj85mPFWVxu8mnpiWcG0Zmqr9PXE6nxkmSLcZCX87c0OM99na/wD/AGyMlGgCL3L0se+aBBWVSG2BxwJK/v0xEmnoHjM+Ix6XT07shltygpfnnrkIZpTqJSwlEhrw2aq6dMv+1dMsmpiZCI74YLJz8nKIXi0MayMYCWYv1sn59BlY0tDeWS6bTRwaRGSBlCjlrI72BlraTUa6OOQAOIyWPl5NfONP2hFKon8RbBrw+31wTrXkRUWUqSeNq8CsNk9ZPI2pV41aNNr8kHkj2+MQ0E7CV495VGqywAHwPjLnmAWZIkJI6vwLvrfpjIZ9BJEIn2KwWwAvQ/GZKzW14Do55AhmJl8tUzGgL7V3zV87qr8oQbPN3mRPIjtsgqQkhdx8qj6ZZpXeO6cvsqwo9fnGjKsZKa9LitdTu9FOJeMyKsUhZS/G5KG3OK8hDqzBvNS3wB74tIpEdpEZ3NEWaoX6ZRu+idUenhjB5fe6+nBzJl1sv3gLJEV4pdx6i+T9M1tfpm+58OLNbuOL9f8AWZJ0TnUBY4ixTrIylhfz2yclUtK/HVB0AGYosrOLLq/ND39f6Z1YEiZnd5UCHc7vbA/n/YY2P7KZZfEkRdwStytu5/tndbphHGIXcIzdV8Uk1harQpq6FxSWC51MVd6PUfXGvrdJNOFMYKgcMQQAenrmOIowRC0TPbEmQkCv/rR/qc7ptsZaZ2NX+DaKHpzi3hRwT0t1cy7ootpPVNydj7jOiJYXj2sqkCyzDn6V0zjSxOI22s3m8o5BPz7ZyXTM0ZkmO67IoVt9sAvWDVeV1VIFEYUjzXd3+t49o5I0UNNsqhbWfnA0+qfTwgIg8Rx061ipWkmhH82yT/ltv5GNaoWm2cHhabU2hmkkqhUfT6emI+0JlVFBLs8kgoEXj9PMxLFo2fnh2baT9Mm1qlWaRSgBYUNvIP0wJjJaIn1kbN5FlalKttc0DfpiU02r1JtEY0vB9fbg5x1WHVXA0cSMdzCrY388DLl1Rl02/Y6EAlgsnQfTC67KPOiePTazVsyPptkZFszkUP7jC+zNmleWKWJSY1Zg5mFE9Bxx65wgPArRCw5vbwDVfrgKpfR6iVortkQcEn9MKf0Z9ac1m6YqsQZfE4YqpYWPS+uBBooNHKiSwGSaWizFTS50a2bTo0awSGV0/hkk2voaPfPaKR1j3y6iQSScBi1gYbqNBadDvtXVeDIfDhG56AYqDtHpXbFJPqHVRqTGIFNAFKDf7whqA5kgeUvHGR15HP1/rk2o041MStDtO1qtgT+QxV9ASSRZqZUlgaLS7FKAndQFenTJxDPKvP8AFYqAKIFf2wzM+ngEeoIUcHycbvriJftKbSyKFmkCA+WJU3gfPPGMlZl1hxtLqU8WMKIdou7HHxiJ4iNIbZiVBI3jgnthN9qq8lTrKwY2I6CqSP6nHDWa5FB1fgSIaYIxAPtjqLRtI4fBRZCyxPJtH83A59MPVaIjThndd6kF22gA+1A857USPv8AFdokY3Uapuo+ldLynS6iJ9w8JAilfxy9R7DDqdm/YhNIkMJMEib+TQIsfKjI59M7Su7RsjBfMFNKa73fX2zXj1yOzGDTQ0eDtio+nXEy6oMvhywFVHFq20fpz/TGTp2B2Zi6aSWXbNOqIQCoRxYHwP65NqYCGDJbWCgbeKPv3r+uac0OiOzfGJIgPMxBBr198W2o0hRII5XRHNSK+3yV05As5VP1GMiaCJf4b6ItYB3NITu+R846FNXFHUMUNMaDMqhR82Oce+mglMq6f7RcsDbMQSmEujjjjZpNU78bitXu9KHvjufjEMOGMRq21gSVN7ut18VeHFEGlVGbawUDY6lQxquorCh26ndI8mx1pdpcIOguhXOWeNEdzfeURxFf/kDX7Chz/XOmTaJKjhi06OZtLIpkuhEbsDji/wB3iBOJpfDlkVUjal2pf0+n6Vj30okeMDVRlmHPnCkD8sKX7NkjBk8TTNsFbx7dqHGTz0b0GKSN2dYiaPIJNMo+Qarv651tpdYIIvH1PUux2Up9D0JzsaQxQq0OoTkgElSpfubI9Pp1yR9MssjyjVxvs42MWBH0PX9cySsN4aEbRvpyjeNGkbAFGIYmu19RxlEejVCJNMpi2g7k37+tEGuoyIQ6VZBHH9obkCnopPfoPfv06Ycf2aqlpRrYtsi0EkY71HqR/wBYjX7DZ1ojI7O8zsGW1V0vjuB7Vl2mTVxuzeFGqMookcD05Pb88VDqIopyjT2o53OpYel/Jx0MiPIsUE0cKudzrNaWL68G/wA8k7Y6ZNI62S7q9EgkdFH7/rjRIssjFDKyoBZ2CiOK4PHUY7UfZ+nDIH1yNETVIh8p97yF4dNp5tyMqsr2WNgn6YMYfD2vml1M9CLybqJUUzfP+Ma2olMSKdxAIIB4vtftWAZfG88jbXXkkLVDgevtlGm8BtM0o1ErSMaqgK565niAIbTeNITJuN9UUbd56+g7Y4adtPG8cCkRg9VsljfN9b6+mH93kUAorPIaIRuAOtk/9ZSsRhclVloeW0tup6dOTziubqjUkIv8L7FJ/wD2fHJ/phwOrswZURiLYAFdou+t3zlzaNXdZItMxRb33J5gT6C8mZo2YQKqb/DtjJJuYj15rEoKZ4yysn/xkG++Nxuu3IPe+/vmek8qF0kkVdn4aN+b3HavyOaselGnnSSWOMxlTSm66dvTChg0E7PN91iXd0sEkHpfSvjpmi40BsmfUTyUiokfk3NJwCfU1j9MZ5YXtgyg2A6gWPn1yuPSiWRGWMMqr0KBRH36dwOOvrhwageOB1b+a0FfT98YrYLBJLRqnhFpAu4gR3s+nrnG1DaiIiCrVjYogA/5xWp1R1OpMMxM3ABEbeGtdSG9j6cnOsiywRxKqGJ3O0dB8A3xWbEYo0zy7wrqdzfy7tobj9nKCZZmXeioLIreCQf7jINUDHq4oZCEkANOL6V652J0RUlMgJU0xYCh19zRzAosOlLh1aYJt6Bph5frWd0yyK3ima1qiBxfvgqY9WhMV3u6vyPge/v3zkiRo22Ri6A77Yg1+t4GgaPn00XiW2pO4kFQFsA/s486LTFvNqBaGtgvIoo/FcjxGkpj4eyjtw4dM0DmPxI3s+ZbHk/fvmtfQH/SiFoTJtACtfUL1Hx6ZzxEj1RuyQNv4Kv2Ht+uAJ/D3ADxCvmBauf9e+D9nguju8UlAkrv5B/XG/YrDnBdwwV0iBsh65OUffIWiQKhKxnkmiD7ZM0aRt5XActwjitoJ9O/9co3rC//AI4jIFCnyVfpV4GbBe2Iy74oyhPIN0CfQ++OjdpFZAv4zdsa217/ADk6IyySP4ZO42rDmvXKnUQxcx73ZefNRGBGZl6lpItex1EUbqoG1mPBPav36ZRvjlitFSKrCcFq9RxitXGupVf/AIxbnua28/oMs0Hm8MSrGpHB5Ne37Oa7wPSsGOOTURBQiqoa9x7enH64vUIyhkNqFbjZx06fTK9QsUMIiSy63QHQ/XMp2mmLCRTC45bncDgYY6clAaRQ8r7gDQoV83hTak6hgXM8jKKLJRBH5/7w4lSQO0m9jtoEDmvcfrxntHEyKzrpUMVldqKenr85kM2h8GoJRYY5LZRZANkD3xUpaFd4IkRTe7r9MXHp4X1KlPKrFasEBbNfBPX8hmudNHo1Dy6jcyDhFHD1h4vsVtIXppRJIYY4Ej3ab8CqR/N29sUy7U2RttkWw38M1eKh1hm/9R6GdW2xarTvC0ag2ADd381zga7San77ImilllV4/Ou7oPUf2xpRxMWPdHNUq6bT7tNcm6qYnnnrx0+mSMibWDkeOeN91Y9AB0zulafT+co3QlldqDHt179M9Exml8CWONFcWepKE++T0qsOnTtLUTEOvG+r7d6+cc8jLOqBtrA0AHIJHqL+f0w1jk08+xWDI5vxAOT2o889+c9UEEgSRw21qU2QecFmsHUaiFth3I7Dqm8VY+ehyWZZQGUUsTiuDYA63ffOwxRaqTw3jQEFgGsufa/X/WdWBYFIL71HDITdVzWboKpD9PpY5QC0YLkHzq12Luj0/MY4RPFuR/DLM+6x6VxY+PTJI5Jy4V7VD5hZB2GuCMon8OONH3s7BhbADkZmB3YP3cEswBVuyqbv4GNaJ4BD4k6xggitvXjjLkh8VVV9kkiAFdq7QCebwJoZCyLLCeW3GT8IJwpYI5WZ5iM6KFW2T8bbSbH59cEROZNwbahZdoplA4on6+mawlMa+EsZ3VS7H8v/AHkOs0s0lExNHGvDMHo7r4oenvgoKkKb77SxbzHTFi1EcH2OPdWik2TF5mC1/E5BHaq4+udczGF4o0bxC1Dy8j5ORX4kZUePHuSjtfkC+5wMZaen0BDn7vGqbiCxoU3tzziYn2MviKY5fMsZSS+K4BPQVhnUuqtHEedikF+nPpgSR6aedVlPBAZS619OPcYU67G/pLFE66g/eZVWYNdbuvv6ZWy6eORpHjU8WDGSpuup/dHHTQ+GzafUBfCALHYOWHavTpzWcf7q+lQid0O8Dw3UNR9L7nC7emTJftCdG2RbJ3Umm2DqOLF9QcqhRIh4mnmKoQShJPPviwmkBJYysAArKzkBT2P9cPSLGikRwzNEhtdx6AnoPUYj6GJ9SZdRCYNRGsrBx/GXy/Wst0OmikmpohEb80oXoK7X3zkGpjV5opINl80wBIr2xq65YoQFAt2JWhV0efaswrvpDA0aTWod5E8itJwOOATf9uuSJ9nS/eDJJOilgQUjO0//AJlHPOKl+0Wkcl2CcKPCa2L3+Xp64qbVyQKza3Tnw+Njxtbr3qiemMk7NTRPLD5y/wB7iWUD+IfDp69L9zz9cpfXePpYkhijlkeM+Qnjg1Yr1/rmdAh1MTiWUGCR6jlL8qfQ11+OxyrUaSL7P+zV8CRjIBaMqknk8n2FduuUaXTGYqRNRpPtbTzMyqftGJoJCrbTvTlWuutcHNyb7SikihCxFpkQBpDwbrnjvnxeohnmlPhyGYuAdNM5O1WB8wN8i+bz6T7Fkhm0MWtL0koplFuy9iCfS8f5o/imSSV6aiauUwMyxEqACoo7mrqAPXKF1KzVGUIBQMVkTzD6YCTl/LEpCG/Ox4A+OvbI9TM0f2jHPJqmVgmxTVoFvuOtnOdNUGrNF0CruKLaEgWtjjpf+snl1EU8CEMQL8wUHi8V9ofaJiRGRF8QjoOb98DRyrq4ixgP3lKogEgL785rsyjStlilzCxikKgD8KEUP73lGmcOv8QA7+N4PX0GBpYWEYUqI75JuvnLI4I/BBRzNdqQD+WNFPsnN+ACa5hKrqroa6WOe2J1gJbxHO6wTSgEH3HTpjpdngyeJqAp4AUgE305HfOPIRBbMSQxFKK7XeM74sCIX8F2jlUkMKVWAqvkHD8cQSb2jL7moV1PaxWNMSaiZJSqsy8ANRP5emODOILMYvryosDp+uTyhuRz7zthMsiOnH89m6/piX1iyPHHEwEjDy9LI98qdIJSQsSFmHmQtxXXjIo41WZ3jAUbOT2PqPXpgdoCpnEYyTMycjcAdxBFd+fjtmnMuzS2hCx3d1dEc1WZiVFIsqhQoIG0dDXTjtlMOoGpMmmLoY3ul2kEH3+uPB+Gkr0ZGzyyeeRt4FUo3Hr3xLGeR2fTGNwD+EHy1fPPrkcLfd2MZkHuRZF+/vlR1Eh/hDfbNQoE2TzWC7xmca6G6bTKHkIUruc35rvGTA6dfFhWyhsrXX1xSt467owwpvxVw1cZQySAbSSD13VQ+PnMK+9OzKjaXxoV8SOXlh0IxScgHluDYU8L85RoZFjjeKT8BIUp3v4zzaWOCmji3L14u8o4clyQqdYTSRukocNvj4HQWB0v1xykRrSqvmBWx06Z6KJo9M5Wi5a+lj0vAOoW7ZGbZw1VR9wPriJUHsFZ2ChVFELRQN0PcZ6Zg8Cs0N0KHPmHP9O/0w55ESCNY1W+vPDfXC06KoQKm1v64WrdGv07RiVdyCtvQLZOTy+O3445lUMbIYA17Vj3aSSTaGC0v/GvpnfFdh1O4EbrNYjoCzSTwdOkqMC4kFbd7HkkV8Y1kmGpZnZdr9SbNHPSIJNbtShS8OR0OPniBjoEswomjzx0zKIzYlI9YGqebep4BUVX98dtlQkLIjEE34gPH5dc7MC427mpPxEjnEFYxKQrnzn8NV8nC8F7HBmkBAUFe4Hb5wpS8cahW5agB656CNBt2C+aAPGNkiWVrYCl5GFJiWrIgOX3nfGi9evrfucVptRDsZU/hxt0XbtPp37YcahS7BSRyKI98oj0u9blQH/iHYUB6A40LZR0uxKLuDcKt2o5Nn5woYxCViWIygk0TJW0eg74b6HTRnaJKHZQxNfrjd50q7wpks8dvrhqnoOWYS6dNLqXITxIZI7Gx/xL+fOVDSI0q3O4bvt+Mk1Umnnik8bT+F4o2tKPK9dhY5xunnkYqiEvXBfdyT/rGUoX9gknVlscdMQhYKB36fnkk+xSyzKziwWqyRXTgfTGeG20u8pNH4GRT+BOpqVbLcEcljgnLOgQjbOQ+A06llLFbKMTwt9a9un6Yzf5mWVBu/k2PuLAdSfTPaONTC0M0rMW4HkC7fbjGS6TgiUob8tt6ZNRdWO2rAfWMJEkfSmRFAMcq0evt2xU+qRtTtkQSAWCqncQT6/TKYom8QbfDpBtDRiuPj0xMZkk1CloiQO6rQJvvzzmk30ZUF4MbIPCTaTzwa4/ziXilkl8JQUABPL8tjxrtOrNGXLbRW1bJU4yB2eNiiEh+542/wC8VUw21pl6taMcyp/4xsr+U/rjdO8yG3U8cHi+PT2yiWpA8ZjclQLNUBxk6CTT6ZfCUhh2kcfTE40yidqijTSORVbAWP8AL/TOTRpC6h3BvkMB+I/GBFK0arax7AvmJ7H0GNTZKzuTLtNEEDg1wMbtUJ0xJRygDOOG8o7j6dsNt7JGkT+MWslnoUT3Hf8ALHo8Yd9tEq1kkUAMYVJRnjFVX74wxQHI5phJFqSdQxZgRscqQG45/LLpRHMxZlNlaotQPv8AORzQkJNK0m4CI+QErXFn65WBEsYLAOSoI/LOqF014Ql3ZK8EjLXQqfNxz85O2nXzOh7AbiCAcpBneTyKoUCtynp7ZJI7+NZdi1C6BFD1rOaSXhWNjIdMQN5AX26ZZEEYUNQCOpF8ZDPDqo2DAttPQbrBJxgEhJQkgjiu+NB8XVGav0rd42Gxb+R1GLUqsoZWO0n0q8RCbOz8IuhxXH+c5MqV4a3wbHPXDL5LVi8dos2uQSbvmvjESEht7SOV/wCLGwDi49QYow4p+PKD3PtjHZilyGtws1mtNGppkKj7QWRv/lkKx/4Dyj2/3eUadHKlC8kzkdSwPHrlP3MhfEkbax/4m6GeiHhaRqUAFTyeCThUJX+QzlmEg0QDyTSSkMeaPBrFeNMy0rOsW4A7fKT8HHCfeE8VQb5FCxWckSKSH+FI0W0kqRxf0yLav8R99IjqptK7IVKwoPIFJPHyL/1mlpNd48SgsGVja11XFJDEYQrk2V54/F71i4tOunkd0faoryLwT60c0HKLsMuMl+y6RitFV3bqo/4xErR+ey+7pjzP90hErhmhdgFB5YX3+mDJpnWRvOOl7fXLThatElnYtUXYzzKQnSwR/m840Pj0ZPMEPCleR+/fGNFsiUsgq/8AiLvETPqVFhCfYZN4NdhSaZJLUyIP5tyXd4sQKY28JlUgCtx5rvhwrUB/59gw5yhYaiLHYjH8QvpgUW9aNyr0gffFpmcOA3HTuLyZ/DjO8yfxSNyllq+Oa+uXPEkcSyRHpflqucmkRmXdNArgKHsG9p+uI76KJiNQ7SoUiXbI1g7/ACnrhaaOf7Pb+CFmAu2617fv0x0YjlnafeWciqA8oNen+c68pRGhE6zagIL8vA+gzLDfobNOxjRtzBm4J2/iOdn1TQFVWNmZlJZwaoev+vbPQSyCVUfcTRLEf2GBJqZPEtG8wWljY88nqfXGT/YqW9AQkOdwYbnIYljeO2yakrHTNRo+gNZMsTC5HTczUe4rK1iAKspO5ju60TxirsLwWv2aIIzukfxD+LYemEUEKCJQTv58x45/x74xC5UlTY6Ajnbip9Oryq2/cAKqucfF0Lbb1jI0YAKVUEEhSp4bOOpi4FAijXbBWSWOUM48Pb0BqjxjWUahGe9yizQAs/v+2bvo3TF24keSSiKG3n8OO07RxaZYoXAjAtwT1+uQRyCaVd7Hg+az5e/N98qd1aANA6DnyKF7WLzRkaUfAZYgjknalgecGhXzi5JElj3AIxrjcoII+cZJKZt0TDczLyHXp7YpJd6FZKYNZVASOn7/AFxXvQyX2K1LaLeAieHIlMaWwPr/AKwXklffIYE9Qy+Y/NdsoEMhjLnYVvcBwxB+uIYyPqDIWKv1UduvN+v9MzKI6+qllaSNCuwLe09z3P8ASsWNQ5BI3kkcMVHlr2755tnjK8oNE7iymga72P74/wC7QTurbnQ2TvJq+MCtmxCHeQE7ZS61wxX+hHvgQhmKFQWQcByCAp9PyyubSIUjhAYoOoDXXPYjBmBR1CykqAB4ZNse2ZoykStHE5Bk3Ej8LE8G+9e2PTUvBqliSMBSKUVd8dcGVCgZTt6WAvTr3yYrKskbRJGXJpfMVFX3r64N6DVoYJ590kTDryG5BJyqCONdHM5LvIwA837rF65FD0jsaG5mj9PQeoxsM0b/AGcdOrujkchjbCuecMVT0V6lR3yyAOrKNy7mQckHpftktsEqBhtJF+/0x3gnwYGjcrac9weT0wEk4fgrJtA2spordZmtMjS0oZ4/F2hfZh0rD1CJJGo1SIzsDVLi/s4ywRIjOzEWSSOg7Xj9V4yQxsrUq8tZN1653RSfxnK/9GejRfeQJmitKqPvXpWUyxrAWUmMFmscXxx2zLd0E7ymWzd7rFA+/HOVzP8A+4aVJNzqYztJVqBB5B9c5E1TRZxdplEsaRfZiBiQEewVHQ5A02oWPftVUHLXySP32yzSCQ/ZzF13qjgi+Qe+LI0vhNsiBYnciE8Fj64JbTBHGxA0g+05jsl/hso8jiqPrV4rWutLpVhO2O1UFqIHr8nKf/FGXhgSGVxQ2g/g/LvkJmOplIEO5lO0uKv6n0r88VtJUikbbvwQY3jDRL5lfmQ3Zo9Pr9cnKvHrlMTSDeB+JOffi+Rljo8OmMbJutSGG+gPf4+uSzfaSxFI1gB6KHrmuLN/5wJMurfQNIHZDpxPK4veAFK3xR+Kx40DqIatZAnlvgEdMnEiGeSYo0K2SCBzyMug10j6cFZSNxpTuHOBgla6FjT6rTPI4CeISAu1NxX6ViX0upSANLqW8QsWZfA4FZY89Ook1Q8RuQ/aq/pgajU7kik3PIS1soPBHqPbtjLoS3YEauUSdV20Kbrz7f8AWeOmKo8jxPYA6gUx9ay7S6kPTzgIrglgDwO1fOPldmtgNkSigynpx2GZJCubTMmDXHVQSRFd8SnbRO2q7V1OUJqtNBppIkg2qAfEJPT3ofvjDGni+z1E8zEbugaOqHqffO6PTJq9UpYPJDRaRmqj88Zq0Laasmn1EUehVqJeUAHZ/KLoc+pyaHc6us8e3/iAbJ49/TLNS8Tat5n8oFjysAB7D3xHgLIbeOkPIdgef2OL74G0xo4gXMyyptYla4pdoUeprFa2NooS4UuAAANpNmuPY5U80pT7ugkIFElqsDr8YW+R9iMQsUvm3r1J/wCsXoNswHkaV98svnC8AcE3wBWVai4NQytvMYFKCea4/d5pAXqBppBFLb2p2XSgep72Rj9T9mvqFMQILgW1dLPFHveVM5pGfoJW1MLJEqU3JNVXpX+cp06CB0jSYJ5b87X+V5LFoxoXl8SRrQVQ6V8fsYqUT3FOZSkgHl/mAUj98DF7YO+jX8Fv/wASgjCyWI/LJk+z/wD5DMrl2drVVs813HcZGg1HBWYlmHIJpSO5zW00wVdzKI9gpmY8fTsMy7A7isGSaOfRwbY2JdwDZQX9PTH/AGdpm0qySytuVuQirVY/Q6mrjfw9l7kKCwB84Ms8iSOFTyluSR0zoqMVyTOZyk8YsR6VNSZ4/EMkg6sxpR7DKp5CkAH/AI94/HdH/WLjWJpCaXxAvC9D84U40rgRsCWHC2b575k3TFfYnTGRG2mZTK46k7tw7H5xGqaYx/xCFCnhWNlvpeFLDHI6KDtKDixzxkur0wAeRNoQkNzzRxG3RSNWO0LKXMGlGxjbSPXm+MVrAx1QTcik80OTkY+0JtOfFYBGP4ivcD1HxgajUza7dIdQkQNUQoFD0+cS8KcHdhyKNOxYOoZLbawsMMmDfegp04RSL5IN9fQYGlKhyrSIQgvyHcWb69MKXUbQPDUI/IsE3x6YleFKGRl4VOolcyMrUbJFev5Zp+KpjVTudXPXdwuZ4YHTk6rxCV5G1+2NMsH3fxXSQjcBY5IFYdQr0JxGYl2tLtS+LK2f74vbJZRSu0CySa6+uNMmkl022IFoz23EH684UU0UsUaRTImwhh3LfHOGtB4IlXUbBASGKqFV0O0nnmv3ec8F1pPDDuw8yOdwHpZxuug1PgqxU2Bduevua4HzkYZ4YiRO+4t/woDjuev65mmMtROBpxL4b2FU7XCAsB8Gspb7nHE8e8+Y35up9OPTEIQY51ilEdtbFFosfYXh6DQRmBGmDb91gjk/r0w0OwN4gqmk8K+NlEfHHJyubVjRaSNY4g0pO8A8gX613+cb9xk0yAQGN3kYfiPKfTpeJ+0dLqn17xkDYKUHhb+tZRKtJ2mzN0kjaiWVgsiylizni+nb/OcZ2LiJnCpt5S93PzfGU/8As8Kpvn+0FiZeT4SX+Z4v65To10RgZIV8Tcd29mom+/FZmvRuSM/TSKr/AHeOPcrNfQjnqby86WXUwiSTTxrtJDFmr8h1zjTh706xiEAbQUGwj39sSmssNpztO40G8QluDiOjO2e1U2nMninUBm/DGiLRPwT/AIyHUT6JmKpoWZmPIeQjb79gcfKdPF0I3MeS9kg/PbB1HhsSqmImOi7rZ/OzWPFhSQgCdpFEcAgAH8kYDEdqP54qf7MVAZXklVGNC4+CT06d8OV98bCBlYggGmG4fUYiQ7pIWZWjljI2oqkdO/fnHTY1fQ2LTaaFXBVpnQU0e1SFHv6HOCARxB49lFiQBH0+vfH6KAyRPqJHRgbFMd35kd87JLEVZw5BXptsA/GK5O6ADx91UAtJIVIagDXsMjXUJGzeKrqStFWS8tfXp4Hhqg2t1d2s2PYdMCo3RQigmj5inJ+hxk6MTNqwyOWMUMSgcullvp6ZI0U2r3SSeWEG0dQI1I9h6Z2aDVzAb9QVWyea4+PTFFZG06qzrtWyoL9775dVWCVorWiFFBWNGI8oA6H456YMMczxSJLqHWN6AC8ge9fP9MSkNIzM6FG6+ayfgZfBomjSNmLNyQig0V+eMq/xVWAyW0M0cSeXkJ+EVVn0JPphQaSLUVGs0b7WBFuF8vS7J69emXDURatVMWh0qxtKFsfygd+f9Y1Zys23S6PTMN3JKjzL60f7ZZyZBRHx6LSxBWkki+7qpLFJORyKFXz9Mm++QPuXx/C3sGjSPcaHbphf+76mJBvh0hTqCyniyRVH2+lZM82iErST6HTlHFbISBXv8n++TUfsd2NH3dZDWuY7U8x8Hg+gJ9fnrkoihbUDxEkSTrQpGPcfvjLINBop708cs2kmkqlnUEAV6+mM1Wi1X2dH4XgReBMwMjp0r3HpxhbS6Mv2LKQSpI8zNGQaKGVTVDi+OuJBDSpuDNf/ANufW2I+mOSyHhuOVE5BK7yPYfsYESuZiioPFJCsGHQ+vXqMSxqKUiLaaTUSBbLALtfd4l9eOv8ATPadXalMHlHKxqSK+T69Ovvi5YZtDGomNKXraxBAPah/1k66ogvt27xfD2D19bwNN9DJn0kej0Q04XcBMBuIcUAT89smkESuCjBj6HmiOvP0zP0D6lmdngfmwHR+D78Y6RtrBtoUAmm/CSPzyDhToZApOx1UkYqEA87bsm7x7M4UCBkQgUN/Rvfr6YC6fTxUzTGRiwA7duw4qsHWeEFDNIwZRQJUm/yw1bwxqw+MsVmXftP8oN/P9c4uungLeFMQH5PJok9TmXFLIwVxMrN0DF7WuldOMMaXXGYmKFpQeSU5A6enT64rg7Nha+tDybgzBr6IL3ep4r8s8Eed1kEi2LIQCj8E9V+DnYg6t47xOjCiDsrb68DKZo9O6s7ShSxAYqB5vn1xG0gUTj+DMI4WQPyW8vA55r/rOLGCWlRVjtrIHlJJ7n99ax0DuQm5qpgVuhZ/4nDLxrc1E+IbHh81x0A/tgujDzO7QMIiQ3Cv5bBHuL5798XMk0EIkM/iIh8QR+GCWvnp1H9c5E6DTyrHEQTzRcrfpYHfCln2KJAW8UrR4Ngd+T/3gUkChcRfVCSRI32OfNMsfX2oEE4ssjhUFIEP4SpUD9OuOVvBSOjKlKCq+IAf8YUcPjMXneN160y0frfxhwNimNyboFCoqdZT5K63fXPRfymfbXrGasVwRff5xi+AjbtoajS9x2/Pt1zqRvJJscNsP4lUUL+RgswyHUwqu2FJB5vOeKPp04oeuWGbxItyoCCpJUkc9ePXMwaaOLUUquqVd1wPf2yr7PpZCGJ2cDyC6PrmYtKhmnkkVlXeA1FiSO3zgaeNZtTcYSNS1ny/r74ephKtICNylqCED885pAI52FLtC3u23/0MwPLLHjiaPwyhWhQ77sXGvhAokPB68818e3zjpZRMI1WVgWXzUCT+meive6+E8aKOXbr9RmEPRwN4g8WBWVBwK4PuMPVoJWLbCFABvcB9c9JIQw8Yml5tBYIPTCbTadR4kjs6lRuQk0Pg4QEtRCZAqnaQATJwR+WUzan+HvXawPBo3Q/piGEUeo2IgSM1wAN355zVIplR1MileCm4EfXA8Gq2I08mqmcAoVYg0pHFdueMu08BK86cbgw3qGocc2PXOaBY41MqABgTSsSePnKtPvZppQGaO6A6j5zRVsEn4E0JbVEx0pYbiGJv4zNliUJIfFJ3daHXv9Mr1K7isiz1xZBN8djkaR6uZgHLOE4BBoUe+aRo4RiaSMSKWdl2WCxF/J6VnNNq9fpn2jVSOrVv54BPfvWU6iNNPJ5SJO7WLH0/TItM1aowBRHuFsq9AMW2iipqyqX7RZCVZWdXWwgPAbpfpnBIG0h8aakMm5qbk9cS8UkbtuoRCyFYHkex9/bOwo08QZGAR1PVCNo9/wB85tNh3Ta/wPtz7Pi2qyuSrblAcX0r2FDjPo/EVGineNVchlLKfwDnnPkvtCGpfs0ljGpnA3pw24EG1vt/nPpNLK+peVpU2mKR4kZqqTnn46Z0RyJKfdkOo0uoWJpxuEiqN3HmA+vfMspNFN/Ckpm4tjXPv15rPpNYhBZNMUG9dwN9APnMdEjjYSG2lBNrN5lYf6oeuRaoeErQzSidBE3jrQbbtNkH9+uPm0MO93IjEgFMVJsDv++uJil1Pmk2OAatRwPgdsYrCRXBG4uwA3cBSe49MQ22d3/Z+lESoqRCU92Ksenb1wvtHTxRf+KTkkMF7D1+eM7qtMs+pji1EauRz4j0SK6V9c5qZFcRmF9rfh3qw4+ntmZl2INyxL5g6kUQnPPb8uuJ1U5IXTmB5bFHdwRzl2mnBTaUXbZp0SrPc+14KxxoKuJ/Kw39CB6+mBDXRUhWCCOf70wY1tC0Q2TvI2onoyuWI6IbxG51eliOwimbqOPUeuPg1CaSffujUMQq7+KP7GM3bFqj2o00i+HJE4CuppgeW/tjdY7+BQYkxrfHJs/4vGzap542EZRyTQKHcBmexaDcJWO9l3hSOa6Uc2eGjb7GpqtYdIEVlOznkdB84Ilj1K/x4a3ehuj9MaGkGmUeGpJHLHsPTjIUl8SRwpvcCABfH7rFbGSQjXxwkRvcbxOps7zYrti1klSFmWHZHyfOTRNfy8c5S0sEMBMoRXQmmAokHpY/TECSYKgiBKH+dupvrV8YR10cjlmTwm2mbjh1ayK9f32zs2l+8SqsoqJuaWiReBHFHDLbWd4NsBXHb4x3h6bc2oZz4hAUBu/txxzm9CDPAqtHpkdCyNYDD8Vj54yzRgRR0iPv5aifKfy69e2TI0Lppw2jRJomAZgx5Jrr7/plTwl9YUqJFA3MC22h049BgkvDXlEeqhlkEodVjljaygJ/7rPQyymKI6lVjiJCKCwUqvtZOXLD4qFndWkVfXkgfP8AXI5NH4imSLTwQLQDMZSxUf5/XjMvo13gbfZ8/km00b0H6ytsJHPP++ck1UMciLDppl1BsCRHk4HPJvvjtQuxTGifeJARyA9ufW+P8ZLNrV0sLtLp0R9ltGvmW76E8c49bgVYoQD7NYfcNYzFfM8U6FkI69unyOmK+05vtOMx6l0VfCXeWjPNHqvPXtlP2S0GtW4InglU1KQ58vegSD9O/vlkySzalgmpUI5JlglpqFe/T6VjuVS03R89rFOn0X2TrdEwM3jBRuNKxYWSfihmppZJ/sjw4nVVhl5XY4N3ySw/t75jGZPtH7b0ei0Om8LT6EuXkssLPVuLz6fRfZzzRRrLqGkKcoJEHHPplPldRSYkabbHQasyRyAumznawABC9BjFMUrRhjGyJGSQSUs+vpjdNooE3qzhA3IAABPqQL5+mel0XiacIISyrwi7Luu+cleh5IRC0RPiiQuqvtQKoNn0565qiKGbdEW/icEktsodKFf0yQ/Z00tRHTyIAm5AvbsQP8Y3T6N9MrQlSVC8blvi+awr+CSafpXo9HHG7yKbaqHNn88ogiMEnmcFTxtu+/XF6aWRUoJR60P94URZZF3kMoa25FjLKlSRCTbuwGWA6uYt5t5AG4VtruMo1JjSJPNZulbsTXfBl0zMXAoxkWpHPOeETHTlWrxtwIsCx++cOq1QtrBUT7QqrCAK5N9CeTR64ppJI5KCBt3JYdenf+mE8SnaSwojy0O/riJGkbhS20UDtANHOdvwqkmCDNvZ2gZIq4Ja7PsP32x66ePVN54ibAtWPAPrWcnnihUbydRIy/gIK17H2woJHl32ixkEkBSGI/v9cdILbqxc+jSDUR/x2VgVIRBYHt8Z0QR6Hqr/AMRtpYjhQe+dLyB45WZ3L2Ayr0rr0zssjTXsJWRfLVct8+2b9oysJfs7TQNvB8RVBblbo+vzi/EiSeSQsTyAWkeg3txwOvtlenZo9MrxojdN8ZFBj89s5PNp5CzLEAR1tOQbqx65RpVYnJ3pG7agPtCbVDbSrgBVHscfphI5G9hK4uiTtr2rAeUbCqmQEGvMAb7fp75RpooI4fGE4YMedvAB79smloW8FtvSUmRm5NAgjjGaWWQgwsxWrtSnb2yeovF5R/DZuCTdkemVOAkdqSyMdqqTYb/GaLd4B/Q2TTyPvkifhh0HGZ7aeZ68IsirwUJ21/vK1keNtwAKm7Udso2LNbqCp6EMa598pxU+hVJxMlIZWmSZpCG6hBYA9jj21DuwD7A3ADKCaPxhuXWeiG4NUeL5zszOVFxBh3INEYlVY7dnNQjIor+J5txF84lSrmUtasQFFmxWWRuQrLu3N2J5vJpoNRtZy8YUfij21uBPY+owygu0Kn4xawppZUXVPu6lWuqzQd9KI+ysnmX+avgdczNRpjNqAH1AU8bdvJByyMIxXxuCRRb/AKxoOrVBkrplEer8aInaVJu1K0eMm06FJXct/NYBJ4wiSj2CW3cEemNOiVT4rArXJ5q6wSTYmRDkMSqJmIJBvgZNFPJCyhisiEko1EFTZsE98OVd+1VkZLNggbgfbEWyzyoIv4cfmWXeCCR1Vh1BH9MDvtBSVFMrujbY3TmyDXUHFTO4hZGoHrfGJJfcrpJuNgAAcet/OMIB0xV3MjgXdc/XBbkMlQqKRAPPISophfT5GUzNsbcQabpQv9MgMrQRhxt/FXnHBNZQjzsWl8HeFWmJ4rET8GcfTzoCPCkpj6tzY+MF5G0+1AGdu5Q8EevOTCQNKQI3VQfO5I44uryuMCdANhRLG3peFMLVdndTO/3YnxCr9QwFlq+euTKokbxNRp0eWqVgBYHoR842TTxlySoIY1uZyNv0zy7WYldkkYAA/h3tPreFtgVJYFDIxl2BHTydKIP+xlJlkjBl8MhW4sDcCff64liofcQQSR5h3rrWGkhm0zJAtsGNhm20exONF1grVnk1En4twXcBzsoE5yPUs8jBEZSOGo8ZxgzAKw3E15D/AC/GKJkiDIyKxBAVjRIB9cRydhSQ+VIbMiq6sh/k6NxjYggLVu2nkgm6yZJQf4e65L4scn3GNhcBfEO8rfQc1hT0DToeDGaJRYx1Fjv85DKmmjWSSKUtGTZXsD6euVCRm2ooPnbvyB75CIgNW07FkjNrsduPTn/Hvmk7RoIYraeIhz4bCuCeD+xhxSiI0xG6xwGo9MHUacyINyFVTkV7+2eTSrxVEKKXddnpycRXY+PsrDwK4ZiRv6V097PfCR2WC41BBJG8kHj2GIaNWiVAxRDtLF/5T8eudTTOGBnnQiNmCs9LYPpwOeMvG0SaRyhHDIZJGYd02knnHadomRES2WE+GD8cV84KbdR5Ad+/8Hp+nb3ynTRQaRFTeBIeXUG/Mev64fji3vgsnn7AmLwvt2mutjpkvgu7eJKWArgFuLyvUAcM1gXwQavFzJ5jIzHYf5B3wSjpos8kUsv/AJVAC/hHrnVBDFI+GvhH/sc8ryMhpQwHPC1X0wo5Hjfhb+ebwKmzaSHZDEwUyCq3K3DJ8+xwS6KrmV6SurEV0y5kMzgk+G1+Vlq69DkuqWPa29AWvbbJSHA/j+hlIm0OoilZhHt2JV7TVZpDeh3hd/HX0PrWY8DoC8bqEctVKu0nNGNgsW12AAHGKpVgZL0EeK8qtK5NE9DVDGyV934Qgn1NkZPIVaKjIEG62JbplUdFLSPcAODfB98aOmZCJFiiBlXtwa5/PHxxxSRlgLJNtvNVnAshZ2YCgK2nmjnBv3qoZQOOBiJV2M2MEH4VBChb5DcHnp84gFZJSkjsJLG40BjZmTw1Ux9eVvoOfTPMA7IS11W49zjTiqwCY7R2TJGHBB5Xsb/xiftGap0ikUxxoLEtmw3t6j1zxVFeizqC3QHk+2J+1hqCsckRZqHJHP0xlP8ACgJLlY8alIpFhkZ9xA52Ha3wemPfUohsAtu4Ve2IgM00AjkhVYytxsWG5ffrkUkEkLbpJ41YHzeazR9MWUpJWkbim6KNT9oQpywYsasi696wfvukn1HhBigADKCevzj9PC7FWdowvQbzyT/fJ2ihhkcDwYzuJLKwBJ9cEnNpWaKj0Pmm0sCMQys9UqDnn0zgkEkVIpZXpGVRZF5LHpUOzal7kLeZ+p9cbpYTEbUkgcnzdPYYFf0M0kKOnWM2+4kOQAbHz++mLeLT9EAuvwrwSe2XmCRZNsky7ze0BsS4k05DqEko7WO4EfOCUGhlKxcEUssdMdijoADfXuc6+2FXAvxSONw5I/rhFpf/ACRFelEjgVi4SrxfxZDvJIYnqfYHFN+xrrI8O2I0x5I5rD008enB3Hnpy2J07rDAscmrDMQSFG6z8+uCsQ1OoDpJuWFtw4vcfb99sbp2jPqmUOzRhtir3L7Qenp854StIniqAoYeUMO/xj1kDIxEZu6NrzfpiSyCYEXZHNN5ePXM1QiYKgvASw8Vj1JHPx0wod4iClgvkqul8/pijMsb7g/mfpz+mdUNIVRQ3J5JNAe+C9Go6UgjdQ6qtty1dDWeBe2WEhQnF+uBL45VliD7iws30FdsGKdGn8Ctigea+K+D3wB8Oz6baqzOm8qtqAfwm8VLEyDaqMqk3Yqz7cd8o1bM1nedo5Su/wBMWREVNsEl2XuZ7oH0zNLwMW/QZYt0NKSqL+EWLPz65LbLK0RUeGOj+3z+v0ytS7RNGW8ytwByaPridjRztvUBIwevX4AxWhkzrJCV2Qg7aIXcbDd7NdM6kXn2yOHr8N87u3X+2LQwTxWpJQ/iYRm2PGL0rLCxsuVcnYADtzUHwqiBjceJIOVJpjV+2UPNEw5EbORSjixx2yfTKAplmj3MZKB9B7Z14fDk2REKD32FrH06fnjRtIR02dm07vEIk6WDf4vzydoZpZlDruSI1asaP+cuimm01qCHQ0OByB73jmZhCGh3Fa5O28fimLzcTPERdZJJlQr0D9LHWq+c4S0ccaSIS8klAde1/ljTA8r+GWIHYqKWx6YqeVotQiCTxCzEKtdwOT84lejp3g2ZXlj07I6RKVIKqKAo9K9O2Lh0HiSGV3cNFRQVtvufkZZqhJFp4w6DcLor85L4UswZmNiNroSFefnGf+hU3RXEELOZ2DoxBCj+XKZiJFEqWI296DDM2SWKH+J4h8RwAoVjRPsO+Mg1Ik03hSFzTENyL5+MvD5Ek4kpQfYGshilhaNPD2EClI6H1yTRSuItsgEcf4H/AMn65a8ShRF5ljXjdxX174QneXTkNsXigEPJHrkJayqdKgdK402l1EEjcINxazRHbIPGZ5SQr0PNY4pe9Xm7FFGYlkcANt2Pxy19MgbRrpo2XaPFkscm+B25/PDKD4psWM42yKGbUSo7M7NLIbRD0VR349saVSTTqfCWNr692ymPTTJpTRBHFIg/rks0EKEiLcZJCb3XQ9T85JppaUTTeE8r6gybFINWoJ4HxxeZ2uRdLOGY7qs+bkCu4980o5ZokOmiCASHhwm2gOvOKmRJYGcrzQDUP6ZkVTozAGeLw1VxFJZUSAgNx39/85ToogunCbNzdStNwexxk2lMagyFWkC7V2tdA9/kYzRrHUa3TG9xbt6XmlqGbwmdI2YxyEMpaj0B+p/t7YTeCssUYUgsCtFug9fa8M6QOvnkAtjtCjlj67cZApPixhZVY2FAQL9fb6ZjWhukhcaUyPEqoGpfLx85ZG8YJYBQK4Z2qz6ZNFPJFp0iRjOxtRufr3xmndSFWTTuWI2kyG/Xr/rMqbslJN6M1bSyaZ0E+263NQ4/xi4Cwj+6iR32ttkYpxfbnv8AHvhI0gWdRBGzRHcSRyR2HH74xEDahysy2SzMd3Wh8HnGYi6FvFLDqhG0A+7txyRYHc/XA1Um568CQxdHZKsdqHU53Wa+SZvBZTSPRUAdPc3jtPs2yqEtjz/Ee6HrWK1Tworq2R6XSHTtao0bMp9Gr3/LLpo2jHk/iEAMbHJHc1WSwobkXxGDAbgm2++WyToI1ZiGJanIBBOCzSuybXr+E7CjFDtdnqrrj44yWH7XbQhYpg+4gUH4Vh6jLdY6TxmTduKAgKQePcn1/tk3/tkeraKR4w7LzTkH9jGtXplVaAdLNqHWcqwtqAHFA45onG1IxZHU9fzGHOr34SxO3hmw6eUEDp7d86FWOZVBuQnmJOf14xXprEzaWKMB2laM9JCvNZ7SjSzJ4LahyytQB751khdpQvGzht7A9T7cXh6LTSoxkl8MRufLtob/AHxwXnZaWGnTZGq7bHAHFZ2NoZKQnfbcqR0OBIgEbEyIFHPQAj27c5wCQqokcooN+Q816E9s22SpUUmKL7yIxEEYWb3ckDFREoOE2qpNX169frnqbYZzK4IpfKLB9L5wRAZnZer9Seg+cd34KcnPi2ZAdnSyeWPsAOBhpFGEKsSL81A8dMojgmgO1qkU9/T/AFimKRr5ULMT0QcD64ars1/Rma+JtwAWWRWN8PX0rJ45NOyNHtPhoOkqXRv1vLHd94DMFBPO48t+WRapEDFlUDea4UsCfc9MjZeLymBJ421PBA2nyqscd0PXPargBVDllHVRuL+3GOg3NG0iQMwF7pSvH0Awdsc0qtppWVWUgrs217m/6YaDegIkkqHxd6gc3Yv475TLENQsSo5jjJHFjzEevv8ApgagDTpJFChmYryJABQ/TC0Ghln0+59xlPXt9CB1w0Bv0Zp9PHGDGyIOdtKpognHiTSUyWmxF23QHT6/rjBpgNORK9NGfxCvKPbJptRDCPJHFXW2Ueb54xkq7J3bKV0kB01qgth0Vuvzgahng0BDvGhTm3a6/PFxTazVxlkjCbm4RDQI+mN1CpHD4bxwTTKvmXZuA/vjquwamBp4E1K+O5ikjQf/ALILQ9bzw1elWUpCoPvY/IZCuoeZVV9SqlQR4bAKDXasjkQyiREjAYEMwNV7YZTXhRQ+zfEzEiUO6hVLlbFGumR6knU+HI0ZMzjy9QAfnJY3m0mkeOd1TxRsUFR5B374S6saaDxgdz+pbgetDEbbVA4U7RE0eo8RonUWOu1uB6/OP032dq/CLidYr8oJF3+uQP8AacGo1olMO47jZriv6ZsafVaZt0cR/EvO3oPnA00UdpHdOWSNkcozULL9Pfvk32l9oFtO0UkEfptXg/O7jGoRCkihVcsKMgiAv3GQTAEKJRtk3X6t9PbAmBRTdkwiAJmdmEY6KSKPwAcVysdywo0ate4pfHr85asLgA2zOtlQU/rQ9sadPqZpVfwlk38kbgo+K9comxmyePU6cqHgWOEKa37av8s880JZVkW0ApW3ebnr75VLoJUjZJFQlTwrALX5flmXKsiysk6mMk80OV9/9YKDGmVqYgR4cpoL+Ejk9+l4qWOZ3LMu81xtFV8j1rFGCVnaSNhHt8itwvYeue8HgFNS7c8k8fJodvrmS/YfSTxCsrgOAAaLbbrCgMk+5SAyobDVYAwmlgjV2WAPfBLN1HrWcSRQBHo4e9O3J/6yvgwvXI0hKwxluRcn9T7ZAqahPFjSNacUAbNjLp5SX2UrOBwI1Ng4kxTsjNs6WCCDX6d8rB0qEJdPBqItSomXcXsCgQP6cZRBLMJWijcGzy56L60TjEl1nhIDIyg8KTuoe355PHp5FNlN6iy20Wb9sdu+xaM2OaRo1ovuNjc3HU2aFAdMrcOWMJo7jtVJH/B9R7+mR6d5DIXZX2opBFk0vcew4zqzmKFoQpjVhZaydw9OeQL/AK51yVs5U8HeH4K+IwYHd5aAPPx++uBECzbDMNoQs5MZr3A+cSVdCjsV/D5Yyd271s9sv06GOIjUUNwp/FHBvoPUjp0PbA8Q608i7+IjHMJFtjQNDuL/AF4ytdRKkJ0zTj7u4plAsDnr7D4wPu33ZTJq0EP8PyKS1uOnA5GDNIqskkKPGpBAocse/PXv8ZF6xxy7tJqirNwnQqAym+98Hp/XDGpgjcTSRbnYgBq4r5H75yNzIzRzUqFY/wARYmx79j1GVIPFkBaJUkAFb6AIrqMSSQxq6j7S0832RvaE+ZgBfADDp85hsiygAbCdxPJPB61Z+nfK9DF931EhRmYMSpFcWenHUYptJqvs6eaON2Mb+bax4YH2zKvAdHY5Wjj8IxcMNzbmK/3rr9TipvtJxGDsirkBwLs96OOXWS6l0j8NZg3mCAClNUbHP9s5/wC3feJXIiKLvssWAoexrr9MyST/ACDf0Li+0bKqsMTMo6Vd+ovvlSaldUFV13iIltq8kV+uQJFCrKqx7EVvx79xb3IPQe1YfhISTECtnhgpAPHFi+P1zSjHwKsfOYjOxKRo8qguxBAPHQgcX75zR6jbILPCGgviUQeO4ybUoswDUECgGxzQGMggn1BjcDcitt3V29PX1zUuOg9PoItdqTGF08klqQNoPA+p9cqMs8s9GeN9t76VbHwazJhnoGNZGoc7ejNz2bGyLLAsbeC445D8qT3o+vTrnLQWjQmp4T5PMF22iAG/WwDz+Wc8SSBRGNJujZgSRY596PfnItGkEisdzhFUq62zFj16dh0/PLmtoll23tWw19ff24zN6KgVlRSxGm00qByS5JZun53eCNRBJqBIsLRqi72hUXRHQjnBKrIWCTJUg3bFN8X6/wDWTyCWOV9syhUUjcKPPp7HAglumm000jGaJU2neXC8189ff4wptOgUCB1bd+IEEgAi+Pf5zsOkePTptVN4UEkgAfWuvp0xeoctIyh+FosgHHz8demFv6MjumgkG0RrvDWxB6fl3ygwSiSmAeM8AA/gPxfOeWJDUjlJCOfERiAo/wA/4zkkjB9kHKgbmbaNh/Ln88Q12L+7ykxu8M4Tdt3FQgUfXpj54qmEmndr5oC2LfP/AHiV1MhjWTc1bT5eKI7jrWaHiTOqPFOkXU0/IHsOoGNgHZPL4gRvvDgyL+NiNle/1xcUfieG2nEbMOu87q9++WDWxOEikj8YOKL7R26+n985shSVjHDEAn4aUj6Eg4a9FthrIxkJadUq1Wub9xjI2mUeJZfeR+JeFHf6YmBpd4V4CSRu3IRVemVxTJ4QASSFy1d6r8v0zIVi9bodXCfEjZHFc8nJ44tdPpgIg0hPYMO90bOaOqkKQKHEhAPlYE3WYn3sRzsd0iH8LEcED+31zOrNG2ivS6DVxf8AkDN/92Ycc9D64Gri1sxW4nCclu9jtyMdqtTpl8MrqWAC0AUJBJ/v7cZ37xLEjMmtLTWN7WQKwYFNmVEdXFqCkkW1n4IIIUfJ55zbi1U0Gl8MMzEdHI4q/wB+uQQa7UjUCOTUxqpayBMpLC+McJdbG5gWVF2sWbgGrNis108DJWE0ksTsH0zObNMq9R3NenOc0k0x0spiR5LS9ygeX69Dnjq9f+GYHxuGVq49qHQj1x33iVDHcMfiWeAhCj5565ssD6I4dPrJ4k1DxBfNav0oHv8APti4NNM06gwstk0/Firu/wDeahGujndp2XYWsRKorv2OQmTVzuypqJVSzuIIHHI9uMDqzRbZTBopPEKKiutbVN8AjBk0erb+GbHl4Fce/IHrk2n1JhnEUgZQppWDfiP79co+9GSMs9Mw4IY7bX+/OZcTaQ/b2ml0+l00koURwzgzA8ggj3/tn0atJqIpVjjBptys3Rr7+tZk/aMkY+ymDRmbwpL6cgUec0tGNju4lA8SFHUFrI4F8d+2dEGmTldCNUYZXeLwXMkfBpaVgfQ96yOMjxtpVVU8WRYTNWCSXWaFZ0rTuxscg1R6+3GTHTk60JMiMJSQQnlNep56ZOcNtBjLw6nhlvFZzZ6efynFuPPIhUlyRRvkDLnihMcLGQDvdUTXesRrNKkuk8aPUAuoJW+SOemLL45GjJEp07SyAbTuPBrmv846PSanUIlKjbOCu02Pb/eSaPWk6lI4yNy+VyaBPbv1Ob+klefTq7naxJDBa49s3x/Ep9sM24mRJAVJiGmZV4FhfxH1PGRxxAu4kimiYE0jr5T7/wCs+kGs0Mp2xTpIfEKAhr846jFTRJqV8wc71oKOaPrR9Mo//wA68YkflfqPnGkk08zh3ATpvWxZ/wAZyDUyagqsotS3nBWx8/vnnL9RomhRVjDSpZVmrbtbjJ4owaYLIzRkB14BY9rzncXF0y6kmsDcLo4gdNIWaR+tXfrY6kfX6YiDWSSRDcrrZCqOtN+tY5tu0RyqCRZ5I+Oe+dUBNOQNL/DYEA8kN26+/P54q0y6A8R1XwyfO38vF10yOeZ4FP8ACKttpR6/OMTUpPp4zEnkK2w2el31/rlRT7PiCySxt/FPF9FvsPU5qoa6E/Zf2W+t06NqnHnO8hCATz64vWaLxJrV5laFgD0ph2A/vjJAiruhjddMoNBDdD1vOyMp0MTIrCOQdx7+ua/oyu7EBNagZ44HMEhIf04+f+8bqi6xxxNTLQJG09Owurzgd5IUSWIg7iEPQji+R/e+crbRMyFoSQiimUCyT2s3QGbWZtXpGZnjn3xKzxbqrwyRddefjORx6h9erF2ER5JZLK+3x89MdDNISYkjkJi42Kb5H7OO1OnctvDSFnH/AIybAPrxyM1GvwHXSw6fzRQyHVtQpDRkPoD0GTO80um/iK0U3XlSP36Y3XaaZHi1CosrbQdz8UR0vnnJxJK+i5dzKTagRlSa5v4zdhj0TumpMP8A8MvHK34XRrJU9bF8jJtLoJtksUqyuEIsmqNcUb4PX65eZNRq9whllAYDYVcAoe/NV1zv/tupjivUalvEWTcF8Sy1DqR0v2xlKlQ96JDNFDthWj0Z9o3xV1FjnpkOs1Rl1P2fpNGZzLrH3vIoCkxAm+3BOXfaH2hL9maB9aVRNtCQJzZ7WPX4zO+xPtWWeJvtNl3S6uZi0TKDaigoB7KOeO+U+NVHm/8A+YknbpGhpYF0Dy6aKJYI78qQ2Gb05Jsn35zXh0wSVGkqR3HO7kgdxuvJV1D6gCGUxrVlujAEHtxfpzlcbxEsgK/wgCdq0R8+n0yUm5BeICTTLp5xJp9pG4swkbcRwOnP9cZJveNmaaTY3PkNbR7EYGt1EcXhKo/iue9kUPVu3T1wkmDIBK25assRuFf1w7Qn7ZZC66SLTKzOBKpoh7v0BvHxxCeZVkZto5UB9tZGZ4h4QjUSGPgc1fpWaSCIsspUA11vgY8dIyzQfusiM0aEKtkknkk51bQ7kUFjQr++OceKlgkgkde+crTIzMOvQirGUlCnaJcm+zqsxVIwApYVdWBi5Wp5E8MFr5I6nEePOkjcIAef+xnV3SW0rJ1HG0GsRzUlQeNHZ5GRRSbQe1UP2cFCiRyGtp20vm49/rlFqbFKwv0vg4JKgL+Ap/y7n2rJuPo6eESwqCQIAxk/nI/B73j3hSNXYRBmu/c46PZ4NK6oCf5jdnOCYox8SRCAR0JJGZJJaG2xbSKNKxlUQlhZBICtx/TPQaqJy0ciurqKUNzfxnNSJGhKOiMIxzzd/GLRkSxGhUmroXjOfFhStFUcyyQqALVbD2Bzk5+7TSkI67Fbk2dyt6CxnNHHJDvcqNwJXaOhu+oxAkfer7F2g2SR1H9euZydKzKOuiyaOLUMVLbGoW+6v9Yl9M+nEaF1VRYJugP+8ExsxbdVyCgSo496+Mb4WtBEEUyb41sCgQwPr/jNkvDdegr9nzEgBVkF2pZrC+94+JGRZE2rv6HbdEYkJqoNPsdw1UFaNCPz5I/XGaW3ZnLsSOOgCj474IpKVAdtaUweG7XIAWC9QlcYICmbdwFb/ip5PbBY/wANirkG+aO2vrhbvB0/iISxHXiycuqJjXMTsqyWz9mC8/XFai1Ph2CQOSOuNjUEB+rdQbqs5I8UY2+G8u7hnSvLhkrQE6ZJpirt/DryMbte9Z7ULPSyE0x45YdM5qPDW3MqEdW33wPau/GeVF1FSMCtruDVdXkKpUU9sFY42s+AWbpyavBk2QkhdwZx+INdc5UyBY/4Z3UpIsdR71gqviW1AKBwazNPoyfoMWijXa5m3WNtChux0ETy+IJn3JY27WIoZPvaMb2YBj+FQQSazsf2gVMaOCUf+ZRhg4p6BqTQ0qxkEZCinJA6jvzmc06x6h4kJV3O5gBQDe36ZpzTI6odzLdjZt4r0PvmfpdNDHNNqC17he0p5vjNNJPGGHVsZqIi2wNGeRZYGj/vFRGXw2DSgX+B1s1/S/rh+MjTtGgJ2i7utvT+udiqRXpTuL7dsoqxk+Wj7R7ZPGHHjIK45WgfpyLx0e2KAbQ5J/G99PesYtFtqy+cdUPAPONmjMYqQois9kxCj9e1++VjG9EcjLeMOpR1RDZ4jsA8+/8AnGRwxwKsAiFiwaHfub9vTLTBBqJN25iSeA4/1/fE7PCllVpCoPRCPTi8VwrRuV4KVlSalcDaQa2eU5wC3YRvtBPm2Ejm7H0wpFfyh0jIY8vRoj/PXJizRSBpFSSzYYLwMmxkrK/FDVGY7I5ND8/fOtDvQOy0VsI3IrBcxtuZlIsAE3+/2Ma0wkCo17SaPqPQg4VvYv8AD0ksbNtlVVBNbzQAJ6D64wwgqEsMQLIA64CxuGIkZXBFbCo498akKxPM6OwMhG0M3B6Dj0+MdRsRuiJoWh5BZW3WF75RFXh71QAkn8Qxm53cEA7iOh7j5wl3SXJIoB7G/wB+2BRoLlfZMxRRuLDixtvg31wJdMNTCpWIMavaWw2jlmjZGiJUHaear3Hr/TE/Z+rdNW0SaZTDCArMwO9r6G+nrmS2mNtWhkZUuilwhq2U8Ef6OdjlSb8K0VPUD0w5o/H1O8XuI9ePriYmlKsW2CJDTDbyD/fFf0jdosDv94VQUUFeQep55xjxI1h4wQbPnHB+MztLDvlVHcjaS3mtiR7e+aM0sqyLM/lhUUVkAJHvedHx7G2TmqdID7x93jVo0WrCqpWg19vbKZgaDMoBv+Uc1kepkll0zSxJuETqyKtEE3yfyJy6Qbep3cVzlMppdE2IUb1IDN/9Rdflkx8ZmIhB6UFXv75ewjdB4Z3Wa4HSsKJUgt+Cx7DE/wCbk6bCpUQ6fSahZWeYne3HHIr/ADjxo0jcNK7uR0UE1lcjs1eEDdflilU7DGXJHXnreUXxRji0HNsmml8RhGNxUD/8M9P74Ms3/wAaSNohtUdCavHTxLBGtAn/APL2yR03z+K7igtbdvPXIy5RbHSTI4dPOlMyF0Bqw25lHvjXhKvQJu+D1De2Mi/gnYhBqvNu5xyyo0lNEzSEUeKs9/rkkk/6UdolOlMoDbgNpF2o5yuL+HGxCsfa8OaMxqGjtiRyuLIpS7E0T0YZuLixb5IESncrMhVnALc3+WMRvPu/AT2Nce2J2gtb3RXizWd0pQyGRvSj5syk7C1hXKFlBQo7n2FD6HIp4ZElIV3CgUVrj565TbLFuJqulHqM8Q4BPmoj16Z0SUZLSatdELLQVpCWYD8R6Z1ZnZvFNIrChu63itVM08pVU2gUQwF2cfp4i0UjMlTA2qgc1nHX5Ui/Stg7wJGZWWSbbQRBwvr85PMdOkyeMhlAeyifhVj3BzSW2PhhRRsFvQ+mBNGkTqJEJUn8FCvf649PtAUtBELyhdir4bJa03I5/K8iKLA5VaYgliygNZHY33ynXTMYikY/huu1QOSp9RnzixarQytBK7y7ltXVDt7cX1v56ZpV4PBfZa2p1uqaEpEzxjs/ldh3rmhlmm+9JMram0iK7QUTkm/ToB74P2YN2prUAqa8q15R+vXKmYxzk+AJFPA7g4I47ZpPwZJFO4O5Vtfw7nu/e+Mn1GlESbEcoxF2q2PfKNLIzqVkNeaxZ7Y9tOm6x5gVrzDv848o8tJKXFkcayLp1lG9CK8puqznhzOzNFMdtWCF457YckTjc8kjqL4Ci+en986dMw43GyfNt6n6ZJxY9kh0JUTTaiSRiota4rjgYyLcAyqltYFowtTi2XVFnEm9Y18lsbJHXrhwiRImjkkcN1ASgSD064q7GfRYs7RsqblA20Bvsn/eIn1CRgWAxrqP8YlIQURpSxtj0qz6WMdGzI4DoGYdCCBux22xaSOokUaNKYREW4sgkn8sPwzAAGKsj9Src329s8+4MZApZjdCwN3zgIsXCsihHs2Wv4ofnmpAGJqtqq1g2t1268/OE0ok1BZpECmhtAHH97wPvEKRFwXpPKWHb88VqpmMiSbSL/lqwR61mbdAStiNV9oSx+KfDdAL2MAOR349c9G8zohjlLkgblKdfcYbJE8tSKiS0D5hZHPF+mDFG6yF3SRV58M12PuffFtlMoZDFI9lgJN77iRwPbCZYWUhLTaStd/fFpq0D+G8uwF7vs3tfY4ZdXG1lMSjzVzmtJA2xG0MSVYxrGON61/TOeAUJmeUMCvlVF4A73hmQK24FySByVBNX0zS0qRtEHED7j26D/rG+OHM0p8TPQSFB4UjtbblUj8OEzES8SvG3opvj4y3Y+p3BY683Pr8ZHq4nh3taeUC+QCT75nGSFUrYxYDO253dr52stVlEhUR7hZioUVPP0yOBpN6NLHQLWWDcAVxlm6Nyobd0qgemUi1Qsrs4is5uIPZ7FrrMrWaF9MlkFyH8lHpx1OacRAkd42kUnorH9c8yRvCU8Tgt5r5POZpSX7NGTiyKWeURQFnZnN9COvp+mN08kobzRxgAEEdzlTaLTFYafwwBYCLwT63i5o4opo2cMWJITm798RwknY3NNUhKyWshk2R0eARZr1xj6v7rpvLIgv0pavtgTQqSEios/JYq1V85PMHghsoODQ4PmN9cS5INKR4I4TeIjtIoHrxjY49hMjIXZf+RoC8njladA5L+GAQaFKD+eOEzeHwNqKfxdz7AYv7GafRdppdSZvPGoUL5yW6f7xetd01QU6e4yLWS+hxGrkMUe08hBb7B1PbnGQyGbRjTgPv/EikdR6e2W5triT4/wDoDc7RkhC98+VwAPU2cjk01zKwZ/O4JII498olSOkUzSLvHQDb+/jJ9+lJWMnxGXsQRf55J/spDOh5hjaKk3OzWGlIr6YC6II25SeVsoq2K9B6YSaxd3n53Ns8Ijv2rF6mZFYRmUqGIIAPW+37ObDLl0S6mR0iZIzp6JFIqKxA+Mn0+knmnVZgsaHk1tNA9OnGUS3ZnbYpPkPcFffBgj0b3tRVvkFFoA+pHfBaLdI0PD0u7+I0c23y7hfH75xbT6WXkWrH5JH16YqKFGCxLrPDYVufZ5m/tlEqLDGIkldkDArSdPaq742US9FHUI0zK2lV/L1JHT6dzlekdfEqLSiNRQ6Hy/OSTAtBthiBkcg7SaI9+M9pvs7ZMZtTJLEsdA/xLDN6Ue2N8b00qoqld3l+6xyOVB85UAAk9r9Bk5j+7F9sh2g87lPOUM8lmOKJ447veCLJzoBkIkWOZ2ArY48re5Pr8YZU3gitEDOxsoX3r5Vrmvp0wFg8JnjThmbkWPN9Blo07mG5THQ6BGuh8+uDHqI3UpE4VjZK7bJ+PXJtD8vojh0sjI4hViwez5qH1PfC8BjpomMSBiLYbvMp9PfGrH4JKAuRID5dtV/bJ1jbWSARVCeNz15xXv3xENdnJIkmlRdkhRW2+UCmJHp7dTjRFLpm2wx7VX8PHJH1OLjZln+9P4jKLWKuaX47f7xrQnVMsgZ1vqCeRhZmR3J96aTxXJ29XN0PSs8unbzEu6lySCb3GupAyj7rFGWWUOuxbVkG4n8+Lx6OAqpEsgBFEtVg/wBsH9M5fRJpdPHI5kIYMVvap2nr3+cqkddPpfPE5ZjtUEfgsYJ0Uy0isVHJDWGN+mEUaAFpJCrAglV449TWNF0K3YKSLCsezTmmAsq1k4zTxzJKQpj55BI3V856GVyzgRUGNqGIthX9MM6pjtDqR0pgaW/QdvzxkxXfSK336eEM8qyEkgkjgfAxJBRo7dWkJrhDbYmae0JnkEO0gBVk3c+94EmrDUCWe/5dvN47mKosYsuoj1e+QA7v5Q34ffHLPESdrGQgUenF98jDDZIJ442lqwqtZUYGpZm05WLw1kJB8xIU/n7YOTQXFM5KVeaSKSUeRQdp/F85OjsmsHhF2VhzaEc/J4zrTJBKG2wCbq0u4naD6Y1dT96St25geVJN8dzk6Q/R7WxJJ+OVoXJ82xSynngcZK6RxbVlkYRqfN5z5r59+M6JmkPnnFg8KOh+a5xcUcUhYSRuS5sFUK7fUk+mG7GWdlEkrDU8TKiuf4Y2qTXzV/vrlummQIY2l5Dcuvf2yV9KXK6eF0aRortlN18/5x0cMmg03hynZIlBNjKS4976ZWKl2xJNNUUtoYXcMBJG3XYH9+pzn2hFAo3zzNQryKP75OdZM8ZDFVBetu78Y7dMBtTJFQ1MS0xIUL0IHezhbUekTUWz331SrR6Y+Gg6BBR+MLTT7p3SNmMoXcAV4HtkoMLSFiBEN1kHqeMFlYTVEJK6o27n4FYjbbLKKJJdYZZWZoCyrw7jkg/FUMqj+1IBotpjY0eHXqT74RgaJlRFZkbzMDyxb1xC/Zwm1TEu/ght1PzVe+bBsYOtliJERnUqg3PGzix3PbJQNGYgItO4WxYLmzeP1ummbVmMRqwlNkhOOfreDFpdNBK8ZPhv18xPpX5YzaoeNJCpdHo01YP3duFtkZuP7ZQJV0dCMoo6+e6uuB84UcMckY8Oii/iPf8AXAliEQ3nhaPAS2+et4nJtmenZNXK8Hn0aF15clKX9f8AGUaHVOokZjFHGFuk5K3718ZyAQvCTGpIPJ4PPOdaQeHtK7gBRoGz+XTCm10I6eEsmrjijUeMgtvxIAT+fXE6hpFERE067FG0MBdfOMm2RtHqUQK4HK1+LtyMiXUJqYnjWKUA9bBr5AB6jGX2MkdSfVajUcM1EcWLK/XGRgzPWodml6kbLBHxj0KJGKiYuBRYAX/bJPvpi1BeVNwPdwVo181g2XQ38CnhkhhIVVIIGzcD69P65zwkZrIWOUgBjd8f05r3xeo+0DqGRYgaF7guLRvEBYK6ykigCbxqaRkTaoEbvDDkqfxFhYHbtxnSpMSCBnSSih81kir7mvrlcUFNccgVTZPv7HOtpnQWRpwGsMwJuv8AOOpmvwl02oWMeZlLDqwJY/pnvvgdqMs3hcjaAefoMX4Y043gCazSlmNfTJ11KRup2ddwFHgH4/zlFFPUZoKRpkc1I+1qIG2hWAZpT5Vj2DvzYbnn2xrSSSIu9EjLLTOebzqSQRQTeHG7SGh5qI9q4xkKYUcm3cscQ2sKa+LAHXuM8sy6hZJtqoVFUoorXTm/jJDbS7gWtwOJASDz0vmxh28X8MoFrngAEe/+89LijiTNAQxbI1l1J4ay4HlHeue/rmkivC+nTSFXawfMC6j6Hp8DMHxxG4t1ls/iY8D46f0GN0usmvbDK6ofxNyABkpQkyiaNLValkSUtO3hRHcYwbBJNWQcRLqI9SiB5F3FgzlbQtx3F+vpnoFE2o+8SEMYrYLakMfe64xOp1Q3l0hjjroB5efW7vFivEM36XQSvBGu0Lva1GxRuA+O598oTU7Fe5mUkU42cKR/Kff88ztIVVSVEkbVdINxY9evp098a7ahowakZGH/ABIJHf8AfGTcNGUi7UanStsPibVUC2PDdevXnGfaMo1OitEErI3EqyE18ggV1+uQwzTOAGUb18oAkBYDvY5rKtLppoGPiokmnNqyEnzcXdYlKPYezP8As8HTzPM5DvXWOTg9z6H65uNrm1GmjdtPIyqCCTIaYnoT3Ne+ZGo082hZJFeMAEFFduntXes0NJ9oapJFLVIymyqGwp/Kv1xvk/LTRVE0mjVIUlMzK92wWIMoHz89ssi1ruu0aQPKvBOyj+QxyajXTEeWB0LEsHkuifgEkXVc53Trp9PtL6lS8fUtEgG7uL6/1yTtrRrJ4NBI+6ST+Agay8jDao+e+dlnQBtMktpZuTdz/od8GISzTsrSDUxRnhnYMvPNWDx7CvpntTBp4jUkU1sfMyMPKPbj+tn4wZdM37I4QGIvWqqqQWIrtXQ+vxmuHl1ETs0zRgD+FuFA/IyCBtJp5Y5IDL4SsAqyOCLPUj6ZsjSxzyFnn27qKoz8N9KxZvQX9k6KJXUEtMyDnzHg+1nNDT6cMDuLkcmpKBJrpX+cEaacRsUjCxjqBJRPqQKo0KxXnmi3htu1yp2sCT7decnpuxuoLw6bducNIoojt8jmhksGl3IS0MsW5gWVRwxq7F9Pn2xiaSR9Vc8UuyEi7f8AC3FfT54yhp2ZmnjibzeUru5U1x61h6QpMv3iIMpkU7l8rPJyfgd8HTQKjL4jzJItsQq7dwPX984T6cMqkodzm97MCQfbKZvEhRSVuWRdqV1478YmjByF2hjCu8bFt27btv1FdDxhytHOihnfpRAAPHrxi4vFj88k6SOVoIGpWHvnZnEpKE7VArh+vtY6de+DQAxaYKCY4wUC9d+4/PSsphdfCMQFhePKv9u2TqpQhlaaQCgUJ/D7cCs9p7Us8qbU3887ThpmbKQscxiZN4BG7xDxXwMpWJNPJvZwm+qBPLflkMnhyzPJJLGsnUbjwR/+U4TyqYWhC7aFL4YBA+ldP8dcNCsc0jKAsZpWs7j26dPnBeWQTO7KQWUGg5v/AKwGUkjxhJVV5ao+nXGExxaBZNplctwA10P7YOwdHk1EgfxWnVkHAYtY/p74zxIp4qYRpIf5mpSv7/viZIbRRHGySPzsI5PuP8YlFeC1aiWP8/8ALzzwKzUYrGniWHxFVWY88EYMQDpthKsp6h3tj+/fG6U/eFljZaToTfCj05wF1mmj8gVZVsqrJRP59cxrJH0yLEVTwpbNgqeOvrlOghlhIUKvTyjjgk9e9YcwfeEVL92JAv0NYUV6FiZAQzrQ3cC/T4+mAN4eGlazf8RUFMG4bk+n98KWewB4IrslmwL98Y038BiwUsQN1G+PbFxxKZvFEo2jjYzcg+5wtfQL+w59XPDJsdkliAtSttuHb3vEz6oncZV23QUB6F9sbPIIdMTFEeRYKc9fcZJPTKBsWYEgEHgi/XN2ZUOhhWZZFYhS9qCXBvj09cQjx14W/iiOtAf3xglig3DYeCOic16++dj8MK7uVDkHnbY+lYtDHdUTpvsrUSPKWsAWgpiLG4cjveTfZuvmf7Wg04nUQx6XhHsMevfuRWWMvi/Z2qQMG8SNhTjjpx+uZeg0iatvs6NpmG3eBOw4deuzr78fBy3xsVpU7PpNF9raXXmTSwuRLGCXXbTijWDP9qaOKEayaZokF0HDUOSOg+D1zO+w/s6PQ/amqlM0bGNtu2Wt4BHUEf3zY1K6aBxBM0k3ilnUPwqrQse/sMvbqyLpOkSTfaIhil166OaYwt4cRAsygi7X/wCvvj9H9oHXqZY5bjcXuagYiByhHt85kfZn2h9lq7Rwa/UJumLbZE2GIE8g9tva+2aWs0mlm+0k1jattyC0iVhtBo3wOtj+mDWFpFa6LT62EGURyyFQQ6qOcaulIgWOGXlGss4PPtxiUYQFpeoKhQgHCfHt3x48Mbl3OFbqwNAHGjxEdjdiLF5dsbCywQcDucl03hOskp8ZhKwZfGHCUO3cZRGrSvsdlNqeleY/1GEBJHC7I8TuvIUtW32/3jaxLM+ST/3LTfwo3ePdw63R9SPSiK5zM+7JDJsBJFAgkncT9M2hLE2mbU6JnUxOwkSUmrbqDfB658zL9oRRawnShVK8sGfsOLH77ZyfMtR0fHdOjRlWN9Z4BlAJIsBgxHuaynUJ93+y/ClUSREEbEauPT/eL8XQ63TsJmjj1EsdeIq7ioPHN9R1598l0X2JqHn+7akxrpNNMzJICPMpHb36+a7GD44K7QW802tHBEY4QV2uIwpqiQp7ZP8AaH2aqwhYHRQCQ5c7fj/rI9T9nzJD9wj+0PEinfaSJQZNh68k8j2xP2n9pJAs/wBl1M2pbT7UlCgB229PY1z6ZWSUsaFV3aYjUaLURwpPIj7mO3+HfPN9Pplzwzaj7sqo6h+QXHcDpfa8jg+2dX4Gnh06jWFXRWZFPIC2wPa8V9mfb0a6zWffplhYOZFjG5wlccVwDzR/tkV8aZZuVFWnmk0DzaZ1+7zGTasp8ykent9MrMP2nDKSsquhWxIi2H+n+cF2i1emef7N1CTI8qyqGAINdQMq0Ophj0zPIPC3DcyMw8vFfA+mNH47dMSUsujOtFlEju6bvMXIMYJrqex/XHzfa29XmgBcp5Cd22x1scZoS6LTSi5fDQFdqFeDXH0yDXfYrJpL0Ihlo8qTztvp7/GK/imlhlOD7ON9qBTGNTpYwWXcrDuSe/GRyamAy71h8OWQM1KCGk9sL+GFjE+o+7MoJKmMCv8AWL1jRttAliSOQDdI1HcvTv8A5yTv0pHj4aWh0ivpGSBfuwc7vD3fr8f5xU8MkWj3vKDJHzvqgpuut9fnFL9oQwweMdRGkUK2zspoL633zKMj/bGvll1Ugh+zhxpoWJT7yByWf1HoDWUjG1bE3kZX2s8/2zrh9jaWZHU+fVSKAwWuaBA9vXN2XRl4ojFOngaVQsaRxDy1x1685bptLDpIF0sbRqlbo6CoCL46Y5kjjkBJVlDAMpTp8kdsE54ox6KJ07JNNojNKWlUGN/NuIogDp++euO8JoyoG10Y31PPrxlasu5gw/GSVZrYdvpk0uolhmRCRtB3LX41yem5NsRrfs6X7Q0kZkpAXNbeQPp3z0ATTxpEJGLJS0VoD1zUiAmh3kj/APORY+PnFyQRqPHZwzBTSV0+mNTaEU16IcDfEkaqpLbhQ5YD9BlgmUigCpuqJwIxGyRu0m5oyPMwr9cGA+M5ELKNoIrbwBmprBW0x0k7xxqzyMq7qpR1zgdnjACFkbnpyT1xuoG5VCkbgPMp7en0yTcquFL27E/h4HuKzSbTBGmh7MqxqwIIurvi/TOo7Bjtj4sDgjzZE+pTTukRJa+PN0r+mP03hzKgdl8tmwOBgTGcaQ3UHbGxYsfNVAFv1GGqpLHEHdeOT2B9MUZEIKliwcG6Ng/6wFV2O3dFu/lAcHbh2hR7MTG7RKC/cIBnI0a6dRTmyNgBrGRKyjcq/pV1xeC2oKIfEj3KD1JA+mDPTX9BquylWLgdAeh9sTTbDHdWTyy8/TKYmFKpUfHc54yAKFJCEi6OFahboTBMsci6VyAo5HTrfOUSNpioQdjYYVx6ZIQsksbR+E3Nbg3XCVIxYLR7i34WP5HHjN1VBaXYUaxI6KpO2rYdT9cdIIWZShZW6gobrBFqmxHWOiKHHIvp9cXGv8XzMtMTu2tYNex6Y6xADX7QSFLZ3Yd1IvDgiUO8xJXxeg6msWoEbU0i0/rQyh3jrdN5a4qxWGFvsV10jwCvH4dHg8WKwBI4cbE6HkDmsZ94A/hxgWb/AAngYrUzLFsKkLuO1nAvaPXGlrwWwijEb1ClR+L1xLKZ45F8BdoP8wDWB39crBhQVE4Yseb65xpYoRsMgUt5jz+/TDxMpEsIXwygIVE5ofzDHB1Lq8iFginbXG32xBBClVkChyCCT198fGkJTZHMrMTbC7rJRT8HdHkhaQbo9zAEWAcH+ZigMgHVar+udifw5pYy5YD9M9MVdg4mA2/iAFhrxmsAnpLKWNuY6A4G49B64sCRk3LsRCAV5s++XCaGTTFGnXat7m45xEp00QC3sVVoMpH04ybiMpCRu1E+0TlwtNRtaI6Y8qRsbwxuYUxC2LzlBI0lSdGiJ2q91z74STWTtcki6Hf5F9cT9MLf0JnjLEM3l7GhRwYkMmqPBCk0QSa9eMtmMbIDuBofjvi/pi4l2KJkkB58yigGwqD5GU8HwwoNzOzAHpx0+tXhRlXV4wzOgPA/5fXEDUJqGKxsG5IJ7qR64EbeBKWZwLUdeL59PXK8q8EqynwzEjbpSpBtQR1yMaaTxA1Ahr/mNj17dMXPJNP4sqmvDBCk3d+lemFHMrP4KMdpFkbucnJq6oaN1ZQi7UDb2Xy9Q3U5HKS7eIXBr8Iu/qMoYPKAvhbSOgY9ffjBmWBAsZkRnPCnpz64HqGTpgrEDD4oiUybuNqnm+nHbO+DGkrSNy1iwCR06DGRldhLUjIt2Txip9YCPDiceegK9T74prZRCITT+FdCwfTHvNGIwfK4PNE9Mz0MzuWEixEcNuYNXuOn6jKVkj8SM0ojAobmsN6nLRbSJyWnPu8hkhcN/DVt1BiOOnTuMNom27Qi+G3BAPU++NkQMTSWGXjb2wFmYkxkKGWhZHGBpGtgyIVikJJP8xthSmgNo74EGnP3eyzbr3kdPesN1LKzyhiFJKFWBJHfDU6f7vuWQrvAIEnFD+2Zq2G2kRb108pbzMpPPyf+sZCsMkreKSqkUR75yKSKYuVanbykGugyh5oAiBVCso5L8E+uJBejNjNGraZC5sxHhT1Le+LfcZnAkdk4qz0xkM6U0hAlQkKgsbAPW89JrIKb7vtaQLRBHDH2zqpOHZK3Yk+M62bCg7gy9xntOSsMCBlbYgFXwKH54J1EkZA1EhN9BQUD8s94IkcpHZiBAJYHaevf4zn2/wAR/wClZ1R2syxsK60vXDjIMIkI68GsVGqqB5FkUCwAwsn1w5dSyQMBG1LR3Hoc6kn3Ik68DRZJEYPCqqtbKYmwPXOamaol3RlSG/Cq3uGdj1YLDzrZXdxQv2/3g6jWcABalkHl39FGPJpLsVW2BMImK7ldTXQdT8jJizGZljA2WAgI5xsgHhqUbcb5N3z8+ntgR7FUjcgcnkdKOck9lRaNJHXUBZDGwDHkEi+vpnt0gB8M7V6dORgTTbJEVSCHseudj1KNakny9QcSzWPGpcSiORS61y1URhhmdWtQRyFY5DPIWkVUkBA/FyLGUxOUrc4CluBfB/zlIzbdPoDSq0IZJY0O5ALst/8AbE6UPRjaOmD87T+Ie2XT6yExHzRyG6KMecKC5Y/ERVbjkDqPpg/5pyxjcnx0GWJVCbS1r/xs37YBvzKTXrZoY6VBIymJ/wDx8qqNz9RipUjMW56kEa7lFgWfplpR+hExbxx6YqS+1jW0EAjjv8nA3zxsZWlchibJocdMl8aPUObAYbrJBJAP79Mc7QxQ+HMG2r0B6A+hzkb3CtfYLS+ELVfEc8HcaPyKzzss0aLG3nemvvX0xE7GERhSNm0AFVujfr6e2Wx7Yz/+sQhpKLfynFSfQ1pKxO46ePbzy3wPpkjxoYpI54jKki01g7locEdgfjK9SE1EqspOxCQRyDfY50yJFEWZtq8HbQu/XBbTwKkZ+n0ep0saoJAu4hUcAsSvqT3zX0u11IlJNtww4Ar/ADiNMqyMAJNkVFmU9r9DjjCqMoSUyORuFUBV/v3ysL7oSbsoJRJWjMVN1vEjUSqC1RsLrbXJ+cmZTE+0yjxiTs6AlbPr7Z1pvFO7eh21bDoT7YzlICijz/aEsumIRD4gI8uyiBfav64nUsjnxZIw7L13c0DX5YqIxGGUSiWSXggA9PcVhEsgUP8AhBok+ex26/rkHJvtlVFLo7G8OobwUIYodpr+X875GBJOi7lRnViVCnixz1o4ekYqjBYl8jFSjkFtvxxnpwsS75SQ7DcTYNX60OmZr03ocokptt7+wBIvj3xq+I6GN1KMnLNfU4rxRIiyhw1NxzjhJuVyxQDu3X25HbphoVvBs0IZgUCqxXq3fEl2C/xaUJZYigo+mPjl8RN++NWIHKt1HxkciR+M/wDFSwwJulr/AHhkn4CP0HG6JKFRyu7mib/TGyvDKhEm114A3dBfTjJ5CGV3gJsi99lQR63nhKGg5lHS3AYcn3wKTqg16Ul4FlIEqmYCqC9MlTUSvqVhYl0C2aP8w7frhu4kTakkYPB7HDikjjlWJFZ5j12rdH1wq2zLEKJQySSKA1gKS3c5XptM0vGojB2NuQjtfr64Gm1BE7xyoAR/PIaUfu8fFq7ZwXDmMU3mrKxgov8AIRybWAvp44/PKgZu2/kC+9YDaqPSQeZzuriz19MX4gdJDELsWwMljAJh2ePu2jptYklT6EYHJr/KMkn2MhlmEP8AEYndybIF/X8sTqGjkSRvCawdrdr9ueuE08kCs6RWGH83Tg/1xerEoXaswVpFB3dTV++TbdDKrO6fTqZFkotZAYsTwfn0w208m8igu48yDkV6X2wVCAeHMRY6gHy/rznTKsaKFmQbAVq/8ZqGfZxI2bh0O08F7IIx6xldGNzbi0lAsvT6ZwUS5Yo26j/DHJH9cbHHEVEiuLCvaburcDHhHScpBEahoUWNonS6fcOD9MdpdL94kZdQUdYjQCdb/t1yOLQxRGMvOx7eCDQzTR2Sfw4UU11BajnX8UU9kSlKujP+77ZGikreCdp5IVfnAknSJRGJBIWr8S3Zy/VTRjTyDwUazVBlNk/PfJZ9KkkMSxlYAFB2nt+/XJfL8XF/iNGV9ktxSgoi9Tdx8AHBV4Nx/jBgeu+7+PnEs7qv8JRM7EoWDmgfSgeMdKvhlImjjVgtncepzma9LWgZpLXYHZd5FsF6i+gvDLLGUGnYSOx6Dr1/TPB3LIFVBxzbdBg/dt7jcB4e+ywFGq6nv1xUvoOVpTKVd2+8ReGeguuMydWsImqKFpGQ/j3dvXLNXFphKzx6jz8B2oEGu375yWQwo5kkkjQzVQ3csPf0+M01ofj+ziDTyFJIljXbyGYnzf7xDrJFYHHO4Mw/UHOJqYIVcaqMqfEPHJN81XrnItc51BiQeICpVCyX+eLRUUr6mQSBkLInPnABJwjA4X+Gdkj0SCbVTXf0HsM42qmVQkaxxyjgEWwH09cum1EbCLxpH4PFpYa/X0wDNsXFpFkljeN9+5fOY6NEd79MesaRaks7AEURZNk/TvhmKQxbtK0QToaBv6HB0ziCNg7lzfm3Dsff09sJLWHG0kpFttjF/h8x+fc4+VdOjNDIzyt1cuaBPv75Oup0sMgAnXcpLhAQAxPQWc5M8YJc+HbC95bgfTGTpCVbOsjxReHpw6XRUnsPnriDpG+8IsUoZia3ghVB9M6+pSeYK+pjZWAACtz9fXA1ESzSqgjLDddu58nuAKwPsZWiSZp31H3SOFZGQEmRzcfXpxgoNToAGbwo/EbyBB6dTeVrHHBtRU3bhe0dz6Aj3yP7V1UMe2GRk3oKWMEWvNUPfMtxFE/B4kSX8Us25jt8tV9T/jLoTFqNMqguyuv/AJmH4eeg9T156DMto5xCY96jy0AVoLfXjv8AOO0KtNoYwzs+zhnU0qgf3wdAklRYEg1W6K9saj1Fj4A4rGQxyQwkTyiYIK3KevzmVFMBI0MR8OJLI5oj3s5qwSodMoDrIwN7r/FhROSFl5JfEJhbnhTd7fpjJEEMe9381gHb1A/zhNqokPLKKUGr5OQzusrGtVHDMeg3AEYrQFpXJNsm2xI0jgVwwFe2KppQzGQ+YAeQg3+XXHQqphvwlkvo7Hi/84rTPF4bOkUEbjnpQHvhS+zWl0dfRyRRoEj2KB/Eaxx6frjFIn0206oKOroigE179smm1sSMpjUspNHZyPreHpZyR5FTbIdoREoj1JvtlF2CnWg6nVqwCaiDyufKSLBPcZKraklY3LBVsgR3uOUTwDUzEfeI0RegYWVPoK4vO+AgJilQiQr+MNRr64rTHTSRJp9NNrgfDnWMrVhPMT9cYNK+nnY07uG5BTcAM4JF0kW1oQgAJMjHp9Mb96Ro1XcOT1dyLHXFGbd/oe+leRTKiRlD6RhfzyVow86xSBNoN7Wrn6Ys6jVLOY0mjXca3buAPa+2VSxop8UTPKFJJVNo5+Tzhr6FuuxM+mkfV7YkKLQoRpz89cfuXTyklXYSdiRRwH1EhDun8JRyFJsn5PJwl1azaUEIocdSTQU46SJttlJlmdQAscIA4Ct1+uKBQDh0/Fuaq4+cmY1AzgrIgAUm/wC+ZuiZhqpAi7IiLskc/TKW2ZRVF0c+n1OqjV5o2CsWHlPb07ZS0kerPhqvTgOARksUGlKM8bb3r8O++fjFaYCCU7pCDzt9z75OWMdJMokMCOVei3/7Tn8icWIxvDiZqRbCg9/rndQ0WtjjmdSzLxu7/pk0b6aOOMFxXPl5J9+/OKUXRdEIkmZ5Jf8AyL+M8HJNVLNplIiWg/P4qseoByiEmeVQTR7Kw6D+2TTu8k97VkWEgkKOB8/1w+Gj2dh1DiB5JGqReTuarGRt5bnkYFN5BO3jCaVSxLKnnG47h0+t/png0r6bZE4HcALW7rfGApVCV1Mjuo08hTcCCOKzTScR6fg0zjyeS/0OJ0ghMRSbwlc0VKkWPzzsctyupClAvQH++YVuxsKxzv4hh2uR+JfIMFg0cYJkei9KoHGOjKLsB1SRIvVTW4+mFM0cUZIVrY1uYcMcNCXpHJDGzKZjJ/8Ao82T0vPRaWCMs6NsNfnkU+qkeZlgUBlBsAn8xj97PGkgdAiC2Dn8RPtm1D1hNPNIAwdBuUkhSCN9dBfT9cytWdQwilLxMSaO2yRWb2rM33crEUbdX/i5GR+FqCphnIaO7K1z+Z6ZWLrTIj0Q3uxKl0FfhkND/eUageFwG8oPFtzhzL4IiZI2jF7ShF7vfj++ek1EbRvEZk3DsV64rdu0N6MhlmPK6dNvPmuiOO4yPUjUM3iW5T8QZvT29cWss22o3kWOqC3tI9/XDijEjCSWbUFQpG5+h9f7dsZJLTVp0lNQqgsqqCAzWOLHbM6bRpFRV9iofLRJv3y0Isz7IpGCXb2l1x1OTavxtXM4gjOwc7/D5cetnKwu8M6CUwz6gRI8jApyDS2fQXedaGopNkcbbeetGsnTQSRJGxdHZuSWeqA7dfyxjyIQu2baDzRN/ljPvAI+Xd1BKIxG48LfA/rjUJtmoI4Xo9Gx09OPjJlhZovMWPHlYV5bPXHQL4Go2TEKB5T4nTp6nPWaVYecm70PVQNSzLZLG9rtZHH/AFg6dvCcOHZa48pIN/4x0SKsTqIDTfhkFn4wdscgAVi2wUFZLK17g+vti34x2vR0MohmdDtdhyexHrRxq+IYC6IhJ8ttVAf0J/xkkJTc67dqV5ub5+SP0xzPpxpx/A2ndbvwRV+3T98ZOS0dPAz4ryAiTcoIJ8OlHzfp7Vlss7M21ZKCqSwaTvXxkAkfUAmMLdUDu2H/AHlOnjZ2ZGO4nlS4s7veucnJfY6ORs0L7o0WQFroDplzSvJGpagl1tEhHb0xcOk8tmJY5GB32bIo9v8AdY46RjGqRN4j3yHcWD6n598jJqx4gVGjpptcgeHuVamQV2B642WCKMJFHqJEiZj4ZbkN0vmuvzkGqpSY5YzFtP4x1Ptf76Zq/Zurgg0I0GvksOCUPDUTzwf74XdWb07JptPFoHiilglcgeKUcq7HqK6e+QDxfIwjKu9kPs3E97/7zup0q6eXw0uUrzamw9i79u2NIbTPGY3McvQpsAo1XscW6DR7SaYJqQ6lietIhon1IPXv04yuWVAn8Z1FC1Eqhg1c8c2PpnoWC0ZhvZuX8lvfsb46YAEU07fc9PtY2xNkAN3AB4v2ybd6Gj0cel1OoRI1VCPMXHHzQJHbL4tsiyJp0ik20AY1AHySbF9O55yYTnaqxys0hNPG0YNEd/TOiPUl1jSVHYtuYDyMO1EHnr84rDQzU6ldKqI0qz03CiwsZrk13P1yaKXUSwkyMu0cqHrj4x8yzxak74nIZQW4s8Ctxv8ArgReEFQlfEkUG7IFC/nk89aweAaKItZK8CwSbDITTFmAo+4vnrj42nj1UhUqy7LZQCgqvWz6Yt44zGoMRJNgMtA17D09cKGPajKgk3mmZvT05quwxbQriO0yF0ZgsbKbIDkub71249bxEepeSMOJH8EvW3bx881XPv64+GGVkAcE3wOnI+OnOPJ0zKYwm9QaqOzz7DM2BIidTLMfEWMbOaB4K96yzSw6X7yYHihtuqhtxPe/fBm0yCSNgUdV4K82a7+2OgRNOPEpEs9auz/bBYGhqaaMSsiu0fBUs/PHrV8/lk+m07oGjXV/ePDJ3hqF/AJoZQwLuGYDeB123YPX4wX0kRQ10N+TrycKnlAoRqdNUI2+IHF7WA/M3zhxJF4ihY/CkArzJwTfPI9fTDfTK8Ealdi3ThT3vsR755dNHEgZpQVHctZGDkasCjihM0jFoPLwvkK0Pp/XGyJ4ellRG3xjncBwD6dsPTQwaqLfK0ewkLHuiHN+vrlk0MEcbJsjG/nyDaCfS7xryxH3RLo5fOrGUeNXDOPwjrVZKLfX6iRx5TyS1WfcY6HQvMqyPGwk48MhjSgdAa/tk+qhME5cohJr8A5Hz1xdGSSEXsSWQPupgw4oX0Ni8KNI518YIu7be5k4OaWjg0jb3lMaDgN5+/arxet+y2MQaFPLH0UCuPj6+uZmTV0P0r6XUaTcdt2AjeudljeT7RjWZi0fQEGip9Mn0mmgiYM8arJXRwePgZoxoJx4oZh3543YU08EkqJdVCW1pEXmjA5W+Tx39DgaXTRvvLBW9KB4B/fXK4xp4dWXdVuj5wL/ADyg/d2hbw5AoJssGNk/OAFtYZW8jT+EsYVbPlHSvf8ATF6iBGRHESEdAVX8X98sK6JUEZBote5efnPQrpX8iKxQ8hiDz65rG1GZO80UhkiRZmVa8M9f2MbC4dWDQolncykcof6H5yrU6OF3Z/DPC8DsPfFJpTCq0S6MdrVxZ6n/ALxfKKWmCZWTZGzPs32dwFCz1vJPsrSFptMrMg1Gn1rKwWgGB8wNdOt5o6mEuAm1/wANgBbrnp85PFomH2vIohMN+BKhCbuQ1We49CceArY3TsYPtVtTOoSbUSmPwmbooP4vX69P0zn/APN9NojJqZRqRBMWTfwaPex0WibFds0/tH7M0+r1kTh4xMG3ypuIZwBR6fkc9DHPBq2GrYzaVkuIg2RXYUOf71l+sJdqzOh0mm+03jXUaQ6bUpMVk8N13Uel1wbHbJdb9iHRfajfaP2RKWaJNkcTsSFfp+Q5698+q8GOHdqZUUWQULGiB2F+nzi2XTx6hZwxVrJZL/GT2PpjCqTvD56CEy6rSPqvtvVMJJPPD+FY261x1FggjNHSa2OfUzCLd4UspCtVCwKaj6dMPVv9n/Ykcn2lFC0sjg1ESSpBIJFdBXrkX2brI/tJ1KafURByQsgULFVk0QOLHTkXiXRTtWasTaiDRhhp1aZboBrKi65J6+uJ0sfi6yZpoysg4LcU49eP+8pOs0mgkjE7HzKSQOaHSz7e+SQvD9ozzPGwaBepHQEdh75RNE2myeaBH08omm/+OoIBLFWJ+e49swH0GmiGxZk2PRoEnmvWun98+pTZNp44VnSBJYju08yDc3ofXPn540iASOEGXpamwT8+mc/yNIv8afR37LM2q1J02yLaqbl8U2CR6981oVglhmRg7bYyrq8hKUTd8da/TMiKV01NSQDwqKkt5STfT9+mb/2ZHBHpmMEDuJGO4ccc8fI5/TE+OWh+RGVrYtc0keq0LaQwRKpoxbpAe9dxY/peQaqWfXfakol0sm+Wgj7mBULVuARYX1r8s+j0WnWNdS8iIkqvtV0JawOn07Znaws2uWSTUsuojQbZ07D/AET075WUkkhYLwyojL9nBYdOkHL7lbUOQoNdQOKaiMd9nLBN9tiHUfZULGZadySxJ6kmz0+M1PtieV1QLBHIBtHjuNgojnaefyzD0n2zptBNqVn0IEksZKSrztA6WOBX5YIumUf5Rs+iQxt9pyRaWPTLpobBZCLVwORXxfuMm+0dTp9PpoWaISw6mbaAKsfPr0/XIYvtBW00er0DtpEC/wARVUNGDZsm6J6jIvtCHUa3w3eAzLE4Dzex57fmKxuaTEXxv014/tV9bqY9GixIVfbDG5NPXQ+gPTNRTEk0umTWXqwCZkj6fNds+Zi0ul12klmabUxS6Z6/iLu3DtXesINrPs+aISxTJLRJl3kb1Pc9+PnJ8hv+afRoys8syMfNEjfzm7vpYxM0Yk8ASOmwcFGXi+/HbHpOjgoA8LKv8RO99b5xq6eXVxbol8RUWiGauf6ZC7YUuK0y/tzTxaj7N1cAMkcckBJl3fhoWPkE1eQfYesm+1dAZ4EXchCyg0BEQOAL7HrmvNBqJNBLpioiEiMiq62BY7189RnyP/pMz/ZH/qOfRzkRiQU+4XVcggd/950wqXxNLtaLqkmfU/Z29kaOVgxjJO5j0FdBfA+cs0BP/t7cmRFfyPzY/wAjOgQzl45JGUhuGdKv5rNCJSu6MKOnCh7B+mc3IaRPLrJdsZKsrbhtVuA2OdPvOrtj1X8BUDaTnodNFNIzkL5aG0EmvfO6iVEnW999QoHFD+v0wp0JW4cgaQvNp4XDV1UenqPfASGJtF4bRl6vzBqo+/TGaVoUtxMBva0auR+zj300cZLSxSEseCOg/wAfOUWoVqmIhivSxxmRAwFhb4bntndLDEztHLCY5DwdhoHKvBikRVryAgqN3JwZI4EjIVQJL8pDE1hz0XbB1kwMLIsqWi0a52/sYgJphAsjyqKra6Dm8F4tPpfNIAxTqQT39T1+mKX7qFtYw1E2GDEj8uMlJpsfjg2aWF9VueMyp+LhOOnOeiQCSQQs3hFbC3VWOmGNd94Tw4Igyr0tWUAe1gZZHCZNMY3QbibNcH4vrme4Z2jNbamlAoNITwAL751tLHp1ickq5NnbXP5flmr93SRfBaMbQPKCxv16ZyWKNjFHtPl5VSCDjcX2JfhLCphsSRzMXYgWwIH+vnHyR7ZE2puU8tZsg/HfOrNLRP3WVrG5SBX6dc4zTtCVOmljkvh0Kiueos4iQ1uwCSpXajJ6q5HH1GZuoaaOZI3O9jwQhzUEr7vNGUQtVmrv6ZNqI1i1MXlpdxsXZwVTCmcWMR6hXT+LSbm7FTXp7ZI7AxvqNpoN09DXvmxHpkWQ7EVN3BbdiW+zYIU3SMsgJJpjdf7x69FTJY5omEZ2GiB5gco8Nhq4WSNAx7Hm1vPalJjpUEaoxjPCkbRlOjMTA6iLYb/mjbf/AEvHiCX2TSKZZpP/ABij1azQ9sa8Kv8AZ6nxNwDcV/fCeKF5raDcps7tu3KWiSWLYw2x+l1WUg02IxE+6OKM6ZBfFnjke+LmkYQr4qKg3HgcWPXGPtZbXayA0AOqn4zO/wDdYV150eoWVnvjcvS+Qe1qR+RGL/0p6MoNrB2olMmvhaNSrD0IAr+/+sZPu/iSKwSiRb8m/bO7djBmi2b18os3/rDSKOUmlXd3I7YFMzRLukOhHlPBogng/GVwrCksbh3Vz/L/AF7YUcKLdQgULuy3GKh2x6gsqMKF7qsXmjLdNVhyxvNJMVk20LPvgavy6ZPC8qGgf8ZZpvDG5yfM3XBng0/hOEUMSNwU2Qcq6ksJrGR6hYoxHtpfQevvitXFGmsEr6gny2VoVVfv8s8zNK6ounWMq12xuznPEUMWmDB91bqPGRlNVRWMX2DAyrqBQLwqKCHlcNNLEmskkiYKpUixx6cXjnfTKNuwEhbVRa3g6aAwRsqMoDG2Xk+9ZPkqoan2BGyjRGKNhuPUn984UoHgQHcho+v+McNPCCp2Jtk6U5v8j0w5ItMhiha6PKLz260covsQTKn/AMqN9OlMB1j8t+3zhqplnlWVC0q0bI6i/wDrLWjQsm5WtRwVBWvpk0qiRDLJHQPvd/OUdJaKtIo1jXSTtdC+LNfGejUfw2khBDHajRtx8++UKsW1RHW5yDs3WDx1AJwYtAsTbltfk3R+uS9HoqoN5DVjsOmRpp45dG5lRVYMeS1nGRw1IGtmboTfU++MMMcsh8SGr4Dd8KaoDtErKqRQo0lqTRZhVi/3+Wc1KwLq4q2qzEKFAqxmh4cLoIPDBF8C+ld8NdPpwC4jO8Dk9T+uMo4LyIYdOmoOoICL4RIodMVHCU0j8KALAJHIHGUpLGZZBHGacncQPL742KKMxURtEnO0nrgck+gtNE8TExRu5CrsrduP14yhHMTggkb/AC9PyzjmONdqgHt1wo2YnfShDx73+7yb7D4CHj2KjBkkSrY0D8fXFT7GhbghgKDV1w5VYsQyf/m28c31xX2hpG8KlicMeeWuxht9hwjrbo0kT8QO3joT7H91jJIzJqFHhKkhFNvJJJvtlel0kemUyLGp3tvFHi6o374ySTST6sRSx/xANylQb+tY0VH1mbfhPp2RNHP4kYU3QZB1+mNKQSfZiuGAcdSB3vJ9Sr+CyxRkuXratsP8DHxxqREEiRWC+YGwAfpxlVNdCuL7J3hWR4o+GjqlRuFYj+39cfppHiafc0ZUcUtjaPyzuoUyn7sojBRehNEeh47HA0/iRRyBEAPcHi8k58WNxss05VNJ4ovd1U7bxcr6hIZXIVVIuhRI/rnISiohjQgn+Td1P1zszoxaNiAjjzetVlf+yZNR8PSJDB9nLO7JYAA4Fk9+cRM7SSxbgjEpuHiWAL6/OMOijOoRXRGoDbya49RntREkszI1G6W75X1zfJ8lrEGMaAgl2RT2tFRx2GTwLDJpS7gizbFBffucbNHGASUDPdCvw9O+KTwq/gRAX/yXj8s53PdKKGYN1WkQPF4UpWha7sZpkB0cgDHxRd8c3nEaD7wDKxeYCwvoPWu+Ng2mBpN5kevxbSKB7Y6lFroVpiF0UMmhLbUBHJbdzeC0erbTwKy7AT0VwcOKJ5UZUhW+m8N+H4GXJpYzHHvbfXFg1RyiprBLaM/WaMeFGhG1N/JHf8scUV5NOkLlXU8qB298saFNrWSq9+OT74OnEcbEeC0dryf5j73ggknoW20dgUCebczKb4PbJpTWkmt/Kf5a65XqIBMBskVpuxfpXwMQ8bErEwGxjcig0a9s6JzSjQkVtmcII9NoL2gb1thXPXGoRMyh62AWNzWPr75TqI9JGwgKHwnHmWzVfngNHDspYnYL+EWar0Jzl6ZXwnMcUetVVUm1JtBwD/Y5HJCyxOWKyqG/8jckf4zTlgigaMxF0nIBcLyAO94rwIGltq3lrsmuv1xXG2MvsX9mw+DRJ3I/RT1vB1WmV9UDXmYeXy9/Qj88uAiLbiyFeoo7Rx1z05gkC7mR66hzf643CKQtuzOiGpCyjT+JuArlRtXsaxsEiDRrHKVrbzIvVW+euVxeGFJEbA9Nqvam/T8sU/2dDHP4kSAUx/C1bj8XmX49Bu+yNVjGuaOUndw5JF3a9fccYpY5fvq0iJFFuO1eQw7fHUmstRy+r3SQslRlevQg2Bx631x1RwoZnNM/AUryPy4xZB6MvTHcGELEkMRtU8VfU4djaQPEXa/m2KfMfk9fpnYopEUvC+0znzPXN3lUu+JS7ndfLi+B26+nOc7SellmCdP4ZJieKJ3A67QLP+e+DNptunegKIAUC7xkJdl8ZSsLs1WnN13vriXZy7QqVdW57Dnvx6fXvmRvcJ/s5VbSziRT1JBqiD2rLQ0aoirGu4jhXWrI75naXT63x7aILp0bdXU36XfOaW5I9MImjAP/AC29D85RySZNxAZdutUEhSqW1rfWuOMbFFE5mBsFje/0/PpnjFFIV2oaK7iWNV/vDhhWWJw0YPPDluua+QrwiddSYWjDEKvBPAv6Z5g02pQakRiiDSpXFfrx65e2jKQHbIWWqsCyx9fnFabSSQoJBGPPz5SfN63gt9UMurO6HS+JrmNkIp6EUDftlskGojZhQ2saZ7G4j88VLM0DMIljE7EEqrfv/WASSnndt482264vv8ZVTjHK0nxk9FkxOkjTgHaelbmA/ffOQtH92/CPMxIFVu9yRnJYdOysyx2Avvd/vtjYCggWFoiUBtFA27R2+uBfLctDxpAmBotQplCJx+FOg/zibU6p1cDcvRet5owpHGwCJbjoDzR7+xxOr0aTyFvEK2aI6D3FjHmlWCR70mZo20RCNYPJsE0fQH0xOlZ03mdDudRsLG69vrlj6ZYkK+HuXqBdk56VTKy7uHXrRIU/4OJ4URAH0plmaYxxleofqR2/ti0n36OV1YOt0Dxx89cq1MB8QGRQ8cdCwNpPz/TO6bTKqeaNU3kmvTFfQ+HE1aR/ZhdA3isK8psn1r99sds06/YygHaznd4hPPPXBO2JvKWIC0E7V8ZVHoI9RoV8ihySLs4/xybbElFKgWnmvSypBvsfiJoD3PfLAwk+0C8ZADpy15DqpWh+yjJHFCdjHcrqenQGgRg/Z+l1EgTWRRlEkoFVYgAjqQD24zpj8lJJaTcPSqKBZGlLyFmBocA0P85B9oySx6VPAYMN1PT7do982kiWDcSGIfqqqTz64I0ekeK1jO0iyCCCfzxppyVISLp2zDJgCKfDVQPPv2i2/KrxrRs83ihopCf5OhP0PGXv9koIwIVRFLX69PfEtonlCykB7HlIFd85WpRxopaYqAaN0lkW4miY7+DQ/qPyzkUIGoRxLvjdxezp9f8AOKkhZd8Sqdp6g2q38++WfZ8dxiMx3Gv8hez/AGxYST+RYNJNR7OfaOihfWJHp4XDNdkREiv0rMaTQSqWWdo9t9SRxx6dRm1qpo49KWghCy2VYmzXrycyNRGiQpM6Lx1LdW+e5ON87heDfFyog2qfDsSWCSpqhXzzxjJoYFMMBjrcNx2MLb8/75Xq54ZIPDWHdIaICEir6XQrJxGZJlZ1YMf5gvQ+4H985r0vTaGfd1ebYNVVjrXP0rHT6ZWhMib1Kngg0Cc5LpQqRldzPJSlwenrXr+WNj05ERHivaMSjChf0zMHW2AGlggSQgs10Cr8HE6nWwuSFKMEIpQ1H88bJKCziaNGcAkBFKsR84mNdDIw1aAJMg6Ov4vTDQy+2c1EegZyJdiSJy3ej365PFL4SSjTjfEL3Hrz0645tEXjkeWBZCSCGHJ/MnjAEEJkZ4tqoDyT0Pc4zkgJEj/wTHG7K6sLCpEd3PrzeXTaiGOdQLkBUBb/AJfcjqcJJdKhsP4e7kBkJ49++RtqdS+qqVodj35gm3j1wNoHFs1tKPCOoMMTuvhXuu7OfO63XM5H8CINFIHa28xPYdP3xn0TzJpfsSSSGUMQh89kWe3PzmLHFGk8KbY6C7mJXl378k/p7ZRySQPjjrbGavVzBIGaI+JydgpiPpXT59cs0eq+0PDV308UasvI4BH0BxcccE0o5CMr0Cp3C+uaEIIRRIAbJI3jg/PfJKRppER+6an7RMMkHisoBI6AmsDQyxiWV1hEagnyFrb/AFmjPokXUeMqICSAeaH+sR90giLSUBwetnjphboRUzMk1TzlzGEG3hQwrd/fGagNPLEzNtA5vj9cYukiZ/H8Pp3o0ff2y/TQpLAfE2NGn4VC2b9bOLdsd/isEprNPvaHePEI5FUq+mQrM7eG3EsSvwbpVPx3y2XTpAzTGUhV58OMDk++IjhgSMSOpkHBbmvgYUwKK7JNd9nzHWB3lV0bseCT7EVlOjqH7SiUs52IQAX3EE++M1ERkMW6Kgp79h7E53S6aMS+JHpwg58pO6v8YykZ9aKSIl5HCAm9wvoP947SylixnZlZjtYbRuHvlKaeIzKxIW/wjdz853VwMStQo9mgzNyP84Lei/ohXT7kYrDtS+JCbJ/XGasGOKLw1ElUTa3fxhyyadISkquavsRz9MncwEWY3VOCpW6B96zckNxbEzTMftK9TEtEWiu1D4oDOyS6hpXWCgAP/EpoZd93U7ZXSPymgbPOLGig1DO6i2vk3QP074LBSshjpYTLJXDWxBoD2zszq8cJSQcGyjH9cqeBUICKjE8tzwfasGfQRmEB4dt8ihyPrmTo2WKikaTcURYeCDfHHuMdD9mwxBp1Fu6VuBsD4GMggiDeJHGDJW2r6DNAwqkR+7pRZeQeecvBqTsnJtYZP3dNPolZ5Bud+HC9Bi4k368IWDKR5brnKZIIopQZEklkuya4XjG/cYvD3JGX38ggdP74k3bGjiI44H3agF6RefKa/wC++STaaOPTgwS+ZySx297y8aOTTyl3jcRjhQGoEd+cVNFFqkC393h3WKNk8/piocWf/jwI6MLbkEmjX/ecEsIMqkWSafZ6V3OMXRs+4um/mm2rwPnnFSRQBWCi3oA7V8wwSbY8aEOkQDAMNt8r0B+D3wpIZJIxKqDcGsXd8CjnljhGpZnYta2pZ9o+CPY5ZBqmWFt02njJauBwfa+cFDtmb4TGZTQ2G2Nceb/ByxYm8ZWEcSEjz726A9s5LP8AxEJffEpO49eMZsWOCKSNEBb8XW69cbpCO2xEcYLlkZQD2Lk4OokdhEgaTYGq0UAfFHK9ulQXGlyMKNoe3XpkbFYT5lkJJABJFD9c3JAp9hakKmoRQkYY8Eirr4/PFjfJJPCmzkfxGk8xrtWGut00GoD+EzJW3yoTZ754OJ5Hm8DVBaA3BL3fl1zJtBaYuV9WmnigWTw653r5QR8dcWZJoT4sRd5m4LEk7h3yiXTnZJKUkKKQebBAPQVksUE2o1TlmQFjwHY+Wsbk2hopCNWzvGskzCPaxVQDzRyeQ6VSqwlmYimZub/IcZoarT+FpizSROqmwwJJYdOMzfuIlQMEYoas1tBHoMaLVaMl9DVdgSpVK/CGA3FuOovPeHJJo6UtGC34i/N+9fOUJBp0VB4bXQoMQaHpx3wlA0yeGu0pfNixf17Zm/oUhm8KEqy6iSDbYJja9x72O+R6uRvDaVZXlkIH4lHQ/wBM1JNqmrQBhuWiOB365E0BWOnYseAF3Dk/0/6ykJBolWNpoAylvL2cWOe2BqAdPp0kdUVWPKqVo/l/fD8N18ZJPEBBJAFkMeB0yeOKXSzbfDiUNzRXzk++dEaFk6M+FRt8OSNDt43Fau/XPRyJKhRdFGIx1KSFaIHPXj54vJiBEwNtHt6sL59gb/vniV30HC1yCvIJ9OeLzuo5LHRuPKEWm6fjADV6j/fOE6CWZnkkCGvxbVLA9qAr4/tiTBJqZgViLMBbEEE16/6GV6WZ9K9Al42A5ZSCR81xz9OMEs1BW9i30yNHZlRZFFUikCr6nv8Anj104CeG+rXbxZC2oB9brCbxdTLu1CIvisSzeIVVwPQ9PqcKVdn/AIiI0DfhMn4v6c5NtlEkNTR6dGVdNqE8VevlO08ep5+mSpHczMssSFgQwqiR6V6fHONmgjMY8Jy8hF+Gx549L4rGaNUaHw3BkLCt9WFs+uJypWNS6EJ4yyqYyjtdFSQbr0BN5pNqopF8zv4jkEq/lA47DmwMimgjgbwWium4cPwfc/HzjdNLFt3bxvRuoO2/fmv054xZVJDIsVakEky+Eg4jVIzZPXkkcDPG6ZxAE8t7Spuu/wAjETalNu2FgQASAnF+t+vfFyzPqEhSSV4V4I3sdif/AJe2S4thsc0sUyL4KziRe20G+vVRzxgrqW8do5ksyKKLdQOx/wC6xkBGnQETh+pO0WD7c/26YGpnJnWpJ3FWu8byK78+gw43VG0od9QsQcfgPdTVnp35wDqVSENKEZG8pL7uvxxliaiQfZ/3cTQ+CzEBVG4i+xHbrkJ1M8CskjSRp1SMAt9eet+mTSCpFkeqdip/hkHo9bix7fvnKoGdml8USMhYBdqXx89r4yLUBmiUQxQgt5mUAEgdhRzmhlZ9R/C3gBrMZNV8c19MTjlhbLiXjch5GilbgES0GXtwcaghij3Rgly9ESKAoHc3ybOSCSQOjNW4jmM/i/Q8j6Yx9RcRbaCLFK5rjrRJ6gfni6ArYhKcadG2DyIGviu3+slXWSSakAbF55js9PYevzjRqnaBS42gWWJUFG9vbBjqR3mKpE26mZxdk0SP6dMxixNRNOjRFHpB1HJHPt/rBBEc5LyCJ6PlLAtQ6fGIiaOB3RY3jY2g2Xz1PTO6Vmk1Klpj4gFLvjq/m+/9cQ1GnsI08JRwYixIBNEet9f0zh04dwsgFyLR8t2L5wp5VRUiViNvHDbdx75yIPqoDMYiu0+axuIA6Dk/rjEwiFtQESPY1Ns60MU0m4cdU5bvY9R++McxJYlHQMCKNGjjpdKkIUkPzflqufb2PzxipMN0RnUO1AN4YShtkAAH9sY20qVWXeynk7wSp9b7cZYmg+7HxS29RVcUFHzdVnW+6xQlomolrYKOv+PnGqhOS8JBLqJEjEMkZDc74u49f2M9IjQwMzOXMjBthvjJ9bqAbijkaIGnIVf0J9MtgZTApMnieW7FAg/4xWN0Ih1UsDErLSMKo89T9P8AWBqBJO3hEkoSKPSj2GM+6OZY9XJ1VePKBt79cASNHpXjCl16bB2vrhCPSTbpHjkRomU23l7D9c5NqIp1LGQNYtSpqx/S8z3m8GE6eNjGQQKY8/ryPyzunQ20JiTb+LilIPcmuP6YKNRWkxjLOA5RwN3Nkeh9MoiYlo4yZDu7jymvU9czYJm8ZYpNN4aEHziU8Uev5/2y9pvFi37CrxKRe7n8vT8umCqMz2sMsE/ixtaH0qvj1xsCtP8AZzuJFVVPDMCT8cHr/XIRrjqZUjrbfIBUc9fj65dLE6aAIdSoY/ioEA4V+wP6GCCOQJtkCeW6q9wPTGRSLp4QbaQoCTtPe+ntk8MiwaTcr+KxH4hYLD1xSTo87nw5GCx0dwIAuhdVgQKvCx5JWjcqf4h/D29O/wBcjngdyrSlvFs8ChfHeuxyv7O2NMh6tt6Hnp6HFaiDUS6hzKhRYz+K749a7/8AebtWBd0WaOQRjwDLuZeCV/l6WOuWxFVg8YMzuBtDWDxY498+dkkXTqm0iSSRwzAEAtVd8qTWMNJJCwUvIQdw8xVfT5ykZ0tFl8dlsOrV9U0kwVmZthAYoVB4Pfn1zVEUU0ewwqFH4b5r0PznxkaLCY2YCVJGsO1qwN/p8Xl+j+3JQ8yTKVTsVNspHpjw+VRdM0vib6PpSQiGN2tgvNnM1NFrNMj/AHTWBpZ3LM8i7iR6Dtkg+2fFjWR408QkEFehHofnOyak6PVLMC+pMvKqhtY7A8proMd/JGQihJGmEXTqqLpRtflgedt9iPX9Ml1UbxfZ5gghiW5KYKxSh3INdf65ZFqxFGiSBmlKGQoeX9xxiotRqdS5dhENPY2gg7h/9a9cekxE2uyDS6cmCfTay5tFG16cm96AdQ3qv9cXD9m/ZyFZtFCkL7hKX07st1xdEgX7ZoamKeGSMpuCte6mCV6EiucdLOPuRZ/Ce1O8KQwOLQ/J+GbN4jaMQa1mnn3UJNotl7WRx80cikhhSAkyHcOfMKIv374465JNVHEGMVdQFO0e3TpnJxLqQXYRsAaUk8D5vvWcfyO5FoqiN0QyRA6iI7U4jroe998o8bU/ZellngrY43Dpx6AH5/rk8sqCZNqEOvBYpx+eHG7zI6/ek2seARZY1dDFTa6KtYM0H2jrBopZiweQsG2OdtKR1HHritfralWHUpGzKjKskXB9ie3ft74tYhFH4ccpbc5o1VXz+YrpgoCYgzEWDSsAD/vHbYFFXZx9HLIPEj1TSbF2skalQB6lbuuc5J93n0sniRNH4wKSzCAEuvYG+hHqMfIVigeJC0Z//a11PoM7FLqDAYSWZhKLY1z74qlXQ39Bk+wNFNFEsJWSSGKwglZAzA3u45Ng17ZDptS2ghkh1OoCorAqgVgzMOx6U3PXLdTNNGP4bAlEADVyvtQ4PzhyHSDTKPtLbqHTbZJphz69/wC4ynO8YKOaPTQ62TxSTJGQF8NvM0dduaP5Zo6jS6gyxStNGn3cMoSV924HoP3znNBP9mhvA06rpzJuMbBQCpP5k+xzh0McGmnmk1B2k+YmgxPr6HNVCNu9CiVQjStH923naynaACB2ORjSaxZ45IdX4UCg9Gvd6E5Qp00+mWBtQko2/ikUcC+a6fngjZG8ZjTw0AIID2D+eTl+jaZs2n+0X07mXWSKGFrIj8qO/wA3x24z5n7Mnl+2f/WukkhkcGJFDzyUT5Abb/Gbv/qnW6mH7NWHTKxl1rGBO7kd6r1/vjP/AE59ht9iKYDKkurlouzRUii/w2fTOn43w+NyfbA7k6+j6NoVZE8ZkkjZeXuvywBGunjjeJHFNyxfr/gYccxkmKpsO0WbIAHxhfeEP/4ylAOaPB985gaci1QZ3Fsbfy2SB06++K1JkMbPtNqa6DAKpOqk1uBtWH7/AF98dJtPgrOWajQPb9/GANUxWn+6x6QFp5CbPAXkm/SuPplKGNWQEbywJ3HoT+Z/xi/Ai8R5md12CgQt3XzhuRGhZgq8jk2APQnG1ID09qII1iPlfbwGO0kdfkZwkxRLK4HhhiWvT7j88G8U2tTUxuEYkKK/+p9snnHiCIoHVgthRxQ+MLkkFRfpbp9YJYy4SSNG/mCBQQCeoPPb9cZHrAgMQO2R7cFzfH9szlXU1HvllWJCQWPPPuTlkcc02nKQalJCGptxFn5/XFUm3hnFIt8OSTRM0bBr81Hp74GnLmPeQtEHq984cWnmWAoxUsTt8tVX1xM0QAJMRZmNBdocV8AY7TRNfRdHEVXe0jg7SLA7e+IWTaG/js4eioHf6HFDTQwCodOFkPPKlQP0vHsrw6dpBKok4BZktVPxY/rjd4KcaIkWrEWxZiSR+R7dM8zMWCtO/N2CemLgBmiMk0yuWUFq6H12855qRwUSLb4e0l7JPqMWgjGUbAWlsnjgEjF7o/KrIQBZ3X/bAYpM/JPlq0C137Y9oxIAHZ1YHrxRyfuB6OqABsTcVr8NC8S8aJHIheyCWO9uAPQnOq8cLEGMlhz+LaDlWnlXwtskcZXoQwvHik+3QrbWkyX93jCxOwc+Vj5gBX9MTpNJFptRJMu/TAcFI2AD+5AHXNCZ0KRykL4cXmWgVC8enpnINS08bGka+rbMokrqzcnQAlVTt3Fu55xgdRG/I4HF9hipZQnLbmYeUCqsfGejbw41UsRfNE/pmumLWDiwlRgZLJHBPX6ZGdJEJ2kMaLIwHnrze3PrlMc7hiWRb4ANdsW+mUFSylmVrXwv74JLkrCsJNbthgAkVti8FlUkgfA5yiOICANGQAVBroT74dpIzQ8EV5mB/viFSLTKAHcLfUgsT2A9cnVOxryh6VvbxC9AclTV4SrECSGKqOldjnIgqDeZDt6CyK+RhIUcsjgqbNADplI+Cs9EUkVhuBHsO+KWZI0dXYUlAUOfrj12AbI12kcHnIvu6spaPaP/ALHtgnJqqMkn2MDrppdzo5JNjnt74uSdJqkWMFivlUGgcVIWldd8cgI8u7dtNevTpntIkKSM08MyoTSuTYYn0sZNNvClJKxjbZeQDZUEi+pvLIlJch0De266vElgJF+7KFJNGTrfXgc4zThr80vQeZgK6Y0Y6LJ2hsds7K6rsTlX61d4zwWggBUBf+Pf/wDd9PpnZ/DkQUOL6buv+cBdKqKHAJYfze3bOmqxEbFvqJo0sRl0Ioknp8jFnfM8Rs0ASJFNbf8AOdmosWBYPVKQ1gn0IH9cT52k8SVQd/AQE7q/5f0yTbKJD2RwzHcOO4U2Ti2qQMqBjXJ55APOdBKKQdzCr81g51ZB/D2otp5rY3R9sR0zaCv8c3FN+Hihxf1zioRLvH1IPGFLEI7mKlnYbj0B+MbBpI2jfdGisR+JTwMyi26DaSGOY2IL0gvhg36Z2QyhCCwMZ5XaOAPTjAaCSSLaxBo9SK/LFiOqiF7V5rt+/bKOT+hKRNJDuCuwIUtTJtILH14xqOyvsfbYW6UXuHqOf6+mdihhfVGgU47GqPpWEYjNL/Pwa3NR4yai6so34TSS75grIFHZnbkc98aqWxANVZrrzjJI7d2vkCuD365wLeqpW3Fx56A5/wAYri7NeHQhIMpc8rdGuRgSFfECmYCMbfIVonrx/TGGKOkjUyRmMjpYs4pogpY7kWmoPt3XjOLSAjjPHFcke+kYFgee3NZSGSfRmddpSQDaassMijMjSMVvYAQtDlvbn39Mshk8KAxsnNU1ijz6/wCcPx/s0l9AyI7RCdZWUv37rxxnYHaKQsZOKt6PHz7Z0sJ2kRCSu0GwOCMm1jeGkXjoZFJ83b4Hv8Y91oFuDJPC1DFVnWN4xwQt8XxfsfT4yQSSvEJWRkbcYyrtfQ9eOvrlkWnTUxpNasI+EU+Wvn3w4FgiX+ORu3kAbgCOeOntgceYVKhKRmLyhBvIpWrthNppGDPJBvpQWJPLD29cckKrOiqZCt7hfHGP1kqqY1twWPN8rXvhj8S4tsDk7JYVT735NtEcMOSB34/vh6kyB/JKm1uCcYpC+EDs3E0Sq3z89uMGaQKzBuR/KPQY8lUKB2yeQyJHtUkq58+2qHriQYQ7GzuFV16f4ytgRE0p2qe59TkMbSSDdW+N+VJBG09+v6HOWSZWIyMMVZPGDCqUACuewPbOxRzKSELoAegPP5nAWMqyyUqUKq+oPXPSTsT5LvdSC+Gxf6N30HEupWTZKTRNlmYAn6ZdG20gMu6Qdix498UXWNAVXzKp8/UA4yARyO62o1BG66oSH/OXhHxEZO0ekCll3ylxu4Br8vjORby1IRQ6Uef+s5qhSpwAwagK596xMEjgsZAbPUqeR2zN1ICVooTfsJZask3fT3zoidyo3AADvgRskkpQjmu7c/Oe1dJJEhbyk9SCa+MZLLB7QOm8UnbKRbc7iByMZJpkM/iR2HC8Ju/oMXN4ERDs7SODX4eR6YWmk/jPtBtjY44Iwqr4sLvtE2pjkYVuMQfjdxuLe4/vkU7K+oEQG5Wbazg9QM3WUTfjA3dL6/lkOr0lQLFCCvILFTRHrgl8bWoaM/AF0WlEXjuzgryrMSa5yITxquyWkW9wZhZ4yiSPVCaKHTyK6FfPv5sk9vphyaJJU2yRpQJb498z3EFP7PLCYFQt+IAE0Sa9cpZh932wlWZRu8y9cQIGdH8eRlX0I28DvlccYWN12igDtKjkg/OCMXYraItVvnj3IY28M2ydTVEf3xOhed4SmolAZTUZB7dKPT6ZZp4wbjeIX+EdLH1xUifxWYRBWUj8XAP79cTasdNdBrFKJDIWC7eLJNk/Ge1DeMNrTqqhei837XlLLGsngrH5m8zEGgfU++SsmnhkERUxyfyMbJ+elYZRoCduwJXdPDTYNg6kiywxbyJp5G1AgRuAtAUQO3ycdtURlpGJWOl3DofcDJ2Qo1ruFC13ANyeuRbaY6oU8iJIWiUhq4pyePpwP95QHEzrvi2Ua8rWD74pAu2iUUbbJ2cEg9L/ALYxUdWaZhuUruKgEnjoQD0wawuigCKFGQ3tXgndYGDCUm2sLqvLfFnGLp4URVAYMeTu5Av36519Vp1U+EyME4KoCRf+Mpx9ZMLURtHtaNnchfKA3BPYHJ1k8JHjGxuaKRcKP36Z06guQG20DQ4Ir/HxnfM6XwyheAOh574HJeGSpaeMgnewSX4vtggwqVtyFFgAXZ9z7Z6SRESwFTee45PoMVKryOlgV/KPf+/1xG9GSGmIyvsLlQRyB2Hz/nGGFVthMi7DbsBdj0PbFmJlZkMbAJyNi96633vDjLnTOrq1GwSx5GOlT1Csbu/hbhKAOK3d/r9cGP8AiNSkfiN8dR14wFQiOtoHTdZ643xF3Uy9KBYjg5VMRnH3NsVSAp5J6N7ZHIpUsTsZlNOGkqx25yxQXZggtW6EcH4xGoZVhMYCsvRgOeb/AKXiy+xo9jBDujInlLEGw9gk+3HbJtjNOWG7aOLDACz3z0APiKsbmgKDX1x/3ZVcGRqKWaTv/jA1yQ10xBhKuNygG/xDp++MtErRRUq+YtQF1wO/xk07iBXZSJBV0eSuNRSdE0rWW3Xu7gVyM0Fro0tWjtLCmq0qrMLCtuO0FReNMum0kXhpIkQAJUFuOvbMuLUDTqsCieSVgWXuCfQ3hx6pjqD9/jfTJtUMCAVY3x9MuvkVKlojg296PA6ptRbTNLKrCj0C980YW1OqR5HYopAOwjlfbE6f7MhfUNMsnigMWFHi/f1xskKx0Kem/EBbAH6f3wxjJaxZSTxHkYKd8MGwnihx/rAcOs/jW6+WqZbA/wAZwSPPMTLzAtFGQ0fg+4x+mnXWJueJkWzwxvd78ZkuWWDrRcYhk0rMZQQXt2Xv7c9MGCJZZGfZt3E+Wwxr6Y6XTqse1YwbHAF0D+uDo/EhLK53HsK5OOo1JJoF5aOLp6Y+Qt7H0zO12njVFUiRpB/IxBBs+uXyaVml3NZYqSNyjaKzNM/41IEXhkHcvTjtkvmqqaK/HfaZJqdO67iISLokH+U9qrthsAJCqxISopnvk1nG1rTybEiIBPINrx69en+MGaKOJ90iUQ3lA613zjkdK/Y+ZCyJTKRXKX36kfGDp9SywBI0SIXR21Z71ka6uU6hqQNH/LY9MohZP4zzBFUDcTXr64L+jNUtFyaKSEKxczvZ823lQfbONpwyRQsrR2eSvAJ/XKBqI/ALuqgRnqT+L0yf7xG0UkoAj2mlDeXdeYKv0RqGWGWRUQqQ1Md1A/lV4SR/eGEskwDbbVtlBR6ZPKkMm/erMFPEgI5/11yqNdMum31I8l8MT+Gh+WDsd4iaeLTBlisqGUklQKH/ANiOvGIhSQINkwm842r1LH3HbrmjOsb/AMWOJ723v7fOT6aHSB5Hidt0Z3vwdx7njvmRlLApgytFoZGXcieLJHVr/wDUelk/0xa6d9QdnhUe7ntX1646BliZo5C7zSHc5bpZHAocUBQ/PK4tLFMjvtDORQbaV+n774zW4LypE8dMXacbY1bYqAcH0P0yqAGWVVQErGx/EfpgrAJGaPxAymgeOTYytdKmkiBifaR+LeOCfW80Vb0lOSB1cgGnMbRmRfRR0PpnYfu0kXhhmBPBFcYOpljVNomJXpYWxzivBRGEviHavIxpPcESwa2nSPylSFVdq13HfFSI0KIDDSk822Pjljk/iKbePysa4v8AznWJcsxPXiiP7YtWrNb9I206uCFBO89L6YiNJ9Pql8d3aPb/AOPjqffLYtiOfCTagPXrX+MVqzvTfJI5Uiq29PfFSKJ7Q+NWkaVUZAnQg98JIqYMIBHtsdSe3XA06CEKFayfxen5YxZ3aVYwE5W/Mp/rlI0iTvwF9FESG8IMSbUk4Go0kc06u0ZBH4aY1fxj0lJYhWsN3619c6yPLVUpXq/esOPoFtPSV9K7IymyOAAx4xZ0UKn8HPooPHHQDLvEEBVWDOp71hErGS9EVzmUbDzZn6jS+LpyPE8Kmu2AwoYXkRiCKIAPvx1yoyySMAAOOhIB49sMeWQssmw+464yigcmKTTQ7BTDy8X3zj6VJpDJ4ktAVRXj/vDaV9h3OGFXwO/0zjyMwV2V9o4Iqh7ZqiC2AvghAscI4FWWq8GQaiULEhVARyav6YsyxxUzIF47HOlXXc7svXgUcVTGocSIVVPvCjca5AvESALIqqDz23817Z5iixiURgjd+Lj9BiZ3XeoR/NRIXDKdmSFT61ZZBEyMyV5rHT5JwHjQSp4LFY14FNwx9f8AWd8UFNpl2bqDOq3u9gf74h3uQw2UCn4I9sS/CyRVK508TeCpdur0euZeoLKI3uOEG+Abv3Jy8amOb8B8Mp5eBZY/GI1amRt8kLBQCf8AeEMcELpjIGeWWMDpdHk+wx0em06aTww4qiWQqeT14OTSorJtErWBRUeau3z0zwRk06tJKCbNKetduMGDNMaNNGzxwxSOQKO7fVDOzLLpZmTfJMrC7Zvw+vTJPFlhVQzLdBr5PfOTvqWlDRMNwYjaPMeRmQaLE1Eg2OQAo5CsT06cdvzxrh5nWR2UI/4SVA3ZDFvj0qq8jvY4sDi+vHzlKRyeEtMCd1bd3APS+MBmvQZJZIy3IVSNtKQOfQ53xnKLEC6kijZJIF9sT4skH8MqJGvh2FEfHrhCVVtQ4UcsKHX64UCiiIEXJK5ZqvYKofJ75E8oi8yo5LEkuxojOPO48Rr70Vu+OD+WccqXDMoZ0FnYOQP3/TGClQTNLanwwRGlsq1Qv59TivvqzrIvhSCl8hB4vOlIJyrRBvDFkkjknBQPe+NmVx/MSCazYN4J0uiZi0jhmYGgtVZ/pjXjZ1PhgCRW9bodjx0wg0u4ieVgqeayv9M7vMSSMigF+oUC6HvmttmIpVntHdQABQY+X+uT6jc03iRM24g8lvN8elZZM8Vq0SvJS2N9bj3q8zZdcGBLxFS3G5UFqf75eCbeGELNIy3MzrTdd/H+8b4sBSmTfKeC5B8uIgSVHLiCRxG1NVcYMqzM4A06BWFjd1HehnTWk3qMPzE3EWCWBd3tr0wx5GdlbjvS0D8ViQpRyFKsQPL5aFVzYIxmmmuWwyCze1QRXr8fTPRaw40PWZDEPD06MN3XqR9eKPv09sOGSVVlVFKbxZO6qxcywAeIHJVjzta6J569cCJiE3OXVT+FdwIJ7kjt+WI1aD0x5ljaRpJpHMjg/gQAGvUDPCIygO0oVgLJkBUn6kVikUaiZwVIZRdoKsetdcqfQbdPG6+Ij3+EqSAPbscR0hlY2MIAyoF1CdKJo/l0NevONiiKyUjtEBYeKr7Ejrx6cYjw5kZQQyuaG6649QOTf6Y/bqRo28N2lQcmhRJvp05+vrkmVX2OEYfTKzvUxJ3AxkbR2vvX55PBo3jZvHhWWGReoYUPXp/3jNOzSRU6OVHCsSQVPpYBwJ9SoAZkB6jhjZ/OsRWsQcB8DTqDAZYlN0Nzi2vpZIqvgg4Stp1URrqWJXhaU8/A5/rkyxgudQq+FuFESCwb9T6ZRAJWQFilC69x6bseXQFdhmaNgskWkikVfx7ru+5o/wDWWaeOFWWbw9SNq8ncCDfseBwa7ZB91RihUSS+JwoUk17f1ynT6OTa8kOokkO38LNRB6V1/rk5VQ2j5Z9NIoi8NwOjEgMdvx7f2wLaEMu0pS7Y2bqy32/f0zv2dpQNXKjbtxF2I/wmuhPp74xYqlbewjBHlO8m+OQPXJtpYFInZUPMZ2uwrZL5qPt+7xmi8SKUsdszBqMvVT3rKXOn2+FRJjNoW8hJ9gLvOK7I7kRIqhtrSbN+4dz1rv2wXaoPpQ08y6lpGiCK53MIozV12HWvfGskQB8SVBvApiTY9RVEen9Mni1GyIGYxqi8cE+VexrJz4LLGZiYwTaspLErx2PQ3iVZmVxwq8rRPIdVChsbWK2K7gDjKIJXRDu8V+TtDPY+Mit5yRCz7rKpsAHTpYJuseJ4vBAbUATOCGIA5HvzYP5Yr0JdpNWY2b7vGo4A3BOb6nnGxzmR38rWT+NTwx9/e8yxCREWI2RsnDQtf1+vpeVwLC0aPCztGgqrog3Q83f9cHEVlo1LjUSrJGXZyLPcfAxyTQRoRAXXyWfEeiK7EdT+fbFgssoDadl8pKsRxXznJygkhHgsGNnZu7eo4/TD+idlMDNbIp8UmzvrgiumO8TwVidfE8TsAtED39v0xLpCGUwwkRkA1GaLHrxivEBlPhqIQw8zdDJ88dffBVA7NWKZ2j8ZvCBfpGaIxM0STSjzRo9cqrFffIdMqo5aNo1RfMy96/oemU6iaVQPCJ2sQ19KOZuwVTw5qdPF4lNwpFk3wa6jCgihMFRQo18jabFet3itRqmJVdsZZq63x8YCyPG3hEoWIO3abIHx7Yg2li6ekVkJokbtxquf9YnwULFlLE3wRz29envnEkkJaNomRbHLnp/TjCnVpAA58NRzfIv+mEC7EKNN94ULueSgHNdSB19c80iKziOOiRzuHBGTRQEzAO4IlHlVlJ+KywQRxw76LgcAoGJB7nnjAx3SBigkiP3rxIivwTtvgAZXHp/HgR5JgJDaVx5j7HJYZ3eII0n/AOj9b+uHp5jFGzMhYKSVJXaD8YP6B2cf7JiXUWJAdwABFED/AKy3URwaWGOOGLxHPlYspIPHUfnkEeoXzCJQGHNgnkdjhhGlKgMR5rZN3C/XDYGn6xzeFJp/ChQbU6kghhx2ydZG0zJKZTwh2gdx3B/ffG64SweFJECYXG2+gA/7/PExuAWIRttUFYFRf5c/0wO7CuirTy6JIWlh2wzbSVDclb9Mz9NMY3kOoewQVDPwST2qzlWnjZdQT4ahXbzbjdX6fXFiIR6wwAA30JPBPx+WFuzRoDTaTxJVeBNqNwNjDc3qKypNBp4JUinkpSlmMDcx9ie2e00WjhjkhEYc9WZV28jryPXHRyRvrd8atA7Haq3wRmpGbbINXpaKy6RItl7VjHJTtYyWKJEV1dxxyeKOaUkQWSRFV1WMneXJFH2HcfXJ0088s4DIH3Gia2kDkgk3x/rFdjReHPE+7adGUnyiyrV5l59OhwYftANqaKzybqPgtGG8w9CeMNDJpUeBkLBxtBJH6Xk7wx6do5GZ0YVW0+/evpmToNG3o7mm8Vv42onkuXxfLsToK+D2y6bWrDqEg6UdwtSQ49BXcc+uYCauSQqri1L2kji/DPHmUX07Zpw/aUFgSlPHu2ogBz2K9rIrOiE0QnDTROsbUalkg3K6gE7lNOvt2zL12qjMskHmN9QqivcG+mXJM8SnVSPMIuio68/UdevTPnJ5pNVrJBK8YtudwZQR+fOb5ZZoPjho13iSJZiWG9Sq7HAKnt045+Mk0X2mVgbxKcE3tNEtz0OP186abRiKKAbRwzQsNw+emRR+FMhVo2UMu2gaAPzXXOfw6Yr7K59QgiJhheFvE3OCSSfjtXXPSSsUCWoBYEClIv8AznAogiEThJA52Rji/g/Gdi0zyyorOCF5rrx27f0xBsO63XwCfwTC7qEDM4BUj0o5RFGrQCRjtTgoDTG/Y+uIkkeHxFmG49VPBIrrz64Ucc0emLNTb+9jr/nC2LWDotI+qiugU/ERGea+P7ZK0UURKrJag0vUD3/THSfaCadRDK5jk7Ajdt9DfYYTSQyorgeISQS22q46/H54KYVdijp5NZqiChi2JY48pHbI/tCcvIUO1wj7W7Fvb98Zr6WRdNG87qSrnbZbdQOZ8zRnVu0KoVc8qeSoA54w2gxbsTDq1lao4xIidRfmXvx2+oyqBoZZkZUDORt8xO31HTEaaHTT2unEkZBBAHT6ccYzUb4CY43VJUYbt/NfJ6gHM/0F/R6RW04YzHww3A8vT65PotV4mpZTppDHfDowYGr5rjr6Z5tLLqIpEErkNT2TY454vpeK+z/sxA8jNOPx7mlBJoD+Wh26+nTGikZ9ad+y0Mv2xqpN22TSIiaVX5Ee8FiQDfmJ9Mvedy3haiVGlWgZd1Bq7+uSf+kpzq5vtP7RkKhppFhgHYKgPI73yPzzRk0nhs0yqsjEkkMCe3b/AFlPmyVEoP0o0EiySqg8yta7yvFjmuuOdREksjpEgiP4bvbfbC+zXMuk8EttKjaVPUGroX074G2U3sWNSeodjddz6HImvQy26D+AhNnnaeAMB9ywLI7rsBIUOCDJ/j64wgrW0bkIAbyd79cF9OqAbpSGdSRvPHOZAOQagsNyoCxFbn7HG6t43ieJzGpqybr6j0xGn08serZ55D5vwoiWxF9/bLHEK9Y069QOScbaFdJkCTqrFYlbg8ME4PHavf8Arj9GZfDkm2fjHm8VaIPS7wG00gIVEeMi7aWQHdz0I64lRq4pCrSFl/muuD8en9MV5o2PodrNTqHjNqI1A5YEc5LpJYbAZzJKCSzFvyPp9MekJTcShdS1t6/9DOy+RVYhyhYgK+1g14rt6xlSVFiSI7gNJvBF0G4OURJ4G0oHkUrfh1Rr0H77ZFpYw6+Mqx1YG1gVC1+f6ZQyMUeLZ/EPJ2yU31NcZVMlI6sqRTBmiUQsDwtl27AV2A5Jx8Bj1Zm2+UoQQhkNH0PXp+mIgWQQCNEcMg7dK9u/ONKgRkyJItdQR1+owpsR0J1NuPDZxFYs0BV/XCLDbaoW2j8Ron6YifTxzlxHMYztIbk7QeosZzRx6o6kImpgtRfm447e/bJu28HyhsbX1Qgn8JU8/Pzhq80si2h2izzzVeucmex4bTxhuCavzYWmEcQJWOaQC2BQGvzwq26A+jyuGNLKKQEccgn2988f4ZsyKAwuyDx+WcJiB2paM/K2Pw/I/PE7AfEjDO4A/wCFB7J4GB2aikeIsDgxLJv5KnGI4igBCkKDZbr+eRAtXgbBR+ePbKNHP/EIRzGoHPofr640XtAawtGySOmVRs5BA6H9nESxKqgbULHsR3xiygl1IJroB36/4xX3h2Vy0QU7iI77j47ZSTtWTSZ1o2ZhuANiwo/zhLvbptJskgGvr9M5FMG5IIFWeOmJfTRzBxISeSQy8UDiob+joI4vGPhqm7dRI6g46QlJAjkV6riYEjRkEO5fNzx1+cdIWMtKNwu/XHi1Qj7FCOIHat+XkBl6WMUj2LSN12+o/t6ZTEHl3bX8gbksKAGTuYlnskGJaDbTVWaAP6YGhkxTTyRqA1MxPS769LwvERIgknF2DxQr656RIpZ+E2MK3EHhsb4iLCZBGrMOFKi+fjAl5YzolO59L4fiLtc8ChR44FZ5oVYIsynbGD5n5A6dMLwnePcWZGPl6DnOyCzKEYMBxTDp7++TaaGKIfAiiURqNoJIsCwf7YW0TB9wBEg27SeKHtkq/wAPwwd3kYlmPAX64NmZ/C7OfLQ3ButY6k2LxL+AibhsVhx5qDkf3/xnBJLJEGQFVBPDCifjJ5Azp93DMxDVRO2vj4zssjBCixCQIAVBJ4PrlOQnEYwCfwgjXICD3/MZ0xGLTohO5gDtN+X5+MLZvcnc1kVRHS/TFzORI4NMaoqB19c3SAehECr4URKDbZo0R6c4MavGwoeIzGr6lfc4bKxBXYEjrcO1YPiU1dOm0g0WyYx6JXKsjgMoPla/xfPplNPvCgKoqgyjgHBSU+dig2jkg8n3zjT7ERVBUEbkIHXKqkK7Z2dli5eaNQv4j7evthygLAxu1PFBbvInkaSHxZVVXu/4vQ+3OVRosik77DAEjkbffMpW8M1QiNPCks0VJFC+RlC3HtRV6nrXTDNPJ4cgH/155I+mMAQvtAJrkeg+uNGAHIRM38YDlrP4en1vJjGU1EbBQOPqPXHy0msRlR2WThto6HtfthOIw5LDcR6NyMElbCnQG8bgxBAB5ByaSYyTMu0qp5JHSvc43wv4hIbvY4479cD7wotWHkdasEfWsm76YyRwKk06r4yFkvao6gd8Y0hhBtCwDE+XkgHB08KRxKscbkf/AGFV6D3x/wB2EihmFMhsgN0I7msKTrDNqwtPDFGTIotnosbs+2e1WmLsAdzKe20cfXDjqJWJY+Uck8D3x0oUqCqCRh0BNX9c6VBShRK2pGXqYTDpjHpVHlQ7V55JHr8/XOjTmJNyBVYqFJXvx/3zjte8cckayAAUzLQ6UBz9LOKhqyROrGy1M1WPX2yEorlRVN1Y2KFdPGWU6gqwADuwJa+OmG0geJCFYKBxR/D852HUtKCHcBbqlH98c7Ff4SkWeTWVSTWdCNu9EJG6naEVySCN1n9nPSwTPMrgAFeoPQ5yXUz+IkQ/D0Ylh19OmetpIAjASFTYJPf0sDFfFqg6tDkO1GBZFHc+hwPBAt1RnZ/VsIx7G2yBS1dQd1Y+IVBf4mA49vpiqNumC6M8tMaNps6NxyPb64yOBYDu8NCQbsg+XOACJxNIdjMOeDxXcjG6iXjfbC+gvk++TSS1jtvpC43MYYsQNxJG7JpJZIkL7wp3Wpb+hzyyOxjKVRvcxHT3r1znhLvKRykyjhibIH+sk2x0kiwahNUTH4oSYUaHRvpk9yLy4aI3ZVT+IZPHppFn31brxwOh9s09FI8yss8YkKk1IOvx7nKxuffYrSjqExlJtRvjUny9QeTzhbGD7XlFbTRUc9en+cOSRdKwlcxrvuyCefQZ7x1ectsLKD6dTlEklT7Fv6E6bTyqJFaVyhalFV0zjDURA2S1tXBFD398okkRm4/EOlWa9smnVHaxE3IssK/KsEkorAptvSVNQ2qlGniYxIpNm9pc969su0wAhXT+Kdw4G1rof3yeLT+GPKgVQLJKm7xg1EjFX8MqoU9Oh5xU/sL/AEEYmh1nivI+9hSovShzjNsMrCZg7hvL3oc+mM0c6zBxLzRrkd/3WMlYKCQrG/8AiOmVUFVrom27om8GNTIARtY3sYEi/nthIZJdrEBDvrarcH9MPTtUIaIAs3JYj9c8WCx+Yq23k1wBmawwhiviLyvkYlQzcn1w0J8zTFGdl6FqAxGsCNIGUE+KLQjr7jFCMvIUVRGDTKK4v/Oc7fGRRK0acwAiTaB5aFhu+Tu+n101NQZV5AFkj0v1xyBVi+7pIGn27+R2zLhm/glkhWMJfTgH/OWnKqv0WC7Gqsaxnw0FXY47euKMMezZKQaFd+nfKoNk6j+NucUJAvF9/wA+mcm60t0w/E3UD0znlHLKctoFTGqFANiKKUk181i/DdDKVJtwQCT+K+99awmg1DgSSQukIBHAst9Ow98NnZUHCoelAg8dBiauzfwQkQCHw1/hAd+ST9e39sSyESOFj2ADzAdB9OnGN8FFnMzybii8Nf4eOenGeMlJuCgKRwd3AHr09MRjpnFWVYvK9E0d1WT8jtjNPO407oxO4k0dtC+l1hqFIEQkC7l49wMFYqBMhG8EsF5PrfTClLwVteiH1BiG6SMsHYC6u/r2ypZV8PciUgoWQbJycPINyFtyirDryT7ViUIKlXWrv8fAH+8N0GrKHmkM42EsvJpR/vPR6hmhkR9y+bYQDRHuP0zy+GtRnbRACkda/O89HqI9Fp3AjDyhrYjkthWegoLUF18xQ0UoFzRU4wPuRVVCN3ABbn6ZwlmiWRwX3cbRz/1hPLLGSqIBJ1JsHaPbKL7FYelLSzMEal9GFZ6UKT5ZBsAu7qzeTjU7m3BgzAndweB852Wd72lFWJenOZyXEHF2HDGsSOTW4fvk5Lsklld/ENdAOl/FY5ZGYFaJVjYBHTECgRHFHW3qQemTb6HSfY3UOy0jBenNGuB7+uVQzRj7PDKESM7sx5/GEjDxN3VQOpr/ALyzT6xI9I8crHxEAJbZ+C+Mf45/kzShiLfs2HSrF4vguCX3KW5IPfOfaBSSISSRsVNgID1+fbIvsmaUxEzbmVTuAUBQATd/W8vaNZ3MhUjcbssQQB0rOhO48UTaqVshB1GiZZHj2x9T4CKos+oHoMuiC6jQ+IGkTbY8rf3GMDKWjg2TKFPHmo9PXvjJo1EDAEqKscdD3+cZQ9FcroimjnliH8UJVEurkdOb9/jHjxoNPTgOx7hdtn29MQuo0au0Sh0ZU3FgLDD1xivGT4izFWja6ccN6n9+mTTV9jNMY04YeDLHaKvKXxxnofu6bfCURR7LY0SfYVgsBqJ0dNREyDgiuT8ZTNJtQmIAMqcDsR/XK72I/ohfXyLMdk0TwAWw2shH6Ht8ZnTT+NMH06sqE2Xbnn4zdi0kLxJPMC7FQbk7fQ5ia8aWOSRIDGkfO5VBJb9OPpkvmjKrZb4nG6SJv4qT7juA/wCIApe1/wDWTaxHeci5CgHJ3cH5x6BFG46rbEg/ERTVnUmBV3ELFR5uePN2zkOlfYtYPCiOxJFWvKS1bf1u8Y2kRAZY2RlcAkc3fe8NC2qk3iMIdvUnivXClaF5QjSBJFq2u1I9MFMHJkE7SSweFB5NzWWut3HA9sSBLENjl5FB4PUAf1zS+66a1TxowzMRQ83Hr0xvhRw6NZA4YURarR+eemZJh5pELo0kHiqN4vpZA4woiQokTThey7h19qymtOqMEJZSvPmAAPz24ya4xpF5/iA0hL2T2zBuwzGQjNOqMVfiujHr+/jIxp3+9+CkobcS0qIKLIOaB9Og/PKptStiKZPECt5h1vj26ZzTzITqtUQqeGngRqiVZ6nn5/phitsGpE8pkn1jvGgjaNuXJoX2v1zY0rysXJU9Px0NpPt9cwptcshLAPYqy5/H8AZXotbo1NhSdtrtJK1/W83RpRbRoR6ZnLS7t0ZajTUT8jGTkJHtFBegQNuI+mLj1yxR7YIfMOfKOCD9OuKnkEsH3nUPtHUoTyB8DNSrCNO9BdGa2l8wLAKNvb9BlYgSFtrn/wAjfhC2cjhld0UaYJFsJG51/EK654o7bUGoEjVtahZU96OBDNMsSNoN1QHYCfMrWTnYhLJISVZPfm/r2yfVltLpxGhPB2mnofXDg1ErIscbcBb6ADKWkxHbVgzkQxyeHtRQ/N8WO+RPLHPbxAsp7Rg0B7HG6yKJmDu7S0abcvf6ZfAgP8gVRR3E0CMRq3Qb4qxGmJW2kNg+lcCsILIjFkG7cAQWPT5wNR90inZQXZfxbwxJ+MKQBYlEaNIWNUG6epJwvoD3SqOB1UbDtJ/Fx1xOtlaFVAtr6lB198F/vQ05EQjSm7/35zmn0kh3Gecyktzu6ZrtUhOnbOQ6jeyq6Hcw6gXZ+emMbc7ASkigaBNVjVVFDM1huaq6/LJ5S2o8viMrULK9vnD0gqmzviqHWNNvtt5FY7cGBZybv8N5mxQushRpXkA828i/pj52+7adp1Y0xA/De3Am7C4rwrXV7IhYQV0oAcYu01EZcksBf55E0cGphjaXUNV8nb27/TKUl2SSFCXVQKboAPbGc7Wg40QOZotUfHsxkEij+HDOoaWLxBIDt6baN/OBqiZZtt7NyG+fXvi9NoJPu7MUWQsasEA7ffJK2WyrZWuoeYRlQzAiiQOD8d8H78tiCHbJITTOegB7YcskcGkMa7NnCs56n2zN1cscEkfgRhPUdSeO3pjrOhVG/DTk0StIVd1ZFHEZHX64iKRZWcNExkQ7Sm+6wtFqPFiM0ybaApl6tin3SSMIIxy3VDRr1wYtAk7phPYc/wAAqn8xI65yUSaik8cNEaqmor856PXtKjaeSFKRaUuaLH3GTSaeIbJwI7Pm6kn4GZsdJ+itWV3FREzP3ZRZ9iaxMc+wjfIN6n3ux1sZdGzwNtbTrtN8tyfa8SkQljZ5UCsRTBVquf8AWDwclllhlG8GNH6FL4PyMaF8alkBZQAWtOAfQViJ3EGmqg7SdtuCNXPNNFsUqNwWtwC3/bGpvoJQ2nfVSMoDIu6mDfi69R+++NRAyXINr3S12HrRxB+0JB4keorcWI8oFL9e/wA4cmoRxscNJ5VLBTYXC0LrBmlZG6iQByVurUZzURvQlliEip5hR6cY0xaZCDC9IRYofivv8YiTUmSc2pQgEFh5unPSsAV+iRis0okjjdQV3M1fT4yuFUOmjINso9r9xeAkLgOysSFJ4N0LxI3wFtzqNpBDDrz05xux+wtRqkoIgq+BVcH684ehKs0kTTNEzgUdo8zel+mQzHaNqxoQSWJrduHrZ6WcKBIJV8GR1iYDgqLVeOlY9KjVhRqS2jDQzEW3FqQQx+SOv65xVEmk2OjOW5HnqufX1ydFeM/d41jkDC3UksoPrR74TxB0Pg7oSE27ZOawtIwRli3FXCIVWg5556VmdqkMzgL1rax6EEf1xxngd2RpiJCvHF7m9PbAkSQSKFUSUAfISaN9T2x4KjYJQuilHdyw5PFWPU4uTlgFSNyOjotXjhG0iWAwYeUsGoVlBSTRqrRcrLHu21Rsd/zylitI+QK/xBRaNhQLkWPYg9RimBLliAqi2QizjVpHCxo7LZA3NZA9MObxpeFVtiigp4r+npnq3TOGrE+O8+/xEidv+RA3D3HTnPR+JA7BZZAKq/wkjGQaRZGUkBCOGHcn0y1tIsY87KqrbU4J4+RglNJ0ZQfZPp5YIxEZ1dyejcG+f3xmj96VyEuV7/Ab5Ue3Tix3yCCLcsPCvyenP53/AJrK4dO5ddyna3J5vb6c9h+eRnxKxsPwpXVVAK8ncpABP1PBGeRGIYw7Vda3bGrj0q+mM8MzTnw5neMghlYk12u/75QgQxKmnNSEkAAgkXfI7j+mRcqKImjEqkgnYpojaK+eQLFe4wdTBNRrxVVVuliBsX1PTjHOJNPG3iK5Ckhwr1/s4l1keYnY/J5DAgLXfjg4U/TNA6NXmQBirqhIILAGjyP9ZR92eA73jpCLIDA3161yuemhnZVWWNmY+cMhJN1x0GeSJp4mJJFfiO4EEDqAT/eziyd6FILRLAXMirIFEnkKGv8Ad+hyiTUHTz+HFuDSD+IHBYk96NUOPjFoItOxtFRCAFSUbmRq6V+X6ZZFAdRIxZBKoHk2VEwbtYPbEl3YQIkeKdtxk8M2WfddEiqPbrWEDE674mEQ7AGx/wDu31/zi5E1AKeJpXQUQWaQNvN3xRFD3GUxRl9XDFamZ7Tbwoa+nPTp7HEaMDG+nZ1GoVOevO1BR4scjESyoZfLM98lWR9wq+QBnpVkV2jSOTYGH8Nn3Lft39MHw5JGZIn27RbIW2kknuB1+cCSMCivIn/hkZI23UoIJ9+tV7ZNqmMcnkQVyEtSD1/rmpBHAsjLJLGNoIARCVJ9CP8AV4+aOMhlXWHwj+FWl4Xseo5w8kmEzdNIkRRvvWwNwWQhmHqLrplCFoyssVCKqRmokn8uvzhQ6QwSKolZbNbD/E8Q10FcCsXtMkoVgbU0VZRytfPrgbTZkME0qy1IqlRVEHofXr/vK9RegihiLbZGIeRihdWB4zmmgWaVX5TZ5t2ylWvW8mnPizm7SJGIUEAbt3B/Dx/fAnYGjYZ4TIqyxRnYtAoCP6GuuOj1+nkgdS3h2LJu1BHp+xnzqyasNSGcqCI40dbDdLJvoByMt1raYFYpdTCsyEMVelPwD7/OZrRVH7NjbJIkZieBBYdmYbd2E+nd3ESRRT8Ani9tehP+8Vp4S6iQ60OirtI3UAPkf7ypDGXkVYkkjBBtvKgI9++FV6SePDqalfuxAXwwVvaTX69shEipqW5lXdQ2t6e2N+0XbY5DBgwq4nIP5jJ9BCVVVk1TMiqNpHKj4IAOJIeKpWNk03hskkjFlY2EPAr3N8H9MS8giRDAq9b6kreWPThSJIV9AfKV979/TFgDw32BYn3AhgwF+/OIhrODWoQdwMewitwAHz7/AJd8czERguodhYG0VXqB7YxoS0W9wSy/gJPmA5B64poGrwiPMSNu/i/bj9MD7AgItXGJTSyxt33gDoP0yyLW/eVcyqsxUcXwczXgCtcZkEhFGS7o8npzxlGgg00TmQl3deGWq2A/H98JmkH4fhwlwpVy/Brr34F8YcmrcLJEU3DjqAbHc/Gd2wjc8MLKpFA3YPPPfJ5XQSFwGaTsOPL9R/1ihWjTGXsmMRgHgF+G+nONimZpNghO66ViR5j34vjERS3MqL4isKZf+x1yt0jhVZpWHC2h/FX9/wAsYDR6eeb7qIZZHGzoCRR/XJ/CeWNuWJC8Uxqu+HqgtLMK8QEFbFWec6dM6xFxMVLVXII57V6YjbChEJK6iPd5WJqgxo9vyyyTTB5GYofEY+VlbhQPkDGoPAZI5mDjirAB/PKZm0zoBKQAK8wYigegwqhJSMqXbHGUAWR+u5hZA9OR3yqMwyqJFiMbpwSF6+2RyQrFqgA8e1+hU7gR7kdB/nLgrbUCFFMbcjk4rGfQEvhyEx+KY6UNzR3D6/vnBj2Mjs67rPdhx7Z3WlxGUeJmo8MTV/HUZNCkkjrGyBbBCmRh0P638ZqMujzwbwJlIZoyCisxFj5PGBLpotRv/gmMEWzMN1/X98ZzUJPGVttiJwzIKFfGM0sM00TCOVVQmyxJIofXg4tDfsPSwp4YWTxfDJtivBv8v0x2nYRjww3jHcfD46DuB7e2EumETbzH4jiuL/Ceh579B8ZPqF1CatlWIpbWZPCJA9+36YytC5Iqm0+j1zA6NvAerG8bq+l8DIo3JYNvdCi+ZQvS+Aax0ksyy1pwTKBTFYtq/Wv74X3VJ9PLPMX3bwNl2PUgdOuM9ZukNGnjmiLkJ4hPlZv5q62MkfTkyiN4xai1K9Paua/PJtTrNSJleCJUB/CdvQd+n6/TLY9RGkniygNubbuUEc+mLYaaOxRLHIEeBUI8xJUgH3vKY0ikZmewg5Xniuo+cmP2jJCzB2aqraeQ1n8sYzI2lWSMxeIOhdAQvp8fObAOyWbasklOVJelG0kA9r+cfo9KGkkJBCimVW/mPfp9fyz22UhhJsltFLXwB2q8cJIdKgjFRha3CuOfXFwLbqkY+v8AsY6jWJq0Lx172FI/ffKH0ysSNgdqADSNwe4yieWRluJA0bmoijgox9/jFSyPDEwdlVlFMN1C6PGFtvBlYuSSOKNopYCsZ/ENxAA/xiGM5laZihjjG3hR5hVe9nnH/wDuEeoVEBYR/wAymMnn4wtG5JMKsNjGlBXbY9uxwaN0rBgVoojMkfhsgFqV81da9P8ArFyQJIPvHjIzAGzuH5k1l8OlLRSM5I8ThtxBA5xSaJ21f8Ry6EgNwKPtxz/jAtByXZzTpGio0ZXdVeXqt9+f6dMSyRgGQtErKSzBeHcdhXzmjPFo9I7QwSEBjVEGr9PbpmH9txq2gkVDcscZZDt4BAu/Ttxjxi+VMCdqx/8A6Miik/8ATmm8I+GxMjOdvO7d69+2bGsKrFJuJl4A3leBXXMT/wBM3pf/AE/o4xHuSSEMzM3A3ck/2vNKpomkYrqCpNFJWDAeg4/zlPlf5P8AokY9FOmfThz4BQtwG9z7+1YxZZw6ske5XBHAFH3xeijgP/yA4UFdoG4AGup+ffC2TRyL4TDuw3P04/TJpUjOrGI7qH8SQyN/wVPyB984kCzEyxzsxSwVf+XnuMOHVRuobvZVmbgg9698XLIV3eBxMeSzWBt9M1pi7Z7TQR+G3hXR439z7Y2MShWDBQG6nuaxbeGjL/CG9juaiKU/5wnkSORZPCXhepbabx6RnYW9ZERwASDX4rIHt2zksMOwSMwR73Nx07X84aRyWT4SgMQwo/rjHpG3PGlgcmrOBr7FuuiaGKRZ/AVhtIvv6c9+TeMdViXggkk9ebGd1Mjl0jjKIxHDirA9sFpZolVtTquN2wOEI5JHYf5wpLoNs8JEU+GqqUCUZUa2DelHj886AWRXTxX3WPL3N54SL4pGxpBfI3bhfxhqyxyhokKxuhJRrBB6/H98AAKnCsYXXc58row4H161gJvjjAlbzr1JNih6ZVpz438SJN4vnqK9rOImgMgcFmRf5fKQBR7HA0FPaAYojKyFJN/v1yiKTaDekaUhaVl/CTftzij/AAE/iIsm5rj20QPc5Y84aMRrtj45e75/O8MVTs0iB5NVIZGSJZOT+MWK9OeevphLLqkKxeOCDQK9h9MOJyviERy7jZBd7P09vrkrO/3gMx22tlFajf8AfEbfjGW4O8ryU6ch+Wcg8129McswcKQ9N/KFFWMQRJ4qykBqHRySxFda/LHBHMKhXTp5nuwD6e+ZXYGKYzNJIeSRyeKr/eO0qrSxgpfHI7exwUiMcoVTxu5o0Pc8++NCuSy0K56dR24AxktA3gSSWzRSL5lax8e+d8I791ptJA/+xxjKQCfFQMBZGznFNqGcRsOPS05ymLsmv0EI1jkcx35+pzlnabJ5A20fxfGcEjtt8NiB1ahwcNWmERLEC/bp7ZsZj0PhKdxVx1CsRjLjGp2sKevw98VpzIZD/DZAD9Mc8YaTyAK3b1x4rMFfYLyFKhdjbc+U3f0yWdo40JZQQbAL9j617ZcFlDqTJwvovX6+mQyttkYqm5SxJC1yfcYPkxDRPMY2VG8LqPPzfHx6Y0who0kW1RQQoujnoB5WlVkNdbF1gSOwjLUX3H8IHIrEj1bM+8FQ79xQSHjr5Tx7HGjTyAAA2xPlrv8AOJQxOFLFzs6rt8w9j7c49EQMdS8zbaFDoAe31wJJjSYuTQyzfw3jWRTe5Hog/ONjgTSPFGqKoU8dQF/6zy6gMFlBThiGFVYs/wC8400rE7ISWIsSLzfPT5rCuMehfy6GPGDrGe3YSN5W6GwOfpjIooiSN1oQb6eU/wB+uKmlkWKCR0RwWoru547YUYkglUHkH+ZWsH2o5Wld0B3Q5mMabxTFB0A5I9TkviNMSWWmXk7RyfbCXTzsgjV0dS1kBqpfbKAuxmSRgGHAIHAwtN/wXEKDAbmZAONpNH9Lz2ojDBAi0q/Q3iUXWwTRxuY5gyndLRUqexA5vA1YmjgFASMxAA30bvp298TpDpaWqz0GiXgc0eD8fOBKvjwlXS1YXXX8smXUO8goSIqkhr6sexsdsNd8o3ElGHWm4+mJyTNVHpGVnMNO1LuINEsPbnijhQSpHpm2JJu5YBqF3630rGbE2KCBbCmvk+14PgAo25gysaIq/pjbeGbVHgZVk3PBsJXzN4gr1rjHcI8ZWRTG38pPW+lZwxxmAAKAq15a59yffPBU8dBvKlOQSP6fvvlF3QjPPplgZk8XfvO6iCOfb0wliZlJJ8vUkcH64avHISTG/U7Cwrn4OMCAybeaFElTlP8Amm8F5P0lby7W9TQvknEpsgZoyo33u9gb6ZXISSSQL3UKHbIpPNJ5KPal6Cu/9MlLCkdGaOmi3+Yq7WFri7risdUgtH4AH4RzQ/zhaSBoIIy7AHqdwr612xjlgwoqb4BI5GUjCo6I5aAqkpRQEdgRzhMTEC5sbRQCDk4PhvRG1R1rqRnJCwG1mYgVVCz9Ma6QpNMollDGbxJCCFRj+EcX096/LPRkPDHvQqoB5oHj0zmskdVgdYkckkAkcrYPIur6c57SONniEKynldooEV2yT/0VX+Q4lLTqwEZC/hYnthSL/EFyKGI822huOIEkkpO0CNrrbtsrhJp1b8atwBtIqiOOa7YE10H9gtpmnVQeZEezZvj/ADmko8CJSlWBzu4HzkrSQwF/GO0N5vMeT8f4xk8imIgHfwTS+nzjRqNv0SVukKefxhKhFECrFc4pUYE7nI83AXqT6YcKxyihdEeY+meZAZfCCM/Pl6cZJ2/yYyaWC53JBYsC9gLXUDti9RIzBkIChV8pvr+/XOylV+0gskJj8vAI4PxWG4LvTRhVH84G0125wNPRkdi0ynaI2teT1JI+uHDEyOXdFb+te2eifaCu/co5HFX844AFdtAbvwg9hgSXYrbC2o7+IVK88EivbnFBVXUMFsMRuQDoRjGLUAxLAiyB0I9PnAEaLMjAEMx/Cx6ZbsVM48KTy2AxIA3en5Y9ZVZSCNvNcdvri0lkjkK6hApYH8PFjBNSzt4ch4bobo+2Ndddgo5HcYLIS6rySeTiDKnmd0RFWj08x9eMZqQiufAoSEcKfX1/TIo0mLb/ABWDjhiBw/8Au++Rm6wpFWrKvvK8ptYDpfWvfOUI5LSNgAoJ8vUc30wIhKqgfeGazW5qokdvzz2oOobSSSadxu3BiDZv2AwR0JpRmJRYDgEel0M45NFSzbHrg9PkYmFHMTeKKLDp6D0xOqK6ZxqQJFZqVmW2O0ei88850t1EilbLwnhRjw/NxwLxMymR64LcGr5GDoZZGdy7o0Y/BQIP1GN1ZjQNIAGYAWtWaxm1KFg6lQqRUQIqpXQk9SMkEF6h2E2yhW1B/b2zs0aF3eLastW5F/ridNDKzAGRVVOTZHB7c/5zjm7l0XWLsuR1HjKpO+uAOK49fXIdIgihVU28Jd9vrj5BI0TSA0C9MRzx7YULLNExRSqE8g9q6nM220ZYgg0Xit5QSoGwLxx/nCjYlzKL3LweOvvkuw+IyRTWDRoCiebr4wpZzuAWg266Fg/n85uYOI3eUUxhiqg2zO24fGIYRSSeGTGGIvhbu/2MbqE8aPcse7b+MehrqfnINII5JiWmkor1uq9sR3dMaKyw5i8bUHCxccccn0yeSd1ZQEIRh5z3WunGa5OmeVVJNAAi+a4yJ9K6xb49QXUXS0ASP6HFl8b8GjNegafeHZhHe4UrqOoxrasQ9VK2pNAWffExxTpMDIvkA4rqPpnjr2jJpg5PAXkn9MVXEz1i9DqX1GpkVGFjk0CK9ScfqIVlBCqLjBslqB98OCJ2RmRFVz1ZRyfn6YbwMInB27W/GRVn6YtOjOSshURq7EvvD+shvv8AllMIZVoQlb4r8QYet4tdM0L7mBVBySxArGLHKSzAgg9rFD8s2hbG6fZBQI8p4QHr74crIKl3HcOpPT9MQ0eoRd8jdB5Vvj+uMRW2skxB4A3Bruz0rHjdUI0uxDGIKo8Tc560/XDWJtRufZHGF6C+3rj2XThS6x7ht9av0wPChSBpGm2gWQAeBmaDYsGONmWMvtPQbefpi5AYxsWPcOr+o+mNUxuAADsIoEr1wJVii8hY3Qv0Pti+BTPRozO8hsNdVZ5HpWO8KOSF4gY1jaM8be+DpUTzP51ZjYG/pjYpIUdJbcL+FtzdcaIGxX2HqZ9RBNJqTGdLEDHEHU7xRNlsOfWGYBdM2xVUjp3/AKgYOiYRfZ8vBh8WdiFuyAOuHIHMaK4UsOrOBR+uXlNqNIWlybI/veujTyeNLQ4JpRjoZtXNpg0zFgW/B1IHwRgvF51Zgrjow3UB8DGkJ4byF9yqR+GwB8+mRTl9jtr6I2gdCxE5CgdS24jnKtGsJiBMr+J1HP6e+JjSPx2WN0dVXgXzeNmiIQOpDO9Uoqx+/fAnW0NJ+EWtK6aRdqCR+vmYeS+44GEn2m+lZYfHiLMPMxcAfrmZ9pyQyu8LT79Ru4AU9APbOaX7ImlhdxIgTbypa2/Ptg5PwfiuOm42r1T6dmLwBTyQ5Q/pfTFnXqNPJIVj3Ka3+GGAyGT7JaQmSKXkLVPyMVoPsSaFjNrJ5JRZIXoPnDybQOMRskusLMkv/wAeGgfERKB9+MckKRpSL4iADzFgTX9cdpneSRiZNyvwI91hfU84xwFVi04Zj0rkgeuDHob8Im1A00BiEZLM25VUXfv8Z2MeKPBKeJIfxt+EUef64UmlO0OREyEV5ZOb9bxyqrOVMpQbKreCW9cXQ4Ew0ulgG2AeJdFhyfi8bIPEIRlCLtvdXN/1GJjQMypJOqgdBt5OdmAWenmO27KsemZydEq0JpCsIZY1Kr1baOBmRqYSs6zBWJbo1cX39azZjbxSQoFVwd/UfGT6iRnk8NZ9gQfh7EnNfo8HTMtElj8OSRx40rEKtdfc5F9kzPqPs+JlEWwM+9U4/iA8/XnN52AEEMW1md9ofoVA5Yg/H9c5CdMN2mjjtUsbFSr9R83+eMmlEfkYWn+z2jaS2aUyLtQOD5O4ypoYNKUm27pmKjZDxR732+mUa7TTh1N7YKraqlaHof8AvMtNaG1e2KOtlkir3V3rFtyelU7WGx4g0+1VQjfJtk2mit98slZo5ipLPv4DHoAB6/OZ+mdNTORqB4bMLUlT1GbSAlQrFDsHQCgf8YYrwh8joy1cRyRtGp62QrqKHoScsgEDJ4kaEAk1Sg1g6/TNAyyxxM7NyE4u+gyQuYZEjZHJVyQARXxeammD/SwskmhWUKI9voGYdfWs9BITCZ1Phqxq+xxZMUkZkXT0gsXf9cn8dRCzhkVVagawcqYKwbqNRJ4ixuovkKOAfnKFXbo5B5lYrdhsi+9u8qsy72qgAo5+TjonDxNciRn+VGay2G7ZpLBaKjsitfHQ1R+cv0+l07KtuV5u27n1yKGNmBdJVD8WCMrRpOJAVtL4JN4I49BL9DWhQMFrcQCWYnpnI6WbYpWvauMLxZChdxzt7dzi43cLuMZZiOfLQH1x8sltD9saRkbRZ6knr8ZFILMTKXN8Ajiz7nOzTK0myVAeaoeldcGZWXT7AtbTS7SDx/bNKVhiqPDVxLIgKPJJu/Ct8DI9XqDK5Y6V081gE1fpxi5pxp5V3Og3KARfX4zsh1bGMxrV+YqPNQwW2qLKKWhRSwyTqAjMQpHLd/jKfBYICSErgsTWJj+zwWWd5o0A/Eq8k/A/zhUfEJijdgvO6RaAxa+wN/R5YJHPgTsqwNdu5tzY7DKYx900wjQqsY4FG79zkyournDTF954LXwfT4yoIJHKgqsaCjQq/bHXWCP9mfQmawgX3rr8YCKkasJjY3FUteTmj9007hvu6nyNRUGqwB9mSeKXKmVb4DtQH+c3/NjKaIyqNAYXrYo3JsoG/Q5HpNcUke4yChq1Xv0onH6jTDTS1IWvkgBMBBqJpdoYbRR46n5wasKKmgBIj6h3oSORyNhIBq/gYc0LSENIo2gfjXivXnCLAxSmNGjZrDDr/XORbDp187y1e7a/SvbDSoNndS/iFED3XS+/Hc4pgfAcADrTG+pwNZqIyzxXVrR8vI+gyeGSJFfajsQQW3Dn6dcWgpYC0bECOmKr/Mew9Ov9cQ8kaSSfwkBKklj0x0k7ysyDdBGCFCk3d+vr+mMWSIOUkG4BvLvNqfp2xuhiUBZdskThlcAr3A9zjoZl8YIQy8UxHRs7BLAXSNYjuBKgAcAenOEBE/isoMLKAxY2QK60MIBw1QRltfLuqhx8ZNrNY/3uMQooXmixNsfjOSK2ohLSS/ww3lK2OB/es7FBpi+5nditcnp85lSWmwJJ2gIaVAS4tl2cnp2xWrKtAROpiaQArt5DfPtj49KU3HYSt8CyKHeu/Q4WqdkRRGFZUsOHbn4rucyemvRD6eOTTh0jCkVwtHcfcYD6ecQsiKUbqOASV7nBXTMIEnQqm5/5mrv+nGN+7swDXpwtVUzcN8++FDWIEMyt4jLtNAAsAD+d4+HSS6rT7l1EaMRflYAkf3zmo3ashN0UUaqVKq9X6V+mQRaNo0SSZ4tqLYDNR9vbHSsHhL9oyTo6eH5mQEb2BAPJ6euSmdmRojMGJAtqIH59csn1C6iBUYmN+RTMCB8Vzz75M0SSq3h0xXlizVXsPXOmPWoB3TQERkiSJ5qoK60L+crSfUTIsc0MYU2AxYKAPj0yZNKEdpHRo1rcC2432v1P9MWkUyxzSKwlUWWbdwD7WLw0mLLDDaAiZeibuAaLE/FY1TTKssJdEJBLcmuvFH+ud024gkKV7g7qI/LDRQsySOFDMOhNFfqOh/tnc34zlSGx6lYm2mNVS/w7PX3yiR2d1SOOJGY/hStzXz044wYoDKhjI2MObYDnpdHHpo9kayh5PE/CuzsPf0/3nO3FMrTaORxagM+wody0GjRRQ4Jvi8ZFMZW2kzRMtfw0AUD1I4/EbyKNp/Hks1uNByvWvUdMsgXVS1JOVHPl2AqK+en98Ev2FD5RHp4Nzqxlu7YXRB7VRP5dcJ5yiMCpLdWVV2hb9arn6ZzUiJkIPMaCk3vf6XeB93UxIXaVq4I3EbTXbuMllaOgFeBEoRSgnzEqAdtegHP53jI53DySiefxEYMvhpvXpR6j44zxjjlLOk8jKOeWI3elWOfrk0sv/wAjfLCFUmym8Djp06/rjJWAN5XMMjlHCjk+Ycn6Ch++M7pwZyVmkVVADBFNAge/rkrThpFBjI20NqOTY9zfX5yttPFO3iqSxYEFSDf1qjeFqjDUCzs0SSSMK5Mhtl9wemLkj8J02ReIxG0hpdt+nls4s6YvbPGd3BUeIa49Mrj0AWI70Xc/JYCxfob6H3xW0jBLA8EKM2nY8fhe12H35Pxx1zkWolM8a+UIvO0x7j8f77Y0QwmIqHZG4pWtia7g9a9sQ0EDNuidQQwbyOQzfTp7/GTtN6MVypp5puYQZQd2xWsAV/X6YmPS6gxmUOVdhS0OevWzVdsZJESyqzq3F8C79ee3+s9p43g1NrAylj5t3Q10PF4qeGGafTOAGlVpJDRa2FEevuf1wplHhLGLjZjdO9NR9LH+OmCS2pZgsqGTq0d1t9jyLxmngltntgdxU7lsfF3xgd+msnIbTbXRUJjY+YAsOet1wM4pn3yeFG6r1DLH0975/d5aulDALJ/EjJq/wuDXW+tYYqIBWhXwwfMysaI9z15wckazyfedBoChihVdRyWoAEduljn1yRzIuoqN1LNyVAAA7VXOUaidp5i0hkWAkbAF6X2HXpgSqjKrMsaCrU7bX+vH1w3oEAdPA4XxSzbr8rKAW9uP95UiDYsKGNYQDuVyBfvRvj9Mkfw4CoD7JAbWpKHvz6H4x8UEWpmVn3oY+QUYH4u698wSpNiPsoCGrG2McH0A7j4rLJJHGiCQRnkW1LtFH0B6fTECDSyRhzULK38zG/oCD+mJhOshlk2yq4ZujISMFiUmH4dRr4wq7raNpH0xOnl1B1qacHYhSyyr5iL5v/rLDq2aYupamK1GUAA+OLoZwhBI5QlWLU20Es31IzWYLU35m8EvtUbWNkXY967+mTBhIR4ioik2yk0pPz0/LHMWJG1F8x/kBr09M4NEpXiIqaulrn0u8BkEpjhkd9w2gchrPPYehwzpUlcSFS3AN7un64QgiiAbwgrrYYORY49cjeTawfdG1NbgNyOf1GK9CaRjVFZxKFFWpDAEL3ByaeX+IsitsViAp2Wpvue+LoatGoy0gBKlCB17YcMu7+DN4ZbkhdgJAHBv3+mFKgBL4qIAHWQ/hAUmz9ehxyM8sR2KGZSAKFFfcHv+mEqxJpmSJZDuUDzDbZPtWOji08cCvNGYyOSC5H5YOzNkZ1T6QIKch+6jcQfUXWUS6U6mVWkuFOS3ft/jOM8BDbmdaJKkAmx6c/2xJ1QaNZFWQ87WXdRr3IFjMbsc0RMyhUWRKIXfZsVz9ca+nDae41ZSWvkjt89unTJll8CQKskaK9nlipHsPfL45WO2AOok7A8ivnFaA7RFPt+9AbR4pe+V3Xx/TLQz7o5I3VlPlNgihX9cEhTYZ7ZQdwXoTfNjPQln2tDW3dW+Q9TWBIzdi5NLLDKZibsbmYmwb+mUfZ17I2cm3UhQvev7f1xzSSKpDNRQ2QTQ+h7/ABkOyZomaaRgrHixzQw1TFu1TB1+pli1Il3+UGrBC0fbKlm07ABmZmPNunA+uZYMJiVw7s1nal/rlke87NvIXkHljfpxmtjNKhcs0cmqbw0cICPwnn5A/wBY1pViijlWaiHspt6fWsj1EUjbVG477LLuIH1OX6eA+GBK5PmsItcg+pwUZ4HJNuG4TOTtogL++cAadWidZmYrz+Ee3v0/LD2HiGKBQCKDPdg9++BtSF/OhU7CUcc8evoM1UBHNBo20rzTrqdO0XPCqd139BWUESS6aQSu432VY+Uj3GDpo2adYv5I/wCQ116385Vq5220Yi8ZBDA8Cq/pjeWK3phwRD7yQXIG/wDExa66YySKFd2/myR1/T+mdjWOz4Yk3XRbcGC3liQwxwunl3C6LcEd+P8AvFoo5aY66OPaIFSNVuyC9Xz63zmhHpxppGJNIUHA4WvX1v5ycaeWfWqsNt4abqBAoHqb96ypoCsKTGwl1t75n0M35YvUlwtKQqvzbEC79PQ5FKzAj+MZCLRl2dbFWcv8LadpiWQOu03S7fcYptk0tQxJCY7G1QLv6Hr15xF1YYuiTwI9PGVdt9firoh9zgNJFGjMBLJa8gHehrp16HK2kZpa2JbcMWHI+Rk6tEhEb72RjdAErx6DoPpjIZCliecePFKfE2ilqlB9/X6/pmjpUaNEU34gG4sgFC+or++CLkiXwRthHmTa24ufQ3+vTD8JxJuMSHnguf1v5zWhZOyl9PF5I5paQdKJF/7/AK4v79BBrEhjiPl53dSPX642PTprB52Ym91j1vt7ZPr92nmECwoquRyWA2n3/wA5kSX0E0p1EieIFYE3/E4sHtmbri2oi1UWmVmUQspjcEBrHY9/jLpNOqyB9ysyHcoAsMPn8+e2KMXjSsqR6mMNwrBQAWqxzZsevTphXZRNGX/6JlRfsPUJNuYxakxhLsAEAgEH659JBpY0id10ipbbuCQH9LBz5z/0Yr6T7I1InCOZNVIGa7uqF/nefTrqIn/+PGbSHgiunsQOoy/y05sjb8F6blX3xUCtEryAb6C8akTCPfSq5oMV529+MmhnjaRgsUlIaFWtjnv0yuPwQoiTTtv4ZQJK2/8A1JGRSTGYpx4QQsqsACx8vU+v5YcuuVmWFtzGq4Srv99srDw/aEcmnkieCZTZF2BXQ89cjg0kRkeMxbmVwFfZQb15/P8ALDwa6YqafY3QxTTKJJ18FADt3miR04H+cFlaLUq4RZSpti45r24zScK6q6kgkVx2rIraSVERjY/FuHNX648opVQqk2w3V5V6UzGwEWqHfJ0ndELCYOl15uK98bfg6lULNtF05PU/PbA1X8GEBI1IBqm83/eLIZfQtJYnuJWY9gwHA9av+uXCRK2lNrclfRve8ghHi00KMEsgqo8x9/cYx45YwqyNYNErIdzEf94E2aSVj1TSwzeIgUzdCqcX6D0yjTzARSMu1S3RWbcxrEwabaioY0Qnoa5Y/wCMa+mSDax3PIOAo6G/WuuU3sm66E6rURGURIh5WmKtRA9a9MTuMhD+IXVVrcCaHvXbHy6cSRMJ4yb5UJQvn9cUURdrrYvr6k/TEdlI1Q5oo5IQGkNsLuuuKjiZW27WNqRvYggi7+n64cTwFSruQVHLHCUxx0/gmTb5do4qwM1Ji6hCXt3iM7a4NilP9aybxUSUAsBJGoK7l68dsORW+9igqqBx5awXhikc7I2sAWV4semTbVlUNRoHhE0ZG5uADfHsbxoILKRFuRl5rt8fritOYip8UEJXArrxjIjRjenUWeF7j3GN3ojHTguFjSMbQLXdhw6dlFl9p+a498VJN4gO0qGU9Kuxj4nAkVnUkM3l5uxXthS/IV3QXgqGVGux+Gu2L1CNbNHwOOvNn/eUTEM+3aCG/Dz0ybczN5WU0a6cHKySQkb7Fwb/ABTtIAK2VKnrjWn27bA55NmuRnBK5pYyAtdC39s5IhnaMutirNA9Mnq6H90Zp1WK2cly/wDIik7ceV3MdhoA9a/TJY4vvBJd5Fe/KFbge+VahzGUKM/IqqUge/T++dEEuNslLsQWkaR0Umgeoa2o+uBLppQGKhLKg2xoH2z3iNYO2hxR/tjlreNsQLbu/bJ5Ia2gEWVUO8RoqDjOalfEh8qvv5HC9PfHyopUPIoJHIUDAdU8VVkJZT1Q+nXthccoCfpmCJ4QVBZy/wCKl8ort85oqAUAYmuCFAFfXB3RxaoAKBG1BeD1/dYEnjgiGRvP+K1GTS4FG+QZgmbaTUfU9AN3tWO0iIIDGzUTYPcn8sjSBi7MzMz13Nnp+pzRSECAKoCNtBbcOb98t8St3Qk3lC5oIlWzJ/NwrdL9BjBErERlOg3AdLxgEhkVHssev+cMIDMxYkFuOt8f2zo4L6I8hQgVDsWNTQvpVZxkTYyxxtvIvaBR+mNZoo4moHavIBN7s4jtIAyp4arXVav6YWl0a2SmJgAhU116dPbA8WYyUFBQihbCvpx/XKJ5VDWS4c+jEgDvxiXZlO9VB7grxnNNJPGUWgShVkBICovVWN39f742NIEDOGBB7A8ZyaRjBtUBbINcHj0+cSoLozM4KXW2ypB/riOk8DVoY0hBBWJZG6jjpnGn2o0TA0pBLFeetdh+uIKOzqS3K83v2g/ONedkYeJCWVjSrdn88Cf2M0OURsVf7yaF7lsAMPfGJEjMrmiFPf8ApkkciNLIghUOfXm/XKIXDS7jIgiFACjYYcHKwpiSTQc8ziVRGVI5Hfj4wAR+JlIUnv8A3zuoYq4cMEAsmx1yeXUCGGQFijgXvP6c4ZN8mBK0NZ0eUqzFD/LRND+2CkD+EGLAEnkqt8jOaWaWbTo7gbiT7X7gY3xrVlVQHvrZA4NdcFX2HVguJ5EjPiKWYdatrHbrjkbe4kBO91NjrxnI4k3yiNC0l3V/rj1BjkBC7W201dseEX6LJni3mClTxnNitdKW3cnnjC8JY0UljIQPISeg9Tio47W1lrcKajwD3r35yjTTEVEmvdfE0kZBX+Iyral+dhA/r/XCSOFrhjBfw6BauPpnJ52hKLbqobbYA4sGuT8VkmhveCdzKFHLAnnnm85pS0ul+JohCrvvVSaFELV4MccwI2KVROOtE4xEtVVfM3/Pp+YzjM8YWIABzwSvQYzj6xLFanTPLG26QlRzy3I56YtFlZ6eLYFHlYnp7nLQeBESGB/Fu/xi2TxCyxjcpIIKmvkDNL409CpZQhZ0Rt5Qxwq/J+f1xkyF41ljpWbozjkenGLaGVdTtiMbIGBk3sbr098pdrj2qCS3CgZoxtOwt6qJHSeXVcygqPQVfHXPeLPFEPFYOxvkdKvrWESUlagWDdhWMSGJ0tmRmPHPbElb67DaXZPBMmwUeleUm8silcaYttG8cNx09sQmjj08rl2bwzt8gqr9vfGyyLFH5SDfRQbsfOaMZQWgdPoJ51WJjt/CKu+n0xca7mR9+6h+EkXeBuegwUdL56DEySqJo423bmFgIKxXO+wqJXOY0piCwbgmub9M9p4VQMSSXPmCleQPfBEhlQMzUqngheB8HHrKY1VXJ4UeauuVVN2I7qhfgu8G4heT36VkhDRzpCEUIx4NgL3y9Wtr3XzRG0/TF6jc0KNEiK6NYNXQ7174XBNWGLfRKwKQ1QUlzuNdPT6YyKNli8QJbM1NR6DFBZpPPMS423uUUD3NjtlULCWBS60lUwPSj74kEuQ8uhTzAgqqTWFDKCvFntY7+uEziLSE6h0IQ1YFgfTrjXAIEcYUWNq+agPp9MZ4QYurhegAa+SPfK02TtEyOI1Xwy7IwAVV7d7zj6pk1G9q8McfB9Me8ccI6JfQ8dfbIdTEmogOxwjg2y9fccZOTcVQY0yhEQwtPB5lJsrXH+cy4dNqpz/Ed493JHHI64z7NncyBBI6sG8+++OO3vmq8SyqxjdTJXNC/riJc1aHbcXRLEJI42t0CSHhQbH/AHjBAiIVchWYdQeLwIbD2bUBa2noT/XOyyx7NyyFbs2OpHti2q0xOkMsmsDBgBHzZ9enrjYtOo1DCSbcw/8AqSPbD0+jWbS9XfdZ38jvlYVIwsYmYV6jrx65SHw+0Bz8INVUEm7cDt5VlHJPzkSQnUxMI6aNlurHB9R7Ze2n00sbJKCd5BLXtv3zzpCVDxvYUhT5wQPp6ZGUG3YynRyKIeGN8Uh6DhuPnAlO0bAAOataN83365TuMasNrsALN9On9MS8Ksiv4TKU5oDp8YzVIVPQJGlVFJo2fw7KOAYo45V8SIu7A0AoBxhSgH3SkE8ICAfrnfFi8Rd6szny8tZAyT0dfoTNGId0UZkIk6m7o/PbOrGhmjQEkDkiuTjBJEzMGR2B9+n0wdmn8SSVQQyfi89cD0wVoQZklR7lZNzcABeg98B4ts7SMfMV6X0yhnj1Lqqxb1Aqme7OBuEczJ4Kix1u8SXZlZyR320FDdrKdfX9jJ5hIpUbAFbgkdB/vKohFuJMRUNRYFumH4sYO5kpQOfNYObzWa68ERDbyUDkr/T93hOC6r4im+hUHphSeEgDjxAoXlQR+d4vcPDBjMgDsBuJHGGvDd6KeYxurkNtFkDPGpVLPGC543XVXjZ/DZVkU7SDywo2fpiCsEkpd3ZgANpVbW8zQ6Hs+wqqoxL88LdYrUMunO7wlK8WzHi+w68c4bRrur7wnhkWTeeZ4W8i7RYo1ypOACH+MXBpdrE7nYt1JHazkKRuNQI18qNZF8kn9+mc8IQU7KJGRr4ayfSrwwS7bjGV5vy8mvU++aUuT0KVdBOWQIdsbEHbR74xZ4X00kZUKOr7h1r0wG0/luWIEdSaqh2+vxgjwwJQhc+XoO5JB64ydGxlGlhilFxxhlbkgkEkYnVvIsm6KLykke35YrRSO2pc3soVQHf0yzVuksp3ExyAA2KG72PrjXFxv0GqRlPpjJKJBEsJLfj2bq7fnl2phj0MfgjVyMJOa46+re2TLKXlUnTBgDdhzSjvVY5WZydyiyhXl/5fjEXGh5WyaGaaQnzbJBVSgWCPXOS6zxp/DWfqxpV74PhJDGzqzbgnXdwuI0+mGp1CtsfdHw5DVu+uC/BqXYemkdCyLGPOLJXzbThqBEWMUbktQb0PHPxhBm8RkH4SDXkrdXviXin3eIzpvIu2J5Pv/vAN6V6dFZB/BFj0PlA9PnF6h1hl8R4dqkeZt4U/5z2nM8MfCcHit3A554x2o0P3rbOaKBTYU8374e+hbSegaYgzgRIY1qlBvOuxDmR3CEXRrkjD0ul8GViXtKrnir+uOaJY2MckMewi1YtfT2wUI2rJl1BVUKSA7hzQ/Dz64H37xJH/APjiRiaBANH5AxkGlgj3MrsXe++dm00S+GRYIIZiG6gfrmSY342Q7j4807xOoiAgTbwFP4m6d+g+meU6hJTPGQxJ5W6/THRoDoEkCmNpWaRgtk+Y3fUUarAh084XxIyBQpS4G6u9f4zS7GTQ1NY9/wDyJnJ20yhOnycnkVIpE2hjMSCSAQFHz3wJdEwl2vOdri22nv2HOUDTLPqFRQTGy/i6AkeuLYcQUk77GieJnPcHy9e95URqE0ahSPJzYYE2MgfxBBJ1ocNtegK98bpXdhseQqLtW32D6YU6QjXozS67VmSpY/4hFAsRwPbH6ubaCvgLRbzhV5JxEzKmnjlKXdDlT65ySAHT7Xl8Ny1liOt+2MpvoRpXY+XUQ/d0hMRo+YnZdfIxEcMLxCR9oANHcOR736Yz7slLFHOpYGixoX9c9FDGo3xyCQdCV5+f1zNsCaQqCGCZmXxVAHUqKN/llGliDswnVSB+F9o4HbDbRwk+LuDWRYPA/PCdIxEIxdt27DGiq1iyleIFtNH442apbHOzhTjRonjmOxozz5hvHOch00DUWZlCceXnd/rFytCJ5HKswJs+/pj0krYttukUtp2Kf+RAaqg4rJhEI91zRg1039AMBdYpJdoClHgMb3ZSnhSKfFoMeaB4GZcZdA1dkTWJNwJ/DVKDnZRAsNMzI/BauK+cfxGzKm0f8rJ5HtnnEUm4NH+IUDfX5xOA1mfKqltjQJI69nNsT68HjCgmCyLC5aJOy77Un0wXj/jb0LsRwF6Cu+NniimMYP4kfcQT0xLKHJomjYNQC+qHrgRIoaQIDuHmbeCRf1y1UYxIArObsNfAPvi9XotRPDtSUGRTlF8beoTn4KdUiXxCA5I5PQ37Z0pH/wCcrLRIO28mh+zpFdG1MyqyUNgO4nLZ2XSqwEi33HcYeLozf0d0moVCUMBDE3t3Wa+cS+um02rVnFwWQOxH+cWgnR+JotvU+az+WdlQ6iYPIwUp+EVfT36DDylQeKsV9o6p5iFjgSNiesiEk3mUXdyYFcsr/wD7JPw16HNqKEynxFibygksfftmbqNMgJA8SOquhXHfFdt2ysGlgg6R5gqo0jJdkjy1884C6eTTKkk0u/p5kNEc5YgdXWGMgsT5BybP/WVPppjvMiqsYFjcLIPz6dcyTaG5UZEzLJqAzREbR5f4gJJ6c9hnRpNVLIweIK6DnY9AWPUZWs8cMxSONWJBKnd+LjqewGdjngijf7yLWjYX0zUa2QJ9lyCMlKu/MWN/lnNToyv8VEUAenAJ+uabSo20RRmOMV1s17Z2WXxNIxESKF5Tyg7j7euDTWzO07ulF4DG23opvnvwMFY2jUyLLbxNuaOuKOOlm/jK+0g7fKeQFP7+MS6tqPFYK4ZwVW149zmQUGwmRRsEPK9Vu79vf8sDSPKJGdlctwbccDj174aAvJShttcKev7+cfptJESyAFGayHYDj4zN+G80T94DxPbbhu/ETwRgmNH1qiGlZlAJIrt1OOeBkKxlQzdN4WrrpgqhWfzGNS4/F64NCqFCJ9Q4RVj8InzlFA5H83ucm1cO3yeKE/lqxVetVzlTxGOXYAxsXyoJUnjn2yF9aNOwhXbI1m+O/reNFNjI94MPjICN8KEruuiT29MXqmMK+GDbOPIqkUOfrgSG9skgQK/IWidp+QMB1cSFo1LEqLodfXjrlEvsIuUrNKygM5C0GXkD4+uSxiSIzCyApAIr99cqkMihHeJNp4tSR39OmHK331GiRVTabFACj75VOkB4RlBFZaJjbFdrEGjWclUxzyRQ7SPLtJaiSevAy3VaQRhS7lWUgWwsA+oI4OIk0sM7M0DoJ0Ns7Gr9TYykZJk5fZkSKsGkXfKS100S+Yqena/+8mhcb/EkLOw8ygcAfBrr+mMSOYkvF5CV5O6qP98FIis5vzMCDuArt+md2Uzl2zQ0zeG+7c6saO0kChWaenYtG3hvtsc8DsK+v6VkKQ7gBwfMFaQgkjjoOljKtMqxI27UJQ787h/jOSellYw/Z8cqlRwxk/HRvrzyLwDpZljKOFVK3NKnnLUaHTr/AKx2mJhp46kctYDHYf8A8v8AXpk8s7Tall8NIlAKkog4Pr7/AOcXTenmjQIQFLqw6Ake4rpXzjSiSQq0igKbPmIJB55qsWYpYybZlDkEu/Fj1qyAcLegsSRsm9gBzQB74GMijTIrmQJGhFEqkvH9OenfEapmjG42ijgbAQB6Cv8AWMklXdUcgYjhVNC+4J/zeTEIqO7sKaqTg0T05+hxY9jC4RDEWMvPXa1AEn3P1/TGqsaPu2tyB5QQC3sf7V+uDEshCkFCFpD3B/L+2OQCIM5LDc520hvrwT6YzYFQEc4gjj2qzebkAgj5v+/xnJZ5EkAWBFQkeIYz79D1B96xMw3qrRybFIoBADV/ljYEeWH7tIgYM3nDUeOnXr+uHO2AYoRvM7wIxFhe7fXsPbCUQlfGeAEKK8ps/IujipdKkDEqo3AAkB7odLxcckssg8Q26jks5pvr/bB2sGNKPUo8RQx6hdouiL4Ha+f1zjxeLGpfcKuivU8/1H1yeAMrCQxgA9Zg28ijwaygjw0ChRI1WGDXRrrxYybVMyFJpXUs8Tr/AMvPGfN2q/3eaMJ8c1M8cPhEKfKAo9yDzioLk8MNEa67iTZPp/vpl58RFpy5A5ZgK49MDf2BsZHpfCmVPG2qORtU047nJ59OJTKYIWWO7d/DILG+nPb3GaP2dBAUlNGAso8zAKTfvk86RQQPECZEY0HUlv2cXETT0ihWJ99u8t+UMpF32sHkfOcRkpnQsrgVsLgfPXrlGjSJU8PUQysga1OzcV9rwZmaMPKVnK3RCmwPpmHOCBJIvEkAC3aixf0oUffPaKKFZvKm2RiTtVwpb+3/AFntJINSviiGZivH/jD37fOUrD98vw/GH/1K7aPfg1+WExZpY5IDLIiKpUcAgKe3JJo/OL1M7S6oeFLdDbI0TUF+ef1xun0DOlGSWTZwOi/T98YpfswRy+IxKgcB99gH09sLQiasFHZ3McpKWQyA8MR/9jnmRZEHhBpFD0NrbaA6/XD0r/Z58YeMpdBtJYc3638ZQut0UbVsNNypZhXvxgoDZBpyNoVNUVckgdwPSx64aaWOZaleaNh5xvIAHrz65Sr7ZnmgiiZa4J4IP06Z4s2rYupEZPDeYWT7c3eE1kg0kaPUW0ORYJa79BVZ37pqIov4jtC22xXHfvXf9MN1kB2xPtUJxuHF+t3joI0sPIvisv4SQCSOlcdv64BrIpNK9tJLrHA7c8AHuBxjvu+hmVX5iYEX4bea/c4MrSSAhFSby1tQ8/lddMPSsmpKw6mR4lI8yAleB24/fzgsLeDJPsp4jQbxBtAFkqF+fUZZp9DENOvi7S7N17HjgDKncmClRpVUVQA4H+MSZZdZCiGJo5EF8igfTnGpLSPJtEMywgUsd/8A0Mm4D1F4nVsUgVRFssb5BMpoV6XlzaZYolfeWkFj/kPex9MzG07wTmuo81EWAetj/rviMrHTyxGWKJTAfDJBNryvrSnt05xsDiGeKBWD3xv6N0Pf+3tlWjZHhZUVCxre7A1X9sJNAkksMisgIkLHktz0wGteiDsRpbIpF67j5zfIvKI9SsVvLGIXoEIzg0SKGDrZDFOxCHZ4gNqOTXYV7+uS6zVNICJUdy/JbZtbj1wAqwjqvEmqQEBrYnxB+f0zRiETaO/C3B1vddij8/TI4tOWRZfuzKyptJL7fL9e3XNGB0l0vgt4RYNQUHqMKVgl+jPGnkJYeAtnjrZI+ud0w+7TAAgbjwiLus+x7UM7qJp1n2xOqxkW/mq6NVf164Gm00atuQhRQ43ksee/bBQ3mj/FQnwyAquQv/EG+x7nGJEUieBHVGU7hJxzigQjF98aKAWKBS1ZR928RVk3DzrVpSkD69s0UIyfTaEtrHeWaQxqlFZDuFYUkKLMyoy+boTuq/8Ar0w2EekkUQmR3HG4kcnvdZMW1ci1EI5VPLCxY/f9szaeBSfZo6VdOoKs6F0r6XjPu2naLx31DRoOa5PGJ05ieGPUS6cSz7d0YskAdDWMmSZiQwKsR5UHBr/6jt9coqUV6TfZDPPBAu/QklH/ABAn8R7EG8404eEjxOTYoJZHtx1wnjiUtGFbeoJ/Dxfv/usHSIkDs0cSncPx3XJ/PIt2yq6IYTMspffJschTtANkdq98vUoY1aVNjAi4ya+nGeWcohJErIOTzz19/wB84Yl36ZgqtGoA2+W79AcF2GTYmXRTcTIx04ax/wAub45qx+ee1EEW9ZNRPEm1QotLY/U/1zjrpk0zrvZpKsVG3Pp7f4yWKVVdkkgMhbyqyC7HYXeFoKthuYI3MzSldwHlDBiT2Yn+2KjaDd4qwmYb7LgEN79B0+uFJErKjFWRwPK9twDfQZOIJoyEt9zsDuvi/g8/2xUUVUXw6kgy7oVVy3lMjkij6e/bLYVkkihZlYUDdcX6f95EYmEYWTigbcCjmgk+2JizNtZAOehb5zekpfo9ubgxm9xtrN8D098h1kGmfUGWchHdTvFc0Pjv8+uVxxsrBGVkKilY12r+uSazSmeSb8ILeUjdW8Dvx7fph6NHs9HDtXxTG7BqBsURfr+mSfaE0La5dAiNJqZRY52xxf8A3euas8Dvk/21rYYNP/7g+pURr/DWNV3eIevA/fTM37C0H2gyt9tTOzanVcqz3caD+Y/PQZb440nNml3Rq6FYvsiGLRQuk6IWeSV3CkkmyaHHY0Dlq+HIviQgkSWWG8lX+v5ZmPp5ftCdJmikLRte3kcHqQo+nXNeCNo4kV2VQhK0guu/briy12HEO0LTTxM+rg8FiNoAbcB8ehxqb4HWYKNrDv1X/JxEbTNCoG6NkHJY/i559vpnZNXL44jZX29DQogdOvb/ABgwTbKo1Ancy7SJF4vmx3v/ABhLKAtSuR0CjdVYp2SKXyM/iNRWqINc1Xr+uccTSwq4uQqLJNGj1rgdMHQKsu1EkgAfeyBSNo45498ljkmllVnSmUkkX098DawaNjHG4ognqf8A948isGTx9OY/CAbzHlySQD34xm7MlSKvBdZdp8xcEkO1Ej2wnMghCeXduo9TtFDPJJsj3F4yVU+Z169z8ZQqHUrMxZdwHl8o9OecdRsRuuzOSURuyhtpPBJeiP8AGWyTJ4XhSaiyyg2PNx8nM2MEMI41sliCG9Lv61jWYQgmWmd7sBaJF1f9MSLa6KSSZVJqtuoV4gQRRY0TY/pnp2L7gGJkocsSRV9r65K6SCNgrISTe5R0HYV1xykJF5ndXCgDcePn684rlJ9g4pdANOAhUz7dhoqb4+o/PGeM0q27Rtt4Wjd/XJ5QHVklYtZvoKH98ZCgSFl2A2dv4boYvIZ0CdXI63GwsWCrXa/Awy8ngBt5EvG+2FjFTeBO3h2AU8vlNd/X1x8enE5YLtPcFjzt74VbZnSAiaWVnLgrfAO8cV++mUpGNNpyU3kVfPGIUuJNlpHtalJuyPXjBmLK5Klmpa2qeD74fAds5IqspINtdllFn4wxRKeJz5vKxoEn8hke6RQqDt2vpndI8kviNLGq1wLUdMmpD8cKI5Il3AS+LJ0YcWD+WX6UOCrWdlXVc3kMbseFjBY+YU4pgc0ofLFd7SeTzftloLbJT6Ped3ITr7f1wFipSx3B0HS+cOLURr5S3nZrUbgT88/2w/Ejdm86kULtbvLZRLRIFo+5CprhyOfnDj88e2QMo/lBPJzqRhn2yBSK7nCRRI5slShsdRYzRTZmxaFIBUgIC87h0Hrhfd9wZmNrdha4vOySxJFsdHdmpSKv64LzxRUgRxfSunxjUktBoH3Fn508iqnAY1QNY9niFLFIGYeUhO/5Z1tksCMHZV6lQOD7YUIWIMysBfC1QrHUEsQrb9EmFoYy6+SxbIeuMourMYwQV445GGpicEhkdhwxsEnJkk8Bgu8Dk1x2Pas0qiZWz0EcZmChSVq/MxPzXpgSlWl8UoEDcAr+nNYbTFJ1I2oT2I5P1wnkaSESBBFZI7WP7ZF01Q+3Z6MebdJ9Dx5scJHePYq7rAPJ5PzkcqiSMSPJTL3I6jGLNJOFZwYaUigQSfTj6Y8JVgGi6PUxg1akjg12yZ9QHdQm9Ab23/N74lRLHI6sqjdzQXplOyN41qiycAHijlP+kpqheKQKq8leIhGwWh9ca25VADWOB06nFxyu3iDaPLwtEUc4UZVAUef03VsHp1wrFgPSadxuJVmjYn3xUSvp2Vi1g2FXdd5VJErSCUFhtPmDigx9b74KRb1EZcEjqa6/TOZwbZVPBbIJjRqz1Q80c60aRuEVeVNAnphTEB0kMpZegCiiD74BRHnZipYKL8zHj6YGg2LlVt3hAkDqCRxxz+eDKikRoymj/wCQdAPf15wZIVl1COjg7buyeB9cB5FXxAVBIHHTcR65OQ6QUcDGZIopTuBLec0WHt8cfTNKF4RqWiLFZCPLHdCu5yaGRdjmMm0Swqi/7Y6CGP7v4s6Id44UjoP95f4V9E5/sZqIgUUKAaehzf0yXVJFLtgm3bx+EKeQPXLDGkyExMEUCuOBk0MZM9ve1Bamrs487Us9Ei8DSLwkSh5o1+LxaPO8zBFC0pocUa/vjNU4j4cNJYJAAAFemK0WqjM9ck1Qvp74kn+fGxknVjItRLErbZCx21vdSeffHDVbot0zAORSnsTkzy7ZzEsO0G6frVdq+mecsUW3arsApwLB/TDGbXpnFMfAsjuZZX5HEaoLA9+cS6KZmKO467owAVLep9MISKulXajELySOCD/fCpVk8SPobUkGvfke2PaaB0R6x6OlTlt2pjUtRrcDlMXhLIwgbzHhvQevH5YOp13hPChR2DSqtKAAL4Bv5r88ogEMzELE3kHXrd4tJvAt0tOwTbbIZHj7Wa5+uExMrlw21gNvm7fGSASakkBPEVOKYbSD6m/bpjtOjMx3qVUUAKrHUm1QrSWhpEgYqPO1AFuTnXkZJGTZfHkauM5HBKLRyKAJv19M54KOLET1Z/F3/XGV1iBliEaFiCiv4hJG7p0wJE0iSu8s1SMNu5XorjW1mniY+dGlFhY1NA/P5ZK0eo1B3zrp6PmCKl3+ffISaX9KJf8AwPoqpCjCGNR5vEBVx1OU6fWwSgSx7d381cj6ZmyR6tHPh+HHGhG1Nxpj1s1yPjHafUPp1D6lfCXln2+YD47/AJ3ir5NC42jQeMTSoync9WtsaA9fS8S0Y4Z3DcUDdX74yIxON6uGG26BNet5K0u9WO5BGzWlXVdReUm1QkU7GLQBa7UjrfQelYhUiGq3F9xur54J6cZ4yMrb2YfBA251oIxN4zDaxI6c324OQ8tFKoekCxgkybhdkt2+PTOyrG6K24EHyiuLrtkjABuh27hxfF9ssQgA79tBugPIx4O8A01p3xFgXxEX8dhlHesn1TNJpgyiUszeRgNpHPQ/0vKJ1UxKvhbwvNjqB65OQ7Ou1jtc87en5Y07WAj9iPFZ1Xxf4XiNe2+OTVZqRBIU2HaqiizXfTM0+JNLE5NFTTc9ef0zUjXwx5l/iNy1rf8ATN8Sadg+R+A/ikWXdtAO6qAvtRwI50lmMYG5xywPQc/1yhFWOl3ck3TfpmfPH4DzMhtma+Dfp/XHk3BJipJlE84aQo6BQBe49BXc4iSNgm5VBBX8R5vOw7NrSzsATZO4UK6VgwyMjbUAEY4KbT5fSslJ8tYyVdHUQbGKptYC67njEwvqBIpKsmyyQeOKyiXwxH4vijyDnisQpRmUyRlirCgDZ63eJVNDropjeLUuwKbHqhfUZC+jf72yeIGPdaq/QjHa3w49Mpj3bnNKd3OV6CRJoAJmG6qazwcpS+RqL7ETcVYlZZNPIsCPSns1m8thdFYqy0a63eImjaCWqBjqjfZR2vOR2sw2sdpNBSb4ykG4SpitJqxeqWBzuG/k2L74mUhCmyJLZhZAAAA9++e1ADTAsnPbr/1ikTZE7SgG+BXVR+/bOeTuTKRWFTauSxIRZB5VPNhLMkoDsZFX/ju/TFKF8EUDtUAKdtH/AKzsPO1Obf24IzOUrM0gwkLbmtWUckOLvFySqh2on/283QDOEiNzJI12autv/eJ8SQlYmYOnXbfI/TJuXgyTDDxofEjj3qeFAXqMTOdzqqlN56eTnp3x5kjfaFm211o9f8YvTwkI4vxSTyx4OK76GWaHGXinSF6ZmvkJVVjHjZ5ASGIPPToMT5i4BVtwFkc/nnpGMi+HZdlF8/zYUvsFaFFG6n+IxDGqU0OMdLpWBJJVrHPaucjV9tFiaW7Bsfs4UmqDxkI7qQL565rjRmnZ2ztkQhpGb+VjY+lYjY7CRWIY0CB1/rjItRHKx4CsvAprrDlW/Ek3FQtEkC7GTq9CnWEskD2FB5A/Ci/rjoQWjYSSKrJztK1X9vTOMRMJGIH4aVa6e9YBjk8RWU7h0BYWff6ZmNdiqE+1S4DXZ28V6cdMoBihAL7qA5Kj/GTSKW1ZZiSgQ7ti8dPTGoGijVI2JLCiXFg36YEM+hksoIBitnf8IY1Y/tiBtUudq7QT16g5QmmZZqChxQ/FwSfc/GN1Ebxxq+wAO1tuPK+/xj8W9EtJ0KiVzpghIezQu7+mBPqVELwkncBy3qO/zgTbY9NJKg3dmO6umOiSUwK0rKyFd3WwPjBYc7D+y28CFo7RiRd7QCwxMqs2rZlSlUUBfI+PnLISphtW4HADEDFxpE5VgEkv+ZeoF49ckkInTbI9zQq9KQzDbTnqK7ntnoY08Xyu5VkrwyenHY98rkOm82+SqO7g8c9uRnfCiOwJIFYcgm/yxv8AlhuZipCkW7/ygpyikmqPc4SPLCPMSFA/U5TI8Mc7Rmfc5/ANl362TlsQjeAb1LKeCxSwuThDk6KynSMwzySQsqqzA8WHK0Pc/wBs7p9s8BgYs56ggcfrmnIfsw2S4CGwdwNE/Gdj0ejUFSDDERdXu3HK/wDB3Vif9VXRkSKTqIwdQy2dvkUf0yvTT7LiTyrRIs9fnLtUdJGAWie62qSt/UjMxG0hVyGLS3SuQLA73k5w4PsKlzXRbBy0gAJ3ABrNlfj9ciMckspamaM9DVkH49MbptWV1X8UKyBaXtWMnfUwKZQunplpfJZP6/phSjJBpxYldG8S20UrV/NW6gfYYE3iw6NnKkM7iKNaPF8C/QZVFrdWZFd5F7r4f8v0ydpdTqft2EzpH4UEZcbjwWPA4/P1wqMOkC5ejY30+xYoysgjoAITfSryYjTru22CH8lv+eOZYYH8WUGKRSTSGrXsckXX6SdxqkkScFygsciup+cRrNCv0A6LbiXwirVuttxHpnI9Y2jnaKSOTwgN292uz6ZU0MU9anw/4jUSQQxHsMhn1TSyDd5A5pty89enrk+iq/LCp49Xrl+9QRwJEDWxDe6upJz1xqfFV2EQHcck+2e0SLCha1ET2AqiufjFQ6YRT7YUfYQ23iiD6/XC9F/RY+q8NLA85XcqjkjjBKDXSRysgRkUBtopm44/XBtynh+HZXzWWsqD/TOaSQtHuugxKtR4HocF+C1SGpG8sqxXtEZ3kleHxswigPPlU80v82CNVNah2CxgddtFsKRomYFd7Dr0oD9MfGqJ7YCyiSI28lEenT6Z5YNIwTZIzsthQHJGEE8R7I3AirPGcjigV/EDKim+OpvMjDmEVUQ6UtGiKIzrRRSBERGXgjcrcj61kkUHjufE1J2Xu2dO+Pn0alY2XUuCh/DfDc9D647di1+zjRwQkkF3vi99kZ6RI4mAEZK7fNzdHOgh9QN+2Ln8Cjj2Oc1ZZAwBHLCz298XpB9Eqhn1DsCQCNtdq+MMbo5AoCUfUVQxWpYGRW3cGiBZFn/rEyKWV0d96gUu2xwPfFsbjZSzw7gt1zQ2tyf9YDRySFzA7JQ69xk8SxR6kARkhuLsGzmgilgYmHh3wTd3hSw0lQuLTGRwJ5Tt2ihv4b3zzw/dxuDAN0HthDShEKpLuPcsLsemK1dqN4CtEOSD1v6ZS6WipWxsmoDrGZFG4clmsfHGJeJXBeQm93VeowP/ADtvRCdhr/rCMUyRsHG47v8AnY+MHNsKVDI5keVgYywZeGZuf0w6ilRlk8o3UOOv1yaPw4uY0ph6dseSo09qoHrRusKeaZo7LAqwKRKdi9UU0BkipUjGIqxsGuWF+uHBcmpkSz4e4PXrxlE7wGU+MGU7f5Af6YV+Rv8AJNCGXU+NNHGpFjyp0GUatoZIdwYMU8wO3piVj03hp4eoDNISAH7nIWafwlVntOehoKAffG5OOBrk7JhI8s1ISiqegQV+eDMs7MzBwBIeFBIBA9vXpjGqco6UQeBbc18d8Y5iXbJtRJB038fORdlrO6OZ1cmQjnqAeRnJdRHM9rIzNGSDuPA47YLaoOVlk8F1PlYAVXpVZ2JtJtpw7q34yDt289MZfQHmmfA26bY8gNXtLVbHrYyqZfERW8Tr1J4P0rHfePs8P4L6R3piPKoIr3PHTHTton0kVxGNFFhlSmvp1vNx3szl+jGk1rQypHtG0kbQOSfk47UROwLID4r0ygny135y7d9mw6c+JE5O7ndzY9uT+WV6eT7L1MAg8KZSoNWhynFPoDnXhgRxyzvtcMpTsrcD6+mHCh8cSxytKoWwo4Qcjn9Mo1mokWORIIPO1jazUOnTFRzA/ZyKLRyRRBsAehrv1xFg92MifUTK+5j5bBfqPWr6nIBAolBcvJGP5qK2ewy0N4ccyyCuRtfqAe/GFo4po4nbVzJLvYEbFIoD5OFfZrFtplIZ3UKwYE82B6fN5FqILglSDY01WXAChbP5k5rvBGwk3KdoXaDuvvzZOQTQsSqOY2jZgXoVXpZwxZkyeIRCJEmDF91EL5gPfA+6RRQuY4nBPmIqlr3vAkii0fhGKTbHIxBjZjf0HpntuoaFoh+Im1ph5h3sA1fXvjV6h7ETTyLsDyiNixuMA7fnAlnm+6BJXIjuy4Yc/wCevfHzRznaCAxRr/8AIaAPr65PqT/AVAUEtXbKdqj0/wB5WNYKYHLMZJDvBHDV0A6cYxASCpUgMtFkJI+TgQzbXZYL2jzC+57nPRujOVaTnpfdT6H8s9F2cio09HGwIuQ7eBz3HpljKjS7ASFSrO3v7Hp+mQvrog9AMoXh3C/0GHFNMW2+amU3Rviv69euczi+yqaLSV0siAKHZyBIDxZ7d8QupaFWUPUdlrINLzwLzsYMkK2DIi9WYUD361eJE26VjsDb/wCX8O7n3PHr74qQUi2XVKYaKxsq8IB+Kj7A98VD4bEKUCDoX5546X0w45IqkhnALH09/wC2dkihVkDbZedqCunp898TAnSxdnRJCd4rg0STdUetce2dVNQSYyRuU7dpogget9fnFImpVhK5LsBRUdF7UQee57YY08u5ZYfMQaCAiqI6m+f8Zq/ZrHRs1r93pnUVyVTdXcEf3w3qUKQ20sTZHDdO3+Mz449XptXQifUoVG3wydq33JFWT85s6lYoJQXBZqBroQPn+x6YJKjWZ2ohGknLxakAgecngj6j5xMek8WdZIiKP4QT+IevwcYZtszOEDRk0SD5h79OnTtlkLqWVwW3heQBQAzNtIxJqIJY5jelUUfLVWv14vPQyOJ13FQHakXdRr6cdcomUFyzGQqD5dzMSc5w8gWSPdZFMPKB/nFuwnGWTT6mOJfAsgkjxCAPb9+uNhXUJMHQopAJkJqlHXj2Prf54uIxPqCXVW2MDuY2C3rWWrs+6sw8ONgLVn5AJNmj6YLSMwiYngEY3q8SLtZQLvuo4usbBA7f/jsPYqx59DViv3WBBr9b4zSPMEoficKa+nofbG/+4SyFUDpt5AKpW78sAul+neiu6Mq22wzkKG/19cawOzxptbDGSbPh0xr0OZbwtqCzyhXZRV9aPwf84uDTyxPt8RacXt3EfNDti4ajTabTrJ4jM8pBpudo6d6P9sXqPtMFlGn0cW9fwuDuBHoazPOk3DcrF0fkUxBPqORRrCjhOnRSiFGJJP8AE/F8Anr8DNdG4oNNfq9M0glKQh25CR9R8nNRdZrH04Ytx6BO3uO2ZoinlMMkjJRFAnykDr0/t1ygxyrIiLUlrQTcRuH65uTszSFDUSR8TzljJySXP5c/7wGj3B/EBjUGwq3y3rWPSZUkECtIq9l2E0L7HOkL94ciSmV/KACoB9fn5w2KSvPCsqAIxceaipDfI6j99MoRCxBUbgPOA1X851lmklZZ3BY/i+nrlCJPsARyWYVyp4PzgDZ0BAY7Ybms8dfTJmDRBk+8gl2toyDz8f7y5gyREiTZ3NjdR9sF50kJ8SZkINp84VVC2I05JPKloxwd3BHbp/vHyorkARqhN11Jqu5ycyMRvfVu5BsAfoPc4YlcDck7yGMUwILEA/36c4rGo7FHEgkprboJIxd/I7YvTO8ExDs8PUWOR88DkY+ZVnYu7bSeVFFh+/riBG6xeCyygXxVMtenHQ+mZGN2IlRfBY8k7KB+mBIQg8SLcIzy9REjr2GZKNpoiSZNQH200dcH0x7aiaHTLFpoxGHUj8YNd+nP98JPh9Fv3iJCTJZB6IUC135P0yeTXQuWnEcbdiNwJHoKzPMZjjXco2nk0N1fSh++mBozArSz7GVzX8PlefX4wDqKRtQSoNGqKwscmm5F4mOLUp9oNIiyldu1SsfF/wBvk4vToy1tXwom6Eck/U52VNQ06u3CI1DZJ1478c4LFrQdS53rKEKKm4ksKN9vTJ4NaY3ESAlj+Oh0B60Ov5YuR1f7RKzI6yAGjIp2j/7XWNMZg1HihlNoOpBv1IxWUVVQ6JBvpi78fgY3x1r/ALxWmeaPVABAOKULXIyZ9c7auWIWpolQBYJ7fXLnLj7Pj3CpLvao2kX7HAsMLLmWZ1UUxHPej710vD00qadWUqFWQbfOOhybWicbd04pluRgoBX59/cVgwSRQuxcBrYhQ3U+pr0+MOjVhcsSLOwknUM3Nhenfiv3zjl1W5VVJkA46Ek9etEcZBqDC9MkiP3ZSdpPOHAylqGwqtAJtNHubwCuNlczELERCVs8HbtINdfbvnGlMP8ADQUALBHJHzdd88iiZllVQFYUQVvafjETatkIURrKSaI44+nfA9AlYTa6V9yaaT+MOQ4a7Pxgx6yaKVw7CV6sEdQPTn3ySJBCzamKR1JWmIHHz9OMHSRancXBHhk2WY9vX93m8H4oo8dwxIJ2gedCx5/z1w9NLA6zM0aowJI8xuq7e2T6pRFOrR6qSF9pZaXr049D1wotZG+nB8RlY0SrBefqPrmrDMKPVL4vhB9zKpJMg6C+ScZDLEAIwkzO5pQoJH09B85LNIijxkePcPLSdSQO49MfotSTpt0iBF2/jUbQPY375kZrA2mYh2eJb6KQKI7c5nsqyMVU+HsG2lXqfb9egyyfx005ldh4hAIBkvcPy65lvN42ovcviuenDMD0+OPnMlY0UaEn2jqG0jIilYkIG9AG28XddceZA0rCeIod1hpOnT9PyzK0qKIGL7CbtmN3V8d76/1yrTwTzeL4cZAU2SzGz8dT+eZo1IsM9WRIKA3Fjypv0PUZdC7aqNQgA4IYV0NcG8yYoWedYjEjtIdvnABHHYjoPnrnB96WTwZowDvNGqodyK7YKFcUzUQyiY+IS20df0AHc4P2kmyvB8PevmNMQT8e+KEkkcBaWAqRxbnaSSOuQPqZJdYunnk00cW4Et4tSLQujeMtFUds+Yin1/8A6m+3mDktDpiWEJO1FA4IA6c59Urn70ixKEoqD34/lsdqOR/ZH2ZooPtz7XXUR7m8RZI0I8rRsC18e/H0zV+zl02rYvHMEkQ1wArEddo46D4OW+Z3Kl0aFUPjncSblhVI1UrGWBJo/wBzWeWOIyhEm2rEu4J2Ptzk/miR6l2yhyFZkYhb9fp+mHHrW4j+8F1l4BAoA9TZ7cZO7A4/RSDG6RtClhTyzchT3on5xsSTvJsSNmIKqX4Ni+Tz7ZOIi6nYT4g5IEVj25BzsEqCS5ZmDheF3Fa7V1od/XMvtitFEmlheYGGMQmK7cAkkd/z9sfBHp0gLKxLEm1Y1eKLs2xFTUR3+IqbAHz64WpkRUR43SRQCGN+b56fnjUtYlvolhuEhdPtMZJ78tz/AExyIAvHnaVqGwHt2o9PzwLA06KFReeNx4/X2xwZtg/hjb1Kp1q+l+uKijNGALHtjCqqAUeent+/TJdNG8OtMhJNimIBK9euJdB4LcuGQ0OOuSfe52mp18SPYApHDAnqPplHKqEjG7KWC6KTbGDtdiSNoJ57e3rnm1LNGoMQ2g8C+gzyxDw4J2eQuh2uPU+ucXTx6hDSuqk8yE19PWsnTsbPRKLLJLGwak32zEDha6cZUzoNNSPvBHLMCAL7fljm0yIwADtwBwe39MgmGmWFYmiPhhqppPKtfHPTtmaoyfJnhD5yYuVvyhloVjFOyASsiqrdNvHOMSNXjTwk8qXTO9m/bCZzKeSCGFkFb/PEoLYpYlAeSnkaMjy9B9Af+sfGuyN5QZE4N80fXjJWmA1UUQapkHlQ8ivj+2Gj7tRG8xPN7VI9RROPFIzTESSrNGAzEsG83HT3vK9MmyJmBNHgkNwP64XhRuACdoku/wB/3w9NGjRMElRa5Zkoj9/rmpgbVE5MbziHaDfLG+SB6Y4wIsW0MPXd/fM3WLLp3UpMZvEbmhXwPjLJJIXjVRIQbqRV4Ff74xIoZrqhkcsMSF1YGhVhvXjLQiJpxUp8zcs1kjjoB2zN08EojEqhN6npt6c9c0eF0xO4FyR5jloEp9lEcKiMfhWl6EgkD5xW3w4tiFKB5NHlfjAi1BkgZQ20r3/5c5NqV8WvCnKki7Av88aUlWCKLvSnzox8MiwBW6yo+PTHLRiPiL5h1564MTOikeNRIAHsP94Ua3HXBPXr0x0xWdSUSHygCzx8Z3fCshXw1PNG+KsZPGZY1qgpLEbmNf8AeMkJecxuf4e0EEXyc3LLNWhSTJGoXYAGNUOaOcK74miUgM/4WrB3GJw5FgDoBd52KXcvilQrHtVWMyl9moLwPu0NbVU9WCrZb0GTHTKjLqJGIYCyK9cplJeQAWtD8Zrg+mRyuY1KLchY9+a/XBNoMbO+OjbWLNyaU0OTh2W2QsVHl4/YwwhSBQoBZj1Hb4yYRSxbU8TbwR15+bybtDKmOQhN/iqQTxu5uu2eedYVRowVJNc+ucchQis1dxta79sA3DExRQRu52WcVtrEFJM94gd1LEyeg3EfXLPIH/8AKSNvIfmvrksYjKsOhUWNvN9+cNpi6su4lVWwCbs+mPHFor0b4ciyGioFWrhuPfPNtW2dg3pfJbEaaQOqq8iLuFbVawwONYo26iVIG0MRdjHtUCtPPKIVvaFVuK29fy4GKSaJZZHVCzBaISwfbETv4Uv8Z2mL+UJGpN/HOdEh08Z/lF8kLvKj3A64vJ2PxwphcSKQQCDR6c+vTPQRoI90gqr2kCrH1wtGEVPFd0WQfiKIQCel5RLJIzKybWUkH0oeoHfHUctiN7RL4NDbuCg8+dR5T85LqNOxa49pBG0qhrjt7evS80UjMhorHvJ/EwJ59RkWoDCcIUKgmm8xHTp273ifJFVY0ZOz0Gl1IiWJqQrwa4sV1sdcv2sVV3Yjb2C9MniBkeim0HkhjYI9v+sqULtRY9ohXrfH1ynxJVgk3ol43qoy5VV3Mgageb6VnIXRixRWLDnpV+2dnllkU+CykA0x6gjGIsa6ZdPCu1NpsAdfWspx0F4S6ousoHhmRGW/xcqO/wD1iI2SOMlV2npZHT0bNKVVWMIQCCK7UOOgyZY2Xcm3y9QxH+ch8kWpFIyVC1dpxanegHBHF56WaeNkVywTneNt19cQ0ixahS5EZJO0qCQD8jgZQpmlQAMn8QCgWqx65JMZqigoRH4ipZbkKfKfrgmAts3t+FrAV/b8qxvhyrEVc+ULQPUnJWjDqWSJWYVuXfzWdLVeElpzVxf/AMt1LISaRnVna18osfqMcusKKgijRYSLJ5BPHFDPB420RBi2KwpkHII7jJtCraaFF1E8UghGwFWs9O/oarjC3VUar7LkLNVoUI6c/i/3jOfBZVI3cgkmvrgQhXJG82eRjthBrixyq/3ykU+ybYgeMkZbxbVxQDnp74uVX8H7uHIG0XtG2/YEc5QJXIChgW67mFha6jFxs8jCUM3n7cfniy+kxkTjTkODGFoHla6H+xyhtu2ozZ6UOKwpWWO+lk0fXJYq3NwzBjwD2+Mi6i6H/wBacnRVkDMoD9bHf5ySaFg6SrIVoENGOjX0v9980o4HlO1mDEDnix8DE6nSzO21oiVPdKFD5xJfG2roaEksFxw6d4V3RWU8wvni840SMWJc7B2HHHpX76Y+CGUR1wFB4s9sWkZmdgpVGB5ojnBTwN6IniWz4zv4ZI4j4IA+uVI6SqAriRRxR4vOJpN6hvFA27uAQK/rjIzBpr2ypYW6C35soo12Bu+hIKqdqKxX0Z+udiBVirAliRZsc4MTqXEjhN3akofOUyaxGKgQlx1bzA0PjNFRetmdjHdYgFZDvPdR0H7GTv4UjhQNynlQ1D5r9cMyM1IAN3JIauAOmL8zOFQDcBzaGvpjSlYqRDqSfviN4e3Y9L13fv8Awc0TqzJHuVSwrnaeQf7Z7ZEUWRnqzwoHfBqCNzEse4sQTR6+5xUpL0zafg2B/E2vI22xuUFua6G8TK6mZ0osRytgkY2eGKQCo9xHJIPI/wC8nJiSPabEgP8AMeQfnGn9M0aehyt4i7bHA8pI4/XI3DGIru2MCNzdCPQ33/vjisg3EOAQdwruMJUWQgHYSBYO28g3bHWEssxiHiqpmUHhQeBfp65VCB4Je7e/xDm8GcxxwO0g8i9SO/fB+zSmzxvMqMb2n8I+mKu6C9jYqZHlnUMCwUgLz9euNLKxAEQ8o6Dgg++V7ElmS25Yn3+oxMviBmCqDRNntjONaBO8Dj1O7TpE4Y11twe91lWxk3NIL8vBHfIIlD2dhsjoAQuaEcgVViBUrwAMv8Tv/ROarozCu6cEK1gcc9RjIgsbLz5l4FCif841oSup8NyqwsLUL1JxZ21I7vQ3cA8GvjIOLTHTsIqsifxGYC+ha/jFfxNm0eGD0DbiCfjGGwtqpCGq8vTjqcUHijgZWZiObN8H3xWFEsiKsmz+KsbkcFro+3oMoeKQJSNdcny2cXDFECBIzva9eDz1+RlLyLDEVDRXalCWo+mCMU1o7b8JSGKglgoYVRPIJ6VeTxtt1QDswYi63daz0rHUTJEFG8fz3fHfEfaUJDhYFcuBbGuTkn9lF9M1UaURNNI20L5lG0YInU8yAh2b/hw3t84pVE8JeXcOnBaq475512ulEbAeCo55/tj8idI5q9PWmk3udlX0u/k4oQyfdCjlyRTCzVY0iQR0p3jp+Pn4vGlXAVZIgUPNDFasNtEW4eLvDUE42xiufQ5SNUwVnmjKpJQ5FAm8aojjjVY4wp7biCB6AHOz6dnCuzX/APZex/xg4tLDNp9im8F4tzEhjyvhjoL/AKZyPTlWoErQvcGFD26Y5YGVVLPSqw7EXiGCRnesm482o61mafpk76F6mLUyiOnIIa6RgB+dZSkg2DYnP4WF8AewxSTXE4hHmuzf9MYFlkADMoINe/xmvxGf7CjeIy7mCF1FBr7Y2WckCEDxAe289PU5L90Ns4K+oG3n64QlihcSMpY7vMP+JxlJpUK4p9DvusZba0XQDzDnj0985qDFET4JK9OSM7JqgzlUHBPlB6H642JdiFiKqutc49J4hd9FxVqFvbdWAewwWkMZayKAqwLIyf7Q1M+ngMcEdBvwyVx/3nNKkuo0xnlYxOR5t47D9Mz6wavRGrayE8RQpAFAUL+ccEkZlCr/AA0UgNuIrJtTqIBqVjFSOFPax7ZRF4oClgbY0bHNfHbJJlX0Qa2R11T/AHaHxKFstUXPHI+Mb94doUDzsrNY2A8LxlrwKZt0jJaik23/ANZL4JaZxsVdo44seubYhTTQuWNTEqAvybJHmDcd8dolKN4QVNp5LqePbBLqZGMe7cCRRawOMKFZI4gkJBaQVxhUqYJLCwmoNzOCCepBN5FNDCFDNErqfxW20+t3/bGNuSL7vM22/wCcD9852WMiJbnAUjmxannvmm+QkVQolUFzbFO3eArAE/OK0v8A8jUNHGFVg1791/p8Z51imNySgL/Kp9u9dsErRcxxbSDW5R1FeuBFawqGniab7uuvreCadeKGN0Om0zyfaE0stHeIQxboFA6duSTkh0LRCNlmaRru16gehHpiNDONTp1Lsd08jOOo/mNDpXQDKxko+E2rWMd9pKHnbbIksSDqV/S/XIELiOMEVIb/AAuCTXajl6wFpjFUnhcUFqyR1PtlA0EayKhlawLXaLsdweOcm027HU1FUZmlkOm1CqCRDzuG0fkK9/bBOsL6pGiimp7FmiKr9Oecu1qRi06hlA78g9z75NCJlgbw4fKppJAeD+fbFGVPR6xCWVWsFjfHFf8AWM1axAiWOQFSP4ibjXGIXUDTAvM5MjtQCDge3xlUUMK6N1eI+Y34l9v64sVYks0zElIkAilRtxILHil9L65YunqONlARA9sG5xKaeGZyp2IrE+YAisb4i7gm5ZIuwF/rgDJ30PlZZw8DQeS6tj264UMbRFY0/iIDdg7sSmpVJhE6sVkUlL7/AOsp8QwRjkbiNq8cC8rF2yTtHjKiSLEgouCdrDbyPTOAIISVh3Opsj/kcmkAlkrUyjcnKooPP5Y7R6owR+GpBCc7Xbn175r03HBgQzNFILVS/I4B+ModJI5TsCFW/wCXb/OFcWzcZCO4KqO/pnlHKnxiTfAlHFfTjKKAjZOrq7uHTlelDknAZGnjZFTk2FFZdKkW5Nqg2eQvripTEkniJIY9t3YOFx8ZlIxtQ7wv4bwkCGm/CbAwH1yTSlVQuCtsL4GbMsKahUZfCdQLLMvmJ9jiDFplDB4k2OefKRfviv4+JRTX0SJKsQ8kK+ZONvQf7yuOZZGW3j7GgefrjlXSRoF2qKqrJu+2L+5QGcmlLNzSkgke+ZxoVyTFrLG00quxvmueuTzy/wANIoCo3WSAOcu0+hjim3AxhTdV1Hti9RoY2k8QzsrGwAv9sPGVdGTjYvmKALtCEfhrp/s512UaTfJKAg5PvXfFPD4jEo4DEgbSLOA2mIAhDBhfJI4xUNgli+6NoyiiTndzRx+qkCJGhZlo8mv64r7mGiBaQyUeh6jOmLUFfLp3kRD5WJ4IwaNjAiMr6yFompjYNd/fLNarIqzLO28Agiv71iBDGqicuRTUBts336ZVrtTp9HoJJjHPXXaByxPtloppCS7VGZ4pjhG9/EIflttfSsVqnjWNw4ZZOTGPTv06euPeTRy6byB5WHLr5hR7iu2A4TezrGqRECrUMefrk32UQGh8OTTNO4Cxn8PZievQcZFrIo54V/ieGFNnvR9Dmnpx91hCmGNGB/EF4+cTrFllYMrKFJqtmBvQrsn0+l07R79Q7MpHBUm7HcYNqGEahlUE9xY9/TOmOaE87gOQWLcfAzssVafdJGsi9Sw/fOZjenmdHkbYpi5obl4r5xcsY1EazGSpF46EdPYdsUSXh8GONrbzDzbTY4w1jeFlZ0ddoptxBFel9xi0+xqA1UTSuLlXYaLAi7J9M04XMKLHsBDAE3dcfXFHeYkYIGj/AOPpR4rD1EUUnhi2smwCenxmTFf0xetSJ9W6pIr3RG4irPb274f/ALMI4Io3liXcTY3C+/fPHSRxgiU7i4PLDg8ceuKG5dVGI28RU8vFDkjsf7ZRNei70mDqdEyOiQTfi5vcKP5cnJI0mlLePHsPKkMefpeXPBK0jxCJWbbuU3txa6KSNGLh3lLfiJHF5gpkW5l/gmFWkiojaDVc/TtnWk36oSMq+G/maMVzXfGpoppUlRwSy3weAfrfGTSaLUowjKorOKXnkCuvA5/1hofBMqOXjZtylGLDahtR6f0wVj3oJyWZT5dqgk2O5FYyHSss3hSalXO42niegHW8KNVh1BnhjQqKBYE2fbrjBuzO1RVUIAAKsGA73fpkiah9RM8k7jT/AMo6kntR+mU65ZJtTK1bQnmWmNDvkqLPGQ6qm1u6MNzG86IJcQMytqUx3Bmbg1yfWvbH6UTPuklZ3UrSg2bHb68fpgLFDM1F9m42KQlf8jGCN0JVNkvPVBdD1A4OdzeUcYyRyo8UOqg8FQhs1689fyzkbGMK6gFRYFmz+XrhS1Q3DzDrvBJ9hRogZ4qthd8QJHQitnI6eoyfg4PisVsedpG87gEkD0q/TKoH2op3mQk8XZI59/jBeIKC8DoYx0INEc88E3Xv0zsO9HDMqG+QCST/AI465OVDrChXLeIxj3J3Jrj6dbyrTjazGQ2oquOfY/NeuJ0kinxPJJtX8LKOAfTnHo9huCVbpXHPx0yMhh07Acqixru6mQAn1+v+cAa1UG5hsKkbuRu6fSsKQpssRKQTwAtEnuMgfTSNNIyqCHPADUB9fXFST7CakOqidFVZeW4Eezm75s/94ySJhI8hElIAVMb7gMzUWOFTtYysL84SgD34x0ernlDN93YGqIqj04PH1zNfQEBJqWbkQbmY8MqkWPjviZ9RJFEEQOq1ZA6hiTY/rlE6qyiaQPbf8jxQPpjK3IZFUySFiFQpxV+p65kFi1cSaYKD4nN72b6YSIY1ddgZHN/i6n27UM9piteNIhDrY2Mas/GdmkMisTaeWjxdcYvoUegMMUsYNzCwu0CmXt3+ma0P3XUQVqJB4QB/FXI6Zg6bxH8QuaUNw9d80tNCphDGQ7V5LMtYJoDQySGDUgwwyAwqtK93urvlSadoYGkEyBV/mBK38A9TeRQ6JnZXRysRJq+oH0Jx40IUly7MicKQQ36YoGNEsiQhjJ1YhbPvjW0pMRcRbzfIBuvb2GTMpZixcMoJqn5A4yuJX8RVSXZHQ6DhvTri4Ak2yxtG4jZmumJfoPT5zRg0aRoxdG84sow4rJZkiDVcZLP5u9314JwlDxqY/OIlA4VqH5/5ONhmWaGGYgyJrIngW1YH+X47cdM7JFTIm0qet7evxZwI9fpmUxPJ/wCMALxwL+uek1UbR3CVPHKNyP8ARwNLwXbBGiVJd8kjyEg+Rx39jnPFMTyBYwC7BUBex689sJEkLF/GqMLdM19D0vAKKo4UXe5uvTr/AGzIxVFp5Fshxbm/Ke/7+mUHTFmTZyWW3ewQfnM9ZJSeJHZd3pz/ANY1pJNoUspWiemGwUyn7pI5CTMCBwy3VemKm0TQIWR0axts1f8AXBjnkmCiKRUYkW682vt+++G8isCrPuAPlIFZrVAV2RjTCEsRMRa8r4e4qa6++E8TRQKId1A8ACr9ThzOscTG928+Yu9foc9KyiNaEYO0MW3c+3TAPYWlin1cgaCUMTyqu34bHesZMq6JAZdQG2fiC9Ac5o304UtECWIIaSyB+VYMuofdsWO1j5Ynzc/2xsoW3YtYW1L7gpDPySDe33r1+ccBGkSxbmVa559ffIX1svjF13AEUURa/PDnZIljPK8WG3UoJ7dP1ybKU/RpeAxKWluxRN8+3GHp30sS/wAOpL4Xi6+mZkul1MjAqyK23qSzAj6ZRLHHCsfiFE48wTjdmSM14aEs7aPYwfxEIChL5GQ6rUTtt0gmoOabYw6e/GH4ka/Z9HlQ9MgAPF9azsfg6iff4aDyFbUjyj47f4wsCRVo9PINK/iSObfrwDXvjdjSOCYrbkAq12vX6/TC02ul8QxqsQXjzA8frj21DmbZ4oDdG2ng+3ti0uxG3ZnN9nmKVJIdKVawwrlRz3/PPa7VSFwJVEKxttN1zz0/375Xq9TxcIWNl7lib5/fxmc8bzgeNGpZnoOy1Q+c2DK3rPBNSxLNGnnB87PZUfH+c9Jo4zCzySRzMf5uaAHf/rELG0WpjpbCsVZBbUD244OaH3eTwxtTdwLC9+vHzhf6C2CWfRRyKoj8IR9WAF3++vtil1OlBhkiifww21mYHr7e/vjNTotTrlWBFSNT0kJNjrdE4xPs1oDp4Zwdy2NzFiAB+n641WgWiiN5C0kcb7wwtVjUtu6dea4vJXnEcnhLEJJQ3m3jaCa6Adfrl33x49KXgTdtb8IWrvsBkWijh1BlMzO99JAOEPeyar64HFAX2yaQodOqyQgq/AVSRWNEMZgCzIqAsdqkkEt6V0wpIJW1H3dHsHzEsenPH9M9py8iFpN4G6lsbtx/LEeFLFyT8IywxrIi1yQdv79cl3pKQd0fl6h16exvr9MqTSal2kUyAxglWPFj/WBqdKunhCiXc9WjqKNUfbNE2EDDxoTGCrylidqJd++ace6PToiySmhuaPaAos8j09cggaaGSpGDCQgAKQGs9v8ArKNUUgcIw2IGrz8Iw/O7/LC0M/on1eqCz75I3C7ajvyc1WTAA22nFMTewjzH59cs1RZ0aFl2CQXTito9Lr9M9HpJV0sbTVIjGwyXsq+3H7OZdDJ0Kk076cRljKC53I2wFrrp1PHpfXKvvM88pCSEbgqtce4g/N8YSadQ4iohiD5AKqvX9+vGNOhaWPxBEqPHbHmwv9OODjCNr04sXhvtmRWlU35mJ6e12B7dMX4epkLOy7Y3YqVD8Ke3Auv0y8xO+hilWUbbPO3bY7HF6WGLShWeQxyobC7r+v1xKrsVSF/dJXQHkkghgvrz6/4zB8LULqpYQWL8AkLwfex1+mfV+I6Dx2WREHQVu4rreLV3Mq7W83QHZ5ue3TBHAqTMP7Oilk+35aZJINNp108m83vdju2An09c0fu0CMX0zSxvE/4KJNdyD6HIvsAXDqyjBJpNdMysXomjXToe+aOg0yDStM9qb2up7jtd/wCst8v+qQkXlsYmoCoxjZ9vQ82b+D+xnYIInYBFaNn58QjbfuOgx6JEkQ3u20t1YWpH64+WJI4UlZyxdgKRrKjtXQ9PyxEnRnIrLw6LTqYmVz0ax1Pa6HXAYyTUxgCsRfmBXn3v2wdIkIcrp441UdyPNhJqS021DLuZeC8fkBB9P9Z0Xa05608kLtK7NsYNwCt2QPU4qZ4w1b9li2ESAFfe+n6YwqzIWKdTxXFk+o9OuedLjbeUAC8muDgbtUZdig41EdrI7o1EPt5+vbrkuq1E+nZd/IoDbuok++WaNF8JgrIYjwAoo+4/fTItdFLqdarL+BiNqbbr3/zkmsstHuhrPLBEsiVJfBAF1fcfTOECfzsAm6rJHX0sZxneB0QyAgi9qjcEHQfs50SImoDOjyF1Kruu/Wvn3xVXTD/BgTYr7HAANkEbRgJ5XWVX8VjwNvPPfn1zmqkneMMN6oBtLIQTXrh6WuU2q6n15O7sMHtA8tjl1BRAoVdlbTzTD4yebTUFT/mdvF8nC8KNtKQdoYNyLFt9fy4w4tzn+KhjYDqp6/vnM97Ms1CYNLJHGghP3emG5X827/Z9cfPrdSskafdfIem2Tbu+lXWO3oXKi13XZPQUOvscn1UySKu8k+CRvKgEr/cY8XQO3qF6kxalt0cbqYzW/p+V9cZp2D+JEVQACwq+VuvUg9ecBljcuVkBY8eVRX1HvecjkJbxEhAK2GZ22sPjj/Wa9GayhpjlLNIEVQvNRIeffpnhOgV13FSwFkJz/T+uGkom0wXkBh+Ldya9MWgqUOXRua81cjFb0C/YM+nVAse4qSb3KTQ68ZKkLwEguzj8XuR2ytQgjZ0VkAawqG/ri9Q8bmn0wkcCmLUCB69cUZN9DU1RWNFYUxBO0kXVf1wJNSusmXR6h2ETcho229OlkHjCkSJoGBZVvy7uAf3zgRhQVkUJ027iLv6ev+cykzUhsFrJ4Tv/AA+h8M3z/vLJYYo0ChQ67bAuqPrkEcR8RgrigQQoaySfX/N4+SRQSFLNRpfNwR/nGUsYjW4NjcA+fixyTzWUQefy2KvjjqMym1lS7JIivAFjk10u/wC+PicmZV3HaWIq+2GPyKxZQKImEoAHftjkA8PeB8gjJlepCT0BNkDkYbOXjcE9/JfGMmI0USICDwAAOi98SiPvAYgGulnPPLSIjmmFVQs43T7XTxJXoetVRxlUpUgakcCx3sYFz7UAM4SrS7AOo4rreFQu2VwDwCTywzi7Vei4BI4UjzUMpQqO+EjsjzJ59u0G+RguqmRImIsmhR22ffO+KssmyEVQ5vtjCrRKzCO9wovxY9fpmxh1CXC+MwdtrKQAa5xLhaA37ipsDoMa0rugUEbD6uOMCaMdCNxI43emRmr6HX7ORIsZM0pYmQ8KvQduPbBaJuFRSSSTQpa9sKWo4k272IuulZ0+MmnRzfiHkBf64a8MeR6kYyoSqmrr9cAhRKCV46sxWu/v/bOz/hWSaVTflfmh9f0xmoWKWFUVQVY8jqD7G81NqjCU07mYl/JtsA8bgDxQNVnJIY5YvEULIyGgSOW96xq6doqJYEDsDW3OJEsSBC9ru4FdTWDjlBs9EiI4aNG3EXYHBx5WYBiWJJJCqeQOnpznYXK7rSlNgcUT+WFa0fCCFm9DRP8AvKxVIRvQZNzIIzVjg0a4/qMUkCSOWO/xBf8AN+G/T/XGURlZE27Lbopc9TgyKEYHwwzGvKt0Mzje+AT8CRIkZmjqzV13HxgtF4vmKKGA4oWB/vFvC4ddqhVrgheF/LOxzBQN7gBeuzgHCnTpma9RTp4x4JUFVI5AvONIsjFUIYg8hSOD64IkjmQsriu1i6+mL3W2xX8yHqvNfPvlXLBUtBkmkDqFAa3IdhYr3rvgMNxNAFeLrkn3ymWeLbTOWrsR/TJ449PYKb1DUbQbb5sA+n198jPX2OjhEZkkaSK+RSoDye31zgeQhf4nhsDZbqa9caJPBsr4jH4q/qcNWWSbeWoEcDES/YWxhlldaoFqHNcYEKh423gMWHNdPi8PgMeRtPoMn8VjqVVFAUdfk5Vy1WIl9Hp2CKJWBVYh+EDqf8ZFpIkX7UckEq0Iej6g1d+pDD8hlereMFQZWR+208D59sz9rJ9oaUbv/MsiqTZLAANZ/L9cSUvywpFfibsESblYNtUc0TnpgWkKRhgXF7+w9s5E+1AyIZdo52mzhO7StvrYo7HOpVww59skDSK5Cuo6DdyATzYvvno5SHbzH4IxpEHhsd29iLWxdD4zwWOQdOR0vvnO077K2hZCSbpFO1vQ5KqSRz/+Uop5K9BljxgqwvqO3bEeGso2ySBq7MvI+uSkrYyZ1S0KbizBSKO3ivbFGUuSQWI7Br5w5o3CDY5bdxz1HGI27YixTdRodjk5SfQySCE26kK3fTBETHawXzJVV6ZxAsQP8Mhu24V+uPUbolYi6oV0Ir0zRTYzddFDCQRAkDp0ORlFLM7VZI/CfT2yx2Yr5WK0Lon9MnEpmjY8bOtULOVk08EjYtrjugWY+be0hIT4/wAZ1FdIWBkYBmslwWNn69MFFaSY7LCmjfO1fphMHUhdx27vM3XEtjnpSqRKzEIwJ4XqfreHHqAlFWLWBz2P7vJtSWIiDOtBiQSOnx/vGQx7pI0kBs2QV4W/jMm7w1KtLCAIiYeWNgFj+EnrnNXGyRNJS7gRyx4PHF54wlkvhSepPUn4xYmUmQlGWlVWYckjnL4lpErLSfdAEQb2HS+nr85ONLuUK7qvp3IJ9s4muMcfhrFtUcfF4KySqyl3RmI6DgDFlKMqfYUmh6weHDsDHd/Nxd5MsM0UzBUpWN9OPTHiV/D8zVYuvTJtTE7RtsuQ7v5jV4k2saQ0e9E6svOrwNAygkH8OO0sczLRUgKBZPWvjE6ctGjLt8zc3xZzS0e9Y9jrtHfnrg+NKTNJ0hTyRwReJGGDN228Zn6LUJ9orIGiPhhqVru+ec1tTHtVrNhR5a9cn0mnMKWAOt8jpjTi+VATVDxtEBKCuOAOOPXJ1Ah2oxVCW3C3snjKWoVtFuePbBlRto3Mvl4HHIOGmKmDFP4iszlDX4SeP17YEsBLWWoEAr5efri1UkhqLMTwOoB98pim8SJlcg3YBH4s1qWMPWommAYXwxA6CjkcjrqL8F3WjbDveakMKFGjdQHr8QHXMqbxA52q/leuCOnrkvkg0rZSEvAhE8sCl2YeXkBjdZwNLCxheFZIpOb741NQ6xAIBIh43VdG8dpol2Dc24sDdckj65JRXgzlmitPGCrOYdrE0C4q/wC+FqOy1dD16+uPaHaGCcXRBJxLB06naaI9r98MlSoS7dgGJzJZc2VJWugziFZJm8aQnaeLUiiffvjoXVIx3q9wrONpy7bqNdeSSBgr6Dy+xDADUgFFquSeaGOijBUSbmDUST2Hvhrp0jJ3kG+BsXp+eXQrFDCBEPKBXTtlvi+Pk9FnOuiGNUCq5BHcd/8AWL1DsqEJvLrx+zmk8gEdsu4egGTtMrWgoD1Pf2xpwS6Yqk2+id5jIFUjfQF/PzguYiPMgFcghvfPTxbQqMyUWoA9v8YpXigkLrKGkBIpiaJPbIvvSqWYHJBR3IwUe4/tnHM6MgDXuWqqz74cJDBpXU13uqGMaESAFZPN1Wq+uDjfQLrsmKs1KzEEC+lD4zrPAaUupFcHg4yVFlkCSAtx0I8qn4ydVkDEKixqxFceY+uCqGVM7p23IxgXwxv21J6dyMrbmEJJ51rb58mhjYSFAQpDliQMZIJOHoszn8amuPfHukCVNgytGpIVkLdFeqKn99s47N4FSsQxHBvv8Z5YJN3qrdOeb7HJ10i6V2kJMjSPbEm9v7rJtsKSAaP7hp2kldQLsll8x+M9p2+9ESX1Ye9V2rKNSysfMoZaoknmsihMkTqU8M2/Vj1+MXLKLYlUstTsighgtliKr5OJEszRcPHuJAvrYvrWFqSkg8G1VidwPocW2l2uzMS3loFBZB68HD2DpAy6YwOCGsE0rn8X6Z2CScT0YieOX3cdfX4yfVl1h8b7x5g3Cc8+g+c5FPqtKgI1RJduNyWB+WGkPTaLpGH3orCppRy716dsUNQ0TgPGDXJbdZJ/plUaNqNjqqMZOH/h/oCcb9wiW4mj2KpO49K72OvODg27E5JdmNsV5A7MZmP4Sp56/HT8s0k8TSwEMFbdQLMdoAx66dG8gYMzJQIHGLl0spjBK/gNs26zx646TSA5piJ9cDpJElVmkU8Osewj59sR9mzeF9n6ESxhmeMMCGosfb6YWu0crRyOqqTKBGqEHd5jtsenBJzQ1Wn0+laOP+KFjTbGoYsABxWOk3FyYG4rEII3M0cgW5lq2eh8fOPvxIY4YCKS9+02AB2vJSIZtWoA3sBe2tpA9x3y2M6dAyzEoSCGLLW74zRXLGLLDM00OoZtskm5UHlKtYPP6Y2WHwnM3ibXHJHJq/rj/H08cpJBDKPLuU18ZPqldn6kqTaktR+Pf65CSpD22zi63dRO3xOlrFTAHvzjJoAIQJNz8C6PX59skSBpIwIy5e7LH+X04yg6hYleSWRjdjrxgi/s0l9HJZXjjVIowzKfLfQj3Od08fiqryKPEF1t4A7dMimmYcRy0KpSDzd8g/vnHab7wkzOquy1V1QzLXoWsHzySFVgCrH5hy54AvDiiMT+IS019d5sX6V2GeZYtTGqrHJXUMRf0OMkjaKJipO4NRFACvXnKxTVsm3lHNSkbzhwW8yU20dB75n/AHiWeXwtKLUNQ3LyOP1y2SQMpK+S1B3D0/pjIoA+mYSCuKFDnJtOUsGTUVpLBCylSYwxNgPYYjnjjKWVYxTush/m2n6Z2PSxJEBflJrvZPtnHWSR3JVrPmC7eTWHjSA3bGRK8unZoW2qAQCe9YtUVprlYSK1GvfCdS0KsXSIvxtY/wBhhxx6eKAAO7JtoUKqvTK8bEujmo1YJEcaBVBoLXXJX1wdvCUM7qPTj6ZSYoJL4kkAs+d6IOStccbOsKRO/lRVo4sm/WGKQyNtpSMpJ+HhpTwK98606LJskcIwFgdbyfYIY2bbLKzE7mdrPORzQyyIYQZAX/D04HrfpipjqKbNKBxqTvLFA7VtP9cJ5Lsje23jJ9PD4cZZSzMRdjjbnhME0u5SWbaTt5B/LCpAa3BpUmeNV3Kh5PHIw3SmG7zKBZFZOZHKqzKbA4Jb19azkk0ilQU3ADkjpmVMFMD+EJnd1Xzqep5H+89LHHINoE/m58p4Br8sM0x3uEW12hXpa9eO+BJq1067ZFV/aKzWZ3HBlfhyJUjCxiPhe4459hi521IaliV0AoKylivOBHM0TmyLZtopeg6iv8nPRfaepdXgBClaCk9cyf2NTM5hPppGMQJZ5LN9D85qQTvOIXkG0RijRuzksyyvrXZkQpwWBN/kKytJ6VIYoyAhIJaqPtWFDS1AySLJYZ/M3QA/rkuq3mQBV4jN23UD4z262YoHjW+SwNAH0wFeEStYaVnJsFbVeO59cWmFKheqj1EgYMzbUalJvp654SOulWObYoo+YjqMYHlDuGgJqgD0qsVq38gTYo3GhJR8t/HFYbGRxJNRIu3kgEkgdari/bBGt1EJ3R7E2rTopA3fIwFUpAoUFTuF7TTV684yKOBeC1sCdy9x6Zg0igaiGaBEjhMRUUXXvfJ4OMHjORLHTbBVM+0k1752OY/dmMkED7a5rqL/ANYEkjb1bYFN2Nrij6D8sHoguaZdU6wyxolCg267PtX1xceppygUSlLDvW2gPpR/PDSeio8CGmU7rBBX9MW2uQBZdw8Kq/EFvt0xg0Nl1NJukiWMMtWxB6+nrkniTySeDGqHaQbLHkduMtEY+779RtCfjAda213J6VksjNGGrbGCxDbT5b/xhoyrwogB0qsJWdpCbFG+PnMfX6mJ5Nx3l0NeISb+LysaeSfbM0niRgA9avsAO+LmXZD5dKjbuWHavasZYwpGcrRyU4WOOZTdGqr464yB3jjkcud3Bq6PXtnE1RZxEE3k/wDDnOCQxPFBus9AzGwt+uP3g4Op1RG4EHa3mIrlff3zNpmk26UK0ikmz1F5XrTK+oen3EA2V4AxOliaGHe6kl+ovp0r5y0KjGxXfRIEWd2VSyMGtBtINen74xkcRkR3dRTEWlgbuen6ZGsxe2QMCSALr8h6ZR98cLtY+JJVWQb/AD+udck/DmVHtTrJPKYmkZV8u1iCB+d4Gn16yL4MmlIIBPkkNgiua5F5xS2wARgHp5iCfk4EAkE7RbOXUgkL198ZVQH2VI8YjJBfz3TOQpHbteVppnI5UtH6jsPkXf1xMOjnUoAmnYWeGdbJ5Fet9Mc/iaNQ4BikU/iUnm/gZCX6KIpg2UXckhjYG4evfjr9coDQSSFmDDrTX3/Kx+WJXVuwZ52hk2sCVMe4r7A9uuGdRKx2QgQM10NtlR1sCumSaCckcbj/AAgoJoHYeMXJEwiYlSuwg+fp7cevXF+HO8IYzmZ7oOlksfrRrOT63w0WNg21BbcFS3PI5PGbj9Bs68gRyvib3Y7dpvgc/N4+OVli2htqgWQOT+f/AFkyHxFSTTxrTc1zxX58nGpuSIiZ96u3KliCK7dMDQR0cSS2JWuh+Ej8X5Ghi5woIZgAAfw3RHpx/vHL4R0wCt4d8sdvXjrz3+cXK+5Y1VyrsQCy+Xjqf374qMHFq5CfDMIa+NrG76Vx64+SNpX4hKRtSlCd1CvXEQaTYyuJEBD3uY88D0/TKJNQwkI8Q1+EoDxYwPvDDU0xA3bGZTwSycis8iiZGgQ99x3PwR8ZRBqPEgjSV/Ecjkfr2weGleOEwoS1spI49zxiaC/sSrpGske8BUagwParr9cOVtj7hMoibiya59OuENMsG9nkotyLYV8gdumPgk0z6fZM0MtchAv60euBqzfsBV8eVI08JoIh5u556c5ZJGoV5iUBUbVHJoe/ti10hmDeGscTf8UAArt075x9/wB4WJ2UhB17fGahb0VK0nhKwWPYGsUtE+xytDGyGSUNvSxYPlPzk8Ws8Kd1I8zKBew0ee98fnmgk8cke3UrGqFey0f0u8JmRRgTaiVVSrYHxapQOm3nKxDNAiCOLgnbSLdD04zmnmXRSyB9rKxt/IOB07dss1ELR7WjZzZ/D2F5krVituyFkeLTnxm2hSBQbke1nFjxAwhdzGeCAWHT0yx5FDqkoEjXd7bo9jkxEHhSTSIrSA8hxyO/FYHQU2B5BOzRuigmmUt1+mMaVYNI7sdxiXjbzfevXELLG72Y3Zgu6+prNHRok6FJApP8nl6euZLTPCGJ/vOmVx40XlDLGV2BfXnuefpjo9IQgdV6ddz2f9ZZq2J1OxpBz5fkV0rpziBPsBQRtQvnbyMz7BboimVfFAVYtgNM3WjWFp0ERBpC/FMAWFfPphyygSKwBABvgdOOt/nnC5VVpd6vwxVRYHaq/rmGKYYy27kAchevX6Yk+IIjuf8AFwfVh6ZQEKKsdujVfXr36ZPODMxVSVa7uqv64rMiObTFpVcLaKOhoE/GWanYNLGQTZTcQEAr1seuEuldNKZnbn/7DcR/rFu5ZvFZ/DvrXqPjANdhRgssamQsGDAMOK9OP64DwvHqNsgAaU0QgJ4A7fpgOjSxiNGtz1YAce+d0bTJGun1G15ENCbrQvvf9MZdCsbF5NRuhXaV/lI4cV3H764E8SzX93VYUWyqom3kVx7jNCWMiElJB4o4VlN2cQFbcIwsjy3Zcfh+Mz+gJ+gwCVoGbaWdTtFrde94DSsfPQRkN0b611/XKJwunZd2oJkHmZRzY7f3ySd49VH4kc7ArRVdvAJPXEaGQ/wt6RFCWkAvznocFTJGjBInoW3Avp14z0cOqZHMm5/LSn1vr09zl6acfdxCxIcrzH2vCgOVGc8B178JzQDFLUke/GXaHTOyuJiQ9bShokZO5k04KLvUubAjNEnuT7/GcXUbpPE2iSNVqQXzXJv9nD2B6jUk0QEqzSzbGUUCTSn5H98ztX98h8jTyPGTbs43E/6xTT3Fck4KDlVdq6/1wZNXM7LPKse11KhjQANdfcYW/o0U0GkKxqpiiZlUbSI7Bv8AfrkiameOSmRhCW6GgD9P3znZjOkV+IRvZQAT5iPY9P8AvBSSSEsJ2bcGK+bzAf2xSiRQixqreKEHwLIo8ivXPOwdvD8JkUURsOwsfj0yQjUKqimjJ5HA3H0JByzTiOUrBqQm0kruU7Se/HPGZozzRQYqHdJBGyOQQbJ/XOkuCR4zCR1tYw3b55zVk+x2AWYOzdRTEebjg9My0kJfwXO8lLCLZcX89KwuLXYqkn0F9yLhGPHhvYYAE9BxQybUKqzNKs0rMR/zFrxxa1lenSEzBo53Qi7j6Bj6X0FfXJW0xE7xyRVIeWc8Ek9CTgQ6ehQeJOUL76v8Y4Pz0+fXHlZpFVmnRgqttU8OvbseePbJ4FeN92wrQoAkUfXkcA4EhSOSiVATlnSSqJPS65/PN+jdsl0uo8GYLLIU8RwF3qOR6Wc0tNHMv2qfB2mAiqHTr+gzO1smg3ojSEzMbUqbs9gDmhBq5GaJDJJE+3bQ5ND3J/XCzPTS8RNp07RrJGwKims+x+mTafwo3ljlJUKBTbRV31Brv6ZCXaCYTpMLNlVZQR79MpceIiTLMrTt5xG46DuePfBtA40UajUwGSPzvujsXCL7Xz++uTiQ6l10iP8AxAKDsvKseh9uSP1wfvTyTwxFxGVYrvBALG+nwfXO6qKFdTFDJDKzyybNym6APf8Av8YE9NVIV9hhX+w9DFE5il0+9Hj7vIpINetm830m36OZWDEAgbCbZe9cjMH/ANKaZ9R9jwlAkjLPLKT0NlyCQa9umasSabVTLqPvU7yoSpApeemWnk2Q7QuGWMPTP/DZjsUc0Pj1x8LO0rsyvIqUA1mq9we+Pi06Q+cU283y3Xntil0qvqI5G1RZoywVTwFBrjnrk6YzkmJ+0Rq/ueoOllDGPtvNgV79xee+ypC2hYTB9xbzb5KJ9yf8Zadkp/iVHQ/FXXseMmhC+IjhWYFvKegJ+O3zlLF8KY//AALFvkI55VrP0wdTNDp3Twyrk+UhaUkenXjCmYI4dUNDgFDwMZHsYgOKlYAfxO39cyleC/sH7q4h3DcYyLINeX/eTxwyEb2UE3TbmugeOmWPIxuJlRAKoXxft+uJeakWBJJnTuN3Pv1GZqIU2I1f2ag2mV9xFMhPQfT88XCxhBM0h2A+Ula49z/1lbz6cipqfw+BtNE+1LxWCh+z3CyNp9jvJ5j0rng3g4q8HUnWilcmEgNtZjwX4/P1wIPFDPEm6JoyH3Ek3fcZZJHp1WTwIvEY/wA0hJ49R1AziFmuNYnIIo7GJAGK416CwdPG+pYGXa1m91dfywjEUW2RTGDyzdL9so0iRCBoo1KMWJ23e0/7yCSN0kZWWueU3ng/vsMZxpWBO3Q4adGk3BqYig464pk2wSAqW22KJ2nKxGTF4hACV5gff07YwIF0+5+U/wCbOBR9KwKJuVGLDGgKRgCNy1+ZrB7/AOcqIESoGeQ8AlfTn88cfC2SSEAsBxUQ49SPTFwCQqed1ElSe479OuKvoduwBqmljaJgG2PZPUgd7zsrn+a9jDsB09vfE6fRvBK0pc+YlilWTz069MPewkKloxzwrr5V97wtaFV4MiKSKGsqwFAGMAn5HrnpYomH/m8x8pUruvr2GCVkjZZEmFh+CqgV7C+uVtF4oRgQhW9243ZPxipAboigTT6UASgLwPMLoE/0GUCKGQGOGSm3Aso4DfXphNo4GbxJAFII29weKogf1ziwQpP/AA3IsgN7D69MNUDlYU0Bhe/EAZ2A5XkDPSo8bjxJHL2T0oV3x2odJ5kSNmWSMmxzyPnpnvtHw5oVrgitx6nHlBJOhE3asmMCnftouQAdw6/liwAmrVlhAjUDcBzXbG6SNY4WMYka0sGuPr+/XDihVINqsFL35ubo5PjYzZ7w/EYyrdWbA4zqMZkezypoANzi49LEJ/EaWTdyPxcfvjGUllo0csfxcDn9+uPVChpGu5ghO88deBj4ojDw4HA8xPH/AHnIxKU3IzvXBVyBR9fjOpd06G6539PocpGKWk5OwrDvYZV72GB+Tg6pYmZSjhtqkbPT3x0MAaHcyqu4/wDLd9MVqJKm2jcAByBlJJqO+irvBEUMqR+SPgcEq3Pr3yrzbVZm8o4Ibrzks6nxBM0SK3Fb+g/3jHZwN4cuu0UoIrETjFMd2z0uxW/CLbgMLFe2A7jYVPJXk29VndQ9hAQxNXt6/GBLEssexmTbtG8dR+eTb3AoYymZRWzbW1dotj84yREdQzCyODbGsUIa87uTt4GWRKrIYmo3zZ6HKwjeMSToi2uZCbKKODsrA8BmktmlXaCRfHH55aqLCxo2t8KBf7Gcbc7SC9pvbfb8sPFVpuT8JCuxUUUWcUCSTfr07e+PiQhZBOKul4HBWul+meCCOUPTAdbHN9seGS7UFgLBBHGGMUZsXFD4SAIqkKKFDt7YU1xspBoVxzi/xElQVVeB2r/VZxFMQHiy+KN3DlK+nHp+eF9ArQImm8TdsPBPt+eEzSTOjkIdv8o7/wBs8S29Sb/FfLcH88ewCxuIwbJNccYsY4M2L2Wm3YAByobknJJllihsxuXUbbuxXbr/AHy2IPbeI26uDzX7GDNC0qHaASRzfNZpRtWZSpkUQkhiWMuN7L5qHTKI4nSFiLbv3GJjl6xSIVZfwn1GVRKQvJ3Kw5YihkUtGbEuaITncvP4uDnQwVAWctu4Len7vCbw4pFaR6N36Bvj3wZUKzhpI0KVwaIzNGGiFFjuQqze3p74MD7kJKnuQw64RdfDKqq8DvgrEZaO0jaOSe/xhqmqF/pzwNV4ryTawmCiVhiSmHTuevfOwtEsDOqiME01nn5vA3M9sH3BQRtHf64uYiONpE2hWFRoR6Y/L1GS8GHRRagb3QPu6ckAZ6eILqtIpanLuE7/AMh6fS8GCdQY5/DJ3qQ5RbAI98CYlo4dspvx02Eiq8w/Wr/PFVB00lV41IRRZ49PzxciPHEzySME/wCAPF/4wy7q+xXCnq180MU0LRhalFXuHF2ff2zofWEl2BvXwVVfNbWD1PxnUeNpGCqEbrwSLzzljIu9Oh4Kr0/vjdgW76+mS1j+HFC224m6qweawQysjAKPxcHbyRhBVYeZmDH0wvBQUqE8cm+AfnDxbBaFqkcaBqKkepxTbHUsNxFWQF5v1yh4S0YBUXXIXoP0xXgvObO9argtxeCUH0kFNC1MiOG20TwNxBrOhJCCm4rfJK1RGNk0u4q5A39CQO2ehWNSQRRoDr/bMvja7NyRLIBsNh3DudvN9v6YqKzp2pttEqLFZd4QmUMel2D2OK1kAWNmjQ71o0vU10+mI/jdWOpLom067ZGen5ACqFFfTKpCiq25dp6njn4wYYZkiLlL3ck+p/rhiFuHWw/F7ibwKDoLabIpI/CiUlS4/lAIIPX8s7JF4/hhlYFHDDkcMPf2yx40HDIGcg2QOv8AbFaUK0TBdt+pJ5GDjTo3LLBeZ3kCl/E5p1I/CfS6ywyIQjBqsbWTdXTFokNSR7Ctnkg3Z9eMYqCNT5CGYUCOrZaPL1k3RMywGdpEhKOQFdS/7H5ZxvKsn4ttdQRx7fTK5NOChoKxPU8WDkmoZRJth818tXbElGuxouzqMVdWlj4rgk9cajiRzvFKK6Htkxhefdusfymu2NVWhjCwQ7qUCjkot2F0MIXeKNPzRPQZVEEUbXZmYcg9B75PED1kj2k8is88sayHyFgW2nd2/wA50fG60m1ZUoElMz7Qf6ZN4AiaRllajfBPQYxXEijmlJrr0wFi8J33Hkjlj3Hvjz1LBVguSUwOGUs24UT1Ax1tIlqNvBHTg5LJKH1AR6IU2Nx/EPXK0kLEAgAbbAvJQfY76JpEZHYeXpx1/LFNK6wfx7SjQHt2s5RtLectfq3cYEvmUiHbyODXF4klljr6BOoJiTTISrXwd3UYnWymWPbKsauPV/xYBQCHcR/FQgE3ROcacPGQzRoF5DCua7nJ8nJUxqS0ZAjJCUBZEIugQfyx4jDMro5oijd2P7ZFoNVDqFLmYE8gpZFZoQ/d/B3hztBr05PvhgkwTtHZk6bGthx+Lp8YpbjQB33Mxs7u/thL92jj8TxAre9HnpgSSASK3kZT+mM0uxVYQ2tSorc9WI4wHjdkZkfkGvfOgbQVLbgTd1ZFnPMqqKtxs60evGI0qCAjB1uxt6EHH6V2K8L5ONoJ/fGIVyg3hbrmyefyxqahJqAG0DkgXxmhj7NJHWBZ6oV0AHX8880FISzEMSe/ftiZ5WVQ0ILMzAHaeSMVslQuXJJIqxx+mBun0ZRbGsSsh79PNWCXA1I4BP8AQ++J083jy0ihoyATIe/x74zw6e2bzE0Cep9/bFtsdKhkYLliqhEU8MBycJia3MaF8m+fpng/goVX/wAh/lDAkj1yWQxeLsDA0egPT5xm6QKthGaNR4kccjWdrHjkc9/TOxS+I5SW/LzwwoZN4waQmKI+FVAH1ymWDfsbYOnBrp9cRNsZpDvCm8PeHU8ggN1AzocK24lSe4vviRIXBi3HYSOb5rEPNEpCrKlk0RR7fHfC2vAKLGxyiRmui5BA46emMVUpuVG/rRBPreTTQspB3Lu/5st2OuHFNGW4Fsp53VwfXjtgT+xmswDU7pJXRF8vT3OKEZeNIxGiOGvgXY9MqdoXiKtZJAZxdUPas9BqYnRSosJyoc9T74tK+zW0uiTWaPUyMvgqDEB020cRFJMd22SPZdbgOLHz3zS1crTS7yDQ9PwjMyRlG4LLIq7bYiqGB0nhSDbWnY5GLbVs7W3b1F3nnV5ZNqIVC+XxOQB3rO6ItDE4YtIpoEqeuGjRSlkMYoP0JwdhbpnI5ZjKg3OSgtgoq+fXKL1MqvtIpyNzNdjjtgnwwx3KBt/l+OmNOpVIWZFViv5Yf0K/0junO2Tw3YMUH4hXmHxi21WmO7whbqdpA7H37ZPFqW3cAuAtm+xPUHDJClndtzFbAPTjDydUgcNtg6gCYaUTEK33hFqqLcnr7DNZoY4kVTINoFAAGyT6+2YsupeZdJI6RIBPbGroBWP9f6ZZJr28Dcrtv3CiEskdb+MvCaSpiSjJnJtINocoUXuWI3HtY/XPaZpJVKeJIyITSyUxHpWGZT4azSKSGoCQtXN+mNj1gLFy4bZ2Jq/Yd8XL7NtEWpfcqxTeKkmzczCufQc5wQiZVdZWNADZt2kfIyyQxSsnhtW8Enuf38YpIGkmdoRuJXzdr/MYkk7wN4RxXJOzSFnQsVHFDrnJfIgVYnkJBpVHQe95TF9ntp9U80UZVyKO4mh8djk6SytHLHMnicVvK1d+nPOJx+x076M2PQeJPN/HSEbvLyAb7Zp6XTst75PEoVQN7sXqdN9ntKkkkUcbgUVVtwNe2OkjQRxiHw2c0QoJF41LwzdjkUSIHZ9pW9qI1cD+pwUnlU73s2aFHjrwBeP0+nVJfMgZwdzbTYB69MGWFpC7RuF5tTQ+orGp0StWFIrrtAYkkWygWwrOxTP4O0TODdOH6Zx9S9xlVqTop28Ad8aICpLIFZW556DCv0L5pzT6hREd8hqrKnmsklmlAZo5N1n8V1QygQAK9Jvu+O2dCxhAqhd/ehmjcsDi0SnhgEPvN/iI4I+ueQCXh5lDBa29QF9MdNpd0ClZm2q3Kkdf8YDfZ9zj+GskVBqBoqfjuMyhJYHkqGQxwRowDFeLuuDksoaWcHZ4Y2+YsKr4xrP4BZnjWgRXasHVapNj+ZzuHP8ADJ5zOmgJOz0POnKEh9vrzhbYSGRtwAHJA55w9NE0sQIUGgGoJtwNRI0syxhkSMHzWKN/JwVSs3tEckSl43kUxwpyHdqDH0ruf85SEjSIlt7k9S1D8++RDTvLrCZJ2k3jiMmwPe8ongkh0pMpDIOd18L9cX9od+KxEkqrMpSKNtxAFqeMCeaTVxupTyqwBB/D855dYxKsi+MVHla6H647xJ5/EWfZGjDhE7/XMuhuvDOjYulh9xBI8SRD69Af75RLBFFoTG/JIreTz6/nnNPck1BmWMLtKbfxV6emFqJonpH3OgW19j0wNejO7o5DqBtUSx+UrYvvnJAYSpRVTcp3OwojveK3oXS1JJYCqNAZZqfD1I+7Sq4fkg3V+3GbsDxk4VwzyKoJA5PALC8VJq98bqsQZ+9Gqx0w8F1KVuUcqDyvziNZBEFDRxqrbiT1JGFIJFqI/BFljbCl2km/nAjjl3gLXgqoNEgV++cdqCk0gtDfQk3be/0xE2nuLaisQRbG+W564yZVdFUccsUDtuAiPTng32APXEKFLWNQHUdQI+AfTr14yOODxNQCutlEZFeZbCiuwPH1zwgMZouZUsFjdV+XTDxX2Y0308RQqrBZCpoNff5+mTpAIHjEgpiL75RGVIUKh81FmajWMOpVFKyyBnFndtHmHT0wIXUK0pRjIzSCMk+ahyB2xbamK/IoKoxHXp6VQ4w1EkcWxZgAa/l7dc9MfEKxLqSzilbaa4wGJZotRLCskLsIhIbPBJ+OOmRRpqkjk3BkibqxQkGu4Ncf2ytNHPCYm8WYqGPmXgD264C6qHdLFGknk5LEcAn65VYsCNimnk0ixq7CNWsg2Sfk3WeR5zKQVkj8vTeFBHzgtPp9NCZk07TOK70Ce9jFb1lDFQkJ2DyhyQP374KvQovQJ4Acry1hlUgUOw/d446EamFhpNRG99Y3FEHM13aGJf4kXJIXjhhX9emOHiNS+aV+bF8L6Zl+xWn4Raj7I+5tYn27WtVV1BHzk6aUskksj3x5OVo/njNcrOmyMjaHB2hqCnJ/CcoVmaMtZU8G2Ffl1y6doys5JFNFqB4Sji/xutEe+KnDww/+aMSH+TaDtvt16Y2P7KiSQtFqgjbRxIe46i+mLX7Pn4BKh7sVKCCO/rWOmg39mI+qhVGuFXlUi33WOvYd/wA6wopiku3w93imiT9PTGRQEncR4hfgj1w/CaFyCRxZ8oHX4/fTOxuJyqzk3iptEr2GAJEfI+vpkiqIpWDMNvUE+uVFY2W5WCkm2ahQ/r7YaxaZGQxsDIByqrd/v1wJpIz1lGnQL4mxdrWNgWuT68fneOdJHjQEArG3NGgT6f4wIhHpw/i0yAC/LuJJ7V1zwSZk3SQypGrHatUD+pyL3Sifg/bHC207ubo8Wp9TjjIWAC2VHAkcdfgZnNOdiW21b819OOlf69cck0QJVt1NVlgBRrrf7BxeJrGhwA7blUKNtlTyL4+ucXWeEoVHY82UK8MT14yaIxtOwm3uCeoNX8dcpOmWQ/w2G83XAFgjm6PH6ZqSNZTE0UiMTEkexrJSlN+68j6Y+GLfNsin8pU14gCsfcHp3zMUyICkRraLaloemWQu21Nqu9GgY+nyRiSQU8KR/AkUajxEXmjVFew68HOhD4e9ZE8RpPw2SPk++TLqH8UrCX3MOKIaz8dOceG8VWeirm+U8o/x+eLRrCSMxTRu42l2vgAgfXKXol3faG/+q81/f5zLlpSH8TncGO9SpY+v765oLI7RiVyzeWv+X54skG9GJe1QqBWJsFVtivtlelihkZ0hAdieLoH359czUOqlkkXc6LttHaiAb6V+fXK4dVKNEBZVt5BJNkevz9MHEVss8GRZAgjNDiia6HuB29/fBg0uoklt4445AD/L5Tko3qxmiLsW4Bvi66jKIZJI+Q4ZxQbc3DYKoFsugmMSeHKSq2KkNV9KwtSNLqduwC+hIHJPv++2JmSZtTGyr4hK3sBsDI5DONRIHXfR81dK9jhXQnbKBp3eokk30L3FDZ9eO4xkDwqvhzRr5hQBBHxz1ByGISPpS6NKjGwUvn88r00DFYo3kUvIK8tkjp3wcdGbzRsQeJTuJLliEKel9/frjBrmotqFR6sqRe4j34xerhaCdFd3Yhuh5/xk0sLyahWe475XaaGavoF32Us5lbctKAdos8HvnSio20AEEcgN1yZHiBQl3Y3acUb+O2ekjDyqBLKpJ3EIBZ+OMFaN4FJpytsdyGjYJux/bNKCOWOAbkKUvIskMMU0jRB45FaUkWrX5x7ZNv1ksIcSPYukU0F+mGhLbKmhKnfH4m1fM1rZ/wCs6hfyvIjOzAiyvXEGSRoIwDtLkjd64k6crJSSvtYWzXf65uIUyqRYov8AzLMd3IIQjnt7YCwneCiMtEceFQA/ti0uffEV8QId3mJJP065ZFpPAiLsjMTVd69vjA8YbDmNxo7A2yHvVUeBgSxxgAMQXC8MxAvjDZJNrLtAZU8lChWLgWQyAFQZG4Pc/XFfZl0HqNPIYVh8q2u52sH5A5ySSaAyEMQi9KZ6A/3jAzhniEsg3NQJJsn3yP7SjIgjdnAYWAdvLH4zNaaL8Y/7P8GpHhVHhuggPBHcjFvDFLPMoIeOyALvi+b/AMZJpZB9nrGnhOpc0VdhR9x7/GG2lWGZwkhBkNCRCV69fg89MZoPpsCMLCEiS+nJoE19PXA08E9hZHB2WdoPPtX+8y9RqNRHYDmkAtwbFdO46/5x8DbCkjGYqdtgDygf2xa0FUh7acaiZjb3GdhUHtXP798o0kJ3EeCwRAaDc8f4vIpta51YhWNot69GYKLOMTWJpojp3/8AIh/FuDEk/GK07DtDV+03afYtKBwSTV4UUuoj5o7KI3b+cheDTvO4LSmuSVAAr0yiDVIpZJdiiNuCwLFh6fIzUzYVGnLbXF0BwOSD6Yh/LKqEeIR+EA2VPS2FYrVTzQ/xNOUjU+W2ra18dMRPpZ5/tSScTtESoH4/xUOlYWqNEudQCWKURyxBoflnPJJ4Sxy7hRIAbdu9byWWGTTQPSqSBak9DidCTvjjFRvW48D6jrWbaGNUGBVpS4r/AJeb/wDRrr/fM/X63Tah7+7z31Hl21z05P8AUZSk8J1JVJWPHCqhP+++ZsiTNqnDKzADlQTRwLo0eypBppCWbTEl7UUTRc81x/XDgVdNK4MHe0A4o33P798SAWKmaawpOyid3HbCWNpEKCZywG8rRFH+4PTCwtmhqddqzGYooVdn5DiTir9O1frZzJgMccshvxQxKc0a9r6/9ZdMWOlVmiVSWpto7fGK2eNOiSFttkKtFRVe3B+TeHX2KmksRoaWb+F/BVAqWuxF2mj71eS6+CYS+NJOfVIN20n2xml+z2uTxRKsajy+GRY/ftjFaGXSTbxIyrxbeVmw06EUknhm+L4iWunGnkYc7VHn5HXn+2TpBLp3c+HDIHPQ9OvYcDKNRAFitH8OMgMY+o5+cQV1M0cbmWkonchIYDuP+8V/osmc1WgRHUvCjllu1WgPj6e+O06SLpBG0ymLcPK1qwv09QM5o9MNVObYzKlsr3uI/UfsYepl3bRtQbWoMGK9BxdcH6YO8GsXq3bRSReEhcKbtmNXitPrx9pakK+5lDFlkugh9B/jOamMyzMk5LKDVb91e9GvXjBSSV5t6M0caHZca2fSjxWMqqjFgKePKzRLIsXK7TyfQKeevfO6/WJo9FqvtCNFJijYpbAEMRQ49LOTCUOssOnlYFXAJYbR73XN1kX22kkH2N92SaW9TIkBG3yPuIJr3AGb44pzSYk3SNX7G1U32do9LoYNyQwqFel/GepbkepzWn07wlvDm8IudwA7v069uMw9akMWsjVIZ5kI22GIqu4PfoM1IpZTpyreIwk6g/yj/WBu9YHFdoHV6mF4JY5jKzxiyEPK11r93lv2bqJZlacqGUmtzECgenI/uMz9VGp1CxRh5eDucWenU8fsVlYgEY/gSDdY3PISOvFEXRGFYaSVFsgahHW1asOjBqxZLeHRiAINkpYPxkDyanT/AGlJEoUpIPwseD25/TGSy7LiZDvBB2ubJ73ft/bGawmVQyUwLNujkIC2OPy9cdFNGr+QpuqyLP8AfpmeXnREkNlg3/kd/L7Vnp2ELxglk3N+M0bJ9sZKgYy1iWZt5tlXy31I+P65HJNFJMsIiBdFJK3yQO4HycCB9RFqHQOG8RSd3h1XPX3xKh2Z2DbiT12WGr1/wBitDqkWq16m1WIxgLcfZR7GumVwoksTqibCW2pIwoAVf7rM15pCqOZwjkUxP79M6NTGIy4d2QHu25fcdsHpnpW7GKQQiZmTbYIH4q6+/XHIHjgI3RBu4Wrb9BmJqVOpmgkWZkIAVfL09h3J+c0dK33aREnkDCQUHkksj05rDV4hZYN3so3gKVboqIWv69caJv8A5EcbsNlFQQRRPYH/AHkDySSKzbnIBtnVgqj6d/r65zxBsTbMzs/l3AWQPnjnMlWGxmnHIwlMTKzKaIBH1FG+2dXU6fbJCVYyKeBsqh6jrdYiBBCSRqXkQiynIIH+BiIZ3Una+3e9lzeMhGaIRVjJZJJHNBiw5I69O+ToIpjvARG9SoF/rx/vO6zUy+GkEBTY7bT3498g+9Np9WqyzFS7WxsgMPTrz1zOrCropeZjUhRfKa2baq/eseNQZI6KbtqWDXBGZcaajX/aLRfxxGgJR7AF/n1ytjqpdQioHXw/LVix7/pi8WO6HRQurqZQCrnqvbiumE6gkKvnv8SqpYe2KjedYJSu6l7jk+lj998JpQNAjQACbo21KvGUBHIcpjEjxW3ipR2ovK38ijnZLtZJQy306n6HJZt/jxbiUZgCWBs/l0x67vvjRB2ZCtgn8RrNwA2OR1AMjQMtC+nJzsQOoT7wkbmnoA8fNjpk2k+8yu8rHgt+FOgP164/eY9EFjHhMz0wVvNWVjBNaTcqeHnCxx0lufXr/vPBnRCGiPcX1GcQozqsDuoYGw45J9jnEVREWkNkAsQbI/PIyi06HUrWjIYo9TH50YFeOGrphRxKJwL3FbADVxfPbtmUG1MqM6aoq7+ZfEPAN1VelZVJqd0iRSxFGsb2hJtj/XthSTM7RdF4qRsGSMKDwUJ457512LqKIBHTnk4pleGeOJi7qfNbckfXEljPpZLmcPHfF2wHcnK8WTuzQh1CmFqYMy87T35wZRvblFCnrYu/X6ZlKjwwJqELqDxu7DnofUZcC0o5cP0BCjj64OTcdClTFSlZnMasRXpwDXTrhFX2qw21VGjd+/zjSQJN67Y16Mu7njjvxWceERliHBLVQ9Tk2rHsXFJSf+QEg803X39sWyEyArwF/lF0ffOaySZVTwmKgtW1eOuDH4mm1CHxZpVPlZWf+3ri8U8Nfo2UyhgI1cKTRB8t8/IylJLi8Qlvw3QPTJ9Q0ssjLH4pCVwppR6g84S+Mv2Y0m7zXQri8vH42ngjkqOyTNJCAkAZmHGx9p/XuM7Ho00yKfDC2dzAMWs/PHtnirwpHIZdxvlT0HwMDUSk6h0KybU4ARbJw8M0HLxFAQahSp3Kq9N3IONZx4XmFiQ9shaZjpJGJmXbwPf6ZPpg33bxtTK3TgC+BdYjdYg1ZfPLFpoyXBK3/Lwc9s8RFLiivKk8ZDPImojG0FttAFul41xJAI2LM1r5gZLH0GFKzXRQZFDhVFEkEGxzlDq4Kgx7jfUHIPKsxppGaqZUG3KItc33aRiLZOPObx4JVrBJ7hYoTdTIAxF11I+uK8VFm2KW3deemI06yHbMHJZ6JVzxRw9Q4j1RO3cdtAV0ysUn0TbGtCk0iup6cAHgYG1QBZvab29aONDCLSeLuLMR+uIkWVdEZDM+5qJ5459Mz+L0ymNLLsFKOt0RdYEvQUpYk/litSJA8CI5VWFn3wf4niRw7mCtzvJ5PtkJRd0On6EkjltjR0xHPtjlJ86ihXXnqcRzBqVjaQFZB1fkjPQbpYJmALBSRTGiPpmUWgt2EEddRvDfw6si7v29sTq4DJKNpIQAUVbgcHBXbHoCQzrJI34rPHtkGvkn0ojdppHD8NuPTj09MSaSiPHWVRT6lRteE+Ei8SEUefb0xnjRaj+GXpYnRjtUUx3AgdcX94fUSxRiRkSiSFBPNd8mi0SxrrQGLQhCX67hXoBgUXjQW0bUZSOfxniZd/HiVYB6VjpwWlXz0AOgNWcgP2gGkETvPDIwvxJE8n5HnKwV3BiQ9j8S50SqKpMj+xlhkLMPKOlYpmisXyt/RcWFOo1Ei7njROgBojAkY6eIi1Z2NWPN+eBroyKkU2wBPYDjCMIsSF2Ur6HivjIZnfRJ5ZGJJ8242PoMOzPqWiaU7dosg8dBjKlhnZUzqeYwWIPBPbFRadvvAmlL2OQokOxfcDExhwsg+8kBDQo8k43TTM8K+ICLHpZw+2zJj3MxTzKg9LOAyjTIWNKD+I9QM7SWV3Fq5rd098RCJJ42jK+XpyOBit2ZIEuY1IjBLseV+e/vgHWs+ojjQEqTRX1+uHPpVjiIBJKrwS3I/wBYlI5GgWYSeZf5m5vJqMilxNFzDIjB+qLzz0yTYikyRFt9fzcivTESSqxh8JmAqykY5b3u8KCaVzIlHyc0xBKnHk+SFWHneS/FVX6co/QcYSuTFtbYLq3B5IyRo5zoWkaQmm/AD2yiWZm0UQJaz+IgckegyKi7GclQyDf47vY3dAD3HxjGZiaCj/kDk8LsZus4jYfiYdBiFVppGJkcU3CXWZpxiC7ZW0qBmb8PHPHPxhRFJlWVQy+bkVz85Npwkq7ZGkLgEgDgD4wEgM2lZvEeMpZXmgazKL7YW14aDlOWM5O7i1GA8gj4HiOx47c/GSFg8MbbTu6EL1OcjkjE6r4klGwFfkmsO1YMNIPI8I/hqFIvteJ1D+H4ZKEqzdux6c5HA51BJjkk3A0o3eWs5OGSOMykht34Vfj/ALxk16CjT3hCtoQOh2ngZPKzMGNEDdfPfORM0itPfIIGwngZFcs0j6l5nAZiqrHxtIHfB8l1QYlcLPJqAnPJHPUHjKSD5vNtKmiOmZaSzeBaudxamJP6Dvj53bSadmJZpHqnY8c+mKlUdC9Y9bVGO67PQcf1zkgmYBQV56fykgZAWfSoku8lya2E7r+MpLkarZIbR1B29QD65PsZi54nJKCS13fg6H6+2SyRhnMc0YQ1xS8f7x0gd5HO8gJz05X/ABk5czQiYzF6FAhslKJSMsGxeE8rGNNrcWt9R2bDgkjnmCbwW3VxRs98TGwQRlXYbjRYcg/OHLAp1MUmmIvcWZGFU3Y9MMVesDf0XNAdPsC+GEB5WuTjHRZFJUqR15FjImL7WeUvHzwU7ZVpy0kVGfxK5/CBleKJ2eAZQCGAHa+BjEh6uNgN+azfP7OTaiQK0UPiOob8TDgjCSNowzFzJGBxybGBJLszY+XSkjaZAH6jbyThQ6NghQyLS/i9/kZnBnnjeYzNuAsC6ArtnWnEkGnkDhGJo0buv646ULugO6NGVF3KQTV/hAoCsl1McYIXeaIobOt3z/XEPK/3jwWkeiLJVuSM6syhpYwzHYLsizk/kadtBjaBiouQ42RpyfUn1GE6qxbeiFQB5iebzyuGj4Br1rrWCsMRlAd22gG7/DkEn4VGxpAy71o7BtvtWIkQuWCtHyKAomx748L4GkLMxcEgKEXgD6ZEgk1JlJkmUhv5TRHvzjuP2Zd2VrGVjeJQqbruh1HrgPqKbwldlCj0sH2Nd8T99ZtKshlIa9pK8swwBqA+rRA0gVrB3eh/pjUuka/sbHMyyGltd1kg414ljl8TzbyDXPUYlkEU8ip4gAPFPnhLKdI6tRZbALWcTjXpuW2ckKvGAIhScMPTPHfJysIVN1fisfP/AHgLG6BWAnLPy3HlOdkEkmuWMs0YI/lv0xOD7YymG3iFVARdg6U1fSsm8ffKwWM+XilF8+1f3wpGCeFGIg0n4huAP7OLSKT71IHYx2b3A8L9MHH7CmkVTLYBVHj3EC2H4j7YD6XbTAbhVnf2OAuslGoMbsCiChLt4P0wml2uCssoD9ba930xuCYOTROEG6liKh2ABYkAfHbGAmGN2ZN/m/l5v39s5PMrzpGwIVTZQg5zaJknSRw8Ytl63/bAoj8rOltMzg7qZhRIN0ceH073pVHhsos8dcgWBZ3VbcRKlBQOWzyeFLr/AA4wIVQUXJNnM46HGh+o1BErbCDQUMpvBd2kqRQCTakHi/as74cZlcSTspX8DDvXfFxxiIHWaiSRkRSxRT2Htm4GUkTaGfUn7Q2ajyrpo24vg76A6d6DZoLpydRE8bAgEgHkgDIdH93mibUSvIjahy6KRVA/hX6D+uVTrs08KRFuD5vObN+uPKOgctNKZop4kQL4m3kjpRyZodo/iqVW+KH75wbW4YlL7WWlKtuN9wT3zkp36hwWYKh/C0n9MzV6STp0itDJDEomkVVPO9qBH1yOTUupVXndrPFEWfgf3yGWSSRJRMqTFGLIGfp9MgKOo8RdU0oFbiTYHtxispGNn1TzLHGXmG1G/wCfoMzZhEgMkMw2uN4AJO0Uf19sSp1EmnRxMSGH4R1X69MiiTzr4DnYpsq3J/3gk3RoRSZoabTxLIrEuqUBubmuO5ypWEDiQXtsbaNgH5wRG8cJZTuYkG9tAjC0q6hNQwIMkQ5pzQPxxggrFlIthuKMqwUM1gkrndPHeo8rHhaBPRh1usnSR9dIyCQxqo2hEo8/OeheZIJomYfwqG4dQLzoSRFvsq1CL424jejigEqxgAGFGVA24cCje388jmeSHwZPGkZq/wCPH/eN1Msqyq1lhLVq3f8AxhcFpk2OijjAD/edu3qHB/rhKIAbVzIG5Hm4OTx1HNJFIjFBypPOUnYqAsCQDXIqsSDoLBZi89rE6DbXHP6DOO5RAGaTeB+EXdZNNKqyBoiX3OOLIFYDSTtrWRZnXZzuLdvp0zck2aimSQqm6MIrV1ftksgkmUtupePXtiTqp2neOWRZFYUWPO0fOcaV44fE2lnU8MxFD4xatjdIqgkkeNojJ4aV29PfAXU+EzRupkTqvloKPTpipJJUETE7FZbcg8f94iM+JqVi3SVIu5WejVYbYUkaQmV4gqRKzqKDpxt9sk+0NXPJcFxqWIFAfiHWrwFibaZ31cqlTwoXyjF6mISeBIqjjjySBSPp6YWpGi1diYIpIWYOjFU583NnCjlji1RRid71yVuvbDm1Go0BVV0s8yseCXDAD5+uRvqfH1UTyaV47UkWNtG+nviKBS2yuaINL48c5UKu1VAI+uTpEswk36ghq3UB3Ixb62XTyKkX8Na3BD1B/qcx59dqX1cw/Gq2x/iCvb5PthUHIZWb8elkEygs0grdYPb+mCziGVvOGk3WNzEkZntrNRqdBEzsFZ+G5raPp+eeDONQGEyugWrvdXsMHGhqNiLXDWcujmRQV4IrHPOB5ZFJUjzJXUZ8998jWD7uuxVY2bPKjNBtbIsKoFLEED4A683j8WTcTs0elaRbWXz35T1F9qvAklfaFgKsEFnggcY4hpp4isropJrggke+C2mXcY1eRbF7gT19PjBxwPLwj8N11CkuqAceGq3Q6jCIYFzsMO42tLZH06euc2K2odGme0FWfxG/7YoSu5kh3DdHwW29vn1zUOmWrtEoso8gHBKVx8jKTFuiVngY3x5qJA+czmjYaNWikbyj8NcYufVTSbERm3qaUAmx39cKQr00p5B4QUeGKWio/EPzyVvAhYSAugqyzg7sRpUkpkd5Kko0TzXziYtCjl2diFBJUE8dO+BLQr6HrqY9W7LG0gjvyPXfOfZ0aKxEo8S+rb+GOTshj0AMOyMvYL3z7AYiAiGRL1FSXyhUkY0lfRl1RfOIIHkklpWZaTw7AX0yaCNSVdBI1fitfxGuvfj/AFmrN9mtqdNtLLv2G7Iojr0zDSDURSFNxVhQtWA4vtmWo0Wuj2sXVHVRhFW6P8w4/th6uPU+GA0oIdvOFJ57c0cbEyNJRMkJ/CW3Gm9eM9LFHDOqC5U2WzAXR9vyx0G9FR6OHTynkHy7ghskc9RZ/rnng3Ru6KxlioU9mx898IGcoWR2B5FdPmyMl1Grkj0u87ywodevB5Oam2bke/iKkomVF28h7sEEenr74mCMI/8AFl2iK78O7X/eAkyTjbMS7BbU3yOPyxUbGMyzxBjRF7qtsqogsGPTokN2tjpt6sL9P30xepXSxs53PSggFl6HufbjOEqmn2iSPaRQRB0H7/PErJEykqpsLQD3X156/n0zpS2yAUUcLMpEjSKKNMf0GNX7PiikDmRUKg2WcdMQ+n0634cgUUKs7iThxFfGCEkITVste5zO+0wo1FSFUEijxuAg89UCOSKwNDF40TXqBVmlFkjt36fORvKYxQsRiuN3A9PfGLvhW5DVt5UQ0x+e355OnQaKW0ZVVCSHathiGqvnofTPPpHjUPaqoXatm9v584mNfGAWQkB+Sh4UEHtj43/+MqQjnsDd4rsYmjDxBmNbeKNcX3rGS6iScUdiC+SpI3D045GPGo1HgSBmYgndQb8PXvXt0wJKCCVEA3AK+0evY/8AWa9MDp0kLBWqtxIc9Tz079Mf9xfxIwsddabdRPI646CLTCUPHFKLIMhY8Ae3oP1yldPpS9NM+9T1LWOnXEctN0RrF4jhI0kJU9VYAEet9R+eJaB1fZE1kmiA1iwOfreaX3INqag1H8TbcloQoNevpjVgLSCGTVR8ceUEcd8HIGEUOnVo45LYnd+EHkk5QiiKYGE7DRUrf4q7HteVp9mLA7+A4duh3nr+eek+z0SXxVcpJY3bBYP1xXINonjbSl2Dr4fYhBRN/p+mMOimKkxOoBFFG4J54PpdX+WVQaSFpSWlBo2200R8+2O+4RyIS8xY/wDEN05zXgrekLuzxxpNGEXd5CBYuvbjDgMjyKjVt6C6o/XL30K+Bv3UydCtHd7YEGjjIMpmFnlVArt1vA2a1RHKCoE2/a61bAn9jGxaYzWrp4m574bplE+h2wgxz+YDndd+nbFaTTEuXNNIpO6jYA+n6YLNhxNBEItnikbz0Vr+lZpR6ZPuquzEOo2gizXOKkgjinViIgVNheOvxWEdbFFpmjO3xS/VuhwoR70djEuok8aSXft+vTOfdzIzgzgIOKZQww9NLKiLvKFGPIQdPTnCcRlmXc9HldoG34sDGT0BPL9nNDEqLqGYkEM7eYkdc7Kka6dWBYBCblJ640yUixJtCtffcXP+BiUQeKZpYFKDhXkvdfx3/wBYG9G8PQaWVZVlkUsjjglhTV/TDGiYyECYqpWyKBNYYkLiyCVY0rBj09x/bGwkoTtUPtI/mskf2zAAMCSRLEJDQPlDCuckfTPHbiRb7gCr+mWyzESPJ4ZXjynrXscNEGs0pZQfEI6E9e/XAboghgSA3Eq+egK9O+ULSbaU7XNbQ1Y2LTz6aMBYwXAs+hJGcUsoZXZF3Gx+fbA0/Q3YyS1csQQpHBvviNFsk8yyKlX+IlnNfpjPG8zKofyfu880pER8qBPxA+p/vmS22DwnhqRifFf8Yq0FEXfzd46f7NMu1WMfDWhNcD/P1zvibZaaEGz5q6EeuOE5O3YgXjgbua9eLw3oNRn67Q+NEvizRs5PB2gmgeg9Dk/2bAmtn1Wnn3Rnb5Hbnmr/AD/xmtNI+x1ddykckjk+35ZCs8Om27lm8Paabk/v65k6YVsaJxp3WB2Zk2kA+ZO/pnIS6sIZdYwII2qF5BJ/p2x8Q3kzSglHFgX+Ef3vPSRgsJQzbdw3c1uxXaZRUzn2lpCkgm8RZGc7hIxuh179MGCITmPUQyld5Jo967D8+uN1ukiKxvOohWRSOhqvT+/OKgK7WiWGVb43E8KPn0+MDf2ZdHI0YzGRJSGF7htBAPXHjTIo8N5PNILs31ylfs6IfxkNO7A2Df64LxRSStGCd5s7x+I/pm0FpmTOrCYKsllWAqgTWUqJRMjNSkWN/Dbgel++M1Ggh0yq5czD8LWvIPrQ5ypRDp4GnIVgy+YSNtrtYwNsa1WCYKh0s0MrSuDQLhOvJ6D99M74MjKipGaU7ixH4vp643S/d9QrsiXu8oUAV69PX3xsThQzvEUYnaA/X5H75zWK0D4LtsmSUxsRtNpQrpk8WmZZXeKEMzEgMpFk/wB819L4jR+JvVgF8zHjbgGeCSSRInt9u1mr8XxjUqslbsztNpYk1GxgpkPLMB09jzkmp0vgTN4WoPhbTtIJsevyDl//ALfseSQShS48wY87emShEZ9qzKGIKrt7dBzWJbLKhsGiaXRNEsx5BI7kehPTn2wNBpFm10ZeUsqUPMas+g9Ms0emXSp4YYeGFshgbu+ecCYJ4bGBKdrUb1NA4yYvdoq1S7dzMGVW6qx6cfqcz/CjjHhWGEoNkcVzx04yxJhN9nqJCFZTbNVjrR/XFBodREwWSgF8pCkD4+e+LKTbBFUiCPTUQk+oRIiQAtW19vpkmt0ZOoEuj1Q8po0evB4IHfNDRwwCRvBd5PPtcUQw9ST6Z14oNSW3qsbA8Oor6el++ZsqsZDB9ntCw1EjSFinm2HgD37jORwR6jTF6maSul1Q69LOWzLsQIR5evY32J4/fOchVNNo40MnmLm3sWnxi8mN+zHTTSF1jlkWRomqh2Brnn+mXnRSaeaw4ijMdsdxI+o5wV08Os1RJDs5NeUj+/tlBgkihigeTynkWLJF+o/316Y3YzJooli0rjxPFkk/C7ihd8c9fyGS6rTD7S+3dDpd0hh0KmfUsCQoYik2/qc2I49FLLGy7Y3YeRNhYmup/TIItUy/b/2o5YLLqkiaEOCKjVSt8dDu7ZT47VtfRGeug2hjXUqUQyAixR4Hzfr7ZXsLoviSReKpobQQoaueuebT6VYVnVGeQjazHoO3x/TLoX0+nQOu02KRVot8+nU9smtQzlXRTo9N4UCieGFX3F1KWKJ68ZxNLDNIxqRKO4gqCGN9AfTOQufDveXNUWbgkjiv9Z6GbwpbCjw7JG9qsenPucpawhuio9FqzrG8Jg3BYbibQ5yXTrDui1eoAlkUFu559Ceg9+c3NNKpTcqgnse5/wA5k/aEsWp1RYSokcagNuAIbnpRy04xjBMSLbloiaBTEtzqyrYWxyD89+MnjDzauKIF9jDiQAcAex5zR3CMsUBEf87onHwD6+/Geihj2MQ0qB6JULyB8+mTTbZTEho0SxkkhpHoBJHsKPqOn0yZ/sgaWAqJ1ZJPxptJA/8A0uoy/wC+SAOITtCAKC/Y+w7nEeMREFn1DNIWO2hQrr6XlJcUia5EmsgWRYYE8OJVNkoLJHa7q8QmsAZipZS7fyHhvkVmhFJUPgIDuLXuYEcd6JxTxPDIxjeKPmwABZHc8fTIO2Wi10Ik0wfUhhqEXnoWFsfrlQijgMazyDUSPwLAAUfAxC6P+NGygOXXlWax85zUxO2pU7XYDzVd0T6DMpNIzSb7ORxxHxlTUOq3exh1rHNDD90GnmZmEYsP0sehOKjEm9t0m6mIXafMB6H9jCnj4lCq8fFbSQb969cykzOKs9GsYlednd0YhSUWyOPUZyGGtPqIYQjLuFMosgfke+LKBYRFGitKaoJ5TzQphf8AnKtOHVdm0xKbLbAW57+9Zk22ZpJHpGUaaEbwzKxBaMcD0scZHCsOv1yfxPDmDMrsIuvxY46HtmmYJIlR/EiYAWoZTbduK+mKeWPUP4KxLHKwIvgnqOcqpV2Tq+irT6SMSPt1MgJsEOhv5F4s/Z0BkVoywdQQ0h6n65L9nt4UhgnaAebaCpYHt1y9NLFIWokSA+WpKB+v7vG7eIR56HpdCkGnaKnO7vuu8TqPsyQaXw4nUL1/D+7yhpJFHg71Lqfjj2wwoviloUSO5+MtjVUJtmOUR9skMlCPzEMvU/HXrlaaaRtWJmkZqAFEbRjNRE6TBvEZFU3YrpR/fOLlkeOJQRI3iMAGrOdLi9K9nodMquzo7Irkg3656Ni7DT7yAOdy9b/vizNHppQEYbnPxXHSsp2MkLbQC9AX6HHjLwRxOeA3i+JNMJGU0oA283/TEyrsMqF2YEcj/jlUe1YyG5I4Y3fOC8O7U7aPHl9AfnNO2jRpMhT7M3B2ZpAm0FvLYI61+xlLQxuUCWStbCBwK743VA+AYWJXcNspqr+fpndLtR6ZSpUdx5VxVSkkF6rFxD7xqC5LsV/C5Wl+nr/vFLDNBp2jJQhrtmNgfS/S8fqNQ0YCRRyMEcbmquCOxyZ2ZH3kOQH456VzR/XN8k9wMYjp4UaEREllQWWC39AO+MR0PCh144sViQzFyYYqDA3XONaJYmVlUBQKIPJH0xeTZqSOTI5lBNkV6jkd88JYCCx8oFbeeAf65wog46UDSkYtY3jKkyMxAqytVirND4d1zqNgP8NnkocEXx+mKSGirlr91Is+/ocr05kIbYwbbwf5q4/PB3yOfKo8o5sVXtlLwCBTTRrMSJmEbAXzz9MZMqwabwhKjc9uvxWFp0cIEdVLlb7fsHDCTBljXaKNmj3ysW6JtKxXhoChebegI8o7fXPSw75CYpTHI3QbbGP1CycpH0IvjCRa3eMfLQNj+mZ23QMogECmJ47YFuS9E8+uO08CJFZJLqK5FfplcqRCyoBIG4kdawACQCWoEc0KxHCnoeRFLB94jDCuWvgc4baUsqnxNyrwqsK/X0xjtudmjXc3T2zyllkW03MP5q4GTWYN2efROy2k5RiKbauEuiURON25XPBA6Y2NnYtd0Ot986zqNquorr065VVQmksWhPCGXcoNharvlsOkMchlaRnJFUwvOCoozISADzZPb5w95EW5dxB6FRZy3xpRQstAeEQxuoDOjdFA6ZHJJH4PhnUF7PlQrRGWeK4lCMHK/wDI8HCEcb3Y3WeMZzt4CqFGFNSYnRgypx5ebI985qNO0oUozRsvRl6jnHxhYzsWuOAo7YUrjw/Wu57YuPQkkUaxsZJXMjf8j2zzaeRpKicrHIeQFv8AXFSa5FO0obYWRt5A+MpTURbVMLblrij19iMnD5E/R3FonOlUwqu7y2SOP1zO1yRSyLGS3iKbVSv4v7Zqo4mcuAPKaPPTJJ4HkkQbWjJXqG6G8l8mq0PDHpMIiuqR4mdHCC2A3Ae365xpnXUGMnfHODE7qdu1iOfrmkkJLCVdzhhTL0o+uZn2oup0bvJC6osEbTygvdAC6A9+c1TisGXGT0ph0sus0UW3UFopI0cMa31QoHGQ6WaKeNGd/wCGP5ujflgfY6SjRojxhGRAvuOM0A0qPta2s8e/tjKpVIR42ifVUN03jrFZon3z2nRDpQKAVjZN8n3yh4fHhcoNsh9rOdjUR6ZASN1UBuu8dKXK2JlEw05kUtI5cDgKw/K8XFAw1JkjkA4raFvLRIGjIYDjr64ClwysFVUrzc7f+8Eu0woTFo3UOHPLtZrsM80UsGm2iTe3TjgfXH+IYv8A9YmRueqrQA7YqNlZyvLMn80nOB1VGPQMyBVZfMO4XnHltjs24gEfTOb1ibmhZvjm+O+AzB4yxYqSCBx1xliqzdgTtGdK630Wyw65KqzyaHc5dY1821QCCLxxA2kNIRu9unph7iYmRAr/AE5AxFMagBo0lkWWGfa1dQvXPfdfCleTcW3rzXrj42IQVFTVfHbFsWWFTuof8vf0xnVA9JtPpmMG0OVvqp53Z2TbxYkQR9GrocrRy6klgVFchevfjJdVMZXIjQsEWxQrBN0rQYraGaeJUcs8jSO383thw6dNKWG8vvNgf8cRHJMAAQQ0fcj8sahL3IzAcGg3BHvic/DcQ5pwkLeXgjg1ko0krJazGivIC8n/ABjvCAO63vbZs8A56NysQ/i7lI/H6/HtmbfpqXgtoPFgQjdH4YFE8UcVJEyy+ISQSPOznvlzW8TMWohbquGyTTRq7SP4ZcjoLrk/v9czdUgpWAuhCxs0cwXcORV43U6bdAgQp5DZNWTnoomeYSyIRtvaPbLJnRYgAw23ZIwqNxbA+yUw2GkUsoPFGyG+O+QgqJJIy0sPcx7eWNfXjNK1hAkFsoNtz0+cLw18TxQgbsBdEe2DsPRLDp3fRUqqHZtwO3nGfaMIm0oUqNwPO7+uPaS1dQQCOAFH988kjKyxPXJqxzxhx4LqdmYYUFK8+9E5CsNte+OMckgWZJArbQLB3Af6w9WVacxx87evN84G8ElKrvf+8g3UmiyVonEU2jDyyyFt/U30+uEHjbQFW1KbSfxkX9PnGF6LEdenOCywqkcd7QvJIFdcnfY1IjneMxx6dSzODSlBwDz19M9ANXLJHqJfE2xmmArze+WkoG3rGGXb8cc/3x+nVmQuxARmsKOv55knZnVdE2rm8FSY5mG6vKefrz0GM0sZGj2LKQWIayf0rGyQCUAbY6Vtyk8m/TBCv4hHG4GySMqm7J5QUmlWUK287xXI55z0aQRq7lzIWFMTxWMlkZbEZFkfIxMgZIdxNg+4oe+ZyroCVnDoRtljEg8GgdmwdevBxbRqyRpHKFWM+mGCNjFJLeqroD9MFHiDeFIeRfB5J9r6YrlYyQM0SRSpPv6cAVxXr1xagRSNNbybz+IDgf5ymYMqqFIWgWsi/piWQ7Yx4xUiz5Twfp6ZJ2mMkhySRxkq+5WHZhx69sISCUX5lD1dLVfnkrRPGoUS8Acj+b6nGxyAed1DB+ou+f2MykzOPqGTbmRljkbaR/N3yGLT75JVWUxc0SBd5csgkZijBgCQ6Xgxbd+xfwDkD245vG9B0B/7bEdF4Lfy8qcT9xaKeOWSQsVHPYVmqa27jIKUXQGIdo2URSAU3Is1Qx5RoVSZBtc6mVg226qua96xqNAujkRZFbdZZn4zk6FZGEJPKVx6Dng9sTAlRNGEfePMN5sfn6/5ybbsoopqzywpOUkkmuJKpTnvvDfffxAGgoVjd8Y9qaPYlrYocdMmeCTcyLNci9Dt74rbSwKivS4yKlDxd7Mp8q8ZHHolZ5ZFmMa8Ejbu/qcGXesylSd1ea+3FHBSVxGysxvsaon4vtgUvsbhmASxQLp3jYyxs7Xv2Ch7fnjYYAUTfqHcxgdF4GRyGR2BkWSm6WeBlQ3eGHY7QBtq7PwcylWjOCoZPJC4djI0Z9V6HIfFji8fwSxVSAzr74IgDapfvBc8+QO5JrvxjdasQNCRGR23X0H764ObYygk6JPF106xjxVj8IWD1IF98ytUSWY3JRpt7MGBH/ebKRxE7o23LZQ01g+vNYaaZJ/OiqY9o3A+Wu2FSaY6aRD9nyzamKewx5oMx4PPrlcSSJpJFeURvKjRiR3peRXfHabSwRz1AwjDiy12Tx29MH7SQo2mBBvxCb5ryqW5+oB+mHWxHV0dSL+GsXjkqNvCgD9jC1fhSDTwxSBfDb+H/E5PqMnikjXTrPMvBHndb8x/xhjY03jTr/CiI22lEH998FuzcEXTIyNHKxDUeWegBjtOiGRnLqd3WiKv0vI5m2GmjZ4zyzdRz+uTSfaWlEZTToFCkB2rkH29cbm7JOFo9Lp3hYoojVZWssDz8CzipdITp1EJVHbsaNfX0zkuoh3qXfa3NKV5wi0fgCQPKZG5BPAAvn4+MV2x+gwpGmRTLUzUNoHCgDvnY08RSWelci2Cc/GUzUi34KyBhQJNMPk/2xeg0xSQLFK8jdWUjF/Rsqysx7ahvczCr5+hxI04gb+JMWVX4Fd/32xsKy+PbmnW6I6V742SGOU1KbCm2IPK46boliYoQiCZzASm7utUbxoT/wCOwJLvJxI3U+2dcgw//HVGZRXJ4wZX1AhCmF+TTMOarCmzUmGwEsKhzsEZ/Ef5sGZhMqOsoDI23bXUeuDpmEibhGVkbqKHA/PPFHMjMsVKebB819+DjOboXikwrYtt2hn20Wuj8/ngxl1ULNMFO3zEngn1xunZhIfEIZW4oDt7nOsUdfBeHdxwa464FGzNkMlhQUXcGIWybr3xcQP3zbKQJShLGuGrK595fwWhUIW4IHJOLZqkYTSFSQBRF/HGCqeDdoinjmbc6kyW3m8vP+sFdOXPgyTGNUHf+U5WhkbUbmD0RdAcEjtlLlnDCdQwvyj0wK+xm6wm1zhpYoRusVZPfJgFE51XiPO62AvQD14yyWVmYKAaNluxBHS8hhjKxnTsrvKtn8XBwykzRSoGVNQql/FCpIa8Pb0wdSEOnjWIG1IBCkA/7y1WaYXJAxJXkE5HFophHL4oKMx3Uz88YttuxlXpPKWb+MiBWs3uUkV/9ff6YxNPqtRtkhaZFQ1uXjjOyacpAjFF9tpoWfXk47SDw7klYs226Qm1HxhT0Zu0Sah9T94QPO6ylSBvqz8+2QSRTBW3+EW4tBEnJ9z1yt4YtSznTS76O4lZApJ9/X4z2pdIChqN2eO2ZRYvjrXOPbGVILwZSkStpYlCjaxHBr1HOA8UKzM02nV1PHlkZdoPfvgxSaida2tHaAnzMBXt++cpRFWKRFMsjA3v6334/wAdc1s1CY4NKI5ImDci+CAT73WPMenXTLvfUL5RW1Vb2vERSGVPEjXw5d34x2HxjnIkoq0g38FqFN8f94U6FaOQNEJAn3hyqXbNEa63VDKk0sc8zoNSRfNcgEexrJY0AklidX3CnrbQF+/fPLPKWAttgNbwfwiul4XLyheHoqT7MCymXSzMSTQ/ihwxyiH7M1SWywMC34jtv574j7wBJ93VQHQgLuHUemGm9WYyIGDcME42/OZP7C7FyaDUCrEpFMB5aH174mXSzPGupIkVlq0CE/pjZZNxJZ3XzBlonix3wopQ2ltppJD054Ne2a7D0N0v2c8ymQ7rPDeTp7YuT7PkEp2pJVjqlV2yyNtYulSbxH8KyEEv8x7WPT0yObWTbNzMydAbvaTfUYWkhVbYr7nqGVtLsLBTuU9a5/tiD9m6jxpGAMw5olQrX2od8pLokMkqqGJYA0T0v0OIaJIdzcqeDXX99s14OkaMQniVmmYruHCsaC5lTl4nfT+LCf5jbAEk9QMPU6neNjcA0AAKJ4yV4fEAWNgGB/EWuuMCZlH0NtLCBuGojjKXuQPx09Oc7pdOk8ZHiAmrVghFfSq7Z1NOYEcDybnvmjY+e3bCWSIxgJRkSwNzkDrjWxqAj0CE2Z998FhGa/XjIptLG0ZQFQiMQwQcE81ls0ZlRxLMUYHopHB7c3yMhaf+G4Ei2zc7V4JwxbZqJ20yRSKsaF1fq3PWu3p+uG+lYMnjUzhQVKvyL7V3ylpN8u7basAxbcbU1XFZFq2l3ArP5NtHYp7nn+nXKqTbBxMeIzMbQW6DkUbHe/pj4gNitIGW+m7kg+wGURxJYIYbRVBSCx6816V9OMVqtm0AhlNdCvv16Z1crdHPWHlijmZowDG3Ju7vucKSNTEplcAdSyjj2s/vri9OsgidmbaGICgsNtel+mXeB4yO1ovPAXykr/n4xZYwrREK/wAERKFKU1lhY4/xlsekjRLhfc6Dad1fW+Pyv9MdpdMGJ8OWMR+UHdwR+XX88KKg7ARAoFO1mHB9hzkpSsZEhChAYrt+asUPT65aPs93gV3nog0aWibrFKpIDqw2j+WvKPj5465V4/g6VvEKNIw6LYNHseeMBmzN1cIKFCz71HRQfpxndKCshmj3R1wQVBF3QNG8plmKjwzp7ZlA3o1X09Qen9sPTy6ZJxExnaRhZe0rjpXTnDbow2Jp3VUcSEXyQ/DX/bOmMxI4mlijZTUdN1Pr8Y9Yfs+Ms8zamOwb27CF96HfFSjQyhYQupdCfxKVG70uua9smkg2Mj0mqaNWjUOrfhZTYJ7mv9nvnH0Op0pQTSWwFbgOQL7enOdQafwIfBm1RCNZUBTyO4uuP3WeOrCoyyWGawt9Tz198D/QFY2bWSswRSrKeAeVAHt73gLJNLQSSRUV6ayCDkzXNqFjMoh3HhZeAfbp/fLEkjkRtO0gYjunH7OCg1RTClvvYAHvSiz6Uf31wokjl6xG646g/XJ1coqwBGYAeV3Nkm/bNDTNuAV3tm7BeBgEYiDStIzxtLsV1NbRyOfzymWKOGIHUTWSKWh0PvipgsUrqJAP+PNEZM8LzRt4oLEfzMfqD+WA3YT6pp41ggtCKV3YbiefXpheMyahiZpwevHNj3HbFppNpV4zGoUDcC1D1oHmz7ZQY2UEmEyMT0/Cnb68YQ4Mj1E0wPiwmUJwd1CvTzcHHRaT7PaalncSUfI5Dc/PUjI30k8jHfqZIr/CLoD4rPQJ/FKrBvc35wfMfjMnQK+i3VRahmAjJljFjbGRQ+Ri0TeuwJt5tiDV+3xhTaSN3WTUqTIRW5DV/TvlKWg2AmU8k7uT+uGhbEaeKUBiyKoHIYnv6e2BIxVB94JLA8yXYHxjmkJYoNMycVuU7r9eudeJ5FJMvPDABiAPoePyzUGxSfwzUaqVI3cg3Z75QsB/80r+ZRQVea9cW48NRvL7e5B5PxXGBuSaMspYqO4/mHocBgwwlbZHZjLBfwnt15xscRi8iyAKCVJNXXtgCVnj53muF83PPOCrNYEkZNnzcV3/AK5gMeJSoMb7ijGgQaI/1ndpll81NsFqT3/zi2RXIVQ1Hpfb5xsCNDKVUEr/ADGuxvB7oPMJpEdZzKykgKbAPDfTDi2amMr4QJHWNhYvGNp98RHiDcDe6+3b6YuN1WZkkl8zWQw7cXRxg9gaosjpzRav5R0ygNqI4TVsAP5R+ntmdLqXkmBi/E4ogjr72crkdGgdfFjYkAdgRWJYWs0RqjJLtoi3Fkbqr6jFwwyQqIpB5bveDdD3/XGTrsjDbQSq7q/41itNq0C2zg+J7cXXAJwe6MusNDTxq0MgQkE8g9OcTDp1lmZXNAoXEhHl3eldQe/1wY/tJYI2SV9u0EqOdq4l5d7x76Arcdrbb9OvXC+xYpjJSW0QMmrJr+QL+IfXn9cKPZDo1lMKuXHCtQ4/f9cignBcmZfDljtdsj/iJ/d5VFHegG6cUrVyb4v0xG2UoOFfEA3qI3LAhA3X9+uWRyeIDvQDpTeo6YvSKqt4jsp5pWN2OOcf4AElysGV+q7Ovpz2wx0STViLhVgvgqhHm3jji7r2zzK0xSZwkKXUQB3lvXj/AD0y2JIdNFfhBJF/lA6/TJtRJCZAxDEkWHCiq9BjuK9AnbwiSzqFSRywJNNtpf06ZY8UkMapHHGrHqWa2Av8Qvp+uLh1W1q05jD3XnQhh7HKZHLRkiQ9aY0ePXEqkNJuyYGMRCKccFiX2j9/F41NokQws/h7aXzEUK6HEzRvrCGhDIVIAagd3z9MJ2dYRG0MiFDVGO796/3WamY62tG0g8EnaQQSCMS7LcZjiPi3agJyff3z20yuI7J2ivwV+fTKtLp3DHw+Xqtx7f6wLWZ0kURtNsXfEoBBs3wMTqj4QDoQqkWEq79cpCmljssQboD8IwNXp4nYbpWVVqwnN+oxpJ0ST0iQmgApVrDBOAM9om2MztEyqzGwCL6XVeuUKjTSsELeEgpbNbqxcSHTruMhSidi/wA2LRW8ADafRzUqsA5tuOV+cerI7yDZtUH8PH7OSzrUizxqoR6ssbLWelYzVRpErFwzLIQWKeUH0v8AdZjEmohj1TOVDIFFEKbANWTi4/swzPSRlUAG0sSX70wvjNSLQR6WIPGu+ZjtVQ4H9fbJptM8U0Kb3W2LIG/AAK4P0w8GhlO8TM9tHqIyYlYqXk2t2PuDXTpjB9hyapC+kmQhT+FCfQdb75dJEdPKdQ0YcO3Lxkgt8gdsedQIy0oirfQLRnbRrr2wql2aU2+iCT7N1GkVZpJ3EzJyrGxEBzV3x1zA1eujg/8AUGkcXJLqtGyAhdpJ3cEfkec+mm1xC+LPErJvqLcAGUe/Xv0PF58p/wCoC2s+0NFcO5PEqJlkBdVAtvN+Xwcr8aXJi/k1pqwfbL6vTajTr4cHhjybwAWr1HIvj9c0tMs2qTTkoiRScbUUgIQR+lc5gNpprd9DrNT4ZaiJYFcC/wD8tH9MsgaSKBVeWRpIiBuRrQrd9OoHX+XElFeDm8HkjHh+GGF3uqh/vCjQFqcPE78Dp+fGQ6PUrOVn02qjkmJPlifkHsNp5rKo2konWE+KG/lG0sfp8YvSJssj1EUUHhSSAuAQNwv69sydTF94jWINdXQZjz9R16Zo+GvgpuWNOa2kemZuqHivuhI9F28kc88evvmcm6s0FpfB4kGmOyKlbqjWAB3rG6STVKqsxKqCbHJ4/dZL9nbEl2PvDuKCtyB7+nXK5XaNLeUNXAPpjK+0CS2gWkZ9RtiYqqmtsfS+9/OFqFR2FFlKngMQATWJhjWOnRkAYnyXz2/K8dKVmdYFIDCiSaFX1+mZu+wdMGJpGChEYubVWkYfX5GCkM0cyagMVIG1lDDzY541RNjm1vgj/WTCI/jW7J4tqBH1OBtoKpjTKpeWXTCJnDUfL1I7+ue+8K4UagDrT7nNXfb/ABgQ0LXxlZlvepXn25wZZGSaNI7WOrLHrgUmGkP2QiGz0ZTZ3AA52PTwyMrxOALpedxPt+7ycRovVQyuedx3WfX3y7w1iqJKJNeYg0MydivAGl0sAGyOJWSmZXbbZ9evXJ/KZg6tShtx4oNf6fsYYiVN5CBassVAv+nOKKtIw2slkWLFgHsawOQYoPS6qSBwChaFQdtclfcjrfOHqmK6uMwxxSNyFkd+QO//AF75xS6bQ7Iw6NYIJv2xS6eJ5KYKoDAUo4IuhZ7HDyfRqV2dGlkOsE8CRuENUHsg/wBOhy9IpizGXyxoQdtbdv79s8IhEHcAlkYHcW4uuLwTqNUpXxfDMRsMWQ7j89gPbOqKSWkW2+igCJNsjEUBwzNuv64yASsviOLZuAF5AF5KS80YIIVEQ+UDbYPTr+6ylWl8VULHaQd1A89O/bHjJXYjRQsPheJJGd+7t2GKmiLxF3B3AHgds5BNG8dQOxZgGro1X1rJtdqpwfD2vRIF+l9DjylFRsCTscfBl04aQqQnJNdT/bI3eR0cwkbkN7Q3DH3xet1WrghtyHUcuOpHwMnMJdUOwTFj5gt7T81/1xnLKdstGOWyoSy6dC21t3VhYv3s/vtjtLq9QZW8SAAKu5SWPJPbJ5UDeRVeLcpbcRVehLce+dEY0reLLIlp6tVe3XrWC2nhmkyjUN4rKzRsWu+TVZ3QuzJ4bwt18zE38D6YU4BjMgIYlRXtiY55EnpFcqR5iDx+XXDdTtgWxoYdJIxHjTbgppzt4Ivp1yV/Hacb2jpm2hVWr5469xmm5G5X8Q3Vel+9ZO4SPUo4QtyOAL2++GcV4CMn6E0MKScuwAFPS9D853URHwSY4txNFSW9/wCuMi2sJTIAwBHBwNomBTcQSAbHTHaVYLegaaRwbcoIw1N1652GJtQru0jDkha5v3v4wFi2yggM3lFj0PxlKq0Ybgih07n6YIK8YZP6JInlQMK8h4DDg8ZyBCkjGRQy3a7O+NeUQRU21Yyaqv7YPiRudsrCutr0HpiLGEoedCbYiMmxYHIwYzJG5py5rm/XEKQpHl4X2Iv3ylE8Qgn+GR/KPxHKJykxWkg/GDqGUsCBXHTFF3aeg3A7Ec3nIwdODHtNrzuXp9cXFNLIfE3UCeQF5zSk8syQ+KRt4uQ0PbridQ6iQB+/Cnsfa8ZHKrMobcSb7cfXtkk6ySrsZ0jPiWu0E+X69/piyvjgYrQJZWW2RmoC2/lAH1685TERLAGV2VhYCDJPASGMI6PMCfMXbdX55SgFhVjIHZqv2vIRtdjuh6bioJCqrLQI5I9zgwpKGEcouvxmwKxcYXcTe7+Wz810ylkURsVBOzzUDeXiuWk3gxqZUETeVTzuF37Zx3pd7gIPRT1zyzF0DooC92bqfXJvFUpIlb1HI3dMrOaQqVlEQVGtub5u+udCecgMT89MQkqmNWBs9L28H4ylQVVieT3J6YItMzVHIwobzCie9dc9PMqBVHB9K64oyjlGIU1xi3DyT7wyAgAhiOp+PzxHKlSCo7bFvDIk26IoALtT3989Lp2SMx708NhzQqj2z2qmZNpG3dzu3H8I+QMzdRI8sUelidL5G4A0PckHp+6yEqWItFN0P0Oqi0u2CSS3d9iqw/FX9eP6ZZq20cshjYL/AAiGZpDsCcev9sxI9IdNOg8cLMHDByvlHtRIJzXXSaeWfe+1pg3JlA8x9R26flj/ABN8eLD8kUnaOoWk1Ea6fyRqpG8rf1FkV+RwtTpvsvXSBNVFBNIgIBflvU85Uo8ON3I/CSWGQ6gCNjOoSPYxa2b15r4y98USX5MKD7QVtfPpHBWRadWNfxE/5Dr0PB+nrla27MyDdRPBJsZ8/NE8sxlMg3IN3jxja8T1Yon245sHoc1vszXPKzCdozKihmKIV8RD0aiTXNg8kWMWEk8DOFai5ZUiFvUZ6k30yZ5AZJFvkGyyqBQ9cc221I5YkkE9RnJlUJbXIP8AiO+PK2iaFFHskNS9AR3Prkmn+zjLIT4pZLBHiG756fTKZnHhgMvhG+B1v2xEMyorFRL5xzxYHbOd8eWlldYVDTbI3UkbLPA6VizIignaWUdgc6gJ05JBcmh5fT0w12xRqfBVb55N1jpLwT+nJ4VcgRsQR5r69+l55xtjC1dE1Q4w5HXYNwAB6D1wo5QysCAVrscZqNgtk0kbS7Vi8tggk9KzqwGNSYgS34WHTGMGpUDbB3F9vY4wMyljusrz8YsYILbFKjxTechge/fCZ3sARqVPfti9UplAfxB34PHGdMalVKq3I5rt75tWIHegaiV4YimnClr4W/0yRdbKreGw3F+CT/T3GHOzQuJGZWjcDoDyczdU8jahtjPILsEigPbJyk7ZVRVGmqLFMp2FgOLJ/D36Y9HEgc0dxvjZ0yGCaZwqlAo6sCcZCjtqBu3IVawR3rpk4vTNfZdGriIOWIB6+gH+cRqJFVvCaNns/j/Dt/PrlIWQ6gBvNHZPHY/4xc2kDahmlk3Rn8Kjt9fQZ1Si+OIkmr07ppYinib0kU2Rta6rqSRntOgceNu2eINw4o164MOmaHU71kKRsDuRiCG463XB6YbyHdtQqp4LHvXoBhSVaZ/oIG3CI241/NYOEpJfw0W65LXxWQyaxkcxIj2b57KPnD0BKI26QyhlB3kUevHGbkkzVllTCNiyl2tRzfQZKZ3ZhQYRr5VBPQ/XHgJKbp2AFE9RWQv4KaoopJLHqo4+vpkfkkUiijwwSXDkd+TnoWQTm1azwWb+uA8gDbCrkMKsDgfBzqna5V1vbzu7nJJ6ZrCfxGRnaRzuB/8AJ2bt+fTGRNtioxF29br8s8xvU+H4e4r5k28Xf98TqJTFqWhKj/8AMRZ/z/1i6nY/eATgxqF8H+ITfB4PoCeMIKzRhnBC9CT0/L1z0rB0DKoZ2AAs0Pk/TFrJKlCJFJ/5A8AeuTa0ptDG00e0s5oPw1mhfplMG2Nmij5U9LNgfTJnnZJNyBWWgBHRsnvx0xiSl3tAI6/CWPX2+MdNJk5JlhjdVQbBQbiu2cmYqdwrdXNjFosjIpcg7WIKjuc7N53DPEoIHWrOW8J1opAPNbFW7AC/2cARiYrudtsZ/DfOOO+MbWS/+JAu8XCQm4RoOpHmHr3yTrocFJVhDSMKVmplI5vphyuVpDFYb/7cjPOG/EEtiRvI6H0/XBlLeUMwHUbSOn+MFtIIMk6RxbWAAJ/mIq8GND4wMkffjngf4wxHp2CIwl2BQOvX5zpg3lmR2CKb5H76YusNpCiVeRmaIqzLRa7JA6DFMPEcvGgtvw1zz/nHeGTudkIZEJU9KGSrOyOXBMit2Kkk88dL49xiMeJVHEVBd22sRQAAALV374xJGbZtZI9wN2OTnm1UyQsVHJsHj+2Qf/rBImbaAxJA5DfJ9sbqgJXrNGNplJBUFSOCT0+mSS6lhLHHIVDHm6HH19M6ZJFioxgFFq3bjIY9YJZjHMFLA2CeCBgcmNGHpcd4bmRuVrk1fNnOygOjyC7UGqNX9cWkkPFvuNApX684EkzKm2IOx8TlFbg1gsyQ6AlkDl3Ddjd/TGvAqkljzdsbxUZ3RqSz+X2HlPpj42Z3FD2Bc80OmNjFkR6lUWVVSQhk54Pr064qKNG1HntW7AGgBlksCSi2qru9vQ4mTTy2qglthveaPHbjJJaPGWUQfaOpXasUYcSjoRXI6ZdFpw0CfhLG2Yqb78fXJ5EVAR4aLuO3y82epzugQiMJEWPNgKC3rwfTG/Q7/wA4FKQD54yWK0GWuD6+2S/dmjZvEphVVuus1HjVklkYqAi17LXP55ku3iybY4XLUfNXB98LVBg7O6WNt0yqVALDqxG0DrWXwQuY5PBZl3VbH8IHvgaZVliDujLGEtrIAJ9M6kySwCacFFHlUda/xgj3bFk2ykrNDITtiaMmvK4biuvtkGplik/9Q6X7zLawaeRlG3y2WA5Hx/XKFjUGQo5QVu6ctmN9pfaEEH2impoMz6d4ox0AYEckD575aPeCKNs1NWqCRDFPHsLbvCIA3c9fbvlW9ZAEljRHBBXaSLF/1zG0EBbTpLMFjUKGFL05685orIEiZfFZnu/j65Ndhkqwo1JIV1BIRAQqnoT/AIzLMB00XjJELk5Z0Wz8egwpftCaWQL4TxwoSN/HPxhkgnasbPfDc/kLx20BJ0SLp2fVfeI4SZCnmbYbb/eUPHJEylrHi1Vc7vUEZRHqYwwRFMcg/wCLcMPXDlhacrJ4hCdfKO+Iw34KfStCX025nVirb+SRfUYCePBC4VXJ8TyEEfpl2o1DLGgMila2vXNZOrJvAd24O0Ha20n1xX3gE21owTzb97IA1cIByMseZERZXRFFeb1zLWRdPKUN7iBbVQrNSOvu6irfmq9MeD70nNVR2GWLeZFgFbeKHT+2OADbCZVZOT/vFQF5OEUCMcNXXrjpVaSNo4mUEdCnWsrFNom+xIjkhmfdSRFuK4oYOt1HFBGJDAb1HC9vnGo3iuFPY1RPT3wZVQsV4O/gn09Mfj+OAT3REdtGw3lHHAYU24euOaQhCCD059ckdV0bRqppXfqe3+speVQ/iKA28VdcHn0xYMaSFF/ERWUXR446YM38Ul47EgWhZoeuMklMchTygDnj3xAlEk9dKHTaaycnoyPFECgtLyBwWvn2vJZmjshZCGUAhS22so1MAeGRlXaSCOeR9Bma4EQm3RFtqgV2s+vpi6UikxUP2nGNXqYZmZpCQVA83PTNDVuojRkjuUDjnp85NHABA0nhoHr8Cn8X1zmnlD1GGEdN5hW4g+lnN/BmleF7sY0QvJ4bcXXc9sm1XiotLMJJOpZlsAfHtkc2vS2eKRlZDR4vv85ZFrv/AJDRPO3mAojjn0xlFei8WtFyaeWUCg8hAG4LwAPYDvlXgiCMuHUMKID8kD35xKyTSayUSzbkCWi1Vn098zNXHK8n8FooWcgmzYb29bx1GKNrwdOEgZZ1jRgB+Mx9T6/HvivvGkeVY1V1A6bQevHUH3zupR44FiEfiTg9EHBHe77YpdKUkEosA+ZULVtHH6cYEkUX7Hw2xMUrTMBzG7HaB6XXv2znjGdtjMyiTlkD0EI4POUkoIY1jYs0fVxwpPpkOtXa6ySThGckCNlsD4zd4ZdlSKgJUlvL2UdT2N4IkVmAELVGOKf39PXFxyxxMsewyHwwWOyqx0gjVBGpLEKJCjNXxm4AbPM6eKrsCW22WPb2NYtZd+rsSDwzxxwLyG4kbesm5r/8Snkn1sHHQTRl3qF4yhrpwbGFqkahmpfwZHIItqJ3Hhc8sxXcEBCirJ7jENJHDIysF6h+D0/PDd3mBdlcc0oU/wBcXsaqGq0Ls8QKsQRfFXXr7YdRRruIO7dXWwB8ZLLppYnLCNHsWKYWf+vXPCUGQbnHiA0aBbjp/wB5pKjVZrtqg2haHgJCOOD5sgM9alo/Ddl4YBAKPrXpnFTwwYyGYgci73c9cYFd5mbw1WNwPLfmJHtm5X2JSQZXxwzOhVbtSSSfnJ59P/EEkY3Nd2x9fbCSQltq2qjrsb8RHb/WQ6mbbPV0NwrdH0+uZMZLQwqfjNyDpSoGOc1EQM6lIzLD18zbSp9xnoN4cxxRRr4nmsmrN5Z4HgoYnlDNw34q6+mMFumQSwG/4RKrwRwOnx+mBqvHUIFjQsTTc2B+n7vKpGhYclbazyxo+uSTSq52wyEqhvgc2OwrMg6LlYXbJtbjgKBR9L9Mnln0kCiKU7juoIa612oZ3UyRRDcqyjiyetm+vtk/2jFBNpa2x80VlceYdOKGVileh8HTSR6bdUW1QvBr+/8ArIxNYNKSQPwseKv9DjH2RkFJG8NQQO9Gvb5xM29IZCYW8SQcDzG1vnKRSM2KjZUVQFDsyhmDGig+Ri2M0m4KtMxtQGJVr6V16ZyffNKBI5Kom4CJt636kkX68Y8qyjwj+IqATZ+v1r9M6WqOVOwdrx6dpAvhuwJBd+RyACPoMaHnb+KWZQaXj49vz97xLkuWJielIrde3/XHqMc7I6IPwsbpbsX6dMRjIu3qFgiirxJL3OUqh3wnTfvPhDcSCGJ4HHUCuvvk6I8lBuGThX5BFda+uULMyweIRKwU0fLQ6dck/wBBB0ZkfUfw9sf/ABRSLFdT6VlJDrFIWDuQOTYH5ccZGmvSeVtiHeCRyQOPW/30x6b4TbJKDX4pD3Pt6ZnZkejPM0YBHcih+EC+D1FYzZyIVDbHJ813x/TBRh92YFlPcsz/AMvvfTCj1JChio2oKA4G3viuwgalmSPcoMgC2u66/p1rPRzmSWMJDb8/xK5ojpff4zpkXURjeWPiqNpsgHv+XvnjCdrERWp4V6o3g6wJSGjVGDqSeCDv4JzoMQiUSJUjMNodu3p0yRUP3je7tbKCwXkmh14yuKaCWTcZhZ5prtveq/rgYAvvEboQr7gByK/Y9cckO7TGQm1ahQHNmubGRShY5gYo0ZRa2hB7fnmro1DwMPDCqe3AA7flivDMmWRtyvyNvr3Hr75dGVjZHdSXjB/m9up9frk0ccriTdEU7K6kcjNSFBTDY/TmqJI6cDCLJiY9On2pp0nYiKwHVSKLeh+O9fGFNp4UYxSO/Jtmq198XpYHKAhHRtoXkmyBxdZXJJBIuwqfEB4D9/i82CbZDGDG/jGdyoYKisu413I9Mr8TeFWK3jYcmQ9PXEa1VXZDsZx1q84pXSMJJSb21uI/fvgDV6N1bEqqBLVPwmwAPY5xz/43YMONvDm/rkMuomDSPtBiROoI7nqTWP8As2YzJIksDMwoiz/X0zMNUi37w6bfKQeNrMfpXrhxMqSFmjbzfitScjSPUDV+I0i7R0Aa757nqMtmRkKL4XiXzWMrEaR4TgIyiHyDo6ngm+c94QnBTTC4+552/TB/hiNUj4rqDZK47TymCIxkCgvFVf5YMvTfwFovDRY/DKr0BU7R6fOeZV2U2nDAd3UX9e+EqsQ0hZXF8AcEfNfXAbxX2hQALO4OePjN/Ao4VSNvE3OAfxKrgk/4xgYNGa2oCb3tYJyJFZdzbiOvUdD1ymGzE29ABQsD0rFTpmaH+IHjXxFVWHBKNYGThniZg4lbd+EqjUB7nOSruAW6L8M1G/Yc53SLJ4khJZYkbcvJF18YW7ZkqQyKbartMothwGHb1yYmNA1OiMD5RuFMD6nrlmoErqGDUr0SCRRyechSkQkjBLVu2gFvqO+BhTFQhg3jNHGELUGv8u/SucplgCxAxqhHqfTtXqe+RziTxUj8IXVklz5T69ce8x1EZSTzE/8A3KkD27YoewEj8U+GvQLVP0J9cWunijeO5tqAFWsc/T0rKkjjSMUzlQ1DzXQH0xnhQqVO15tpHpx7+hwxRm6JNVxGsbqrFq3beL+f6YgSSIGaY9iSr1wCeDmpLNpVcRbJmcn8YjWj7dch+8o838eaQhjas0dD4v1wyjQISERTQrGxYq7Fvwlev59OOwyuIodr+YqvDXz19sPUaLRa+NCkjqykPYW6P1zkUW3UPGZD4JoMrRlQeK4OJQ3JFMMcEOlkmaUbTypY2PjHQyqXWTcFCC/Kv4vpiBp5AB4MittrbYNgf/b2xhYRtsBOxV820Fq/t3xo2ib0eZhqHm3IwC880LyWUKI1MctuR5Qa4xi6lNOrEM7irZim4V2rA8WEcE7U6qzcn3zOX2GKFESqwaUNtjo7+OD9OMaiyOWiCnwvxFt1c+3TEnUbnYIGdOpaM9vjGaWVon86yRoTe2Sh++2Iux3dCEiXTli7IuyyCG/F+/yx0WoMkgA3hR5SFU9f7Y2d421JsUAPwGqI9L6DFeJAswCRyiUG2KAgV79rzVuGu0Njcx/wpJJfNzTDpz63lUOnWMcIQLP81cYOniZpmkYAqeQ1/iOUbAFvqOeDlIr0jJ7QUcUnj+LZVQKCkcn3vviZdJK252RivNgiyPXPAkHdyQQKpsF/GWISFSST0J6YzprRVdnE00ii1Ugt18vAH+cjrUCUFiERQaO4HafU5ckczsJKPlXygHknveInlG7gbmYnyDrfpiNJdFYt2QxRFdWfFoh73FbYH057ZVpNMI4/DlhIaiN7rYC1/wAq64mIPHqLCPucgAIN1Aet4kzfaCaiiXaPkUrGh+mCHelJJs3AxTwY/DtNoonmuPjI9Wmp2sNOIzuIFn9R+WMhSTxyHNKRSo3X93iJ/vCosSofLyXU/hrKylaIxjTAmrSxqNSSVXzgXRscenGJk1M0cvinwhDJXhEn9ecIJNLGryyoymiKstuvn4yb7QgklZfCDMEVRwnJPcE9sk/0Vilemf8AaiPLKutaFkmioPIZLSwLv1GYX3lvtv7XUSoHaGMsyIaVWb3vntm99ryx6P7NbVK7wNFGVVHG53c8Ad7BzJ/9LfZUqT7fEY6pG8QhrQsT1HwOnploZFyYzro+g0LaP7J0RhKgTzhWCMQwPxXHXGTNPp9cY4mGojZKkZQLBJ7X0yaXThNYDPLGmwhniBLsRzXQf374IHiKZIIDD4gKvK9eZetgf175F/Y1DRKJEU/aWmjlVXJB4bnp16ivbLIJkVah1e8HzeHN5qHs34vzvnM+OCGWFYvGRmIJdbIFfH+u+WR/Zhh02wyz7WUGkYr3w2xZRR6fXpPKu5pIUToZOQCOnI4H1rLdFoj4zTI5VCKWuVPHJB/xmVo/suCD7SjeWdXG0A7DtN+4+nbnKtPotC0uoMfjpteo/BkMZI9eKs9euMoxeiytKkVaevFYsArM3lpSQv19f0xwp9M0EjA7eTaFCPbn4PTM/USfaOmZCsgmrnwtREu4nivMlE/llkv2u8EN/an2RMFC8vB/FCfT8Q/KsaMP2I2zpWEbPBdRR8xskL9exyuQwAC5XlauCFsE/OZ8Op0kkO7SaqKSKTpGtCRvUHoSRlOj8IR+HuYDbuCHqO/SsVqsM/sZNP5NqxgKwAaxyMQru8IAFV/MqXQzsscruylbAI5986sWxTslUg/y9/XJO2w5QsuynzrtBPmPY/OPaPxqEbEEckV2voL/AHxinFXIZiwZw44IA/zjEl3P4aNJ3G7dyT7f5wxoz/R4RuzBiKFgx2Tf1GVmctaycFeF3dG+mTI1amPYXLL+EdyPnH6naJgdzFhz6fTGeIV9izMqpQmjB7gE2O1e+CIVZKWckAeYla6/OU6qCPUadCF2UwNgdRi0CsX8zyORVbRwO2Zw0Ckc00CJAWMxkdhyS1CPDEWnQlSwJPNgd++MGikCEHwwlAix0Nc9MFIleEuoLsV2hByOvr247ZTg/oVyv09L92R4gxJUEBVB+vbIovtTxNRLE0JVIzuAK8j/AOw5y7Y41caeVwLJW/w5DrJUGpVkDKieVh0HTkDv/bKO+II02UxzCSCJ1BZZiVKbCp60T34rHeB54xTiMWCoHX2IyNI/GXf40kjo1g9VQegHcdPXJpINTLqZikbxRldj+GxA46H/AKyfOkOo2aSa2EaiRnfwWiXmOqavXJpdVDNq/vRilQwRjcJQo683z3/zizCIARvlYWLjLUABXJ9+MDU7mEOmiACElnNVfoDd8dcV/I6oKgrG6eRtTOVXZ934et/nY0KsdsuMIV1VdwAFlbq/p0+mS6JNPHqnlCDx62ggUKHH55dJqSZ1i8IvXBYHkH4+MeHHjbJzu6RLrk8JTI4YqzeY/i3evxkQh0Ot8KMQUyjcHcG2o0etXmhrFWWZYHilHO8Vzur2v+uNleFUiJ07Ag7VKgALQwuCthUqSFo0R048IC7YbiQR+/jBhEgkYMN9LYKmvpXx3yjSqH0pDlLZjuGyqN9K9s9vBciJVFd91fTM4dMHLtBvLHIEUISxO0db/fGD4Z3l2WmuiLoexGJXUsdx2XXlvr+mUuS8FLQocFe+NyUhaoWrsZf4XweOBjY4h5hKCzVd1RIxEKuql2chR6k51pEJBLfleCMstma8Gv5Zyfwg88c3jHHjBSJCWTqFP05yRDuG4+Wj/KD+79sIqq07sxtvcDGjP9GaPakNMfD8FSAKJaiPjOwxGZFJULXBA6D2984GJNpIoX/lXAxsxaNhss2Onv65o07kzO+glLNOIl4Pdh2xZVRO3hSMu00StAn5vJ9RI8kwWIbR08Qi7H+cbDPGXSMKA5WhXesznbo3GlYyNgXfajVz5m6WMVCsgZmZWaMmrGMhCofKOL6evGC7MqBATSsSBVV9cD6tm/QchgRNhTaqigoPTFIhKFWU2RfXGLGrfjXcOvnFc+uGXVDtsc0eR1w69fQCIIwZwFTaUIL84SaVmQAHyV5T1ytUjYkA2pN9ehzoUqTsBCnkcdcVfGNyFQQPHDuZVL88kdu2MiCsyO7U3YBqUfT/ADnlcGQblYFh023+uJDmPV2QeoB5J749qFfQusfIlbnKtIegCAWMl1MW3btVFZv5iOf0y1XfxGCEeGe49ffA1DhY1si06Xx29Mb5IpxNFtMlSOV2C7k2bubNGvb1ylmpK8SiO575IupbTRFivmutxBAPOdlkBa2bxGvegrpx2H765BSSiO02zrDyllFMOLJ7X1xGrmljG9B/41okktV9OB6dcKKZhKxuwPK7sehq+mF4rPqNjKFUruI3fiPav1vJ2qHSp6Tywx6yJQG3MGq1Peu99KOC/wBnvNGYoWXT7zyxAN+wHY365VFG0HKEgv8Ay1d+5xQEkr73IKqo3A9G+CP64FnY1vwin0cOmmfWSTASmkkVV3Ldeh/txlmgMGqLRMoDwtbOO4FgCx3wPAAgdRUIq3BJ4J60fjEfdp4ESKOQJGWbzAUT6E4vJxd0P/pU2axb7xHy/wDCAKhT1PPe/jJpHfUOytGqLECFZqII9PY9sZo3eRDE0LBlvzvdHnoT+xg6rw01EKy+WQoUFUVU9SeR8DLttxsilUqKhMohLOU8NTbcAE58+2p08Eo1CsQumffweRGzASAiulc//o5oaZEj00kaJubxBvYoRd8Di+DXfHH7Nhm1RlVG4XYbWgQQQfYjn8835Omg/jG0wvEmleSOty7qUpwAf74ycvAFbd5UHIGQaaXUQr931MKoYCAXDeVgBw4PvXTsbwtfqPu8azSNv05PmX0v0xXKkwKNtDpt8wDxuWXqyLRv64K6J2lWWEMgNAkHk/TA+zftKKZP4UIAulZ+AM0kQPK0jFug21xeb44KWmk3HCXWxEIGEyqARW7gH59+2GumbYJHYmr3FjyMN4bVnZG2k2ARYHfB1OraJWiJDBzw1UR8/wCcpJJW2Km3SRJrZNksYM3BNcDpjYZSkTKwVOTV2LwFdEhMiuQACArrYJGL0pIiMrHcp54PH5Zz8qdlauJdHqt+oWFwqueV47Y0ohHI3We/IyJE08kKpYWQ/wAxJBPfH1MwKBQ1dGy0JOt0jJLwZPSxu7+b/iq98NSghAL1xyv+cXHG9GwFtq6WT+uc1ERcf+SrHcgEZflSsSl0LZovFkjci1HlUDERxs6M6htgHlOCzBZ25HP/ANuhyhYv4fiB7oWnoM5b5Mt0hcq+Cu0hg583I/phwRSvKzM3hlTur1GE5dtpLhl45Nde+MW3Uxv1s0VJGPGK5WK26GTxrNsKzGNk9CazsiuYQHCyN1YHofjO6fTLAu0MpY+p5wRFEk/iNGzNyQQxodunrnUyR4KpUopYMQfMO3ziZ4p2VY1kJcr+Lt/XC8UGQFI3N8Kr+XONch3MgXmgjkjb7/7ybpoZWjG0LyvNNEFYqjFWtySff2GauiikXTFUAWhSB7v6jC0kCaYs0KlVUVzRqsU3iQ6ibbqSq7b3OoIDZLjxVso5cnSHmVkiU1Z/4gZHXiK5e41kFDafNZxjrI7RuC9AWRyNx7cemTxh4pZGpJHPCsASV9uvTIzfQ0UUeFJ4ACSg+UgMTX9O+KRdsW23IUW/F33742L/AMWySS2HDBh1zzbY0YgKNo4CCi3zivqw/o4VOolWUNES3BVmqx6Yl45QxYsuygRta6vr7nGr4lAuAW3VZPB98NpW8QqirsIq+oHOB1JGVolOnGxdqjf7j8N56LTMjs8bmi90DXN+nfKZox4ZDEvYAr1rFABGAKSRsDS+h+mI1oyk6OLBbN5iCDyCKF56SBI0VRTLdgL6/OelRhIadxvBq26/A/viVmcm1jZfEoDuB26X1zOgq2WJIxcEoQa/m5vJzIVG7Y0hLWTuoLz745XIukG4fjIP9sSxVpj5kU7eeOTjNipDizNDus0gogH8I9e+D4EJgLeIeVO3a3PGcgDCdKcxxA9L4YH1x00ZCSRgDc3S6IHvhStWwdOgESBGQKgKbRY7YwLHEArraj/i1kD4yYiV38EqvAHIuuDVfGOViCC7uoUniuv1zJ+GaFMwU7wCysaBKj9f+sP72qRl0k47bebPpk5cliXDIAb2N5gcYY4kXxFkJ3MNt9Rfr7YltdDNL08X8MHc4deaBPB+uSRwPGrbG3N1ACfho9srZSrbWCqNpv3PS8ndNzldpcqKDAnn+94jGicfeIfJaOptqHLDFxF23FlsN36AUe/7rHbXkRpPCbaF9SvfrnWRECgybTsBDlgAPbNQ1k8s0e2TbAaqz3FeuK/hhk8NBIHa1JPTjOzIElY2yyMAAnUfv+2MWBC9RIA3W7+lYvo+JCW1ZJaDw42O3t0BygSmJVG9VL2bJF+9enfBCp4bRhU8Ygg89/TGBYzBHJ4KEMwBI5r14+cNGtfQKMySOGcSAkgA88e+VpIJVJLAUPL7e2QKoll3LagE7SbBvvXplGnaSINJK556I3JXBYslhTL5lNSIQoHHQfvriyHkLbWAtT06n4zzRqqbrXbzwD1zyTbiybaYcg7eK9jhTt6T/hFqZVXTh5CSbooOvv0xcOqhjjCEUpcg3d171kutVX1R2syw8Ehnsnn1wtOqaMGKEysAA29qBOE6K/EvVmEzK0wA6URQ+mcaBQtLG69NpH8vrgCVpaKru817hjoQfGKbGctRLE2fbjAL0eiVWh2rC1gebdyD7/v1yDe0i/xUdFHOw9/p1vNYwldw3KveQjJ/uURve3APHm6++M+hYyQSSJFopN8buzncpJuhQ/X2z5nWaZnn04XToy7nLsVA2qByTXTms2dfIjIYwUClx/Eis2L7+nGIUeLrGWIhmfTkhCrMpUuARX0xlLoeOKzRWQJp2SSPxNwUKHU0f3/fJlinOoLKiFGb9MsTTeBFRViG4FJdegq+nON+5yiEOAFXb5SrCwPTEak2T5JHkjCTkCIM6jnaOmMljWJllCgEHgkEcn1r++e0+kkWNUaUndyxIsnKJSglAV2Zwb3VxXpl+Loi3pnbfvDMIZFBPO6jwe/fJ10zghpBtULVgULzReXSsGV4uK/DXF3xnInWYlAoEZHI9xk3FP0dSaM+XTSkOVkfaBwD3+MWIXhjI5LHnw74P/WaTTaeOQJtoVyDf7rIpNVGDLIlbfwk1+tHjJukPGUmM2oPxEtuFLbdP75fGVFRMxFLxXJOZS6mNtUlCSlPJsAH65qtPzcYXxG8q89TlPjaJzTPRTDw2UK6sbDbRgaifwjUUdMTttRfbqcEGVQ29HLng88YLoR53lUMo8tD9Mbk2qQtKxkTJG7ADzDvdC/XBlliinMRXcdt9LyUgpL/AA6uqvufTD8YSGNpF8Qnny/rz+eLyyhuO2ckk8c2ooL0rkk4chaLRrf/AJKJW7PGcWEbjJGZNo4rdQPwP74vUNHIVRw6LupvNyM20bvBhm3xosiDbXPFgf8AeKlh+8lJRIYuA2xf5h84qPTr9/QmVgqXVcce4y3cJDTjyMDXc+2FagvHgsSpDEyEb3P4QbI+czNfv0xLLOHVzTkJW7247Z06xodVWpBQlqWjfFeo/fOM1Wkj1SbdVDKDdAb9oI7dMyv0aKp2KRliRQbAezt3G/jA1UUQgZoI+b/CtAjI49kOpYgSNJ+EKxsD2+MvilhaQEiOwQovykepGGkijVEmjijbdukCsqbWtuR636ZVcUbEbQUCjknbXPU4thp0GoIXwy0ls7UbHr1ydHR5108fiSEEKZE5r9fTH4p9AuzT1W0aJJRC7cWKTk/GSaSSMtJqY0kpedp6gnKRr5XiaGCYHwztFqfj4yKZpFO2ImzajYOnvV4sqWCxTJ5tRqBO1QCRr/GOWHrz2zkMzwmKNpUoLfU2fk5Pq5XQkPE+9ePPzuGTRyNKGlgfY+4AsCarrwMaMLKtYbhm8UlZUhJK/i6A+jemJmfT72fVSCTYOdvY9OmTQKJFLTsWJB5KtS339rw9QqBN4Yxl+JBsFsP8cfpm40xaH6ZopdekenkUKFov3I/zjZ1h04RppYyV8qsa5+ncZFo9JGHWpSF32vn5ruPr7ZoahFVUIG9QdoVgKHuPjC2hWtM7wYUc+EviHlrjWgT3HtkkMj6bfKLYni1Y9fcnrlU0qwyBEUMz+ZSB1GS74iJFVWFc+Y0t8/XD2h1gyeZZJN7xAblAZUPf5zpnMMbWVth6WV/3gaVNQjKiUSRuO0Vu/XDm0bGE71dHkbivMP8AWJljf07BrRHKvho7A+Xa4oX3+uNUySSvtHhbj5Qp/XJomDuwdkDRm9hHJ+csYoKQoWIW7Aqh2GCQKobDM8cP/jRnZtvDdPyxsYk8KyjRPzwT+6ybSxMgMkgSIK3G/uTjJmIji2yMhQ2/PFX2wUIxZkMY2y7VcKQE3XuHreSIFEyqdgDeYm+nxj9RFJIyt453Rk0hPJHxkhUiOIKTItsCx4A9MKHQ6GW7j3BgBYYDkC/jKJWM0KsWJA/CR6ZNGHCVKTtArcHuvnv9cohj8WfwC6x0OLPQVzgd2ZimcqBJGqbitKzseADk+8oCGlulsqOCR9cawlUxsG335ODd0eoyfWQtCAQxa7D83XzjLughffBLRoFDxtaMEA/0OI1Wok3uWMYDkDlBxXev74M8UAjUliu//kSOfX4xLzbBWwMCtKpbzA+oyyQaQyZ54UMqSQ2rE3VAelCuuS6mbVEFZNS4sDdTcp+eFHM5kYMSu1eSyHp7nFaxo/ADLK9k0yJYHwbykVtAZKixIzEzMWBu7Yg9Aa+Oc5vE0sbRXMeWG31v3/PPaoy7FVzfijpwDRrgfnlGmRAwTcVYAqACCSB/T8s6OlZy2MR9QJVTzurufD5Bs+/x/bGnWUURFeQ2aocMfnCfSW7FkZXhAA8xHXuT/TOFdkjDzigACDySSOAfXJNpsZDNOjy6zaf4arzuPQ0eePXHatXkhMCSim4G3kmxnNM8qoDK5kkJIUFasjv6/phIFMochTIVIZYxVm/nEvQmVHpTDMVY7aG5VLWF55HrmlpfFQLGyI0L8MpU8k9/UZ0HTPKrtxHwtCjdd77/AO87PHHJ4sUbOgsbUZyAffnt9eMLk32aqOmOFgFjUbhwwl4v4P8ArAaOZy29GiWQdT5hx6EcVgPoJ/F8Kdo9u3cTYayen9Mr02pfTlfAnYIaBUtuBHI6dvpivDC24FROgCkBQrce1V8HHabUO6jdM22iyeGKI9uRzzlEmrHiKJ9NDJFyVIBVq9eObxch080uxldVKDkWQT9en9cUNipXBUVEN1FgQxFn2xOmkccSRJJGSBQFla75fFo0niO1X04ot4p5Df8A6Pe/XKBD9laWNdujOzqpYkliPa/64VVAsRp9CITJe8hjbEy8eprt/wB5Us+m00iQRgakAXfRE/fvmc/2hpHlcyySGIN5rTeCe460B0r4xzaH7OEaanTagwxOPwycD/Xxmr7AMncy6gSRMEHQ+a1b2zTginCRyFzXHcmh6fXJ4AkckaLICh5ARbsfGavhpsPgTALfcWMm+gSYQ3seAqtRHzXPOQTMksoaML5WBJI446j498YZJxppCNSGkJ2LfHJ7jv0zsimOIKaIAoG+gFds3gFhHKxk1agU6EHlWon4zoaGVlR2RUHDAjcTnikgR5I76dLtvpeSQo5L6jxNrC9tWBx2zDobrojLKYwoMQ6jkAf4/XG6FFXWNGiq183uuv746BnlKSOrbmXdac5Zp9OI3eRWQFlBFtzfF3gVgbpUe0sbeM26W2awC1frlGon2RhEjU7urLVD3xE24MBHQ3khyxrjjpghfDclepNtK3btlLpUSavRB8QyM8slR2eAaN+59MYU3hGLOpFH1o/lYwQFMbeMvRjtdxQ6/pjRJ4u1VdQQKVAo6fOIOO0yyRTKfuqkjqxXzV/jKpFjYEmNFP8AKWWryZUlADq1NX/IkjGHxVYI7ELxd8C/XHTwRnJIVcURGHQ+UbeD74UDJAxWTaWCgGh3yqEMqndTt04OcniaQ7oQd3fbgcX2heXjJmfxAFkUGutqOTk6qwcTbjTcha6fOWopifzR8uL3bcQI1IVVSQmzuBoChiOLGTETb7cSRhuPL2/LJpNeumh2MpUlvKFFn2yhmNuzP5m5DD+/viYo1m16sV3qQKs9MTsrWFUxGs00UYkCydSwFmvn88WAqweDuZpOzgWDndTrAjLFCdxUFWduo56185QqRaZFQyF2drbgfnjdsTon1M1gNS7UPn55/wBZPPKy6a0uRpLVV2jr6/8AXTLV2QahwkNq5G4k11HPHW8TqNXH4exllgG4BbUNfbAGz0xEumVSxKCiSp6ZODFuSN5UqvINwBqvQ8f9ZZFHGumGylVzzS2WOH/7crETPBBHGPM25fN7D+vzjNWKpJEqiDVoNNp9VK7ISA9+U1Vix/TGvBKkTo7vtKk7z0HT63jVMOm82nlRkdd3hBQBuPUjjJgr6nUtbsyXuNGl2/v1xc6G70sWMCTchRmKg+ckg/FdMX4XnUyCRGK0Dv459e3xlGmDySEK4KoP5WGVKHlUjZZHFk8e+NV9CcqJUSJVDpbk9mPBFYEhhmNivE2WULcgfGVxR6iWBjLHzt4UvYPofbIYdA7uWIKtRveP0BwOJk/2d0pgTv5UrgGxf98SVSXWyOWLFuF5ojO2qqNzOOaF8k4kpunMkFsEq6/CPc/r7YnKsKpemlqtMvgJIwXdXFNtH54mNS9SdSp6LyK7EYSCfUhd6qdo4IN7h+WU6PTpXFM1i1vbXxjpcpUiblxWjREumjJC72qwLr55wJC0se5VRQo7qReHq9jL4buFvsT+IenscWkS+GUViSvFE3lJKsRNfbCpApG1AOoHriotSfEZEam/lUggH65SkYlRTIbCD4v5wJVSBPEbpXAHAGamlZk10cbyshVQ1DlF4v3xU8KNGaXw5GI68g/I9a74ptSIYSZeSOSxHCjPaSYauIiI3tJNHnpiKVuh6aVntFojp4KbcGRjt2sDY7A9xf1wnZkk3rHIDID5QRtX3s98HVyxmUOzS0vQR3uv3zPbVPJpvD2tTnaDus/F5m0sQ6TlrNKNmVmOxnagAd1A3yOncZBqyZH8JuIm5Yg8ue4/p6YgN4eqh2SEFrJYMSwA+P71nJdMX1BmiZkd28ltYPrXvisdRpizDG+nlZH8iISQ/Aq757+3fAj+00hUTPp0WQ+UiOywPt71/THzxa4KYoouAOTwOve/X0z5/wC1tTJBpBp4omfVTk7HcAkD+YkdD37daxoQ5Oh28s5qdQmu+11czrLFpvP4hh3K8pHCmuwH65qSx6lFVDFZmA86Hykiq6Wck+x9EZNImggIVFosGYgm+brub/t6ZsvFPAk0SOiyodrgC+3Sv31xptXS8As7MKDVRtqmTVF7k4bcxJFdufy9s3Y4UhdXQmRAm7Ze5VP16f5yPS/ZiJrG1EqRKyjdtJJIv2PrmjHCyBtMK5WyUXgqenXvk5u+hmzmmhEMLFS8jN37/F+/HPtjQ/8AHW1kQM1AvKST7fHNY0aN54pLQlDW0NQ5Hv8A598WBLAhMk0caltvIDE81gpiWmd1DqiHUK0ZjF3JtJ5BqhfXHQyfdhN4QDSBfIwIAY/H5ZDpJIkBZZ2ksE9DQ78fX99MuUQ6dOHLOV87M3J9sKYGvDkMfjeHyP4JJdA3FkEWL7/7zPqPxT4niSUNoiYLZNdb/rmsI4oowdONq3wA19cT9zgVmaU+Ix5pO35e2FvAJozZEi1qMZII5SbKsUG5a469R9DmjpY9emnWWL7QTURpyY9TGEfp0DgX+Y5xscIoL4e2Nj0BAs9cqjlhg3RSbDz37DDCTvRZtNYZzfaOniKHV+PpC5AHiXsPuHHl/vmhT7Q4uRCRtpRwPW++IjmTUoh38Byr9wp7jEt9l6JTvhMmmcjdv0zFAPleh/LMmhWiiYtL0PKjkkAfHA4GJUeHKq14oJtSev5+mdi0n2nExH/vKSCzS/dB1+rY4p9oIqyE6PVMeG3RmJ2Hp1IB/fGH/ne2bnQausn8Tbt2H6AgZ41NGfEfaf5iD+oAwm18JAXUaDUQKppnSnUfNE8fTHRjRTAPFqUlU/hKt5fqcb/m36Jy/R7ThhFYJUE1Z5NY0ldgYJKXC9VF4B1EY2xggAWD6Adbyd5A7h4HQL0IHBI798paisFptlFSPA7eIQFFW1D5ydGqNTGvkHJdmN39OMfDCdgQMPD6BCaode2dkCR6fw9q+XqoXt2xWn2G0sIIpdZJqd6J5b81EVX9bxur0RZTIS7b6qlNj3Pt/jOxELMJEYrtHJbuSe3tWNnZDEyGV2uyaarHpjQ4uOszbvCZdMtoXZa20PXGLGzIZIxe7kHveBHIJkoEgLwCebx6yRhFP/jAXvxkJJJj2yYhFj3MhkO7zC+R7/GCR4pjUgLX4ee/p9MN337mhkvuD1xOpk1LxbVpW317XkGyi0pCCEqYzbcVfPTAiBbUyuSpDMAbJsevOUJGjlGJBfoxXoD64rcHmZYlB22dwXk85SqQnZe02mj2PJJH4q+XlqI9szRqdSJB4TrGSpNbroE/PsecYkq72AcAjyX6cXzkerg8Ul3WbwwtKsY3We3Hf65R/LyrwEYV2a0UmlKtYUsotra7PqTgeJA1o0DLG3FG6I9T7ZEuhIslv4d72Y+Qn246DAj1unZSqTmYWRuiUkfmOuF/JL6BwRoI6BmRbWMDgj/r2yuFgqbNoHFjgjM/RyxiWSJh5k5dCpBAPQjHs91xasaA9RlISrWJJbQbqu5URbN2BfJybUxy/eiqbtjAeTZ+HryD75dH4O7mOO68g64SaYxnxZFoHqBjP4+QFKjmmjJ0saENW2yGFG/f3xKqwi8J5AGo8r1vHzT0jAED47YEMVS7n8zHkD1yjStJCp+sRp4ZVFOxAW/Ibsnt3ww5IIBCk9eevrhzyBJAo/GBfHNZOOZ/EFjj6E3eTlUcQy3Rc80ke4qQsYWj5tpOI07FpTKroWAIBfuMpaJpyv8ADNXV4kQNHMW3FbBFHpnNJybKqqo0NOHMJMgUkc9brOoNwbzK4Fn2ORM6woRJMgPDMu4Dj4P54tNX52MaSFgKW2ChuP6fTLL5KpNCcL1GmUYqTzsIrqCBgDTy7bWuOvcAZPGdS8oVNXFAgXaI/C3EHubJH9MF1LlBL/HQHpI9g8fl+mVbjgqTHR6/Ro3hvqIiegAbef0vPS/aOlSOo5GSS62tG116gVziE1AVds8XhnftRYyCD+XTr3xf3yd28FoCiKfx+LfIPfFfzKKoPAcNZIv/AI/s+dU3UHkYID71+L9M5Ourla2KQmt21R4n1N1+nGF97d4FTaW2GnO2r4/fTB1GpMcQQDcxXgHt6/TEl8iaoKi7OrpV1G4tPqJZCfOGmKgcei1xk/gwxytBFDGmoK/iiXzD6nnHtsni2psXmtoPXC0+mRNR94cfxWHFE4OTlg2LsVDC8+qH8SvC7MeTfpx0wzBGqhWBWrDH8VH1xnjGMh9iNfBZTzg69gUXwxuJuwuJUVF/Zrdktq7mSFA4Xy7BYBbp+dYxzIZAx2xDTmqAskevzgx2ZlFhV423dD5ykMjgsKVlPPfm+MWOjPGLmgaRUbhmDWCW4ruSD7E4hI10kbMCESgWuufr/rvlEsyST+HOfKODs9ep/t+uC8rGWRXRpEjQ7fLzZ6c4XXhlfTE/eDqxD4wDWQ/AJU3059RjdTp4TGrqW4YD8RG33986bMKqCC4G4GufzwWRztCkup4NdTQs4r2w/wACX7Q8GQquxokXc73yB8V1wdRPptXHt5V3IINi3HTir4w412b2CuPMAQVu8HTaR2mlMqDaAArDgqT1v0vjKQcn+IHxWlKaJYUaQzWgsDxOa6cX6Z15WItdrRnjaFPX2wgJiFZnIBJFqxpff3/tgp4vjL+BFW1ajye/x6++XeKkS16zIi1OoWAxyhDKi2m7y2240CPTp/XM4faennjlaR2iksrNA3UEdh6c3l32sPuchmkWaR5FYIikbQ3QX/XMzVaLTSyQfae5TEwDa3d0VyB5iB0BIon1A985eLlh1RpaaGl8dJVZUJjaje4tf06Htzm42uSMiIKfW6sDM+MtHpYyQ0BWt4cg0T65UZ4xWzhvw2Buoe4743xtw9JfJ+T6LoZ3ZbcWrGhsB/W8x/tB3OvXZuaMVtToAffveasHiE3J0rrff4yL7iZ9cwnApfMa6OPS/wB9Mt8vKcEkT+OoybZl6jWPJx4Z2jg2hsfXCikkeP8AEkYNUfxDpmrP9mQ7B4D+G5FBWYm/k9cikSHaBG1sTtVVNgHv2/Zzkn8c4vToU4tYO08Z8tEXVAADKIlUI7u+1EJLeWr98KLTmGHYa85tyTyBitZNH/4IXJPWQJwQPS/2c6YwUI2yDfJ0iuOWN4tyOKB4LA4rUSeIdzABVF364kMAylmKq3BU035ntnVYWzEJsUcc3mlPkqBwoU/gmVZFUPJfc9BjlZnm2Wp45FcfnkLzK0oPVb5paPpzhRFlfdK5jU8gVZ+KyEZbRRxwvEShyXHvd8A5PqZWhlCxKotrZix4y1ZiUUohkjPU1z85IVaMiRQSu8nyHd9T7ZeSqP4k496UJO33ZnrxGDeVFHNYhtW2qJh4jKmyzrdj0HvhNOqyggqqEeUVwMnlLHUqUfyo1qo/mH0xZ/JiVhUTmn1Tyrudi3hEqLsEdqvKI9SVnPivHDYpSW6j1+cmVJk1Y8bUP4N+dWskcXhFfvOsRSGeOMEmxQUeuLGToZpDn1Z3SafeUFcsRRrj0Hf++Z2qiiWRHEu7ttNCz7H9MujhEBldow7fyuDVAj/WKkVl88rKyhdwqwSD2xJttaNCk8JPCmZt8slqGG1ueep4/dYTITtiJl84NEeU/Xm80EjhCGRZnKk8oRfNZPqTGlg2qKpLeYcj57G8RxaQ6lboYqB1RA5UhuRV7hXXGvGyRg7t+w3tI/pnNEv8AsnnEhNbzyR/nO73jdWdOK/BusDKVmk29o4zGhSHcSCB+Z5xIO6QPJaFjwN3X3Aw9QY1UKFonkEEk37ZwIWiZZB34Aaq+vGK0ZC5+RuSUFQtLfNfTKoQk8as43NQ6Hv+eTarSGMxvCQvWubu/wC+ch8SSYo5KLd3XOBWpUwtXHBup00Fld5Xjot9MG1DHzi1ocV+uDIdQpVN9xg/8eR9bxIDFPJGuy+EK/iP1PHOCVWFJ1rGOQWkRSCAo3WxHPtWDFE7lv4gQUDRFkjDeHUTQtG5pf8A6tzwOmDFppwUQKD5vxq3H5dMSm30HKH7N0RCsm5RwVBOcZkijjO5y45BPX55x8wWFgHcKwXr6HJHlTbIxYsNoCh+QffvXGW41gi0NInZVaJ360T6fTPNCUgCylid/FnGaVbTzLUbKeSACPfIdYzhY/4h2q4unsL8ZpJKNsytuikwzI5C+dDx+KyCe+GkaMFkCgP246H93gMywqpsOGoMW9eOf+sGaBfF2NJQUWSeo979Mn/BuxwZnB20VUWbNZKmpKkbRtcijz3xjMkm5V8ylTvkqlPtfrk7rDK0aLXlG7bdki/6d8zVhS+ysP4qLLVn8L2eK/zzkMqWzKm0EWV9a9Mo1R2hdr0SaN3k4eWeYHUIFHZvT2IwSiwx+xR0+neVQWQuBwAxs/TsMuDeCCxVGDqVUV0v0xKwKsoclfEW7YLfHplIUF923dS7rN3gUWjSlZmx+UKFYEm+WH4u9j3xkSTEq1Fm/DRPF5W+mnkaOQLah7C1QxJEkMgSQj+JYCrVH/eFxaWjc0wRJqRTBFS/KoA6+vOehUujO8pLA8BfTHPJEi2ElK7uQTnCAgVodOiKOu5zYyTVmsNVYwoAGKjnPGPYCSCFb8XPT6YyHVkxWxRQCQy/0xGocGYbrN1tpuD7Y1KsEV3RDrfs0TNvETG3FLuoVfbK4I4NLFIPDVr5pj09r9M6m8L59oVhwFPT3yfUOsbxxkM+00SoOZOkU14zj/aAiULEE8NWtgKb8ssiZZYt6vtB4O7gn6ZHqZ0SFbjQbm4U8cfGHBIphYRShWNAULIJ4o5jNYOeNZxIJmAXbXA6nA0oUaZkMQ4FVf8AU4UcTMSrzHxLF9QAfTBm8UMsatyAW9L/ADzO0L3hkqVlDxQSqpAJArrfQfpjNIyabWJvmL1C6u/KgkMpAP5nH6GGSR9REsaCFhuLGg1nkcZHqFKa3SwSq4qV9rDy7l29OfcDGhHSrd4bkeoVtmo52bdxIrn2JykOJEdIxagFgiHp9cifTyrpwkIXaSF8xJoZR40qsvhNuF8rZ6V3vHi9OeSXg1Aw2xSbwQCwY9a9yO+TSPWpQJJYCkg3wPXL5nDKpjqwPP7ZHPEjzhwQ26rO0eUDHnHMEi9IdWollVpWYoCAqA8/PGLi1Mi/wQC1NwSOh9ffNMwRLGZgwYk8ljwcnk/+TGXZY44SKIUWx9jknCiqkjOMupWePkuWFNfb5xmpWaQqqoDt5u+p/fthLvuNniUKSSUq67c5TP4c+mE1eFIOqDqPfJ8Sl00Z8upG0jcpAsMoFk+/F8Zrad3TTRmNFOzjdf8ArI9FGttIumPmFMxHJyzStvXzR7UB8orj/ONBaJ8jON4srFH2x1ySp4+M5K8UTbTGzLdeVb3Eis5LBGInULIu8UzLQP652EpGhSKQHeb8/BH5dP8AeVWPSfh5XtSEvePwg89O2SHxm1m4RmMHhnLih8cZXKsrsrw+GEN+cGiP85L91MuqSQyK9Ag9fL6/2zUuhkPeWOJtqgBlFDnr8A4gVI8jom9iRuK2B7/07ZwT6dpmjRogyEja/BIHpxiZH1KM7eKgRzYUj8HqPfD/AEKQ7x4PHDqRu3G65B9hnSzM7bf4djirB64vSaPSrArxsoKHkqu2/j3xn3d5BCYreND5hfQf1xJJeBwnknSSWMSRt4oc+JVdsB3mn1QikUUO7c1fS+c0Zkk1EK+Av8YEst8XixWqULKBDPH+JVq/+sZpAUjPl0VuSiBjuAYMfxHF+G77vBCqwPLBb5rt2+mXiWaMWIiLJKkLVjp+eS+M2lUoZmZeuzbQGKkU5MUJnijaJEFsCd0nmA5xel0ynStPJKrE2QQtGwf75UsHg+HI6gqBuUg3ftWNDjwBI8LAyL5+KIHtWNyrAX9EOjtYZVdyrE0jsPxfTBnnmMkYMqqu0k8c5UYVJCpclSX5ueg7YMiUGMgfaQOHUAEfHBxb9HsgmlVaMzozAeR2Tg/Prkiy+DXhFCzyAsPX6Zpx6dPGabcShoCxuQC+3H9cn1v2cmi1abB5bAJJIYnrxWUTRk0cYPHrVEjOqN5mQsKFccnv7YrULJLMSskLRE2qMKJ+fbC1Usmr1MYlLrdqvA4/scEaOX7x5GlBROCV/DXY5l+xhUEkPio7o56Lw34evIXr6ZrCI6mII+rjcE0Vqttd+v8AXMuJJ9UGVKVl5G4AMR9Mu+yPs0GYF9sjhNwp+OD0x6TJydaTeFEsQdEU8kOGIHF8e+BNAdVEYzpd0ancpRSABXrdZsa+P7twrI08puzV325/YyfUzTPFGN5ikAsMpskni/jA3Toyd6S6LQ6yWRAoEQA3X6L6DLimm0bh5NzELdb6/MZCk2sidQ5YgeWrNL+uFqtGzQKdyszWbPHvWBtLoNNvREyiTUSSRrEokboGsAdzddcogn27NooqPxFuD2465O0jxttaayRdKOhA9MdBEHVSS53AhS2TbvRqHL5XVnfcCaF2cneVXAaOgu+txFVfTr64M80Wng8KWRardz3Pz1xMmpRkVImDIw46g5tNRbIsUoaNo2O2thqrOS7BuZSm0lbFi+QeKw9MRIG3AsWXq/8AOc7K33aNatnJJbi6P7OGsAjpjdYnmZjuUceSz7DnBlinbZPahWF7toDH298U04lcGcIy9769fX886whjYotGn4UdrHXMgjIFVtVHs/Ah7vdZwaZJp5gGcNZBDOfKee+S6hoNKm7gOG6r1PBxF6rVqWi1CkGtldPg9DeUijFGp0sUcTeI29KFR7hYHr3vnJ1bTFvDVIlXjab449/XFeFIIXaSodrctXVunXJ3jYQq4jLA8m+QK9R/nHSCaDnSQ7130ZfQAAi+/ue2Zzr4MjtC0ZW+A4v6Ubz0zSNCXACg2SigVXtincuhUOEU8UigHn19+nNZSKMHHEzReI5SNgosNe5vQj0H/WFEkUCNI9rdAAX5jVn2yW2illjUrucjylFIHOVoZGYo8dndv3bBXQC8s8OVHY5VIsVIrnaAON1d69P8YrUzbjuIDQK1UqgWa9+91joZpPKqycFiA3Wj3J/P9c4Ivu+1WPhxuSLXny9yT71z7Yiqxz0OqlZFmCqFPI8Tm/37emVJ4/hujyAgiyxY0f3+d4KzAx7WQFSfLwAbHHT653UAQsohEgJBY0PX1+vHbEevAg7ISShLOSAdxFharrgNpw7C1Lo3l2qnJ9L7VwcoUpBATNGxkHnfYp636Dr0zgDlzMYQwfs3BB7/AL565k6MAI4vCO6rApdtkkk9cbpYjDP4lpTGqP6GuuJk3SEpqJDHuryqOevAPSv75XC8qLE6MFcMAu1bLcev/eBmLjGselYpZUrXl556dL/fGcYLJBGISSTw8hUlgDwevA+n6YUUUggJmUmWR6YFg1n37ZwvEUWJPUspq+hqv364iFCBlhRyknKEhHeufQE56WM+HbEcitwG1evWh0xsPhwRhpES2k4Jax1q+v7rFzlp3Lqd8YHl2kjj5/XAwozZEEfiQESOpNiv5z+t5RpdRDJCkDadhQpaHfExxpLqpVCSgheCxBAPue2H4UscjzJyIxZJfqfQdeMLCV6QNA+47o1a+Gatw7fvjNjQzmfT0osEcc9h2rrmTpFEqhPNv29QfY/rlemnOni1DxttZYi+6rqhx164q70WSs4wjnDTI7hyu2MhrAAu2r8sfDp/HCRu+4beDdGsUkcayKA/iKDYH98oheKO/DHlfgBj/fBQGw5YkVGUsETjaTd9Oa9cjSCJWE2m/iILBAbgfT8sZPHLOQqKACbpvMK9x1HbLdJp1gYNqHBcc7Ywa/6xkLdaSO7SCMtuhiDbVPS+LzgVjKHSMv5uSGA2888n6Zo6h9NqI1iCmA9FauPyyQ6KeJjGoBZuS9gc9fX2zNUwqR0gSjw3i3AH1P684UY8Oo1lCsOVDEEH29MGHTGB61EqyEnnYbz2p+zgf4sctKPxKx6/3vBYM6BdpnItfLuFAc18jtnYIpVmJ3R1ZJKjmu2eTYkTblEdjgE847STabqzh6NBVN2feu2a9D4WQx0nivxuqu5+f+8l1TypMFO51bmh/IMd4xd/NHzfQ9hecnk3TEgiiOVPNnHtVgm2HpZXA2wvuQ8H1U5RFPMJXFeYigaAsZDp5VQKTIhO7u3Axs259qseAbtb/K8VyaWAatjtRq2ZQrsfSuaOGsaxxrvRDQ/DkM7JI1RDcQKX/wCpHfH6WalVpmTxDxsv9cEZW9M40sImmLlyinaxof4ycxiJGkSRgU/GRZJ9uM0Z5lAZlYIXsADveTwrAVZncHjzEA0WxXS6KReGfApnKSJqFJBubj+WzQ9uf0ysn7tMJHkDLt4Rh1PY9+P05wTB92AZOFokN1PwRiGnlEZldV8Qnau4cDng89sT0fs2pHj1MEZZT525rkfPvlEENRWo3kHnb0+Mg+zopWCuzBhRsNag+hr8/wA80FdDEVjDK18ql3l4V2znlmIXO8hjaONo9O1WNwsD3+cDSQqCVkmaRwKNm6J7YaGJiBJuZ5DQUngV7fOe/AyguwYG2Ivnr3wSrsC+hbacMY9yhCFrgdR6emMi04RXCqtKPIW5C/GcM3ivtbeeo5zksngkDaR/Kd3Wr/3k00PvRJOmp0+iMe5HthtdUJF+4HTPR65WiXf4xLsRRHQj04PHzmmDHJpWRfSiPbM6OZoVMajYF5O2qocX8ZqSGi7RQomh8yRsRL1pyAKHpxt/rgRHVNqBIDW1juXbf0Pf64X3yQ7Y5FD71tQ1bv8Af98akW2PxkkO/gFmA49q9MLafQOuybVvLDES0hRRe21qjh6NJIdK0tlmYWbXafjjHzN4oUBD4lm1sc/GEAPEEJdlO2wt8AYtabllHNMjTg+E3hs5tiqA7cuSJITvPLhbfr5j65PpiQ7BaI7FegxzyotRnqxs03AOdHx0lbJTbbESss4vwtm7hrbAAqXbtfy8Ak8HF6hS7sgQk9QegP175NEJV1LVP4p3UFZq28dLyUntsoo4ammcOjrtMZugeDYyH7QndZfBLj0VivCm/wAryp6SMbKST9R+/wC+Y/2hJLEPEfZ+K6HTb8/sZpSdUb443Kxuo3MxiIZtOfLQHBPrfplcDwQ6Vo1O3i6LAX79eBmY+piAVZlAElFPNW706/0zrpKpaRWEg2gBR69/0xU2izjaorimEjSLInIO4lSQoHY+mY0skctlY2U2Soqyw9z2w9bqdI8cZfUAawj/AMa72Ym/+I5A+eMlKn7zvgniKgUUBMYUkckg89fXDT7YVSFxTNHMZlJDEUNvIrGzfbMsqqzICB+Lb0HHav8AGQyavQRyNGNVEzKpYop8x9gRxeHpESSYOml1WqaM2qpGeeOLNDj3Jx+L+hribS/+odHo9A0+qG2EXsCcsb6AWeb5z57RRT6zXyfaUoCXSiLwt6wrfQ8j5Pzi4/s19R/6l8fVKIZohti027eIvUn0N+nTPqYdKdNsOmmWR922VlS+D3N9fnC2oRpdiVtgfZenj0sLSsZZm3V+GgVHAI/XNHT6YxgSfdy1nl2N9/fG6qaKGMBHctdgooNX3PHtiW1zmLw40IJNs/WvcZJ0noLbR6WkLCNIAZLsbd3Wun5DJUVTKxlYkg7bHl4Pt84XCxtqHBJf8R2ebr7Z2HUyArPHH4aqCw3c2vqQMTLGSpD08WGFYGLkMTe5bB/frk+rjQpHCIwyA0XLXXuPfK5ftJ/vY2IJEdKHlokjFx1PNLv3q4UOqK3U/wCML/QFa1kOn8VdMZCRJCSRvK9O3bKkjR3LHxNrMCNvPTAiKR7RtNA7qJ4Y8/v6YW4yHxiANoPlPrf/AHiUvRmNdWVJAQD0oVtA+hNZ4KiKAXLN/MdtdcVBq9kS71si2BJ6exxgfT6hYzIUEygkrfTnt2xrQtV2Wo4kUxmRrQWT0z0UkM0yMhphYby/v888qKHBQqoI8xYXznTp/DZQZDd9eCR+mUVksATSKusdIt1Sef8AHQB9vY/1x8kP8QsEc1V0ev1z1xxTRzFzXO1thKjjuO2MjB1G4kEAnsCD9fbKcV/9FcmeeFLLbmXvQwlUNGWAa/UC8Yp2r5iF2/ni33RcAF2POwmv1w0JYcMMddPN/wA/65LPotDJJubSq8jG9yL4bD5INnt1zsj6qYNAscYhBB85JK/NcH4xyQiCK4bkPu27bjqkqRt9M2bTzojJp9XKp9WVWof8QRXp1JwoRrfDCwfdto53SK9kfH+zlDAyKCoMZLUdx/UZ5iIXYspkaqQA2D7nJJuxxXi68XsbS0eSypI1n25GB4v2oIjvn0JYNW8xPVn0F4xYpJdYGAMYUc7msOOSQB6e+OcLKRHpiJWomRQPb3H7rGTdWDDN132hrYX2ywad3DHc8bMAB6Vz6+uBPM5fT+LpJCB5j4Thtx49a5rjNH/24IwYsDL0Zm4DCuh9f9Zk6yLUROokg3tGtqqkmhg1PUOuL6LopIBO6B/DJ6JIuyz7XwcqEmmS1bUQ+UVRdeMh0yzy6TzKqruoWoNjufT65cRHCFhZQSPMDXX5oDpgfGrYH2BHLopfFWCVXe6YJ5q9uM40DOxDQMpPmtmFA1xgyTaLVRETp4qpbW1qV57Gwb/rgxaTTPpjsimWO+Lkk5Hr+Kxk0osbUMghk3fxShWugTgn8+MbEsxCuNoVeqsCAD65IdBp7BELsRxZmkFfr/3lEmggmjYSQIzMaXduZfyJr9MySFbDZkigkkVlZmIWlIJX5rFJ4oK/d4HlDN+Jn2L8g9TfsMbo9BHGXYxqrk+X+Eq7OOi0P365RIxD7ASv6WcfjHGLy8IW0Mmq1Hja7ZOqmkgjY7EPqQfxH5/LLHRY3sMSOqhR/fCQKI9wfr1AthnCjHa55F17jCwWSayJWImUESRC7/mZepX4P9c9LK7opgCLa8BgdtV3/THTRKn8WvOwrnnI9H4+ikeMo0kJ/wDERyyD/hXFj0PPpxk9boddFmnmJCrIQorl6rn2xo1nh6grPrFkUqCI9vm+eO2RzDUbgAyRBhSrs3Ee5JNflg06L4a7mAolr5PzjL5HBUZxTKpdQ7AvDoZXIPLuyoPpZ5/LPR6qU+do4mcEbWEnr9OuZ+o1QimWNwSZBuHF5fov/GzQhAwAAsdMaPy85UCUOKse7GwXlZVJvyJ+L684k6eNlJWfV0g/EJWrA0yTSyLKWiChj5Yxf6/14wvv6q66aJdpYgBNwUDmvqT/AJyvL7Er6OtD4si7ds4qrlJNDqQP0yE6HSGdjJDp5GLE+ZASe54rNA3HccTU+wNtDbhXTi++FMsJeNmFseh9v39cWSbQydE/8KR9senWNG5VxW6/Xj3xkkKxgfwwhfg89TgDaSx8Wh3taAzsE6SykKwkFAg7aBHS7yfK3o2hWEYMPMii9x6YW5nUJFQsnbQoWPeumGqbpkO7cByF7X/TDUIr7lI54IAsDDQlk0pYTI0qs38rKPwqD1+cNYIySANykehofXHGK33BAQ3Ujnj4wpSuxlW6I+MPDts3IidY1jIkjUbDVE8e2diNakMbZANtlrPX/rGxJ4il5EaxWyz1wF0pWW6BDHnnriU8aGtDNRGuoZTCNqg0T8H2w4QQrLKw3g3dUKwklAZgQKqvisNaddxFXx16j0yyq7Jt5QqRQCAqhQfYUcGwFCsBuNUa4GUeEWXbRG2wL5xINRgupVR7ckYJR2zJiUiLsSQPI3PNX/rGlkO2wygL/KOMbDAApPG435s4qLt8s3ewfXBGDSC5WT7dvKsdjN0od+/rhyRSMaiex1NkiuM86qWaUyeYjgDgXjII1Nq58voWJzKNug8vQNgUoGawASLyafTAx7A7N5gyBWqufXv8HK2hTwwjBqqgwc3k0wQKKLPQsEsQefjFkuIYsnZ5Yp6RWZl/G5HBHoB+Wa+nhZISHC+NJbNRofsDI9FHG8n8XySrZPm3frl3iK7UQhI4vK/AvWL8svAdTGW07b2XgdjQHv3vIUHiQ7HLyIRwSwO7npYr8/bKtU8YjAZgrLz2HTpeJWYs4jkUh413EpYX4w/I1yBC6FTr9+j+7SxMij8FH8j85naSHRw6hneHwSIysyu27ctc2OlfPrmwupWfV0IirV5938vHXB1uihbSuXl2xJTCxfm9bxVG/wAkyinX4shSeAaVHRdmlrYNwswMSAAb7enYYwCOJA0ReWW9u8Lt56Hj6ZlrEp1Dq0gZpj4b0pUFSKquhNH0/LKvsz/4UaKxZ5I/4bEnoQavp3FH65JtNWVcaNuLcEQFQTd7br9nBlbURyhykSxV5nJJN+mAUksIqiMjkOCAfjGGIx+aWpGHIUd7zpjbVI5QS7OjMLYnot9frk+n06MjpKAlm14og+uUtJHIpjK1XccbTiUk02lBR5l4sHy2R9B89cVxTabYU2lguSVhPFDp5XYqt9QAfbI/CaJpWtWJbc5C18/ll2olhlkDQAF63Fu/oLvIy2xq2dVPTv2zn+R7RaIYKlAsjszkUpF8+4wg6lNu1idtbx2xCJNHtkDGQsLHSx7V2wJ0k8QIodmlG5V3VtI7jJqTGpM54cglZd1FSGXjp7/OUwxGVgWJU9T3J+udiVgleEvI5DHnKNOqigFAs8bew6840Y7QspCG05WUNDLJuHNJ/SsYIC03i7WUuCGv+bn1+mVbAeVHfgni8RrHOmTbussL5NAZdQSVvonybdIU4jDg+ZmH4ifQn9cRrDtfxIZCezEnp9O2WaWZPCaTbuQjkseK7V75MFilXwWBMzE/hIb9Ml8kU1g8G09EaWQTRSRmNggoseoJHN2e2MiZmYQEEKUoxX09PphwxJpo2hYCRTYYjn1/f0xP3RGjDPKrA0FdVN0PX/OSppD2nZVpWeSOm8gHlu6JH9xnp0AiHhrFFRu7P1NdfTjFIqFz0UbrY1Yv2y2PTgEMH/iqdxrnbeVhcsEbp2DGFOnWQbaIttv617Yso5SQK5jjK+IaHJF8ckYTudrjh6FqOgBzxkYafbandyOm2iPfGpWBX2CJEcrZ3tdDbdL84RJmepVUgk0NvA/zi3ZitFWrgVXA96zrcrXibX//ABDt9uMW/A0dKACoyY/VarjDVBLGNp8ym2J5r1yF3i0rVvZpG6KDx+WO02sKL4aofOL7naPk+uLGST0Li6wdKwMZkfcVAIABo5PtEacFysjUBuuhnI445w0pFlWYKGO3b9O/1w/K0hV1CkrZ9hfGK3yYyzAHfcp8FgNoI6307HDijlEblaYm/wAXUf2ygQRrMXLFlsDaW4bKfDXwgQFZauulYy+JvsRzoztQ8kYAKimAJo3Wc+8RaNRH1Z629txwtaspfzSxeEaJ3817Z7wZWVAxUgcrt6YqTUsGygftLURIqMaVmA/DyQL69++Z7SatuKjWrAKAX8V6/TNHUwxzakiYI3ADAix/1iBAupmZkUgJZsAgL8ZSbd4GFJCdLrWSVlaSkIs7uo/1j0AaNZCxuwzUvUY2PS7lLIvFEDdwCT2o4W1f4cW/aQPMiLY+uTadaZtN4elj8aNCCR5up6XipJXQbxKrBFpyxBFD2xi0SdljaaAPlo+uc1ESbLMgksdKAI/zi+Gi/CKGebVVuHCcbdpF8/1wmMhVWCqGdqDbbFAmweeMAgwpIA7MnLWQaHHTjF3O84UGO+W2bxwe3GTVtlq+hx1DaaEJ4YXjYu8/iHrZP+85pp1mYRxyuRfND9LPXDcz6iJI10z9Npkuxx1+Mmm0Wn0ru8s8asDv8NpPMR8emPcgJR97NGOTTxp4SgjhrJvr7XzxnI9UIgKCuzDrXT++ZMOu00kTvM4HPlocNz0rv+eD/wC5CPUFI03AAmMopKseo5PAOUTYP+Z9JG0kyF2DFSeqXwB1yGnEjMdnB8m/qB8e+SJqdZO6hxM4sUiVx6/OJ1H2h4Mpb7uQ26rJU8X88fvnGm+SQi+No1NSVmTYWvnmu14MIRAVCqOAfMCQT/bMmPWzlN7QyFE5Ygqb5+f85xftKWVikOn8SIEsqynkV1B9KyO3bGUHVGnqtdEiPsRG8oI6CsDT6yYaUGTh5P5ep/1mdc2tAkXwUJArsR3HNZVFqdSumUyCJnQlQwLWb9qzOw8ElQOn1DTSyDwLIWtyNd+pI7dsYZnOpZVtWjqt3Rh3GZyjU7dqz7QV6optRfQ84yeWdNUo8bf5gB/CujXT8XzitJoo46Uy6pX1Dq2mOzhlI4qx3Pf++E3gAh2hkVlXzCtoI69O3+89Hp11IMh1pXw6FeDt/Xd64baNtQsky6p1kA2E7wBX0r+uUSom2uh0f3cQLLJsjHFgtwSe+K1Gr0kWrjaZvEdK8isO/fJ/uq+AplllZW/GjvYSule+R6fU6ONdQCsG5TtRSo5AF+YnsfXrhpSMkaf2j9raSHaiuPF2EKF5A9CavMVftXb9paXUayERxpvCsFPJIsDnkXWKk1k6fZkscSG5DtYqPIpsV+npmNqI9TFHtFlTKm4++7GhFNlFCkfZ6b7UeevOibRzu645NQPFBZKcqATzY9yMw4tKkU6aqSQMznhjYFmhXtmm7LBqC8rAydAeK5znk0ugOC8NBp2jcRsbsnzDoOOhxYkk8MR72jXabJF3Zz2nrVQswZCI2II/Cb/xgFFGmLSuWIoKoPYd/wBfgYybJUugDJ4ke9InkZVJsqf6YCzTJPHGdMdhvpwOnoPzykTGBBtVwKBJAFfmLvrkU8k8sqwxwamJdxt+DtHr7fOGhkMhNvsdaYIwBLe/c4jVSxhbllKzsKTa3AFc8dznJYgs1Rnc4XcCpBA+fXKNPDpvCEh3FjyxC9Dz0v8AZzVo2LT0TFIJIFjYI6inIot8C8bpixbliVHlYMKs+g/ZwFSVmCSq7RRtbybgSfbHvHH95VoWptwLbibr2zUI2Ikmi0GqIZ1VQd1P6nnvjlVPDZkLVKxG48XeBqIJJJ3dI1IsEPIQpI9ryyOJFg3LsVW/F5gaOPVitpImRJS6qAHjPlDdSD6nF6zTy7vKSV7qi0W4yiPUCA3LdE0XC0Bfz64ud9MZreSVlJ4RTQv5xVTNbTJlhiiR5o4UZgfwNZZR84vUSan7qRIAzHggdAOuMlhj1MxkCmOXbtHcnEaLVO07RbR4i3YIs7gePpWF2MvsJJYpY44I2UL1JDV+Y7G8PUvJBuTTyGJWH4ieB9MfFByRuYO5thtAAOe1iP4hVUIC/iagN3v74m9htWR/ZWtmVmSVtzHpsWr9+cdr5pGmSeEOpU0QR1GH91JVnXarHjlTx9ME74qHjDdYO49vkZm3RsuxL69vtPTFVEscimiAaA+pGF9ykjUeLLt3dAzAWPX1x0DRQO4jbiXhvDPFdunfDbTLG3iTu3AoMyiyP1xuQAIpVfUBO1evAOendmVlNRA//ibrFYsaKJWZtrtbghgQMWniOg06wufEvc3Xj5xLYaV2gTCgDsUTaT5aJ5ybWL4SLsQSEUGPUDNCLSl2Yylo4wCuwt17XgaqKKNFjSMlgpNKeK6c5kMpaSaR4yqiRkWGPgnpZ/ftj5dU6Hx1li2yKFRpVN+9DrmRvVC6uPFLX5RwSPT2yzUQtOkcjXGqDaC62BlegtKzrJEdMfFn/ihz1XgH6dsDxkTVugmRg68yKCKHpitcjNUMAUmuhc+b8+mcTTxxEsFJYi72cCvQdcAfAW8Easurm2v8Fce31zS0Gui08X8AKzkbmCjn465laiWJ2SGIE7eSvRMJJItPGHiYi0oj1/zjXStGcbRdJMZdSJtWPITRO2tvpWRuWRgsJdnJNCPoo9TWH95fxTvj/FW1StCvzwxJHpuJEcS7SbUnj65r+xao74vhx11cmi+7075wrwxjtATZbq15K+plYUlJuWw5HNf4xQmP3pgrbk5LWdvI7n1xKHUSpk86+YimrgXYxsMwAATtyN/Wr6ZnwwKrLM8kindzb0DfpmgZ4w26QjbVcDkcdMD/AEZo9NEh2qih5B1LHJTEp2BwwYMRZO4H1wfvapInhrZLfiNkg9MRIkszmWFtpSieD0OFRYUWQxI8iKxKRRi2YN1wJ0iRh4UoeIsKJPUenx756CaCOM+LUwKlSVTrkurSM1THbsAquKH98ZC07D+6LPIABSLar1555AxsmkkTVqA4DAgMKNDjAH2pcSAx6h5E8oYL2/T9MTPqR4s4dnUsLXkE/wBeMemFWck0oDKx1Qd2fndGRY6HGTQKrxuHtlP8O6A5zOeUShAWUbSOvVTXHGOOqNSASMJLHmMZPHTGphPaxZvvm3TEKT/9rI683X6ZEYA0o3Odq/j8+2vgf2y5ypjL72DKD5n4r2vJIZEcqJCGI5IdTa9uD0OUi3QA5YmV2HiL4TAsLs2PQjIlCNNv3HZfRGHlOO1ErCIg0XU1Sjy/v8skg07GUySyB+1Ai+l9+2UistgbKNPLKdt6eVa28DjkD14PfKTFMRJticq1AHepJJ6/zZG8Q+6mZ23EklmaThlvrX9u+eg1bAhiLcsSdzjkkACvp/TKtX0cysbtCh/NHH5gBvIvp3vt85VJGAtFo26DxA1WO/b93gElUKRyOQeVHB49SeSDZ9sTHFEzqX8ReCwZWsXdG1PFn6fOTpMex8k34A8iGMUr2jc/F98f45jlVT4WwNw34UN97rk9cnMGp0zNvnSbjbuBG8fKsQD9CcKPUvHIpMZABIBQKzHiqJ3e/wCuBxNZTHKA/iiTwyBwCxs9eg+a647UfaGuWEBGlMand4lDr06+3tk779hJg1VnzXtHXrV9P1xUKTyNs8VYB1VI2CkcdWNVfPQfnipGwqebVppqZ4SspG0lVZ3HehRONTXt4Ts2jhicUKZaJPvsPx19ckgVZELGUpGGpnJ5NHgE1Z4ywI8RLo6eGCAW2i1r1PcZm0aijRskqlYN0jjzeGDQ4omuuOOqj1QVpIo9w4O9ub9P68nJI5JpfLBObN27gsTXBHBFYyFtVG3/AJY3ULtB8IgP7XZxGrRilRBKzIpjRQAFArn3zmoXTjTkRvbWQQeSL4H0yGR3guX1I85IKqa55HTG6bVxsYzviqzuUPur8z+mLTCJf7OSFgF0oNi3KL+nzlUMD+GxcRoCaA3bro/pnW1x8QSqpCk+YobHW/p0xjalolVmUsHk4UDk/U85r+w6UhRGoQoKq/L0Uf8AeRLsk1YgMZ8TUNtoEjynrZ+Lyy1i07yTiagu7zLuoD4ybSPCHl1eotpZfwxk/wDiXso9ffjCkrsRWXxaWRppZ1kG3gAhSfyw5YYVAWUbbFbQtnp2x+n1qtpQDEqyeynn86wJtaNRKYTLtKGttbbOakLbbPaSJ9OV8RhqJXstti2qB26n0ylnjRS7Aybf+NUt5Fo0GqeRpJC12DZNX/rGHV+GpjjWV9/4iE4Qe+a9A1pzULJqtreMqNyCCv8AL9cASSlPAdS/8viMb5+mBDuk8QpNI5CnvQH5ZAHkimZWRirdPUH86xG2OkaunmkE6RsoUAXuUdfQ5XqFDQ1HZe7u7vJfs9vvcqtNZZVoS8EEfOVT6Ql40QrwbNEYa+hH2QzRrIy2kb7VvzL0+PfKyx3q5O2QgUAvCjOyJGwkkWia2CjQxcSMR5t/TkXx83/bAw2GiKy72kYE3yOmFHuYEBC7BetVfuLx0Woic7U2NtHbr/3joWH3cCa4mbsaN4yViuTIohI77Z9O67f5iQQw9znnlUzuFlZVACsqi698YzyK5UUxUAXvoH1OIliCy7jLbVW3r39MR9BOanSI0yyMySoFsAp+H3FHvgRyQrplQqF6gebp+eW/e0MXlDOSt+Uggcc9cgSFoWikcsVDVs3WD784GvoZP7OOsxjWMyeeTylh0AvvfTHJpmhv/wCSkg2cv1rGvGzK8gYoGPRDzXrhMX02mYrIJG2lY7P4m9b9sCX2Zv6JFhh00FjcN/PlU0P38YhTM+tkZ7ZB0CJYFc89MdoFb7vvIKuW/GW3Env+/fGTpPQlUINzE8N2r3wVQb0VDLLADOzeHbem7jLInlVGRmIkJ61Yv0H77YkSSSKrAvaNVoOGPqfYZT93k3swh813169Oc20CQTN4NuzvtAqk684hZjJK3ihym6hdcj8/zvHTxMtiEo28UeKo+npkzxM9szohBsLdn8hmdmjRVr4kkRX3FgCAAKs30/ZxEniPLsA3GNRtUmw1dif99sp08BlUL4ikR8sp5uuh6ZTpoOfEQqA/rfTt1rKKDk8E5cSHRNIYmLD+KHO5SQdvsMFlZDY21zu2Hv7fGag0scQ8NlDFjdgAfT3yZtNExdAr7t3PND4zS+NoCmrJ4YQmkOqZRIBZoXV/OMOpafZLtKK1Ekd/W8oP3eHThdwKKLJZqHpXpnzX2j/6m0Gilki1OtQNHRRI4yzA+nHF5lB9IN3rPoiTE58GHcP5dp8o+Bno010vg7lG48OV4CjryOv/AHn5Zr/tX7R/9S/bDzaVJdPp0ApN5bZ2vjuc3/sn/wBHTSRnVavXTVtO+JZGUt/9WOWfxRj/AKYN8R92jR6RmVCpN+ZQaC5I84eVNpUmVuDuBvM/T/Z3/pySBa+z9EGokDw7ah1JJFnBmi+xdOGXTaGLxFvcsahQnBIBIrr2+cWTi12FRd9G3JpmMIDBUYD06jFwwQOfFDWo5qq5r1zGT7O0yLFqI01Ol3AuwGpddnp/MRWZ2rWSCR/B1OqlAFgnVuA579D80MX8bCoyeH0P2lJDFGzanUQwqV/E7bb/ADzEH279noo0y6pdWps7NMpdj7Div1yLUQ6Z4kfTQSrq24Lyr4jGx6sScWdNIqR/fXZoyaUqSDyee/XFagisYOqZUftOTUrOJtNBpwreQz6raQoFcot8/lgSaib7Ut9Q8iowG2ONDFFVckEWxvk3Yxv/ALcupaQu3hvG19bZ+OD2r698qDvpdGsEK7HBuw3cdePfC/kS6DwM19MsP2cRFpwqiSmCcFvoOSOnU8ZS2i3FdPqkiaEgbY5LotXc8EfGNnec6YSpGf4I5U+Wzdj2P1yOTTHUhtQol3LtfeW5Xufp8e+KpN6Mokj66fTboYhBp4j3jiC8fI5v5yY6ecbZAzMHUtatyB/y+n65pShJPOZIGlvfvZug5+hHHtntJBNJBvaKT+KoL7OOl0oH6/XKc8sPFIp+x9IWDSoC/wDMzSDkn3bv/r8rZDpaQadx4fdhbNd/ljI4pEVZAvhqfxKRt2ge3rf55Jo0g1DllgCxOKYlrLj4znbvTXY+CSWSRQJRLAFABc8+39c1JNKx0W+E8E2WsbeOwr+uSrEphUac+IwG1qI7dK9uuPDyyQiGMkHbt4J/O/TCkvRJb0RySLBMyvEzpQFq3Avnk/W/rnAzGbZEAAY9qGRaF36isZHE2qZ4ZIlRTyju99Dz/asoYLpxFp9YY/8Ak7qNoY9ufXBXobSwkJCEkudrgKATwO/By+KCaF+IozuAHBuvUk5LpZNO0sshW2JIG7kKvoev79MrLP51SQmOVKZlravYZkCV9EWnmZ9Q6UFWwSVW6/P64eqeBnlCux2ilaqLHsMbAZIomVZ4Z5CSv4N932G0cjvijpXjhbeNu0WSqbAB7Xz+mFxw1qyUShn8J0ev+fUg+t43Qyg6Y3S73NMKoL69OvGd8IxOxM9KV4tK79Pms9GvhHed7LyGTjr+6yaVDtpo1NPHEFtNjbq85T8VZWsBZ95QA1Y475nxynwxu3AD6k/OXCVWjUBTuPPf1y8aOWSYc8bPp6CnzAVsPI/Zz2mcsq2bJF3XAPfA+9EgBFURqaZX4rEwzzLKUKUDyV4498qpK7Fp1RYh8OQs5JjY8GjxnJEXUOrxyLxdNXPpV4bFhBtI37q4Xis9FDs2uFSNK5NV8ZXvCf7BKbY9pdkAHmc8DFxuTI4DBRtHPr6ZUVIFMb444v64snT6NBPLLtViF3EHr8YXC2ZMRBEbAcNJJtoO35/1/pnTppQ0haTcZKAs/oMt8RGSo1/FyB3OSTmRGSVZblApUA8pPf3wOCS7CpNsFlAuIJ4YbqX7jv74baqGJdzskCoBt5630v3xGzUQwt48jM0i+Zj5gvPPGS7W1EyiWRdsYtFAPlPr85Jz4jKKfYQ1upcLsTw4h0ZgXcng/A/XOJomlDHxyHfzmRjZN+tfFY2QMi7WAs8lj2+uCwjVCyg8DnYO3fm+uIpNv8h88GaJHjhZGCEqeRto/kcGYh0pKUDt0z0U6JHIbJN0L4I9BeckUTREFBxwbbscWdNYBWmBseeFkdiVkUmxVEjtjotrIS527aN1xhRMFh8JgCaK89caFXwh5Va+h3YIxwLYASTxFFkoeaPTChUopVjwCb73go0ihdwRmDdATxjQ7eE0nko9r4xlTFdjdw8SwCQReKkRmcF64BG1hx+eODlgX28dsTJE8oC1e4896GUkIgDLDpwvmXYeOeuMkdTVNRPBr0zpjig8pTyhetXk8jWQCxBB+nviybiMtCl5b8Xm6jaLsnPFXk3g1voAEAH9MGMktuWJmodR3yhGc2WQKpNbvTFjoXgiaFvKTXA89i/rk0DrJMUCUa5BsHNKRRKioo3bhTYuHTec+EyBSvQDkH5zP43ywykq0ik0byFSaTniz0xjGbRjw4tK0oo1Izg0x7kenTHOngSbQbaiWNcf94B1YMbwwBmkLdCCBxzV1hglF/sa2/4DFPJJpYwUhSZ+SmnNrd9zxz65VDAiRsXAJIA4B45/z+Wc0kUiJubpdlaBJPrfGLlMkjt4rhI7rYhPN+p9MtyS/JiPcR77/AFcaeJ5FhFbm5W7r5POTjUTvI2+IKr+Ymrs11r99MfpIIYC5g2hD1VR/bH6iC4yoHB+mI+U1ZrjFksunjkhI1EZlS7KsKH5DGiNI4w6xjyilA7C8KGIBr5bvtJ9MNzuUpuFkX6UMVRwzkzip4cbXuJJu88ALDKrhqrjt9cKMSGOm89cX0xiIoXleT05x1GxWzjAlwOLJ6Hr+edCtVHgjrR7Z5pPCJO033OMU0Tu7n8srxEsQAqQ0WpmwQyxKxL3YorVXWHJEjKV6WKBvkYoQB3MbtuPUHsMm1JdDqjoFwgMCrkX67cONgoLKoDN+Id8GSBpNwB4A8wPfO0AgVRTgWT6jNTs1qjqgrZqweG83X3zrKEk8yAjbYG4c52OPy0SOelc5xjsYFiSV7AdBj+aA5LM4HRQewJ7YKQzyrYkCoB34v5xZ3MAGdWWjZF314yzRkLCFZbIJr35wQjznvQZfisPCLajtHyDyBXt2wEaTYD4YBHNcGsfvG5g1bqurzlI3QkX3XjOhwXhNSJX8ewqgbb5JHQZF9oTOWTYl0Pxc0f2c2Atp1N+4HGTmMK1bVIPII4r5yHyfC67HhOmY8Ka1pYXSVN6cP5T+X0zWkeSEAgr1G9ieB9MAyIoBkoE8blW7r/vJdRqIwWL0TELK3xz7D9Miq+NVZV3N9BNBp5wdQiBppV8obg7fSj0Br65O2o8HUQ+QRvKCSpBBPp25vAaTxmCiRobXYZES2DcVV5R/wC2tPqY92okaMqDsJ4se3+8X/XQ+Ls6FB+0Y0hYxjYXeqJbmq+OcLV/aCIm0xysDZYqAQK7e932yiDS+EGHh14ffqet0O9YrWajUyK0GnjR9xpnL7RGP7nKpVH6J2nI+di1A1Gt8cHxAHG8rQaEjoa6f1zSaePT6opBNzK26UXus0fNXa6/TGStpUkeL+BG222Ckbie3A+cij0ennhPhuviQG1aJ6KEm6J9D+mc/RZtS1lsU8rozoVdwSF823efc52PWayXTyeMUif8JEdEjFzhtNIsx8KLToxMgPLPfAr0/I3nPvEmrQmGMxoAbZ/Kx+R+XONJ16Io3tFjKi6aOJEDuxok8lB3+DlMGljhDeGAL5bj8Xz3OT6NJQb4UvW4FebHQfTLb2n8QrkE5aCT1kpNrEI1CRzxh2YxUQeD+WSAKNQ0MhG6OOwzcCsqOoQWoAHciuuTyBpXM4kDqAQFK0V9sn8lPV2NG+juoZEVQvnNCkB4B+fTOvNFLJFuKbkamKngYAgjctuanRR9fpi1nUll8Ikjrtrzf7yXJpjpFKqiMWUgpyT6/HthjwYkWVHpQLCs3X1vJNySanwgAzKtheKB/vl0WjtvMFUAdly0Ll0ics7GJcnmGzaD1DcZO8jCdkk8N6Xm16d/8Z6O0mkQ6lqHRW6D/N57U7ShQIb698q5PiBLSeTwlJEpQhhwI1pRzd4KyPRrw4wP/ES3+OcXqZpYZIi+3YyeeKuOncfH9M47aeaJZWZpIpTaLRFew9s5ZXZZLDkKySQh5AquLLV1Iz0eqlgl20w07rYkAB59K/Zxi6eOSSKFFqEdw5APt6/9ZPtcyeEsJjBYrwtA/wD2v4xKa0bGWppV+7H7tPusbgK4PrX98794khWNWiI3H+U/hP8AYZ2OJItKiRK5MVHdu/fGBNKrgCTYXKmvMAcpi1YT7Pakkbi4bc6jat1urteBFJIsMWxw5j85Rbrntzx1zmqBfTBHcwsr+VhzxXfBSQKkcSkKFX/lyT3r9MF0x0sKgxdvFdwrnhVY8r8jD3Mu6mHLi2vrxioJIJZy24CUV5T0OK1EHgFvCG12JY9efy749tKxK2iWfQSPrGnvkgbaJojsT++2Gwmj3K43bq8wNiq5s9sc4Z/OGQrGQa3dOOfnO6nTvI5tgiluKW+ayLVrCql4yeHUokoDOU81A8AE+/1wRO0MZ8SQcMACrl654u+nTPSoI+GYjdwCRYJ7+91jtMhWVYw4dSoC7QBx2B/ziq+hnXY3TuKkCodxP81G/arPOFqJHVWetvlAJvg+3XKERo5TuZkqlo1RGTzQttO0lQrWfKKP5nKSUqIppsVJqEkgCuEC2ABtvnqfr75RBM8vG4FV6KpAPGTvp2Vd8bEyMOBQ4PphxvNIwjYNG/QeUUffBFtPRpJVhZtktmoGU8EXwMghd4ZWjnJYv+EItd8uRQjbW3BnWxIORkx0jeLRbzH8JHvnR8kapolB/YTziSNQgkB6bq61nUeFlUR+cHqwXqPfGHTqkH/jLHcSy1WSJMfEIhQBrpgW/CK7emS+S09GjT6FyvNM7Rxb0DLtv0Hzk0SlYWAcHZYPJo/PH+cVq9RJDq44fEBmdbVK3cehrj9cZqdQ0GhjVBvkdto5B5/f5ZBJ+l0qQU+rhXTNHIUh3rfL0arj4vMhdfq5dWkOji3GgC6pS1Xcnv6ZahfVoJJ4iJJgAfJ+IDoRWGulYyhjVKePNwR1+bzWkOqQK6eXSVHO97huHO5V69gcSdbOsNFzAY3DBlNX8gZTKDEHDjdL1DqvCj/dYvw22K4ZdrWOltd98En9BVekqtMmqlWKTyPzdtt3VyTj9REJETUKm0xgCwWG32B/P88JissiKYXMaN5mUDj3+fnGySlC0Ks1AcWp6ep/zgTC/wBAwRRb0mnhW4V2ijQA6+15xdN48Xi+NW7c7RkUvp2yvcYNpMZc3dbbBPv+uFpATIyCLzPyQBwAT19MPKxOTWmVP9lommZotQbJVgihr9ePQ384Wn0c0WlkBLu0hvg1XqSPfNNo2WR2TygPRO2sWgiknbeCfDbj2/d4OTCpOiaLQyzmGMuIhQ/8YIIFdAe2Vapmo23lQVY5r15xiwBJA5pkNk2eFwpdkgMcSkWfMw5Iv0/ffCI5WzFjTUabVyIjhUd93JskG+2e+6LLJtmbciHkhuST3ytmLPLHEquVsqBe4e1+mEI38GN1OyMsLB6/vpmbvopYMaRiQputSRwASF+tY8tHKFVFiQUVBurIPX9MHTW8zuGiCXwpB3H2ynwVWYEqBYpQQefYYK3BJS0h067ZGEpP49yt/wAhfSvjGt9nQTTkmGgq0enHvjtbqNIixpZVlAsILIHrQzqSGNNpm3NVjyGj6/25yqwW29IdLpIYCyQQtBuJC3VNxkX2jFDHG0UzunirSB5CbY/h49iBz7Zu6SF9V/FnUuRzHXT247Zif+pdJOQZUgikcvZkZidoroB274Yx2x4y/KgtDqB9qR+IBsjPI7bmP9xj9PCzM0AKyRcFixsr731vMf7JSJZJK3QxNKJKPFbweK78g5p6XWQJqGWCDe0hoyXY69x26Yk4pNpDO/DehhaKNiqoW/CzHkZOVZ1MWogNlrUghf1Bw4NTM23zbUYcnaAAcdqG2E+UKfQHlsdU42c2pk5LxuI4IfDBrzHzFgO3tgzRSRancdgfZQJrge/vnpNaAGWmZJPNdEE1/TE7hIViLEnr5TuBGK2h0meeMBFWPYTxexKod8DVI0UhqZ3jrcT+Kj06DLNOsWnhVJWVCeRI3O714zhkiFysjBEXqwHXsaxli0FuyfT6d5YzLDL/AACSGaQV04IrPDSeG5IdDvojaKykaqDxAyqhLjl7uvQ+mcl1Kqjcoh20objmucDUaDciDUFNPqWbbJbUfKtZSdSgAXc5HZNh5wFrWMpLSKppgCO3x2y2TTIsZUOPNztA4OBW+jSa9M6IRSm9soUtYDANu9xlEjGRdqjYo83mBs4zZFKoV9niKOVHlxYMc8oIQhltbPBHt/TN0a7CSOE7Z0jAcmtwUnn5zzbll8OPUJ4j8udvH65SiiLTeFfI6e2RrHM+pd5kNhfx0MLdCLSiKwpIemY2CecKRS5LSyC06VxeJLCeNNiOlnrdc/GVQK7R+K/DjghuBmjroDzTLkiCo6I7KWAPm5B98WqMRsa3JFm7AH1y1pEk1Eu8BSByL564Hhs0JZS9sCAvQfpitIopZopmCyK5dRCeOBQv0w9dBHIgqRrBBBU3u56fGJ+6hYmhkC3VgsvAPtj1dhEKKqOAF6cDqazKmZ47QlZpl1CwSqyqDauKo+3W8IzNp9QiomxXNubFXnZkWRqleM+WgBYN9sRFGz6oxzeWPg7kJv64Kdhxnp1nQtIsheweS1d8U2qn3PNHbQKPM9cDsf1ylo4dRAzJIHINUw3bxfb3xqRxeAUkhWv+Kg1hUTckjLA0ZLPLIDZvaU6Dp1PX6YnVzNHF4Y1TJtJ8ONCdo98vOmiUu5iG6L+Qg0e/TI10+obUhmik8JiGJUgfQn+2NtjKSZNGjyLczkkUVIFA/wCs7qom8Dd54iTewHivXKNdCUdY1a7bd5V4HqDWIl8WRTGZRwdoarJObR07FEPvjhp/EPIsryP2cZFG/iC1O0LXsT842TQzM8QMZeQDlq3V7XhafTuHIcMFYkbXY2pw02ZywCJvC1EnhopPBIHJ+P747WwwTMkyuDJzYbjaa9OmdhhG7ZAkdda3d/XnHaPSrEPwIAG3Ae/98PhNvbMjw41JQ7H4sg3tHuB0wCiIWaRlQEUXrqR0HxmnPo4/EEolFiyV29/jM7VafxWsMrrIaIVTirSqdkWsaU+WypRqVb6HGwSS6iURTKq0AAEJF/JyjV6H/wCTGsaqoZeSQQR6XnPs/QADfIAoBtG32cpWGclR37UjWHSvFQ85DWB/XEBXj0h2TFUq755PxmjqomMbJ4fO07hQBq+uRiUzvSkkAgb/AExFaQEyaQIYt7EjkMRsoHOauVZ4RGZ6WMWqyMdo+Ppjp9PKqKFYOAfKWNg4iUskBikuVqDWtjafS8eNBsy/GWWRJeZCOCoauh6j2/PH6lHlSR4hQXzFC9k+1Z5vNteMNuJ5JHJ9avHGXwUkSKnrgNtpviqyzf0ARppjp4f4oQyE0lnki659KwtPLE2o867CpJsvR49Di/HLN4EibmblQARR9PTDRY4iCoZJC34msc9/+8LSMmekl0rsEn2ol7vUn5yYywhpBGxZZTQXdQA9MbqYIEiWRmDhuy+t/wBTmdOfKSCyrVorHr9ceEU+gNlG7wKMdhlbo12BXOKfVJLOfEVip4JHX5xGr8WKMkUGYhtoOKm8SONZI4iLbaWv1+OctGCek3Kj6MGMqieBat5V2tdc8/8AdHJzpo083hsrIDuVhdC+9884KahNQ8YWQgBvxWLPesrlYQUyusvmAPAA+B9ci7WC0TmLxCxeXwUJuQD0oAKPk/oMdHq12mERFnjAoFNpftXBPbFsgnEj+I/DVub0HWj3wtO6M8D+ENwBBNFiR2sZm8CkC2naFiYtm8KKsEkGuef84uDRFCd0hEm/d4bdVPW69crfUguoVwwYWxIojuQR1wRNI0QYm+QVKW18eh7fXFuQ1DUlleR5Jm5Aon8N8+noM9IAwVvFR3PNoDyfb3/1nYHmn4RvEQ8NXHFevTLvFBjZZEj3BCFsla/+3tgeAM7bE8g2SEHoIxHV/wC8ckI6xSWyLW00rG7/AKDnGs8OnZJfBQg/hLEsCtde3OKbVo7s+2NgPLxJRUdCebsf4wGHaSPwVlVnBY87mIph6e+aJqPSLvkUEtzsYDn2yJPBjFK7jcBYVr5/fbKGm0whNK289/ENg/W7+mJ2BiYPCZCGj3CwSVflsKVC0hIkV0A5Rx1r2z2jj1Clz4QK31ocH2sV+mV6+GXcs0ci7lU2LXnt6ZvTXogQCOKSZ90aqgtAPIne69P6YMssDJHJG0qKQSf+IPe/b+mKbVSSIADJsNqyFzXA6duL9snhhdNTH4zGRWDNHuNgeim+el/NY1WE2khEihxIfAYhqY1v9vZf1PtnmMkU0k5dSW5BKAgA+mTb3VtTqJQ1H8Ng0fQ8fljQFmgV4yIplFsHbm/7YuroUbuFGV5ZJNosNu8t4Gn8GVtz/iBJU9CcZHo4TRVSOpdt1jCaB2VZI0AYL1B49h6j5wUa0cWGb8TI4UjdQalODvG4LMakcA3zvrBGq2qNOIY9yqW62Cfyuv0z0inXSCWJI0ljB3AEmr4FH063xmS+glEUgPEaNTm72BaxR3fh8Gms31J/f1yr7umlg2l7mQclFvr/ANd8GPz6d50DtsNMi9/ev31zSTBaK9PIIdOFbgNz25zu9CjPJ5QBQF/pk6ENMEWN1O3zbgfjriNQzK5KqI7JVWLDaff4wWxatl8qxIwERVWC7hbci/TFiJ5oyJGDL0PTk96yXwZZpfESYqUvdsAo9BXPT9cc0zMViBHJFr1AHz74WaqGDSDTN4olYLW0hmuuO2NVTPCwViCBak83XfnAlMUymGR0ZvVQeBnXnIZPu9ggiwWHT64AW2dELNIKVQAPxngX7YrURrE7DcZGY0O9D5xkmi3MTJq5BQ7PtB+QM5Jp4mKM8YagNjDzX84GjJiwWRVjjijYEjgcA+uC7F5GCqQwb8C9h61lsaxppSwq+oKrZGTRacF5HR3urW/LQ9MVqhkyaKKaGcRyTI0e6zfAr57f6x32l5iI4YmaMHzMSFUnrwcRNPEZvBRHYRecq67gT6kDrWSzLKRHJvdgjEs7L5j60BxmfQ6VuwndYEiEDrvkYKqk1z89z7Y/VSxGIrPP/FPCkXY9aHr8YoaWKSJJDKKJHkA8wY8D475e+ghSaNnlJYrtHiNZq/8AHH1zJBbSM6OCUQKrhmtdqshIN2f30zRi8LwN0cgWQgDaoIPpXpyTnngTTFkcsN1kbENH9PTGI0Wn8F1kCcclq5/fxgS2mLKVngrsip4khJIVlH98CKBtzQhCVPPHF898sOidERfG4JsuevrxnNLAIdSfM6h1vczUW9gOuM4u9EUsKIoXWOyCK8wJPXGqjsYpDKYybH/WdjSQOXeVAu0bRyfk0cS7MGLK3ibzYDNW0e2XiuKIO2UsvhMOTIQd3zkmu1jwsERTuY+by/Ssu0kS7a372s/iNkH0P55nfaPi/ePLpopFX8RZzY+BjfJ/mzQq6Zif+o9VPokfwZfBYJupCCxFiixIIAz5P7O/9Pt9tCTXa7VR6SD8SqRbyD1A/vm/Lpz9ufbUg1OovRaFl8RQSfGci9pPoOOOec+iSLSpExY7RzZ3Dafeh0xVN/GqXZfGqZiaTSfZ2i0Rh+zNHK/igeaUAGx3u+/0GaS6D7QEDoXfeF/hEUu4VyCLr4/XKGeCMnxN1lQUAUfocrZo30IvcXcVRfk5G+TbYXJpYQQRw6XVRaLZtLx22/8AEePyPfp6ZHrUGn06B4gsTNW9fLx2uz1+uUGcQ60xnUWVALBlJselnkfpzlEEEBkDMAyUQC8lG+3Hr7nBjwa60ytBHukbUPOKUEN4w7d+O/8Af0yiUPM0ZCq0e6yEHA+B/rNY6PTbd8kcSAgFfMGLH5+fpk02miVBqFPiyAXZYJzVcX84ZQaAppsxvu8BdnWKRkEnPl7+t3f9emUiAvMiSFGjWtrlbIHJ9sa+jEgVXU+c0X3c316cfnj00Uk7BmgHlFAcijXX/rJ6U5JErRuuo4RNQkpK+Xmvf4wjHDFqvANoRR37iCT7YcUcyLbRiiLrbYHTizjynibnnKs34gCbHPob68ZrA3pBNGukYSOlxtblWJYiv7ZPxroHKKHSi3MZuvQdsvmjMuo5jU3HdhiOOeDYzse7TaTwdPuXd+I1Qbi+nfvgi/sdM+ZVUkcDUal4pHPhJHsqubH9CPTkZdoxNLrF04mIgRbFtyfax0vE/bWnaGYGJSstbTzfcEH6GsHRyS6R16RrMocGj1PuR0vLP/ODdn0sUh+7iKaNVjYbTfcXwbv+2RtoxHK+2NlYjhQdpsf175BNq3NIqGRZjQUnoL4OU6W/EkR5nlmV7cs24niwCOtj19MnVIWqNCKFI2iCFQ7kjajVQFc2fjp746QxDTKkLu06mzsSyCex5ziKNRHUenCSjoVX09e+Nl26HcqJ4uqkUDaBwB64Yr3wk3oMX2W3icgyOEutvlU/9dsW0hRpIiiyBaAZmBo+tX0xmksSEFPDLkjyyEkkevP76YLpHFCwWXysdtR8P1F9v3eB1WG29ItGYj/5EgKdyQTXFjjt75c5/hmV9jXGKpN11zxf98CPZ+AMlUxIHIDdAfUZQs3hII95kY8XQoL/AEusXwaT0j0EhknMwmCxxvzFtH0yjUSvqZi0kMkZHl2l+KA9e+dRfA3HzSGQ+Uk0QT2xgZtvkhXeeoJu/XGX+aFfdk6BNRIGveVIH4SSObxw0pLElUJA8qMo5v59cBasPHJdmwA1dDz1w0FxWVK21jzURiemYa/w40o7mU0LHv7ZYzb2I5pVr8VCvTJUW5aLHaOlV373jUpnID3R8zDKxeE5DLV12X5xzwOPjFxyeJLICSZTYAroOmMRB/LwCeDfX5zohcSRsVIocgC7+uUViWh1vtUFqVPz/LC8SV0AU81wNoB+uABs86t6gAnp7Z2WSNY14JZTwLs5ZP8AYh7bJHGI3LSsOdw9cCSENJFIxYlQa79euH46x0rKXdv+IJrPSNHt3CMuxHQmszqjK0xL6EzR+eaTaP8A8JXpT+XP656LR6cy8DxGHAdyWI+uVIU2sBwe57DFeMioytIq115xWkqYbYMx8pgk6midpusExpGheNDYFE1ZrDiMMkYYeQD8PlFjOCjFZYMp63xYxXT0xPIpalPNL6Vft/rDhG8BZEDA82b4OAEWVyo/8ch2l+gHt1641UkikaMFiFFBq6+mLGD7Hbw60beMqmAyJe0sG6DrwO+cVCJWMOkXax84fjkdx69spHhAxSaiWGNb8vI5b6/vjPFP/kV4toF8v/Ej++dXHCXIllVCN5emDcsBd/TtivBLlZY2c2ASkl2v0y6PTRRK/gxIjOQXKr+KumKPh0eqsho85yzhWsdSPWFUKWYknoRfOE80awAhAT6VecdyJFXfQbkGup9MIQRBdqqKZ7sdvU5lfhnXp0hlX0s8WOF9qwqaNepY9ThFgVUVyo48udQjUWeV554rnKqO4LZPJOzncENgA89vbBMqNIYyKFc/6yhog8ZVxZH64meEKiiPdzR8ooZOcZdjRaGRAQRGNH2rVAAdM4JBGFVLphzv6n3xTFU2qOAgtvN0v1zpjdU3xhmthalgB84vJ9INIMIYWsNQJsBgec42rPI0sfXhnqua61k7JcjQy7mAbcn8u2/T15vGwSBisJBJJ5YDisKltIzXoTReLp41lYyHd4jlSQOnT49sYWeORY0AIrnn27ZQpXe20A89MRNEGYsQFa74PTLyjStE1IGPcWNpTDk8/iwZVNBdgF9N3Y4UbhHplZQOhfphKis+5zaizW7rk6tUG9B0ylUsqysffHFDvC3urqPXFFxQqlY8UOQMcjL4Zvg+ox4VVAf2LkUKeOT0+M60V1RogcEjnDMW7kkmzziTA6m/EPwOcEk14ZMKNWjlILsy9QK6YykJthXxgxSncR1rvXXGBk3EVyceKVAYCnzMW82FYLEsSB/xxbxurHw3HX8sIKqsOTff3zWwUdkKBTweRWehIKXRv19c47KzAWffOIvmYrfHY9MN/kbw7IED7vX9c4FjNbj5yOOM6ybgbO0r0z1bkU2OQOffMu+jeDVVSpA6fOLfToQWJrijY651HCstgAjiycZ5ZDuH4e2VaUkLbRCYKQyqCAetcc++Vw72TfvWq9Omd6R0ea7Xno1DxcyDnoPTND41HoLk2cajbFw1j6YKKFCsDyexxOo07l42SXaAeeevtz2xrUqbgmK360GgpJyswQ+UVZauuTvM8oCpYUHgAdffDeRbRg3JI/EMXC7syqsTAbfar75Kcm3VjJUrOiEzJ5t9RnoT+L6d8l1yR+IiqvIPJ7rxY475pqGJH/IjOOqyWhSPxOo3D9cWfxWgxnTMZFlnjjaIGOQ0GRxQWjyRXr+WaKSAzAh91dDVdu5/fXJ45EkkaSCAJssFmS778YzdIEU8lpW5P/H3rJxzopLRusrwybYVz1Nk5Gu2ZGVw/LcNGwG0+h55+PbPOaIWeSRkBNkMR34AoWcgmg1Gpn1D7Xiij4CDgAnubwTk27SDCK6bKB9k6eBVcG5Va2mbmzdkm7FnJdU4bSymHwzMvnjCAPvIN17nrmvp9IvgAywFC48/n3AH0Hp8jMD7cm+1I9SsS/ZrPCZbi8IbizDoeOQKvjjrgfxvGNF26sbEk2r0eodWBZ+Lk5C+jfHQ4/Sq+n00UZULRIPJq/bFH7M1+mgCPrNsbCyrgeIpJJKk9KA6H2z32PpWWGX7O8f7wIZAVl3AkK3Iv/l88YkoPodtVZpLJK0niUNlAGjjZHDIWR1Xm6BsH5wk0hiUpFLus2HqyB6YtdPKgkUvR4JZQeTlIxlWkG0+hqRxzRszErt448x+mPgUMnhbfKLFleT84oLN4A2SE8fzj+2dgdkR2lFEccH8XHbLwSTWE3bQ9qCqtIWA610yY6aKPVNKNq3RArv854Tu6buVO2wCBx841nEkW9eTxRBrDJxkZWhKIiuZfDVSOLAzuplKoSm9pAvA3cEZ6R2Uokang8g9T73kk7yu4Mu3Yo8w7ZKU+KpDpW9FajUyrNGVVFVwC1t1/wB4EmrMytITtisAs1kr9O2enBk0oVtrG/KaA+ud0ZOghZJGjmLg+4Pv/wB+mc/Jt68LpKv2C+6RFZmBP4YwR+Ie3T+wzz6utUsEilY3PA6EflwMdJpoZVUxOm3bYJbuP7e2BNp/EQynYpFi7KqfYZtMmjiyxSx7Gi27GtWDUG6/XAMTs4t3iKm0IJAYdfqcNdAto3HhSdVYmxnRuO7wwoeurD8I9b5/LEd+hteHpYqUFWMjFrI/Dwf7YUpRQFR0YgEEKOn5/wBM4JGicQKWsmidvJr1xRZhqgDtpxSI42gG/wAR9cF4Ch0TeLKIilKaY2aPX098bJDURKIm4kgqFoE/J9sSrFJY2laPcAbo8+39MphlV5jGCSA/Kk8Di/rjxrpivHaFBDG6SRxl2AAbpVX79xiPDXT6hnSZowf/AMLezq130B6HNdfCjn2vIwO3ucg1cSLFqD4hqyTuN8ZaScY4LGVsGDVacfw4kHlQE+XdZPpi5JpCu0xhWBG6uQT1rO6R451UBHWgKY8g4bPp1RQpkd78y9/Tk9Ml2tY+J9HNHplJUyLvJJIRhdcXnW0Y+879wXfyQvNHrwe3TOrI4HixKwo0AQF+uMeddikDc++6Ffv1zJxqhXysbI3igMsxWv59t4Mkw5Hm83G0jgDscU8sURBdXscgVwf3eK8VHl452GvxdfevTGbAolKkeFuRGl2CwP8AGddxDKjBCxkbmh+HEGbxfMkli/Xgc49SZYrIjP6Uc0ZfQGmDLRk/C6qeAxa/75yF2iYKj7rF3uA/XETMg3KiI3N/i4Uj1wGkihIVwGLUpJPBH7r8sDn+VjKOFrsdQnhzKCsh8w3VXp35yV9M0SUkA20TXWv7YQAjlDKgayDbLx+eNm1ARGme4VVuHc+U/GF/l32ZZ0fP6+Mxb9T4i1KPLDs22exvr/jA0um3QrqJ2SSeQhnZbsVxXrXtl/iPLqllQ1SmkPUXfm+a7dsoKRK1CR6Y+f4Hp75LovyIC1EQVyfMdgPlHtjoy5O8vRB4oE2Ol12yx545ZdzICLK7k5sVwDiYoVjc7mANAlb+t4lAu1pyYvJGZC6syqQPJx+fpk2l3SsVkPhkEWByR1980I1aN2BcFWBIDXwa/pmdJo28ZHEhjIIG4i6vrQwt6rMuqKvC04iYRMYow2088np/nIpYIl1W9ZHAUC76gev65T4JcfxJSxLfi4BxE8iwzRkNuHUpRoehNYcemi3ZSArG2lIa+ATyThpDLYNuAST1v4yWBS+p8RYhuHFbOPpl4DhSWIBkajt7c5OtA20MfxgwMyCq6XQPPrkUkTKGJWixNhVNnqOT09Mr1MgESRsGK3XSwfnFmRvD3KeLtrHNe2OxYsXAZhAPFm2lTYocf7ymXUKqKzjz9Ay9T9MTHB4lMZBuPQdRlRjKRbi4FfhpCbOGETSasz9TG/hlk3mqLAiuD6eueg1s/gGNW8qbVVSvHocNdNG+0sXVwvIU1u+mPBRQoVdrItUTu/PG6WBsXGsrD8IofyBeevHxlM7Kw2/dy8hJ7fhxaqjwu6SHmr8Imh36XhxCYh9jOg5BJ81g+nrgimxGySDSQwTL4u1bJIG4mgeovp9Mtlg0qANLIwYGlYODX1zi6VRJ4YQsvP42/Y75FPpZYxGHVFjibhge39f1yl1Ho2N9jto0+/8AiAIO/wBeuZP2rAG07uSit/KFtgbPU5olC20PGRSmwxu/jItdUkJ2I+nRQNtD8I9cgVhjMGfSx/ZzIsqo8mogYKu82CCCCLPXluPbNj7NkSaGzGA0dFi1gn5Hzk2oi0s0MOomsyaaRTTCj4d0TX1za0uh2auV1AKsOCx5bGk+SRSUkk7C0UrRy06rGlFlpxQs19MbqYn1CUZAqEmqIsYuSGUyhpRGTVhCPxV8e2Mihnkd3kCF+KJFA/34xo3VEH3ZwwpCu8y0tEb2N4BlRYyY4SWVByEtj7jCm3oojdf4r2AUHT+uJBWJ1REZpGvcS3JA/TriyMtF+K7xuhmauh8Q2T35J5GT6lZLclv4bNwwa9vqK7/0yqbUaQIYpUZV3XYXkn3/AMYmN4NTzt2rVKzcEn1xGyqzaO6KKJFYeGsitYoC7Hr+eUwyiQ+eMDZ+Fif6ZKIp/vxp1IqlG48cD88pdmjUMkaMV4JB6fT/ABmVgkeh8ISPJLK9noGfcKOWgxE1GpDp6/2yfa8hBPhqxrlaPHteNcjd4cpPk43+npeUWEpaKbTSRybADdWzHoPYZKUEbmhTM27mx++2efUyidwdrOt+bdyRftndupVRLIrCyAaPT0AxHvQyTXYIk8DUxWxMe07gF45PW8tMhc8RsoPJ3XQ9Ac9sElFhdrQoHgf5wVG2QLuLDrRwpCtpj2Qxjc6hL48uIVWOs5cOpBpeQen651x96VSrbdr8gEHv0OcRQszK8gLbiVI7DDdPBV0Z8+neXWF3LqpFVyAKw4dY7ptI2FG6+o6Y3VSFYgS1xJ19SDkxeLUxAQRt4f8AMw9R2xWWWrRkkniP4qRF1UHykDn6Z3eyhlVbAHN8kD6Z2FxuZoAxKAkgVwenAz2nkCnxZGLMF5BoUPTAkBkOs06QTrIisEXp2+ntnHkkhtyTudLW/NtB45OV+C6zEo4dXILAEkjm8dqYo1k8Rkch15BboBlaYeSwlgtim0Bh1vp65R4smnjM7fgPTz0B+eccKVBjUgccFuR7DEy+VfDMhFG/PVV2zK0B/kWjWC7WRKbk1Vn49cSk0Os08sPmod91HIZIZhCIBLyzcHdtJHbkDjLI9IVRp45kDkBW4DbT/fC5WK4JEc8dTs0gVCfKoNAV/wB98NFVtMdSg2joQx/F+WUbj94WPYk0Tr/EWqs9+MbNpIBEypGEVx5Qq9K/TFT9C34StG9+YukRHBT+b05Gckhl0/hRPqZauxssm/ftWHIkelQtcsljst+/FdsI8gSRylFBuzdn2rLxaoVtiDAunlZG2PMedwWib9cIm5WUbBt/4ngjBmMjlpYy4kI2mvxfTERrq4R4kkf4u8nfsL7YrS8Ch0QSSf8AjyhEvyeWrrClhj089Kgk3+csGofTFy6XxmVZGEZPcmwK9MfPpisEcaPGtm94fn49saMEK5UzK+0YmkJV6LD/AIvx16euTpp5kBMbbkStyQjpd9T+6yyWGPTNukRJJh1O67zmln2xqYJQiljuNc16dfnFvaK3SHN4skCkuRQ8shNn2zO8KQbvCRia4ZhW2/r+7zRk1LCJhEBKCfxk8g31yf70UJ3yu0ZNCO7Kn34ybbsMHhm7mMrQU3IBINhvf6Z2VpBQaBI1ZuRts5pwJptUJN021o14odL6HIYdbp2naOSV7DinI6kdqwp30PZA6+GKY2B/OOPphzKNoNNXqPT2OWyujv8Awykihj+MEAeoHbjItRvDqwCqjn/hQ8vWv9ZRWwomih++v4xCRqDwR+Fvp3OM1OpZnCRoqRg2K83Nds9GyFaZQ27ihx9euESsqqgTasZpIwR17nHb0xDPCgXbvKuRY4oC8lFwRHzX5dpNgkd7F5pzyLp2dmR3Vha7B0Hr8/GZzXqZR4cQZVXgHr8keuWg21vQHQmWe6RQCbshzR/ziJnd1Asi35VhQ+M5Nvi1RZ4HBqwKsYMjPIDI0Y85uyLJ9a9M6YxSoi2ayoBKQ8rsqgKgCXZocD+tZVHMzMouVnpiOCoYVyaGLaKMzkSSNwm1FIJ2kHvXU5UzFgEmWPw42A3Ang9KqgTnM3ZkiWLTOxYFH2ycHzADp2AHrlun0e1kTzxNQUCh62a6YhoPCbmRdqKAtAkkn25o/XASQkMzTAGNyxUEKG9LPXA7YS2aOPd4R3MShKsEA+gN/ob64sRs1iQeBuTy7lPHbiuP0wZmEhbeQVY9GYde5PfLYl1iBWEaklajDP1sVYxAgwSaVJWXxCeeFJKBu3z6YoJPIAV05Me7klbIHrz1zWH2eFQGbU7SVBcItixz1vHSyqmmb7uksyn/AP6Ag+/IwpfYjf0fPpfhq8jmVQxAPbr1rr+znpJkkZvCUtI3mJWq47dL7fOUaj7P1MXnU+cnk7rofH74wDoYo0aTxIEAago3KQb9f384M9GTGacRaVbCC73bKI59B/vGDUwbNyIDs5pWo/TIK2PvEqORRIVzSj8/2cPUSx8pFEUAG4+YsQb7dj1zUarNU6nd5Ubwy4JAoHn1wpZJJRsLRAsAVFDj1FdsjheEgzEbwGHlUXRrmq/d49WcOjCFYww4JXmr+e3ziPAJBaYQgkzOlDnanlDfTJ/tHYdWYmdishB2K1ADt6830PtlErMjM7MW8P8AAarnijWJ0rESshVZKa3PB24U6N+zuk0si6ySMyPuDbmf/wDaKehI/SvXNCJoJVZFl5H4lKEjryCfesn+0YGkWKeFi0kNsDETbL3X6j9azulmjaNZ4JkfTXQUGyL9fjM9Vg7K2LLolHkcbbtTynPY+meikYMitJSvQLNW317d8AzxuFu6Xy0eLP8AcYySVSA0aK7l/Nt4v05v2wJmOqgaZCUBV+AeOPT4zyweCniIqHk0icUfjOnUyTkhiN5NBCvXsL/LD06y6g2rut8Adb56/GY3XYj73OQsWxI2FqS449bJHTHASxUFcsd3BLWCew+Mph0MjhvED2AqsCaFd8bGmmhchXlYgear/rmqxXJeCtcJvDuOy23afTELpJNSpjdWQ0OSAwWj75bPO5hUwQ0Ca6Hp65KplcOz+LHflAI5wNaaLdDHTSxKE3Sbh+ADobwJphDIpECLu4Z3NAD/ADnhNJFDtKAkGhuHOSxQQ/eZJnXxHHCu1Gj8flgbQyiXsIyjSKXZxyquB/XFpE7T2ZGBbtVgX1zgaMttkjYvwQASDeUqFvxGUAA0RZsYKB0dkE0sSbd9/hYHkX1HXAkJRhJ56UVddCfTD3+CpKKL68sSDgzJukjZZEplr5OBipnoplmjKlfKeLHUnvxgy6h9MhiHEhA4C3uGNKRREKYyWugAT1z0sU86l4SA7rRPSj/oYE3QU1ZLo9M++SZtTIGkq1CjjnjJdWq/f/DV90x825OePTplErRRfaCxtN/GIplYFVYDi7zmpnh08u9921PN4gUGue59MGlE9GpBIYwyKwBUjcqUbHfrhto5VlSfgoV81ncSemUrMdRpVaOSk5BvjcOlViCkcHhy+IxI8oCEm/nGpCW2LOj8WfdLOQrN+BjyD2A5oZY8CIIt0QJN1ZsDveSR6xfEDEIG33uHO3147ZU5kkDDado57lh/jvmVAdjNVK1CSQbgnAUcFvrgqqzzkTjgAEbun1GC7sIAsqo1EbWZqB+uBsermBICVVcD++Zu2BLCtZHVq8QEf8U5r5xGljmnDRzsjnd+JB0F8flhQq/hbkjG0A8nvfSsMziGEeTr6n8I9RhT+wfpFDOsVbKVgDyx4+a9Mnk+0U0KvqJ2j8GNdz0OR1ziTI3mBMig1f4r+mZH2+Pvc2g+xhLtXWTGTUALyY0G43XYmhlVLlLBFGux/wD6aavs+fUNG0I1+oknVTW7a34bPbgY+ebQxad0TTSbwbXc9BiR6Drl0EMQ0sRit9lqJPDvj0A/T6ZNqdGuqgWEo6DfW664F/p+WJOT7HjVkkaqYVLTRO4UB0hTn5J9cq1Uo21B/Ed6ZVDHr3GSJpNO8iLqNjMOAkbA7h7ngV7dcuRoYtQEcRrQOxN46fAyfaHkJYRxpukQRgm2QoG6eoHfEAadtSH3vsWtoI4B9R785XqJYpAHjNc+TqdxvpipC9DxAFJHPFj2s4rCtOq2oXcJZl2BvKQoqulV2wlEgsg72FlWXv8An2yWQTpINwVgrDgrYo9+n98o02tXZ4Uqt4h56cc4G7emccwIwcF28QSFbUqOp+pzz6kAFJI7IsHjnOiQySXtH8PrY/vhs1pIVC+wHUD0/rjJrwT+kcMbsTMFehbANZIHz278ZzRTvK00bKDtNhyPfL9MkqOJCHUhWYK1bcVEWmkaR4dgH4i1rQ7cdMNUhuV2cdYwjySRKN3Vj5gvbpkU2pRIw7wxk2KpfoefrmjrY1mhBSYl/wAPHAo9cjAVYUjCFQex/EBfNE98DGg7WmHrfu0rbpJJxuIYUBwPjqfbE6bUERybfE/FYsDoxr19b6Dqct1S3E6rS2SCFsFT6/vvmXHJqRIfGYMr2u5lHeh9OduNHUXNLSKJdAkj/iZ9tVwoBrjC1f2b921kOr0pP3lpAGUICGB4JJ4K8Y3SQRpJ4ThwY+bZ1q+vX06fnjQumLq0gVBJdi62r6cd8Vy4sF2WnXR6CNmBX71NQRL5A7f5wIdRLqlZ5SoZqG/0+L7ZiaRF/wDdmhf+JtO9XQUoX5PfNgRxRaQyclOfD2qAX5rj8s0m+hHFIu0rhFYuz735IA4BJ7fnhOJDO89+QX5m5odOMDxd6mV5NqhgAhU89uD34vnGps2AyMI1DcV3A4wIS60jh8NCrrEig8sQlCuOfe8ocxyaagQQjCtq8L75xIdPP4rGRaAI3BSBfobzn3Uo5VFZQPPbdCOt/v1wOzNoKXUKIR4AIKkBrWr9xnEkLxSN4nTyjcK57HBl066yNmVykjLQ2sbA7/1xmmRY4yqnze5Jo/2wps2JE+wuPDaIF6PU3fvjnaRR4XhElTZ2Ua73lTKHBN35uQf30wJ03qsrID2D9iB2zONC8rAQPGPKIyL6PYLDKzGnhgOoBJsrZ4FdMS0McoBVWY1TDk39M4vhxkrJOKPQXXesaOCvSgOFtKIUD1IH09cOIqqKGb3FDmsCQ1EGQbwOtJuNZz7xvbatmwKJWqx7piVZQoTZvah6buKwzRQPwR+WBHFLVpJ5u5K3x6Z2pb/EKPPUkn29M6F0TOKEoGNLpuQOLzhj6yj8APNHp8nKYZRvN2L483Gc8RoEsRyMrclkAIGNxi0a2AAvKdQ3eryLWRRqodD4hsWfUZXFqBLILBjK2AVI/pi544CGhtiUO00CT0vt84s4pxwMXTERoImCRjgdRXI49fXDaBkiUmPct2QfXBEKgMiSkW123XChafYsM8lt/Men1+uQSV6Uf2iOSAayR4XbaF8zDgD065pKpXaqtu4r8Vk4kjSrHIzQuLF2F5b4GdbwjtRbvbdEXz85aKUULJtnnTTkD+FvJa1AW/MOL/XHxXW0gBjxQ7dclWLUbDGFLITV+gvrfPvliVBZc8hdxJOGLdivo9FLveyKPq3Uds80Mjgg+Y1weLr1xT6iJpVpWZuyJ1Pr9OcfuKmySq+/bGySpi6iTw2q9jdLIrDkiVBE6AAAgnvedfSSFFfxCWA6LxZ985FpSDR1DsCB5GI59e3f8sioND2vsZ4iyMGZ9qnyiz3+MZDqdOYTNES8QsF/jg0MXp4kil8qEKBwzNfGUNtsBVsX162MtDqxHRLJPri25NIigHlnk7fAH98VIdT4G0zqiM1kbRurji+2VyQkkgsSp6Xzi5kUEMAjkVSemTny0dNCAjIhAYMLtr5Jw1ZHtgAaXm8BpJBqU2opVurfpVYc0cwhen8KuN3pkq9G/oE73Iu5hYJH+Oe2DHIoZWC068UQRfpnAhZl3VyoJYH8R9f2coBReKFm6PYYEm3YXio8krwxjZVnqK6Ybykr5St1iGeRuAOK5vvnVoAkrZNXWUUm8QlehSIjrztNDlq6keuEzowosnpV1hEhgeOCDfHTAqMjcBZUdThd2ABpjewAWOaq+MKEgGy1AmuRnYpEc1sIIHBIzjOHIUHr0Hvi+2EtJshT0r064My2tqSO2TvPqE2+UMt0STyB/fD8QOLo0PXL800JVARj/wDMa4vHxKRdCv6nBADw7TZI9MJTsSqPHFkYYxoDZxtwWgt3yecXOHjphGHHG3nDaXZQo2frhyMz7VZeO1YUk7N0JUNK3ICvXSsYsLIGcrddLNXjViK2w+mcZHZSWY8L2743/NrwHIVKV8LoFa+BnkJKm18oNA3jUiB3BlO0nubvOPDsoRrQHoarDwfZuS6ARmoA2efknOK7sDvWrPW8NVjRtzNRAuzxni6ny/ynge+aq7ZiZpDHwW3cdcJVSFahWrbmm4vEzSAc0W44WhRP55xNQu2YPwIm2sNlc8ZHltFOOFwRfDAcrubljfXFuhdCm2l6Di8KI/w9xqzwPT6Z4NMQr7i9fyhax3TiILCuFKjbx3JvF75YnJOx06DaKr2/frj1jbUgS7AOe4xjpGtEfiHNXWIoNq1gbSwCOYgLflJurGddGZmdSSeleuCDvkooSR0I5w6KDcz8+mMm2gdE4hZAEMkVHrtQjjGamQRKVRNzAeUVQ/POwh3m5bgfi8vT4zmplYKfBfzXQB74KqLYe2Q/fUgnWFiQ4QlwsZLDgEUenrlSsZJGNSAp5qNgHjjJX3bfDdjIVPCxLtoH+XrjWn8KIWypa8q/VR6emJGVFGvoaisiCiyxgct3vJftaLWNpo5dDKyNC4dkU8yL3H5YyOdppKWOyGpr6Y+dV8JxtBAWtvT6YyarBdTJPvCtCJpI2jkfzBGptt8ZmaY6dPtuDxFGnkkV4zHwPE5Ff5xjpLp9esengXY8ZksnhKoBQPTvWaLHTyEN91jeZejlBakjrz0yF3LSvS/o+SdYyQF31zYF3iZJ2MsZbfFHdl93l+uIWGHULeoijIHezR/7zFWKSSV2aKFY3sxsIR/CYHv3IFc+t4XPNNGCZrNroDqRp4mJUWFKN5eO5Pf/ADlrz6cptm1EG6rKmQKQPg85knQL9paVJtXBpZdt+G9Ag2O4HFe19Rlv2fo9HDHUem0wY2FkSBb/ADAwxlugnFVhxdToTJGqyOx5A8ONnu/cDjC8SKIGEwuoYCiCtfIJPXKmkSU+Z7r8Qvp75PqlUliWdlK2Fqx9MEmkrQFroRLJrEnV1Kqh/wCblT+inJpJPtC2QyQIGtgo3O5ParAGOfUCSLY7IyjpvHf+ueQae2mDqQwFsGJF9Lo9PpkXP6KpV2TTrqFiDrqtQCwsqI1r86GRQTaySTek+4xXfiw2f0N/1zVKvTmRnZT5qW221nnQ+MjLIgCgKTXm+uJybHTSRFotY8E7fekd4T/PEjOEP/3HVT9CPfNabWaabStIk2nKkgAxjj4N+/bFIyqzOVVjYHJor6ke/phSRlmkeJ0YAgGU80B3Pv2yikuNIm9lYuHXRsrh5B22EMLA9aHTPB1cMvj8lhwDZOTrDIZ2XULC98UtMD8Ejn64L6EKgMkMMQPAXwx169ck3bofigvvROvWKNtmwFn3L1+McZYvvHhuhcjmxXI/zmd9oaOGMfw2lSQrv8nmFDnub/IjEjW/akQ08sem++xuLvTyDcVPfa1Ece5zKLb/ABGaVWaYhEkqlpDGTyJK3WL/AA+uVQTp4myOQGA+YMvN2Df79sxYte4mP3tJYiD5V1ACbhd1d0fjLofvBYB1RmPmKxmwO4PGFWn0CUcNML4gbe9qO1/kaw05l2kqSehvM+WfwoWZ2WN14snaD6nn/vjBTURsEUIzUCz+Adw+b6Dp3OPytkuODZbif+Eo3k+1n1zkcbmZykO8ltpJfivfOTSzasRJGkWnEpKoZT4hPF/ykAdP+WIdNXpmpjMysSXljcRAUPQC6PuScZQXrwK3CvUxK7BWBduaB5/LI5TNook2gjde5ep+pwJdPM4Yo0gJoox1LkX3PXFavV6hZBvKvGGG4x6jofcEcZNpXhSKKRPqJUVqVFIvp+vOeIEsy7JQtjkV1yOQ6iSGNl8JfNdb2YH6Bf74zTrqpVZNSkUEgsqYgWJr06ViUx8RXGqry7+HJXHfjHeJJDpwtn8VVfU5AwkWIbtTq2aT+UkRgDuBQv6X+eKT7O0UszTTLMhLA7C5cNx1Nm7x0lXYlX2PZ9PFJ4n3hElPO2T8Tdvw1Zwl1CTRBo49Uz1XCba6/wDIjj6YEemjRlkiYRFXv0J9qrKl1C7lcrtkqyGAJ/ZwLiguyR9Tqg7JBpyHrbune/Xih9e+EqbdYW8SXUu60xlIpPUqOgGOMnjGZpDWwArHIKAF9sGKJkDSiO0Zv5jyD8+mZyfRsCCwrEVUlt44a+T8YMcMhDhpAwH4Qp8q/XLdqtEA2xl44Xn64CxlFcbTbCx5uD/3geiciOeCRtQsunlkDR9RfD9P1980IVQwNUTCQVZ3g39cinkSFV06xC3UgFv6YEE7gM3i+IB5Qd/Cn3GZYFptDvvaCQFlsKfMWYWD65NrGheJnMJBAoMbJI69vpntZDJIzBGcLw29R+nx85IFddQAzttK7jQoHjscm2ykYrtF8EsKwqfChXvQYk9OuE0BbTF/AhV28zeTsO3xiUiuJHSJGjJBFcFffnOq7ad1Q+Ixa/MXJ4xoSoVr6HabUwxusTlDI22lUHv6/rlqIsjPvXndYyTToWbcAtolUW5X5w1fxGG5gpB5XqTxlMVE2tGfdTJMzk9a6Xx9MTLI+nnIo7TdcWaxyALJayEc82Mm1CypI8sjmTzfhJAC/XA+grvRsbAafw5JWBIJBA6f4zizJBEVLnkeXy9798DySw+SQt0sVz15zp01xBXUsqURzZPocBnQJXxDHI29JjzTcc4qEMYPPOeOG28X19cOZy84JIpW2ksar24wXljEh8gZlFWR1+M1rwKujkbMlOsRBKkcAAHLYNRBICZVdVCAW3Fn1GAixohlcKrqNvuOLwo2jSEseCF5uuTjxpCS0ojkU6XyKT5vLfVvrg6iCdoY9qLYIPIvj0xcco8cg+VjyASGsd+MpM5UiUDcteuWVNaTdp4TxgLJ4ZVdteYbuQMkLv8Ac9vhswO5D8XwSM0HkVg5FJyBTdRzkMrmLdGxU1bbgKv6ZCf44PB2Zv2hKJtDOIwCGjK7lQ39fgj++W6XULqhBNC4F0SCTd5PqEMsG4pJ/Crbx5mJ57ZnfZMk0CJIwXySvAQBbiuhIH0xV/k6GrR9P45EjCR/NEdwvjrjYH8VraUbqqttHM6VfGcFzIDtolTQPoDjgkEbqqyHcDwvYf5xoTIOKoo1TBV3LV3ts5IUjQFUXa7/AIrHNDLINSjblCEHpuPIv2xPiRszRGPadttfU9s00m7sEbWEk2lWdd8RKLG17+xwluWJ023zyTyeO/zjUnjVJN5BCvwm78N56UxrHduNzALsvpiOqwe30CN1qw3bNu22Asfn/THyyMDFpyEKsOW2jtksWmVEKRqQwFtXJIvHqRLyLA9LvjNF0gPs8PDD7k5kuixPIxGqVy99S463ytV+hxzQxRUaIYD6c+uBPJAVDQyEsCAV3dDhksAuyGHQhfOilnZySZLvnsD6ZomANuaJRHJW0kcXkJ1ng6oLQMb/AMynp+fv2ysTM0zhlMfhgFSP5vjD8dPBp8uwGmDXGzsZFFgEc4OnEtI7ksW5TYPw+xPOMljBdpySFLWW6A9vyymNI49OCqAE9K/ocbhoreYTRApIrMVCEXzRP1OEsiTzHww9r2Hc5yYR+G4aFWI6c0R6/GK00TsWeGdZDQ7cX+fXJvug1lh6zSsWjnicR7eK3UPfEiJoKMMhjS+fLd+2XxxxNGQ5S1bcV475BqPGV2MKit1IgPB96xprLRoNvCESaaLWxrNqJdzghAhofU9svihSM7wCJHFByLGJh07mZUmC1IvJFHzentlEcv3YppUoug4DfzfXNHoab+i0aRdgVQDY5YcX+WMeCIKoZiaFXmdrftJ4o22kAxgFlsc+2TwaifV6aGTxaBJ97GW5pPES/wCcmrbKp9Hp9VIu+UoQx/DV/wCs5Log7DY5K3xdMf16ZLHEtsUY8cX0NeoyyKbwgELXsPc9sTlgzTXTOLo4oPwSbb/mIo2ffJYPs0rO3jFm6klbsj/GWTaqMDcWXcoHDcge+d8dEhDRKSpbzlen55N94FOSR5AgDBYHW/b8+c4BNHHvIVo04A4FfnnI5tRJIymNghApgbv6cYtoZydquHToVIuvfCroWvs7qVTUU0bmMheCDQzJZVh3RKW8j7i2/cDfb4xmoDI+wDk+h28DnGSCOWRQCqMoteOCfTCsKpUSQRsWZaCq/Qg83+/X4w9azSaZk8VnWFQSh7nHxafwZpDPGAGFtscEfQdcTM4kRys48NloqLb/AFjKzWrAjaRtKA7BhuGxVHI98cftBLWEyBZBVrss9fbIpZX00cdLTMpbcDV+/TOwb3mWaEW1EgkVfrWNyo3BNae+02VtayRmzIeTRAHr2xTImj2JCs28sQxbn3seuOMXih5JgE3kMCeD+WcfTO5DGMjzA0OAw9mxb0ZJVTOCaE6faYnO7o0a/g96xTmQRAUGB8wkvbly6Fo13MZH8QcDdVH0+fjIjAQBI1mqNda+fTEfYY14Z8szQsse9GcvXB/EfTFXpxMY2dnZlBLBTbfvsc0PC8Jwyag2TYAHS/bJtREy6gsoJIFl6vt8dMeLQ4EWojaNhI7hOQAxqzVcDJotRqIWY+HYJ5DCz9MvaKWaAqsasy/zSUF+AMl+7NzG2sRKH4U6MfTjkZSNGAjl0qNvXUHxjdqORx3rtgj7pLpy0P8AFk3WyuBV+3+eucZEheZUIO0VTAAXXr3wTqkGlfZKgJN8Db9B6Y/8MTsU8UqkYkeqKB+RgSrttgHRTyAel/5xVosh3Fyealux+XbCT7QmcyblSdQpULIAD87vX9MsovwFidRpU1MbPajnm2sj65NHpm2p4c4k4IVXHQe1ZrSS/Z8umVpYGJ4tT+HnJNbtWFToIwtkiwvX47j/ALx4TfQkl6UgOszmygJ8m7jt9e2eiEqtUpO0jfuoc9eCPf8AdZRDHvDSqy9Tx+ID59+udjMSyLFqXJccRv2B+P8AOTsSzk1AKPDRS7fiXqCfbtnYnaSZQjKJC3CBOW+nqPnrjT4EsLQPJslQkD+beexv+14x/wD4wVJNynmgBV13HPrxi+Bs9NYmCN5ioAsCx7jd/b3wd50qo6zeC0hI2Dr7c9vWsSdQVh23I2+zYjXufw2SOeuG7xuVRGcNwDuXggcX15/vgoJWJAwFW27ggsdxruQO/OAWGqRkmkMZClXtzTdOD2BIrFvEJCUWSMVx6MD3wo9P9104YsGUncFHFenB617+uBGwE6eHT3DpkLKQO4NH2ORzyMGkdohKUXbtEnf1rOHcBJvb+H67SbvteDp9it4koWwKKkkgfHv9cZfbAP07Rskcgg8+0buavj1w4z4SnfZYnoR156DGxRSxRhkiA7/A6km8reBAhSdwL/mBrnv8YjdsJPFvKmNk3K5PkXsewJ+mUJE8GmYPK4Aokk7+nWvbA0KCFQGpVSmZeu0+3e/rjXfTThijSjcoI/lF9P3zgNYiYmEMg05lLNe4i6F3hxTvFOsb6g2igFKFAdvmsJNK7ytGj2SaWls16n64UUWo1GoJTzbGpnrbx8+v+cxsNPez6WIqXIvk7RR967dszg66PUiUM408x3znZyGqt3x6+nX1xsWknVliecCIMaJNgHuP7ZfLDFGyoGRlYjd3AB4r2wLBcJpjJNp5YwrTbWtFiFG+x9vrlGmhOmp3bbahSpJNf5yKBm0mom0wMatAoMbheWj7c966ZbAiyyiVRbbRwrcDA8MVn7kgplMjHnrYvtWHHPNIG8JgI0PIPUfXI5Sglt0suDe02P8AOcVpI4/DK7UJKKV5HPNnnMLxNATGNGAQFgOSZDZ9Lz0JBbxCrG+4JomsVCAyEFgfE4DAWSfpl8J8FU04DMB3r+4xk0xHgvWbfCEKoNx5PXnItW5pFaNbU38/rzmh4sMsjKzhtnRbrJ22yNuBvbyqgWMEmGOEyyMjFmht39BYvOSo/hrI8Kbj+AMBx79fjPeBq2lcLsVuCXa+B6dcuRtIsixTujyhaoCwB/bFS+x266MxvFjnWQeS+tjkX3JxumaQs7SeGYi3Nxj3rpj/ALQhjhdZRHGtcX/yHb8vXAGoiWJvGWNQOu3kX/npg9DdosjIRq3ozdlCj9/nnA6DWqJlDMFBXjgn93mdEI03yGRHKvZjUHgdev8AbHS/aK7wVJCFe7AA4LoXiah1l6d5CgVltaHrfriIw7NI8pWtp2sDZ+tjA0jQGMh5AwUhrNd76ZQXhWWmUbmB297+M0rfYlJGV92ASUIsVtXLAsVs/wCz7YiKRoZ2gMW9A3DKvHPUE9s0YJVhXfyu9iNvHX3GeXRfe/Fk8ZYxXKqoJb64qTK3XYiJH0sSBbO4m/EPC/04x0mpRogAY2sWAvHmHvidd9qaPSQvBpwJSEqms3Q6XmO7VGrRDdtTeV2kf05rkflh0aMb1mrCZJAzivKpLMPL8fOP00hkjLOAQ9FVY3wevTItNKsGkZ1MixynlU8wBPv+WXtLHFCkQUFmsM34ieOcX0EhxESvsvzMN1NQKC/UYflaMkCzt59x8/XFaQRyuoRXKldpLUAfTGPrfszTHw5/tLSRslqUMoB47HnHUW+iTdFyKxgWgACLA3ZJrX2Q+HuQMOQxYjJx/wCoPsnThIX+0dOw2dEtifSgLyHUf+ptCNM7Qw6ucs23/wAGz/8Aiav2co4tqqFj2akUU33cagahFjHm3MAAB88frmLpzqPtHW/aP2zo5VkZSul0zE3aLRYj1s381g6GUfbeseT7UVEjgUfd9IfMim+WN8Of0GfRRaVH0QCt4rpfCcA139MyikqXYzbT0UNS0EaQzTBnks+RT5fYm8XPAsusQuZDuXimIAPb65XDPBJCzLLGVXggMNpPoffI3mll4jlZSOuxgwA72eh+mRa6Muyb7MSUSPvCsFchgyUAbu+98H1GWQ6rfLIiQFKO1mIsr3vrxksmoHhmOG28tHZuDDvXPf8A3g6PUu08iXGpJ5CbiR9T++uCyklehyMPBZtR4jiOlI5s89eAPbELMZm3u42jjaygn6fQfTKNd4km7cB5eBY4v1oZPBo3XUtqPCUlfwk9D8iuMDYyqg9SFZ41SMxr0XihY55/1ndPBIpVB/EG4kAdF4+e+VT7kkLHaAyjf5uo75K8qFqiVnQ/iaP+QXzftWL6BN0NhhmuSJ1C225iWBo8UPfoMsgAVvCMjiQAF1sbR24AyYzEKNqtsQ/jk61+zlaFpItyHeB+L/FY0f0JKw9rvF4Ycla7N1JybbSEi5AOgdbGUSy/xggvc/VP85NqXOnjUcWSQpbsKxmCP0TqsCXvtB0PB69r9v8AWL1S74YlCglePEFAX+xlcQDsFunJ5c8gDrR79882n8DTblYMu2yAOG+mKkVvTJnmdlkhcMzJZDOdoX8u/OYrkRak6cRlf5WKfzEmxQPawM1vtCdCIy8RBbzRh+/b9/TIZtR4Oqi0+omUEOKLCzX7OUhjK+HTrYfu504Mkp8PyJEKCXz1PF+vXNTQI7N4ZhUUtneNxIsd+Ov9vTB+z44E1aEuWcRbC/Asjgke3lPbNtIfB8Nvwt3sbuB74JLRJSpEc2i0+hHjaQwRyRE+K55FcXxz+xl8B8XTAiXcNn/kjUHj1uvTEglJJNQXTbK4G3bR78kd7P1FY7xBpoyqpsjKg0pNV39h39qzWSejFaMRRrGWcAWjE3XB5P8AnFPqXKeISovzHmgR6ZmSyoiNMLSMmt6vYI/P9M0otOGiRiWddt+boAar+2C28RnFLQYp1ZZANy7yCAw3AD2GM+8KrlFkD3+JSOR++c8oLyQiSIt4YO27sD0OJ1axFkDwP+KlAB4vm+LzaDGGWiMUbKso83J/fTCiFEsNzCzVDqfcZ1olmcGbgoeKPTGqEVFXc1WSPc983oG8BhMkdAuSPzGdmQNpyjP5WFEA9vUVj0MagOUTeefz/wCsTqAUk8xYrXG3vjtUhE7ZP4Hg6URhztu/4j3XPpjoD/8AJKCMIqj8ZWrGC+7atIhUAbr4IGExLoeY4wDybsYiHfQZBVt/iMyMRyGon6dMoTgc0qjkgfu8REE2VZN1sIPUY9nQtsVRfH55WJNndOJXBIJ2sT/N0+MZGHckFzt6fs4Q/hRn+Y3+GPuThgVpiGARm7f9Z0KFIk2KiQmUuwrnjqcF9rTMJC7Dptq1B9c959oUsAx/mJ6YotZjUFqvlq6nFulQwZR1AMUpGwHpRs+/fB00KRbm8V5JXPLu+6r9PQY2OI7SSQSfw+2DQVzXLAdTm1aaziabuzkMOSLzm0B1lQebo5Zjz8DCWVXRrNBR68nCNncuwt25r9MyS7RrZ2UK4UPGFUGjuHIvAMKsAV/hqOBR7Xg+IsIRXXjqLFkH3zsHirXigRK53LGF5r3PTCmmaqKQiu4kHBThT3GLCo0xHDODzxjRFa8MAowZC4XykDsDl2sJipUMH/jGyz+mdL70UqtktXxh20sPmHA45UgXhppwU8wHPSuMl/zbedBv7OBrTaVF9rN4mUqi7qAo1VfixrxOdxDKL56Ek+2Ilh3kbKJsXxz/AFxJqQ0aGHzEbifN09sbKqqineqV70fyxSy8lQwU9KPOdk2bt3kVrFOQLPtjx6AeU7GUC2X+mclW5AeOn1xjv4LEMNzV2GA6mRkZWK0NxBF8Yr6oyJzqJ/H2+GVCEeYjgeuHMiu1SAEHqjZ1iXWgoJ9cRKzGMt5v4YO2iCT/ALyTdIolY1kBj8pC7OBxwc4+2SHwSQbHSuuSibf4coBJkWj2r59MfFvTys6gdD3OTb3oZqgVZEQou6x3r9M9A7bDKVIAPU4E0UZQKyhTuq+gOOhUAiBn3MBzz1Bxo3YHVDI5JQGAAfiwfbPHYY1YLR6nPMAZBxtQcVeDvYX2Wr9MexQmZ0VCykhj/KOmcDMZAGQpXobsYaOJGNBT/XBkARrAa+OFBJNmu2Hj6gDloqRWcCMoKklrYkbj0vCjG5VYVXcg3eBIGBtULfHByj6sU6m8btqAH/l6Z62LW/rQwUm8Q7A67hxX+cZM4EVoRf8AL3xk8N6cIQpyLIwgf4YZ25rk+gyeNrBJNc/XD8Zedylk6WBd5lL6A0VRy7lKBxa9L9M9KxNKVDtV0OKydEi8Vja0fTth/eGSQAKxFfnllO46Jx0qQVQAqs4ZADt4v88V4m+Peo818XxiC6O6igd3G/qD/jGfyUsMojpIkcDeAzX37Z11VaDsDz5QM4gIU7yXY56SORQWjoXx0sjBSq6MSSRve2xyaJo2B/nOaeCHSq0bob1Dli7967m/asbKnlZtxYnrzxk/n1DtC+hR4WHV5LN9uCP75zNpSLK2ioa4bjEukkKR0A4KgH2+mJVp3lbbth//ACNusfUcZQIlUEqwBFWQeCcIEgUrAFh29uuP+T7YtpdITv3OkaWhP/GgCMcVPiDeSePoM5SJtYNyvc+mc3ebcgG0kce3thSzQMcrCEWe/FdLOecueSAEq+vIzxdFXyg10Jvp8Z0KqgDdt9uuVrKEEHlyEJI6UPXI5A+6QF0QuQOF5Uet3/XLt6JJTMAz2B65HPVtu5YiutCs5vk6Kxek7eQMqAuX4Bvm6/dnCVWmUFirf8ht6D64cqF4RT/IHGLKPDCqrJwBdsbY9vrnO7TK9nVklCeDEkXir5qZuNvrhu8zqu4rZWmroT7Z1ZmV2bwiYyQAb+gHxitNJNLM0bFKIO48DafT3w3eWCvTkERLNIwLB6bcxJpQOOPXk/nnmWMaov4agtS3dHp85LFNPD9l6Qopnd4EFV/9QOPrhLCnh+KHVZDIpB43UCL6j2P54rx0NV6VOreWFEQbRu83IPOcmi08beIxjrbR7Ag9b7ZmR6qZIFkn1jtJ5r/hWCCQaFcV7YzUNE0se8tYFmPbStfY+mTlNeDqDRbCdN938FYYAqNwKoE+1Y07REBDw1DpwCfTItAzRpuYttdqIIAA6dPb3y5mAIVoulfiPp3x4ytaJJUzksBD7iwNEAgrxi5oVeN5LBHAc3QNZRKjSyJuNKt88ism/DAUYllHBA4v5zTqwRZLDCqFmX+Gt32Iv4wxBJC6iNbYnvdj35+cDUabbbpGp3MCAeNv0yiKMz+Rn2x9dtkfQHIpbRVv0YiMkQJZlYrRvoMSsqpI6TWAABGO/wAn2zmpkmhRvAfeSpYjdfHt3yLQLLO0pDEuTTMrmq7V/fDJ1iAlabL9PNGIz4yWxa7YdT6d8VrH/hlUJid1IAUBSvFH6ZVJQZdxJUdKbrmfq1keJXRyxPlot0F5pNpUaNNk8EjRCOGJjKAhvqSt/wDXXHwTtLqWbdZFgBuSff8A6xcHh6eOZHQK7eRjGKv06f3z2mdWcJA0e5f+RotkizXYetMk06nzUVotfTqLrHpotHHCuokDaiRUpHPUA9h9O2FqHgl0w2sVT8XSya7H64KyxalHS925fw10r2OVi1F2yetIghkk1Flo6hNjbuN1Qqx0IvtlUej0lb/u8apdgiMAqOvFdMVpoWeVkclueoagoHt9cuUxojqbG0ccdB6YvJjSaEyR6eOXdp4oUYJ0H4gPXucASGAqWChXIFgnnt6cfOVwBWjXxI2Wv+Jvd/f/ALySVWWSiruDxsrrdChfbGk/RY/RSZWcI6hVVDupuoo9f364GpjbUgFn2E3Q4o/5ydFZJJQEl2qNoVgKAHzxlcRSKFEDFo2FWx/dZk/sDVdCYdLFRjkfp5id3Q+2Il0yq5UEAkhX3DqMr3COZpgSrdjVUOmOiYszIIoxJINxNAnbmSTNyaM5NDG++HTqj+I26yOFodvTHafSxQUefIDweg7k1jxFJC8VRgte3ddcf0zzRF5nZ6C3aLYoe2CnQXKxDSByspcsY24AA4Hyc6NM/hloyS1b/LXPPPvk8unaONiy0l3tH61WOjVWg4kV1/CL4JHpmTQf4StGZywLsHDWFK1R9T+uHEsrQk7APLS7u4/rj5ZBbLGiM8iCyFu69sBdKVhVmi2eG17f5rPf3zUmNZxWJRZGW76ndXT+t43T6hXBlCDzkUpJrjrQydtOZBTNsYc/hHTtjo1cRblG4b6ViODgQHRWXTovQ2etgWe2TmbbO6vapF5jRqz+/TFvIwKylwCOgVqA+tZySKPw/vGx2Qc8dQfXNyFUQJ2Z08OJwqy/i3CyD6DuM7pk+7k+I4K9SNo4/wA45NKkkbGS2U8102n0xM8cZVfAPibB+Bieef8AWG2gqnhdFKZIWZydwugwpSOxGZYjV2lnhO97IFmh7Hp1y9CVVlJ2oKF9m/LJxDHETTlnPIG7g+mZtGjjwWIH03/nYndwFvcP1xhg2xb0jHQEeejfPT0rPah137yACB69sdA0Yaw60epA5HwMVVZm32DoJgu4qwYOvIPlIOD46GTzUCo52npXTjHsiQwNRtXJ5PvkLwvEX3qAAaLV1643LKAkm7KhI0mntAGLD/n14651WLwhZHDFjdVxWLieFIxztFWaHT/fGDLOZtR5I2G2hu25jV4HGBFNSJt5J8y0TlMUzakWxVUH4HLcnFr/APJ1CVIQwBBDHpi4AIJGjYnbGfMpAofXCrsDr/6CyNE70S3lsbjx9bxbpLPGquCuw2K/m9ryuQKWZ28oaht/1gK5Gm2WAXNAqoAr/rBxpmvCfcbVfEUqwp7HN9fkiv6YMiPqKYUjBgKsMD7/ANMNjCfIjrSmqHc/4yZ1aRq8ZAt/hoAmh2rr/rEsoilN5Mjkvu3UpH4csDyy8DkLxQAo36j2ySIH7uodRIF54NEAemeV5zCypV7i34r4voT2PGVhOuyco2aMW16UxgtYLGwBfrxitVpkMoSkKPwbbi/74iAnT6Z5knsXY3LwcR4mpnIkgkVI2bzsw68enYYznFqmhFFp4cCeHPsdrKeVbJBNHn/9HMn7Lk2fa+qRF3RuwcDcDQIrrxfTNOQa5YwaWchuXJr98EZlDTzD7bg1aQiGGcmOQvyhY89fWwcSNO0dC6Pp2VjGyuQwrri4FkkBYG0FVuHP04zpMg0+xTx6UT+znoZmkcbpnscBQaGKq5URp0NEaHaFbzMfMfX6ZybRwyLtWO1frR21XJ5wJZHWeHbGGO62ciqH+cZJuG54ZDu6kMK49spgmixplijCrCoAFVfP54spOPIVk3C6Iqj/AJymRnkjC7GVgOvF4lVkVQBMS3JA2ivyGJJK8GTYA0s0LeIDITYAJHBI6/TGEbmLAMCBuZelYccjpKYyS7Fb6i/ywzPYfcpJA6k8dcao0ByYiaQuKWMNQNAGyTmdNpmBhZt6SbrCAUCP2c1DKW8giVWZeCD1xOx42A2DpZB7H1xJK9DGVEh03O1ySFNAqOQcrEDKyyB90bLe30v3z0TQzGS1uRGIPB/p0x0U0EWn3IfKeKq/pjfHFJ6GUmxW0P8Aw3BOznnp8Z7UeKClKtkkW56emOfwnjbwXClh5ZO3xi3V/JHKQDZodcpJ0IiSOEvJImoBa14Ivb+WVR6dNMhESlF61X7OAsLEBWkdbPldeDlMbuU5N7fKaN84kUgybFuFk03iRRb5BwCFonIgsA1HizvUp6qOx9svh1Gy0dSjHqe14vUIybvCClDZIB8wzNJ0zRbWCjNC8jIY9uy6IU8nrzgyMyyRlFVpJU/Gei0OmLleUosOnTw7O4se+NZtWkKeIokoEbRdnHhqYWKaHxgVcUwU+XYKPqRgRRuYSSUADcbf3xjgu6Ji42VVtXI9sXFqodJCXWMtt530AD73kpdjptqkEkMiqipG2/vRoEfXC1GnKy7kQKRXVr47/XOf+7FnRvu++13Wooj2wJ9W0wClNrmjtbkr81hdUL+VnJYIW2RmRX56N1PycP7tp40CGUuVPvX1xOmEzGQrwX5DADGXKkmxgW4sgeUZkvRn9WemnbTp5CKDUd3A+Lw4JkYsyhnO0geXvkeqJUOY9OzO1ECua7gZVoCJomgkjKMeQKq8eKfgskqsz53Ej068Vzu6ZxotSo3qwRGXplkkW1vDdXvrR6cflks0kyMVCsL8os3fHYXiuLRROzosROk6sDVhN1g5CEBiWSQN56BA7D0rLINMxAMistWOOt++MnhDKPAZSY+WujY98aKBaTM5lU00QcxqbFj27HHacSMhVYhHuHUdz689DjUV2G4IxJ7M1gfGKbTumoVnHhl/KTfQ9h84rVD2OfbSuqtItUQGHXv84CnbGkkBCxJY8Ld+L8xgTKySKY3YsLBHYH2wlVgqytXm4JYf1zJi0eimmEAkCBxdFObHzgvHKLlcs7fypwbH0/rj5oPDKk7rYkEhu3/EZPLG6pUO5BwLYVXscHYUTmBXNFvMeVX0rsc5qPHmCELt8M8b6sfXtno4jFK7CT+J18hoDCMqFfEVjZ8tFASfnnGqhrFJE0kLtKoQOd1sbWvajzkruI2b7tp1CjksnFj1OKnIUFkMlliXsbR+ucMjTJHIFCq5O5aPB9fQfTHSyw+idVOrOsaM+7ZfIu/zxQ0CrpgzJI0iHgKhIHPU5QIlE5O5ikY49Se2L1Ku8TUGYEUG3E0RlIvpILJZoq0DyvGAt7fKQNp+n+cznRXbaXEaH+YXR9ssbTMoJlDGxz6n0HXnOQ6PxXBBUqnJVTZFf3zojJJCtWMDU/hqEZdtDbYHzfS+2dk2LpolfyqBVRsOvX574Go1ETjwGIViKU2OB74t2jk2EyuzDgjdQHvxgS+zWObWTrCAqjjoWj59bvOPOZgXKo8gA2BBQPQc+/8AXGxzy6uLbIUJU0ZF/Fxfp7YowP8AekKedDZAA22fQ39MbCKsGFvu06oY3l3EV7+t++MbVMZ96E7oyEp7IP75OKiZgDTcR+ahRo+udjE0srvK3UHr5EBI5JPUn881BOxNqNu9wpWgACnDD/JygSyxNyissSc0aJHZaHvg6aMzeJtlB2cbfwi/74TRzJpRvjKrXPHlvd64rehKl1IgeESMY9w85Y8f7w9bHKs6uzRLtq4YuAT1v37HOOpkRZdoUIOQy8X39/8ArFlJWuSTeSRw7OePQc/vpk1QCZ5W1DsyIGAvcjDqfjKgkn3cEr0A3celnGfdAISNiOzV5y9C/wBnvl7fZTxQI/iAvfQen9czaNyJ4hKjLHHAHJ52s1V9cGCLU03iqwkBsf8AE/HvlrwLCfEXUrtT8SEhifr/AIGOXVaaaNjO4jJ/AT0xRXJ+GbHHrQBMsIPi2SkhFqb6C/pjTDKZEGsl80i0qhjQ+ozr6uZ43VNq0K3Ek7quu9X74jbqhNFvbmiPNXl47+prMFWzUiaCCQbVjaRed5awvHT/AHlcf2sjbfC0oavxegrpz63mEgc+JJvaQXtPhru96qrxmmHhQt4xEN1tBBYn2r/XfMDj9lmoJ1RZGHhsfLT8+9WP7Zx2bTRqrEOm3cxrqSB64UafxWkUhVJ2lNu2jXX54/XPS6SgDQa683AC+uKx0RCVTMDGyCeNt8RZjXup9Ac6v2h40cc5hVWl8nU2Oefij64Dwb5w33QBgfNsFEDoMTpZJYxLAqnw/FO6uBRAPP542NBa02ZZrRBGtEmz/wATx35wCyu6adwjkcpff1NfXE0GiiaJrCDhGTbu4vvnI5JnmWU6dQQeObKjpQ6Vi5Qumh9nI7ajaChZLOxmtry59XCQSvMg4Auq7ZkaA+HqW8NXdtxvzA/BONmi1Hgyhgw5sKEJr1/d4BGm2Ng1m7UP4qKfLdx842P7WmTUukcKqyirdP8AGS6WSeChBpCsZBEjlQKPpnA0olLSQ7Q34T+Kjmb49DVZoarVJOviTAb07rV3Xp6ZiaCWQM0tKW3bg1m29j6fXNTx9PLpl/8Aj+Kziw4sXz/XM2ooi7N5ffdVn6dsWxoxpGzH9pCdSjR7SeK6V+eTvEY9QyWsiMtFl5r+2SRRTro1pVJZix3nbXp/bLAmq1rQq4WMRjn29vnNglV0KJmaZ1WLwlX/AJDi/T+uTazaIaaQD1LoaA9QASL65afF00kyh3ZSQCenm+vGZuv8dYWilb+fysQBwO3pd/GD0olY6D7VkiOxUZ1KgLV2Tz09MdJrZYZTUp/hm23N5unQ5Jooyy6eOJogHG5qugPT5ybVauDQauRBqZH2gmTTp/EKH/kTfl+pv2wxhyeAdI0fsj7S1WsGq08mn/8AkISUUAEgevXGajWanTJ4zqunjUbnLuFUH68/TMDS/aDTaln0+m/jSjc0jyEnnjkLxWN/9nDzySiP+O6Ci0C0COyqbrnveUcYL/QKd4WSavRqya0a37OaNPxqZvNtb3HTnnPTfbf2HNLHH48sgZdu3T6dmND0PcY1oJ/u8aHSKNSBUpKoCF9fX65SPsqGIMsUhdigVU6HafQngnNfxrwzcvsgl+1NHA4iii121fMEeoRXuWI7e3ONf7S+19Xpt8Gi0mkjBtCbleu3U19ay7TaZl1niGGMRhLtgHK/I+cOFwsT6YkKrecdr5qx1+KxOcfECm3pmjTanV/Zo1Wsmn1C15YfE2KSOopAP1OFNpIVi08A0o0+4sdsUdFa9+t5pQ6aZYxBUYUncjA8N3z0ramVSbjjeN6Uk2PbNybAQabRTiQq5aSNQW/jMRfoKH98fB9nINS0s0W108zEbWVvUc5dFNOTU8SN4iku99P+8lKMJS6Hw1D2F55vjFl9jJuzztplKtp5pF8Qgsr+VBXbpXplQmkeJNKjlSrBgw7Lz06A/XO6mDVppGWGFC4N7WPHyBzndLpXlJmWORCBdbuCcXwDp6HB9oSyxs6RRxR3atIw3N+XTJdVqp1VX0LAuOXAuk9z84/TQSRpLGIRPZsfxKZfn/VZzV/ZuoTQSQhI0JIJCnkD15POFboE0mQiXVvIE1KWrvuVHclj73zR+mX6aUxwMkqh3YbhvJZvzazi9Zp2l8KPZPUY3PVm/Tv9cniMkGvEjgxq69AAt1wD1/TNdDNci0SRttdVsMe9LQ+K6/lhpI4LlaLPWwgGqNDAVVMDsoN3tFimHccDp37ZyclE8aRJTYF9KH+8nZv0LeINL4jNRfymhzwev77YmL72mqljjCqboWxAI47d/pinjGqk/hVtT8L7fw/GP0zkOzxpvJWqK7SR6DAkPK0ijQOpidXXxHBO4FzQPtu7ZX98kRFUSRqKFFOQPbIk0bFy/gpucfhRuV9bOPl8VlQeHRShsq7N/wB8tFpIhK2zsz6kagiMozm2LkVXznm1LSExSIp2iyR6eoxkLxDUFr3ErfhXxR7X2yZUaeacV4TkAKh5Hz74GlRl2BLqGphsjB6kbicH7w4kMartdwNnpz6de2L1ELoFHgx7rJMtcLfzi54THqI5EYMoo2D096wYmVSwRMZC+2dAbHDI3QWefYYjUsqzpqAGkVkIJ8MEIOBdd++HHPDNqfEQ0jEKFHIokWK9R/nA1WhIngSIpKV8vhLIbXj8JB6cH4yiRRtjPsfUqn2hM/3fwTTb3VQN24DaQPqT9c2zNUKsmoBjIP4OT1/K+M+ei06vq2Zo4IwaUM0x8vHWx7r+mbM6ztpBFFpQFYCRpAQ1/sZnROVuh7pq1VJNKyaiQgHkdF69Lzu/UsjfeUZyR/Iorr+vP9M9IsmqVY1gdfD67yE3Cj0r+hHXLdOkqtzL4cdHbEY+V718YOKawRtrszdNp3k0hhMRazYV1DBBfX9+mP1IZViiilCWasNx16etDLNMHXSCRVuT8S8/iv8A7xjxK4WU6dAVBAR+D7/PPfvlf+afRPm12TRaic6oaZyhkRLUKT9CcSjTyagitq//AIhY8DueMeG8LVxw/wAPhaZXUk/Qj+mEsSssoVhGrMDXcjp69P8AGLKNIKkTpOJCFiAVVJ2E9Gof4ykTK2m8QUT+Ehjd5O0EiSuscZZA1gbq+p9sd93kfRsrEWTu4+OmKkjMZNqFiZdoHP5D++BLq2+8AhTINhK2Tx+vxnl088uxvDBogCiCTwOc7qdKTqxLtKqg4N++Fp8RVVkn3un3SX16Djd8ZybVMumZzGoWv5uWPvhzwzFnMaq1gjfdBa4wYZJBC+m8BKkUbiTfHtk1VlfDsOt8JEiVgGcda4GWaWY+I4ba+/lnB4IyKWCYRx7ArgGmXuOe2PgieCUHYYwB0JvdhTEf6NJJUilErUAASR6519ZIXDyxjY3ZbvJE8SWJkl8gHIPqMZEupJWKLaq/87BvOmM8olJbYyeUhmijChzzvYcD2wDqWBcMaKr0A4bGzxzx6sOnmWuR0wEieWSSaQUHUhVB4GFgR6HVOul8UIpXoevJyPUaueKWwi7S4tbPlsdT+eVHTyr9nlBaMOSDQGAdLLIYhs4iIDHdwfjBO3SQY5pR4DLDvXZ5ByFFbsAxuyGnpSOVIskexz2rlkJJAFAVSj98YehKshPhlW6demIkm6Q21ZySMhSWK9qFXXtnTOxWKOBQwI6t1POGZCkyKllmNMVHb1OHIPD1MKIBZHF50fHBNk5OkKac+KIJ0F9QFBN4EupkToyA7q23bH5rKDE8up8d4grbdoAPI97ySDS6m5IzHG27+Yntjv8A1QqeFTatoIFIjsNyb5+mLTVumoRSFKuaG2+Dndchj08CE8g+vAxAUvqFLKY1Tm7u/rhnLjhkr0pl1R3uFWOl48/f4z00yDTrNGtG624mQGB3YRrKHFg+hz063pVVHR367RxgbRqYwS7SDqCqg/gF/wB8TrWJ2SROrOGsc2vtjJSrlI5Ihz3LdOMTPpSdnghVAO6jkVJNjUNfUan7yhmjUqwAG09DnpXkE7MTGEVejN1PwM60MupeNpk8NIyGNN+LFeDMJpFiXdvJ8zEULx+Cbtgv6GDUIdKJq81/hyaU6kzKH2IjCtyDcQffKhoi0CxSMiv16dc6dOzTKhBjH83nHP5YnyfE2hozoz9MywGdyjzA1zXU+w6jLi8cMBaUKX4pR2PznV0cSNJHRCMDtZTdG/TFMi+BtkQKS1byaBPvg4KKSM5W2dklkj2+IkdHpQ6YmRz97KDYDxtBxmo3SrEXTaCwAo7r9862gK6zxtq7QvDbs0oS+jJnC8/iqqRIWA83oMOPUuZHimQK6c1XXOTNNHqBJpwrMy0Qxr64pNSs05lmUsz+UFBYUe/vmaUVQVbKF1QfSNKAoYGhxxnRqfD00ToR5uq9Qck31pTAIXKsTtfcOR34xrhINLCrfwwreZmIAGNHvRWmVaZ/Akj02xFRh5dvAX2zrGV9U4jQEJwSx64ueCWSdJUltF59sYBPFKxChxJybbkZdJVojJdOiqNRJt3HdR/xnYZ5JptoRb/mHQ/rjdPE8aykqu5j/N0OTyQySSp4cAhPXeG4yLS7GRW0a7iwY2OgBwC00kTmNRQ4IPJOFGZFnIIVku93e874OogjdUSwxsG+mUjFUZsn3vpoEYRnxWP4T3wlkdGVZhfiHqp4HzjJNNO0cZSRfEQ2fQ4ubxZJUMkYjCtdBr5ycsVm7BnM+rZ449kfhGw3fjGrO6aYyrGOOD/1iNPHKjzyMPKxJ69cpjiJ0OwJbMcb46av00r6HwzvLsbZwRjHYBrNk4EEbxadFatwHIxkUQRfMeTzWVp9CYRy6nYzfwjIpAOxR+d4MmoaKHyICL4BN0DjZKjLeHsEm/gniqH9MRrmrSvLH5msXxyBnPLvWVygjNNFXjRoVeuL5GekPm2qsaAiyWNX+XOI/jT7A21UFMTfX6YwJIusMyxqykdCa2++BSTYKYSyLqd0ioA0YokkkWPQXnJZJwom8JClVYY8/TOxq6aecSLV9we2ek8ZtMkSou0kea+g+Mr+NWLoUuuk2xpCirYvcxAA+MGHVsxKyskjj0bgj1r1zsunClCqCRAu3ZfOc08Lt4hbw0ZgRHtUeX15wPsIUbyyFWKRxxKCN1cj4wdQFOkfZIDS2Kx0ELx6YRSm7Pm5/wAYM0KCKSKGIgkfi3cfAzNLbAmzPkl1EOkR0CrH+Fa5b5/pjrkZkkWtpWyzMKPf5OTGHVeGsIjJJrz+g98eNE5li8Mo6oOVsDj1zli+UuivSGrqhNvQsOKFjgDv0yRp2WMsEUJEpIEYa6HU+nOaMWkk8aQvsCSC+t5B9tO8f2f91VwodhE7pRqNmCsSK7A/rnQ/jWtixl4hAJiGgQqVCQhip45q+c6ryJ4k0ixJHto0bJ5q/wBMJkk1BWWDaWAKMN3Br2xmlVoSyNCDHJyxu9p6ZzupIrqM/Tyb6lCQyjdx5qr5yoSJLGk2nQCYEBlB6j2/pkpjCRN4cUdB2G4DkDKIBIBCY6euSBx0yEaTpjyb7QxRLFIksh3EsR4fXj0yvxykiI0KAP8Az9AMnlppA+nYxkEnaRwCOcobxdQUlkQoqi2B/m/tl/jSp0SnYazPLPLGVtUPrz8ZKrlNPLIUUBWJq+nzlYeaGdnSPcJuBR6e+TnSyJp5V6yvyCepx5wVWKm7JHn3adphXmI3ccnnGMzL4YSIMzcjuB+WMkjc6QQOQGr8JocfOcaJ0MRWTc0ZravAPtkHFWUt0KuY6/w5WUkoQK6N9MmjaaYDwVjSiSE6HjH6nTS6nVCVz4IC2Cp5U/1xkcMkym9Ohc3518vP98Vxt0G6VjFkeYD8KuORSkgZm6vU7ZEicW73ZIoC8qkaeGRAWDECtvt85LPGh1SzxoW3Aht5IH65IpE9CEjXUSmPYyiy1Gj05wPEdSspgBB6uqAeWuPbr9c6sDyiVdTJ4aOaRVPKjnj+mIKzQRfdli8ykAykmlGDofsakgWdZ4YRvm6lu3oPjC8XUyysEjAkPIK/h/zjIdO7vCWSlQXvHW/cemNihCSSb9puq3dMKVgbO/Z8ZmRgX2sjbWN2CfQdz9cLwdVFqSRt2N1Zm5I+MDT6c+GPEQBkfcrKAQB/vKo2CuNoDckj/wCv7vpj1Fitsa4j6iU7h5jS98n1D+FCzhBZB4/5n0Pf0zQWJSvnG/m6/wBZHKv3USL/ACsvB63848oVokXZkwanW8OY0BBpuWYgeoGVSpcIaFdqkkvZrbfJ64Oki1D6X+GotjyytQF+mWP9m/wEWi4jNsGPXF4WFzJ4JYZJERSm5U8jUT83eOhaYq5VRvThnY7d2NMLHUiQrsATyqD07fOTJO9skcSurSdm/B3v/WPSjolth/elMazLE3iICOt84HjeNIS1ec2CrWb+M80MyQrETRL7i1dumdjSYTo0kSJGOCUAv9MW1TDTFpPM7tE6R+Qir81YZ8NZEO5Af51HU9srggDzyMRdjg98590haTeL3E3Rv9cXjVBUjPinlvyxB0Dcs3YjtjJdVIdM04hBboAx2/X+mM+6ukTgoAxNijXPxiJtIzQeCo53biVbg/XGmGLViV17hxFIyuZBS7OazqGWJ2RAGo2SW5J/zgyaaR5oy0dbf5gw49xhSeNC7OI94aiSDRPzkrKA6uUyxEmEijR6C6/f6Y1JndlWIIIlFEk+3bJtU0uo03hP/FdGBugAvtnUgmddsUYChdxsGrv9cOGorTVrLIYtPtWl2m75b+uLBkaB5J3spwBXA98TAJNPLJJFtO40VHBH98ZFG76WVEKt7XzhdNCvHgIlkEYlkmAU+YAGieOw6YuXeE8ZI6BF+hrHDTO8Kx7CdqUK5AP7/riTDqqEYFlhR7CsXPR0yiKSRmiAVdjKb3L1PbnDVl+8uSsa7e5PJsfrk0jCFYlRmlMfVbqhnVHjyNL4fDdT/wAa7HFysBTsL7y+ySBXSlO26PPtnvvzvpi8ieVTW3nzYGnhlRrCKOTX798NYWXTmOgpJ3EdSTeFV6GqOSidiniJ53Plr+UemHqdRJBII46NLXmHDH6YqR9TJsDbBt9Wo/kMZPG7uQsay7lsW9EDHVC0z0bTqizCE2HBVP5T/o57VTyOGkCMrk1sBsD64cOnnihF03nFRseK9zntRopUKkuAQxIXsfywJNfw1o7p5J0lHiKqsa4TkdO98Z7WyLqUJjKK8ZoEgkE9brtjIvGWRWKbVquDdjn++JXS6iEEeEih2PmB4Hz+mNfaF9sy9PM6/wAU7FN0dwK3zhLq7leKXTLMGPlCWdp/tjH0/hRUqNuVrPvWUDT6ozJNGqyIRylgEfOSyyzfpOjTjUttkRY0FAUTR/fbL45fBQl5NxC8+h/LFRaZjNI4PHeyOD+/bPDWguIVUttJWuCD+XbM/BexunZRo1QHudwQX/Xvj21AfSsPBpujE/SjjIX/APg1JDtVhR9/jEwxpqdqu5iUMDvJog9v2cb2kI6sl1E7iZoFj2gitxFWK+cy/tJvF+yppLCyQuCGBsBgbB9s0dUSftCY6dw7RtW2jR9x2zPl+ydYyzHeB41KYiDfPY0fnGWSKR6NWPUuwj3TiVpFHn6fUZXbPIYgFkfaAzNxY+hzD+yvE1X2ZCGhJaEeE6huSymr7DsM09TC8cyDSxHcB+G+v++uO0k2SaC058HUy+KDG6mwEPFe4xup1cikMwR1YXtvnJotPPLIshsbrUqW6e57Y2fQ6iXZG8KJxxKG5PyMyqmK+9O75zKPDVlLC23DrjtAqQyxIxjW33EAkVglGE8Mf43HlajQUZcdHp5NSoePeyjkE9ceEFaFlLsRrIwv2iWhMdFLNjyj3ySLUkzmKSMWvdewynXiOCYOUAWgNt1fGQIv3oTapQFeRvDBA7fP+MPz1eA+PrTus1squFCx0W6VzlDSO6xLEN7vx5ugxDafUPpfDijpk53u34hkzTSEgRgx6lFpk3Ut303ZB0nY6TawphSRp9QAAHSuQ3Bz0TiKARKFYg3tJsD3P+saE1bKzuisjVtAps4unlSCwu2UWasFSMZRwDYqeWaKeBIKbeoLDoB9MsSab71sZFQhDz2HpkjLPHqNPM6gyldu2+Dj0LtrCXUBtnK9a9sMASD8aTUEAhNyNywsjEfeJXDGHYb5BLcE51b2SUv/AJG4A6H5xMcE8CeHEv8ADU8A9MEpJsMVgOtnqBHUKj7qKs/fvgS6+WIJ4CqXACmyTZ+c5q4QItzFTIjX8n0xaO8rJ5SoDWWP81f2xb+iiWHk12q1CrHtQA3Rvvhw6qZZZYtUu5QOG54xOrG7VFY5PxcmhXGd06O4dwCoksKTyCPTCnQXEpTVyywOqANGeCCOQM9XhIqxoCpXadxoCjk6yajSB9MYg1Ldlume03j6hlEotQpABaqPphbTQOD7CSIffVLKNt2CrcE/F47x2jdpStxH0632yaOONWfbpmGwc/xN1HoPpnodQzkmfTrEGG1WBu/TFdDU60sj1M8kZYQlVPPlyZ9T4cjRhhuCFiSTQxjkxxppj/D4tiGu19++DJCfvC+FtpxtKgVuGaLEQmDWuSzuWQlCUs2p/wBYqLXzQxyTpFHuP4gGJr49M8NE4abaSsotRzwB6ZNPpmTTMDy8Z3EKwPvlYzSGcUw//cn1Mh3xhNw7Px657VeRAw2MHI85awo9sj8eMSLGukQ9zIO1+vrlQaM6iJPDKgDi14b6DDNqhoxplkcSHT7VcsTzY7nEISH2uNrhbOxuG54vHwIoVm8rKbBVVvbX1wRJGApiG0Fd24j9Di8kBJk8up1J1irGoVQfMR1JGUwqzzSReIgkamF9/bnExyJMwCcyE8rXGcHi/exIY1j42libsf2xouL7Eld0hM+qdHdZSiheV812fXjHRSP91jmVEZmI3knqayGZZomkRI2bdzxX+Omc3fdY4YnEic8Bmv8Ap2GK6sptGm07pN4bwr5j8ivQ++BqtVuRo49vk7twB/nPDxZ41l8JSC1E2CDz6jFzO0czVHtjsbWamP6/3wIXSJpH0+0ht4bghr+vpj54ANKu6OOKHde+yp5HXPTCRIY6bcb8oJABwp2EmnG0DavBcggAfvjDaG0hn0ZURyKS6g01PZY9/riDOYdXsdQt8UPMR8jGNC+1dgXcG67u+JXRyfeBKwaOwT3HzjJr0emM1Uoqpoo4y1Ub6+4ByWfWDhWSPjiwCLPueca7yPRDqLP4SLI9eDkoLX4ZVmY3Q6It/FY8UjadeIqV8cxkFeCBvKjryScXDrtGgeQBmkbi2Br9Oa+uAPHKqlskaEFr6H2BrAt2aV00ygDoTaluPS7yqWab+E2vEe4SzTDebPlDHnBk8VYYpIy5jY1wCRf+8fLA0ibpE2LdXsvoMkaEqiqJvKw4G8E5eLVCO0zSaYDaQACoB2lvw30u+DyLwotarrsCKrISQxWh68C/XFx6V4lL+CpQMAx5v6H2wzBE4MvDqy/gqmr1vv8AGTwUJXhVhIzBg/ncuvlv1rn9c9p42dRuIcBrIRPyq+Onf0xeh1EKFhLEVG7agQdfTnpf+MdF9oO2+FAFWyVFDn++B2g9jNPpN7jdOOTyCtm/UmuTlEeiECFItQxi2lnAW6N2CPn/ADkv3hpItyebY20KKXc1+vXpjBIyOd6ik5rxCbPsetfpxiOzUUXpYI42aRpALCseps8/v2yuDWJ4oIJkRVI6C+9V6ZjzxsHDo4Zv+KckfX88qjljRg3lV5B+FlJNDjA1hqLNRrUIMaiVVat6lwbPz0yd55jAoYFVB4AawvuR165yVFKM7vGoZ+CX5IHcZFqZHlYyRSpStxbcfJPTBFBwt0eoh0w8QRCaY8HvZ7Hp1x0rtqkQ6htrhStcAflkEULmZAXZwosbCBf55oQaJlCuHS1sMNl38dhgkGiyTwNgWOPxCigMosC/zyHUSS6dQVgLKF3VvAVR7nt8YRjKO25qQGwCN1D0Jy0JE0JSPbF4i87vNzi4CqJfs9dTq9UqgAFxe4Dyhe3Pp7ZW+j3xqZHR0iNWG6n2NH8sRDB4XhiGQySFa/l2kdeg7165yfUSRqwWWN4yB5SxPPb+wzOvDaNjeXTM0aTNHR53vyB6Adx/nOtIZeFnnZiN2w35h63ntO0hRd8Q3stU3Y+2edRLMUcqtHrzyMVsJx5ItzRqZRIoHnd+QOB27YMappdSPDXxBqKVraxvF19Nv9BkuqiMUzxRBlG3gbgbF8jJ5nmWJfDb7yYWEhck0K6qeOeL9OceKs1Gq2+XWGGZPEsWNnJFdsHd/wC2zNFMwiYjdyLI9jXTI1MqTxvGWKsb/h87h69vzzk8rRSPLI+1Rz4TsG3D0vnr74K8CX6IRyaq2i6WxZmuh6G+B9PXHa3UzOvg7lG/lEiPlWh657TSRPpZJIlk/iDndzR/4j2yLVGQswULCAu0xIK3ZNO2BLQtMj7xvle1o0r2WP8ATLyniWN5LBrALVz/AHyDQxK2nUjdIyDqouvUDNHSOr6j+ErqKplZefoev5Zn2Z/ZQunMhVXdbNrZB4HHQZJPAIZHiBXYQPNdKf8AJzYSJXkdlkYVdWLs+uRa3wR5GDSEgfhWyP8AHHfAxYy0ExmFY41BVSLU77YfOL8XVaQSPvjRG/FusdfXDnh1UM0TRxyMiivKB5eO5POSFp4pl8aKRWcElmIoD39MCGSssWWddqwPG0fUrtJDX7npmb9p6yWOFoUbxNjA+GPLferP9scupvSGCF3EYtZGHDX6DqbHxkH2m0QYSTyTRxwsCDVlmb19BV8+2NFJsKVBv/6h0kGiklmmWGcwOsMcZsO9cCvW++RwxKunj0X3Z2giUGV/Coqa5Y9ySSfWxndBHEhm+1qSN9QdkaFbZI74bn16n5Gaeg+0tJGgkmPh+KLNUysLAsE88n1/LKSqKqIK2xUR0IeLa8awxgBZTRcED+YdCc2VgSbURFXEjuvHlPk4v3v/ADmRLBpYNRDMEEMocFQ6AKw5q+fes0mkGq+zi0Um2Q8qqWLA6jjtzkb2xpdICTWM2qjPhuhFhvXqb9umNn1bafURuHcxuTHQqlof5xERWJ21DyxlQgJEZ7/us7qCuomR2UxqhJUkeboOf2MF4CtLTJDIwCAlTx5x155NYXgh5UYyqnADIRdf4zPZbqJUlk2Hymqsmz698te9KuySQzybSQEW7HH1wV6K19FME0izLbKEQFTaA2etnOziPUskixBKPUADdzziyRqJbiDNE42laN30vGLp/He3YqgWza7aA5rCm+idJaMYyuNQdOl+WuSAU/T5zP076jcWURmZDd7D09zeUeHE8+7fKrKnFoT+vSs62laZyHnUHts3An8v3xhbvoKaRKPvABpTIW5ADHg30+M0dNGFkLvuCOAdsjEV9Ku8F/s8R6VGcNIY+KbKBHendVKoSaViOn64FFrWCUk8QwF4fEhUkB+RQrbgIVlQRlmFmmPQn2+M8pkii8RGOw9Wtf8AvAhZy0jb0YIasngfT1xuXQlB6gtBp6jqUj+UEgnII1TUahX8RnZRyh52/TnPTah3d1/hxhP/AK39etYelRo5rsm08wApr62e2JKVsolSGwx7gdw812GYg/XOSjetKLYt5edlH8sGeVDEfEkChmpi1j4GFHLu8NkPMfl46H07DBZv2Z76GMzEb12mr83Ki7H64/caPgiUy/hdhxR/ffHKUbUSbo9xY12PTm6zsCxwBU8IbA1DvZOAZuw9P4j+QzbGJ3Hb0bClJVSXdGkdiQqmrA9s7GpZm3DkHgMaPX+n0zj/AHeVlURRsQNyq3BB9r6Y/gnoMwCLHIpXfdMU/wAYAR0e1Fr0batEDni/nHzjcPJXHJYPyCSK/wA5OFUahYXk3NV3zZrkHj1vBVsK6FaiUlJGZaCLRAFgkDjIXlSYmNCviqu4g0wF9r/PnG6p3iDSyKWVeRxW7nkYiKGYzxukUbMR5QPwi+Pihx0worEXFOm+Naj8VHBIut19QR1NDFnQxSzTSmSNYlYtuPU7jVAjixf0ylmfxmlCgsw4LBd1gUR9bx0Mx+z2YTbvCCV+GxRAsV0Pzxj8tGskhkSHU6n7hqI2KQbPGuitE8Bq5skel1mlumm+xX8fUvtIuQoaY12rrfT88ih08I1CukShJ2/AzWWAAaqr/wCvrmr98E0lEFY0At17D0Ju764JP0VoPTJ95ZN0bGRFKuVeh096N1jDq2UWR/EAPmboVFXQ+D19Mk00hcM7ONkdunG0kbu4OHFJ/FQK3Flk22a68fOKpCNX2aEMiAFmcNH+IC7Pr3w5WOtlAcnw1Sxs9fX16fTIwQyM03/lonaH3MAe99vbvxnVdIqFg8XsPNDt/TKKbRJxKFMO9CpSttgi7Pv+mC4LgBXIkHTk/r6YqLUK5O8keaqIv5xoYeE5ATyk2zcdf1vnNy5aauJ0l0IO8muWAG7jrlZUMmwUBf4WHXi+mRSuI5VQsaLUAF+pA9OmUoqs+9B5gLDE2AfbGj9CyFlyZvDCAsOjeg/ffG6gF46AJ46DtnTp9q8kkn8Ve2c2bd28HaPML5oHrmdrAJkzkRp4YWiP5WHBvvddc7SMoNeYU1Dg48yiVkcsCoWwSPU4mQ738x//ACPf55NodMSNYgAQWlCwrDoPXPadiHLHdbCwexwWR3kreFZfxFhdD09sKDTzT7VIAW7UdTWIrbGdUW8gmR23j3/l+uPRykyOF3Kevr84l9K0W4SEEXxXHXvi2eQMgLBFBqqq8vbiyNKRoahxt8RbA/fbJ6uwoLVzfY4IfkqBuAwWnCeUKFYCyN3TKSmnrFUawbK3hxuUUcC2F84EbgpY3dLHPPTJ2l8VNmxT5rp7wlQ+H4jP5jzQ6H49sn/0t4PxzQY4xLuokknuM74LqaEaow53biSR757xtkpTayNwxLDjGSqSnikbt1eUDGiswzYxJP8A5CGuDVkHjLHRdwlKgkcA30yLSBmCt0PTplbr5doJUniwM6fjbSbIy1i2nYhvDN1x7HGRM6pv63+mIWJ423M5s+pNAeuH4pVVYMWHQ10xFJ3bC0vDk3/yFCyDoSQMTFBwXYhu1ZS6PIt7fcCuuI0ySHUssuwJ2C8EHFnHlNWNHEc8Ih/OxYmyFrivnOUhfwkAUelZbOV3A0PQYpQu6jyenTqM0oU+KYE7Rx0MY5Nn+ucJCKGbm8dKgZQATd4ChXCuxPftVj0wtU6AngE0iIBHZtvXOiMOgKueeTRzkyLKnkQgg9+td87WxaDUOhxnr03Sw95S2w0rFawG/CWcg7TwQOmA7xmRAQWHXcOpzriRFJMW1b4Abivn1yTdoZITJOI5FKkutEdOh9zgzzI6+EVXkc2DWdeVSxiikG5jdbuRno+GEbbQdnBAH5evORcndFKQ6CKJVBC7WHA5sfODqGJeONuo6MOAM7GuyPg9Dfr756HUid2IWgPKpr8Q9RnTzbVMnVO0OhKluevzhPpomLFYl3XdtyMSI6JVav1AyiMbv5qo8nGg+WNCvOhJRJHoAALzx0GEsIYks24DohHH/edlXw//ABIt9eT1w1vYGega7Y6Ss14cRYmYmGEKe52gWcYKeipB4o5zbEeRwepIwldApHO319Mqs7EZ7wtymyPXnFsirZKA33754kbhtJ2nvhMWNFRZGJjDoKKh/EBd8ZQZfLXHOJ2kMAByRyThqm1RYs/0xotpAYLsETzMbHJOSOVY2sgKsbsHKHlDeWJt5WiQvNXkPgzIZpJioUt5RfAHrkfkbeIpFfZWqllK7fKcfAGoqe3c9sn05AXbvBauMfYEbAtTdyO/0ynx4hGEGJPXgfrgSTFTuVSwHJrr+ucJ4oWaN3WCpZpDuo3wMZydUgJHWIKbzEFJN1wfzrJ5RHJ+OO93plTL7XXX2wXYGMBVBX1A5yE1bHTFIid62noOgwyp2cEGzxYyedDC6+EoNkA2xpffKUZTGH5o8Cx0ycfUxmvQZF8hWWgh4rDjjUWvShQ56Yt5dq+Vr9/XPQSGUm6IJ45x4tcqFayxwpiQCRXtgFQpYNyp5uhjFXem0Egf/bvincjiwRXPF3lJUloEOQB1AUm76/2wZeSV5FisS8jII0YkAnk1X0x3CLuvj9MykpYCqJ5UUwCIAntbNznFjlgcMEAB4PPp3v8AtnJQpH8RS1HsOuMMrvFu3Ku08rXX1yKUWym0c1kjtpZCCUbtsPOfK6jV+Lp54IpndxDIu7kFzRb8wc+nkJMe0sqAm7qwMjTQFdQXYb43FEqebNjp34yfyW5plfiaimmdUGLasShkkG9ZB24sn65NqpNRprkidoxI23c45Pfj2rucf9iWPsbR+IN0gTaGHBIU7QT70BndZO6mffIdoA2sV98E4pI0XpMYIJh4mxjQoEGgb9seA5pQjFhwW5Ar2xSyzABVYszcEXf5ZWYDEqgglgtEbuuc9N6M8CO3w5EkU7Otk0TWPXcyhQa2iwSKBHxkMccjAjafDKhQA3IHvlKRbJA7ru2pXsM6ISJyRVJvXaVVWINfB9c8QzLZDA3xY64tJh4ojBomiL7Ybbtlg0w6Z0WnqJE8kW51BW755OdiV4mIegOwvA07uzMJdu6uRu6e2NZCytYAXocjj1DvMFyacSqVJZSeBWMi04jiCqRVVWCJI3bw289fyjtnipDcNtroMV12Ft9EckRMzMrAgCjXUYtZY52VQQrg1Tj0x8pqdwCLcXx349clg2DU71PI4IBsE9s58sqtR3UokbXuBkPeuSMCIRShyR0qwTQr4P76YesiWRWLkbT/ADV0A7fHGDpogp3xleTyeuTf+h1/kKIRK5VU/igdjWH4EbBZE3CYHuxtv3/fFCKWXUP5jdHntXtlI05WNAkpdeOvBAykU2hXKjogVvIUZT7NfH9M9po0RrIr0NVfbnHTXGVAJUngjFL4q8hhtItlIrKUkxLbRQOXKmUbQa2Ac/8AWLnhJbeJAB78D6Z3xgXAVC1gUB/bB1COEsB2Y8+HfBx8aFWMODSmGIod3l5PcHAJk6hWVAaFG79sdpSzr5qBHaz+eLlkTxI7FL0B6g+2FxXGwJuzskqRwErZbr1okZDoFSTzFNoJsqnmonrl0xM26TYAw6dCa9sXFCIlB2NIJK5HFf3xJK5foZNKJyWJZN262822iaPr1GKmWtgQ0inmiAT9cqlYRoERuRS1t5PGTnlyXkRgeFQjkDNKO4GLOxwFGVySB0PmOMaVfE2lyD0pun1zyIY1Ks/lPoaN4l08RC0Y49zZOCsw3b082qVNWkZKlj79MiZtOZizhmZjaAMePissliDwbSFV+gYreANIiPbUeNvl4r++TaY8WkLaPcrGKg3bqa9cF42ES+Gt2R9cdDAI45II2azZD9AL755ju/hrtITgX0J9cWs0bl9CfDKpv2te4gWDV+/OCfGFv4qmuQoPb/GFG7TSCNyDzZ47+l4wwsxAKIOpVgP3xgf6GuuzPZkkkZiibgaAs0axkOqi8BQ9BTf4Fxc0MitsUlibvtQ9sVpvDRliUEkiyWPU+/bEuh+KaNDeGMTAvQ/4tQ/LGNOw3CMtKxJAIWuMQkZYlEFlCOMo08DiXcS5o1fS8Ktk2khAUvExIKua6nmsKNDESAD6lSKBzuoUmdWYbSRW0CsVFO66pty7Qo2fOCqG7QyR3aVWRY+nC+lYlpG8X8MakdGHbCk/iII0ddyk8t0zy6T+CxEqNJxV8gYew4loA00knneUNJ3FdMo00JSiU6DkbvN7Z2OwFhkO5xwSLr5wjKkRPjNvCkURzXthWCuT6GBEeWpLbcSKPA6Z1Zl307Ka46cCvTESTmNS7MY2B7d/85OJ/G1Gwvt3fgbbtwpiqNl6ahmhcbqYsKLdPf4zkz7R4YYqW4PQk/XIWcrO1qZO26up/vlakNHUiFieT1oYeTA40eRI9OnALjqpJsn1xM2oG0s4C2AVK0D/AEx0So+nlkdWj2eVBuAB498jOmdIncgmr8t378Ykkwxq9D088Yj2NAitIQzrZ6+47Y4pCWBWIbrsDoTk0MCJKdoEhHTmzf8AjLTFEwEnJYpwSen54VoZUngrUSJNoapWRiBz29TWFpYINrR8yA8E+td/pnZtjqYJGVeOgHXKIgFi/gDab5odPfGS2xG6RJFIkZd0WISE1YPfEzajc5Uy7lZKJ23ZvgcZTM7+I4Bra3B4Jruc9FGjw7E84a2Ygfi5wW3gypaZv2XqNPDrp/s+IxqnikqiOLXcL6/N/pm1sQed+XHlPFkHPn9FAB/6hYLsgjKbpN60zgN29eDXObpihTVl49zoD5DZ5vrfrlr9B8iVjVjEIDbS46HYOg5xxmUlNsZ4U0b6YHjKrECzY/DWM8JB1l8zfh56ZSH0jnf7BEIUBSn8O7BHPPpjJfFj8oQKGFW1ckjGI6Qldxt+/wDvFqzF5Q4Kggmz1zoUUl2JbMnXCUwV+I96B5+PTG6ONPC2BwQptTfXn0y2SONqTYAqjg/OAroq7VI6fyr1zn409KcsBeGTUIrEnbf4b4OTfcmLosq0t8/H/eXRxyMVcsFI5q7GdbeZWXbuJBrnjNL4k9ZlJrCSXTbZWEQG0gWD2+M8XY+R9rSBOCo5vCmhkkQAMytXmpqvnJtgjkZnmIbrZ9PTJT/Hodb2C0Z4EijaTx5unsb5OMiRvEeo9ibQbBN2M4BJHFe62B8zNi5tTqV6vE2/sO/rziKVIarCMjCGyRtPNAd/rk0kjmM2zPGBwOB9MOLVxzN5lKgc0RuXFFRFqPvDBvBIP4f5ieMRjpV2d2uqog3NZo7wOB85xSZEVxupLpgDTfnjlCSMyrL4KuSSrdzi4o5EAJkEnl28N3woazjyx6hbaE7ia3dx/rDO2IoqKQoHIDcE4to4DuEIKuOttnBHJISjCj+GkPmAzX4bB0rLF5pIw+4A81Y+fbJS0ba4lJwFJojddEjKfujyqlpyLALGjWFFpoYJS8KXITzXPyScKMmkZziQOI0dU05PUcG/nGPKF0loBXApepOVCKOWhNtamvaw6fHpk+s2gMob+AvD7h3v1wDXeEGmV2eSRxbP1u7/AFzT00yCWJgwSQA+YrdHI1ePeuxhGsZosx5Hp9MZE43sZKchbAvlgfbDbM1ZXHGwE1058zBlFBifXM6gitK+4tYsD6cZos7Lpi43bwaN8V+WTRk7VUw0xYmzdk4UKsFyaKVYw0ZBQqD4ZFEfXB+5qkhQMEvjymyfbnrlxBsSFWcsKC+/vmfC7LqSFA2u1g3W09KGFqgpsCTSyJGVO/YZC42imPreBqYzp0FpIGBBF80K980IkaPcGChnbqpu/jEfaCI6KFG2z5u9+2K2FS0n0hMisvSQUCUboOuOgUI7mTc1GhdG/r2xCwSLKGMyxq9C65b246Y/Uh43opuWuQOTVdTm9M0cpQw3udw8wBIsDt0wFjWedW6qKOzd1PrgeKm1olAD7NxsHgfOZonkjJ8MWNw3MSWCnsQLGMlZqNmSVkgMDsAxJraRXXERuWkEbFVCDzFCbPv/AKx0askFSDwvRAaJP77ZNJqGB8NVU31teRz7YtsKQtdRHM7tvJKmq6A/4wgGEZcOQvNlhdH39cl8QAlihKny8/PTjvjVki06FpDKxIsbWPXtzjDUK0x2u5Zg1gtuUcf34/piH1chkKlwKoqB5qHvhglS84R2sEhd/AzqJFL55rEjDkdQffrxjoJLrkDOlalmJ5CRgUCO91+mQfdnVTM7mJWNuStt8jtmzCw3ER9QQPKlD8iayXVFlZvvDSKWJO/n4qu+VjJrBSZYkjiE7g7FF+YBt19zXXJpy8e5poNyuRTGwfWwMdW/cpN7R+Jh5hz1F9cDUzACN5JPE8L8Q3j6fIyquw9CNSrFFjVYHA4V34K5kyeTUUQAwPdaJ+Oua8uqeaLZHGnh3wKFDMmRGWdCOoNcCr/3nT8X7Iz1mm0soRSjOS3USdAOv9M798STdIoWNVYAXZN/p3ydVkEBZA2w7Sfnjj4x0WncRiPyyKDV9ia5rn+o7YrS9AjsDIzMrhJCBZDfzC+R/wB9Ky0GSMbWPhxt2Ivj0HHxeTsFSag5Lfg8QCzffvQ9K98vRd8S7kJWRSQx+aoDJyYyJ3WTcixSbY1PkFjj8r6e+KV2JdxI0kjnaW4oj24+Oc0Bpo0bwiixotEKR+Jr6kD6YjU6Zgib3QkDchVaIs3V/s4toJ7wgsFox2spJJb6ccc/1wfD1McTiNWB4ZXJpV/Pm/gVjvBaRVgMRrbwq9No6c5TLBM0ZV1STgbqKjb832HOKnRjNYxsV8VDLCo3eUED2Avjn9cHT+FJKLhaFFu+OvPQXl2m00E7kz6iJvEJIt/327YP3XSw3GJNzM1owDUOKujz/wBYbVA9KFVYizElrq1LFg19P7ZTDI0QqMIN55I5FelVWKSKMReK7tteloIBXFWeeOmNWOCJFeNpKNWFYA2PXjJhwCTTySahSk8W0fjP4qOMKiGBSpMh6G2FA+g74kahYpjGn8RCebbkfP54brFLIm9PD3NV2Sa9Sfr8YDDFkChlYF6sKsa0STQxeo0ckuyPbGliyu4Haff1/wBZR4GjilQxazaw8pAcjcPisfHLpjN59gPJBSPaWbC1SBZKI5ZVqMk0KDFStUR8YflV0U6za3JAjG4j5N9sr8C2lljYsgADK3VSf+8S8MkLrG6KgbuDzXocWgpozppNXp0qPwkXqCt249CTkySsk6EbYieTtcG/QGuv+81tbGBMkTN4m7zCqIW/X9Mkg0vgTPMH3q1t/DF7fT2H1wp/Y1k2jYGEBfGMm5o3cigu01Q+nfLJ9Oj+HOrQjzFUZk4X/eZ5k8PUeJtQRSMdyN5lRjVMDfc9foc1tFq4tXEPE1KpJGNhRj1PcgV1wzX/AKQC+P7NSbTsHkYsBZeOamr0B4q8yo9PEqIyWKe1EkhkP17DNKTWtpo5N8RUHg1Xm4/Z65mSaiOeJZhI7jddAcD098mmzJMsheBpjpmkk8RVLbuF69QAP3zlWhkc6iRPLYFLJsNV6A+2fN1M+pDNKZY27K5AHt05zahM4jIhEMqqnkboQPT5wSiFxwt1LtG3hmR0AJIcJXXisn1zSfdz4c7sy0tIOWPxgxQ6l4imqcDaL5pjY9P984rU6R+ZbQFQBe7aa9bxF3QEi/TS/wDwgjedgACOgPyMV96Yv4SsEMnCssZ8q+/c5n6n7Z0ulnj0kZn1E4G4iBgxX5N0PrkM/wBqTNOrAR6GMgqZVQSyX/8A0qfzOVXwvtgzw19b9oRwxro/s5odTrFFTO3lihBPBc8HnnyjnMmbQSS+fVSffpkbcU1D7EUDsE6VzwSTgwaGKTTQxqjadZZD40pJLv7knqf0y7UaJ9XGu0o9Nb+WiwqrPcdMZyUHUQxj9hNLBNEjQaeFWVgJGAry/PsfX0xcGmhXTSS6pSWf8CEdDfBGeK/dtJJEyP55QN17ST2+TWUtpofDRtgaYPdu1UDx07HItj9HotL93Txb3rW7+IeB7/TnNczJGizSmWRXQKFjXhSRf+MhkgWT7PMUqeIsLVsHBa+exy1IU2RTliyWf4bLR2kdK4r8sC/YjZKuoHi/+FCjmnY9gOvv6YzUrE/8MTSLXN3wTkGqi8FgYZPDBJSuF4PqOpNVycGT7VVD4Ak2cbWMYDMTdFa59MDjfQaNePTCObaHk2yEUoaqPrx84nXaRdCYy038SNuF3UT8/XIoftKSFooXVwzkBbQglr4A7n9+uBr/ALQ+8SBYN4AYll2c/l/nNTRkm2aWh1UcUoXY1sSSVbgdhye/XK3cusXhbjflO7m1v+mZI1DxbPEp7N3/AMfS7/xlsBkl2qhAK+ahxbdKuumC8A47Y7xHAN0ndQLHPXLNN40YM0hLSHmz2xEiNLrEbxKReGsDjvV5RNMUX8DSK1Ldm/ov1wr7JPRzb9YLfco/Dwu4nn3xREcEnhRIlDzbSu0kdOM7pPECCJW//NuNFfb9cPWI0Q8SON9y9K4r6Yztxsn06GQChbIVJ4A3E1+eC+n08dSOpYrwSFoA984hIUMtWeCATwf7YjWTSCtk23uT/QXm6Rkm2IfRtqbkVJDXFkdR/TH6aCQMytFtANB+KP5enqcA6uZU8Mhzz+Ljn1v9ME6hyxSO+LG5T09v07YuFNaHvo3MZlURl41OwEWD2v5xUKy+CoJjOw8jaNoNYcbeJHF5SNxs0SPr74erUNptmzxFYEHePxe2bKBb6HxQgFbdfw/ygV9fTAKrJIT43Fm9osCvSsyzNKqyiAOqoPKCAQor8Q/3+WJ0DayVHH3ozqppljNmuvN9/j1zJjcGts1Xl8yhl8RL5JSh7Z10SQAXdjaUHGCEIiXyMS3LL1I9s4yTvEhDESEkdh+n0zChJuMbgrTFSRa2OOAPi8EBGjKsEDkC/Nz6cYxw0s0Mbyom0BjwTx2+MLUKYtI0jKsnhkAO3A9/nGSDZJIqtCNPMx31Yi6EgdvrX1yKKMHcUmO5Gs+IdoX2H+ffKpZmkkbf4qq1V0UkDnmr/ZyaKCGeFQzBRQAIPU2eCa+cWyqVImnmjWJ1mlt14TcO3HI/XEaiE6aSXfqZGVR5VVOpa6F9Rx+Waeo+y3kEjRbJpRRDcGh04Hrkbrti8J2j3PyECjatVu6dBwfnnN0UTT6JWm1UHiLAKgtWG82SRwwBHoG/LNCHfLDHpG21sDFH4IqzyD1vn6Yibw00sMeliDOQwaltVDLz9SPXAEkTIhkhZ5oiFp7oD8Jo/wD6J64e0D00I0pwsca2DTeW2PPY1dDvhRQlNVG6RbLBotwQR+nS8TFrn8a9oihkLBWJ3BvyF/0vKtLrJGk/jkSMoRW2sdpJJPTpgUfsWTYxt3ki2FSHtmNkEdOuBGsy3AS0bC6KsSCPn99c0H1Wlij20Qzny2t7MmTUqgKIWkCJwVHIJNcYWq9JqTfhyCJ4Q8qv4jbuAwvj0rKtPucGJw7/AMx2jhf85NErozv/ABCg53Ec+940EQzLRCKD5lPBJPv65kLLR8viDUqSSi8qxI6+gx8ZIkUJ+BD/ACigMTqXJJSNNrMLNDkC/XKIp4ztFndt7jrlY0n2Sd0MfrbMrIR5R0wJYQC7FwQPw+3H+85LOPCUsgZSaX+uLVmkdjYaxZQDtjSkhUmJMkp1JZ22oKB3CugwHnAmCMlBh5S3I79fQ56aQGnTyDoCR6cX8YUjKAteYkFj7f7zntlUJsSERk0tCmB4rKtIssTGSQvvdjXuKyeJG2gOX2NzVAcjnHKUZhJRZoxtrrwecaLrTS+i1mLugkN0LvF+ZlZk/mNj0GAUjkVWRqocg3Y74TJuPkVtp5BHU/Iyttk8BEZL7iL3ji+hxU0W9wZD/KbH75/7yiKKN1qVmjUiq3XeInKCgr7qoBxycElUQp6K8TaQYojQ6noBfpjUk3sPDBIokdr9scHJG0ptA45Xk/XOJHuVnUgFTXIrn/rF4sNixLqCGXai2bUMeScdIsrFo3nYnv7DJ1hQzRyMzeInSh1r+2W790hZ3u1HOV+PoSWdDdKgSIAWAB0Jww8hLEiq6GuuchJBCtH5fX1z0zbWoHr2751vIWR7Z4bt4IDG+eTxiZmCsm0BlJo1298eGjjAVnBJagL6YudY+WNcjk9SMm/8jLsIOFj3snTgG8THIJpWU7jXNggVgrOhba5KkGuf0xpMWnJIJJbqSP1xeV+4g1QJnBtg3m7heTnhSysSGJrsRQwHBXcCFWxYK50upUFWHHTmyfnJ3uhocjuyLtB+DwRk8qFXZ5JWpiQNtnaPTHRP4iDzstd1750yBHDOQqevrjvUgLGcJaOICxXvxxko0q/fjqWkLMF2ot+UX3r1ygzq/C2f74tlIYstcD6DEl+gxYDKQztvCj1HHOVC2iCq4Neg64gxoJCVVhu6WLv3zyusJO5uh4BOCL49henniccnYR3J74Bgcum0rSqQ4rkntRxj7JQGYGx0+mGkoVS7Wob9185qTemto7Ej7fMAaNBq64tmWN9zlaJrphTalFpByw5AXr+WJl8djcbhOfMtXf198aTXSAk/ShWijQOW22ast1zshG3yk88Ag9Tgw6VPAthus2QeR+uN5CgFFAHFdK+MvG+Irqxa6lRGWeNyVoEV1Jw+XW2A/wDqL/TBO4sL28evYY2NGR9zNZ9jmi2wOjwjarC03oe+LlG11IAZgOeceaYkA1gKm0Fr648lYEydWd5bdKUHg7sYssx3UgQDizzf0wQm67PlI4xwCoTyWuuD2yKtDNoJw0icGgR0r++eSBXKtfnjvaSbq+uKabbyx2r751JaXcB16kZVSi2K06Gs1P5m478ZPqlEhCqfKR3GPUqw3MQffFg7hwaA5wzaeGWAaSB13MzggngEcjGeEFF3yP1zqsRFe09eMHxDvXaLPezgVJG2wlKyWQKI68Z3ZtFhgD/y9TgBXD0LF+nUZ3UMCihieP1w3lsFaKlU1tB3Xz8nOsdrLfQ80OMTci+dFFel986viGQPJQAFceucrdvClBgAkkCiO/ri925yCm5Dzedk3dVU+hPpi5BtKi7BI49cm5UOgmpm2FrK9zwcfAoNixu+OnzimgLKsm6v/wAvbHwqGUlwbB47ZT4k+Qsng1wU8zLx0xaBla1NA80Txj32FQu6iOfjFtTmwxIb0zqmlZJMCVw6WvIXm7rntghAzG/MT0vAVo4dydQp5sd84JdqlzfI4rIuS9HoIRkdwAWs89smjBV2okgcceuBqtYqecuCpNXfTOaXUb6Y/wAPfdbq8x75zzkrwok6HkeIm4uaHUDvgPqhppIIxIFVyUqiTfY/v1yTUfacMCuI2EnhmmUMCAfpndW8Gk00uslHimNGkBO6yeyj54zRm30Oo12e0CRrpGZFZhBqJ4ogDfAc0P7YHheHrfHaZvKaJYWCTivsD7Pmh/8ATWmgmZo5XDzTGQUdzsWPGdlhjfUtFbyRtRam/DXQDvz/AJwfP/oMBxWCbV72kDEcoORXPFj++WeIsu3chRlFdKxcMQElkkFvwkgXjJg7MJSu6iOOgGGP+RZaxvhJ4WwPVrQ56fGLYskapKa8t7gOCcXJN4Uy+JGW83JrjL4qlKuVJUXx2ysYqeLsR3EzJWCSbuWsjcRYrOzfaaQPCjAsHP4ulY/WwTbT4Yu2FJeRyQF38No/Kb/D1P0yMufxypFIqMlpeuojlfyRbf8A7nJzqBv273Zg3JPQ53TXCFhcEiRa61txcgRXjBQnkrtBPX3x38jpMSlY9V8UWAImI5ri8GSXctIR/wASzdcS+nMEXAAViSFOegjZmMrMEscUOQKxJN3VBpdiJxbEh7ZeG29sZDCpCjeVa72jt8jpgPp300m4S2jVzV4SAs24Sbu58vByDTUtRS8wTqCdpLDcAaVfw/0zsJVihaRo+aChLrj1wail1C0xoCrs1fvjl5lKzuaFilXy4q7HvKJ5tR5/CEgZCAehFfrlele0Kmb+Jxz14ybUxx798S0E4/D0/f8AfDhpFViBdjpwMeDqQGk4lXm3ecbQ3HTk44qVcM0glIHSqs+t4mSRJtMQzAd+udj3rHZAChaVx5ic6E0mRaPIxMxIm8rVtB5od6xsrkvVWKJJvt7YsL4iiSOQEgUp5I+Rk7TrHKEdgzjymh+xmUqQeNjDMhWRlZQSvdzdfs9cj8VtXqHDuoWF/JtPJPbHyus7nSoQq7bNCifbD0+jWNPOxYFgvHY+uTbcnSGVJaN07qSFDCtt88k++eScCd42SmHIY8Y3YqAGJib6E8174nUqFHisSGA22OLwO4oVU2L1GpVywJc7Wsc0On54sarxWUbSoa9p2/njEaHbt2EyofMCLByWNx443XGa/Cq8DEc3fZaKVD/u8gmJZzsNMeSMN5o0bad5/wCJrjEsNqBhdV5u5Nd88zbgVLuUI4CngH5wc66BxHAhzbSsW7KKFG874yJLTMeedtZ2BTElhQeD5wOmLLgOTGxfcbYcUMNsWrKkQyq4atpPrWRl9u5ViHHF3VnPePsd9g2gXwe/rndII2T8G2zdX1wuSeGSrWRPqJUZVVHLs3rQGNWR2qAB+RZYtdD5x08R3KoQChXHce2To+yo/CIfpQyFUylpoGRWjABYG+ODzzfU5LO7RMoXcCeq5cunO19lIhquoP1wJYbhYKfMp8p74XEdNCITLCgdyZN5J9LGXw6gzr5NpZetPXA/vk5QFUZlG9V+eB1ziNsjVU2DvW3vhhnYJfkOLSswc/iPHLfvnOJCFJKyAuVsgiifrhTSCQs1hSnmYqfyrExnYWkiJs8c98EqsCuglClxzRHav3ZxdBXCBRVE2DQ/POMfCZzMx2yGyo6YZdQm4Fy7KSUK8elZl0EHxGMpcMbPax9MJ5i+9VXYD3B7enH9sbFFFIka7SrVZ4s/nnZtNDp2VtpqgNoPlrDTByXRJKNqMgY7gV2sb/T3x0cLMgZQ3iBrZjRxxh8qsqhVJvc3mH7rKIq8BX8MKA3mN1Qv+mMoiueGc6z6dh4QN8qDwQPcY7TsxsSO1bRsbp/TKXgVJ1kCKEY9Ae/Pf1zm1rMaqtDnrVjM1TA5WiRpzKdylnYmlHrWcM9oVambbzfNC/TKYa6BUoGlYjg4hg0szgBPEqwT0xKYVRxHUylg4badvFAAe2VyNHFCGVdypwwPF5FHpR4awudjoRe3pd9vnHBPFjVFt13Ue1c4yTNKrFamc0spBAVdpAFm745yrTuTpwAfMebBsLiDG0T7m8kZBsqOp+fTDj8kTuhKKeSAtV/bB0wOmgZYXikiWy7chjfJ9MFJZYkmUsD168c+5x80QIV2dwALI4HPscSpV/KUKXZW+effN6FO0ZUkxm+0dJqhE5ElwOCCBurcBX0/XNgSOPM4aJQv4Tx+eYn208sUC1IgkgIcbbuwQePTvmzJMkqRuyK21AFIO7kY76TGkujmj3pKVEjyFmIFt0Hxl8QeEkQR1Z5LN/TM2Rvu+ml1Dr4rr+E106Ycksum0/ikh6YOADyoPz2wwfHSco2VtrNsgiAO4i29zj3kWKO2csx6gckDMvQzahtQ7bI3Uddp/wA5aYCwMpZFIYGgeSPfKwm6ZOUUnQx5fvGkBjPFArz+LAsqsbNdjqq1hRtIwLMhIvggf0zkhpSAoZR5unPxWN3rB1g3culpQTR4VT0HHqc6fMaUBmI4N1eA6rJGrsSwXjn1xKsm9BIpNDgE1juVYLVlLyVD4kkYFLW6+nt75BIXWVUpkjkJqlBP5+mU70dGVKXjiu+EYSxGyTnuetZOa59BWEckXlISQhiRddL9PjOSaaNCAxCttv4x2pBSRWO0NRW2XrnJNs/hGIuaNOQvGRcO0UUmZhAGojeOVpAvauG9bwzHN4yyI4Cp5SAt/ll0pSMNtRjJuqvTEvqHIZU4FcBeSxxGqZRSbJRIsMsgnpjKwC0aNH2zrfZ0JZR48tJz4Y8pJviznvBRpt4Vr6gEE1x/3nGDaiQsHoIabcPKcCdDHEiTx1geMgXuHmv88qQ7HkmkG1bpaHQD1yddWm5qAlQUL2m/p7Z2WQaiaPwgiFOQrXz8ZuwO2Nmk8PawLLfAbqOf9YyDTzGdZN8bKf5Qbu8UxJh88ah9vQcH5z0Ew02nALk7KsNwecaNJgp1g2WExzeGscSnrv2kk+15FqpD4OxCCps0V3DK11baohGR0a6/5ZLPqkOpMZRgyjj2PTNd6aNoW7rG5s02zbYFg98ZpilB/wCICzAHceCP7YqMtqIxvJ23ybNisNFVZX2gSjsT0JzMfwY8TAMFDm2oWOcOmjZfF3LuPKk2GPrhAnxDudhweQ1Ae2DNCVJLvTMKBPP54broQS8sHEKo2yyGYGqPtkZWAuvhKK6hX7c9yMoram0KHDHqoon9MBgd/hXDQAKkrtI/zivWUWBuqjUB9h2uOQB+eLfaqGRyaIo+bg+9YK6kxSSGZhtHR0FXeKm1YWEryL4LjkZuwJAsUoskhtqvaAQPjHapzFGSjKymvoK/reZolGpjOnjCkAlQ/Tn17c4x5odPpwgVpNxAZVv9/kMNUylWe8dpbZ+XJ2gg1R+nB4OSwQyLIZlmKog8yAdfc++MmWVnSNRKjFjQHB+p+MeVEB8Vo2kNAeH1xl0Z4caYy72kZ7UbuObHrWRyzpI/hhXCnkS8gk/AymaQS0yMStgWsfK89OM5CuxyJYT5aH4Tb/nm6CuhDxSrqGdFbwoV5K9efr65KxnkJUGTYxsiqo+nPXNSd3eYS7QsJHRmq/bjM5zNOpYDbFu4TfbfFY8WZMWJJLWMqzuOl2Sv552n0+9mBXYfMAOBeLCbZmRWZaHm5/TPINWkMiyF2jU2Nnb649IIJfSLEWnRW3NybN+3Tp+WE2oYRiM0Ci0xVKBHUX75KZ4LYFY4xwarcf3eI1E0cg8EyyOxN+Y9DXHAyqhYLOz6hEditbXJtVf+/piUVJEuoPKbs3Xx85MY28QxO4d+oxqB3lVGdlXqbo37c50cUlhO7Lg0jwMFII/+i0czdZGCisv46s8Dn3OO1EpjIAvYRwet/wCD8Yc6htPuVt6HkMKv8+2CP4uwMU2qjQrskZmo7SoFA3++cphlRNO0oQleE5YL5j7d+l+mCgRND5fCXZWxQRv+eCb5yaR1LIRLZQcpzyD1Pp9cak8ELtOVMX8TarAGhuNnntz6/oM4v2kUkXbpl2sdu7mz8knpgxE+HujiFJQVUO5Rx0/OuPnDVlSRU221kNbDn1r5NeuINRSupmkltJmQDynaBa+wHtfXHJqZ45H2yEbbHYD9/OLhnGldSkUbH8Rbgk9hXHHb9c42ql1a7HibxBYGxAB78+uToJVp96xK+4HcCdqi12188G8H+GAt2I9lhlv8Xej3w/uWoXT7NQ6IHPA2816XitJombUyeLuijkIIiWRTZ6CxZHN9sFWCwI4yTtO4qp8NCyEA9Tfv84+PSNGdxmcOvmIVbBJ6C+vp8ZFPqdPBURSRpQ2xVsBAD0Hv8n0648/ak/3d5YoB4IpFZBuKDkGh84eLMVbDp4izMqqatrJ3fArOJunFMxZzJVkfhPQ5L484RJFdyKraicix+uGFMEZWqCnndYLUet/OLQS4aeAQSLPGfEjalDErXHHviE1kMCxo0oglXyuCjOF56dBxgaljKVkTlyNw83fuO94KL4krhm8MHobPX0rAY1oZY3jZE1ASaM0PDFlz8m6OVaFnCySTgy2d1SgMF9h/3+eZmmhlDiNACX6nuef78+uUpptQtO0r0WrYBR4wcqFcUXTNsrU6VUVkHnjvcrLxdX6ZJrod6RutSbx5CFvcv9RjYNPM0jSbUCEAsrBtwHp6Y6T7OA07TIKJNog52D/WDs2IxGacQBkRyN53Ky/h9hWKldJAPDoN+Irtvd736dsrdSp8s4kIO1ugr/eCPH3M0qULobSKA/peC0UMr7QRhAsxjjPFFQDwK7cUMLTNNLOXBTe627EcC/5gAPnr0OWxaYSrIke8i7ZT3Pp7nOagA6NJDpmHgvRQDkRkUy7vg3XtlIytUZ92d1mrgig+7IscpK/j6n4N/wBchXwWmRWXaoUdGsXYvtg6t5INeR4cZq9qN5fKOBf+cn1n26ughWHUossjDlF5I9Dz06/XGh8cnkQOaStmhrHTToyaeTZZHJbdY9vYZXE6xhZGSOQmPcHVjYNdeOvtnyP/AL1rJdqwwqUVSqGVQSpJ65Rp4/tGecyamco0ikIqMUWx61X9caX/AOel+ToC+RS/yb8v2zpW2tFKs0kRoRxgs7mv0+uZf2lLNqpooPtNiZWO4QjyxR3245Y/pmnovssiAAOqiLaWiAABFdSPW8bPHqYZoTQZCd7bUFKexuv6nJRnCDqI/G+yf7Pg00pf7NDuqCydoAW+vA9fb9crcxuBp4NpgQDxRKQh4qjee0ujljpo3SaUDcQOQhJ6X0/XtlDfZhmlZ49ZFpndTIUkbcX+hsA9cRyuQcQjQjXvqACNPDCWLjdRWhxz3JzQ1cngaXdCrHwyTur8Z/LINDphLMggkLvGKY7NzAnuAeOM2RJDCiy6iZyU8qoiir9T75OVNiywDSfYseqYPqZXpjuSMUBGOvJ6nn1y2T7Og8XdG0+qaMnafKu361lP2ZJFLIzC/YkbePjpf64etlik8qjcbAe7sX6+2UirjZzub5UZMECauHVQxTOwraXabfyevX09xznWeLS6IxJPZUBfDJ5PPYn4NZasCR6Yx6YAKErYij6V35565mxafVQM1wCPe+0J4ata/B4v3yTRVNM7H4siLFvcxPtjEbnaho2Ta9xRzX0hgggMWm0gCleF8Ml29CW/zmHC2vMkqzSq2ljZtmwbirX0J7i/oMqPjyaMlpXSSQjcpocDpzhtxNJWahhKks3hRBbbzyAtZ72T1zCTRyprppA6RRhWdiys3Fjrd5rafQOdOXZY5r6Fls/Iv/WQ/av/AKji+wFGin+z5ZnnQFlRwCQABfQ8k4yhzdCRlxeaKXSwSGSQMgDAAOthepuh0OFop2g1Didw8kZP8lMenP79Ml1k8mleGKbSvI8qhigACxsT047ixeW7H3W4LURdE+SunwOnXJU0iz1GjEXaZmnjBUi95W7PrXxk80YOoRVJIPfrZ/PjHoTPpFjeXazn8SeUn88ndyGO2Qot2GH/AB6E3gJpaasTNA8cjFCW8gJABHxlEkjzq+1zRFMw/l9K98y/BLybkbdfKq19u+NEw4IbeoIBUcfplFJpUScds7qAzTbb3BBuU3QPp9ckaUtAizbHVmsbxyxB+On+MeFkiIZZhTvboRfzxeIaEtqYzBNK7K5Ylh5QvpZ575LWysUg5GRk8su7yigor9jjC06eF5Nu63DBv7cC/XFT6dpJdlkeHYBI6X6jp+xjNNF4aX4jJJHVP3f998KM6oqkWEHe0ivJx5bAA9c48p1oIS9nAtTuAq6zj/whumXcSt0epPxk2l1MzBpN4JTm+Ppx04xrEUbVlCwQ6OPbRO4gFif5jwARnoSYGVlTchYgnZtrj8iScFdVJqZIm1T+GkYYsqg8noLNf2x8LLdxzGYJ/KR147H0w0vA76Ngh8N2JcGxRN9T7dvbFIBDYBjOxrTeeFrqf6nBQLFKjrwvIQcC+eBft6YSS70d6Bsgbb233u/T4zISjmpCxedFQmQlueb+D+WSz6rUgRmIqERtg8R9ovm6A7164z7w0krmkjYDoObA6Ee2RzStdLCFW/MWrxCBfJ9OvXEb3CsYndXKRskjgG8XZvt1IPHXn9MVp2C/Z8SPMEZxciy3u57D/PtnZJ5JNOgSbwyreZgK468kcd8HT6YhSwQOAxPnBIDDgX74EynhQhEWoCxs0ZWrKkjfV8UP2cXKpm080unMcLLxIBVpY6XV9f6+mBOsk6EHa8qnc0nez7dgK9ceNKEikeKVHcqotjYbsCf+XXp3xv0b9mCV132lCG0i6ho4lHichQRd2B0rgZpS6fTfd1hhETMVDSl2PlAoWT02k1fxeI1kIaGOLRPKs0l+MYqr/wDL8+3bGxfZqpMyhkVZAYTtNKGqua/r/nGvFQXpZN9ijTzwT7bYo38KBLCv1sWaoC8LTatgjI32Yz+H5YzIwZm92HHrf0xx1ax6eGTVeIim0pkJI4rr/fp0ySLUHUMJITITKOL4KqOlj9czeiK2tGTarUDWpG3/AOJdUgKnsPj/AHno/GETQRDYT/Nt28e365yVFkCuN52iy+6z+WV6eRnSPYjcgnzDj/V4rQXiCRmMJit0D8c9+hHPwOuX6dArkSLV2VLcle3+cmmTTABjICV42nub9vjOwymeKOyZGfqVroeb/XG6IvVhckMZCyMeOpUDp655IUd7iNqBwVoi/wC2LiZmGxXVWYWrXZ+ccpEcwCg8imfpZyqp9kXYcqSxxqu4FV6+Xk8ZmM7apPMzx87dqcX1zS1bxsrDxGYdau/y/I5OjtLA7RqEIFXXQ4fkVypMMMWivuiyhDudxXC3YGcYLHIEEVXfANgf4x0RXSxsszM6hjTDr++c4yRxqBH5UB/m9MRxwazjFRp1Xd4Y5PIN9cniXe4IffRPG7rlbeXaIgW7EnsMQkErSfwmKhXvkV9LwSVsyCeeOFR4gYUL/Df542PUBgxY+YUKA6XnpNOZI/BYkr/XFiMJA6sp2pyqn298ytM2NCSCrtIy7Iq47Ub64VVIscbDcAGb3+Mc0fixqtiibscUKw106biDtZAO3f2wcWzWNZAUV3skDiunzi4RcIG5x/NRw6UOevpYPXJ2d4mtQCp6sLsenGVbESCmV4kEke0M58wboAe/vhBUWPaakuidp5/LEeKzjYY6JxqxqsbbVAJayeRk1LcGazRkuvEUyp4UhAoBrFAnscOSUqH8tE83f6YmNREi7WK7vbrjPFDGuGWhZ9DeV5tqmxKS6BKP4YO7pXkWrJzsjBlKhiK69wPrjGQ7lYnr7f1xO2onqgTYFYsswPYhjt1EYQEirYEdO4o/nnFlYyAeYoe9USfa+uKbx0IlQeVZAxUmrF0f74nWx7mbwmkKqw2gXQ75BukXUbNEzog2hy7KvS+gzyShXLlWoihZ75PAsWmQsTbHn2Jx0pVo1LWZOqgLx8Yyb7JtJDA7St4ga6H0OFuQqppz71xk/mj6jbfQA0Djod6bmChwBwMeLbYrQXjL42x/KtWSMLxgvK29+3ORvermYyJsZR5Sw/P4w4aAXaXaTuOmbk7NxVDZNQysSgtV7ViIzJNMG8JQFFktzx6HHeFIC24DcQDe269s7BphsO+QEt5bAq8zUpOgJpIAuGcSEsoXmgvr3wreUsW3RgHat9PnCWExtbFiRV8Gj8Z2Y3uXaGJF0ehxlFpaa0EQqlAu11H4a6D2xhCsN/hhix6DEw+HGEjCH8PLV09sZJKQd208c8d8omuxWOjorRA63nW8RnLDhK4zkdhaPUm8CZ2aLaisCeDtPT88rf4iVoRK7gATfrgBwXYEGgeozqRqX6ED54w/KNvlHWuMyugjAvkr9c8SyAhjZ6ZxmpggXjFOh3BiDQN8HjHlKhUrDJrrwB3GKkBXcKNkWDeGGs+a66c9865IQ7KuslL8kMiaYO4QLGSL5s1jID5KFC+PfCNtHz9cAIY/OLO79MRY7G8DdQp5FgmunOdkYJt3uKPbsc6RS7mAPfnAZVd9xpq6WLo47/Qoe4NCQpoH1zgcKQBwB3vCYqKLdu1XgbowOKGNbAE04DKQDR44xKzrOCm4bloH2OFKhePy0OOoGAdMqgsh29BQxHztjLjRwQNFIabynkD0w2bdHR788jB8Y1tPUngHjOKS1SGtt1zycnaXQdEsWMpQCiR36H2xu5vu9hdrdVPXCZfIWLGz2H9cY3hmMqJAp6E4sYPQtiPGKUsjAV3/AM4zTzCq3XfoKOS7imoYFvKOeOa+crVV3Gjyw+l5vjbsMkijxFahw1dcleVUkFJQbkEDn4xy2B04xLoWY7LNdDQ6+mX+Rt0TjRze07E0QBweB/3nmd4oOVO7dxYwTLKi1Gw3cg31+RnNRIUSNlUMa5vnJN43ej0S6wSMu5kJptxArFQsOF8JTt6qDx85TUe5GLN+KyL/AFzrqIxuBAU9STyw6ZBpvSqeURNHotC4mfSojgbSQwIPHqeoxB1Q1GtEqTRxSCUxxBgDsUEAkf8A2Jvn0oeuHqlSSNolg8RVU+QfhIv9O+RwRQxRwxRu5kaZpVXcKPnIB59gM0W9KKNm3rPs2bXRK7uaWyNhuw3UV6/PviNNpItKqxoblFbuxPsfpjD9p6qKOKMacOztXDAADnrlEJVjI1KGHJoci8o+MnhO5JU+jyBgiWpsMeLv3x3LoyqDxwQBxgGQ+N4SLzfUY1AY0I4I6njnKRSJsSsBLi2sjgkDtlBi8OTiTyk3xnt/mVqVV/5Xnt1ONjE372MpFJdCtthP4j7iq3fTJZI0B2F9rXzRw5ZZrpCu0nk98DUMu3xCL2ctsvE+SnoY2gWUbdrjygVuAqvfEzSKoMqsCqnhffK4/wAKu4FVdV2yaXUH8Jr1FL+mSkklY67BYNrIfE1DheDa9eMKNmhis0wCharE1MsQDk+dutcYyOSNV8u4rW3bwcnyt2wtYcmeXeArheQKIvjECV008mwhWJLGx19vjG6pUZ78f3I6X85x44WNEtsCmwOPpiu7GVUL05BTxIiCxHfp0F5yYmU7QrBjzQFE++FpXQqqqnAXgAdv74ckca07Wx282tcYtWhr0iWGV03s24deTxhyKXaKHTKQG5JHPz75RAEWN0hUhXbcK428Z6CICcGyCOC4I49caEQuQeliMceyQu9E7T6nGrPUgjVFPlvdfX4zuqkk8yMyKgFAhuT75NPqIo3AL7WKgg3xf1yjaRL/AEdhmkmkLqAqWQK9cN6JUNtF8mxZvOacB5ga6cknsfjEx6qF2uEs1kgmPpwaP1xLwf3Cio0sINjV1A+uAdQJCACzJfUcUR64yWKOVVCEqp4JuyPjBbSguIzLubqDtsV3BvNT8Mq9KHeMsAHO4m+TwcgfVJJMyujICfKQRlckKIhYGzflWu/tkLgsybvMRZ4T4/TFnKQfjSBMih322tmqI/TAE27UBmUijwxHXCkjQP5lLk8kn+UYyV5d5YCwg8nxicWUtAoJZ596q4INUTwR8YwKwaQ2w2noKAOLV5WR3iAjd+TRv2HGHB/490v4+p75gM4kvhxsELbXFV1Oeji3gOu/aB04znhFYwyWbPBvOvKkcXhnaPD6Ec3g3038EmbdMR+JKI+D6Htlcc0cZ2gEAKKrn6DI0I1Uyy0oC/8A165VRVLG3gWg7n6+uFM0kuhsRMoIbbRII28ZFqiVlDoDQHlo13xq6pmmdLNqQdo6sPXDcPJN5AQFWqx200KlTFrqUeOzxVX2r1wJvDNJGeRzbdvfALRo5gXcVHJZgKxrOpZVMe6McXQybHqjixxKLaS2A4NVfvio5I0dIy1mz06tgzAhqUGQfynrQ9M9BDwXILv1/EKA7VgvwastjnVpgQilFuj74Gm0zx87dtGzuPUY9N23yRsGHB44H1yh2eKPzDzEWaF0MZK+xOT6RIuwSumwA0aHNe+SxEya1ViBkj2i5H/lrtlPhIZgxUyGyPNyQO35Z5w1qQRZsBhx84BkxsbBpN7bVZTwQ1L/AN450V1WRiqEnneLGSRCJpimxSrcsSKArKNiSKqtUrILNsDx2yi0m1oQTbuYKGpem6/f4w2KNtKbbDWyEcH2z0UckYsEbiaAXsPTOz6SQxkIZN5rc1VeMkybasCYJuSZgVvooaxeExh+7r4aN5goLX+IepzhUlP4z2V4/wBjPCIPpiP/AOL0xfQ+CkUwzFGi2muw6YiQsJLWhX4BXHGOYzxuwLFSvS/3+6xMjywxbVQs7Lw19sV/Q6+xGpk1I82n1BDryVQcGv75f9msJVMmqQIW8w7A+4yFfs92gRvEIkqmdaIruMv0mnikt5JXl29AX4Hzlfjj9izao9qJIwGZIyykUAB5i3SucriiQQ7i24kWa9sR4ZQsTu9K3YQ1AjARlIsWG6385sUnZN21hyd45paDUoHQcn4+Mj3xySiMDb3UjkelcY+Q7lMiGyeCVOR6dliEhdvMPUfrfwclJ6UisJftPSRn7O1LRO0Ui2WBWjdY7TaiCfQQvGVUmm3Iu0WR15z2pZdT9nTiRxsZSrkGuO3brivsiWM/YensMo8EdqJ7X842cSm1prxVGpB2MxH4io5Pri50heKyoIJ5odfXCj2eFvUAnjjEyM8EMhdKoDzDrfpeZukSS06pTSMCkJNgA7W/XGllaNvEVkZhZ29bwXk8TR7tu5SPNXpi3hGqg1Klwx42UvPqMCdG/bHqzJEsRRNz8cD9CcrBVUB2EUe2Z0EwdVWUhSRQJPN5eP4h27iCOaB65f4p2JJHZDvPhsKRuQe15JMkfiBwN4DUZFPIPbGSq6uF2ld56ryBX/WM0bR+KsIIdi3U9Rx3xm+TpgWKxUk21967m3fyADr84ULlZNjOAzVuS6o5MYtPFM6li4U3fNDnp1/TCR13+MF2pfDXZr5yak09GazA5nNlCNrGuT0wVJ8Rgx2UeK6nDkmE70oZdnFiqOKQq5dkLMqmq9PfBf5WBdE2oaVdXu2ml5J638YURLTxHaN5v8VcDPaia4/DcNTH/wAi0QPTAkieOMAMAw6tVCvTJNlV0GQ+mmTzhlY25uiPbDklV0ZY4CH5Ki7VqydphDMFl3O0ijgCyMFZQrBQ7qSxAVkA49bweB42Lh1GoXfuQKzL+GiarthwBoEUsQt8jiznpNTEmmeMub30jMet9sUVleIbw5HD7LHI+fyxUx6CVZY2IZmlbkK9cA1jXF6Qk2HYdCDV/GcgL71DBzu69xedkSKSMowcgAkHpt+uOgPsXHqJ0VgJAzhuQvIyVvvRkbarKguzxz9MaJ5AHXagj3WpPf5wSWnBNK7b7BY1+X54Bqo9pzqZWEoSqA8vQ/1x8J3TbEdC44KA8D9nI41dCwYhFVQAO597/tjS5aePcxKoLDjix9MJqPF2V5FiMfX8XWucJpkkcFGbaDuJHFn3v+2elNqqRoF3m9vdvr/jJpn2nwynyGXr/jAHGDqNSwfwxH4jO1AAVVYUMx3GOYsu0Cgexw9Vp3aWN5GBj/4n09eOnznWhi5DNZ4ruRx1w/wOUeYQySNG6MxcHpZAyYCOS4YVZto8xNCq7V1xupkMa7lmIUcEklRiNHqoJZEPjIQeKC8/Q+mFJmXVlGp+zwpEmnLK5WzuTgnuR15+Rk2nRYxI6SsZP5STyfz4zYjcJZKBUUUPKeb96zL1EIqgo6m7azzjS6BGXgrUVa2u99vIU3XuTgiRhMxKKEPCbbbnvfphFFijtRRclaJHbJpoJ0VpHUlAu5P5a9cCfg9WOggOj1TOQVUAEAgCj3OcGpMa+JHGkhJLHp36gemDqdSs4iMrqN341Q3u/fGeceHJ4Yid4Nm/crEH/vNVm/oqTWRA2BGWvnaLY/TC0sn8N2LKdxsEIbVfnvkyrNBrA6aiRXu41ZQR8EnrlMun1TWioyswBrw+p9BjtJdAJZvBV1CttjB3MSaJJOK1qmNdjBqu6juyPfKG0krttciFkBAZ5QCQO9ZFJM/hDwpWn3Ggxbjr1565RL0wnVNGdIkMeyNmNsx4JHbkZLKmniRaKgE+axx/nLHl2ozTKxYngx1YH5cZkmVISVjDEtyBYJN9s6fjTaA3RZC8UipcBZhxbMQW9Bx2xYlHhOYyNxaiY+w+MmXWKrVv8PYw4K2a+cpcJqB44MhYm1IsUf8AOO409AnfR3xVJ2uy7evW6r+nfC8NGTeniKv4QHNXXbEJGVkCk72JJahwn0rDkO3ajRFTuIDdbPxga+jCIoZJtSUmhZyoNRKaYVwOn64bRynYvhjaWG53BNkcWT36/GVhXjbeY17M6jliOSfjvntPqZZ23QosTCgFJPN9BtsCun5Y/NkqOSwanTJ46L4ga139Bfc1+6w9LoZlhhadxGLKKq2egs8H+2eOp1FLDJNGWRuQOQzfs+mLkAdiGEgQ+Qyb/wAQvze/oMX9BKIZI9XCHdXcsthGoKNvQk8D/vNLSQyLG8csiRFxY20zVwfKB9fyzLi+zNTPN4LKKA22ey3ZB/1lM0MeiQKVVpGNEXuINX79v6ZOTXSCO+1NMJSbnlSFSDsBJ+vJ/wA5nmRYzIQKU3tJ4bj1rr8ZVB9pkxMjRBkYkKStlPfntiQgjRlnZArDaAFr3oD1/pgVrGFdC42ZYHeSMEkblDdieOgPS8bDppF8HYzBiLAQcDj0xkCRvpysqxLIGoqfxel16YxEZ4tsN7Vbjn9MDkGhoLPFtaVWJ5KsvTmuuZ0zPDKIY6cGgKJJXnvlT6KZSwFOANpvkhu1WMU0bluCqOhFqSefkdLvMqMHCNQsJSVXZ3N7QxsexPvzjJUaSZmpi48ts4Cqf6/pitksSh5GaQbgNwsC8r8Lw2AcFiQSVLcD6Hr84je2ZFWkdkYs3C3tDA9T6fT2ypJ1knCMpoiyVvj55zMMDDjTyMgBsKTQArrfplkUQlZUMylhTGuSR8YoGaG5I08IeHGtcKgon9jEx62dnRWJWJZALQ8lelG+e+c8KaOtuwmh5Slkfv8AYxcn3ndaKG9jxX175gUM1emhGoDEh/CNi1Av/ORN/wDrBMYYRkkniqPHIx51M9L4iiOQG910APT1I989KIxAVqM73s7Go+nHHbFGRHqSuodZktFkO0upoj5yeWPTrK/iyskw/CXay/wPTg53U6mGKQ7IxtQgWF3ED29vW8W7GF/H8Iu9eVUjB2WfXKJDqj537W1up00qRRNUDJ5WZAG+CfbM3SaRtdrkjJO5z1z6D7a00up+zJJzGGWGQEMpHVuK/wCso+xfsr7ppI2kI8aUWUYhaHPU9h/XO9fLGHxWuzkl8fL5KfRM0EcDlI0clRtG0eYg+o9P1ywFtLpFRdQ0wZgQ8cdEGun5kDL9Xp0gRXYKas8EE9e5BB/MVjPs3TymFJCojS96h7UD3voc45fJa06UkizQb0066krZ2UfJyPYdML7R1cv3VXkCMG9+naqqs74IgoToQ0hsEkmx/jPa11TQqkapJcoBI9T29c5f/QxJpm8JE02oE3PClTt2nrRBNd8bqplYAvG0MQPD1ztFkZB4Bk2l2cqp8+w/hbvV/mTl32dGsmpaPXxROm0Eq7cKTlGvWa0HppoEdJJXWTxSPMJD51/fsMslgj1EimSJ10wBIiC9ffthaUIDSQgrwi3Qv4/XKIdPEqNNNHArM9MzDqPQe99a9MldvBX0N+ztM+m07zaiMqw4U7wRXoAP74MsiTbnnqNCP+Qr2BrnLWG2BYo4ygbleood6zNQBncK3hwjkhVAYn0vpjSzCS3TR+z5FkZXlj3O1+YSAKg9v1w/tHUwxbPMCSt7gCbA6i+2Z6NBpyx1Dl74I3WWI5rjt+hxGs17SSME8LbstQ4sgnjr6VmUnVG4XKx/2VJqJBqZTAqJqHBAZ+ij46ZWj6eAVqIxFtO1HbkML9T39jny0f2pJBo5THG0tHcAvkrnmu/1z6D7L18mq+zIpWgGmmlv+G56j2J63jpPthmqNpdSjoojkQ9a5r8s8NONQC8iKzDlW22V+MnfT/ZvG+GDxFFjZGLX3sdM748shWOGEvErfxHLUte3cn+nrlL3Tnr6M7WaUjYZNrGEkAogvrfJ7H54yUufE8iFw6AC+Qeln+vXKZgsrqqacbZfN5W3BiTV2vXgYATS+BsIjeZbG1gRV9LPbkdM5X2dUetH6aWIobSRRtoFQNoIzrsgKqkZYAcCv0/YyeGGVdGsh/iG/wD8M8n6HOaIayNdzxEk9bPTnrmNSNLT74yrljHIOtcAe/61lDBBbNRLc3Vdcg2yjUGV5w20eXixmgsM06jfaIvKVyTx6YVdURkJkibdGtqBf4K6dDxWCqh23yXIytuAPFWfpjpN7L4gKhw5ClAQT/vFB3inafURUxaha2Wb2wVRk2JYktGGTcF7defmxgGSZ4DHpdu7+Qr5ivc1fHp1x0xV9JJKlk7S1g7TfN/HfEaUyRxq24FuBuDc0a68c9cHTH7QRadUWVYZXmerUi3A7kg8X6YQf7wWjZZAE46c2B1A79cpp1kV3aIKhN3HdfW+hzzzxF/FhR232A8Zuvzxs7FTM0MAy7lf+Iymz0JHUc/rmlFqUWGo4HO4/iq1HPORzxtEm+Ot8rfw97cHubxsZeB1hVCjPQJNkA4LaGlTRbGd0IUFK/EPQAdifnI9Sm8NG7Rt4iAmUx0EJ5A9emGZBGSrxbR4vLbrsVzQ7ZzUOxZni3hWj4A5N1fH77YW00LFUwVh08UJ8Wi1baHAPoMGV1lCxdWIssvA56t9M5FqY1jXx2kPieVZNlCvf3ydJnSZYi21KsMLoj6ZMokwZIHVhEsqGhuLFQwB9a7YEH2hKkTXtLiwx3cKK4NfvrjmdtVWn2M3NsFBFcYgRss5WGMyKXKbRXA78j1xh/6I/wDcNQ2xjpz56YMU5q6LCs0tMitEoWSTkEp5K2i/Ud8UGMYaORRbNYAN+HYs51gGhVXmDmQ7ARSgJ836/J5w9gZVB90kjE8MxKtKQN5pWb3/ACyjWwQxQDVaeJN5UlZOxvmx/mjmSNHo22vrGQRweWPTGW0JJrkj8rzU+0Z/G0pgWlh2/wAOVDwAOaAFe3TLYoknbkqIdJrV+0tMJJGk22I56oBX7OfbsfoczZtNKdTKiS+VGG4bKBJI4PPXPaaeVWMEE5TzUf4SkzD0/fNZouEnZowjrMqpvURhf5e5rtiy+yq/FkekRgxfUGXc4J3jub/Ttlm1Y5Ufw5pAW/lsbKHN/wCPbFs+oVvwsgHClx0Xub/TKhKr6dlcQGTpsBsknpkbGZ6KeGKQAxH8IUMONxNjn06nLY9OS4IpQLNIx5JN+mQRn7vKFkjLMPMiDmx9enYf3ynSuqqyPGzAjaybrBJ7DGRKX6HS2NQpBagKNfy/l++MdDN/FFq3hrfG3reLV2a7G6u3SsLRz+K4cIslLw3+8dPSbWDpQd4dlO0MPKO/aznhKFuNgVpuNpyTV6l9TtVUMcl8Ec8f1zsolTctAqR5ZCfL7i764XL1C8c0N9Vp3awdpLVV0b64TUxBjIZiPMPT1yZtMZ5Fk8JbA5ZiAfTHwwjxkpb5IG00wvBbYcQ0zSr/AA0FLV8ccY+JndAHND0vDaJyv8RO3Y3eFErnh6CLVX3y8YNvSTkqA2o67HBBB4N4BAsxou33PrlEvCsuyrFLQyQvJWxQjMwIsjrgnFRdGjbOLYcgx7thAO5+BhRM+12AO2+F5FYtg6S2rBi4sAiulZVpWYqpZl5PYXx6YIK3Q0sViY4GdqDhF7D0+mcZpFO3aSp4Brr78ZoBB+I8DsPTEOdimRbfb2A6DKv4qRNSsmCsHYG0FC7HXO0W2gk8HgjKDMTA2/dVcgcEYmNA6olHg+Wu+TfxpYhr+wWil8N2R7cG66XhRwvKyllWxySv9OcaBbmM2TXN4wFY1PoB6ZVfEqti8mTzGWF0RNzAn8HUjCk3bAAl7uvHOEz7nYNRrsTzgy0qqrMzbjzXOJS0JMJLcIm4se9YRg8R9oBDAnnpxjY3jcRhYyWurrkYbJKoYsgYEktz1HsMRfGmrG5UyGmWYIh54DWOmNkUgxlmNH8Xqc8YCFM24SG761tHthIwY7XU9uL6e2Siq7GbCUXta7ABFX0GdQrFuIUAUKC8DFRkDfGgDyGz+Ef9Y6IMwYnziui8ge2Ui9wVrANQoLgCNKPQ57SsshIPmbt5eB8ZVqUAQMV4A78VikK2lVz6HnHcWp6BO4nWikeQJvonr3r3yqOJY0C7uRyT64lQEYm6d+9dMbyw4aj1+c6YRS0k22eYq5r8PfI9rRy3KeD0ocY1pCW4U8DkZyWWq3Ddt7jpk/klFqxopoZAilTZ59K6Zx76X09q5wFZ+oY8mwCKrOyPfAofOLa4hrRkSE8Mb5+MZKF2UVIvFRyMm1W444HY4wO7cduxOVi1VCO7FxxhbNf6zhtHom7547YYsNyeawJNociuSO+K+sGCRg90R/jOixweV7YsJS3dX+udkJWGlXoOcW2lpqPFBSt/x5+cMbnQkrZH6ZJFKxvxDQPHrWM3NGyxljyL69cRfIhuLGOXvr5ewHfOxqW3Ci1+vQYpgS4cluPeqwxOWG2NSPUkYVJXoKGEg0jAEDvgsjKwK0R6YDtsUjqD1wFZlqia/wCPpmfyL01DnNpYFGucRsbd6D/l74/aDuO6sB3Qstjk+/TDLXYEGtooXcaHB44zxZTYB4HpzeddLCsOQOo74mZvDQbau+ScpJtJgWnFAYFuLvuuBuRVKseCeM9RkQVbd/TOqEZ13r9fTOV/ooK8ZvGeARM3AKswpT7A4bGwGBAANHjr7Z5kI2Eilur60PnOyqGi5c3fXArDgkoszKYAq+tdPrnVLCZNqk0bNDGeRWEZpVI7dcKRFi204r0P9MbjWmvwZ4gjDu5tSeB6YoTKrM0asPk8nENO21oyedxKhua9Lzsbspa2BYEWtXeHmmzcQw1USh3deO2cLE6ckUbBqvnPDa89ObIWyegHthxRq8a+HRU9x0rF19G6J49pWR2W9ygFWHAzpjLwLsXduF75KKg/TnHsjG3UAgkCsnklZEDIxJBAcL25r8sSq7GTvojiMkenl2gttDbvEVlDD2/XEfd60ml8ZvCdYI1sACwQLHr/ALwtZrZX0WraInZ4MibCevlsV2v9c4mqj1KrvVxIvlILcuOoYcemI2lHC6u7NBUjCKolUsq1yfTpzhaeYqCP5mAtj0rvgeF4UYdhQHr75YrQhVA2s45oYYJt30Sk8PaeJgQXbjdYPrjdS7bLqx6jnGCMv5t20jsOmAQ1EAX8dM7VGo0Qu3YDKNlE7VqyKrFRTASbWjf2au2WUrjoeMTONr7bbnmu2ZpJWBO8E77kMbq5A5D1nhqCJGCgSGqW+hxfiBmVuD2PvidRsEhJAot+FSbOczm10VUUUy6uKMICjUb5DDj2OTTGKdGYM5pj5Afb8sGXwAGpQo9dx/rnE1as5aBGHa69MWU7xjqNdBhvF0+7T7ZEHB5rp1sZKizQSHhyW+oHxlQMsu9vKFHFDoBkEyTQOGeZB3vnnEmNHuivUUsXniIU125xkW2IW0jAMCqi+vH+skH2hJLE23dJRoMxFfS/ritLMw1CxCMMS123G3/GBNJjcHRdKQdoiUguP5hV4EILlrfzhtpBPBHp8g52WVG68vCGKKr3Y6cn885pfASMTOSJH5vuR259sNaL4PfxBE2yuGs2MlYvEpk8QNfNVx175dsMhJ3Kqsb6mzWK1CqfKq+UiifXDJV0LF6QnVeKUjmDBACQwBb8/wCuCupaXUARusrOAAw/Dd5QYZ4Y2SOWrJ2HZ0yWeKUPtTcGJ5lBFjJvvSqp9Gj93nvZLqOV/EKoHGfdkih2xRrR5rpu98SomdV8Mnah5NXY+uOWF1iU8rQraecqlfhJ56C0Ph1tteLsdP1y6JFVzxd98WxRnUuDQX+vTC88S8DzHj3AysUk8JttkrEEuFABPlHBJyQQvHXmLSWTe319M03TZEGfdZF885lPO8uoMSqdo/CfX65KUePZWDsmctvcCXa44ph1x1CCAG7lYclG79OuObR6bUrWq3bwNwZbFGvXEtp4/FjXSksdpLHdwDwefzxG3RRNMdAYpCS2+9vmUfhw9Qm9SR/MB6j9cTDptRA4VjTuCT6KMoSExKrySGx16Ub9MDQHV4wHcoUWiyg0axZRWQEfio15RzhyQswBbeAp4Pcg9ji5YZkBdOhHLc8fOK02FUd05YpuBKjkAbbv/eeVgdSUI8v/ABquuC5YxqrdyAB0IP8Ajj9cJfDjHmZgSaIu6v8AtmXQRe8JrWdW5JA6c1jJpHMpYybdx6g9MRLFa+Ijjp5SvasGQCSBBtUyPzv9D3wJ7QySDnYujxC1Y+i9cSk7xFOFIVhwRVf6xyMyL55wSo6UL656WKOO5HB58ork5mjZ0L1DOXDg+U8AIQKyyMkHqePaucj2nwz4Sm/5rBs5oaQGeFnkBWx+C75GCMbYs8Rx25Zegcji6P54TB447A6AgbjwP364E0sY2qvmG6iel4UykxqsaHdf4r6jKL0n9CopGjmrcg7BOPrRxK+INSzSEMAPIDR78Y2XdJGwANA+XbxR+cnUOJFaJVtR07kj1xL0okMEhciR6DD+T0v0wnJVUURkseRt7DCiCM2/ZVGqrg4x/wD5IYd+5rgYQN0Mifag2yDhbocXhLqDKbDspA/lPHXJkTarBDQYbSNtj6DODSiBwPEYqV59jjXJdC0vQ2jWc0ZDuPUE9/bOpthh3pvUg9APzrJ0bawbpHyQS3P7/wAYW2lLbhz5VDk8k9zziphaE6kOx8Xw2dwPJzyCffJoUmbyuqIWslBJyPrmoEYId5C1XAcGx6/OJMASLfsjsmwa5Hr+xmSaYeWUejQaGARKAIAgIrkn/HzlOn1SRIXc1G/QnvkrjT0IzNuDrZVjdD3xviKwTejsp48ouqx+TTwRpNA+MjzsQ+xgoNDmwf75ybw0qRSWvpuN17+2NISKOV7J3c7SOemQ6vxtnhgAo4F2t4jDFWygzKwCwyCgfMB0OAdh8oj8hU8BavJUhaUIS3IJHp/3jVlYTyhYmfYm0sooC8Gsbil0HqIYzEf4YaUobVvL9cj+xnR/sbTqiq7/AIX21ZPOP1kzRaTc488gobwBwB6/GD9jRfc/sfTCM35d3HYnkivrh/8ALDqRowINNE6EKljjnnJo55JCy6iI0rbaN2aPUH0xk7rPpgkgYq/Hn7985AIlEcAjD81zzQxe3Qn7YWqj8WBVi3FB33USM7poz93kjLfh5Vg19R756XdEu0rtUcLtFV/jO6fSq0pkUDcR/wAuTjcfyFvBKaeOWVp5f/IjV5W3dB04xhmnaItDYq75569s40U0Mjt4Q2ueRXmv9989KkEkkM3icoDuB4GZDdjzMUVNzh1PIBN8jqM5J9p/d3jkVA1t6gG/TPRKqrucFVWyvfnvkGsiTUu33lCwJBQqKIv+/Ax+TXoqim9LHlj1Mbyb7aiSL9fbCLB9OY45R4u0XxyRgNpwELM7SsPVAoJvrxiodQ/mKoAwFt3H598VvdDWYPgj3xMqh/KvBIr9OuBJM48xTaoSxT8sR2PGLi1kcqRyRE7NxBvivnBnDXGHarBCkcEevthTVUat06iu+6Xncabw+49Df54t31On1Kh3CmQXzzQ/peURuxgcurrtO0Ejtk7GSWNl3KGWgGVtwv8AtiYMheojimZy7leAWI6/Q4ELO2pUyKJo4PMd58w9K7YWp04kiZOKFiiCCb9KyiDSGPTeHsHmoWbs/OBWhrVCdW0cq+GYy/G6j/KP85NGZ5V8BBtZvMaNcemV6iBnlUGNN1E7RfIqslWFZJm8yq5G4Esb+MA8aocCNPN4MkqKTR2heR8VjG+7xgptIH4ix5vI4NX4cwkFSMxJZQenwMdI5dyGhokcG+nOG9A4nfCaSEynaKNgnn6ZP4DyTIzNSjtYof7+M0JDcJRG5Juq9PjItPp5LLBWrtvcEemFgiymBIpRGsZ2sBfPIr/eNTSKdxGqQoh4FEEYtHdlQxQ078HituMMH3jyRbnK+VztNfv5xkmxH/RezSrKJF1THYfNR5PHph637vBCNYIdyiiL6m++DHotHpJDLqpRJMgqmA59snn1C6qUkltqjmvTtYxnHitMtZzxtKXRZCw3+Vd3CgHtfTJXg1GlkLSBnivy7Gs18VnGWZhIqkslgW5s134rGmJYtpkK0osEC+O/tiYV6PPLp5EVDHbg2CDt59Tj4tAi6htSQm5R+NOo+PfEGWNWVhG0i3wzV+nplonE0giP/jqyoXb8dMZMRtk80r+L5WflaW2IrnqfQ4gxRvIyCIkghi2/92MbNFIS1K7Kvot/TBXTqI3A3+IU57AD5wNsK6EnUbpVAjVVQEKa6/OKfVDw2tlYjyhRwBXtnZGkkhsxFClAEGuPXJmOwhmR2cWR6f7xUiq6JHnWSYMsaxlkB2oBz9ccj6iWFd+ooKhIB52m+MH7vuUNW1lFkA19c7O4WSlQO68Wrdb9v75TvEY7KXnWKR5D6EEcn47XzgzaiIHZ4rujgClJsH3GJUNfiSFkY8kMt7fjnH6xEVhFabf+MQtjf9MZLTUQfacqwLHH/wCHk7i62CO3Iyf7xpzGEMXmHfdXOc+0oPElI3r5qI5ugPnvjdPCIEWR0Al7MPMPrnQuKigEs0aGMo0JC3RdWsH/ADmeNKZGDRkgKd1niqy6ZZtTt2MqU1uOfMMGSNo5rG0tVlhTV6cZaEq9A1YqHTQGYhJEZ7543EfnlSkzajwY28RhfQdPpk4VmUEkLtutvFcdMm2TjcUdULAAgjk41cu2bpYWjS6qORrAsCyCQSb9s7qvvGpdS5tQlBj1WsPTbxtKhb/DwSaPvk+qkjXUBNxJ5210PNkX/rEVuQfDrLe9pzVkMxLfiHbqOeO+DpvF1Ehdo9ib78ihgvzZH5ZKpkmJV2cAm/KKY9+/bjHsyKsTOZCAboP5kJ/DlqogWzab+M0sK0CSwarZ+3qRjVKQxxxiENt4HiqDRHPHrzko1OoMIkYgMDarfIJoWCPQZ2AxbT4qElVJG5b+R8fPpkmnWjlEn2r948OIS+ZnFo3Y+ljFNHIqSF2HeuSLJ+BwMnDDVhgrjcjbi22ig49PfnGtqWj8OAOrnqZbNjnvm410ZMFGR5CSXXaAdqgcke/cf5yiGOTUOfKN10b83N5niQSazxlRhR8tdPj2NDGxO9E6TxAoq1UHjpfB/vhcTJmoizRnZttWsMSRz8HPbmWMssRUdNt2QPWsSJpVUTeHRk42MCT8i/XH6XUOxO8unPC9O137dD0yLTGCSQwRLu5BJJokn/rCj1CdSg8x8oqj1rDW5yxVaF0vPN9frxznpYq4jZLB8t+nreIEKEboZgrERubDMaAP+/bPanTDe7bqoAbkN7gOeB2698CRCYQ4YmTubFexPGX/AGf9oaYQfdtQvino71wb98P7Qjwm+z7Te+zcSeEPQj3PfNLygM4jdHY0oJ7e/OJWBXAhDqI08wY9B3/fxjvKqWFBVhSFecVswBDwjaQgBu76n/vORTbiysCrMdqbgCR657UO0m5oirrt5F7fm+2BAwAiseatzbvbvdYAjk2skg3NYIC8dOOnPfJZpPHa5JWjJFCqth06ZcGfatyBfEboEq/pdYn7SQxxsUfzXa0Adx7gYDLsxx9maqTVRrCGTYQ3BNCj+XPoc0IIZ9RHNtiIkJ8rM1gn2HX8/TO6XUvDsV0cuRyRdgdeffCk1eqlgYrA1XdFqujmk28G0x/t37Nlh/8ATk0kZjpZEZwkl0brHxNKsJdtMJldLd6N1X4ctil0v2iH005UJIp3I5A3N8+vveS/Y+ojT7E08ki+ZdysXkNWGqv0yvJ/86f3/wD3/wDwSnyKX0iTRx6lVQqYzaqSCDfv9Mt0ilYVEj2/ItgQSfT0xWtnhigjcWYWUiR1u0v0rrnNIYN6ORII1WwQ1lvZh6nJPUHaKdORGXeV9rFv5iaF9h19e3fJ2hRv/Iv3iJ2J3KwF/vnNK4NRCTHGigHk1wR8cA5DqZ9SWRF4sXZQceldhi+mTPNp4G07lItsXI8zcj2+f84uLRtKBJIwUDmRzVkdvfrjImkMSRbWdS9SIQfL8k9v743TKkesG4eMyvyPTv8AHGC/sLzoNPs6BNzySb2IBWztA45z0RZQp1EKq4PkNhyOeB/XGaaYRQyTKrne/JlHLjrdevxlOmEci+IyLUv/AI12gAenGBU2JJutHyahyqnaTIQS3m4UfH+MnhDR6cbgI1J3M6i93Pe6wpd7KIZpEYyMQqVztyPXtNAdkfjIWBPl54rpXpjSdvRIK8H64QayORYpoxx/EUE319O2ZyRtNpmERCRx3Ew3WXF9/fG6aVxF4RmZZjVixz25PJOOLo6Ctky2WNqRRybbLpVgv7L0q6SUOkqBmHkL0SoPTt6e+ait912jXRFtPGhG4ShgOfxBfX+mYs8UfghkVyW4pXNnmqomq+uG2gKiMmN5+lo7dB36HrjqVawSin2VxpBJqo9TplhaInaWk3AqLPKj/rnNeGdVWRYdRbMbMkvO34H6c/rnzamKPUtGjOgBKiQm79N3fisq0cirJunYyA2R2380Rx3+cHNp4LKCZYqyl5JdHEUTaLJNl1+BxgtozPFLFDpitFRHKSNrevA6d87pnk02mkCTSqrNZDLe4n0rpnNPqSHkjDFaQbePMOee+C0K78OyLHHIkLaZdsPmIBHmA79bywaaEsHiYqp5bcaHTAigeSVZCQrWLLnzN7ZVpl362QEAKG7Dk+xyijZOUh+l00CuWK1vN12PzlRkjVQsSlfleDkLxN48hMtR1+GvfvlUiJAqfwnPFWKpcsm0mkiL1iHdJWqgQ34AAKv5+l5JNAJJNoUiiWJPG6vXOPqkjksqykEgcbv+u+E8iNHuYM5PAXgbfQZzSly7KpNGRq9Y+x4g20A1tKcMPUH098akyahxJFIPINoNcE+l4R0kM0BkC8sNoVet9D0zkkbxxqkSqaFBbo368ZJ2WtULmaF52lHix+GwUiupB/rnfv2rcMI43iQ9FYgsPT5NVg2FfkeI/BALbVAu7+nTGxQKXk3t1BNBgQo9AcZdGz0octLGqvUqrQZ24APx6Y6QyGUspEd8s3cjtgrADDHvWQqePORV9vXHwooYiSRtl36CvT9MNMRtCUKanVJuLUhJ2LVN7/8AXriXnUzAbDN4bHaaA6muPQ/2GUbkaUrpyHI/CSeh6H9BnpkbxCyCJnWlJX8V1/vDtGsU5ThDGronmojcRx1UYHgq2jJFhmG0AnbtPuf7VnJyYHdkjYupBUUb6dRlulgcvI0hK7qY+bnpyOffFjbYbpEEunk1EoaJXYqpomQUvtXf5PTE6b7xqHPhkRwxHzWPMxHc11u+2XsNOkKyKCVUmtotfqetZ3w3nLIisikeZVHY9Dd2Ppjf03In1GkmKGdI3lkYbgN21R7d+vp/TIdfHPL4Z+6wOqDovAUmuw/PLdVFPwrPuYdUHNKOec9opYNVqHh1MTg2GBUEVXT8vbthXY3lnRoUhglh8TdNs7/PCgdKHTnGhQPsyWRYRF5K2O3KjgUPQf7yyDRCPWuSSFYc7FHp1v8AtnNYNNNE0c8xQlQNhYCwf2Mrx9JcrZ81B9lSDWxHUiWOOEgqWbapN9T17fGaEEaCTTxoSmoEXLWSpokH5vnrnPtFNRDEIoRqFi8SvFkIZRXc+152e1mhR2WVgxYsi2GR146dAWDfXFfTsrdtFs0baaPwUAIKEh256dPy/tk2j0un+0tjfaOncOPw+cqD2PI69MexaStsf8EWpj2+Wu562fbPRyTyARqDtTkEeXrklJJg2jqw6PQiTTxRSReXsxcoL7E81+mPWCFiqxsiMjXu9BV2ck+6K24ks7SMQwZb3Adr9sqhgGlQ75VYAW5YevP0GOm2xXSQ3UL4o3oee5VTgRx74W2yMke3r0+nxitTvmlRkPKL5eATX+OccsH8JTb7k5Vi19e1fODti9IWkapXiHfGBzXfnj+uOVllkB1FBhY2HCk0hW2CSABARtPlJPp74UP4WUqoC/zN1B98ok0BtNAJbSrHHKEBHPl61/3lOmZEcs25mqh5ecBIxf8ADVbJJJ9cdsCrzw3cjHimnZNtMP7000qJGv8ACIO5xzRv8NdbwxIo6NuvoRigBGzeHHd80e+dEREq9BQuh75dOQmBby+nLBGDA9MkDFiT4qiuTY4y5UWRCjAKSfzxEunh06tIxFVVsQB+uLOEnTDGSWEzqSAjq28EkjtWW6ZV2oV6L6DrkroREZkZDIxBRZASAPjCOsj00AeS2cm6HfjJwqErY0rawsmsgMpPXkeozt7YrDEk8XiYZDPEo4WxfOMlaJlVT5vfOpStWiVVhIRall3EDmryiAXECwqzxRvjJ2jssimx+Lj9MfEw8BXVShYdD1HzkYdjy6GSOYyGXgVXI65NKkhY2SD25x7zOPKQtDjgdc9tRuQbJ5HOPL83QqzSLxHjLI6q7EAm7sZ6YBjaEeKoB2jsMrkZF3DyhjwOORnJUU6dpdgZ6o11yT+J01Y6lpPo2ICFWFWSSO/N53WzvL5FIAK3wD+uPjRXC7hsPUAd8YwRW2MQ0hF1QtcCi+NXhuS5WZzqyQFkO5jyD0/TOxhtoKsQHSiCvVh3ygKZY9nhstfzAdM7GHWoxvCgkljWSjHR3IgkafziRx5+F45ynTg+GpE+5gxPlG2/aryp4FkHm2nvuI64ttJukCKSF61fXCvjkngOaaodqCJIAUO0g8gDEoPC5aYKSKArrgoZ42IKnaB69vjKKRtjOguut9Blv9O/ROsOqj0CeXA6f3xDSOJxYoLzxfOdM/8AFUq1r6dSwwyfKWJ7dB0GCUswyR59Uu4EITY49sQ6gyMZECq3NV8Z5JQ7KXYAnpjJ5gENruvgd8k5ctYyVPAHkjiQHcw5NEf0GDDIFHFG/fnFtG0ibk4aM1XSsdDCGB3OOAK4AC++KnJywZ1Q1nMak7evAGNEljbIfgYgQtv5ezfIPbC8Bwdynb6jredEeSJuiiNgwquRxiyV8Q32754FgnQbjx8YJsv5K46jKt4LQQ7g9euA1Kvehyc6W3U9URxx2Oc3LKpPQDgZJ6EQ0YDKxonqeeMarK6ggm/XB6MCyiuKrm8MiMak0oKkdu2RSoewd0gB3AE3Q984GO3156HOrGNhJY0ewPbPMARtji79T3wXhgrcjbQs9ADnltAWbj1zkcZBUv1HQA8ZyYgyBQvvyeuFWlbAE0g2jaQv61hCKPdbKpsG6ycxXZIuzyA3TKozsWmAr0ynxu3oHnR3eVBNcDgViJRahTQrv6ZVYYbelnJ512Oql6HbjK/InxFj2ei8yc8Gu2crncReHEeoHFe3TOAhSVHY9h1yWUrGBkkXYEJNX06YIBjsqbB6Dr1zrUSDS9elc5yRPGFklQorjtg2zCpQkeo8aS2Hp6YE8jAGNV6fhLd8f4TqlkFgePbJxDRZt53Lz7nF+Rt9DxoBY5OgNc9P+WUrGA7MoHQEhhV84MSFmKEk15r6gj5z1q7EswO03RF4qVBbs47bnZSr0o3E3nokVE8lMfSq/PEsvgyO4YkkFibsde3thrAPCZgTybO5rzJtmaVHZdWyMIzVivb+uTOyh/CYGpLN3z64x2QSA7RW3g3yP3WTgDerI4WXcSqL3FdMlKWlIpGVrVWJGQSys085pQNu0VbV81X/AOljvsrVz6n7UkSV42hAG1h1JHUe1e2clhln1RjRiPBFyWymizH19lP54/TxR6aEqC51HQsPxDnt2r49MDdUmWbXFmvJPFFKFAB3G7K9MqSHcAVWg4u/85CiNF/E3hm6gkZRFqpCpd2BXuL6Z0fHKN/kcklmGiQBQPfjjFSghgD0wRPY8x4HPGeeVHFE38Z1ylFrCCTRNLK6klFBK0avj64TuTGGVTu+prBljBiYMyFSKo9K9M8gTxSo/DYUWOBnPt0yuUSiVUapm8x4I/lP17YmTTl9rx0jsAWarB9h75TJD4U29WJQL+BV6n1xXjN49SRHaBdV3yLzGUX2iXwvACtQVFt2XoPfj63lQp47Qjawuu/TBqJVO6WwzW939PpgRaMHcGaQlTwx9D0rEopd9jInIU7lpWHBIyXVpJKgUAWDTGuB+mPnn2BoSzfhsbeg979cSsyeD5rCKCz7q5Prge4ZZpmSpJHvlVz4F7AEAJPxlEE2oDKyRmQXXCXQqspYhYGnBaERqDuBo/PplCGOGJRvJUgO3age/wA/1wKLHlLCKTx/FeF9yeU7Tt8pA7n0zSWJYYjTFRtqugyObUS6ZvFdJKkFFgwO0Dp1/wC+c6+pk1sP8BSrJV2TQGUSJyZaJPDAU72LXXtiQznazh/Uc/1xaSCLbJJNuY9mXqPQemA0q7JCNxUeXzDabPQfXFbsyQ9J5GL+IofceL42/UZ2aJhGzxSEMD3O4fB9MVE7NCZI1tjzwao5RDbARyJZJBu6vjvgty7M/wAR8MbILB61e17/ACx2zcVU3xZ5POTIoSUxnpXCk1fvlsUrEMRZf0J4rOn46eEZX2LlYRx/htr4wZZRJakgjbfWqw3KyQ7pEWzfTgDJ2VJDSlfEIHPTNK10GKXoEWpXUboow1R/i60D6A5JIHhRmhQDaa3Ekk/GWOkqhdqqTyTfNewOSxNMjb2UGHb/AD9PqcjJvplY14HK6zKI3jLWb2dDhpEgiVkjbceeAOPriJdrsJBVsf5fLwMrDMkabqqwQaofGJ2F4hcNguFYgmtzda7YGwPqCrBlWqNNxhrEAxQSApdn1vFyKY1LKm6v5SQo+cDsy7FifY6mS2AJof0wH1L7mUSPV+t/SsEA6gM2w0W2k2OMTJp4y53KvNk219MSyiS9HrMykGNxuQedRz9cOJLiKAMoBLNS8tk8LHTosixCNuOQT0yuNy8DFZDw3m4/LCgPBIgZ3Vi4EcfPkP8AW8W6iKMmPlTdWe/rlaQBgFQuS11u6/r6YgwTQgHxd20/yrZ/wcLiwqWgQqTEJHBL8KR13DGamJ5YWV2og2oXih2GLqWMxypdLw+3mvj6ZSssWrkumKX34PGBdUBvbJ9JCzRqWjG4db6V85QiiG3jhkUWB1uvf2w3EYGwoQP5QDnpTu05CELfPB5r1wrsRtsztXN59x3eJ/LZ4P8AvNXRuo0oEhPPduoJzPIJJfYpsgCrJA9xlaMiRCiG4shuDXfNF0wz1UBOyaazKCQ3X274hFWUMyrtVrJ56/4yuXwNRGrEKxryj0GQswUq4jKlv+N0OOMWXYY6hrJHAiLu8xawAbrCDkOrrH5mtWQ9j84vxo/GUmUhehWM1t4vOGSCRWLyqBuuz/XDYaKk1Ijl2UGez5u1++cTVmaISSBPOLocn8sneWNtzB120dzRtyMhEwWeNxPKkf4fDA5b0avr1xk20ZQT0o3rqSWA6NtUH0HrjWqN1VgGO0MvlsDtVZKHZ9RGdhIjNKgQWp70R2x8kr6dFG/m7bjaR6D64KGa8Ld0Mbq7FY9hoiqAOFIwaBZI2RyvW+x7V65nTfaYaJS8Uj7aK8ggjuP6Z7T6/e6GAwxu70se2l59/bHRNwZpSQowL7VVUIsFTuJ9PcZyBWMjK9DdwoQbSM5NqmjgjuLxH4/DVH3GT6aaYTvcAiStxtr9rr04740qUrQiToo2KXcqdq7jZuyMRMFePa0+4OOd3FD+2eTWhZ2WLbJd7qbkfv8ALFwvJqiWjSPwgSGLckH3yTdjJNHPDGmEam9rEKrbvMcieKV9U8cch8yEycgEe1cZe0Qni27yx3+XaeeDzhpEBO7mVmZbG7rX09MXR1Kj577WaYQlhqAhIA8KWPhjdD2r2y/7NnfwCiPHRlICx/v1zJ/9QSyJq4IZJCEeQsxrcBt5H5mss066iKKM2qqbJ2ptDN14x2qgivaN6Pw5R4chKKVLNfr7HpgxOfDHBUVwGu8FJH1OkU2wkcgt5e3TFCCVEAEx2jhdg4wPEqOevscNV40gQwAhz+IcX641Zo4ZSgUhzzfb64mLTBQsju3l/CpPAB75WySMo2gMm2wQaI/tmjb0WVdIFoqlE0kygV5Qf6YCQLuHiIFUmyb6HPSRsXMhLHaBQfzC/WsnZZYJiZn3LuINirHvWZ0toysuOmIgADea+vPTIdrTMzOGIPlsCsrglhXTqjEKP5QW6H0yfZt80Sqru34LNDNKnTNG03Y+LS3ENp4H4fP1Hxkx0YWOQOSm4WChoj344wklRVkLR+ZTtYFSQMX97/hUqgr/ACox6YG0MuQtYgsIWNfNdNuBUXhrqGO9ZInBjsspcXdfljPEk1NBo1o8k7rrGppP/kGV3URlK21dn1zJNhbXomAKGbYu53UEq7mh744QJpphvMSu481GgT75P4JXVyyyylQhG0juvvndQ0erbZHLtIG4c9RfbDar9gq2dbVpB+G4xuItFstXpeM1Mskm2SFwJJBw1dR6ZMnhuBLKxCqelcH1OO1EtKER9oFMvB6Vzxi8gtKzq7tQakBVgKHtzzk+oZ3bbsFg2Qq2TXexgRx/xBMJX8y8bjz+fpk80U0cjzI/rW4mmH54LGS0pjZFYmMU0QthXX64sxtqgdUh4YHcLHH+cQupBgrUAI4IXyPt3fOP05KyqssQSEG25qj2zLBmqEynUqsYMotRVIL79OcI79RIhWMbENljwFJ7X64f2jCRqUlhQDnde8gZPLKoUQwsFd23SRbwfr8ZrCnaNPxotCvgsySMRuMd/vnBOsnmcIiGOMD/AMa9Tfv6ZkxORrKZVZVFixfJy133RrTJx2Lfh5yik0sFcA2ZNsmzarQkrLH1NnpeCslSK0IRPLZPQf8AeTGWKFlUsieM+5zGv426c+/GaP3atJLFvjVitgnofbFkwdIg1epd5hIswsCypXp6fTBO3xIz47lwL29ue2N1EEMSLGk0bMxpqY3fz6YCwfdyJiS1Ld/iJOC0MmqEzSOw3W6RgUKuz6ZTBLIhpQxdzyCdpPHpk0JL75XZeDwOvPzWUwuBLcsJ2E3YN0e3GEL6GF5eRvKleQeeD6HEy6ho1AlJkSxbUReWO0UatHMDQXcF7ZDrjKImcKNjqKAbsfTBf0ImhDFdrJ/476CiTkohcSKwCuEFqymz73/1nUkAYvJ5rqrAsN3HxgklHdVdSXo+9f2wpsqTzh1ZVNKwoswJtfpjIfELIPDHm5L7RzfrnTqnh2AlGsdJBYv/ABhCVBvQSMjlb3Bdyk+ntjBYma4+JCjKrcEmjXpi5I1ZU4Y1yr7D5h8fljIFhOo2uBIoFndxdj61j2hkdQ8IcUDRDBlX2GNZrMt4tQy72jYoPXp+uc1EUZjLGUSbf5VuyfUZVqonKUSJQDwV69f175BumOsMbpXl2gqtEfGVjuhbBk1UFKGfe7cfw4u46Am8lfV0pok+ITuUNW30x2pZYikYiPW183GANG0oM3hBgv5D1Ndx2y8ePbATtqUBAkgDuOb3E/lgidJHBMERTuoDX/W8cUeXzeEI2JP4Vq/p6Z2GGWVzENO5F0GKUB8D6/XKWkhaPSvMsTbkoEgAdSB6muf1xMvFO4bxGIFM4NH47ZY0e1Hhd1DK5AjI6cdsim+6ofEZ/CkI8pU3Z9d2CDTMyeVtsihrk3EksKNep+MoNMAvBVh+IsKbp6e3HycXLQ3EkMi0Qo7g/PtZx6tEYkKADe1kMtgEcV1+vOVfRI6ztsZQoaYcWOg559Ca/tiJJY4gsbSJIx826jz6CvXrjlAdWkMJdQKUWNw47/n/AExAV11DP4nnCfyKLBNevBOCNGY8OwgCadVW2s0w/I/ljEgdlYGhxtIJB68nk5x1mdEWSMgAiuASD3+DlJVVYs1qB5T5iaxG6GWitNp104vxXbYfL0IUd7GNTzbxuKBugvk+3pXvnYYTvtXjO0cUaBs8D074h5mTUlEhLrdU5A9+cTWw4i2UGGNg26VTZpjW0ev9sCHTyyP4ibVJFcHd+f77ZyUTSI7UW3cC1BP7vHQI4jThHNg0qc+4Nf3yfSGGpCVk2QxgsOTubb7ggXycTIdQmpO4h1Brgbvke5/PHBv4UjeRmPP4unxXXBjhltG2tGooklRdH2/xgMUSG4rrxC60qg/hr/rFKUgVSVL0eFCkgYyFQpVvxNVPsHT886yxfet5mdiTxyFAHoR64tgofHc0iEMqIjUbFE+2USwwP5gCtLxUfUZNHGYiCighuKA217/u80NNqFMe97jKd9u4H2xQPCHV6fZPD1Em7cU6gr7+mD4D6gtYRWryd9w9/jD+0i7PTMWV+S56D2PH6YtLYKIwCo8xRQQSa7Hv+XGawpehwRJbeMgZYx5n5NH3vp2xeodvIoNRk7txHQ5ZGjL4bmkkc0q0SDz1Kihfvg6qNIY5Nu3xZHG7y8k/GDAp6Tx7NROskasVVWof/tO3z8ZnamZow0crsqBrKgVXN7euUKvgO/hFlmA81dG+ntk2seOZ4n1ChmCWrNQxl2MgdFK2kdUj048GWQUJaBI+vOZn2WVigKvqNsfiMkiEWeGPIPbPoNJppWkidJ4Cu7hl5Hzf1/TMNNLJv+0NM5VHj1bE0LFHob9DnRBpqQrX5I01lEWiRUmjkhYttAQhifb0/TL/ALLi3/8AlESsW3hdzE1XUd8yGj8RNOFRIm/mIFIOOubum+y5otC0wJ1JY0WVgQfb4FZKVUFl6ahYzUdylvKuwkBT3J/YyZorkVjIVo3YNAG6qu+DOsEYQ6pjVAfw3soPU98OPSwmN5bJG4GPihzwD89ckxMC3ArvD7gG86v1PNX+eU6PeYnmBZl5SxVE9yfjBLM4jiW9RGVAVlAPN889gK7Z1pS8vh7bPAVYzZrrZ7dfzxX0DWCNUscRindRKorcR6noR0vK9FppYI35JL+YMWujXSsmMiNqFZnK0PMqHcb60RmnAjs7uSuw8UW740FYk3SJGik8UxqjOGB3Oei8ccnJZn1B1KxrG5Ij5dWokk9M0HiU+a23MaA71XP9cl1BUziCJXCk0Tt/BwK9MWXZoMljik088jyQESEDZbAsv5dfXF+OGADJKY2BAO6itcn55yjUQeNJ4kXiO0S87R5jXUn2xDSeOxmER3xV/Bccn5xSyYhzqPF3QKJAyAAnm+vb1980JNRqooYkBO+M11odO+P0x0HEi0rSeQstgDuecm1cixyBYz4yny0LteeuKzXb1ES6tptQQIgzqxZ6bYR9criKmKTdBG9tXHmKkC8kT7OGlLLUe0MSKYktffL9OY20u0xMNn4iV4r3wv8AQzoMyyQ6VIkCjgOQf5BfQd+mV6CUfenE0VE9W7exF4iWvH22tbAtFehJzkcY58S7HS2rco6D9cnqZN00aiMIPGR5VLMbFelfkMl0WqUyh02iQWWC224fXJtPp2SQCSTcrAlwPNXrjIg0J/CW5sgDgjt9ayrm8JqK6NKXVpMnJpozuIB59sEOZUpXlIYgrsF+4N5NPGmp1Mci+GUHmQswPm7cZdqF08UKwklhITY2836fnhTcrbFpKkSuPCuSSUbu1jlfc1zXXFCeRwp8RNrWeOPXm+2KjUT6edXSRafgsbLA9SP32ziwhai5cvxzQv2GIylIZBNpmgV4pEBkFC7oi66dPXFGcNMHQeHEKVlsqAB3HznRKqQqkMcT9VK3dewH/V4kMRIE8RNwsbRzRvoQP8jF2g0cAL6pZoZ++5kYXQrgA+55y60mkjaWQKHFhCLUe454F4qVzsZUfwlReTtG4HsPrioGA2Ev4jHli68/H5YyZmrLZJZ0At0pANwAFcdOmLj1qtC87xlibtnJokencc8ZVGjS0Ou274r26d84NN4UaCRbPAJPW774ab0narQI5AzSFIwWKiww5PzXP/eWaWWJmUWnehfIrubzs8AbTsWO5ieqjrzQwUhjikjlIG9DQIFkdL+cpGLi9EbTEsQmo8OKIpuO1VHS/wDGUbqlKdLNLXr+znmWL7Q1JV2IiTjjoee/ftgThICGRBtBJO01garTXeCtQuojVyqolg9RY+MH7NMqwvOWllbqLNfQf7wtrzDwXUhTwBwSec5qEaPSeCGXa5Ipj2OKu7G8oXqZ0dkPhgsWG4C+PTBj8+qkWFFS1sMxsgH91WMAYmKMJfqSaoD3wV1H/kjig/i76O3jbfNntVD93gTbY38BlEkbwiNSSz+Z1S/6Hj5wNRpoXm02olTxpDasrUu6ga79vXDl+0xGsLaaQJuHhodoK326fBxDaiVljklRdwcblc2BwbA72a9O+O6SwKTOzIB5H1gge2SOOhzfIoXwPeryD7O0rPKSjSPtjUAM+1TTm+nWrzW1GuX70L0oO5LVHFbuKAvv8Z89o5DDq3jfT7WpyySOAoFpzwaArMmmMro+l1aoq08xXjhEAo/PYYWkeZoQR4jtt4s9D6n1HTJJHC6SGogfNtVgTQPsBQPphwyTNBulLGICtgG6u3piXTFrCmDxlKs7FkBqnoY6LcqNTNRHBUdcz5CjzSr93lYGqW6AHc/pl41fhoiFCzUaFckD+mNFoSSGSKYpV27JGoAk8cdsAaYs4ZmJUWSgG6+SR0znJm3sFKKL55YH56YxpYY4kZ5D1NuT0HXHpC6hkOpkU7GjWNapLaye9fIz24RNvZbJ4bjljnLdySSos3S1YHqffPM4D+dulAUMa2INlkRAhfaqsa3entnlfxzt2NtHHPz1zkzxTII2Tqefb2zkT/xTEu4IF4vi8qtYvhWikjzEWD1XocF32v5lJA/mXoBnoo13XwtegwJHLSXQA9OmWbqJOtHb9xNcEDi8F/DdVLbWKc/GLQ7gRuUMOD25xEAMszh0NA1x0OHkFIe9TRq7Ec9+nGJbSrIBY4J4W+/qMcwSONwjgWKO5boe2JebwELGuBwxGQ+Sr0aN+BLI0cixCPyjgHsDjAD4VsaP55MjRS6gEFmH4j/m8vjWLdtS9o5vD8VyBLAbAAWrvvWExUIFahfcjGMtNaSFW7emCyFRuchiRznTVCWJNeVk/AvBPIIwfERSrDlTyNvQ/OM8WJd3mBrqoN5BJs8bbGSVPJU9PpnNOXHopFX2OknjY7mpbHBrk+2N08i+AV2jaWtmySMIVCNYCcgEdPr3xcMvgzlQCYiKK9gPWsSPzU7Y7hapGps/ijbYoX0oDFSDajSQndIOCSeuKWVpotigsQaDCwBj0QCMhip475Xkp4idV2D4ssleDKqMO7LY+tZ1/Mllg1i2r+vxgswRvwBT398AleXY7CT+EZJt9BDoIwe2IYcUP0wtK4NxyAqST1wWRkQFSCbrg4vdHbEsSSerYYycWarQ6VFWMW42j164LbnBQLtW+ec4LbarEnb0s0R9cavlYqaB9b4xsk8N0KiVEc7WBHT651/4LqtgA8gk9coiRWU2ovk4DqHG5AGbpWF/HUQXokxxyDdts4vaoUbCrMORY/xjFDI5FFeOKP8AbCA8u1R5q6Adcg42PYhJUKpxTObO3vlSKhUsFA54+ffM+WFt6uXB2tzuHNH4PUZooxNbOWHPPF43w69NNLwHzo1mrNXQxrShloHzdOe+QwDUM8h1PAVjS+uN2eHJuYkV0AHXKKUkK0hjlj3AP656K2vcatqJ9cApSgkmh6ijeGW28WbPphvbAMaJWT/iAe3fFujKCVoi+R3w1ZjHSHqeawaPmq+mF0waA9OBz5e/GTm4xcbG1NcA85RRKkAG745zyIUlt146XfXIuLbwdOgEZViZSDV8epwvKwLIp+Qecayi1sk168YlnXeCeEPBPYemFxo12EJFKlQ3m69euCw8wd63D1PTO7VA4ofXEOQpZJFYgc9MEm/QpFNCQUKIJ7HCeJxJW4BAO/fFaZdkZYAXfC9Kx41UUnDEqfSsvBR43Lsm7vDwbanmvjvWLkO8HcxJB4HXPSMUl3KQP33zxkUhgCQSLJr8qzSlaoyXoEoaJaD9R27YqGVzvWx5eb9RgyyEN4fUng2M9HuVGVl3DsM5b/IqlmjnkRtoBph09azrGRRYpge2IaMK/iqa79cPxmWrTqew4xlLdBQUaSKfLLddQwxcrNIx4O7nr/bGBJI6c+fnms4waV3K8FfXA06oy7D0x/gMFSnA5P4bwYkUxltrEc+vPviopjHvohQv4qF9cdppFkJSuOTV9MeMk6RmmrZLOqIG3qAa4Ht7YQbw920ggrQNdDjNTsk8xPAXygm/yyKWYl1jhI3N+E31HqMlJ08HWo6+mXw4lk7tuIDcn0+MTqBpxvjZDtDbWkjHIHBJ/wCsHVFyY42CbXUl3DUygc/lmbqdY8Omkh00ZSaRljiYOvnLmhx26Wa6ViKNukVSy2HBpXklfVOJHWZt0W17ZIxdX6k2WrtYzXgjaSJpkdVAP86UR6jnMeNNV9/EUbvsjTyjdxsHlscc9s0vA1EaeF94JLgEtyf3/XFlL8roaSpJWNnLwEohjYEXuP8ASsZEGZGdVHF9uDnlRncbCSgq2C39Ma80EbrGVIL2aAq/XGSp2Rb8HLukhHCRgj4OA8v3blypHt69s9TAgtRVTwOpPpi5hsZfEjIU+Y+hy6d6ToejNLGPwiuaXn4zhRgp3VXbbwRil1mnWBgt0SQPWx1xhPiQK63yeB649JqwaiWczML3PGgYgliDxXasNIyB4hew38v77YyrQGUvRbqP74iRPEcOu6uaINH632znf2UR2SOlIEgEh5AHf98YCSSvEFJKSMSJK5r4w942Updi/HFX16fGAyyoNvibVDWCe4+fTA/0MgZYztKs3kAtu/6ZnNq4UnSJJDzYvjzH69MvUEoR4m/cSb45vsMimDyOeOEUgmxR7dOt5J9lYhLrR4CgkKx4ZSN1exNV2z0mohVVlkEh5B4XhRx1JyEbZRtfwo4FoChtJP4bN89umdAj3wwyAeC8bKvmHQdeP749j8EbEqLqGWHc7q3mDKwNj1ykldNothtVI/8AzEj65lRvD4CKqozFgoAbhRQ/Xjp3rGxz6iZVMyVdkKgIIAuruv2crzSRBwZ2OZJljLo2wtUYazfz/vOyqA6pbyOGoX8d/wB98ZErbw8ce0EUaX0/XFGGR5SwHIoKAT378ZDRxunFMoMQQsOl5UybSwAZiR1PQ/XB8NhCkQiaTYtF/wDeUaeF40VBEVUVVuM6V8f6IOXoho3kcgKA9VzzlcbIiBGbznsepxxQhRaKD7HEsSXtio8vXClwF5cgnIcFa4Aq6usTNHLuWvMO1Z6IkFtpZrbyMWu1IB49gbHPOM8QbrJF1VHNJ/Zla6EySMWY3Ve3JyQwpJpXJG5QaQMebH6ZVJLG0Sra89FI7ZOFRyqedDXTscjLWVjgJ3hG8Mx+Iychx5SP852CPUCK3kQsDVA9Pph+IAqqFUbQeAOSPbCaNTe2+K8oJ+mJX0M2NhWJdPUcdqeOO59cVOm0l4wrWB17fsZREhWBY3Yjm/LnpWK7inJA6V1yjWEk9IxDIiWGqzwBwMW8VxGNuK61z9cOTVm1EiMzE/hPb3vthRTF4eUK3YBBvpkWkyv5IEaVZI1DyGgQVrrjo4zFuUE9b3Ghk+nkMIBDFhX4ul/XPSyLOhBBpep6n4ONGkjU2x7WIpWEiEM3lodBXIyBoX1VxwSpGapuu4D8+uVhCYRIq7PLS32xaIyzbYxTtR3DoTjNuzImi0k6Kd8+9rI3BBRHTp69MAfZs6619VFMlIPMlbQx9evp75ZG6SO0IPnH405BX4xssTNEX03mIUN5uhHvm1h5NC4UdXuR0ZTwvHbDZEVTtW5dtHsCPfCSN0aPxSGJ44XDdj5i0wVAvpzfreCqQrekLwS+Yb9vIJKjke2dOkjjhcRi99mS7onKI9zuVsMb6kc/OGDIPK4B9STiUqGcmepBEY2AKqPLZrJbkKBiwagTwtX7VjZZPI5RD0DDmqHf5wACUtSRfP4uD6ZpGQpYQqSFaVzRNrur49MKLTpIgsBkcEMWFE5PK+raXdC5KjkDZ+hyqN5UAUutkButWe+ZUM7JBoo3lJj2AmjbJwa9vXKZdPBMfCMYJ2kChV36H14zzLLIoVWZgv4iOgPx65ISyxyOSx2m0kHO05kbX6eCGNGKDayuNwF18+/OS6yRtzAyDwwNwLL+eNXWF+EWR2byOZKW0HXj99smd4zKsccsiAncelEX0v0/zj9lF+xoQzyg6cO1oKJFhR7en9MOJPB/+XIYtpkoKDzbEc9xXxkyEwGSATeDukvyMTweNv8Ar3ypp2illgbTRhBtYI67krgUD2Pzj0Bt2WlX038FEVjLyX5B9+uMhhQSkEBPXmwB6c4uGOZZVmWEBY6AO4C74+uUu2m05JZrSTgkraj/AD9MmtJSfhPp0gj1DRxW+4V13Gue+UPpTAC0dDct7QKN+oxIXSPqFO7lDSGPkewNfOVeI+4tJGViI8rq119MyXdiybM69qnwlNkeZuNoPfDj8VY1DKxUvtKjrXY4yWSFYHVpVRQb3EcgnIJGaNIdsqCUMRY3EUQecmsHWmV9tTSv9uxqgeUQxG+ASvmFn8s1tM00ztE4LlV56cWAR09f0z5ubUTSfaTzLE05sJujJJFKb/r1z6HRrtnaKNZIyyod9gqTXPPr29MrNYisl+JZo5mZGuOgCdhJuh6k+uW6VUmTYWClPMPfJ9JKk0zClEY42npz/XKtsQmV13qvQIRwfrjRXrOWQQdQ34l3A1QPNZTIyBOCqkelcZml2+9OQpLdaquK+MqTcI7VwrcBlqq/3jRl2I4gmEmcOQa23+MgfpkzxxSSb2KhlNKTfmw55pDqAqnyL5TzyTnEkYR3EiE7ua7euRbV0Ok0jv3SMQKsaonNgk3zk+uWWEN4N7goFqe2UxIfBYMW83NbSK9vnJpdTHDIBKLVbUVYr5wOho3ZJHqZpZABtodQXr5u+uOlJZ0IeMIF5U9QcGE6TUMyRMVdWIscH88bpdGtnxlMjOeDd7eP0wV9FG0jqzKFKvICtUSvNnFyaxgF8WQ+UErtXkfOKZ3iH8QOxj4bkjj3yeeZpIFMtoVY0A1AZovwKimOn1MpiQRVZAsr/Nfz0wEkEk3hKXLRWxHFjFSs3iq0pJQfiKe/065W0yqFkMKCBqBXoxJ7375qGqkEyo2nUB7ZCd4BvgjASSUktJFIyiMCw3P0GZ8xZ5HjHlLXfnAsX79+crjSXwUjaY7wKKmia+nOFo1UgI0kjcHZu4LULscdMZNoZNRKksg2JxQD2B75MyeDC7qRFSnqaC12FZ77zK2iKseFXcCEusVsan2imX7J+ym1fitKZPD5YXXIwd8cbbYSZo993K1D4AHpnNJpBIrtvHjNTBR1HHUYcil9NYK7kflQLs+uG77E/wDpx5YZoJC2oB1C8CLdmTpSwaWVQruX2Mu4AgX15+cV9qQyu8bf+NifLa3zeb0H2PpzoEqQhmrlVDYaUUNkUTRosWnKm1DG+vQ55p9oCBBtoAkgUx7fOekcy6jY8r2SQoXgA/4xc884I07xxuysDcjC1X14OBJmWhozqzLt84PG8ivgD1x8azfd9zndGHphwpJxcGm+9B43UITyOeRzhTRbHEXkZx/Meg/PMwMl2l5AESl522BWHJRPhtfl4A3UD+/bOpOFlYEo23mu4+M5MEm1HiMbShQrqfpgQQFj8lEgxk04utxv88tidkZo2iAWuL7YnwdyxI/4k/CFy6ILu8RlG0iipA4+uEWRKiiOUgP06KQSp9syftD7WMUkkJKDaAC22lA60M3GlgEjIkinmiNt8/OY/wBoaATN54wzKaJ27Qw9ceHFPQLTN0GtVn2MqrvNA7hXPTnLQjRkylVcNwB/cnviBF90mWIQqqtYHFfJytGVFAgDSEm2YAkC/wCmGbV2iqQawDwg72WoN5qsf66YiSMaZCZJAbNtaci/Ttln3eOcK0gmUEUF737+2TTx+GyBHIZqs3dDtxiRoxOEWPUDUJEZe20ngehztGSao3221gLVnsevpnooZHfbO1jkqSQCT85ZHI2sjJaNlKGvVh/3jmboinkaCMlSAjgKzcbSTkb+fVbd8UBjXyE1Z9co1TnUaz/xsYy1MCO49OOD63mXIko1IkkHXgJxur59Mt8aNXo6Z31Um2EqxABXd39bxGj0y+ZNRoZZWcinRz2Nk/OURzxyB41uOlAFGiMUum8RIyJvCMR4Zm569QLysXSrozQicxRyligFEgACyp7fUY5dPMyrIkxUt+Le3DH3yhtq2hQOF56FQSf1yd5RAilowm1tvnrnrxXrm5NrDCBCrTmNysTUQ42k8e15PNHHKfLEsxqgCNpA+nfC1upj1EMlIRagD0XnqBgQK8cKCNOCCd0gtSxHU+mWinVsV/R78LmN0Ugkguh4u/1zjiFpNyzBXFsLB+P3eSmN1/iRtQIIHSlHeuvOPhJaW40/EleccfPPH198q41pFDN4gi3FlZK8/NHORNJJMSsW9TRFgE9b61xj5PsxREgKkyFbGzkH88OFW0+qiHiDYBZBJonuSB+eJyVDUVDTTbkpokNEEMwFt1rEykzTrAps0boUD+6xkp1ayKXbYpFqQASbP7/TEFmaYshf4Zufp+++SX2MjNnmk0mrRgWLEkEDnv8A1zX+z2jnR5C6ny23Xi/1v93kYjieQyMrSKoOzjp8nrlWj3NJIkGnQRAAkxCiO9Hkk5SbTj+wLsc2mWVPBWYRr1VgvHPfr74+GIaMmEbvOQWePqx6XZzscaTEIrbV5vbfHPP9MZqICikIiMQLJJ5Pr9TfTOZy8GBWF0G1Qa61fP8Ao53l5ELFFPPFMAO314xnhbtOwRtrkcLfKi8UsgR2EzgotKvr0onjFQReolfTwiV0YoWoMq0DX9ecoCPMomdA4vds4I+MUZBDEwRkCseBy3H5fu8OGSRUEh3jdQKlff8ApxmZqLtOm+UlVG411/7zjkm4TM8e7mhY3V/fFQ6gJK+xS9f8ieO+HMUm2OzBlsliOSBiGoWskoctIoKFuAwsg/P98NZFdiJFCyR9lPlGRqjyOygny8rdDnvjCxTysqszcBubFjpfphoaiuSbUOhDT+KospQAPTsPXD0k6GNwwHiGtoJ2le9dMik1JlmjXUCPyr/CWPygccXWL1Gp06ECKEla/iVTEHNTZqKDojLqNSdgjA4Hmsn1onA+0/spIViYs8tGyL5I+fT3yn7P10c2labawaMWUogGuL/LD18baqYbZSwZRacj6+5zW1LQXpnfZvhwh4Y7iiU7lJYGuet/vrnmgf8A9/1SlAUl0yP6XRIuvrlqfZsccBGzoAfNwFPtkrzq/wD6j0G8mBJdNLFbN6G6H9seD5Sf8Fk6oZp1ijiDorjae1k9fnLX1Xh+QoFWVRuKg3uJoEfTIJoW0+uiDapGhlP8ERcfN11P9cu08EIhBlmjRgxBksfkO9+2TljHxop0mnUh5hpxLPKdlhhVfJ6dcS29dUVJRfPRDk+UV2/frhmWBkR4Z08rbLayWv198VrdYrahdrRyk+QLRO8//Uf1wJ2I0ypGiOqYyTLUieSwTtvrz6UMUkEelcDTurbX2FyNwArr/bBUHWCGKV20roLonyA/2Pt2wUlTRxSbZEsKFY7mN/PHX/OCjGzo4Ym06SssfiDzEAgVfpj9XCRothJF88Gz6fv5zP8As/XStCofaysSAzA2QPYdvnHanxnWNFdd27sOvP8AjtjJ0Radno5IUYaZiqzlKAoX1ri+P+sD7QSKRgsr9QRt2UbJ4zOeKRtVG4epgwPnXlSDzRPNY/VzeIVdiC4BPC3046nv/nEbQ6joEH2k+mQ7IztrgtwT26fn+WT6txJRdgpmrzlqB+M5Ltdlm3mNRe4Owst/fEv4UjBWjYxsAODZUA+n76YMLRSNP7NSCUCTUMEPA2qbDGupHvnIgZI/BjqAnzD+Y9+p+axuhFoEhLKwXfVV17nveB9pNKqPQ3QOBtbb5iw5v88FieheBMspljdx4RJduNzep+MWjLqpIU8ZnKt5vINo+a4H9cbTSCyZBGI7Mm4Am+xHc437M0wi0QkCeF+JgW5ZuaBJ74DWLmljtkG0GjuG0kkXX1GXiNlSPbRoWdhqj6Zl6coiiYiVWugT3F9fjNn78VYsCCoofhuz+XJwJL0WV+A6QrB4byG3VfLS2R7+uM+0NRGsK6hpAqi/OeqXwSB3zLm1CSSqwkfxC3QH+o75WUaeN4i7sSOWAFN/9f3zhUsoXjTs5DEmodJQy3GbNAUQcbOwm1CxspmcLQCsKB/+3bocAyJETCsarGqhVPAJ9hfU++d+8M6OrPsjK35aXgdr4P8ArGtJUGvSpNPEukKSPEtncpUWVJHb/WZSrunXbM42Ag7l6ED1rAEwkJEy04olEHVeow0YxzqWmjUOt+EOQeeL9/6ViN2Mo0HtUuX3kSEg7ttkVxwO2clEazh9w2LwK4cHuOKFYZVvIpQvEPMzK/PsPfrjXlO5TEF2rZKsb4+PXAgWE2+XT3JAaccMTeL00JPBnBFir47g1hzCU6dQqFgWvcGuvz/YxcSvsVpQNxPA+O9dsN0DwoVVm1DbiCokohWraR+vfLIBHJKiFkBjawoHO3v3yHwYwQYwdvFopoXf545JQhCsE3qp9rs9saLonJWampRJ4iImAQrtHz/nEGORJDGyIwAFkMALwChWJ2RRIK/AD6dxgArHJQkpWobAlgkizf5Zdyt2ySQxIFO5GUUGvbXQDoMml8UuPPtVDYHSwP05xz2jszf+HpXcd7ydjHFqoQFQpRYIVonjr/rJyHiVIAV8zFQBRKCt3PbE/aKGTSruG3apIJP4T/fK1VJP/qenA4GL1rR7thKEUCQReM/8ip6Q6VBE0iqxZ41G5msjkf1POPhgRnkDMfFlUkGNT5F4H+854qrCZNpt2DEBSbxmmiUs8+51YsbsH24rpxiRKN+kssLROIpisT8ecD/yV0HtXBsd8ROE1U0sTKroOCbrbQ559bzS1fh6lFSyV67lBBvsb7ZBCjCMyOghPiep2sPWiPk5pJDQdqz0GlSXRDTJJtqPhevlPS8i08MM/h6NC7eHP4Z/hgFhsJ975VfyzSkhDTqihY2jq2YCqN36ckf2zN1ITQ6waiTVqrNOiQhlKohAauO/m65or8g3g9I9OdQunmU+OH84XkLVkdPXj5vK5+YN0BHbcaqh2I/pk2hGnmkkmTTDei2jgmi3fvRF1WRyRuk7KmkjZpiDKVB8pHzdnn6euB0NVs19NqmHiLAsatFW8k+o/f642GTefEk8hDFSFBII6d8jjgMRKrHvXaQTtAvni6+Rlc4L6SPxHbenVVA8tcgd8MXgklp0a0xodklru47+2Ni8E+EZFBtr4oEn4OI0+giGnRgotl5FcWPXGtEREzbiXWjS0Pr+/TGjd6I68KGWNJ1MIJDMeT6+3tngJGmpuDVlgOuIknbxCYxyy0p9P94WlZ3RlYyAkVzyR6EZS05UhKweASPEHrwWFX74yHcXpRzXJrr8YT/g2UVPS9uLcfddKaYkjmxeVrjpPso3DaERiB/MwNVihH4algSTd8ntiNMpkdWc9PxUcqcWoLCq5rKJ8lbF6wFISwteN3JN51BJC21aFnjiwfnOgtsYs22ul8YSkqCA27jrhSSBbINS7pNIGK+IeVPt9MFSJwpfrRVgAKGXnTk1Jupl6ir4xLnTahtisQwP8o6/5zmn8Tu7KqaEwwomjqM0o9SSW/PK9Myha8SyBXPfJYI/BWUx15nO7byAc7JIkQ3sQX9AKAHrhhLjRpKy0SoVZhTV3/xkkkonXchKqPzOTLNNqQokA8w6VXHrlUMZ8Tao2Dnqe3qR84z+SU8QOCj2SEs0yiKOmPDE8msNtoY7HG6qPYHKZdGsago3QHd6N85DKitOSS1EUOKv4/fbITi4d9lYtS6HGZyNgCqSLO7j6YtUaL+L+Nieg6VhaeGVqIUJfqLJ+uGJCpKsDanltvGIzfwp0xfbbdKv65WnhsFpQy89BVZGmovyhTTegyiLyoACWU9eRnb8UksRzzQEkfmpW57DEtGrSBpCLAwntmsdPS84xURlWUGvNd9byc++hkdkKyQ7AxAJ598UsJsAEkDoCbymPYkdUAV9sMx2bG2yK3emPw5aDlRNtXedxNg8+hxxlSIiwSCe3NYxY0fgn16YuRShHt19s6IQrRW7HMhW2Qkh+o9M4BtJI8tduxw1tlHNX2zwa6IAIHp3wzSTFTFxG3JcDnoKz0reQghaBq+hGdZ9qlySBXbFNIpbax469OTkJyqPEdLbPQtvVqCUOOB1wlJjK1Vlq+MTGygPtG1vT0xyS2wVk2n47+2Tg+tGZ0hg5JF9+uATuIJHfizRAxhcMN7jz+oGLpJSGLfhNfONLvAI9tXYNwtbujniASegB73nSSpAPKgcV3wSvfaAepBPbAE8Fa+DZ6+XKLAjNNZHPOL3gR0OOOtXxnImtbu/L1A648aTFYnayktQ29cKNtxtSa9T1wpKZwFJJ+KrGsjAVXe/X88EYbYWxcoGzdZ+OuKNujRMAo9BjTu2BLHPfAeNd5AY++LL7Che8vpR/LXHvxnRHG0QYMpv+uJ3FNSqEUjrwfU+mPki3R7QOLvjJrRnhMdTIjGKMAsPxcE16HKYVJO4jkDv3wdpW9ppu4r++Esu1wGY8jjjrWPH9gf6GCU3vpfD6cDBN9VPFg8gVgyM7qyAVfTFQxrsMbPz0o8gHDysFHX4YuyikFgjk4sagyHyjy9gcTIj+NtThCPx8eY+mMTaE6gk8Gjeczk7K0qGRrPILlkjNCvKD1vHIoYBqBrn5xYUFgAx47Y4oFUleLPbLRXpNsJlAN1tIvrkLNbggr7jK9yFGBPNdxkpijeNdgJ3Hof5cT5N6DEJY1FbSADz15wOYmBIAZmIB6g/4w49INxKsyDrQPF523jVTt3EHpd4qXrGsWrbFqWTzKpYnpx850CKFfEUKijq3btiJIpfM3iAIR5kkUV1/d4nVR/eJ/8A4qMaAKuzeSx2ruBzitjqNitYp1mokWN6SNbkZG4Zb5X5oZNqInm+1NLKsCx6fRQHURxuBe42o/Lr9Mw/tn/1C/2ZNq4RowVChNw8oiauw5BPPXO/+ndPqPtD7MfVSaqTdqZirgyWVQCwovnqe2VUXGHMpXSNbwjD/HlkSTUP+B4uQD7n2+gzXpy21NjkEKXv+2QCQQzPAs4VKDbFayvt9fk5pab+KFYqd24FG39QfUUOR9c5UrZpv0azkNRej0C3WckLGRb/ABAcmumKnKxvSjcxN+Ubc8wWfysxRx/wbt6ZTlWEq9GjUqyhObv0sjExPqZJGVraMXVgAXjCqKh8h5FXdmvfKNMqrGxBsEWcpBNsDaRMmnLyByDsT638HL9zSLSqAB0rvntONsQUrS/PXPNsjXxCCCOlc509RJN2xPiEyUKVz2OTzCdpbsrZ5I5wppA0hZB5iCBz1rvnr1AWlSnUi+eDxzWc12VSoWUMZbzsR13V1vA1ClICy12vmv33xgCzSm2R5Al8gBgOcVOrEDedoavJfI9QcRrMGXZMJ2ey6E0aI9j3odemeaQhFdFItaCK45s1ye3+sLUwxHzIAodh4mxRY9vf5wBAeH8TzpwvJI/PJdFVRNqBHJOrbFcyDzKyjivU3zRyaP7OUfaRLuS4HHXb269uTmg2mecyrLIQp5KL616Y2MJpl3JGzN6XYA+P1wp2NypYLELxahYjGVY0SxjJIb56HGNAra2xZaMkqbtUb3xjiY27AoEYMB+VnOGRZpAwMZ2DbuCkWe/PvzjOkydthiOOSZjET4gXa12br3wPE1MUpTw7DAAt0JHt74lZViMiacgeIo6J1+v5/lnY/GIEssrVdsQK6eg65v4arL9TqTCyqqKqd95A4GNTUlkoPtDf8e2Zzyac6syAswHVWW9x9P8AeOiZGBBUqpFoa4P/AFj/APSTYjgqNA6iN03AvIFP8oOSavVgx+AVtnJA/wDy9z+/XFHwoEeTfaLy3Pb1AwlSGRVlKAF1oHuq+nz64XNsCglpS8xZgYgqjpa9sCVTGqln5vjmrPXHL4aSBSSBdLY/pkWqSWVhTBgGJAI6gXmkss0dZwu2wMBY6Fa5+fnOyeImp3RUwPUXYP8AjFsN2222qa3V2A9O+EwhaRFjIVruueR65K8KHNdtjVZDIPIerDgX2x+niV1Cg1Y4I6H3yZ1ZiSpQdW7Gx2xukEoWzIGQenb/AFmTtgf+StJIVUrZu+PNgF0VxKaUAEEX175PG9krxTA9unwcBmCziMHcyqdu7vj8rQqjoeom8V4wvkcm1Hr6jPeXxKQCjYHryO2ckKqPOfMwoAdwMmcRqCfDILML5Ir6YjwdIbCd/kcWnV7b6cZQ8NzDbaiuAOgyNCXelkc7evlA59ffKkErUzbqH64YmljGhaW3YCuhPQ4lnWjHISvNX0H0zw1Y8TazsgPQSV1z2rLP4arMybuA6kEA/XtjuhUnZ3wJSaZS4PPmosOw5Hbr+eGNRL93DSxGyaVB0OEsZNbokEvTg8YRgZowd1MAehw/wVv7Glm273HmPl6UMkdY/NEzfj52n0x7Bnbc5PlavMO2FD4Vi0A/5ccjM1boW6RMEES0qlqIIN1zjmB8EMyc30LcYWoQLJSeZW/m/vi2n2bY5XC7mAHH9sFKLph70h1zmN6kXdvFHzf0xmjMVbVvbGfwlul/OT6pYhq95vcQQL6H3w9M5SJpAhVyLZdvHTIrZFn/AJDCbyZEqroWarnOyxF+JSvFhDuu/nEpqJWlV2XZGBx3J+c5rJYX1oZVZlPFr+EH0OHKMk7oF5I3dZTUdqUJH4evX5vM2SXXzCgiRp4hG4L092+csndYY62oL5J67b+uemi0cGn2wyMfEB3MrcKa55wx60e6JoXkijEbJbA77IJuz2/xg7m8Q6pVLWDcYUkcdear/vFtrBoYEZpGaxSuykqD/XnnjtxiodeNNDNC0kpBO/dIreU+3r3x4x9GdmhB9ltNJ95SY8xrIFFHn3GW+JFCkkTo0gNcBas+571/rMj7K17n+LLE3nUhHogMR+pGFqNUZ4VYyrHZGwGTgDuD3zSdYJxbem5GVTTHYGKgfhNfmB/vAkllbTOieRIafcw3Fh65IXlnYQuvhgNRuyG9h7ZpQO6Ql101lhRtgLsemIuxJYJ0mnbaZJNUksZ8waqP5986XKTgLIKPI5AHPH5HHJHEkYR08NWBUR1wT63gSKh2qFO0cEs3GFrBbtkmoCgMxKh6FUeD04F5LqdUFmBaLcoBBC9eOlnKzJFLMUCLYSg7ryPocl10ejl+8fepfDl4WNYyAWY0B2xErdFU67MkxLJLE0j7I7aR1Vj5Q3Sz8AZ2tXBoUEERHn86AWK6gE/OV6XRpFLKsjkSOzFlJrco4Hx06++OkSKSWTfbdN6A2i8f16YzkUs4dSy6MSIw0zlQroaAd7rcuWRt4OmYzakyhqPlPLf6xRhGj0rQq5Vx0Bk4JNdsmTRsirFLFLG4UkFV3Akn8XX/ABmbRPGaratVj3uSUq1A5I/LnHrNGE8S2/it5iBzWRarUyNoJEWD+JIoVpRwQL54PHb1zsM4Gm8FvDVQaqW0I9DZFZlZNxwqeVHZSVdA68ex9LxTt4CEC13EjjoPfOCTa2+YjYB5SrA3+XGckfcwRgpuqJ5rJtmSG6aVlJjLswHBN2ReTanSBnk2FjxyrGzlGmjWK2XYGc8jkiu3GDNUUjlQHVxZu+frm8CnUsJREEVlKh1/Fvvm/jKtPrGJVX2qzWdjckemZiy7GmkMQCluoAu+mUo0cepVtwYvwAOLwp0PKN9jNbKF3LIm4saPl8ps9RkraVoxuUDk15uaGXalnXT+I6+J0ssOOuI1hEsEbLK6kn8AFj65ngIt9In1PgSlYopOSACwFgn0zjrCjbkVztIUxv29Tf8AbB0+nZIPvDP4hjDEc89OlYvRSv4AfaUoFtzm+D2465igGjddRrC8qrxa7TH1GWS6nRQzKgZ47sPQqjWJ06KsR2Fw0h3EKRyfX99sT9p6Rm0wdwyueOvJHuM3psbOy6mDUKzBVrcD5h+L49MWYppJFlMpjRbCoD1HXj2yfXwrLpUhMQDCkottI79OPz7YOll2w/wo2Eh8qFJPIK9jwf0xqVD1mGusxSINOok5oMeG6cVWC7qsSrpKZerAttrFafUqiETmOVm4KEsFv0rmu3fM2QyOd8ZjiYvRRd4A+t9c0YiVpoNIxlp1jeNBvOxqIrDGsmaZVbfFG9bUsmuPjIF0n2nBPFqIkCrta2B3E+3NZWuoaW5JERkX8Rian562L/vgkvoNCpZBLIwDClJrjv78ZSuwJumKCTYD5QTf1wpVPgO8SF03bavlT/W8zhOZIDH49E3u8tkc+mBLDXZpaeZFDIJAbHmFWRks6suosoSSLFkUR8ZzTtqJFkEUvNUCF5xU5m8VZp4nUVt3d+PTMD0v8NW0i7hQYfiU/wB8lVVknkjO8BD/ADMLv44yuN/Eh3EmgBt3mvyGPS4ZpNkySnrvTkdOlYYgsSHCkRhaVVrci8j5vGCRkhoFnA5s8cY1IY2VZmLc8sNwsn2wlEUcwQSblJ5PUnBJC2cgg3adXdX9fKRTH4yOUOs5VgPMfplxAi05YE/iqme8zhqVdGkFjgqtgih/XFoZDZNNpWXyoqnpZbca65M0ojlZYonYP23Cq+M6rgKsapKQWrfz073heGV1BHiWFIABX98Y4VggyoVVd8oB/Ed/A9uclMyQlrkO5SLPr8D1yiSHdq1BNDvx09OvTDRo4AFARi34jX5C8C/Y3RE+neWIpFGNtG3ZaAH1/LGaKOLR6cl3dyoJJqqPoO+d1UiuHjcFS3UWOPQXeC51OniEcLiPYtk1uPXtfb6ZRPKMwNSjKGlGoZTQcKo8xHuPrmJqHnsMiAqzbuQRu/Wvyz6WWWGbRysrvUaUSo6HuB3zG1MMi6YKAjDs34WA6beuV+N0bWQhwZGDXv27mrrXpQx2m06TRjUhrUEWisdwP+D85KdIx1gclyqx2Q38vxmhFrlWBYYowkt0jXRUd+a6/wCctLr8TDpmWGRWMyqCCVTbuJFdcz5/tGCargDFwTUh4bHzgeIYBK5PLEg76I9/3WRwKJgNyNIYgShsU3sTmhFVbMCXjl0waaJSAwG2Jefa+M9LJBMqhVIdrDBxQAHTPTSGOUosm2O7sHrzyPcZn6qRtTOqLTDb5Sw5+cvGPJiN0P0wCFlRiwNg35tvPX3J+mNdXeQLLFbbasg17V6nC0mneH+ISG3jaATX5HLJlacgW0W6O+aPFHjM5fkLWGbp9QSVjNi2NgHqehBvtlrR0HZlUAPVgDn0qv8ArCkgijhSM7VUmitdFoG+P74hUjmnUE7VTjcKAPoB+uBtPUZYMBmUqZVMgANFJDXt737YqYSFqJ2swohhZ/IZoMYoIt0YQEkrv4NCuaHt/XJJEGo8/hbq/Gwbk/U9+/GKn6ETE+07xsQigWAAFHNJTFFpN+iBkc+Z3vsOb9PoMjRUdSoKFCfJuNn044+cbBpZoUUgDYLtAbvr0voPywSoA/ST6homeYCgLZeQb9xmhAss+qGyWI11VzW7jk5jPLL4tKl01gHkflho0pXwvBdlYbevIP0+mTcb0YukcLKwjlW2agyjj16/2yaSASTDxy3hh6/H/wD7DnPSCSAb3JfcoNPRH0+uCrb2RTEitutlLAEjn880VWoP9KWeGSLdEgksmmLDn8+cTFHUlMOo8xvkn49McjqQsbweEUJPKkflhTzJDo6pVLCyCCL9L9Di/pBR5ZkUMVQrQsAMSD05zpjmlJPhmOOyGLcAX7dM9th8KOiy7uX54r2zrbXjEYnLjgCk9ex9sU38FIhVS0rAKF4BN7vcV3yLUObGw+WwSFJ6fPY5Z4Y8R4G27U6ooq6xKsPGeN1cEAkAkDjtx3xljCh2nUuEmcx+Ctiz2H+f65Vt0pYWTVWzDn34z0UMscSyAv4bJaqRQXubyvTwI6NGjAsRR4uz3vEbMN0UYfc8JVLNLtWjXpeGNOwZpHpLboB+I+ovvlOiiijjZpTbRnyiufTtkOv8eSeN+RTkbV6k/wBsldsVa6HAKQ3iu7hPMRVAZiaufSaj/wBXaDTeIWSPTu4IPRmHFD1oZYNfqx+OO1ogOKJ+uQ/Zn2fH/wD3rqNaswC6RRvodWZeg+M6PiSXJv6FmnlGk0GlDiGQvqWBshzXh2ODfJGc1mkQ7Y62lybVhYX6++WlU1OpM0OnjZgwBZGO4j47j/GUyF43KB9wRSCQu4e15ByGToy1hRUVGJINUUTgC+w9RhTRq20iVoq3b1J8wB7D8qyrT1pkUSp45DVFsAG34H+eMVrJ/vW7TiAGZD4gINhr6c9bwWHWxEDx7o9gdojEwMY6j3J9e5+uUaVtLpoxCdNKC4PlIsKPUWTwTWI00e6FfvMSGYE8tMQrH2/7yn7unjbjIDGCPEANNfbk9uemFvwzSNV3TS6VgqO0n4AWWwOOtjINYNXptJC8ckZbqPeutHHNCSCkLF42rw28Tdu45sX69/TGa6dzpY4p50UFNpcevxmWdkq1EOpmglLTx6dEsqGmIG4+3PI75NIVi2zHfIkhAB28MD7euPj1IdGEemRlugwc01Guff5zkeujaNo3gRZI3AFPd+1YrtsrHDgZtTArD+GoUqx6oPj3yeVVjkVI4trRi/FP81jK1nWV0DxRrV10AH07cD0yYO+p1tlZaQEVdi/jpmS0OjPszWRRy+CCXO0X0Kt14vt64+SFpowZpVWjtTYb469O4zv2fFpZtQkrlFIDExmw3z19cLXyRq4WF42kSO9ye/IGBrbQt6LineKR4ZFRl6Bn4oduAP3eaGo1SabRMi3zdkdF46V3rO/Z+n0kmjZdZpiktH+LZG78vQ5myxtTASiQE0FCgkj3GZpqmBNNmfDqJpZ18NiaXbRB456jteWyCdX2OrO7NSCRttgDk/PJxkSTaXTq4Qq8psOVsj3FWawI9SummI1HiN/LtK/S/Y5mx++imOOphNxtUbhxzVev1x8ADRMFiqrYkNRF5LoSW1LtFqQ/BDxshK8en98tg1emSGvEUncQoBFAEcntx2HXBWk5WRzX99VkQhQwoLMeTXp++uG8TxrvkkDTMfJs4DD/ABz/AExc8cu9qgZmDBgFO4t6iuw98v1KIukjRok07vZWNKrgdz1/3h7QbqiHT6XczAghilDeTZPU9az0y1slLqVXluOSP+PtznFlm03BlMkBFEuCQT8+nbNSKNCZGKozsLMY57dq/ocVYGTa0l0mlaTRsNOfK59iVHrl0X2fJFEDJKGJXbtNkH4wopDuZiwAkBFX+/yyyIoukjuStputt37e2PCKZCU2RQ7Em8PxCwB4A7fpnHZZlA3Dw75K/iNHm6wpCyjdGN1KFVe5+cWoeOBR+Bj0W6v1s4rYLOSrqGPiGIlWAG4Hca+M8B4oC7xTrYbi67AkfsXhRtNI2xmZCRYd1616YpCqsiIS6KKLDoxv9OvbCsGHNqiqrFD5pNpqud5P7/LGBJUVUZykgYHk8D2xH3VINYssAbetKRuCgk837jHihMJFFuFLBFI6kn/OPYrDd2WKpN90xLHnbntOw1MqwksyqbvbyK5989LKTBcYPiVz3q8LROUIvllUc9eT1s5k7kDwp07vJIQxvYxJ2j+vv/jJp/FE7lwRXTaQMs0wUQ773MB5hf1rJJozqPEMtosZNN/kf5x5f5Qkf9C9M07gpIrsxquR5a7ZYLkRQpZfrdV3zPglSaMorjwwTyp9P75WBskVgACh5Jazip0hpI6sm1zGxMit5bHG76HtkjgQ6jcqb0AsHcKA9Bj3i8Z2LBgHJ/AxvJpkB1SsBvj6WD6cfnit2holJcS6YyLJtkr8Bo/p++mTuIYtNCTKDunQI780Q3Io/Xn3zhn8KVR4aMm7aCBe0kfv88TrY6mgZm2jx0rY13Z9Prhj3ZqKTJBqBHMWUKg6biu0Dj63i5Fhk1EgWNlMj8EtweOpxDTB9QJYw8RPD7h5iPcV0xqUijzLt3EBlFH37cYknY6VHDKBtjWQiQ8MBZAXsR2x0YDxLBChCsPMxJBoYnXR+IwiSONY1NNJf4j/AKxmmSYTtGnIQ2VJrj5zR7M3hpIFVKBBIA5PWsBow8m5wSNvDH99c66q62BbNztwIJAVQSRvGxTneRfX2y5BEkuokj1NRKFW76brHbNEtHpILVAXPW7u89N4XhxmUeHfQdCfnAmKnYAq2ps80MeKoF2OjkjI80gPQAMcnlmjCh5eSWpfLdf1/PGyuPwoise1L0wWLIVuw4u04IJrGl9AGiS4VeMqzOO56Y4j+HtlrceeT1z0ESpCu+ifQAAA+mKkEYdWAGV2KE7YUm61Cf6wBJNJNuWQbFW2Fc4MgaxJG9Doeeo9cITbj4bFlarocA5Nu2EYFXf5G69z/TGRjYQiKASODVDJyLAqQqOvBq865ZSKlmWvYH/eMpKIKsbGysSmzZZtm7YOojjQFok3BuwyWZJ2cSJRLDYTXmrKNwCA7T06sDz84JNNUGq0mSMs3/yAN3REOaIaKMBAu0kUAOvxkk0rId0ccW5iFN8X6c+mdM7vOGK3trm6F5oyUVhmmzrzrNIqecLdFf8AOdMLXSmgDyRWKknjOooxnxOTtA4P+c9uIVnBZeg21WSbt7o1UOIA4Dn0JvpgbHD+VAQB1vr9M74VpuIF+/TCCkBQT1s8G6zVfYLOFmA8gruVvBWay62BXXnkYWxWcruvBMah9qgH2PN+uFNrUbAvu6qpYyggc8Z6ONA+/eDXeuM6q7H/APqT+HOMgsFuFHO3/eO5XQKGPIpAockducEBg7ecknkALxWcVUja4nqOrHzhRqznfRAPv0xk2+xQwQG3WaPNnD8WxuPJ9MEBVRiygjoSD1xRkIfyoAO/vl4z4oWrKon3Dki69OmARtfkAj0rpgLMFfny3xfvnpZGKtXPPXoBizmmrMkcJO8+a3HPIxexlLPvHl5Yds6Wbgi24698FiHal3erZzSkmUQiF2aSViACfw10I9/1ypUdXD0dvFcZJO5IMcR/iMvlHpWM0yNsZNzyNfILdsnB6O1llck6srWQCOvOLLjYWBraeLGLeJ9gQyDdXFnk1jVj8OHaav1P9c6JNy0SkkeVrU+WztN8ck507mA8oYVVdawI5SIyzCiOB74XiBlYBQLHLDjNFmCcELtU179KzyuF8qUTXJ63iSSirYJr3snDWmoi1BPPHXDegoaoJXrwB+eC+5pCCx6VX988r2aThRxfY4MpAcFPMfYY0ngEjjoa8MeXvYzgQi7A4I5rCpLbd1A59BnRJ4YAFMDyTVZOk+xiTVRBlEnO5PMO1+uUxqTCGD3f4bwpQpAIoXdmsRp5GVWjXylehPPBxElGQe0MkjcvusUOlYpY18UyOPMwqiMO38NmIJA4AziqH8shZgefjM6bMF2IFHBoqA1C65vDSoxtWyh9c44Wzalr6gdMICQySeBvChQw/EelXhqClKdpJHUZyHTxKXLOS72KPIq7xd+HJuBIb2AGRbrspS8LIk9a331zyuFTzAXdVd5MNR5qUMD156/OL+8FZFDGu5/tjf8AVJYLwZQ7vIxSlUXwRnASiEgbT0v1+mCFA8xHLdawWkKKQFAXBf2GhTTuuoEolpa2lTxhvqJFHC7mPQ1WKZIm3RigDyGvoe/zhRV4Ls6kbT+InrgbfQx2NN8TSSKVPW+pzPnsyytp7XZHwCpALX8f0y9jEUOyTcp9+lYiWOIa6M/etm4eWLcVDYj7KRPz/wD9R6PU3OupkuQy9doAYXwfqP6ZsfZkrfZv2LokDFQoeWcKoYkFqPPSuAM2vt7Q6XWRNDqFmbVvDvdolsEIbF80Bxmas2ofSaWHQxtGr6cFI1AK1uJNGug4+cvOX4cSifJ2VO+m0hGyJQGO5vKLFk/mOM2NJF4sMRjbwkPmUj09h1zJXTanUTpHC6b4l8+8Gye9ccjrmpoU/FO0rNs8opBxXWh75yxW2b5GuJfMvIFk1xx2xSxHdslU1228Y5Qy0wBLG/N6YQQlVJBtuCwrg50cb05boExhjQp769xlIQgEbABx+eehktfKVIPH4cYGbZSix69stCKEbYqYMsZKgG+oPb3xCM0qiqKHkMMoceUkGr+uJRKIAJ2NxXp64s07Muj0gMyhNoJA4PTAeEgbQvaj/NgSkrwN7gmtq9aw5GpC28sV/kPN/GTux9EOgSRT02nmub49c9tEiMtCla6Av6364cwUHe7kGiQOSTx0xZIWIvGhXevNcfvviPB0TMPEhYo3j7CLtSAO/T65LBrGeIb9LKjURufnd8EH1rKR4gIFuxZ/5eQL/pgPqo45VWVPBCWGscD3vJlUPgQLGHe9xIXcRycMRosm5rAI5B4DfTADJLIyq1ix/EBHl79/phvIII28NfEII3Df0J74UhGHtRv4XhqXKbzzwfax/fIxJIdSRWyNX6bevHb17Y2dnVlZdygtt818D464aFGg4QiVqYhVok+vOaRlhOZTHOwdgB0DKOuJMCmY7g22ztFkFhx6dsokg8PYTH4rHvXB+mJinXx0VlDScjcex9MXSi6wKKOYogjNbWvb1r8+cviUrIBLSmqG3pRybxqAKy8ObVhQ24UrSSyEeIEbnkVYX1+cKwR2xDjdKgolIxuAPAB9co+z5oyGHiXJ5qU8kDqf3752OT+FsJLsOdzLWUNAh2tCoRjySnG6+uGK20ByymeX+ISrEHYdxCm7xUxIZ5Ih5l4IPQYlmk3skd+GFq67+uddk0kRIk8znqbI57HNysyQtimxWlZw5F82L+M5Hp1knJEzbqBDe3ofywgiuzK5V2Qklgpr5GeR1ifYWu/NQ612xG9Hv6Fathu8nkdeG2nmsLxH8Nzv3cCwBQA9RgtLvkaRVsbrB45+o7ZO2rkWRpHjaMnhF3X9cR2MlaGAMFDRkbEPUmv2cIjdOC5auQm48/piw8jAlkUAHlFXk/OPuYxLKygLXIABr4zILVHJkfysCCh5Juxf9c9LG7+IqlhGnJdlo3V/HfDWKyATwBuAB632xfjzeIYmktCb3dAcov2D+EmkiIlJkZrAAYgVz1yg/aEqSLDFEZBwpHof+smVm8Von2lea5PGacMMU32bTP8AxSOqi7xl2abrWJXTTSuzxiMFm6S8gGsZCaciQ7gqAgCuLPbJtMZrYSDcEY2C/wDb0yRwhed43DRsoFr2v074vI1WaXjPNqVKuPI3FA8g/pmi0skUbFmXceKJ/wAd8yNGj6VSRZdyLvkAn+2a0x2zorKXpbFcAZSLyyUltBidQjF5SdvXavH54MKRrLRXcGFruF16XidLMXtCpcnkEDg85YOUKiyymgB5eMdO9JyVCZtRvLbD0HXIdRI4bcoJYVlGpBihYdN3LHjjFxLtQBnBI7+nzkZ22PGkrIZJJJZeQyg8Wf1OOaAyR7apr4DGx+nvnJY2jmqMDavIJIOdfUttYeGwX+U9OcmW/hI8KxoLSpXJJKiqPrk2oiiOnKlmeRb72Va/0/1lhlknjEklRMrWN4sHtzxx857wo4toVVRjySVvff8AfrzjdDpkclTRxiSDYrG7cVZH+8ydVo5Pvu+B2csbKFvbsPfNXUJBNqGBeRdlBXLFdp/vWL1UMCFFkj8VpAtSV5gR2/frhUqHRmPHqNZDIBGV22XF9AO354P3V44/usreE7DftdfN7A+1DNOLTAu8ccauUHKcggdTfY4Wn0sokknsNu7yXbH1v0x+eAb0zotC6o0kRYpCeoP4e/fih6ZYNCZNDGYHdJG/Faglgev0vOyhoIWaSJ2DyHxIwtLJ7/06ZRrNMCY2fxV0/DqQtkd+nWsVs1mjoYFZtjyeKeAy1yK4FZqSIpgaSPqRt5vn/eYen1MMBCiV5UJAW+pvufbt9M2ppEjiRkjYqouibGNCmmcvyXaOTbYpIiGVGceUNwTx/XJzqW8Ro5CgHXla5Pof3WJnlXXxxkiYvflCmio71nZZU07RER+Lb06Gj8E4HK3hlGhcfhRaxgGcOFIqTjafTINbqJI9TolnKLU+7bXAoGvf498s1esOq1vjPGw2pbdhx2zA1WrOp1WwNtMYsIQCSSeK9hixX5Z0Wim+zXm+8mOEKEj8T/yEPusen6DC0SAUJQAznmm3LQ5+mcJj0y/eJX3mWxvDeUn+2N0cbuqRl1AHUqtX6YtmfQ50G/7yke9rqmHAw3nFoQQA4/C2UaRUgiCyC2UVw24N74uVZJdRuh2rS0SeinGccI3pJqQ0pZY1I83HH5/ONDvFtDvTcCgeoykxyMlNIC44DAV6c4RER5PLA2SB19MXiw8sJPu5WaNQytIOd6p5mHo3rj0eOaJiyfjFhgrWPYjqPnGlwoYWS2269cj1GuiTUxp4TO9XZFfs46pdi7IVDOFhkeCcSiBiJEDXtPocRq9SZ4hLFsTzbfNdsfYd8qkaSZWkc+XdwTx26WDeIdXjiKQkRszfy9R+eTdFI9mc7zRHhhyxBUnbfPPFGvr6ZTpoJQ5MIgkJJGw31+b6fT6ZRqNHJObbTeGVF1vFn3yZYtRFEIodyhX3G1HQ9wetY1lLs0IJNQ+ndJEj3VQQynj2/D2zOmaV9cCZFSh5Vqlc+l9b9wMYqzQifurNSuRRI6D5wItPJC3haqIBhW1wwb1wXYEkmzuj371DRU7cLTAgHvyOn6YxmhRpIggjLi2KANuz0cLHapQKCp4Bz02gjlkWTT6l6TqJlDA+1/iH5nMqZm1Z2HwdIzSJEGmY0QCPp/TJNXvIDlmcFjYV6/M++MmRopDPE6pG/DEDr+zimbxkER3iJP5/X/WGgpekepHhSxMVolxWxL3gepPP64bmJ5HVFEYDWj0ef95dviki2yuOPMTXf19sBIDqNwaRSu3jux+TxeZvB1KjPkh3kOCjbTRauvfnKNQPC0JlVFW2o0u76n34zzweAn4RVUxUVtHucojhaSNnNhN1Obq/phvDNkA+1WI8LxDvbqFO26yqOEQKpVghc+exe6+1d6wP/btDp5trK6MvmVgt2Lz0kWn1MhQeJK+4kc0bxXJXhmHNNIpAQhSP5q27/wD6nF+DG/IjLEKWKuuxuvYd8q8aTRBVnhcsrUq7rA98TPLMYGkVUkUr51eiAPUYwqFi/BRgkqAmqU0QO3PfGSa1BGkDTEsjWUD8j4oYnTzu+mQhvIvRWo374LReJF4rDfF/KY35B7iv95q3Qhz6vY2zxSzMKF8nn6ZTpgybDIOQ3lI6/TEIsUs4CSLIV4Ctdj29sNk8NWgk/iSXaMHDV7YrQf0aGviOkZI3kRqN2G4r3xMcwMjOuzatdbAyWRPEVNroiqaKvwffKivg6aOgZo3YiwlgZlbJtUh4nR42gZ1ZHNji6OS6ZUSUJLKd1MFtbU/nlSqkUbSIgcqtWVrnAEkm4Oa3sDW+jXxgaoyJ3mlKt4IskUdvIPp9MheSSJpJFtXH4vDB49OuVSFtOWC2qsB1FAexyCRjHKf4Z6bm5sfljRKJCotRDLqnEhcSk+Yq/BynVyl9jxk7ALK+/p75NpPCkiZo9OGJtrZeaxj3M7l2VBwAG4P1x5VYSPUPKJNyg7Vk3Lf+Tj1++BzOJWYrHwwP4T8f3wXXxX2ghWdSTRoAevOKOrjiEelaUUeQVJs/P+sdW1gWBptYyR6lVZmkkkFFul9+cmmmdVWV15P8sgBH7r64wiFylpvDHoHrb9cDWktXgOhAIBUVfp09crGrBVETSPGw4PXkX/fGxz+FrGlliLhQF2k2Qf0vDh0UUulYPvQqTTbSR8+2JTTQBSgZxyRY559R7fOWuLwXR/31WR0MaMQf5QVK9qPviVki0+9mBUMLBQURfHwcFZJ2BiZ1V1FbynX2JHXJdRHbrblKAsFePzxoxV0aw6EyyE+RkFWwFEf5yM67wQsaK0sTGvw0B79OMpkVnPGpLbuigcfU4uXTmPT7mV/EY8BeMtHj6Tlfhfp5Z5NOpF6dT2B444HrR64c8ipCI5ztDCxd3V+nr/jERzt4aMVRAvPQG/c+nasn1WuKsWlWgDYo9fpXyeuIotsF0X6TxUZpbJ7h9nPTHxJMSHCKsiMQT1r39P8AvM6CdpNrAkI5Nswu6ynxpNNEfM20gLYq6+n/AHiSi7GTGOiyvwreHVDbzfNdunfDmh36d1DrG4rksK7en9MmTWDTRufG/htV0KrpQHNE8YDzBmMn8RW/FQ/v7ZuLBY6JnEo8jcmiwDcDuAPfKnnE8pi2kMa/Epo/Ffv4zLhkgGqB8RnY8bTwBxxfb+uUq7tIPBSix2sN1bfz65pR0yZRIzTA3fA8qclm7V+7zyyQJIOWWhtYsdpJHsefzGRyLNNujEyoFFNTA+1jOwiQOgjIYkHzSUePT69ucHHNDZpQzST/AMNZyzA+o4HHU/P9cTPGdPLwh4Nu57n9/Od008elGyZWe73t1Ir3/wC87qJGpPI+0kqr3xVjJ1o1lkc2n1EKpqpXHhrwyRH8uemSyOA4ijErxjkbqC7fyzyh4nLIoJH/ACaiR0oep988JYpCtn+GDwFHN+h9P74OjFKyKfD8QKI6tiPMb7cY0KjH+BqDEoAsBBQJ69D1yLVS+CwdXTwz/wASeT6Xxzhp9pENGWOxV/EK/uP74ri+0FDolqQujv4SHzXZtvUdPyySDTiLVPNFKz7ualF0D73x3+MNvtJH1ZRYPEiWhxxx9O+GTppIgJCCxO4ngkD3rD+SNhcgmWMSGUB1/mBNEevzj9L4kTAll8Nh5iLsn2yGKSIxIqoxUmxJVXx1w+SAI3bw9oamXj88k0w4fRQzRncwjQE8glr5yFkvUMx8jCwLI5PXJ51B0jEs/iAEF145+RzWZOm16KNRDI6zKAWQhzuOLGDkhUkhv23Omj+ztVqPHO9SPBCc092PUcDnF/Y2u0sX2LFNqY5ZJ5y8s0u2wXJ4v6D6ZB9uyxSfZLyRbhLK3mVrI5I5vNSFPC0H3cNFPFGgG4UOK5UfX19c6WkviS+2DuZq6iVSkW1zDT0bFEki6U4TamVJ2TTu8ioBuZupofGZ8IabVwDxXEa0PC8PaB888/OaOnmVBLFA4aV1ryr5QL9M52kgDjIhiBeIMRTNb0nPPIHU9sRrqk1HiaapZCu3cRwvX075RBEDDPKL/hi1FfzHnJdEG0kxWafcXohQxJ72Afn3yS0dZqOa2F4tJGojRtRXnRnuvcY2BYoxHFIbPv1/oPf3zx1y/auqaK4yqmmk29B6DBaWHfITE4VCFYsx2gdOK4547Y9YC3WlenLsHTbVEtYauPb9MyPtmbUnb912CNSAWUcgg8jL5pgyhwXD9yDzXvx0xGr+7ykbQCznzcVfHUDveaL0ypMk+z5SkThloFqI5AJ5u8ridBM8jqtUChDcLfbjqMl0xWDUPKJWNnyhgRXb+mX/AHuGSHwFJiZTbKQxBN31+Mz7GOSRwxnxHVFC8gk9evp8nrnhOJBJ4UiiVyCSUBAo8i+lV9c7sjn86i5F54F2eP2MYITB/wCSSSSYr/InlU0eD29+uaKsSToz5Jx4qxhR4kjDhiSBXJy2tTFpmlmZf4l+ZEIJHr/TpmYdWH1DyStK05amZxQ2jqRluod5a85ELdSrGwa9/wC2FxoN2aOm8N40jYPKm3dVlQB7+vPbEaldWJgs+0rILSMCivtweB9ecR9nNONSkPisAvQWQK/zz9cDWPAkknhbgwYcqLv1+cSnZo1ZRJr43H3VZRFIK5JvefQMeLHzk/3bV6j/AMOpqNfK8u3zAV3v+oykRRtpCyPvDCnCPtIHXgeuDIp1EUOxKccvZEf6jN6a0ugtNGI4NseqBVj5tgotyLIJAHA98e1aRZPu7NbjqaBP1voB2zzFJEWHTozPGvI7F+nHrhxxAwFGV1bb59/AHqPbBrFtDdJoyjR/w0Z6JYtwQT6i+mBKmn8ZlZ2bw+XQ9T6H0AxWlkbSwytIisoNjxJN19aOQ/8Aus8TsyxqIy3JkXkD1vnjC4tGjbbNCdxIkZVT5Rwx4WvcY5i8MQ1CPu07ACwxNHpVdvnIm+1tNqdXEsqH0XaK4+Ma06wosa+ZHPRPUGwew/PFSZmjQXSsY9tAIep616WCcfGIpNK6IzF1X8O/v8/2yB9SZNDKUkfYBtelo898FDNHpIkKeM7eZgldPrzz/fKJZhH3su0ksIllBALUK2G8KfdIQYkAIBJjY80eLyKPULGrwoPCY+ULGtNXuDz2OFp2/jsAWZVWqYUSa6nJ7VBaV2HFIdOVkQbl8Smo+vauo9MTDFMpJ8GMLzTbrJv9R2z0OrEkR2RpJzt5Xbtrtfxj9PMmp09mNgPw2qUo5wqLYboLwmSAPMbPiWWTy1zzfPPbO7oolbw5elbiOg4PXHy+G0cbSvcZ8q0ORkk8kMErhY31Ck8VXp/U4XGhU7KLtiAh2lRuJ5BH9cfF4iHYEBjTiwOGJ7EZnp9qNFMPDQqTVDYASfz6DLjqpX0jsoBLNfn6Anr0xopVYJX0UBFhLKGLFq3ebpxkGomcRag+OE8wUKK4/wBnE6jXUlXKoB8pY9enpkH2hPMBGNCVkfxA0iO1WK457HC9xGgtLfs9KmkldgqUACF5YDjnNMEbxZ3FR0qrrtmHpJZpbcNtXsrPbKSe+aviSQ6bxDW41fF8/TFj3Q81bse822R9u5Ai3Vfp85FEPG1Fo4WgPKoHl69Rkp1ELTqZlkSQ2PK34uOT+/TKtyxbFiRwwU7U3Ac+pI7kYe2CkkOnIVWJhLDk3VEn3/xkmuljf7LkhtElERkTjoymwR2sEYeplmnQeGSsS8Oe5NdvjE6h4ZNI0UMbyr4bKvl6SAdbuzfTGjfIGUNIGp08ixkQkErs6seT1P764yXUsskULHzkbV545q+3XM2bXBnDLoysU/Ikc0COCD1/dZRBMwHittKhao8/vnvk5YyiWWXKpbTnew8QDjceOvcf3x5uNUYL4je7dvTMiDWtqZZAkSCGEBWHd6/rxlOi1z6h2iDFRdFX42qPSu+MmhJRZrQzMF3k0nsOKz08aFl7NW5Xq69sl++RFgm3dtF8d/bA++AINl0OCLrb7/GVu0RrSiYiVlDDkH2JGQ6hZYNV4yNe/gL2P0xjatY1BUMUH/4hXr74IdXkRpUL7uUNdPnN6FFkaSUbayRfsMshRDJvdRdcG8zNNqUSdlaIhyLIbr8Vnk1amYBRwPxbRwBjwdaLJGvIeNhUAHkjI5jdOR5V5wZNakShiWKEeUgf3xchXUaeyXU2D5xjfI+SFiqHPIJQvl8M9j1HtnooSfMbLdhfTMpvtApNHCzlfMeAOo+O+aMM0LsSpdXHH8Ti/jJr8nY7VYNeSPSm5PMCevWs88hZPJ6/F5HLqAXvaTX8w5GVaeVY0Mjruo+U1V/GMm5OvAPFY6OOWKJpdVJuSui8V8YcpcKpjcncOWIHGc8Uaz+CpZG28hk65NJIEQswZgr0qg5dxfHBE7YxNqRr4jbz60M8X2qFDBmPPHJ9uMTI+yMsdwB/lFE89cQNRGdZCpDRs58wZa4zmdrKKYNjgm1GoLbygDcMDQOO1CyLJTtto8ejY4alVkMaq7FT2UG8n1msH3hIgDIVBL7eox38aUL9ApNsbFKbVAD0sk81jELAUSNx9uMj8WMKG7XwpIsn4y0yrDoRKyFgPTD8cW+xZNCQsglYlgGeq7Vnt3YMdoNcDocKTVRIsYZbLC+Oc5C8UzkMhV/Q98D+N+G5fZyVGjMbB/N798X4sspCIhFHksbP546d0Y7Ii528GhYz2mWODRmSQlmJq2Nk4f8AhJv9G5qjqIgjtkUuLFkfhGNRaJVf174KtHJIECmIjsRV40xL4ZJLEg9L6DG4NC2Isg7WAC31u6wgN9kMGr34GJWXTSMWpygNbwLGUTukEQrnefKFHXNGLZm0CgUrZPPTOMyqu2yL6jreeg1Eci7FBVz1DCjiZNZp5FVqkYhqIC9MEk0sCmG8SmI0xs9Ac54TKgZvKR1N8fGKGqjBLclRY3EdD6ZUXV02uvNWPUZFJPseyPUzLDPCyg8mvw8i/SsfvDOyhwFvoOpxSmDcolkVSeFDtRJr0xkDAIxV1dtx/moHFVjPoaQFI2EE/wBMHUJJIQwd1C8nYav59sWzojqK56Gu2F46vKEsqzDmxQPxlV0IM8awyEAAdCe+MSBGiB3Hn074h54IWa0Z9v4iq3WULqIzplkpwgPYc/GXgvsRsWdwoA3Xr2zwHnA3UB1465xZ4jIAwKg9CV4wNRMliEAyMeQoFnEkn2FMpqInddkCq6YDsTuCDcR2wfEQ6fxaY7ByB1GLi1KvIGSN/l+APrhlnZkdjQKt8bibN9zjEkDbkoAj34ybXu6ws62G9j1xcGqhlULskU9nYd/nJdMerLCxJVQCK7XxgOKlRkLqWsHix64iafY9bHZu5Xms9LqRJpndQSVsr6gjFt1oUipHVgDuDUxBN/vnOFvN+HcMlTWROqFk2Fz3Ao/GPHl1tAkIEPU8Y6TlgrwYgBuhts9Cc7YPAHlA6YuOZCCxUhRzuPfFTayDgsrhb8vHX4w00gHXVii+Xrxfp8ZyVWYbBQ4rAkkCSqfEfay+Va6/7zw1Ko3iSKVLGlUjnJ1boexTB11AAUMe5Zqr2wkhYrvc2VF8VS51ZIZ5GNlWA6MMmXW7IZNwKpGaJ6Yr+OmNytFQdyVBItueOgypYQ6qQxscsSMz4NchhjnSE7CdrcVWXtqo/JW+mHDFaDZWELROTohddszhVog2KXreclowNY/EfL/1ntdPsfbHueQjhQt3kun8Z3LvewWxHTb9PzyPG2VTwsghk+6/iNDkDqcjnhibWmIo1lDs7gHv9cd98SCMExsiMa9l/wA42NDMCfHp2HDCq+axJLpehi6tmdrNU8MxM0cOwRM6q4J/CvJPPTqPnEA6iD7O+zWj8kZ00ZTaaCNV0R2B6flnftfRJP8AZ2ohgeVp1jLAvbAnbVfB9uhw/ESaLS79R/8ABEEZJ2iwwUc889MaS/ApFq0HBDqNNE0uok1Leawm4HaD1rjp85paeR5Yk2zFtpIs98mTX6e1DwyJvb8TVRxza2EyCNEYr0A64se+xJu/DTjTaNjA1VXuwViMKUOtdev0xUWriYMwWRj/ADccrXfHJIjKGRjsI7525WnMdQMsewnoo5bPRHZEoaQysBV11zhYKCCCQeP37YErbAoDAbPoMW6VoJ13kJoLx3F84COwUAggVx5uuLM8PmmaLatfiA5OTNqItqysZCr0N3Tn0yUpPwZIpdF8VW/ida8zcHBYThjtUIH73x+Wckn20GBezwL5GKGrBfaVBjAopwKOJ+xkNc8rYLdeTwBkUrOsi7JxFV+Z1JB49O+dGrR3d44dpeg7EdK/1i541FM0xbqQSh2k+n5YkrvCkaK5Iod2+OiT5mjUEGvUe3fJ59NFLAJ9OxVSKpiL4vdfvkraxTJ4bK3ioylSSQf32wV+1q1VeFLJuYB9oBHpfz/XMmnjQyTWorib8LKzbDZalPPrgaXSp/4y58xOwsNp/wD0j646CNYdNNuUBDYJPFcdsiWZlcPJvYhRQWyDz79O2bjlmvaNMokYUrTkEkHkBSOvx+uRvq/F1O0Ou9HB3DoQRxRGMdz4cbq77GP4ep9/375x5WlTw1jIIFrXFjBTYFV6NE7PEZA4O3hiB19sxZmJneVTOWJsALVc+vr0wwdUj7AX8ON6d/QXz9b/AKZ2aOSWaB0I2sedrcMO1nA02x41HRceof7tRYoG/wDGVa93Pp/bNNN6AGrn27d68C8RHABP4Md8WSSf6f6yga1CzKF3OlhqAIHscyjppST6OxPP40vjUwT8JTt6375RLOzJtWXau6qPB+mTwzxSQbxukVP+VWTnt3Uxu20GzfAN+mFJk3VnJYHJCqdoBBPPJxjoHvw2O6uhHQf2xL6zZtR7Mu3jeKUj1vOeOhYo80atJ5k74rQysZptujeNIxt21uUea798ZLR1ElqOV6EdMn0+sB8RJAH2tQo0frjJftCDYrKhWxRQrZBwr/Jn2e0yx6diQoWhXHN3i51UQsH2g965Ne2Ttr32s5jNkgFA18V+mKfUCQorMUIY7kJ6V2rvirR6p2UQMF2lCdzcne3Jxk/jA74n6A+65PFq1RnXwmdio7AVx2xh1DzAKPJZ9eenpgoPp4al3dWYjbxdHoe/OOLo5COgXvs/vme88ULsgSzICKXn64uDUNO21Qew60VzaNxRTPAGL0xQIPLuBsZVpZvCgBQXa8+Xhj7emTPLC8bRsDJXAkIsAZ1W2JGhh3Aj8V/1xkmK3aph721MsmzegkoMw6kdx74Okj8GNx4jMEBB8vLEf4x6yLFIqjTsoP8AyFG/3eNmSKW3hB3DhlfscLixOS6O/Z6lUDtbCqN0K9sq58MMwBTpuBu/jFJptmn8GxR6gnKGbw4SqgsEF9OPp75RKkSk7eBqq+HzSoU8o9/W86XXwrQUASD6jEjUEijyKB2+mTz/AGiFYgqQpPb0H9sPJVgvFtnW1Akc0oPYL1vHqQoO8hr5O4cC8mgkSOA6hh5ei89TjFczKBfhSut+Zbs5OPIaVdE89x76FsO11x64MbDV+WyrgAMhqwR6/OA05itJPPKOG8nP6Yud4pU+9K7ABRvoVurg4vEqigkM5O1Wvy7etD3GcSSMDasbSFeDQvj05xMLHxV2b1WQ8c3d++NmmhhJiVGaUD8NEjphphbRJJpI4fFbcUIUUW5HJ9D3yZiZGiVRI7cq7iiffNCQTaiEMqsm2mKLW8D5vPn5daIdc38Jyz+ZVXgr26euDi2Uix7aSRftXxlhYov4Ks7uK7dvnplY1T6LZuV/Ar8LCwpPT3PH9MXppCpqTbKNxcb22104+eO2Im1ullJlMTSW4Kc1z78+hzawvcLXmGpI0yN4hks7gxWq5sn09cqSK4lU75E/EEH8wPqcgWd4TcyGmXyoi8hT2v0sfplqvCujWceHEwAWm4IbqBRwdk5YDDpEDyCGPw4xf8RhfNfpmhCXjg3vUpIAe22g/wBszI9fqEHMiNExrymrPofa++Nk1LzySIgLmN+Y0pgeOD7YUq6Fe9gzyrJpKRleUEBSjhRV9aHp0yeQvHqFcm5AbDFiQeTx2y0yqrM4RIyosWtV6k+uRzTDUwsBI4d+AaBQd7xXd0FMWdVHJBLMiuGJN7gR+xkcKsrCQWxXg7RvtQeLr3vGJqoItPUnOw1vZCVBrvzgaX7ThWSOWUl3koExAWaP9OceKzCv8LIIZCy0ytGR+Bl5Hx9ayuF20kaMzbWI8yqbHPr6d8Tq9SdA8cEI2vJZVUUkAdsk8WZ1ZPDaYufxVZ9Ti0xe0fUK2l8NGU1f6YqWTwTcaFlPXj93mYdTIuhUBDtjre/cDO6jXGWIbUlHQKw6N9cfk34c/CjRlnaKJZN20heU65LNq59h1COfCKdNvKnJZNWZWWB1kV1H4dt3841NkpELrIsYHmBF0e14jsZJLsqOrWSJJdpcVVod3zxmadQ4kDEFkPUbe47c5UZotMzxxHydHC87fb69sUEWc06MhK+Ule//AFgabGVIfCnja2vDRlI3KyHv89sCTTkamPcxeyevFZxPAjkHhl3DG7VTY/ZwZNZErCySnU+Xp8YKwF7gyWUoJUZCGjHlG7jExQTPrx4rB41oqCKC4nWamtrR+JIoUmx2Hr9M4mp1S7ZhHYI3U69r5r1w0xl1hpSRJ95SRG27Qb388ZPICjHeb3k7V3FvgdMJJ5A7MSwBXzCvxA4aIixIxaNl4Gwirrpm7B0SMI9O6mZ68hCbmNL84uNJjE6sqNHGvVTRf49c0EMTIrGMHtsAujeI1k0SRfdg77/xbUH6Y1BUtJ9AZppBAr0h/wDIZe3sBgOjs3hwOmyLcPgkf0zkCOdzgurjzML5+npnZ2iG7UGGTdIaD1ww9cw9qwVSHS6QK7F33chB1yhPFmgRo2cx7uW28/GRQzPNK3kYUaTctlst00tSSwSO0ZPKqRZGBr7AwZmdNq1YNBmACg3kg8pZX/F3s7gO1ZXLJ4abXd5YwBbpwpbvxkcuqSKUboylg0wY2cNBTKHhik0wCzCQryK4I+uYem1GsT7RaRUVxbBNx5Hwc2NPMNpYKFWQ8u9Uo9/bI5I9P95OpNMxO4IP5j8dD9MaGWg3mmi8TAI8ilmCElqF3/fJFhinjtZAFJstVYz78G1SxxROgC26SCyOOe/6ZE+qYygRw+JTneSLA/1i07Mui/7vptHpVi2ptHLMz/59c88YL+GPDZCOqDgnKgytp1mZI2Qp+Ejgn2NYhPtHTtMI9zKw6ow5X64NegTFHRqshmZRwoHlNk/nxhSIBp60yyeNwTIGHA/LPNK77jK7hC1Ku7gn4w2ESRrum2n0XvjPBrtETI+19+1GB4s34h+v+srj2uAoWRWjUEKFNX652ZEeWNGUlgQbI7YSwxGTclyqp3CvLfHpm8FbQSSlXYSLIWdR0BAJ9bOAsjNDII0k3Dja5Hlw5tRO8joyOQqiwq9jgSrHJpLWO0Rt3B2sOPUYgMM8GQSbG5BsgltxJ/zeeeSOKIvLEzGvN3zksKMBOXlMJH4fFP8AnJvtPlIW0M5cmhsccP7ZRRTZRNDTqElECJAtnngm6wvBCweIHCWpGzbycjk1b6OVi8DKFNMEF7fagbIzmt+1tNLCFjnU7RYVV2n/ADh/5ybxBtWeO+WVlC3spWO+x7cHJ2jOnlZ7UsTwNvAvjnBg1bqrFltWbm+p9sdDqdNqJHYxyKxFJQ4B9cpUohtMVJP9208bWGJJB2r+E/3z2nC2xisOX6Edc9IY1hUeOxYHeO+KhmCgvTAEAfw+h4749WjdDZU8JWmV7bpTX5PUGsTsA0m+PYksvmJjFfT274LanweWJUFqNC+D64E2oUwBULbeQEKjkeo9/bHipAdEJb/5LclGPLovHP1ylnbUCNCxocWxqh+XGJqHURtKzHagBkYDhfT2xn3mNdPezeJPLaWwr39Mu98EwXM8aLuWEsBwQzCz732wZJYxoVOnkJcmijEWP73i3nXxgCpTcCNpWwwrri/EhEcsfgpHu6Optv1PGUUfsVsETzSBV8Pi7/GAD6UMZJDSncoTZzS0Wv6dcHSMs7gCIEL5mUG/zPbKmhMUTOFtwe56D4xpOnRJaDFG80Q8MAbRbqrVY9MfJC6RfxW2KaG4cDO6aR1CofxkHdScfl3wmYSAkqKPk46n1semSb0YQgWN2qOQ8cUu3kciv3ziNS0sWnoB2UivxUDlMQISQkFuaCxnpzx7/lnH0cwUSNLey6jiu/k+mMmk9M1hAkTHa0gJAINK919cv0pLyboy/lBDHdQXGRLJLG8xcWR0VAoGCkXLOteGRZLDvglOzRjRTFpi8DO4Qh/52flh+/phLDCQh+8cAGrSqJHbAindUaMMWRjXQj/ee+51IPGlCyIhKiwQboCx689cl7o4hENMpUMVPRgAPYk5dEPumnC744kf8RjXcb9Qe2TSRNFMW2yLHX/kBoHtdVlemneSJFS2v+Y/zfv0wSeBSKI9hkQHzMFPmYbSb6E9sXpp9Q7PpgIxCL8QNcjn4J6fl3w4o4ipDBVZmGw7iL46H5zoDPPJG2mpttBFawoHc9OMmpB4/ZPLqYtUdkW2FA5G1QQWJ7nr2+Mph0bJujDRNu5CqByfSzkoinUOwjtJbIBbr712OFpppoNr6h9w4GyuR2zS6wKRQFSKNkESiQ+Ur1LHtVHI4YP5HYq5boo/tmwyfw6gcnxeWikoAe99frkhVNPIBESbFAqCb57cjocVSCjkxZ5dqWPDr8LWCK/LKY5Aild421ulsdCe365Yn2XJFp/HmUbdu69xJon8WIMqzqxSbZR2lvU/vvicgVyD/wDcCYWJCIQPxFbA56gdMzNPBU0kkz0htbEYJA75q6Z0fReBxJuJoA2x9/jMljNo5hGkz75gzbUoMD2B+gwx9QKJ/tTS7PsRXMGwtqUSMv6A59Gmgi0mnVi3izA3+MWe5aun0zG+1BI+k0gBmYDVRFRMKBNngZ9BotQdeYtPPLLcn4LUDawPXj1rG+ST4L/6Il+TJJ0Yfdw2w028daPPU4v76kswiGpk0+3kMRYc32r3xsClpptNrJL04JDCRSu432ynR6Bk1ghbUkxIm22Hbrweg4yV4F52Va2Ro/s+JkjIlkO5mvqe3vWZ0cjTRDUN4jgAgg1QB9a4zY+0gjPCt+MwtFexz69MEaVNDp/u+0+JJ5i+6vzPtiWkLFuqMDSeHHqJKABN2UHbg8jHqQ2meICVNt7gRuO497zkmgnj1DyqQ7Bum6r9x/vLlkV9PsVgDfnc0elXx65myrM4yNovDSSFiH/Ee9epGV6pdNMI2UhR03IACa6cf4xUm3UBolS95/HyCPSsDUK0O1dvibaJtqv5Hpgf2jJWZ8/jpKxMsm4E72cAAfu8tgXwvAkicMwSpfNe3+/fPLIGRdOyIVLdBzVg9f64uM+GiRqjMPwb2YgAHkj3xm7Q1UamkCvMNS3lB81OaoD+h74+bURToE0zNIg3DduCj144s5DqJvB3yCNqIARCOPrR64OnlZV2aaFUJNPX83HSr45wxlSIuLbsz5NVMjSfwQdh3b5BV+1Drln2dq9RJp1kkcRqj2Rv8yg+3b4xml0Mk9kOgLA9t1Dr9cuOkQqqTlUQlQd9eZqqj6f1wt2M6qmT1EdW3gFpAfwyG/N7Yt6l1TSzlFZfwkfgXNZVm0ukMamIlbHkY1/TMtFi08jMybmYUttZJOI2hY34JUGGOWVKaRlsUALW+w+MVMZJ2WnKKiimdrAPxXP1yiMytOzosazlvPJKCzVXb3xsjTL4UUcuwPYO0cknn5zOVD8R2neeTWRvFEhjK2N3lHufXKpdHrZnd9RrBAJOESCPzAV05vO6dYNO4lZt6ydASST71374559jrINtEny9wfp2yvx8VG32QlbdIRAkGiaVpPEmkUf+RxZHvXbMSbxtTO5g5t9211HNfOb0SxESFtOzqeT5SKPpX+cl1hEDALEQJK/ibACPn6cZJztlIYzJiaArHBCrwMhIO47yCfT0HOPEf/t0yWyyIRR2puMfufywCId33t9YEjVvKQoBodqrnLNPqUlkM0iF2Y1VE18V/TM3elGqLNNOs8czspJCkhhTE+5rgfGM0+wRR6lwNrttkIFMMVon8JGd4gAr3+EAn2AGXxmWEszAlSbCAUfr39sykc8o6SahCn2gzsGVWS1d+bHYD8sJEl1B1DXJE20Xxl2o0wmG9HMY79wc7FBJFpySzHkBpW4v4GMkJZlwylVEMOknP8Mt95q4+4Nep/znV+0XrwhG6FVIoJ+K+P2csmuWPZI7cWOD0zzwu5ZzGW2IDfQt8/GLy+hkvsUwrSRjbRR9xrpf9sjLmXVwmNGA23y3r2Hx/fKVEsqO+x1ItjyK+vzjIoyy7RSGqrcbGblfYyjQqDUA6+ZkZUZVoM3b4wIIjJKwMLIqSWhrlj61+eNhMf3jwBJEwu1K89Lv62cZJI7faELhwChogCr46/OFOjOJDqpEkhWNA25BQG3zA9yawNdpXPhl45GYqLYdB/jrl05WMo3SQvQJHAHuRk8k7yMux1Dx2Cdtn5464t0xopntJqRHI8ZcsYxW4gbvpeFDN95gbbvMl7jvoEe3/WTeO+oRjFCgjU3uY7bIPYD+h6HG6SSOOZAzFn/+7Ahrvp3vNy0ZwwYJo/tDWQ6XwUY7g5Lj8PbrlmyPS6p1l4b8SuDuuj0vGRs0DeJv2RvSrwFN+nofzzn3VpBNvldd48rbjx/bGTRFkcgnk0uoniUXL/xJsC8DSxShEMjLsYqVWze6uuWaT7POlRmedmcnykLZVeOvHfOzfaMMDu7ykxr5boncT9PbGT01eIy9X/DmhiEccjaYlApPDKeRfpwa+mHpo9k8QKIsTNt/FS2fbv3x2p16/f02AlZvDIU0AfKRZPaiP1wdRMkzRqCUU871PQ+/7GLJ6UjdUckZxPKhUqznsa6cC/yGVBYH3IsqHxOCvSz0POZ+8b3kCB5DxbAAjvljageFywjBQeXbySe30ybqwtM4q+FrValKItgsPw/vpeNWaTdNL5XVr2nbz8V9MTBxq1lVSVqq28g9evTKYolkO563o1ilqr65VSpYTa3SPUTo0BcSlyreZf8AjlbaoMIJAQwPG2umck27Wi2UvZQOPjBEbySeIkg8pAKdawqYrjhYAsmp3Dkba3VxiYtLFFuWR5Nx/kU0Gx29vEKtI11ZxyTx9Sy8e/XKxmrJOLJ9ZtKadF3KA34O/wBTjtTFI2nAEgjocNjBIFXcQTZ5Hr7Yh5iyESMqsB0PbnNKS7MoszPuDx/akM7yPI/bnn5zSR431aub4FG+x9MYiDZvQBm3cksRWCIzGm5iGa/MN2BYhnpKZYZ3YOZDKDwvIA98pl1WyGMstCIWT2N45vCK8Hb/APa+ntnEgPFksBzV3xjKbXQvFejI9cTTLHvNcsBVf3yeErI0korcr8jGaqdgjKAVZqFrgxMwpgWbvYFkYf8As0zf87Vha+QuYJFitBZevpkcyQy66E1wD/Nmi8bM7EzMnNmuD9cUYS8qSSMJNxO2hVD1zSaegWB6eVvvMxaM8ccDExpFFq5ptSpUEmuOv7vHyAorBWFDkgA/2xUjeE5EkisTxx/XM53VhS+gYUaWCeUwlVayq1ZrtWdn1IGkjiQnjjpwMpjmM0YAcL6gVeAR5l2Ejkr5jeO/kpUha3QGVzPDvYcDqBnYgp+0gd1sV546YUieLGP/AJE0Z7BHA498HSEWxlmfwyaFHr7/ADi86aRuODYZF08ckbA7zZHq2L8RF0dSBn81+Xmv8ZTGIVYsq7yTxZJIxwSt1fiPT2zo5NrBKRFBO66hdj+JGT5gRyoyofxxJGhIYA89saWRqWgDWEH8MKrEE+oxqXoumbp3EMRgdN7XWzb15yicbZIpAvkUUQBdZWAsjGmNH0zrIoW13YYqgNkKr42q3qTsUVu6ZCswi00ocHvzt4Gaaqru3BBr1xcoBCg81nP8t1aKRM8kNoUk4UdCD64xyoUyHdWzbye+PeFdoYsFN3ZPXF+TdsZiBV8duc5ZX0ViRtpl1bwrtkSdDe5kIAHqL6/TLIdN4OnjhChglAXyPkn1zrbma4iRX6jHIFZRZsMN3Ss0UmNKTJ9WwTafDrzVQPXOPJ4upifa3k5YkVWOmj8VQQCCrA+t4ze7MValFeuVTpE6I4pA/jeMzFb/AIaDofmsYrSD7PAHdufTKlRhQABI6jrWdniWaAqW8MdbykG6FfZPK3jRJEFO6xwf5c82nVdSNzuikeVkPbLV5jUhvLx3wDJzbWldOcfkl2LohUKaKZmUrfQseTiiC+jSm27h6cjLvH3BVG0H5yfUeUjzBmPIJB49Mn8slWDRWmdMskKlN5f57dca7LMkSx/j43cfhGPHG4oE9+eDhxJ4igsa+DQ6emRi7wo16S6iXbMUnZin8oXviIIpWjbahq6ocEZoyKjELXlHQ4LRbUGy+D3HUZmZEpnjh0/hiJWYGyCMNvEmnABokciumVAB5QikgkUb4zgbY20yAUeLJwxdOwNYeRmk0TxFP4qCiPjJpW3aPb1Zau/5cuJ3RkbilehrJpkMn8N9SWXrQHOdDlFx0RJ+EzEjUQtYIAoL6Z6VimsRwNyAU1iwuEXpSZCa7HgAYWlQoxIIYe39c5Yy1FeOEsmqUTh1XaqCvKOt9sXE6sNRCwNc7V28n8s0NQtSKjw71uwe2AWHji1C3dYXPTJZhLCFOg2eGyiwTzQ65TNIgiiZmpQQevQVjFdUcpZKkc0OL9MF1GopAn4zzXQZlOugcbekb6hNPrvEaR3VgrBgOCP6YlZZJtZNCGm2uu9Vpba+wJ6mrzSChYvDoKiDbtA7dM4InnWIafViKOGvIFu/f4xY66KYkfP66edIyul1rKhuMROu1i19iePyza09Jp4otTGQxohRyb9/rjdR9lJqAzGVprP4FAoP68jj+mBpdGNNCoiLKQrH1Ldb49bwyg0/yQXJOOGdLKfs4rHIkkcPMpdk3AqLJWx35xCaHd9lQaV5CsixqXjVdwNCu/Fj075oz6mSOfT6ItLL4kyFiR5aQFiPf8IxqzK29lXhmp228nBJxUTKzOmijkjhjhdnCGrHLAdufbL9HGX1QVQWIWyxHthq5kPhxqiqvLGrIHplgmDx7SNgF83XTNCm7Fk2TxEkzbRfPU/XGaU3pwEANE9TjnkhhCgNtcr0N3WSySOthHUbfQ1zjSnxwRRspAUzq7WDXQ98OeMBdyxhhdV3GTx/eJJIyxUL1IHOUSyFDYYsfQLjQa4sElpLqoz93YPQIU0BxeTJIDpBH5g10Fo9LyvVKXhouwvuOaxccIWEKsjSe/rz/TJvGFdEkpZdQoaQrGBztsX7YOnkUtIFQqoW17Vl+5o5STEwF+l185LNqVUncv8ADbi6s/6xGyiViIZgNK8XiOpfoNtg/GHP4sWlhYu1LfmA5BvF6XU7PIIi1X1WiD6/GVwSeOPIFC3ZKtfv/fBy+jcWuzGh08k2pmnkEhMfJlIoH04+uTadVin8JeGZ7Hmq+vfNzUSn8KsykeZfMLb/ADnYNJGhdh5p6D9Og/66Yt2VUqVsghilaNZGlPiFCCVPlFX1vp0+uJZPC0zeLO8pLgoqj879c1VZ2hVfMoc0CvANHvkmsjkkVJVZ1RDTxkjknvfpjp4BayaPVNHEjnxFib8bt5a+nbGaXULJrbWVNjqdvfd9Ms0Gnh1UbBQwZUIKnhWJPXrRw0+zlTXM8W4kfjG0AMK5GanRm4mf95GjZmkicyAlivA3dq/IYuPVR6tVaGMpGQaYtXfgVXazzmy32dPMzFN1P0ex06/I9Mk1mmXRIzxAB18iiRuSeBX1zVJbRk4vBYZ4pEicoCR5DuHPasDTvFp/Fj1A8Mgknf3FcH/vIdT9ovDJKWjATwy6sgpg1c9eo+M47u8RaZy0Ui0zkm+l888Xx+xmX2xuDqjV08hOmZQq7XbcGUUM1GgH3ZlA/CARXcVmJAzaXTLQEcYX8F7j14vpzlX2f9oGyjzKB+K26sM0fkSek5fG2rQqcx6qAiIsQGqx/J9clfYdeLdY0VQu90sH1/fXnNiCeN01EDzDcCGPQX/jJpNNuDOXH04rnr/rEk1jGjmMVozpmaYo21gLFLXX5xakvomtqIU+aqH/AHgnVQSO0ESghRuZwD/XLFdNRH4keo2p329uMzYzjRD4I8OKYsW6ncvYd/jPahGeSOUPIdvJrsP7n3x7yRGTeWbwyQF9MdcZg8OR3B5JF8EHpgTDTImkhnkdw7x7gO3B+M6HBiaeWwy9GAv6nNQJAYfBAAXaCRf64lyGiCIoAciyeCa7YWwJ6YWsUSzRuhKkcMQOMs08MPgyOFYOy0Xu7+MpZYkkLum0KKpT+LONOiENGN3YnpeCx3bA0skUUHg+HuZlPCgm76Y4qNLDEoUlrF88A+2c08wiUmQhPN0A/phmUeOFlP8AC7tff2HrWPyom4jW1da5CyD8P4Tf+c9AjFpXXaCtk555lWRWCq6E3dXXplJnQwhEAbevBU9Dh5WtJtV0Hp3OpACsCSnNrwPTBchS0YBoiqzy6grGCKs8DjnPat3mk2hjGQLZgOpPQZm7QqWi2kkOnCxIAtVZ6jIUlTT7nkVne+Hrgeoy9CiEEI7KqmxfDH3yaCBQm+J2XefONvI9sC6HoCKUx6MN4h687R0+fTOpIRq0/iDbQ5s2T85VSNJtjbdZPPr8YE0Suq1B1FglOnesHJi0QtO0csp8wIPRQWJv5wJNM02lIVd6jlVFkn/WUQQESTh5JV3MPMF5GWBoNoSyb4omjjeD9Ge8cY2kNK7UDtDEKo4vGHSTyaoq7hbUkAHmj9cpdTChB8u87gSSR+/jGgAJTqu27JNmxx+XxmQt0ZM/2VLIrOjsApsKeef+sy1jU/aTxuhD2XVgvlod+fXN+R28fYrAoPKQ3t2/vmbrNRNDrhHJam+ByA/A49K98UtFtip2kMDSMu3w2pxtsj4PN9cleAboZNpZjbEBbAHYD5zUj1Gk3bp4lh/l20QWI9e3f65VHKsojEcEYBJA2n8X75/LByNqRl6mGUOHMZijPPlbkHtfbClYnQeDJp64JEm0kfI4zTfVEQmOXh2baSVtT9c54CtAyTMkfl3HbQ3elD0wXgt/ZkwxJDHHOzuEmUDbW2ueDV85dAyJq3YxsAaD/wAv9Oo49c5po4ZJHEEu+PZyjqWA44odsY8ccEBkEgjkCiwhHmF0OCcaOs0vom+0AZBJKhaIItrvFUPyzN0ZeTS+ENW8pDEF1YbVP9a5zQbWReJEoR5NQ5qibAHxjxogqSJpQIy/4/5fY8HC6o0cVMxtXIYICniHxEtSHFeICeKHtlKxE6RHnXyo/FV5R6emPfTKuwqxYO4LtzS11odB6fXBEUs8p3uFTbzEhArjrxWBOx6ygPtOaBvtGNwRJupU5r6cc5XoIyhBOwm/NzV/XBk0mnkiEjjdIgtCTuo9+caNRHFpvAjpHewaIse+I5eAaykOBjm0k0MiimsXd83iG1SjTKpXaooHjp74KCKSRY1c7QNxct5gfn+2dXxjqXVV3Fa2EHgnrXwcbmmL/wA6KZArwAy7o5Ao2vZN5OmrZkkaN2eOPgOq8k/l/fKUJljZZiscxby+GTY9rybVRCE7Y3C0l0FO6z+mCwRjp6XWpqNKZIWUsG81r1+cKLUK8oICvwGcFeF5HA+mBphKSUjUo1Aksv8AN6/GL1cTxahI33qJiGV1fofjAmHiroKL7SGk1sqs2zxD5G7YcYD6fUz+IkbMbCFb3c9vY4qUSJrUqC0AFMHo+556406hjMQCxjYcAsBt4/pzjKSRnH6Fsw+7xlF2lWssFAFnHzMs00SFjGzsL/l3X6drxJeZZVjaR2UAM446duOhz0Qjl1C7mZLagLvd/jNyNwLtsax1ELdCaZ2rv6dDnVjileo5NigWfN1PscidDpSIrCq1myxIa/X984mFJhqKClielGsVM3HOxuqYwypRGwdmFV9MXPPEHOyMlglnb0Bx+q1X3dGhchgwoqw6HMrUzQxzFovMpWvxVz/jGTsZJs0YXDIzIsjMydhz+mTamfTeDFSvJIbDA8KoxP2bqpC8jUhZa6senrxl+p0sWolEj/w49hohqs+94LpmcaZMWhj1unkdmZG5DBfxe1e2HLMup1pljlDBeCD5SB/nOQSxM6PSMYlo8enpjGCGJpU0yHcQTxRHzhsFaQmWPR74ZQ4F3am7+cTriohj4Vg1V5uT7ZoRQ+MFjAO0csFoEV7Z7UaaKWRYwylkSkVUIo/FZlLRqEpp5njeHUP4aEbqPN/NdsSXOk1kO1grX1VbrKpBJppF+8zl9/Fkdf1wtRAPGMj/AMJf5Xqx9cKf2Fkki/8AyNzu77hZ44J9MWrqpYb3VmPC7eTj9cjamGN1meUgXY6N6YX2OijWqZVO8cHxCDQ9sy+zPooZVm+zotQ0r+U34a2AffJotb42pBjUyFG8pKgADveaWsjD6WMxmibJ56++QQozR7QpF+UsoogeuKpYaKsnCqszMIwz7iwQf1vGa6cSqDI8mwfiVCGrLbXRacXGJCCaZiLr1yKWEarYrlUVb2uaJPscZS9ZqDSdZfBRHZU7O3cfOd0jTQTljIPIODd3iXVVUK0ofbwNy9PgDORuXk8G46C+Y9CK6dcz6wNWWp9oIgngWIhn5aQN+IemUxwwajROwJDuaA3cn9OczYzL4uwCr59K9+MfpyxJAcnZTUAT+foRiXoj+P1EU+nqJIEKMFPm3Hg4qbTeBq4W2BI7XzI+6v8AWbMcryTurqZd17WIoZjajUiZnijlYMzlaXjaMeLfgY2LRFP2m+87w1n8FXmdq4Y4ZQJI28vCr68/vnGf/JqVZSPDFn0IPYXjRFONDvnBo8MVayPbLJ8WOZwRV8RzqZY0slQE3AH0J7YiL7QKxIAV8KQEtRII9eD/AJyqZd6SIJHIJrZddPjA1B0aadd8e3wzQok9umdCaeNWChU+r8SHwovFjofikG2wf0+uK08wXTCTwxKR0NiuvfAGqMzkLtQV1shq7X1/Yxh0TGB5S6pKwBR6pf8As+wylJKma29FSSMkhlMRkTpQHC/XHeEHjbzeJsAbi/rgPEGFQMV43EF96uRxQv8AscnWUkmMUzUTtW7T86x6voW/s6iIysCUKHinam+LzywqmmO8vG27ykHqL9ehwDPbKGRAejkdTXf2ONkkj52tsVq6jkH+uM7NgpnEreG6BKJb1J+n+M7IBvUKU3MtqysPLz1/1jm0kwUOoHjPZADCx/g/lgJp1sGdhFJRHm7m+/a81oFEphWDVH+EfF6kLVA/498bpppGcK0geuncL89sLwS6eIdwJvki79On75wlkZUVpY6oVddD2P8ArGbtEkqY5dTP4rIEDIwHK+a/3WOKRylSqtGa4jPcde3P0w9JImqdUEoUKSAH/mPccVWJnkRdvhSOrk3QAJA9P6/pkfaKUe+5OsjOsYShe9m/EL478/TDEup+6NpmG0FqLLVD656ORnjWFwzFl4ANlv8AGO04vTsGiEe0WOCRd9Pc4G36ZCWjMcKKhJYnl77emLMTxqjNIebLjoa9v85QzrHGQZGS1vYy8A/GTwSJNMi/xCic1YP6HMrMGzRrEhV25FFSAvHas7Hq38J9OVCgdWIpj7X3w72zEqWVT2/412/TAZUOo8ZeHj4pWPPv8YLXo1HhJOylNxYNyqk0B9cp0qolMVYqDy/X6HEeJQ8PazdyOq/XvlkSSeD4kSsFboABVf4xJdDIqi0xacs4AUAeVhtDe4F9cc8UrzMHTclfhs7R8jockVoAu5+g/wCLEE5oLqQIrZgqngCyK/d9cg7CTrp2JdJZHjBB8PYRt/Lth6eGOEbmlPkUBt3lxk0kHhq8hqYgbzwS3piRAUl/hhE/5G+GPyeMzZlpYmpjmcGNlXk27oKAxWp3HVK6qEij6ORya6EX+6xeneFC6SVuFg7SCOO+dK+EA1bdtL3oWT3HfFumbibP2drrJh1pB2kiEoaJHvxxzkGobTR6qSSaFKbyqzHcbzkUtSblMaKR5iXtbPr3PxiH1CNJIWaMAtSlB+lf0wUKlTLYEYaIFYohu4jYgc3z6ZmafR64StLJOFWyUUcD46ZXHqFiVkLFrWgKDWOwJH9MOOcIY2ewQ1KpWgPp/wB5otpjEH24NbL9lSswSN4AkgXcLG1r+c3UZV+zINZFHDHuQAOZCdgbm762f75FojFrjqQ8cMhMT2ewFHr3OSfY0CL9i/Z02o3t/AO6NT5VSz5j15x5b8e+MnbUhx00SSSyRTNI4IcJO58gPNdeuaMGojiWQqI6IANHgE+//eZepXSyaktpdOdQikKHaSgDxYIzQl8KFFghVCHfeSSG49KybeUM0XaHTtMyGR1CxkkbRxfp74/WK+oJlL3toAdAef75KupTwRpzJCzrZKIfwj3OMgcanyFNti3JydP0TU7M7X6d9Rqw8Kptq+Cep7WDwKxiKYpWgRYvEagbbj+n6ZTqIkjSQqtlauSToO/GIjljAZw8cZfliATuHuMDfhTWid2MGpjMoXfyCUNfr2GO+5Sa1j40QmFbgg9K7kZToUaV/FlWJYV43CwTjoWdZ5GiLsslCiwuvnHWCykcT7FZ9KrSSLERZVAeB9P8YmGODTxSQNA7Mx3bibHHfNLW+IFj1RZDuFKhJAB+azFfxYtOS0SpJdvuJ/DfqcFCxbfYmfw9Q8kaOzAcOCPKR6fv1yvTx6fyeGyCNDuNNx375FDHFqpjQNNZajzXsOmNlRI9HSIRTAeY3x6dMzfhSvDWESQfZ76lvCLhtoI4s3ycRqpo5NKGIBogg1/N616ZBC7xI6SsVXcFHNhSB/XPRaCfWzx7ZAiBj+NuvoP+8IvFLWVRjn+IZB56AjXcK9LPOJ+0YkVjHAKUD0/D7/lmtFpotLUiSCNoxRLf1xU0iNA8aqNxtrvmr9Dz3ydegUtww9M03iI4mkZ2BAtOQPnt8ZoakEIrIUEypQbrz64MKQ6cNGxJl4NdeevJ9/Tth6hJUQAi242qOgBHP79s12ynbJIXaJ4oZ5HMwTdth54PeyMvX7MhkbxpNTrpNpBUeVQo/IDI4dGQCIfKVG3ynaAPb9+2aMeonaNA7osija6Fup9fjH5V0JNO8DjgQJIRq9TMHO3azLx3rgDESKE0JRZN8acMstHr++px0KoqSLL4hKNXmaxZPUdPXscI7gDEAXCjzDqTz+pwN2J0zL00cEHC6ZGIcbWINH4/T8s0onhBljnIDO3J8QUf37Zn6qR0jldYd6oQRd2PToOTfpnY9q7pHIfUNwyL/IBxR9+t4NqyjVmtAAwSRTJHR3CuQSPm+Mo870x2eKx2rJVH1r465LFGUgM7btqC6s9PTk8HK1mRkJARf5QSOR7k+mOm2tOeX6DdXhjCeOC6/iZhQ59umBpGDxN4dMd3mUNe0n/OLaWSQbQF2C9+43Yw9OscW0xrEGcFmIsWen5fOa7YKwWz7GWQSDbu4oHkE1nY5onM1vuF8bRdc4vUwtKm5pQOebIoew7gYqFxHqDpQeQCdpPDXWYak0P1k7CMrFDtUsDJION3TJtRP5jTFYiKA5Bv1sc43VkzFYoZCwWwVo8VzkmpgVNkZZl4JNqf3XA/PA3o8EvR2kjqULE+5ALcjopHXrzeHNGgkaUlnqyos3f+M9oIlgVnRlVSKbykknvXfJRv8Xem9io7dB6cfs5k0HtsNpD4W6Qhl/8AopAX6+5vGwRRAbTEohPIKr16c8c/9ZDCyi1ZXZwdxNUB71XP+8vHiNH4cZJJ5AX+UfPbAwtUS6yEJqC8MX/kO0iiRxzzkv2d4qzGM+ZVI2naOeevsBmiY5W01sS6kggGwBz39cXFEkcrPM2+QN1jFH49+2KrGUsouD21S07KaWm3cep9PjG6qKRCknjOCW/A7UKr9cXHrNKukZRC0cpYb9w60e3xhamYCJWTxJGqlbbXPavbKukiG2K1WqPhGLfIZOqhewyWczPpkVmCKnmsDk9h8dOch1bQSyRSq7iUr0ckj6/vtlEcwkARvELNwSwAsX2ybdsso0iWKFtRqYU8CRIy7p4jUN4K7r44/l/XNGWeCFfuiQgnbyLIIF+nPGZ84OmgbaDLtnRhvIBAJ29B2pv0zQROr6ld7WK2iiTXNfTKPoD7ECCPwl8UFNt7a6833xRM0fhqxYKTxt/EB2v/ADlur0+nfY7kI24bRusn2xckQChBIH288k2ACemTYU7C08csAWRCZN3MgYkkewHb++WxKs24szRljyWHX2ybTiKZAqKQkjVdXurqfzyqNCAyAkkdQ54HHGMTkxDyEysIpGXmtwAGd+6mBVeFyGP4t1fnhTqskG+FVDLxx0OcjYyR+UhGQ0SB+H6c5rNeA+H4TAlma15fufbGrKBKsai0PIs8HAl3CamZt5Fr6/FZ4CMtuVhvYDqboeuHo3hWwV5BvG1VNsQbvp0xZYSkFVRdx4uv94D7DtjL+RRXUcZ5EjjITeDxYLCtvxhkxEihJoUZoyVsCitggf7wZJU2KrUpatpHb6ZnRnS7xJHQlW13kfi55B9cdbah6JG5Bw1e3fBzfSDwLIT4qn8Io+YiuRjnJiovR8t1QOZ7HUQrvKUg9P5q9sL7w+8tI9KF6kYOTQHGyxgjAWoPHBo8YlZXWTfvBsAL5ef30wYfFaJnINjrt44wotojN9V5oXeFOwVRbGwnHi7qW+Se5xZd2soDx2HbEfeJGBXZZHIvgfOdhnYOewIpWJ6/OUckxeJZalNhXc3FlhxkWslR5DBDw3ehde2VJtIJp99Ua6HJHZ/vIdkNAbfwG/8ArDJugRWj9Hp3iX+J/MDyB1x5YiQorjrybzscyMpMZriiDflrPIqgFkBLevQHKKK8Ev7FSaeL7xYerFEDn99cJQgjpVsBqB4/OsNU3DryePY4t1JpQBfb5wPND3hUsYQAljXYdLzokZWIY9T1r9MibUToTvXgChXIHvhaTUoyV4TuCeScrGabqIrj6x2oY3yDtPAI7YcbblUbWJHW8GRmdrFrR6DOoAZO4J4+czb5A8HoxBIJG3tnWd1SlPXveLchDw3Fc+2dcFlpGsgfXKpsSgAVZ2J6nqcXtZCFAJB5s9sYIyI2ttrGq6ZzxFDKgcAXR3dcnLVoyFTRBpAr0VU8c4iRQJCiqBXB/LK5ApNg2VHlxabt54HSunX1znlDcKJhUI40Xat+l8fnipDvZVoKOnJxoVhH5gQfYWRigm6JTJRI4IP55nZkcUyJSNIN7dAB0x0vMKigvv7+ueMEbssnAZentgMjLKDdqfxWawpNI12URow8yvZI5zkKl3YyKA3fD38ABvN610xqWB1sdT750xirJtipFDkgcleTzWT+GpXY17Ad1+uVSzBXsL+nXFBgyN5QAfzGL8kY2GLYtI5BPvNCM8Vh0JYdpAVhXF3gNJ5GOygKF+uFEUkWlHHrk410M77FPpkkJAchgboDvjIpCGfcObpbPGdWw5TdVfzY6T+IpUC6wxgu4gcvGRSFmDbywIN7TRsZxJnO5Cg2AXddfase0BCqW7evXACqAzWaPFDjJcZJjJqhbCZIyzD+GRuDBsPwBRlYntxXX3xu3eQrEsAKFjpi0lDv4SjcU4IvpjqCvTOQS1I+5AefXg1nliQMzGvN+df4wk3CnCC+lZwbvMrEKfnphawUmqFU855Bvk2BnQFeQKGNgdSeuKlkSJJDutgNwUfiI+MJNTG+5YgXa/Na5BV6Uphq0h8slKBwpuyc9II9lsSKbiuPpi5CfQWDyO4xnhLu2mRSK6ehzGCjkUsEAC8Wa56ZPKwWYBG2lhwO2M8KVgSCqqDx5bOIl00sikPq5FvnegC2B+ZwtOgpKwYyZArLLG92KB/D7Vj4IkjdyojtuRtBG75xek0kS+JIVDF3s+5y8mNW2O20EeWx+mH4/jvUacvCSWZodGvhoUG87jfUnAjAZlXxQ3PmLf0rKNRSUnhA+xN8ZDrN06LGkUYV7HJKuORRBGL8mPQw0n1DibVx1CxEDOdrcgfyX9Sx/wD3cr08Wp8SVpluK7BBslfb0zOjeWCTwd58T7vz5t1nfzXp+IZq6SRxpmJjdhXl3Nf0vFq6seWLDsbafTDhVRBxZazzhPqASrFgGPBvrkkk43lCpYsL2c19Th6eUtExVCCDXsMHLxC8fSsDcGkYdPjOpFTBmF37YGnULp9rgNu569cZZJ2qxBBuuorKKsbEeHQWskObBqsGZJAgJ5JxiuJJCBYr9c7I9bVINnirvK0mhL0z54m2UZDV82arG34caxtuJ6cHnKBGzvbJ05N9snEiMwNmQnilPbI8a0e7FozEkUGprod/nB1CRy6ZnIG/caUY6aNWACjY3qDiNQjlAQha+FA7nFdodaxH3aNY/NGFugTZIb2OHDD4cOyFRHEWshF2gfA98beyMjZuP4QfXFMGiUERpuJ+vvQ+MVsewdTphNIo2hl2GyWIIv0/fbCidInd2VWSl2hnNgi6JwyP4atdeazeD4NxKCABu3CwbvArWoF5TFTahBI3la2Yfwx06dRfbAiDsouQ7lJFdCRXB+OKzs0akAspVr27ieM4RGrK1KzR2qswvbxRzejroZD4SQVsdQb2qhAIB5IP79MdonaYLJGrRoCepFkX3/TJpiPBkjgYWFIWNU55NGj2wfs5ng+znkluM7jSO21bJIFj0w3orjas2ZNbCkQKKH8M7vr7ZifbDJrk8VYo2BltfJuFqwB47mgf85TpnjlO7URNZSirDdyTzXtmf9o+F9nuqaVIvDXzAK1BefN9fbKS+SUog+OCUiSTR6iXXxyTKhUp/Ecf8eeAovjpl/ggzMFDAuoCqy7lCj09slSWfVPDOqvBGRZDsNxAPb5yzSygeIu5mI6MTzkG2XlZNqNE+uieSmp1oHxCASDfTPRfZs+l1ULozyWAFU9EvqPrf6ZdoZDISjI5CfhYnlr7nKPBaIiko2K79e39cysVzawWSYmBC7BRFgWaHr65FrJpkgYRit3PHOaE2n3OR0IYlgo6/GSavTmw0ahx05b985tFi0SfZ0E0S+LOgLym2cEUPphyqYybHHIurAPsLyuJUVViUqiJ5QQeTnJyFIKN1tfa83ZRS0kjjL7YS7SNIBZHQZRJBEse4MHdLQgdh1w00sRoyqysKO7oP+saPDkWgquQSSQOD/vGoDluEwZJI1oC+l7+RjjGohUXGBQIq+PU5yVoliZQUQ88vQ2k4Lu4iLDYyMoCWCDd/rdHNRicRNHIN7M34iNxsAdic8zMYxH5efMOeT/nG228+M3iE8Km2j8XiHDFv+LdaXkX6H998DGRxJEB23tRfNubgL0x4/8AlIWidCOTu6/T0xkMUciszCMR7drBeWHvhaGBB4zEbg7WAOnaqzCuQqCI6d3lcmVgLCr0v2vHGSXcquyFQCxKp6++URLGHAdwSCWF1x1yeSIQoXM38xFKeBx1rM+hLTYzS6oRyIhJJboCen+cfI5kLbWAN8XWS6bSO4iLra1uBXoDjIoZEeR5lUgm9q30OZdUK+NnBLLGFairVQUKKIwPGePxdiOHrsKvKF0ZVw67gOvXofXFtplk3MWcCuR65t9NyiKiSOUkorKQ1nfYPTGtM4g8NQ3nHQ9qybeunRUjDOpblk5/ZzqauG1WSHau3ndwQPjMmM0Esqx6eXy7VUA+clr47+mFptUmpkYRvFKOnF0L70fr840ShgBGxUBgRXO4eh9cHVaXS7gTAGZmtOOrAXZx7wW10yiV4lkqTYXJ5u7PHYYJl8LdHGilivG40G46+uJWKSHTArGRKK3bqIGdMHitvkKoqMWJUlW4Hc/2wi0d0skZXfZbcQC1C76H9+mQasxv9oSThnKigORx14A9MVqNXpPBeImSQhvwglqPHPtnVfxSwO1W2W0ajpz0J9f8ZNttUVjGnYjUwLqFLu7OyE7RfQduL6D1vKfs0DRxNHPLuL0EdyGA6UAfUf0ydI5TO4R2agQAF6fOJYSTovhoV2kkkryT0sehHOCOFGrVGy88m1gm7fZJQKGJH+/7YEkYlAnaULuXap2EkE+3bG6VWJZgryoIrLrwPj5yxXjaAI58FWFXRBHpzlONo52+PRjDTOdSzM7MpUKxeiCv5YzU6UaxvGD7dqEEV+Ienr+uCNTDBNPFJLFJIBaFgfN0r9MTHJFPNNIk0jeEfQgduPfEtooej02nj8KSaACkOxgTyas9Onz0wIPCnWaRUZtrAEKwsHreWymIRoFlQuCS1CyhYdKGSu76dELRBlb8bO1G/jnj5wtmWki/dJZo0nAdWJTjcp60G/TKUDJOojppqO0svHHreKaPR1JqDI6sZgEFeU8Wf64+NGZAqqGYirutoBxW2hxWpOqaFtyxqj+Quoqr7gfT3xIVo38JgZWbggVx75ZqNVamIoInRqpT1yIQNqJAzP4Kp5iKs18+uBKwp5ppQQxwyuxW2VaojgZP4jrLuXYKIYx1z2xv2dJptOplWZXMoK7zyQDz0OHPqI9KQTuaTddEgd+mHiJeiSV4Epfcz9FHH7rCn0jPN4oKeC3O++QR65TB4SwPOdKWZmNgtuI/fOUQypPW7b4d9AtA8ZlFCuddCtHETqZJzIvTgbjRHsM6+mSaXaVcoORZoA+2OjYzRsYYtgbyqdo6f2GKfXQxx3AjamRGo7BYJB96x1HCdtsCXTNFHbKSGXZvuzV8c/P9MmigEIXxZi/hvyrcWfX9c9Ox1sV61ZNEZD5UVt1L/TnPQCOOZYPNvEe62Bs+/OLJaOroXLEzaguyjaFKkh7B+R2xkUEKbTFGUkQAqyNxXoRhxfw2IDEIBtc8m/3/AJwYmkGq2RxgRlaMjWe/764BrEPAssqyO4Ei3a1yeeM9DLM2lMybl2GiSe/pzlEkraeV3UMW3Hctc1krq8MstK7O62Bs29enHc9+MFMZOxLfaCsrDw7kBBAdLBPviTpzqT46QRL4RJdGU3712xWnSZ421M24Rq1Hdxdd/fLl1KMCghcEjylRyb/qMd48G6BTTLFIup8UIp8xA7/4wdaXMAETrLEDYYGrv3x8c0ckSxx7mcCqP4jZ/LCESvBIzaLepNKgNVX9cCv0DZn6WlPheI0Rohii2D+Waaa7YscXiFpXO1ivAr+2TxQ+Hr6+7iNSo2sDdfPocobSqUO6MbQbB3USL74JPbM6fYeyUyJIQhANGu/p2xuocSBw6tajll8o+nfB3wwwX1ljoKWextOTyTPK3iTp/EF7VRuvoTmTaVCVbMySRp9WytH4noWPFDv++mWSztGpSkdSvO6Tp6/GFqITFqIzIqRM/ZCcgnkC6liL2uaYkenbCtK4x0UqNK8ZCgAbhdfsYUG6GA6gFNrtsUkVx03fGDFHHEItRO58y8wbacj3HYZRCPGlBkiVhYAUrYUH54wvBQtXMEk3yBG2IF3AEDIUclZDCbA5U2evplszGAuzqqhmJF9vpkJVR/DoOzea+nmvoaxUFBx6gsnieGGYdIwTd552RniBjVWB6WAb9DjY2Du+9DcY8rdb/wA4MURaNpEsgg+5Jxgpi/vbnd4iHw1ancL0OJTdJKH3G2JAKrR6dxgyMhlKRl912UV6v/GdiO2Zo0BVx/IGNH15w/wZIvgK6dELOzmxYI4OdjZI59wIHiA+Ymmr49MkLg6hQEHAtgTZUdO+O1epjkRXiQKT5a2jt349cm1oKC1WraFC8ci2eimj3zEfxULyRTjUbQTGzdU9R8ZdPLHo4mlMdyEEBfKLHvkYJacF1WFJaO0Hi/U+mWhiwNIY6jw0DiR95ssy8n0Ix2p1EsS+DJTQtVB1INk9ffOo7sgpXVxwdpsf7GT6nVuztJvVhH5TvHO6ugH9xmStmJJEHikb6JH4x0Hpkju4gk4sXSMy382cfOZpIoZGp9/moDoPn+2Zuogfx6JJFWFH05986vjX2ZlGl+6vvh3NICvLgcq3Tj64ciQvHsmmNrZCsPN7EkdckjaXSo1xOFYFSbHXOxzACNhC5ftvPWu9d+2VcXdoVND1hgl08geQiOMggon9cmj0kCkiZ2jjBO0Dkn1P9spfVyLGZDGHRuX3N5l+nfJX1SsFi3hOLBXy0bwx5mdCddpNGqltM5UDnZJ1P07c++Z088oZd0hJKjy8EZo6hZpEG5QWIO0Dkj99ck8zEGRBI4G0bQAQB651fG83SE19DdNrgI0d4NpHUpdN8gcg/wBcqh+1UkjVVIYqRzt83J9f7ZmiJCpiAtiSdhHb056YicJ4ijp2sHkVhfxxkxeUoo1J9Q5ldl3VyehAI9azmnlL3FKnmqywsfTEAxSIFLlGJ6GzQ7V8Z2KMCMIDfUl2FDaMXikqAm2yhWRHIA2snC81++5xpZTIsgWj1HF2fU5JI4UEFQQeLAqvevT/ADj9iRqplhdo1PHmv8/TEaHTDLEOhkSSCvwuvF5oaVYxpghcOJBW762ecljhaWRQgE24Ahule1+36Y9EkEtFwy9ttEe/1/vkpu1Q6RTHoYnj8QjcwtQGbpzk8unh0U9yfxAeVC8D8/bGQThUuFmIYE7eF2nsB6n/ADiUVHmJbw4xIvlW9xHt7HJq70IqUGbyUeSNo3WM6qO9keV74IIr/ONkCmWg4K7aWvNWekCEsFtNvQm+D+/XGsNAaVJYZj/DVwDZ3D8J+LH5HNKJNSZG3BGezQqgD047VksMjeGt0DZvjkfXNPTTMob+IrEjhe/xeSnJmSoTCwMTCcBGVgBQIJ54N/2xrrHJE0yobHl3AGz36HJ9SW1JCStt3Gth5P6Z6YOYSN2yrG7bwQK6+vpxiVYwgSuWDgK8itV8fqcpXxp3SYuVUkbG22pPuMytBpJl1U3Iji3FmLXbDvV59BDPFFohIhaA35b5696/fXH+RJOkBN0J08rLIFG1HPX+HX1I/sBjTK0u3TmME2G3BWW/p2+cm+8supl1DIN7U241zx1A7fnipNUZ02RQudR4m7lDwPizx1yfC2MpF0k0UTkRpEpk4beeFP8AfviEkn37mZSooEKo5HscmZI/urTvIXk3EUF8vXG6edvCTTs/gi94K8CvysnDxpGKNMq04dYxLyUYSVwfbChlE0tS14imlK9Pjnvz65o+Gs2nlVwZrG0sFWmPz1B4yGJE+7tHIiSP4hCI3DDj0AF/nkVK7GY9E00EE0cdGVo237k2kccdPS+2Q/Y0zrovszcX3eCvh7STbAkbW9BmmR4SqURI0oKz0b+Aetf5zO+xNx+wYZSxkXzqiCx5rIFnufjKx2D/APhB9mi8Hixf+FPEjP4kXm/WhwcUUOncxPHC5k48vUf4ygMNOVmhdikigCOhxQHB71eM+1h93mjGn8zMoEjqgPP9eMhtlLolhnTS6hV09EEk9Dwe55+maEU+7dEiKkhXzMxIJ9+3GMi0n3aNJE5RiQbXcCet/GT6jSzAmWMbZXNG7sD0q8yFbTDU6gxeFNEzd+tjb2JxUMEhV5GKsw6eL6ZdBOGMURZY5Txe0/r+uPZJNSSZCpaM8Aig3HWh1zNCqVCYNRBHp1lkVVS9y7eCSOhGdXWhZkI2p4gvdt5FG+hPH+ci1upDQskjMCDYQDawHIuqyN/G1bh5CoKoAokH6e5xd9G43puzzRqgYvHJbFt6igO9YjUzRy6UeJMvJ788flz9MR9napo9qzwKqVVuQSPgjJplB1DWZvDY/wDHj4B+cYVR0qfT6CBFnjnl1DA26QJz198bqtXpfucojRFutoYlR89OTkkB8N5IlZ077jyWPpXbGvB95hikdyw8T8VVz6e/xgbCluhoNPMwjqFIh5ir15vU8ZyWNNJqDJponIKbmAYFWv8ACL647wrgC6WlW7Vt4APPbqe2dchZGM7PIWFHZwFPJv34zLoDenYZjZlKskcSWyqatj69887MWdpG2OTwauwPbD0ojaJY4XFE9Og/3i2jiM9tI7yMSGfd09szeA9Bii3hWlUsS24Nt8w/1idSZ5XYCPaENAg836flljMF0ylpbu/p1GZc8a6jyxs8mwCiQRa+g5+OuSSY8XtlOn8YuEVGRao7mBLX6ZTOzho2DHYBb3wT/wDo9T/vBR0j0Uf3h1jHNqEskfT0/tnJH/heHGtrVKwXbX6cZtXYHrKotHDHDLJBFvkVgGoUCe/XJ5ZNTCW2gqCOWZwACfaxz8YcE066ZSzbZDakletcdMS0Gn1W+RmKMjGwOVbt0ylpiK09ODTyxgSv/ECjiMVQ5stXr6ZJGqCdpYoljI4G4knd/jKTC1yHSyDwygVlNk9caY4NLMkbIxZuQB0B9z65mPyKmlJ0iQSX4m22Qnj+2LkjjjVnTaynki7JIGTzaqSMq9qeT5l5qu3798TqJfGX/wAjIwPLAcnjvit2LGJX99Pgj8ArjagPC9+2Lb7Uj2xyAEF+isKI6/r7ds4z3pWE8cjJZBKmmr59MFo4wnjDcwc3+D8uLvDRqRe07TBBsUo1BnA5UX1+mRf+GZmAJ3kksTzury0PT/OVyvIyRXIRQO8Bf2eMVqQ4jDQpcScBdtMBXvhb+gRFTlmS0LJv8pRkuye4wd2olkkiDhhGeHNKKr8/+sUk6z6LZpwX2JSi7AP+a74hGXxRC24GSh5z7885ilUbOh50zPNu69SfT3+v6ZzUnw0CgkOOVe/1zvl00ADcsRQrnj9jFxTJJE0s1R2vO7abvmvW8yX0T9sII4QM0UniEUbPDXzioww8UtMFDGwvRQR2r99M6sySbSuwtVc2a9Ri/GV9TTwLIE43cncKBwjUwI9fPLrNqxDyHbuDEhQCRz+zlBEknmU7lLeZGSgOOv8AfnBfUQQ7vEMXK2CVoKMogMk5aONt0Z9RwwHx/nAjP7JGkh0h2swBcjeiR9Pk9s9PIyQlHVvEvcmzoBeN1LCOeBW8NqO1bPIHr/fJ1SZdW5BuMgk+mFr037EGWJYizrKUosSaBB6AV64vSzSKrSqu2IDq/VjxxeaB8NNM5lNAEkqeSD0/Z7ZgwSMzSDSGICF9zhmvcDwOn1wRWFE7RtTacS6WVQ96lwWjjT1FED8xi9X9raeWKOUP+NA6hfpwTnGlSORpyF8WOMIV3X1N/wB8Xq4UWSVfCj2SKswKnb4ZYsGr8unucdU1QiW2wNPP/B8PbuJA2v1of298v08cMjbygBbg2CQSele4zP0VrK8AddoNigQfp+mXSRzMtNKEUD8DCyT84khpIbLNFHNuUB42FcVfUX79ssknMsRYLQ6Xd2OmQaSNnRGjB8zbt3Uir4A9OcvaVoJETYEUAEKFvkXfTCRkhawyxRRxNBHGxJO2NuAevpjlUPEDtpgeCG4xXjqC3kouaarv4xkSOsDLDJtG6k4sjt9TgVWB3QvTuUnIZlklJI4HAGdcj+KzUy1yKu/jC8YpII5CUscnoff4xET7RIw5A8lEVwOmZsyXp2gY7VIyQRwRQ5643zJuVRbqKVQ18fXnBMyJs3fiIFF+KPrhqJ4hv3GwTtPU+uazMmZJJJVjICk0/B/Ou15Xvj0siLtILGyTzu+cUyt4yBrIPP4uQe9nBaFg5kE1hmJPm5X4HOa66D32E7T6uVygjW/KtmxXr/XDaI6YsDTMWsmjX64vSTLBNepUGMFju/FXTH6r7RSWRXQfi4WwB7jNlX6DbpdCJ5wkYCygGwKJ4+MfGxHQgluSb/TIxpxNOXroL/8AzMfT0yhYFjiYgtFVsS3UYFYWlVFbKGi2KNjE3d42KB2KGRUDAHoeuT6cs3Mkga/5e6/OWARr2Xd6joMtHWRlgOwq7WRyOp64jUmaSREEpdDVqasHBGoD+JewSEWADYr1OJnqGUSCSRrHI+fTC2qCk70r0qI6HsQbrd1/1j5gwo3tW+T3yHTmRJB5RRPJJ5vHO7qdzNuJBO0ZlPBXHRrOA+8DtVeuDvYEApV9PSsIPZXyFaP8y51olkkXn6gY7sGHmFoOOvU5RpYolDAcbjyDkm2WJSQS99N/c46N9rFipF9TjfHkroWXRTNDGQoJoAc33wVQxNQ6Vwbw2njkiXaN1+nFYvxGtj5WocAZ0SUbtE1dATKr7Nyj498Zu2SUzED2HNYqfUNEiPsDH/jXfGKrMvihDuK883zk/cG8OyqHWxuJHTnFxJbbtvI63nXkAAIBHHmwDqHQC13Amvrgk1emSdHZAtLflHc4yRY5aUWSvTms8hV1AIFX0wTEDe5yAD0BzeYY8stMC4LAcUMNluMlEo8cX1xLK4A3qKHN9MYjFQAQxuiaP9c1/ZjwVvDJZa38c9Lw9tCjzYoE4Qou2xQTx1PTFq1u3iUvr742IB1ACVIFEH0xt7SWJNHi8W3EYlWqrnjjDbc6qFK2fyxlgHohnLPbP04F4mR4tpJIPckdMZKHjc7QnAPDjgZO6LLNGUZFo0QvRvbOebZSKQe4PCAeVbuf0xsSKylEND9PnJQ8hnjgjiJYKSXrge15UPEA8NVW+v1xYvRnh5WcSUtEVR83WvbChZqLFStdj1OSTRvJKpCAC6NMeB+WNC7mcbx6nnMptMDSosZtyAOvX9cnWFY2O9TRPAvAQTGgpCjtYvKnV/CoMN5HF5ZPlrQlcRRtVI3ASX0F1k2k26bVSSy+XeLAymMsFNyAHrdcYO5mfzFQD1PreK8aYy6aDEsbkxqj9PxDoMUQ7AEtRPJFcn642htYXtI713xaaoeFsL7j7EfphbvsCX0SrpjGzSiiW7sec6sAE/LNu68Y2SQKLP8ANRC3yc5DYPiVYH4d9cf5yCirKW6AstKQtkA2RWMSNDKGr3Kds4dQS7IwAHr2bPPKOUKHcKoDrmw2hq7M20KSV5FdsRICAyyMT6YyB2PmYbE30PXPSKXI8vl7k9vTC9RljOxKyzNdKoABPb98Y3xfER0qz2HQEZOVZ3sKV7Ei+OudSGQO7uOvFDjjGi2ugOn2c8IyEll8wA8gOSSQDzFlkBP/ABFkfl3zQhaXYHZTZ4Cc1X+c7aiQUACTyxH6Vml8fJWZSaZhytp9LqtPatTxSKrvxzaGsulJ00B86l3AAXd0PxmZrdWifb8DNppQyrKzWlqeAOPfpjpZFkm8NVFEb6PVTkm+KLqNjxN5FCpIWIAYdQfnKlBZnUIqp/Nt7nB06ED/AMqBSbJ6E8cA45rA2qG98CXoje0JDwoVVipK2F4oD2yhSpUFbYdeoGJOmZmZ+pKV16jFuzgD+OFUGtvU+31xla1gavoq8cDayHdzS7el5wM7jsCObPN884IkQIEYhaoDjv61g+IVQNbNt/lUdcLlYvEJ5SwuN0AL0Tdgn09Mmkil2lqG5eBVCvYY6UCRSqqoUi6P4ecQUOwFh/NZF8fGJKWjxVDqkQUGuTZ/N0JxKQaiN2MwlKdVax9RQ6YUcgmn8lkA0b7f5xzNtclXZiOL58uFUwajjCLwixc+Q8D1yWSRRuJKgLRquv75ywI4rkkg2SechmCeLYUAkAuR2/3izGj2GLLq1M4C+UEjn5w5nLQAmM0QOvXJP4rNaSbVUXuPc52aWSBK271Ivj0xfBqtnJQbADAJfC+lYtZmbzmynIIscc+nrnZp1iRUCMCWAby2PTv2xUg2p5CN6CmCe1n8+DiFEhbQ2DJG1B2DN1BI5oEjt8+mLkmaLRv4iFlCWqqQVsduDz0v88LSatlbwkP8KRNg8UFlsmj8H/eO88khjpgpUhTt2giuo9v6cYWhunpH9mxqYNQ6yGPUzKC5b8LN0s/698v1JEMZYbC7dQeVHuBkxgY6aNqeOk2Dy9hXmPvjZXWKKILuIQ7CxI4H1rBJ2D0GeGNoiDHUbAiz1vqDzgaUKHfY4IqqaywHpeNDDXCRVXavPKGgfe8LTafw3ssDY6ixgGulpW6MilnLE3wqjp6Y3x28hYnxOl/8fpmYCxncojABgLrmvb65bDBHfitJVCgGF373174YtkpRXoyYuHMzOaJ4A4+ThTmIxxkg24sKo71WSM5aXwPF6LYa6A/2c8TNI6P4pkF3tAoH4rHujKIbI6TLShYgACX6fnjDAHpkkJVrPK8X642JmJto9ygDv6YTxkxM1P5jasvNHMlloVyEHTTFgrQiiKHQ1/3ifBbTuU20apjVXjUDRv4hcqQvHNV7ntjrmLbmYOCtbdvX3wroPJozl84klEC+GnDA099j+/bKJBE7RPbMYhxZFWf746LSiq5i8/8A+H1OdfTmF3of/HK9wdzGycK6sPJWZemeNDO6uz210V6nvnFgfU/aKq7KkTrTGud3Xm+3+M0E08AX7tFJtkkUnygsR68985HLAJKkgpksB+5A9MD70bl9Efg+Drj4mmLV+CQdQOu3/WVxadkQtHp9gK2K4+leuc1WpkkljENrHQo/3Jxc+rnLtDL5lY/y816g4roX8mdTUjSgmc/+XgX89soaWJVV+l8Cjd5kTzSNuVZC69SUHFX05ykTiXSpIsbHaOAOMUZwNRJURDsVdoF9e3cYKaxn42UFFAlD09RmazL4VbXdgpJWwAe2M0s7JvUIarc4AB4r+uFCcEUHWFmqQMqk7QxXhsnBpKWQurDhe+C0h3II5jJGQb29rPbPJv2tGgZSrcSHmz0zdjJUhjbVQx7SrlgARx+WMjCxyBmABcnzbbogYgvbOZavoyg9SM60pBYhAVNHry2N/QlBZNONwjDhqCDgc31rPBZNh3NIhJ5o/h5PGIKePIsm22QfhPNeud1UscMIk5fzAANJQH+/fMITuWaSQmSWSNUPexV9Py+uUaTXwSo7IoTUSKLUmyTXT5xHiCMu0boVZgDG7HkE1wfQ5G3g6h2fwTCWc+ZrYCug9uhwXQ/Gx8sf3iNodniS9W5o/F+owTppI/wRuCSRy9+5Pv6YemmkBjWaIxy0b5HmHreUxRtHGQZC6jkrQv4xW8C3Qnb92WLU7g6x+UrtIo/3OFpoIdPow6OsgfzLGh5PN+uN1Aj1WmKMwUdOu3n/ALrM+FU0gdqLMpAquVHp+eZdAWo14tNs04drHNt2N+uMEpji2zRKzm2BsgKPnJE1rz6aOWJ28Mg3SiqHU1jomCANqYiRJQToqkV3zoVUSafpla6KRqkaHcWU87WqhkUv3qCPaqqGK3fIIP1zXkuRljOmYJEdm9pACCOen+eMh+0Ps4SA3DJJKGsGwpo9TYPOT6LwfjDi1Wo+5SO8TFzSkKaPwcoAj132asu1dRIq3tK0x7Gvcc4nQwzQRmOIFRVIsoIoX1vuMm1Rk0qTxh7hKkAEgVx1A+RmwDW4U/ZS2oLqrIg3C+Nv583zlsHgqxaQ7qWwQeCCf65j7ZFC6o7Ui2BGVVIG4ULr6dc11jSeESKdiqgDMxsEn2OJJaCRLMRGGkBFSEAbm6/XJYpvAn2EOWYlg7G6v0OMlMaRiMIrRRvturtvjDabcC6od5/CuyhVHpX9cA6O6fQrrQZZaikHUbrsdvjHNp41ij2ktJQQ7QPkYejka1Ql0ahdggD8+2KZI91Ft7ISLHRT6nDbJu7FfeNR97jjSGlj4ZypoX6gDGlZPH2OwSHbuqz9K49zhRNJJLJ4cSPVWxPIX2x0jtKFEUEieGdxoXY79fnAZgCeLSQjwpnmY2FAJ4Hv/msGPUPP/DnIDueFPO3v+7xes0EQieSEttuzXBFm8DSM+lneMhndm83NUp6Y6YaVWdTVxzLIk4kNWqynnv29M9q9VLKIII08Rl6sauvnrjdNp/EnkUIIlqlIsAn++FMX06ufDikY0CjH8Qv88zYvoEoqEo8DJtPlo8vnmm+9xq8H8GSgKK8UOv75yuIVH5lpwt+b+Uegz07meAnwRujNiNwQT8VgwW9FRrEkDah2LhHIJHNeuE4XWaVV8Yqr8b783tnNNqdMwZTuU7uTuFC8N9TDpZiqRALVg339cwdsz0+zm8RgHtFPlMjcn3yyXSxTxqEZH2cMe6++SGQo7PJI28jny2DhaWV5rYMFRifPzYHx+eZaO77GRaNk1oQaggD34I/zhSaQR+eAlQHvqaPz6ZQkOnihMyKNQXNtY6fGBqZCkCqriJe6V0HtlnFJaRU3J4d0vhSQtIjAuwIdausRqPCDueFUigt0cRo5F02qeUEuvO4IOnvjNT9ojVxyhgHQUVs+YH0yGWUp2ZMesiSV5pAkyqwj2OpJU5pLOonCqgtxXIoMfbFR6eCRtySSI/APiIALPa65/TLCTpowdcsGp1B80cKMK6eo78Y0lfQ7aE6vT6h2jH3mOCq878/QepwPFg0gAgYNMp3GR46ReP5Ri9ZPJqnVpohCQOUQXtvpXocnKmaVVWUxOAT4pP4sCGUc0SQ7H7wk7lrJ8UkgveWaQnSRiTWzl2duCwpQa6EZSITNpgsihti2SkgG36Z1dMH06soBRgdobqMzlaM2iaWeXUNucM+0UC3DD3rOAxLTTrtLGhVDOSad9FwxbUbBe8gEn+5xmml8ZDupo2NuFX8PycDwNKgpfEEP8MBgSADzzx1woIGZxtjXc680a/PPLqoyWApGP4dhsFcpjLOSxuMhaBbNyEZFNpdNEQ7oQo5tjYvJ4jD4xDNtDA7QOwxv2hqIZ0li1ChtvRl4of1yc6oFSkfBjpnrkn4/TGSsfaGQxN44DLE0a8b0XrZxmqQSQvGheMstWq0R8X/bDWddLMu47S6cgCzu7d8LxJXlMki+aqZAfXuMVt2bTMaAyxLEo8xHBqyT732PpgxJJqJYlWQKI1JMTCzfp6j/ABmnBFGimbw5Hk5Vip6j998i/wDcNP8AfeqkgEsY1Hkr1P8A1lFdYa7Ezbm/gsrRM1jct1Z6cDJtbengEaurMo7IdpNUenQ40SCSF2k1IeNK81i+vvxXrgyR6XW6tZRKUTq3n4BHfk48c7D0QJD5haSRxkBtjdPkn/OPWKOMiQRHego2w6dOBntdqSs4QAEVW6Mcn2JxLy6mUKkcykj8KmMbm9Rf765TXoR8yaWI0FNHgp3on1zJ1ulEB8aJPK3CqSdyfn2yudJJZbdGjk6FDyP9DFs0x0HhKpDFtu4clfbKQuPoH0SyxxLD/Fcu3XaDZGQVtXcIS3HDt39qOaOoiCak3EJQvAdjdf5zP1KSyBnJCBgbS6vOr42Ske1JZIQzhjzzwaXsMNILjDqdzL1HW/Qmh0xQBmqU+bygcnj613x5YpCFYGNlobjyD9PSsd2lRl9iZJj4ski6dGCEElV5+bzs8CSQo+xFMpO0Hg1/bKY4pPFeWEmOL+bnoeKF++Ta/UQyyMhBN308t/U5ou2khWqWg7knkZ1DIRx5m5HPT5yzT6XYCrHbt9+3zdZAdIx3iVvKvqeg/wA56Dxl8zXt5F8/ljSVrGIrT00vA8FtyyEWDtLob2/1rOLEWi3xbWkY8FVNqPgX74MreMNm7YIzfJG4qa7HqemFJIYpfDSQBSu4+UAsOvIHH9sjo4W+RImKS7SOpVvN79cajvJcc5Cr+KqobfU1zk1QmdRsLFutEMRf58Z2ZWSUBY5uBRLcFK7+wwNWNZoxaSHaxICsy7qPp8ZHJphFXhOFN8qeSCPftmnp0fUxyPCY6BG4FjuI7cd8XJ98XUXNACNtrcY8t+vH9Mkm0w4SJZIbdS9uLod6GUiGUhd7gF+eetHij8849JpASwjpiAu8NzYPNA8gZ1kU7CUKnluQST26f5xHIZEz/Z38FXKu3NHZwp9D0ynSuAEpA5AugelH1v8ATpjBqIGUJIjqAAAxb0/TOQw6ZSttuBHrsFe2K5WqZj2o1PiSqgZkjBvcrbR+ednnShIxB8NVJ3OSav8ArgNAZ1kXxIohGeAW6+3qe2FBopHfaJQoYHcOx4rj3xbQ1eiZmHjRs0wVZOY2Q0AD6n0v5+mDJpmmnmYV4LAWN5qx25y77urRPFvD7VrzKGYgnrifuoaK4yW2VakWSOhr6YeaAkJOlAAkZg1r+EMDRvpWclijGnEcu1Rf/wCGl3+Q6Z2bTSMwihm2gClX+365yGaOB0RnoH+YryPfvhv1Bqh6QCfaSibAAELeUc+3r274TI0IjKjcyWGYUT1uunTOWjbpFkdySFUsSb/sf9ZTrhDDEZTKRyLZTxyK2/nk7d0MSwtIymTed5NshvaeevHX65drUOmjSVdQzj8TOpWx3zM+zEaY+G6BzJZiDHapruMsjkTeI5USM7gCFqmrt0wyVMDYLfaCsizeIyxxglrqzx298k+xJYofsrSOySq+0td3ZYnkD4zT+020zfZGskh1CsRp3oDp+Ei/b4wfs3QRwR6BoB4rNEhBI6Ch+X64+L4//pO9KIhNKV8QAOwtFNHcKHbH6HTDRTtZueUkAdkHf9/GO+/QPOsQJiVXpN3BY9+fQcZYsUEmokXcQ3UtXF10vOZv9AbwMRPpNOZY18SiTbOfoAMjm3tBI8qAyE2Szc/FZezxKzbTTR/zHpiAqtI0jKrbeWZh1IxARfpA4knqWKDzKtPydxxjmRVQiCQP1uqr2J6ZcurgS5hHTNzyP7Z2fwX0ke6ayCOFXbR7nDZr+yFtK2pYsXC7/wAKAm/m/pnBE7yiKWXbPGwO4Hgjvz/rjLZTp4YfFBBrgEhr+mQeKhnlEcqwl0sK6Xfx6YLsdaSa/XxppGB3K8bnYQKJ7flkUX2vOXjhAkAFEjeCD6fP0zRWL71Az+Gl9yRX6HJBB4sf4Y9qMCAoNr73lE0lqGNDTR6g6rcfDUsAyo12PYn/AAMq1Z1KIkjFYWZ/Kpo8d9vTk1kej080YtZH2Vf8VyWY9+PT2GP1OrjkgSQLJL5qsrXPNkf0xXVk3rOGXVHVBnkjdVTkIOh/5H2+uUqsqRrII+rUxc3d98zdNM4Zo1hLOx6sf/4eMpA1QbwwxVx5STZvj3xHYaGyLJ5izrz5meNjXt1zoM3hfxhRI6qt7rPHOSJpfHsajVSBlplTxFU/TLoYYANrGiw3eGVv8vTCYCWFiFNiVU7rfBqjf+emKUO2qBFOiKCGWgt9l45x5RopEMZl/iODtHAHHv8A0FZVBK2nQ+PbbzRIXrzx9cKFbo7G8pgDFTC0gCpQ+p64vTaPUCZYyNqsttJX5+/p0wtVu8VWjEgUiitBdt979e2dbf4niLLKUQUOfxH/ABm90TaG6jSgacjxNhiNbut32rrk7adhEyxuGVBySOK+epzupZ5ogFL7WG6i3J5FH985yLfpzsYsTJRO0AYH2FXQuGaHTRAiNnIF2rcE+mKk1ReYzBYl4AI9RfTKJIFlDMqAgWLPb2zPf7P+6sjRNuAbeVYWSfUDsMIyrsv2ziNfDhBv8TDg/QZ7U0uz+G77qBCkDZ6kn0wIk1E8gAEZhQ/hfyhiT6D0zShQVZUNt74qQrdEIjLA7FCuTW4/p/nOCARTbRyzHrRNj3yxXiEhSmAU77K9fnBk2TbnRkIDUN3I9aIOMooXlpyeMzaPYmxLbm2NuP7f6z3hyeAb2Mo7k3d9v0rOH7xBReON0KbgVFGhXHTO+KwAWKPYhv8Afrf6YfTKzPm36df4EXlWgVHfsf64qPazAG+G3hgQaPbnNGbT3KFhhLKW2lm6dOvv/vJfuEceoUQz+IAotR0XmwT7ZmWTQ7as04dpCC4JazwprPNponVlZAvAItuK9MJEV/KLkXjoK2i/6cdLySZtwCGUqjyMTQ6c9D/j2zAV+HHhaMrtnRitt56N2OhOKiDElxtPJ3AgLwPT1OemhkWTbuVFU2COvbtnFiC1OpkqNrI2c88kfp+uYdM8ImkQ7gQxP4XFfNn0wzJNCohRgSNoNEi/qccJPEVhpbBk8x4vaDzyM5OzTVv6kdVWyD0wWb+jIBBJLvdbmUDgpe088361jdP9qUgVodplYbOQCdx/r84iJUOojRzKPEO5nJqq/wCs0JVjljjMbhvNuJIo2P6HMnWk5V6I1LSNIY1hjX+VTXUV698kTW6aCQMIEBa0K7RZHrlkjySaVJpXRnAHkUAEfn/vMvWBWC+FEiuz+QstsT359MKbbDFZRWdZpNQ8kUqFQTR3DqPUDrkMpbTybXQTPtkCsDwWLJXxXOGzqgSFyvSmIev2eOmKELPOmqkkPhJKARXl5Vu3J61jx7C1SKoDDGY5EQkAbSa3H93nJ/4q7FDAStusnlunAv65RDqVjdpN20sCSAeCbHAB7Z2aREQwbRy24uQLBPXEw22FpLDM7ExShj4dnykev/eVPK6p43BDH6/TJdLvZIYyFZQzEFhRodzlHirLJ4zgtEBXiJzZ9QB2zVokuxUSAy+KjlhXG48McqkeQRoinpwWUdP95O8CzbjsUb+hoDg98JNOAoTYiKtjaTuJHsMAOylZV8ECYjd0I7n/AHidUUjDEK7qq3tWiDWDqKaN4nDWwA8r12wDDD4TGYu68gKbP0+MzaMl6JDxPulN0eQpPT4x5mKxqyLbHjzc9e3zme6RRzIXC7AlngevAyqCenj4/hgkrZ5wUUlEpDrI9ld0ii6BNHtj4Qu4SvZQ9Aw6ZO5Sbw5YZQh3EFW6E1dfOFI7CMHaWo9QKrD0SenJ42YvI9RqOm3kt6YmNd8qIQyKoFe/r689cqJUq5kl2FW7kKD7Ed8YwBhUpKE2HcxA6jGSsN0qPPKmogYQRkcVZPT++eVWk06RmW1+O/rkC6z+IYot8t91Sgv1yhleSJIGK7JTe4c13+MyYONFRPjMFegV/mrjPTKrQ/hLRngcC79ecZGqu+xW3EC/LgNGPFFKeD5WHXD0hL09FW3wBFsUABRX64vUgeMNjba5FIabOrtCbZVJcnge2aEEZjj8WUBFoH3wxi5YBy46RybnjUU1gXwOvtjY1eTUxMUcXzTd/SxkR17Qar8DiMtXrXv8dMfp9dLqJXImpADt9QfXBauzOLo09Y00bJ4TJV0Q3fJZtPJLMZN/h7WsbTtJ+cATJSjlmXq7Hqc9Fq2cg7SpWxZ9Mt/1Tek1BpHp2njj3iQS3Qojnn3zkEeqgIOoYMtnjmx7c5zUys9eGQe5Hce953TzS7WV27ckG7/PCpLTU6NABivmG1a6bcS5aASFFLHilrt7YC60bGC87B16bcRLJKzbmN2QRz0wS+RJYKouyyGQeHUjVIPN0/TDR2aEgqBz15o5HotTI6krtXuQy8jLGkEkXmKknqB2ONGdqwSjTBJQHkbyea6YhqcUQRzx6YEgZnJVRtujzzheEzghQQel31yUpuT6GSoKOJVOyMVzZs3WGiH8N2L61hhGWIBau+b652QqjAF7F885RJJAbPNMo4YhiB0+O+K+8K0h43Nt5XrWMLozcGz0IrItTP4I5YJZs7TXfNP5KNGNlKsxYF18PuQO+P8AA3MSjUSb4yVtXG4O2QCxfK1eOWQlaBJH/IYYTj0ZplBeuAL554wSzLddO9f2wfERwApo10OJlVZQD4rpta/Kav2ykpfQqQ2Ro5H80lWeOOBiZow0hsXS1Y5w/CIjLs5ZSbqsTyE2iTgm7A6ZOTvtDL9BRFE5Plvy9KHGPWRN21eo9O2SyLYI8xNE0O+M05KW3G6qruMSL8C1g9pE2sb5BN4KooQgmm6XVcYmGRqIdRuJ9bNYTyqpADAX/Ke2PyQteDliLUWIscKfbBmpJFarAPW+meSYND3BOFVsrCzQ/wCXXK5WC+6JeZS7qbb2F/2xLgSRsmwlhRXeT1wtRI0TqsYCndzx14ww5kI58ou6GResqsQCwbVcOEYM1+/TGJGLQLtUDjpiQXboQSpq++UwadI1IBa2a+eaOaKt4ZsXIHD2KNHuOBndOsQWtg4+uF5SzKzAG/Kc9s2io5KJ79RhrbFsmZF3ldq9eOc6kjvKPwCha8cmsIQHfbgeJ1BPrnY/ENqyhd3IY9cRRdj2gZ5nPAWjdrx19sJZFd9jABSLs+uEYS/FsNx3Wf6YtI3TUSOqux4FA9sDtMFpoaxCGw4rvY5vASZhE7A793TuPg5yRWYOGsIAKvPfyWiCwb54Axk3YKVDmmJhDBAW7MvfASTe7maiF9a/PGK8giBdQTR5GRyBXH8WM03HB4PvjTk0aKRD9p7B9qaPwo2ZWjm37WFMoCir69/0yiAFBJIqljRCnrx/rErpmP2wsatL4aad+HXjczgGh6UM1IYlgQLQ96IHT2ybi3RRySVGYsAmpCArScuRxfzlB0li2mljpSGKNW791jpELggUqelZ4t4ce5TS0D1xYxSDyYDqxRjGy3/xP831wJT93i3sm8iiQBZw5GDgkJ1/mvrgSRyeDw6BuwI4wP8ARl+wFlg0YMjDbvN8gnGF45Iaq1PPsRitk7bQqraiue4x0e5ZmVlBU80P1vNEzoHUx+MFGy0Tuew+meKtR4bwyeGcXftnprZFKgqDzQPTPb2EDozFieABxQNYGt0y6JliWNmRj4p3eS+3thiNXRvKLeiwaz09fbHuhRt2wk1Q8tkZ6KKYqwkToLAHfBVOg2C01MFtr6N3AOKli8bVqEZtqiwByD9cYmlJtjGV3ckdT+eekjkgoor2BfHQfHvh1rUZVeEto1re0AcAn6f1xe+QEQHrt8oqhx7ZQYb0wZRuZwW8Nqtz64mRJzFIWZUaFV3k9CetYGmOmiefUyHbtiDszUxocC+CBi9PoBD4zK4Xx+QgQmgOtm75zQOmmm08M6KA0nJIA5FYRkVdR90TarWB0PXr2wcWuw810jNjMY+0g7NsG7eN6mwKHBo9Mad5nfYytbeQdK9+n6ZonRMs3iSurCQbCw612/XFiXQaOdIVlvwxTCrOFxa7BzT6E7ovu7O0niqDuHPVfTA1QWVNqoWdD5kbmx1rLEWCXUukSISg/GtdDzjV0QRjOjlnat468gVYzL43LoVzSMx45kjG5R4YXnatGz7euOjg2cusjDpwvIHvlZ13hzFAi2fwnpZ+PT3xP3pyCohCsG5F3+oyfFIPKTXQvTx+NK/kKhOeOP0xqaR/EViWKiwFYnjFLLPDMrhaBFsVIAN+uWQ6mQq+9toA4PQnn+mNFL0EuQiXQpqJjKyV1BrhvkYyFFiI8Rj0odOTidXLJpySCGB/EzHjJI5JJFUbSSLKsD+uZtLwKTa7NaFo4pjYcjbZ3HpjItVEpYcJ7WARffMeWeSOKpJRufgBbI/PGaQyyfwglIL55P8ALwOffHjN9ID+L1l0upUaZ9oViBweu7Exa1vEMQIBroBe30+PjMtEml3bWvwzytfi9bxrwlQ5V2Rnolut4HJ2OvjSwqeaVWCsSrhqHN2K6UM7G2oeGRpGUoOEtiTXqff+mIXVGBQHUMbpRRBIPz0xsaqNJ4cNW3ZufpfvgA1QRYw6UyhlMtUDXHUcfOAS0indKKdfMlXuyOfTyRurO8gK/hYMQPy7+mUq7SOzROm0ruLVd+w97wBoDUsqRmaIHavHHc1V+mcqN9rMj7mNBLHfrjJnXwmj8N0dkvkA8+v6Z4MyhQkatdUNvQ9+cGBXRHK/hoTESN3HIqucKMB4yqs/4gAp7m8qeTxY+UGxZKZmFgG+2c26d3AiVES+QOrNY61i0NyJ3iildfDk8NS9AB+GPt+uNiVd8jKsjuiVywHFdc43iAL5K834RZA9/jJws6arcoVm53KzV+Xr2w9h7RXB9mxPGxVNlMTatzV9fY+95145PvIlR2dOfLW0X/X14xpeKQtVJ0BF1eekDJEBEtqppU7L7897xqtE7ZNq9aQhi2KY2Fl9tkfrxnPHRCkRkCqq7hKF8owZ5EUNvjLSEbtirZJ+O/reRtMNW7eJG0gdQWLjpXY9rzDpFP3stMDuVD0LE8N7DCk1Yj+7zBY33na4JArsTx+zk76SBiIxEjR/yg9APT2BwNSFAVNkhIYbFq7sVQ7V/rGXQGlZemkjnj3rE0Zj5WzV4ltIka+DG8Yk2k2DZHH765NO008Tzt4ibFFLEOSaFg5DI0vgBtsltXmJ3H04710xKsaMX9l3hFYGEMjMXrjaLX3v09sdpdUY0kclioBA3AlPm/XM15JkSaQuiFyAQpN36enTGNrGMSbI2iPR0NEAj3/L2wcRmrwtm/iGNKLF+XYNVe+SOlahdzsbsMlcj6ZGZJJZykjRug85YEgDjgDKIJYJqikdWQgHcwIPTjDxaCsKtM00gjTTS7WjWth5B/LpjXl1DSLBO5ck87RYQA9yMLZpoVQ+HbMCBsIAs9PrjYY9yhZQrIxB2r1BNdx745N/Y8a/xIdsIUoGKMaJIHqe+ZD/AGmksu1PMUFKC54/fOaOq1aQo6FtrDkAMTX1zMSOlEvhCRgpJLUbPXnt6ZnvZoRXZ37R3o8Me2rFsKPTt+WK10jrBIzeMRQ8yGiBdUL6/wC8sdZ9UIxK8saxA7bpttjtjHEuqC6eiASAPKKJsf2+cVdoNioItKHuNS9qN/n3bx3v/riso1E+1WSFUaBObJoj2wpdNMsA2sY+NpBNEfX/ABnVVE0y+Zpo5DTxr1vtz1zNMS12Zsmq8GIFIj4cvagaI757TK/jq6o8QvjaK59a9cu18RLQoFH/ANS1/p+++G+11EV+HMh5UrXviL6HtUdjGpfVB9S0t7doKcYxNHE67SxPidbIsfXC0KRyIWjUHxOxNkZdHoxDIsrSEOwraeh+nrlYwb1kZToj1OkMQREk3r0Kqea9cKE0o8IUgBu7N+1ZS8UWoRoiqKB0I4vCnaJYUKKCSADR/XHcV2hFLxmdOjIFSRFZWq/LW73/ALY10HiARxKFY8ki+fU56aMSQEHeWcUAxsrnAywyxoXO9eSGWyfrk4r8h7w8kviN90WMvsJ3nbwfjvWJkQtJ4jptUHpd3xx8ZTDOzO80enJDj8YokjINSb1Y5cqSBv6Ae1dMb5GvDQWlSspJkLKL44OL1Sx7FkdG3AkMAxrj2yeFo21JCsVYHgA2G9eMdMJ5J1Vlbap4I6H5yDf0O46RnTpDqDCEPhsAwbZdHAgTWpqwuoMcsSglSwrjLdc8yvHp14cjd6g+2Exhk00gDbdtrxx2/XDbCngpZIXdWDcFTSkCr9cQiakap5fBErEbUIA2L78YmSFgokQBFoCupYcUB3GXaYq6GJKLuQF5/DfXnKxpGkswYk7MPNG1Io8q0AT7ZJqEZ9VbS3wKKmwP9YawSROySPQUEDzflWWQpDBAG1MaBSau7OK3eCJKOmbpyscsigkAeVf+RJH+cZ931BXy7lWStxNUvGdWSASFZENI5rkHdfoevfL9QzJCAiBQOm82f94rVD8jG/jJG0URV3N+XpuzjaUwxxvqNKd5PQN6emNg8FddtnkZdxvyr0HXp3xjzPOyldSkkW0pu8M2a9c2j2QjUQanVkxRGO+Cqk3uyiPRloZVQharzF+RnX0ohRtQI1ZKFtv6YE5VQDI5HBHH6Xgf6Dd9C18XTAqZQjdn3csB/vHwzlpkklLhSh5bgg+vpk+m0+oZncJuG00xXge49MckXhP/ABHXcF43vzjNGwpnGmd08J2UKASLJB9a9sCShC/hr51FkoOSP7Z7wESFHaUFLJvqW/LJpTGZHXSzmQONz+INtfGKosUoiZVhCmJWJ42+vvfrgiZAFDsBGBVEHk4jTyruSMMNy2aHQZQEjhBWizOljjpmaaYSHV67TppnjbSeNIxpiTRA9byJQJDvgVoq5DKm4H2IPfNaRK03hKjWosFSAB8fORRaeWOUlmqBj0cnr6fPXKxaSHJxJN4eyJvEtvEcbArE9qPUZZ4rS+UhoZCK2epA4yeazLUVCAcbqsn91nbSTeGaRXC7iVTy+3xhbTMkU/e1hhMbRyUxAJD1fxmXr5Y42Ji1EgZe20FjfqcZq3aeBlMqxgk76olh+uSzjT7ijFGaOjtskV840I7YUjg0SEl9SxDt0VqIvvx2wo5ZHRSY0ChdsgA4U+tDIJJ9zJZ3bTuqr3C+mUmd96yRyhVbjbtrLuL9Blikbci04Y3ew9wDhlmLbwxTYKvYeCetdj9cVNJJpl8QsQqiqXgdf64+OQSQyNYCyruXm29x74zWWY6mpEcbo0XiFRasRbH1GSjUysGYKI2vzJGK4+Mh1JCSl3bzWKr+oxkerbhTKQRyx56+mVXx5Yl7R2TVxvIFJuzRNc+gGTzRRSuUVSrq9Fib+nGI8NptS1C+bs2SOc0V08f8QwuFrt1+QD3yrSh0Irl2A6bTSgLXJAJN13GIQOSHAYKAaLdifTGoERxcq2wNu5P5f7w0eSONg0qHuNwBJ/1gtoIelRBsVRTm2lJXgn/j7Ya6WDUNCsjiOMnnxL8vx7ZBq54mUu9LdDZxVV14547DGySmDRpHHIniyAM1NZT0BH61m4S7F5LoXqmErltzqXYkkLXp2w9NMGVYlh8RVO43Rs9Of074BaFXeMSEpRHT9BntOpXymNrQ3RPQe+P/AORfRsGtCuVn0iSuOY1ckBO3Uc1ml4Wn1mjSdo54pidrICdjDuQczNKFMjF0Mx5VVXkD59cpGqZomVkRWv4oemJP9BSHfd44JCuiYuAdt3x9PX9cY0Uk1Iyxo4HmO4Ch+/X1xCKHlC+ZfLwARYvKNUH0rxvYcEVRHLXXWuvXJN6N0C2lUgmRk2VdsenesdpopoZ0XTavYerlWr8/zvBKTyaciCO4/wD8Qtfl5rgd/bD0sq6FU8VtzAWOao+vPpiNug2XSarUvXjLppyvAJiFn3vjpkjx6doGZJ1SVGrYDyb6HPP9oHVuyCOPYeSeLb39Bio5tO8SSN5Wu/KldO9k/wBsRJ+h/hZCippYnlKvvtQV6k97w1miDrXKDkMw/LMh5WQBYydi/wDMc/p1yvSTE+QxMFQiiw6cevpmlD0I91j3bTdBgS3Q2fbKdotmXbtH4GHlRvf3+cDVIJgdrFugJK3/AN5O8r+JHCzGSrIVBxz2+BiJWEdO+7cJgDvNqao4/RsCjbIiH55o2b+vTINRHNCFSV6PVCBYo9fYf0wtDMgDRySyhBfAsAHrRvNxw38KlhiRizE7g20gA2vzk+oXT6lLR9qgmg3BHoPriywBBhU8MdxNkj0NeuF4cbgboJpCwJLvQDH06+mavQo5pfEiE7iM2tcsvBB/fbFvK86uzttUWpSrPPT/ALyyWCMpbP8Ay8izx7cf5wNLI0Tsyx8D+erAX2+PjNfobG/ZMt6GQTAFxQBUbSo7gY3WzeHEF02ntunSiD9R/wB5Pppo0md2VtrmwpahXezxjo5iRM6Ijh1tSAOt+vU4r7sFaQ/assrfZciSR7DI6RlGi2FhuFAk9b61mu8uoh1JZJSsQpUOzyqB2B4uumZf2mjar7L0iGXfI2rjVFQjjkkm+oPGaGnSVmbxIHcJ+FR0AF9T6fplJf4X/wBEfbKpZ1Zo28QPQoKygk9r+MB4NVEkO8u0jtZku0P0Ht/TK49PErxmQlGHm2lunF9QOmOaSQw7iCy2PC2sQB0HI/ZyAtgCSeRFQzbUBHm6EE+l/IzsgSpY41clmoBueMEnUTzJAIYzGo3X0LMeaPsOM7qoJdLERPCl/wAtcsAcFK6ASR6h2maKSpSoBVaodefnHweJI1iOMbDbIG6/l/TFqYgm9EdVHG4dfTn2yfUTfc51I1DNuYMqEikAFUP164KKdjZdZPC5KzgEmkXYOPn3xcCMs0gdmkUkbqBNn19uPTAd08zSEtY/E0nIvsRWF4oj2RGUssigERkEC+euB2N0KCeEsiwgq0bE8Hkjrj9FrvEYxklzJ5SldbHJ4HHvhanRtNAkmnTYqCj5+Sb9OmK0v2fJBL47BqXhQWBH5euNjWitmjHp1V4mKbm42AsSVPcg9T1x66ZdLCfHlCrRqloD64kGWHUNGFdWLgBgN1XyfgZzW6iKV5oWc/wjd8Vzx374j0TWxZVRJNMwZVCgh4/Orcdj1FfSziklkeWMlFq7tuSaHHvf/Wc0UqxwywIFfxF5Siea6fFd8GKNhMzJUYjX/wAbye3br+WZpPB6+xsLRR67yRoygEr5eQfW80kR5QswSFKApi9hvUZmRSwnURyRAOzmmcjp/XKdRMdOm5wAVagVsHcfQdxXOCmmCSse0n8VkWSwDTLt4v1DXjSizok0Y2hOLqqFemRJpVhdQsbmTdbGXpz3wp/tCKaVofFBRSFcBCu6+nP6YO+hWvoqM2jCkuVV2F0pNkDiq9Tkuk1AfxkC0h8tLz8/XGajTIpMkuygoCgmyB1PveLid11RZY0C0PPXDC/65nqAkqLtVIF0qSRbWZVrcRY/XoP1yaPUqIQZYz4gPmBs0fnGTaqJmRUnRpB1iBF/BxTvIzWQSdwotyKA6VzgdgisPT60Eshj8vUEpx/fGLr5fC8IQ7lIsAfi/wBZHqFtkDRFFBJDX8/n9c8pDSbEkJ4FggdP8YbH4qhxkWGJVgba7Hkmht7ngZoI83grbAGrfcb/AOhmTq40bUidyQyAACMkEV/bKodQ0mxaku9qsD1Fdbwr9AlHDQ0hjdZWbzMVu/xH/ecLaaYnTNJbbvKwWmQn3r9cTDJCqSzLKTJQDWKNDoLxZ+8POtKNpYEEnaTXBx1KuyXHsZJCaEPjuoR1DG+SLvPajVNGuxN8hV/K1USf3+uSalvDcMWQbbJ5/qcaJzq12gB6oKFbp7n64B66sq0xfwQoUtTFh0+uTagoiSUwVl5O7uf7nC0EipMQ68twrXXTtk+pVQ8qFRZ583T35/LBRkvyLeEQTxNvZhXA4+uTh5Q5WLTCSOiR5h1/vk6zMUeNSp8JSODwfr3xWnZ221qNhHmQkEhRXP641DqJW6Kr7phuJ6BQPKRycbEGlcmFjGsY83Io0PTJkncQO8lrXl3EVu97PP8AXFhpIQhfkrRElXuPN8jqOMFA0OJVjkb+RZG5ULXU8e2Nh2yyjso45H15989Bq31O2MLsZnbqvUDmvzyiwr7GKdiVAr6X/fBQWxEK7p2YlQo3Esedoo8c4cPgQqIjYBA2br4/P88bEI5XkY7ApU7V6benfM/VTRSympmpB08TaAe4r0zfoH+mFJNCJFjLhnQbwbpaB/7/AExLINZGJlQbQxYn8P0vvxjZRG8JkjAVjW0EEV856CSSDTSCRLpweT5R2vCqQ/8ADMmEkMyr4m6Mkb16gDrx2vLJJyNHqHClFcbozdUyHcCV+n1yfTJ48m1G8vc9uuUsZdOgUxuwDUpA3Lt9x1PBOPdMz1UHHHA7CaaIlh0ZibBqwevpj9NEiNunlJAPlZh07363kWgMmmj1UbiOopCsaspLkCtpN9PKQBlrbkBcM21xT8e3FfX9DiyVOgJ4LSZRqN03mRQAS3Vz7ewv9crr+MoBC8cqSOPTpX5cZIsq+LsGwOtFyyHzC+nx/jGjxPEEodhS8o3FG+gGAzKoRFWxjE5H4qP5WMNZImCV5ZB0vreTHUjyqSYwO6rtvCLlxUhDUfxEYBKLWAeDcKO40KAonsbxCqxilj5JvllQdf8AWNiR4mM0rAKeR5aGNWCQytIBSEXd84zjlk7oyo9IPEHiv4gB8nP9cqggMzszxhRfA6374wwrGVEZ/FdtXHwMJI2STYAFFWb6nFY7lZ2SfwrTbGIQB67v8Z7UN4cYIHldTfP4fgY5omQm5AFQVwAP19sRJvcbBKQwP4m6nnM79ETE6Zi7b50RIlIPJ3WeOMD7SKyMZHvbY437b9Ol+vplWr26TSuGZjuH41H75zK1usP3ZI42aORiWsDg36nNqwpHXZRHJpI49kUcq8C1sm/qf7ZbFJAYzYYDldpI75ifZsU80rPNKGFEbSBa+54H7rNPT/ZZ06lzIfD67CbI+MWjSoOGaKECOJKElBWA2/nWG0vgjwQ4kkZvLv8A5frnY9PIVMzkLG/A4o42KPSt5Wt2Q2Oa+T2xtEbQUOikMiSwzoY9tMo7/X0ynWqj6VNwYsF5CmsnOqgiQwQqysh28f3w11smojXbHRUDzEjnmsqpxSaJNSbszXRm21MKNeUcN8e2KfReJqFkjZVdkK34l8f3y3VJSFqJDG+Op+D2z2niLRRpJGUcd15+l+35ZL9F+VKyf79PBJHFJHFLfl4aifc+mVsZpljQrGlm6BuvQXitTDvTajISCBuYd/pj4p0V7rcAa33YwL9iv7SPMTDMm9SwAoFR0+cY3h+IFLrtHI4IxMkxDXHFvHROKIFd85JrBQO0fw+GUd/fGUkLxZSQWkCBVDN/Mew9cGSHld0lt7cYMkyvCSwok1StzirDWioynb5ueRgbQEhiRniUyBVViB7jKIJUkLrtO0frks7q+lWIlkB824Dr/vGgfxVIY8oAGqz7410zNX2Nd40BWGK2HqaAGCjz+GqGQK5b8Q7/AEwWDpOyuv8ADoFQR39zhwi2vaGJ79QDhtti1SGuVlUBju/+2edWc+VSAOjX1zyxlgWVxQ/LB8K4KDNuB49KylfYmBOqAMSCK6885NK0bggFJRdixYq8pj07M4Jfynki+uTzqu9mFWD0Fg/TFmssaPY3SqGUlgHscV0vLDGACw8pC/yn+2ZqahEchQAWsHnKxqAsAAHDDk5T43FR0WSdnmCk2RzfW88VIjBUcnoMXI42qhYHd1rD2opG2QkHgC+MKafRg2kYghTXl81HJooqbpS+uCW8JWsEWaNjph/eUVQvHNEgnpiOd9hp+BKSHJAJJ/TCDx7iaPA/l75PLKxLRkiwet9sXpwsLFSXpjxZuziqVMbjhZLuZaQAf/a6xMir4YElFkFkgmvpnJNSjjwlWrNHjJoIVIZRMJADxx0x2vQIt0+oj/AinaD164ySZGj6ta9RWTRSKqNSEi65PXGGWSCNpPCJAF0o3M3wMCk1hmlYR87IbtW/mPX4wxGImHhryAb56YGnmjlNbWVvxU4oj889MVjiDq3l58xNDKJ5YvtATOFno2O5FcZdGBJGH4F9bOZpoC3dLqzxng8iqaNqe+CMknozjaLdoAYgiuoo55ZQXAaMUFsHIxSjkCqoAds9FIdwLKu1elDApaDiVSM34rG4dbwVdgS1p+G6I64KajxJDQr4w4wC5amFDggdRm5NsFV2NSVnjXwlFHgkg8HFjUFWYCNCb/5V+edXcWtbAU1VVeAQruCCRsJ3Xhk3jAkgX1CAqHobu998YXjUKOaPN1zk8kcbsGkCvEBQ7m/nOokkY8RywQchQOvH5YqlIbiin7xB4JAQcGvQYqTVafYFPG49u3+skd2QonLMG/PvVfGdlngILxkq6nzJV3z2wP5ZNBUEcRoG+2HkjRdsaInHVWYlif0XNEuilhtLUOdvJzE0QXUajVSmir6hitdQVAX+xH55qK8KLw5SQ9bPP5Yym7M4j7iAJ20BdeXpiGVC1uzNt6d8nQl5/wCIpsN5W27dvXKjtEfmJLbT0AIvBfJGceIBeDxwu0ij+I9bz0sqbqKgn1PGLfwViMgB+g5GAdGs8NspPzwR74tvw1L0edRFIdoj5BF9sb4kVg7as1175IkKwxpbNXduLPTjPSsJGAAZu455+cCm1rNxRSJogrUCCLNBeuK8ZITvMJXcbtfoOmRlWbao3yHd/P1ByhAVsuq7hVAdMHOTDwSH/fDGVVUPmNeIec997beoKblI/ERQOJLI1sVIG4qxU9MBXhCbUYqFINCiOcPJ/ZuKKRqyyyeCoWiQCeh9czn1T2fHZzbcUL2tYPPb65REVhWlRfau+M2x0SkO0VzVflgbcl2FUn0SCSXT7QJZZw0nmY7P4YP61gKG1MhhcoxjIZlRvPfb4zn3Uh3YPPK6cqsktgGun79cHSyv4jT6rwI+bCKSN1Dv8E4vuj/tF6vIIBHLGsbDybS1kHpeQTx6lNUJYI2djV+bg9j09KzSGrRpUA2utnepFk9emdSDTQjeHl2y2FB/DGfTKOPJYycZcXqMuTUvpdEZSiMSNzEc36V8Yio6BY+I1glXskGupy7XaVYoY5YouVFDavW6s5nw6iGd3hVrlRyGSzuHej9cjK12Xi01aC0smn0/2kZKuMp5aNjaBfJ65qafUsiy6j+EjHy+EFJBX1/rmXM8x1G5ERVCEUoHGO2HxBIGWO12lEApvQ32P+cMfkcegyin2MSeN1Ks7CKNrS0JPsOcU8kfiFI1kjMdWQvUX63jhAzOQtKqNwfxWe49sNxGqBoYwWqzurtxxgpvsGInWVGmZAzq45O4X+eHpmnXxFSIEFSwe7vnjjDj1Ecw8UKSGA2kiji4pHEgcB167kY1363mWdgdsoDSmI+LIAa7DJSI4ZizL0I2qt18HPSSKk7Ez32oc4hSZNUwCKG31ZPAzBSGal0mG4bwQLbYt84WnlXTSKxZk/5AkMMT4bhfFjQMjIfMOa5zkekuNpQQGf8ACpY9Pn5xd7HpVQT6yGLVMqtuV6A2k8XlUM6oDG2991Cr6DrmX91+7SPuAZb4o+/6i/65ZC0W1Sh2sP5k6H/GMnQGlWDddGs2yIW92N13RHevbAhEcUUkfA3d91bffjnC2S+FJJuRtxpQeWPxkumD27eIgcHaK/S775m9MtQyRrVA02+MEDziyfWzlsfgxxGZo9ojsA7ufmu5yHToj/acgczMgYeWgRfrXbNKVFj3SFVAvatjr/3jdCSfglwHlXYCQw3HcasfGJnUwLusrIDSjdd+wP540USzxlm28bRQr2vuDgzyh4Q0sXANUtfv/vE42FGfGyI8YaQlHZlY3wpPJFenpjRCI5dwkJRTuUDkj4Hrj59JHLPFITIgjWxsHT5PwarJoJfKVUeIh4TqQT2GZj3fQ9XGoVjG+6IG2WtrdOtde2MkD7HOwtu9V9+n9MXotLJp9SJZNjEoVs3yB0yiMyxRUrbzfVr4v19MArf0J08xOplOxwU/ldeCP9eudmmdpgFoCgbIN1/XjPW9FyeWWg1UeffCs6ZKB3b+qgWAb7kdsasB6J1wilmRlein4QRwT68c5HNIsUu93lcgDcOtX1oVlyoZ1Z38NHJIW+b4/Q5GU2ybg1hUvlbs+vOYpEf9k+CkBlO1mdaBFlh6cdsWJSolEiEbVpRuB3H3vPLDMjlVsk8mv6ZLqQpdQ6O1MNylqJ5F2PTG7wFadfwp1h1KsqsYyUCNdH0I5HT6jAk0atA7M7eReB3F9/fHQw7ZNkDpumaqA6A9WHbti10qPDMYpJC26tu7cO10e3GHpBT0LSQRvpo2ikDqhHkCkjj19byGWOKJJIpLUG7Pc32B9M2dBGuk02yMuoHFOp4+vUjJH0jMUndhQJC3waIuvzxb9CnpgyRSyOYtICQUos0ffuc1oI5PDSJpF8bcONnP5+nv+mM08GnednJYBOTd/XvnZ5BGdsCsBVM/AautD0w8rGb+ivTRQr4m1jPY2uV8tEdj3v3yrUSq0TqjgH8uPmucykXXxr4MEypMxXq9ll7jntmnqtMy6oRyUFIB3B+K9z/116YfLRF96TwaVlb+JKG9PD4HwCf8YjU6Dc5RJXQBrCsu7r65pNB5AQyhb6g2oxTiKCZQts9BuW8o/XriWw8iJJH0oczzLTrs54F9+PbKodJCmySOQRfxbbdxuU9gR059cPU6SAagqxjVQwIYLzVWPb/rPQSLHL4CMZEYHeAehHNY0VT0WTtYaOp+yo5NK0cUgZbDKN2Z2u+z545Y6elHAbdQvvl0H2gkimmTygFRt5P0yqV2lURsVauzDr9RlpKDVrsjGUovTDMs0TnTSMio9UT5tvN3lUf2eXjKS7Y5ADvded3SvccYLaR0lIYAXfT/AD++mdBNNCrhXFncx5r5zmWPSzd9D21mm+zo108al5D0Xd1+TinmE0Hizvs83/joFQP85lsShUsCGvj0F9rH7Gek8jB47dQDafiv5xpSbwy+NdmmypLcoKNEQDt9/YdsJpFG1FSttNfHHtWS6PTMzI1SJxZQ9vb2wpIX8alJ85ok3gTYOKstaeIxMVLHi7rkH5xE7feyQu4KV5oVz2wI4n2mCRt0IHNnjKFWLTReGrhT15II2460XIi9O8cWkWCK28l9av8AftmfrNW0ZuUcqtda3c/0y7VTRmQAsKIIJQcnJ9XoUSF1SHfwApciweuLJWx4UuyB3Z9s0TSxeeiAQeP8/wCcuSSSaRTI5REF2Bd8c2cl8V4VXTB0Z0az5eD7X7ZXpnlOoUoxELCiq9B/rA4pFG7KtXIssKTIAjJzZ4zgjgb+IWDCQccV74vXIiTq0v8ALV0v98Q84kf8Tmzt8o5w0SSzBRRhMwTzA9FAvb784DNIg2Qx8Bt1AURx6ZpBXLEeH5qqj1PvkkcrafV77vgkqqmx6XiPR0w/KdP4l7nA8y986Y454HjkSjQ20Nv6YLuoaORnIsGwy3eF47OolCta0b6isKwDQuOtJJFGjxhuW86G/wA8dqSZUjliKuu1jfHPtkOo3SptVDKWJO7m6+MZpoEEO5ZfEVRtO57/AKf1wt+mr0gmGs8cvp1ZlXjYRSsPbFx6PUtKJdv3cXtQC/MD65rTkQgiOdDde1/XM93DAlQ7AWCwc1x2rNywom2hj6ZNO0cU0tNItedqFe36Z2TVJDCFCCydvXivU31ORmLY8UjSK5o3RJNfXNlU0pg80gF/h3ViSdGeaYjSSkLE8grnagsChi0lUyKaZVbr1INfOUR6UJqZjL/EUdaf8OeGm8SZEEblT/xHX0yloa0Nd/DiIICkfh4IvFAtGBqSFa1oMx5B9LyqT7M3qSyNEzsAu7p+WRyaWamgmn3BONpANflgijKSBDyw/wAeRTuJuq4vreFFKJt0kbKZDyL4P764yeUxxiEHxI9tHmjX/wBciMMelUmAyIr8mj+pw4bso1OplZKCAmyaC1kq6maOKTcXMhAsuSOf9YOpL+GF/loEtdE33vGx6ZToxNJJGwm5DEcdOeb/ALYySS0YTFr9yMqBWsEk309wcCEmSN45Zl/EGsEC/b5zsWhaOcxzxsjONyC68QdunGTx6W9UIJ1KKvJpufbm8pxjtBYTO3gsA6qokoX5S3x3yQ6U/eWmoxo/LCyCK7847XErII4gzqrWjDiz8euRvq2kRmv8J/m5JN5aEXVoWTTBOqLMumVF2gE2D1HrgBm8GbcoL2Baycj2rD05iHiLqCvhxi73AGvYd8lmh3ybkH4QNwPU9OcukroTyxkzu6JIyBwG5Bb8RyvT6iJPOm3aRe0Xwa4zPDSIvhvQUmwf8HLGgigRRJGZGPm3HkEVzxmklVMysk1bjUSxshWzw5HNHtnoiXgksGz5L7/PxnZNQWQIibdh3CxXPznFkVtMZLpzxRNjj0x6qNCvuxTr4Nh3be9UYz0+cvhKxo5eQlE53E1Z+MzoU3EyRFlF8s2Nj2tqLn3SDd5WY8374Zq8Fix7xyJFu2CEWChQ2T8DJ4E+8yKpmZdw87M1f7z32jLJGihXDFSRQ+emZ7u8iGWTarJQCEkXjwg2rFnJJlskOmkmlWF0KKabYLv/APSydZXNIWJRD5QTf5j05xQdQlojHdyQG6H2wXj2fxI3/iAVRGVUfGSb9NIr4bBQavg7lri+M994Cb1iYtdEM3b3/wBZUdPOVtIlRYyLJJ5/Xk/5x0Wlvduj3MAAxHJF5zOa9KkhSRL5V9xrjj88qiUqbRBS/jJs3z2vFtAIZCEBr+Z2Nj+2PgZ96+IiyIOQoeiCPWu3+MRsahZUxtUnlRjY46X3wmV5vLdpEByFHX1Iw2CbgJwSdvlC8UP9+ueQbVdIYwK6OKPPvX1xbGKDL4GnjkXxCpNAKLr6fTj0yWWBdXfh7ywJKllG0fn/ALyuN22MFSMzOb2AVvJ61zgLpXbc80dMOeW232+o+fTFWaBmb4P3KQeKyyKRVL0/frjEaOcjzOgTnyn+xzQlgiNB6cC6J4+n65DNsWMxitnQhRzjqfL+hSBXbJujokX5Dx/TtmgjFERGi3bht4Ngjj9f84uCCN4wEjUyAeZFJWly5dEWQKD5TwFKknp65KckMsCSeCMAEnkUK5oDt7Z5fD37xGXocMLa/wB/GSvEzAotNQ5UCya46f3y/SyNBFFuQsQS22rJA9Ml0Ei1EbEJLL4hQ87Sx3Me30xUQjSSRpkNiiKsAk+3rWaGpRQWIUxxvygv+v774uCEOX3EKhO5QE3fqe+HlgUS6mElg10ZAK2P+E31sYcZ1KaZRqEZQWtQfzvK1jSFw+oDrCtEJurdgy+EZx4ETmJ+FDnoPQ3m5ZRvRUjOzVKi89DV36HngH4x66pdMSssaPuNkk88VQ9BheDDLTLJ4SxryqjkH0HvkDxzRsSoKcWWX+Y+pPbAqYRrSB4S6xgqpIehuKg9+uK1Tww6eIOoaKXlWArkdL59sODzadhMebsnaKP064lhJEw2t4t9gOaJ7g8YyWgKdTIY9PoBtXadbGTsHPckkd+PTNTRylz4m5pGNhaa67ccfpnzv27r200GlOwiQ6hHjUAL+EnsPn9cq0/2i/38KynchJ2qpFKPX9LxpQb+NP8ApL/00bWpeLarq48dTuG9jY9z2+mVNEyaQySoxkLhgO8h7cZlR6mHW6ltKhDuJKbpZF9cuZ97GEBAvKRM3BAHXr0yXH7BLvCeHWayOFHUl1RiCHJsG7o++WSap3RkYGIML2XzR9z8ZkmTU+MYmlLCLlSy0T27ZpfZ8GomiCzylCoNv+Ik9vXnFlS0egJi8yKyRqpA48MlbzM1Woaxflc8bV5J73XXNPWzpHqo9Os5k2iiXAUX6nI2iKNcWoLU/AiFUf3+zipq7Y6Jvs2SKPdUXmc/xF3WRXf9gZZFMkk7K7K5Y7gA3I9Aa7f5yf7rs1UcjK6ueXfoAev5/wCMNy0kbP4Z8NSKZVKgfJx27ZjX0F6h5o32naehO4UeD+nH1xTasaWTwmZGaMfhC0AO3qAfb0yKORxp0cKCoJV1CcfIYEX64seMkDEUxQmmY2TZ45/oMTiLRtf+8CKOCXwd5IFbAQoHcMa9eldc5PqYZ9SzakKr1uIqu3FYr7HMqRSaeWBo3YhgWFE4mUgGOSNfFINSlTe08dL56+2K/oEUrB06o2q3yudgFLZII+BlOp1L/eTxuYiiehOTgRtqDG6+G44N9K+O2Dq3aNl08G+V924mx+R9vnAlbHrTQlg02q0I2OIp0AZmFDd62O+Jk1PjaRZJQhC/g3ABrA5NdMzXZ9ZMIQHVXa3HY/TvmtLDFB9k7Y4VZmN1KeRml5ZqoPT6qIiMeC+1xZAG7984pdNLyCT4TvuBCj93Xzhy6iGHTblAQcDhv1rFnWNMhGwAgcUO/wDY4v8AAUy6J9PJox93I3R8Fe6j2JziAuyRiMKSKa3q/g/lkWiKrq9qeJGsv4kqrPfm+maWiZILjJZ2DbSKrefnm8DJvBrRw6iFHOnJkI2kr0HPrV9sQmmCs6G3CHkMbr5x9yanTuyHw9rFipJI/LM4NPJo3aHY2ojbzX1b6ehzdoWNlX3dPBLSOGvhU7DEaGLZI42IpI/Duu8597TmOV4kcJTcXXHT5ySB5dPrXZ5k8GrVaFk4FFlEnRZqYgssgKK56eU1Q7YxEARUbSlaBuS6Ff5zrHfTwBtytbcE8+/77YUi6ltKjMQwD9O5/PCgXlCo9RH4wW0ZU/nQGh6fplqyeJKZEYEEG/Lde2QK6KBtZCymvKpYV/bHHU+FOfCeRVH8qr+I+uHQNC9ZKkjMjRlodvnK0O/YHO6N4w/hRKsfloHbzyenp0wpNamoTf4bLtNknqRXp1x/iQiCwCoItRXINfvrhA+uhbwRwxilYlW8r8C+f1HOR63VJCrITE5ugFbrzXIrtz65YhbTRLArG5G43N17n4zGjZX17SyMZaYqo/F6dh742Bhul0YhjiZCm12PN8A/TFanVkSrBH4YG2mCn0rk5XGAklSb2U8EbdzEDn9clECtLIiF1RiQxKnjm/pwMCf2Plj9MFnoNaq3CuL6fPxnp45WVUYstnapY81f9MpjTbD5dQwUcWwq/bpf1ONj+zlVzqlMnKi1vpV/1OERySZLpmeCl8M2BtoLyb9MGUIxDzF4wFqyBVXZ6cnDDSiUBJWaj5gWq+O152KOaQM7p+Ihrc8/I/LFeh606rsJJEQvtZfwiqJ/reTnQxRtL/EHmos1cr7ZUFlk1ZedlWIClC/zWMnSQ/eS7xkm7Ao9MPhkwdTpnQMSylgLJLdOBwx9Mn1M5XSiKKMeIzkDbzt47fXNFADp5AdpeRSDuHUXz/T9MRqYE+6xiKPc20mlHPXisyoKl9k/2bUcZEqUqKF39ve/XLFi2EO1yJYcF+KPqPSs7DFGkwjEUkqq3mo0F6ce+UamAEgxdBTBeeet2cN2CT0y4xqdP9oui75U1Sbg24WSpo9PYr+WWRSy6Ri4Rk5vYWDCj64h5J5tTp9Usa0moMZIbkoylf67fjHa1JCkP8Iq0bXurbQ+evOPLxgTvGGuoi1OofdUElXVUoPrfY56HStE7q8LC6NqwPvyf3eIaSV4PJGNz+YvvIB9Bmz9noW00bTsWtKYMTYPf5ydGk6RmzJqAy7iVQA7dvDfkMbTRwWo84YlRdkg5bqdPH4bTK/hkKQdp6/7yIufDESsgUijYP8AXM8Fuxun1J1AUKCV/CQ/bKZtQVUKk21V9eLPpkeiVoAUcFm/kZeoHr7Y37W+y0+1NF4ZXcWFB2sge9Y8W3gkklIqadJNOHXawYH8HPv+eDoplKlnALmhd39fbti9P9kwROk6iRJNu0/xS6fP5ZQNN4SyBAOeSwqz7YJJrRbjVHFLEHy71/8AyUcTtkiVu6mzYFGuv55T93WVFkjHAN831+MnlaRFNx/iNcHgHB0rAn4RtrdREzLvJsg8tfA65w6DSa9vEtYpLBI20DXPzeM1mk+8JG5UghhdsVPYduuClxiSPwwjt5iwu69L9MmzoTzDxgeBmilXYRyNoxs/jywbYivYEDrXtl+mlLopmCKByAoB4+v7GJ1apLGPDcIA/Y9frmr0nyt0yJJfCgEcszwkLwTIDWNSQoAwTygAbwbvJvDiRmfYI+aYjixnZJg0TBWsqN21eCB9eMKodxK5NKmqfcVHnNW7ck+3pnUj1EEvhhNqgfi29u+Y2r1cWmhMau00rHybWsR8d6xsMmrQxeVjdFyrmh++M3tsz+N0Xy/ephsjR32mxtFceg564BbWREM0ezcaokEt7+2WJrRpEDTz25shGySXUnV/xiQ10AAeo78YZVX7EjfqEabVB1lh3AtRZj+LrnYdM1hoGB2Md3FBvcV64LxeIU8IIq7urgnjmxjRDEm2V2BYv/KOD+vXFooNSRJYKJ3KbCsDf0v29MlMlowijAePymzZPsB1vKI5P5gEWOrHlr64xQrRSHYCfX1xUtFujsIO9Y0AsgFixoj2wVR01RMj2rGzx9OuVac713RqK/Cdy3XXm++EYzRIoKCbA5yrWWT5aL1MStHtHmjIA5vnnC00TxBWLLQ8tA3k6au5d7BlB4C8EDnnKvHTcfOWUHgKKvNauzNNKjiyF2XcoaSrs9DWejl3SmFCFQWS13f0xLzx+GRLJ+I8Cugzqy+TehABqgB75rBRbHQ8rkMO3GcMga1DChX+8Hnw7kHBPHsc68gXarCyP/rlF0ToMALtCUAeuI8ORWZWPPZgOnfGRld5RSQ1WOMBi8UrAITu7nm8LoKw4mkaNgsp3FzYNWQPS8ewUsqgLwKK98ETDlXBDN6mxWA5AfYot64K1zmaUVgLbenEjblwnI4A6Y1UHkBAHwtAYaK1HeCAB3HfFFHHC3sPbdm6RrOyKZLsHnpR4OA0AckKnmFdeox1FPNZr0u8mEu7XMEDBQPpiur0KsWUMs+yFysiDzA8/njYFVCy72kfr8Y9QqFXjULuJLD6d8EaiISOAnm20W2mvzx6ivTW2NZSKYKoX3GJLRKKjjMZ63jUZWUnilND1yeeNAK9PfnGbzBV3TOIgdSGCld3lF8YuPUjzwlWJQ1uuhfpg+IkEDFx/Nwo75xZwspYLIVPS06k5FMrQ+DeVZpSm5jxXpgzI0reHR2iiQDQweUlbaindwT6Y3xg0mwKee/rj34DU7FKh8fc0m5T0JHr2wH2wyErGa/m9MczMKc9B1FVk7aiQ6oo62u2/SsDCmUI5lsgeUc84cbJMLHPNHjFokiqBEjD1A6Y9R4abSOSLoDgjHiJJnFTYeCbNjDjjci4yxfbzfbDkkCKNi2SfgYccj2AVp+S3PXHpeiNs54bAbA5Brk+uKIEQZncJzdk0B9cYJQZD5TQ67ji5IY3YAUouzfxiyp9AX7OrENzPuQK46bsFpliT+I92aAqzXpiVXdJ/DsbevFWc4EZlfbGPJxfr64qeYh0vs48cMW0Agebi+CfjExLKupMu0Ki8bTRBHW8YsQEwXYG8O2puefrndVKiaOQiILSMdw5AoemTxsdOhP2XDX2XpJRHbSRiQk993mP1snLEZnXzBSx6txY9OMl+zrT7M0tkqywIldKO0fllah5IxcXDdbbr0yjq8BYGllcL4ZBMiEBiOAfe/zzySl38Rl2g7lC7hXXr8+2UrpwjfjPmazXxkz6YH8JqQ811I98LTo3KLYIcl2kiUkDy88dO9YRcoNzeVf5hZvnAj07mXzLx1v9MaxUG9w4PbjnEV9szqzm6OXcjGNa6C+nGdCxou9ImZuNtNQIwNPFtmaRTu3cWw5xwXzuGPJHB9MKTYHSETxgu0oZhY4UN0ODI7M34gHUcA50AykqoAYmvY54acQrtKchRXuBitPtDWcjlB2rIwUgkfPrii0YlfYe1ci/1zsmmHiF+S98UvBxg6AxpuIFcrzWJo2EyowvbINvZevPPplKozToxYMxH/IjpgJGu1msqwu+1fAzq/w3XyBgy80eT6YI9mbPajTFkk3TFdwvhQLzJfVeHMkqyNMhJHkpq7fPX65qaooxK9GKjk3X1yUJHpJAiIisSxUrQ5N9s0uxovNJ44nWSTURbBI6gOx4tux/zl0uuRkUlpJdtOw6GwPbr8ZOYCihmG5rABAomj6DH6iNkbxI4wXYhrHFAZk3RnTenl1EM8bJK0sat/Lv/DY9umZrwQzxv/EbzkFmS/ox9/65akGui1KsJNulS2lY1d3f5dvbPJEjnfAQwR6fnpXQfOO1gYtLoP7jtj8r2NlC6BrBaMDVCmVVU2RuHPzjxGkTuGTZXmFWQPjIdRGZ59wK0V4oYjikBNs0dhYbkeyTu21V/sYCiN2raQSLsdji5A3KCayU/D6Eeme0siyOwNFwKB9fb5zXpqdHiiyFgigCwSRY/wC85JCARHfmur3cmsoSOyrBunSz0+MZqAvlbZuJ7r2w8fQOVMlMD7NpO6mr/JxGoiDaldjgSAgkg8kdOcvQIysp8xJ64iSCBmuSNt68h++Bo0ZaCYXjRY0YslUeeee+LQs853AIIxtDP3GHEoZjGHf8XmYVRxszhiQGIZSBuPt3rAhrFfimCyRKd/Qr3GI04KaiSP8AAqH1r6/v0y5gfAWRG3UfwgcUcQ02/T+YDcTQJXlu3OGjJnTchLoyih2SzfqDgJE7XKpfzPe4jph6QNEp3FQoFdD/AHzsk8NkJMDXLWKA/wB4V0bekTRIV1Dyszhl8qseLvtXp842pVhJA8xezfSs7p9Q8hZ5lCrXG0/hONlmUngpuI49vf3wYbbFRTEq6+GAn8pHFfPfOyLDqlUHnZyKsc1nQAQApU0KLX1xUaOk0kg5Mm02RfGazMZK8cjfd7oDyrRqv94qLRvA6gR+LKOh3ccd88IpdssjMCFe22JzQy/TlZIw/CsVJA9MCXJgb4rCZmtNTIAVJ5ISwRxzWBHG0afwwwjoEtf4vfLkYtDzS8gX1v2/ZwZHVomR6Xbx5eDjtCqTJTco32SindtJN16/7z33ZJZNsdEKLBB6mu+did9Om1dvKUCMUPETc5mdvEAAJogV36YE0U079yJXpsY/idQTd9evXIn066d3sqUUHda7mr1Fc38ZQdTqQ+1g9k8Ld0PUdqz1vJqSS7LI9ECvwj/OZsKtdnohIIS07naQQNx2kLxXNZn6rSmB/FRXlctZO7ZfPb2B+M3fESSBoALk6FlPQ30yfw0YNHEfNVhG43+14aYFKjOhjkWavKsg6Nw1H35wZIJUn8KI7WIDbV42i+SKuz7ZSYZdNI4K7o3PKFhwT2+nTLo4IQ+4oELd6547/wBc2+hcq0g17SwAtFqZI3CFbQjzGu+IgvUwKzIgkA63W716/wBcq1bqZdwRE/5kiyf84lLjgEyKou+TyK9QMTehl0SskwvTxQBd3JdB+GvnKodPKZGPUNV+bg/T1z0DPsYkB7W2skgjKqiZFkjj3sQCa6H29sakZuivTaKAtb6g74uFoAEfn1Azupl07uV8eO06sy0L9ffJZNbpvD8BV27DRAWz9MW/gAsJI246Hih3+P8AvGcsoiotu2EWA3qkwDcMik1QP76ZK05ZSSys3aQR2DzXHH9LwHZA4ZI5FYkbSRxfOMdyiLCV3n2NE8+nrkytUNWJJ1EYdww/8gvnr14xulgdJiuxlLMfwqL6HM6ON11DFtPsBHlZJKPbjNOGZoImWaNlcL1DdNx7kfHXHihJWVQwps8Xwyvbb6fs4ubTtM0jTuCq+UFhVZNDLqDqGEoqEglHRt3fvhyzGbU+CwMqMSu5TW0AdxwbvG8J07ER70j8R5GmboLXuD3xM8ilQyknebo/iDYvUzGAeFp5HLOCreICaA9f7YEOm1EkSF08REsLuAU37c3k39l0vShNPO8xYIFjPLlxRDevxWHJvWjAEkcg0yk/nx/rFfc9RrNsTOkxFMu4ml7VmqumX7M0KwIQzkW1Dg3+uHjasVyol08yO3honauTVfOOcmOwrr1s96xIRpA0jIjEWaUUfyzmmjk8ys1epYUQTgAHJIjhEJ3A88898h1zwxhPDTcp5IHA+uOKxxlFQOGBqienzjA3mEZQ0P5dw5Ga2MqFhU8CMCQxyJ+DjofQ4X36OfSlJk8wG1y68H1z0uoQygx+Vl9eoPrX55mzanTDVLLvlY9DS0LzMyVh6WHwWmYzeRfMu5aq+3OV6Lw5tgCrGwIXdbUTkCamMiaUQE82pYHrzlv2fXixSCTesnJUD8PY4b+wyWFmv0UjOixknym1Qir9T64qHTzCEzEPYNBSvA9xhyFomeo2dmJIPcDtnNQXWBthayASob8N9aw3ZNN1QDat4HRUjZx0Lkfp0984F8KUq6EEki3NAe2djCBzYbbxutubyhV0+pi8JysoU7hzzeLQboztS8XFKBtsoOtEemMeWNfs47G3WR5VFk+1ZWIInRvCT8PNgVeJWOKKRNv8Vm5PHzmpjckehXdIQG2mqo8FeMTBpY9H4gdhRO4L75RNuea4pBYamYHm66Z7SamfUyFdj+UFdwFXmo14Qto4njpZJKLbiODWZ0Mb6bUFSGlLEg+g96za1StJCqrvCxDaDdEUcRqiEQNExJrzHaDfHI+axf0MpOjPikXUR2E2FbFjj3r5zqw+JarPZQglCtWPX3wvFi02jAOm8SM8syqTR+BnJ/tGLUaf+GgjLkgMLvjkd7w8X4OmeWCDT6rcC4sFgl83+WbWii1OuhmMUPhKiUl11z53RzhtQpkZ/KedhuvaqzWh+2Z4xMAGRFPK7hZHphqnos02sKoGnlaVCKEagNso7fpmRPpNIzvNHqZRRu+ev77ZaPtdFMrQw1uG1D028dz3yLVxk6Z5iwk79yb+MRNpgiia127yviUoVWLUT+/XFNc7I5IVVY2FHX+2MWLSNBHtRV3Kep7ntk06SRJYMkZJAKkdu9ZVaV6J/tN5zLsiqTa3X0B7Vjo5I2gatqgMePbETTlBaxKSK27DR47nPR6lG8US6hoW52kLVcdzluL4pGRRJqFEBYBYyWBTcN/I6c/GTLqVinYtyZG4aj5j7H05yQaxNQVhVGJDkmULyR2BPfHQo7OsSEM6ycBex7fpj8OK0ZaMMa6hGlaQwsGO0ORz16ZjSaXUMrpp1eUBtzKI2U17k9c+30v/AKdbxV1jRx6kgcApa16V2PvmnN9nmedGbR+DGB/FO0G+M0fl4rEQk432fmMWo8OdWdjCy8KXF2f1zrOZI5yQSVPGw0GPzn1X2v8A+n9Lqda4UoqgkbvE5LcV/wBDPltR9jxRah4UaRj/ACtyPj2P9c6fj+SE96YNrD0abo0LsDfNE8HEysf/ANpuqgF33WL1DS6ctDK5ZAfI1VuwGR5dqRhLA6KR+uXUfQN/RU8qRsrbPOy8MT29cY0sIVfFjYL3Zf6emSlPKm1QJbIN9MeYJNhDsGVRz3sn09MVpBtkUbKL2tsDHqpy2IyKwkcoYLvi7+eczhoGjkZtwdD1HNZZB4cej2tIHAFgC6BvjKTqsEg36e1uoWQKFgQq4oHkdPfpmZKsUMakHfzRvpla6sGfaxtQCB1O3JJV2uRH5t3IJBPFZT41WEvkd6caR5JfKyhT2BNYLEo4G4UR1bkZxhLtBbzH2xUhZDTk1f5HLpEGz62SWOMqqyEhOu89eO3HP6ZbCYVVTpzu3VXPQ+mZ0njarUq0SKCq0D/j3r+mW6ZyoSSEsb/E1E7T07Z5Uo4dpWNIYbMiOniCj6D2yKZUUKx4VjRBN169uMfPr0cKv8dSxPmJ46evTFabVacnxHcAA+VSeT7+vGKkzIPT6dZQXkChQaO3px05vE6hm08ZkjJRV4A2H9PbLZK8QGNy0iWRRDdf3zeQOk87+IGHl/ErLuJ9+P8AvMu9GFaeV3cyyuAzcKS20gfn0/XKzG2qk2tICE8ysCRYHFA4kNBHtJYtR610ytWin/jukcZIN7W6YXL0FCklj+9Sbb83JBbr265Qoj8Lw027d1sN3p0yUln1b741jjB4lU9T8dv84YlmhbeJbTrsJu/85NoZBywamNbBdWPAQErYrp6ZYj6gaRQ7ASK1bT61++MzdTrZGKxrE8kvSg/P6e+C08rw+YSM5I8xY8deo9RgcW1obKU1TuTGihFV6a+ecfE0sgMbgMingr+pOJhTczSFUZSKbsf198oEjabTOyKAOSxJu/fEddIZdDJ3haLYo8QWKc80Olj15w41kRVeO7AIAHDD5/xkWh1Kktu3eUkncOSa7ZVuj+7BvGO1gfxL0/MXitVhrFamWQkLI/bzmqoe2cGpEaXG5Yq1tt4v0rriGhje3iZZjt42E1f+qyyGVFhER2BipPT8R7jp2wtUhhcj/eC0odwNpc31GdglgaNhqNUoXk2Bd/TE6gHw2SMkLe0tGNrNZ9PTJDHcqBVJRVoiunycZRTRh5YNLSItA7gb/EPf39c4Y1DMG2EhibXke3TkjPDQyD+LRVmG5SxtiD0oZz7OIjciVkez36i8OVaCZ321GrxaaRyzGLUC74tT79ewyxdMrasTRapXjMjCmeifzvn3xmv0+77HmkHmVJULMRwPOO/16DKngSSeAJLGdzkMyoeOeeh/tlXP8F/9If8ApntOiaHWVNI3jPZ4jsURwL7e+WtqlkVdOdQR/wAmU2pFccn8vXjIvtRHWfwoIwKXa0wNlh+eR6aIQXG8j73FI4/CBzYybVqzJWzXhlMK7i0jGQkbVW7rtX76ZSupjSMROrDncvkPHz3GTxvHFpg6fxnLCgxH5HE+JslWVIyxY+fbZVD7EZz1ZUp1CadJlEhctYZgQCMbp0ikSVT4jWSQwAIHt/TMuRpbYo207yZLW6roOcsRjFCIlAG8g8myw9/2cDjSDZ6be6FUh3FAAW3c/l8Z15TDomi8C2BJYuxUMKFd+v8AjCSEppxMsiRCipDruo1zRv8A1jWiModna0YABX4C36fObo1kP2UDp0p9IJQAZERKbtdA139c1IJFm0qyfd0jZju8MybtvzZrrxio4Hh0kq0uxSFjAPSh0N+/6Z77H8VHWHVsjxM34SOR6LXOCUrti0U6SZBqpdRMNypt2R7eV7HnuMs1MaSzSiGoxwWJ4J9h7/OHEkcBMUYVmKm0q/TG6ht8UaIYwQu4x9z7/N5O7J3tmWNMrOtzbNvDNLxvv2wJoGgkZiIxz5h3Pvwcpn0kJlMykhqpdqcjnHLC0TiVpwHIN0veuLwN6UUjK+7g6osSTKGDHjp9e+XakNLo0RiRQskirPavbPRweOo3SlSeWYG69TY/vjWOmCiOR3Zg/Bfnvmb9M2SCGOVA5K7E4UEHr8d/rndNpfBDF2MgN1VbQfpjNU8rMsUUi7iObXpg6TUzRFRJKvINKALB/vxipug7RbE8WnRWBUqV3eIRZvHiKBNRHKQ212A3H19czvEed90gcNW4DdQFdumWQs2t0onLsDG20lbNj2H+sZL7IyVHXcwh5NLM22YlQW6D3yTQeV3lUcsPM1VZGHtDk7N6RqCPNzts9a/6wo9O6szxSb4wPIWofreOHpE+t0gn17zQMVBqwBy364L6OPRtHL55FYg3tB2/4GXwae2DahCN46sOg/Pnrni8TmRFUCMWFRuawtOgqQhtUI1DxSWTzQXp6E1nWfdGrP8AjUMbUdSfX99MZNpYvusbFxGgbg1Weji2MDJKhUUDt6AevziJGtEf2eAKgAlV95Jsgk/6zQciPxGcBiBYPSheTSbJdZWmO5quR1IO0XdfXH6kB5YlIV1KUbYiq6D4xn+wSemLJDPLKrAOqsTwGq66DNfQStLB4csZEijcUBvn1v8AfTCmVowrfw2tq56VXbGaaN1UTLGN5XhVAA/YzJ2GTtDJI5XSNSQ4LCi3Y+oHxkz6eJ9Q6RFGo2W6bcsmnfTANKTIwU0QtAm+mYn3ueJ5leUK7UF79eKr14xqF+NNl8EkTRLIz7rNLtHHX9/GTajTNEqrA9KTurcTX79M7oY/ujNqg5skGuKBPxh6gbXQuxZq8iXSg9RddsUosZ1QGhRGGxiT5t1/vtnp9TLBHKpBa+gLc9euKPhRzIjAb+AlWFvucWmsk8Uws29EJG+7Av0NdsCRqCg1EkExERTc4PIYnr2xkkOofU3zt4at3Px+/XHJo2eRpLReAeW4A9Qf2Mq0oeaZQAg8tE9a9zjJCylXRK8s76grLERHECK5P774iWRkQShA5NdDVjNWUxnTmGOTzNfmI449sxptRqooRFGwKtbElA1V+xmaVgg7Lm1LrCsrQgOp8rtz8D5xa6iWTrKvDAMETnvxiJJYjp41idmkY7SQaI+MZqdNF4CwhltK2rybPYnn4wBpHIZmj1EbRxbQxokDkHv8+n0xer1s0US6hlBWMEMdpsn2xzq0qtpiWsRbbUEUx63iYtRIYvDd9ojJCXFTAj9/W8yCUTNJJ9ms6jdt/iLuXoRRH1JHTvlEmoOqlRoNWPAamPby8UL9ecj0+sjmmIVJ+L8u0KrN0r5x32KjzaKGN3uGSGPyLtNMFF378ZTwnVOw1WRmCNKreblQ1njn575p6SGRoRcqiwberOQ/djvMTAc3TsT0zQZjHpbA2hVIG02Bhgl6LN2qRPMu/TBIZWjcfzbRXHP9chkeQEwpNbSUAypuPPXLdKXkhaSNd9LW0XTcd+ucMA3iZVbeF2sjV+fziuLDF1jB0TvDJsmmEzg8NwCR1ojpYzSh1ThCzRqqE/gvnp/fMyUyRANtADHhd3JPz+++N0shfxJLH8Lq3Y+/HtiJtME4pqzQ1eqA06tGm1QeabE+NIZFXe5RlsUL4xMoveVFtflJ7X3yiKYs6xSEqyjg/wBsa23pNJJCSzRRs8TBndiRu7H09vpipy8sQkefeL8qgDr/AEOPeYNtUqfEHoMkdJvG3xRuVrhSeB++T/3gfQyWio2lbTnczNVg3wwb0H+sbKJV01sSbokAjr84cKrE6irU87i3X1+mcMT+JIFjCxn8DdyfU3iUUvQoT/EjV2JU+xJHc+3ODrp49Np44YQH2gkh+9f26c4qSf7sJC1Df5PM3BNc9MVJEWiWcNHuYHf2H5f5wrqjJbZMJlnCrGoKghz+XrnZp4o9QTsugAQOo6cHIdYvgwboVdjdPZJNZQ8Ltp1QqAGIJZe/pzzivNL0gBPG25woKqSFG0Dg5ZG0qjdu2hfwALQOcUrMBujWVa2nzGv1yhdLEJFDEDptU8Af2zditoTqFYSKSGJJsjbwPXKIpPEALIu08I23aT3z0pLyhNttuNDaKI/d42OCQRxw+HzfUn8K+gI98wjaoS9y7vDj2KDZu6BxiR7kcoqr7FaIyhI4ok8xp+QAD1wd/hI5U0x4I9PTMJf0IjiiScP94QjgMpP6fJynx4YNOwk2bi21b9O2RppVkVWKqX3biDZy4wQyOmnm/wDI9lTXWu4zLs0q9BeQxr4YJKnoauh3OMkcANSyGIEA8dTi50CtQ27dwVuBQGOkRkCEgtHXlPbCvRMJZtPfnjIUiyqt7+v65OdcPEVgDY8rN2vL9T4cgV12sx6GuAMlOkjg3Mp8ki8g80f84rWjxa9AkkkKMjktS2Pf0w4oSJFbay9ON3N98Arupo3cA+az1IyqGRY5dgVR5egHAwpBbzCjVPS8KxJN8Hp7Y2iEUbdrDr3xU7byxI/F3B6YOnZnmbapVF8p565ddkawsamUggLdEGs80DU4dwLFA/6xSNKrlhuAoACrOMR5ZZAWUFALbb1vHu/CbTA3ypGULA2eGJ7YwbSFZtoocc8nESPJ4m3og9uOMOMmT8T7j147jFUrM1gWpdxH/DILH8PB/rk6NIARIu4MbNDi8cN4A83PoPTOSRb3sqwr4N5pWwrMETz+FtO5g7mqUdM5BIZXp02vfJu7zmq3x6mIkOy7TZA5U47Txx+IdSrMSy0o9BiJfkPiiNIUbgqknv6jOBWBJ3gA9jzeGd1G36HkX298WDvK7bA9bylIQpijUlrJ544xbxguGoqRfJ9M4ksYBTxOe/HXOHUQ+GdwYBfXK/jQlOxbxq6tfRBZ55zywosniRKG965xE7ASL4T7d3O3u1dcriZj/DZQu3npV5JVZR2kLfT7j4lEt3N9cTJCUnU7toHAPYCsuGoh/DHIP/sTkuvdyVCrag9as484xSuwRbug1eJ0KhuTxx64LadUhYFRYN8HrmcNI6P4kklENYMdjjrR7ZpblHVgZCAdvbBlBao9AXK77ATkdbv4xhmj8LxGIRSa3E1ksbahA3iusiF6oCtp+fTGq4jLbxa9lr9cMZIDQxz5yqi+hOHUiSAkgjpzgOu19/AU8le5wpE67LUjuReOxBM2o8CYmRRsI4rmz/jOGd2n3hQV4Ylv5eOmNkDAANRYiqrFKhdWibyMvX0yEk7HVUSqWlm3Bwl3z0Nf3ymGSQbW3CqBN9hnBHC3lND0KnCuSaIkbTz+GuuBJoZuxhCtGklnysSvmPXoeO+SfaNH7PdSWDSpsTju3lr9cYPGUqoc8VzXGDqpKk0MNndJqbFtdhVLX+dYyVi9DNjacMAxYAeXsSOw9McrlpBv45umYflnBPHZLgnuRWcjIWRwbKs3Fn2zJ10Yakv8Q0pNdfL/AEzysGcsFZWP4gD0rpngoRKoGxXPFYkp/wDLJ3MBtokGhlE6FopjmRa2sxJNC+b+ucklS/OQxHB7Uck1VwlRGrsWPQH9fXFpDGP4zM3WzfPPXjNKclgVFdjjOGPg7Wscny9s7C6xrsXc1mjeST6hkU7ENO34h2+capjWDzsN2y7HTIKbsdxwbvMcjFQGocDsMW4Y0x5B5styM9plVkDHzFuDzxhlQdqSjiq4BOHWgdM9pmuWQOhqgFO6842pjSMi9nO0X2JwS0aojNaueMknXdyoJcGwRiOTSwZRtlckax1tS2egSTnFAQkRgixXPS8RDGViQSr5tvmJvDcmhtO2jtN83gT9DXhO0fjSMzSWyi3UD8hlEgJFKlrx+IWDnIr2sDa3x5eueEchdyzKy2KVSfL+ft1xUgioxAIVEAChyQetnnnK/D2pSkbq6/8ALAMLiMKJJNgJJs8D06f1yhYn3gE35eB/fKxiLJgy3IPCVygYUwXg/usRIUXiOMW3/Hpx65XId5uUMx4xLIjOABVDkX2x5LQRFvYDMgUWtEkfnkJljEtbyy7q20Dz++2XtKCK21RquwyN0hEjyMqEGwKN0e+JLSkf2NaONVjbjeeN1jnJIZRFrNtBgZPxbr2n1y2WRPuoiVSAEvkXRyc6IaeHdEzhixJH4jz74jX0NF5o9luIGImMk3tYcfTHPJHIo3LdCvKeucv+FRjDMRwW63gxBlRRsNnra0R+mETsFkkB8XxSijqL/fOJkmnaEMiGr78kcZVN4KspZdzdDxk+o8aRKQIo68Dg4skNFksTq0zeE6cUK7n88s1cSqu8R2qj8RPGSaZUWYByHPUbegrK9S7MjbACz8WDwPb5wJDP/SPQESRFVXgEELxYzjxMYyqygMe9G79s5plAVWVQgrzE2cqeNFBbeKDWR63lErQjdMzFimWIAndXLbz+L6Z19MJQ0qL5ibpuQMp2LHMGYlVPHmxu5WiuMfiPlrviUO50JhSMIRPvvbY28UPXJ1J1CtHyE3cdPLXTHSqsb1LO25iSvcLi90yTkBSwrnyCifntmvKMvsJyE0+08bGHPQgYelRB4bKSVFsfJz6isFEmcKphIL11a939sdEU8VzRh2+QCqPt84aFbwJYygKq1swuq6c9PyzP+0pftFEkk+zglBtrIaN+tDL2VN7zKzF6APm65LqHfToUVaL+YtdAf7zN0aPZyBtVNp9Oo0bEP5ncP+D25wpCUYqxC3Yeze7/ABjdNKxVRfLCwL4rIpNOTK0yqwpv+RJ9awdh9Ow6hYpBGBu3AmibIF5QZVnR3IIKnafah/TI4BypCguZDuRT0Xt+++Nk1UenhkW6JPmv39M1UN2wRqdpAq+KB3UAfW/fHR6z/wCPJGYlTkU6tfX1OZMqkTWEch+RR4U9h9cq8J4Y4yxRSw8pbqR/bCgySLIdsYchjtBIBPVsF9VHp03FAVc2AG5NZwBo9iKCBZKgC6+bxcsbTbUkJUUWUen7rCsF7CDsEDQD+K/4rP1o5XLp5GkjmTVeAoFuqoKY9+e2TrJAkUUcKbb9O56nKgqyRMVFbxbEdQMKYJEv2iIYgEim8QstcNyPTg5HpRsDRktvZiSoJI/fXKYYTLqHgG9mNN7gfH988dyackooVDQ2jlhhfeDJ0qAG10kRQSVFW/QVRP8A1jwwEUm87Nygl04PxWSaSdxqP4cBEbNuJJ6t268EY3WMFnk3qsJS0UsbI/d4vgPaATe6mQEliPMOAT8nGN4kscastI1EvuF8YEpYx71dQFvcBySe/wBMVERqCyvOokRfIoHNeteuLVjBoyhJWDGlO7aeCf7XifDaUKwUdSWu/wC2OjHjIoIQMlWrNRodfnjFwzGSd1YKqNYLG+BmsJ3wZZFCxUokXy+rDngY6GFFUiZ2ZUfaVUcGhVX83nZZDpFuEAhQCHsAm/bOafWVowjFzNySrmvMTf164f0I7YUupdE2KkKKzk7tvA+cepjkUkMN12WIrcR1P5dMRp0hOmVXi8SYXvMfQH05xU023XqwiLgbboH0/tm/TBRxdLLqNTu8MpLuK774s+ubP2f9myQuTNI03l/GW/sf65ImunaZViZKNtSgcjtd4uNNRNKXk1D0GIJVjyfTr0xk4rWCVtUaGr1bQz+BBDasfM9dDfbFapgUVYvPVL5TRF5nDUSaO3SR4yHosw5PPp8Zqx+K6kqbrkVxX0PXNy5CuPEz5o6BEbBWjF8984mrYwKWtiSCWBHrhlTKXibeu4ceXnEHQNKdqySVtuwwIJ9fnFsfPQNQ0kkjBAx2Pzt+P74yFmVDMFIZFPlbqclVdVFFJulk2t/zNc/us596m8KNZ0F2Rzx1wV9FKw7Im+NZPxN1HH6ZD4D77KEuLD8dT1y/RQTahZUaRBCG62OQOhGc08URPgySGm6D/GbrAppCpNMAVS5uPw7Bxz6nLtHGYoVjk2h4moEAHrznJJoyj6CI724ayeB+WDpdXEC8Mih1Vdxrk8el+2ZCttouMSFJTAm0kdS1cd/bBB2qu4Ryi7O44I1I1CNJppbhKWjAWPcexxkMi+Ew8IkDt0w2rJ7QUTA7mHhGh6XnjEpYEsDXI2iu3TFaeRXlBMm01xtvAknaOdhsLAefgfjX27XeZM1bhcw21HvXwgCavn88g1mpEEFozFlO3cQRf5dcGXVImnfe7h2/dZDLOp04i8Lcx825umNYYxZbpYyYV1JOxw1Hy9RjYg6ykFnVD5mMSigMhiXVlTvYJEBwN368+mODrp2RVkLiThpCTx2xQ0FNq13+EreKwG6nFGvU/TM//wBxliklkeGA6cHatCiCfTtnIpovvJladRvtPMvp75BrJ49TSjw/YHgHnDHsZRRop9q6YGYSIQo4O3+U385LqVRpZGOnnK8BXWhxXU+mIh+y0niaQqFa7AINGu39MbqWWIIA5IIqlbgVmtXSKJIGBYHhKSFigksWB5f3WMXTqzNIsqEgEbLrp0JyXdNIRI7I3n8p3jj3GUQldxjlmiAPmbcKr3BzNBskWKOCJHDl5HY9Aab61lqzQFGimUt3ZwCbNeuDLq0jl2rIr7O3TcMQ2piVAkMga3val9vkdMzi5GTBgOyZllTaj8BnY/Q4Gr/C2mEjbq5JFCvnCVxOpaZDJbGyO59snlkklVoCy7k4ANCj7+uPGOms5NLIFjgjXxGAI3MOntimj2J4cqBAE89nke+BO033QyBo4yPK3BANehrMsu8w3SufKCQev550whaBdGnFBJCDEOSo3ADjg+/fKYlgeeNpUuNuNiiyT7kEdci0MGu1upRBOqptogDyjjixm1Bp9LoftGKLUXPLEpcPGnEdj0798SePsKlhpmd4JiwSbSwoN+1iW579/jjO6T7Qi1Wml1kkrS7LAZSVI46kd8mmkJWNYtK7mU8nw+g9LPQfusxPtqOOJRHDA8K1S+GwFt7gf4yfxxUnTEaKZJ01MMMsJf8Aiv4ZFkmN/UfUZVrv/kPFWhOpgiQBmJpiwq24/pny/wBm6zXaYqlrIqPezwi5YfIza0H202p1raeFxp3ZCWEjEng8DaebrLy+Jx66MmL1f2fpvtKV0j0kg2C78TlVrrR/frnzy6eTRTyIRuINpLQp1+M2/tGRm1GmkTzaqGa3lQ2lfygjvkmp0kr61RLHuYhjKytwvPYeg4sZX420qbwzW2TaBEeUbqdGBYnZYvr+WedSJGnZgRZvg+XuBWPVkhIQBSoU7WugB7Xg67TyxxgtOjIy+Uq/iVwCBY70e+NdyA8RnzNIr7TGzbxZpqBHri00+/R7PDaMnkk4/TuBA3jrGR/9uq13Byn/ANykfRvp2ZpNw6P5toHSj2yzbWJE6sxpGVWZWXbRsuSb/LCXUM25jYUADy9fb6YbR7t7TIUj6W3t3HrgyeEpL7XZSP8Al1+ctaZHUTeIZXG2OyeW8t19cZqdJHDTsbkPNKbA/PCj1DADxLjCG1QGryaabcArMzE810yiu8Juq0+lfY6lEDFuaBPDV++2FEaVtilQeWWx1+Tksc3iTABQ13x/xPz3zRhn8I08YChqtRwD8nPPkqw6+9FSEHaHRip43Fq78D5GeWCNGI7R8A0BY/1lTL4isBvkVRYUAV/3fpgtqWEpWVQR/wAQOOg/fXJ2/AnGMen04CTs7WCYybX6fusXysZEqoHLcDpRPYegxu25mCKvhn8NcFelc+mIUHcGkFPX/EH65glKQx+E08chKLzIOlAe2BJqA5pVBFUCOb+fb99sGOCNIwFlFsaKrVAdrJPav1zmlEhL7NOrISd56jp298H7Mc8WR0ZAeOhavw9+O2KhYMfDaW2QX/EP9MulJGndVXcwI3ACvzzMlllYqQEG7g9h6Y0PyA8HpAzTFjuKPZXzen/eacECxRgRkyEcE30+MypIZFaKQkiNzQfqV/tl+lgTzbhI4jW9wbhqrr6fTE+TrsKKnEMUUgff/EqgW/D/ALyQv5HBFhgKG4VfrjNXpN2kjkLoqs+whRyBXocnWNAgUpYWyXo0o/dZNLLHDSAO9hCCeh3EdK6Y0xyF/GmhKog4CvXOHqYmRdysJCxoUeBYHX2wAJl0iCaSMMz2wUgmvT0/XBdjIeqx7jMqqoqigAAJPf3zlqIhGkiFmbb7cmufb3z0amNATJ53Wh4g7e/64ra8VRuGVugZhxZ78c9MC7M2NhgmEUkcrR7WXqFJuuw9cRIk8TlNsbB6J2kjCbVaqRzE+weHTA1RN8AX24OBqC0kXhRmOPYRuZSeD05746WmQ6BdrMQjMgFjyhiBV3fbJvIHM/ibZT+Fyar25wdBP93hk07akqVZhI4ujz1/1nfMJWjXcWkFBwDWbjTYSf7T1237Kjh8SOVn1Kc7aL0b5N1l38acLKogLOSQI15DdzzzXzk/2x9mk6XQSFVkPjqpkBNk30I6AAfnjYFhgWgJW8NTbIvX/kLPeu/bKtrgq/ZFJ8m2ANKZ401Hiu0vddnBA+vX9OcbptPHK0bSadiy2CTuHB7+9dqzql5QkISVEFNuc87T69L4yzVKjShIZme+UJN0B2/pkZSfQ6Q7UKNIBGN8oRelih6YmCCOaQJv8MseWHI+PS8bqdS4mUmLa20DaO/r1woj4SOVVYibKq1j63f55FdDWK1MZ8dokDSr12nqMc0K6dd69SAAFU/vrjw0baCKXVbXBIQeETZ56/H9sKDWRLrlVYwyFgSzdj9MDYlskOsVdsax/hvfYu/j++PVmaVnkRwF4VS3Nep/fbOa/wAGbWttiZUcne6sFJvsMVCFgjQRNSP5HLuC3r1As4KTVjI14QW0pZJVa2/AeD6365LtcS7kVgjtch6AUe95FBqp9PqJPCMkiEj8R9B7i888k2qkCzq0ajll3ixZ49sSUApOzR00rmcsrfwia5XqL9uc1VV3WNgytCLHBrv6ZhQ0peSImTZYO2wP/wAp/wBZpx/aEUaoZ5ykcg8kIQjoeTf5YjQs19FwURJsSQG6Xhb/AN1kRghadySxrlFUcfUfXAGs8KbxNPH5Q1enlvr7Z2Z2RHnSORvHY2SaJHp79cFfQiTT0Xq4WiDNA7EKbIPlI46DEaeFZyd0h3o1Dd0X+l4qb7RseDKnhJEPLtPPpx64mICceI42oWoG+e9jk9ffGqkPT6NFYP4tBixAI8rD64LwRb933fcymiwbk/7/AMYxdVFLp95B2Kb/AIZ2sw9Dk3mmYSw7BCANn/In29uMCQVYoP48vhNLIpD2jbr3L+Vc9M3tPY1DJMVi8vIXoMzlUzazxHhBIXuOnxj/ALs0iqZZWYjoCKylk5aD4SnVlGPQ0BtC3f79sZEiadmqtnRVIsX/AHz2ugWEhlkJkIsmzxz2yeN9QVSUBUo8huCBm6B2h+qYayVRvZdtnhTz8VikMfjbhIAu7adg5P8AvOtMZGDRqx62tcDjg5zTM66i4Y9u9mJbbV8fqcKdhqkP+0GM3hwo/m20LHl68XmZJp5/HaJZ5ZNptulL7e+F9uM8csMlMIHAJNjcpvi67ZLPrZElKh/5fP2PzeZJ3g8FmFn2Qz6XWcRKyta2VodBj9QAm/VSeKwKBFvoDu65maTV6ibVwq6k7CTGb6/mfTNDUTzmRrfcF8xs/h/xmYJL8gNSpdAQ0oAWyORf9vph6GUGNRZck+bjrz0v998niUmNJlMhSQ9Gewt+v59cpgheILExO0E9DuJ9B/vNVGvBh1lblLhYmemF8nnp+mMjjh12sKxsrWACeQEoXVYDxRuEIhqVCT4jG6HHTHaQRB98ZKmVyd3qe4zCt5aJJtHqoFEaN5EbzO3JI+c4JEeYwoS3NbibJ+n+fTNHW6YVcr8EktZ4v5yV44UhkdXUnbRIbn49hm/plK0RTlirWZWBeuVohQOvwcZoFKyGF4hIHPlkPFdO2WwtFJIHkQb0U8kmuBjJpRBGWZo1Z1/DEb49cz6GvwZJDasFLkLVgUD2rnFRS+AGEfiIU5ZjziZJy0RELhgSCQPxeljKYjCZG3vuBqjfXFVk6paJhjlOnbUq1SE2B1sf5yHU+RTLe9urdfMPXNSeKVHEzoI1PO7/ADkWpRXePw1QFu5Bv4xhoMm0unB8WSNNwY+UsbNV+/zxjRCEeMrlnIDcP069vTKINMojLbjvsg7RwSOw9cb90d5AqqVtQPN0Hx69fXAM5Iz4HSVx/Dcitu8EixfJvplC0Jmbdv2uPDN3x0I+nx6YS6eMEj71u2eUbBRJv3+MRARHrqZX8x67eL/t9cJmzR1RKwRhHjJ3geZwL9sxNCW1el0qqjxx0QP4hVrUkUPUcZoSfeJIwzakKkbbZDtsUff1Gc/9O6QR6DSmQ3KIgfOQWAayB+XGPnGxOjV0U6xafwZ2LFRyxXg+3vk032sqPIkZ3MWFUKIGU+ADKJPCBJUBd/UjCYQqiNFHXUgqt2T14xou1pPLD8eP7sREFANbUQfhHrX+cFNwkKghncX1q6/XBRAWZ3lAduTY5AHUY80kihdoN1wvT5zNt6L0J1PKqYkNyDagrpXXn887oYHiAJJBHqb4xkjMJWkXhUIA5Iq+uGziQggA8AEk5P2zNuqDZ7jAALVZ5b8Xr+/bJ6d5SSGAArzN36/6yldNJsLbdo6CjQxaIFLs5F1W71GF72BNeEx8VpQ6rZvm+3rjZI5lgC7gwPPpxxiUlPj7GtWHLgfrlOsUlNq2tAHcg7ZklTGb1GdJM0bmJATQ6AACu/PXHR6hdSC7OgKNxf8AT5v5zywCWyI04HBHWvTHSLCoRjp1V41H4hz++MWOWNKhc0SspYFfMd3lF2a9Mj1Mv3aNnVdxYVY4X/vLGDMxbeI+eAvX34yLV6bY5fxCWI56kf4xJPbGj9MlggM2oWVFsFOT159f63mm0W3TEK1np5V6fAwdLArbbAUt7VQvtjZDvZtkvANfs5qGlK2TLpJDFHKjEi+Y275yVJQPEeN2/lB4IHPT5yzUHxNIXEgr/wCnUdOMBn8KBo0RVAHrd+2ZoCkwNIsb+dYVO8VW6xx/fKpiqI5BIAohR65EZFQiUjw2PVQMbHqmchGiK+nlPObwEk27FiLxo42sybG3MvrjnWPToGSBSTZUDkH/AH/jORacy6szLKTQpgO59cqKOkaqFFqbHvhrBW9FRlI6LWH/ABVf9cYJxM/lYFSeabtksaznVbPEHHY9hlqaNoqEb/zddvXBFNrBZUmLKK8zIVptv5jOyOWqNSSKFcHjBka57Hk4rpyffPPqDaxgnuN22yMb9G0OCLzM7hR5fJX9K7ZO5BVoXA3kHk3tIwNTJJJGQshdlIviuM9HDH4OwzO528lhVc4tDV6Uww7pFFWpYlq78f0ydoZTKzMHWNbAbu3t0vHxopKBZdu0VQPGUGSYRi2JXir7fOMkmLbTI206tFGOgUir4xpkRY72E1+LtYxyah2NbA6oeeKF4zw03n+Aq3z5ef646j9CuX2BGu6EOHvvxx9MfpmIgO5qf0B7Z5EiOlrcUpq+caqQwqzicqGP8w6e2dEIPslKRM6s8jiTcIxxfqevGHH4SsOOpq8eYYiqkS+IRyCpJvAfTq6sz81128kYHBp4DlYp6RwTFuXqpPbFGTfIHKkUeFJsnjLTIjR8eY1XpeIjUKSFYIQOL74so28YyYsvIh3+Fx7nnESaxFW3UiztAqjeUCRSOWDNddc6xVxwLI4Iqv1xGrGXYkSv0jTjcASe2dY7FJLoK4HPrnF0yID5UNmqbpX+cbHGrD8Kgg9h1+cyT9M6JlDmTdOAY1PHGK1LSMpYSM4JpRXGaDo8twiQCx+E8k4mOCWB9rR71PdcfaNekOjmkQsJmG48rxZH+s0SjyRqDfBBYg8+447ZDNo1WXxmbbz8c9sbHqZYYmh8pcAcHteST2mPJWrRYIgqgNRCng0ePrk8o8ZR4cwC8c9DXxkh1GqSVomYCP1bkfX91jXjVSHCmRidxA7/AJ47eCpDIw7rvL7qPT0GEUK8sp3cG/rixJKJiQFVF688n6emUbwxZVHaySeuZOwu0MVnKgGynpixXi71UnkgKemLssnDHaDdA9capRWRSnhknm26e+a7Eo9t8Zm3lkYDi+QfjGDapamJ3dfbFzKqfhUOx5WupxIkZHB5UmyfQe2Nya7BVlhmZFAZCTf4sikMhmb+FXlssG6YtzNGPE2sxP8AIXHT2OOZ28MeG+3j+b+lYsnfYyjRyV2VVDAnkUA3XPM6gKIwu/8AmN9PbPFB4RMjHeq/Fnpi4Yz4VbFFdiLOBXeBwbu2yqq1bcX3vJ3ff9spWw+EgB3DoXJv60g/PPPOIoCgu+vI5+nxk32S5d5JmcMZ53IZjyaOwCvhcTlQyj6bTMoh3Eiq5rJwGYCyQt362O2EXsGwBGvXy9cPwkYgkjaePNfT1ynYnQMLIqCMkEDk3ycYREQwjYGgOl85KE3KCOQT+K+OvpjAXIMZjFngHsM0ZP0zQ9kpACADVCm5zqQoIRTWo6jg4jsLfz88165wQmRyAQAQO1Xj3vQtfsTMilWiClLN7jnI9OY4RFJR46r3yqXRoIwoBK3ZI74AWJSIlsiuK5JxJQaejqVrBkUQTTqEUA3RrFzhRIP4honzel4fmEiqFIQcmj1xcrbUpiXJJ4219cV1Qq7OIt9RSHmj2+uLd445Axa6scDpWdOpDRFVkAPCkWLGejWj5/NR6irvJVuD/wBHeMN0ch3rxRFdf0yVmSS3hYcN3v6842WjNGiWYtg8xPHv84DOHQGq8Nxx3GNKwoBI0Os87PtKVXQg9uceFqfzA3X4fQZOzxeMpVig6sCOTfbGHTt46Hft217jAsCylVZnCX5mPJ29vTOqdrGOMNVVYN0c5ACk7HrZ9MAMvjkF1HPNHnKREoJhepUtZUjv1wZCizWV5HS++AA7OXjsKTV3xidQZhESCjMpAN5nIZR0620SFjECT0LHqMWkKEnw1KK5si+cmkeR1VZCbNcjvmh4iAqsYAYA/IHrk+yjwVGQ1RPuChaLED9cIQrAQ7hVS+AO59c7GokWmU0QSxIwpGQwp1baewr4GEVvQJZdhVlUeIT3yqJmdWNJuCjy9zmZqtRsnRpVAroM0NHJG1vHKx3UAhPAwweglGo2LeIwsHtSxssB0GKLv4qxo9xkWegr6Y7UPJ4h3MFUcUfTJzHIS5EYZCK5FjBLsMetPCCEkBfKzUVA6n88KcSfdjGgCqDTGua9c6isru7PwOoUWPjOGeQL5aHZWawDeZB09p4/BTzAmuQ3XPPO/L7gSnIB61h+FUQWQU4FGug9Pri4I/472bZRV+2Zqjfs9vE0fitzx09R7Y1PDCAuGWqZRzx9MUs0ZLMoWh5fY4Wo3shDIpWrvpmVAa8Fqp1HnHLMTXmvv+WOgrw2YLwTV7uv9ciZ4XjNkKd3mYUx+ax/goIG3yOtUygCqHHT5zJ0ForilDTBlDAJ3HfjOiNGCy1bDnnyh7/vk0EBjgYiM7r8p7X747USxQJ+Ji1dK7412tJtbhI+lEkyyMvIN0Omc1EAlZ0R1p1ph2X6YQ1BkDGKUtacsapj656Pw3RB+A1tJPU+vOTxlFaF6fwNHoJHLoWFhLbhj0Hv1rAMMkOjVZt0hatyluh9/rgTppxKpQKR34NGjfH6HK6MoJSSwOOR1Pv7Y/gG9PLGng+EAisa5q6+cCbTwnTq/HibwAwHT1I9cNWkTxF22osnjkYmcqXjiVtq1a21XmyjK7C0OlSaMjeCF8xFck364uR4HDXJvFEgfXORyto1ZF2q1dQQa9vnGNNDKDGW2bbsH1/ZzUNt2ciqRdrO1XWc+06ihWTziTt33e4r+mHodVBpJmgMJZn6qfNx7nt9cl+0Jop9XPGtBnWgCao/T88ekogV8gtKUeOPel2dzOx9f6ZqeFFp0eSIKQ/VSvXisxdJNHqDQPQANtYk/wC8sbU1ujH4LIJHBv8AS8msGnFtiHQPRVisg4VrIA979cF5ZoGUJJvkZiQFFEcV68YKSMQAPwxrVkWB8jCppWV2cA7eBsssOe/54zCgVeMKygbSRTHijfWsPURrLp4zIB+DaxrceOh/piW1e2RkkjeM9FtR5v38YKtKYkUkKFa17cXd3easN+yLbIpaOLUOnS65+DlieH4SKouQHdwt8dx/TPPqVOqa13Ec/g9+CP1zq6lakRowrUWLLQPS6PpiMpeB6h44ijSRhNxtSasV1vJYplDOzsd5a/Kt0KyxYw0G4K7EkmmawP65NBEXaY7SdvALijf98NLsCYkTm2nJfwgfIQete3p8YqPVtrJ31ewu72qWKrjoB8DEtptok2keIQSW3cAewOcgnWLam0Ma5LNwSO/rfxlEss3ps6TVIdQqqSzspDgcUe/XPTzMkL0NwfjeT1rMxQC4kYAuQCOvJ9f06Y5JBM7pv2iME7dtXx/XJuIrWlDagQbJRGGpBZXqb/YyuMM4bxySvXyc7uecxlmh1c48XjaKBvyr6ehzR0x2RrPahWUgUeMQLRoSeHLFIxTcm3yswofGHBKCNgIWRmogMSKGIGwaaIhFCE/i38DnBmmDuJRFsKjgj+b34w2Sqx+pLRqDJQAtQd1nnBghjranSrA3Hj5z21pdEHlaufTkDCHhQlWAADqSrUeR74WbyiTUqBJJJNqAQRtCqeb/ALYCSCWPxWZVaMeUKL6d84+oj8VydPtjQ3t9/XF6AagyFliMkZUhFrkYPClYFpVghXcpCno5K/ixujkg08krrMSleQ1+gvM5oNXNqQs8SrD4nBPUcZojw0dY5ACgbkKevGYLSImiklnk3xtuJFP1uzfbvl0Y0rSSSShgw8hAXmji5HKhj4ZRj0UMOR6VgQLMzsoYllIYe/sMzM9HaTUHQanwII0aOS9qkEUfT/vKBrEZpY5dOfKtHa1j9MytRqZYftCJdRMyl2AIpT074ep1M2mnciqZLbaOD0zaqNwRX5mnsFV7BpOtYYXwFFzK4YmiOw9szU+02ESz6k/w6sIR0HTBGpjnnUxKfDVSCRxx24wpA4sr1EsMlrHA5bcA5JpTiAriIVQvkAN0HOMfxX0viKWAFbQo4bp/3kRWSTUJGhYAfjN8fvnChksKiwAJdirgWN/AGSw6ifwakZCwsrx+vGHPEzbkMryITRBH+e2OTRmDSBXZDztGxboHt85sN0YoScyEFi3PKLzR+uOol3iDmM1RAF810BOayeHFCXZCwD1GVWr7HETTIsUxpjdEmvxetYHJt1Qbsr0ekl1GlO1wHBG0f59MmkgRNTKkoDk/iAYEL8YWn1Ymkjj3yiR+EU1f6ds9qY9ONYzTaYbgbYh+b98Wq7ArsTDFEVd5Yd0YP/7v+fpk8zxxQjwg621Brskf3ys6Vi0koiWKP8YUGlv1GYksrQwuBHvYA0GawvUn65SKt4MtFRv/APKKhYjtPNqKPtxWPjfS6gMY4TCiuPJuvafW8j08GpLJKRJyK3OtXfa8eqTckmLbuttxLdOgOdEvqzUVFQ6PLDTFBfWifeu+RMzTpHIkdyRsQQD/AEvBKtDNMyxs103loCvi8LUwlIZJ4Q7+IBQVeP8AvFSSD4eSNpoXRWO6j/CXjYR79PzzO1rPCoSTSvGrKNrsPxD99s1tVotRpNDDqIyIp6CzKoqz2+TXXDI1Ekf8SW2aMhySOV68kDHUlFm1oXpNSn2bpIx4NzAhhL1G0+1fvnKVM+t1pmvzzUlBgKFdQOv0OSaTVkRrPsiV4wFCbSAw+oOXaz7RvVHwolmaIAealPTpYPTFl2Cjbct93ZJY9u07QFPLGuKGSHQtLp2SOllLeYPFu/P0ybTfb6grDOvh7VoN/KD2/wC8dpvtYRa6eeOQbyu2kXcrUOPr6HIcWnbBTSozdb9hvoVbVvMulKDyeELBPckd/wAxmDIsOpnfUkNMy0rTSWlXwCe/rzm/rftjXaqczTaFSgU7Y3lC2CK5WsyJfsspqWnklA2oCEsmr6KQewzt+OVf6YGnRmQwfaLOZYJ/vCRdSX8p9r7nPqdDqdGN/wBn/aULwzGFqLi1B4uiOx6i8xRNJp08DS8R3tYVVtfX88gkikGpZC6xgdbFXlnU+xKpFmoiiCDUiNXiAINNRJuuMU0ivHFBFpnSRyTW9SCPY9sQ2kSGMBZix3gUPwg+ww5fF0sylvDWZLot2/tWFJf0zbHaWHTHWoupCo0a7h8jrfp8HFDWwrrFkSGvMzk3wD2FZIVeHUl3Iexy12TY63nZJaIUAnmzQo16Y/ATkUiIyxz6uSVNv41VvNu/xmXqZ0IDbQXAoUa/TLZ9Q2olNqY4FFrEgoL9TkUyRqDIWo3VA8t9Mr8ap6JPrCaMlpTKQNw6KVvBcqZNjJsYcHiyTjDEzqZFIFdd7c/GLWF3dXWlVmsAG9v986U0czTPpdsYcw7RZaw+wihhrqAslUq7SOpPA7m8Qnhymk3CwSeOc68HiKHYGWufDHUjueRnnUvTtLE1ipF4bIrdwe9n2A6fOccHUMjpLe0nqBR9aGRJo2EZfcfKRYJ4+P0yvYZ5FVWKWu2z0rEaSeBQ+TyxorFTtNbdvJrC0hI3mVUYsf4ZP9KPtnIFHJmO0Ku3axFAfTjOTMf/ACiDw9otix/F+XQ5P9DDPF0wRqjvqCQwv3vJgwgW4T0aipHTvYP7OBuaSpCdpaqJ4B7c4zVp4Ksind0DcfhFdqwpeGGQagu3hxsz7r5qrPvf9MQ+nabU0we9ttuH65Vo5vAgMgt+gDlOtHtnXmKxhGU+Zt24fiIxU6eGfRPrRLAyRhaUDhWAN+/P0y6LcPswd2kIG4dABzkkLLPOd6SEq12H47/7x6RSKTRWwKHPPr0+uaXVGXZ5f4j3tKuoNK3Q50KViTcxMXJLHpft2xM5EUJtbI73dGs6sxOnXeh3KCWkHQ8fhAxKwdMqXUEaVoHe4yoOxQCQB05xAeUziOIbhfFD9PnIzN94ntUCxrQPOyugo98p0yzlmeNVI3bQd3KD2wuFdmsolWQi9zpwAbF2enxjhpdgiYD8B81Cr9r6HBQLLGpZ2LDq1VR+cmaWbd13bTYDYiCFNDNwzu9yggjb0I6fXFrugKu6KrfhD7gTfY/OVvJHroRp5pDGG4DXbD1r549skghj2Ss7MVTpZpr7cHvjJ5ph0ujadpABtkcA2wFH3+f1zracCRDCHHlCi7pqsgfF4OnNLtEbkAkEEg7h+6yqLS6iOaOZahLSDa9hlUdcW2sbGsz9frNTLrfs/QXFDtkMxlJ4UUQT6X1+pwo5FXVsq6g0FKlmNgj1HHTE6vRtHr9G0qBhJLLZU8MCt8D5GWt9mwzhUOoCMD0PFDvz6/7ysnFRiv0TjesXpFI0jtIoELsTv3HmuNuVfZ+jjLpL4tobuMc2B04xi/ZsbRAF/Gs7d8jH8Xbtmcujl0s0dTS6d7O4t5gBZ6d8lkrphTofqGMmqYmUgKBfcdOg65ZAIZa3mM0lWzHg/TrfTJNU5ZVUEDjmQGvEF4SyGJGaKMPNxbF72/0xWrQzLtfJBAw08cibdvI9/btWDFaPC5kIcCwSOCMgOn1c84P8Pw65Zj7f0yzTKxeJDNa7f+HHsPfFcaQqE6xjPqWkEW1L2kjj9M7pxGpVmVQhHIu7Pv8AvtlhijhlRmNCt6hVHIOcDKZUWiWfgAqSGHbpgvKGQ0KjQiMyI3npSQeR/TPQfxZHi2jnoW8pJ7V7f3zv3Zdt+WOz+FR1occYrTg+MqzMy+alQ/zD1/PJ3YWaCKYv4gZIwwsoQAF+OPfrlLTKdPB5fEDqxWjwOw5yPw1cLGXCqCRvI3EH09KzjakQeWSQuqAAeGtivXjE7Fqy+OBV0+0QlmPHXyg3/bOs3jwKjEnZ+Zo1/bPR6l308bBGUXtIV+e9UPnI9PqXW2DN57DkmtvJ/t3zCUwY44zccEKmUndbqG4v8vplxjDIqSxWBbBdt9cmXTyCR4Y2LgednDduw4/fGDKwe9IkxjkABJRCSF6X+7wa2NgvUoHeFNLJ4axvU+y/MQPw30A9cohP8RWMaRk9VoCvcVgR6aNEaOBmURm0Uir75ySRIdMJtSg3DgrRFnk8nGvwxUCyBiJ1LmwF6Xz1wdLLJK4jclZNrBWY0Py98wZvFl1Y1KSnaFJ2OOnt/jN7RRLayzrsLICHY8H/ABeFxoEsWmhNGZYRGr+Gyp0ZAQD9MyrTcsYkk5YguUI57kDNptRIIlESeZF6kij/AKzJj1cmr1IikQKd21WBqjWB70ShYMn3iV7k3O68DdxxXJxMerOl2oAyrtI4ND93jJTKkLGXkXtXzDj/ACP8Znxsq6hgVDKFBXqQCSLwpMslhQyNJAU/8qHnYT15456ZL4myRlfTbAlfiq1a6seuN1GplZ9mkBjRW8o639ckk8SWYxL5iWs0CwIvHih0iiCOKLUO7OpT8SkHlRV/W8o8Ma1p5aCxoQdreW/b1ydgTslITg3YTob6f0y1JTM2wRsyvKPL0Kr+vU5vQSA2TfdoQojZ9wIC8bB++c1NJEJp1Ck7QOp5vj+mIbSpIbgXw41a2baCCOf09c09G8SaYhQuy73AUMJCUswz3Eq6Y+CBIFPI28Gj/TPOfCcSbI2TcNoB7+v0z02onfU+HpVBW7cgcj3vGGKPTxuJnaVn7Nx34X2+cyXph2sttGUWi1kh+2Z21YoyoeQyKORfc+maCxiHTAzFJjVbxyb9v32zOZ1OoYSPSgBb29+1/lguww+hccs8e6HUKi6at+0c89aPfFTzzTzKmoUxA0Gbb0w2n8FDU5ZVG7leAL73j01n3xDM0SbmFI5WrHfCU/YpUmaV5BLuIFeVdoAPfKhDsnVWIlqiwCckYOljMURbx1R3q3MYZqB/fPbKjsI27JCH4pzRPX06YosnozVSyau4+EI6KvII+MhDBWtiysSCd421616559ZPAVZfDJ/Cdp6DvzfzxkbzSagoBNuJP8vUC/3+WY0YtF8colZwleHHXmFn98ZbBqfu77mdn20pj3cHvmcms+5KqRlCp8o6WAO/x0y5Fjam3hrA4Hc/GFdiyQmaB/8AyR0FdfwFTtX2+OcBrkYiTda+UIhUV683zlk0cKgHxAqklib4AOZrQpLrFMcuwA97P5/OB4zLUelgg0al5kMLTWm9X5og813rrXthfZ+pH3OB0jD1CATfQglT7kccZfqhHJpnWUlGohT+Ige3zmbFolgd9M8SBI38rHgqHUH28t7solgLvsviOpaZUll8MnkU1ivTEldQJPEaVnRLsAEUO/Pf2wVjBAZ5E67W3Lw3xjoBTsJXAbgAjm/2RiJDdFUUMxW43ph0VuR/+YfOUwxuJFViaF0ew/zkRmcSNt2qQ1eYFeMrRgoRNpQk0xY8kDnHTRGSY4wBYyjHfuJqiRi/um8XVBCPwjv1/LAXUBtQNiPV2Q3Wq63lCzhKKtQYgC8H4sTUOWVVWnXcSK2jnEyBDJuBYqOp9MNStDyk80Vrm8MUrgOQBuqryj1CdE8unmO6RWCkdRV1iZPws+/aLA83Q++aUgQC4mHqDeR6iOPUITIAQpse3pizSSDGRMJRC5HLFubVgbHf/OLV31HJ1C2rXwOo9MXIDuWIcBgSxPJU/wBP2M5CyRNDsSiF27jxeRel69BnEm8KjMVB5I4B9rxumDzxbSHLI9i2us4SscwYgguaKBbo+uVae2by7VQmwFwVpm8Fslsp1Dnhr210+cEadHIAAPU2TdHKdTpITskjBBHAr9TjDsWNggNjufXH4icjNiiEcyhN5XuvYe+e2O+okVAKP8227+mNiCaWXwSHuTq4B545OG0AgCHdxfl3d++LxsflpNNpVGrQSSEBTZ9j64xg7OxQFRVJdi/XDdt9zuOFN13OJ1GsAiK+EyhWAHPT3GBrwZWy6O4kUlwxAAIBsDHSSBJTH4RIbgPXTMTSyztIWV1KPZKnjafQeuWvqo9wajuPG1lNn+2HwSUNOhWbVADhV4FA4/Uo1q62ADQs7SMmfUCMQt5qYbeOTeOhm8d2DoRtFi++aOYB32AoMgYeJTdmI6dsZ93WR1YS3t4v1o4ZChSwUAg2e/PfGiPcqyAhbHT19MNWxXImOlptu48jknpnIgI/K/AYUQTYXO6iUhZF3Hkc3yOe2IsRzIWfch429ef85mlY6trTpj5G1xTNfH+cJkMElebgWeeuHETcbEhSOtfus5bsGHWu5+emZI1ntKdRQZ49q9Qtgk5bY8Hc1eU82bJySORYSN7bQCOvNfs499XD4gBlQX0F9crBUiUtY9WYxEp1Iu664EO82W5CrVep9bz0kiptsji1HrWIEuwFt3BN1d16YXKmhUsKjESgWM8+p82e2+GOGtiOSF64EUyr5gTXU+uSyTCWbyyMW611Nd8Lkks7Mk2PWQmTYKK/zUeTimZ7Y7GNHgdwM4Z3UngqR0UHnPR6ltRpwSSLsbugyfLClNBRPsAZx15/DycMyDw2IXczC+nB+MhaKQ7al8x63wKxkMbRWBKTXBAF1iqWGa0pjG5uWsjkc8DBZ38TbHe0mt95PE8iRsHVUj4CAEkk+/55QBFEyO0lbjtBJ6+ww3aM1TKNNJK4YMhsD8RI5zrzOAB+Bz0DEAX6Z2NVtWY+Y9D64TNGV/iEG/3xl1/nsk2rAdYNUg8RdxsgCqN5N92ijiZBZr+Ym+nrhBRHKp09AK9G7JI+cGaYOlkeXcRx0ybkmh0n4D92/hhkNKoJ4oXnpgZGZTQah1Fk57TTeHA3iEBAR5yemM8SMhlu6PUdx6jA0mg7ZIkW2TdtIccnd0IOPSF5AZAKoEkE9fywjOsiht68fhUi7zjNEWXa28jtWBJUFtsRJLsRXaojx3xwlXZ4jkbSbHHAHvi51RzbszKCCQoqsGtsZXhEdq639MFUNSaKvHEk4dX3BBW7sOOcRPqAsq0L3DsavI5X+7G4y0u9toRTwPbr1z0GteV6aKRV58j+Wq74XJhUPSsvE8qTSjlDtArpZ6f0zs3gtStH5RzQOIaZoiAo8Peed1kHjoMU0hlmVYnLBuelV7c++CzcR7u53MrGRWoqqi/XjGB5PEFxlX2naOx4/tksW2KQRgyDcCwW+nrx9RnC7pINzkSoQSRzxf4R84rZuJZMYDAxa7ZCRQocemZ32JvfRABQNrN5twJJ3sbOFJHHHo5BJM1Jy3NH6H4xP/p3UJNoUZm3uzsGUdPxMbzdoKjSZvJshQszFuLvvkjatUYbfOTwqA2P+s5IXkcyRsBRHNnkYMcUzONwZVHHQc/v6Y7JpehaaQjyCMRr056D2vKElMT7a3g8YUYU7UCs1de4zjggfxQByCuZYBu2OWpE2gfhHphp/DUNtJB4+MnYyRsG8MCMfzE9MOKWQQgFg7E8VwMqpK/2TaHTSK5Eam7/AEyXciC0IG7uvY5VqI0MbK4IbjkHpkWwRUHYsCbsDn4wfK23oYJUN8VotwMf4q2mxx84BZ5QGYBD2s2MBo5CQShKnuwGImaUSbAqlA9EKbIyEmykUg5CltGxAo9PXvihattRhaHlQL6jDjKyCO2DMQWBrb04/tgKCjhxzfcNwff3xWUQLSIQtbkbpQHPPTCaUxoSSXG7/eJeSMajxGU2LHnF0fb9cMGQxlVlWhRqr/fbBY1BNqyNPIU2MT0bw9zc+nTplOkktQJHW6APHJOTCaBotxGws20AkW3XCEixL5lK80DVjNyditWqL1kS2bcKBADD+mDvjlYgAh06kjrioo3kVmKlCGBHoel48bt7MCtbuh4rLRtknSYppCAKp/kdcSJDJIUCN0Njbx84WollJKxqL9+L+M4jSxgALv3dRfPGK2rHSGIiOGoigKHk6m8H7uFbcKQuQOOuUGdfD8gPvYwVlK8Frput8D5xqQtsQIKNqDVWQQKzk7PsvcB7KcYXimVdq2xJ/D1xhhATcd34aJA598HC+g8vsw3g8TU/xCXazV9e2a8SIke1lCKBfJzs8USAbFUlPfmsn3+K+xx4cY4u+T++uKlxY7lzR2YiUtGdpc8nbfOEqsh3fiocW39M8VQFlibaOu4HkfTGSP5aMe6juJrC/wBgv6I/CkcGbiOzRJNUP3ed3cjftC9V/wBZRHNHJExLKzX+BeDxiZpdguQ7pCQAQhI7XgaVDXbCZ18FqBC1ySvJ71haHbNE10oYDr3vqR+mAsYlR1kG6NrI9vasnCPHIXjj3KTt78D0OFV2wNeIrjgUqItpKdSCNowRRBUqxG2gB29cY2xYldpHW7sA9M4tFYyhcKRW6uT9fTN0LbAXRqRzTJ15/tg+DJMhZg0asSd0fb4/p/TNBlVoCu7wr45PTjJdNBE0W9GVyrbWJbofb9MfhRlP7CWGRVTkhRRT/rCn04kNbyGPcDvgvKInK7eB+E9bzscilG3KWskmu+JaF3sT4IiQBgVB5BocVjIYS2415gtCz0OAWN1sJXafLfWjgaYybTUZAuySe/oMCSsbaOpHuema9h53GqNZ54SpCtF5ByAp6e+M1ETJ4dCmLWxvmhhIzmF2tXYdF39sdLwW/SEM8gZ0Y0CBtugfQ/Oe1g2v4SM1bQD5Qb9qxpTwlB2BbO489MzW1Qn04k8KwthjyOfr/X1xWVjrHrFa2VAJHlsgi76/XFyRiVfCksbgSu7giuvsO2J0+rimRFcjbW1bPA57j8/rlZV1j8SJ0KoWrep4+D641YF4TrKsZ1DrCOGUO11vUAE/T+uTM2nZd3gsGmfcGA4N3+uMOqLPt0zWD5nBSx9OfrjYZI0eUqoTZ37Mx5sDt1/XCsD0DoYVZ11DgQgCwd1k8kfTtlP2kkYvau5F/CVPQ+h4/XEzs+i1O11RndBYZgQw+nQ9MH7++oU6f7tII/wljTce+I076NvYOnmjOofd4LlwD5DYA9M9KUXUi4xsJ6qCT8fORaKKBH8JFM0atuPmIK16e2aokUgrJaqK2L3P/wBrx3hhOn0kPipQBJsjycqaqjnNRLEkqgLtMYAH/wBgR6fnnvD1Ek3ioWaInyFGB+vXjI9ZJLpDCokk3qfxv5gDfIPOB6FFCqupqdXHKhWDdDXau2ObTAOJY4QqgbSWH7/7wIJI2YIIipfkqRZBPfL+EPhKH81naVPUZNmbaEyRLBpU200Y5sHmvT1vFwHbHVeDG527rLHrndQxnkDhQqgUSe/+8FGWNSwkLF3Hl6Aj0H0xl0Dwg+1EMMZRBHVbLIphfYYUOkfyieNVc0V8nBrrfHXD17iFnWZWV2JCUoqh/TqM9DM0sYnjHA5CsS22h29Mb9IPh7VxNpyqgMvhkE2vNf1wpQGIbw78u7oFJ+AO+Qy/aGo1GoK+M7BuB3r2wz/Efe0rbQNoi6C656nA07N/RMKgpIjDcC1gMvJ/XtlceoSeLwXsDoRt7e2HG8Ui+TYrDgbuCKxTFlKzCMhlc38n+2LVhuyzRyLKrpGilYVvax9+cpmm8dZWiYeQjaxSieP1zKWaPToUkiLyyWrMG22vXoMsTVxyx+E67JFCivb8uMzForg1LvGN0igx8FR39MTulkV0aFdvVXWwV9h+WK0UKjVxoIyzPxuPQk9/yy/UQPp5PuyxtHGQaZBe/wBx/jDxdWhcToX4cCwbq3sRSqOtn1yZZhHIzFfEZjsZgaI+npxlmoEDQxtBIQ8aWvHf2GZ86gqA7iPzFmQCvyxUgp2NoTh/4jxqxLckgE5nPqyJjum2Cuq9CO5+cvVUaeQQKm2gAO5I+f8AvJZUD+fw91sQFZL2+/OZUOjkf2s6yMI51ljCAhnUA/v3yp9R4sR/hmLjckirwb7D16ZkRaeYblO1mW3CsvO09fasDWpOYfDR5IY2UbVHKqfnG4psLSKJtS832ij6vwpWiorSUV7849tc29l1O0q5tQyf0r5zG0yPCHLoWv8AnHQ5b47awrHLcbREFDtsmutHNJaFLChnhmlUvEWCHylelfv1ysuYo/Bhj4AoEAWQR0PqMzGmbT2UW1s35uh98uhliSNmAjDjiieG4xWgtD5NTcSptUNwdncEdxnJdSix+J4RRQLCqfxdbyPValUjWPw7CEElOevvkWo1rlljjVdpPVup/XjGUBase32pIHeVtO9keW32kL7jKNNqtGPMyT/xPMFLil+MmhEWrlWLUEpIfLbggqe1+gxmu0zaaRXWZZPMqkIgI9/pma2g0jYEEMqhpX8ixsu4Cib5v5zOOn0KRGBJpZx+JzR5+mBqdWFZYpfNERW1WPF9MQyRmRjG8n3dRY2ry2DaFS0bqZvumtSfSsqg8EMDYHHT9cvEMEchLNuLAvbMOSetflmYkKNEmphkDVwfNyefQ5ofd2MMfiSx7GJaNkNlfXFYWQa6USajxA/lA2nk89qoZGrHTtNsQSKtrtbpzXF/F4loyzLplblWItjyfUjPSaiNjIUY3XI7n398qlQ6WDfs7QxavVyal28ONFqUF/w8cGq+mCkEenllKoHUiuT1/P8AfGJ0+sVNQjwxu7EUY5ON3veUaYCQykxuHjW3RfMG78HpjSsAmbVRw6hVdaF7TwKB+mG+peAOyxkP5fDDUPqQOMJAqRajV+E20Co5WN+cj2FYvSwxMCdhmJHJXk33PxmpGs9otQ+reSTUx/xPE4AP9B6D2xU8yRSyBJijO53KD261j5oYIJ5QV8LkkMvVb7HveQS6eRdQKUNZFtd7eOuMqbsKOxxiZZDy1iwwIoAdcMDxhuYorI27ymm9K9BnkJCspUuteVl4UjFoiaaNg0sYJPCEcm8YYWzlVZmI8vRSdy+9e+L+ztVqdO4QGN1BPkceYegB6/2w9cU0TCN9zbbALNxXpXpmVFImr1g/hSBXNVGCdrduPXOiEeUX9E5NJmvqvtuKcup+zlYRkMpkkJIb93nYPt6cQmKbRQr5fK9EFe3vnBpdFLopGgKjUDhWLGMjtZs8/HOZiSTrqTHKqruHVRwwHBOGMYSTpdAeFbaRpWiJmG0myVb88m1iKrsPEcc0CRwxw5JkEwSORXF7dt2B6fnnNVuKPG8m2W78ynn0HzhimmrBJiQmo3iSBDIdttstto9SPTK59DNBo431RjCz7nShyK459s+jbVf+0aBEWONVlTcIlQoSa81nnk8ds+P1uteSZmJ8Gz+FTuUC8MW5vCbzsVHUniJY3AXuHFj0GdaJ9/8ACYUB1PU/GchkUQuVFMrCt4tW45+PbKNYsEkcMcbLJIFKl1Jpj6j+mXbpi+EOpkMm0RlhtFcj91iHBdkBdQoqmONnXwApROF4s885OiEC6vuctGqwlLsfLqFUPuTzjyhk6V8ZLJMxARSVBH8vAJwZZBufZR3cFsCSwQpJavTKRjRKcjbSWHdvreenI4+MsSQOhTcFeqVyCePT2yFCkMKuACpJG7b0OXqkU0CTERtGpphVV/vvnFNHUmHA6NDtcrtZaFE0DfUj3vEtJIg8PczqB1vthTxDSiFETcw4oMKPN8/5xwVNNNIpZQSB+Ejqa+l5PBrOGQvGreJGyg3uJP8ASuvXrnhExjEqSLuo0fE5IHYj99MDT+CkbnarE/zHkr8f498oqOOLcECtze4YrzoKYChVjVxKiSR/jN3fwcODUJK3ikByqkALZH598HURW0bLs2gXRBP0Htf9cH7ojTIqwuArchWIWwL6YMa0NnJvtAHT+GqoXZq8vevX9852IyStbFdycD0r+mIgb7jq9zeE26+OG7dPbLEhV9OH070t0dxuz9fTC0o9Auz0k6NCzNuWXf5tvAI+mJbmlKn+KLC+p+fzzzaad9Q6wMJC/TfX7/TG6phGCAkjbV2kkgdvz/6wJLw1j4008roZT5wOC54Nd6sfngyvtcrGkTqQRYNAd+uRJ4bMZYz5gAQo6Ej998Ymocv5PKRxtNE/OK4uw2cpnAYNGNpN/wDE/X8su0rwoCXcSM/ApyQD8ZzQaSPVbhKoIJoFv19MVNpfClbwVKxo/U/hv49MVtPBkx+o1EfiqENUaJFk/HcYJkaSW4wGWud3Nn/OTvFqVnQSrve6CgWAD6npjlKyzKokby8UtdfTFpJDpgRxushZioQjjbXB/XOSBopXDMrK3m3FqB61xXvl08CacLvJCgWBwAT+wMijkshippWJKqaJ/PmvjDF3oCn7OR5nXxFZpBe1rrn4/uc05lLQeH40awEb38MCr5AF5mofvEZTeynfbbTX5n/eGreI7qZQGJ2+YGvz+n65KSbdhbI9Ufu+q+z5EYkpM55JIrZfe6+M0fvRmkR1BlLJxsSjxxVHMTWRywzRa4MskUkzUASxVtp45/fGOOvM2oikbVUt876G0deAM6JfHcUIpU2bqmHwjOXYhvKFH4gMn1EoA8J2UqgJs2Sb6CqFZE0gTWoySbzwx8IkUPrlq6gTNsWtxNAnoR89fk5z8eI12FLoDLoo0J3UoohbH5nn6YoaXw9qDwwVPNAk+vGUQyST65IIVZyrVRoDr+6wpoEjjkYsGceYLuFA++LyaxmOeCZ9YZKLRpzsu7Pr8VjVjggKyLvLKCTbHqR06+mc0+sgfRMJtNulu1YOa/IY2dkVlMahmmp2o9O1c9szQt6RyCSbwi7bGBAAvgrfocvdvu0IdRSobLsemSwSqNZ4EyAk82L6513SeFlQvu3G/QH198VobkUaeWNy6RN5rs2eef8AOejVVVGZBI/Jpj1INV7+2L02n2ybHP8AF5K3yDjNT4canTiNCQRRUdu5xGlYbFoZnlIBkjEZtkVhwMBtR4REskhkJBCqDyBgwat449UlbyaWyLo9/wDvCTTounaRFDy1zweOeTmarsKkO0MscuoG2wygsBHakgdie+Mk3/hn2iJx+Kq8vp+vXAh06FOfDSQgEFeOPn+3tnJIQJo2R32keaxak+g9c3bwWyifVw6aMMgLtKfJTgFRxzR9M7oo2jlWaKcNKx5DvRvpz3yR5TJ9oCwC8A/AOAq0KJ/165XpNNLIkkssiNz/AOPuOPTFcUkbpBz+GJvDdCtgnd2PPb6/0xIkZyqyfx0YVsY3Xa/684U5d9LvK7YyBbMBx/cfXJZCpKJsDKao1wR0Hz2/zhUQp4N+7w6JnJMh/wDqx4I9rzckeA6KEx7XCrtANHb6/kDnzetkkkmeJPC8RE/Cik+X/HGaH2Vqkl0c0K+RQ5JO7v8AiB/r+mM45YkvC6WXwdOFhl2qg6uavvV9czoNW2odYqiPN2H5Hr7k5PrZt6qzk8t56qiLvFM0R1iakDe1UUXrQ/TAo4NWGl9pvDJpgBScgjfyfQ979eci+5rHo21cc5CilPhx3fvf0woC2q8YvHvVQSb/AHx9MTA7abSPYWVJmUAO/C89xjJUgJ0sLXMMyoCwV1IG5LJoD+uZ+laSHU005aIgWAtHrf6e+Wy6eGKZTPuVGalZCKPvkeoVm1s9fhCAKLoHkVmiMpeFyqJFZ5QdikL5hu689u+U6OUmELYDFyoA6tY9fXMYmVYRqFsJXQVd9P6ZoaCeLT1PKd7AcIo7fHr75qNJYX6ojw41Z3KMwQg+3b9crTUxwQFSQkjmixF8fv8ArkGmM+tQy6tSFO7YnYD/AL4yuGPTvvsilAsA2OmUUTnm8oPRKnnWLU+I9hip9PSv3WJ1yKdngyb2JB/8gIBB9MXHLBp4pQE2qrEJv78+vWv65FqJkjQyMqKIlsBBwfj1wUFXdmpo3vTFZ6MiOTsu6HWzidqSSu0YDEcnz89Dx6ZJ9j65dYC7KAQpXkXz2HuMHVsdPq5XsgC/wjge94KoK/0xGqVml8COR2O3puzoZ11ASbw1UUdiNdcdMW0DTLGFZQK8zAkEelnv8Y6ZFXUxpPIrxf8A5ao/9983RXlZYGZJUkhl28mx1/7yfWa+U6yig8LhmU8XxnUlntREYQsnmQHr/askmjD69QxNstEi7+n1wJUBGkz3ppDDCEUdTYJ+B1/1ke5YURFlrqF83U+vrfbC1CSQtK+mFqE87MKBOScyacM0Sxt0Brk4ErCnQ9PE2guajZutUFHvfPPOa0c8kaLKjRiM2LVSSfn63mfAsjtAJJAVYEHd0JHTH9C0EUjMUS2UL5Se1ZhZOypdd4qkyItbaIPAFV69cSZ3Oo2xGL8R2gjk2O3oMhSddsZbdIqGgFAO71sHHtHJ9/jhlG9GHJXt6c8fphatirEaWh1S+JIZpEKsPLt7V9ecCDWI/wBryCQhwYo5EZOVoFxRPT3rE6Kb/wCUrTMjpECWT39ec7E3/wDNG1CFUi8B0J46qwIr0/FjxWMSXZpTtp5YyCArH8Nn+mLkiTRwcT7Aeh77vf8AxmbFqBNuiEYec3yRwvrXv/jCha9Ky6lixjfysxoivbviUZJpFiakkbk5DVt4Hm+uEmuE7ojbQFBFsOB7k/4z2paCWGHklgB0auTiJhIdS0UPCADnqQPXCoV6bkn4WrJHbCObeR+I31P7rOidSjDjeg8oJujffIdAksaSIjjxCCQAK3HqT9fbGab8EjMFJAstYPN8DF40xWacZSSKLUOY7jJZSwPlPI498OCUPMUZkcjsSCBmd4jhVLyKFQWgJHJvm/0/PB/9zhjlG2FFZuSyNYP0x7QnFvEbjMsKUq0xNUoyZGjkdkBRmPTnkeuZ2t1EsyGSOS1HGyqJPvhRyQrp4maREk4YFet/94rds3BpFEhQNUkbRHvXXOtBEyHZyBVE8gfGLkkY6gFg7S7LCHv++cWk5aaWJQF8p/D/AC+uCka2MVtPp0IknDG7BJuz/fO6OS9Y0JI3HkL/ANZFIkS6KRmRDJ1diDfx/XPTaaNYtPJGRGWYedaXdfvgSVhvNNLmQtSgbfej8YEckUbytICu0WVKn99ckcyxSLHEzttFddwH59ctBCwMrOFNjzE981haoXLM+xRFH5Wa91/1zhC1UjgC669ffOPEUVGEbEKaAFfhPXEzSxpOpJCop6VwP8DCqYelgEciNHIsUhsfi5rj1zzlJHCSSJHxxYFke+diVBqx4cewbfNQsHj0zhZHiZ7jAJ4FWxzKIXIVt0uiRizKAT5bJsE8ihhQSLLCfPfqVNn2yDW6qpYoFJ3MQQFHJHz+eUvEBJEqttJajtNGr5xHEpfox306uqOQzVanpWN+8EgeFJSKLJqx+eSFfE1MgAjAF/iuwv0wZQ0WgUlzy/Cgdfp6YKB2basyk+ZJK5IQ8A51teIVQADcx2+YcnIjI8UCSaeHcxABF1Q9TiZPFleJdSAKYkEdayke8JOOaVaiVXZ1DIwcksBR5wYz4ZSyFY0TfA/fTFTaHTNqtO0atDLH+AK3TvdZA8c/iSGDU7rBFyruJPrgoeNNUbFVtV6MIojnqOv+8fDPGV2QtdmyAwO05gRv9qLHvlijaE/8bta5rr3NYek+0JPvgZtH4EIatznaX+AL9cdYBqzcgnb7zJGygqOvH642lIeiDuobgbrPn5/tIRauVFV0UmqCcn++FrvtZY9GohJpjV0Tm5ITg2zSk8It4jOHCMNpJFg89MH71E0jw+KC0YB2kmxeZcm6RUdEi5PmojnClkLatS4RCEph1rJ96Uo1BLIV8UtQYEXY6/XBhRwpmWdWLiulDIdL4E8gMl7doKgdG/xjhqBHI+0eSqKVZBzdIDu6Ra8plUAhZGB8xvgZCkkkTFGCGMfg7AHCS/AY7yWAogdsDVSXBCN+2+544zNAX0Wu4mC1MsZPBHph+NHFKFNMxFDnr75HIYm1UexQFPQBa4xUEbP9pStKF54G+sIa+zU080c4dSiBVNULF4wmKUKFkjNNfBHAzJUStophEBGLI9BXzndNN91RTLpWZALDKQb9+OuVtE+L7RtKFCAM1DoCeuLmkAXYskSuebYf2zkLxTRAFxuY2LHbM9dSJEmHg2wNtI52gD27nD2rFS0pkndHKIwaMfi55GZserhXVeDHIBGo2kKTR3G+Pe87MR/C2b2Q0S1/2wdSyrFHOgSKQGgT09+eOci1ZZFiT6fwWDOygEAj3+uFDPDNM7CZPKDZkodfTI4guq8RkUuA1kdLN4HhwLpppVjBkbk8cr74UjFo1Ik/A3kA5BH79MnlbVRKBAhKs1kg9L5vA08LyRLTIu3oC99eOfpzlMkj011uDbVthRPY4HaGXeDoZGcncvSmFHr7XkbzzGVkVtq7hxd17c8XnI0lOrXawUUAaoUOvT0rFfacot4orWMbSy1z163muwpUyuJEhAVnUMW2qGNk+/598AHw02lzuclVBFEepo5DqftAbtOqItseHB8x45NfOPk1mlIVoyhNbPFfzVWNxsDtdnrkcRpLM2wCww6Hk/nitXpJH1MckU2wiwWUjmh/rKUPi6aeWo3Xgox5rjsMkmUbDLGd7kfg5o8Ad/nGpemUmP06shkkkkVgT5nLfgPNfvjHrEJI12jchG4nfyp9P1yIJJJr4SYwo8LYokWge/T2/tjYvEMoI1NcEkIvB7ViyjlmsqcQTCSMgLv3U+80R89a/wAZmfYmmMUeoYOsaLKzKqty1seo+MrSQ/8AtqswJDOaIYXfP6WMyfs559XHq9Q8kXgxswFUzCiRTflgS7Cuj6XS6jxgVdVVgaID8thy+HLDTyIhB/5VzmXFMEg8QxghqO8ALz/f+2PTURmapY4w5j3kydrPpm7JtNaaccquDsZKFjpzgSOFVTvjb+Ugmj+WTQptM0sS7wy0NvTv26YUqK+iDsKCiyRwR648o4TT0Z94ZHSJXQ7vx3ZOd06NHWyUs1d+SBffINazLLpTFIXsd+CfQ47S6hkRvMVaqYdwcVP7GafhoNICxaWUXXIHbFT6hSm2NwDuIUk0D8ZEjxyaeUO53jvXN32xJdRp4I9xa39Dxmk7Aolh1W4bI1MlKCxBrvzz2z038R3kQh0FUO9/OMm8OOOPZFtQ/i2f4xM4hldKUKwYGugI981YFS3oX45OxWA4ABK3uBPevrj98U0+ybUIhQUxH4V9/wBMk2//AMwlEcpuMhrIsfsZENQul0upMzgh3oUeG6/li9FKvormZJXsMWjBIViB19fr64yAKukovsPQndYGQMwWBYiiDzDtRF+vrlYYSPHHKEpL2Xx++mK4phbdFSyCWZgyhdqhhtqx9cYXhCNwDQumIHXrmfJMqa4QxIvm4Nfvpj4RtgZhGksYLAmxfzh/F4I7ReJtqjpV8bv1xkrpFGH4DdAxPGTxNG0cYMgClaCu34uaxMaLqNY0JNoOgbnHj9CP7KJYvH2TrNW3oe2AjmHVbjJGy3+GxYOBNEkcMhhauen9QMJo4ItAklncwsE/qMKh9h5ZQ64iCZDGg69aIznj6RIN3iIyE8m7v8s+e+0zLqdTGsLO0ii2QX5u/ByjT7pZNpBWgDtrr0/LN0NxtWbA1MMm0rHu2ta8evGDq9SFtPECO48tjrkelnNsY4iHD0WPT88OTfFqb3FgR0q9pPfEkzRjo5EZwS7koaBA4PvjJ5URwqgEoOAD0PpiFDfzh3WuGHBPJvCnYJEJEUlhyT0BzJ4NWgfetupaOhRN7uLx8u142SwgY8lj+mQQmJ9NIz7d3WyvNDHPqIYoIYVQTMzV5rr649LqxW/oOJHkLxRFdiigd3TnpjWLBi7eG5uqLV8/XvksHitqdqBUA5KgVxgMHeZt7f8A4nJP/Hnrg4oFtsv3eDtUBLNggdsRA/3rUeMOh/EqmzXS67YkzJ4ARylb6veORjI5om1iKj6ez5T4d+cDqPpjcF1YLa8HPqo5Q21VZE63yx+MZHHHSqXYWo2jbxkrCL7zL4gQG65PB+MfFJqTNHaIqGxweSBgS2g3g2DUDY4ZlJQkBm4B9KxaTusUolcAo3F9GwIWDCR6QAcsSbFfOTFyun80QKs25TZH0x/k/Qq/ZQCkkhQrbAdVft6ZcUjRtrEKAvIvMqNSuujLbfEUXaihzlKhpdRMTdgDzP3HtiRSQJN9C9TJqUY+Ekdg0RzVHpg6UOmqjEosk3GVNbTRHNnnB21piyszDdTdzf8ArCgdodQv3l6dgdg9B+/74ygnrC5Poo1Egil3Tsp9m5oYrxVAYF4/LzuBrjJBJDLPIBLBJRpPNedjdRpJH8z35SaoVzzzzhaCixZEdyEG99vAsG8zdTr0sQ7kauNpPQj27fXGxtLFpHlRhGu2rVb568nM6fRGb7ObUg8uwA5ocdTXHf36YOI0XovUrC2uNKWvkqjVYzSjk085KUBa2xaTofgdcxv/AG945N++Tf69m+vzl32ZE0Gu8bxnLFCG8wJPB4GBKijeEepkK+VJhCsfm8op75oflhaSbUwQbjR2n8Tc9enX64PgrIkmoaMgE1/F81UT2vviVmiOksyhnMgIV17f2w5VDdlGp1LSxh3kjebcKkc2QO9jL/CbVaSLWK8cLB+Lccj9K+Dmc0cc+ohMQkUbuCTQJ+vXNKfQCBnERjlY0zK/r8YG0K3Qpodw2usYXcSrBiBfuB1o5TGGkS2djsXdVCvy6jIoNWrtIHhKnuQxAPHX2xk5i8KKQylo72k0LxWndG8GqoaSQo4YEg0DwPbFzgjTlJRpyWNKCefrgmYDUKumV22+VmSvMMnU7/El1J2ktuAY9OO2DjY1s0IEbTr4k9RlRQWunp1HTHyMk2p2eMniItBeazOh1sjfZgRpQQrHzHih6ZPqftIJq9M8endAaHNBWH/L3wcdF01FB1c+1aXw2FV0JF9+3OUTQLEptRIw8zooAvnINC00+rZiiquwMiWOTfX6+2dlm1kcpjMiUOaY1t+DglnRkm2A6x6uV9MY5AHUkMF+tGsCf7OaLRtIJDLJGtjqp9DXtkUuqj8Qz+KZHkNnsTWXHWbdAAzNutrG08LQ5wJSH/hBppnJB8FUVOo2jj398vuLURzCWmbYGQoeN3qcydLqBLqpgjIVP4A3FXx0zq6zbNNcg2r5aF0e147jpma8ethWA6dQjycKr3ycVJPGJiglXbwpvj9fb39Mx9RIGiVAUUDpsoD64cCh9csTHcrizuHA/PrjcEIjRmK7V4UktS11/PJ3k/imIrHO6Cv4jncvfOTSSpI/gr5KsEnkduOcgMiujeKmxV53ql98aMTWfTfYpP3+Oy4Rdxu756V8ZuavWaYBQX33fnDWFOfI6b7RaAwqInG0kNtqq7n64es+0WOoZII4/AQWirxRPp9Th5VGkI4uUrNRtc51TDTKrrssSM1lKzOMomZmUhJF6gG95ybd4c+zw1jQpS7XuzX/AHk+l1h06S242N1F8/XJKHpWKNJZykUc5ogmpLIUn4y6IadH2+I4EnG7d3PsemR6P7T0keikjm04CyLQAXdf1PTEeKpdPDFhBZ38C+mZxSQNdjiog+0Y0QnahJamsFfT4rA17fdS7kjwqtCTYPt7YZgjh1ClFTxlQsSPwj298P7X1OmjgRZlQofMqqOljvjRSaA27RltsRIzW5LLEqeOfQemZeokmkcMCu2Nq27+fzwftDXNPqPDYmpCNqKtXx1x0MW2SMbhTR+bivz98oo0rZSy2bUFZUIZHDKLUmit47xljoq6tyTsPPP98n0+l3Fple1Shd7ivp26YmDSXMXeRShlvr73d/vpk6RrL/tFNOuhGnLpHqifEPNBb6KfXj8syInSEBJUl3K5IYkUfixeUSQT66DUMUJJk3k374uRWM4iP4b5LclLHbHX0ZFemiQaotNKobllUg2B79ryHUfa0EeudkjeQMQqWehHcjKNPAp1Nuz+Glgbep49LzOfTmfWTx6UbOfLZ5AvDCMW9M7Klmk1EjHU7AwFlDQHt365ZFEQyONRGYnU7lAK16i74zJ0+lVXBkfeQPxV3980dI8TaVUaUoFJPl6MfXFmq6MmPk04jMj6dGYKthfE3X889ctheWVNgYun8oXgjv09RiNOkcppoxvKWAHoHGKokiIWiCeDdMvrzkZO8CRayP8A+U38y9Rsa2+azPeBp51CsNnVuQbP1zS1UIjiXY3PAL1ycWFSLVJGxDvsFH1NdP65ROlgU8KdNpNPHFu1Em1QeiP+Ie+DqpJPB8KKSOL0YHgg8f0yVNPKZpEVlcsPwoOB/g/GNljP3DlNsi2LBNt9PXErbsLJ5dK0MICutKDsF7r5uwO2Oj1CpPH49K55AVasn+2daFYtPEVHmAFsQSG+D6ZySCSWVXlogCivBa6+Me77BhSH0zmWWwzum1STyCODeRLNEnlEbFXjvcDxY4+mMZZonXa1kqQigDj1F4iBzplJ2EsQykUK5s4EgrDkwEULbSe9qa5+B8ZHvYwPJKCNhJYDoM7IVUbpGEgbmq5FdvbAX/5LMjqJA4Iq+oy8VS0FmbpE+8M+r1kRZF77unPHBPOPj1EOgjeP7OMsz6htrQtGQ4rkEfrg/Z2kaUyeHenCjYPGAIVvQE83lmn+x9WrpJJOgmjcM7glGj4731/LtnXKUbpsl5hAo3oNRPDKVfoCLG3pf58Zwa4HWExeGyAbTaAED29Dm0+jOnIjl1Szwv5KMZoWex/5E/neYP2hpZ9FK+r+7Oun3iNm21X97wQcZujNtIZDqhBPIyhJGcFV3xg0T6ehx0f2drpJvG1kDfd4/OfDkUk0fnpmTKrbxHGSzM3G3LtQ2q0eoi058Iig7bOaauhPX9e+Vca6J8rZX9s/aSSSqmm1MskSgeRugofrmESqKVNurkHjtlEx8WfzFaF0FFAe2JDoZArAuw5Lentj/HFRWGkynRwIgD77WMgmmrzduM9PtaR5DfJPIX8RJxyr4USJAxez4m8rRqun0yZIn1Um2NxuZrUE8Hnpi3btsNUhMkQ8LxmICg7Qti245P0wIgtMSFC8cnLNZGCVjUACNaAHQ0euTNp18HxR37HjKRlaEapingRiaYWQdpAsZGx8Oltg3Rv9ZoF4trKtlW472MRqt0rKWI3BRt2Hhfn3ysG/SPyRzDRhp9OysGO0ggXxd9coClYTuewpsCvKfnJkiG8b2AoWwHFVjUfcQW3Kl0KHLcepzllp0IvRGmIdtpryijVGuhs9M5NpoHjNLuQ89x+Z/tgR6kK5jViULgva2w9cejloiygEE2e1jnt2rIO07HwmiuCYqIiVK8gjpf640Qx+OxMaxg+YkXQ9heejpiZWQeGpo+YC8KdZJYiDxFXFg5m9DQcbBVUsu4ejcVfTA1EY8DjaJDV7Wskf755ymBR93VYSsktebgnteedYxp7PmYDzqq8G/wAqxE6ZmjO+7osSt5wlHcvQj64xWDPuiB8NRyrP3+MOo5+EdaHqw56YxWGl2oBagmvcX3xnI1ISpkSXxZkbe5u2PX454yoTpKS6zPGwU2snNj0GIVdPMgMYVXAP42I/1/3lZbT+CoDgyCrrpfp9MWTAkSeAtlo4ipvg7bu/Ydq5z0IKkliJKHAI5b8steTw4UhESobrcDddf65yWSBtJIBQfuXH58+nOLyY6QEX2gFlRYF8MMCeG6V2x3jo3mYHzG2DN1Pwcy4oGj2s97SePn/GMDfeBSyAOhAFjy+/P59u2GUF4ZGikqSiiFSzxZoE9+cqiSMlWMDI0d2GWg3ufQZJ4BdtyqCRShi20jj3yiBCupQmVQwFNRKg8dQfTjIsYHVK6yMN3isOFdQGC+p+f6YiUpD4J1EO7pRDdfU/OUzTo8xjhkAERAVhSiz2o98WUSV2nkdWMPmG4eavpx65k67ClY7T3rYGDRL4Y6bzytcfOGNJDEq0Vuht3ccj998liZolMwiVSrkja3UH1HHPplSu0itGlB6JJKUGFf0BxGn4ExPtk6hY5Y5StiZFVVUV+Luev5Y+crIAXWM+IxCeH0A7V6/GO+3IG2aRZFQvJqo+QTz8+hrsecgZSs52KFRWLIeyj+59fjOuO/Gif/plMX8NlMsUjB1Niup/rltmWZgNOBERSqqVZFcG7IwNNrF1OjEk8ztOlKg8O146fByvlJTIJm6/jI/MfHxnPNux0d0Q1OjleeaaPcslIiigoI7nrxhyRwzTeMFHkO4hu/FcG/n1xsTaRx/FQpEvmLcKKxuuk0zbW08rlXNbZEG49vyyLk7s36FaHTqiygKGPBBJ49/fvjnjjaaNVj8IDzqo5ux09bwNNpmRTLTyIVFKOCa7emWaNy8pk2oqVwChuquvnpm5CyRnT6fTeKxIVJIrsjgD1J75Jp4pSNisDZuhxQJ4y2WM6mZnIKKedoAN8/n2+Mbp4kjdnCb2k6ADm74OHkGsAkSWNY9PJzJ1CqLoemC0ce1ppIgQvljB8tn/ABj9Vv8AEL+YsHNebbtyhIG1cUem1AZFa6Ki6NYnoLwzdFpRp5nL2xlPnH+PTNLTxpbIbjW9qj/l1HfKl+zhBpXCNHqJQAK3UTmQ6ahh4UcWxvFBkMnH0HPXBJSb00WmaTx6aKUmnCggkOpJB/pjxBoda5WVqHB3g7b9qOR6OPx9TKJkSMqPPb2HNcds5LpTFpncRo3NeVjx6frQxFdgaQkKkGqeVAR4fF7qsHpjooAsTSxy2HBocd/n5yco76jayv5lAJ6gVnI4JJVAkkLbdw4XrzXbDVlCmebTxKyvDIkL7eWolj0JA+claPSPP93BmkUsdpSibyvTabTxtIGARyLUlhV9f1vIpZ9LGbSVN6tXka6+f3WMr8BSEzQ+Lu2oCoG1Xbm/Xp14zunjACw6Zh5h/Ebd1F+n0ywSs0ZWwzbd3B5H05/YzO2zRSb4nQC9xtu9dPyyib6C9HavRvHtLRhllAYsB0F/6zP0sW+VippUJTpxfuc1oopdT9nM/iGR1JUDdu9ycztNM+nLJIwUDpu4v9/rjRfaMfRx6bQarTqoG8qbZ9xBvvfOEPsyPwZQkdK6jdvXoBz2xH2VqI9u9wAJAG69TfPxmtPrgB4dksB/KKBPpknaIu7wheNS8e9A8Nn4Ue3yazOkj0x1LqrkOtsSDz1/7xms8do1kAIno7v7AcdciliVEXUCPxWUHYegB98Meh0iCXUSPO40yErYJVzZJ/P+maEKrql3hViYLywUjm6+cni082m3yz8l/OWHJ/Lvmrqf4MUKRCpXG0Eeav36ZR14M2XpMrJHGZQ0ak+b8JLA/qP14x+rWNXlVVVqqq6br9e2RRBAIjKAGS+VXkk+nvzjzqRCisYgsJQgR7fOOe3bscClRBx0TrTFGGjYhkNAUu6zt6fX++Z00fhJI0cYdCAAXNbaF9r4/fOaGqQAgFPOHCr5T5V4v6dclCjTRGCRHDrfDckDqPrzmsrFI9odMYZgBGFVlBO66PHPHzmhq/CKxh1pQeR6+mZ2ibe1STyJdA2Pw+1dfbL2WeafbA+1C3oKu/XvgsVxp2QaTQs87sDwtqpI4+gykRIwNLyB3Fc5qRGOKHUvRYpZNmwT7ZiTzv8AeQI/Kr1uO6+D6DB2FfkwoZj94eBVEhQgDj8sB/xuZUO/bW4fyjuT6Z3UxDS/xv5ywrzWVHyBkmvkkm0vl3KpO51DcH2PrmrSiorWdvCEGmkBY9TVl/T9++eXTRODC0BSTuwu198k0+pfTxDa0qLa+bddEnp+Waya1TICSWVeATXXB0xZKhFKZIwsbPfCgLyB0H54/wASPTRsp3LYAsDp9e9YTABpCxsheBfPv8YiBwhbw6IC1vFE31/1mti9jPAiBSFSzLJcmxTyo465Pq2ZABDAS22yZeOnzlGo1a+EryR72u/cGh0A6fXJPFuOSNtx8g8g89H6+n0w2FL7B080iKGZNpc0i8mqHNVhNLDodIdXqPEeGFrmNbmEbDa1/wD8J+Bl2j0MmojRZpCIiOeASf2cr+09IX+zZ9IkiSGaFxbDcW4oD0648HtvoSTSxHPBgTbOiKUCgjaDddf3xkSP4u5IVAiU7ixbgnsOcq+zU8bTwFPMHiUneOoAHXn+mUyDSQSERwqrE7eRZb6nFk6AsZNpU0lrtiUOo8xDXZ+emORpNRqDHsAbvIpoV6YOlgVk3sBZNgXfxlWkFyu0clKpsEjsOxvBGTYs0Kl0qaJAVjd36sVNj9e+Sfd2OppIwhZRw18j1Jvrzn0EyKsJMlWzX04GQtGIZnYHhqNCueMMk0xISwRqNMo0/guqMQdzbRZAP1yaIRaUFImG+rKunNe2aUiBtVHIYgGQUoP79cCOJNTrVLhkZTT7RwL7We2LK0PFqtFSGMQ+EFNSN1J5v6++SBIIpETwWDk2QWsD3yudTqHdVjlchqAA9/y9Mz9ZHIh20W8M7j3L32A7ZO2UjFPDT26edmie2AHJB7/1wIyl7Yl2k+lEt6jA0cFCWOCU7m7k/plJ07K9oGCximqh/Xrht0I0kyfVBJdMUk3rR4R7X9cS/htDDGzVsYdWIvi/rnnkEk9Sl0Wh5qsg+l4vV6mp4oYyQqdSOv7/AM4qbHUfBs0oLeIC1dxtv8h68YazzyXC2nYRuAVcCji4YAkbFXZ95vn+XnnGJLQWJwu4dDu65lhml0irczrsseQ8E/zV1xEuidpF3Go2HmJr8sUEI3t4iyKG3biaPwPbH8yJu2hlU0R/nKRZJqjkGxw6RDa6JuYMeDipEiENha3nzEn+2DNpjJNtSgRyXvbuOcTeUQWpVTTAMSB7/GBtjqKENoIS8aopNkit3NfXKdPoFgjMYFFmtST19hnbUzrtoH8Ki+Ae+PSQBGMjKwUVtA5B/Zwp2BgS6VBJuMarQBBY9M993SYMJBbD/iNq3ntSWMNRuFUkGit4wTDwkAA3uLJPtgYNqyeO41YPa7SKX/kP365RIySR7hEC4PJvp65OzU/4NrDkebgDD1I8aBSCFPN8165othas5p4aiWUoLYiiG5wtSdEkRlkhpUBHSr+mNgYxqqgX6CupzzqslLJGrLu6sLxgZZn6TVeJArQRAKQVJ5YfqKzzqmmRAsIAJuR27AZfIixR+FFDdjbVGsVNErRklCrMOpvi8DsNqyfSqWB8SIR2POHNkfrVYmPTadRJMsSM9E8cjPORpZtqrRYeayPN9epwPDk+8FmYkf8AEDg37DJ2VSJ/BSZPDSLwAjcvu5HfqffPacxSTtCJpRMxP8RgKb1/tlStblEEm6x5gtVgLDDBq2VYwyl7dh271/vDyNSHeHOH2yKkyqa5YhgBx2GGkMcahNOxQlTSutH5F4cS+MABIVQ82TY+mNnWOPT3IzFOhDKKr15+ubtC+i4DpmtV2XVmhdt3PzjJdEsjq8m5kRbVVFkfTvg6YR7WeByI5G3Vdi/a+maDapt4Bj8nqOuOt7JvHhFJAsg2lGCpzfQ/GFEIpF3vHe2tpPBPzlhLO1R2oHU4JQlzY4YUvF4a+gcrWk+jaGQSqIiBu6E2DgCKKOQ7U85H/IkED0ytFEZ2tH5dvBuhxiWMj7xCwAI/F6Y+qkLljNDAiNJITJvU7bY0Ofbp+mLm05mZ3+77WYXuDdf7YMcSh9rSBWUhmF3Y98pEijTEmnsEmrNjN5QPbJJ40QgN+HoVK9QPQZHJBHbFx4KKb3BL2m+4/LKvvcRZSz3xuXi6xLylQ5atspIAHb0Y5N9lokek18WoelcqzWOex72MLU/Z5Oj+6RqrKeXBBNHr6+3riE1CQfaDxyyhAx3LtiINH1J4/wC8s+5TxyifSyiQ35g7EBgfbucKxlGkhSx3pN7NHCIrjJsrtNd+4HP1xiaWSKy4Znm2kvuBUjmiO5/TChnXUEBY2UPEJKcAbb/CLvr7Yr7Qk1Sf/MWbxGDAiIngjmgcOdCaHOm2bZIh2KtAk7S7AevsPpiW4MupdJRvoRxmEVfP15xmp1DGVfFd4twVuV63wVPx1xzfetPGZH8SPdtWo4wzEE3wee2ZLTPoili0qBtX4AanDTA2VU97r8/yx08a66NHjWIxA7f+JU9qI/vl2s8Au8qs3Khdu3iwe/a8kimgGuk0yAtAxO9AnKGh/rnD7gFqEDSqkLIkTbVXb15sCzXp1wVmi8VldWURBGEpB6nt+mO1Ekn3wTQuRFVqCf5iK4Ppxnop/vEihih3MhpWLArV0R0vMNXo7cftaGhHtkishWsH8/TEeLLpIYwyxzOjUHU0AT/fnrmpFYj8odBRFHj9Pzz0IpfBZYiAo2kcHrXI+mI3aE5L6M3XtAfs8+M5AVbfbQFm69/+sm0/2fDokEelimKm1bzEb6PLUenP6e+P/wDUSL9ykKyKjFGBY8iqvkHuOo+udjeLRw6d3kCsfLTuL689PjA7oouh0ekmOnbw9OjMG5VzQHuR65oTaLesSs1MR+Je/wA5zSNBH+AIwbsGu8fEwRCFU9Godax4tUQk3YaQKkVLtF8EixeIj0kYZ1ba21vXj8u2Pjm2hSF3XxRPXFtueyI6s+bGcvSaQkOizLuReDuBHP6YENNJ/CO0k9CtdP685yR0bVxOJGWk3MACLrphO0XhvNGdl9QeefUZK2i1EEqkySqINpcWSj8e3fjHrEHjgUEOQbokruwdMZJJWYlwjJyGWqIPf04w5G3KzlXr9Dz2xXJsaitJllikR7pWK/IH7/TCWGCKGVkiS+gL888+/pk9DwP4X4GPr7ZxVjcxxljuJLWTz1xuTJtIXJBE8gnEZdQoG2toah29ckGlMrtJ0jFsN1URxXOaRgBVF3OoMm42Pw1iZmA3IFLoFJ33wSew/LNVDxZKfDdI1lO6TxLCKCVFHge+dBdt8ckEbRhwLXivY+3vijO0EhZpf4X4WRuSSeAQPXLJZ/s7XaJ4SjRTBbG3gg/IPf0OHv0ZqvBMka7EeJaYEItGqGP08AYyWgq+objIjIYdekBjQQhAN4O47ueuWSSv93VV20xIHbJPGZrKKNglljZoxYW1WqAGVGBU2uYt1Vfavb9cy4H8eRR4myaJarnnn175YZj4nhbiQ1HaTZ9+mWi6VkpRFsxd1jgIRNx3MR+7zvgxrw9Fj6Cq98b4aJvEYULGp8vbtzkDvLJMUagCvDDqfpguQUk8HIkMFSBCoN0S1kcYH3SL76mpjjJ3D/kaNnE6UjVQtJLG8LKbF9BY9cuTVLIlxtaqK3Djp1wRf2O1Q1dMkLM8ZABYWv8AWs7/ABFNiEU3IBP4sVCC9btrAEm74N9zgmlZSgBJvkXz/rGsnQE8jSGRQjeGLBsla57cYmXUSPUax2GFMAOQCOCRj5J2EzEvtDEUjc2OvH0uvjBi1ECo91/Ebb+E2Pr8YEt7HXXRyHTBIQJ4l8Qcn0rA1HgyqsgUKr8t5iAfispMx8sIEg33TceYYudFkRUA868KDxzhkBEs+u0mmKOgZeDTDnt3/ffJPGZldNRFKjN5gOQCvyORjtLpG1OqkYxrSUXAc+U10rp6ZyacgyGFNvGxWZh5Vvnr0zKX2PxXSAEbauIkSbI91qb52+nT0+cc0MEQl1CrL4cUfRDSsehBv2/vkeinbVTLsmqVGIUydO/Q+/fjHanxtBxK4lat5XqrfQdxWBXejSXhTpoEaFHWDw2kqttih6Adh7DNSJk3LtDbh+Luenf/ABmfpZ3dGlkmKp/L5bIP5Xf6Y7T6mOV2DMW2tVr1Iwp0ybVjW0kO/ayblPPocKWCJ43qMyWR5V9u3OEoM+mYL+Injcbr3xR2iULFV2FJ/CDXc/vvjNkxUMQibaitZJIZmsj/AF7ZTIYpo2aRS18B+c9sjWaRwTtlB3cWT74vwTE2zxfEoUAxqvcjNqM6Z4yJBp1idLF+UC+TntY2mlgdAgaROtmjidVAWmSeQDyHeKPQ/wDV4t3k2TMFshaDuaB7/lg5tLiMoJ6DJC0USExxuh/CQaJ/3i9L4kkEhejX4gD3+fjOfdxHEsQkpa5okfll2lhRIlUAkC7BAFXgTsZpITIT9zaIIikENVcMB0zum0+lmV4fDsKdx5O0k8n/AKw/xxNYqu3U+2I0pVdSHZ9qtyVTuR0v2w82CsJ59qMsIXcysdnXhffPaaOGJNroWDnaLHBzrSPJrFVVJJBPJ6evT99M4viRSNGSXF/29fXj9cFuh6HHQafUeQt4aBGPkaiCOb+Oa+uZUOkWKRtxBUnhiOoPfm/7ZsxQnSMWhYtujICsvC98z4jKZ2EihiWFBWJtT0r3GZukaJK/2Muo833m416MnQd7vLBFN46S6iQNHezeh49ufXtl48CN7DERobKMOT74qfwpY/DZSq87UYiunUZnJsF2RJ93AZiu1HPPhm6H9cQ7L4BjALSAUniDkj59OmVDRMm6plRW/ApO6vjOpo40jNecyUHO42P9dc3JobCDTayaCdY4Yykki8mTlVvrRGe1aKWu2Y9/p1y59GY1UxEHoCPXI5oSzK0jhpB/IDZUdsKfoVQW+F4gp5jYBi3pYzsix7z4tJ4QGxSf3+7yZZGeXwodocLwT0HscbKQIiWVNoN70BaxmeBopGrKs5k2qsYGx3bg/wBsdDJBrjtnLIi8IRwD8XmFC6atSh08iqTY3SWenJqun9sPVRGYPMsxAjG2u1E0Ca/rhcUbieTSTtqSmnAZd9LIU/BXYjKdQrlbVk37wEIS77E9eMz0gbTNCV3HYbb2I7gj6ZfOWeTe03l230Av/eZ9jUJKeC5nlCMiiywHB/vxi2Kyj+GhAc8qBd/OFLqltBLIfEYHnqG9vpijqGDrEzBjvBpTQX4zaBDvuUKosSDfSbmUm9vxWKk0kg1O4SCAqNoC/vqc1E0aKPElTfI3QAg8enHplH2jpokiSYtGVAt6koUPbrmjPRHRkS6z7sJIGhEsiivEjF8HkEYqBJtS5ddDvF8ksVC89sKCY/aOvMcRKQctR6169v0zROmCIjCZo5GUKS/4QB0JGFus9DRINOYpEWRWjYmo3LULPUEj1xyBADHqD4fjNQYtYNdj6Yf2pKsPhy/dnlbofDs7uOvp8ZAItTqN8qQFeCSJe/uPrgq1YS100+p1TQTGMSVyQdo/3/1k7aLw7UeE6FjtrkjKl+y5dRtMms2TFbNKAL/LPaZjDqki1UMUTPXm/kkruPfp5f65tSw1kqaUMsvlALH/AJcfTOvDEq+G8rEki74/Xr6ZqzCCVGIhKsvNAdD0yUpHIy6eENGVYHe30xbvs3JHIpEgKyMH2q1MldsbrWgn0CrSNEL2DoSfS+uBPp3aGaAq6Lu/ETyxOA8L6f7NEckYZlB2OOo9j64OzUrsxPtKUROkaw2AQdt0y11o43SukzFoR5fS6v8Axk8AGs1DF2CkVQLUAfTGqg08jQmlDtwR1HtnR5XpvbNLQxw6pZoN5DGmAJocemVL9naVCBJIHZWO1Y26/wCsytHJN4/DhgEO8Otfn3GWImokI1KjwbITZu5YewyMk77Mx2olCsy6ZQFZet0CRmNJqY0bzR7m3cN26/vvmypYRCoDJIbG1V6i+byR/s2PUyyPJGkQA3im7AdMMWl2DBEej1OqnnYLtJWyL6n275Fpd2maQ+AfGl6MBwp983NK5QtICjbl27jdD2zixxafUnUwadGhdNhUeej0J/PB/wBKtDkq6XTz6kSzTbWAoK3Q8d8jdxGHhCIOxYE0wHXNaaBJtQwjjBut9dF+O+d8AKzDwxuApQy8YOX2bCCLwljtxQUGiLsnHxvpniiWKQlwTu2sbHsfbHx/Z5knA+8qB1VAASB6V6ZoxfZw0yjxYIwykkGM9TitgckuzF1KwaZgIXDswoX2JP0oY2PRtKzmQqEj4Yt5m9yD3OUazSAXqSjk77AsAV3Ir+uDCYFkeVSQoXd5moHNeByhcUR0viGx4T0FP4evfGrAiaJopF8SyfMRyozzShmEgkpQpG0G1Pv84loI2hkSNn8M82ex9MW9MO0jReGtsziMAAMSeaqsHWRb5gAnhydG2t/L9ffPQRO0G0KB/wAmrlv94SK7SEyBDat5OtAd76jCxemTPG8chtRsjpuDybHX5rtkMlMF3gRgEkyIO2VLKIgzIwjK0Sm4ggnjv+zi5bOpkpgykgkkjr0xk6KozWjSSQSbtqKpMjHoK9e2KXU/dtOZAoEbt0C2VFcE+mDrm1EskQi2zM0lvEsfYDuR16YrR6rUnUlPvMohUh5VCA1XQkAcr7Z3RhcbZNumfRNF9l6vXaX7QiKO0sfmRHpS4qzmnqxHPsGjlR5ox/4y43Edel98+e+xI9QXlj1DBBuLRSO1oVPJWu/9RjtJovs0P970+lTUrpTtWaVjGwJ6BhxXz74jWuxWsOfaro8Mj+HGgsBbcgq3oeayf/1BqYftHTwPKpj11gHbW1wO19/a80desUcTapJtPA+4R+GFBWu4PUE13z5v7bkOv1B8NQumgPEnQBjVCx6dsb4bckaVUZo06yzBCGJNsFFAE32wmjlaFvDjAA6iuuddBKBO03PcgcV05xkMisfDV99cguT+g9c7G2IoogaJghAuh+IE9MSunMppOaBLMougMoZgzG1211N3znSwjayEaMfyjt9cqm0TaQzRyiORNQhUMnAQjk5Ro5zE0kp8jSEqoC8Bj85mlGeTw4w3IsN6+2bQcRaaP7uhkAW3D82Pg8ZP5KX/ANGjbMzUwzRSFJIltepd+b/PBllhSGwavqQvH79sp8Ma3WCplijdq2yDkfX6ZF9oGN94gjYRByA7Ekn29MeO0mJLLOxKdjylN6gcfPagMrm+xtUmkOt1LxaNAOm7c7n0rteT6cz6MKH3KVBNGrT3yaZjNP476mSVu5bnjHV3hOXSNTw2eQsUViBdFqF+uSukymiKRTd9j8H0yjRulKWLFzwSeST6Y2eVRZWo1Io+XhiO3Ssgm06LVasD7PQCUMCUV/xEgkLmi8sIVdiRBierEkt710yDTCJl8R42G/8AAN1WL7fP65UYkMlRyLuohw5vb6e398nPXoy6AnE6yBoySvoCAT742F2WIpKxG3qByxPp7deuAEZIFVeQGsFDX9T+mF4xSEk8dt/ZjisYcuqmhgFTDfIK62QPYV/fPSFtRF5ovI1Eivxdgfzr9MQGBAjSAyyHklehH98Peyt+FytXx0F+oH9bxWvoFim+zjHOrRuW2/iDGq/175SIxM5Ei7lPIYirGcTVRSL/ABQ1sd9rZFdu3tjP40+0CR0G7y2Au3uecEnL0yD8KGNCBDu3UF8QG1+PbEMphdioNo20AgDr7HtjxI2o1VGXxCT+G+QB3yeaJoXMi2UBtQoPA9cVfsYGTT6ttI7bd1EFzRG2s8EMsW5VIKUDuHH+8XJqpWjCx+VX6sSeT684l45SBIGJWuPNYGOk/TIexn8TcWrn8PQe140xFoBIznde5l23ZHIr/GTxKupMcQU7gPNRoXfUjNIBIlDQs0jLasBxZ44HtiydDJWBo5RJIslDggGjV+/+BlLS+MDsPNVvKklfpnNqy3tRkY9gtD4vKdJtH2c7fxPEsALd5CT9GM9gRIzrIZNRdndGVs9h1OdEkseo8KSYotGwOTz298akkaN94YKQrVuvkH49Mp3JLpJHapJgSIz13e5Ha8N/ZlhIkwJNQ74h0kBHJ6dPzz0eveFDFEtvGtOByR7Cr+fpnYJTpdNqpJzGJOiqVIq66Dtme7RxPvS/HA898LZ6H3OPGKeBYv7WnmmaEPMNsk0bqFFc9z885oypMiI3gh6F8Hy/v8si+1EiGp0Km2J3O0cZIqh1sj1OWaaRljjaeZmC/hRmAA70BlJ/4iSXbDi0QdHd1Kxyvu9Oe2WRJHEqkNIxK3yookHr63jHld40U7I1rf52IYnvi4IanQh2dwQfxcN9M5m2+x0PSXcpnjcKDxytMtd8YximAU8MtU1brPtjJgVIVQWNUoANA3ybyGKKRNTveQS7m4UitvHQ11yYTT0zqjtFG/4WD2x4f5zkDl9Ywdud4s7uprsPTGpBGqyO6qkn8tuBvJ/rksgUarg27kX5SbHr1xAdjZZEQk34yx2NqkgknoL+p/LB00HhxXKsgcV/MVIF8dPTNCCFI9NJMYiI3BJt+lGqrjji8Aq5TxVZTa1u38n/ABh8FslkQykyvTAn+U1eVaOQlY2pvEa9vbcR0xaxpMjRzIUK8MzdO/bphaeLS6h4XKlRFYBA6Ad+uJQW0zztphrGecMsu2iy3ZPpwP1xsqQ6rQtNGHaeBqchqpex9zkc8UCBp4tQSXBFKp3DvhaAnwrLOzSUPIt0M1ga+hv2dqkLblBiiDAgye3F/OGJWm1k1vQHkEijp68HO6OW9UsaQyNXPTgD+nHpi3MZ1RfxDGeobbdG/wCuKjegRTaeJFRk3Gj1oV157+nbEfZcgmi1DTAlSTwHpq/L2/XDmDnXLLMyTGiFVQOPQnir9s7FH4BZg7SEFjx2H6Yz6op4cTS6QQzBzJF3EbsTR9/pk02m0qspgRGL87lJIv2Hb3zg1Mmo1e4FpGPFAcD652bUx27TmmQAW3Iv++Ok0zKxs4eMrJYUV5WXqfr6ZK00sZbx6Jb+bv8APxgQ6lpJNzFmAYfw16GxnNQxMg3Hgm6A6D64yVdhK9A7IhBLsshKggUTxRwZVEZEaWFjNgsefmvTC0UIi84nHK0BXQfusdqHR9KJ9yEchmCnE9s1kEKza5ykR2CO7C+Udz1/rlukmkVz5mYrwFY2BftioNSINqRAKSQzVwRdUBx0xkumnaVJCqkFyUZhYB9T+uM97BY+WacwqI93iFm/henuK987p5mcssiNwQN23+bJ9dCmoKqzNuQ8lavjr+eciEjSEqrE9WLc/FD4zUqFNAzoWRE8Qv1srzQ7/p0vOM6TSJqG26d2QbWdt1Ent/8AojEwRI2o3xO3iu48QgX/AHy3TQ//ABi0kZcEMbIuheFYI6PbqmBDM0bX4aFiBfqe/H5dMzp3JaMAF5gNws1yeOpzpkinlkl0cLOFUht5JBrqAP8AGJM6TaYq485AJJajGelD278Y9UKrsZLPKNb4hfxJHAuuAx+ucmRZlEYL/wD5ar3JsDvxkeu8PfEhYytGNiLv456nnpecbVboFgl20GAVUokn0wNfRZI1tEf/AMLxU8Tq2+rFZcUuNSbfYQE2cAj3GY8E+zl4mjdiQ53A2ev7+M19DZhC+WmFm/xAd8m1XYsg9PuMbs5coGbqAdx9fn2zL1Eu3WkmEyA8eX3OXxGHQ+IJXJJBKqTXX0zLTWSAySFUV91IGa7X17VmWs0UWNGFnWoguwWFPJPex1xU0bQSkjbIojuqHX0/TC8LUass6SgPwB5eKGDOuoje4NsrXZCH91msZLSOOKTw/E2jwm/GCD/Xtmh9nooaRJPxkimYWvHP774qI3SsA18OF7c4wORpXYoXe+AnpfUn0zWGY+WAaYtK0W/cQC73z8en+8VFZ1YZygj20yj19SegA+LPTLRqpdTp1bVQbEFBWYVv7Dj0Gcg0yQlnaIx+fhTZA565kyVsBY3MTCARkg8lSST831/fTE6fQTkbvHB32zDZts+pzVqOIbl/mazz1Jyfey6h3WR9xHmG2hWBM1sXDqdTo41VESWuA5FEt1rrj49XGdWY5VHiGiWReBkc84iDGRXKB7RC3U++Ng274yIAplsjzbz0684dYGkFopGg0SRu4B0ztECegUMav6Ufg5XNpp59O0rMu7rHYs36dayKPVSR/aDxTkioleOq62VI/Tv645/tKaWalYyDbfJAKjpzwMaSFSd4ehjEPDuFZh/4wKo96rHrEAb3fibtfGR+OQFWMjcLPW+e4zR+zYvvCiRwGKCyo6L/ALxUNLFbOuJg6QSMdpX06ZKyeHM3gSP08y2fzH+sb9oTEylUkLkECwOvr8ZPJ/E3FLSlFEjr9DgYsV6a2kkGpjVQX3RUeRziNXKFnYSDb2Em7ge39MR4o00KlrVr4dW61gTyeMIy0cZY7qo3RHOFzVCqH5CmeOBpaMp3kbjfb4+mKGogjjSIR+paRjd+vHGE0Rk/is+13JUIxvd79qGURIFiPioFbgsNvLV2H6ZPC3RNpZdPEu5VIZGJ/DQPz74waszODHKSqG/MPxHn9O2TSLHDK8ipuZrZLI6Drx++uMilVlUhnCk87D1sYLsLiuylZm1sazrEFCEgr681fziJFMk5kiUMQpPWtxPbLjF4MHhRrUag8E/nZzFifURzzGG3obSHJAHHFYaFjt0XrLdIFAJcFQOKJwnjjDBqVWQ+ZmORQykw+K+5GHIU2N3xjhIJ5PDSwByd1EmsXRnEaBGkyNF+FjfiAWKvKI5k8V1K0Q23dtHOJ/irELjDIwB46n/GC+pQuszqWCABQD361+mNhOmy6ARkSABDfIBFi/f4ybTQhYZBKwq7uvfOQ6oum2UFLP8AL6dcGRXiVmRG8wpbPA9P1/rh9AkxgdFtdqunIG3rX++f1xSh3b/gJDwK6HriVebwGREDHcAeCPe/65ofd1RFKELsrknp8ZlVDPGTvFSAsy0DXF2D8DENK0FKq7m3UGK3lLyNukMAWwRW42D0xcwJnUrQCqQ3PGGgr9iBKBvBYsTwSRwD7Yx5HOxdwCN2AHHHp3xcEe5WTahjoDzdMGH+A7qLWJR5bwBaKIpTYNgqOQel5Q7hmAZqF9bvv6ZNpmRmYElEIsL9e2NmYxAhBbk7ueb5xlYj7Op4sc7I9GN+gvp7YycgyxhkNH/7ZyRW1EIiiKRs1Fib5xzwMsfmjDjqGVaIOU4viTvTOmhI1aqsYHB/FZBGSaKNzLJUZRGJCk9KHPI9+c09TvVNjEsSOT0OTJG+oVCxsVY44ORaploywSDL02ebcOSeg+mHOtqQAACP4i7/AMN53wnVZBtLLVGl/F/rDijUlkoOiiiCvWhx1xQ2egWowVOwrQbZ1b0+mc1mlSRVDuqjqrWDfx7++E0ASJlcKu7zCrJqut+vXJ5I1lRWikJJO5UPoe9YYi36OjmcsI1QDYPWufn3y9ZmV/CFK22+RyczgssdKhbxCnJ49c8/jKPFkDkoQoPWsfoSrLWnl8LxWdEYA0OpxkM8TBifKTxXO36Zlx/aJaNhsKsDtPFBvXHaMTRSbSAWIsBj0+cKtaFxws08Dmchm8pJo1+mVgpBpyD5lvm+4zO0+qdNSw1j0b4O7jn0y1JRKzR7wGA5qqIyiJyTFeCJZhtJVjzxxY984NOtCOtgHHI/EPb88ZG8MeoSIsCz/gU8cDGapQ/4FvwzYJOClVmt3Qk6ZR/GB8qgrtr2yJlMoNNtks9R+6ylopHgLMFBZbWgbAOTRmVSI73M3Jrt+eTl2UiJn0iwAHftd0O1x/K1c9cVpNI0GoWPyNLY817rUAjn9Onrlmrgk1MY3xKdhIG5iFrqT36jpg6pPvPhxKViiQdALDV6t6dcZDcmRRCLVaiZA7yAkrKC3lJuzQ4vp/3gSzTBU2mL7vEx5iO0otHg8cjjp7AZa2r0Wigk26ikZeFYWeRzX5GsQETS6BJoYitsu0uCrDsR+vf3wdMNmZop4Nfqq1kboy7ym7gMCauq55Pf1zW+9aaVNTCTIqxReH5mChmqjV8+n55gxLqVnnXwPFaQbGaRj5KPABPPp7Xm7DMrFYNQizNJTtaUGJ5AF+nGO2GSOTjUS6YL4nh8AHnmqokD1BybT/Zs2lkYpPE8jyE+I1lmHpXx6Z6N1aMt93XxGl8Uk3dngGvzzVZkgUOHFGzuXjjt9TicqNqwzl1TxgxahiwSM7HEdH0/rfGd+zFE+p+8rJUa0d63uJ/vlyeKAxljUlw1UeCPQ/l1xGl0U2nhjki37mkqQ35QvbN/AWqLZHAjtguwE7tpsjA+zdUjSKsLFw4HLISRz0vOw6QxyOPEO6R183Y/usp08UEczhUY2u/g8X0oYiWk20lRm/8AqXTxTfZGp022pNhcEjjvfPxnYkvQQFpIvE2IHbYAE8o7X6/BxX/qGCSPQyyQSPsmXw5E4JAYG69CMOCQTxRxfgcELJxd117dLvrjN/jX7GXSZpjTIHAD7TwQBx9DnVhkvxN4AUmuOmESgmVXYspXggVRz0MrE+EE2q53Dn+vvgSSJWxTSqsm535JFDaePbCt5omZG2lnN9h++M8isSYp3Ds1tY4v4yfWTukMYgDsysA6ggED69/TCu9GSOTeHCjNLKVcACya/YzkkpeRdg8wNkH9D+ucYySsUaTgnaVPNX0OH92RX3s1BiR5v6fnitX0Pi7ExSM71JG+4OSeKv0x8KM8SmmDbq9gLF/pgGZVDr4g3XYN8DuOe/8AvFxyIps2xPUEkVz/AJGKGmFqZHSIqrmi1V3VeRYGdj1JGmYqrAPWwyUOvH9sWGinlaSQ7Ntghm6HpnVkk1RRSRGj2RzuDAdP2cbsFHJJJQku1md9gKiM+a+nAwZXlRPGcKpjWnLnqT1HHbGSgaVUXTne18saqqBFV25xJkmEXhyRxIHJ5PNiueg63i/oZfZH93jmj8XUkrYO9Sm6l5IN+3b0BzkslSyzzSqq+GVaJbN+nI5I5y9vEaNBF+EgC26Dp2wJJZFZ1EfmHC7V4Xjv9PfNyHTJIIXm0viMzMlDYCar15/zl0cUv8OMKm1b43WQcckchiYRlQBzQ6X159M8TFI5VZNrGmIFDjB2K5WBp0uS9uxdlkt1Nnkj3yxGQop43CjuGIeUeKNzstWBtF8evPbEpMkepYsDu2i9vf0sdBhToRpsokjAlG1m4Ulq54vEtphPKG0+oMYUguWXhh3BOe3mWR2RvKBQVOcTGNTplZlkIA/EKv65uQawuCIsBWNnpCTVXu9v37ZN4YP2fGVJXfzs67eeB/nOtMz6lI4ZgjsBu3Dkn1/LjGy+NGu9og73wu8jj1PpmBqFxMx3RRx+HIKs1YGMM5VmeVBG27bGAdwYnnt/fpiPGaI+NNFSkWgZwRX/AHkmq+1Y5Y0VQTGnnkVxsKqTXN/4x42bjY37W07RlNb4jKy0fDPIvi+R3FY6GQTP4nDUtqK7jv8AXM6SN5J0ff8AxZI/OqvQYDkEjp0zQheQ6MKqRr5RYDUE7X74ZU2NVIZ4/jRskqnYWJ3A0PaznvEZg8cgAYqKUNW3/wCwP/WTKrK/hPGxQxtt2tzuu/w/vphJqDFKrBrQRkIXJvefUE3z8YbtCtfRXqowNPFpxG0RnW3XdTHjvkeu0UgQxvpysQ4KO4Cn2H5Ac8c4On8LYUkcrqHYsi7zUZPXkdBk0+u3aEIyGWSBh4m1yaI6FvUCx+marDFNMgg0ep3D7Q8GJYZJ/DSNCAG9b/X0ysxySqkisyPwgAYECjz8+vtlcWpYfZi7YFl8Oc1IAbtgeinv+mTTAnZLGJCoBUovlpu/ToThfY9tlMTmDTSNtdmbmxyW5quc7HC7RiBIpGLHyuenv8Z1ppIdGUYJvrahJ53A9CO/6ZTo5XCkEgOhphXJPX05xKQttF2ming8jgOFXymqJOFI6BGYAB15N8VnCzNL4ZvpuscV/nJNZqyFKKzSKObsArx++ehx8SIU2ykSs1vCBu44AJAvFyTbioO0DbRvpgRahzEGBKLtpi3Y1nZfDbw2Qlyw2uxFEYt4GtFicy6gCQFVFHrdYptW0jMATW6vKO1d8ORtqPMYjbnai3dj9+uLA8FwxU0CGUjg8dMVlFR7UxtK+0MvUbiT+QzsMqxHajgyCwEY8sff9cBH3ykeZU6k8cegzpgTUTLIPMVNM15kF/sW2okG823lADA8UP7YTCOKFTYG6vKoPmB98bLpw0bGLatgg8A2MFlEcSGMruQbrJ7X0H64WjWvBM8mxI24RhX8Q8FB/fOxukbxlCJCeSzN169TgzuJoPKhYct5jdj2OIdYVQGNWUOo4PmH76YV0GimfVR/dyzDy3zt5yXRS+EySkU0i7Qe/He8KBVkaToyqfN5e/bEGX7ud03Tkpz17gYApLofLqQ8rxsditwG3fXFaSZXPBKoDQA79cB3iNKa8QdCevuMWqsVHiLd87kFEEe/pmQ1GsYdUIV1MZTwxdDbbD36YOlAkmjjdioJ3BeePrl0upOl+y44VLvQrehBN9r9MkSeafazlkIPm7gn1ykopUSTbRbJBBqN1b18E/iHQ5ka9SdTtii3laCnsPg9/plEIlZpIncyotlUYdB79Af65yWfy7fBKtGKRkPRT2+LOB1VmjaZmNpZpgG8N413W20ce/xz7ZyOCb7OXcliNjyDESCPp/XLDLqY4lTaArX5WksHnj3wI5xFIzO2xz5lTfYRfWj364LKpsllhnD3QjXcdh6UPQf9ZJp4ikU8mrWYKWCpSeVj1JHvn18Wq0rRxxyLUp43XdcZnaiGH7RDQpOdPBEQWBSt/rjpV6Ipv1GOzRy6pdPpySAAASALNWT/AN4M0RRFrexAIJUmga/wf0y7T/ZZilk1G3ZChIDHgEev+xlM0JMwKuOv4SnB9ef75N4ynJHz8mjj8NCYCjIoBk/peRzaNFkViknkWwVsZrzRrpZpGJCybqBF1Xp8++BNuWFYZXQMKNk8lefTKqTXRrHaQVpCYljJHmc7u39RndZG+q1UuwApIgBpbUEDnntYxEE8auoVVbcxBAaiBzz/AKGPnaOMGfTxedUNxi1PwR3OT6ZmtIPsTTuNTUZEXVQzD8PajmrotK2slVZA7BeAxY7bHp7Y3/09FpZy+o3Mg6spHBr3zXm1MUkW2ISxlDVqBf8AsZSnJ2ycp06QeqKT6dUkjijRWVLYbb+hwZfsyEaoEFmWvwevPOcijLpSzGVhTEOtj4x6Rtp4W1AVuT+HfZ+mDjfZLlXRJqPs0aWbfpmkeQ8slAgDtx65j/auinEsaTadtQhU2VFFSe9Zqx6+Oadj4ckbbC5J4J+uBNqYJZGj0zNPIsYcrE24r/gZnmoeN+mHoY/tPSOxhgmmjA3PC7Fto/8AqeaOW/ZX2hBrfth9LZ3Rp4h3JRAseXjvz24zf+z3SPQCZlKTy3dLe35GfF/amkl0X23970kp8cXIrKtKwPUHvz3ylKX+gLW0j6PWxGOZXhmB3Nyuw7T9cVrtXE32c0bKiSRHyiyDz6+3viNPrG+29KdTC5hMblWjYWUNDg/vnEfayNpIVR6lMgo7RyB8fnkKalQ8ayzKi8J9T4m00EbxfLdcdR8YExInV4ym1ugYci84EhDSSRyPSRmweLuh3B71i11EOnkCubuuK6nLrR2P0uijR5LJ8ZWpVicU4Iuj3GbcCvIwTVxrGkSUKFNZF5lImn1Lq5JCRt/Ejrk3/jNHxtKumIU+MIpNjLu3EjtXfJz0VnkmljnkiO3a67bKgE32usnEhkYlV8y/w1vyn6jplE8AaUSbD4akbCzbuK/fXFtIdTNUG8SKPMzKOnNYhkS6qOWCBiZrRLBVuL9sQCxjWTRSttVC8kbx0Sf7jKdeZJHMYkHiAEMJR+I96zoiEP2PLrtW/nlXbChYAkDj88ddBsp0MjuY11Efh71DEjr0z08Uge+CytSLuq/bMrRa+VnAQStYB3NH0/TNmPxNTOgdfKeQete3piTjxYf2VQaOaDUtNJMxvj8PY9h75RKx+6kleUral8375DM2q0qu0wcDZasreUrmZodbqdXPul3RrIf4Yazx165qwnxvTRfSyz6dg7tGTVrVA+tc5KkUYjaMMGaM1WVvrpYJVjZ0Yk8nZQr29shm1SSO8gCqvNg+XcPfjF0pGxzafw1plXcFvdzyf84EYlk2xv1U3uB/t0rEePDJKCpWKSxYD8WOnXKNPIJ9TbMF542dPyzMPR52mi2M/lVbJ23WRyNNK0cv8JI7tfCavaz65oaiCNdo42Eknzck5l6jUiJt3hjYvAZyQWW/fg/Qk+2NFXiAmDLv05LSTCpTs3Ec+/7GNjXYi6l50JEe0J0Km/6VgsPsvUzxxy6/WK4O8MYqFdPp29c9rFm0JOk2JPHGpZCi1a13HqMo4OgqSsz2SMFhIyAMDtcttG/qOnTNL7N0P2fHIz/aMskbhAtRHysDzyRnz32jND4FQgu5P8QiwPbjtmmn2vDDp9LBq9YWk2iN3V7k5urH/H3GXUJcU0acijVCQySwaVwun32lkkJx1N885s/Yv2Doo9CZNSizmQk/h2hBVVwf95manW/Z/wBmxGKbUySyGPelMSpI6Lx354xP2Z9spEG1smnKeKpG5EILOONzfy8dOmaKaVk5fkqRm/8AquLTafX/AHWCLwYY0pUHS8xIw6zjSJuTbfignhj/AKzZ+0vtOF3EsngNqmFDaAx9mY9L9sxpHSMRhPEfUnmRmHHX5rOv47400LIZIrBCI9pkPlrbwPfrgu6oqrGGElcg+W89MqeMVVmezwV5+R7jGTlZFXz+J4Sgm74B6jD9GINRtf8AAryepY8XiqLMY2QC7NG7r6dcvY6cud47HaBVgducQpeMbttUas1fTLRlhJx0PRjbOK3NG1da4+c0GQGVEMYRU7g8HuP37ZP9mSRwOwcsjUeAtg364/T6lZJCY5Gc9NoHQ/XOf5Lci0KSF6soiB1dORzYqz3A9PyyNNHKsu6Ny9ru2X+AdzeVzxbNEUcESdS6Ac5G0z+XTyynbVmyB8fs5T47rBJ1ei5BPEzVbuw6nuP75mu1FrscV/rNZyJZLnQhQBTIar39Mh1Yh8f+Ckqow6PzZ9c6Pjf2c/yr1F0chkdliZkOzgAnr9euPgWQRkyKCI+NrH17YtIacsjErVncwFE8/JGdcSIN43bdo8wUVd+vb65F7iKrB7kqCUQSNx5R7fONmljj/wDKhDSdBf4MiXcyLIreYmht5/2MuSOWZmMqO4oCiQBfa8m0l2OmMg0/jyosbgi+FUnk12ur+uU6nQsill2SAmiwWj36evf2wxplQLI6BWF8GvO13dduO3OHtWYkK7M5U0CRxV/pkHLTWRFfBnUxxSAqt2gsqvpVeue8RWG4jwVA/AVAJB9a64UmqngRpI2LMto8K1uY9CSf6ZKs0kse5IT5yLUN1PyepxqbRkzSbTpA6lWR5CBQLBbvtzx+xiJdQ4RIkAC2RyOg9T/nF+LMSUkZ1T+cMaZK/teLk1JgcsAvHA3Cwx/PAohbHNKJl2FvC8MCmHRvQUO/zjUd5Y23xs1ADjoBiEk8SJH8MUAR5f16f1zza1dhWCNvMabc5O2vbNxvDXR6aKghQFCRYDDj9eOucDMQN6Bt3U1Q+nOJMoNGQS0P/tZPpxlJlieN0SQKP5dw63685mmh00d0qRRqsxVSWegrDrX61lDSIWIV1YBqIWjz3GSxrEAAZY2lIACXXA9P0xckU0Mok8TcpYbd3btiuNsN0bU0lsptkAXaFDA/3xummIKsbFCgh6c9sz1miEgLS7iL2iuCf85rwSafTKokRS7Ddvd+B7AevGc8o+DWAdBFol8QxxiQsDasCo9ep5+MgmRYCzNuMTEot0p3d7Pf5rKTrBqJmYh4kiG1BtH5gngfGKSEGLdKQ+5W6yAhj2u/k9MKtdgsVqUgEAlOnjYjbe+SyO3Fe39cn1Qn0c0U8USSdglkg89R6eud1kqSLETMFCdbUkn6+nb6Z37vNIYWRpEuxE6oR+p6/GUhi00iPWMv2h9shJ0KMkTcRksSSeOvT/WW6aIRMImDKY3BtRytD1yJdLqNP9uazc3m8G1Jq2BND4zYWfdGwAAkauAABwOTd1j/ACukkvonB92WSywvN4UQcoDbblssTgyyKFBidrQngJX1yHVyPGxNsSxADKQN6+ozyvKtPI0kZTsp4o9L985uOFqL9OGV9rybeA4XY3HXk/pnNI7w64zFkZm8qr2vtf1xUOrhnhZ0UqwF9Tz8fXHRpJI20qaZgAb59sWqegNT734St4gv36kdeAcSrsWoRMjbgQ4NX7AemHLAyRCNgCFbnnt1N1zhaeNpWQurMuwdKCj8+cnQuJF8LznReAqgq3o1En64uG13BAAAQWZwSD3yzTQiFRHKgDDgMCPNgSOriVSqRyEnbTEV2s5uiXKyTSziVdRpJInLqthlHLe4+clbS6hBtaMGI7QEDbdnua6nKY9IV3vJtlkNrvJG6uO/XKNK6x6xuCFFIVYdAR69MzejJ0Y80c4Z1jUOCKBYfr/XGQaiRIIViY8HkKQavt+/XKdaCup2RKioF5YN/T+uTfc32socRBnLdOWFdPXBRW7LYm1SeRdyq1lrIoAf6yd1Op1qs0fiJdRrIQoavYZR4BhZAyiO1G1WYsexI9PW8XDIzTGMBWkqk9j8YqsH7RNPY3N4MkRB3bRwevUcnjGybtP9leKSxklbk3ZF9vT8sAllLiWIifYdwkHlHT9P8YjUa0vogg87bhQHcnnH7CromohFVS8bE/8AHcw56f3wNdPC6kg+bhb62ffD1k7zLGTtCoC240K4Iqv85xfB1GmSNCqyDzuQn9effHX2NQOhhQyRysqm7QIgNsTfX4ymWFW1BO87Aordx06j9/pi4xsnEhQgUVVQR29TjNRv0qrINOrK34T2T1P/AHmevAajUfRaZomljcDeBtF8dPQf1zNhf7hrE0kyOxkDG7DL147dc7ppl1Gp2KqN4fm8rV+WP+0tb/GjSJiv3d9zN/y7HJpNOjL9ntIhm1kx1BEikgLYrb2HPp++MGYzHW+Bp4iaalLj2/Li8rj/AIbsZEBUoX3rYAoX8dsi0+ojn1B1IeORESx5+t9jh7dgOySBNPUu1ttoxAJoDjg515EEJjQKpkG0sWtj7j2ybW6l6MYKqhbzelf2wJZYhpl8NijcjcvO4H+lE9MZINGjomuQoHCi+GJC2b6A/nZywahv/bm0ySgPsrxC1D/r6ZjaaATyNp5I2ijorHwWLAjtXTLGKtOzMGXwQqbFBpaBHmPr9O2ERq2HpgwUJH/41UFihHp1/wA165KYw1KZkCO4VLFlR0rrzmgx05ilUpukA4T8JAPF4DpHHtjiQKrLaJGxpfr6981mRFNBG5qSRVZCVIIJ6dvY/wCMm1pAkj08epZZfDJbb/IK9v6ZcTWn+7x3Mwtg7Aij3N9zkq6GKDU7iziQIN7uLs/J78e4GNFhs7B9jzarTPIkoLbrLr046c/n09c1tEn3KaNIwphoby/lIHUXXckjPaPXwJplaONw7nZyLCru6n1PXGLPDotVMWeWQMpo7aAB6V3xG77A23gvWCOeY+LA55I33+QyHX7NXGY1iRQgNo9ruqr5ymdJY4V55oAWLvsePknnJiiJbxxs7ox3kMCD364F9jJUHoYy26pju2WVq9vsMeUEapTkKe69z632xM+l1Pgq7SmLeUK0RhvrZNPIp1UMgjArxCOvUdBgaG70XI7SSJIUIQDlweL6VWav2dErIzjfbIPKxJr2HtWZCQCd98ZeJWUVe0m+xP7vNPTnUCAxyzhZ6BLdq9Pb9DmsE+qLHn26lQsbOvSzRK/PsDk08qt5QWdi3QramuPr9M6zjT6dAQZgLDm6/wC8n0sIkn8zgRxrxXO0ntzgJRRSdFJG6yW8oHFEU3Tijhuirp1BVRJwGCnv6DHNsZWUzbgCNoHX64DeFCoAsXQ6br6fX+2MC7FON5WNY6JPIU1d/wB/8Y1PsyaHUrHsEKjnxN3PA463f+8Tqi3jl4XUsFAUsOB/fFvqvtCmi1J8UOQFo84thpkX2how32+I3Zmjh0ygtZDDc98fl/bGwxz6qacwyqEcnbannbwOe/xj/DcvKSVZl00ZYbuQA73zhpGmkgaKN9jbb3WSSb6n88pJhjiJ4o5C/gSFSoPD3RJ70Pav1z6bQ+BpNDtJ5cc31OfMiV4Z0KmKRYXAIBokembrSJrHaXcFsbQtcAd+RiRfovyqyXVIifxpXERkvYAtkkc5x1bYupckbxVHqa9sbLG0hUxJYUlXJBsdOgw5HEWliga5GILWR+nxgoCfRC8cu4VINvAO7mxzznY5Z4nWNVG1/gDp2HrjVVWVAisd18KKr159cRIdOk5VpdwrcFJ6+mCvR7vB7anTqFDlvFPKKOaxcBl1EqpIwjuyqSeYn9ecgYNTNDBsjH4dnlr1PuTf+8tMkSQIZdzBAWALc38dPasmkrHcaWCDeneUhn3FiAVA27R7nj17nNE/wxEHVD5QOFrn/eJCxTRtLIF8IsAaYcNwOn1yl3i8WMtqL2imB6ntyOOOmMhZu8O6hWjThy4/5GuRXQeuQppfBgaQu9OOSUs9P0zR1Sf/ABwm0csBtWueMXLCDpmjUjaylgAB16VjPsnF0jG0iMUZHid5BVHddenwOcYkaRysFJVjwxoCxnCREJUI23XlW+5474aGPwxtALg2GVvMRilykzSSadYkYBSpJINChiV07RP3ZWX1ofGNjkGoVZQ6KqkryexHHPzXTAik1FzB9p2njcRyOvGKL0N0tLYJ/HyHJPIx4ZxHuVlYEUo6jgeuFBHGS5FmReeDVn0GI1bn7uvhqwC2zc0B/vHr0n2wDG8TFuPMbr/iff8AXOy6nTSt4LkDaOTV9aP9xznoYnmYO8QFD8QO3j3/AH6YJCRvvc2y82ByRdX9MCoPbFmP7tGVQ7h+Lcx/fTHI5kXim31S85FqNRGmnf8AiGTxL2O12y/Izuh1W9dke8UbGw2B/jCM06HSq6rMVC0vPmNflgKXk0xV1Vi3CKOOMp2x6iNndQS3G0j3yaJV8RC1gJyvPr7/ABhSAmOSKKCGMyQJGe3muj2JxDvZudyZXNbCL4yxPDLsjeJ5jxua+PT/AKwJZFCFQrCwNqd8KFv7H6NpUIjjACdWodPrlLTHhWZWFG6NXiNLp42PiI9WLAVubyQgJONxEhJPXvznRdRI0my2RIpKeSq6i+oOREb9MrKB4gFKOxo9zWXPIoYhdqt6HoRkUuoiXUMSDtHUc9u/TIySHhYtNQSFEkm1iQQt/i5rjKpzDIUVBtoCuw98h1cIZ1lVRIWAC8/gN2caqrLSkNfSytflkyrSenpI5NQHDxSEFCCbHHasH7O0n3XTRxSR+Ky0qhb4UdLOO2TIilAGKklkHqT/AExrT0quVtjW5B1I6cY3Qrfg11QBHRNrAe/XOBt4MrsyMBtUrage9YD6gSyKnmVT0U3jC78JLGhHRG4N88/XKKieiJFYwb5EDc+YuQwI98VISxR5ZCCb2kea/UZYNOqoWeNDZqiLF33zmojWSg8YTbxw12PjA0MpGVI0kxSNdknNUi2vXv2x5l1CkL4akmxyOT9PXKNvhFxpkAvlmHH0zgk36vaW86LtZq5zeBuxsKqyo7gPJVNu6r7Y7fxxKFvtV4pWNmNYztHQ+p+mdjcF9jox4vvxXvhoQLczMimRq5skbQ2KkU7xtdH46BiPpj5WUpUihXouCRYGcG2ZVCspcDptracDMmLOpQFIQw2vxyOQcVqlGnLQvHuDEBmsCjye/wBPnG+Fp55YxW2VSdt+bab7flk05YStvqaOU8K3AB7c9/8AWasGVWCI4joi508MzxHcFAFk9AD+64yExSeH4p1RUlLIYnYKu76dD6ZRpYtXLp4YwQUkkLOygcgEk42JJG4fxHWRWB7jr256deMzsfon1DKsUbxaf7w4YlQFLWTyWJ9fbEw6ZNIBHqGeQRk2rc7AAK28WKP65ZJFATcZk87KyijtJ4PBA/vno4d7tNKAGJZQAeALs8YrCngEulZQxjQu4VeWN0R/bvlIdDqFDyKyRsoKBeFNAX+ednL7lCx8ItIGJ/FX9ve8EMm6U7CxarIPf/GI1QO0HPHIJkcrSfhvrViz/T9c4odNrAeVfO4vk/usbLIRJHt2t5efLnUgIjkLOGZl8wuwfQe3fN/BLzRmnkVnQsvlZrA28G+cPQMXE8rkACwoHbmr/TERwN95eRXDKKKx10Nenb/vLI0naFg3h7ehIWtw9/fHh3okqMn/ANUbTpVjKvtDr4m3nykgfn1y7QxxvpoqUq0QG5w+4tfNE9xzmT9vaTZDEyOp2zR775I8wqh+eawgePSqsUoeShua6s1m5UF/5SsdqCWh2054/kqzxzx2yOaOVwljau7pQJIHv81lMe+RURHYyDqPbFa0EsYkfk0SLqvjA7asEcdEZV/vQvlNpIsAn8PthjTqk4YeHIf51Knn2B9qzqz0o3BI9nmNLuv/AEemcaRFJeN2A5Ysy0T2P0/xirCukpkjhhDBkAILMTwWN0P1OEdcivESI3q9xFkk+vtgSamNTDHO6NGAKdF3DrZ9xi10v3nf938sZHmK9JDf+cBRJelc8qptVo0JaQC1HBFcYO10jRXEdSISdnOwkiq/XHrtAO92FEgC+brJYm2SGJiwXbQN9Pp+++ZOhV+iRlErGON7IajI4NSAXftlMUDeEXaYngBKrzf4A9RhSIh275Ea0qzQB+B6ZTpgEg8m8iMEFBxx8djmGk8Bk0iSozPYKgeVaokYRV4gsgjZ0RSTQoDt+fTD0qwyCSMKdo/Q9c8zNL5Ijs8/JvN+yVvolkk2SeHG21j2YG88GAY7L9nI6/698PVaAxnxI6dwp4bmx3xAMexNOsci7K4bp8D2/PEodNPoKUtHEESfzMv4TXOeKyORM4dmK88Cun/WPDBkJWDaSSFs8KB84na6VSl3UiR2UWR2wpUawt0zxoXU3z+Lmvbj+mFFGkiJvFNyxFVyD3r652YHxkWJ08UncRfT4z0A8SASiPiiCGHPryfXnCYKAshCIlU4sgeo75Q1DaVroSL9brFQqg/iFSbbkHpY4vJtQzLMwkYKi2aHA5/v8Zhe2UvoAGeYLvYEU55rEal5tdCURBynJLUTRHbrlMsniQ+FH0DAOSeK9cjk3eLuVhImwranj5vvjKjK/SLyMGE6pCm2y7y+UfS7IGBsWfSwiOIOjOCfEUW18Xz14vr0wNkP39ZIZVZShGwKLuuP6ZoKFgiTVtKZk2Dcdoq67/0xl+h3g7SQMI0feZVQbVWgdy9gPfLdOJY1IniUKARwOgIsfXEGVIIVWBCFXpsH41PAAIxzyeNC6sG3pRIAry8dPfHSVfsk22Z2p1iszOmo30djHb5RfX3v98ZNqXkVlMZdkK3YALsT6eh9/bO6lTJAJJNPENrFkUt+Krqh62MlWaYKrsAZAbBfzCvSu5r685NF0swtMk6wxBGcNwSikbuOSCPYZDPAY9XqdVGHaSZWaMDzj8IG0i6BIHXHzRF5TOWIQgH/AMlKp9PXni8r+z9NAmmZ9PGA4YnwtxKvzYon46jGi6A1xM7U6/Ut9maTSLEizvJ4wK8gEDkc9+nHrh6b7Q/9w0JSZJEdnpvKQSe1i+n+MXrdMn3mYSKQJiQX8MqUpb49BZ6jIhpmUqXbeyEEqTRIPRvfr9Mo3aGUVVmxEWjiYCYsOF8xNccAjLYi8GxTvdQabbzXHU5iwlgGJ8wBttv6UPn0zWhmaOMB2LSOm5hX9cg8YskWoTHFSSsfNQJXjr0yH7Q1RXUeCV3WPKEHXi7v0znjoFBE6u6klkbqvxi3hGoZZHG4Rp5XsV78YG/sSK2yrRxTBBKxA6BkIFYybUFpLUHcAVADWD74salo9OqOVZn8q0a5wGkUAb73WFut113H775kCm3ZXI4iVStUANy+g/2ckOrEqOz0zIPKrDtfX+n5Y6RtyLGxDPYPmNcemL1YAVF8baRzweV9PphMke07jgybYlBLfhsG/fp6ZVuhTaI1sFrHB5/d5EF2agI8jbHvdt44oXhaqVDSGXzbuCen1x06QGrZWZzTBWC7hS0OoyScpGXZV6naRX4fe8h0+uljLxzKN4JI3H8QA49sfM88ix7R4O8DaaN/n0PXNrYaoU0SuSBJt5sqvRR/fJ9QvhII0ZyHIO4Dg+xyompWEkgCKaIc0Tx1vti2RpJt0UhIUDcjeW774CiC8RzFSyWaNk9zffJwnir/ABC+96sbCent6f4x0ANVqGZtljjrfxhaSGWPUGQ6ptu4jpyB74KN0K1OlpjK5ZONob0OJ+z5JVSQvxLJwSy2COmVywRyoQJeXJBJ4LdDiZdLJqHtZBEsdLfUtwB8YcoZfs0NSzS/Z8avSNE61IO5HQjuMQuu8OTfKh2ISdycgUMliEqeKnhpIE4Buh+XfGaSKSeTbLEgYtavt9uQcN32DjSK9NMk6iUAhXN72c9P365dFoEfUGaUwlGUU4Nlj6fHtnvu0GlgWEoNxBNEdSB0yeATuUEdGFjwwHB/f9sdUvCLd9B6qGHUrKFdfFFsgAI2gdfg5gOFYeFI1yHhGQgCjR/pn04QRIWXTmWR2oBSOB8nMX7Rjij11IpiBvylaBPp9c0llj/G/D0TJ4CxFg7p/NXmP+cAawzBJIYzuHDrfJ55r34GLjiMsfhu20RESAqQKHqPUZMEdpneSQAs1ua7k9b/AC4ybKcVZqz/AGrGHbSpBSoAFoWKPcjPJ9pRFVEqvDKD5IwoIIPcflme+oIbltrmloC7H9sq1ETSeBOR4kbcRkkByPb9c132K4pAnZON0iF4yCN1dzxmUdOit4g2oyKFKE3vF+39MoZVihqFnklY0GoBV+a6n25zgs6lo2VR0O9Tdk9z7YytBR2XTqEjMTA3ZYRdFPpR7YsyrpUATVRDvtq+Rxz71gaiR4QVZCrM/FtQVunr9ecTBEsomLPax8iVjwnPNj1OFRvsazX+w3kXUyCIvMCCwhU0nwcd/wC6F0aVIXWYHY0IIfaeaBI6fOZmllIhWKJ2K7dzMnBauxH+cFtJJpnLrE5SRQT4Jsj0B5456nGT8JuO2fQ71jjOpad452XgLwQPTFLIzGNJZ5WVOjMQNnueh6+uZ0U8r6hhPtQMgZC0ge16UCa6H65dp4DIx020v0Ziw6jsB7e+Cn0CkWSxQwhWEkbMQd3lokD6c85l6nTDY0uid9PJ1VkK9O9/4OOl1WldQsil03Ug55Ydeo+cS+lGv1BGr1DCBFIMcR/Icc5ujK0jv2N9uxfeDpdZIniPxuK7Q/z6X9M3NVHotph1AjVCCSSwU0fQ/vjMXTfY/wBlSjwmtotpBDJW0/8A5q6/pjx9hSR/ZUifekkMY8SNZSOnaj2x1VCSqzO1O37P+1vs9VLKNTGYyhPlZR+Ej3BHzlP2mDNP4Zk37BuYhBdepzFVl1iM2qmKywsBFGWPlB/t1y6RRHEXMj/wjtfaeGB4/TFl2iij6cWooplZysMkZUOqXtINjkdj6HIZ9BPqdWtnwolAYTJHwT6X3/th6fVF5B4I8RSvBqub73l/iqVUFmDAlnUgEEeg7YG3FjCtHGunbxfG3rZVo69Pb1yqBRDpNirG6P5juTkfGSpD941RmFqFUsA/H0Oc08skUzrKd5ItNiUePY9+uJ2ZlWokjeQSvIwI/EAtUK4/ZzNXVzxGSGCSRVdrDMt/2yyaIRTwzosrrNe7niv+PtjtURBphPMsZUDaISTvI9QR3woCaIZNRIWTexG16DvzVng+2On1LzztsK/whtK1Ve/98TqgdkhljlU0NrjntwD65HGk43SeE4K3uJoj5wpJ6E01b7rr0aeR5FYbXAavrWbSPo4EVYnimV+Symtvtnyxlay7ursFBPAI6cDj/vA005OoVP8Awxs4WWVbNj+gxqFcbNz7Sd9WWdXPgxddvBc9v/0ckVS1PEA20UU9D+6y6OfTeGYhAXVFZd4FCx73eS+LC0hk3hEA4W+D9Mm2wx6oTqI3URnU8Weafgc5Dvkj1DR7mFtQJWwT/wBZozqssSyuVWJWHlNc/HtkrCOaZZRIfCF+V/bNEdMVp1jmk/8Akxk0BwKo+ua0E+m0QVYyAPw7RzWYxLSB2Rm2njtx9P8AGImhuKow3iWPxH+vP643GwNWbsmt05mQlJAzdRX6Ysx+OhWJVWPdQWQA/wBeMRu1BNxIAoSizMeB04/z74atqgXjIaXaQwAHb5vnFrBaJtSu9vGCsQhEalDYXuSR+XByeXfpZ/DczoxNqycAntfp9c0GP3f8atCzWRY4J9fyzO1eqYI5VXljJAVeqnt3/Zx42x7wl17tKVWYRrIB5NvlDevT6ZjQa+WF22JErsNu49V97zV1UqB1KSKiHgqCCD8DjMaTd4Ri8KMlSTYHUe/x653/AArNJzYa62WMgLHAHqgdpZiPknplKfaesGi6REMdpAQ2q/nmZCzu6p4js/8A9eijLpolXTgKGfpTqbNnLSUU0micbq0TaSLfM0waMsCTXt6iu2UThnc+Iu5AtKyEWw9rrOaaL7rLKsnmLC+ABY9m6DrjhptK8JZmkdWIALHzKfpiyklKwxTaJo2bedj3t5BI6Wet4YDuJJNrG2IJoUa7136jKBE0ETRx+ff+B+vI7YpZGk0mx47JLeYVx8nByvUGidZjFDJagkiqoc4sliq7hGl9CvX88skhKR8lrKWvp85FHppDZR+YzufaaIJ7C+uUi12I7HS7ZIWWGUhk5Y1RPpx6YiKVfwsjOWHm63164ZMMLOUk81HcT1Yd77cYDSMqo0Sjryw447DGSygP7Ga0DUxxvp5QwjUElhR9O3b+mSOJGYM9OTxRPXGmRQ6q11v3Cj0/7wxJGWO5mQiwecZXFCtJsU6kwMNgDKbN9/bFJHuCsm5a6nqP+sp3KyDYTTdAfMPjB1Ok1CpFLKQ6vexU5IHx2wqXgskV6ctA6yWAWohVIA+O+FNKspEaoWYEg0CQe/H77YgSNFWxlHB4BsAH0/f9MemoYqWUpQI3AcG/85FrbHRHqVS0IFm7IWxf+MphlUVtN7VNcA184E7xvKXVSGAvkU31y/SxmZTGE4AshQKHvmlL8dMlo4azyeFIOgFsODz74P3lEQ+FRZe+6gO5odxnhp0DMrII3okbhu3fPpgzDwSefNGvJIoHv6ZClZSgvvLz6dgaQXwOg+nvi9LHBpZFISN2BvYwIY55ppGRZLZUA4LN5m45FdfyxHiAsWawyDeb6V06emMk6oXCyZSEkdn3SDoqXVDsD6Wch1jtJotu8OoHMdcAnsPbjDMzGEC7PBKXzXXntiNxn1KtLIOCNpPfjpjQjWsEnlBadEj07ENsdxuYi+Pg4cOoaiwc0vJZRff8qwpJPEHg+GVjUEWvpeCVjiZUUyUwpQVHX/GO6fYisOTUCfwyyny91q+l/XOpEW1Bd2Kjigyg9Pj98Y1HDQhAm1UACrt6e+EoENFt7LRO0ng/NfTpkm/EVSHLpV1aK4VFRRYNc8HqTjHiMKqGG4mjyPw89awNDOYQ7RkbUHkZiLB9PbF6jWaVo0hSWQTOx3yKxP1ArnJVJuh7GSIsj7URtlVYHJN9byzZtgHiRyHbagEA1xzz/wBYnSkwx7ZGLyEi2PByxdRqYIBH4Tyhxe/qDz6Hnvk5fQbIrEfh1qCYwOIzz6/5xM8zRN94KDnhbHA+Blmp8V53KEpY446D29sl1Uj6Vg7yKFc+U3Z4PSqrrhjrMM8eXVpe4NyAPKPL9O3tlGq+0ZZdJFp/GJSJrRd21lI966dcgElKtgsoYMgDADr1P1OO+0PDhgWoQrMPxEkkn/HOatGfRLp9Tol+1GEmokg8TTqWP4rIPTLYFiTVNSPMhY7Qw2hh73mJpkQ6iCefzeGxiZwOxHlJ9aIzVZ9QbjMiy0AF2DjYOevb0y3yx+iUH9hySj71KkxUeGQFo2OnA49MXDM8moML6jepNLtu6wZYXRkkilVlHHINnt1xLvufxtKqbuopeBYrg+uIoprB2zVaOWEBYB4IrjcCxHW+n75yjQ6kRBZAd0hkq+a545OQraxbloyyLV8naPj3y3SaVWK/eI7jQgeaiCffnISWaE1E+1IRqCl/iNAVx9D89MeZUnUeHCVJtT2JI/vmeNOsDmxaXu20aahx8AZSsc0mk8RWLJzuBsFjfAvt85Gl4KzYgYwxhJCpXgXfQ8+mO1JES+IqhSTu7WeMhhlLyx+IwNgA8UB+fbKnm8Vyu/clFSoUEiv7YLJOOkyzuNRG5KspFScXXvxxjFeNQSSdx/CWA4rFRTtIzRhC1Ai9m0AfOck08aLH1B7tt6D0+MFD4MH/AMiNdxDxqAANpBHc/mPXOQxh28TbRBYHvyaHx/q8IRmN0aOVzvO4HpVVx8YnUvFptUjouwtO3PUDy/6OFKzWHpI1bWt/GBQcLbkfzc3+XTINTBIryTbVjl3lR4QsD5rofjLtPp1+8mYO8RZRuJqqAv8AvidWQ8jOjq26t+wciwT+Xc/OD0ZPSMf/AC9LLJI3iLTA7PNXN03pmSIVhhPigqDXUcUargdOD9MqacauGXTxq2nCRj8J2bzdbvqTji2m+6CTUk21gKWNlh0B72ARlarB0RSogaJEcSgglq6knr1+cfp4Xe4tMxaWTzbboIo7n99MX9npuXUSuBK3Un1HcfllWx1kWVXLHgBSoG5u3ToB6YXgbvDscQSMmBHnr8MjJR7A9eOtV3z32kXh0qxTXNKjeWhQC1hMJ9gKR7o73ctwRR/pz+zg6gfe9HJAOhPMg83yL61798RNWZkSzxwNGp3RBhbMqg2etfvplGpjcSCQPIw5I3rw359a9MW8HgxeII5SYhw34Q3+sekbaqa3IPh9ego/6xs7RmaOg1ax/ZEiywM7kBd3QUTxfpmJCBDqmEUaoRbc32PJJ/p65v6GCJFQycWSjHcTYr0xP2l9nNArSeGkgZwfM1GvYYLpipqyAySanWIAoWM3d0Qcpj0KSOE88cYIPiRG7N32xUKPpnPgq70ODu/oMoD6uePdPGsfFeYgtXoDgb+hi5Dp1saZGaOIcSFereoHrzgyaaRhIWDRh684XncPU9Prih4JRkeWNgq1za39RlpG7RlVDqpHHt8YETeGbCFEz+K7vtBIZvNt4P6emTLqHikVozEyNujkX/kT/N+n+MpEMwPhllt1827j4Hvh/c4/AkcWCQB+IeUe4xkM2iNJy1KtEkUo23wff+/THySOyRb7Umw71ZAB4Hz/AJwDplhKqjWLoNXS/XGaqH/47WyhFffZTa9dL+P8YcABpEniTa8TTRo5oFwCB3Jv61jdqzE2u3dZmlLkhx6DvXPbGbmi0qrMY0WM7VaEk7x6X1563gShFeVZCsI/kJ5BHsT1J5/TEbYyD1mm0ciAi2vaI9rkUO30r8vnCjhR3kYRhVq/JRv3oemUCWJ9AwSKLxmWySOfg10xn2eQv/nCqGFsxTt++2Kn4DlSBcpGRDNsZwgof8T1uvjIXK6mb/5juTxSnmx/nNbWpo03NFHabea4r0685leJFOviJGqi+VccjC8ZoO1YvSTLp9YY3miDKfLwQHJ9+mW6mVSwP3hRuIbzL5SK9fyxMbFYGuJCobzKtFieOxydZbnX+INi35nB59K9Oe2bBqvRs8hForKtGx2B/wAcZYpaTmNyCdu9COTdf5ODFp1SRbkj3yKpRa5Hrddf7Z5jDPDK5ijiUWaWiW9+vp65vQNopjZmm6AxryFUdc7LaiQ7gjVQZwbH6DjBheOCMNCW8OXlaFfOMljrylfEsWdpPGbol6Q6hPvA2iXcyHgleavO6INNqN0OpIaLmitbr/r9cdN4WiiCsTK83HmN0Ov7GTadFknkdNSFRq6eaz+/64usrnEnmEkH/qBF3P4jwHzkkqaYceg4P65bHMWJmeSFV2KxNm6+nHbisAeFJ9raeVJHcJCwo+Y8stGj34b8sujg0JnYGaRWI3BPUEV2HOVdOid0QRy6SaWT+ZHJKeo6dq+c0tE8KsumGzYebA6HINZ9mQzzbvDpo6K7Lv6/vvlUGnTT6dtqSKzkjbdf365PBnTRZNrG2BFbbu4Mu2x6f4wR4is1gO4UqpYgj8hzk+lKynwnZeehuwK9fXKEB0zxIqhlHJs/kL9euZ9CYsIZGmOl5WmUFlG6voTnpdHrJ418R0DFVtgvQZpt4GsdgIRGRy+7gE+2AIhJD4jycMaLHg168ZkmFTRFOvg6fbIAQ5tdvBvjyjGR/wAKCVmjJWNbon8I6/r6e+OSCNSrKxkINAXwe3X99MXqIkDuzgtGFDeGBZNe3fEq2NyvCDVRrMixRokYamUDylT1PHplOlij1c6zEhZqBU8+au4HTHzFdoCp4lqPMBQ9P2MRGY5JkcDd4PUKpYLhVdDNtoqm0RlkSen3sAdkzVsv2ymN449N912Kf5WN7hWRtDJJCxafbflO7+Y1wOtj5zqGpRtkBKUHYGz/ALzXXRJxtdk/2xp4jNviA/D1vgf5yODQO7lZ1/ht2B5/f7rNHVAvx5GYCy54Ndv75yGaOmDOkksoLqv4aNURi9FVJqNE8Ph6cNGd+zaR5qI/6yqRdNDB4hcBgL3bLo5KxYxBwvhsDZDV/X0GNUmVgZo4pHaPgqTXfv1/dZq+wPQ9PrFeMBbMn4iaoEXV3gzatpt7GRYl20Ay1u+ci1B+7lNkMpjjkA5XkDoTx2/xhBRpCoUxIoNgVzTc98L/AEMorsAStHAdsjLEaG01dfGN+8PHHKRIAxpUTbYJr+mN/gylSFN7bjIP51k+tQSSpBbPz4h2EgCv30wem7Yly+ugqQeGsaBU2oVCnv8AOF9mxPC5aYGzXmSwDXYemGFiEKoI3aOybHbn/WTTzvDHIJN5IFKEXkrfp7ZRaZrw01Y+IylNigfgv374WjKTOxZbjHlUAdRX5e2R/wDnRWDRklCWW6qjRzia7S6eNWifkny+Sr6ZifF0XKiF3VWkbzGlIPlzgikE3hGdwAvNDaCPTnIT9ohpfGklCtwbDHi+vGWaacahUnBjVZOrP+K669a5xooWSaLVREAfd0HFmsR4Rm1kbeIQQKZR0Hb5z0s5WMoXpVrzO34jnYzIo8Rm8oPG3qAexvGl2TS9O6iON4DG0pDhfLRrnt+ufPxaCeKRm1UzuZACdp5U+gPp0+bza1bmNAzFmH4q6A1/bEFx9oafxYmRtwIbf1HtiWVhaR2NhEQOGDe9jrXxeCI3akL0Qd1XQ47YjTzPqNT4aQyFYksMaAJ9/fjNBdqqrlaIrgKfyvAFuhYWRb2sgYm1J4vrzedQK86pfQBqZu3fDm1AZAIQNzGhuHBxImeKRRIF3FQd3bn2/PMqBrNCSFTEyMBuI6HjOQbCy7ij8A2MSmqfxijQlFIqySQeMogGwMXW1Ubbvv8AGMuybtLRc2qeLVmHw3eNn/GE4GHFOz6xoXj/AJbDE7bwJIo5oVbzFFPX8LYAMoKIvKdLA5A/rjXpqTRaCsUjKqhnrzUOmSoq2SYdr7yCwvn5wnkLMq3uVuGJHFel+uMPhLG21iqg16flh7F6BihUGzI4WvxDjm8BvGh1LeA5NtyrAX82cOWcpEVHmJ+lH86OOiJWESTyeYdR2Puc36NvYrVxPPyGbpyOl/PtiWVtEscaISJCBYIBrL3kUh6pWFU18e3+MzNcZpmYSgMKoUDwe/PT/rA6TDG3gbRGV5HSQhBwDXUd/jBTZqQYkLUh2+UiyBzzngxWKQOxNVdtwfg9uMRECXAKeHbFzt7jpfXFbHorZRFAHjUttUkBfMTeTDVwQoBKzgsD5HagR6YcsbogVWPJ3Elu/wDQ5ny6GbWSnUbQXNAebr7136YUzJL0sk166kKiRNGiIGsngCv31yfTTNOixu1OknF0dwrkX6dPpiYYDqVnacKOPDVST1s3faufzzTk+y4IxHuIDBwxK0aHx0xX+h/xWHB4R1FOPMRtr8Q45r9+mLkl06RAoBa8Gh2B4/Y9ThzTrFq1dw0qqTweNt0K9/8AvBVNNZlMsm1jvqzQvjp+x0xAI7HqS5tzLGlEi0NV/k4cmuh1UWyN3UmxxGRRHa8Tq9PEsZIbxEboaII55/Yx2hiUozoeAAburI785gNKrLYVCxhKbctMGKXhaPVM8kkdFavqpFH64MkYYqAN5ZeByo9RzlUqqI6aMXW48cjjLJNac7aPnPtKWST7Q08BjAhXUqbI4Y9e/wAHnpmwCAibjXe+t5m6xGTV6VFvYXPG7k0pFm+O4zTkcpGY3KAq1RmumS7WlZdKhumVTKQSbReQe+S6mWKRpJAN29KHTrnG1L+HG0L+UqdxrdfNZ4LcQ2hgwWyFr+mOpXHigRjtka0ybpAw8l7eLXsP2cXtMa2zsbodSSAP69soWFIizt5FJ2u26798mkMfiKgmJRQJFprvki7/AH2yZdaSakQCGJzqP43LOHW6U8ce/tjvFaPTrMiSMjLs8OqqzY49/fEfeNKzeIzStIBdhSQTRB7Z2RklgLLvW04WPij1sE9z6dMLoesL1RAqyq7SEruFjqDzxk6u8jnlmVWNBgLI9/32zmnl1Emjjd4gQeu56BFcj2OchbVMq7ajVjbUe9elfv64tC1RY8Unhusaq3A22PwG7vEQBYW2I1ubLsB+I+/vlckMjRLumCqzFxtHJHp8YrVPCitJMnhsvCXXN8Zv4InZSZYIZV8MlWZSxj7t+/74zTIql2nLhmplt+AfTMuIrBBRC+JGbpeCAOmWaaXxYSH8zA3tJ/rjJsWUaQ93G9m3FVI3L39jWImkD6l4jAW2+cNXAPT+mNliuMl9RtYDlmAWu/FYsKiQNJJIiMDuYBqAF1eJTAqETuo2AQrK4JAIsULB742FXc+VQSDRO4dLv8+2NE0E6XDErjsL5J7fT+2TakrHqfDmWOJY4L5fqb71jcb0N+A6l5l8WVEjjAJCeay3FdcVppXi0EQ1DhpH5ZK4boOoHTKNRLLJONkkYjoFJVWwKWyD2zPmk1CatJhbadiC1eUc/XGpDLop07FpgAFEfmKkGzxXt75TJAioRKhZT5bJIo9OvbOgIEm1UKIepdxx1HJHxxxiNPqG1UfiRyJTL5uLLUOOM1JA1hu8caiDTeGxRQrVzXfAELRahZIiKbkqAQLOdDQrMZQrLI9AJ0B7A/pjmbc+1VO40b5pb9PXBSNqM2bwbiRQGkZqAPVvY/HOP0cb6bTiQEIoIVCvFVfUH68ZR9zgaQOIiwjYtZ6se4Htgn7w0niRDydC28X6d+PzxsNdhwFDqN/ij+ItVVFT7ZSsD+ESswZj+HcP2f8ArI/AMyDa+0owAK+o4rNBmaHRmR3TxAoAY9ua4zJ+MWX6MbWSal9W0TIkdHadz+V1IPQVd+3XINYHh01yOnL7U8va+wv+vIzd1KtNArkRyrdjfxz/AJGYM+ok1CyvqEBaIFQm7o3t2P8AvAWgHuaKJImlEzEin2EUeT09aByiGHWH7MBgkLJvJaSQhWbmz5TzYr/WO+xl05UvIoK0CwZuTXqM4mgM+t1WoDHYx3Kr9VHB4+cFmb2jraZpdPuErq0lMXFMSB1IB9cUNDp337eXLbuSSWH+ec8n2gsUyIIV2lNh5AIPsfXPQybJCy2rBiSD+I/vjBbDTFy+JFFRRhIoJLAABl9Mt+yta8wMjBOl1tBJvveJ15M6KRGN4NhwOnPQ/THoi6dBE6rDI1Go+ODxziglqOfd42m3I6guLddxAA/7yY6crI6KSUUk+Ztx6X+mPLKrGBGj4b/yVRJ9PfnOljpdOXiQWyUFPt3vADoRqVDhJYRUUdX7H1+MHT6maXUgbQKBok9vSs5ppQFkBHloMRRHU+n77ZRxp9z7whK+Z2Nj2Hth1BGqjytsZUcKwonsTkeqmP347YjQ8vwRnfs3WiF5I2lMjom/cvQ8dPnINRrJjqFLRHgltwP75xktCk7K5mSVi4YWyCw11Y9c6WEsfibyscag2OvP/WRM2pvfLv2ycAKnWj/n+mUo4hR6baAebHXjjj5wtGodBHDJo3dhv2/hIFE+39MhGtled0UlSikMvUAeoGDqtb930a+Cm0S/i5sCj1+c54UckYlaDysvC+J1vqScK+2HiGNfNLIkTwlQBuoj8a+tHOJq21MshhcIGNedhzXcYgktypRihpQG6elHO6OBYoNxCKjM20dG55741KjVRRLFIEUDVKsl7T3LA+/bCEeqikERQLY5Jawbxc+moMVcux5/5BT9T1zkMpkBjG9vD5LE1xXYYA0aWmPhoGkRK69evvnI5ElLrICQ7UKJ29cAzv4S+GAxALNZvp26Yu5JbCxqCPMdtisnRkLZtmtdAgcm6BB3dqqs1IaZ4y8KdQSR2PbpkEu6WJmWw4AVTXPxePheNEkjpldQB4hYD3rjGWgkac2uXw5DzIVtWo1+XvihqYIZYgtozKCb8pN9vTJ5X26aNplUqPxWeSa7j398hMsmo1ZWbfGVFKg6Cuh/LGsmoKjUd5pdUdR4rUW27FHAH+bzHlWfx5UkP3kKwHJoiup+cpYPEGYySqpG5rN/UjOavZO/iB9rm7ZBVj0N4GxkqMr7TSWSNZYHACKOFJBBPf8AK8GVpV05kVLoCmXuSBzWLmpfD4bcTuu7tB0Px/jLoCphaGKV13eZCGssa6jjpjPEivg/aX8KdvE3bQT5evbEvLI2pkmJPSkYcV9D2q8sZlWEuA17QD6tXzkU2mC6M8nfupWJsgnv7YiEF3o/uHh7guoL7kUd/QfGRRiPT/aAZ9MCpFlFcgoT3H1xjaKScwOE3sxIZ7H/AH1z0LO0oVjHSjkbRwfW/wC2W6QES6nVLNq28m9gbtiQehv9+2UaeSKXxNLqXOnErW+59zbh06DpX9cMwoZ5ZmQMp8q7iPL9cH7R08seoBEnhTKoIWTyVxX54yaxGGM//t2raOOwqdNp4I6i/X5ynUfaM4VPC58QdEG2x2sn3rJSTNFHIUEXCg+a/qf33wNbHNJp2jjIYg7SiHg9/jFSVoDGfZ2ruA6HVJuRmvY7C0Pqt3mhrGTQaGfwZt0wQBnI3OU9u1UcxS7aCXdGXfyLJa2rgcHj1F9c0Zt2v2y/aP8AB00gG5ke+dvHJHF+mUa0BwfaOniSHwmLIUoeGpa/aua+me+z5ZZNSIb8dBbEbClWeeo/1kya0aWSFdMkM0ZfiVkO+veunGXa/wC1NJLGviaceMHFJGfMw5vnr9MVoJq69tRHTxnwoHNLGyC7Hv6cD8szdX/6nTVaP7lo9ODLtKktdL2uzVdcqeJvtL7OWCKSW0NsNpBF/wBuT0zOP2GPvkcTMjOT0Mh8wPfp7euCNeipL05JrPF0cAB2ppkCuFA5ezQvJT9oxyEpN5ASAeOuaU2lXxDAsSRoXBpG5XvyPfnFSfZunSRnVfEcqtxrID+d84LjdsYj0mmYTztc0cMal0fwzbcdfgnFQ6rURxqssh1cZq/DHCnr+mPnWXTSrLCy7XsCMGyR3v0GDGk+mUCJVXcLY82CfnGdPsyNDxk2CUkpNuFgmgy0OLrrndbJCjIVLqu3ardCvsMdBpVmgpQyktu8xsWOv0wtTolNSyyReGGAcAc/Pv8ATIXoLVgrqWEBklgkE4UIEPFHqCD/AJzL1Go5dCJHLhg9n8PH7/LNdzKGkJlVwF3BSB0I4sjvmTqXJXb4sajd5kII3dv3648ewJAkNLBGsnmEa2NxsH6jJTrXbVbNSirEx54qvQAeuXIzogj2DiqU9DZyL7TWSPVKDyAvNjk+2PBJsfon+0dM5QLC607W38pI6dOxwU00s6NEJvDVeLdLs9MoVjLGnilUYn8Y5P078YUREbMqEtHdLuHJNn9Mbk0qML+yfH0u+PUykw7qYhTe71zakXTr4O7bZW6C3fuc5o2aObxfu+5pbDXSsR2vtjtVp1kKGIFSbPiDpfp3yM3ydm6ZLqVCxq0gjCzHaqH8IFdvTM9/DDMBu3Nyp28A0MuL73eNx/46/FyMyJYpotTsMYk2HgKxAUX3wwV4MjRmHlVVUiQLYRLxSI+odHDKAD5jIKI9jgqVmkZV3izwQd304wjO7apUnqNd5UvfLD3B9MKQHg7R60IoDIWUtt8x/vlATUJMHRefwgryAMy9WpEg3NEyBdo8MUWHYkXWP0/2m0ekfbuimHHiA3YHXjpm4eoHY/7RQTxxeNG25Wp9pqv37Zla52hmk3KyRyVu8W25HN+uaP32YLvXTszVY3GiR638YDa+DWMIpB/FY7xfKgenPGNC12bowDrYHpTp6ZrqRKK+xJHpkmo10qnw2iUsLG7b+L498o1qnTTl1hWJXYqd/BX6dKzhgLIjS+ZFNqY6AAPoTnfHitEdvCJfE0Ug8MMjHqezcX+xnVml1Ia513bbYEVWOkWUuS77vJS0en5d8VHsUqSnNEFmbplLT30CXh7TbYoaDKADY3Hk5ZHrGOmEO1B6LtsD2/frgxeE6NEA7hF6qP6HvjJXbU/ZjgLBGdGBaoNryg8cnvk5VJ6FWlgiLWJHExeByHPNsTtPt2wxJHNGkI8zElqUc/PpkbRuI0AG6NvMSGr88SskkAHghwt3ZPK+wynBPoTlXZsan/48ZVFYg9A47d79MifT+MN8TBQABVUpPrf9ccNU/gPI67/FXazE8/TJPvaAbRCDTckHuMSEZJDNoP7uAQZSI3agWBsX79x2zqaaMxsHKKzSFQHNfkcRFqg5keSDYWO3cB/bOSMzvHtR2EYJHY/XK1IS1Qcumh3pG7jd23Ef1/zi9Q+xPCEShR0beDWSySySqotdrmuOxxab2YlbUrwD1sZVQfbZKU10iiOSMAW7xHpY4/f0wJZXDB1DeXoXzjyiM7JEDCqJ98ZIkssamOIbD0bpxjdPRbwpQuKRJKP8tL+LCidY9SQymQAdm27P6/0yeN3jLLEATQJ7nj5yx4y8aytGVYHjaw2nvkZYUWk0sxEqhF83fv8AneXwagxxhkcbyLrqSeazPmkaPUKCoKnhgG4rnHwBbBIB2ggVdr7jBKKaCnppJqH3GSU0117D074l/GluEOK5JAHW+t3iTqGjRBGhq+o4B/3hbJniZn8gY2oJsE5FRrR7FFpTKwJLKVvzsQpocAkfvjBnkYRU9qB06EscaZSyFJEJYt19fY++STR6hn3guVQ0CDY9vy/tlY72I8HGVZAaHmPAvp/rKtJpl4UEkFgxB4PuTkoVBKhC7bUAqOBfrjP/AJKzO6Hw934ee3Y4H9IDv0sJWAnw2VR6Ioo9TkzzRqjGSJGLcIriwPcV3zkgJi2N9CfT3yOOJ1h8QC0sbTx5ueld8EY+szwv0ut4aKRA9ivEIrZ6jB1bRNPGQzBW5UsOfr+mTwp4bRSD5Iuq9zlUcczSvIIlZpUIQg3QPb5zNJO0ZNtD4mRIGoF2Y2sf8gH064xfCSUjwx5hfx8fr74hXQAEmOOyAQD+KuKHf1zku2OOIgCQgAOxbv6dKof5yXGyl0aqoXjjlZG2hLvgEmz29OMtKxLpVlG6QqRYLEbfYe+ZGh1DySLHvjIC7BfVv/0vbnNfUFo4SrSRpEFveJPMSO3xec8o6HkZ84eXUF5bRE4A7C/TFywo/nkO9lPlTsT7e+c1etjebYiRbBR8QE7rrkA/2rvgGZlkIG+JaJ63Z9Dz1x+LQU7QMrDSI7lepB27RRs+ueGnc08jBmC+ZVPQHt88jB8RNSxUnarChuPPHv69snkhk3AjyhK8u7aT7j6Y6Rm6YvWk6RpTbJsKlVbg2GH7/PNTRvW6XqrE1IWosPav7+mY+1tYrxSNYYHwiDZNdjmh9keLLo4XGwlWIdhGpIbmr+BlPkS4E4t8iwh9TpXjjRHC1wAfMD7/AL656P7PhUjxFOm7kI42g+gwlhcRu25wR+LcKH0IJwQmpmsO3mq7K9P95y210ytfZx2WAB9Ptfw/xWaKn1AzU+zGmd/EbbsC8spPHQ9Mn0ILI0TuWUk04Xlvk5oeCNJGojBRm67HtmHuPXJzkuglKxHUgTMCWHLbuLxqBFjWKJl8jWeetc9hhyTLJHveQAVQXg3XT6ZOZlFeGj7SaZUI5PbveRuzFMVyxFolrZSgHgX7Dvj0JDeI++7CgV346YlJisRUFmQ8GrNX2OdWRxGZZQUYE2ODx2BzYKUsVZGDSIqB+KPN+/rgxNpiqmQu7mr3HmvXnI45hTqwUFGoANV9xxnJdUDtjRFsctS80eev0zGUWVaXVQszLG+4Q+ZkDDy+g97yeeH75O2/eY94ZSBW0kcE/GFp3EenZXijiA9Byf3655NUI3DojOyuPMRdiu35HDf0ZoBYmSYs7tJu3SFiRyoIFcfGM+1tWNRDEqQqsjMHZFYVQBJUevpik1e8eMqvsFJHG60K4JP79c8UeaaMvQrygoAp/mv+nTNW2FIytNoyjBoz4JdtwDLRQ7gauv8AOBrAiwpCsZLhyGYsDfQktfz+masMkDxoplYM07SNurkhf5uel9PjMv7kdSGopIXJKjp+EDp8/wBsdS3R1oeh0ReKUxsSdotV6Pfft+mVvplEatExsME7r5up/LEaASREwPSlrOwsbIHTvwecdGWT/wAZcHmmJBr4+TeBt2FjxpptTpvED7NhBoDkm+L5zNIfSF18RPCmOz+HYJFcn29fyy6fVSo/gwIAhFklt3NcnEExiFn2guL/AJyav+nP9MVYYOOaRo4/CkGwLRMnO0dBx/T5xc0YUExrIWLcru4PznNK8UbqoI2nlzy24/6xyshqGMgRO9Fm5BvtQ/fXC8BY+Z2SCMlXAuwNxqzxhHVtOdk57BQVph9O4wNfKInaGQqQAQCGqqxX2akVSKyhQQOS24We4Hr2xe1Zqo1FaCVKZ0VFIBcE+bOzhKK7RJH2o0f2BkEkeo0itLQZV6sTR9+OnJ/LHKzSgSuwAA79+nNdsVo1HBFEIb2Ah+Apfmvp0GNOtfa0GnA3ny7w1gfH+cRNu+7sQkbs34rFUPXridPIVi2GMRlCTS9B6X9cdAavSyREnWONSu4WG28Yl53jKOC5CdSW4Ppfv2x0bDcS6Ry0aVmBNj1/PJZlKLuCj+ITe09K/fTCgIk1eskR0ncRAua8MncVruayyHUoiiUPch4k2rwx9b9MxdQHlkURyvIpCncOnJ6fnjopN5Mc0yiOPym2N8enp1rK1gGin7xtlAaUskrsStVx6fGUalSQoSMBS/BXseK6+n5Zna2kSKUOVDA7HjW7I6Cvj+2aGnZZ0hbU7EIW75JAv2HX49cWX2Mjd+ytTpAy6Y+CwVD51jHFdenGW6mfQDQePpjHtQHgHk9vzzCGri0mq23Gysd3mB7cc/GOhMeoQSSDwVrcEfn6D9+mT5ZQj+NN2ID6nUnUyWixgWCQSSe/Hvkbs2jh3bG5cMACSTd0Mq1utaNVSOQ7QSwYir57n6dMhlYS7G1Esgsgk7b4+f8AGKlZaLdA6SfwpXdy/mJDhksD/eXBZYHDwz7xMSzDoSb7/HOZ51DoTHpZHlUNSiqNH9c1dO7vom2uNoO22FHrz9eowywLBf7RilkkMaxSTBQK3Vz3F9uMq0xTaqkAcdVugvp7nMnUwSI0QYKyurHbuAZj7nvQynTnxdQkT7kQAHyNd9+n9sy/QjjhZC0iyL3Kr1KWSOev1OO0c7LIyyaYspbjd/b8sCWbwZC6zbj+Fif5v943TvDPqQp/Gq3IZDWwUa/XNbJvoi+2ETT/APyDOjePf8MtYjHS/m+/vmdpoHSVYEEggVfMWajR6gfPr1zZ1Z0f8bUadlfb5VochgD5RY6d8zoHhSQoqjcq7mdRwb569+vpxhRSL/EH7Ne9fqGSNaijiVlU+badxuz6X+7zSgCnU7lBLgDiufc5KI44ftBiibQ+kViL5sScH+vXNTT7JaoPFIVJIJ/EPnGkhG+wYmdZWn2lrAvmj9fjPeIoBmLMAajEYeyD+++dkRYaYqFZ623zfsfyw9PIU1IRnVCCCTtq754xVjB5Z7QwRwP4booQ2fN89TlmvhNSSvMjRy0IlVa2gDvzzziDKDL4avGwAtj3xE0gdFUzbyaC7G/tmvwWm3YUaygJHKVVU/Fz19PrlUbaYaZtpsqRuBA4PXM2BXkKlpWIDX0r88bGywRtGH3WLNrd364LroZqxc2pIAdFdvDc0a7nv74MH2pTSPOUKhiFY0AT/rAn0r7mmjlWk/DyQPSgf74vTaWKDStw3nA235qa+R3xcKJJoJ9cJAxVm2bvIqgjmx0oWcCLSSNrGdQ6MWLJ5qsH26nOaWZNNOAkbJHZG4iqA9b7YWq1C/doisx3TP8AwdvB4PT46Zh/0i9ZAZ40EyLaV18xPpffvjp5jpbeJCPDQb/LY+R+uY6SguFaGwpB8xI471++uX/ac066fw46lV1L791bTxSn64H2Tcdog1GokkR5J5nhpQdoWtx5q679Mmi1hjh8TUjdHyxFAGunUd8U7nWOUZg5ZqKoxWuOx7jHosWyIsZP43Is1wOLA9/7Y1FaVFEmpbWQpBIG8znadlMARxQ75VpoNPBpmEUoiJkJ3tzftXxmTNpZ38Jn1ABPmijU+ZSOvrjdIjMzamRlZU4CvwQADZHt7/GZxsSlWGwZY32Q725Q7mjUVXt/nIZVWaOMhiAwu1PX06/TOq0Wq0XjQymxuDFze3oOAOvF9PywRO6f+R0SIUefSu/6YtUwxQKJ4EVbi288EtXN+mAEWCRmZgdx7m/oP3dnM4/ae7VKoXz1SsPMr/r/AKxmpdfGNoEjSrRQQCPQjDx+xqZXq9VuhVJPFDBapONxvgdPbtk+k/8AlIDMlv8AyDtQ68/rkznYizSymReCqo1hTzY6CvrlsSCOIOkRNLTk9BeGqA1SG6TTxPG2oig8FC5BRxbGzZJ5x50yvoyIVJdSWXn8QFij/snFwKQhi8SBrokDysAf6/TM3V8yPFpjExXagNCozyaJPQcevbGSti//AEbDp9sRkmjEm51Ck1yQO/eso00M4nDR6MvGSAsotTR5Jo8n61g6X71CII9ZoBMdoaWdwNgv0HHPuelZdG8EIcygLGzFd6kFSR/+Xp85TjQkpeHAUklMEccbM53UxBPrXPqMMTSOrI8IUUQNz178kZHCNRFBK6RrHpm5WaRdu3vz7cduefbCGo0mp3Hf/MbEg8nboV5/MevOLxYAp/DbRiPeN23zUenoB27ZzTt9zgb8DFIyXFAUeO3W87qYHTTs6uEB5RW83iD1BHpf76ZNp0jkUySTrGIyQT4o8x7Hpz16YnFjKmjThMuo0yFhHE0i8MUplP8AfGM43BGUMppel0a6n0zElaIurJqbLMbRzezjpXX/AKzulkk0kZ00XU1Qcc89vj2GFdGcDVgOoCFJZo9zGlDAkKK4zj7ZJF3TF3A8yAVR7VXXFeM8Y5AUTOVRuaBHYjtno42hcMGkNN128G/T2+Mn0CjUSbypEaG3oO4NdM7KrTOEM+xKJrpZyBGkg1UauwVWHBPUfB/zlUmpQalSJGUkeZfX/eOv2Sa3DsTxlJF8ORtrgA1xjGYIlq+5N1URyf8AOA5Ym1UlQu4sRV4iTW+INrHwyOh3V+vGH01WUbklhBBoc7gi7uprvgRiF28JWG5Ob9fnFJIGDFQtKtNXfi/yzumijZSPF85X+uFMDVIIkaXeQCefL1oYw6xVYuasjaRdfmL65yRFSVFDcnki+v7/ACyM7AxWVRuHK3VV68fTA2xkk0aQmhNx35TVehH7GefbsDABuDwTV5mrHIHSQCPZGD0/EOp+MVIzCXxtwbYaKs34ffMpI3A0RqEZfBdWVrpgQCG9spULfMa2OQLoHteYx1LfeGqNpFbhQlcfn9MqhlkSOMPGqyFyPWrv071msEoljrvZyCN/YDt73XOehVY9TWokjXePIKA+cikmdYdsp2uT5WXkL8ivbGafWzSxEEVLG9AvQ3C6vjjMmuwcXQblYYJJAKQEDy8kWca6LIkchZTVcbaoV09ziJpniVnRia5ZOlD1564zwZtXpKDrCW7rzXQ/nWKqeG/bGTRQyQuHfzDkpdH65LE0ZcRAkF1O0V0oDt+eaS6SGBC6edwBdnrfF5lSgpqT4bFnCkEAGh7H5vHkvsEHY+XaqBEppA18cA11+cPTR7QTyPEXoB0B/f6Yva6AeUF14BYdB7e2V71jADK+8rYPrXbA6C7GR6qNykQH4evFbcCXVeJEfFpbJUsO3p9cmjG0ygA0UO9R379/nItTD/B8NHZWboQeh7Ee/GDnKgL41YUuoQ6jTspZigfot8cY+eRJZgAXBSias161nz8h1MP2rpFZnKO5BfqWJU2P1GahV45mDOWK0D/9v84ssSLOKNDyQBWVSWRbFH9MRKfMrssu8kXyKHH+++HqJh48IUjcaNHsOvOLleOOMSUWceZgOSfjv1zIRI7q1im+z4xs3RqxDKep785iHTJ99Kq6Mska3sJFLZ9ep4xra1o1VQZVG4+d75Hf69ayjXGR1EscQDfdxTMQav8AzfTDdlY/jhLJLH4HhxhfD5O8ptJs988NOjozJP4TIaC7up63/X4x8niRBRPGEuwQXUAf47Ytb02r06wrvkYgu24GwSODzmS0Zv6H6NJVRjNIp20dgbcE461l6wJqJiZKcbRwSKP7GS6mJtI7LLGZGkPkKjyhRzz7+2VwosYjC728RqU9moVh406JN2rHSxANGRHSIKKg/h9gMn+0o0AlWmLvXG27H9f+s6s6yO3jRhdprzHhjfWvpeem/ibgTbbfIR0vryfTA6YqtMzYI44ZXXaX2c7i1X6D2rKtMkxbxEMewgMAW4X8vrnpvucuoberLVX/ACkgjp75NMTHOBYgUnw5DyTdce3T+2JSsp2V6mddWiJPGVKHkjjlT1/1ngGg07ybRNxtRGXpZ6m8iklWQI0Um2rPTqT6f1xissRBEkkkJa2fmjVDnD6LWHYFi0Oo3xUNg8gY7vnrzx74ydo9b9mTEEv4ikkofM1Ht1P6YqGcPrnVjtWMeHsYWFtet9eTlEGm0r6jerHwB/CUMeFHTj5OFJpGb9JIC7Rfcdqx7lIR6sNxxfv6d7GUaLQnS6KOWRZWETsqKDW73r54yjUF4JkSFG1XI2uaYdR196PHxnvtPXagyeFD/EnU+ZEYB/X45HS8dVWitt9Ayad49L4eoK+HW9vGbkjryQPbM3Sxwyp4GmiMQPlDWSD6kA8k9M8dRr9bOFK7SsgCsHBqwTz2A/zhaRXifTNuYbGPiASfis9T84HmjxTSLW06QIjyE7lARVY8jryb574OkDs5R42aQfiCttUC+49Ofrg63RjVSxO/ilfxCNDVEG7sd8fCyRPISz+egUB6dv7YtoHgTj+GXWAhf+LS8mh2Hb4wIlYSswEm9hwLF0Ow9cYY/wCIWfcW3MQbHPFflgxzOwAeEtu6Eg37nA+wJhQSFSbjpQ1deRfTOeGmrArxKI4A5rFfgWQLtDFb2e2N0jyL4bI60V5Abgm+mC0avR8qohDOTH2K39Mnk0xh09CNWSfyFr5NdPbOzzqjzOxCuF5Ug06/2rARG1GmKwyQvvq7k4X36Y+AVpASxR6GPxAWOxQCTVgenHTChZYo5Jk5EgBk8vVf9YvUsJyYVKltl7CODR6g53R6lItA0LPEp5EnPAJ6DJ9D+EXhgkuTG0Z8zbuLAwRNFtpZULO3lD9V9sUFfVzJFI52xijfp1of0yiJFidWdBXQfzX8fp+WEr4W6SPx3YnYQt35ete+T613Miqo3b+fJ6dhz6ZWwYKoBC+Kb2qeazN1VvJv8R1IWk2Cyt/OYmtYxY2dk+7oqB2209cDrYGL+259QghTZUQXa2whv+xhqry6RJowUZAFLCiDx/jIGjkMdTOxXcSo9RffMux4q2NgknlMbRgBE4PlAsD1y6V1lQRSQnmzXXIYU2iRmMqA1abwdzdq/wAYI0xYeJCjxMAAqvIOpwsLovOgTS6SbUb1RJfKtAhhXa/7+2Yogi3ODIwjLgjbd375a+sBnETuSsSeVa/Eepr1HXriDAs/8WJy0SAsOeD6n9MZM0U/S1fDl0qsWZ3/AAoxazX988dGrOpMoagDtB6e+T6bUQxTbTtjNkUAAT6V++2Ery6iRkgYRkEdASTfJvFaZj2qUPLtEZkVD5lK0D6ZLDpy8e8MDuPmbmhWdGn1U7g7xcbFmI4J/YxrlCHDGiRYYEAe3OOkZsmSIxfxInLLdUy3Xt74RhiDCpFbev4WBW/p+eV6X+COCHDOKZn/AFHb0yfVNIHVFFFnL3ILD+3HGOnYtsoh0zyxIyITGx4dTQBB6/Hti2ERO3xBZa2cAAH06e+eSWSEpGjyxDaHXkbB613rrlZ06ukhcAji7o+b0/7xHhr+xQ1cY1LSFlbyVsIsf6ymAaeZLkke93TdTfQ5KYE8RY/BBKpuCbBz8nCj1cemBDqEY/8ABbvvwPyxHofAp9JIJQJJW8LqjA5fBAqRLNIN3l4U9VHfIWmaWMtIokWtwLcbfb3yx9dHs8BN6kKKIU8dO+FCysnDOSdgZ1bkchhXoP31zjNCfLKoRCNp8P8AFjIyzMQ0ZCn8O8bVH++cgkM0cyu0ZTbXl676/ZwejJDWaDxZnQTWooeJ02+3tnJ9SPDapOAthm730GJWdpdQyRNbKL2rfH5+mJMTxSodgl53Hc3Qc1wMNW9DQmLT+IUcOhKgKTGL44JF/wBsqWoNbskTaAaSxZaupJw9MYn0OnRI6COWLcWbyiJY9Pq5JpV2hgNpHHX2xpMFspjmjeBlVdwdtikDgHE6mJI9MytCnHKs3W++Pl2meKQkgqtX2N9vnOazTwyJHLO1oBakNzfY/n2xF2KfP6uVyWaONY2oehH1/ffIg0k7wl9xcErIirQWul+oyrVoserEaNE6uL8rWljrx/n1xsEBl1CyhGRVFPY/m/YzoTSQwKane405AZlBogEgd6OBqXlL7uTG9jcOeL/U5ZqNKN6NtKxsCCFII6H63ycni0bwMVSR9oFA9zf98Frs2CdHOYDJHHUilNxNmhjUkVpAZnIVGDK8f8x7dfQ4tGmIQDcbNljGd3J5s+l++XCPTTaQM0ZcytuRSQpNdCP198LqwMOWSSGJZwwawd8EqArz/wAe4PHtkes+0oBC+mn0INqGbwJCpQ1waIIzai+zdTOdI6RxtEWMhF+ZR2sHk9/zzO+0f/TWrhlOqnVJUkO24iRXoKONHNYqcXlkekk0L6UNEsmn5G8tHe8X0FH9fzxrL9mSuZIDOljzAxhwAepu7/XPJp/Dj2LGwWPjgXZ7g55YY5WdVJQIACoS+Tg5ooH9mz6SDUtEuukaOuGmBFewo5Zrp9FqJhLNqpWonwkickn33V0zEmhOlKeIFcED8Iuz842PVRzTLDE4Nny+bpfXr9M3btCVpWs2p1nizIVVz5YzffuKzT00kg0g37DLGAoXZ/f/ADiNBGJAa/ECOb5s4wyyafTy7/KhY3Q6DoK98jJ26M9wy5YXR9y6YRkOSAxq7473gCKfUQbCxVeh2igD3+nXKU1j/eGgkDNHI/l3KCDx+me00vhJqVM38YvVKbsA9axm3QSyNE0sXiMvhrG/AWTcKPsee+CztqVMfgMQaZdoJYc5P9qa6TSPGup8ONJgpVxHRHwRlP2ZqX0q7gnj+er3bQL464OL7B4O+0ZJBHAqwv4oABcVR6XYzkunidpfFaMg0aC1u+fplUSxyqyKpSRfwleT1yKdJo5dsSlkHDDpu+a7/OLYi+ieFQVQBGWN2IRh++uR6qL/AORvaRpVZqeRhtUHsfnLItgXYrCMhi1SWtHpzf0w9RGkeoT7vCkjDmRA5I57V+eFOmMyP7rpdFD4dASkEllbgnODTIIBJMz3IwJXbwR8jKNekXhrGYlCx304IHv349sXCd8WxbZQlqB2GNb7CngSAiQhw3gubAbr9P8AGOlin0qkpM5iAsLXbHaGFZz941Em4hajB8oHqPrnNV4gQKwG0EjaGsH0/ris126MlZ9uqJmVka9ym+pzky6eRjI0TxyseNzfiN3z7ZU0A1RAQqH9WBIAqjx2+mTarRRgBShLIp8QFuldwcZNWOBGy28UO4qrecp/LguqIf4hMqsevf6HqDitPrJdA4KbVU2TYu+3X++M0sLzguF2LKCX3che94zVaahetKqVUqoUHeG6sMhqeMSwyosTrXJUEUehFe2aSaUlVDNvUuwpFAG3tWZWt00qzeCyBfDHJAsfByvxtP8AEV4aCauODTrDQXcdxs9M997iMsZcoRx5qvv69j/XM1fs3VeIsiuBEgG6r/I47Wx6aIK7F32tXhq3IHrXTG4RvGZMT/6gJ8dWR+JgEG08Xkqaw6SRtPMyyvtoBV4Brvh6uKOQC34VRtBQkfn1vExaeSSc7Ryx/EpJv2+c6YqPCmTd3gSayQkOybXApQvN/vnAaKQ7QyEORRUiiffLotJG0Xh7kJWQKGdgNp79cu0+g1n2pM48GWR42AkaPqvbj2xeaTwes1mJDEUDKruWA6HivbFfeJozKjoFMrCjVge/rmtrdIum8faspigIUFwRYzL8SLVSoHlKbeCSLHtlIyvWhGvob5zBvK2Y+GCih/oYvTiTVMCfMgblG9sdNMBp2hRASQPwmt4/r/1mdvlVi4LKL2Dzc+94YptMVumN1Sh9SfCbw15tTfJxMbFpwsagmvm8vgWDVxszWstUFbo46WMKBIhTnbIwHFCqrtXtjc6VG42yUuOBMCpugG6D2rDMpji8MxlU6KwazxgSanxZLIPl6dsQzPqDv63fIsHj+vvhUb7A5V0IRIzuKDcp7HocEq2mdWUEE9b/AKY7TMxbjynsAeTnK/htLuImsAcA3lr2iNZaFzRnZ4m3ZGeASTR+M6WcqFi3DaKFcA+vzjpYzJEClE9iOj/TEK8gAGxTzW3veFO0BqmVLIioPKpvjaponn+2dDzPA5Vtqq3INcn5xAhIY+LINvdTZOWakK8AVCxAFhm+f3xk3SYytk206mQvI3Hru5IHtlb6cRweKlmwV2brr/eRwoj6hfKKHTcCQT9MtWVoXXZGm4m6qyB64J/SGj9ieTYaQEt5gqn8PuMp8WS1UO/h8it1mvUk98SkqyjiJGYfiYi6N9P+sEqwcEA9fThfbEasY8wZ4w5JcKb2EcH656KaWJgARbcgN2+uVpK7aVgYVQLwSBwR1/fzk2ohZnjVaBHJF3f5Zk7xmeaOkV5hwpZjwbvnAMTyEqF2bjySQAfQZ6CWSFySxLLwqgdMfopNsbxNEkknbqdvvf7rF2JuyHVohWICVv8A8rGtvrilUtA0cfNknzccZRLEW1C7v4m5vwkfu8XrL8OkdUuwQAQD63lU+kSf2PDo2lVXp9tFSOx/xnlmeVSokHPC+Wjfe8TpG3OAqEmxvVTd5W+n3BpVi2pfnP4gD7YkqTphQmOILGoaiS20KOeT0Ff36Z6QSaTVBZqJcAMhPAroPjOakq8aeEkiR9RfNev9sqeBGUL4hYrxbnai8dgOT9c112NRofZGqWDbLPEZgqnZVWvzz6ds0NVrI5DaQpEiAqAtKeRde4GRfZ2iiliAL7VcbvDVTyCOtjKvtPVQ6fTR6eP+KR15pQfX29PfOWVN4B9mW08IKB0/CwVRXA6+UXz1Pxi31Cac+eQyEN0K1Xzf/YyuIRSsotVZ2LMFH6c9Dk0yQiQWzsGWgfQ33/3hTV0XSdC21MSukkQDEP5lK2B1oH2xmpTxAxeONBttVCGvz+MTHBMEUJBu83Fiz1rj2ykwvOkkbnxGTzEevx7YzpdG7INQHYrUa7VIJbruPoSMr+ypGhaaGNiu5xJtWqIYcXfobxTosULBl2vZMar29fjEaWQpr4vEbYrkxuSfMoHNj37fXH/1Fon07PpEm1SSg+VU/mNfh/7wg7pA7BgG6FivS+cfDDpo9MHj8XfI3868V3/YzuurwgixHbuoWvB457Z59pui6G/ZPhwQqWSiTVlru/1y8sksbeK7rJRpwSdw9v6dsx9GrbWLoV3MKBb4/TH6iQyyJHD4jI1b9j0wH/1P5YkoXI1lmm0ol1AMrGMenYAe185ZDDH45XYCQ3KnnaPX5yJHXTGKJPEdo1O1pGJc2eL9srjDaulXw1/mO03xivOhXvZREIYkET2EUkqA1V819MldzLK8jKpH8qgWSMqCJHuBcmhasTu/f9sj1LsmxhEpYckhCQR0q8AEcYxqwaKD8VAkHt3v99sRE4MioqySEqfOxAPc/wCMNJUMKyr2sG/f9/rkjRtJCsxZwtUoPl+vwcZDlUsxjipYyjOpSi4rpRNfGNj1WyAIJF80gjBrpSjhfqcx9VAraiIo6UQQSGNsSf8AeUx/wpwPEAMQOwKgBZq5PX6Y3FUDDUYyibczRqhcldy7rFgH8hhRqyaY6pQGWRnYL0uz/gD88hDPBITb7DbHYNxDEHqeo+M6mqkaFdKoshGLq3FkkUMFGpnTohJpFVEA8oDMQeoJsfleRCEpu8NFO1dmxTYs88/5yv7SnkDNSyJ5vNzwoZh6d6r88Qm2eDdK7AFnbluAo7A9Pr74VYyFQjwxIkq7Zet3yt9ePasTJKI/LtK+H0Ju2PxndVM7TM6uNvRQFrce/OTyzzM27dJ+ImnFmvp++mMo+jD4vEaSaQUzoLBK8j0vEnV15HEbE8kheb6DO+NNpwd5ksrallA5PejkzrA4aRgxYm2cmifYDp6YyX2Ciz77sj8NwDf/AC6D14H0wtFqpodSsm5Cd3k77b4uunH98yQkisGdZEU9AVKn6+vzlsc48NdziiOdwJZff/rDKFBSRpxETamaVo1ZZG5ju9o9by2ZliJZhGokIYMt2h6j9f65jacjTsoid3LdSvUZUv2i4BhrxEc+YFel80T++mSaA0bzatJtI0cdKdoJ3ry1cfTJNUTB5C421TBV3V6XnY5VMIVnqhW0KKJr1wd878oDwLZ+o6YiFSaJ1eLUu0GwKqGiIxVjKKCqi77o9FHFdh85PA5TVSkRq7yVwbUdccsM7TNKYQGFjgXfOH0LKQ8sSBwSp/A6naO/v2ybVE7KKo19AgNA+36Z3WzTOEKu0rOwUX09ef1yLU6itTwWMiA7UHIHvh7AokJ3QTeCCYwTyvO5v/tR5A7XnkLQ3uYbHY7rBPI5sjr3rC+8w6X7SV5kZ2ZbtzuAfsf++Mfp4tRrtWZPAjVzwSwqunNg/wBct0htHwxMzHVT/wA21QgUVQHYZo6PTurOSW8FONjfiYEdL7dMl02g1EMxDEeKiBgu6wqng8nt3zf0jw+HKruzu67kohWur/z+WRk7YrlSPn10zRb0ZZJQWYEsxBT3PW+vzmoscf2htj08wXwwAegII9eeMXJJBFC0ygOrkjev/PpQH1xem1LxgDwkVgRZO0Egnof32xXZnundhikdYwVMYKrxQ9LF9frmewLSK2xvFBABQfnyfrm7roow8PhSA01jeeDWZ08EzwMm8A7twAU+auR9PywoyZINkUjRDTvsqqsbj7nNKBY0jTYiBFogM24g/PcZPHpzKSVFOBbEEfreHIsKacItFACpcmyDxmC3eE32jHJPptqadXjP4vNVN+/fKNNPCmlZXMZpq3JwpPt6jO+Ex0gZlVYj0ViAF9u95mxyeFN4TPFJukJVVJYAVV/PvmrBu0aUkhi04oEsRuFGrHav0wiEg0wkMSmZgPFZhZb0qvS/0xcahoI2mUpGCEUEgAWRRP8ATjHrGkWnYNIppSU5BJ5PGChbEaT7NEEhKKjbudqtY4H4iDz0xaat1mmQqrKBax7iEBHc13zseq8Z1nDk7js44AB7eudj+zb1W0OGULaAi2A/3Z63jf0PXY2RQ32npyI9xOm/iMB6v7/B/PGPqlaZoyEA3UAWo8d/bKZpPB+0NM8o2xmCVFjQGrGxvr0NZMu14WkCgs58qslFvY4Z9InF2PcNRmYblBKgGya9f364JNzNLv2hFBY7ep/f9MZKzeAgAIJ8zlj0HpixE02oKST8qBtG2gfT6/5yfgyZVFqbqn8rrRQLQUYllhbUIVuglqE6X059cFo/DIhLeWK/5uvvWejhVbMQk3EeXjj5/fOa6BX0WaY+B/DmukABDDqfb/GRuXaVpWUIPzsD2woJWg8DehZ1NtuAo9e+V62FNNpBMwVQ4LsFryj09/8AWG7QOmLWbTyadVeSMEEFTV36YjWzJqJB4cRRVNEnivU0MgGpWQNLp5RLp1QsGJsbuijj+vXJvs7UCabdKTBLGlHYpI5Pp0wcfWVUKKd/gtGzzpSqxZGTgd+o9O+TyS/eZ4I9vh7wDsDcPd+YdPpjF0q+CNLO+7U6ljte9ocXW4jpXbFLp5dOkUG0PJHQJsBgvI979vbGVDFMR+7SFHV004O4FgGuvW8YdZJLcsM2zzDeH7c1+/pk7z7dHFNGITslBdyWtRzflPb64a7pUkXSSqSnAB8wJJ7304GBr7ATNpxLrvFcBd1BvDPJNenrz+eacCRaNlEqmNioPTr3N9ch2zPCsiaiBXVqEewnaT6HufntjY5lbT79c6F+Qysp4rpXGGzNNi5UVpyiamKN7BUtb+xAH1Hx+WchlTfJFKIyGO1tgIIHp7fN4AmEmq2yptB2oHbylfQCzgahxpWeIoZVIomNVIvgUeNt/wBKw1YVhLqNRIhEelZRtNvIrbjyfX3NZZBHA5ZTNv8ADoshIpgTVE+1D5yJYNN9oy+K4kRw5BcIK2g9No4J4/TvnY9PL9qJvMhLFyjBo9pSvUcL0Hr3xnFGTNbUaWAPHUCIWjIVgoqweh98mTT1GQ5O78LbVBIPA4+vpjoIJA8I1DM23dXG5Cn0785ox/Z0crtIqbWVgAXNkN3JHx/XJ9C3RiS6Q6qNfDjCU4UsFABFcXXvjtNp9chSVY1OyqognjqQD6ZfFvG0MgiF+bkrwOL/AN4E2nKHbGrpG7jazGtln26/9Zk2a/CON5J9RLPJKg2twJCKb4rof3zkskWn05aJFVnoRbUBAPN2SOL46D0+c02kffIZ1EgUjabIZCOhB/POy6hNVGyhAvTw12107cGx+vfGizOyVI2mKGedZCCqmKRjtJ6igRXP75yonR6HzPJJywKhX/AO1j8vnrhtBqBAg0u3TiMgpu8wBvp/Xr64jWSpHqzJJM8BY1JQ3biOhF8D6dMeyfbPLLG+oC6b7QkKWd2mfnYOKLXZA/ycOOOWEDVxyDSrPQKShau6Lc/nXTnJ9ap1kjfx9QwjXgrQRz2BFAk33xXgxxkSSTRhWa5A3nIHpt5N8E4fQpYVSanUCxNI7Rb7IcBhd8888Ue3HOPKac6V2CxM4BI5AI54HGFpJdH9padY0jGoMZYq0o4X3J4okenOUD7O0zwANpEhWN6IhIO6uR89/fF4NiuSRHMNPHpDJ4S7pDuXy8AdbP1yB4FMsBIaGYKV2g7gT610zZ1X2VDJAojjJhBJHmICd+R+++c+6CHSRyeIzK5AaxyAT6YOLRlNE8enCzR75n1FnfZN7TXr2+Owy4taiPYRwaLcj8/31yXTTQSvIWjtS3kKN0IFAj4x4dZPEJji2ISCGbeSNvp2+vv2xGrMzgE5O0Vtvjnn5PtjoNO+5mbzvwQxG2vb3ySOQaXTSEWSRYIANHsPbKIpT4abuQ/rz+zmA7HayRz/APHJQMy3u44xSaJEiPiLuI5Bbmr74xEjme3bewXrVHGBowTLxVfhrm/ywC3WCNLGy7l9GAvuBnY2SLUhBHVdGB2371++uLhmQagmJWtlPO2gb74A1SysrBNzkbVoHn+14yZmmyiVozqjDOi2/wCJ910PX25yT7xskKo5aMDseD+/bAaLVyKpjEjSJ1KV5QPbO6PTxwfwXUK/4rUAdR+QPHTNLoaKpHRNLNLtMTEE8F3se+eghR9sCQoEC7dwsHv2xxR3ZVEgbig5UAj0GLBmhIRAV3Ha27r04N4iC/0DNGsBVYQu5KbrZI98upn0n4wCgJph3638frkCOiRsCSjruO/bx6c/l7ZJpPtCPUx0sm4luWVzdHiq7Yy+zNWWLK8kMizLEFICjaaB78E9rybQja5lUlUeSkUkcN/vnrkGscxTtLDtZZGIYbiQBXQenr685bonGpFLGxHlbwyN20Hn1+MDTSwfjSG6vcwaeJRZsbhWwAcVX7GWu80umNTecgbgnG0muMnVgwWPzbY+AtUAb6fGMaEbwJSQ/JFCweOuImKxrTvJPNETflFbep4685JHLUEkunLbWeipHm9OPbrmlMVdWRLGocXuNDmq7YiGWF5hCjqWAA/F17H9ca9FQI1vhRhQJJNo8xoX3+t4v77K+oKTQOo2mnYghffO/aH2ei6dzC7+RRwKG4X3PcnIItPH9pamaAEwRpywrgj2+Kw0MuNWV/ejGWaFoWW6dnojkdf3zmZNrtWftZisgWMNxwT2/FmmJoBC/ghIiQQD0LV6Gsg0epEv8V4hIq8symgOo+vvgToKRPrNdDOA1uBa7QEK8hhYPPpmusE0ZR2ldQpH8wIJHFCsxPtPY2iNMN/m5C0ST0N/QZt/Z+tGoWGU+XcgIvzVfJ/qcaVcUwtNDZtVJHs3SCHd1J6njp1+Mk1Ec0rKRPuAH4vEJHfki80tSy7trQBh2rgkZE6osEh1ClAAQUNm/Rlr4GIv0ImGNFFLsdoFdS6+R+nTGaiDem+JEBBUgbaHGU6NWk0YJIkVvw0DZHbPEPEzFYzZFebg3zfOGheTsnGmXUaoePGhPILtyW/1hM0UVJtUyDncFHNGxWc1MU7+GwQhg9kWQGHTthRKwhLTxqB0Q1RPX9K54wKw/sfFqV1OjVJvxg3bHnk9sZrDF90iCvW2xwavjoDkYZ3ULEB4Y2lwRxfcVlGq3S6NTGwUqx6cDKqVp2TrVQGonQQQkREiNAfIbPoRffARt8z3HtU+jfiNWP6ZPPMFjhjV90jcFVApeOT9c8zFJAEZwbAC30yL7soo4c1chNhuOAFYqeWOLljWOYBrIZAwJHDdu3cHC1G6bTKW3KbsqSTYHS/rnNQy+GssbilRFFqQQTZJHrhrBhShRasvhhDVEUCfnK9ZAywyCCZI1KECIX0oXeZ7yahmpgV5u24DHsPXGS6RPClkaVANhaJq4U0OpvNELQ8aRtNIhEpcdZAJA+7n8XP149Mq0+gnCCRnY6dm2onCqoH4R69jmVo9P92MEeodSLDsEJsXzmnNrQZ5YX8qyhgqWSWJPt2ymCST8JtXANfrRCqmOGNN5ZXvbtHauDY6ZKBHo3aSbTvqJiqurkgbSTyenbp8Zr/Z+i8SPUt4iLIECUvlYDbXUfAF+2Kl+yj9zKCSKSfwzu2Hoa6g116YadWKpJOjI0/2kd0mlj0inZZCxybgx6m7xivF95Ekbx79vki3DpXQevP5Y5fscaPw0jiffI1uxa6vkmh+mMgiJlEarGzACjt237j3yUuytqrQ6DXVC7wxFpAAEVyavqbP1yWQ+NqDO6sKIDIi7iD8j9jNDU/wIjG3mkJPBPX98ZM+uESMs0PhIqbtxNKT6V16Zt6FVdiX1U886xoSAi0XVbJ+p4Hv3z2o1eoggZZQN4bZuY/i5vyj/OM08MWsnYx3Ca3jwm4PXrhaowJrY49NTTMgB3IQOhJN9Ol/6zLQ2roykfUHWK6INjoSS43bRd8/T1zXVAdBAYm3bGYFVNCh0N/Ws6YLjtWYMnfii37OQLM2sdo0LLwQU6Xxh8Gx6CXnaZgZQy+H5VvzLx09x85TpzDpoAS0iq7IocRgKq97/d4kaaKP7Q/gK5Tbt8Vm2hh+7zmr1EgWWKGciQCuFv0597/TB7RnuHk2RT6nVE7rSgC3mPv17+2A+r00IhTQRgFjuDvxRPXjucTHo5tHDG7E+E7A0wF8j9BedTQfePtEvFtVU5Yqd2yjwKH7vDgUkOgZYpg8TXIQT88i6B6+2W6XUSSmOJyOb/BwQAe98X65mrpWPiSIfDXdUatZJo2TX55ZHHLLpRLCoWSYkKpIHfk/ocVgdUOnnCSN4ZCbz5A3TpzWSBfHDcGyaFjj3+MfH9ivKd/jqCB5Afwtx/XKIWi0+0qQI4BtD9eau/8AvC00rFTXSI5tQIYm01nwoiF5/mr9/piSpYAsgIJtHVuD6dO2MmMcqbtzOzncDVX2w9PrPESRyqLtXyAk8joP2e+BKhqESw+LqViSYjYtcPxYPPz2z0Wngln3arUs0dHcWrnBEEzxeMxVTyUKtR5/XGTbF+zmDuQdwI3L+L/GFBZjv4Uz7Ej20GUMGsE4+DSPptJtXgsgJO7ha9xh+YBGi2sOgQqBXqfXPQRB5Q7xsrAEAqx4HxjvoZNjYYNJKsbuRC7gbWVL/Pm64zW02ll0+mQLICEAYvsFOvrfrfGZjDw1V41LAE3aiwD6Y2P7SOm0CxRySLLRAibmj/T64FokrfRRqI4n0v8ADEYQMQyHg/HP58ZioszSTb4xIieYbDwo465VqNNqNNoYovtFZZGefxQkbc7a6X39sKQpJpQkkbRxMvmMTW/HQkH++P0BPDLOtDyeDEoVQNxdj0F9h++2di1Gq1cyf+RgwNbSBx61XXKn0DRalY9OI32r5yZtpB62b9QcF4NTEvheGEQGgj8JfzjYOmgnMUwjBiMcl87WHI+O3brhTGY/wJCBGhopdMf+sKDThY31EUkTPpVLFebCj/8AqGFHWpVWDRkkbrW/XrX9sSQVR3+OajMw5WkUUK44HtiJWlWUxeAzN0DVZWvU9sGentJrRBfJIqu31zug14eZBGPw2Wdn/wDJXevjFp1YXhbFpnmh2alNrLHRFnynnj0rKpIdQiJHEVVVHLKRz6X6/llWjuVEMhB3Cqvp7X/nGTuq/wAUFUG01Y6nt0xd7IuW0StpU8JxIpiQt/8AhngEDgUe/wAYjX/Z8scQ3uHLKWUo1X7V3P5ZqR+NPpvFMLOrc0CBf79czvtPVCRl/gtFAooB1/CTweML+2aLd0jKhvSzxtpyA7JUiNdAe5/LDlmVVdZJ/D8YA1R478H2xjCVIN0dbR+FbHIrrmayaqWOF4tPsaJ/M0fJauRx7Yy0saEDigdOXkmsbXYXu9jzz/XHxs+pbxHA2qCdiCyMRE8kaPK4UUB5VG2+etev+MsijJ3TM5ClbIj6EYrFZ6QT6jyxhlBXypft+mD93ZoPKTXA2sQtfs5VDK3jyVMPL/KwoBcjm1raiMLpvCaN2vxN34vXj0GBJ9i2+jM1Oln+9yxIoh2g+YVZ47HFaddbMx08Uh3Mu5jY6dec2JEj8GSeXUsCfLbjgcdB64iOeJNRI7LGQi1YcqV/+w9cqpYG2yMRLpZZPEKkuAST5uf9YM6QuVbxnjjkajJ6D1Hr8EY3Wa2XU6gs0SGId1FrQvkjreRy6x2Xa4UbefKvDfH0x0n2ZL7NrQyLooGjXUHWV5UJiq69/rjInj+0VR/JuArZsAVOfb8sxzqvGgluUqqoLfZZNkDr29cPTarVaThZFdI2A6beCOob+2K42Dia0mmSfWKyq8csa2zxiiQOtN69vbIZftFZw66b7VnI3spcsSCK6FevXuM9rtRqIUjeWUhHcI6RUHUV09x85m6yESyq0h8AxoAIWQg7eoJH+PXGjqBVOiuL7Q0x0iFJd0thnFbmsd8WurdJfLvt/N5BwPn0ByPS6ERwGpTt6srj68HHB5X07uzrQawQov8A1h4pPBl+wpVk1ySkwFV277BBC13vM4oh1ZaBo49207SPxEdT/wBZo6B500rSyCMaY3tRlsEgc4nUaZ5BCYjH4Knq5qvTkemMnToHZpaHVyGK3QpGOvFNY9s09c0MmnhZpiodtrFRYI+Ot58+iskm3fuL8EXQ3HoTmwlPo4PGEm8WynsDnPNbYGtEJp28SQxAWT0fjcO1cd8m1RjIjZoDtjJAMQ4vngn157+mVyieSt8RaOLz+U1ZyKbUTuT4LiIE1tbgt60O/bGiN2dfQxPHHsuRXWyWH5Cvb++AUMb7d20E2dh4b5zqKEUQQyk/zBSvS6OeRJ49WqzopVhQDNQN4y/pjT0zSaH7TWwu2UbgS3NH39jlyyETiHxVbgkkvVH+uZDSNEYpChjjMYPhGyCbPF42OTTprWYMWUlXHFc+nvk5KxGrGM6a+QabV6hgoG5PLx3Hf++FotMks4kDOx23vHAHY/074xNUVMq6hV8Mk0CLIv8AtmZrdZFG6fdp3WF1PJoir5GBXLECg9fsGrljQfxQQqqx6g+uHp98BVI4oxGoooq1QP768/OQ6gGWRHBABFA3W76f2z2jn2ahojJJRXndyB7e2UrBqLJtcHbwlRgICCuwE/rhnVQxkBnagLLN+nzkbSw6adjG/txfN9MEaVvBiffTSPW+uB6YtIakGk8vmWNhQ5JJ5IOTqqS6xdOQxVbZmUcLXfjCaOSKCRvF3SK2y1HB/wBY0addNqAsRfaVDDw1P1v2xsQ3QOo04csqSmMnzLFfG0d/nExTalZpkba8e3hr7fGas+jjnSOXUfwaahIPxH3zmpn+zIF8PT6mNUC9PxH/AFzeKpWvsVteGa0z6cvKixnxG5s1zX6ZnSlzqQHDOJG/GvRh7YWrA1SgB2U8eXg8egs/pnNIJoWZQRqoIz/MpU1fJ68Z0RSSv0zehvIIZZy8j0CFC3V/5+uKSEro9pkKOWsnkkD0Pp26ZNrX1MupeMlGHBZWB7XRv2yzTGeXT7Q2xGNEr0rn2x2uMbAnYyFFmmVJNqXyxB4784LaaFGGojRwF45NKfes7q02IGRiCho+Xiq6j9MRDOWDx+KH81061xiK2rRj0EukT7Q8R4RINxDKTRYnvyOeufafZ2sj+xI32KN0g3MiglQ3WvX0z4fTeEk4lL7AeWvkVY7Zq/aP23HqYV1EEZV1YqAfKPy9MrqeCyjyxkX21rJJ/tBn8vAJNCwpPUV+WZG6SHUR6iNQqg2pq79eMrlkSTxHNSOWG3aenr754qGDLHGpZgR+LiwMonQWlRJqtJqNQfGjiLLHwWC1V5NBKHRlmF3wKHU/4zXDzafRyxq7wmU3IgIZWHfMCRidR/DCkKSfUda5y/x/kqJSzTUeowBLGASbUNzt56XgNIkpeTdsI6Bl8y4A1+qfYBFEtEdbsfGBIN5YsAigVV8n49ecVRfoeX0JEIZj5QADZY9x651kAiO6QEg8BAenr74Yh3AMxVUAF2bF47zLs4BUdGv+mO5CKJKocMCqhWbkFuhHp7ZOivMxY7gOrAdB71lH4WpXIpjwx7Z5I5AoVCULnhlPJ+mUToWrKmSMSK0BMihL4oFjkkkqzO2wjdu6jsfnGR6dA0iyagbW8hfncPp1xes0TfZ00YhkWeOUWkimjR9R2OLFK+zSbGpp5FjEjsvhAjcvS/XPNCsu55JJCw4QV2987DJNqFMS0+2vMxraB2whOjsvjSeJs4qyKH7/AEwfkbDsMcaNbNuZCSu0/qf32ygxxtFe1STxTdPz7YjTeAXbw0ZyRSp/bDTTRyynxiUDeZiaLHvwMR96MusCRNN4h8cSK2y6RAee3Hvno4o5Vu9lL/NwCe1++dVQZTAXJiBBYsoX54/TGmQbmWMpSrVA0D/nEbChfhNs2wU/NEdbPwcmS93JXcvHpXxl+j8JSQXaM1YCmufQjJtTpvFmY/h8Q8bVsD3+vfNF7TMynSaXSahQ7s6SXXI/X3yfVRSJKjMhSNrDtY5+cqWE6SFYney10AKCV1s3R+mdSNp3H8U+CFCCox5uarFUqd+Arwx11ZVkinj2xEWLF8D698GSWwAnhi16r63eP1sL6udUQ71QbVNAcd+/UYiVJNMqhWjY7QpXbyBxyPS86lxf9JNMVHPMdqpSx3ww4P55pukphbc2+xZO4Ww/S8zGeiI/MrhqHI21XPOWRahZInClVZCKABsfXt1wfIumgRfjHyu8MCqAQrvaqR09ge+PIbUROUlAkdzSBeK9cTJOZlQSOGdCVphRHH79bz0OkaWMFJ+RRJJIvnrfpkH1pZfRbBJKIVVeNrbRtU1X9zhjSGfZJI1uTzRrcP6k9Moh0yjSrNZd1ogURzX5VxjBGr+E7K2zfuC7uWB60f3ecznuDpIj8NxCWj3M3m3XVjpX/eKhdvvC73ViV84I4Htfr75ejxws+1CADvVGNbR8np8YnaYoWkEq8HdY5sE9Pb4wphJRIVkKoSVG5d11Qv1HXBgijjkdl8gur3cmj1H7rODVAQ+GV8Nhe8t0YH0HQGjntJtacqAqKeC26v3eUppMF6c1QSPUPI0isN18dv8AHHpmW2orURMguBZhQHX0za1GngeCwqkMKG3sb6C8+d1CPppxEFFLNwetn+hy/wAFSJfK2kfcxyyfdY0aTzNdW9cA9vTn2yh9GyxPqPEfYgPkcnr7en9Mz9NBEYvvYA2WQrN/b8ssL+IVUMVXq22yfyzgkqZVSI2lM2nIg2yhrrzGwfpwM5odTKqtG77JgLbfVIPk9MrlXw2YwRIfDIIfb0PA65NLNDGXcqOWJJ+o/wB5saodGnDrI5Fp9slKLdbUA9e/xlWh1SbvDjVi7Ne8MAfj4zAimRi9g7IwQoC3198PQ6iUSsFjaPYfKy1wOnWsm/jCfX/eIIdNXi7GsWGJ4Ndh3ybVjZCI0EgYkFy+6lHzkKiRkKysKbnYGsg/J4wESV5HJ1TbQvmFElj6V+eTURao65i08fh7wgJPJ59uvxjliaWDbGgjBo7yOGAHXM+LTPIHZuC7Ow3dOnH1zUgMemCqy0+0+ajR9vphaoayImNiZWXcyIAu88LQB6j+uD9nSQjXQRHfTCgxtjuLD+2P1e5NI7C1Bo7W6qT6e3zitGJQ5mKqRutSDRUg2aGFPND2ir7UMxnDadFUp5H+e/A+ckgMiSI1mUOg28fh6f05/LGNqbjaMRSLFtP4mBtuKHpX+Ml0jyEeIzRogcKp5JvsOvOFdGWFK6lpA0pkBfcTz+X5f4yXTamNIGdpgdllYwK9K/M1hSbzbApy9l2rcQBdAevX88T9waF21DSbpHNjpZq+fgcYUl6EbKZUFs2wyNwqAAH39eudlj8Kd2RdxQDljwSMnjkMsHjTwrusbbsblB5b8/6Yp/tCOl8JW3Xy1muOpv3PrhUW8Cd1CtISS5Xbx+K/3ziJDE7hFDL5AzO7XZ+PfPaiRI2JFdSdwYmh/wBYEDCHYko8kjchkoOO2USwFhy6jUamo5bY9QDya7fAxDyQfdJUiB8Qbf5T682c0302nhbw4VSZuhYf39MhaKWOZgxTxeQyqL2rhi0Ar0MZg/jzK6pwDyDdm7/rlOkn2PJsj8JwGJXbe43xmVGZi5i8Wwrf8ePkZdsMmnaEFPE3cOlk0P0GTmvsY0/s/wAR5I1VXLqCVB6g97H98q1EbKBGTUhs3fPb/GZxLroyI3ETXbu3BI6VX7GM0JfUaclG8VoqAv8Am9xkn9gfY3ZLC8Z+8iRkpit9D7++UySyOgWWQ0B5Vb8J6E5NNH94k2M6iTaAdq8g+/v1xUsE3jHSz6jhE4YqDR9P0xbTNxZfqoWEVgNSyAyIrfy1Y59O+Zs0sZWWOMbl4JAbt+775VrI5YdL4P3k7TQ3Ob3Hk9QefjIwJJNUrIheMfg8vHvjRCjsOneeQzSLR/DSPfF9ef2M0tZ9nt9m/Z0U8Uh3SgFtx5F+o781+ZyX7Njn12qCI/h0bCH8JPG7tx8Z9D9vQSf+1unK7DbtfANVx7Ybdk5SppHziTauWepNWd/I8QMfw9KJqicfpNQ7atRtkLA24YEEdr55P5DKxDBDEIqWQKB5lFFffEPLKmpaKK9pUAtuHPvz1NZmMneEiKPHMavZjZmJT1/plSTKQGEQIHO/1P17euUxRxvJ4gMiuxpnAIJ9R6dsW50kWpVSpAW2C2a+uKw3ZQNW2u0NMqs8Q3CiCCD/AIyU6gmBA8kcm1mDBeOOw9v9Y3SvG+qIkVljIABQ1Y7j1yQwxaaaSMhkSY0qm2JPr7YEZJIcCsxQOSVPQoPNx/TCZA+n8GNyg31VkH9+/viEnjM4WxtT+U8H3+mUkRvCJiTcfmUq3Xj99czwzHoNGI1WeJghXaWkYkCvfI2SV4TKiowHlV2W/qB69cfLqRNFJuXb7seLrgf9ZzT6f7vPGCicDdtA5QXXI+cPgqwHRSNIymR942lfIqg+x55HGd1a6lCroWcKSN0guiev9skfe+pYuiwqzWTf4h257c5WzTCPeEXyizuPDL372cwWtJnj1CvxprVlCi6HX0ykFlVS6qjR2GSwDXHX93nPEKsI5NrdNm1Ta+hvpVH6YrULB4wMTqUAIPX8NAk/XMw/0a0u/WaDcpUlpW2KdwvYRX64xpkVwjAvIxJY9gb5v0rFGF0Ok1sTkrGxj8x5sqQNo69TWPjgGmVnZTtckrva6AHpjeE1VgeIWZJX3WnNleAPTGhNsayXbBtxUGrPpkbCZtbsL1pxzw34eO+VFtiBqV2KkBgTZ+v9smxzmrkYTpKdylgAOfLuPHIxysCN0ki0fKWB/PjIn1UTbHcFweC9dMHVyrLo6hmWNVojb1oGzQ9fT3zVZjT5mkKRhCFB823gH3/fbIfthtRqmXSxGPwwPO7ErZHfO6efbG527SQN7Pxa31/XF7tOZ9kbkPd7X5AHfnt8emZNmiqdnNscGhfTrCkZjG7dv3XfPJ5r2xDyjTqhQi5SDtdbs9LJsX9O2aGnkhheSClWOUcgEebtVn+2ZsoHjmBvw8uqLQF+t/4wp6UQ9JhrWfUuo1M2m4UqQpYXYKnv73iNbJ4mtOpVncygtW0pbdgAO3A/TFaWWSLV6oBUdSaG1SApquOg9c0dLFp5tE0UhqWQBVZTyhA7njpdd/rh6C8IItUJ1ZYIVjEbkMSNxauos9aPb88SJngLyv4kRsWqpQ4PXg5ojTCLTvKu50FIiqb79K9+ech1CTz7lJlZ1YkvyBVdB78AfTCmjJFMTJKiyFDJEYi4ZW81389ciGoOojk/gLIwA2xyC3Pm/wCsqh0ypOrGcgkAlA9EIBdH2/rk8mnikjZp9K0SOVbdu4IBuvWycypDO3gp3jMjTrHqlkBIQbwVurIK/wB/TGz6hjPNOoWOGWOl84Xadtkhe/uc7PqFhlRJDHOUXdtJ4PIFtizo31eiLyafyyuVjAcWrenW6/IY1+sFJEqvJpg3h6mGVJH2qD+EfI9ffvlmgbzB5dOruRRuMgUOB7fU+mKGkg3EeVZo2osH6E9jz7cc4zUQx6SGYeBtUsD+PlV549z069hhbTM+x0izoq3KV0sRLgpILJ70CeTwD7+2WBdSJVMqOnjAE0CCDxzzx1/vkTTyT6M6WNtgFsCDRK3257+mO+zt8qx6YujGGirObZb9Se/+MVq0I8NddZGsNFAjJ23AnvwW6X8ZnCXY4cygv2ZX3X8jg8/2zmpj3TM2mjMjhmjqSQANQ5P6n8sLQaiMam1hjjeKvMeT6Ub+D+WToFUrQ2UvKhiknIkcAAkChz9MUhi0zyABTL4lbS3HTn2xurlLkzBI5oySxC2Afr1o/wBshj1EepIaNQg3eVL5rpz8f3xksCjqzyTQ+Gk0Y5YhJFo3x9P64Ekukl05SdQVhZdzGw56cAV6mu2OmdzOszIiIAAGQ0wA4HDfI5GK02ijEkqou9ZI6jklQkq3vXFHnk46pC+BxwtGYGidoRI+0O53Ee1fvpjdahhlAZgYn53FfNtHa+3P98bCYl1U07iWIbiqqwNIaAJ5+lEYSwjWzTxTajxtiFUmAO0N1pvjF9NfpBCZBAwiVJk6MJZSqL/+UDuT3zR0etC3ONI806r4SsXB3c+hPA+l5JpUaEGCMnUOy3sagaHWiOnr65Zp5IWgG0xyyTcGMbg24cDnpXv7YykLJI4NfLrHKU0cchCy+HID5uLN9PrxWaEyokS6Xd/Bj6b+pW7FnrY5yGRRo3eVomLNYoiwOxPFX84Es6aE/eNHMCzrXmBsdzz0qv0wW2Ck6o7LHJtLxfxZloedaIrocBpo5ZAvg+FqHfawkNWa7euWCZZY1kMqRPMu1eOGa+bqwBip401Cq5cOquyqyIG8w62f7+mLXpr8JNJBJM/jSoQyI28E7Qefb2yj72kG2JU4ehsTmrHBI74ySBIdPOsxGxgDGQpUevHqOcw4tYsbtH4F+GCXYjbYIFflhaCvyPp0mQLuaPn8NryKHTjtzkutnkj3Q7+QN3Jr4u+1+mQaVpEaQKylSbsMF4rk9xeUFmeo49rEABq61ybxKsCjTFfZ2q1D6toJN25ls7FPJ9QfTJ/s55D9oyQyRgCMmlbt6f3/AMY2R/u0ysgKKOTXFfJ4JzS000c+neUBXHPmJIbgfvpjZQXg2RJhDF4YDFl8zb6Fdif3zgR1MqI4JMgIO8g8d8B/N4bQMFcjnc1cdL9O2T6zUMiiALFIjEAsDzZ4rtz9e2ZuxUgndtP/AAIxE0KttPVa7/i+aGVN9oAReI1bR9bY9gO5zPiYO07xyMlSHxAOn9f6XeZuq1U0mqXhBEEKoP5rAoce/GGrdB42VJLqJnYQqY/EICsT+IH9jFar7Pj8WNNMTG7kFlCWWYjrQ6Vz2x9xiFo5timXa4p9u8cdB0BB9Bi4n5m02q1Uq9XiarBsVtBHphWDEWjafU7Y2IZIZGbcSCb4FGuO3TNvT6eUaiMwSLBGEG9ZRZYDvd5nyzCKAL4boHcLaxA3Rskn49OcGDUN43Jfwq2WH5JHYj6/oMMl6F28Nn7RnaHYUAaR+FkD8E/2zhkU6RGiIaQ7lFnqcS+r8WFA7xEsxsryAelHj98YmDWaURurbl8NtwA/qCTR/TOegVhrllZEV3Cu6XwQTV2fn4yQJczK3ljLMQCTY9Of942NP/C/lo2zhb5v19OnbORzPqEJ3BVXrIeLUd+Ot5qvRVg/TJJPp2ZhtFbTtJur6/OLMDxaY6iKhGwFOSC3PXKtJIG0+4F6Bpw9m+1jB1k23WrFIFZHFoqnp9PzOPWE+TujN1OnEo8TU6jyBhVqD9D+mJj0/hFmDbIK5Cnlvp6ZXq42IMSRk1bKLoD49euA7wJ/8aYDzHhCenpftgTKJ4Z88okgZZiLY1F257XlH2FDKmiiBkRSQBagbqHr78HOyFREsCzywyIwPhhABX/IDjk4z7KbwJNQkjiRVmZg3B3BtrXx2tv1xv8AyFvDTgZTczN1/larBHXOzaeCZAWJF2QeP1/fGSLtLrqNQ12+4Ip63wf2ctkgEjEJcRIIWQCyLzfwi8YyARxoqGRmG0HeG5/Z5xatKRJ5/EUWVrqRfTEzaWMPEJHBJFWbUEjpXv8A5wVlji1YV7jpCzc0B06nuPjA7Rkh09LETKfERVA3WDR9vnM+bUSaidgm9gqhQRQonnn5GHrdQJGHhOg3xluWCjqKPPriNLJFFpmMrbi44e/K3F/PGApFZY06gRJURc2N20Gz+/8AGUSRbwsTsQWNgjrR7/TMrU/aB0iyagRGRJHVUKtZBN8e3+srg+0JZJreJWsfi4O30HJ7c4apWZr6HnSiFWbaW85Rqon99KxfjQEFyR4gFgFhz2vE6n7RcSqkjSKgA2UKLm+w9DjdBoFnTx90ZIXqwAN8kdP74ON+G6Vs5OYn2ovEqKRyLvnoM82meUIBNGf4agsKABHbOySCHUIrwFwTyt0QD/MPbpmadVq98cjFDI1KkJX/AMhsc4UgqzRnSHTCjKDJdFQboV/kduuRyiRgsWoYFQf4PltT6dMXLJNPppE2qkqCrMe1lA5oHp+xlEccp06uBtCRgsWPJPYfpmYV0TTH7Q00pjmFRxsF3Xudj/xHp65vRzqYo2lCmQKNln5HQcAUczG00+i0gkIOrUC4x0KEi7r9Mrad4kOnjIXayh3YdzRr36/TDboSW4N/9zbTygllfxUKhIqBIPT9LyLVaOCKeMhSwYm2PLe9kcf5yVoJai1EieG3IYHkkhux9B2rqMtfUGGOPTiEtKhLIzcAjpX5XgbtUZRp2jgXxBK0kkgMQZGI4qv07f1yrQzRpGxUWAoO7ddgd8FFjSFtQAszPW5L4Hz7/wBc7QjG5lKsiABrABHv/jFX2Z7g5nDaxCkbUxp74BGL+0qCmCWJGi/EGfm66ZnJqZXikdwR4bbSBwR3+o4B4yuxNo4pNS4jVwSF20FN0ePf3wtsFU0ei18QjZowSAa2VXWumemkhaRdSE8VQtbZLUdbI9PzGR2khcPv3MR5nFeUfzD1/wB56OORUeGGRUhoyOWars8C+t8dKwah+KAmEqFlj1Y8N7Me2j6H27cetYLR3qVi+8O1hWQIvU+pw3UPJEEcKeCyObHpYHXnr9M9qNdpdJIsDSeLqKoUL6cc3VDMrbG8NCLQHTxSyTWPEQqoJoLXehmYsUMfjTRgzHhVL0KTiyfXr9M9p9cdTp4kjctCh3Kx4oi7Brv85bFqI9SDcJZNpAQ+XzDuf3WGqYuk32jLFpISgPiIjBgAbuugIH/We0sen1sMpXUmGF1El1zRuzXXri5BtEu5d7bNrluldeB/vtndG0Wj077jZ21GAeAP8YbVBa+jkyq5Okjj3pG/hA3VWeq+t/2xrXpNJ4CLIVjYiIHrV82fT/OMjaTSwDVPO20cAP1s8Eih/Ud8k1Gu1DqsO3xueJQep9PYV1xaMami+0FL/wAbTxcgHyADb8+v9cy5/vOqnsExxiQ123c12645C7BRNEP4f8RWUilv19SayvR691VWmi5JO49hXS83Jt0zJcdRm/aOm1O8te6LiyhsgemT6lJYJmGnDxqOLbm+OOc3JZoftCYRmTbGTvahyFsXXx/fFarVafTvIq75UosHHO4X2Hx/XC7RlJ+kSamcorJEa/CwB/D9MfqWkXaSsbBPw9r5/LjHRSRLpyS4LUaJ6g1wDkGqmmk0wVFDCvxXxfcVgoPYEfhbjqGXxGvgHkn36dMTLOHkVogWPBC3VXwfyyr7N+ywFQyhzdUegI9euWz/AGaxjaaUJEsXCirNfI7YWtDySZHpZo1ChWZqNABeD84qSQidV8ExsRwexB7HKhxLuklVRVbehJyOeaV91yMgFbVscAdz+ebADdVvuMvqyBGvLXW2u3HUfGY0mrkefxZ5D4TqaYjgDkgcc59P9n6WJI2kldWBA2q1lW+R8c5j/aWn0QgXwyomtiQB5R6celZSNemXdIx9MH1GqRpbkRNoYstmjwCfWv0zQjbURDeZf4aPYjq7Hti/DbTxCZmcHg+TmzWOUb5DsmKx7QfKvmWxyceTHQba1NXRaIxlwQ4Vff8AUZoQLpdjbA4pF9QTzxX775mRaHTzzfwNUTtu1Hlu+vfLYHLmOEFN8IG7mqr375KVeGoZqNLDooS7jeXsX1KDriU0rNqGjQrIyILsVfx++c15hHq4hLGl01srcgjrfOSwRLJq2ZQYyDyV43AZJTwxVootse6R1jfkHae3tiXLIwdJR4VWGIFgfBxkchXUGKS1BBBZutnoBkX2pKfDVdMeAdrKOAbOMnZNJ2aI+3JJoisOnYMPLyKFev8AX8sy5dR4s/gO/iSE2CeCfjI5J5VlLEbSoC8nt8d8ftKawuQruQNmxwLvqaxpXLsZRUehyQaeAukrBvLdHij8emZMb6ZNbGzRmF0YESK9K7A/v2xviameUafzE30FcV6Hr/1kel00j6gzSbV2MTtU3uHP5Y8VSdjH0Go1CamHd4aK0zbmWK6ce99/fJzIVsIjIOigsKI6dP30zogQhj+DgnevTrjhUcAEqEzEX5SOPrkeujEn3YgolE+tWV977kcYAUaRxLFtcEFqUUTzVjt/fKTOzoiKgWNiN53c/F4qeQnTk1IAzeVESxY7jKJsAHiJLJKd5lJHns7dtA9e13kWp1UfgbImjVifNtuz2rGTvP8AdallA8lDafN81YyaA+G7Gyq35X/Fv9iP0x4x9CTr4oJYghrO5Vuq9fnGSrNqCyoFbatlQtAjj98YZmi1RFxiCZSQ5HKuO3H765p6LZFD+FzEp/GGurPT/WPJtaa8MvStJBGrRiYK/HHUDuPQ/XLtKZXJkcKsdUFoUKv9374LtEuplidm8LnaL4JFdu2TgR2dhdUAHBFA/s4H+QLLtUxZEM2njeNPIBuIJB7/AE9sT4RkCyeE+0KNrSC+O3XJYPtBIJzAGDbjbMSQQw7ZVRaORzIGIlpQp3Gu/wBOuCmgJkusVlgC7eGsUrmyOx9x65m6f7Q1EY8JCu12u9tj9/OW/actTSKCg44aidvex755V0y6Qosm+RyP5fw0et+n0yyaUdRqfhRsaWFpZGjjUCmYdDxxwPX+2UppWeWOWBFKbBuHHNemOkWOdVdnCpILKfi2mquz1wE0aw6Z44pdobo1mlPp85ByMVGJ4NjmFGcfiFWa98bFLp308kB81WOF4vr+eR6OZG2HVDxCzEsTwOO/zgzrCV/hTbmY9V8rA1xz3/1kmvGANzJEC6TEGtrLXlI9QfUZAV3SENI/S1obmTvXtgb2EQid3RmNllofXHQsm+NvFVaG0GrD8ULrKpUMUaFYFghl8FN3RgQb4NfrlqJDqnUUJG4O9hRX5yTSzq6J4ipCRxV2T7k9sEzzSTVFIFCkr1AJHz0qumK7bFZsaloJNLCySDqQAOecxtYGWRWII8opgeLHp/jKYZDNonbfTBhyVo/n3xGoeoVhC7lRyBQrbYBzXosVQCEqu/VFhY49x/fItQyCGyq2OenA+MfEviCOGQOJVsddxPsRjp4lfRxolbkajvoDMsY3RD48pWvLwb47+lYpa8aywj3WCew+cokj1EDIP4KgHzsvIIzo3CRo3RJBu/GD17fnlbQCiVx4cZXZEVNb1pgQOvfHyTO0x8q+Go81DnnoRkIaZ2GleO4ovNRIBAu6B785TqtVApdID5QQCtXRrpZ6YjQwrUmHTwI0fKKxP/5W+OuHpvtGLQXMw3JKnma7ZT1qsn1mrU6sQlFVn/GzCtntYwtW8DadVEYcqAquBYJ/x74a+zfoeNZo9fomRp3Sz5dt1XqbyTVQ7J4QKYAXagEN7kZJpfEM+x16i+FsC8v1MKxzK4e4a4Zl3bu5NZmlF0jJC5JgxYzQrvIKiUmg3HevTA+66hdJECSyObD8XVWCQOvcfliiCn8QRKhC8cXXpXP9c19HqI10wCmRJKAZa4Px+uNdAeaZj/YgdJNSXOz8ILIQw+BlGggkCRxlg1URtI59Tzmq5jlRjKzDcKAbmxi18NlCPUdNSmxR4sV6DFc3JUxbItRp11Q3QS0yngqbLe1HMXXrLCzeA0UsgNg7SrH2/wBZvtuTSnwozEzbg4Y8/P8A1mBqJo9NpJC8nh7je0iyD2o/OP8ADdjeGYjrPEzyKvjd1Aot9fXChjkZl3h3Avhmoex/PHCEQQrqAzqWBNbTSj3/AH3wtDqI/FjZSDIz3tYcV069jna5Y6FS+ydlkj1EJVQd/wCJf+NevrnYCJJmkCk8klb4/fvl2q0h8R2Vi6BrKnqMyZI3g3FSEV+t9l9M0Wpo2ov1DCXmFo2Rl5RBwD65nxaKZXeQOoK0WqiDifFCuBA7Iw6VyGxkMkgkBL0RfIW7PocqouKwm2pM0ShTSCVUThiSB1FDpkccgkaMgst3ZC3Q7Z2TUlY+VIo2S3c+t/5zkEoKtJC+0DluxP1xVFpaFvTupFblR1HmBoNyy+4xf3hVpVNndQHbpwb7nPMSsKSvDvDWOt/s4o6dVaRFXyFQQa3VePFKqYrbvDiyO8hQBXv8TH07fGWxCGLzMF3i6O7m/wCmRqHjU7aBUUGHAOcEqXczszHiyOcMlfRk67GrpVmikeG94HG41t57epzumgBkO8K0hAFEc33yHURsSzqp2KPjO/Z4ngb7ylkpRonqvfH4vj2RlLaoo0s8cAbxI1ZSK2g8nA8JDqgU5iLfym/p/vBiVki2PtdQfIRRo8988Ji0gKxccL5z0w1ro15poRnwJHkVVLliDweOOte3OeiZjIwk2CjQO7genOBpSSRvX+H1G5aAPfKmZWRljSxVc8lf+855Y6KpE+53fwyxYr7XuN+3bOgFEVyqsCT+Dr9R2wYIp/vLhYwzKt3uqs888YBdjsZeQE5B+f8AOGvEYC6l/hhlajXP4R84Kat4WBJLr/x3C85I/ixqSN8gqhx+z8ZLBExfmKy9kbACfyPbKKKa0RyfhqaYnW6WTe6q6gsFYkbjfQe/X6Z2KYQRx+JZPDKCCCf9cZNbzhGARZFYlttLfxXplkMUDtbuGLAXXJX1GSkkhlYrUtK7BoAxIAsChZJPA9cjkl1GqJGxQ63uY8385qSokUimOVrHQmqv5yT7RSeSJFeRWLNzto8D+vXDCStAa9IW0E7R73kWxQVWI4vnGQFtDJ4MhBVx5lZa230v+ucQSvGu2PY12Womx06/2xxheRKJ3EWUJ5P1/Zyzl4yajtoeId6BZGiIUMY1B6nrx/f5w4dNHKCY7PHnYA0B7D+2RqdRHUEkQCLRDUSD6HNDSIUG1i+zuU4P5fnkJ2l2UjpZp3kVV8xRByBYIA/6yhZfEVTEF2EX4g5XjsPbjJdFEXVyGCq9AAj8RB649opNxWVBK3ApEsV06fGcsqsqNOqdHNswH/4ZY+b2vjjM8zeGzS+IjRcA3bC+3H98vD+KQJYdqggMNx5965xcoh/AieVT1NV889MEWkw02ZiCNmUhFG7ktfLYTzLCxkQBHHCs3AJ9OcBIUT+JsYi+QH/D8Z3UWEVgihV4uiQM6MbF6RRptTI6hthbYpKqjDdx3PasxNey6iXTyIWZvFpmc3Z7+1Zr6TVTQsFJDRbBapXIPwP85DBpzqdTA0blVTVKqxlugN/465T4vxk2S+T/ADR9j9npBH9jxy7Vkcfy1X5/2xLtyw/CH5/B3rjADy/Z2kKuiq5AajJyB7elZmjXOxDNHK5ultg3fvXrnG4uXRWKKNVqpdPKqSuGYcbQCBZ/f652FVlkuUbVA6Lx27fs50IZWOolTdv5VgBfwcdF9lya0KwkjKhhwbB+B+++BtJD9HG00UbeGsqOFHHHX0Pzno5ZELQbWWFXC7iOpPWvYeuU6mGOKQDxQCOpdq6dq/tgSP4kb6cAseKCtXyL9MS77CaKado0MgaQRvzZIH6dcFHcOED7USj4tHzYlJS0fhsHh2fzg7z8+3XtlniLCvhxDeX/AA+bljXp9cl0Y0dPEjxxu7LsTlZG9R3yDVw6gTFSN4drDlbBHcfPt73lBm1cckjpAbEQWO+p4F18ZB9rpI2oXzsrXwJOgNe3XFSd6CPYOrCnTbS6Mz/hJYnaBwB7d85plKeMwqWOKl23x0PA9D7987Bo5WSw0R2Dam3m/pmqwOk06xsYzIz2E2gF+P1P+cZusHszNQ6lFKxAhubbnnqOKN9/zyMSM0Lv4TXvANji/n6/rlLan7xGWiVWK8svT4HPa8Q6kRBzuKl+Vu7UDm/TGRkOVk8CSVdOGMewqETqFJ79iQP0zN+9yS62SSaOJQnlEbjgA/plUv2lHBoAm8UeWToGrvQ9Pf3yJp9LNFpZNvnBKkHgkV6D3ONFYZscJRtO02WHmI6AdgMTMSZ4ohTRkKxKiwPQn1+MNAigGRYQCOPF4J9j/jE7n8N3jkBqzsCgA+lD+mOkEPT6Zo5ntd0e7hm9ewPbInZ4yfG2EltyjuD6e+Ufe/8A5Chyac+dWNAnj35rD1WjMkqvApeRjYYWdvt/XHWPQdmhKI59PtCyOm1C6Ktbvax0vI9YTE269l0pVeBXPr/XKtOiKGUCZXYVtsql+uTrpzItv2JG5n4vJ3QwMBMrhQxCno6838/pjy7JI5LeYEbVWlv59cZHqBp24ZI0CbSwUeb4oZFKTqBcT7lPXcKIOL2DTSg8MTiPxAGKkM7ixf8AxFcZsfZsmnhCkJ4K8hrI83bjPm4Z4kVElLIQbYtRo+3r2zQX7UjghjVFXdIBtDUGT8/33yUosMkmqL9RqoX1IIkAYvZUDg+1e2BJAVnIEqSIRyQvRvTI52jiiUpHz1bjlf7kVlMOqjGmUQlrccseAeLoen15xK9N1hoX1so1CvMOi9+P747XPFsiR5xGBd7RW7+uZK69g8cke9X2hrHNjntg6qOaMGn8jEkSMw3UenxZw1YlabOh1ccc0qxMU8lBhV36HA+0/tKeRfu8LAhuRYo8jjjv0zN02oaOORzJuO3aFDUbHBPT07DG6+NVYPu22oYF+oPqMytMDirsYsMsDAyF5Ts3bUF01deTiIn2qrh0Ewsku3ND2vjDSKSb7QVRI0vhkFmciyOx9v64zU6KSIPM0SbnIKe1cnnsMpgqdMGZJJYVWKElY2IYb7NkevbIpIpYIJJI227WKFGUHqP30ymOeLUBz4jNv8pA8qqRz7e/OVS6bSy6eJEkCkg7qfkn398VMpdGav8AC+zoN+4uwsBwaIGXEh44kSUtNVL0BHfjEaxV8E7NzOSBtbjy9+Rz0yL7OjlXVyyKjoovkctft75mrVhstjj36hzK8bjaQArdTeGHijWRV0yNzSszWVPSwP74WqgG4NzGhU7V3ck/5yXd4QFjazgrZkNk9LP+fbMtN2WadIpV8RydxFqKHUf0+fbORxu0Um5tvNgq3SryaDTrDGFeUEIwHTkmvXvxlSsJC2mQbI9u6wb78g/lgoDAQk6dpmcMx6kdBWei8GYkWVaMWRuvrwOTfH+c9JD4enljIBjNsGB69/jE/Z+9pvEldgAPKgFgDt/TvhozKVg27g7ghBY5raK6c4GnljKeFPMNt1ZbqOmUGExB5JHVlNiiACL4zICr95PlEkisZGteCgP744zLTdo79pTDSvEolldWmjYw7Adq7h1PY85YZtZPtHk/+yhT+E8cfpmfq5Uk0E/hgoxUvHJZsMCHA/MZboI9Xq0l1QHgLKisG3cmxwax3/kyzseo8Fo/J+LqLuwO9fnxjPvagMEVbUkKQAavj4v2xGqikeBBsaLUUNy2BYFXfOKGxApmMoldKWl8q9+K6HJVY2ByzKykl4gisNtGvN61652XSbtQkjKIlIBIAFn0AHpitNpNQrONoNtW1R2v19cdJppi5SKd5VApgPwj2zXRl2BEXWIQbFEfYuLvuf2cekGwRHURBj/Kiij819RznNIjyMymYrEtAVQNgcfT/WVSMgeOFWbxUol246+v5YP2ZvaItVpQ8iMviDkMGPb9ntnmDNW1hJIgJ/GS1e2UrHO0quSDJZJ2j8LXf5ZNqzqGWYLHGIxw8nihBRNemGOjN+Ckm080TLO4VlA3BVBL2OK456+2HEjRxENOk0czGkG3cCa/pmDqteYpFJ0rTchA4/BtulqvQfOU/Z8jxpH40RmWPcbFE0fW/cnKuDSsLVm0kngsQwltCQE6B/r8fTAPhwzo2oZ4zVBBZvsOPTnIdRJNGioqFfEpzuNDiuLNWB64y99AtFEBwWLlht9AeMk4XplaLPtHSaUxmb714khA2+G22/bp6D3yeX7vvEaaOUtQYpTUUqgT26YqTUaiHTTKG1UYUbnBe/KOBXp16DrQyGfWS6xmSBzFpxDbOzbTIT2J617dMaMLNvQerl0Ur+BHPDGxUbjvsDmqHqaOTt9rIuqZ4itNXK7SzEcWaoj6YD6SCGPiI+GxADmgoJq/2Mh+1NK8TSrC58PaCFYlgR7WOn5HLwjB4BuSVmuNRIdzRO6sQTb8Fj7cce/OaYn00oQV4kexRubkbj1Kj59cxfs7XRPCIJkeBUHEcRYiva/2M+jTTRyJExZ/KDt4NoOl9emS+RccF5eniI9CPDIiKOu1fLVjjj36/XEaTTpvE7ymIyeYeWya4u8s8Jo5FEp2qCOvTjvx0w/EdVcxjcwprboSewJ7H+2IhWxC6CERPqHnDFECgSLYb5/P9MUI2nTwFIBjkDl4hurg18/GUyK33RIfGW3IXaouhfPHbJZNMAnL0viE9a7ZsMrYwajWSLD4ckbzqxQ74zYH/Kua464PgySzq8ciiNFp5SpKu562OP0xLaqaKQM7x7GTjw3K7vQ/u8KHTsiKzapAb6KAFPfgYW6GSBmnhfd48IfwVPnTg/8A5e92O2BIH0sCLPNMsjBWARqFCuoHp/bC1bCNhqfFd0Vt2xO/uPXj15yHU6uQxrNYkV/IXaQg0b8vHfCtNxNyDXRHTTOsDSCQ8eQVLf8A9vX1B9MnLhBKhdlhPV72ij0BUDmucyo5JRplR3UlK4UfUEdunFdcSzSmUCNFjMhKmQgEsLvkdv8AvNxMomus+2eRIAfJRdgLK8XV/vtjdPJLukaUOY2FbEXlmvgjv68dOcz11pTTttWNtjj/AMfpXQXij9o6owtGGUxHgNIPw/Pe/bAkFxNxw8zlC6KgWv4nKhjwefX9OMgTwtPLJDNJp3p7dyaoVRyeSdtToym2NJV/l3de3PvivA8aA+HUMg6lmBYjvV9e+ZfsCjhbptXpr08GkFFQXUPzYvmve81m1Crp2lSNpVSzXKFebN8dv1z58vJ92ohFaLlWZOT/AFv0xMkmrSZJDK8kJNWHorzZJF4yVsWUTSk8ALKHkZolYFFZ78MHgH9P1x7LCI5zHsj2KFRiR0PXn3yLTRvAjyFVVg38MFgXq+/b6nGRpOdQ00MzNqBSvHFtO/tzz9O2LV4boZNqYkiVQeXBtO4J9+KAzqTELHSEkny/zMt9wR8YEUEOsmKiEHVxSEtECCCt9x0J6WL74zVarS6dYxp9QiznkKELKPYG6sdK6YeOGsfKyPKqM7BRRe6s0OP++cXoJNPN9qbpNsRj4543fHvmcq6rUalpZfERoyLcUAOT369/6XlUhn0qbXjE05Wi7PuodbHbNVIzXhoa2PfLIyyeGFIZY0IXxB60e/P1xiQrMis1K7bZAQKojse9jMkayJNOjySeZ06u1gn3HIGWJ9oxlUHiFmF7iFO4cWCO/wCnTBTF/gvT6RRPI4bdwdjWWLD1sfusmGokZ236eGaNo2USq263HNdbOVaVS7EMXV66lCK54N/v4zs8a6XTBWOzhqKeW7/rfqecyf2FvTOkljaOGX7izsb281RsccfPfKvDRQHYfxYjyl8A3xVcfnjJo18PTpFBtYA/xGXvtHX0yVWWOWPelNEWZilu3HX/AKzVfQbKZZHmYINe0ULAhoaBBFdz7884L/Z8KIzkxDUMw/hrShVr9e2ISSPWzBjUhcna7e/PIx0jMJzI6+JZ2na97b6nr34Ga2sNXpPP9n+DqTFbAyte5ASCD05/PpjNP9mrpNQXKJMXDbkbgVyOB39azQGiCrHAHUsGDMeRai6/riIomDrIHjfa5pgTS9iAeO2ZSA3ZfAxXSKkMCONpDdiV7ED16D6YUMsbna7ncoHNGxZHU4Cv/wDHVg3iODW0Hp6k4EUMY18c5os1bQvmr0xbFrDUE8cW5lXxAQdpJtvQ17XnU0scjSzm1ZiKJPthTRwnTsyqI22EFuLrMvRxSTGRJdXR2grdc0Dxx2zX4SStWVyTQRVHGFaUAUD6H098kCaWWaQEHxHNFCLCnrf/AFhtp2dom3ecEHmq9Cc7LCE0LeGm1pCQZSPMRyT2xUOqIW0whlVvK5PChmPUiu3164v7I1MB106mThT1UAA2No//AKBeeKStpfDUfgBIN2FI/v8AGQ/ZyGLWsrIWLMJCqilBIayf8ZRLGP2fSgxRNGXreAANvFXzfvjzqLjJIBN/hZqsZFo2hVo0sqXIIHWyea/fTKm8JpHa0cRmqXmvn3xUicuwNZS6dZG4peAeSOvA+mTwMkeoBlnYM4J8x6D0rE/aeplbSsdI5ePkCuoPaz1yX7Og1rsnjuojkY/xHBOw9/1rDVjRWaOOmE2qkaNwe/JsbOP6cX9coIjh0yQ6xxuNsaUeWx/isl+8R/Z6uscD7PKjCvxNXPJ9zk0kx1LxrTqL6K1le3p19MFD02UI2jMUgZ3SETeEgUbizeY8DoOPfLNCkkjT+GUmXYypwKdhyK7ZHJFM8schZuW3GwCq8jse9Dj5zR8KDQ6YvDqFWQkPYHIsUCO3GMqEkZDH7QkAZ08RdwJ4ClDxwCOvf6ZozaoaRZtHBGsHiMrMxYG028EdrxUhaPUSO8jR0viKri1b/wC4HYWfasjl/wDUi6qKN00KSRwUH3z1uuwO3S/XGSYO2aU07JKhL7J4/wATrbIVN+3phT6BXh07KSk4ZqUt+Ly3SnscD7F+09DqtVOPu0kbIVQKxBAB5rcDRr88s+0tZptNKOW3izvRrA4PAF9TxjcMtiOTUqRliSTSF11UXhxsQG30LNXY9eBnU+yWnbxjvH4yEc7mrqB6g10xX/ug1EzI8iSPG58MGPdaVyD36fvjHQpqZJ40h1Ei7wUKDkIQLHPrWSa0rbo5PHqhA7pHJJHLujZA1hSKr/GHplkMcs+paNGcABWHLN0+vb88aoT7Jj8JlRzItxKCT069uuK0rx/aDyabw33lA1/iC9yPboOPX0wpAvA9Tpk1T6giORFhcqmx+prkjt+WUD7vp9Pp5Hl8Q8HeQLNjgfl2zK1EmuhGo0cW4KklglbGwnqL54v9csXTh9Gj77MlOlcKCO59/wDOTmmg1nY1AVd3icyEebaOdxBBHfphx+JPCC6A+I/4j0Bv/rA+zPtnSxaifRM6hlZdp23uJ9BXr/XK01ShI5lKBCOE23tIOGqWiNu+iL7T0yx6VYtllHDEKxWz7+3tmZrta0UmmWRSZRdR0St0QDx85uyaoDUbZG3bnpeRyPjJykDWZZEo/hbdyPT4xbpjReaZgV30mn1TBN0jbd7k+SgO/focYYdPMfFjk27RcaKLFHk89Lr9MbPoikeyJ2WN/Mw6VfPHXm+uNWLgRtIzFPw3wb7VgchyKKJoUTclIpFhTZ56c4nVfYh1OkljSWIl6CvIRwy35bPI4P5gZVpxIzRQoryqSbYEeQiru+b5y0KfG2wOhXeAf4Z2X0uv74YtrTSl4Z/2L9my6XSumpgCTeIbfg7vKOnqPzzTTTlwSyPIoXcAQRwT2wvDWFFiZIwRa2vAPPWvSvfDlaVyqpIdiDil5IwydvRLZBr4AzQIbRC+0IeCTXAr0ydmYxSaVYArceZaNnqaGa20aho2kVTMnmXi6r29/wBMkeWKM/eX8PxISvLG95I6j49M1YZSMzUzySSqjvIioKYht/TqAeuPQ6aHft0ok2ITR4Hue+DOdJPJIQChQk8mgTgpBpomVklJRR5vUH0v575rwpVjYNQogKSAgSkeZRVZH9owySyDbM3htzUY5YV+/wBcXqamVigIQchL5PP6Vz7ZVBCsm1HlKBPwqo4ruPg5l9h6PRxaiJo5S9nimquB/bHR6d9u+rduSt8tfWz1occYbeG6IV8RVugPXjp/TnOhZUmK+JsB4FG9tD9cG+gsVO2mgQQojC3t9tNftXpeKOxlD0GWNrZm6D4rvlaLMispXlm8z1R9ebyWZFgiJQhkUjbxxd9MKCilvtBdLIhaPygBQtdvg98l1H2g+u4mZk6KEAPm78++BDIJ1ZpALVgWXqD6/wBh9cIREgAbhbk3zS9f8YQUkyjXNpo4yGY7qAU1wPUHInbZvEKqZa5A8waueD2464vVK7yGNXQMwHGzj88AeSLbHGUZLtkb8R7ZooYp0mpmn2Q2fDNgJ03Z6HQyt9qzaTUGkIYIwG0V7db+O2Zul+0/u+pYiEFxxYFVx6Zu/Y+qSbVtqEjACrarx0Pp37XjO49glaWGZLoHcvIlJCoZKC8qQOcm0kGqlHgw7/DP03f95sapJdbFsilVJJCyvsahf/XX5zmi8PTx+FModoaoqTzXbBydGTJ3+xNSImlh1KlW4AH8ldiMrXQs+kSJ7aUqNzKtVzjRIw1CyJIyiS/OVsLxXT1z3/uOkjVWbjagA2jluefrfrk23I1sdtfSaExSOCJQG2g81fP55IIx46EeIoJ8rL1X93jV1e6Rn2dD5b4+tY0atwixRhK5JA4I9sT+G1Fp2rpVUsvLUpZvxH0zL1WwurNDtO/kM3B+MpCTlC52gOaby8XkGr04YBpbZVtlqiAbwoEUdhhhjuJCrjmiTdD0+cRrVCyFaMcnShXJ61/THM6wuNkokaqtV6n3+n9MmXwZjagCVxdtZ2+vHXpjKx0M0gLTh08VCyNY2/oTnY9OF1TFYGCKSDuJtSe/wMb9maoPDIm6ovwjYaPHf4yh03MY5JE8ULfm43CjX1xt6FbpkjgGXcrAlV81C7HfIt7FkRnfw7II6GqzVgfw1pIw5Irwx2Hv7c4mVIYSIFJJYWoTzVzgumMmTuk2mSGSFwQq7QhIpgeevrnmiU/Z8bz8kyBgVFLfPGLeUqoVFB3KeHO7j1o97GdiA1EUunluMMK711643hqJNQUjjmUI4ksnhbU2Pwg/TIFmVZ0ieZonIFuQeB6nNDVRTRabwXA/hmrZqDm7F/OZUmjLalpbVpWA3JfBHHPtnR8dNaZl8SOGeSIeLHGDtJsmQ1z8Zs/Zyq0Uc8SoGf8A8sZbda9CP33zP+xXVWe5W/hrQQ87R3+cvi12i0fjOjHe4AcqOW/P3yM5PlRn0Qf+3PJqNRGCF8K2O7oR898imXwIgJ5wtLSC+AD3HrmvqDAIWWNysrnnjlgO/pmFP9ky67Ts24h9OdqMeko9Pp+WW+Om9dCNtES6+XTKIiscimypPue4za0eyePxY7MaC2UKSOep4zN0X2NMiNGzbVLAsBzlo0OyBpF1AdYmCgReXafU+2U+RweICsY/2fq9VpmdFESCgrFeRz6dwcuSDTaVdy7UDNtZz3brQ9OcHTzsyJpHgKyBwA6OW3e/x0yh9KoaRSVKCvNXmBBr93nPKT6Y1jtPEFjVpIWUNfAo/nWCvgS6aQblJRSSK6cdMKHfvKiwwa1fivyyWURyzeV13kc+t9/385JArTjnSPpVkkckqQt+l8c5Q32e8IEcAG11G5qvd74CaBNxSM0GNluBz7j1zS08LadPDkmAUc7geSpHeswJS+j5iaCSIMHkWZg5AU9G54Ff37Y+Atpp6iiItbYdeo7Zoa7S+JMZGmS15UKaAodsmOnE0QkkK7keywUc+1Dr+eU5WgplKII93OzxL/H354s1kyxltRslAQFbWMNfP+MpmjcKWcbk/EFkXb2HQ3VZMuoSNy8gUKgB9iOmKAPSaR5otVGOQq7yoahx3xSQCRiqSMJRyF7el3/TG6QbLCyiJATG/mNLu5Fg/oReHAqtORI5DbLB583rtPphYLItXBMjb33eIlWyg3/Tpi45PHRgVDAG/Q/HryOma+rBGmLoPGBNVv2n4P1/rmNKZIl3q9EnklSee4zR1GTEPrIJZN0bgBVva3U+wx2nDIfvKqVW+w5o9uMjgITVldRXHQCq5GXaXSzeR9LqGk2NulJF8fvrlpJLA2PM7RSr4I3LGLC3tY37H0wJNVD4rsSWeSjXv2y19E8kUzRyp4qEebk0P9e2Z0ekEjkNIrS2B+Gi1D07ZJUxo0Saste7wCwevMw3DKZZWaJUomToq+ljscun+z5WWOFCAi8vz19sZpYVQpG8ZGogFh4u4PrhcsQbRDo0be8Zdm8vQmuO4rpf+Ma2mMbFxIV33Smunt6f3zIm8Ua2eZZlXa3O7q3wP31zU06yzxvIyJGsg4O7zfHOGSrbBZlzymAuwRJVNKu1qNAdCM1dFqRpdS0kkZliljBJq2Xr2HXt75BNH4ziKYK0i+Xwz2F+vt/fCJ0ce9XWUyivDKycE30b1x8aM/pm032nopnXZOiuosL5l+pyab7QjM7rHHFJISAaccj+2ZSrJpiTHH/EboePmsidzHq4msyFxwD2OBfGn0Dikauu+0Qm7w3a1HNi9wPHTMHWSeIxfw13MpFluK9xnfubPqWlR5SE4CyevoPbJ9ZMY5VNbVYbXBWy3yP3edXxfGoukLJ0jo1aCJNNLKxUgccmh2OFF9oeCNrSKUvglevuPfJtPq5V1aERI0a8EEUGHvd0c5rmeWVl8Nm2nhmWifbOjgrpk+TouX7R8KORUcN5aElVfJI/LJdfrRKQItr7mJYgfoMXqGhWGPevEibqAoD2zPKAHysWUdB0rGh8UbsWU2sLHEJUtIpVrvgVXvmp9hQR60Sq+mEp2iiOCnPY+uYcc81GF5hGoBIJFgn0NY/7O+0l0eqMk0rx7VIBiAN+3xePKDcaQqmr0br9PqPs/VSQTk7mujd4EcJjjJawT69MR9ofbMuvkDuzluhLUcBIjMF5fpyW9PbG4vj+RuSbzRk08QHkdCQOvr6Yoa4eIgC0AbPFj8u2VppU27ELMSL8oqvkYGt+zEi0viIpUVwCcylC6ZpRnVo4HjnEkxPA4Bu7/PtiXLOu/cFYdl4ySFo6RNh3i91twcu8IotxsQDR5N1juPEnGXNFGnRCpIYjy+YOLIPrg6JfCnkhceIGWip9eo2++L+9CeXbOwUigG2/h45v2w59OoG1pNxqwATXpxk96fo7p9EhaPw/EMVgnatHkf5xulYKm4uVPS7oDjvhaOIxE/xAjngpV2pwnVxujEShW4N+vSxjtroRJ9lKSLABUniA8sAOPz9ceskTJ+EqO6c+YcdPp65nQ+JCCT+EcISOAfgZTHOdhdmF3t4J2/kMjKBSMhgjni1dxcCzYB6/XrgTMFnJIYobAQ35RnfGkfqq1XK7yKHv85LNKu4FlIF8g9K9MEU2zNnRE25nbdfQ10+oxzaYbFUOtKDZ9L7898FQpPDLtA6AHk9cdI5eIeICT0UnjjC2zJIJNEgKBX3gcNQ4vHvEFdY13NJXKqAD3yRNQiHcPNfUV+6zsbTTyeOzvts2T19SRk2pejZ4Usssajcp2MKJZbsX2+vGMQhomIQ71ICRhL49Pz9MFdVL4HjSWNPRG9hZIrjj0+MTpphqH8RHkD96JJB9sSnRrKQkY2yS+EwJN7gRRPc/4woykc7xEFT13G+g9a64ueFhG25dt/zs3Cjvx69MFTK1pBHclbfMaHTrxwf1wVaMmU6aVJY78IPIW/FdUO95JJccy+ABELDbwQDR9B/bHa2R9Im3YgZQELdiSORzycnOoEs62rbvxP5QCSOvx+eGKfZmzT0cywnxJlDAXQJsE+vv++cfNMpiEjXxyVQG/Tn65iqDqGeRnkWEfhVTX0GaNOkICoxZgKUty3rf/WSnBJ2OnYqGTZLIVDsFbkyEWf8ArGzwKJXkkTcXXdwxG39b/PKZAV0rLuBAUeUtzyf6DIZpZ4ZFQgSK5ti1cn0H6YqfJ4ESJIofMX8vRFHNdMDxDIGilRRu54uwPXKXhhcRqF2oeR6i/Y56bS7E877kLWt8A/B9MopIzs5oNNEqSRIsgdf5RzY72e1YqWBdDJp23L4sc5YkLS8A+n+MbBCI3GoV6UWKLVR9OMjfVnUTadXCqPvJLMSSOR3Bx4222Rl1Rqy6vfK0oYOXNU5PPvzk+imiOmlWRl8JVa64LMDwAfrh6uCYyDxZWADVtAoe1j0r3xYKJIRGoG0HeVAB/wAfUZPKKLB+l3wrHHK3iALfX+np/vN6ImN0aOURjinQcKSKoe+ZEUM+meN5Uk2CgBtsnvyM2VQyxM8UbQguDuVVAJr3/fOQnrHvDMmiZY98p3MeVB4rnv7c5zTPEjshhB3EAsO4yzU6OV4pKYION1m66+gxMENTiJmF1ZoCiM3gUUwyJG8bJIgjJ57H8+2G2sBlUlliH4BuPHblT/c+mdi00cksSSwBkBo2LAI459vQnO2jap40iRI41K9PN/vJ4ZljbdPNCZJfvB2bVN0y89SfTItfpI57eQpzRjks89+2eihWR1LEuu6in4frntdCsRBjeRaP4WN4t6GOCNK7LOofw1puAH7H998vmmM7LI+n3RuCASarr0zIi1DwSmnSSnBL7T+eaLa13VUVCS4CqBzf1+OcMk7D2UJp44yjKVjJsk3fx9MlkiIhaSSIgHlCzck/B5ysNt8NQjXGvFAUO1ZPqw5jYry3Qc2Rz/X/ABiqwGKwheJ4GjRGd7aQdazugigGqZ/MYkACE8XyL+B/nJ4NOZHffJ5dx3UvX2496zUjhbToYoVJHFn1A7npzl5OlQQvtERSKupEax2eAD5a98TpNDNNFJNtYWyjwkPUA9ee2UauaOWLaoRU227k7SR2H54H2dFqdROkaRSFCq3XIB7fPr6YsbUQWAfsyNtWp1CRMr8kxvRX0zR0sOjlDwCSmjoMb4Hf8+Msl+xViRmlkRnb8AsArfbj3zL0X2dqY3eRX/hEEbmA85BI4BNj1vDdoHJMo1OnSH7PWQqJmi/AVNXfH1rM/TzQeGBKCev4RQHF/wBctl0kTxBILDR15eNtHqx730zOn0kmnkMqMjNR3BjxfTp0wJfYYs5Jr/s4XIYZgZFChWA+lHt73zzkennWfVNFqi0cRHS7o+pvGeGrqSY4mCeUbl2l75o9L65yWXRsSDCt1QG67I/p/rKZ0kMkOEcEWtjJc6jZ1JO2vT6Y37ppvu0jTSr4ikMFPJA9Qf75nyhVmMkaqW6KNo2D6ZZpD94S/DEjyArudto9Td4rT7CqPaTUahWY+Rrcneyi6I7Y9AyTtp5HLK18gkHnnt0wpl08CIqt5rtqHDHHmWDTSGZ1MZK0Ga9x9vYYjd9IJylBi2WSSSVqqodMdLI0+jbeFjo+cnsKyOTVaWeOSOE+K7Afi52gdgfXFo671SUlVBG8gDke+K4gHRSxxapIpD4m4FQ7EkJ1zQ1uokV1iZLhQcbjRB9u+T+KJmjhigCBu23kKe+DOkUYaTxdoH89Eivj1xasBZDFqNRKG0gZS3/ABb49/wDGWTS6iGKJdSojQ+VG7+l4n7L1yxRmQufCQWSg637enTpkBlm1M0T/AMQNuLHzXSjoCO+Ba6A0bYg06xvqnQ7nQebeDXv85C2oWeIkKtRtt2Hj6jI5tYunheVoiyynbuIB46mhzi0m08IRihkWbuI7G4en6Y3HALOzU+9xIxSNA8x4G4UG+vriUmbTa6Q7ggJHlUE8f3q+My5ZtSmsV1XbFtBVSenHUdhXplizMYd7RsWu43jXll6n9cDTQ3FM1NW66jTITalVsXy3FZJHErFpJTvfptB/DffPfejqdOhRO9VyLA+MWG1QhBkkb3Ht2/LFRqpFcc0EMhVU4Qdeq+9HDmm0o0wZipYnjjih698kUxeEN8u/vtC8Lfrzgss06b08uw0t8Gh69fyxkK6HtqYxpSYogVb+YD17UO3P6ZNH9oPbsWMaq4XcvPXuDlZWOPw1YXZvYSRZ7k/GRSaRDGYxGY4yWumrjtfphVGTVFME4nldHXcVI2lmFgH3/fXHKwhcbQiSk7XDrx8ZippJtNrXG1yygiPc3BJPY+g9vXKV0bu7SiOQyEg0ZSPX1+vAwtGoD7TSJdNPrAY1C7tguju7V9T+WVxRD7kmmiLqkYA3KOeO15LrtKp0Cvt2l5Y4xfBPmAI/K/fH6Lx/EZobLbyFIalYX1Pt1+uF/wCQWWSaWUsVU77r8Thfofy/M5Hp3jbWFt6SEAgbDY5HPXKNaZ4EZJWDNsssouvnjgZknxZZ/Eii3txd+UD4A9v64qQ61G4+oghjP3Ys20BVbpR9awkjdFIZ93I3Ndge3X+uY9abSzlo2ijAa5CAdp5A/rYyh/tfTLppTG6lYybAUgk/P9MVpvo38K2ZPE27JIwD5muif9YLyRqzSPI8n8zHcCFP0/TMTTTvMysJ22BQCzuFUE8c9798bBAWSZlNxltpRZOOvUdOg/phcaGSRtNqUIJMjWi0GHQj3/TIpFmnfYylQ1blU3tN8H5vrk6uZSumikjBsg7gR82bvHLqV0shjeV5JTVm+p5NcD4wUZYYhhmH2iIJFVvFe1FfiHuB0PTp3y0eNp4imkjIkdyDCByVqzYPN8d8cztqdao8rRJZYwkMwPv+uR6mWKR20/iSI73bkEgkH25I4yzdjJl0utljEZnllaNhRDPuN9+MVFqUjgZthjJati8jkdK+KxTRuanZFEg/hgMD5j6UOnT17ZnSM8pPglj4bEON4AHb8sEYphZpSP44knmHnqlPUfp17fnkUDCOXwk0pewBt3AMvN8XxXzz2zgmCQTGQMHC0Lri+Cfe8kghdBtP8Oz4u++nWun0x4xx2C2bGui+0IoolOmjeAFlGzzkc3zXoReZmsmm1AfwFieIIAz9N59v8eub/wB6MukhG9g8oZUeM+Ue5BqiL65E8Wm0I8Izb1Uht7EENYFjp/T88WMq8FdvDL+zpGDNIUeNTGd53Xdnjg/HTPptDrY00kal/FIYi4mHc38d/TMmX7P0MUZLxljKw2FDuNenJ4/7ymJXEMm2IiFdoQj8TVff36WMPyNS1CxXhsIsTzySSGi69FHB97PAIwJJiVaSPTygKKs8V+mZ0modFAoFmAUKvO32PH55ZCu2NfvChXTg+ewD/wAj2znr0aqKF1AgZZISxMiWiyrdn/kK5PXJvv7KkrFAzxUBaVW40f7fniZtCNShK6spLGxJTf8Ah60R/r1ziSajVOah235iqMCAaq7NccfGNXplQTRGt5gjWM3aODajrlcJ076dGjiMb8KpYUze3xgJqoogDMUHlqWhZJP/ANj9RQvO6fWIjCORht2/w0DXuBOBpmbINeksesUaeNBagOWby0e3t8ZzUwsIlkdrRG2lENgN36evOaWrHjKwaPysVI2MOSABX6dc5u8KcqJRu2gRu1C77/POHTKQnSaBpGXwUMCKvETC2I7NznRpG876kF3B8oFHgDse2PCmCZPH3JtFqetG+oxqxCagllAbZAPxn3/1ivReTRnvpIy4AiJiqyvA/X0wEgDsnCPEpogWTXvf+s19UY9PBwBfB55BPtkrzKF2qHKkkkqNxvv0/fGZWZSbJpNKkcUhYk7vxbrJPqTxiNMiMrVGRtIBkADAL0oc++Onllm3ybXWNjW+vOeetdc8Z9Ov/wAWOORyEu1UlSAbHTp1PHse2OlgbCfRQvKIvFoknsLHcfs4LBNGPBeYSHopHVDfc9L/AFw3DzTMolRQTZ812avn4yaLSs+p8SeUFU6RsnF9zXcn+gzL9gBDwsroY44wT+JotwH0/Lk5xotG6IAshlkUhmdCviGx5g3UAEdDx6ZRqNRHGWilQSHeXFEUB1oEnEsw2oYGLyGTpvB21x9OuMpGoOBNRKKeOWWZWpGUBg3HsOoHe+cn1euudolikDrH1Cj62O9X1ynwFXTSxqZU/md1avDIF7hz3r1rM77bllh1MmpR2bawCOSG3Ajr8Y0VbNhVDrSv2jum1GxPD/Ch4+McrMDZicrIHYb7pUriulA8Zl6RjHpvHnG6aUEKwAJIuwcsiaATOFPMieW1r+nvgkkhqNXQwKpDzRFTs3FeaXrz09PzyeRyRHIkaBe5/DtF9T6HpjVYp9nhnQyJt2q6twL613yBp5418WFtwACtdVQHF9umIrYnpYkkEfgjx/EIIJ2g7iT2rg889cFZtW6GF4evACj8AH/f6ZnxP4joajIk3bXdAD+Z/dZU3l03hogK7fMEBs/5v9cZqjIP71M4aKNpaCnzdr7C/jJ9NppbaRp31BTgCRztHIuvX59sdoE3LEoSMEKPEG4gE9OtV35GMCujBIgolra5aqjAu/oRz26YOsRsFxTQaKKMNbeKbaQgMCvI9vTKYZZTKo0wV1Mm6o1PIr+n98fHo2EQlKpK8fAJTp/9vU3/AIx3gvFA0qTBC484VB0PTn2xG0ZsJ4NR4pkilQKNquFY2CQO+CkMbJIrTlvDa+W6YvVx6rUwomm3oKUuT5dxHcfnkkTtABpo1VWY0yhwbb2wPVgIplkBgWYpBM09NdbDyPp+X0zRhPhzCSONo4+l12976c5DFMNOvFIRF03ckUT+Yw/GXWBGCyhT5jY8oA9awAZRNNNqD/FIEQoEKQf19cWZZE8yKBHF/PXXi6zvJgdkj8NbKby34vQm+cm0rqrvGHcs6kc2RfavXvgaAkqNBZJn1SmSNXUUTT/0vPajURR1JLEyMLsfy9RzgSbmMngMoWwRa2Bk7orzPVghTuKgUfQDBYtIPRyrqY5jDC0cvqzEj55zFif7Qf7U3JKU3jcy3tumoj/+I5psyxymBI5ApTeSp4b65moQdfCpWvCUqu9v5bU1f5/nlIsdKjagMkCFpGtRfDAll9ACMkhnOoeZlcR7PMQl+b/WXbA0ChVQBGuw1/W8OBoVdNrhPOatCA5/164idgszVRZIPEj2BTtZuSd1k+nwc0Y0M/2dKjxBHDBNrAklT6D34/PHFYwfBjjMbBd3Qhb5r9ScytTLqCzTohR41A8rDoOnH07Y9oCuQ3WyTaeOSBokJ3KSJPNxXb2w4YjFp55ZI9OzyLUDAcXWZSRzPMJNRISZCylbsrY6/rm5qZjo/s+GN40c+EoAXzbgDz/Qfnh/YzykYEB1mp1yqNyX/E8NDYRr5HtmhK80+uAcusbBGJMYZqrpQFgYAJ10cskChQG3mV32Amr4+AOcfLqJUey1Og8+yiCCtWK6H9BhozYH/qb7Pj1qvL4qRuv4Cx5PSwb636dOM+b0ei1UU5RotOwlO0b1tFIPJ4P9jmpqk1EqJp5GaFPETwwQGBYjuetmjz7ZN9naaedJFWNw0K/xI15P4gRx6e/XjKKToVKkUwvL9kIujj1niTyyCQ+GnmJP8u0dOKxeqOu1cckhdH2NtoR+bbuqwfy9MDWfZ2p+zdY8gmDwgq6PvNm+dvue35ZdpteswmmOniRZGYbSA1nqT63iykFL0j0n2Zunn1MbPGGjBkDr0Yiq+uaOrRpPBhikK7eeVLbSvCkV36cZ4bdTrQ0sgBiQpIdvHlLEAgivT1zssRWUukLSRwMTvKHr1qvQnJt2zWXaSaWOEwxSvJsU7WaLhaABr+uO0sfhMAsfnoXsBs3X6YnSTrYlbbGNzDap4vrRr5v04xs8bvM8n3h4i4XyqLsd+OmBvqyX6JftJp3XUxJKIPCF0ykmyenxXf3zIMy6WHUwKpknBHK2qr7j0rKtZMdO7trJJV8e1B3KX44qvbI9BrGWDwVkZ4/FY2PxNfWz9MLdqy0Y0gxOFibx40Ls/mdRtK/keDmiHTwIzAxcKLPNn0JORamKRplnZRRXlQPyv5vrj9HpBpRtloxngtfqLAP1/pk27VDOhksgmeQqoEz7SFfqexAOWyppm0g8SmYW1KLN+h9TxmSsbCV/DjXiqtvxHL3lbTssUkYjjDAWWshj3/7zdiSX0e00zeECB/CkYshU8r6/nj9JMjKsc6HxlZtrc+YXiQzTvyWsqVDIOCfcfrnRpkYPtlkuqs8c98WzNHX1Gn04MmxGmclVnINew9/nFCQwJDGdytKCx2kk9eoIxeoSJYo1Z42VHIbklQf371zhzSDxUEcywyIAoBB2G+/uOeuEKRyB5tQwD7tgLKJQOUPcH0PpfXLNOUoTyNIy3QTdQU/QZIsLoGlhleba/wDErhWvqRzXQ/pjYZTCh1LQkactxtJsA9OMZMEtJ9c50s7TJTKjV5XPQ/0/tksusjaBD4TyJGAw6kmzwffNGXWxO4ZlG2QHaHAAPP69Mxk8WKScuCSlFQWu/cfrxhWjRX2IDTmGXVKu2vPtrsDXI/thjXs8RSh5zbV/vOQzyHTvtJKLbb34F8Cv69cXqE1kUoZmErSfhMJF13xqTelGNg1fhuGEi7X5LBeQORTZe247XLeS6XkUB75iQDUS6pIfBITii1j5x8sckOqZllYixQHQduuBx0DNj7zFGPEgjDSBq5HwP3851pFMatK4S+SRwQfntkKOyukq7+7SPs/EvuO2d1D3KSjqEIplZgdwHp6ZpRwRLRrlPCLyF7LcKxBoXkqM2qe3h3R7ioa6IrocZpoGeVndS/HkDdgfjEGYjwtwAQSbVVuAR3P0rMkOXwRCKRg8Q23yCbAA7/7zafSaaeNUeVQaG9t10azCRH1B2JIh8RiCe30/XItR9jKmpidIo2WWMuEJ32QDfFXR9/XGik+xJJv01NXDFod3FFDe4dx3o5ANPqnhEqNu3AhV32TfPTsOmK+yJmZz9mySlg8ZMG42Frkqfpf65Tr4QsUayssfht0/5GuMDXF0FfRkS6SRNararduu33HbY+v74y9SqsBCj0w5duCPQAg+uc8fWGAI0rcsbNA9+2M0TyiVp684I3GgAAeljvmk7KDdGZY3UvKigeVao0T1x/3iKCU6g1uZAFicWQfW8U7GWx4W1hyx3G2Htk2n0T6pWnlld2QWjFqBHpR74nYv9NRJZTApbVRUzMCqCwDXAPSsi1AlGqTTtvMbMSzKaN9hxkx1KMszNto0oRhS7u9+vY5RpknWUqCQ7C2ZG4btQ/LA1QUVCJIyviMYioBNmz37+mNjeETtpxCSGXcxPS/b2rJNXEhjkOw8qtc2ena++N0kMK6csWB8Vg19snWWZ6XFol215W8QUl8AeuSa6IxxSBO52knlb7VnoTFOCGiWiSbJoHJtUiLJ4cTFiDfBux7Zl2BKmL00cQg8No23L183t65m+CimVUZ/DDWQeCR3y2WSJmKIqKb6LfryLvv7YuWUuihFUK3G9xZrjr+uWi2Od0bQaEmVyfCkseUck8GvnG62SLVOrbBGKspdnFeJHOolZTGEbcPBN8/BysiAQb9xle+NwPP5c4b2xWlZRHqolm2wkGRY+6jr84tHMzPNG0aSISWC8fIB/ffJ4fstdwEkqQo58q+Jdc9zQ9/fHHT/AHUHTQbmkuy/YfHriugKvBerhQxePFKY1IP4RwDfcfOFGg+7AAMHsDaR1+o7YtVjpX8Qta9LoHFfe45Jd+q1gVlIUJe6/T6Zkm0EbNCskNKZOFJKx2B27nqPbMbVRR6dWaNGjo1tugfc965z6CWArqoiJoyr3wo2lB79sj1jReZgXcgVsJHmPx3ykZUzLTO0Gt0TOiGbwyzUWQUaI/X/ABlEn8SR5YAChYUQLsgenzmesYlaFYwIzGLchuhPoMu08kb6toZDI1hWDIu0k9PplZJdoC/ZZFJMyIZEYxbqPlssKv6d+h7Z6JJIo3SJPDQMfCN7dzen+MrjB0sMck7WzDaOKqj1OFrklX/5ccpaMEBOLVT3J+PfIp2K2ZcGqkmhWI27hjbjqv8Ak5oxwI4dHO3xWKBKUA8fn656KIRvG05ikDc2vmPqT64nU6bVxq7SqgEvmRAoYA2BwO2FtNgsZBCIWcwqFkUEALytHoa9awll0wIYMZdg/iIo6E/OH/7fLFpREXjDTMWcPZpa6A9sm+z9GNO0xWv4l03iXxfQ9cD+zXZpzqZQpgLeGQJBf4QP+Xz7ZJrNPGzLICu7k71FL7cX35yto3EiiKHau0gMWrdXY57fBr1VfCDhWCtuFbR+/pmQqdGbBqEkRjIfx9d3lJrHESiLyOterHF/aumiB3KhVSarqDziQzoqFm8x/Bzde+BofsN5tUYfAaFJC97ChN4EULrOQzKsq0bBJr0sf398rh1LBT4sCK4Ngihfr9MYsmm1M3iABfD5paIv/WCzdEu6UOyOm9WTzCwCP37Z46VNNOyojFdoI5uj2BxczTLMIZNRGYn/AAvGlkgdq6H5wlbw3ctqQUiWqdaq+3XphawB6HXJFrI/FhEUZXaQ6mx1vnK4N21SZI3YKdt9h8HJHC6jVI8MYd2NMqkNzXUXi/s2dpZtrkIFQoHdeFPoR8ZqtANKOHxUmkCI9C1QGix65jCd5dDJptRMFYMWjd02hVPYHrmiuqURS6cuIaH845+VOQahJRMswBKDnnm/j/GaLrAV9k+o0jaSVTtC9F2tTX9P74Gjm1kJkih8SNntvKeCD7YerBklrwmbmgzN0vmh6ZofZ8LShSBHuDWetp/vKuVLQ+FuiY/+1RpLGCyinHBu+/vmTHMdHNJPPGWduEBu6voTmiuo/ikAK0qHoi/iX/kfTM/V/aSLLGdUolZxattph7ZJJ2ZYT/aD6yQmSF3Cghm2clR9MRotbNJO5S/Mp3F+CffKV1iKC0ccgTnlT1vsLy+XwdToUdaWRkolRyfnKOVKmhz515431MtUqrVWeOOl5dGY2uV9SIiOApUkEdf3WTatSjMZL21SmPq5xesWJolh07FQa2ORXPvlKUqMsPSa1i5JZHo3ZUgN75TBb6kyyyFT+JUiHH5emZ2kVpNQAx3KPK1Hp6ZQ8UsLrAZAm4giRea9q+uO4pYgd6ac2o2qzBv4m2xa0K/z/jIikTrG0buzVfl4r15yuLTSxM6TDpVMbtvz/wA8ZPLrGe1SEb+WYKeovmxkkvoKYCxK8hVDMWH8xAF/F+uRPDpp5Hj8WYKvJWQVR649ZppJCjtSxqCpNg36V64mOV5GLNtZgTvs2fYj98ZaNozdk0cMKqrqy2xNhbU0OpwdZENu0S2XIZbSq46WMHUayONmViFO6mRRRU3npppWhUK4WutiiQM6EpWmybqqIiZWOx3LIBVN5qGTlAsjAjao6WKv0ygaqmbc/F8WL3DJ3kUyFioUnkWLFZ0xsg6DTSxyeUhlJPDIOBkn2hp/us+wSeJQFtVC/QZoQ64RzIY2MdHnctj4I75la6d5pndgAsjFlUdB8ZT4+TlpL5XFRwGLbIzWCo6gjmstj1kKvHEVLIh6ji/SxkMGobTbgAPMOcr0uj+8oZztVSeAGr9jKTS7fQnxyfS7NIlPGV4JAp/Eou7P7+c7PD990zz+IImXoK4b2r1zLM48QIQTRsDpRzS/9w0+p0fgzxFSBQZaF1nNKEo00dSmpWmZ0sESx7k5fcKsgn34y6WGJom8MuwAA820G+/TM1VB1abHHX+b++VEgQuUbZu4oC/zykk80lFrcPRIVDlQwsEFv7fGeE4hLFCeDW3qv65E05vapNE2e2EzI/4SAT3PbG4fYvNeFJ04VeZuB07kZ5I2Kll3Mqgiie/ti2LqGEiHdXHYg4YnePyAFiRQG6wPjBpsGK4aJVDsrgkE9r9cr0TxpaEFWJvjq/uPT+/GSxq0SgSSFAeSvS8ZGvjTAwITIo2gkUCPbJy1Dq7NBINKRJHqXclCaUH8x9chkjEv4WKoDwGqv885Z4bQFlFySjlr8t9OBV/2ydpVk3Dkew6/vjJRbHa+ycyPFIbYneeVqgc7K8ZIYsxVj24N/wBM6IYmlCJIWoWTnWjZX3KtknoO/HF3lLVi0xUMRklZgpdelA1x+/TKzIzQ7WRY1Asbe/8AvOB1jcBYym6iU63lEn8aFXBAha/xcBf73iSlbGiqIn1ERiWOitGwF/vZwItXHGxkJCXxtUH++NliQxKCAbHnNcEdvg5KYUZPEhFhOSG5I+vfKRUWibtMtn1u9rSRmRiNqnt9MWXcuW1GodFDcH/l/jExu3ibnHht0BNmj68YzxAsLoGAUNdMpLOcHFLEG/s6ZX3tuPiIOAxPf698fpQZQ0kp8jnb5TuP+cknjVtrxE+Ex6Feb+Omascah3bxSrlOQqba47Ys2kgrsUsYZAFoE8Ebun0/xlOnCRLsJJka1Uk8V0q+mQxhZFJ3eGByCRZPz/nNFN32hp1i4ZowSVrheP7/AOMjPOx/4cm/hB0jDb3NHb245I9s62nmVhuAZk683+VdMLUIRAadUCoNyBjfzd4WkR1WO52cEdUXZXsSf+sleWOIlaWgVo2tgEcfv3zkUg1CuhRhsAFfio9sp1cCB45NzV/9ua9BX77YuJQjEEFUPU1/b65k00Z2St95EPikPtZthfmjfa/XM2Xx0KhYjGiyqCSAeeQOmbMzqgXTu5k3mlO7sRmXrEUMsEZJWSRDangG86fiekZrDVRpPvCs8pDbuHB4PYnnpjNJOZNV4C+eNGsPVAgevpi00SSImoMjALxZ4B/xjgp0ut8gZS34Czcnj8qzndMqaml1EEmvLicsZATchvjGq7SvHHGx3FwHUdQRfz+mfPziWOZJETc1ckPbD3yuMyLU5NBh+PcaJ+PXJuC7G/RvRO0W+RQ7KT0fk8/GQSqGkDJPJHI4NqE6eorpk51QWCVgVaRq2k8EevGUaaGSTTkrJGVKm9zjzE+vpidaFIekupn0a7ZZQQatz3rpx1wYYf8A5BhDbbBJN+vTCUfdolryzJR/CWDD4+mPbRnVSDVzFECqLQiiT6enriWjenkjkeBnLn+GeSzdT8d8p1YMv2SwFB+vmAND99sgXUlZ5FlIXxP/AB1/LXfnnNUamFtGVnYGwdyv0bjg/Pvk5dho+U3CpGoqW4ojkY/QyncWVrCnrdgY2WNdQTHGAI0YksO/egcjmjaGRQVtT1CrtBHp85fHg3hbHqXkZimpO4Hy+HXW7/Yzss7z6WVTJtcckpYLG879naNZTcFQqSR0sD4Prly/ZyXIEc0XJJYcjt8YrcUxUZMYdIIi8lb+g3VXznUnmkV4Y2cA8ksaH775b9xEkgjDKxUnzdQvB6YmaBxG7EWQK5PF/wBsNpmGCEBWjkkQtuFbj+L5zUhTUJFE+m37DwQwO2v5jzzmPooJZIyWASa+7eY/nxj9S/2kmjEzSeIlW1L27DM2roDi2Uyap4vtAKswAQWfMSa7VycPVOwmijjZXQcs92eeg/v9Mwofvn3nxNzRAjgjrR7gDv15zUWWQqVdw6K4DFl8w4q/30zNUDi7OxJDJ4qx3Gsu4+S7bnqMCHRpq9ERNUboQq7FqxzdjqO3PvnliV4lMMxZk3qqm6qzVdunP1yrQRK3jaaZwkikMzWCzX6e2Zm1GHrNPpoo/wCG0oN2yuCAe3TnJ4zJIdkoArsaBI+c1daEqRSyklgqSMvp/vMxoWdhI7UapaF3Xt6YyeFFdDS82nhl4UMDW9Fr1sA9sHT6f73KIWJcKAvlF0Ovrjn07w6cICXSRb4SrB7185Zp9MkMDMH2kAFnquK6dcDmkCmIIkMnhmRuABX81djeMLKuoeFW8Uso5ZfxX25+mJn26iZWUlET8Mg5DN6fOc0iS75pTs8w2BwSD7GvTjrgrLDYEWmlV28R3V083l4r5xvhxTIZFd49xvzmh6V/jGIHjiWSacEuSo4onrxz2zk2l2t4qtYegqcm+5+gGC7YawBJHsM0zK7mmCc0vTr/AGx2r3IkKGZlBamVm6c/1+cGKHxNqLK3lIc2eFFVfp+eFqo5JovGaYyU1EVZoYMswOj0kmtEipKxJdf/AA8MOau/b+2S6k6n7P1EkKBmaIbVY0Qw69D3wvvE0AUQSFQfOxUfhHHJxUiPPri0xaRzyoHVgfe+enxlI/voRp2VakSavTeI+sL/AMLhd226/pyehGRTBXjUJNJJzuB9KHJvLXSLTuEjdSxYLuIoKPc82Mj1f2fsUBXVNwFOt0eLJA9LwqgFIlEhWGU7o6JS7JrgGz743W6iSIxpGSYB5d6mxfpmYsDwlVl3ecHYVBDfHv8AXC0uokK+HKNkQ4odSff4PfM4+jWbEb+DKsxMiCEjyGwDx1y7XhXDM7SqliwjdTmKHmjmSGV1CItqxXg+h983Y9LJqoAsbksOrOPxHtXpkGknY0vsmEfhl2KjavC1yTz1vDSXUqS0YOxW8pJ/d41YnEH3UMFdObArni86sYeNVXUACwFdVNbfXrWCydYHNJHI8ccof+ICGs+bp0H+c7HJK0e11Tw+AV7k/P76Z2b+LIZt67YjTeQ3XTj5xyQxxhHWiiDhDyRfoPpmbBVDpI4NXBuMaq0a8E9AT8/T8si1NkNEj7WHlK3z6WPT/ePjkZNS4V2YMbK1dk+npXGR/aepMEniEgGXyqSALI6jEV8qHiiH7Wmm00Jfcy7WDkgbioDgjj6dT6ZZphDEkiSSpMdOPEBjQ7x0IJvmz/bMP7b1GrmgGqMwjgamVU5a7FA9v69M2VmCxSTyxuZZraR+pP5D6Z0SVRQlNsKOHYFc7iwFsS/UknqO9Z2VZIWj8u7e18CheL3agzMySFEbgKw6UMVNLJLq44nlEdiiVsi+OTeT7Y1NCtZ4KBwm+QPVirN1fX29emY+l0k/jHYJGZmuMKCQOf5vW/7ZuatNYZFjJpSo5PlNX6Y5dPCNM4aZl22RGANxJ+f+seM6VDVSsVqNLqYtFAiskIlZgEK1TdjWdjZU0aFZ5TIQd4cccdecOUmVD4jEW2yEmgTY4sj09s8shjlUsxaO6I4O4gcG/p/rJsNsnm1kaLENvmY8GhZ/xiFLanej2ZGU/wAT1Hfrj9XCkzneXJKbr9LPrkeqVdO6rqI9oakI32VHJFj0OPGmZCI9RIkpZNR4noYmok10Ge1coE4ErNu/FSKOOOfXnn9MRHofE1PixCV1RgLbnd8e1DGpARJJLGiNuoq0TEVz6nm/plqig6Wy6fXxwrIjySsFULuPmTmweff0zFheTTySeLZcGqPA/fvmsD4+mkE0pPhrts1tA6E/0zNXSH73IttLxW8AgAdf3WaDWpmph+M8hUy8K34VJ6evvlMcCeIqmQIjt5X/ABEqevHXIXURBVdxKoPlvjj15zkE5hnaTdYJJBAsn5/fGFxtYZMP7yw+0GWKV0Ck7QOvp8cYMCPO1nUDao8t9vc/vtlMEZ+8tNKjPEy2LI8vt8e/XGz6KSJz92iVI2HS+p9gfpg5JYO1aJxOyxMNTqGLp+HzdOtZausZvs/YdzOqi3dufWh7ci7yTVAOBC6wlQQLiumIFWL+emWafTmOPYWJolkAjrj+vXtiyaoRJnEfUSSRQ7ovw2VrdfHN9ee+aP2duWV1kkUDYaUr5uem0D0/1kkOnk8Px4mlPhpucBaqu9n+nOXwy6ptQ00GpMzRKG2xSXtHPB/IcEDriPVgsmxbsY5qh3MY+AeRxx19wP64svP9yPhxnZKRudgX3D0J6EUf9Zyd55NQzlRCJVO6NSTzfQXyOf2M40EMemdE1BKTHybVLcAdeoog3gRvBWptvIirIgbd4d2a9SKrr0HOCkkkbs0UiFS13GCaquqkf075NG2pdgVYbYfK+4Xa9T1P7vH6ZjMjMqjwiAiCRu56mvn2yjVIKG6fwyZXn1pWUcgNYB5uqr/WXJMmpKQRiiD/ABHNEH3v065k/chqSkR8wbzEqLYKPrzzjvAFpFvDlEpVHBAvoeOf9YrSYNNAzSGQoD40ZUlOrEfU9jXbC02ol+6TSGOUOCASOnI6g+1Dr65A0Oni0wapQYhTfyhj8emVJ4baPbFrI1j3AupsFq60OnB/rgpUCiicF9HDqHaRdV+NAW8oAsdf6nPRQFWuWaJGck/wWquOoNf07ZNM0kkawxN0faAaCqLPl62LxyauaLclASxdArEfAo8Hm/zxTJM85ljCrFOsPiBVR2cNfc9r5rp6HCE26aLdEoAFkr0WuOfX0yGEzqzRrEdoYk0btvSu/wCmaEOyLa7P4QAIYlQAvehxz+uK34PVCtTBBptjqGYyebyx7q7duecjk8eJm1TruYjaqnrd9PY/n0wpNUkpCM/LS2r8gBb7+p/LDL7ZG8bUF0ifw0RlF3Z8146xaLtkkmnk1TtKil5oWACoNtfX/GUj7z9x8YtBGyuSq7/OD0wtpgaZ4EZTKlsENAc8G/XrkWplkCrHGYndhtDULAPv/jCqeGplEqrsZ5f4xIIIdCpFc8G8CXRSzRfxdSdka7tgHKj+/wBcq0+hlg06vLIHCgnc3FDjrkuo1iS6aX+IIvENJTMzPXahwB85o9h3wS2uCRNHZkQLQ8Nvwj+2Hp5EkKTyLqFK2HYGjQ7j/eAhMmmEWnRtIuqkosse8hVoXdeuNfR/eNMUcPKI6CsgK2R2PTrzhdIZb2WQa2J9C0LwNw1+GTbUR1Hr/nAnOif7NiTRSlz0dXAsjjrXA7/lh6TTSfaAeMRJFsuwzcA9BQH+ecjng1Whj80oiKsDtPlLL7GuK+MRVdCtKzrxafTRRaeKR2bjyiqB9z68/rgwSgAF13KDVqLIY98kCqniTvM5DC4GkXmQ3Vn0ynTlxopJJYESMnhg/nex/bHaBTZRJJqNPCscgkSQ/i3gqu2uoPbnA0327DDMJIoVYLShns/NV/vFSwfeNOgSYSDZXLbVB6ng9Th/dotDCs9GeQQkom+x/wDYAD25wriK4lP/ALjNqtXI/jsI2iIj21QN9+b4H65oDVQxxQQ+MQsjUzIOCSa6AnrmBB9n6rwX080bJI+7ZGwPlQjqeP0y6P7ClEo1Ylk/guF8Jubo8tR/oMDjEV4jajmeb7rAfEVSPMARR6+XERIItRDp4WCoWuwvmHU/lYwo0l+9rM6yLAZQFHIod+/HHrlzaRZdS0yOfD2qFog0evGQa0PVk02gRl2atfEhdiSFrg9SeD7ZF4Emmh1axRbUMxZWVzXH77Zsx6aF5ZPFucRABRspQSOg7XmeI5Yw4UlIn58NiGq7PH69MyeUBPQBqCn2YU3F5HYiyaKgdfpf9c7p9I8QjR5d4HA29Pp+uVy6UiNtOXDOossV9u/b6Z5oXdkiRysiAGttEgDrXphbRv4dd/DkbTMyrCVG2rvp3OSF3gmcxMjKoryDcGPvlEugZnaZXDuoqgOGvtkaaORdVLKrMbO8hSFB/dDFygpKxUkiB9OJZZ0LNuZByD/o/lha3SRRRLNJ5Xabake4qVLeX6i6s/HvmlrNPLLG0bMxVBuVq/8AGO3PX165gfaEzOpjLOZ41BPl3bgORz6dMePZlbN8SrOrGEyKsa7KXykV+/XGu+ojh3znduoKwHTvznItKhKhZArlKYhOowpomX7LaFFchfMV3ct9cQm+w5kOm03iNKX3eVwx7+2S7jPq2hR9iou4ljweOa/XOQQ6hYk8XayoPwMa/XocH7u768j+VYzar0ph+uGwpE4VWllWYSh9pNg/hs/iPtWLGqfwpEIjk+6rbFfw8Gvn0PGd8ZW+0FbTATyvYl8QWU4Aah6c5Zpo107KkcAZGJvdQCX19+eMfBtRjpptRJqYJ3AmhkR7MBshel9uen55on7OcQtqEjeeR1CK7EkpQPU3z2GLn8TRzST6ZykO8oygfiJvoD8jOQyNDKlTyyaVCLWQt1oCvfBYzvwDVfZ7poVkOqWMRsjJfHayfcjsDk2qm8GUa6GQmOcB9yttDEggj162c0p4WT7NmZTFJLs3IKJB9j3sDv1z50RTENGGoAbVo8Fh7Hsaxl0Dt6WzzvItlnq1P47eu5I9P8Y2DT6mXVM6EUOdnDGqs0etZFpg7arwZ5RE5WuD19v85qxF22DSckgF+lha6fmDiVRpNoSuollmnkkVxJL/ADrfDDr36f5wodY0/iwrLLbsplDm9rXVDsO5zzqJJEZpCqPahXB2t+X83t3rBkgJhjZG2LK+3cy+dGAFH9frjNqxUrRQmpj0evR3dgXJUmS1e7HyPz9cXrtZLKfCUO7q5Krvrd897xf2/BJDpg6u0rFj40e2i3HB+a/pkut0vh6pGVyzuv4SwtbWqIB5+cWl2NGN0Z2p1b6mW33+J/8AiAjv7VZ9fzzV+x9LJ9yacSeGqLx/9h7etdwfXJm0s0jEiNRSggL5gPTnqM0Ps/7PQzxQtL4RZdzBgW2nqDfY4W01SKSxFL6WRkiO+U/wwyts6VxQPHb1zn2fBOhkRndVchj4lXx65tuI10iCRm8ZBtBPU8XmMuolWKTUOf4hk2gFLDAnvXbjJOiMXKSHyRHUTaiZJdq7qRE8tX2/3jZ41nh4iCulB2BNGumD913tEWkMaEAy7T19aPpXbKIoNOFbSpIyk8hSlbq7n0742AZDp1MtMszCSMnbfSx643TvI+l1WoklZGA2IxqjY6jvnJNMDrhJGp3Bivl75yTSrKHDSSRqh861yfYHEVWM+tJgV/8Ab0dpnkffzz+I8c5bqoBBpl1SAySIm1mbnbx2zPXRa1liAaMRO1ncaO6/1FZpLqdLHH92kEgUUjgr/MenH1xjO/CR9FPpdHJ92nMkjqOGYFQ3UexyyAyFIwZHbbH+GQcFqoj0xPh6S21CBtkI3PsXn246n984ZNswEpU7il+g98Z0LrM7XfZ2lk1WoO4ttTyw7iPr7H0rMuCB4YpDA01ovJPPPt71Xxn1Gi0qyiRGm3sIyTQ8wPufjMeeOIF4LBcAv4i8D078nphT8KRt4I2uNIi0F8ZaIA4XgWfnrzk80Y+yzFJL/FjBvavJN++WxtHII2jkKULW04JqrxSfYrfaE3ixzMQzAFKu6xU0no/mgwzPKrah5HiDLUYBB4/vitQ5OjVgVZXG7cTy3NVXY9Mtb7Im07pCEdCRQ5Brk9P61h6vRQmCCCEHeqNvY/iJvr+mMmgXuEMWuieNUM5ULStfDL+zi4/tbTxTylpFko8HaSxH98CeCI6atkZ8M2p7n/WO0Ggjh0i6gx8lXK21EfTKfjWitNM6ddNqkqN2Kqu5r449a/TFLK7xxidSoDbQQN98g857VlDCjvI8SUOFFgC+cbp9KkxIGqZljW9xSjQHT9MVtJWFFEWo0/2fP4TlxEEGyQWdxPUf098nj+1IIpmTT6q1JCdS3W+x/t6Y/V/aOm1Og8MxmdoXEUUbGlY9LsGxV9cxZvs+PTVNFMZ1kFADgr7X6dcdKLWmSdmvpo7W9LMIy9nZ12EDufz/AD98u1kSaj7Oj1KbyktN4ZsbG6Gh26d8T9naxV+y/DlkQQoCAwFlT3+eaxc+rdNHHp490bxkqAzX19ffrxkm/Bqdk07ESLGbCsCFZQB4fzl/2d9nTfaMEjBiGiIVWRvxEHv/AI98zIdLOZvvEALBDQLn8ddbPz2yv7O1xWV42LxRl2ErBuGbtga+gzusKJfst1kkm+8AqWAABNhv6evXBtdJqBC0Q2yAgo7csOnA7HKppl1WmIUHlrVl4I9j75h637Wimk2SkPLGTwDz09PXDFcuiaT/APRbLJp52pFTTxj+V3s1/wB4UU0um7B2jNqQbN12+mZkdsweNlRm6jv/ANZojxBERKAwa23DqfriypdleNdHNLIZZBM01rwT4gJH09s0nifxNun2tY8tn8J7ke+Z2m+zTMglbftQcqB++co0soDhppvB2EKG9OOPriOrwVpsQ+pCoa3LKp4LUVJvm/T6Z4tI2saQHwz13BqBPpj49uvZ/Ddo2VjHIfDFlut8dB73nH+z9QhCTSRNHt3BxGwoHseuFKgtkEk5MXjIHkkjcG2T8PPAxY1DxOzqpCg/xA9G7/tlkkeiih277UNuLn8QP+P75MmhimV5jqmaIdQVoV8/PfHi0GjkGnc60Ay+UkHavQ+w/MZRvkLNA5VQg/Ff1z0ahJEEayssRH8RSPL9O4ojnG6hNRFIRGU8OTg0oYm/W/3zmbtgd3RPBHX8KYhFYEgseXrDl1J1upfS6dDAiirdjyR0FYrdFJ5lkKiNCLYGt3z3GVxx6FmJUtG9DzoPK1envmbVgqlpkj7Hll1E8c2vedAt7T/DHHY5ofZ+j0mmXxoAodONyjcCa4F4zwys0indJCV4cJZ573jdLGNG6CFfFABdrJHHrWGXyNqgVYzUCWaB5StNW8Kvp3rMaErqTuk5uwzV2/z+mXz66F7Xcdps7uw7EXgeCw0jFJLjXhfD6gfPzip12ZWkYP2loZ3kT+LtWgUCjivf998v+zdMZtRM0zBfJtD3+I+g7ZZqNO0MYWVlMqCwpAJY/wBemc0ngCOTy/8AlYMP5dp44+npl38lxoFGpplc6UxRarbtG1S6WbP+MW8QGnIaUu4IDL/K/P6YiZ9RpJpI2DMvViBY56X3vBjbxIvu8k5dSeGZeQQf169cnYvFlEwnXUxtp45I1Q/iXkV6YS6iZptryxyKthQx5A/z7YsLqlZTHMw2OQLogHtxnZI9TOwJ2s0yXW2ie3N4LTRqplmrmP3ZQxUyfh5A4OQ+CysqLKWs8MzbSQO+MTRs+nZHtmBBHUmvT9nGRxsyL4ieJNHZVW4xDdBmZ3NGR12jrfB9/nIf/edOgaKacI9+VrHNcc5e8SDRgeKscighh1vJ0jgoJIqtu531ROMpJPQJEuoTSyhJhrB0N7DYv4xUaCKVWSQsrWBvN3l8kLdJPBZV/nCi6+az2rh3lZ0SIoVBKjm/fM5J4MlRmTFZpNgk2+HdC6v2xyxyBJDCwcvtAfqR7ke2KkaJ32Jp9xINeb9m8l8GebUI0SlDVIeVr9/3wpDs1JUj0+19Q6CS7Kqwo/nkc2pOrkdSSIX4pxXA7jGFXlmEc8UTqeQa5J9M7sT7wsJA3GyKGZOhfDsBRH8jsyxcqEWq6Cr9MDTaeTV6hG8Ro1BI3r0Ppx3z0KTxNNHAx2ycM7dT8g3+d42JZPBaNZW3hwo8OiK9c16K0yecTwyCGFmkG3cgHHzi/wD3KbTTGJyXBH4SoBB+f7Y9JwJU/G6pYB2gkt632xc2i00qRz+I2yR63lDQPpjKvTHYNKJdRHIqTKW5JUFlvtl2vB0cXjov8SddjEjaaHf6/wBsq032YdHoy51JCsQygc8X2/xmZ9uzSyiJo4qjjFLsYkk+4PXB3JIW7Y1NdJ908OHezXbu55I/qMzdVKWliLLTOeeBY7cfli9DrpX1Ds7GOIgCj1vpk+p0hl1pAcNCw5tQCle4yqglLRv4HHJqHlK6WHxJJDRULfveP1+s1LGOOJ5lj2hSwqi3fnIYG1WklYaSUGQ2GA4PBr91lR0+paWTxYGRrDAcspOO1FabWcV2Mm6WioHPFV7n35zPIQap97N4IfzX1vjtlcY3uA1+U8ME/ft1w54dgkn8YAqQGegaFd/UHNFpOhhcEQhR5m8x32km3p6VWMgScEF+GY87hZr1v99MPQyqrMHdmh2fw1vyn3+PbO61X0qGdJhIlAqNtlfTn99sVu3TBpXK6wujrJ4hfg7mPHzziIxCzyqVGx1s097vYdqyDU6yWaZXBbeBbWBx8YGj1k7tK0jRIyDgKtbj1A9jhXxurAc1UqSSyyIq+FCAtKKJ+fX88mWRQnjhWYL02k8HGSFZI9yDc7HcQOD75KwjTTGBG/8AI3LFuSfcZ0RSoAOqZZGE4AUOtbXFki/y7ZHLqJPGTY5PZQT0yiTS6iJxEkni21pXI5yeSLUFgjbV23wO3xnTDiTlYkl3Ja7Q8bevOJkYSC7IccYZUJIQFF3VDOLExmJb8I5quM6FSIOyYuwF3WeVTKQo3MOtDGzR7SSV2/HQYAASijH5HFZRPCTW0cGlaVjtUgDg8dPnGRQyJG7FtoUVZNX8Z1PEDqUlIYmyQevpxjpPGmZi8vmAo7gKrFcn0NGK7SJfEDqFvc10Ot/TDgR5y0YQMAb8x5zr6UkIbHnNDgC/rj9PH4bWoNr1BoflgclWBjFt6LjRC5Dqy7QTx3xpowqbo3Rs1X798a2yE8224fJHOLmi3DgMqM9k/PbJ3bKVSM9h/GJAND3xjxhYmcj2FHObFXUlQCR0u6GMmtFBaiP+OWb6IJYwmkZya49b9MISFGDi2ZhXp25rFmNhyWUr2vi8KWNTAjB14sML5Ff2xcH0pQtVuBtZTtvj25zkc7QndtVmP4QOa98PSRxNpxRDOpvb1Ne4zkWmdpA2/gkggA38V6ZK1tjqwn1SlQwdyAOnQH157DGrqoXDMzshVONjEbzVXfPcDjOLBCyEF/OnbZ3vjEMijUADzV1HA5xVxYzbGhk8wAI/4ttrnr+vfGoXkhAEahR+J+aB+cGFZFYhZKZ1/FxS5TEmqZBt3eqrXUfHTn0xJMaJNI7xAeLdqtA8X8+w+cUS84DhAkfTynqfXrlc+nQD/wCQQxWuvB57e+KkcCWNlRt1WVGFNeGdhHxk06hiljopHB+nfJTIUkRnjCrfl9Ce+aSzadSqMd6k0CWsgfusm1I08khZo2VQNoIv8zixluozWdngFdGl3MOTwBe4fu8OI7n3KGYnhWqgor8sf4IfTQohZFIFqeL/ANc56PdEG3OVUeUbT3+o5xXLAkyaSCMBlvx94AAJ3NfoT0/1hJLqo5RGGMnh2XA9u+dCiV2ADtt5UkUR3xbszTx0TGNlMQPxc9Tjd9gquioFTKy7WIfqp/mP9hmhHAvhHw2VdvAF172Py+uQ6fTCMLMytt6G2N/6y1ngcLZCFehHH55zfI/opEKfxJ5G4NmrUJQP+8nmB8JSN7yIbCL0r1J/PKZY45Nys9MaO9mv+n9cVLPTmqYMel3R9R7/AOcRMZgzMzaZWdZVJHJsUB24rBaDxdKC0vmUWzOevtf1wm+0G1PBJJ33wtE/7+PTFpGqK5kTivxE2KHtjpNC9ipmMcsUagbrILLwOo6HJJZVn1eljM5qKQjmgBQ4rKftDUPLpIrjrb/MLuwfTMsalW1sUvJcsQVHHNVedHxxbVk5tWfTQwTmBhDLHtRqCD35H1z2j02o1v2sfvrKVWmZzRLfX8si0+qMkZDbtir2Fbfe/wC2UoCyNJDL4Qh/BagHg3dZzNNXZS7LNVAqJwykyPYe/px06YEas8JhDeIyr/KRyR/X+uTkMUDPJvO8kl+q+9+/GPgkdJVoqz0VoXf1HpiNDImWFpiVCbgf5iQSPrl6Lsfaz/hUA7jt+vz/AFwVZk1QR4jzxftVfUfOFIKDKgrsWDKxT4B6/PbFbsZFC67TJe51VK6N63XTv9MobUpN0lQxDoRXXg1WQPBCWLjTgoKAJ4Vvf2N/r6Z5pdmyEuwVjflABU8/U8d8Tin0EuDy6hbdCvhncHK8gXxz3xz6sy+WEjlKYH+X5/M5nHVb608j+KWQ7LXb8XlaOsNuQq+GOp5qvQV6X+eI00EikTwC0oZUK9F638YjUTySQO8hAIFDj2wvtGSMajcFa+LZgDuB75nSyDeGaXaO57fv2y8I3oG6NX7EnkAXcfMeRfY+wzTm1SwmRY9zLNYINj5+vGYGkcsI/Ckdgv4WrbZ+l5ZFqn1UvntHUFQidzizj+Qq0ujlGmgWVrZSSCFBPP7vJpNW3kjCyLDdndQJxsTwL/O2415CaHPrk02oI3JGiOpBId+or+mKkOX/AGcV1olLOIihIph0H9cZrEkIjQT740B3NxwT2IzJgMkCgUxG2hXIW+fnrlOtlbUBTIkabWBCBPNXe++ZxVmVk0jILWGR5Albmvy9D27f7y94JY9MpuIQmlLE/i73Xp8dcjVdTH9pxqyqAzClQgk3/T+30yzXTR6qYlIm8NFWP1uutV2vC0ZvwdpJVikNzIFl8oAXy/Q+pwvtD/4ckeqjj3Egr3BDe/ShkSvBAYZJZiFR7JYiz8D8hnvtCbU/acnjM4jQ7WMQJIPv+VYK9NtitY4d42nV5CT5aJA6C/yw40jWMBmXcRwG42jqMVNqCyKipsZhamh5eemJj1PhyrHISztah2BPBzU2h8NCGLUPJtZy/hi0PYjqT+uUtEkundmmjCKdo5piPXE6SVghEYJfZyd1gjoP6Y37rIYXYsAyNdcHt24yT7A2Lngk8FmnnCbBakgtu46H0xTaaeYRmF49pa2ZRd+1Y9LYCOSMsoPIrm+3PrX9crkiYOP4sh2qAAOL+mNyoUzYYtQftKYTOi7FLCiWBHp6d/rWFNBP94CxTWvF7RtUWO3+PfDjmmhV2UxqXfggbifkcZd9pJPLBDKkjRA8sqiqb+nQZm9DdYBptKIVQRzIRKvK8Cj3H/frh6nRSeG7HURxo341VLrjgfXjJImZdUzvIke78J6Hp0v0wf4p002nd/EEvoCV+b64tO7MxZgnk0x+7lfDA22/cHkkDM/T6KQvLqEO1WJrdYDCuPy9c0Um8JfCMSihtArgDoefrz65hPrDplkEILDeK3G6/Tp1yvxqTtIMmqNaLTofDIakEJYhiQQb4v19R642DTeNo5EmEkVUQyfzE8D355vM7Ra9XnDsJpJNu1VvhgBQJP8Ab0rNPTNKzRSlNibCgKm2U9QRzfP9saSa7E7MzU6X7rqNjzeIIbWz1BwF1kckUwG1yLYWDSi/+81ZtXHOsv3uNpoWYbCtKVHHA/fOL0f2doj9nyskjSC+Uvt6f3zc1WjJM5p5/KrAK70KQsCaPbNP7G1EiykE8ORfmDEX6egqvzzOm0h04V4RcpPQkC+B9OuaGmV5dKol04ALbQB+Fmrv39fyyUqawzwd9taeUTBP/wAItuBLEDgci8VDHLJ/CrkJXk549M0J2TWaJIEjc+GvmYDgk9rH1Pxk02nlhlVpJ4/FIrYFr8ufjnETyhU8Dddmn4cbyx2oG5JwIqjiaMytuCmvN784b6dZNQrCOman5b8Q9PphPon5fctSA7ee/bMAliabxZJ/F33QJA3HjtgamKFnUePEwHNOb2n0rn88NdIdLt8E2L81jzD49v6ZPHM4lZBGtEWVYVZv/rDXo1ntR9mtqNFKwkfzIRGTynTrX5ZXpZRLDCFi8GGQEqy8EHt8nJZZ3hm+7uGO9QSgQgrzzz3OW/Z0rx/ZqQhRGYppAQ/BUbrH1o/rjO+Oitk48OLVVIX8R+z+Yet1lUqN43iowpBZVlOTzKjalHtmYjli/Ay8T+PFbqdy0dxF7+2IFsmMJ1K+LuD1bHtXxksgR5vEC7mAAO02B3JzUjSNGbaVjRwWP/2s9D9cz5oo0RleEAEG9oNtXb5waGLEGJo4PHklUpz1G0jng+4xbbWRSjptVgVajdjgeuK8aQ6kCTU7AHC/gsVd+h5rC1KMdbMm48n8O4CqPXjn8/TKUMLqViY5X8QhuSvHewB6/HtgwRqQsUyBjKaW+in6d86RINiiRXAJAPIYk+3b54zujMcsc87oolirY47+oF8X/wB437GooOkaHTusUNEAG5DVH1OQgas6rxGgWRpFY7Eckfn6+3OaZifwjZO1xZYKGrjnisfp1dV8a5gvhkKqL1HHNE8fOLyoWzEkDm1eORV6tS8L6/r798FtPKSGmO2jbtX4vg9zn1M2kifSb1klbzbiLFg+ldszZI0aEIA4ZRfiGiVIuxQ7nnCpmtMw30ca8FqLCxuSuK6/OdeNAY18PYq1t2ix17/XPoYtDpdp1ImR9qlhvXymhx8Hn98ZHIfEQyDaNnCsg5A636Vjc7GUleEzhZjEY9Ow8w3Wm4Lt5F/r2zuqOs1M5MgYIGs7V63xwB0uuvrleh+0NPFETLMXaQHrdjnn6H6YnVfaPnaODziRQQ4NVx/QVi026NzPN9lPqYfG2bGjWk783wDxxx+uDuih0IZkedlIXoNo46Warv0/1nl/9StpJwur04Com2x5g3Tqb9z049jgJ9raTXz7Jd0cLi1arZuDQauOveuK98fhJdic2wZ9RLPqoZN6Q+FaISS272I9vUgD5w9JF4EzHSvJHqZQbkElFrriu9+/pxi/GXUQzOhUM4ATeeQVPXjvz+mP0qruScKEdFCtI5sEjoR7H34zXSFBjWtQJY5QDttmZbD0K6k+w9+/bF6yfT6iNY42VwSFrw/MOTVZ7V65YYChj2iXg7owOe3PU4gQ6mWVPHBfcSVMQFgehsd7zJeswSQNpEbxYUkZavcL2NV1x0A69MsMW/bKyRgBCJGJ2lT14A7/ABi5/s1fvbRuxSIIHRVB9v0987PpU0RLJIJCvAt9pXvxz6cHA3YwiIrMks7J4RoAOOpBP9M7O8b7GiuRG/mbqB0uybF0fywgyT6dAjO7Dknw62nsN1fOKZwESKFBHNZ3eUEG+b54/LCaz1N4yKhQRAMCbu/cm/09sq0kULzI2wTrbCrJKr1J9sSDDGQJzGrNVngt9D/bHaaYAblZd+8FgF27F9Qw7nM7oxzdJEzCExyyP0YUwY9qHUkD4xh1Zk08oZLmSlFMATXB/I9ueuI1E0e5tOjrGy2yFot24/nZPP8ArH6fXyrEqRu8k60q7k2ljdnirocYKwA6Fm1IMXjeLJJQUItH0YHjp79eMbJDDLCNLpAU2tfC0pJHHX9PfFu/3XTBGAlmlPneKqsnhbHz9e+FpVSbQSwIWj1Cjysjkhgvaj9f1ybQ1+i0i0+nYLJOyyq1qD3PTj3xEurRJNjo9hjcb2C3P5UeD84zUxJBqNPC4kRpLBKsCtAdz++mLZfuytJE/iTMdyIg2oyD1PryenpjIBVqhHJCFTzsRvHQAixfSvXMvTI+p1BfwfBRjW1iVA9+nGWySkOFZR4bMqlK/AD/AC8H9RidPp9+qMGmZ4SC1ncxAAG7kHt/nDHo3SHnUabUyrp38JOyFAWdiP8Akff+1ZDrdNqA0MrOunWR9o8vUni1Hb57YKhdGFmOlsmTluoJXkivissQTaxZDqtOxVH/APCoNt/KQO9fph6dmRFp9HIZmaUcQWu67BN3Z5yt/wD1NqhC8KaVUXjaT2FdcZJQO9ZPCjVgjCXmitAg9+mHHoolffM6/wATmutDtx6/nitruRuxsH2hu1MMrBVZfwigA/5f1OI1UhTWELJueRiQJD0/x9MpMJiVH8JXhPINXYPT4+Mmnj08Crq5ZFQwszb64lc9AOO3fJrWNnZjpE2ndZNRqgY3VmAJLU3pzjw6BGZJInZbNLf0/Y9+cRqNQutM2oHJYgsv8pvtkQlnj1JeE7OKBbgr8Z1ceXYG6NpdboE0/gLFKX48RlW93P5/ussTQ6UTmSINBNIAWFnhebBH8vY89szIxNMPEZ0mkoNvKi6HQnp365p/ZjafTjVqJ11GqlFSSQ2u0HsLPIvi8RpJYJpZpZY11DKAsqInkX8VKau+b79LrLYWknRvusxU+JTGOMc3XHmugPbM7RR2I5BpUhSOTzHfTURz1F88dBjNNE0haAtIkwcsdz81dhSayLVGaNKJZG10gm8UrGADEjA2R0Ir3wYtPMjySCcQtKxKQqNxoGuffn99cbpFkhkh1EUYYJu3F/Kw79/k5oufH2tGrDfzYPC8YHqJuVMkaWRJKY7tqhdw4HQ/rk8TSENHO0hPJF0RVWKI/X5xskLIXEDN5TubkeYnA0IUcx7rK0iVYB789ucWmw5VgarU7NSGjYByAX8lgdP1+cD75I+6RpWYggMbHl9/y+mdeNpCtKqqVpiTztNda/fGeJEEznTilK0NtUCOvyPbCHDqSqkrbl8VXG6w1Cuxz3iRysyLt3x9LPUVfbBnjU6ZgkLKyKGFkD556f8AWKK74QInKActva1a/jB/Q19Aan7xIlTtKEFBxya45qu3tk8ul0v3TUSxg7idiEqRfHp2+ua50OphhaR9QqBVN2L32PjteSqiyq0MpYg2AE6Nx6/OFYZSVFun1UWp0wZAGoF1o7aN1XOUx8x+IibuOt0T65nQrWn8LdSBqXbwdoAs389srkPiaEoq2oAK0Oa4wXROSF6nwUGoWU7QsfiCnsG/++K/xkkmg3RTNrHeNJGVk2kll28UL4rntmjDHHqdW6NMj7kddoThOgs334vn1zK1OskSdWeBzGk4DR+GGDAc2B24F5TaNHsq1Wi00MUjbY0lZwQsdgyAkcewPBrI1ZYZRqRL4j+Y7LNjzAbSK7c3l0b6dnkkRHk8FxJ4cgqr5sc9hxkE6y+Ozx/xAyMWDVQPShXW8DHX0z0zCXSTmaSNSjFiSwsnkGunphSaBNR9n3AXjsW4c2QB3HpfbJoY49Wf4odWksrXBY9KB7fXKtNrtH4B03jHTqiMgUqe49Tx9MwXa6ECZz9lrqERwyHaWBG9WUmiSOCvx8Zmv4kOj8MyeJpjJZiRDfJvlgOmb+i1UEfiy6ChGqEOrAr5vYnj0zOiMZ8XVJu8faXQ2LUkcmuhHHbG1GTI4Y9XL9opsDxGmB3mwKWwVvkE/wBfXL4dD9pO8Ui6ilI3VRO01zagDn3x+n1um07NIYidRuCM0fmI4u/j/OWabTTw6ligZrav4ZKLXBFDm+nb1w6LKQLaiObSeAHLKBVMtAPRJNfv++ZKxy6hho0Z2jQg7QCQxJrcAemaGp+0tDo1mhljnZVmYClu2JPAPt719cy/tv7f+0oIlbSw/doi6jzlGkuulVQHf1vvg4uUuwQT8ItdLL94kjEjjba0xPDd29+Py7Zz7MVdXrW8d1XxxQLNzdXx78fW6xJ+1PtLUgyPLGsg8qR+AHWVj6g969Mig+2NTBOPEOkk2KygvBt//R4q/wAsqvibjRblSo+x0866GWeAxxiIgkr0KqOp/PIZfttZppYoIGVtx/iMaAHpVe36Zn/Z2oT7TcRpopnRArPKnmWM82pHWvcXmm/2TJDIqQDfG5LHwxW0fXpxnPKLjkjLjZq+LI2kXo7RqCFXkdPXJtSVWJFhcN5vOwPUf6zjIq6SlL7oGpRRokC/r/sYjRaDUPMolnjRSniLsNkc8CvnIqNgSS0ATO8/DmTfdW1Ke3xY/tmxoOSZSm0qatiSbrnMyLSoJFVyBs/4HbQ+PnNFRdu6ttMlbqu8avoE2mdlZYlDurbV4C7+QT357ZHJqQsRHgSutHcsTciu+X62USEaeCMvGpDKyj2v+2YcmokTVjTGVSd/U9w3T5/frg4uwR1D0Bk06lY3VFb+GLFt6kjJjPPPLtYpFbESO12PQfPv06Y6fRFnWRwzxxeUFFNX7V3sYU6IvhO1KkspLeJ5b4qzfwcdDNh6H7Rlm1MU08aRkLQ8u7xaHLXx+zlkurWCRZHQBHXhlG5cz9Qz6fXNDJGiRqB5FP8AT5zrauWZI410qRqFLIyDkg9Afr3zA4+gxTzRy7tMPCaUEM0g636en5ZFqZGjiYu5V2O0ADgf3/7x8yPLqHaaQtHGQzAMPr+/bJ9Ys7qaRTY2i683GFdlkkTQ6iWOTwr3RhNxIH6ZufZjx6eETSMIwFBBA/D/AI65jafRTyTq5UiOiAp4vt1+n55Q48DTeEFlXZ05BZj3v5zTqwSV4fQ6gjUBVkIZVG+918X+nOZXhCeCS5vDHmp5WoA3+Y79Mlhj1sTyGKnDKNyXZIPx+zi9VABHHJJFJTkgIebPf6YiWgUaIZfDO8RsXFdSfxY7RfxSoSiwktgvSqvi/ripYvKWRClgEi7rnmsFNRHotWrxKyoODuNn8vfL9qkZxZfLpdNqfEZPEArzgd+wodOPT3y3R/Z2nh0TM8gWNyFJbqD15HvWIbV6P7Q0jyRMElU224AWPbtkseqigkjiEm1iByWBBPpi/k1RLQV+xmhlaLU6nTNHIWctZN0eAOnPvif/AIkKyLFz4TAIQxAlXuTff6Y/7T+0D4RRXhlkCEBkAAXMRHnlRdzhBdk+/vlYqUlbKxN2f7Y0okMsLgyMAOUoLXeq5bnr9cztHqi+pIkJ1LdrJBPPX1yWaCRNTypZT2Ha+/58ZTFNF9nI0ssTPqrtB02iuuFxVUtsZI2ftD7UjijTRxRbZSLlLEEDg8WK5yMQEaEFNQeWoMOb59PXIIFbVxtJFvdlJkYqvUDv8DLtHPPI0aRLvNbi5H8p+ck48VhkkWSJNHCEMxJJvbQ3KPp1zIn+yzJOskTEmWyZHfof99MdKk6O/wBprq9hiblLIK8++Tj7V1OpfwZdSzxdb8Mf4s40FJamZo4dS2n36eRGBUbb6jr1zX07xSLFBMShYGju5+vyMjgSMuETTyMhUFQDwR7f4ysxQloyyGSiQvmJAHv39MT5KYdofEWDPFEwePbyN55yPUnU6bTsIwdrOSCB5qwyQ828OiHoV3AXZ/rl8jeInglqZ/5mHA+f85JPizO+jI0kj6KJY9LLLFKwBleq49L6VmxL9rah9BIineo4coRu+R/jMhIfB8lgbxdg3wPTPar7S02nkOm3AAIDuoHqLrKu5PBGkJ0EkMso3xObBO0yUxHqT/3nZRqWSPTyzDwwxLBUo/Hv85Lp9J4iu+7xGT8O/qo/xmgYZEginnYRqCTXUjtYx5UngV+y3wZGiDMVRzye9r2AP0xKahdROwmbzHkjdzXrjFLnTbJpSsMnBDEgA12+MlggEGvkutxoqoPUEdzkkrTMuzoCaedWPEPVRd+t165taHWRPMVRo/CAvz8kV7+mZunSB0XwySA3Upaqb6e1Y+PW/c4ZjFHtb/x/hvcT2/ritcgSKxOup3ahXUKl7tq0vXv++2dcqimSO9rpQZFFG/TJV0zwyLs1TRtId4gUUD8Gq6ds7DqRp9KulKOWQlhwDtG66rNxQj/QOo0EO1Gnk8TZIrDy7ivt64EmokkdkhKpERuNLZq6+n5YrUTLPM6PQ818gDK9LDBIpEkh3qvK9yMGpaOurYqCdtW7StErBfM/O5r7cdcRC8sZKLpndWPI23QOFJK0SvFS+GoNNVWDyOne/XEHXRshk2v5uKUnnoOP33yiVrAFJ1AbUiGedmO1aF/hrKU0LDTeQWoe7B8p6fl1zHWaOYKtEuBW2QHg+2Xwyu32f4fjmKNPMWa+3av30wNcQsbGzBmhkKbN3kAB8w+n74x0uokaVChLEDbYqx7j8+mZEevEEe+NDIrMATzQ/vWamk1qO7UAtKG20D2q+evbM4O7FZXvWOApw0lEgAn+va8ETu6LsIC/hYMOR8H/ADkcBSSRnOpdIwQWsArz1H6Zf4ug0GjRzLuRnKWynk80BQObiSYCadZ0ZtivCoPLixidSrPMsi0UA/ElWvpx+eHodVJNoJo3QpKr9wKYHpx6YLF/LAjSGR7JTufUC8HtDKxSaksj+IRtPRev1wyUTRhopChYWVroP8Zz7qYZDDLJtlq1dKoAep7dMWWMD01lgt8Hj5HHT88DWjE2t0c51sOojnDNW5grAH4GLGpngnC+JIZj5lUCrHt+uEUWKdpwm0u10ehH9ue+TSeAZQVidpDTcm9p9/8AWVS+wodHrInjRmD7nXhkANN6ms80km544nVWaQdj+d+n+cTGiR6y0IhYCmVTQPqcIN4LloA7RO545YA+mF14BIujlcxvCf47NfnUAEe3v85SdP4f2bEwVhIoJDXRYfGQ+CZ41WWcFdwKApTZcx/gpG1u92AXs/Px1ybQkv0Z+mleaNk5V2PkdTz8kVXT+vXOTzahpmiGkikahuYPSk+tdBWXahVlli8CN4gAfMo3cdyRnqi0gMkjBFCchE6GvT0xkwkkOo10mhbZPujBO9CfOt+3cfTFmUx6aRh/FAaw6t0sdfTAh+09PrdR4ETnwo2HRDdetjkc/OasSLpUkeWPaxbcENFV9GONLO0BEJ+z5Dfh6MyyUGsdOR2PQ4UP2YSHEjorbPOixlzXPFjoceuqaUkzM5CkEAMUJHwP753SuTrVTRKUZ3DNtPO3++BSDqMXUaZPvYBlZ9gDCTYFJB45H98t1EE6QRLFIz82WLUSPTpmt9p6Bo0XUOXDjigQAOOpPp7Zlrr3TTrI8WybnhTaEf2P+MMrsydrDG4Sf8Q3Dkgi/pWL+0UWP/5SMpVyP4XYGu2XRjTffUk1CsGYEni7w54NK67owSjeoIPHrlFOnYzViG08E2jSWXUq05UEHvx0BH54mE6oxOniLtB/8ddV+e2WLA2ljaeSJCwPG4eo6Y1ooVDOiI25RuA4IJwOZkjOkGkfw9zP05VT0P77cZkuNrsEpyz2Bf4fcjNiTSQxTGRl2SP1BOCqaXjdIo3EAvXPP9stCaj0ZqzKMxlRYmWmh48o5OHHoGm04fwlMtms0yNE72JYyT/+JuoYGtljmjVxqlahtoMBR6dRj/8ARvpULS9MU6mPYKdlcXsJNgEenpgpCZJC5LGQmwb5JyiTRxwQxrMys+47dnIJPOd000EalSTvceSj0By/LPxJ1umXLvSQNYUWea6eucLGRlUNYo2a6ZrSRRMJXGzzLtt+4A6/OZIi/iKgQ+Y0OeQMtCSkicotCSviqegbd0o49dOgiL2Q59Og9cEwsACDZugQemVwbDFJbEPt5rpXpWPKWYLGP2ZraZhMVDV8cnNr7PWFCsTlm8p3dOTmYZfE1JYKoA6mzWaOknLKprcwIHQH2vE+VtxG+NRTwPW6WQMoDK6KopWPIHp++chdHCKyoF2gtuo2OfXHsd5ZSHbnncPw/wCMHwXVVCfziwMSLaWjySfRK8atGzbiL56/j9PjLIdHtMbSSEwFQxoWQx6Ag+2Kl0qOxRW8y0CqmuPW++LmWVZArMxjA2gj0rv/AJyl2qTEqu0FPo4/4m2Q0rDbuXj259/7ZHK6lhHSkAV5B3yuRpI4LctsrzAnE+GRLZK7W5PJ4HpjQf2JNLwCYrvsPuHbiqGECVFFF3ECq7YiQupXcNwF1xwMZp0fUusMSAyymhzzlKwkpaGjiBwC3lvkA/rjhMEKPHdk9AOBeJ+6ajwll20j2A9fiI7Z1WBZYSdtEc30xGkxk2VOsbQEI1yFiGJFAZPsYMAw3Xwdo63zznQyCZm376NVfXLogNWqSjzPfN3xiN8R0rFaaCYRPG0VqPMGZr3V2H55Wk5DDhwv4m3NZUemKn8ddqHaGXnr2/frlMEiogIZVawNyjzMetfGRk70dKjsj76MYKg+VaBIFj+pyCLTO8z2AsYNbgb5Pv3xmq1h1RAk8hSy3nu/c/nk+o00zyWAyRAbgWrgcd/7Y0I0twEmaA06RCm8PkFb6X6DFmCTeFViw+br4zmkVQAJirMeVPWhxS1/3jyW1EW1Frd5Q5XbXP7vJu0x1qFSyvGg8ysRx04wPPqDu27EI5JJ59WPN4TzQxFkkYNIB1I4Px+/XJ+ZHDLtSM9CSdvxjRQGe1ClgJQdysOOT19r7YcQUPuYD1BY9PfGalfCiLL/ABN3Qc5GlqytHuVlILFlB5xlqA8Z9GdO/wBxLqVTkXQvd/3inbZGZUkUhSQQUFntntJ9ptJKm1AaBGxR+uH9qKNaqKY3TZ1Avn6Zx006kV/hnT6lpWqNNpC/hjBPPf8AfxjPs+eEald8W7noRyPeh/fBlWSBYk20AOa/FV56OFYtWWQ+IK/ETVc/16/lls4i6aMsMQtmcqR5kpbBPGLtdVppN4Z5CLHm8wFgXXONgkLxEmXcwHljcklff985LPqVNkRhUUURHxz1o/X+2RV9GYh9RDpFRp9MJCHsOzen8pr1zJmiSbVB4kWNfF583Hm9PYZVNIrIQI12nzDethfjIdssoiaTr4ixqtGzznd8SpWRm7NqGcxzQrGHPBXbtocdePz63liypvBc7iWsE9/nAn0sj6hIwqKUBUOTbV6Y+LTy79yxNaHj+HQr61nHJpl0jkslag+Eu1HPITj+uUaLUaVN8KRh5GBos1EWOp9awW00pl3NFtVRZAKir+uMX7IkkeVkRilA7lZeP16ZO16EdGiavUKrEdgyoaNjGPoFh1I1DyKEolqO4L+eSpI+lZVWKQqrUHaM9RXQgdMh1Oplm1VvNt2WPMxG75vriqLbwZOiv775nZQ1Bq3A8cdyv7u89HJF4jqFQNISd/IVvp1ByWCdLJ8PYAOAASHHbn9cTNroo3Zwu1SBSdPMffHUH0kG/SqTUJCwUyghjxYs89geuW6bVIY1STc0fAIb19eP65iLqGmVWmX8RLeUgBe3plbyLHEpVgzMPIqoLXNL4/BeR7XTXqGbyMABuLNZUDoK75PEv3uVXDxlgPMtbdtmsDXxQLqGk8QToVreF2+bqQQeTjlrSx/w41USgDa3K19O/TKJJRwydsoijVA0enWbxAlCxwPXGwRvGDGYz4kjUx9R3Gc+z2bwVebzMQVVd3C1zddvTHoWllpXoHzAN/J6ZGTaY4xUEYLpCm0N51rm+wvuMSrGRbicK3G4Hr9cZHLqkCARErG3T8Nj4zyKgYyAqrE87gOea6e2J0YbEF00gd5lJJs7jft2w9LHM2rXUSQgKQehN0OB9c9t3sIx4iCQUrHgDPJUUQTxRvHCKnB+RgTML1IUTTRx7ioJrmiOB+vXKTpJPDkggdYpFIFO1D36X+mIXT+KWkEVsSSrE1t/fJysq0lwnUEy7SwAI4F98LYGRaP7NLytLJKVhQHdIy0K6UO5wtRroJdL930bqxVhamOnIAoEEjDKyRTq26OYg/gLEDn1xZKziZvCj2tz1o10zXfYyQmPwGXYxtST0NUPWvnOSwtN4jxc3Y56/T1ySAmFiplEYJohgQct0kmyeJ2LvGyle4+T+/TC00GyqNYtLFbg2OPNlcMxOlfcgYs1FmWvqB0zP1EwkjZFKqo5D0CG9Pj4+cdpJGmbbKSkaUAqvyT/AGyTQKNDSkcFfLXKBTwvz89fjG6nkAWCWAB68/HpnE2wzuwC7ynV3NKK/rkE01xM8s7MD3UWAP64tWBazirMNQNqqYg9uGNDnp75qq8E6eDJGC8ilBR5+RfrefOvqkQyCKBmkcgmT1PTk+maOjeR9WshjPhwii11+vzjOLDJC9QRolEERkJVjtRlvbxz0yCWc7dw3v4v4uKo+mfQ/a6K0o1UDbiR+FW4v/GfPamE6gKzzgFW/EBx7/I/xhg0+wJtoTqNRNQRVDrQDWSOOeg63xmc5DQ+LI5dgPNGb4N9b/xls0qwu6QSqDu84HWunGShJH1BjiRCKuzyV9azphgGGNVu08exZHdOUYG16cj19PyxsOsmaB3BZ3J4282fY/H9sGfTJE8Ts0bAvt/H+EV2Hc/OHBBJG16nURBC5IKmqNeg4zOqN0cj0krG5UEu42EZebPUmstiMg1LGAO0KL5qFFV/tWM0ROomjkkaIjjcoanAPHt9c0Y2eDxNKY44gbIBqyb7++QnJvGNFkTSLqJttAMnIfoOnQfni3LSy3IjtIAGFsQB7X/bNGJiY/OUhPG7aKJHsP2cz555WKwxLQWgd6ij+/74I6K3ps/Z+r1DkKJB4W0EoOD16Z3WaiPS6pfFILSAbSRRUfv275N9natiqIE2UtNR68jNfWwDVaVHXaWQhhRq7689cVpJ6I3ouKVUkJJsEhFAF7SfX8sZHIoVnADOb7X/AHzJ1G6EuwbzfhdozxXz7f2xMM80kKxK5PiN2YAk3xiuHoUrNObVQs6iKdY06SO58vx84MMWmjfZLGkqbtyv0LV1/LEyx+CNlmRkAsnqD6/pkk7iN2UblkWvxNV3xWLxHSVDZzC0rSsSodgUJBWx8/TH6Zkj1mpQuI1kdZYwqk77sN8cr07XmcZ0JjQ2JEUqtnao9+vX5zM260aqMS6jw0VtlA3uDf7rKRi3aC0qPpZYWgYhIpBVFaYAD9/TEeJqN0SOwVxVK1kHn1xcsBSNVLylQthmuga/7xnjtp4pFkCOpAAC88/v+2BgQGqXXIEKON68lkAavbriGOr1WmI1CzWBah5hzV9gOf6ZRGilizrEOTtjc3xzVnGCdw28spQqVDMNoW+379cHKhqII9BNHIkjkrvkqlW67ng4yJNRq9W8QdlCWGlRQdzHmvf9cFNWXZ4iJPu98DuT3vg8c/pl32e+lV2S/ItvQFcgevzhbYzZM2j041MSamNd6Ju3bg3APU+v154xwdfEImhRRu8oi5Jo9Rjmj0xVpECNtAbxXJ2j/OKXUaRJWMk6uRR8vBDDv0uvfjF1gtBs+2dWkG2o9q7SQCOxJv2xzeZ+ZHj5tSeCeO36e+DFPHrVbS+F/EjPDqv4Ce5Hp8ZK6yxaiQO8jtGD4rHsevTp0wUBbgepR0fZy0b0SRIeeTfPHJ5rt+WQ62Jl3ytNJGsYsA8mj+nSucdPqBMECimI2tYsKDXAHzi9fp5pGEmjXwI9gDAG7rrx3onv65RP7G4i1j1ksm6RNunPKxLJw/ua+MdPDp0bxfE8w5UK97fY4gbWgcSzGPwugB/ERf8AvtgaWcapiwAiQXbVyB2P798bsFM4iBtV4skKsBGUEXUWR0HviNVDNHH48CNEqHwgjou4UATx+fOacczaWdmTUmQbQzbwCQQAOD04/uMfP4cssryanxpT/DVpY+Qp54o9jfqMKkK7R80ugfxl+8EMrLasxNhfbDi0mp02oRY13l+nJA46mvTp/jPopPs8TVKZo3eYliEAULQ5HXpVVx373giCC2khcBKoqF23XHU85T/r4JWmbJFppIxGKAi6mySfnnnpx0xomZhskBjEvJNncQavn0IHTPCKFJWlf8DrZq94FjLI/BklbaiSxgbim3m+5PyO3riWFpkr+BExiRTLIVFbUog1x05uieue1rmAxqxkXgKAorcPSr63lGuaPSzooj8rWANoL8GiSb6Xz/fEfcnnLswtkNfJ4A47ex/XDQE2Vf8Ax4nJ07ybOYy0qHcOOefQH8sztRqI73NZaQArTUQb5od7xuo1kkaMJIpI1ZdiuWZQvzfQ3kT7HjLSFJA34mFdauwTz3r2wqPrMmPbXxeKZIFBVAVcAVv+e1/4zsMaykeISgPlZStBSOQL6Ht1ySbx5dPsBaNGpgi9BzVmuvthyIo0pbxGCOaZ2JIPPFgfi/PjNQyKF0sA1kRhljanIXaeK9SenXOTUqpLtuE9GSPbs9RXr6HOwSaXTLG5RZHYGrs7gvHH9uOuXrNFMpgXcX8PlaHl4s2Rwel4srDZnt4UHgyeGSz0EX+VhVe/f2/LHTPKkI+6SP4rAFnU2OewN9PnBSP75p4BGy+SyNw5NnqSBx9fbKBHqIF8cRSIiuFoKFDWO45798FmDXTtHoLjZvG8UmR7Cn8P4T69z+WTJq/u4ijJIdJbCi1DGubPft8YyPVJKw0zQySsXEviUoIe67jnBeKZdXFHJsJs1xwet8j5+cH9CutCk0ULO2o2yyq8hLPFISVHQ0fTKhJFCoA0zy7+qAgkA92HtXbjB06GPUxxFQrScbm4CAdT+++d+0dNI8sMialGuQqSzClA4rqaXjqcGvsHouCZZ4UkhgD+GacXyK6k1wTg6T7SE6OTHp9KDEyxiRuXFfp0ybSeLHCZghRNRN4ZU1ytG/iufyz2p0yalJZ4opDDpiUB4LOp5DdOn798aqZh32XBpl1qAy+GN25nKhlY0eQObI9/XJtYW1X2tNHGBJN4h8PZI3Cn+2ZEerihnWRRKzAlloirqvTKYn1Eqh9MREqg2Q22iRyARzXf5ynFrWZO2UCFptXL48t7QtQkkAmuWruc0ZG1H3ZXpUZF3AqooCgPj88y4QsrRytI0k68GjzfFDgccZXJqoVCtP1AZZAwoXXFDp1/PJS1jJAGQaowztJKqqQTbWAe/HTL9br4PtbUEhWUxjzNYK9ABweL+mZmq1Mc/wBlyaeEyKWAtmWj2q8tj+zln+yFELu7BaIi53N75nSWga0zmb7hqDpVgLqbDpfIBo8Hj2w4tPI0qFIjMHkYOqgMCOv549NMkECvOGDji6G0cdD/AHxcbyEoV3oqSKUdV5UEAWPy/XGu+givAGkmneBQR5o6PTuKr3PbKPsvRt4ZDsskm6lEa/hB7c/vrjPtTTyCJHjktK3PtYEg+4H76Yj7P1H2kNTJNpo53batuqjaL43Ht+ebZIXpG0mtEIkhcEzKF2eck+ljuef1wHlk+/6cyU4DEMrkKb7X/X5w4/s+dIvvOsjZJGBYHfVknpxjpB4EaxjT6aRXI5dBzzxwffJOrAv0aehlGs8uqRKiF2D5WI6kevzlbzoYPEjHmNKB+EkXmbp5gkhQoHYcVs2gewzSmCDRsyoqPHRXndRPXF7Iz7FSyMm7wzuU0BfB9OuDHtQ+YOPMS3v7etYTxh4/FBNha23xeZ6ahiBblb8tXV11IxboZK0PmSQR0pCKo/k68ehGJIKRh5w79a81np6f2wdaZ42VYH3rsrjr174cURj1qtKVbfRY+4GL+iiWC32zJIkWzwpV/E/B+nr0OFG8ejikbaylRSle46gf16YGoB0rKkjGWNiV8lDwxZPPPv2zusFMxV5WjRBuaro1+uGmFDZZS8LuSrAsASb6e2TeE00NbHVWfzSIDYo2P2fXIYvtZm1MkbxrLDu4IULuIHf9c0F8VL+7MqCT8IHT4Pr6fTGprsHR4arVyTxTwoqoJHDiqWz1PP75zRh1J8OKOSQsw6sgoVV3yecxtCGh1OpjYExLOWB8WiOvb34/LNfxdPPpjCoQVRCqws97F5mJJeUEj6XS/aLTRISzIVtWIuhur3zEZ9S8sraKGSWSRjJIVUbQOeL45rt65qB0OtSJ/KiHcBGeBxz85nTSnTnUDxj5iWiVhW2xY57dDhTsMVR5hqvtJd3li3oY/EehxQPJvnji/fIdJFslXRiRXYxNNQO4XXCk9ByMRridVJqW2s6LIq7V5CmuR8Xik+1Z1vSQadVCIN558wUkjp165VRsptYNgn1MwSaSSONAKkUEgpZK9D9Dftm9oIpn1DMXjkKPtIoN0BAa6631rtnxWlm1I3mGMqrIA7A8ggg2Paj+WaH/AL0/2Xr4dQ06tGSx+7jzGieDuxn8e4LK6Pr0+ztKsT6WUWzxqtVQYjofTrjNPoVh04DpGs6rW7/69QP65hp/6wgn0+5keEhSaCbjV9ieDmVN/wCsPtFqCRRqNlBiST810/tmUG/CVSN/U/aenh0pmbSHTQ6YkOziwOK/EOt/n85mfZ//AK30WtZU1SywrGhJJv8AiV0FD065havWyfbk0MWq1HgrZei4Ck0B06cf3yjQ/Zc+n1ayfZP2qI5Qmw0VDc9QPnKqMUvy7C4/R9Hpf/VH2GdKJHaMU5LK8RsH1A5vqebz5v7X+1oftXV74VnEvCIqR2XUNYA9Djh9j7X3a7WRQafeZZQrqXeuwrqen55dD9oxI76jR/Z2n0urZCgnjNeXrQXoDXF9cX8I6OotdGW//p77apvD0WrRVo0VphYzzf8Apqd4l1GrebTwJ5HeUm+vRVq+v05zU0/21rJYQzFzMppiTTKOxP77DFaubWawxRmRnlLBVocEHofbF/6yTpB4t9jPsz7d0f2bpW0kWkWON3L7hZJ56n14zWh1UGpBl+82rWgG6tt9q9a758oIngUVHbJZZ2HXnnH6bSyNYkRovIrgqwoA9DXfi/fEkk9sbgj6j7N1Wk1YOiIQ0vemv3+a/pnp549LLGsW1NQho7VAZlJ4/ofzzH0mllil2Qt/BjCu9C7BsAX35GXtDI0uojCmSR18pYUFPUWa6fGSbroXirKwoiLzrOIdwsMU37h0PHTrlkLRBXQMVUlXNCqIrr/XMTTySeAviRtu5sOAosdaH54cuoMRSDl7IZwW98VSaM4WbgmTT03/AC7mgR6cd/658V9q6h9Nr5E3MpK0Ds9OQQfWxmnq9RLNMFUOqkmtwJLfX99MgctqnlEoMkLN5malHShY9bOUjLRow4or+z/tOQqyzz0hcBLblwevPQ8ZdJqPvwjR4JNqNtHNCvjEaP7P050gSVdsydHAJCkDscqjinVozNLQUi/LZIA7evOJJrwV0J18k080atA8bBNsgBvcB0NetZP91iWDeY5VcP5OaAFc8D46jNGcnxvGRxK1Hab5A7/Q4mXUOmkZYnhYSWu1nphx29sHKwp9Ii1WrEemieLbLK9gbTZ2+nr0yBNWZ2WSO2iVjvs2VPU5PIgl1A8RzG97TVdeg+M9p3CSFinhlyaKeo/zlVFJFVSNGPVus8YdBuYE3+hHsPfBl+0JTGDpyq7ON23gAet8fGeMKfaD0JTCimmuhZP65Nq/siVdKDp5xLKzEGj+A9efX6dLxEot6FtF8GrUyO8RERbhQnQ+hHtf9cm1JcrGZllkkbyhkA79vc5ZpPs9/s7QpJqVDy7QzNuop6V6ZzWamRdAIJIfDdn8hJtgau7xUkpYC76Il00UyvNLqZEcAODXQdD81xxj/s0aEFpDrI1B3K0bpyfcWMUhR/EKEFVU0G9L569/0yDUOsOmaUMAjEWBzyD0ykbboLVjNdBErtPBNEUNih5ST6kcZkOsmo2qzEgWV28gXm19ifZUuqnOokaohyt2oYdOv79M1vs77K0Kzqs+pA1EgO1AaAJB6HpeWjLi67ITaMCJWjUSMUWuCrc2ffJdYk8kpUbYtq9KIDHvQOfT6v7DSLSbfvQOp3HduoE16ev+sXofs9JpQROVQHgsljjr7j/eTfyqLsdNNGNod80ynUBioo2eLIzk+ll1chYyckEAWRtHb880dZp5hIH0kAkijNVHyfUkj88U6ONMrGMRkk0BY3Hr07YFN3yQ9pqjOn0epjlRCLZV6RnqD1HH75zRi1Ad9hSSFUa7L8X7HtgKkbaySKSSGNzVMjmifn6/pgQEHcZJVQIdop7Ykng0e2M3a0BT/wC3pNK8djaCLVPNwOOffM5NKsOqR1UkFyCTxx2/LNeGF3WfbMJmJoWBbV75mTMBIoKjc77X44BOLCTtqwopiddPvhDkgXwGo4cQKxliN+40QW2/n+uGs6R6QhQhEH4127t319vTE67XQzQqVddilRsPYdOnycWm2H0OCOE6iOdyoVedoBrrl8k+naESeOwCeVRtvcvzmVo3LRshRRXlpDZr0+MDU6wDTrpnktiNq8dPUf0wODbozDl1MjSDwoysbHlRyQOn5YWj+x5V1DTyoJHkWwANxq/zyKCVEXaysrFq3A981pZ9Rq9ciNGaRVqv5q9PQ47uOIUnm0yQSsI0cOCRJuWh7EYel0x2tE5aQSi2RDwvp+uUyfeJvtNoJnkkjLMTvKg7e1EfTr75RqdDoYSdRFG7buKLeW/pit16DkSJC8MAiA8qg2hNgdPy5ybVeGdTHBKJN0RALACgPf8AXKdPq4wCjhk8u6pCDu+uSzzDUMo4o3ar1I9/U5o3eh9LNO8engYKrRliedxO70+mUjUTywyfdQZJQm7Z1tfg9D1/1mU2okiKQmEPZJ3lei11+ckn1sxlAhP3eaEglonsAjgdexxoQbditWacWvl0MPh62aNdUzLJEhW1qqs9/pmfLqJNVKzLI1yHzsObPuf8ZGfCmll1PC6i7Bu+fX/WXr9q+JpqaKNivPA8w98o41qQCrSxxQoRqX/GLU8lQfk5rRmD7oHC03/K/Mf365kx6+JuFotKKKut/v5xv8VNOUQyR+G1qWXgfX0znkm+wlWpbxFhK7Apv8Z4bmvpiJptNA6xlECjhSP5uvbuMR95dwAg/GNrWevuPnFSz6UARxuqqpG/xeoPt7euNGLB0XOYpXWVUZWsgkcAiv8AWdXw/BeCRRs3USBwxHNfOQxak7S7SbgKUNQv6HKzI8+0FxIwYM1qPN8ZnE1l0EejDGc3GB5UFbgD6V6fTAdIo5lqFlkYDxQAGQ+/sO2N+yIV1kojYXLzt4ojvyRlGpSNZJJgGUadqII22P7j3zU+ybe0ZWomKK0CgLpz3Vbu+1jrk+kad9RIkYQwQsGY1x80e/pnppE1OnkiYmSISB1O6jzzRPqMZpXkTVGcSqqGwz1fPTzDGfRjSVYNOBGjkt/MpN0D/TriGiT7suokkkl1MBEbdQIxf4lGTaONTrFnSBVnawQvRh7e2X6ltTMxigiOmjA80rGr9eO/0yaVMzAR/ERo9I0MskQtiTRf4B7YLqus2mQBXiBDozbSprih3Gch0+j00BEbBQF43HlmGKmjlYRyF5HA8q0bNVffrmdDIU6iceMfCCWPA2ScluhH154xaeCGji+7FZSp3FjxXtX7GE/hwqCkQJL3VEhLHI/TIptdslaVzUbEjYEKk/XtlEuXQbo0EhQ277AwB2sxsk+oyf7qtFI+RVnZ/Kfj14+cXpNVI+niiXaEQ+dQL4PWvf2w21Yi1TncFWNTtP8Aya+/0+c1NYa/Tmq8RtUiktAvBscAtXJ/1mhpYv4UYG4SgBlfknn0PpmVq5JXmSR5C1DcVABPTkg5r6aRfCjD74w68s3S8EuhWS65H+8QNFOXcrvJC0U9eM7FrV+05GjQGJ4/xXX6XWBqo2Z/EVCXb/8ADkqifQHFRhjKrJI0bg8C7vrQ9698yqg1ZqR6X7M+zAGWaCLUnm2IFjvx6Ynl2YzN5n6FHUhvcC+eKzL2PHq1lZCy2VZv+QI7jPNqN0xaREVo7IuOiRX68YWuRuJtTz6fRQltO3j2hA8tkev5Zkw/anhOoMJVyPKHY+YeoI5GJTV7tMwQfyEA3XF/rk5nhWFFMfjRpbXzwcMYV2g0X6zXamTTpE7StFzTFrs+575GdQQGYTSGSMChGCu04veh2bJCeLK3Ve3xlcenlOnSdnHmJ3UaP5/vpjOl2GkuiGdvvBDM3I4sHp/rGaTUalFKSiSSEnawHIFc1856eJIpPCicyEH8VA17ZR9noYeZWNoQPXd149sZtKJjwlEsZYEzxkBWjogoTxfxmlqI5VhiaBVcH8SWCSPbtkseiWSbei+C3U7FoN/rHavxtPCqCGMk87lXZvaxyfbEx9CsydVBqNbM8Jj2iPne5Cn4/wCsi1f2ZMgZtthHoJXJHW/jNvVkSxsZW8B0a7U2AvpfreSSbZo3lmiDArUIiNivXKxm10ZqzNn0Ucx8YB5JSvRBxx3HfEw6CR9OxVGRACx3DpXqM1NLLGpEJjAar3Hj65RqPD1OneFP4iBaK2fryMb/AKyWAcUY87adNIsmlgeLjzMzX9R6GxkimOWcaiNx4u6iu2r+vTCea0XTsrx6foEJpvp++cqk2af7NWBGgkTTtcUqpUvPP1H9P0zpX4om3bFal/FYxKvgxn8QTkBicztcqpqtvAVRt4Fc+uXQs51BkmhLNX8tAk/5yDXKx1D7CCo4LA8nji/f2x/jW0CbwJmVlRdyllbkk884o6hQbIUsOAStXi4vOKI572a/LDmh3yqsYJC9itGsskk9JuVrBfhMdO0kV+ZqNX84yHUvBGp28udp91xsCSJAw2OgYeVxRr6+mL0/Mbo0ixsjWOeT/bM3a0CTTK9HumWVBARxRYA+1E5paYJTq4AcEbmZbU+1/OZCTPe6MNb+YNvII+c0G1qiJI0aRQV5s9G78+/tnN8kX4Xi8C1Gn8BvEfTpUfLEP+K/bIJGLv4qnaFIG6+voOeuFNqvEIDnzR2A1kkn/vM8ys6FmNluDxwcp8cHWizkkHr5U8fYBaMfNtUcnvXrnkUrGHVQzEG1Yc/TJSQGtAbJ4J7fGOlQlNrxbDQa9/X3A750VSSOflbbFwGM6r/xCRNpI8SwPk1z1/PG6VlfWONQFhjZwW2jbR9q6ZTofsueCWCcRrIH5G6il3wD6YzXaWKKeWMnxCGKWWohr639PjNKaukLGLq2Tyax5dkJnPhxf+NSKo9PTE7BtLBma+QtjjH61C0YKESkoC/mLEH6/usmWPUSru8MsByetZlVYFvQ4wPF3OVAY2Aorv8Ap8ZedSTCYliAPqor6flmWZNlqQR7B659coRpIpLdfEZgVWh3I/fXFlGzRlRSZNxKBvK543IbI9/bFmNmnYgKFC0NwBv3H6ZzxlRgpdSzclY+nPrj2gGzaHKtVUB0698T/JTsKLT1HudfNusGg10ef30yklphHHKLRqawvDHt81znNPGhjLeMwBQ2AvX0HfEbGe+Coqyy80SeBfFX3+uSesYbqGhglVXJYhbJQjlvX99shM7JJahlJPVpK/YwXVhCY/IYg3nH8y+g9T0xcMRSXlFA77icrGKSEcnZqaiCJlWVnXxWXovP6+vxi5I1Gn8ZI6jDbFPHXv8AusmaM7GDSgbuKr+mcjafcIBKdg4HPQYijnY1/oe03iNTMygf8RYvuT+mEu2RmLOLY7eB2wdNHHO+zddXZA+uMHhrSFio67hwfbFdLEMhyKEkXwqQoKsH8zhpqizcs3JtiSOa4sZKEALOpDL6cj6++Mj0sSxKZRISOrAWOb7H6YjS9CmyzVah/CFfxQPwlT7+ucRotp2kByOW3WT7YpiqIyr+BR3FgNgwsgmSVSFRqVlVSQoPUnEUcGstVvvK+Gg2r3Fc8e/+MWIiysdpCVRLAfXn0yjxApeNSFTd+BQacdq9SefnOovgGzTSKd6KTaoR6n+Y9fjJ3RiWTQ6RAZdXMscbAbIlFv8ANdAD6nM7W67Ts8Gm00IjWHUqQ7tbHn1vp9MonuScyGVF3g7j1BA7cZjw7n+0olki4M6+VRQPOdfxRvWyM34fV6v7SeM3BOJFILEIK2/QcdfXOfZzS/akwiifaz8kN09TnD9nLF/5wtLyATe4fA7ZKNZLpNU2ogqPdQDKvND0zkSjJVEvqN3WaY/ZTIZnWSQiwFblszZvtFzaIAvicN7ewyeX7SGrkLyhyy/+Rya28/vgZLLrEnIKqRt4DE/1zR+J3qM5YMMkoIQzEIByQSAMom+0NTJCyQy70Pl2sAePg/GRrNtKbhuLgrtPAPvnHUedwxjXkhQOh+crx+xSiDWjRRXNpYrPO4Cj39PXCeXR/aqAnTKgFEhGa5D0r6ZBLq0RN7MSzg/hB/M33xem1W3UhnNgmuBVAY3B/wCl2C/DZlj0UKotBDuAKAHyj1Nk84g6RKUoxdVJpif6+nOcm1kEhdkYOhIoEkMTVXf9snml8OSFQ/kduHQ+Uf1OJGMhsoo1KGZULr4TbLQX1PT/AKwNKr2iu0gIYId1ebi8RKVTVKtbzILqRtoI9c2tQ8bpZkV3CglVG3ZxWaT4pIydgxwtAUaNgyv5jbXx2v2xgUSK84dC+6wASoI6m/Q5I0jyzeEAFhJAqSrAAoHnplS6ZlYtEdyLx5uoHcn2yLzsaJ1ZZWgMYVYlsErYNntubqcWNv3lYaSMEDv+Fu9e9YxZVUmRArc+VSACDXb1yXUQzPOrTJA1i+T5hfr65lo3RSk6okkElNs5DHih24980YUV497bdl8AIOff8vXMJxJ4TxoFjUtbrYpq7fT8862okaLwgyuhUBW/tZ5wv476BZ9RFq9NpYTDJL5RyCPxA1wB++2TRvE0kqgeHvThFrzntye3fjMNhKsP3jdJsHBLH/GWDUGX7M3wOBI1h32+Yfv1ybhQVQzWzNGWdoyFW783FYlhO6qXFNKARt4AUdh+mB4kcyqoZi7MCA3O0DufrfbH6vUljFGRvRF5rqOmboZEUo2yBNw9WK817nOjVJp5BtYy7qDKCTfav65ZqpoDBvCRrEBtXYAA5Pv1OYz+HJqlKMVU2WFVR9PgcZSH5divDYg8ORDpWVXRjuHPJazX9c0oYU2BSjRsSbQ9RfY++ZMMrH7OTa43B7WwARXf/eayfaQ+0NTHqQ21wux/Kdp56/v3yU0FNlzKH0gi3gMD5hwfpi5I9PHGkUEQmc8bV5Cm+Ocj++kQyXQYtQOy77X8ZO2rKabcxrdY44b6d/nJKLMirTQxGZzrBsh3Hpyxr/vKpFgMCrBqf4RBEahrdj8V8/GfK6jV6zUsJoC5iUgFj5QxPYD1/wAZq6bVTNEqbCzPx3Knv/TKSg1oeza08sEmmKSBAEChXbhT9cyvtiALqXiAaRAtqiDksfTjuDgaz7SRlaARSBFcG93CdBx8Yeo0Wq+0mmnR0iryAJZB4ot+mJHHbNR8/q9PFtjCRNASaYAkkexxcQSSRSCYlX/ybV6+nHp0zRn+yxQhWRpCpAckda9P33zn/tkTOds4SPfyE4sj5zrXyKuxeL+gJoTIisS52XsbYdt2OAfXGxzRvtSaKkUgSRhaLN7nGarQypDQdw9b1JN2evTucn1MGpjCm/OWLSbgbJ+PyOImmM7KINe2mlYiRHl2hBtIO4HtftgJ9os2sDM5O1qZlHI9f+szZNIUACFlsEja9hj7jtnUAicSRtJvVtwc0QGHfG4RFVo+mmuJ61kZUlNysjCuenTq2PSp9NFKSpoH8ZKkn9/nmHpI9SkjSzXMoAI827rx9P69M2jGE0/8WKmZutk+3J7ZzySTD/SuNoIEWRiNw48MckdyT9Ms0OsXWRU7qAP5T3r0vtmHMscY8RpAxU3w9Wc5ptUyOiSivFFL2K83dn3xWssXjZX9qaUSBY0siQ22w/iJ6fvpeRrpxp5IwoPhglgd5J61zXpWXTSKNRtb/wAisAUdiATQ6A9u+TsitMDH/CJ5ZiNw3fHbMngyDmmkI2xM0YLVz/PwOf7YJif8eoSMX+Atz4h6V85A+uk0+tVHij8NUspIC319uM0odXH4rQsIkMnIVRW09fTjiue2ZprQ9Hp/AigWvKyi2a/KQPoffI9a/wD8d2YM6MA38JKuubs5XJH4kIjfUeIWUtt2XXSh+X7vJtTp0gikkqTxPCPLcgdRdeldL65o9gNCSMzwweYbT5gqqSCMWyaZxYQs4QKu0Dyi+5z2jmafSxbZHHQAA8NfOM+0XaKFI5VjIJpV/Cb+T0wO7AiM+ARJqPDJ2NSgkjb2/POhlnQtIpVilqbsDt06YZSNohHKS3hLdVZ3cH6/5yWOArE08MpboxB4C8dSB75qHsrZ9Qi70BEjHY/F1+6yLwalLiYPBW1l/CBfb/8AL7etY6OZnSSKVi8m4bN4q79r6Y6OSBdMzRJ/EV68N13FgQb+ld8KdAdk0MOomiEQmECF6J2+UD6Y6EtBOqjw4tPuF8fTcT19fQc4qaRzHJEznR7kL+cECh1H16dPTOadEk2xEkP4QkDbgbIINepX29jjeABaI6bVO2nYRwuSVBshz2qu+dlkMThJNT4KmyVkQ2Se3rjL/gpeqTwAxIocBjRsVz/jJNXEfvyNtlltW8j8i+vGZK3owxpHknQxOisrcyMu4uD34+e+dYS6LSvEXRkRjbuSNrcdL/xkuoeWGf7wNKHoL57AUnrkceoXVar+IVjtwWFE/wBevxjqOA9KJNSsisGXbQpRu20DVWK7e2Ak/ibHIkZidjsKFg9fL9Ml+0IncxtqD59tAjqea/tj49LOFhYt4cO0EMBdD/P98eklYbfRrwbFR4ZL2AggUA49L59O2HA9IEWitWpujXexmfCESViSjbuC20+UV1x8kz+KylbpAQSN13/N15OS46BtmnBNGV5jSi1sVY8E+o74wSafeY94bg7lUb2ocjjuO+YB+1XEfhJtDmwCRbWCMD/3OWZ7QMWCBQENFff9MP8AzfYrNKc/Z27+Fp22l+S01hvfpfIxM2qZUaGIrEvmAZ+ABZrk9jXvmejifXNLI17uNity1/nXGO1EfkEw2blP4JiSCP8AiOar4ONxV6MmWQ6sywBo3hYowJ8wLE+3vz+Ryvx51hBQxlUUnpZYc0CR++My9KZ1j3RwKFJ4LrwQPc9/85foiJL1E6F2F7U39Byb9BzQxJKtMdhkbUqyzPskaMlRIPxEjvfpx27ZFqPu0GgbSTMw3G6VhQrv8EjNqbRSxaddQNN4hAoO7+UD54yafSCSPY8Ik3pe2Py7hya/MdfjAp6D+HysLbHK2s6Hynjgj29MpSePTeF4c7MHa2V6pVs9un/eNfRpp51jjEschLUS3J9Onp3+MnGnaEyAqJaHO9rpj0Neg/3nTyTE4MtUEc0Cym5XjIYX/KD2A4x2iaXTQjUw6d41YGFSGoMzGrHrzkmn0VauNmDiEEESKhANjnt0zRh1EUehm/ivIifgCt5VYimHAv59MR0HQgw2DdYbeNpR+AbA5F1ffi6xet1sc7+AqSzuu4u28MP0HQcd8lR/u+mYkAEcRwNQLceY3ziCZ55d5LaeEKXYJ0Y9hXHOKojGgNSsaou5PDPDqi0EHTzHjnr1xg1MiahjJ5AnCb5KN1Xb8+mL+0dZJq/skxmNNp5ISXyrXWwOvNZ8+j6pfDhfYUUElXFVz298aMOSBZuS/aOr2RpHMqFTzsG1r/Wsdp/tB5Nb4zlAFZgVlBoBVHzd305zG2qquyvIoceVGXhj2HHfPIKKeKf4RXd5G3MxPRT6V3w8FQTXOrjmeVCBtcGTY6kWwBNgDpx64uMvqNNFpdOVsyGTYppStUPkij1zv2WuuaVvAiVYwCkhJ2qAB3/fOUfZkOm+/adXmqRwAdo2luDYP6ZN50FMz2+wpxq1lJMSOaHhkXzjX07pstVLxrYtTtI9vXNqXVysQhcSBrrcbVew+b+tZlfaDCOcptpSAAWBqx2HXEU5SdMZUg4YFEeojkZRvULQQDYR++uTT6SS1eMkkm6JHP063wemWjVGDVrOyBlZt0gRaA9P3eeKK8iS6dSpknYqfxeWx0Xnkf3zW7CN+zdPoxDIjACVl3IGPDV2us0tMIjG6w+RmO405IBBySHRtP8AaXjREaYX5IpjvcjuKB4rk/llb6yOF0hcFoCpZZ0TdQrp06/0xHG2TcvoU8UkkYgtRDJu80d2eL6Vkeo+yJdNKjmSRfOtEGyeeaH5ZoR/amgJ2HWSebdysZAAPqegyP7Q1g+0NU6aZYqjYKk6TfxGA4HBFAX+eNGLSBybY77hAYJtTSyMV2Wp5Nke2DoVlXVK0UboIdpcIaBFEiyOOP75bpdPBNDFJNPtWJnVgW3Dg88nn6YhZ4YPFb70F4KJJH5WPXkD++A3K0an2i4aNSzeGqAseQb6V1/xkWmUatlkfewcbYwV27eb+CfywdTHBqon1ImMjQP5ySKLdAPasgSZopeZGoPbxxycfkP64suzQWGrB4JgkSaM+IHN+vHt3+ceshWh4rKp5VUUc3k0R2RsSpLl6AQ+YKOvX+uc1km2VhCpkKNwpG7t0v8ATAgNW6NSOQeMsKiu4sXY/wA5NrYFWbw0AVyNwN9Ocx5PtHUQiwArkguFJscj0/XL9bqml0yNE+xxZDOPjM2qMotM9CYJk3sxjo3t7HrjFQMDIrHyjoOnr275HFqWmCmUlC3UBq56c+o5w3ZZdOyNINzqSdh5NdrydaPTDdGlrUsocr1BJ83Svp8ZJO+mXTqHiEMoBLEMRyf6jnrjHSaNojsJqyHWwPSsn1qNPC8k25lNqaA4AI/P/eOmZInm+7Q61HgQXvCRyCjuYi+noOOuO1UrqI6meNQpLH+Zibv+nXJF3rCjBFXaw2M1gjr3POPHhSx7goiEaMhIIayQe/br3xmPRNLNqNHEY9UR4zEbGQbt4vy1fqDlmn1GoWdY2j4RS42ADj347E85kSCF9Qp8TxFWlV7/AJQeW7eubujBGmZFbzhq5I2jg9fbvjSSB4L+0ZymuZ1USFDSshr1rnpXOJOqmj3xeEsgkpLeQm16106EEYj7R1KDwkhiVCVBMZNHcSbN9+f0x32MjyaqFGlRogS8ilgAvl/zmUaNnELRbp9Os2nhiWSWldGsbTVCgOD074jQBpEZJ5HSQ7kJYDdypFA165raguZoi+xQGDExoACAT71fXp1zpiSJ/vMKPMszNK0qLyCRX055zKQtipoIn0yw6dUXZDtWVgVG5eOR8V1z53XfZAEmodQSoAdN9HeCaJBHpn1srtGu10dC7hgSRZPHU9++LXTLqNTCImDGPg7gpP5UKHU9+uGE2hLPl4NLp4WheYtIFbbJHXJ45AH764M+gEsKJA0Z2eQ8bWFgk3foM+im0hh2LJGrRyAOSiAstNwR69775m/d63PFA7QCQhty/j9BXageuNzYU7MfQ/ZyaiKlX+NuJJJ8tAevzlcf2fqN8c+5g0dAE32PFd+OMIRSxzIjEwbm5WzQHIy3WStFoZIZD4jpt47jt26+v1wynJvBirUJFr9eNUNkml05TxHIHU8Gl9OvbI4dNHp9KDIvjPGxLIFIpLuiaHtziFZikb6dW2K6xSqjjzHkm/pjdctJpZ408SMsYL8Tyr6WSfWsRp9BWBjTBHk1K0QeAA1nnpkoOwyPM8iFWHKiqPWvY519ZFFpPEcCJiwI2te1vQiz2GInlGrk3PS2KAFlj6fN/wBsyT9HD1MisabUsQwtrH4hx16ZXFKEQMZAZgVWN424PZQfQ136cZnR/dxIviyEE8ojC/z/AHxmho5tMuoXZSnkGQDofX39BhkqVClmiXVPqiznmSbyryAAOD89Tm5Dp45SrlrKBgNpJog9ffIdJ40pkSJlOyvOwPHqB6/298KCeVYU2rvslTtHI57fWsixGmHrATLCj7XgkVt1DzNx1Hof8ZB9pFzPEocSLMlq10VJFn86w9UD4bRxjzoAee3Juv0yCHQaydy+oCURUZW16X6d8yp9jRVDkL+A0yyqJ4iQiknnt/TIr1OyYM8am2BhdQbYj369sv00cu4JJIkngPuHFXQo384Oolk1CXXiKXBSJIgCvtfpXc4ydDMXpNY+nhO/TLIAoDIt0GPPU+n9OM09PPsXbqHDK7A+UbgAR2zNKt46vIJtyfhAWruhX6/GSyRvDqHh1MkgUN5NoFnvXHzjVyJM+jM8Tad5Ek8vJUhQN+SyRwSx7pXZjx1PCAf9j88w9T9qSRyQmOOQoFNRIR14F/p/XKtPq31UmwvXHmiJAsEfTn3xZfG1oYom1sgVC8R8NloMClbP8jGfZekYfZkmo1LMVLBY1KiiL5I798VqtTqVB8NERJDt85B2sfnkHjNOKEppo4JNRul05AcD8PtRwt1Aq20yeOERAqCsxL2SLqiKHXgZqQOkOoU0o/l79vX9nEQsZiynTCMcHex4PveUF4zGAqjxLPiMy2GH/wBfcZB2yblY5A2+WOV02hbBA4PxkOo0w2rNMZX2A7BVKD0x02qRmQTqUSJRuZbFjtxkw1UGrlAZrUg7b8rLz3ri8CvsybMjVKsCF4w1SJ/ECi9vPT5xLjU6SMqYQQkalyB69/np9cvOn1LS77DBRUag8sec42jRWVC+x3chgLLcevt1zojNLGVuyj7NYS/Zv3TTsGIfdtWlPmPAN9QPTAaIRa6dfBPFkFTTcAG/cZPculI8HaxUkJYsr8YSyamOYSHeHjazHdqCfUdT/fBduxHE0oIXkGm07ujBeVk6n4s/XNOV4od2iSIPKFEjsST7V/TJtK8YUamUx/eFSliTyiO+prrg6v7UGnclWTxCDyP+JHQ5J6yLtuiTU6fTqsZhtHVtsxDHgXhytp5I5mn8dxE4BsUSx6AA9f8AedOt0uoiUPG8fI5Q3yfpzi2h1yyP/wDIEq3woF7hYq79MH9Kok1Gl0rx+JDppF3xWgKeYH3F+2Q/cvGVTFEIJCfJ4vRvb882m1WtbWq4KLpyvluuDeH9oiLVilnUFLBjrqQeeMovkaCpNGB402hZdQ0pWUMw2ooI3DufbIpvtFZpFbwiwcWrMtbiav8AX/OfQj7KinVmBaSNrLUwG30zG132G6zRqNrwr02sOFy/xz+NvQ8rRRooJp9MrSxm9vkN8MfTIJd04dCpi8LoAaYjv/1mhF90ghjm080kUtA8m4zXar7/AN8om1UskBV4gJNy76q69Qfr0+c107QdMr7Nimka1EgI4ZyPwA9/cZdN9lCBd8/hzHgdfw30o98rUaaCcnaSz87QSD9M88kILEcIyFTdi/evXJy+Rt2gpGU7p46mywjYhxXKn5+mV6jWxJL4SKHUig4JIY8XkzyXN4kaAeGu7dtPIrv+ec0oB0wDKvXihRHGUcU9YNNj7Rk080cGphMUE26nPNFarzDvf+8if7XeHSA8SBuFWrAGZkkko04jZxuY2OL8vSvnJ4JlacI8rWxBC109/wA8ZfFa3wWzS0bS6pdTqI4gsdWQTYT3rHs7S6eNmNFTYZRyK4P9sRNDJCoYtVmyw8pPpYGUaQSpE8RLSvxsTbwAT198SVdoZFs6N4EciISXcWwI5r+uY+slXTTnciGMAsFHHPrebBXT+G7LK6ONx2KnPHWsx9WQ6rLDDIEZTuVuo9axfi70DJE2CVnW2DAFVZARtrkXfP8AfNLS6XSySnwVER20zX5WHeh65nRwrptRbM1IASPfiv0rLlm/HJtc7BQUEEjrdg98t8lvoRLNNOdBDJCIJSpK0zbR5fn1FY+bStqkETOUiq13db/v7YmNhI4mZmZAoAj2Vt/+x9ca2nfUSCYVPCpBQK5oN75zdA0g1kEsMrRAqWqgWIrIPusjMj0AjDdbe+a/2krzojM4AJ23xwf364lI/DlEYZJlEfQJzfcc5SM8GtBxJB4N+DAUkHhimFc3zV+3X2xmihOonLrXhQeUIDdn2Och0sMr+GwVuR4b0QR07Y5dA0etKQIFauOeD7n365Ny7QmDdDP4mqjCxcrwyliFI7/XjNH7S1niwf8AtsSq4vluLHfj+mZ0ZY/aMcEoq3UlowPyP1wtSJWndlAeB3J8nVWujz8jkZk3WAaTdmYsccGsSLxYmNchrHU98qSANqG1BUIS44NX6Ej9PnI52+9lwUAL/wDkYDk9Oa65RpZJNNA4Te0SEGmawLPXnkYzWfsajUhSJXiioNNG2xGPQgnph62T7S0WoMc0CzKnAQCyPUK3+RmaE0v3qLWGcxyRNugBJ2s/UH49RjZv/UT/AGvIkjRhBIdpdJKBrhgQR37ZlH0m07PfeXn1KyxOnhjy7NvDH0yqeV9VLHKNOviKT5gApB9swtZqtF9n6pNGJZH5twrWOnXnvfX47ZfqftH7pB/EXbXnpaJHvglBqq9H7OauWKWNiGIZyC3ckD0Pr/TMzVWobw2C2AKbvfv2xs8k5YSm5TJyNjUSB/3kUkhlmRJlJG7cAW5v3ykI0EbBDPDqRHtLmEjdsO6xj9RC82pkKlGctZ8RgAwP8vseOMGUwjXhYiyS7wAQaA45785oS/Zvj2VdPFA/Gw4K+pHY5nLU2KTxaOOLSxuuoRgw5jI6e3sf7jNAaeIRnxmqLaOfTj9fnB0yDR6IQMqzKqUwjHIvv6WMSAzRtGvi2WLoq8bhybI7HJSdsJyTdpkDRlZL5osKK/H+cnbWWzuXCkAFwgPmFdvjphxwGVipO0SJvYkAih7f9ZJMypM4KxMK4OzmvXGikOg3nM8ZKllUdPS+2RancTcjkt0Rhwa9so8V2h3od1HaFaqH1/pipATuPKt0rb0vKR/FhI15j2UKC8g+t8isM7oQVqqsgKfbpeMSGMw0zfiX8THkHuKyeR1VVQ0ttQPXj19ct2xeh0QJVJF8qg9GFlj652Bi2lLbtgLbQu38RwHYhUZ3Enh3tMZAOFGtwxsEUKnNF+uBoyHJFUrq0bpIvRavj1yrSoYNrRxjw+dy9zY447ZBp5ZonMyzOpHHl4v2y7T6hYgw/wDxHsghrHuD65KafgTV0moiTTp4hADcgScVjJZRGtlA63a9CGH1zDmE0cUNMjQMtglr5xEmuj8MDwvOjCmJIA5uq98EYsVo1tZ/DgllOnHg2CSDR2k8mvbi8ytHBAi6lFlEimv4ZWygNkEHuMq1n2i8LxSCLxImUBjvor7c8ZA+o+yYtQdTpkZZ2FVCdoodSRlIp1gAtQI2XeJBGAAHK+U7fjLdCkcegkMbpJG4Fb2s/W8xxrNLJrXditVwzKSG45sZW8gg06oJXVZBQo2APSupH1sYZQdJM12QarRO0yzOS0rSbQVPIX3vKm0UULjVQqm2LgKDYP79PbIpwdNIrRyFmY0WHYewOWalpdCFiXUoyuguhyLHbtff65Z8mlTBgOtkjEbzGNVkvyrVE+/oRnzkpkld5AptyaFXm9KFmhWOBxI4BsnggDMh4g0paNyVqwSKHxl/gxEvlVkscbpJvkCgA0V9cfHqPCWVVPkb+duo9K74EsZi3q9qbsqxvH6XTxtLuncooA3JXJ+M6JNVbJJO6QLyyMDGgFKvIHceueiMb7E8okJoMxoce+edIfEdIm8gJs129RnmgeONj4nmHUbf2R174uUPp5ZW0GpbbKpsmu4IwXnUTcoVQ8kbrB96xUayDaRGgVerE8/ngSyMg8qilPJBsGsZRTYvJpD3O5T4zih27j2GTSGMkbJHNC6Iqj3wZZPFfcbFjvzhkw7QiKoJIBYt+vxjpUTcrKTpwmgjLxgqwL7r59Ppilj8aAbpCWXnluQPa8d9oagBRBG26NQKYkbv0/tk+llVKbyXVEtz1/YxVyqw2ro0o3k0wihkmKqzfyAPsN1Q9/6YcDxy64ad4Y0dCEChCGb2bn/PXPZ7JVabH9o9qPs/hpIJ1VWBcRSPsIU+oPW+nzmfNLNHM0LE0poIele957PY3x7jFlhKVV2JjW/NXuf9Y+bTajTrEJoWRZV3RFup5z2eyre0TX2d/FIhkKlhwO54/THJI0jEkEAHijV10z2exJdDxHO6jb4srUDZ21d9q9vnKtNOdPzAIzvY0SNxJ9aux857PZJrCi7HpoNRrY3cFrF+Ir0vfj39eMytwXdyFC8BgeL6fXPZ7Fg7wMh6jSTrHZFhbJHU10vFTiGJ2Ab+IoPJPA/fTPZ7GS/KgXlhadI0AQOA47rzfGeR94K7BV+axRrPZ7M16FFTJCo/m8pvg8fOSu+7Uk0z7RSAdee/tns9iQ0aWIcrVKfwqACb22D7YxZd6+BdqOFQDm89nsFWAqjm8PcVPisRtLA8Lx0H75zjNJKxZJHZiRQArn37gVns9kXlsY9qtJIiKTELYA0DwB7/AKfnmPpXl0uvjUKD4QaQmvUUOv5Z7PZX4Jcouyc8o+reNm0Sysx3MaFDjr6jMuaOd9rm2YAAll3bR8Z7PZzfG6KsydSJhK27zc0VU9ffjKNjDSGUwvZNKR/fPZ7OxvETS1hQacorSTSmzyEq65755tWEKqFJs0Vrhaz2ewR/J6F4c1UQlmGoRiNxsUABQHSumU6XSabR6tTOrSRutts44PTr0+l57PYjk6oNIjSJXZgTbsaVCLIHreXx6WRYkN7aNbgaIFct757PYPkk1QYrAhpd7K5kjf7yLjDvZFCgb5NZ3SGVDJp3QEqpJbgHrz1z2exG8MNMTFF1AZIvDO0jsD2HpZw9Rr5o2ZSykKCbPDqPS+/Xpns9gik3pm6HxSIYF1b2WoGlQeU/2rJwBJCJJrDiSg72WPUi/pX+s9nsVIcmjih1scqujrKl7Ap4I/tX64vTgQuFJJPVDtqz6Z7PZW9oAeskXZsSzIfM3NVitFqZUoeGwRxVBb3H1/TPZ7GSXEFuzRox7SoO40TXUd+vasPx/vfCxdGIbcfbpeez2c/llURTs7wRIih1BpfbO6bTFWuQeIw4p+NhOez2UbpUhX2fTT/Y0Wj0JH3g/ejVcAr15AySHUtDpGjl1DA2RQA455P989ns53oIttWKilrwooI93VltjYHrXTnn88VAUEwdvELNJygIqvn0z2ew1g7enNWYEmGnhaTdMApJNL6UD6e2LDzCaWI7goFDY9Dji77HPZ7GWIyehzx6iVQ0alVUBSA/Wj3H+cq0+r1GjIjXzTSAeUjchvtx9c9nsn2qY4zU6R49YdQXLopBJRP5vQeuZLR6iKMEKJDJ/Pf9u/8AbPZ7G+J2hZlsKzahFmaTbQILNwQa7fAv9MYu6JUm1AMyspCs46jtz6++ez2B90GPR6LQRx6Z55JizG6ROSPc/wC8z/EeJip04W/xbhyT3z2ewwd9hawph1gjURs48Ic8j3+PnLh9oeNGFEryIrV5eCfb4z2ezSiqsQdqdVFBGVu+h2Hmvb6YjSIWcysCUf8AFuXkk+l/PTPZ7J1SCN1umjSLeVkJal3LJy3TsfTjB+zZPEkk0zxSQ2o3F+le3ej1z2ewpfizHqjkYOqbrIBfiuprj0/xgJM0XmV1a3JAHAeiR0PTt+eez2ZaYq05kIQzhgTfl4AU0O/pWSszyzs6gM10jfiFCunv2+c9nsVdmKIiyQFY4mG2Z25bqAbAr2BGUS6iMgGQNsYeQ+HuIPFEd++ez2B9gXRFNJ5PFmc7WvaIqsDIdS58NxuCBzzsPQdeevtns9jxGXQEurm8CNpNOaX/AMgXuPT1yz/3DbKkJj2SI1FmBJomx/jn9c9nsdRTN6IfVSyTLqpT4rqFUb7Jj65VCBvGrSRllveyu24bao16H889nsWSow3XQnUCXVaWWGSPaESMErtNWbA5v9MhaEwxpphK26SJWUPY81/oAeM9ns0X4LYsiVkeDUGjJW019SQa/XE6vTRgGRBWxQG5u2+nfnvns9jp6bwiWKbxttEBhSrItk5rFGidrmcRxrQ8pqvQ+tXns9hmzROLDHHEZHVmj9+L/wBHF6pvCTcHJjJApTQJ9z9c9nsVaxvCOKNnJkUFnewQPKQfW8X4U5ViDx/MNtD0657PZW9Jj9DFBKpR5i1G2e6NZ9FBooXbwpFWnTcs1im46en5dc9nsj8zaYy6J5tC02jjjKl5GYsWSMqwAHPA+mUabRvAlQT7Vk6llAvjoB9c9nsSTdARqHx9V9nyQyxAwqp3Dd6VQ/ritRqYItHGYodrKoVkRqH5nr/3ns9ixAuzI1Hh6gy8hCzblb+W2q+T6D6emIfRBJY9nNqpO/kE1yB1/wAZ7PY1tDse8Cw/aUWmUxPqFU2fEoJuAA4Bs1Xpz1rC+3H1EOoEySSlUR1k8GMqhc1YbsRQz2eyi/1RO8MKXVnVRM0oYVexSvS/Q/FZrSfZin+JJM8i7FZkRy1Cuh4/LPZ7G+T8aoydmXJbOkYZokY+VW5H1H0yY62WdZYkCrZLgVXpYv6Z7PZWCQzFwxwT6hT4kh3L5bvhh06fvjK1EGjkCARuxaydvT1/X2z2ezT7oy+x/hnUtsga1RfNtsEEXQzR0UfjSQtNK7+GKLG6HHc36Z7PZzfI2sKJYaTRwTa8k2zXYKEdPbpx74qYx0oMZWRF43DdZz2ezmXZvol1MezTeIkdpLIEO1xx35X+vrnXhkXRxxxSmKRyWQKSeNpNV8+/HPXPZ7LgbAXfDqop/ERfL5JOEDFiboe19+ODlmt1qReKlCQoaRUJ2sKoiunUZ7PYX2Anj1ixfZ4ij08Y8ZgChfew59fasHQ/+p9VpWi0sWmikjV3MxZr3C+D9BfqM9nseNaCk+zVk+3m1qM0WlaaSKakQRFgvl59OmT6vTxrqtO0umm8aRQ5QAERk9tvYZ7PYjikKv8AVE8m19K0jKI3R7cEnbweo9fbNbRaOKmdIljk5sPVkDuM9nsjLoaToXJqAszPM0WwSC1G7yjv84tftCOOfX+AscwaTyR7gKBF7qPPXPZ7DDphaI2g1Gs2zaeMgBdzsycjnvX9ctVFllXTzeVT5q6/0z2ezSDYxETTSMioqgAgsHN1/SsmEGo+9fgCBKAAkoUT1Pvns9iegs5PqDESzSWwc9HvaOnTvz+mCxrT6dEdmkJY88k0P0/tns9jJDASbrWXdPHuvcWAYKASB+gGQGQSRhQZAszFgBwCeeaOez2OaIiGGMSJArs98Kq9m7Ufzzb0c6S6Vo1jLK0jAMX2noAee+ez2GfVmYjVQJFM4R0mC0L4NeU+vfADSp9pFoZkkaJWcjZw67fw9fSx0z2exYmfRdHL9nSwy6WPUv40sY3bUIUc9K9v7YuLSCJR93m8dBIxfnYOgJ966cZ7PYWqwRqihftDTHRlHmjkVY9ysptgd3cj0vM+HXyySmTxUaQqOb6DpXzns9maMkijTa4gLp3lUeK5/h7gKZvT6jG654Uc6VkpGblya/lokjt0Gez2ZgSt0QTtp49YDGwZfLJFuvbtI5FfIyOWeRtSkCKrSN5VUfzdx9c9nsZK5DrolheA6zUBpWbcPFHlvd04PzZ+MbrIERZZI2haJJdwUk88CwR8c/TPZ7KvJIy6Jnlg+7MjpLtB3Dzgq56A1V/lhaSfSwfZqDwS8sz0QCQas8n3BAo57PYyiqMB938GcJLIyCuC4JI9M0tNcMoiCOXtSFPQk9yc9nslLUZGkusWLUAagxiTwiT4jFV2+1cX1xkH2qNLEoJ5B3MUA4F9z2v1z2eyfFUarLZjHrSpQsBJeyuOQLrI59auj08s0gLMONvWvcZ7PZNJNoVfRjrrUig0+oeM1LG3iggncxvaf6YGm1tfaEckKMjs20Rh9wAvkf6z2ezocVTKIpn+15l1e1AypGNxV68o6f1zN1OumXcXiR28QstGtoJqvTPZ7D8cUqFn0QImt8R3ggLlQWtbNX3GV6DVlNU8kyrtjukPlKnvX+M9nsu6knZNYx7Bp9S4hjbdt3VIBtIrpfa/XK9NqX0sYD6XwbUKvm5J7Wf757PZyS74lSqCXc1qA7jsWrk9/wCuWPqmiQExtuY7QF/kJ713+c9ns5/aA0EYFaAyo/isBwoFV9PTIW0TGeYuCm1q68Ua79s9nsSLaFRSNRp/s7Tss+pIBpFO0tVZNpZn+0tTpxGp8zhS4BBIvn3989nstCCceQ7xG+32YCzRwShZFIYuyA7AO19ecJPsb7qfvJkjldRubegp/kjPZ7LP440cj+SXRj/aOsA1Tqyv4pJ/hoNx47cflk+pRZNNsEsQVE8SR2PmY8dvToPkZ7PZOMVha6o5poYnrqCT/wCQDt7+maB0S6bUCVWKE8ptXkDofk3ns9nPJspLszFWMO48SV5Ado38hvS6+uM1ummWWGF41jXcWYq34jXBz2ex/LN/6oJZm0UMaysznkHw1B49DkOslZJ1XaZYzDzKVoLz0/3ns9j/ABpNmMCXUvFqHt7SynSxeWaNIooUUuwdhbbz79PQjvns9nfOK4o0W7Ll1PDKEDMeFLdQPTJtVIscSFGIpSdo59uP32z2eznglyKvo7pZxJpgxSRTKb6mgO/XKIp0i4tO7IAB5hXTPZ7DNK2hU7RLrY4/DLlgCFWtq3ycgeGJdU08TPtiCs8gNgA+3XPZ7K/Hdf8A9+hWa/2XoxrI9w1zFATtvkKO12e/GUyaRNOsk8cxYIQpZjyfeqz2ezl+Rvm0aLGJqPs8xBkd/FuyByWPfMrUjUyxGhtV/wALXQU/P1Gez2OlxeB7M6eB1I8xkZeTvuz/AKyrSadlG0IRIxU2T5Tfz6f3z2ey85PiTrT6TSI8iGJjD93HmRuhY+noP9Y1Hgh8kflrh27EDpdZ7PZwvsCJ3nhRqi8HeKk3AHn8zhSSFwdQwQkDcpCVV9ee54z2exmqNRyPW7JgVO5WO0bV3DnobHTvzjPvpjG1QXUuQw2Uwb1+M9nsLiqBWlL6dTHLJuAYxVXci+MBIokj2M7AhtxRjwbHUZ7PZIVEzxnU60GOxJGwXetADiqI743VT6nS6lUeIhtlySV2B/fOez2Wj2OyPWaVTNE8RGxmDeVjXm9vTBswyiKSMPERZBq7HSx3/wB57PYE7YyAAi8OLVB9k0LXvKg3Xz1P+MVqm1glXUSarxBe1KA2gHkgj0z2exk3ZmtPJq0kWFJIY0bTvRHQm/Q9uPzzsO+VVBEUsrDySkeZVHc8f1z2eyksQqOLLI0beKqybOAWo830/L0y6LVFGjjbUEpqCCfKLQVXGez2TklQzLW0j6VY/EDEqSyyKScjn+25IpAI28y8b6APv26Z7PZH4vyemStE+qaEzrNGWBPmZ04H5fpk+p8NorJDBjZKZ7PZZIKCWSwI0BFKBYHf3yMs8eoMRcJIW4JXg+3tns9lI9gZJMyRbofEJ5I2ngr89j85LLIC34OncnkjPZ7OqKEbw8jI7ne20Dkc/pj0M0scgW2UcsN3K/XPZ7NPEaJ6PhghbYa9bxg/8e8MVZDVhefe89nsRjILxtsEVcpTEIeQfjnjJJvtTU6Yl4jYer30enTrns9j/FFN6CeRLG+0l1OjdZN4jZAA6qLDX6DqMz9Vp3aWKSKYfwxtvbQz2ezJcHgO1oiVyuoGolDLtHRb63Vn985qRaVp/wCEm1TKt+dyAKHr8Z7PY3yYkxY+k6wzDSrI4coDXLA89L9s0JyW0DSzJEFCBQV/Ffx/fPZ7IylbX9G8MeOfYoTcaI4LLyPj88ni1uoWNokPiRhtxsgN8D/Gez2dsYqmRbbO6ZtNO1FdjgHzOehqh9MB/u8gaJ2AkX3JLH2z2exq1gvBcUJkUkOsbBq3mwOvH0wpCijbHJvAq3FrzXX+uez2Htm6RPNMisy8ixXHHbrk7MNtKW+uez2Xikkc8m7F0AvJ56HnObizqK3V0989nsdE2ESBa7KLevUZVBoJPDilldkjaQxlq4T5z2exJukqKQSb0//Z
/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDIBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/CABEIB9ULuAMBIgACEQEDEQH/xAAyAAADAQEBAQAAAAAAAAAAAAAAAQIDBAUGAQEBAQEBAQEAAAAAAAAAAAABAAIDBAUG/9oADAMBAAIQAxAAAADu6M8vzn6b6Lr+a+l1583WRnq6eL0HllOnHuvr4yuzgu6wy7eHHTDWe3Gq5PTwccnoToWWfoZbx4HB73ifN9wtI49a3w6bPLCOmueNlvWel66zj0ZTrO0mBMHt07uD0Xnp18/Rrjg75G6Odrnqny5cOk9HHF09fPj2MdXQr3ye3m9Wjpia1zNBpjl289rY49q0dzZ0nTlicG+XbSXpZe3N09Mc3S60dXD6HH0xnNVx6c9c2/Heud46tevz61n0+LbX0cvPq78/TPVPZEaOnvk+uKua3jXOdk4q7McayNVONXZRbOmIW42WmeeEz3yzvfM23jG9HS1c9edzcaJvG8Otw9gIzMjRmGOi8dZzqmtEWdKlFxhrTHRpqbSbVaC0tZFecuhpSi2qSKpWmlXJLPWMqqNJGRvJWdYSlVZFJUSDitMeerus9kTVZ1nSzy9EZlaRNVE64zrdNzUQVtWOu8msNKEFENCmURM5zsYOdTLUitLczQaMZ2wxpZbrGslo8uXRDRkVCzvPOq6I065nWq6Y4N988sFTm5r0njvDLoWd8T6azrmw9PJvmOb3fN8ft5F0a46bewP1+Ll6YUdGfXz754474eftU41jTt56NJy056w5+7jxvXk9Hj6XLXP2HbtjGDlPN38F1jsx5pyx001158uzDpbY9XJk6+3yOqz1cNdEY77cuLr7fL67lXL05DyPox3r0e35z2OnHHo8j2F6e3nOvmXH6OI7cnTGsxx9vHz6Uq3HzujOLfbjOGTbk9Dj755+nLrXWOdOYw9Dl3qenzfTYx6eQsvTzjVpxekzPlaVWteb5XXyenHbqefz1tt53v53jgbY0su3n3ievj9TDwc3qfO9M+/15+Tx36fzGu3r51xekWvU5F1cbTU6s483PTgunued38XAeOeTvHow17Zjm6dLWefpc+LzdPU8j0+b0PS8vl8vp9nn4cm9ebyiVl2758Z3iZl9Hm78XrLo78Jx6szM69Kc4LH1NmOd6ZMI6Il7xkZ6Yz0bpnPXWCN0nLvgjWflet5Hi9Pna65eP1qsdtnLr6HNXI6M7rt4m4rm1Tpxe3TOT6enePM6+qE6py43HZlzbq8rz5bwnXbjvPm7AuDfWDR28vodOWet9Ho4ZR2edxuqOdGvdnz9/X59S+nWeA6uTG1j1zz15nWq57nqtdeed81F01ne8NrRKy6o655eX0Y4dOCu+svnHowz1ufTxz5u7KuOt75dODXqEwW8lG+GiN5vebeF1U6zJeclUaURltpo5NN4rK5GrbC0KRGia0JXlU6S8tqNYzrTOlrF6qVz0zLFmcXE009CQsrl6NNkxpWd7y8wqHazqaToaesgqYpJnDRVnWeXV51Q5dCJouGLzoYnTOs+fWOXToha7yk02atYYN8y546YNKx6NYWcazntMGmejoc76xlntkIRQq87LF0xKBM6lDdZ3W8ChmVlnnc43LexY6RbPbHbpjC7khptUMKL56zrTO8irR6dM4rSCiNIzpFZzll1c/Ppz1pvz2r53vGm2WzlcvTOHzsOnm8vpjYnGtdFt054ZbZad+DpfJw57Dp5/SGtTrd4ubl7fNdwdGOei37+vfHwp9DWfJUvPbLpfqmPFz1z3vrxjuzjN1pzNN+D1+vIy2OnLwu/bzc9vVy2dzqL26Yw0x3rvmL9HDCOtYcfK7sc9M9ebrdYcnZz8+nN0lqsO/n1lZPq2c2N6Tz3eZrqpef0xr2eZ2bb3w9F5+Uac1vI7OnNx+anrfR5f03NHzuvT3dNdPneb2Zz430XzHp+jmuTf0sbWufTy15Xbn6W8uejbnnxOqm7x9byPZxnzef1ifFn2Ni4N+rvMfLcP3nlavkO7t6rrwLv4uTzV1adM6eZ7axfOcX0vn+h8r0sOkcerm80PfOAj2r1z8muzq8vfvx1nXHed9Oftc82+la55a53m5TqRrKLzn0K4e3fJK+Ju7mqW5byyOvRjlvh4/N9Hl5ejla5/J6PXyw9L0cfKPS8vjtW9Ma5+n0r68vFvseqb5/R6YIrtceVXTfDfJydWW3k7M9M6h1zcdaz1ZZIqtdHN28ldDb1vJ9P0cFw9EZst8Yxu7y3DX0uKuvHt5nLnMw049KLjcPV2fNfdnneV9N7xHRy9HTDLfXGkztrOE9CxYU3Odu2U3kmWj0xqRzrKEs6eOvNat5bDmjcpcoLyp5101jfblpF46Ic642FvWZy3ks7QLpJzcU6JWjKnSZgZS861XafTnM1IoSxrVJdMkWZ0w0cpi2EU8uNusqcVoc6GiYqRsqdDU2RNGaZZNXD0QOJGlhpWNAzNWeuWyMt8eW6vEnUxEuBDqTcYrcnEbmFpKHXydUUrjeFrz6zMUUo0nOslrGVkaxZUaJTUy6CoyonSqsW3hN873lBpszqhMwMaiCsrFRZxoS5bLUc9cZpZ8tu4Y1lqbON9ueN8uPbHPXL1Imax6c2nPpm55cOrHz99+fqneeTPecdOZ7Lnq7Vaxz8nqcpvz+47N3Lz9euLw8uw591y1pz17Ecfb6fM/P9Xxlw6Ofbzejo6dNfT5fE4+vTj6cPU8vXJ0YTpzsa0nTr1eZtrHSUaxze353pdufn9C7emOKzpjbTiXfn08md894Ydvl8uvZjzb532Zz0bxy3vsHk83pYHTkjvvWtOO9N48vTU1vbm79unLkfP0auLt4+ifS4N+l5eD1epwW/Oz6+q6eV0dvEWfZfPHnR37a14d7bNPrcXbzznF8Q78fLnu9fsxuznh6U5cMN8RXoeH3D09MmOfN6Xz/fvXdPB6Lz5OT04teL5f1W3TXjb9+/B8mqovK9Hk06b9DwPR4eOly9uXS5Szb9Frx7eble+Z6Oez5r1no7/F9LeK0mnCrj2w63jrGOHVI4mXQ635Ow1jHm6sZC9283n6OXj2rKrN83N38Xl65aBnb06q555fQpa568e1bzyvR9qOzN9MELDLGk546KdNWvhzLVZdEyUTzui5M5wJ6N6z6Lh56EHTO206ZzGhx6vRydGc9NKyYbLXRk9s9Z6ue8dZJk49dejLp78eTe61PPpx6c1tnowrEiRZbioLQUM5opyFTnXNy6XUXNOFodZY89dmdGsq7SWY7uaztNloUMiaOlSQ1VOsbadMdKUuM3RWd6FShrcsqTe8xQqWehMW6rPRU5U7S0xUjSqaLkpDCHOiZksbinoLhNZLLK0ZRGjZ1Kois8a6DLXeZedDcytRNxzcKuDQqKJq0nWKKkJJ5usXk1FnWusXvGmbbmSXI0qTci40nNG2OlCrKdcjQpjWKjbPWpWq2ZLSebWmOmgsNZaERI5wpmNRTbYvXPDG0baHDezEKw54deed3RXTCEVm3WbBaZ51zrqvltF4byuPfn5dVrpPQg5tue+ieLXNrnp0l509vBz2vU4csPrzxdHp48Pnen43j9eGu0c+2vT5ndrnt42+Tt93IsXoPDr6cuDuekPzfUjR43ZPZjpvxObGevoXrPJ0Ya6zz+jePfE93jd8a5b56xxR2cHLt6OC16Z5ovbG/O7VoRrGuufGulZ1Xn+p42nm6ljdT3vLw1n0M+7Ptxvl249WCyb167VmLJ5NZ9ni5scunThsawOjyNPZ0RjVDTc+HqcbcmjHXZ5/o82c+L38/RvfQdeXM6fQ8rW59nL6PQY8mfW486M+qdZ4e2+hPHffkaw1jac+jnqyTPHz6dmkauc/O9biHyD1/M8vp52su2gCeie7Jx6z5Nenm6dOZbzXRGzms98tZi1ljW7zyTq584XPtuovfJ3PPj7sbcY7SawOucp53V0r53NvHi756w9qm+blrpjt168zYffief346uXDpxenbGe/Ijono1nz+Pt589JOkJSUXOLe0tsasTIufS1O2s813eF9Bt05R5vp5dDPpy0Q347xdOd3ZzvMw9OKreW6hOx536eLEUBNamelaTmyQnlIvCdZz2qkJHLKeWkTkaMc6tVhj0VjeNrWBi3l3FVpUmsNK2kWWHpwjUYu4ZVDIp5psk0WuerZPSWNIuBzW8wOcrcptTJprLSNpDA1jVCiNCdNzhqG0UNNFWdsrhDWdxlsS0Apw1myciwZ0h1o0bGOERM8tW5vUFpInbMkUDY53mYqBuC8q1TQ0x03kVRqeek4ZuKKYpjjaQ1pjvSLneWJFbhMNFKp1zSrWpPPbNmQGrrOoWc1hKK6Tz1iCp0aZ1Sc5oueh56M6rNCbkiVY5Yb552t+eyeO3Phnox6Zw5+zzs6a1jn0erwjbXKt4J0yHgNL83fry14+3LiXV0cO3Bwd846ci6tx8bbt5M7yz7EvR2c19OBPn7c99Xb5fodOfKdnKm+3dfo4cl52WB0aDxcfq8Frs6q4unKctuXl0ow687fNrew3rXry4dqC8/wBHCsbavDQuLvWtef2qB7uauixmsn1EnS8LrG3d6PWefoy0rFzWNazyYr2c3p8qY6dvK3NO/n7uv0/mfQnWp4yx9HHRq5tjD1b7cZz6K5zJ6HdzI5zlg7p2uq3yw6YzTby+jLO47PA9I6M7+czz8XtXPieV7mXm9DceVs93Hn6euPn9ui+XflOg82teiej0ccO6su/LTm6semcerk72umrnnh28uNnVh0pzcdefvfvbed6byyNSzkSheG+i8nB7fNy35/B1cHn9XVxFHTfTg23j0t8Ot47LF659MHL0OmeWDV116Jw7Ocznno1pGhmnk9DRvPfZkuWmN5pbBRp3mfI09Dz8Ohn0idfN0duVzsu3Lmw9Atc2fo8PNLelVnu+nPM35iI1vGqsrvyzaJNctIpTVSaBZzUZaa0bF1VPLWEbJZ4blZZ9BjSoXTKtUSavZiS+epjeMue0tkams5zpjjVWnVmd6yleWWnNVcpI9MbrSZrVTjWEx7zLqayVmdSNtbSclUIhqZGibqdEtsoHVEXLIZlmrWjEa570ilrMzopU0sshpUxpNFS6qKgoocrbLSDOqYTNErVFIS2uVRU6zWVVF1GuO28qLUtywzbcwKssZ6zMa20mbknlrE1QJYnrM642TE6EkUYXz+fttjO/PXP6RPo5K6jrlxc1G2ewytJ1nBhz26y2Rk1rKFWNZg6XP04Dk6rnuJ0Jzd3Wee0hy7aZGriebGu2uXdL5tSZVLMlj3NzvO8PBw93N4vXfU9fRyyhheV7LTX5/XxDj18vRy6YdHX09uPma93Lo6MtHrPLfN1ct67I9HHXHTTeXx9UNhjt5/n7dGuOrdGZW8a5eUct+oRPbG3l+p59rong6M9O8qN8Mm+bO70zta6rO3Hn5u5t8+urE9HTpxes458teUurl6HMcunW2dNQefq9a39DxZso7cTXmZ9fPrp2R345wU9sZuZrQ8dPRs8j6zGeWs9bWN6ZVn13O84R0dDcu0WC5+lVV4VC8z0OjG/Ex2nz+rnq4zbeZ6WXQ88Dn37+ffi68+/o5NunPc49uuOqhWOicESxqsdNe3j6N8uM3enHbZuE4Az6jbQc/RRnm082+HbXz+pW/Mx9SvN25+D1NOma3y31yzqXvOXH2cet8+1dGtLsws5vinF3j2cu9q+7g9LOOXTpxcxz90z5Hpc9Y6bZPl5XX0+Xpm9Lk0fTGOu06FOuaVo9N4fRm+nNZaLKNaUqZrLVwhq86pXkVQibU3mtqdFVN1lNrFOsU1yLVIBOVTMs0JtaHjvnlnWKZVQ5yqoNXFRToIyKMawXSDjq9I5nsNOe2RFxpmQTWdrWlavoN0dMTNIUlGGnV6MKTETsmg2XLmKlOi4GqQJhTSrbZ3nWZxWVU4nGtlDS87VJ3lQxGiNIpw3hsUaNCKZLaYkbWG6BxRsgciTohmlcS0MtOfoqQpM8+iMam09EVnNq3LLRF6zMawSTeFtGwQEU2meuTm89ILONnz1y9SqlNVvMLR6kmIUmEsSkOiznaZk0KHltGc08uWPQY1yvaTWbqMtYdOdIvCdFOkcPk/SPz9+DteO+dFGjPScxu2k4Obsny+iMezAeb0eDsjk06E2udrpjDDfXG/Pt789Pu4335aGSre+am1vh7A0a5d56lh2xz8vXhrWfRymNbvh6MPXXN0deXn5+rjjoZzporGhubbHc308HTDmzDXVnh2ca9V1jvF8+PfnXNxennux3vlJ11bZPNvl21rm7+XReiuabO+Rm1zexc+yxK+XtjTw7wzbw9HYzyd/NrZ6Hw9zzzy15Oe99ebbYZ9fEHoVjj0xtvnzptaeHOsaNYdkLM5vnLbk6+S1yR0xw789rDOu884xPPCvRv1t+Lr3xdvXpy5+zPFyOlnWOKwx1XpeZ6vXPRc82+PepuwjSKbvnTTXl6C4/M9/xPH6MPQ4dOXXs5MM8vZ0+f0aNs7fXnOG87c9jv644X159M5IzxrkncumC9FOeH0bMGS0xzdhw7az059d9OfnY+kY35GftcHHpydm1aIW+fTCoejuiDpyq4ojg9PA1z7pZtXnvrOd3CMgK8tM5eNmdPbPVzaeaPXCiqXJXDTKpBYCFK9UU801SNDQC6m4SHShXlYWmdDFRtjF41ljV6c+4slbCXWJDVMnTVnplpWk2umaeWiBSTONZ57nWCJbbTtL0E3ME1Iq4bUSFpDUOpFqoaSmst56ZoK1nWeshMZsvLbOJROdOYrOhy8zRWgqKoeezOXO8uhU0ys1pljRpnqioNZedyMVpNUg0TNUKi3WWe2ZpVTrPbLSHnWdVN3MOyyhpFFzIwETnK7khE0NVnehjWhZ7LNQ50Nj1TlawiVZi861RNWMVGtTlvkWOmefPe+dvROO3FnfbiGbTJOtyL3gxpGnFZYapsXNJOPLd8O3Bt0zKevnF0hoWesmi6yhNmCYZd/PnXJj3aY6Rrz9G+epnr0xE7Voy1zqI0b2Y0FJdGIzn1Y5qwqM75+hbDjc46reayzpGbqonpHPRXvFZ9M6z5vqYrOi98emMeXu5TptdZGeTsyz1rPV4j1cHRhoy13yN82fRM7deGtz4js5bcbJZel64vPv5OZN6Wnk9djq5sXnV68HqoZ6YudlUJ08et6MefpvGkZBd6xW8Y+f38/Hs+TXqx04B8ud9U8gNlHN5enmrvrTu5d9c+4x26cNM4lNs9+POsx83Lpt3ZdvTnnVz1521m520y2SMt8KBaiRok4+b1ODyduWb4/N6eydXvGyjTtz4ukNa6enl068dMdosxl05Wo2naq59cnIsq5dOY6I5dJvW+3Po6eDftxkpwTpeiSWWcaSaVsjLqzGrOsy2da6zzLonLTcazRUsJssE1jWJvjnWjmkemUloi4luK0cmgVyRm1jSqN9TWj6YLx33mFaaAMLuJYinlNUtA86ISBfP0Z4YoM6pZWlQUgx03L1Z6GhCqd5KWiSW0zWiXFtYYsBdytZqLKJqkyuLHMtZZtwlFDQ1RE0M4aKweiJaxqgpAl6pjXLDFtCKpo1x0pXNpjTBaElOL0VEsSShiyauprWU20FRshaLOlUUjBpkqWNRcbUlc6JCsPNpay6BXTOa0yqXSxpTo0zesVDFnTBwqVogGTTK1N6Bj2QicMpVjWudrRLQLluJaqc1cZUXMnN1zXKbxz0mKpazzrdy95i8rzpus0nPUxqMevhxq+jj7CJuOmaHcc3N3Vz3jn24JyrrjGoeWk65arrmaaqny9cZ9Eabxzbxu2NzjXRrhrrOHL283LrYS55rm+fXPrz01luG55sezn5dZpLVtlN9AqI5vTOV5uvPPo78+fTHqrjy7fOd7xTHhnTXW+d7ZV2+f0buI6fNWr0uasQWNO3PH7HMWPYsObpzLC12b8Ou85d2W0YSuzLfbwdly1xpbxGy2TOY4876unhiq287r09ZGDjoBl0Y4efnWueXRw7c2O0m0M5OaWnZ214I3n0I7X05cfSdMT53WF55rtw6x25dHXlvnrzdOW+WHSoZa6NtuPlc+i9OdLm5LJaznXn8Xv8AD5e/P140Nzn07zjqsSN+TXpdGvPtrGuU3ZVXOxc/VONYa3vHPl2YQsd4059cXsz2N3HMbc0szeW850mkJNHSDQa1nTbLTWVc1rKgoU4rDI5GI0MucXeVTeeoq882W2GmdMHWszes3UadM5rVNjpcwGWk1plXTJU1mnHXPlu887LdJ6KpPWc3SGFtmLQi0h3owrRzzaqiRVaM5pY0OGWqnTpkablslnlWWNDdZlrnWxOGVKbZaRWiVcEVIIxUqCs9pcKoKcWhmkpCxFUulOk5mC1TNgpFFDpUrzomp1qGDTOk1SU1bz0aKWlQ6rROkaIoqUkZnS0ioGkzTihhmpJsSIVTRXKtHFpkOKVORSoyw2srTrRlrN1LHomqUOprQkJlOkc9Q3QopbykSNoUIYaJHlIq2yKjMRrnOa24OW+iZY1XJ10FxorPXNk41yuLlMNs9M6We06NE51mqzrNOesZ1jlpnw683VcTr0c+vblmZcXPpy+pWuddvLvn6/PZhZVIhNVOi+XpxLKmY3plWkYai1WSRit8cb5715ue9itO2I5tOU2bcvVx31vLPrx62q6YyWpPNh6HLafNXnPT0eERrWNoRXe2jm57yNd+/AOO7j28/LvccHPp0eZ6PPrW3pcfTrnrMdTjz+nThzrrw49ca7e3yfT6cq286nNqqHLLvww7x0105cEa9mtc2TWXDz+vz89u4Xmct9/R5++HtOYscefX5XXtr7vz/s2PR4+vTp5+LbRVz6Y7GnanAr1XTO+Dtz5+i23vfaLuUcW7tdWmN65JmOGE6tvg6+DnvozS49KuGWuTnpnO9erY8+vDXPHWLGd+XRNqy3cxpnnWuXRlomtYhq60ZXCbbmic7RXWXndD0nWs+fXPqeelSlo1ipzpI9AXEBUYSHma0hLLUUyigoeHY3MugLC9lUujYnQmdGdb4qa00SgcNqcvMmOYnQyxUIdnOes6PLSqSGi6CilbJqozsTXLlHNZ4YYc93SN50qL6ZMmicWssMnLqg2S1WVMehUrRSFNDqWImA1BBUhrNOay1mcOhKSxjEuKppUOlUUgmnNRbnOqlUjVSzzucqVMqFfTNkmhWoJ6Q2rPWUzpGWpqKdNVAAsVoMEMtZFyMmAzEqGgnKqUlRSwyt1G8lqabvPVUsqmLQJPC0ikwJiNSQEJlIpzkaTmmswWyBBaNGG+fPUNPLCpTpWW28xlRnRURm2znSlcE3B5WNeqpveaHMGOuOdZ6GeNCrNerbnfXmlOfLW6Nd26mvRxmLjGsWly6axS3nSVKXnqFjrheda5lJnnrWN3gSz4eL2OPZXtPbisuh6M+H1eLLz7acJv0OnHDfPsnPfWePn78bXP5nSHbfN82Xfqy5d56NuYiXn3TwHZy6dPL1k08N9ee3zz1pfVjq889p5k7OjyzFud3m5u7z/Qvrnl6n07xlydnHw1rph27zWVcJdmMvTE9PMPnZepzY69PBtjhzy6cc9IMzzderi9DD6PHm7Ucddfb4XqdeNjiznqTjW0Xi57Th1js0xy6c+yOflWe3zuzl07Z1PR58euc9WnNrliOboi3PVyXW2XK/H0rk34ufXr68N+nPSLfXmShjoMt50rl1rqnHTpiXmuWtQ593bzrAvSWPRvGWe+Gpxeed6XyawPHrqJ06dZg2lzi9Yqt8dt5KyuEhFDxvO75uiaz1vMcrbLONZzc3dOzQU95TtRIqqXWbKbzzpa4b1SVOYjUEpCUZlOHGdBrNOotIW0ZWqTFQBdRexUNIjREmAphWdFZYLVOorQZ75JRLGsrVDi6E4YsCba0Z0GUTRNBTcVVcfZzZ09ctC0VR1wiTOlYiq8q3m89IpKllAbJihTpBpxplmsaZzSovN0JqaTlzbWmiFSqqRqTTqVm8NJUVGdam04CoqxDKjOi1RPO0zlshOKVpZam5QJrLWdPZLVEJOqJrUmgqWeqS1OUFpMoIKo3ZmkZkqKSpVm1GdNqxyLQwLLDugpPNFVxeqArLFyquNFozWoPNGxz1OlHQUPLm641ka6JiWw0lmurKVrPTiqSKxedeg8dO/Cs6xFVWmdYGueVR0KMds6a8dpaRZc927yTOloa5uitIhXt0xzqsRzMnjqy9Yxx0yNR1Ui6Mern78fG6+vlevM3OekQ+vN5Hq9CjTHp5XG/Hj0bePi9Hgz19DnrDKt87l9eVGLxu0wy9PixrTo4Nsnr5x19eGe+NdeZw9vFbvTZRHN1a4cHtwDpxnNjr1eT6nka1ls+nz9s9cerlcpqebe2fKfV46vjjn09e+V3P0Odc7npWGw9GfKDuD813Ym3XnXPpt3zy9EWWfX5nRHffLr6eOFzral0WcY1ed5cvdh595PHvzox7+fpy0KNmQ7WdnO8cTLx0ePTz8neirOrzvvzfPpkNdETT14+7pnmfUo5L3ocq2WsztjrrKlyOueV1vCz0bE2VxChKi0rEk1GmWFrJTVpJNZqHNDoZ6azLVU1caFlvNZO7lTCLeSYuZsVm9BWOqqbqWmlWbSYNGkTGNVplbaGeusyqQkucWk0bzKDOp0mhDLVE6aSA0pVlpVOgdSiVyKoKG5R46gzSnKVnZFKkmkUDaIQslzlSJF6RSUg2CckxqikQRcTcw8peWlSwqWmLFSA3ojWHTlMtc9F0INJKGwpdKpLKCbYQqFTKZ0mhzdEt0mnSLWpSzM82ZS5qE5tk1WiRys6TZTLRNqKY0VS4a5CrlqrVToJuMqKkYVVlzVNopA45dcY1z9Uapnnqiza1UyMsrM7HeUbylWONWQC1S1EaYZbI1yvPojWc8+kbzumNOPWdpvrzyqtNGfRjaKLQztkRWHTzTdx0BDut5zy25cbw36M8aznOpe2eiNo1jTJrVrzdDbz+ijGsNnllvn6uTT0aYZR0UuZo5eXlz32w9XfU84XM7527enDyOH3/JusZ6Raz4PS5HeVPszri3z0za55e2Y49N0c+PHr5s9Nt8OpzvvzX14ucuopqcOhtthcZ7cr5b38nblx1V3ZryY1N79V9K58fOXXyc+lmB5OnlNdn1dcfTjeLvMcc405H3W4Op3Pw+v0Mt3R08++Oc3ts42830F15+fydM+P0Hdde3gTzmLoOXpacOx9s+Vv0cfDr6Bz6axia8nHp61+d0+jhB2TXm9ZONbZzPXJthtz1letxzPTEanTTR5u668bUl2ddJXXkqx1zptRvG8rRqEtDkuufS0KpvWUNxMaSM2xgNEyNFUTrIhVORUMstguTZsbSexypzaClqRNTG8Z1ntntUkMmAyGE5G01QBFlZLS865989KnSX0xrlrGrFa58NhahWnoQysdUh1lXohUsrQqYnVyG8tBIkENUUXNCpV1D0mGD1Z1N4ZpDUK95UpjDqMNAqYm1IWh1DqKGSTdQic6VzWUpG8wUxVyo0E95bT1RbRNAwxU4qSpJ0yVVkqbUuHpF6IROV0iqBoOs9TYikVYYKjKwTWAhc1oGnozSjlrXLXOazuhiqnWWimh0qqVVE3DPSTQptZZoRY6Ssa0lrZlKjh020w6dmaqIZSrPn6Fz3kdF6Oe9o3nPHo5+e4ytcemmeOuptVqTekVnpO85gsajDaee9c9MtZq8aHSs70UZ6QF5aNIcVpqpTac63lRqZQh1jn1TjUaZ0krOjW+e2PXLWmNaZxplRWeVY72a4506WiZzLnw9cdU89N8o4+7k49Ojv8nRO3m38nZk467rjlrrzeXTfgVR0VOHs+ftnO88FpU+hzktZErrxqxOmV6LXMsvRrw9+yMe7n1nxr25vL6u/LCw7OWueK5+fXn2NTMsSTl0z7eR+o1MYS+eq9BXROfF9zDzernzRhp5+m/b5vd7OG+vPv349UzXTnFQy2AghQajHs83n06ZU7ujj6/O46fVw9Hn6bcO2OddPV4/q9+fS8134kt4WpGvTDuszYu2FlpoPNoXl5tXoUb477xzrSM6p576K59jWcdLok7vpnDSDK4tMUQmhNQTrLDppBUZikpqdBJsbJ1COXFVFrK2jQst5nn0ZzavDboTGklndRlpN6oizLLZTVjkz1zmiHV3jaUhskmTdSk56RjQMzNxbDbRRbKLTZSIptTjQmsrmb1MuNGsoRONBikEnedMpQlUi9J06ZhqqzsVS8zGtBVomlUTTTJXFA6rN6yyh1lxjaOep0BHNPZnSvKpZTZGi7lJcK6TuKBmqGLMxlKRiUmhNFTdSyTCVOWKFVqK0NxUZsnOqSWUYE6z00UKdlZ6ThgsJJGXRXPTJFyM6IZTcEWlVpmxVOlZpPCAUs9M8aHnpOJVZY0y0KaudhJTcXTGvDb05untiZVVGe0ZedaZct5UtDcauumJWwnObRlxq2PPO2Roz0lhbQOWrmo6M9dGivPWDn7Zy4VTZVOiOpTmx5pGio1lWkRk9pXKLqUhVya4dedp525si6NI0jny9FVyI2lrfLWOfs5IzvGN7zvjXZyG8tc87XQ9eSzPl9sPRd8rBHRi+bn2c/odMC2Vz5Z9DlnXPQ1lI5Ma6Z5+wcds5TsXDSaZb4Dnw+pwcuutbRvOOF5cet74ZijM57z0NduHB7PnmtumZ78s+fu4jT1y7OLz3n0cXL1OLp78u9ebv34rXi9eXUaenz0zApjFebvfDthjo6jDj09d+T6HbklsVkSZp6ctq7XJ7/AC3CvNnOi56rXES1GWNaac25TrjdbPn33jWoz7Y6c9UnLup56u8LTQyvZrKegKKzneKqHKGsU1ub1lsElOcIDqkk2imkKkYSeVyih0tAmyU06jWddWE6RhFaaTQrOo0qSpoeepQwaaJmmhLkmrRNVNhZTvOWWKnSAtBqmpCaFNTRGYGNXIm0i1oyupwiHUUIbcvWUmZZplaQGx1nomdsJwxpNIJUKmqlqTrRm7kXIUqHUJaFnFLGhpVopEupbJNElSFuZq7y0RgaKkVZaoGhLQnLyty0qqWx56Z1SHmRUy0nAm5m5ElXnlELDYjVdc+0WovZIjKIQum0GG8wMxpxrG8obkRI0ldRculNoiVZTncGpKnDUtZYprNrNZdBMMtMNEaQ5hkkzLTNEVjjc0GdaXjfTNrNZrmdFc1CVLeqTTRMVpOaVohxuwpdjRpDp5dGKLTDabbrWIz6MKjabkz6XvOUbxURu9XHl3451yO98a4NboeXrdoCtzL5tsszzGN9HP0R1J3w0rNOBz8ve8d+vzlY+jybUY87t1VPj9PkzTpm5jofn17D8/o689qzxjflM8u3Hrnjq64+3Ot+rk6+nDFalHP1c9Z8/f5vLqb8PXnXVhrOufnY9hx74HYcnyNePv77cRcY5+hnl4qna36Hfwa9fLGsbZsI6s60zetc/p8nNrO2vnd4+iZa+vzeYdunLpjx9PDw6cum2Pn7z0bY7x2xj0ducD5671xbazfI+fn09HXze3ri7MtYNObo5aq5veLvDfeMYeOOnQc9k+rj1T0IjX0cHxbY8ul6x0bznYt5W+Guh5bRqS3hBzcKqehFOIYpJtEpuM06xpWTtNSZqAEItCNCJUDpKblJg08qqXJltOdkMeELjUnUsXm6eWslNNkgVMChpNZISqQmUVNDYm02bFhLkoqVQyaoctWesBNTRqpFA3dZgCk2Q6fTObAaHCFRWWmHTKQ8sq3UVGlKU5G1DUskClxU4UXNJ0VGkXSQMOSotGUuNdE1N6CaSOU6JoGLiinWaSklstxLW3NXLVKbnKMppVxSl1iyoWVNuc7RRTWgagrBNZNJc1lsqh0wNktzmmHWNRtnTARVrLTNNxVKCc6Zm86ZDxLXLQqilsCWMbTLaS5RzWcomsOUb4Z3Dk5bu8r3mWJoopmrSO5NG2d56xSGMXlWdOm3ORN40y3rKisZ1z2iq0z11lKsmy3jfLO3Pp0zUUkxqL57qTTecJdY1GjejCdNMucwGubB5+fvtpte+dz08no5k64jzR2vO+OOzfD5879bcfP6XFl0jvVnkW+Yp8++6OPrzxvbj6b2c++ueCY6MtU8XseVz3rob6LpZ65vTHdtOHuwxcM9fPx7cu03jTzqdSp3s5yjOuL0/M69pzen5ZXz4xy69Cn0Qk9Zejz8la8karsnRv5+/PljXkvj0rs5ezeTGcMPr9fldPs8xw9hy35fQsfJ37fM9N98eVvl3cej2z4+nLffx/U0rn6IxpdWXX15rPq4tY6DnrDtXFr0HtheKXryTrx6Lj0NntvO/Qq9fmiE+ei295St7IvPSs9GJZne8u51RUToaHTTIxsnOkihdBrMUaCkjQK86ETl0G9GdtU0CNVIg88s0nhdJ9MkUhaYQD0StVqyAytF1M2VUaZstFVZO4zNUqpM0IYTQVjpEct7zJoscwiiZeiSFpkKuLy0RpvMqkUzrAzQZdER0y3SJwKaG4GZ6tKk0Kh1k2squWyBYk0Zal1qzedkMbRSnNTTYWkMsy8aRah1mk0aexxaaRrLUk0UFRpnWVqWmoPrkZKOWZ0KpqnCLXMRORCleeXRIKnnrsYpRxoylVLWqegjSUKkWpqUZmsac6TmRcUrQ01LpSwZajCNBpQr5pQJNpM5TzUleq1S0LPXOYnSsxx9fDncqK49HeemyNJvY7LcrKyqKTmsgmlnY07hzpMS1TqyVVjFI0bBt51VNbzM3OabGzarRazrQSystM6NI0Wa8amsN+bfnpc3RXS58+qMqx3yxrZcvdvLy0z0E6TnU3WYRvrScOt5jWaqS8+ek3px6c29ZNrOq6YzBDvjYnLtrWHnqLmmujeOVhahaThvm2ReZu+fl37eDtxcz0+RvnfSSWfH7PNrXo9LLlcZdcdfDQ1oc12c+HfHoYVp6OevPl06tLOnHPxdevk8ve8+yw4e9Hpx05rTpyxinz35uXTt5u/F6ZHo5zW2TmeTuz5aw1GaTvfvzXRzb7xy5d3Hz3lHVly3GvNvXVPa/T5+eW86k06bOOtvtzQ1UXTLM0lFn0KsbnSaTOmU1pFNPQxpymEpqqmKeXOlRNudBSbBNpOdmWajZs25ptOHIK3IVZXnldSysVbJpOJWkS6zqGmpWeyLJjlkNrTIQTLcGZjlrEUMVNMJKmRh0YFbipsRsblkp1zLOtApovVkW6IuEBvKospC0qYuCoc1SjSop000jYlc5poBSKpNmoUssqjTlqpqd5RFZ1SEhWdDNzdE2tAWkm5qnUvZmrWGXSZpxSdSVSVTcthMaNJM1RSYlomIEl0SQ0zvPXGhqtipUjSrYgZMEkuplVJVwyoY8o5cARN53FEtikpy5jWNMdNm6nDcTUaJXqyy3xy3eW+zXNjkTKmbQ48/TjjpzPU57kWtUk+mKztVbztKlFRbdY07GyZ1hTpFq9stHLw2yJa52Wes6aqWdpDt1nLsWiNFaZOriVqhj462z1x0VltlRBz43prw99HP081F6vZjemZUMTN7JJAy63jtrLjbNOarxzvLHWOPWLuyz4+5Tplm9A9Mx0sesFS955lWPLpfRzXqUZ1lvy/QRs35tckc/oc2XPLalz5+wHjOk56+V2G+rp5O92Mey8OmOvt5Ovtwz3IxlPKOl18OvHjXo9WPQ8/EOvPy+j13jv6/JjrSSNctS83H2eDj28zTa+PXn1z6umdlnXbloSJlVaCtMddZysqnlrScfP6uON8Po8PRPUKuvFWCakmjUykK0ihVp7JrOsLcaIQUwY76LrK3NyqZk6JLThgMkGVAxVTUUI6EjnKXBVCKdJ6CNFEsnKKzKpudSlrDSb1FSay0GWo0STU1TJ01ZO0UKgZbVCVCpqaaVEwTMaRJvDNKR2mVoTbKbESTdOW2KS0FyNpnpCS08tSm1S5KLDK8t5ZFEQ6mWUtElLLUOtEqgiQyg1STCmpqZKmAChkymPMKoak6YHMNpsVLaGtClU9EBQxVToh1OVXNVLaITdVFGiZuRcuSGmKaCmqgXrhpoV50lDNFKdNCBEJxTgvOgkakBNyqGTmY4ZtVU5bSOM6Tz1nVyrinWV3OaWKZqapaReh1npSZbnGbBzqmOeTMaynVzOjesxaKyt5mtIITXQHOOsmdEONT0iyrXDbWZm8qVzQ2I0VWdQIdZ03MyrKDSGcXVS9GkpslmcXPVztjjp0mevbnz6XGV5bRp0M6yO521mJ0jUgjLroojaJrRlLfPfPl1Zc9zcSK2zurtXvGWO+ONak77zkY7jyZ9FZ3jRFZToGzPZlnNXRO3JGfTk8uzy5s3eYAfOvsnn7Y0k6Z9fwu7Hrz335+oya71vnp5PoeRW/by3PVj1aa58e7vFHVy66z0Qn154aQZ25pYeCPSz5deHSd6qZ6OuHeFwiXO0N7xo8oatebpS1Scrn31nn3ecVplei8nZQ7yqnLxdCV98Rjo8axZHPWzk0F5a1d4nTG4TvLYVFUqm4qhSstXkFped7y0NpV55VTQxonWiR1yDRJUZmkmSpZZC5M7KToiRjUmaBpUObIB6JmllikhGFKdIJFZ5dAGQFO4vQhISbnMpaxp1L0VFQGgNhhsm0qtqtGbcZaAZLSSkoJuXoqalplnPWicdMuWsaLloOHTz1ihxYy1lmtpDSagbGBNpqLIi5qwNyVBFxaDRolsEE0liFzchWWmcqhZaENIqylpaEKigsGHUUk3hc1WjLaUjRTTQ6dQ9lQmVIlkgwipUwWpFGaWFCZQqqlLmkrkclcY2o1wLWwbM1dQ6e85lTnU6Z0Rosmu8SLecZXUa5cDQF529hOiSOfaM7No31mRrQsreHMuRuQQ2xuJzC1pcy5Lmqq4vRBSpNw2e075sVrFPLbGdKw2QSMxyduOdYt7Y0od9Muk9Ga0wGriqYRGxxaDss0OmuRrOsNtE6hYDOesrsxrOdE1Y7cxWR1TydcVEA6zVVM468+NRUdxrmu61nj31ern4fSMvFHdhjXLnVcOvMdRu8HbXL19PUfNrnl1QBmPQ8f0G78bnfF4aZc9Z8vVwHX17z278NDTMxWbuXjeBPp5upVjtnkfNFZ3y08OXbqWSc9enP0ded4rJusw1rpJ6N88NEaNI1N5dSIuTpxyq6oc9MTD0ZU0yoMarTDXWKQtWegyYVoVF6IWhsApG50cylMlzeWI1klQ6KikpDRRpmLApqparh2XLFGQSdJlFxjT0zegQZqJFsa1lqhkFRnQhNIrdI1migzQ6GmNYyw2hbaZXJVpqFLkSXHPVXNpmxDQnoLm0JuWqaSVeTRpRl1SrUNtJApjlpGZs3TGRzVJVTJTVBGGwKKhE01I06zHPPWjy0ctp9CaZSSukqdPPWEdFbERVVncVRIQ2NDAXLRBLyuaTOaqlNykprDQDEhRSKqVVBeepNmYM6KqhtNiZoehRaGdM7omgppUyijMJ1ulpYqi0xNzqiNI56ibjOqvPSBuGpOQmTQ1lVxRm1LbqM89lhx6FA7TCqlFjdZ1rMKzctYmOh4LQS9MPPppDPNuUxBmMNXrlrrMBo06RaAhEQTrWLraE0iLnGlc0Q6NBmUXOb441HRGujGlC6LNZtwWisdcx49N449JtbQa56d+c57Yk6i6VZGXTm2edQ04edVM3ogxIrOs7VFcLDLrjojXN1qmjbLNOmE9Zzbyxs5OzPnvh32eNYmJa83Prfu15mXs+I69ru+d9LnnueXGY9jObxhJ52toraz2KY78dZjMbpa4cM+nGtcjPLekSyTVojo23nmy6Ms3D2qTetT1b56c/RHXmbJxz6xqaekPeKWd6BIy6LTNzALltDyxrSK20Q7reZuHCm6ogroZ7w6Vw63lzvFWhJm4FOVhaonXKnoBItHF6y00yAJMJm0ycXOi82yQnUqpzplDmWUyTUjkLVD6ZTY0NyNKlE1LJCoVNOpz0RKLgaCmm3MPLTDGtEIidZmiaiJuM6WkXRpje81N51VQi1cPQk6lVDopVrKRVND1ZtmZXBRNMZpDNMiIdc9IaaCllqbzSk5yyNZY2mmVze8iK1S5uh0tZkVZWw2ITJIYoaokY3KpFLBVOWJ0glcuk3nVErNaQVEPU0wrU1ucNkDWhRZhl0UDewQqSHhEJtEmjRNIcY1oRehDaEUSNNsZ1jGoJ0wxU0yMdcrzc0yKKojSZm5HSiXLBFeVus40eNY2OTbBaNrzN5uCSzrSFdlAkoobGTVVKaEsSO86ak1VpToz2issFOKc1oeYxqVcDIastQYyLwhnpWc74Kny9dp3AZ1JeisTHnp1HUMazPTNrNxQPLz7lDNOXKyeWd3QC6luZjV5YUyN8+s43nrneF6kdMVlWJpPSqUaylShoxt8d8xkcOmvm6eR9HVcEdfbr1dXP38cbbS8c7M9DO3PXMXX0cfcl2s9c5cvnrd5reZ1x3y895hpXtnvNZu6m8eiMptbneOlPfBud5x10XDaUGabNWHNVC4dGJz10ZzW8K2qa1zzag+mRw6M9M8o2h2yqumY0m0zdOrytaKqXoY5SVSxpBGVuHhu4veSpeyppIOQrmk00mTkVMZSRM0SyKx0ylStDomqQM2lVtGxNoqmkyGVLZUFTmJKGah0mIqY0nPVDjOkct3cVolWqchExcY3o5es6Z6Z6Gx5mC1Omtg0Uk0VppmCgc1V52tU3NllVRVpKpLjOhVOIRVJUmzdmXN00zGxdTehUnoliKia1Kk4oSRMBQSNS1QCFVIVEBU5KpJs0qIEqTVCklmbip0cnTINsi4ol0U2TotNoiVNw3ETTzqVNDTVbzDmsqC2QhE0yGkwS8oTRTGiHOgnJ6mWJ1lFlpnnUVck8rJpDKWIaFYY2jOqbW8vLQpTrlobkl1lZO80mihs5Wg5Woa5plRYk01FFnTM+d6OediZFxpmjuFVKooKJyuQbRlmo5+oYKlLypNGk9BcfRVtln1YVMWs60UAbmNaIjbDO9bnezmVEFGjYl6Vnh1Z5uSNo5da0xpNsUiFeRralv0xE7Z7zzqtOW50l6FneWWHrhjbx1zy85sc+niZdOft68OnZy6a32Wc3v5nRjPZtAY14fVzctO3Jjtz410Csy5GWXTy7C42NGY3obh1hq02uVZ6EqVoJVd8xW+dg3Os6RrKKUxTMSBM0prclaLyvLnq9cNYd41o0hFNVepMlC8WOxA52EaCkaJkMowGYDGpp0WtZvph0p2OoolQMNEBNUlTpTWc1GuWWkUQ1Wgc1oSbLONVjU2PQ6zvQ0GpUkRDWHVZNKB1FKZBmUTEKKbNUspFBQts8I5rUlNYU5mtSRtJJ1m6VMDexXDhEGWmGiaczQEVI6pSMqAhyMhqk08pNTMsrM4uUJ0VZ0nlAeqNYok6N5hkixSOlZ6IUloQIallJBllFZWBoUucNktk5sk00FN1LpUTpLImxENKUXSpzoV56ExGhkaUpCRNEgMudS8t1FdCRvNLRQ5phkpUjGFeJaCJapEEprSKohYc891z1jpS3KVVAlNGV4bUw2kVA61mWdlNbGVlTbjNFClJMWI1PTNwrKjOtKSNcHo1ctKcPY5p1nUPLrjpCYE1z6XLmtKyrQ06hZ6Zyto3qCpc5xeeN5648eN+k/P6y7YzrtyzjYNZIvDOfQqUbiDSzVm4nQjQFcXUJzlMdufOjSoHG9KpA9CuL3msxUOZGBxjWqwrGunk6MKWN1y2EGzysunq9HXwr9OHXgequuZe2pzi9sLHXpl1PLHPRDWW0jh0TphhaZ5HUOajbJtQe8Bn06OTSsjWc9TblelVzbaS06Z7RVLTfOlU7IqWOemHRy1nUGilneHQL1mSNCtKtkvMly88OyzqtKiumUaPRJQlygC8nNza0SnWXC6oUmkooSZtllbG0VT1yJ55dGRFTRUkrOtJBgGipFDRTqSFadICqrOtwJkJMpV5iTdZYY6VQ0AqoqQWIKkGhyA3LaZMMsjnnpUUiA1Diybo6ZQ2yKURSBlhlCjQIpC86Yi4J1NyDnQ4YUUPLnbEaU1aJmgUJXONInShJpSb0GdOnnpMqpvMMnQqTpTU5XRDXFJpSfNGZDblkmm1kvQqTIavZMUsoTdQ0stVnpoKzbOptJaGVSE3DpiKihZSiKsT1IaKpqdFMEzVPGoLKjLWyxphGdjS2TGk3WacY0Slhpy6uGt2ePXlnWGmiwheu8xj1Yhld0OZWU6mem8twyVTIuWym2aM7GxUrVrDyBgp3cX0zedSFuWiz0yHTOaFFTKRQ6Z656yUpG5dM7layJrNllpzc+mVzvneHbh2ayKp3zKhippjlvlZWx6zzGkY1mqzzu+nm2s1BBOXljW+dQOqo1lVT3nmz6C3joBTbtzlUa1nleg+ZsaebrGO/Ma1rTPWecZnWU8fV6dU20nrw3s57TZmM9tEgqS5F2bZ1w9vLojKcFMCaLbMbpwqY1y6OmJw2mcennQkVI1nrNHTFuXo1vLSlEVnIh41JeGZdGPTWdOYNZegEE2nqVGu85RtNZ6GlCZvKVSRN451sJpcggToQFakK0nSNGlOYaciqU1rmOqmlU3lWVCM1IpgDYNFUSEIJpVKDapVDLWE9CYstxeSWXGpDnK5Hlob1nPLUxp502cUidykI1kclpOVwGUubSWOp0RodSarBaG5dKdc6m1REN005q5qUGFTU2NZ3GgaBBxFyrGagqpKpKaJzOgxcUwDRippBVUNZqqaQQhpJMUmwqVIFmQ6GMtoypsJOp0U5epJrMVDq0LUBnmVS8a0lPeW5pk5dWI0DhDQ4bRJwpvPLbJq5c1TmtgOKpxdONM0eek50QTlpJlVxKOpKVShQE5FTz01ap647azlNEukU3Qk57Z5U4cqqlJRQzNxmTz1NE6RrKB5W5NibGedwVp6bnSHA41ZOs0maedZhE6XnUZU5HdFuc50puXXWcqKaSrK411YY2N0UzplWpWnTOFtYcmOdDLRKJnMZ1UzneeFtA01pERFc9uC00pLpkzoKLWjTSqFIZ1yadHOOmmHRojHqxzZjjOsmzO8xGHkHHp3y9xyz0bcvYZ6M8m46dcQyKLyu1cYXFiNJuicdopy0vPojec3bjOh6sVpIznqpUbzSDaJ2zveaSmqIdVlrJKNAln04tj053lNsTQnWGbWp21SEo9FesuXGzWctGbTqs9c4gpZ04plIWKadmhzu0SIdC0E2qkU41aL0ZjWVlSyCMLVMmD0J56UFLZLcZQVE0XsSFTGUDmqgjDtANaMm1WazapKtFBViGHUtUVJVnqqkpFCHlMNayjZvMsKTlDqBooHvKVIZpFOKWV1L0DzorQ9ipKpaMaaRVvM0Vm3hcipjdSOam86JjGHF6htIyXAkZWCGm1oJ0lpYEyRqSZIAXDRXmAtJZbcmi2jQKoKoYKCqmR5TO3RUXsikE3npVQ4Z2QFk3qSFUzqZZtVooitE3DLXIGtXCS3IppDEVWGHOg1NJy42yZSw0wqMXQJnoVNsTKdc86rSa0NwwIuZIqM6qXdY2FTLnmrQEcaQxFMS5NkNIdXO+85vSdZzBjVTWyXSKpuUhMGY2zGNM7y6E1rMu822lpICMadZRNHF2ctXLrRmaTW6mt4U1GdBNDGkkXmyacqnBnzVdVLpVrPgr3K8nfn1K9XEy2iKztVCtitJrZnU54dsldGWsjOTS6Z9ONZtvm8xRnUcM5devTya4culehlp05vQpxN5Xmvl1nLvvC1iaNKjDTLGtd8KjozL1m3nes2VlrJaGqZvRnVyMBbRoVFZaGiZ0QyWU1KpNIbSgmGedb3L6YcVGbSNY1C0aFQaKz1pzFJM9ZvRiXEyXOF6ZaaI0loxA3NSgnJaEthMKQeUuHsmbWVxTKJpZaCkVBsg0dAmmc6GdS87Jg9ksWUJom2tExrnloGMJspVOiNKZVD0KLMRTjdVZ0jE0SpDMtjLqM1CdS7zpzcjbitAJ1SVJIAuLKQNkFQMNF5jqRGNJzRIzsdJDoEl5kmqlVnhsYgzBdqw6ESKZCvRM0sLVKrROjaFDWDiFRnSVzVSBQBhaa1SxYaQtGjmtjhyU1SGaTrOpMadJuRt7IKVSxDVSkpFNDGSGqHLqqy00DUo04zqyoiyb1EuYqTORUuepHNaEzWuWmdSUZ1OuV0Eqi4unUms1LVZaMzpMaVI4gAWlVRLWdQ9cybWdMkG2noeWubTbus9sqbdKunNDitJTYcodOXaygtNSVRBLythouWas3UZipWW+XpxtYdDeETpzm0hrLXEam4yzvjdbRc9ckucNQVllPIbqdK0M83O2s3sx1paMp0MOOe95cS2wUaFNlc2qyxq8t5qWaZjLbFoWsc9QUF4W3Qunoy4dzzdVplq51nS+/OIWONadHPrm6Nc8t8ut8tla1gmqqlc25ek11xrAtZxpVnSE6Kz3SGXonQNF50aJqUNSoylRoTz0zqVV5ctLpIWkU3NMnT0Z52ZZrSdlWp1jRJ6ikqVIpDus7BlNulFrM2k1mV5m0aBUhHKbQkgEC4pEhVlmnKWTWp1M6G4WFuSnSbGbrMwerOiyEkyVTibBnFjRTVUVOiJ0eHLQbVnc6gpQUpS5qBhp4VY2zdBTavVEaImJ6EDy505KkWzqa3lZ3I0E1c1KJMxqRhSrmhFkmnqQRTBYRjYuXoiNc8q0jRFWWlJqqSAqpPYlpOhBQoRTBUmqnKrjMEmVq4pA6aahua1MTqKChXlQh89FS9FolKllJ0madNmwJUKmAyYiKM9GiaITGtEtQCStJGZtZZKdZq0UoZqlUI5uCTRlHSZDuswCpNbEMytvNHpNVGWs5c3GpqHloTCtU51nztTLXc+feKSVYb0y065QmzuLczWdS3nskCY0A5CpZuXWdpzJnfN0yZopKa0mbKpE2OinOt8NXolsKJqcoqMuReeVO8x1mrSGqSJsNZmgRRs5i2dMtw9GbaxoLlIGZW0JMaQOVVeXmrZLCp5nGkRm9c86RBi5eDo5b0zWdZ6Pr5+zfPkWkZevnvbrz5ubrz8/Wujm6nNbZPXNb8m1VWWlN57RrWZ0w3L0Mmkg0iVpnuidxrLTTVeWmiZ0jLmrYxTRKVoMupDSbjdScxFXI2ISc9omSnomm0qU20kLOqDZFTQ3IIOaqLVChyg1eHOhMPLfVOeqzBnrSi0SLGzHWZpLVNMKkVoyVmVSwhDyu09jYbzKHnSVOsZb56Y0lOb0Ip6CGVSZoipvmqhbJZMg1hLgaZswtOdFq40WRSQFY0iSrVJFNSNDKoS3kYxRNtIUU0pqo1lsqucMO5pKilGqKWmKvO9DVJpCyyYVntNkCbOSqTZoGCNAyZRSmUilUsc5WGGKEU3FE01qaZUqws7baYtZc3WWW7jRHNHQgtFNRdUIQVKRMJUkzJqnhsiVIpibOSkTVVIqqQYg1BFqYToXFQEiZo1l6JluRuYi2ZTK5HRudZYU0Ai1x1ySLV43mtYpVKKJ1WWHZqUUimtFqtTpvOc2ZTTLTRCtVG0WmbvIdWnrLpiZlRlmbeXJy7VzVuZjUTN0hStElSZuUg5Zqc9nlzVGWpsjE05sa11wZWIakWmZpBaCnZZJOonvE3jU1lpGGdIUidhKqmxqmM49GGKXOmNa5mW87Z41jdAZfJxz0z6ll38BelpxNxnO2pq+7jffiq0rNg+jjwp5a53FLJu4yszppgaz2rCt4u8LSqhatolo7hxtOTTZQ9VVOkQtedrdRWmbVRcXhqaeiVRVxFMqJEaolLbZs0RVcayDmrI0rPSSqpVoltaKm4puXQmspSEJpimCTSps6RlTaKoppnqDQxZbSNCJMpcaMkqpDRNSytJ7E0xbicwgzoovQmZpq4veZcmXQa6CVPNMbQJNQyVHNmqrVmiyUVNUgIvG6YDNy0cspzQ2VUstNGhktJqbyoc6iWYbh1sU1JKkEmApU6zp55qpVuikE0DQTXNTd6kwRNWlInZQgpsBTZoihC1UxYDZukMgubC0kWIS5BqkVaOL3lTU5SaBWk1vKAFxpKTntONUrW8w4rKm0zltoE+WnQ+uUkstCrRNoqouKBXlzbVUIQTnK4aohmdIarTOp0DKGyXrMtMU24hFZSLWpWFVjarMqsaHF6zOe05craZDnKDpkCSnIziyqlNJGDbVbyhVU3NUVm2cgWVyZ0LRQmgqGkI0iik5FSiBq0qllcTRSBnTkknlUY0xLDoZjbVD0XUm8zRpBnsaM6gWs9ciamMa1ePSmdW0ETAXGV+d2cvLpevPs2mG/LqjoHi5zQw+Rd63fXn757cfOjrz83aljejfn3Ke2cuNuduY2wbYuNze5MWHeczvpx5ZvS6PP6unPfKp6ZnTm6MM1k60yrQtKz2786Sesk0NNTVJVOXMUY1vUV0zNVBOkEk5GpTqxm8ipaHLqsqGtpuzFU6TZoQKqcmi1KEvLQqhpnUWUlRTFTQqjDZDJ3NaEqzlsCQxE5qZpFUhpnUzloQI08yqLqZtSKlA40oG9FUn1ziaLmthsdJ6mQ0lUYZnSJbVVkxYWrimm6laFZaSEMGsRvLTiRtkmr0KWUnUExps3U401Uo20ymypuZK5pVMXOGmr1QyqzYs00nUVRTTGKikY62SgE0i0FU6IG+ekx6JbIWdwaTpYQE00LNcs2E0src3oSoTNlZ1OgtZVTpUy1TVKmgZOpoTRJWqkLGTbPRBYUFlSrJQ1WWkvC5daJEyctNEtY1eZItlUAkek00KgouULqaQdUkFLVM1OXHaaysh6ArOmK8sXkFQDK8Xlty0ptaIjRSrjWIrLUXF1vM0lqGjMgFVRqHPSrGquK1mQKapMiKFk3BJTQRYtOCVKhGqTNUZ1jOk8tZQ3y29JrYaY9Ws1DOmbGayihpVZE4xWd6Z6UWPS6oSaNk6yYXnx3kM5bx60bFhcjVEsGJjWG2Gh06sWnCjbAcjRY2XPTrMZ7PpnBNct65arWeO5eemg6crn05M612noixXvmnT2OWqVTslj5t467zvebJreZmjKRoTmxZYoqid8tAqRVIiTTNFTaK413nITF1NbzKbKhNKJularYot1m0FUjoFYyiSdTVXFxvNpFTNmNSS8ujit5bJ0CAUDqGzLciSxPUkLLLciZ7GaRqk40Ec1vKoKG3rIU9WZZRNDTUrMwgdia6ZUVOEvK6uLhAuJihYWm9EFEyxkk6JFTomqkWlSFRrorHSVRF5lNolLM6SpFSDQxpJTnGkTeVseiWxpTCkRhq89NhJSJuWu83oKiiEFU5WhsBdS9EzSyqWFNTWVIoYZJWg1CbptGsqpuknE2hFYhKlpk1RUmbhBSQ8SnTGinGXQRoqWMBTRUskAUlxlVptJedPPSBU08uNDyxohrU1oHLJzTiRuUA1kOLcaaM5bypORilpUxZSVNoWiGVpiVTaJpXQ5rRlacobobIVO9mVMSW88tDTKlRRFGZWmyms21M7LPTOpTltKqMta56aICikKKaFSmwcs9Fz1hpRjVStNZnox02IKooe8SoM6c1M8my3zpvTDeHVRmVRUvOyhJ5YIvC8NMmBO05U4eck4dLnSOlrGkhObyzvcMa11mnONXnq114tOd1YTp0zyrcN43skzw2wxuepJNDfLWEMm5p9MRppG89GE9Ghb524Jaoazm7xtqpc9dOU0WgPWZTnOnNRmAWV7569MoS0RrNk089lymNi0RAJTh6HWZTFRKlNRop5uuV1sytEts1kGqU1OdKdWUtVoSJy1SSJ51lt51qa0lCQFTaILerObjFcS8oaTTZfQzpBWh7y6zbU0kVEyylEjWW1L1JNYptOaTNEMosy4q5rOqslhkk1SYCqIqacUsr0zeiwNCillbh1FDwuNM9BLrKCeozowwi8oy0EjQS1JDrM6y01KkOWD1DVNJUkNzTnRFFNVTJ3VLiAJwhSGKFlJooVyypIqctG40aZuWHLKhUkaRVJxpQTWppzSVgQNY1IyhhoLQiAkQySboTVJjIiokmzLnJQyrqhOWopJIWUU4YdQQtFVTcsrlU4oJwVWbTyi0Wq4b0RSnNpnc6s6S5atGeq3FVcvRzCuaol6lpnoSm1oBupApzOg5FTlbl0DSRRAkhhGzURoqd41Whm0GKqLmFNZZ0FThznVGqKyTWs9nMPSWGnrOaucapSNGiuUS4I0gZuQaIqnDzzVJrWdTZSXmsYb5894mhhvJY9HeM4561yWuNZT1c7dBncXG16zhpy9NPOqTVM6YWPRmPE91z6LTn6YudMumDPR407DeXnrl0J2YCshNSaRma1SaMawrLNsw0agbIZOV1DIkjLreQmoTrL0yuazZoi1RXUXrM6Rpqh1nDVqs9M7FXFVWOkE3FVYjZQTQS8LG9BIisgq4uaaTmKdFAyrSnY6GUyWTKnZKtjiaPLBTTO4eWmjRSUpVqK1lTVXN6EJtLTyy3NCZmQVNSzYlSJ51mWiqKbjSlLY3mxJpOaSvWc51Y5VTqbzdA0yBkkA3nURc06lORTaFjSJyxCQtIvLUkq5K0i0mitVCOmWCKk4qnLa0qaahZnRNVKKc3MpPLDo5qlNFCaomdCLhtVxfTKUWUaZaSmOE02lp5nUvQ0jTSkyNJihqqTTVNxVJOgl1U1FMERcqqzrMWgGWBTaYoTiiq2ZtMRy0ItZSs7oEErVMDz2AVlhuSJsqWOoY6zoY5UMU5tJCqkcNss9YKDZlslhuaN5QCqdIzDTmBzmctkFZtWdyKTBuU9EskaLgm0aAaouWThyyVRz04oEh6E3a3mFWA9LjXeTPSIiNc8bvO3oAos0LOqeWpCaaU3mSzRrRZlbY7cmXZplgBy6LLbPc1aLEWWd252LOrzjovne8wsrt6URnPVCXTOzzlNJqogti5lJY1U0FXSOmbgreS4qmorEay+pCt1iD5rjbPdeV3WZQUvQjE1kQFRF5Vs5NW+a11iKHoLm6lWqZU6KytEMKVSU4YNMpJTZS1TZUzKyaRjjU3IQXJVDGQwgmqmwqdM6ZKiqzoQuXSblqlFSreVOaSs9c2FV1g9hk0qbzZNtQJqVUukCK0nCLylgCMSUK9UDWZKgYuaYYopqUpORVpsDWqaKjJiwiGLarRAqJIWdOW6kuahN4bmp2ZtmalNNaTSpVMNy1CcFS2m5bS6MzTz1ONAnlohhVOELkqlTVqpbPQRKpKu8tNhNImUtE1NVSDVNJ5gBoojLaCmmkc3FU2NchoaarOhYUASQZWmMlNTFkkZ2stAIxpnQaEZ3lVKa0mXQxsFTQ6SOE6m1ZQOaCplqp1S6jM5clWesZRay2a1bSOkmpugqdBTKly6KlxFTQkUmaTHHSL5tQ3oTQ0zpAq8qFy5LRGujIaotFJp004bOR8totUqUFtrz7aznOxqKnRzIOox3jOs9M9BB5xcvDOtKyonYaJTWXmXRqa41eeNdGWkhOMLl0sknDTTA128zneJqVjdvCipvOd+bfNLCtEbYdKIi4sNdZy1mYKljnpFLoLHWb0c6qeWtlpGzUJQaZVanZOmbqVnfPW5F9c1LzhazYytKTle041lQUc3TDVrOmsxeeqKkQ0VQQFWmV7lUzVgom0xTTShNlNBTcoarO0mk8yarQkxSLnFSmtTJpETYkspXLqaTQZTTUorlOgCk5VXUXQw1Z3FkMrRKQSGsstmVyNCpbKkUnKpsVMi6TCqE9BI8sUOgTqQuhNshwlDiam5BDJeekUA8yeW7ZubGUXUCsYVQSuaJomikqqUFo0bhlaJGU5TKqlJcWkYCjcsEsmGdObWVpIh57ZYVZ005KqRVNGinL0Jp1N5aEnFSVlrTm1okKKCnSKhlWV5avO9ZGTqqWqlNc0KiZuHlpM1nJizqpqaqaKBFVBdK8qaaGQqTCqKG4LUmtDly03FYWJIxIWDpNrQRTEiwkRRS6VKwYpLYql5qGaE6NUTU4ammkCoc6Mx0kGirnMAVSGxnUE6lCJyNFZ6LQVUirRSUReeHLRXjRNTqnTHclcVoekTvOpjoWkohTmZ2tMrrXm6MaM+jMczDfGtIBDPbEekzyjVMF8+ueHGWuHVmxvPFWRnrtKIbNCwvSK1yqtZztW2UbU2fRjUOpaO5pFaEtTVROudSXoyBRSG2suNY1Gt1JTV5p1Th1Dm8xvlp0ETWiXpGZtKqSbJwsa1Je8WnKNzrSbNmbawp0mGr0SqRJNCwGAdOkOWhtmVPLTGmoJ0UXmg0stSzUkzKgRXNKKl1qQDKoqHUlEucrqLoQ9ERtljV6ZabGqhKavRFShbmqUjzOS2zqbKGFBcUi8ppVNCpFSGlEU0u4JWmyEUPOypNaKKnUlU5WigQykAsO4zMG0zUi2lE6QYSLUxQiqLVIaGdMtCqo03lKjYJVM1LzIpMUmipKqkmmx0JvVNSs1QyYtGFzUtGO3Pw31E32y2TrNKoqk20uHmKVIA2tJ6iphKaYkOM1VNVN51RSrUSJJGuehMIkomhapVKppLK6i6RpGiQfNqbnoJqsyGmTBU20lVOXRNbzldxjTz1yIaslSlmwpFLQnU1JSypOiFJVy01Aq0M60W5WhzQQDaQVZrSeeibyrXOoq0KacuEipRKqpmhcugihqppE2GiZ1gcri8arK0mWsvLctNZlumWsyW/NWqY0y089YSpkyiqKyy0jn011zesToDEVlh0csq5OjHOsydOO6KN5869M+fUbW7TLo4nPXnWmXNkls8665knTMtJNE1jPPfXGWms3eVRpFY6tstEi2w10WXLmKxrGtTO+mb0w1cvN0VZNLO2VwlpnVaGnTObqNA2qajQVKWElTnW1QdM9Mi3hXnWHaA6AwoJolc3oRDJipE5cplFLJqqUoPK8toeiSpy1nSa0CTQC8nOWmmQDZNUjlFJpDVSJcs0TeBz1o8rq5GjtGxpXojSbYkKiovLJUkqnSiLWyKTwghhUiQ5psmm06TZQm9UCsnLmmU6z0RTTNTkuJbllSQtDJKmkskZoMylznQ5CaFTJZOWpaarKlfLV1F9sXNxvIqVCbGiElAhdZlaIWs3FQLHLMliktMym00oMoMKWOqy0yawdNk6Ewy2Z67yOaZFSVJzqbmqlXGZgmbc1QihCKpuWQqLNt5YRoMJzAJjQzQK41Rop5tCpJY5Ki9hNKGJVaYyKimJ1CHz0KkzIRaE3UaQmTEVDmqm4abVlkFENXqlukM22qWkqR0SqEzbzTlpmNKwU00UuR0lTVJwJQUUhqJIMtYNO8nVmdpjdmXLUimqkcy5KtMrpzYk3YmOeuRqbmstZbZo3LrPm9DG1DemZMly8NaxuVoiWPRkWOjjnuizeeEpcu2VzdavM1h2pmU1nQXMUk2VtuTn2xzrTo59d50zbSI3ooua6ZKlRqsLnndXz3WmWvXBUymt5tzdTWiU8q1gM2zT7ZU0A2ZyVLymVrLLWlcu+Ww756Lvzm2szqIrZK9CYtliVVDkrUhUmNGksXFkS5upp1qmkkaFQ0ylqxUXNJUhSbIc3Tc1vMxU5WTQq5tJQCLR6MmrygkmrzNGkXm2jzehyPLNNVpnRoQqETTBUEIYIcCxMRUkac1pN5s6i6m5rRAqwq1OihEukaBkyrlg1U1NRZAiZKWZIQlBWbRhbDQkaTmqCU1Aq5rM6VbAa1lgmEqFtJCiaaY1qaSG3lzKUpoKLVU5LbMawjG0DRIYRSaNk6nFyVJE6yXrMUKmTTDmapyFQ4RtMU89KFc6CWsoUUkik2qmbnK5spASBQJtbIHYwIF2mghoIKdQ2csImolqpyppkhzTEipNNUgVIbAraGik0ybQyvOiGUlZ1OgpqkPORgUZ6LKm1qYqzTGhMzpMKLWNE2MKoagSEaTjWbelZ7yayhqjLWMabqdBMmNZ0qq9uTpTRRfTGeHRhjoVpFZ6XQROiRY75iF5immWel5DEkcOnRBnosEQBWGWcc+0aRpz31hr6OE475zCbwpTdY6UDqne8c8aPOlUWhrMaN3F6ziZdk82pJWs7qsykatwkydZDWa0hdM3lqyzdQXQkdsoIw0S6alTs86AhgtW9gJwtJaK4ep3m4pNoo1GhucpaEc1LAAu4rWVNTnWhnWi0mimpzMBik6SApm1nVTZsilRASkjeWHWY2iSoLYvOt5UXGNTogmJsMrZIglbpDO5Z1FUVD0VLUipFLmszm8mYzNNJ6hJlQJi4IKmqmhTIzM6DYObaQKVzBWS5EIm0qAZTFRz1oJaCLnLao0SmSis8zm4yu87p3L65aco5KyyxDYp2aIqBUtkVOmWG1UGkZZTWVg6bDYS0TlhCTEBU7mtkVNlIIqIqqaNBQVJUVohtLTiakGwNBDBYikNECdCFI1UJMpw1JUXmQrqUBNrJtEGUuLRkVqYJKaTJjJDmk5MavDSacXOVtKtCdOmYVLLFTWVgbFSROamrQMWklIVaTUaGEk4qpgCoKMJlaltpKUMkSpp51SeV5XFAlK9EGmdFE0NMhyMTrFZbTXNmKzpaw5dZ2yp1GWPRItpVoRSVla1UGRaSjC6zTaZaYly6Y15PRO2NaOjOo0UURx8u2fLsXltl6NMte/KonROddOPLQ2ql0ty6+Lqcxjrx5a359s7NItzsZ69MYJ4Z1sZ7NoZ67xzGzxrUjXpjKOjItXF6NZL64FaTLQrLMbZtitlhw3TKstXszpGGxLVo0dMBF5SpNBUUVZ6CToqZtT0zQys6Rlbm9ETpGUpVRnoqKhVohIVDpgmpOaAZEsETVK4dOWUhUSm0IJsDRNMqs7llU2SEU6kQY9CZNMHQymgAqGbgmymanM5apKpw0M2FKtE1FTFJZrQtV52gpBITcKydQVNKU8qB5iprVUVGgSfNTCSppM21lKSZVIJGklFN5Y0z0Sk53lpLOqm0wIJ050U2aJBUF5FoD1KbVZLWcMlBIZSabOWNKsKVQJWboFRNxWsooaaV1I6rOlVNKtUjRJXBXWemiVSkmwJTcqWZpKmZtIrTNCm4FXFUrhkiQaB1LVUmzRIwm5vU0CUgZICJozZtrOkN0lcI3NjBU0O4ZyTVDgmUU0FNXOhuWzYITcEK00OkOLqcINVTDdncPNE6QJDnOqBk1S0O4qESDc2kRSqVQLcmjIJ56pw5tzUDhFqlWhxpDJKhIvEaqG2szBac86Y3N1AMmcPPV1jcu3oS2zTnLOeuNWzpza4Ll07Oji16c6rBF2TnWsVDzm5NJzeuKRPRy53eZONdWnLW8djl75nPvnKWi1GpbkNY3lU2EVGrKmay6VbAHA5rYIZRHRnlmaY51LytUmVToS0nTtzhaIlNzSopZbUO4ei87EBNkgy1KktYQNIuk4reWmVLGKQVQhCW86eehrJNzSCMNCQmmV1Tl9Mxc3llLVpm8ctpOm2mVMRCqkmUxrYkVmYlRQqVyNamqVxUShikTQWsrE9DaWpMMzTSAIXcVFIWlVNE5qNVIKSnTETQ06S9EubywqRS0GnWdxKqRc3JNVmlADLFVogtBmxKjMJIXQ9FJzoqorRm08auKNA0USwkqVJvIdFpCJIGqSQhrGmFJIUKqK0ZWnlpVmluNWTRoy3zuHLVNJDSCqcmgKJAbQE5hVOVhLXNEKbQwxiOWiCcq1i6U1MNMlzQktUKuCtFS6ZaqKQPLLJzIokTmhqyz1zphxSElCgTNOCsGyM6zXUVsTVMAkdRRRczNJOpKnKNSTcjISFSwYZIjbKNJdUZaVTHrLlNkmYQm9VTWaZqnz3OqpFnSIp5jopiOiVnoMtA1jG+edPXO01w1ziK8/t59LBQ86zGnLy6qE51UsWITzsdo4eiDXPnq21okjarS01mduXSrlRq6YFrG3NtJRz3Rvm6yx20w378akiCrdRtm9CnVxFkFZcbyNSO1530yxaazGkjRTZXJCGVxz23mhtF5jbG+mXYdcqanFbm9BISh55rE2dSaNIaRVFC89U2dKuaqlNGidWKdmiEicGNDVEyXDm5Zy3UjQocEU1VS6YaexEslnoYSyNlIkWBVCEAjLRcorkakCUh1LpVLAVYtCuWkA8aFUoqlixVoTJJoBaGhUtqmpZVKzUrhmaQkhWVNDUqWhLSazm1z1FASqXINJUUqCbHKpvEgTUKqJY1Ta0CmyGhhzVU09kJrM6SppOkyBsTQKlqTmpSfPWkUtBFxlppIOapAhpFISwncPY2qYzYRU3WbJKkXKcvWXNjJOpWe2ITQs6qLSTedi1JQOBqocTTkVU1VTOjRSoJbGiovKOb0DZoSqaHN1KdUkTSQY1Ynommql56ZU3CDIy0TbU5WqLU5tJYzZOigaA4oz0Mamk0UXOUadAPVmm80K4lyOYphNaZoOZnROwmspXSWhSFltk7GZzluFlh2oqJRpmrPRbFj0ZTSmixndjDZCy25s74/QzrOtJRrMDOennq0rLUiGkNCI8o1jh6Y0zeNWnWsrTLZJqSKuNdmWk02plprC59efnvYmt2XTyg9jrbtx5nU1qZxHVJjW1YaNrIWaV1oyVonpF7HTOmFnohjSKm5ITONVx3K0knrNdMsDQyHTE2q8dEYNFnc5VQqoK2OKinFrDciQdzSaqW4espOpQ1BFLGgb0SBlJ0VS6hrIKtAlQ0RUg2mbzKaxoaTNyyJpUwdNqt5yKnGmLSoHNXGhoGhKEmIqhGSjc0UgUhyKaomJaNJFTAqWGUuXoTHRNJqikVuXuihhBSEuVquGRLVZcKT56YklolnLWEvOqFUsFSQwYKEalsqVEE1oVw6YqZTSIaKc1NDQLKzRq5Gpm2gqc1gmIqcrqdkyVTTRVRpDpXFSa51vDlVMtMkFUgKHLZVNUrl7BuBaJIc65ue3MpoJUpy6SCOVUqNUSaRWxbHDWV0JErkjXLTUxXolFFI70Zizy6ZWsaip0pXNaBEsE1hHJQBTclJt1NzTBIlEk04aXFEAnQA0zcZQaEJTTZWaYvKSkxqRQ5WZraHWiLQScLGtXOehTrA6Z1y1rFM1GmWxazdOc9BwhiShGp0WqZMzJ8+ueNuNFlxegMm2CXnnpz1bo0UldnKenGYLB8+Krj253pONS7ts+rHLRo8Ky9O/L2d+ONMy89TtnTy0jWXeezZc/ZnOm/P075YRvOpRvDZ650M7c2hb3FbwqecbY7LVmZLlvrmFvHU+fTpkVTV56jc2srloZTDV6GEuXLJuLWidcbrVK+mSG6lUsoJFc0tCsbS5upc0SqZqqzsmrnYkqwk3DC0KmkUK4pVNFKaEYqLh1claE5bOWqJJ5pSZVI9TpGwJrMMhihEo0Q1WdbIsnFdKuhFSFcNVOkgslohyKKnKxrRcsRNBBctcWtEU4yu8nTtTWksSaFJSrRDqYaFMVGnPWbEQrGzuTKDVA5KhDIGQqVKpbA1RcUk0qJkmzRNaBORdRdSrgiaoUk6QqKbmtUxpBDAQFDqUNA95Q4FgyE01XjUUmmuWtAh5U3NNXLMBk1pSlpJbnLU6QymlmCs5E6zSxtIrIQNLKyw5dDCm4pAETcvVpU10zFSYaGulEWc1TTqEzC6VaFGmbQWuaVN6paKm0U2GgBEFJJuXI5qCpvVmxEwCSZMq4JxoqhyxJaGaVVMaIZQZTSYQVwMurmW3vMorLGPRMxNmaOhDWhw6Q5hpDLQK0Weq5iMLVxjVzUpc2qjPac64dNaxu2sdY68HJbJNJGGvPbrj1xV5Y06V6sVrNN0aK0z0cPOpHaEg1ihinOiJ2zGOzi6W0E+3PObeWbMSz35ts67Jb68ZVxOxGvTPLPRz8um+b21iGKq0xerbLSdZlVHPTTuqmVotw2Yrp3jW8tRtlYjedFD0AIRzRTSxrepaK87qY0QiCi0kuG2iySpo0ITyuprQ4bqGOpHOdPOmQmU2zY1LiQedZlrNIVlpKtic6NLBGCQVzSE8saRdJumclbIVTmTaGpGjljAIhTeVpzotNUmrIlrU3DJwwW0ICWHRqehabaKFGkNahNZUySIowk3JCpSgKqXaTFAic0DRVNSzZSS2NNDQTK0krdEWZk1UZU1nTQ0amqkqapg0y1lBwNCKEwqqK0KaRJzpSBJSSmnnZaTU9BBWYRNXKqmJtQ51VNCQx5lNKpqaFTc1NCLOgwg0ym1ldZtrlpEMFMKbSqmq1l3F9SJuMWkqVpVOYi0IBTaEedqYilhqsrKhGwopsy5pNPM2TopIouKqkVuhoJUkTHNMUlcNSppZUpnLV4atNp1lQZQd6sjXMotUqRJNqczU2I5mthVvJSZNISHlpz1NuN05bUOUbZ4srl891cSjZnO2dZFoauM6Cs9KyqoqpzKC87aL49Tl30HlvSZ6OfSOmJTrG9ZDWJqd6xAyu4pKkGkNM0XfPs7M413kdmsrk6Ynmp1y6dc5LfPXOybrNazebB3WNubVLQWJtHlmmiVZZvGqrPXKntlrVTR2wgM07ZbNDl6KAZMRNBTm3omk2TaIipyupaTcA209hLIE1VQqy0C0AmIJ05GUOhkgKyL1JEZqimKjSSVqaptMKnQ2t5EypB51DisVsOgOQh51Lc0k1La86ITTJNwzAKopNolTQmycgwCJxoVLMx1QI3DaxVoQIWic2kDTKmsaaYkVN50k3olzZTQNAGUGyVTWhTTYapFUXUuRlUaZbSOhnVGaKQVZUC2ToYwkqKQTTigSakhqygCWNoTa0S5uhDpEXmmilCXoFZSjSamkstWjRNTcNJ6ZNJhVm8y0i9RFQIleaKhio1QoAJYSxiJpkA2I1zJseqql7EwSc9TLJFZRpsMEI0wG6yooY8KVpm1WhOXTIdAMVUtAlDWkPWRiYYUJlEpjUhCmoNIJzDVzm7yKnnUtWoYk1wlNAIpuBBLKUYjW2TjbGqKstearKmVotYUuUzchoIrDjbjOnSCoi2WC6MruM46EmjQRFCkEFw6Zzy7b5QzVJsKzdMmBWk9BriJqV0dMcj7IbjOjLnrOtJKo0zZbZ3oBFXnrKTU7RMWhuLvRDTSZuctDtzF3nouQZE3lkWeWnlZrW8r6YW+Nay7zeikDPTKtBYkJViS6QKnRUlNFzpUlJFGkZR1BMmmHN0nNIpZlVoYFVJMpgkQLLRNNDYI5pIjbPC2mwRQ3npKNy6oRoHKKxToTTxoE8zqHqcq6ildKpe83LTIpVLAiKdE1mVrO86pp6ygJomkTVaEqkXncZbapJqKahyyoQMQs0BTNPLLFU0qzNTWhMTVLKgbwzeekoTQc1Gs3n1Ac5XLkrE2YGompyWmtIkykV5US4KmqlNDNBRLRXLmnNIXSewZKTTosqRhKJ0Ok2zpotAjVQxlIZig0DalWm2S0jEJ0wyUpJUnmc9UDaaJqpcU2llqLKHNwppVaJ1aOWjYtTCNFkPK4qc1NrUS2Sz1xEVRhLzrKJqq0hdMhSoqarN3nltKkbK2SCJq4Z6ZWgMbJUY0qShK4mVTyzFqoIWNzrDnSYpLWdAOoawWi86VUicuNdGU557Pmu4SAgYz6GL1y11lZapMk656xq6bneuYyWDi5vGstSgSsZopJaaNSDmIzrlmbz14q04+fX0K5t3GlYONNMcW61m3NUtErp5tunPZGW8jzfPVyTUFmNqd1rKWhWbLiBtmi0aqNZpKsuGiRqry2QcvWSbVR0c5NZ0YYsdVSXTI0VTa2Fs1kRdTeVbFeemaQqm4vZm2srpXsTBFFGUikTJug0jYIZE1MuajLQ0lSItHK3l1lck0FKuRGinnRlU0ymglXlsi0xreaVZ0FoZTWaKHlGPVL0hgkAqRrU0zJpGIpAxqXKKLWdNMCxGpXz7wlSZA6HLpACUqRNw1ONGkVUhjIcZChzm6ggKlAoaHQEDQ8yokEoRUKtFiWylU6lLeIJdWnOpkvENNpc3UlRTqRqm4ITQgOpCqhiyjmiZL0W4NADKG1ly0aoqXTvLTY4LplZaGistINgFUyXqlgSaoYTeZZ6QSm6nDQM003UJ0UVNM86cockwGVzQDjTUhDaxcbymGWW0Wki3KlOIkDSCM1UpJtJmCzXNG4JunjrJNDrV531wpZlTl1Nxa0SnLSWdaSxIQ8ubDKKs6eOmedoKGaRVFTGsqdm2UVVRpFOlJDRK0z0zZy4ysmh3ResOahgihlNZRlVWGnKOszXPUJ1lHndaQPZGkBbSVrKVlcpoc9+ag59+cvW1k9OYJg6nXTEZ6xtO2dXpz7WdBVFaZa6xrvgd+WROvHplPRMGk1oJtpFOaY60QMJRpnnWjm9Z5zR50XKctrTVnNMsap5Um9E0ImTbS6GKl7CxQWnsBiITIKbElaExpNp1FDqVcU0LKUqpKjUJkTWbEVLLU09GbVi40WsxpNUqi2Sc00IqSBELK0Tmoa1VWdwqV6HLW5S6yyXFNUiCHVKoRCvDNoYpVoJpNOg0ibzyuanLTi2TUpOhQ5appLFTqabO5ZVNTRQU5bZDehA6U3JTTnKim2VQc2nFNNCpplGegRDqU2kHLpvN1Q5ZgkbTpppqkZBSaKETi1SGqc3nTJrKhyNTRoSqMrG2kazUSaFQiabas7SCbopJqVGqpFUUUQCQ0zugS1NpVFNYWhspDMgJhjw0873lDkZbWWpbSU0LqVTB07itZBPU5uSFQkosY0gYBETQOZSyuaTMlFUN06RU6wagVQm5qyKRokbh0kuoqgdKKUjmoQqmYqcLy0xHTPUrn0TtKazy2QNZNxLbpqkmesXOV1NIQUGiytbTsoiwkU5aB1KTFMjNeGmWNjm8sXEFoqpoVQWk0mrTKtGkk2ZKB8fRzx9N9HO94vi9HLoLl66biLrz9ZXRO83lRm0g6LM6ON50hVGu2OnTCqTRSl5mOWKiqHIWglovHowrRAT0h7ETeVRqmzYsLc0itKnFS1OQqIGd5utpHvLqa0OstNDJvRDl4RxTFSNY41kY5lzRTclJXBaxUaKc1UlSJNTlsZsSVZqBaAc1FyY1ok95QIlGmeNXDVUJtRLpaZ6UDW80SU5HRJOXRShGpzaiNRUUg5pmNI5ZTTlnN5k4dZUFNAXmV5XupSQ0OhiZBWVpzopFUql6Bpy40iKBM5pElcFKbHNj56BPRNSsukk1oSaECwlNMqGiKGYPRJKy1UOKQtVxU0KqzRpnTOCmIpUnJhY0yVwVJyLFTJiidFNWmmmaWFuSrcGjVJaLcprJEdSTNCzKi6U0tg5Q0IoJdCoKXFESAq1USqKSGKY9Cm88o0C01T0y0RjXQdw4TE0qpwsLbNVRZMBmhiZ0iStFFp1NA1KjeZpIbUlUhtLSy0N6ygdDBJTDUWnQOYhUY1MXVZgZVFiyrqMKoNZ7Q6aLTLWKrMoEjWKebY01espiKKDK4eU2BmnSXVY3jlqNM+enE1nQoB2mBt5T1kppClMay5oJK4OXbPn6cKw7MdJJ5g918Pb6OHPj2cXLb6MNKcaaI9Z368uWo6eeo2yveY1cQUGhp0mVtkKzQJ02ZcZtE66EMRENYTSKohupHRSqTJiJO5aoaaZs56bS1mtM9dWky+uFtlaDT0KWZVRFO1bS0k1Q+mYc1nUtLNaDUwUDJGiNKgl5bSNE6QZaRWgM9IMysppnpsmLzFpPDGiQgkVURovTPXYnIjzDGqEkAQ0kyEjNTU7rlwWstNqlXTIBTlzQmiTl4bQbBk1NuBGBXFZ6qBgU5RpOaTjRc0hNMqaWGa5pdJwwHIyliFInm1FzMaRRTQ6GLRWdzVpBFTVDT2TclSU8qtzsTToSCHN0hNpmjKNFCHmYLQ4FnTEFVAim8pubklNzmJcZ1tFTvN1Jo0zo2U5VUicraNVuKQpJmqlGh5RTdQJlTRolEc9aJXoSQWkqZoh5mxMTSJMgaYmLDQONKblaGoskUquHLWpspGVLEUpmdSk8NKs9l1LahGsqaMaTGwgqdEkoYggq0mxLkRJlcjabgIEVI1lgYIxwptTkujKSaCB5jZFywvWVOmYJtLcVJCuSJuBhk82zOpJRlIozrG5vC89JTCqRu2Ny6VbyE0VZ3FWZhcmGpdsUPnrm032LPXPXeM+Xrzzqd+Tt6E9fD1uLyIA3W2ilBvFSRnTpzTbSaNreWIpUtEmNs6VVk1qbwqaqIqhpjaJzphZVbGBoKlNktFUrWKitBpuWlWjpmSqKaS2N0NI1FkWyatFLKTFUDOegqNGhS0KaKlgKVSRUk3LSMCiRiUQhU0UlxUsrKlotEq0MFTm1rI6DGEpcZbBUDiqabCGTy2Gmw0LOzMmybKnrmQeaZoyqh6FFyJedU5Yk3Cy6KVNipAjRBCliqBKqabZCCoI0WIlDRJUiQIVQyTkYAzU502QNUo0jC0OrTWxDWWidNCl00lSSIMustaKlOk4oU5YsaRIeVKipYEXm2rNzlty9FS1BFGVXGmpTWBbuNNk6RaSxU5pU1c0rb0SnM0TSRUvDNyqtp7oTMKAzDJ0OajKDYjBIqWKRVNxpogclZNUXz6MnFZrE9iaUqwhNzLTjMRpIpiy0I0WD3mVanLRXllWaMdZrLCuSqhby1a0RpmY1TFoRpBIqKkJzq5uErPSBTGUaQ6qHmOyloo0zzqaaFK0VDhrhxVuKqkJDNrGtCKic9Zy4U8uHS9EtAPOkx5SLiVVEPO4at8dNEUOiJRAyuU1LpzbRVbY7LpmGjDHL08nPpXXh2wumMuvFxUc9vfm69Zl56aHIVpnVay1S2aIaIUjbyvJVVnsI2gTXPTWSaWqbVFGeueUplApaplY0zO816RfbEZ0+ek4oS5ey5ZrLclaSzeabWhTVCIEGJgSxa5WbpVBAVRLepOFmtJ1FTWVxSZjVOLVMQjkdTpLpMVA1RSKIqcoOxhj0IkKYueeqGmYCTQhaRVtGguK0BNUwSaSnqTVZouHTTmhXIyUZnFGznq3z1NCamoi0EtyNTRopIS3NIEsSGE6RoqWNnc2Mq4IKKyoeWGXAKW0Qqly8rGkKQycvKVLSglqSbKdIy5XTyjQgg1KaWWs7dTSqCWMlUZZvO8KTtotrQBSZjMpQtCBZapPeQqGYtGItQxNQCibVJiSbmhzoRXIqFUE1UkwJStVNBQIRKpxpUVUlQzKzTQSoTWUm5LQlaqGRI5G5m6UsLSBMqzoqlOqcUzEtTqosuotoVyM0qoaGYiHNEipoJBEXnI3OVxclU0NnUVljWLhRqlcVMVFwRIs60lVTJVUKmkcNajTNOXRmJNxlrO0Sx1y5605tTGpuWzQ6lKRtgii0JpCjaA0Z6jzSIbOFjrp0vGNG1YbJekzZJ0MpUukqnMwKVaRoskhaRcplbyry0R3neiLaKbLSZtVSJZ6JaKkROXA0FE0LZmNcduNGmFWhGobRDQIuaGawS5HR53oLx0TVI6ZHBlsDYgokqyHRoQaKThZdiK2TNzlbQgqjLaFVBOpXCw6INCE8rCtZalsmnQlpUTcZXSbOXCIHjTzuCdRUxpCw6SnsyWq56LzrWdEV0ym0jSbUgoYqQVTkmrlUSCJtSstZahIZTi0ytSzomLQmmwJsNivOqRedWEtcVnm1E9ieO+WUnUrSCjRWUpXU3JUCeNUUumXFzSqDGqtLWaBNI6JA9EtyIhikMkJiqRVGdIqkyppUqQTBs05p0LQNFOKYphoTHCpNlSbAygQlxUVVRbQqnKyloJFlaQTz2ymhOGNMZ6RlGypEsNCbUlKMGLi1Q4ukmUCdVI0acMzN4bmQnpGjSqlpaBVjRNU03NwZavQJyzFIgMmiatImmhzaQyuUVTeVOKWNNztowRnz06HQ89WcuYSFjVzS0QwzpOLJpDWTSHPshqkJWVhKkUs7zzp5tYYuXz1WbilayNXg8866ryessvEtZmq00zegFKSMy8es112Th1E+jnrphaTXOrLSKq4uiNFEOlTVylNrQaYlaIUVrkaqY6ctw7g3klVlKltZL1mdJbNVNQahMcbFnpljVgFQNJy1qcdaaYzqsqqr2cxqYcqTy3FzvNorZDoKbRoL5emTO6iVpBQVMqwpyghoGlcaHNOkNMpuMNNZtrIFSQzc1AkDbS3lpqnOkMFTlvOxM2LOiQzFTIjFlZNM5uUob0A5SmTqdSIFQV53AlS8zcmqhCNJzDFlpNI0lmYMSaGY5SpdU0jRTRUlzTqRtM6hLmlIKgTU02nMk0SqHTcktijNxfPWiS6ZYOoarCNVszubyq4rQ5YxFSTmnMUjMS3UpXlJvNmk8qTeZVF6hoi5Zoc0tTFVTUXUuipEybm9CqFVzaajO0aoWRBNSFam2hXOZ5azTIQlp1UMZxU5qcyzKmkF5YGquNM4blzNRRaTUbBy8tSDNCqSK5rmpl6QJpLhCLWdU5reY1VNGkMnedbCaUJNZU4salmhFRLRdK89HMDcksiXF5QIYzp40gCLzoqJvYZsISDSvPSs7HUN1mzWksnFDQ4h1npMzpFQ6jCSTleeuWdONZJRTzrLHpwNO1ROS4zty2kOkSCEBPHbz76xvbmtdGvSnjbbsRG8TnToiG4qQ1OsVl2zgGmrKWXoAaJuCbnoqVpPTMNsUJU9M9Ioy06ZbaakzQCkDOpxoQsa3JOuXLkqSoZqbhoGlOs0MJtD0F51sabhAUtIvRKpyTecEi56d53oUozptMm4rQq5esRBrKm5yzc2JnpOhA8qpKKFWoFJUVLNOUtF0kLUZ6LKpHhUMwiAY0pIrm9E2noQKquTRIjLo4egAqFpONJtIUnoIbFZ6TlEyrzooAq4ToEUtFbSF6yppsk3STVU87hVFS0OlKRWyUEMSaQgFOagkxZbE9ikMNjN5TBi4bTQ6JaJqpYoKzE+bSZsgqcaoU1DZhTpNjZpmTFssFoQgapPQhqpuLKRuhM1OW4YhilTCmoGhU4WKhy1y5oJooGsaKjREqeiZawqlTJANTRoy1zrKIqlNOkmUnU1FpE3FUDerNVGGpbIBUOWJSNDc2hROxjTKosmnKCRnQJ1SEzqCnUXBNSw5WWiAmATJKmkxTV1FU0lOGubypJmNiCihQ2CAKopLOneeiTVzRLZZZ9GeNZzouelGsM6c6JGs6ynTPlqrL3nODoy871pCdI6ZQnnUkDeZWpvrjuuwz1yr68Jp5pU0pTkypMzEUDjo6VVpGsAlhsFqKSCwNT1i+mZh1hM6Ch1cxWj6Yh3Gi5apVFZZZaZKoxpMMtzUaLARptobzl3NBNQVaQRTNQ09AK0Q01CrUmmEzU5Um8sUpGmmgVDVGk5kwFgtA06jROkqzZtGUGUxreZbMLmp2DdUgVFJU5CZQYZJMLl1ITVWmbzaDZLpEE3E1N0ilqqaGM9YCY0jGtEGgmlKAzIaoAFMbIaIqaQYam4cDU1Qimh01SpNKbcqCpKqG6kCmh0TSGaLSEnlm5BKK0JDpNFMh1blpUMapqWElhqagnUVSJsQc6Hm5yttFGuO+ZCexipoVlIpMS0JcXE0qZRaQuSqVGgBqgKTRmSCnnYUUwRDRKkQMpUU2RUimMopWKm5RKkM02UuHSuWzkKcU6aJqiSpAyy7mppGUqWzUuq0zrYmCFyICYtyIAspSeiBVM0BF5BaZ1JPO1KaWGrg2NSFog0FRqSCGqLmqhooEc9zcMbqb3lTNC0Ji0irTOtZck03DzoQFE6rDJUVNJy8rzw53KzvolreGqxLZy0q4eiJrLGpGWsjVdynGrmVtKU8ZLVY6YbnNs6VUwgNqDY4tVK0dc+ujDJ1NObzHRw2HUQOio0im2lHbDJeW5qdCVThd5005aZc1gZ1slXTAC1XnaoqNIipKidDmyaLcFPQhqptOqlNKJmraGSYRDeXJt5R0tg00SqBE3hcOmVQ2GTVS0Q1VJDoaElplSo2BU0xOkKMraMstIVOkZZooYpiVarriaDQ4vOapVEUqqaeerVIoi8s1xSyg7aE1TTVOKRCbEcXSbNBLEaciPO8rSpAJqwWqpZFTapTc04boTKiihljSoa1DisxnYMpmW01rI05VZbNDcFSGjGM5qaU2sKmm0Gk0pZlKUkDVJCyu89ITL3JNI0rpMhqaCTmqVwNVS0aKZNEXI9MjYIixJbSFcYXSlhuaKnSsnTqKCiNUmV5vG6aaOXKObzyttTLclauNCI1y5XIRLJJ0ElNlUDqKUiK0MXLraZrWVRE1NtE0qCSqzuRVoKWgSk9kWlhpUtFoUZ1k+e6Tts7KSWyFon0JjSMrhhORZZKk0IM2lZXsz0l04LobIArROekY1GiQu09ZmoYilZQSy1noNkascqqSqGkFpOWSiljtkIMrHQXorkyboMWHTg0TudCRc6ygqoNJp3nVaMbmKgnSoSayqcxOyzqi56ZAqFnaHLZOhlaM7i6JaFsSCtVjOuPLSseV6RXTKimIw0FZ3RDqkmq0B9MxQE5aqaVCCpJeNY1uoN5csypXFIaHaaOmYFWWRyUVGnPTnSeg5ERWbJsKYGibjSUw0JDzUBoqQZTUiy1Ga1zwqKnGqkYy5ZVSnRvKfQG3rMgxBJLQ6ltVQLVKqcrHJXLWi5c0AFNoqLy1yzaeoZCUhlMVONWCZlJHLgtpl6mxuUBKZVQUNnpnpmlootKpqSibQqpRJoGxm8zQDLKaQcAmNxc6AQQTQuainU0kODGtEJJVThQg0aJ6yVNsTRoilREVNNXFOk6BrRU3LTogpprUNUTA2SCJoBmh5oFOXSKWguHTaVUmmcoJUyUhkpYI0JUhTVTTcqkwywE03UC5cVc6yjlyKReW4NN5woMabQlyNnUJGDpJAuKdNDRAhacMNVVSOiawKst88btpxLoioqdGjitDy0QxS0LJOcavO4oLKy0FNIVNlOVcvQmipjRZ0ymkl5o8tozqZqsMRtlSsVQ5WNXXNpO05sKJqkJSJvNBoNjltHopqNKjSNazbjDprz76w1tKTcFUhtOuVVd562ZjVas6NCQPWahumlpRFrWVNoWM1SwIJqs7RltxeyKgwym8suhA0jZM6zlFU1QrZUhBzSTQqoJbTMzHWpcVnUVBVc9Ca2URdKLWXPVOm1GxXJhHKpsRMTpvOmChkDSXLytj0TSbTrjZDbSFTqWTVzUMTU4SLnK05EBkmOi5ey8qiqtNJtPQ1VbJEEQzK51zYmkVSyiobSqMKpPQIdBGlSmhE2UiQ2EpVCRxSF1L0K4upZVIa0BNDNKabl5bi40BF4UDZJyVSxkwJkXTJrQ2lQAVKoZy6om8auWxQ88pSqghsS1mpy6Eqoua2JoRMBY5QIrK3myuovoNNUhoqScMI06IpEqyq5YMtokh5Wm0lyqbqaaFTVKnLUjkIbmgnTMgNUtA0hJLDLMhltM0JXNJOxyIvKXIjUsRsZTpBVSNA1UJy2zqazpNRVuagcNWIpOpipSm87ZQ6khiqwNZcq5ASALKqSmackTU5VvnWiUSLdyWeiqlUWjmzQs9Mhq86FktBDJS5zq+foggSHK4eNZbQVVwq1mLIltoNEVEjmeTr5e+rdNnm5LRaZBPTnqVqst4qaQzo7TLWaaaHBSUKytBLKpUmaUlqE7zQ1RLUtS8rmoqnFkXBoKgIis8a1is20oWhizLRzVDUVc1BK4baXk9FTcU5Flq5KonTRKco5DGjTOqBm8lSVMa489WD1CLTNsyoaaaqSoS0VUNkrRTU0Qw0Dlk1UsIYoapqWTCWbETloUmhSdZnQ+uQQljnVNUAAaU5uIbQyVJNDImppMBI0TVIipMSNMryoaoSYitUhiKyWbmiArRNTbKS4BPUidBlXmAVI1ncCNyQxM3LhLSFoHEtXWVOplElc2kbBosZZBWVy82qZrC7l6JV5DQgrkbKlVSm6Wk3vKhoR1LTSos7azW0dCpGxNzAqBSHSuRHnpGWgGaaaWjNaa1Z3LzNIqppU5ZRMsRizOaFKgoYIqlDSuYkEKlzl0EtDTgavO6wu1SVRlZRVNzvIkE3NsNPVM1OYpaNlG2QuXGGmhik2uHNXDRUOdArklU1lpC0Fwi0lDPO88peeg1F1vOKoxrO4vLNoQqbYgkrtGsiqtUTTyzGuI6LNjpBNXWdE0FQOsvPZGGk1Lzp0JuipaNE0yAZSr0GdVdYrWSsy1oh0TmnBnq0nfK2YoK7x1S3JrNgkpk1U1NXFJi09AmokDOlSqobdQxkJ51pA8qimRNDMtaJijKDnNoFdCZuah26lNVUNkwvVBQBcvYo0kRS8tOaQaNAnNIKxpUjYxVEzrmKuLGoudZgqcaqpreVACrjTLKqUqk0cMmKGQrNmVXFIc89UqWiLJy3npmjqbkz1nWZKeWpT0Xnc1blaqE6EFCApV5jZLpxoolpiJ1U1nVNOKsTRE0LQMk4w75lby6k1DVBNAsWnSVIp0kq86lHNIkmsaVVGhpuidEiSBYimE1SFlpKmAmtU51m5EtInNAjlqpHqlp5U5dNKoIuZGrikjRYnolNZalprTNDLWgJY0qhC4UglhtTeiSkTmk01VRIJUKszhpmNsZ6RmKBJVSLIslLkaapiKmripqo0Klw6TTGEzCK0mdAIwaiaiZtTnYsuqyveVGrmNIuBAyTVFZPLpFTszKXLbdxoqUFRNwE6MkmwqUJ3BVIpCQZvHTLWTdW1WgRKItlm2xl1FVNy0xd4Sk9ZRU6kqzysWg4zvGVBVQVJVNDQOcyjShxvN51SnZnlqrIS2U56Z1IgleOnpJaQy8by1YoWiNFUqiptom8yvO4qejDetHGnTmkymxM0DBIWsOU1zHMzZmaTa5UpYykqQwrWXOyiTb2KppBKmmKrDaT3mVUDU1mNDdZ1JmuorRSVMwSA1UU0KoKBKgEVAM4qCsvPVUUinSKyiFVNCJoFIqk2aHFkANk3FXFzVVAksDSAKpaRJrDUpzRFI6i9EtBMmqATWOGdw6GmkMnLeW2dS1WdKkJLZSoSUkUJgzUhDZTQME3UisnOmey6zqmqzSptFSI1PSGRLcyqnMJ0Qk2GDSDKWSTJoaQaFFxhqothqtEprLbS3lJrOhNChMknOVpyRpDpy0zc2kazFapVol1kNNiMa2WSM7loIKRSJzLFzpEMp6oaZMIbSAqaTyuVdAm0qmCmmuYrzTNRlY3SGqab1KakqFTIZEpuZEsLmlSHI1LIVoqWNZnVUhZ5tKitDammCIcXKabCWkQSY1RFaEqBdA5GPVlVMkmMZ3JVLUzaZZxrONZ7RVWJ7zLAjSGiApxcyTaFOdYEPQpfJjfRWOmJqloc3LJpCmnlTCoYswJjE3ZQU2EJhVGZy2sFiYsnblqJcXdlVRq5ik6pqI3RFItVCqMt3GmitoN83QaqjSNEullmkyaHovMGcWVnbWWkhG5mbTjMVKHSRpVZ3oJc0xqk5rKwWi1FERpAiaJqoam3omlVKkIgQ0QxolopoFoaVFJCbjLUjGklqqKeZBSS2MpuaVCIqHViNCuLpxc0qmqVC1SBmTJqooqRmdIqSWmdQxxq0SEWudUgCcsmiaRDTE06SKrNjwoFoTVZXFmhDkaz0ghXMlNIxiQ2Smrgi0y0mqQm0q0S0zaTYqVEzWdLMqqalNZXcmgBs4GUjWWiaQGNLdVAKaVpJSeVynlrNlJzoSkbKNESqAampYpAUKtTebZVNlcqt5TpNJN5nSWzTOkxNRmaoGpc6KJKpS8rabCi6AGm5ZOLlkMzUiWGnSinlTcoNBBKmkA1QtZaQxJWWGLLWWk1Ug1SqJObpEumCqZdY1KppKb1DEE6IVDkrRFJzrnWZaRBRWNbyxOioGaHUq4JGkTnYyihUqmhByg1GXWpesiCWnBUqnVnrOmaVpnocK86ydLDY1oebCxLjO3UrNqotJJoaFSZa5oWstMJLqXlpFWgjIQ6HFds1C1bl6c9MNVltrOOpFVcOHcVWmNZUyaw6aZXsdOt4c0aLlPRA5wg6p1D0MnRsyllVIYTjNUUhWgkhUsauHMaXnXQTapaZapnSbNEU2nlKlolciBSMJSqTZwOlloZZHOWkKqQUaRSCG0iYsaRp0mdJihxVhDUk8wnImmdoqQ1CSW0NGiojO1qlp5pcXTlqpKWNVIIm0VE1sQISkiYPQCKGEu4pJqaaBXmSopRpnTBiXlokACJuoqNSEVohgNJzoGSWiYzY9ksinFLK3AVovVMUyhoJoCTCis7pFOoAKNYJbQjYIMWkFWZJBIFlJbFmVU05JplIcZaSqk5VNgVNPoNUJFxYji0uKWxWrojSdiAETknLCuSIbVDKsoaKY1oEEgiqE0hU8M1F1NRVDM20mWSlmNCaqihGmtghjmrnCqiibmtkjnKwpkXCCc5W0NLbJQ0MNvGpoW80DQjTNkqedJjBMbSDoubQhqgZTJrUFKM2ry5q1KYVFOcytDGOs5auddGWl5JUKcuubqmSNebmo0nXLMt6Jl589kOcNFmzN2s1jGzWmQubjMwsjPdaMdGqnn15ePTsM3ogzDWkI9Oefphmt5x2waqZ6Ytkk9OXbLZEJvk4GypTW8K2a6RprFifXMirK5TpDZJzTXLNZJqJVCymWyzNBTRVZprCJIdhHTNCGmhkCewknLoydF3FJIIgHNEiUS6TQLmsycuMLtFMQ1PPRgm0iiMttVvI5dJJiS0NDmJuWKapkxwAkdBqktUyLZpxU0nlM9FFJOlFIUxDSFFVlpUjTCuSYNnKqppOChNSa1S1WYVSwqkk5Y0x6IHBMJF2mk2lVw1TUVLtPQ1NRaFqU2szipFgtVCCuHEFKqlgMtMppKm1NWkCJPKA0dxeiRlEjoQpQ3mhjqUGUGmqQKVcZaBtAAg5K6l6GAjuNNkOoSxpqTSNDWRMIbCKipJuaTQSbKbBlWZVS0VzOjRc1ScqGkZQYycobipqkmSuG1ylWiT0CQNZ6Z1NJ4Ry6YDJOyRRsUNZRXBVLmqi4kAzNUkjWLZK3qkqKAWYvMFDBphrMtoRgk6RdKUhKiqQKtMrlE6jK2FDaqqh6KUFTVZixIbUqqtJG4Kbkp40s6RU4XUXVCWhCjDqSMmGYTdCctrmSXK6jzdnfJ01BobPP3w6u2sxmiOnDoLXNJw0a4s9EMoCeiTNyWpHTbHbpitM9OmKUvQ6RTlyVEFO4K1E9ZhjkQyQULi2mZUlk2uW4caTaqOmLkoibnVU0kZnoJLGbBGISXWeNULREAjBsst4yzNGUcVSEyekmyQMrVDDloxKhiKW0Llop0lloS+uaQqpKmc1CFJZdcx6HNTMULmtMQGtSVGWBrKCuo0T2Jqohoy0nKOoJ0kEpxSAiUXBMEzSM1JNm0NItSzlrLcUipS6spdAjSCpIpqaqhXqkZThkRTjK6Q2kM0AQSbWUmgU6hGqKWdxltutEouoqbqR1UDktMdIZiCVJzCc4RuaQLK2OkiqmyUJYIK6VCSql6qSe81U3oJjVpTzy3Iibl0xqlaeqCpzRc6Eqk1KmMnFENNotFJNZmgoGqSelQmimpchKy6ymg5rRJcjUCnLYAAVJqhVTTNDRIVXlaFxSzIqWTcjSEDoWqnOmgi1oJuBU6Z40DZGuN6JaZRQU6mtES1lTkEm5GgmG26lp0hMaqDeYqNc6gqEuKym2Vmlkom0aRNFnpGsqC6iioaYiV4ZcQXn6dEFdcRrnoyVTWRUctzDz5bQ6ywamzz+zxfU9G9pq3mrxuLgZaipzDFNZaVBNqIbi10Kb3h1nUa3np0yNJE5BpOoB0hLGTHSTKm4B2mp3lSzCsdozrOs6xq3NdMhLq0qQaaQ3GXR5Vq1gYITG87WxUOEDoU3SaBlkZaQEikNUl0ymMpuKZM0bEbwqpGrPQiJqctXGuyU0zVTDadORs4aIbmts0MCMtjjQ2OIFQyqVDESqXLlzVRQVJzoTmsNCehua1TaRMqdQmEkykwoBUUnWdReVVltGVKhpI0VKKVKsudg1Xm9ZqGmE1ltFboFWYGMS5KpYUjQtAhOsU4qMOlBvIrhSpqiNJglwOmVoROaqWZZTWZshmqWUbNElQIGeXabneZuawuh9spk5nc1sdZXoTFRNrKlQyYNLFmuHNOaKQA05SPTOmltU5EWia1JUFKVZXLEYJnM0TIus2GNNwaKCSpg0lNpGqSHlaFQ0yBOgToQqKFQA0xRzW5TaRSSqlsAM05hA86SpwritUsKVTVCGEjSxTZRNTldxombpVFIy0BoabaAWVxWalK81preYKWdA0kFRjVJywzPLo4tGlJClY1OJfPd2G8pUUNSQVIzhosbKGCATzJ0w139N8m2ubkTNzpT6cHrn0c9XU2iKuM40x0g1qkJsB0zrU3vEUVSnRImymM1nNoxqqmtAlE25qnUvWRPMSKnDi9cOe9NOfTRTDWXWWlLSXqM9CsxaZVc25TV6IaYsmkU2TOkTVpwUqqwolFaVMUjQipoAEVKgHTkbAkTTKbSouXoGhGK6SqKYgbiXVGbKiUOqDQxmiQCgdZQqdCmwVnZmYq1GdlCQQnQgGynGllALNJEAqdRaSVE2hUm5KaTyqs9GSGTHOiospRpI2KtZQxpbVAyVcUwqmk0ykqMwDoSdKQy2S6ekPYwNiKWZoazGgGZSzokzw6FTokHlSpUA80Nus1rgOgIWJo3NNTk0UjRAHsh1NDmqGmyabEiyEU86qWkQ0TU3KpWkXFNNTVKVRS6kWqWiooJKQaqa0TUuhXFSVPPSTdNRqwpaUDRompdVOaZlEFCYRSGz0h4XNQmkyM2IqjSWVTdNOUJZnTqHCaU3NRFCbOWyaFqqXVKUiYwoazzrasddZHKYhmNUJpajNqvKsqkRq3BGhlpQY1N1nNaEorecMPKee+qJly85OPRalbM9ICNshNs7reZW8FMuMsTlfPpUCy6CNZ4NZ6N9AzpzZLjKtWuemQF3DR2s0uG8N3OnTM6TpZt2uuCp01mHebDTKiHVVK2ITw0S9SYZlrlbVFRotPMlM1z0sdU6i1WadE9DtDlUNhENVZa5m5reROZBoqBpKZjVE6bznOuedUSUidM0Vm8ujF1yCWWk1QBTBslSpvLWE5rUlpJCuKGhKJprzuClvPGnM3labRRYNXnfTIwQQmQrJzS1StIzNJiVLQSQ0k8xNKqEMqSGwWhuKRxQQ0aqjTCtZpEkySbCgozALU7m0Tm9GaFz1ek11zKqSBkkaJBoIaGJvMqm5FAFnoLLLZUjZMkayWlOK1Dlw1SZDmZkvmqakkwlNFMHSKmjO1lkc5XcNG1egc2yYkq5e8qbmZo0rO1WiQChuBGUUrSaSaKdE2KRoCDK6koqGzlUIOYLSasyqV5aVIIhySJxhslM6TJMirqXoYpak5JkzlqKkW5Y2obkuJGwiqIoaJNGhKS3mxtTSTcMpsJi5qiUUwgtJbpOHSuKpXKaQMsUqEsjWaDOqMzOqm4kzqs075XqUaLNjWmZF53uElVkXmaaqWIcnoDCmjWOxBaqBLzm8qpNlpj0Q9Je8Tz9fPnWOe88OkvRIAaODS9DopJ3nTHbIdJlNpz7FG+d7yqurN56PWc9MNBpNxrWb6ZvXK94qWt0rScyqQrippjVSVI6JVoBmqouIU1ljUGmWNXKdFS6dZaIa5tNCBBOJvSE1ipzQq0Z6SidQ6QqyxpANKbaCpKVSwp5aDog3lXGjZseVDUNk6istCVS2KiqpJRSbqWS2iRoJVY1Us0E1OVrZaMrVZZdxvNSDNMJXLa4pbFNGGZqcLQ6JbpDTNiRy4y00qoFoVzWUdTsTQQqlm1VRGgMkGJtTOs1LXeWusyMpTSrSZepzSzaTT6EpPEGdTOkOKRE3FzQnJUJihuJY2QFI0ihjaaCrzqaaY0jWYQxkFROiyqpKAVJFYSalp1z1gTNSNM6Nc9NCbWgpJik2SZRDWZpImVVVlRqiWuTTK2DztpBEqFIqgraesuWCmlTTmRyE00zlokh5WCYVxVoVaymiRUyTRCQUxrnjVKNBTlJSkHTN1QikYkyGspplaOkkuLEcvOigFppkNFSJZk2LQIp0kiRC5QOiqNGcaGNTqMjMvRknWNO1XTORVZVncs5dtmtpLC7Q3FQlZ6MudOee6SZW5vRM3llnWAYuNau5N50kVms9MxfP0ZZ0ijLJmYc9NJ62NPMbnpW880dE89p3es3OufTDt5xraWzn2bwtp6yVlo2gl0xpU1siWsJUaVM2VAqEViSN0aZ6bFncjEtY0pdFktZxpuUjuL1TScUC0Mz1EKHM3NaimayCqpadTUPDU0JmXnnWoG8zOkDnplry0hvZnoypGU4VU0pJiMtS1Tqa0KkNVS95Li0UaKcrbKClMDrDcq+mcqh82lZslSZ01NFoRpvLBbAc5RJkDVTQqBVlik6kdNBaISqrTNktVSnSaHNVNJVSSJwLGkK8zoXQpkoVJVQyqlMrFW6pHoJYWOkvnqkPZKRmuKVQ3OEsrQS0wVJJoGxxsdQFrOd6mDiUllthugZmmLjnrQk2Cc4R3FRcGUTCdSqtNaGmNWkveUOatTVMT1EsKWKkyyipppFRSmhdxSKaQjBJZItU6jSKZ52oKl0gJJvMrSTAThaoZCZVNQwrRO5rZBN4YqWLVJIdZip0zxppqpubqWVU0lTc0jljKpukm4GNHm2IAylvKBSLPWWE0LCkUVFJy8aWWrEedsk4zUJ0QWSNIYpmgly1lygKirNqoVyaRpkU3msLnRNkXHPV1F6FGmeXO2pmjoiArWZqbYlBXnpmSqaNQIwxrza7lLYiuNFp2WBtGGtMTeaarVs1HTFy1msQw7SVUnTLuBHKY4dEWRUWkq5amqaRwVup2VncVCqeesN5Zp504JukgdNm1eWROlpDSqy2TPbKm0TjeWwIYapaWG2jQc/TjjVXDialjFw81VK1aIWhxWeUqXlcukC4ZKgoYxpBody95LhoxDXnU1TTmHSzUJ7M42y560aEh2Ni7z56pzW82D3TFzmVxRIHSmkIyaGmQ1LVLVWTSNDYZKUTdSIyqanK5uRTV1LrNNZZqAcDzqmrlkgw6S3opJ7s9EgQwSbigz0yjimU3GZ1JJQ9ZQFNBSsKkpVNopulqlgU0nSVRRntllV53lcBVwBSgy3A6sFsTGRTexpJCi6Sm2TmmTSqRxzdJqNFUhkqRS6Qlp6DO4JpgwxVTcoxFMTYEicOc6GyhMaai80ljIRSTCeeiqklVy5YYFOkVSTkYmqxqKTREMarOoaVTTl7zDZllxQuptAVaE5upApNWQBolMyqLgdWjeZmyYTWFViDZNZSdc0w0t5Z0JbWU9Fwmii6maahDmdIchneZnVw02ekPGnGkUk88pvlpTxJpaRRo7Mdd85NITB08az1xcuXOIJo0ARlpK6L25tgcltNSwcxRpxpmGrV7FrGusRSbNxo1Fz25qUZ1Q0kaKMtuKqNJmtBTo0rKo1gNTYaHneZPNrOlRVZsM6VIiiRmjPLYrJJ3oLS3mbmytKd5d5aCya0JgQBVRapRpOWVcilUVbl0mVCjSZl1VZaw0rO4lkma5pNUjovOtDc3oytUImoNM7oA1JUiqWmCbIly1odZgYaRWgaiqilldy9ZmNJzqhrQ5dFGdzjTBVpULpmpGQrlk0ipy6SayjY2dFCZuiVONFyxByyqBtKpY09M73lktkFEpqaBOppyLQ2M9IzMqadTSOWtVRVQCuVI6hiK3IjQ6ipQ3I6U1MyOsMhBUhtAzCtJaRcg0N7By2adQqmtjTEFNSJBJUZaysRDBTV0qRoV53RmwlctpE8tCWhpomSxRLqpFTnWKc1AspU00zSCl0UJjEVJOhtLCJSOekCy1FSoJEUIWJpamopD2KdJqQMq1loFLQwVA5pNg2peyAnlp0hi5vWYp50ZaLOs6W2aIqTQhU0rzXLnZSSy6C03km8a0AZxUkAFln0hrNIrGredKdJjIoxpKhs9YulSRXc05WuU6KVE8fRhty240zTK1ON2ZiRrLl1K0a2jeArWuGOrPltXVazFWI253l3F6s9CoqbnpmDN89VcvZBKy1pFUTWdbTUaLRJaqKa7y13mM+jBnM1ldxaQrwysRjaJWa01qbRWwjeRto5tJcqkm5tppiIUlTRQwFWmkTU5YVRz3oTWsuidVqbQvOUKVTm0YRiK5DUOLIllPSDQwzrQRFVNamhanNQTVGZUnqU6ZhTUy2qoTGiqmBAJJZS6EJo0iRmU0so1JNjZVIjm1Usos6YNTZ0zLSEcskJ5Sk9CCqkoZS2SCB2idUipqkKqlyU0yaSYEVNNOcpTWpaZaU0hG2tSqbJMNSijE3F6JKSmWueIpKql02LpYVFrK0DE3JVDZS0h0J12Z6Z1VKahub2ITpFKkVNXFmhOHllVRTUvUJom5KcXNUkhqpNDioJVDNMms03MVoLRMtItpAEU6UmjQS5w2S2acVYJmIzCaaKgxoQstqbjIoxqoBqm4Q0ltbR0yKipqbIQ0mh0gmqlyI0DaIcomcb2kNFvNpSy0FS5xpONM0K5ZNyLpRGxGmgi5lWxHLlrZAXAmc3IjqKxLjGpdNqgklNTaaDMrTZtiAXkhUqeekzktFjSpKnnUZYNAdpDvjDZXhtq+mLIEMOnERjwvTO95SuKKh1o406ZpNbzzz0Zcdrbn6VwekJBpIiTzStELaaDTbZi789MVNUqmioeW86llNTz2psqNY0qHNRbT3lymVaTOx1AJeGubRxXXLmkjSok0U05lJzhrO2UU7ZTcJQVoM7RSmZ0wmmKyMdBnGkUU4rRF6JyqMNPPQjXK9gZ6U5Sk1xcauHvLmI573rDbeU5pqE9FKRkqeXHWLzUB0EmimbWVDmnDMpedEtI00TQ9EDQy6km0qck5bmklSKWSydxTS0E2GiRhCJGwNCYEJtk2MTUklQKzoytK6m5aU5ewQE7ytrmskbFlbSSiSryt1myRLCpm5FJrKm6pKp0BOmXNWUVIzJcK0VcjRqaa0GppthBSLyJsRSwJzU1ZDYTKgRz1o4reZioxpMBVw20i1oGriGqoJps7SwjmmE0wxopKwuLTAkSqAgVzmnWFSyqzuZkqMtpw2jSc3NRqqpqCovQiQa0g0OWEkIZBZ04tlmRU1WWiVCqm87hxWYjU4dEJjSLJTT2IAipbAFVeVaJi4ytuK1mVW2IqcJ5YsqsouOey1SBWTXUaJNxpU1ncVnWI03ZYlaDnGkTMNc2Cw1dXHTAxMAh0qL1ms6lFc2VpTsuc6KmxnUrRrCEUU8ai89Kbh6HGsVlrBh0nPShDqVV0tFHXNxYipJJoRqo0SRltnz3KeeHW8dNCqCrJRby73mY0mjWVoV4mHS402US+mWpMtEtLCUQISpWXRxaImlaBKm4iVoZUnJBRQmbkk82kIp6ZOjPXEXTMzEapVZ4dE3oE1TqBqVQRUtq0yrYaSORoWiRJtUM3IjazWhopCcTSrK1T3mKGIC0Etc9U5Njc1UzU5RWUpuScU8wJNdTWyCoFWnmQGocsnUmhqkzTVIKKbJaFU40ICpzehMmG29SY4ECuLRVFpCaVNJUN0ONqSpzVZiMaLTRIZS0SEuqHLMuUplJCbqaV1BTabFqBzFwxJTWNMahoVVFypFrMS0NE1UEgocC9otHFJCoc05IqKTMeZMptktIytFEAmLlVM6SUDedLSRIB40OSKIdKKzw6pm6U6HTO10y2ERRdSlVXKpE3FOXIsFmmqxNEtiK2kqlLQqqakAisri4I15tM62i31xI0zgoaTSNPNNMds5BThEOkSxLkqp0x0VLMNUpQiljTrHbUBCW87qHRhdS0Hz7lASIhmkIDrx3z74xNceewrnw9edG8lrfRz2pKkOhpoE01MexPN1LeeW9Oeq2Rloqs1lsmix2lDdZJGk8a3jG95tcwa7HzdHXBahNZT0TBPPczrnz0qVZTHfCtLw1bW+fXeN1mdcUQxhl5bpPpiabbHSJy3pnWiyL1mBzjSEsta5UltPoCcU1NYaaWgJY0lUJN6opPLLCi8yhkkJrDRLapHE2DGW80hxKkrnq5o6YGqahG82S2GNFcE0hMykiTQyVGIYUmOqEIRpmI26hhTlqpHONaJ56y6GIJ6IVxjVpOnIFSG1Q5S1KKqUtonGiyXQDpyKiGsaVSisltoRSO4rZYp0A1lQFU5vRISMlGZhLKLnGgGQmIVLaQMsBZZjqWD1lhehOSqKz1JhmbaRzV6omioYstOLRDSxYYiGU86kVcobTnROes4ZdVSENRLpkVTedVSmtDQhuQgTBi5ZJhUiBtOEHJLYiHWdOanLFE50pqc11A2jzrQ6VRThbyVJJclFZ6U5qUcAInnh1kWqBPnq5FoZDysa1UTURQss52ZY1WsEj1AqbOhFYLQ4uREnSjSMqaKS2zikqpSgVpFaqRGalFTNReXbO8tZz0hY1peT1XUkNEZmipmpeWRldkzfp5Yy44bU3GNbAdM1eN6zmo15bdKumW3HQaeeZqjKo2wXVUtZLHqlpwZU8JOiZKlVZb56sL1WGpWu88xq8OGsqd86e8jT0SmZcmLGoYGue9Mstk7JOpe8Co6CrOqpNRpUm81KCqXIqsry7EV0yyaLNy8rqCtZmtkaRRMSptMqlmqQWYc1VRWJbSzUmSVpVRNDZmiwqprQxzoGSNRrEZVRnQ09A1VIctSYjqBKqK1Mkik5ZtqoYZYuaJVNNJUkVLpVJTrNsqEUtPCJE2kmLiickw20wnA0xUAEmm1NPZLm8M0noVQFci0JiypFZWBobU1W2a0UJpUsVJUA02SpUhPKSFE0sLQMRpkNuaQSYxRJUS60B7ATQYqESNocWJ7gTiW1KlzmustGkaptKkTeWVSyy2M86STTJkazFqmUsSVRlB1qkoiRMUyKbw3KbzqmnFVnYLRFFzVNK2M9cyMnPPSrPXKZaZ1YxnNiOprQ2VrMFFTSaoKBKlqgc5TOzGhKMtEaE4a1S2EIgtax0YQVIPLdS9DzcVrnUU7YyqkmbU81VDnTKkwEZdE51kvNzIlltKmMd88OWhtMXFbyZ2DmGeNWSq2059LOgTscqcoJ4YAw7VHPs3vHfVMN5h6vecc+ip52waqYc9EZvVrjutZCq1ZzdUmSlEOXMvMyhpKRWTOjRCQVOoZMiGLlkZ7wstMrZmtARW3OMa5Y1D00LndA1j0ZalrhRXc6dM1Od6Lz0ziaz0xtxNZhSi3Mb0a3F9Mw26zbRNo1RaeW5G5dQ2vO50JM5shUzGs0FylyNoM9OemhJbS0WK9hIiFczUXFNoKbmqYhCoTW0qYmVCewQyYPUgIBVMAEBFaS4KgBRQiGUMihC56VzUuaWsiQNpKmBRnYTTGSYQVLaqHoTJy00MOKJUPZmTrzZLWiS5Im01VD0K5dU5NTTgrlzVJFFzNMAobWWXOsqaaZqjCncaCWZRNVdZaIqRqVy0IDKXF0VD1KhRUiphbZ2iEUSTRWNBz0N5oMKmkTQmhGkDQnEsUsTqgehOahNFGeucyxZVchJhSmpGpgy3SIrPWNVzUkRpEy6WWFZlh3NKlTOk95pj3lAmBxidJU04ZZ3hy3tjqhQgmJEnDzqqy12GWvOOjmszarQtDHRdZakovKauKhuJbdLKk5fPbbTlwyTLVZaY+mJl3M00kDsonSBixiChrh5jnFLl02M6czVyNXzVGmmcJocuudBIW7H1xnZQjb1lbc9aGroojZaHlrLTVqlcVoctU0nQm6h05xKnDdRezGh4mXOxk1FAbM6is6JqCcY1y3rWYmlZ67Jq05chWcaYc93ZUYPaFrPSUm3JVnUsqix3Ma64pXDZl58tLTPXNm6zbpJrrh3ho1E1EMYxRVTQ9E00zmkUWllYVoi0qac0DCzHPPVqaYarRSBBps5EWgnozYsLdzqKSRibDKRZ6OpVKqFOqhTippsmKgpMlUFUsoEstpZzpM1mtJsRpNTTVMSpNhITYaCaJah1WdJkOa1VFwlIKQLLOiitXNaJUmWritCaKpS6bFFEtjSRkwpw5hyPOipaS6RIAc9YsqilsikYWBqkFlmkFVQ9FOK0QwxoCK0ctKh3oqRtDKJUnuE5JU5BzNC4FltBokc40CZFN7FLBYzRBQU0NJpEuLlFUsRIElrNQqqVrjVJ1XNo3lTEw5rMZti0JqmpJXGk5DBSAqtPea0yveUhVUpZW4qXm0QVIuKms9Irm5BOdqh0U1rLmhpcXnU3BWiVuZDOVWd4btV0zFNQ8nGdWZ0NUkjTtIWmVaShGks61az1ktE2PNIaxxutM1WzRowFnjeigzquji6A0z2HMZ7YZZx6VjWZInYq06YmqeyEmSG6enPpoQZZemMytb59tZ0z1noJw8o6WjLTO8L1zrpnEm+eynOyXTiolU2ow7Up65YrjJPLG4Gcd1SejWanrjUi9EMz5t47SJrnroedXvMqhso1WdZUPmqs63XmOCgasdJrHWVjWgq0FohaxesitaIm5xp1loWiR1ynLzUS2YKrJrRFIy1m3RFBQmZZqNBTi2pwkoVtNA0Xm81E0FaRXYWdrCpFmtzWq1FaBiQed5Rq9EUnQNsptVDU5qTawKebaaaKqMtVKTSGUhUyZNNxdKbqoYyM9cmqpKcaQVomqUtqIqgChjoHKPOwVpnaTSbJtIlc4XWWjK0aEJilQyacBNymlDVxTFM2nBJ0ZXNrZA88NZaZ4baei5HoJolE1mipeXUT6Zbm9ghU6V6JlhQxYVRNBNGpuQmqnQKwpqaYnRMAtDTWZocilk0igEIDqAZBSpp503NFIygixIl5ZscoTzFZyNOGzYaGUIlRVAtZVS5htZVUtpbWZTVTBIIqzzE0jTFUCm2VShUjy1JoyqbcytBudazjRpL1nTn1hkqWNS3ZAnvJG2RUIYdwhOqLMuZtqtky8yhaM2Izh7Z23Nyb8nHtpeGproc7WI6OXp1iHhplqsqSSTDWsvRoM3lyUiYmm1dYlsZLEyTWNb1FdcUtM95BISpsQEkrRZQkom8subl8dvJo1tvxb9MXZfbnnh1QOS0jnqkU2e0OjXKtZtNaIjdZYrOy0qL65qaz0NOBvO0Ob0ooVveZRnl0zkxq0820C0HN6Ck9CE8Lm5Sdoeh506lUZYtUU3AhSmaoWiaQVKHTlLOqCCYllqothUtFy5RqVnVgJq8q1m5Y0uLzCE2jl7GkyVIpVNMNrYyXmaFRjrnjVoVNAThyNZ6oqikzc0ikYoHQBFEtqTaJVCg0SkMtpNEhZTSKakpSxDVDCoRqdZbUhGihAA1KEyqWaAJy2ZhaCNEsM6pONFEumnJaSzQrkp0hs40y56JDnqpbpjW8p0NFSiYMac3sVxSVNPeUk5rO5KoqCGmMDWFjehTc1TmtSm1DFNaSFDCpm0JFAgTVCKbzCFTomnQC0EkY1plcZapEZtrOmq5mN8tcJGk1GyEKcdApVQmkVyU0Mmg0Gdo0IeaSaFJoYkeVqXlCSjQmmrhCbMqrPSS+br1kTNCytlMpmjPSBNFEOoshxWi4vNqFdKppAoqM6zw3cNianU1UM8tuY1LRjeXN0Z43e+OwLfGIOnzeojVaQKs9ZBA9eesdeZOhllhoFeVFzGNaOK2MKi8gaenm1TWKOmYVrOpy14uGurbi691JTrNzBl0I3Tlx1vlvmrac6VI1m7jLR0ZTbKhEUr0ZsMqCqq6jrliVRpneatcK2CdVD0yoqahvPREUtURqDEb5jFNkh3UNiNxaRSgaY4pqdlOXQJ0qCpZdJBQOWJawzNPKpvLLpLnVU0iNM6apqUYgVcVCYqsK2TU0WbGQ5GemVQ2r1SwQavVI5hiKJtZSaVQ08aJuUS1gptwy0i6YGqULCCWWrmt5BNgV1E6KpZJNUqQgWRYy06FRoLlpIjLog0GiNEuWMbRVUidZZcUhLGqmlQ1VOQ1OUZLkJAVNgjJKpoqk1oUVGNVFwSYDSElPPRjNhRQsaulXTLqL3kQUyapOSnLQxpNZc6Cqi50AMm0MxCOaqpVKrzY0jMsXANIaJ3DZtVhQiqcumnnU0WMDKljzZtGdKockrTM5q9koqs7zsWw1lqKrVZSm7yphiaCnlmgTMHnUGmeWEzMBAlip0loapkOo2ZNnLb0zrWU3nTqZmG88bc0moKRioJrO6pTWhNOjTPSHNQylrGmNIUhpnXKXhpFrF3nz1FZu1YIjOYxo6uTuLnUy3Y8N7Gpmaz2Za59edhnO2VooqaNZFUReGqVUvWZjQyxoaaFon0w4rJr4+nPj0z6JWbSY02E0ggVm0iS0Q4zRoazLEy1gLWGIaZ67yilqgpDTFFpVszVZYdKjRqcXrNKo65x1tc9Z04KxVsmRjTl6HGmRFQ86bmSu80lk6Jm2Dc1Gs05UtUU3T3nLQQiTIEqbQUtIVla56VIF1npolzVXAIUNstYYji6tpdMpzWK4FoaENXLSbzurQtCqQamnoBCUmqTRWaqOW6rOkcuRdTaSOJ0QkcOcJUULGaLm50IsRQ0NFGiYawy7kYpOaTblS0NRctRNEVFaC87qaRTE0pIaouKVIytoSkq0QN41JWVWgpgUmimAxQ0BiTNyKQDListJvRFQ8ryqiTKgHejPXM1OpdFCRRoqFUZRpU0mNJiIHTZDVKkdqVdcZjWVodCqSIHjVIWilLrNp40XFRKDKwbAPQKs6JaxpPO8o82IMLRyumVUvMDbSOJElz0URWt89pspfTNyyBA0U0Kz0zzrJk41apQ6lJZN0Ce5IWZNWJNYjoZ0V1OnTOM3ONTNZZ1dDYFdmXAOpnesvTMS1T1EOMw1UzrLgmVJJUxzdPJatQ8aWWmeN59XPQvPUrn7I1jCWhnrz6rGZQ56JrLrnSBs50zKqmc1PHSkToMdHLabMW8l5laGcFrMI1Q6JFzrOat40nnrVE56Lzawm2T1TO2WXRK9GZZUMU6k1rOhlprLCG1c3rKjfBAd51ImypqLGumXBmOueklJNGixWXNRqScY1UUsukUtVTGmYZOi3nql5i0MENBbkqZ1O4opYqbkocWWYPGsypyjUirRTFNW5pk8wrSKtTVXLWhXNJScwDNTFI6kNLUUjYmGKqahNECIqBcOhhN4QaQQlqLiqSCUt50rTQvO0BNBgyVIkyGtIy0nKIuaaqKpDkVTDFVAyoqTLpNRooVMIVUpunKKqaVO4rZM6Z5by0VALMyKYcuncVoYDCAABZYiyuK56uLz0OkqlqsLpPZF52TJrVUsRsNCmllapJLTGVRlExjXK9CuCJCR1cLUxokVJVKJpzSSBhBFTZFCoypzUZ6kq3OiSqipYs6zQ+egSqtBaKzqCblrZFuVNSKtLKjMy3c66JsXTIic1pEoky3AmIuMMXN5bUVsQOtJFsikc3PfG6FJNSMbarWMVeWdtMy05egi8C0WdGtajSzUhrNvO9CW2YsBExtnlvnlHKnHKsTqRprheGijnne87w0q3JWkazi9HlndaOMigim9kzUjqYaoJyWdXnnT0gSNo0i87WhubSAWWy1sScYW3NKdIHN6ZYXSeqhPRK2mkFRMqR0qb0Tpmq1JUakPZTFsdxUONedtC8xtAg0quYsiRTrmnQ1BUZ1luaNEA8o1eyJszQ82Oskto8tNDJuE02bSigWo0zqqae8xc3liXOViooEGnN5k3Dy2ovRLJyuZqWOAdTM2iiq8b2FQ4tybyk5zrXNiUIqyHoqS6QxBymtBSJBpzMXNTKc0VQ5pOicdYuppUVRUpcg1pzCaeVg9ilqhWhVRRXnRsackleeWiAdah7yyXTipK2mybmnLmqTCTltoQJWdSLqKoFnVk6Uqh0NkU0tgEy6lZUrkoYyGm0MKEUJU2mVk1pImbz0KhLY3FZqSeiS5FDYjFoQ5JqpZpyzU0NxSgExAqpLSEU6hjyoVMqlwkqyy5KKlE6lSTUZZVznSubQU0LmphNXOeuZoEwXFxiTVjVwdM2095kFlhixqSHh1FGipWZras7SUpy6LOhtGFb1z7Rbo65yz6JyxGuWdPXKW1nPYIz1iWJ1MsqXo8I5aFpJNS53zqNZpKqY86tK2jGjGsc9M7b0x1J5XrGOqqh6YuSbBocE3m0skw9Lld+ayvPnvWE1ec2Tw1kaqLh1juyGI6l6y5YRWbGobpzRWNucqFeVS60Ak3RIbxmOc6cBlqQrTG01qKrWQc0EalpjoOw664cN6zDTFF5DSbFK5CLlTtg1UaZ6ZaSrYSyiXJaRJQ4Q6ZaSRVFNk6FU0WkUtlrOqqk9BUEaEzovOs8a0kQosJ43mJpFUTaocaVlVDKbkoTeEdSk7Zup0x0q6h9M56TYpNslSgtGhtUkawUVFVKoFw0kVNY23JrMugQtbyQzKqBsyjKKhACqkdUgQIJcaZjZLIh0VylsbzMtymUUzOisqTZJdM2Ag0yee2bXBJFzI2pqikaE2iaGxnapFqkqVMCned6JChTcQnGgyqmmQ9Qm82dqiVRbOWVJU1c0mdBrMlAy0yqaEaKYztNKJxqio0DTKdJTNFDNJoUJHLKedIQKInSUlpymRlTazVnUTYhlNGaJKzoTdSqZZuoFtVoYilNqZVGZOnqz1zuE5qqKneZzJ5bU65ZSzSss286NZrWYKbY3YU4bxjUWFdLw3786m43nPLeOe852yxuk5DbJ3owhzjdTTIvKq1kiNUZ1YUzIcXpz67CaUIWONbZJzBrbc6qLWomA1aXAoh7Z5SazyxqAoRXQSdMRVQaTnWsdBRnedq6x0IvO4i89MpWWmy5agediwROyUcWmjPR4S526Zym4y1WctcsHHWGTMtKktLnSMvQZnTGlS0i50rUiuuGSE9IfQrHbMoHPHdprRM6KefYCQMoYDQqSTQ1ZjolNZNZNZpdFJop1N7LJaKWynRDS0xBUiijKK4anmycReVuQqrOtUjWaql7jO5zTTRFZOqUg2w0aSGy8tZjO5rOqlzoqoaWgSqytJuHQ4WW1Uak6nKWhFedaqTNZlOc6p5sqQ6lzVCaptyVpwlTebNTeNS0qltZamp1DAgtJNQyTcjoZtLc7aJThKJQ1LCKkZXnpQM0Wg0SNDLAlUVSTKbh1WuN6ENUgBJYSTVOo1bF0EnLaG1zXcXsaDYyTNYToBsiotpuGRU6aoTCjPSM6ZNaqQQFqlLCdRbJy0TaIHNVLKmhSk5w2mtBUzlSdDIBGekDUaQwTeZJMSGSVNU6h6zK0mRpllrm5upe8y6uIFnJWWuNRF54bKEydxlubmCs3NWpR46RnQzOddctdY0gOuZTrGojoyrFO+W1O07zzvXLOzOoy3UXA0FpmVDcvVWd51qC0MlUON8uTVspaqROSW81OjRm1rmckos9ufGislnehBHXWL3nTChM987nTO1rOKtY3nvLjPaNKzupRNKdUS5ekaVnRVSgJq1ompYrWYSshY1pOmejTG5FQ1ld5WV56ZblRRRtImsxGjTTGq6YDrm3DsvRGhBIqpoZGFlUVlBVV51kxQZkwF3lrsU6PRjFLCKLxrSW95QOmnWhpDMCGJsVFUAVIAtIKS5ypOaLZWehFUgJ1DYaVDRROkCqKgaNDbnVSRE1JjTFewTmreWkDzc3LWhuLJNzQ0yExBDptLRLm86AehpwjhznTuLq5k0UgzMltDmsMzpmNqaZgqTZVjneSdJKY0WNIejRY9ZlzZDzpnLVNgkWTlsHsaQjQSK82Q1hY0gqmrIptM7mCaQhNUQ1S1hjSHvJjtlhNIuZtCDTq8m9CaMtOHooaZOoq9M3oTecKbeXOyZbiqqXNKlVIqaVwyAbRZNWKohimGTzbBM4ZQqKaG0y88rU3nRFxlJeOHdTSTtjTW1nq6ISRuEVXm2YJqMlm0z0mYpMsygbC9ZltUo1nDFVFG0GqY1zyqboTTDXWaqV0y1N5by0lMdHmaKaKMOjPGsnpY4tWSdqsKpCVl1JMaZI6QxnVC5KCSoaSGatwVohhNZ6qWq1h50iXJ182d5U1y2xEbivpnPV6bOeqiraik50GRukCzDdVANrBOU1Qlud5csJKKxqnD0EqhgdECrVncvNJLyxrIzmxIo1bOdJa4pFnautUtOuGqWgtDkavVJcUKDDKuM6BMkqCMtcZpxplpxfTLDKrICl6AyxJZS3TNrM3nTNNFSaa6x1Sai4U0pliy0pogaqdIppjSCGtCipUuXSTU6UIitFS0IVCS1VBSQ4MtVD1WhOWnMjmsNRrPTM2mk1F5RM0SMy0x7zIgS4pFcNqx3xqTXLnpbwbEJDTllUiSXU5087KB0kDkRtVTkhuXUXNtLbhlLZLU5aFaS2imkS06RDdEUmcukMtsxeekVSqKTCjSFVEVSpqgMq0QxmhRRNNeVDRVLMnNsqltDpFILLoS9FpVotBsQMkmEkkJediIaOU5G0jlyKoWZshm0ibhVaSGomsusp9MqpZN53QRUpURkJ89znphz1pM7MBMXLNQmUxqnNzRUUyipKamqsz0gcXMjtJ0i9EGip502zKvLiBhuLjUWnBGk6GRcpwi0QiqSmjPWRzTfPU3LqS1EbZbDnOsNh0ZbZVGi0IrInSqou3ozx1nOsleWdVcdESVKKQLTVG8IcDzCfLqtkazBQSMrtdCxW8a53GdbZvNNdcGml5pHnTyvK8sa3MtdAFI5uUuNFoyqDnuLNs0TU6ChNtMG86TeFGNRy6aImtnNpDU0bTMa50bJpMc9HdZ7Z6ObJfTLmlTarQ4Eilzz2CqhhUioocrKaTlWl5VVyrTJhjVaS+uVUhUrezNsaFcYSpKGmS0xunUjVLzaqhkVlZUZ60051ENZrQqGVUuShqimQy0BstKmTFFOa0SJih55bVTodIZhNU86LQS6Zm8zLVKS0lmgaVXLEVCoc3UpXRLJlxWVUZ00ULE9EMMudUEtsq0SInSXnGuVwNNKqcuKaaUD6CC6zsEkVznQsQwZqpRodUnGipJzpk0TlKhqhcOauZsrrN7HlpJXnSKKh89GudbLSNCzvPnu9cdNZblaLi5ZRc5ZsZXpnp0ySxAihkKyzNxSshmqdKpdUSkdZ1Lm4JDRIRlAYiChoYvOkVyQ2hosQuNISY1nnrGNc+W5uNLWrF15tDqCdJysRW1SIEwkFndxMaVkV1LqdARXCbQnSJmnoh0pBkRGiGKdTInEqpEeGg0Io0gYnTIoupxJE41rCjU9ufcbInWLqXJjZlalk3T0aZuNEIrG5x6MyjXMHZzOsxonnTZLm1IKx158a6ZvDYwMvPuamsyVHZx3ns1m6iXpKJtFombzMaGNTpmJO+FTqp01laZtIz2eNGdpKx6JrGtoXMp5s1U5YTnOlqhrCkkudBWdgNprVxrMrfPOipSaNGinL2FKU0cvRM1ONVDkmIETCUaTTilSqbGNMyqlhNW9ENprcvRRUpE3ONTNMgBhDKbcM4pZmJTaVI2GoiTNopB0lmhVDzJqmyGc9VJTTca6zFJNvlpnoobSGiUUVL0zoppEUqGDOdJSYpY1Td6zArqC4qnnbPO1RYRFzTJAOd56YSCmkJFtNmJQBOdWJJRZrM3OmqFbLB2sslTV3nrvIJoNDCzeW1LqgKUaBUqXQmkykptCqMoIzE0pBKmrzrSBtpKiNGnTzpCEGW0irvLTQAaBpERcDqs7QSqVeekDebUxpJWeV3JU3JUhJWitQkFSqaYmQ0MRpEy2ZhaZsXLqGWSYaBzVJOWFck5GJmLGjHbDnqdonGtnGnTE6TezC4vKmPVSiK0LiJpXLzYlSAmdzm0Y9CmqpUmiSJoK0Et0s9JIbSUhUTczk2Y0AUqiioRomVeWIsHJqs6euWllFOIpJXI6mmi1WdI8hGhy8riKV1Fkk0U0lTuHSqNQXPvEvPSBxNAaapJyvE10WrcaQHXOuVBGOkjorWswXGdEuylGlK5rQCpBGOXRSxbztry3reMCDnvTJooKM6z3hwrw01U5GevPtF5zLa7cnQmmdzrMk1jS1lbzopG2gSVpnWiKmssq5Im0sRosyEDcyU6mklXAus6q6l6AcJTltQhFDoU5WWRmWdJaAynmKaKIU06qsq1ZzZjU0kW+dTrJZLDtNM2FDvMnU2wD0OWIqzWXRK2edyltGgTnNUaRTqaYE6IrMdU8k0ed0TU1Uq5HDhuVVJSOsgk0qzqLV6zGesiiXlYDE1NUgrSsN9ZnSHoc1FASKoCNM9NExrBXFS1SRlpxZWI2DzvNSa3A5bRS4WdPLBSljiJGZZopoW2dUMhyTJUWSTiaaoBpbHaVIVElFC9MxhyM20lg6ikFpna0SnGVuZG5dUxmyCjMRapS3nTms4uZqXcU5kam5RSvMy2I0aTUJYqbNaTUjQzNHPUZbZY1DT56rbn6OmBOOgWwkPGVUUV1DZtqIsKDSWS0lyhgjVUi50QwEGIlUzUy6aELBwVEjrMXCVQMtkvKmSpZNoIKazMrrO8tJrQEazNyAjRMnCqdc7msrks41zzpjKKpRMtzGjKnTKc3TXL0bzhjrjy6MQTusd2maZdGmGjipi1cOYpY7aSkiqS8iaTPRVSqZ0U5KytVlI3WzJ7RlqVOhDeNQIyqkAXNNFp6HFOnNPZCZljaCroveOcZy3qLXtiZsYuKcshU2KaEoQjGmDaDTKo0RlJtImlhsRsLi6MdZp2lqZCZVKxXLZTUwustFcuGKnSBE1bQxOk1CucaIuC2TXTOiWmgA0JyVI3hKl6KQM00kDrOotCCKpzooYzQpZmVSC1BNE1Tl5to5mmiRuSRu8togqKqdIQuWk0RltzTJVFOkVIwUFImhqqa1kSdXnUU6JEmqiahimKipKcu6hplUOW0aaMRqQqZObKRySE5uEwIDOnLvQIVbZqS0zEL0kRoCnRTWudzsdJ7oQc5y5lsdCaqyb0UD0GWsVFzWEJqonXMmJTaz0orNtaYyVZgNoZaWW9JNCmXlHKmpshtPQ3GiZsKYlMXlfNGhjHXLOoQuW9NcdN50M9t5JDRnlrPPTY9TSqkNVRFpZF6E5oEXDW0kpOaVESrSqlWdKh1KoEVQRNRlmihlttIyhrVOaN88Oc7UPNtoUipR4bBc3Rjqaz1U1ZEFVRcqs6q87WjOoMaQ1V6c2+gARp5U4tc9Z6vAmTWdBIWmVU0U5otyw8yjPTNemVlo21w2cLWcypysvRi5R0iS0QaZU1Ob1l1k0ebBhaLDktEaUVA6KaKnnpvI3DaXjtvMK1mUbSzTYSrUzc6NSb6ZatazjVVnUMNAqeaJqc6CWVYbRTYFDallQk25ouLpCbVMKqjbOqkRLWaqZqaKJmyoijMpic0tM9DRpmzHTZ0gmEVrUVsuG9Zh05U6SicsWE1OkMXUCNqqmqNZcWqGDKKzw0JCOWIZvLVytFzN1OVGFqppaqG0IvRTl6yqmpmk4llDA1QFUlSaSmUlzoKh1csSoFVuHU3KyrSSpdps7FlKloqQwrIQxmIpjnQxMYTzygjOqQ9DTWYqXGsNbCKnKqm86VFbzDHQ5tEXOySjKpZWaucauZdU4dPXDbWSs9NBLlibnmsUtSJnn2t41Fp6yh0yYoWeqmayMNK5qklQ0hqaTNJloh9MpklqJbHlc5pVGNAlU5arnrLOp59HplqmwR2xq8NGgszIVMVKqnIRpGu8qKaSDFklWS0YmwqcROmciZTqXqi0YSdMStDIhg57JSySqARZhloclRNUqnTVnnrkSoeWaQWO0LOrvLXZplrGszETy3ctToktBTbS6iIlGdGmW2Yw258s3NGpEZr2vDrl5XGNbRhvqq4pzlG8mlWaSNuCc9PVfJrc9oclrGZl6Ur3hVmq1m4a40NFinWbM7ZYaTjTpBOHo0RukyuiobRDiZ6IjRNZRrLFVOKTSXJXeYl3maLTWic94xpVlqNKp6YmKjluaTG4udBchIcs0BE3mTaqjKxVTmHlbG86EA0ZJJibMyHTZWxpY8yebHSBoS3SsrZm9Jqya3kvOqcXNIFlc0NloPK4rFKJOetLU9M6GdI2iqmZy6GczeVLCNaU0GyaAQrFKVkpNE9JveVE0VMSTaQqosgLaakSLaqajM1uRWssi6ogRoY1A6nXOqbikBqkrVTNxlqoaNyUVFsJtmoKp50TwtzCo56i1TEWInLp1FURTiNJuUIRNqlpnVWS9A4opGqBPLFpsiWKomtUPWWKW0zvOrRJXloFnc0KG9SvG4Khy5Cs7EITeGGFJReXRqdgiip53oSmm1y0y0Uic0gs6tUVCJyvm6886x1is60Mb3gvG51vPTWYaZVy9BSsvRLGiZNBZUzSpvLSqFWhzWcNUSKQqlpmihMts6kHhoV7Cbis3pGFk1MFOJqaqQWFjW7N6DRFVzZkQqJB335995eZCGdTz6E1NakUl42NIjNO2Fq5Zmz1zmbx2yzWYGddfJcdKNGiq6TkM8R6JOaevjDO4vovRlNnF12xvWKY9ZWmeyZlZFYt2zpJGOWpJktE9EVGpRoq0Akk1Jlc2alhtOV1M1u8GmzkSWromKp3LK5pJSJ1UnaYVeWNaPOtk59GWVCnDrNToE6pTQyKkrzKpWJile84sMakYVCegHDCoEaZJxVKgqY0RTpkZdJa0Np6neb1nSaSNNMNIacWmY6xpMe8yUqmKjGiictkXoEKqebEYyzYCkItgN5chNyJB5XNpCCIyu4C0mHW0zeslSmGhqcBWJU03U56TlblaKIB2c1vBNEoSq5apk0W0w9jFbQrgkDzS0TUzVU4tJZA0qTCaiUXjUVNtIxm0oSuBpihsGTYgqWqaz1yppwnDJ56qc3TKW1UxrIjDRQlVKkiSsWJJSVVKAaqWktjRNzhKBoUVjYqgpcmV1jdaMeyEZ5elKN5dOpFNWXjplNzNzNNFOmVUs9FlnOlz1Gw9UW2jc1rJDrMBWpaC3lsmnaaObzZJRjVS3TuTRaGkKaFMdTNwOqBKlplI8JS00SEVrKqEqmYrSSzaOenKZMo2NN6M86z57qCJWpY52SDbTGbcxGuWF1JVIhi5GEqy7ZUaIi6w5x1zHEaht4zlp06OPorbMqy+TrK56tShxRMdU68vVhzMunnvnvorK+nO1LTSZut9ebXvyiL1y8/XzaMRU5nnWedaa5a7y2n0zWV1XNl0rnqLdJi989Wc3fPUDaRSrLcl9M4reRCmi0l6zUBRUVRKBmoeXSC9WRpOZqlsVZ0MtLFSTo0nTZnbybQmtGY1lmbeWKTza5Wugis6bzsdJTSUThtTUyXJLSRHSNy0zulSVmqFscoy1LU3GuaK5nNtIbJV45Yy1OPQ0itZKitAReWiHqTVZpKK0Mb2Cd1BUtKrLmlqtTRNJE8tbJPpm1c6GKolPOdUpG3mRdwtFZjzqdMbqpudFXDcq4JpUkcMw1afTKCqQ3oedS0NvDAIQTymiWs0s6EJ0aZsoTSDkmbFipSt1QzKMMs7Z2lS3vJGiZFTQqgmnA2AgJDpJNJpZdAnRSVs5qIqoKsl1LqKY2OWkKrQ0UtDOk5Y1NXOGoG1ZKJM9TOujOp3gzsGmGh0hJYhUBmWmW2pVFZsdMtJJs0YVU89zQ6p6TvA02m5dOlSS2kTi5pxTlitueqWUtPQlcVpClJtPGoqAdJHqm5mtzNuYLQzok1JIqYmSmstKLiZc41Jc5quXutVjDm4HLSNjSUOKArNwZ0qmi0zrPUpzfPbM7G5V6zqK9ZfN1SmbzM63WVaOco49OPKt9dMN8ttBpjdnonTKzN4vC3WeqNubQ1tm2ZTV5dCVDnXOq6sst47lnr15xrJV5XLWZbNzRtn59mue2ikLpmp0zaRRz1TihSuUc7ZkOapyMnePRslJpbitFxUomUNCWsuLnLLEatyaFKeFtGqbh5mmNKHmdReqllJbpXsIoRSpxqrlIXCnSZostGFI5qW0NtXsQoKknTvO9U0nE3Lq5QhNyaYUlIaTOkZaGOTDaZzdsZadZlxhZN03lbFEoqh5aeO9Nze85ACDmkIy1nWdOwkbIbHslqqUVGVygXWZVuClQ6pKUty9TqVVFNJWkQqb0FSqtq9kgEKppK5KZqc6ELLskt5nQMsUxAzeq8bWGwnQKllTmqBaNBSKqzvearF1UuSpEDskaHltjlqpdJOJYLK3NJXPtnJpNRYn0zJckrVUk4qpmhVIp1K0Ks3jQBlkqMukIbFaRnVqHVq84d46Tcq9ZJMcut4aESqZUiqlzWW0XNCvWVlaywTedWlWsuk9lSUibClaQyubpNTGo52SrBataylWdJ0xzjdZc05mpaGpsSSay24ehzqazm6gXnciAFJSGVcVVK4kvKtoYyFZQtVXNSnG9VPPWzxMOjypXF82XWNJnn0VYVvnfTN65LeenF05xuVnSYhkxMvJWsPU6JRltXsmG8PP0c9mtM09Dh6lhrmVrprmZgz0tXS6nGE71vMdGFazpSmzSZWNPLOqMtOetai94Jih0zkqloJz6MNRUotpT0WnKFShu8ttZzsTOW6VBoomkZFUo0nGqSSXnpFSTPPV3iVrla0NqR0vN9C5pucdczGqvKtAzMtM7lblqCdZpIeVk1qlXJQUZptyzbhjWRFG8NLKEvO9ZgaFuKhNb6oppys6Mrbz1Opos3LxrRJazMbxnUU6rHoSSXNlktIxrPXPUm0aLgWqS0RUDPNLDoCqqg1aTYkMdTNwMJnLTQNUVWhTUVcXNOi4mpWzVTpoFIlXDqhVoWmVs5CpqVica5yJ5iRazrSoNZac1pAUnNUE0INoTThVDa5E1yTmqsrqGmqcLLrMaRYloac0CnK6VVI8x2ijRAExcvLpcPeHFTViKguMpSaTUobJrVIRlLzvKCRZtyM1DHPVIdcqlNANEWIlFs0Npy9cdNChssTTPOzSbc0I0PHbMazbJ3N6EVLFqtDCEuSSpBRLnLpUPRZFaLlmiRUVRcyouSgT56c3lqV56iqejnONZ1GkVDhaViXBpZ6TzalzTU6E6l7qSuAM9GWiOetDOmjPWMM565msmnneeuaw68uXQa3fMWemsjZpeOms0rlK0yE1ymZpTOHQojzM8bPT6GWV2Ns4jVenL04ct503mQktZx0JW9YnLoqPOe046dvRydffhhcZzc49JbXnrrGS1gpRJqejCsz0wC0zvMaVYj1Xlr0wtMVoedmdTdyGbupyqzRFS81Na9Mw4trM862UMnaNAEDZFwkjLNANQWkSUNxNbG5qnpnTmKcyVDJKxUrgEpjLu4eqnLQadNMTJ08szpMpUUONqU3CRoir0zblS5NN51RZKaTS3lWnSllS0Z0hGXQRvLzuMrqKGi10zkaGbPPeDWG+d5ay0hlc2RRGs05JwdTz1rMtFpJVkpNVNJKEaJtYlO2bUCZCzHRtIXmyG3qVKU1Q0SvJtXmRememhSyoozy653nTjWMsTpBqqikBJihUqKqKLROUVgtEFTjTCG1HDlsKmpcsSQqTKVIVSDKak0WU5UKh0ky0XNRnT0lxVpdMqWsOkpoS8zVXDSFpGNLXOkVQ6M7nK6VUovNoBc9OWhuVRVU3vNZ3OgudIU1OlVGhZ0U2UbRmSpCONKzuaqNsKqdJqbtV0wkFOWJNxSzUtpA5rLnYqm4eW0NV525zGZ1U1nDw2yzvVAkaJjQPWJedWmMgqUjgDVkLE6i6luaLy0qlnWoTeWQxreXFXEupw3jG4ma57rB4zpL0HOtKzZZa44ejbkneetKtZdZ2gKNyuDLZBzvF61v07Yzq058fS5865+nLautZ7dOOHTh0Vw9F6Fd5m+cCjO84noN7Sosb5aJuLa7NHRhbjdNPPJPLl00JuqltKVZtVTcF81C1plWha1kG6KcaDPWSz0UZ1rnRF6ZRo0mc8a2cGjWs9umMsuicuVJinT1ZOjCzKkJ0gbCthO2aNKqEyoKQ0rhAi6ebQzed5rio1aNPQ5EVKGKcmahDNq2ZLcpk2tFFwTcwiqmaUaNVnrrISZUNCisxHLy6ifXCVRlrLSR0IaOsgrMbFrKh0zTZ1GiVNyiVSKzvPGqVEFw6oJYqKqo15q0VQVRSGgEhomiahjnVchQ3LakzZ3w0GmpdVUPQxzBnpBqyQnA6WdGdRrnVCtMwtFVTrIDqZFjU1cU2q2TWehTQkaELkoqms9AiOe9XNaClMKbWVpU00DQqZSrYkDTQZrMzcCMuojRUmmLgopVZzahZRt0MiLThlmzG21cSyWKhDpWems2w3km1UzbFKbrLSYrRDZAsznSmxnWCV53OhNbHSHLB6IAmQvKQ2UA5ob3lKoIoTaJpIdA5zciJwN3mypZ3A0MqSrSTRMsteblrYgGtcdNFK40KW8tTZqkAHhq5la41WG+eWI3yxqU+fO41UZ1vAbLrLeOVdWHLU1G053tOsw84LqlVvJIVkMxrk0nTpu8+haxmtNK4Z9DERa56FhvM30c22TXOr1iZ045noetYWrKmqc1NVGOPTzWtMprGtcLjDO0Vq7Yi+nMzK5pdVrKJ0iI1cpUkHF1ST2ZuXmLx0FNZjonRStJRacu66vI3jSKbY3D5a0JNBlrjlu3Oy2GiSpmlpLnPRXMG2OsyJ890haFQyI0VRnssqAZk6QRUspuMITUubVPTOtGmWuOi7kSKl5W8dSbV6CalpuaoCkIrCtAzxocVhqorZoopFG2YuLKhyYRW6xsbDV6Ewqpc1OeuONVU1DlA0TLaMUISHo59pSoudUO5zTedCrkRiZZ6UMhQ13k6spIXFpNJM5YNpGgKhgcjDawhSpg9CbknSEbFoSpZed6zz1tF59cuyKCsy0SqnAUqUDpm5l1FUE2VJxrKKRpVLIoSUlSTNoWOKq4pAi2mpslnRUayC5mhhq82RamdcttGatZjPXOpbYoUzedlZugVoq1m3F7yDVQOcrqRjHfIqc1qFpBUVGiYay1cWygebUV7HLzS6FozoWdUZbVFEk7l7zU5g26pJGQooHOdlOLAYtskrzm1lRVcW0W4gwueehtsZ3GW9MKrZS+mXWeqTnpmLrDQtcNRp59JzrWLwiOXe+XXPCjG89NHoV51k0yqKrWaR5a89Tnpnz6Xrle82sxJGThvb3FwnOyWLdMZ3A8YtPO8rXnesYD26c+mue857BauLJUDTUE6EVFc+mNrlrq4+XXXTiVdLjmL1CczD7OfSOjbj3687qK3lGbyrLScaz6sNGZjWybnTmw7lhsqtIrpjGhjmt86KHsq503nnWj5sMkUFk5ZqogSxOrgehOKy646RvM0lnTlrKqE1zeUUSS4Fm0vDTQ5iM63WTrSUoe2euqFo4gTmhLeXLkZGsulY61TmNZpkZdlmJplNCigc7ms1PPTZm2LWdIrzcU3NYmJVSb1To0gimhUihbZ5RqSaRnU3F1Y53lKkJUBVFzVuK0Z0UKSITuBLzQ6pm8sgKqiqcqmqs3obnSlLehOoSQWNk2otJoNOtJM00ljUpRNBMOllca41oKqqWkVE03BU0qyyUNFzVRVKnDqsqmhVppLh5VclaQLUNVmq81rNVnbS6TNDTOHXLeO0om3NK0mNMtNVYbZkmMkNtOLXPWkIItyy0ikOjM3lpTNzaqTRUZaxWPRnrmWOy3OXNZq88atVWsxUvNbzrc6JTSbyR2MufpQ0IM61lGswqzNa1nrZotdcxDWWmipckvKpwwqOexaxFaQtlRSLJaLGmCSSVnVOLq5qEfTybayANlO/PnfROIl6ZbaFh0c5ZZ9eXPaw6OXO7ynTnt1IC0z0qurDPpgvPQcMtJxstKlA+esjcjZRz+nHdlFVSJ1aTNBnY5WPSmz4uvV1xejn02MqKs6ZqI1TGqSMNXEtnTjOtsZ4DXSLacKnTL0zndz6FkV06c/TvnJo9EujplKiueenl49JKrKtcp1nXBXjVdHP07yXlr0wZ29mK0WGpo1ZdPNrWmWmSVKeVEg6uHomonL1LHTeaSuMrGsLXERWqQ6iZdCyRoemZZ1Cxqt8tHOU6Z2qKgjLWM6vbnrWN1K0OSJ0rDUm4EAgX043oSoocVRaNE1OtZYdUYSdU2dXFNFs4cwlRnWVxRWmJSSrTPXLZpJOW0hqh44tJQLZJLQbJBTQVKnrLOejLZLzoWUqkTzNUUp0yW3NuYBZXpm2oQlCrU6loJJtM9JTLVPCxrQmmObKoRFaEumgpk1SKehKpq5pJWbBTeZVOkypayl53QxIxDEVOFuKK82qTMxuGToRTlaSNcCIuKrUl9MgNJm4zpKpygjM3OmrO2muGkJpjm0syExioeNNjR0p2aqWiz0nKrIa7zabZF6BXFPPfKphxjV3myedUyy6IarzpNJTQIcjmq0JtxGPTmai5maSojbDZC8hGh1LQJNTTm8hqGyReE9EtIPOicPPLq5eiZvPGnUhaVL6GbHhag1aTIim4NQ5nGuh5b6zjz7Y43F3AxGjzpuoc1c7OVy7ZY1M64c951ZOo10xhnrPDqzAxbHN0e/E9F8ydfJtkGXRGlrQmrGVPo1csdHKa6a4rTfUrWJ5O/nF6JZujLKK2vDWq5N5y83J6OPHq+hX05c/VOsacPpz0zhPRFVUwnYsdN42zcbzUnNy1rhBjonMct9hzQnRy9JPP6Ab52yu2AlVbio0io6AUsMxoDhrTrDPbPOrkcaRaRTbZ1Bo0BQRectMEqZagZKLMVS43ONIzTplqMlqM1RMkbSgcE6Ks1oNlo1OesrRm7vLG0XZTzbNiITidqzE0x1zKxDKLZZa5MdlmbKjTPKmThLm6VTes6Rc9DJ0+ahVoiW86FNFNEjVo1kjSSTuWjfF1rgzVNF5XLSQSc9WCaLmMurjTRMaoUMihLRTi0ob2J0kkpVOkE082AnE25dOCZrSJi0FDTpyxmqUNUkqXlNy5y3AS0qhqaFg9EyPLLqCEjLrm4i8tcDWjlFZFsnLq3FazO2OtFI2Dl1Q4Qz1zypy8s6FITT0xUaASinnpnlg1jLlRWdNBoTmZvTDoc42JrmxM03jWsVXXLQoAnK5EQrzp6Z20Z2hZpk2r5NS1w0mqqai6zN3RkVrOUbznWNNYn0Ya9MuGMlaJXMkyzViVnnSp0Sx2lnKjDRUFeemdVDqZi1lrPVRZRvKdLVymyzuJ2oOfedE5TZY1LZU565E4dGo0zprzqkzNs8pltGWI0wxpy7mJ6MNHPrzdXm6wdBvPmbRl331Xx7bz0eb2c416Hm+g41uFY2fPokKheDn9TDn1O7KunJ1hpoMt+bLQku+nN0BeOsZM5V41ptNb5zqzRRK1lKlaQpK+jKnOqitkY7RjXM3PDpcbRoyNTGnbjpjZ40mtZ3vCVtleGuzSKz0KlWFhWwnPMm6rKOVunWLpqqc5jjnq1Kp5bYiLN2ttMtHNEqnFxmtF1k6mnNZ5XNZZ1dLOgmxq1fTA1GyZqMa0rNoOloHlWXaHMZ1U51bzvQY7QOpNuZiXnWmnPrrKVjZOaxpNNKpaaDPfCJYY0kaVOkGy3hpUylldw5lqs1CtBBBltnNGWlQVJrR566xNp1DJoyuue5pZ1UpzaToJqnUW5C1rMaBSudWJtdMpPIdpa0Sry5apzSC0lpKFQrJAkqbmrmWzuREwKY1MvI+jLluNcdqdTfbMOTFYLZUBlSckh3lzmg087ZY3ntU1BLE6eka7zM1nG6ithSdaTN6zA1lkm8s0FEmjSyCaTqobogoZpOom0MKzOleXR0yk1ZpTVRZUuCkEKgqSVyq2yaaVoFE1c5Z6Mc6tUaS0apwTctVZ0jkGRFZavNtoktZqaKhiy25veYaQ2EMSo5auGpuUipVDXNKm5mLkMu0I0FqWE5K87WpU0QqdLHbIcya57nTEnXFaE9edpoY6VcVJRk8ufTpiDQ8a5+e7h83Dp1EHXOfP08nba646kxuejOZrTLedJ1HIc9D0KOWOrWYSwiuiuWumdOOufPTprXp1jj21YYGmRF755iawy9F8fToYaOcrMSq8d9VK53lyQOvPemXn1m8sp5lo5vUqW28RnrkMaWprXPTeM7l6Kx0zJaQDpUPYst8ZTIw6Vk9G7yrebJeZwtGlKsKNU3HrssvJvj0LFJRQWU2SiyqOeqIeNIuWCiJabAobVS2AqHNPUqrNFzbzz3G0Jt80kayvOrFKbmKhOVz3prje86vO9YqZB1QaJqFW8ZupVTjRpzudSzWEwYw2xzqgZBQQ5uKgWhJznRU6DFIS4powSQ5edVJFaLmeU0z1GXWbVU6Rlo6py8tZ2mXOuuG/XCctJVwOhCRq5LOixRCq3GmovHWCXLEN4W5GaYlwXRFNpmpypuRoEiTnDUzdJlVnOkZbcyiVRnVwmLeakNMi0pSmqeSaE6atFWfTFJup0z0RJSNTSGKnTFLzbaCNU0mUpLLpF5NJDxroklKgoVtnrvENQz15tBp4qd0pjSKUSrztazWMbVnSaRMkm6maHEtUyYipxbJTRJ1DFyqV5OtdedtdxTmKUjokJqQ9jmVlJS560yUDbWc9GGcj0KcS6zDXRqZwBpm10eNxoTaZtzRlpgbusdRm5qglpgtpxrMolmnPCrO+egpMqyka561zox356znox57nLr5sNHMWujLHb0R0w950pp56ymlZEi+nn6kynTSIprQ+bsz0VF1HNcUaevNpW+2VXMWXRL5o4+OzXDu59M+vO+3LpcvryIqBl56jdS95mWCXGlQKkOfpx56qkm0sfXCi6rFiwlDQkgdsLdFzKayDTWea7y0irFGunTCnO6ytzLt1ncg1Wd6JHjlNJmYYZdNM9NZUa5EY9EZec0rG4ujWRLSMs+nI1jLeN6jXTm9IejJizrSBVarCLlBrRYXVzpDTQ8plvNS9ohNXoa0zSFTzrVQbxcuRU6ITNXMa47pjqMFUqrx0bYaLLnrqIreZVSLpOiZeF3GdarMo1xB6FFazBczSl1nnUc93rlUVUXsTLiWCDWmpEibVlpvKTVDzuqhIbrKkqppIVSacuS0SaS1WWXLpq1obm0QqpORktMsNDhWZaZlNSSsjLbQjzvM1Uy8tRaqKHMpsnNLUCrI83IvbDo2aRR0xI6qNYeoQic0imZXPVkWNJVvKtPQubfA0mHPRtgatZYAqrRmaOnj086JszqNMtW0zVOY0E0orLnlpBrdT0axzEPOzMxtd5ktY3cTG05sbUKtLhxcDS5mStQGtbw0TZc+2svNTV64UPReb7czN541aaGYuOenGk6pi3lM9Mqa5tc77Ms9d4uE6mncKnKKHGXQzUtF1ctQFvVhn0TlyN8h15dMJpp8tRQNnydc42S5XO6jLGOuXLXdzVHfHAM4d+mZ365jXM6Z6m51z3xvNM9pcztn0uXOuOs1pG1k5unlboymDV6RivTnnGbp38/tgSmJ4uqM9OiOnEzW3Pe87XjbnSNYs5VBa2M9d5zonLpz9GIq8zL0Zs3maCdqzrWJdJMLtY1UDSQamnP0ZlNQl3C0QnljTkl1qufbVOj2czBpmu8Nt5pEg4cLnXOcunZMm8MvOr0zukSy1x1yTR5aalLqoqXmeWq3Zm85mnnouaBzy1WXO9IqFWedYbqcpeuLNOqkjQqJkejJa6zFoLXMrWc9imE1orOprIWfLo7ls6Mo3nDStXjvrMJlZxeXLd3DXQlOXWZlZeZJOca0SegFBbVN7IiwiaFjLeixtVmd57aMNAppNm2tZoTSdcdKaUsWVUpwzeepNytFzJN56KkCzCaJuLpp1sclpNE6hXnhcBhaClJOdaQ3VojRciyuBZTSChDKdYbKoqopqlY2zm1mjeKa7yvpg0z00Z0lIVnmp5W2VZLlu7JrUyeidGVOWuRqNMgbRm27xYdBJo2M73gnTNqlGG4vCds7zq8qyV1M5dollpSrWeZ1BqI30XlGD0a8u+sOW6zGYcOqJKpo1XOuTmhQI4Y63jpol0krWNNZCEyTWVIQyiMaqR1MyrW3l6SdI6ufetrKea3ztx0ZxgmsRhjpvzzpnW1Y1vPSYpzVxA6Xzsul89azpGRnWnKY43dc88+ndpyzrPXGkOUlmaWHTGNPOgePPfPl15ToOs+jjvR0aZveLnHino7PJ7M69bl5ujXLo3wfTHWsnrEXhha9DLn7I58unnzqmXGWjU5Xy87r0DGkjo4OzOulZaHN7q+mctoVnWue4mr0qbjTeRK4MtMBkrHn064o1jLSqFa4m83O3OgJ401V6CLIz1TJRc0sri1ZmmJNFh67aM9M7shnHNq8N2swejbLSawNTG1VRrOjz32KbnIqJa4AZCc25nfQyoMM759HTOc6ZpE6Z43eN5Zb1zuLMp0KGueys7l49GFVplrUU5p51OHWsTZredWXtmaLcXoIoKZ1ymctccaay0zrVrXeMqiqWuNTbUucnVZ1nSeGpoiE5NRcmEx0sZZTTOgVbY6duYXTnGenmFXlpnUxpGUdRVXlei0JHeeuhJy2pN6IrOs2k0umSLBz0kFzLpzSzDVNk6BbRsmqjM9eetVOEWwloh1GGWllpp1mqzzq0Kt5T1lyZleWmGN6Gd5avK9BavWYB0pqRsM4WsKaqaQvn2bQS65cysOhBBlqjWSvLnrbNjXeNwK8W6M8925p1jOtcdM0Lz0F1GjnRTWsiBo0ipy1zsahBZ4a5Z3s6TlFS1SuadKx3U157BqZnprKHOmkaFLM4ZnpNzUQbZ0Uq3WNsGWTW5HR0xFTCDTFIeWaiNRnM53jnWHPr1kRXRleznKOuE0oy1i4JzrTLTNoMcLpXTEYtN+HXVvvydOsRUaEnNgsqBW6hslfLjeGxvjdZvOxpjLNuVxz2V5JjfoZcOdr1Vz5QjM3rp6OK82qXOKwUb3XVy2nT1+V1GfV28Xp68dPT4N9Y2VpxGtYoeb6XlY69fdzVY3y0xhcXbnvUabTk5Ojj9PO8OqFrnrpjWs3pVa55vXNppLNeOmZq9stN53wndzhGs41O2PVU0nvEVGeddMBvNQ7zRGmcx0c+2XQg3kWYO2OkVacNavnbS5aS5eXOR53qstNZut+RzLzs3rLuyDITrNtpqdZqBC51yIJQ3eVtmq2zZbZ11KEOc5p40FNsx1ljPSWiNsM6m8656qLEmm2aCE81nScXlulbmql9MVUmqkCTNxlnLfLO87qSrbLXeZKpIKKlUFEzWNFY6ZSaUzcXSkWZ2iqkzpheUua6Z1YumIx1z56Li5ItxgbRnQ2tVIInSLpFVrMtSzbCqs3sbwWXVZ1TvN1TkinFMp0hkKca0UVU1DHRytZ1cPYKozE3kNOXlmBY1bi0Lx21Qnnl0zekZGqywxTpeG28tVOsqbjOqzuZabJOJiiWO8s64qVqnPoI1cRUZTtlz3RFya46QTrlozI1NC2mzFjnDSayuVGjW50SLk0VGuVaRKFU3midYmdc1Tm3owNA1aWUKNMTektFtntjsdztkm5aPIYvJmXprHTfMi6y5NzKTmtNcorV89JtiKdXzRqvGUbjp4OvO8UtsNvK7N2Y6zuoprzlUbxlXY8dt8+Lj9bI6+f0DzrmW/M6qs+olvLzjRVzubylc+nQefpPXyaMseiNtmNYrG9MlGHaDmXHoQ65eTt4t70zwwtdZQTrbbJnz9eXNxvPfOqee28ZvQ6E6pdsadXNdj0Gk8rh7pyHS8uGexmXRh0IuX0M955NFPPafJ1LTjnLvkx1nvUab57Zy3K0yS6xksa6KzHNa4UlZmBrr6cNnmsN85yWhjV6Y10zpUVrMRePPVXzajoZzoWuFrpjXO3TfF1ZryG01Ej0Rn0JmbQSJqujOb3jONJNPqzvWblzrMirGrw3zRWFOJTUneXPSZ2Fymz1jTDooz0a0inWdJFwxWWk4Zz0jGpdqWJU6RGWk1lM3rq5bUct9GmD6Y6HGmsOZvU6lIsqx57HNY1k7znrjn31nSg6Ym86JEVlhVlnS0TyiedW5Y1LEJuSoHUlqK0zvY6U7yZ0sIwVTU5qJaprQkjTWcdIoW5Ec2M4uYVQ5z0lYdMxrQzWQzY0oeaorRsqAgudhCvKmUzeerlTWVFCzpjSY5W+XSNUEXlWixPU2phOUOmarK9sL1m1ploqazmsyMusRQ56xsWd1lorow6OmITuMqeZqk8ZGZ81bYWaKJTXK3ozFrM6QOdcnNZ6EY1SbQ0itlNTouc6Kis6qNcTTxp4Y0pMtMtEzqpSY6cZ556ebG9IelJzVF5tNiNHOcizqpaq9c25dVjGoJXKC4Op3z3noTs2wc6z5/TDz2xw65nO9bzcrt4W1u5FpGsXePRvKx6OMauKmtFhsfRk8yw2yk4+jM3l0LGemsubJ2Pi2zqpx0yvHomePTk6DfYJb53hay8yrPPTTXn2cwRONZ83Z57uDfbdgWZtJXHp9RcXbzJa5+etzO++Zb6dnn6dm3THL7HF0a51pz9OcVaWsc76Msbzjacaz247X1sco6ctMizTp82To5KDSze5o6OTRx1ELrjJ2Z08mi7HFb50501nLHaTV68+kaLJptF1C59uXOtevl0ro83ty0RopzWpjTvzw1VShe2HQEaFubiVoz0OfGvRxVdMEzWNXQ94VOthFSQRGUcPGtzDVLpV0xmqDTSI0iaaIvOaYE8rzy9BLRaSUUlsWesE4qc6TlYbIJJqBt555dNMmiqlmKxuXvzWm7i+nOahyQYZ1q50xTjut06TWijMrVRUSbEZu5ppQ1c3Uc987t5Sd8kJ0Q5ay81ylosb0XnUOWlkb3UOLUVUzqDOkJNUzWZCc6qRZdSY3m86JBrMhMdM3nq0vPVzKJmKcYapOlpmNoKU0gGKnRJ0hQ1WU1C0NKHlipE50xyNy5SNsNB2UabxC0UwyRq5EpxNaYUpctyqkCqjVFlTrHqwQ9Znt25QnIqQzqWZ5dzO2yNFhx0mTT2x13nWJnedVm6M9csaZebLaNYkS0K0TrFQmuTCrLXInnedrQkLXOzeYZBpcvbhnWHRwbm9Ly6HEXm63cVZWaDTJC10x11mqztFrnUZJTnVvm1UeNVoTomeOzNcla4Z23ndMembHq49i2kzca6FbzMUsuOXQtaiaznpwN9ZgGE8vflnWHL24Z6PDsK5+X0McajTClzUbZ1nHTxT1bcOkdONZ6Cs+nKZHNWk4Vz6Zx1805vRszITTi2y3vbULN5u+SNiRfM+x6vT5nZrhPTxZGvV28z0t8ryvjwLs5Fa6dOHoxYrbTTrcz0455mt05b1MPPrEi759a1jV7zPVm3nGqVZ6gT25OltiJ6c88dozvbbHRzrnVazLYU04Th1qOfXTJ510VEpeMazkbc23V1nEdXPWHqz441djw0DZTdkpDOsitaz01m6yes01ZZOLnn1AVWNt0uK1gakm01Vw0xoYgFTlV89bqH0wFuufPoxNWmkoSLKanl0ljFZ6KmSiu5KuConXHSpcQvXeGmsXm5KZhY6XtzahU4IdmnvJrE7NHmq2Tyra+bocpCHXOTEUIUgG5cpees005rRSk0zo1JQZamNJbbistMdFw3lt64byrmca1nG6CXVoVDc0OFl0hjO3OsqoJ0xvLNssrlszh6RbNZMbcy2zzSbQGspzGdXnpGYzdZ3M1AiWmbLXOqrbDXebeb1kvJyoHnTpPWVNKZtOom5kp41pfOZdai40283q6Y2VV0wsNMM6rIrnuOnArdK3OcbKYNIqoM61ydiG2OsqnOXLqyy1a3g66Yw1S0RT0jSs8ejIeTWNTdSQmzw6HNy0k4dEmsVvmOb2yWaJIvm3y3Vw4zLicdY7RdKXFTEUEbGuYu5WktJzFh0lw2U6S7HegcummOGbd5Voq3gvm6YJrDZpkVJGkK9ebRKijNrONVBvRZY3x43vl1crrlU1jrwXXTbym7yGfTnDz2SZXnuvNOkY0sZi3vjzGno6OHss8gHW6N+evPrU5to6oezjhvbBaDTZOunTvnw9HH1c3q6eeXnrx75qJ6ZVYBe0bdObSjeCnlanPXDnvKrrOs61iNXz6ds7y3rFJMoeVY11PDfeHz9fOluiLVms6Vjlo7JysFz9OOdcl56XRjjFpjrFTroaM+fuy1cmXVOd3WFA2jRJqxx6ObdN5qLC0nWoqddBNmgvG4KkjCrnG03pvOgTvNTbKaltDkykU2jRtkMCIuxi8kV5XOqLl421QGchjROudWlOoZoWTpFnaWNrTK6oqdZscxvmpqJdY3OmdJcy0WnNWlmfUkLTJNjMyTtWWXS8bhN41THnQytGZLzXUrVSmKoljbzpzCtuinbnKiiMtsdQUsLabIJCnCmx6JmtMCvPTGW8zG60ypOnNx0w3lWG801allebkXWRJWYW0DalZodZCW8lWsrQszLPnrphZFsY3nWivPWdr5ttDJrQi8mV5GNa3mdMsaBoTUrnUY6ThynRZ0a4Wz1wddGvJr057ctjc9aXz2gHNqsdW2eIO5jpmrHbKqrHWtMtM0uBssrocrhZ06ukm8UW+/JW8uW65L1zNVKGXRhZa5bZJo8dtETcizDSbKDOLKtacvTmCz3c57EObzKqcNZzrPTEN9cRo4JrMVVZ5jXOmwSRt7pbzrz6maVSFy5J7yt5uM0Wm2b2Pl7OdcLTzvaGWcnTzo1nNzlz9Pncu3o8vTzbzjFGOs59mJcF8u9123h5xpjDGri9Z5L159bS6JxTy93IrvJbqNDpi0svL1wvbTdredvPfj7eOK6OStvUuTo3nl9Tze7N1cmmeMXtwdA9GmEWcOnbKduvHfpxc2+3PPNXnXPhtz8+yis7ddPEuL2dK6O/B8+ues8ePQ89io3Cdo1sa89Gs6aZboVGvTDx1yg0zOaKVaVa47hqql5vm9BnO8zMlqsrhVpl0VxZxL07q5+kztC0ubJxy7bcNt21zb6xo4rWaqKQQIstkOk3OisdsiuqSRrL1VDcc+os6qanRSWY3UBZyZct7Vya1pvza7yqUTBRzTLWZNE2gmsVPDfQsNsM7HMY10PDfeTMWV3m82UXGd1eetGuW/TCUPZj05dGhRvjZDYpZ75FZNFnNGNUoCsMdTcTjXRltDlFpU5ktbzes6SzQ9cqq8NJ0JmedOJvK6QjbpMquKK5qy6ZuZuGxyVTjVAnOiebOsbG5jMtidGJcVd43TeN0XDq4ltbzpoVzmaqa5p6M+fS1nI6w8svcsnvBty3W98l6OqMlrLIvOrqNN5RNI6lprmoQHBpRoDhSs1jtNktcdOmTXPfeMqTwqpKMdVOG+GmVXz6510cxjHY4reTHWZnol6zlOuOdU9KjKqynOksL0qEnr8+tXfjlo5lbQ2NzWdawxAeNavNs3MVsRSVDKMNcsuu2bDpwo2YZVPLcudM7wWk5dLxNGxOrmM6zzovFZb8n0p1qt511jPRCaCTnE2zxu3npvJOokoyrbBsQ6OaqWnBnXTPH2GtcKxDPXJ53qeBob9XLfkDbi9N7vM4/Tyz0MdNSnOudtNuXpbfg6cK0XnJe/j7cR15dzMyDqVD5eO+7Dqz1l3nOru553yYOuroZd/nd7z5AVrp24Fg6Iz5y9eVpYs6MdY01z03zjGp1rfMisqqTWWPNb1Ofo4+HX29fG7d8O+/O2cXXJssa6QVZXRbXN9OUE85o7uXZNonp1jKbwHRbxGvPRq59q0HLHv5wi55jWek07iHkueW/Pb6+nO3m+PbnHtvn2s5+d6PPy6Ls4O+t+jl6e3nd4audCa3kYFhqss66ak6YCarYh6KlCO4VAKQuKmaBiVnz1px78+Oml5dDVUrWNoUxJRnUkrLtpjprMGqrHasanmax102lmcjRTOktnN3Z5p6YzrLV3GWg2jPaWW+C0XKoneNV0TK1luFSsOepUrGqcprrA1dJhZnXO82vKqy6SnrOhOm85UwUIrJOcaWl1owunoqskm2Ng8+W8ct6SCJzQ3hrhT0nUc1ctnoRUqXndVBFJXSrPRJsIi4DWiac3IQTUTcU9WQTz3DpZSd8K3wuKkpYahzOlzW8w2Vu6rtyTkayFDww5OHX0jyvTnRwdebpyyK5G6dcbrZmfTE8+/Nz6Pfl1zrSs05Ly3zY6jpYbZzpty66zvE4t0LN1qsriVjsaplueWw57rGrSAxta6lOKeCbW8s63yUttlfIa6o0zTRZ9MRvnWspxlnWpHQmFBmdZzO2GvOWPT5/Zy665hvM5sxrWoNZeVPLnz3GOldvB27yTVdcBnZUJQ5jPL1nPerZKIjk257p29GZvnpi+XGqeGmtbZ5512c05ctbacvVi4fO9jz99NdefrLryy31zzw25+e5w6fP3paruXzNujmy9PHn1N5/T1eVtPQ8ndfWnJebIUenPLHPs9PZrk34Yy0nPd2Y5d2Tn4uvn1q+rivWe54WY145zNx259XJ69XOvP14YQmnRnpoCd+ucI25tLxgx0yqNDU8fdlnWOkQa7p4exya49IX1+drY6+e+cOjfg60Jjo1nnWXHw7e1fHn25evjgt469fO64vOabK8lb1zwnL08WsWltwwvo4c7rt4cNTXW+TTWc93pF6cthltjWdduBTjTWb1jTfj6HOt8XXvDy6I1nm870/nfJ6fpK8Cs3vXw9ns4VohwpuNzM5rpMzRrMMc7vPMsaRqcrk3Osalmy9Ea5gbwLNiunK1D0ZXWO2szC5ca6TkrGt1BTrGB7cuQ099cmrnTNVQ84LW8mVVz6NWO+G7Oped7Xz243OXaKB0bc++sxOuPPRUvCsd+eerTm13lxUFOvMZ10ac9JpcQnVM1vNS61nLDr5+erkzNaZzTb1gk6ObeYx0hmqnKh0rK4bjSpgZEy1szdY3U51Dc5baEWuG9aTEuU086upWi1nFa1ixKz2aGkSJrCZbzWV5641Kxo0tM90qmdMRTcPSdOmGtMEqRDzcPr48OvH2WaAnXphaZ1sjn6uc1tMUXRjMbOjmS57pTmO14GbUHqmlaZ6Z9CaQ+VzrBeNZ9HPts2jHZyK8quWZZz2nLFUmkljesy5zM1b6MbikNUOo1bLMTWXjG5Kq75Nss0SPRHNtE0ueeiSMsCnnvqrF7xly9fFz69V4aBV891fPu4OjHTrkHOyKz05rHi2kuiib5p7tufXrz5Z7Fl57MW0w28nPTfPPbW+rFRHQ70s82XZ4tv1cYfOvzO7ntY7eT3XX1yeHHHsx4+Z36ennd+pGWZb89cOn2PI9Co8nPbr67XF6XmZzscB6c9um78fQ35lzunHJatN+ULfJmrpgz68rJ3y6c/dxcXrvPsxnk16MHMac7dejvjp389S66YmOjkXDHoxz15o35jp0K+fNfLjyO/Q15dq7XjqY6IcczV8W2Lo18rXV34VhvO+Uxjejkw9ExHbHZprj05V04W5rkrFVpydluefbzca5dMr316jNYJ6+dV2Rub5xoPBnv53ZnfSrl5Y9XL0L05aRrnj3cuk9Fm++GWXTTeWu/Lj04cfYg1y+jy69+W5BvF5TdTNixqs9SrmvOu2eLVNp4onqjmeddvNPnq/T+a9R6dmmemOdS1Ws1AaVjvGelOM+Lv5jfOE46bbcu5l8/RkOesvVtWWuc5Mg1tmq0FrVzlVxqrK5KVtkyilaW2FV0ONLCo01nHHoyzvHTR4c7ANHy7aNsdMqymsMdNdMXm2053rO1c9R2znHTF8t83Prso1yxbredomdnQpwDdYSavM0zq9MNtYt3LjCyTe+DhK5+jnxqojG1vm6lb5sK1yYMUTtOa1bzi6MwxrapjWVpj0DrnnJdEZMm1OUy6ZnFbBLU33jC6ybLWDOt7zXTnri8s6315dtZ0z1jQrQk0qoKjZnnsZ1zlBqCZxoswy9N46azVxx107eT0512rxdDXqZ8XQBWMruZ5x2mPS51cHXmErLos3LmssOumW2sxz6c1rryyunXB1Z3c5Ot8WaOLu87sNvTDoc9fPeWudrMzq9Y2TGNpJW8y6+HQ0ed1VHHrfPskZnGNFZ1O+WehPNeIdPb283TJ6pxdno4t5VGWuDNaeV6FZ1tCe8Vk1V9mGPTO9ea16cyZeM741zdmGujOjXdz78W/HWvletNcMzkdegz2zcmGPfrfDl6uHQ4e3pQGvP0ciOTtxa9ebFcr2w3q8MNd3d5ndx4PLOg92fXrJfO6a7cnTG3P0cBDWku8O4MtlbzoT5O5x90T0xtvlrxa+farox7stdHNPTl18749XXXLM1l0cHR25wxvmz6+Le41iNb3387Uz38/Oy9nLJ8SOLo8bpru9rwOvpn2bnTHDlrOrdVRgi1lPdHHprPob8uvXljj1Yzhnpnjqc2nLa2mNs6zjpWyM+nnzaXCzb78m2s5z20G2ONWW+WrXp1PQ8Vti9Y3rlK7Xhr158vTjBroz5dGrSWW0WOeZ3BrLXLfVSWGs5Z7zjrz5zrjrzYdnL3fZngjPPqrh6lekrB2TMmWacw9j4+vWZ0GnRIrJltzZYy3nHTKstM6zCpm1Mddc9OdMNZypQDvpyONVDbXMlt3yPZ1RhVXl1GjPLTI11dHB06wY7QU0ZY10pamebPfmzvonWLKeNqKpHK5rnqnMaz1zm+mDm6+Hn002zWXomDrl1OVdGRBIijd3zap0bYaXPpzyE1gyZTGeN9RGZXjTmN84XtwwkN4mTWqVo250Ge0C0lm1IpJmzLkpXPd65WgqiNaxB6defXpzekSmuVzsibXPbaveSUCaxo5CNEIcVo+dT1HNFdOnJpGuG2G7Gbvl1eXVi5WizbbCmPGpPN2x2nbGpm41nrzenbnmicr7ebr7c8tM6TLoneOWdMs61rnZXUco6ZuLepmqqC58/tw6rRTwsLXm6s6ul1deWeXVGjO1RTtkiRKHpylwb8m+oxc8lQrzvHNWbVKcs85uby5fV86r6ePurq1yrr5zLpnZy3rjank0y4dejp8n3OuOWfQ4OmOl82bbce8WnWuea2sslQb9LCrwXfGL4a2Ses48XVzZ6vHTz97z6DfbtnHDk7K5+yq25tOeaWnK1eb6HG7rHGuzW9rJvD04nKamzm3A68GgdbaQzZ6B349+oeNrUDOMhy3PUGbaw9HDy+8Nb1Yc8z0hvMcwdRsPNvDIOu+XYLa4gbLEO2t6COfQF31Dmecg7XR1Bzz6/SF5/DoN69HIOZy6ga7NQ1znQNGuQRz84HXTjA1nsGddPGGs7YBz3pQYHQbz20Hbl58Bw68vSGtexIHCtA6Zz2ACQ2bwGsrpBEgjdhrGMAajoCuOA59bwCkgt3mHbOHCDvp5AzvHQF7ekDn10HPktQ1dLDfI5Ay9eYFhzhz7GYGo0DKAaNGGRIBygOe60BIQR0gdcRiCzsFp6hrnnmFt9IGWw1moAL0DEYg2lBmzAbCQx1cASYVrYdsnOGJWHPU7B0y+cBqAUoKYEasIqgMvILU5BjWmYVh0hhvlDrkkMbuAzTYdNXYa53mFUgiWGdUAWFhz1zsM66uYOmHIct3qHTHXkDiQNM9AIwNE2Dl0ATQTEAJIZ1kBnV7B0w4DoZMDWqDWMwOW4sK8ztDz98aDWUwxPqDvzyoOh35hrlhiGevTQOOeQx06MQicgNQgxtgaIoMajqDWZxDZPSA6c4R2IOuOhgc8ecOXWbDLpQaxDDa/PDl01Qc3yO4DteYOBhze4D0cY8wOXb2aDpwuA7YxYY6XyBzTqDpmsQbjgHr0YAmsA2fUGG+gOvHKQzrHQOekgTnkM9eTyw79OvqDmedIa29QrfoDlz20AzzeKG+i7w1pZhG8Bc9wOR//8QAMBABAQACAwADAAMAAgMAAQEJAQIAEQMSIQQiMRMyQUJRBRQjYTNScSRDBhViEDT/2gAIAQEAAQgA4quO1kcvTrycnxpnk6oUFTK2brHii6E46s5KgOImUXieyh8gJ/jP/bm/lEHFR31PPzXG6Pl891BfHPKvCTdcx2Uqy+SmX4w2W8fDwsJPyfjxAXHxoh4asOOKiUv41V26nxrrjjXy+C5+VbfLM1SXE3M7KtqgJpephF1PbLN00PFNb3f1Aeu9Uasnbw0zqR6aE+PPH/HLXy2DTPD8g4561zc98t4UdfOCgdvx7iZsOKm2dE6qs+TxP0s4k5YZevJol5fiX8iqSZOGmcvo00tM0zUw1wt1BEfHLwGBoj7VITL16MxCiSSs6iJuapJrjtMe51pV6qrSssUxyskURLp4xntk/wDzEKSyVZFLOXTXl12PePl+6PYnfWbtpXjVOzFWvUqLjkaOHjTkB/hKhDnnqpk8vHco8lvHWgqf5J22lITTYiwzKMXXFPcjm/kkaLm3Rz8SatlesiCX7Fd60nEVLtg9Bm53OTpnqzxhJTQ9USyeOdEgmc3x4uRGfr1iYDzCSRQkmdJLsoOHR5/FLJInaTTLPgNlDhRWmn611OSq2yTVxXZOWOohyMrOVdVY5LXYRl7Gh8NDZXnLTvQAmlmdkhPWgxfRPz6jXWdLJ1zbt0bmvewy6Ynxzb4HX7YB3QZNIMh+3s0i9tuMjMyTDM5ZL6EkiESmzE1akvZ0svlG2UMZPXDa6J0dZbSQwGnsLtc39t5bs3gTNZMdmtj17TmjrvGyYWh3IYJrI0dpzadqe3ZHGQ/WTsbJEXCde4eWBdFTpuf/AI+9BgSaZvwCq2agkWvaNLtmUvrXbIsKKw+tjnLyk11InvLtlBjCUHZSVVEDX6wXYFH8Z9Ra1WXI9TCduG5QzuO9mqFA1pbeozhKdqUSd4y1RQ1QKzyjTn01vLqJCUJsTGaJAni1umeImhNPYG99Wc0smNO281NyuTxdaoHiPY5HieOVJjshhMzDoTrvFCxOXXHJhysnUa7VO5NBIcQ04yayPgwclXLExJqK+3VZ0dc5HkFDrMinLI0GPAB1y+ILmZJZ9SHUj8v45yTfHN/HYWi6UrTacRRNJKZ/4/438iLzzERo6HJJ/HwcQv35uLtyx0aWupUfSlYGKteQ6y5y8rVG6uielMSyYVFSTdcY0zNrE1GEXNVFNBwENcFnW85eLVTvgIJDL+RPU4zk5oJJznp5I6h8hVpC45YrPmf+Q5ufgkrlq6nbUFSdelz5iPbWcQx2gsZaH4lHFc8mctnIwy8cVVcY0UjnVqiiOImRz4/OcZ1qOXjr4zJy8pVEztnrqmx0xVzTGfDmaOxzcU8s8N8d3Ec1b+NXJaScE1XK/wAkXxzxgXX81VbHHfLysvDJwF1yXyTfNXJHPx3yS1jLQRhJxFpyRyWRN8XyCbuXhiPN8ER/J2v5nS2Q5INhLZXL1bB5TpxbiXjY+TycM3DPT5B05Pl8P9vjH/tX/ITfJTbVHweK64Dn5Oebpq4+Nxs83LyvPTVTXH8T5bHKcVfKrk5q5IObhL5Sp5+K+fdHxOGXleN//qB4CZ4Th4r55iOH4kHx+Z4Xl54+Hy8fyeLg+ZNXyc1Nc022/Ek4+GvlZX/lfm8XMXxVy8n/AJXi5ODkP/AfG+Nwl/Jj5nHHDxdIo5+fjPj/ADfj8Vdjm4Pkf/wTw8f/AIj/AMV8aeLm+R8n4XzfjxNcNf8Alf5Z+PVnyPn/AD3mGuX4PDyfFOeo5/kzzjbF/I+OcB8SSKmeTk/8fF3/AOwfG+QzI18l5nk7zExFQ18V4Th5axoaqs5uOK5e3J87+OOJ5iPl8nJFOXF8vNxWfPllmCGp5GC4aua5PlD8izhj40d6vj5Dgf4Hjn/xT8nlipb/APLXckcb8n/2CYeXj46+dxpyTHCVU3XIyXTEc/B3yeN+vHl/GOQeWOXiflfU+X8fk4uIvP8AxvPy3zdSNvHK8swHfP8A2CZdTzRXJK9xoovnC+zy64+RwhriafjMccu+Xl5L1M8U8c8e75647O0f+r/IFhxWc3XjOO+XYcXB1jrlynJo/wDX1AHEhqWqEpI42Tsf+Tk5eEqGXe7LkCSg/k3nFX2YT5ExxMTy89/yVOR8hkZy2DWV+DnKR/HO+L4tvGWc0vFO8+PVwOctNndJ2tZNasHqi0RxM1O/hsSU8kTPfqVJ4nyaJ6NF3NVZXyKZKY+RTSEWXVbukeuXW/rkVZZuOVqurHKT4/8Ajbi+eqPnc8RRuPlR0NRV1EjpiSOO55CZMJfFtCeqfC76o5Phc0clJ3Zds/I3LrgbuXcR2XKesIcvL2lMgmOzWo7V0451LrRamdeXtMSEygTAr24v71THPBPnLM89aJ+PJRbyR/JIEzRylXL/AGpiyijOansY31g38fle7Dx1pwmKCXl4unIASOzImZppWZlywf0oqjKKECrdup1yaFkmdHHZvSUeUEx1bx4zZUrLvbU1oSZe241S40fUxP0eq6rKsl95HfUi+RidtaZHCChM4uKp/P4TtJjB1rIoa8Er9pT8hXW+dPw7eqMvaaS+74/1pTrpVrf1WtOiVDzYzrKHCj3fHK+4uvwomd4v+jPf0srTlA9TClyLfd7LloV/2aZNZEs7qjY98711JxqENFdaXIf0Xe3Gt6FvpvexUOyOsnX9cqVnCSXx0Hi7Op0L3KSjrCfSc6HbeXunUy/gabl26EaijrvFA2+djSV3TKXtOr+koKsmE7lSoZVxOvIY8cj7ycdSOiHUpy8l9pMaGWnjrpMkxY0uU6kDS80ykzU9yKAAoZnrm5mwOS2dWFl8b1qvrIRKrslmupyJ4FLpoheqo7/Y+ko/IpQQ31wa2yXdNBis0VktVoZrTrBl0ZAFLnJyzFO2S57T26vTIoh217WpbV0l7NUf1yzWkPD6k1VO+UvXbCd6SJJdsG79ZJl12/dCdttp12+S5vtWsJe5vlkinVSptSnknTw75FeLjZpF4dPZON0J/wCQ+M9q/j5//HfJ4Zm0IqEzg+G/Irjg+PwPBEhcXzaksZJnOOOS4qTgkiJnOTU89XnJZQuVbcm9aWaUqtVxkMVu5eq4UXO3iqrKDk4p7az5d6uKOP78Ub5+Q0Ucttc1Jw8L/HKzokRgjk+3Mzw8XbAl4Sjl5Tj6xl86xpurqXccWpkeXfU3xcbyVrK/+XIhyUre+CmaUjmahHq89Eh8bh49tz8fiPjtl1VcnY4IL5ieTi4DgZ5fkR8e3vyFgXWq2nbL49UM8XyL4OTzh/8AJM/+P5KiIvl5fPhcX8cTdRMcjVxyUcaW8UcfPq44G5rvyclt0w83BEcy5XYlsDk5Zq3j4+SomSeMON5eT+HjepyRwlvJRFcnJcUtcf8ALdJycP8A6T1mI71GV8H+Xm3H8ZHLyhcrJrhmPjUDHyONmmo4eEqqPjRy/GKeR+RE8URfyZPj/HrkODm/9zm4eCoqJq44fix/6xX8/O8vZqTlmyqYnmnmr+T5dcnw54uf4/yuGr5DIrk+NLXD/FM8vJdvP0gj5L8WapeH4fy+A+Hx/Fb+TyfJl+ORw/G59fwx8Pl+P/4qvk38L5PFU8U83yfj8HzeQnj+B/4vh+ONZ/5eZ+Zx18T4/wAT5nNwfJOkSx8bvwc8c3Fx38jPm/N+bXFwfyFt8kc/NxVcc1fzfJjh5+Yt+N8iP/Xm8v5/Nw8j8efjVfO8nfk+RE8FQcqf+tV8fxeQmz/3PiyT8ZufkiW3PL805fjscfFwcvLVzzXP8FVR8DVb5a7Rz/8AkCHj44v5S8cRXN8fly+J4iL5j488By8zdckX0OCafgz2v5HJFPAcXyBnjtv/AMldfKi+M+RfJ8MeTl+PN/Gbz4tQUcUfBgjk57zhjl5pqOMueHhG2Z5YmiPhcfBy/wA2fF+RycvDUcnLVEaI427JHidCRV8Eamvm8fSb5OTvddqOOyZCJKutMXSRP/p8lc02xwRNe8UxO5OWOMnecB02yX4Yz2rRUUSI/HIZSa5Juxmdcc75pN9c+TxcN0sc/HLSTxz/APOb5OK2/kOrqe1C75ORoZKDX8R295ZdgcfCclw1y2MsHJLrTw77dCpZVwjkK1n8J2dseaCXen43Fue7ExMLjyn/ALBwnNAbjHllkmZaCgo6LkU2Uk8G7dnx5qdlQ9mUGa8J7yVnZ31J+M1w9r4Pix2F5avhKmuGGeOeWv8A2opXOP5RSyvORYvFaAF2HNpPjlVVt/E40KzjL47GSOwo8iMjzt8tPXjN13Yk6NZxcVS1WHFKy41JyKFQJpQ0ETfXDZ2M4oqqUriQRng2BN/FKFzml4pE49a1P/r8nLZS/G5NbY4GaF4oF2vHxwi1EcgTl8NLLJFdnZ9krNXVOcagy1TrpIH4xSXsaKhpAnVz/Ir4JU6QJCSo39RlmdkSTPbIdbFtrye1PMbG/wAyoKlMJ3QZcyz5XGRKvFXWe68n2nRpTKlm0wlJUZupmSpSvWqivOSzu2FdqLCneb07aq6nqE3vq06TIklVPJ7HV6+unxZO2sKHWIG87JTiNHZjZJnY3pZKNYcb+4T75Ekz717SaZNDgBOOt6ygdmEp5j6aYp7em2nbQJm+zgpWA6dqNdjenGn9zqpsXxyNE9cWanYVQq9kWsUqRzqdPq0b65/a+uEg+qaAK1Zs8ocRKQ5Lrs7aZvoRVOgqa7GEv+oVKtjUoRKRlRtKJg1pvjeOuwaN6ivyskh5CyqNdZJrrWmmI1hEE7y43FBxJxznaSSsKKeo0zKtUyFZxX1l2pO6IorerltcZJrpRJx+g/ZDrO+2XZRsHU7Sgs3v7Elf13j9pJe0zRskqqrLCXrmmfsDrl9ZrsancztHSL1O3YdzJpl0S9V4/CetGy9KZH20qs1WRyn8iMpVBnL+bCu9O7pjWuSdoN8Ryen8RH5Wh3jqI0FNykWXH2apOSqK6clVnF8Ph/luGPj8Px+Wnjiv5HulrSxHFTOji4up2y+kcbY8ZUq8ps6F8kzPTkjW5oSYkaYu/sHGs7yuCZjyNHIOc9FcWseI5maR68vR5+Lu1JzQxvrxtXx9EOya5W+R61z8TXx6p4Knj2tTdWjMs9hj498lkwcNzaVzcDyUTP8ADfGTGcsNVOX8Qa2nx6jmeLD4Fxw1zFCwZxwNun5D1OLGPROOutFrzXV1dcPzuWKnrVcPPNEHw44//HTPLfxOHpVcZ8Or5Jh4vgS/G7nxPj/G4+Nqjlu+Rp+Ny2Tct8rfH0vg+XyTxzwxw8vT+Sb/AIpgKyLeT4/IBJEamOO2qvCiyybpi6kiIqSmWOCebrw3/N8Q5eTlmJ+OxhSV4/E5P/Zmzj4+TtyXkVU7jDjK4+mcvGVCvDxPUsgvtcnLyclTM3wXx9pjk5aOfl3BMfF5auf54a8fm8fJxzHLw8983zmn5XxuQCOP5kc1cR145+R8/wCNM8v/AKHJzfN/jH/xXNxS8PMfF+PW+HjeP+H5U8fO/AXkazi4r+H8x+Sc9X8j/wAh3z4jyT8lh+R8wvhfjnz6D/x3L/B8fm5vgWVN/wDmb7cfaPnRw8vyeSPh/I+Z8iOSCPnV8b/xtTxf+Grlfg81fI55eb5V8V8Hy+H5HyeKc5PhfH+X8qJ4/m/G4Pj/ABb43/x3B8Th5OL+f5P/AJIjjeTj/wDH8PLHwb5o4uDkr4pfIcHN8rnZ5flcXBx83LZwcvN8c55z4vL8i+Xj7fO/8N8Tk545uPk+JfJUxx/K+H8ieGq5Cf8A1xu4i7+VXNEVzbpOD+TiN83/AJHlvkrjmvn/AC745mDg4n5VceuD47JXJy/+R445+HkoOHfxpjj5fj1Hyp5T+a/5ayuO54A5+NIrdnyp4+X6Rz3E1EcXDw3FXXEccT0yPjFIlcbNT2NfxV/ISFefDourl+Vx/wAfDy6+LxRyr2qYZIdbvoR8fpZcXzRHP1W9rUlf/Lax15HlEvn+OXP8J0OzxrJOTIAZIO5V1TK8Z/JyERFkk08TB0eSjjuoEGms5a6z3OD5N8HJ9r5Dntt4+DhYN3BMtvT7dc5ZZJzvRSy3Tpxv/rj1EI3Ux9TiGpFPj99Xk8UUgfI4Yj4zuOKOHhmU+R1GHn52j6nyLnt/Jxdao0tysHLUoycEjw1Rx9Ge2K78/LXE4/5Gs7R2qTjqIqXGZZKz4/Jxt6b4vGzovCOX8a/5lOX4fIXs4+Lk8l+N8i43I/I+zZwcgcYk+y03xKbLbmgY4h7Zyy8cmrlZQ4ptTYxMJJ9fceX+S6GeUbdxU0hn8xJsUfsHI9TVr1KIn60jVWOr+PfJKPDwxx6rEfDIgaROFbVjUyziFPVddTV8TNtEg9tTx9h2fHiQF+PHbZHx2QJeJk+0UFAdafW5o+hx8Ym13FaJ5LLQbaqQvU0UWvU1FtLIzVbMrj0d844bnacRT9mJddV/4nXv41D0M69Y3U3/ANSvZUvRpL+2w1SmWgGkezCSzvc+bCNtOynWGhdMj6sarA3Og21pY3XY6tS6DRvPyTCVqt67SuA63nb7Ur4iCyLkaTaz9Wh3oM8PsNaHO2q0k/jjKbMmfHXaj64Hv2ZafRMF7ztr3WRR27YoWS1P09P2QpGGQl2OBo1hv2WfJ9pE7BehcJ3tWURJpWhKD7vX3Wa0uUvZRq6ol5I617FJKlrXhOooKtdqMlS7lWiaZ+pqDVJV1twmK5EyeJCtKTJrk5EmaHlSinls+tjDcSn8ds+Tw3rq8cwUVRAVnLFdu2VG47NqTJn8kduqPVpwoKFu5Z9KNssm61izJ1U6+lUsCEtBTx7RUTpnZgnNFU7e0gFo1t467dqyBuTRKbnLjrJsi+gERZJ/J75OOqNZD/xxoaFqhTRWvri+uIS3WSm1Ko6upkTuQM0o+z5pDI27RkmmSofB/lmeMy/kTLQ/+x8epns3wcM7OOCb7upvhWiunKWVy8lqD8h4JqXiavjDP4hop5P4ptk54qOWR+ZBc93h4mOLqMVVbTmbidNy8YCFTxuctz3kn+Rrj0Tx7lltrh5dMUFV2+RyScmhqLrqRxv7SgVr5y/wSEWRV0/y28cQPap3nF/484+Lj5OTn4/j891E1w3L1v5vFw8XDcnLzVXWC/j83UqvicN8lVZfx5r4f8eMoaSbiis4pat3x8JUmTCFC8RyT2I5ng5hzgCet8LznJ1popkmbjjviYqDn/lIy/h/x/FbriIkE5eSYsWOKa4OTiL+PP8A688MT8BOLopzcfHPe4udATQyMTycfHyVfFx8lXyFcsfyS/yTV0Lx8cPCVTq75eTjjnjeryPh1x8DzU3fHwyZxb5OOuPL5eO+OevDzX8cul5Y5+Hpjw8nx1jOLj+Rd/b5Px+Itor4zzfFKiPjnwt7/i5CqMkvko1HH1h46+IM3/LnLFRxtnJXJycc1XFG75OO+P5Xxvh8v858mr5KOSLo+N8r+XOX5Mc3zpX48HBQP/l6j+I/i/8AHfE5r5bLr4/PX/jueM8jg+RefC5b5v8AxvHNfNq7+TVHxue5+C8b8Ma53h5Je4/GL4CaOLjjluP/AArDwzHLxBzMcHxP/G//AD/8Vy8gcn/tfL4OTmenJP8A405Al/8AHf8AhvjRz8k8l38r43NEr8q44Z6EveeIj/xnweP5BV/+R4nn5P4Tg+PxfD+DDx8/J8ReN45Yv4881cBx8nDUT/5H/wAf8Lmjl45+N/4vjn5HHefL+PHB83i6/Jrh5P8Axt64K+N8n/xPLwFfH46+Lx3XxOawYyePjuOTL/8AHcN3fGPE/H4ZifmnyfkfN5b4a+E/b5CfJ5PkfEml4/5OJqfjzz/z3T8TnPi8szX8TxTGccRfKb4+QHU3I8Herl5J1MyF6fjc38PK0c0vPLVWk1NcccT1LomJqqO8ymc/Dd33JnrIL1J7LZ2bz40E8HZuIZdVP21kUyuRT+Pza5aSOPi1B25D5hrcz8jujXN8Dj56bOX/AMa8JXIjUtFXEVWRUFMzxyc/G8ZfB8gKnL42K95Y5I4qvk4uN65yy608HE8l+cvw7AIPjsvoXG7ifkckcc7hbZ6HGgVfyC+SOg/DutS/+gB3eX4/DwyduT4wTXXipvkZup46kCJJjokoFEL3N3PJ9gjieqM8E6MriO/iFRtOGaZzh47riCuSbnevkc/PwTIHzJL3hz8dPjykyzxjFecnxZ6cnXCqmeuQ70Zzz9pojlZd5yVNfXGNsyRP1UK+qF1XUoePkLbSUvZHFU12GLmpK4IeScZOvjSRUkVamttJogXKAUzl4uv2I7Fk5e2iGaB2slI46AS0uWQmpGg4+rKVtmdqLtumZQKWRbUky7qfcOQq9F/XWyge2ccNDWQ9K1nLRFBl0zJqGiiiNfrOmlx1Ca5Ld0Baoti/hJIUMsu8uVneHEyu1KkQn6m6nrPY436tPlfvJCu8NM4wyARpkMZnqA0DrPGdY1p64OsFK2MuveutovoY79Qp7TsENDr/AC5HzCUk3o0GM0UGPqaZNbwlTWO+3g13cF7FE0V9nW3zr/om67Dp2G0fZGhMBXD67x/RT02s6MvfWVmtGidVJtAn2+xOyaKGc87Y0a3ilSD1CtFzuSU2V6ziHXeP9ky9VpqJGffO3jqq63ChU5yUH5M6/DlJ3p09U5T7bCfsIW3yVLyAoDN1tXgNC6CkS4IdGlNVrTREjvT9Nb5KHadjoIHaUzklkCrnq9jqlO+OdrtP/q7NCodezjIo4wSCErSEiVrH6RrJs5J2ErWsJ0eEpT2mSBo4qd+kjTsg/wAJXbhKbloa/OutmdRWsuTubbF6jIV2x2aBk3VYQHJvPKnIit9UnSC6lky6pk6wOumclMvhE9NsxFSJzfE4uSil/wDG8QCz8SKqZx4qmupVVAwHeZkOKZmxqp4bprP5p/nYHqSU8qcnay6albY70SR8VmZ/jOLXJyHJyaiOgcpPHsr5FRyEk1/W64ohsB6yGuWe3ZeSAlTgZnl415P/AB0/K5J+RDx/xdOA51JYOfkuoiaiO9kFHG1EcyjxURw8vH8jhmq5Djj5BRHHVQ3Xy+Lhj5Nd2eD49/z18PnL4OWM+NxlzOjjr/3ZnPncXFx8r/GTK9X4nBH8rPJzscfDPFHZjhSZoePypL5CU5bjRnB8uOpPJ/7kHHSTZzT1KnjmiieXk9mOObgZPmTfN6fF+JzPx4z5fxuC6nkWanl46DlKvQS9jd19a3yXU7mLOfhl5A/8kVuL4eY5JrhP/YuOdnHmjknU8kxzpE/yc10xUfBJ4bp5/wCTjjc/H+Ocl3xZxfEsqpuvjclcOcjd/wDj578vNc/G4pw475q5Irm5uWOHj4+Nq04pu+VeTku+D/1/j8NW8u/j6s4P/Zrl7muSvjVrRz/HOHjn4Z/J15WuSfmXD8ujikTh/wDGPNVXycX/AI1/k+Qnxvl/N+P8meL5ExF81ctPLwvLPPHL8ifjSwc/BPNwpH8d/HquSPiTw18fj5M+VxcvFZR8CuG//IRc/H+LHB8rrfzvk/F4Jq44OPj+X8GYzh+LX/i0uX5H/u/JquL4k8k/P4ov/wAncxzckHwuP5HH8Js+HXyeO25+bxcM1xuS3fFXNVcvAc3DycnD86yXkefmv5HKVw8XHwkdOW/hy/Knhjh+NPxeH+A4fkPF8vofL+PUdnj4Obh4OHpx/L61895uSuLm4+XnmI+PfBzsnFbz8UwcPDfNcTwsHGzUc/8A5LmquvF8bn5fkVXA/wDrR8WOOjlvjj4fJzyxzcnyaeP+XjmCW+SY5pu/k88f+1XJx8j2GM4ZtWMmbTVcVX/IxyPNr49Gfy3t3E8fIkkcFxx9c4ZZ4+ry0vGYSRZvZd+B9gK4YSpzl68fBTRU1w1Lw81cZPBUc510xVIB8vnI5ZIOXpwwVyfIbU475K7EOoudSCUJx8t8cbflnPyXUVXFMxMct7kYK4Wfs/A+Q/HmqOL/AMhF0LyzPyOGuY5Oa7rq8vI2QnB8Tk5N0fE+HxwNr8eymnm4h5p3y/HvpPThi75etxxHxyBN1zANcLwiF/8A2oK+RHGdD5f2iGla4/42vjVM0sRHDpx+RE3UzHyKflE5x1xzLXJtvkpZpHRAKTjRFXOVVklh8uJ457cvzI4fjzfHHzIuol5oOTRnHMcfHWmpeMqnhuaEniarYcSSbOVmTZywTo5+QeNie6hrjkebtnNT0NRNzIn8Pau2cATuGg7UUz9e2REVGqeOGXZd8F9WKepsj10Gl1CjvEmd5omeyzNy4SFeXxlLRMPb1eoYvcNMO+oJMrWprjwWvqzC7ovfXrUWp0yyXk1nMPbRx+a5DfeXRLSGRqZd07orL62lZD+xkT1FRtiXIH/WilHYqn9alCNg4zuZkHaaX9HqdmcJEVBY0gqSssjg7nWXCz5XlEjJJvICZMvZoOo1s66NFxpBB7bwo8WqPQVDEdmEjuT+sqxewBrWP6Z++5AaNoKmXqZ6k0/mGifHUuGilCQBzaUuOtmEn+yeJmmTRIuCFJinVXsvgyk5MpszxHK144y72EbSsuthpoJ64fUc9Ny+9kX6zgbVxGXth+FGz9ytTBKTqkzket52JlrIqyUOzWTSOsU7bbDq6ii5DOpMpJxoVsh6iEM1SP8A857ZyUUlE97DtW+3khUHbr5oY7LLdVEuorvCPLHc0M9ZcdqZdLPTGfXGTfYir7qRNJ6fVFQqtZfG68Jan111EPPs3XdQ456hqH/7LjS07B9SdvUSZNUb/cKdrk/13mlreOppcrfbaX9drIm5ZJ0rRVG3+wjQLq6N9gQHOOntp7e48iUjU3U6Diua2nETzdk5i+uTEkkzJ/8ARa33nsckdTy+FqPK4J0zjRPIQ9tIPU4uYt4+lvfEL1Nc8ES1D8erlrk4p78uVRwzo6TzVU1Xx55zsPw7mOvH/wCqnL0X4/KzWuP49zPHVfxPLy9ePl4o4/kdbrgrldx8Xj4KuZrkgmi+M4Ofk3VX/wCPloo+T8Pk5KuuP48Px+E5eQvk5+ZORdcWj4FTdcs5xcuuaYbrjWeHPncS8t/xvA3G6+P8ao5C5+PwswyME/d5pb+XTh/42+Xh/kmOO6tJefmjjODknl7mnkuSDCHr3Ki5n6o3TU8Xx2j+QnjuZKq5ioJjj4Pj7/8ApFdOFg4/j3x8jbPLHBoeXiaqqzi4dp/I/Mjiq5j/AN9rWvkfMrrMcfxJK42c5+XjmqivlcfGfIJmOV4rLOTj5Jgvj+NUXzdTkqIsiIq6tEb4wh5OkSw8fwronlfjWk3Lz/HeTjbji+UcnxyOXn4CIpPjRZw8jyRxvyOFL4Yjl+Nxk1wfGrmYzlueHkqqr5E/M4b0XX8dTPxPkV8i2Xh4P4eAo+JHF8jvyFfH1zI/O+Pdc3eODlvkurPgTycfJSnA/wDtVyP/AJK6jmDj+DxfH+RxRR8j/wAWX8hjj/8AGcIfCL4uUuvibv5fC/H+ZF/G5eLnZeHh/wDFfCeDh68x8e+f+SOW+Hhh/h5Pn0cfLrkeVq2Xg+Y/H56iOD5P8/zOOb+ZLzfJoz4PyL5+Lk4b+JXLPyq4uP41fI4fnctcnyeWp554Amrmq4+Llvi+LXByf+OPj8vED83mni5Xjm/i/Ivheb4nMfL+bwVGcXx/k/F+PxVzTynNdq8XUOTOSOG+KSjijo8PHw/HqOLj46jg+NYzyfL+IcvDNccf+On46pw/+Lbr5F5//Z+T4vyE4uThi+btnPfDccvbn4OTkRflfF4eLm4+Sfk8EfI5P5l+O8kveddq0WwIPKiTXBV1SNWycYt/Q38auOuYtn7DQ0wu2pll5OUiUc7Tsk7P9sg0e/M4z+DtlLczVcUnlvHyXXaQKiK1HH2uVvg47qY5PkhwfJ/kyPjnNLyH/r9eFxntzGc/OzZb8viuk5eHihb/AJObl5JnkF+TyxFaICTecZFlBxcW965PjPUTi+H3SngiOLhYxkniZ42mWioIqzOUHqjVcdRzDLzccPJdkSQcss8fZv5LPGbOvLM2fNFg18PR8mO3yLjimrb4zkO8ctxMA/GnvzinSuamipaDCYE0Wdhz5C3Uj/FdM0xwPNsZ4mITjjnuEH+YrmNTyI7w5Il65VNTuTm/js28pyVRlS9a1K6NGpKb4dGxmNU20KauKZ5IkZOqitNXjdU5ddQzgt82sV42E8ms+1EYbiKDtr6nFKVtU6meL7YghWnTgss709tPJ/2D2lkdPhUdq07J8PajbDZyUZfldmb2Gv5Sr0kHdpaF6v6aOsTReFTdGiD9egV4STucma2h2SVyKGgH7bZ6KpTI0CLKyVVz6zQ6Vo8FkFo0S/Y0TgarsoJtfEVrek7MrhY1O5oDeO3rWAEujyuz40bABHX5pZ24i3OUjIZ5RSNdp1kbmQCdptla2MTM9lXZoWUUpZ7IELuh69gU49K/QchmvSp7OmpGc3qXcUhlB1Q2dQdHUAl31U1WhftrIVTVD7OJqiM5dTrU77JlNQerP8exv6g1PaVk/wArO0s7yK0s5s9lJTwpNKVJ6v8AQ0coe3jD27LL7TH4U2F8mxHqTlh13PFPqYSdtYy1+r2lC5QFqmqqU4uwNcYzSBPZ2xoeqUB1z/k22xWtlDCn/DGSuNcZerTE/wAnEqghOM/bGNaqepOzLeoOcdC7WTZ1Sot0a8Dr1XCSkMiSY0VPRNuplFQ+rNV01Xf6BgvVM86u4TrtNbcEqsZ/7qRnUwJWl1b6Qzybx31NFPZ20M9QKrY8ckfrrWMgtF39ycJaPbp8piqm/pwjO9sCtZKSMl9SheS+roJ6yrUTVdsuY6pnNFXxDPx5YpoiTZR0f95S74WWCOCuxy1dRTMBHFLl8vW1OarNSDMz1wP44qmORrUZVXPJ3efvXKb4/kE83XIqJ5Jvj4uR+RxlU8ReqLCeNSI61Q/+Qma5wzt1tZ7z9g+NFHx65+I+Vz8cknPzy/HeWv5fk89VWHeuM18f5ENk5y/IKqpPkRyzPFNck6rPgU1wIw8k1V388Z+TaxN1vrHBfLxN1wfDmOGb56h30Ob4d8G5z40hwt3Y83xoieLdTclUldcm5qYlr5O14piIYntEdOKp44tulrlK4PXjuL5ZpmePi4njZmOOO0csxyI8l/FKWzm+M3uI+PwnBw7eKYeZZv49/wAzU3x3G7OL5HyeSutc/wAUvh7HyPnPFB/DxfMu6qKflD8euHh46meaIOPii/hdL5/hxwzV8fwbrsVXFy8VPXivii6Kv/2IrmZ5OKjgtrj4OGOTib5Di4jkDi5vi9estXxcTPDJyTz8RUfI+TwzzPGPx2b7sTqtcfLJZPflngvliOSvjcnx4iyJnmp57ieaflclT8uH62cf/jq5eHm5WGvicvIvxP8AycV8ieMfnVz/APkZ6/IC+XjZ+R3556RPF805jgfjf/09HHVfI5Opy89ckcXJ8jm+a/HvtfETwPFXFxIPy+KImrD4k83GVy/G+K/DOQ4omPkw7+J8efi8fLHHy8ffm9ij43Ly8THKV/43kq7jkuerx8HHxcFGHPMcM8D34a65w3L86bko5+ZqOTj43lKq74+T5Rx8fyKepxTNnHwPbcVxVd88Ryc/YPj3yc7xyXM1UMfH5L3dRWmv4749crvl5YjmIoZamLriLrqzFxW26u9uHBzL5RcKvxPkVy8CXU+AckzXEL2eWe5w0b65PKtAdydDy1PbrlzFQQVVV9I4I3A4QK7/APUgnZsuhPlzNcHWPicDw/FiZqtIPzPk8c/JY4movhpzj+Q8fG08fzy9TXJ/HclclfFnn5nHj61UPDFpkcUzRRHL0vzqmhqjjWVq6mejxzey7+Iwbh4v4uM7vKldhubmaC+x3znLuRo4psYebjZ5XpActdWOGd1JyQlVTFdDby8JY9D41kjNcETP0ngGignjZ3TAz3G+1g8P35OrFPHvo3bRs5qECau13w6mAwBvvkx1VPk87FBMcScc20EyEwzc+Efy0zlz/HyGRIw5XGVxqcchDs5mYZeS04kmNvGUXHYHIjrIhA/t8Z3wjrPp016OqcJ2OifDDR4V4LnoEkUdsqvXLGkc7FHg+9sTWwJD+3HqZUZ7dtckutkrvwk7dl3MzAVp64r2TOSllMiia3jS9TJ3sVndeIx4xV1fTGSTRCda0/YAOsu8v/sUqnYSThMu9poVs1rUn12nm5ez1M/5PYtDKp/EmSvIoZTGgh14RsnYbytb2FfYcd7NSfVc0Tle6knX5jIbCZXW3Us4a2C61tP6mbN9lvWjE92b8N0HYRpDRL18a/Ss2VJvjP0K+07y5+zOdXysVaMBfFp21lD1qiNEiNGzbI35U9uMyF/k0WFAI6hnDfuyusuxl1nYnZhrrvKrtPnGvUDt27TnJO57kiVpqW53iMirLtB4+v2x3J7xtkosn+N+azjVo2lLQG6/UZk2zJPbGSBSe348UlDsnVZ1V29Gq0XKV1GQHcpr2kjjDIC0nJKO0zyT9pVpKJxuh0FdoEVr64w9aApmdK9owkaHLl1W2Ou98TNS4hR7U7nCSpNutBlAa1FEElOldaOpJGia375sVWl2z2ImX1sJ0Y1pEAa2PEL6Qdu7O+4D9FbH/cbBdsw02EhszQTp45jtRkA+i9TxBovGSrKy5as0IUBVE73d99dCDqzhMPEStEcPkctlScny+LsgvxL7EZXx5oAOD+JJy6eT5Tx0JcsvyeblbI4eCr5vo8fFfDzkYnbj6V8n4lkdoPi8jzdxnjKeOLs4+R38fneCpg+dzPDw6I5OLrS/Iq45+Sqjj4/k/HbJ+HXHHLzc3ByVNSM0k2vLy3ylPIc5PLM5zzC8VHHydeXuTx8fyrL45+QH1WuGefjobeOW54eWfkcNXNRZA8nzZviJv43Acrww8nJ81TpjRdUV8Of/AGGo5vk/D4+P5E/x0cnFRnxKOPm7VfHxcxNZccPGSPFw8l/ImuP+SXljhLWuBg4YNFVzWjYXP/riZwU/KkeS+KChLk5OK4n4+qOmPLx8PPUkcpydtfG454paeDl79zCTitu/j1L8i7zk5iQg+Z8M/kmDrEs2R8K45qt5vjca/wAwfO5v5Y4DjnfwnPicFMU8nSOPjY47nnnhqjk+PyHGXyTwScE8vPx8V1wTE/Dk4tS/I+RV8sTl83Jw/KLng+Y18muKuX4/KVVvFfNfCRyS8kzXECfH4m4+dyXHPOq55P8Ax88lcHzenWs/9y+X5HLcVx1zFfxxN8TxcXH8/wD8ddc1W/G+DHJU8HHy8PL8T52+T/xVF8fR+d8eP/H8py8Vc3yf555Sf/fuo5eT/wAc8NFdf/7XZ/5I6HwOT5vLyVyfE/8AE/xc/HN/J4O1DHBP8VSLxcNU65dXVVMTd8N8ecbdczGfK4JeQ5s+NEzCDxD8qq5L5Kr5bxVz8HCc3Zj4nHXH3x+NDykvPXH8fUFfJ+HUchzfEni+RzVfBLMTfJZN1bJER8iic+TPJ2Yb+JfyOJjj54qXvyx82phsj5F8V8lRVRfcy+NQeQlaIfgTDwk1y8XH/N0CYmdZElzW+Wnk5q18aGJpto67F/kGU4iOMGKY3GcUlOzmgL2QQUa+T8iOH5Mj15K+e8p8fkaqqBjtNJ4dc5ZJGzhL30P/AGLHuBXJYvy+KOTgXh+NW+LscvxuHm4pkj4s8nMScvwo4KB5uNkmiK4/4W3ioPFbOauMKf5tvyZv+QZ4J5eWpiuHhONFeLvL2Yif3nvk7LyHzY4Qiv8A2TsmRT4nLM1zDUBVaDiJKjKkJrcW8HP1OXrzRnB8Hs9l4lloeKOtJ/HB2F4u1oTxSdZpg4/K5+GP5Z7TRB1nq9TXLJPWmNbM47ZpJiXas70Dy1/xF4+S6eTj5uPsTnJLUlZxsTLqbhaieWiTOLlqtxX/ALBx0GTyyU7upOHaUU98J99H93CSdU0TjIJSyooWogV1nbEs7RpHWDt21TRofJUJAQ2zK4/efFN9cmtV1Tc008ljRWQHVHtUIBctMt8UhTjLYaqWf2AZaYmde3xLfYeJi9HdipMi+7QF0CY338ZrYSDukyaSVQ7ZcB9VlHYm3aUAGXck+drrQsPbaIT4VtwEloPZF6lGsJ9VAessyTSBJUtY9hHOvWs35kDsrL128k8Aunto76mc6u1JPOqHmho0jSeaXU+Nu9ZvZt87GGl9UDrk0O8/L00ejjU6DNk0jOp0jR2ZzRVqO9hhsRV1LsrWzNDKEbEV32aYEPeuq09iXtjdb2qdveTdCLXuWJRvYAHFXat5QH1yK1rI0bzkO0ANE0obB3ss8YQHJquu0g2LrdeO6/NFTvNEVKSbHSk0aWaExslJWT+LstPfRx677dJRopmuhAa3lf2aw2yCu4AoanrhILYJ7QiVnKkTsbaRKsiQCzv2wl86dO67RmZFkZ7KDgFGkBlkEP7FeOgadjCmkjWpyZ+wvb3tidgxV0K+IHgg0Eo15vGhXYdpHEqKlythvE7UDx0Ne3Bf6rr29GpCiq1nbqEvIjOsJ/3CCapwkb1lTHVzQyUd5oKxHts5Car2Zs2HG1/MqPUHOW7ZJOk9Fb69oxkrwbYpM5au+ckv47HyOJz+SymziK+Ry3vig4OYqjiuflN5dJcqU2UPJDfD3po4uRo4pjm5ieSZ6258+l+LVHDCSVnL8Z5tzVRw/D4Omc98nJcTXxImpW+dOtdaHqTkSTG854qJjvEp9X4XPHGxxVM8fDyVUHyI/wDZns/Miu+45HgoOPhq+f481XyuLlrk44J5eY5ok5f/ABsQVyY/+OvjnvHxOJirqvkxbyTfHcXc+Xw/xxLkfIrj+FWcHLyXykvx+Kouqo4+Me8/NH+bqHyL4+Fg/wDbj15I+Xdc3Qu54FCrvk5JTg+O8nE2HxyIqi4n5CVUdOKmKfkstUcHJE8IYS/I5urZx8UNZPJEfGaz5Zy8vC3IN8JFM9uFjOL4/fhYqPhcN8tXlWfG4/444qq+FsODfeY5eLm4fhtzxc98715OTg6IXfJcSPD/ACXUyPPz3HPM8hyxx2xkT/8AxnUZ5v5iTnu+21+RyXEXfzZ1JZXxzl+VF5XEhycb8fieXgb5Pi0X8quN+b8g+CLPwv8AyMvFNWfJ4ebh4+Q+L8iJ+QvN8+45Z5OTDm5uLkTgv5VzRXLzxx87FPSjk44fjRfHVTMVyfF4yX43OV8jkjj4+Wz5BFctJcByWPDuevISTEcfM8lTkRHHPSet1yTZxzfJVyzU8JScvJNE2cnL8ng+TWyj+ffI80djgfkcfLXP2ODhn5Xbl5Pl/D4/k/GePl+B8K//AB5yctl//wAVyxfyuTm5vl6P/H/HufjJydoKr+TjnksaPn/Hrk4XjecvhkjOGOKeaS//AE+vLXJbxvJJMnw9VM5xWxqJeEqu78nXHxSRx0xOzg+THRlN0OTCx1yuKIvtV1a95qrpc4kidrXPz8yPF8avjjbz8cfzcdVJ14568XESLijJpuEMui5JU45nTyQyE8Ma4eGrfjUc81dTy8N8fJERKUVnJy8XF8VoOXqe8vK0beCYqfRYqQ5eDk5K7HxI5nmpP/Wrv/JyceymWK/+ddhWyxkoFvd8fUOCUYX47wS2cF0XPJnPEXRccAR1FYqqZ+WM12yOCL+xx/HqfOTl544ppOHnu6JOblDhqpmaukZ6xLJzCUU1d3JhEXtw4pJRD6V1qe8ARDFC9Ds9XjCTP4v/AJlj8fk5Jd18Enkw+MRyl5yc6zYxNzXXIGOXo8hXIphqJ2vGUes61LM9tB/EQTrZtGUhR49XLvt/001PsUk6STes5WjWpbnrGTvsLO5qgaWNPVQwetNHLr/NOnU+jS6KJdIBiG+hdBPQiPr2agiuxcymyIHWy3+RjOWDsE/xLty+OjmAudWKzLXscbLl7ZdcUkzJm3jnZIg2zQxhSA5dKjmxTLoZ92xx5NxR7Gt7wnb6iUSP71wk6lMS9Xc62ygxrdyb7YSNbJ0msrWhyzsiT1fqjo8qd6cfN6Qo7D/3gf4G5rYUz6FDWsBSdtehksplafC5PDNaoBnTsJdIb9RAXWWHsZB9Vz/raPVR3MjjUjLl0lbl0z1fSTFQMj/vKfAZWt7Roba1452a1eD28Re1TjBP4QXrE6usmWa7Y0opMW11UJo0LpC6/wCK19K1xbr3GnTODJAYgekJ127KrRonRjJck5OmXPtW9HFVK4Q06JtZRNaUJNm/StBE/wA3fFIQz1MujSMya1lb/wAD3TUsmsaNA3IcYYSh1xBnIhK9miDGo2OKqgupNlFAI/bOyeHVaNXqXyRUcV16bT3btTr33ol83Q7c7HUyKdmOqn2+U7ETfDPabwKl0klBvq0i2HbYbHK1SAGzbcnTeD9GpZPM9utM73M4CSjZYSwBX6zuQIn7ovqhcvUpjm60zmyb7Hm2ae5pKpqmZ4uJrj+0QTqzkd9qlLnl7cnKzPIch/6/Jy9l4eO4o115Lquxxcl1VtnLfHHRmopTlbOLRfGfyAR8U5O2w3Rn/ka1ULxcMc0lF/G+hJy/E5OXk3ycvBPHRyZy/Df5av43wua+Wel/J+Bd3fLFxyPGUxxPJxXfNxfDvkqQj/xtVzbfn8JPCIwl93jez5xLU0VwULI8lRPP1w4nmurqXjrhReSE6nyKaesR8pOEnk4OXvweTLdE58iLCg+J8q+X50xLBqrLl4PkNZzyfJkMri6ySkvVl+NBx8brn+PfNRZx8P8AHycVX/7MT2o4pLnkluelTUnDVzNXy/CirCY/jiC74+Wr4e3GhU6zryk9Hj4WWs5COHjqj43fnabjm+TwfJYq5iuEvjrmud8dcNQQ8dfM+ZfxucON+Qc8l5EcccnLdPyO/Jvkjj5OT+OpagqoWKv5a38vjiuB5I+BEcnNyW/NquKeTj4I5+R+E8XPwVbydHtHLxTPMcL/ADvIfJ5eN4jhjg+Ryc3Fqj4DHL35Pnf+M+R8+2+L41PxKj42cHIJxcMfI+PDzdIYmfkDzcgfw8vTkr68V3NRz/ImuObiOSrPjH8lF18zn5p+Xy8OcHKfH4+Tt8b59fy6ZqLJ5HnSYpK+RyVdNfH5+TmuKz+YKGip5p7xVEj05G2Cg3fCRcchws8V3D8j5lnyTi5oJt+PXbimeTn5K+PyE3c8vJM3E8VUUny/hkcjcvFx1zMh8dia5i+XkpuX4fyKfjtcnFycfJx3cfN+JVc7RycJPDNt1M6mTkoueJ0IBXEx98+PRWpecJkGqoOuJFUhwVczOiQol5B7FZydzjJD/wBipKw5KnhkeEZlX5lnFwVynByvybnmzioqncV4bv2uuTIclS3N9RyKLv73elS+Wzjq34/83N8fo83xb4Oa3Pi/IvjFs+U382qrk57eOM4d3ydDgpjcpyXM8jM3zc3x+Ijhh4fHuXNAchHIizHLOpuuOI3h0Q2zUnnKXT0XjuuF41jpPVgtnrVv1Kg5SdtXrkmaeDUcuznL5SgviYkqj49ckbXjZKhjimWdcsnHUgQ3bShEgdFVP/W5GO8Px+SONaG4juwlT2YCHyL7O8TtOPe5Ncs2smcvFfJMocF/yJUcfSBw0U3RyOsh7rCz1nsVDVdg4ukKvR1SQ3TZUu9HHOpZSdB1JdOC8e+xQ8s6NVKBJ6iUS6JZSjdzROSaGss24Oz2pfdXJ19j8m2hZ2EvbwkUwp6Kd9PukpFV8GWQrK1QKbfwntSPQ3rCTt2YiJK2QLsY1XbOTi+zoqoneH8jRKS/izTQ51R3jLpk7RqtzAuyRraiS+u3ewGe2NC6JPrtJ66cfHG5ZNRZ45FbFRfRAr6pIV4ymjGuj0a3M6WdTvEfJyt7NJrZhRWs7NX52Z0MhQynlAb0rjO69CWd5521hPm8ZJdmnZYnavNalMofrvX45UrpHjP0ZanAVlxqe/bK0yrFdZNodgwkJ2r/AFlK7KDLM7E2bJNeF19wyB1uiTqqfaicZShJXTtfNsdgTDTylJAV2OLQpjt3mh1o3rob06dafASql/7DZJnkhk63RlPvQmaCnBCPQaOxAL2ShreXpJtKfzB/6KOviqesvbxNHv1GXLo8Hb1aer2rOAupds1FLkhv29dpnN120CyIRX/LCnsyA9RH/doMrg745RSXtlVvjdcbDPeWhrVV5fl7iuxfJ14tHJyt8PKcnwvgMck8/IAymbrtrBOyFUTvGuygKMyEi9k3pytmtdv0Aa0oEnYk3vaIAbC9Lqq2dX8xntvRNSkNhrbcEGkhXOr7dTXVJV9QbYk1trUlVRJOcnGckmz4xSj/ABR/D1ySY4zimJutK/WgxXW3k5YoYKvkjbfc/j/lOS742rqOaKlD5HB/7HxuOXl4ePg4pjjGK45vPm8/K/IOLjd3ung4q+N8fkuzcU0w3MqXvYDbI8TxcX1LCreas+b8i5ogjieXfFl8PHzXUcZxc3Hubj43LctJx8ktU8Eck8xZHL0nk1NXdORyHLzVTU1PuNV5BxckS+8/LAGy4gSQEz5E32WezNdcqIvkd30Ct/G5YmTbyjVW/wA0csrPHHCsrz/Ln49SUPejkb+XEciPO2Heea+SIP5OLnjj+OVUc03yTBdNWGM8lgVXEOjk43ravyOS5l3wXZMcJz/GWuOiOKIkHlmbqt38IrioGuT+GvjpHTnL+THM95gOtczTXLMN8JYXzCzxnHQzzBXNxxnzOLjieKC9R8b+R5Pkcd1CHIcXypD5Fl8xJXKRyxyXHyI50pf/ACHx44hfk8Z8iu3HwfHv4sewt1yVbXD97fg/HflcPHyzy/HeL5PETx/G/iqtx8M96/GqOT5HU+V/Dx8zLxTxs1nH8Ph22Vy1HyI4o/8AIcXMkzPFPWulTHHd3BzxyTUxBxc88LJLycfNJbNSTJzTxcLX8fBF8ktcvF8aOSm7jgeRDkuq5GePivgvm4SPkQJxkZNRMkvyeKJ4ezz/AAuTi5jm4Z+RXFs5eXi4eRq+TirmOXl4yJOwRyRHPPGcnNTDMVx1fxpDm4uI5KNPx44Qs4qjlhiDgjj5SxC+NHkhCWXjTkz49T03kTPegjfVhaCaG/kRFdOTkg45+vFJc+/+W5pniON+HTE1ZLX8naoqOTjlKB2EyQ91+ZwXyxxH3eapzl+O1ojg4K5Ipr+Jg7TzcN1ydnm/m4L5J5H4d0GcrycMxKcpXDyyfFjkq3kD5i/JON+MW85zEzVclOTDxzSO+3Z4eXXIWvMctVRfJMS7/naqJfiTF9u/PKbs4+Yqn+Tk54ntOT8iLXVQ3FU8VcTxEYcElFZEzx91/ihEeXj/AI+M0TOjfLY3sW7jaxZIs6oleJP5KKJk4Do3LvfyW5tnOIrs640nc5KyBnDRPZOK2olOazttivEx4i6EuSeJkuGq7BxzUlnHHjgFAMS73l1MiPJxLoY3MknFwd3usk+gKO45PsTXLvYEwk7wAlw0U4diuuKmsryfLGJayUTNaTbO4ZGXzZIT4OzNMu2lAogJXQDO8ZFdyG1zkClkQeu99e2oBpFn0MQEW00yVyedSFTdI6d8cs7lKO1BC9toxto7G0Lp6oTJrtkv1wlPtlLsMi+s9ST6A/xg1jL5Bpv8N9wWGWqCWKNcdE7jEprNuvYpaoWQZygKayvsE4ysmmiZ2AutyElIjr6Eu1ytsmtnUMCeuUnYMsfNGi9ifaqyKd7zRvSbaoyn/wCnXPKdDQ0yi9c67Fewdh7fUwl1tqZDeKu9VIXvCXfbFQ9n7VUrCA5pTxV+oSdezrXXv126x2GsJGmlpNybHez/AHZTMlY9SlY0SDqewHYnc59iiXqBsVbFRXsTS1tsNl4JUs4SjXY3O0DrQqG6CINbFSGZFZQ4Zo7S0HU1QkqMoGjQtPYqdjveHGJjB21lw0lBK1snv2oWHQiv+oi4ytFY+TpftOdUkrGfNg7klqtmk1+42/gBQbAn9PqdMo1IHLVHH3HmeRLObk4yW8+NwtVPNSM+kqarEKDCGZ0MiMutdk6pQkGwVdrtntXlyz6DTOsJQTCkk3dbTS+qdaZ2xIbcqn8yaZFWoRM5aNOyle2KMuiT9WZZXCf/AJpgHTtnXaGVSUSlQz1F3tOX5EfF4e98X/lYumOT43y//Z+RcY8DVQvyRiKu+Lm4/k8MsE6a7fI4Hm6hUXw0g1/8ic5+aL5oiR3PvzeMWec4uP8A9jmJPjcERH8WcvE8sMycd8UeoVTNHFM8TVzUS+O2qHkiaunk55/i4Ivi+J8gn4lVzcdRyychxVNSVPPISzPK1PIfyEgLnSZGXk4eT4/JOcc3b1WyadVyscctTEpNUzGipaO0mJ1VzmieXjAeL5MZHxeS+tcscHT8fj8alN8UcU0l97svL+RvhV4PlxfxNjOuVttp4al+VPLfD1H4/NyS1fxuK+DjKegQdnl+rcoVDyZxVydqUO9ffg+Pccxa0S1ppYijni2po7bDfJxRP/kS35/8+/5K4IbuuTl68RwzU8/Fw8/zOLkr5ZUctPF/H04I5KiY4bqMai4c4ODjrjIvm4orj5FJieML+VN183juHiK464LuI+PxecE1z3NPBx/HuCOL5c8l3MRz/FeJe/xK4+PmDkauD+Oapjs0891xxyMM1VVxyjxd+OPiRVvMnFOzXDERJp4I5rbzl+zujlieZrlKvloX5EzXNdz8T5X8stkTHJJWPFbTWWMSS7KoCOG4oia5qiZq/jlQ8lcjbrqlpFDHNF8ZeXJzcxJ/EnCQfL+Lzc1zri4ag5brj4ud465J+FTNVb2sqbfkz/JM8mcvFfIHHjzvBD2vl5K1OcNnwmazm5WQXi5yoaXln5EFccFP2Wi9ajkjqbrkSlzl+YazlqOs28NjyTY2VXY+fMXfFVXxt0OcXBXToT8mPh9eLkrlJXcX/I0NfBH5xy5HCtlKMu85uW+DjCfj8sc8UnK+FHPPHynR5OAvcnLwl0xnF8Hl4484o/i5bmY+F8j/AN6rfj/HIkgOOiVzjIZ61fHEJlHWWF5ZmEa2clRkSNrnxZ/9eqHllufDjjj+zyj/ADVDD/8AxFdVPkcPbI4x5GTjNyFc3HfyHpxnHfADnPylSVx8nLUcSpzTy3IcXDPLBeaoohZHn6nWJ5FODm7xU5eklzm4r5vkMjxVxusjjaBQCUUiZ3nxlgQrq1o4ZAZYrepLpprCQDRQz0wAoFEdBRPUwIqttJcoRKRhWp9Ftd1P9dsbrxl/kKxrrWNbNrq+MDq7E7EjtS+rn9h311rDsSuQ7DLB66JezSa7OqN6FQnRFK6TYOUbk0DVaCBrQydaFpl0x7RpTtpZaO2Msybnjgrs9AreVRqdoa2XMUTomOotytOia8y5qmk03K5xlFA/xu+pcM8uidJWE9oXFZpydL2YFnsAKpsVGq/+g5Mh4RpXJFrIn3eM/bNfsrKV5VMmhksDNG8sSdyT9ZrBU0a3ZhL2NlafXa6zsdM2E+GvRUHYb0baPaCtnfHYesyUuT4O4VnGdoZEm9YobMpJTGklMpPNTqiTKdmsEKKE7To6hIiidgpPo9Qr3etmf22nWX0ZFKBJ5Wnsfho3OdZ67wmU2krybCd1umfNMDtWqWjOwoM6pd9lvrSBWi5EKAZgM9/l7PRZ7IvQxkdGO5lybJTXaU7ZUr7jT00Mt8LIcVRJI0p1BqQC/b3TR1yWYqkEutKAdcqQ6zgdTTo7YyPrQSITb1mWlmWch7SbXdU4aOplSro46ZWaQQxk/VkTaHm8fjxc1nF8Pj4qKyJP4/Wp0pybrTLTWsnfY3227F6ypE/byk41p7dlGJJ2ZyeUDYFCVOqKXfYlqf66fNBXbruInzWMyDuwmeuQbh1csnXIh3qiZqgXi1TOdLjXU5WJJX5HJPIb/nIoktKZoJJpxkXPmfDefg1MzyHZP/FRE8F8ycsNNZzQ8xyQ8fDHFx9II3arWq1nJMXQty3nPwVx/Lnk5H/2eB1w8Ft8LPNzdPifc+J8hr5V910OcvNzcfHzVyfHW+OWSl4zjrk4ItJGCNQHGtNZzcp8aql5Yn5HCRMeHk7DY2TS5dw8esk6/ZJb5Wnlvlu044lnW+WXeziIeKu8cfHy8I8PHxMRUPLyXxyQf+Qrn5OD+Pg45rjJqpQl7X83gEJPlF8sxxkBOmpFCr/8ffv8b/43kZC/jcHH8eUPkHJx/fhiieEu+ezk4VhFniWOX+SuhzRVyBxTf8zNlS11Xhu4IOTi6wUfG5eSuTqcjc80xnbrK1y/MmCZfjc3Nx8PJTx8sXbVf+TlueGq4OHk5OHbzv8ADx01wTfyPis8fD8fk4JbeX5FfxzGXEfJk575ee+MThV6zyYz8ZgeSOfj/lmOP/yN9ZkIq7nzn+PHLsri+HVcvHB8n4DHynk4L5Sviz2iHmb5DlieOiTgrkqm+Tgvi5Lrrz8NRMwRy2c38Uw3fJrj4eNr4rL1GS26jsfxf+/x8Gi+T5MUzEX8fitm3j44mgy4aq5ng+HHFbbx0Rw6JpmezzzXMcKccx/LWqs4LKbmeea3wRyEP8lb7JjV/wDsTLUw8LHGQ8EvNRyl2ch/EnyeuX04por+V5GZy+I2s81AzBxVUUNc08c9qfk8PHXFVEdv4jUfFvnZ/kv41n2jn4pmuOsiOSYJ4yh5Nl1130ngqqP5Ofha0nJ8PcS5Yf8Ar1B8f68UzfLyxx2cbYxLXNHx+3h1/jnWQxy6KpieadfEo+w351TRrthTLrOWJvjYefjI+XUcV1XJERyHFAxyF8HfkUeI4lhJ+nnXvYMVJWz+QNJ/7BUEBLSLzu+U1yS8nFo5OIDqHAVRs4ieMmIE5iW6uORo+T8jnr5RB35I5fYVuryoCZDj5I4+SZIJOrj19spOSsTj1Ll/Hnmn3k/8dxdfODh5OOCHkqyWE5rikx+Qodo+Tp9n5Eciajs/XKg61C0xWyyf4nOMHWuLiJGM/jZoE45mSSZSvOXUr1EZRUmi5g/FZaMhOruAoNdYmtibJxl3tmgol5E7etsvXIs/U1yrho1nkyCnVAZ+pOeqKg0gjI4S1rZRNJk+TirLqZJ0lI7wTrj1VkZGiRH9JdW9adfgNTjBL1UYNlD2mqX69XkntO8Z/MVJBQdUG9aQ3Puv+OPbDbrBJjayO8mTtOLutZUHaVIGfCiZTLr7Aa7cejjf/mhMgbVOyZQOlgDJld6jQdmNdst64P8A2f2Vt26woAnDW5MdGzO5VMp/XRt7bxXxKr8GTSAiAqi4z2nACdta67wrc+svXI1Q0nbzP9xnzxNzgpQ4V+iBsG9teIe4NVpLp2qD/U/Jdo9TXU11eu+QVNVgipjO5U9n7IFSQMnbTE/Tsh9nZ6+rrQCA1jqjDSmJ1dZsTwn3sz9TboTsOvwZXzCStYSGtwqVIz1nJdulr7axH+V0a64qLi6+x6mm9HgQNdmLJXdxVnYibH3YCoPcstpkc00eI9TNO9o+i7e2CUC3LvQQg6iXSLBLhIGsf7bSkowspRTddX/own8c93vNvmuo7mpn3Z1e21n3JNbFplMj6rlpr0/qZ7/YKnniLnr/AN1rtnU7JjOxRTp6VXZQoDapaZVFHnVVFk3MrPtUvFqTUu764zdaLZKWl4eNrePDxzTTya+Pw9niqa4zkBezrp11r+L+SaVk4oiB4YunQM8YLWpXLkkbri5muboslM42RPav/IcMfJ45mvjc3BwcZxPLcTQvyIeep18b4TF1XISq7qIoDkJI0ByFLhSt6OJrk5Kslnj5OTj+PXyPlTU/IjiblKJejhSLAS9Rzhs5OObeXkuKNfyvP8Sv45rm42a44pYaorvPZ5+XkOS4z4XMFkY06UujkoW+P+Syz+Hlual/h5eX4v8AHzXCGr+N8a+LtzPx+D5HFdvJe0EB0U3dop/PfFzEVyH88iHHRBFXxH8fU4oI5mnjp6t3dPabj51EdAj+SJL5OLlqpuzl5p/h6vxququMkLJWwJSb4z+LdHx+N4O+cPDw8s3Ty/Hj5Edjh5CIm8+fy8vL8mB+EHHwyzyE9ra5GZquI4ODmiZKv49fH5PeK3kmJK619OV4rOObw5p5/vyfHvrz/wDy5vkXxTUvxPlcb8cGvmRU2T8O7+RFxyMscrGczDRTfEcTRHC/xS7vifkfJ4OUfh8PZ5K6VPHV8Rzn8XW4+Re5l4uvJ7nL8b6t5xfFebl47bnkeXcHyCYWb/k5+JeLi+Ncc5fJc/yFS8MWyw8skTNkXf8A7EnHXgXRzxUAcXeaoeK6eV/k5vjnJXHd1xXUXQt3wk1yRxvF0T5EVwzPJXXkqtfE+GT5nXoOXxMTScvJfUkLdG3m7SznByNWSR8g4q+8ryVN8XyYj+SaSK1oOOmtPKERoZf5FyNRTNc9Tx31m6iOLvEf+TqpiZ+NzHLZfKxt2iS6yZ7wU+jrK4Y5dVhwSRVQQBI3vp5tdbIaFz5fx/5ZeWeXk5Io2fI5K5/fj84r355OThbXmjVTmwpcgCgeWAjPdDjdyVU1y8xNTR/JfGExwLwsN8F8VT17RNzTwyVTGcqfyTDfFd8s21PNPI08fx+Sq7XVb1xscTFjjS7EpJrXH5ySGy560e/V5YJsc5eCkb47+O11G/h2/wBI+Cg3ynCU/WOGmi54OV7A1bybkjVGlCNrxJVzu5I1M9p12WvTROkXkk7bz5dckzRxxV0TFEhQM2V+O5nCb7NzMBjR121ueNoqtAYrRvL2SEi9ujHqS9SZEn821JLvKoZ2lrx6JOq7uu1m9/7lMi0zyNHbCtWj/F6S1x9SsmRak6G3Zvs6Fn9I+uwlTTVadjXavPK6yMuSq+997U5CvqVXZKyJ6zsN0YSo6ilPSO4i7ORTyZBujrKReq9ixWqbE1iutKog9VKcmfsOXXVAE/CpDdFQeSaehRxCnr+pg/um+vuJ2MU7E47aayZDbgp6o9VSXuOXIGzSpp/BB3umqJ+5V7k122aGvwRK8TUb3OjYNajaOhzskbyK7SaXs9QreG/dLWjdeVKqVQZ5E6ZlVS5aidRX2y6B3gpW8T6q1sPr4fnnZZbOq5Qv51ZorB3uma+2qe3Vzjp6ii6aCtGgBJRQnza+PnbtjRRvCvExeggzvwmQp3Nw2Tjx9vBkAx9EQjzdQdlGH9IlZEPD3Wh0Jc6EV+v6aTcv2uwd5Vm9px95bSSJ2NfVcBPSjQzm3qCyfuLWxRd+TQ3m/wB0G9J22IzVlawfs7EEcaCnO2664BIuG5nB7TVZx07obd6nJ0BOG69x/suD47600aPJMQoxoTqT9friiLlVY6GhowO9bzsn46yqYaxlIVEZ0D2Vxl21jb+rznGq3ZIYSljly1ROdgmceeZ5SIFVL5ZK+lPWHrhLdan3zXbq9cue1SKHXbcjPXOk+5z96mZjiiOOaMJdaL4ip85aoZMfjQvceKOf50zyHb+cMITkRmTbtoRCYLGUiu9EMhWKXFcYcUQrlm68/jmlMtrhrq9iaaz5hyV8crj+Hyfwx15I545OLaVM1046WBgIGdMTZXVPjxfJVWfH45rXGEdMeD+TWEQSTlDHmMlSLyfEjl4UqZJCMuCo6J3mhIrfbdb6/wDzIu7pf47mhmeMp86sGiuMaN8lxUzGc/JL0o54OYhPZ5HfFF1w8vJjVRwzv48AXdcfCRc2fI/kdRxcXK3VcfN8e+MnSfGB7wURD/JEnOK8/JVcn8T8KSuL1rvNtcMcf/s1VcPSdE/L4OTl5K5Ti4r4vjREcldvkDx/K/km2TgmL4uSD40cfx57Z8rm7prit4uLkp4Ifkc5y5yfIfizyUR8i/8A2Ku+eaLrC763c8Ny1VnDFzNWT8iuaZ4UJiRzlmK5ojjeDiq53IxLY8ls+ER8Ph/k5Pj8lc18k8cwxyzLBPGbjmr/ANi51zLPB58Wqar+TmYIB+Lx1PyEzltOfkmfjcHyLKZH/wDhvTk1qmqL4pmZ5Q49Pza5DhXi4q+Rychrlvj4ajhr4nJyTXJJTzcfdqOabnoRfW0u54+XhGuLhf5Zh5bkOs/F42X+Rhnlop461w9CBkN/yvi8t/R2tV4xXfkmcrUFXXJX1KC3tVHFxRXynfFE1qz+WADPl3Fc0VHFyLxmFyx7N9PS6q687HUp7M9nC2rlwp6u3XV1y8Dth4q/irWcvFBq+J5KZYXdaYiumpqPlLYFU0CzxPQ01HH4rd9pj4lWaipDoydkEz+GTi0xxVwqPyK6QJE8nNvrU8sSRXF8ep4i75fj8cWWsxxATc7JcviiZ28vSDZx/I5CUY/+vWVloBYKGTmgPc4g9c+VwPJxVMf+tcyy8fxHqBfFHH9SOKCGh4oRcZ7jkT0rYtVyFTEMburHZRx2KLVHTxkk9JmHs0FO8AmNnFv+NMkSUwLns4O6KPat3endZ0a+p20IxJVedjesGZTO4szly1Ww2VUtUzpCtnXDTQvV168Yu0hmVXegbtOuqoTeTrs6P64TqTV0Qkk1UyQV5WlnVGO5oMJ1UrYe5Jqe2XD/AJrrWs8Q1vdeEpLo8Gk2nY3qQWfsryDWqCds7hGnBg4s/jULwWhxk8cGb3oomc9d7DVbAfx5frRnFT1BHoO1EXCksAO3uPgYzJ7kp21ihlAyzk0kmRqtOLNgHFIA5e9mvM/vXUqeoAQTPZ6y7EOpln1xSScK2mfVoMmTroEnavh4JvzY7Rd0IrvA3a4nbYEpJmjaodqkGSZBQNZ4SBW69CWZNqaUiQEAdqVTVUZdb4ROOfzbT1dhTW8j7O8UduRJ17Zr7by0aXAKkrA2hjIeiCVT5LJlcUXTVTxccUdYOhpoNGNOfh2xp7hiBoJ8dHsy7dr4zM0OXB1zo62UFVrCFHdSXQnbrPVNdcZ7V6UdQyqN1ooZDC/XQFyCSKIceuR0bmQzYVo5ZnW05H/Xe+zIVtytILL+mVLIbK3DLxwz2M3odNV9aBqoKwDez/XQlG82EmgNBl0wzBCe4+Ox0UGdfNpLLRhrqACIZR0jwnYq1ucJZHfkGNSyaudymXxnbZMck0WldpzR/bGXTD8r5k/FqnOHleb4s8qba2I70ykuyKmqNVrttaa8b3rRb1k2FVM3kI/kzdIwyi7u+s9ca702Q9Y6AkarGd80uWEvZ5+Xlr5XGccPYQiSaHCSLayrWgzkajiqzg5m+GqYoqXJqJ3dWxycTp4hkXn4eTkiePh/hiuMnkjhie0ZEvadXN/zdldSJw12lVjs7ltiNYPhU8UiKkqttSdaXht5/tPYYRimqR5JKkov2VbrdS5y2cMuuLljmkJqe0oS3FSVy8ttX14uRupi+WJ7dsjuI5zc1lEx8uuaOYZ+BdXw1PIcQzQw3xcfWapIJIqK+Qd/mzfFy64/jzf/AKwW0621yVyJOHLEcl8fHzfIn/2Io+Pzbrqc/IcTcvDJEl1x9ONG+WusO35ExFRHFFcHEochT25njJj+WI4XmgrkjguufknCJPj1xvwoeCurzcXF8i9N8EVK8dx3/pxzHHx1ecsVycE1PDJ8z40xQf8Ar8LDwfI5K5O085/7PHbx/G5eaIOOvm8jHHEj/wCRsBPk/L+PXxpo+Bx3N114+M8p+8U0dFtriJZKTl5Die9c9L/FKBNQZCK1yXxcl8LRycd8vEkNduaYWSadEn8fpyRX1earjn6cfy//AB9/L4Za4/jfxcfGR8/itYs5eOziHjG6+Qc5/JVcuseWoZoIjQHDxTXEuPI8P0z4vPH8xxpqqYOqyL1glkEVDjDvrPlE3XXP4ZIAeGIloPjzx85bEspEvxi6FrqVHHIg+RPZ3UcZFdhlX3k2cZ0aWXuMtBk9xdxb6vLwRzTJj8O5qZzm3FM5yzHLxixyRGkiRnvkyTTZwT3pz5cc0zP8fPNzE9OKIuPrFHFPHtZ35dvZ1yWz1quSm+Gbw62k5cE0xJBNBT1qZnOWWkxlqey1UcQ5yc1qyxqqkyztZE8XFcdUJZ1RN/8AzF+R3Rp46D2qrY9erMejrjHFLEZlmmW5m9SRxDS5dxxR1j490RUpTVapFnqJ0pwq6AGCo2cvEUTsnSSTxlAIM0Y0voDQog8aZU72tyWIy/Yzmmq/JWepnY2XkV9qUtfszRUuNVvYiOady4rCOTXa0PCvWkjeNCbyWezq1KAnczWi11k3T2prhasrA6nXGR8y5PJLkJ7Y/wBmSlNBH2Ns12mjKns9sIYaSN9inbrbs34TudGzbmhcfqeVfX6vHJsG6/qE8xQiIS6uiTsB0nvTQ52NYJpomgNF7unI2S4oi4+7QdvmknYG5FpdhjPmwlJZH36k6mfWa7yml05FK9cNVQ40bwK7GWABl7n6s7oNPpid50Ds0m5SXYHYFJ2VZrbreqSgnQv2cZaAyz66Nk04exsRn0XQjFf5jPZMJWdoLIZfoaoevn/Y9dVVE6NOMEmx111hTpDr4ViIpMB121L+kJE6ZpoaOw6xQrCtIY/qZ/3m9UU8lbreFJOkEFCl1tTaJvtRnVN0ht6tT0kxkJXOur3nu9NSE7xk6oAY7t3hJAhS1TKSVJmxEzqbxk0GPGVLr+KitUDIIP5r3tsutG8JOxWcgtKdZKFqRXKjU4iRtkrr2IKRpLdpnYM0k7Oz1N7SdAaBdaGsaf0DabXTlzTrUJNOdt+rR+Eh6ZW1DOpO6wNSOci0AHJNKZfkurDRhNKbZ0Gj7fZZJWsKm94QdwxBDTHbUvLwxVlJ3OFzj7UJkz9trMujOrKByWyEsO9q09t5yr9d9J69jjnaZ9YWmbnmauWmCliBGpa69iePX7ZUtdmqeSumPEbDP4yqy+M3o5ZO3TPi/H5ONquW4bkBlidEzz70XwWcm6HqdcKGez5KQ9uT7TUh18HXr5fhFNUU3zcDbxvERx8XWSfJrGXt2weoDa1RoHZifV18uamRmdyLHFzqVCy3sr5HzOPioh5Zi5lyOJ+Pxm5rfCUcSUe83HFwNfxRPN2jl7lLJUDPLfLMc1zXG6CYtpiO3EU/xkp16qRc0U8hczy1ecbDrfNwTWs4O5y8nePjcd0VXy+Gu88jx1HLy7yLiKOPPkxFVPK8nyiZZz4/y45+S4yKPl1LPPc/ykwzDw8anHw8XzbOMqYom+Lli+S5CInjqsm4QqeSoiTlTvzhfHc8vJwzBwx8i+Wo5IooJwq7Ik4OaPiVyo8/JyVq/iTLydZ5eXhji5JJ5b/mf4W7vjL5eE4341THyfhN8Mp8STgoJjXbpPMu+pLqJso5Opc9Z+RzQPyWZiV/lG0yWapyuSOH4rTHyjkmup0sdTVSg9u9/wAacP8AFNW/H5y0nLZE06ndHyfld6njueS64iGlmtRy1DRWATydLqbl1nDbx8mcFFUvLxSPyW8jjvudK5+OKOO//ZiHWFxVPJnLXSfeWuvKMFQNTyvyX+SqDkhYwkndBNVOwqTkrADsPDz65Ga/kj+XpPaJrTVF8dSHEnF6y+UFNEyvSRw4vostTNHX5PHHLyFHPIcP8cyHbeCMOXxblo4ZviqnDlvkXXJx96mg4OlVRw0cnxGj41JJFknunjKonKnrxkjGh0SCVhS1vNbmgumR01Vk9mZQJ5OGJkujozKfHgKqm6KsGGWuycvW/Ko5tD0Jkzj5NDORM1KnIs8bOcUtaXknVdiOhTLFCMpMsJUPWsaLo1yKSfxzKqsSlYz+Awbddlry9k5AtCh6zikpOVShpFNYwlIkvXOp9TECuudTtmtSIg1o2joPrPgeS4J1MNNOJ1Jo0XRplxmMdB4teQA7M44OwrOl03udYTuthvXXN7qcoVJxrrTtZP0T/GhMq6OLeRTfGbJJN5VanAd7yKZHOwmNDhQ9cqCh0wzexHS11+qk8dVtKk3pkGWR4nsYaJDKGUCZO3jMijE6XdzuthKfpOH4uMBOs19fddUMf+86viIP6pNGl/XOpOkB/tmnq55/VJHRlyAbfRAHqbNAjMp7gCdWpezjIHjARtUaNVP2nV+LKfU0Ow3hqZ65O9dcZHzKVpgDR1A9Kfycl04M/mXQYrCDR0PHqk4g/XOtTXXClqpwe00Y68ASp64zo0E6lG369iJ1AK70YJo1VaN4Iz2wm2uye0bmSpTJXs4DP1WQpMdFBnZ9M0NbLnsmKDp3qtjLVaBMdbMTzbPpRjKJtl7GzSodXS5eyjAO1ZvWgt66tqtSOSPgtaFanNNbMAVy5rsuNfUDRX6ksst11ZkZO3cYB7Gta0eKjv8Armzxw9XD8DB3VVmnQDKk7fZNm31a8cJa2h/ZMqnZIh1CthJmiQ2gG8bK6wv2rqpqVzZW9E/XWXG51nFKT7MoKlaa2M0Oqmjas/i1LM6BQJNsus5aa4mwNwTUbTHR+ch/JIHFayyksybqilEGuXrLGh2w9Sc+SXN/Xivj/mYSVUePoVsqztW5VJTs1oyo+0zUweCsnmUz23hYqF19apJlpQ3M6xp1KHu1JOugjq1KfJ4uO678KckKcfBE8jWJJBhx9q6InWgrjK3rk5utgcVm3ZXePrMXVq8/JHx+R1w/Inklc7dJ+3J/47jeQ5LWjmdzXXmqMLOnQgJ8L9XbUTMyfJ4lQjl42+EhipKIyvkdvkTCSzVQvFJG2PkDNyPDPHDEcUUEvJxd/wD2+jYHGhHHd0XyTDVA8xHXRxfHOLlvkL4CeX+U5fjF8KZyxalT1iOKtcUxXxd8XyZK5IGmvkLDE8RJxT/5CWtcjxXc8XSZ+RZw1xvxuP8Ak+NUvJ8c4uQu4G/kPFPPx9qai+K6lM4eLjO1cfJxsvJd1bcdJKYs4+Th5Q+X/Gc/HfLyRrg4okO9yzM8cM3268TfJyR0z4xcfK7HFzVY23uuT6kscfRjkKJMkgOx8r5MEzTbyTv+P4qXJD8jkIa7RV8f/wBD4/yI5It44OSdVV8nJ/LNcfJuoCfjR/G//Tl+RycfJWc/yL+Qa4mrjjmUnv8AGjvXaeK74zhuonmwqre2cnLB2Y4ePtU0f/OpZyGIvtyc/wA/jnnI4/k8Ry1NzExxBUk3XGdeeWJnRx8tLVfKmK/TgpuNdiZnt8evsQtyUzhqq7N8hNebNTkch/J1Jr+Tl1MVHHXtEvpfdHqV2lW7ioZqqokrjJvllt44jbT8/wCMzu+M4aJ7vHwLM6al4Qaprh1UT0oTRd9aJe1GcXJ0qtytV3J5baRbLs3HE1Htyw9siXRWOp0TQSOrDYkT2TfTciXJfED/AOvqttcYS3KG+2cY9Fw4xg6gxTmmuLdUWT2ItoF51UCasZMZa3nBx1XG0R9eaZx5Hlt0PaXXGfcR+0G5h3NEQxW80dkyhKJJnUq0duNEgmOuE6drKuyhE3VOuxcrJtHbJ6RWiO1bpkiSibaoxlJdyGjbQ11GmZJDt2MfPwVAzZNamK7bl6L7jxTVDnJxddBHENd1ohpWtwISLtkgoMuT9OqPr9nsWj4si6VSfJSTWRJ22ummTs+Thrq7ZaRwlJ03PQKxkDWRPUNiCYpToqTOXi+oBSR52aRJJDZ1F64z9trO9LI78qStOFfXztuRWcjfqqiB2Zez2VKm7042mzGvRSVnRFFVgGkHfbCjqie14TreEs1ta+udd4V/xQWvDc6c1rkKzk00aFUyqU8Zf8nT7l6drxwEzl67aXfYwp7G11QBsVzsyuaeuJocJ61nR7Ovw6v111wlqnaGzFWkz1r3W+VSfKRfDSAA52WfdO+rMiVJD6aJ3VbGtmPs4SVOsBlU/wCWztrdDL652dmzeys0/wAkmadNDR5tXROM7oxE6uT2KcKCff8AexW6fOrv20dOAnrEu9tOl2apFkezu0qgF90zI8e67DRpqlNIu3CfTNelY+b2yk6xrcrgvm02tPLLfCQFaDZrylNCE32rRJud4L/u31JlmeuI9pR69pxnRsfaDHZJtPtmx25193lzt2E1bt5NdScDf6aTF0GXRHG4SdWc7aoXW9Dtl1j/AFQRHsyjal0KThIS1nKPRc4p5Z5Kvk5Xryi3WjeFHbWFaryJWlH3YEo0lU71lpcuTRrtjTb7AMpnNHGvvHx8VcylyzNdIrUG6hrkqwn66y6ShG5GTI1W1o/+m8riOSCSOKOHtrnt60HE3udUU8k5FavqxcdPZsDq8qE1RHFyTy8lH/jKJ4agJSdt3EcjuEabE6Q6sLkhj4nHETMxB/LVZ5/Hom01v5HHFjdcURxy6UugylK6nRvkXOUqK7ARWqzlkHZeqmaef4zyzHS+NJJb+Puu68c1c3k8EzU2fJ4m0sqYri+1xUy2fHa5K9P/AGSiL8nj7sfWS+QLrkmZuag3XLVMhL8U6HI8vFd8XhdcfEQyb4QKm+83XF8gmaJiz5Hzejy1fH8ipnh5eT/2s+Wt0dewJ/IWV8W+bki74/jkk3/7fEufGI4eO+avlyr/ACxfyevIl8d1Cw/K5Jrikn5sHE/yfH5Hmuy34HGfykcjEXXXjjkn+NmrkipmoWavJ52bDPmchxcZRwcvJHFN8cc1vK3xtNhS8kddvHc8kdTl+Ndz/wCxgclNSRLx/Sa5Tkf/AJ8fx7vggOP4/XtxzTc0QcsXEMMcxPHxw8nOFd4+Xzl8PhVnNElzyzz9X+Wv/YIOX5F1ysR8QZqx5f4+GZWOEtNP8UpKTyc0Lxxx3yyy/H4fjxxSzdcbyOFQcwxddJ8i+S7Ivnm/4mGvjkpTxcbyaprg7ckduO+1GddGfJ5KiZo+NynLXR5ZmakTliNxXx+BYLnlJhbfgfIv5FGyL5J2M3x8tyodRb4w+wPSUYkiJ3TNDFX8dE40+PycNiu+ppp7TOTqZ7LBVNt8yJGcs3yx58aaYKqFTeVP17Mctk+3Vcn1IhrjceOprP4j2kiKuaCZOVcI9KiyJNt2MuopY1hxNVpYjqyFUSaiez6RCazT7qpClERKbuV8boZyORJZK46oqiOKxZxlidKJJkbZIxogmUt7ZKVpxndGjUz612orGtjqftqsa6uW11Zwl6+6Jk27FoJb43cSSg3QjkUS9cQ6qtC9sZ7U0FPVcK39cXcjUCGiIoWlk7FLR1oTfgae3oHZW5Fca+oHFVLQs9aLGlmnOzLprQTJ1dGM6+pXLe+sxNa7hXXzD/8APX3JBEynzbQ9Si5Kwn0zszPbGd6UPc/t+zpRUHZk6qdJI/vRExlSsCpg2SytLVM+FaWQAdYT/jHg60uqxk67w1ppaO3XFN9Vkl0k6Qwk7YqJhvdGPaQCdk9sNort8E/Rw1sM5FUkj/k5288K7U4aV2yiYATtNJs//GVP16sjMhnlI4p12o9QdnXRrabqVN5vWkH6eyOlzsS4z9vJEpF2OhAO2QM1VIKaxlKwTTpoqvLCp8d9p0aWnGXa5PibqjbI0CD2+qGyNGdmqNL5hKusFfq9TttJ/wBwkFSa8zxrWNaPdIBi72qMnmtzp7kgHbexUp3m1nY7JweyZyD2MZah0r4Y0/Ws006XXbRNPbxHQh+eu02lGtNvbTh6MrrSYSTLp3rK8ntkadi67dcUPMJ3WO4k1t0ZG6nRrrtRTWFCilavTvQudl6iyuH9kaT9AEckSdNSGFMe47LwNTj9+xgu9YGzs9VZcVQ35vWdd+50PdVL2JPGOuO36syklPP/ACTzUhRcaYAnT8v49/IIeOe0zOyS00qPlU16X2NmO+ohrWgBAOVGJkJCqMmTbLcde1ESpogZnslL+aGeuRRQycjqcD7ecvLBLGf+r2RXrFTJ3Ou8hUNeSjnPRxs9uXg+Ty/Jbn4Xx14evI8dcdzERV6oeXgaqqOOLia39oGW5dlLTMjl3PWaC4vSC3FOXIhDXGj1LSvqMs1vISzeV9DSR0kyOY9arXIlApJOcVA01c3UbeUjjmIODkLjZdBKA3bM18iWpEmOTi5uOj4dxxDTwckc/LVnzKqq3HwaWXmfkDzyTTBMzD/K9d0XNnYujtq7i+DtylQlt8fJPM/Fa4Y4jjeLjueEJ/ln+WLojL+PHNxFxfGx8Uk5+MrheE6nH8PXJw8v/wAxngvk4vk8v8nyfkXfET8fjrjnmqeWbiOECecqqnk4JqJ5OLm5bj4/Ixx8V083HdD25FyOWPkcVS1xl8A5xfDenR+VxVHM8b1vVTy8c/xw8ERVxyyLyxLG/mzyWl8fxOO0MOLkeYrl4KiJZuJg5uwfD45+TTyE9Ipnq9aoZvkNnFxcdvbk+bz8P/tHFHxp4+1fyfP+QXV8HHdMRE8Ly3Px1OT5HNX8snBfO8PV4vkPGSZz1zch3i/kvI6m/kEaSOXn5XqfH+OzwQixxbodTVScPFyTy7pmmpKr5FzzM5xc988VKcZEkVxyPWctTmZz4vHcjTsqQzkIjlkfl0Tf888d3zzPJnBPfh/+jTDLnNyRMUV8Xh4/jcvbi4ORv9I701lybDLoO0v8p02l1VCzfatZ8n/yNcfK8c1yl8e3jan7LZVdiap4wZmuwZcwyrXGcvD0P/GTycPfj5Y4it01Ky6mqTyaX6l8p8epE5JuJpq4Z64T1FCfByeSZ1JcHKesddiJMkoxNthx9gQhRG41RkyTybaWeyWl2hYds/itAHkf5OmcUduMp7/UmeOj2DpXIokee6exZcnJWqgqI65/L01CXK/W6FYJnTlaPSZDQUyVof67xSQzQyVljUzK0VPVK6DOElTvCJZnCoxj6+cvF9gxgJ0EvXxlfCJ+0pao7PZ0ztqtPaTB3WkQFbsKJlWfqcanH60eSAxOsZ8821Lo7sgkDRaxH9cZZqTCbN7EsN0q7JdTta7A4eb1NNNYUfyM51uuaqSWQ360YbawoAc0s9mJ06dPbeD5vFPdUaMpAEPaTPPFNsjkob2OlcP6mIPmVopB0VOXI0M1qZKyHqOH5vHZLhoDKXzH80CAbBK1ifXzszPoieTJtHoemKAuNJ5lH22G+xipXiHu2RrsXSFJx0ckzWXp/Wuz1IffCl3gnpjo1nr9Xt5o1qqCa3twrt2zq0mVJIaF39pTdZtZU673Lx07oGdS4aftj37edkvWUg6xDyiw7lO0DKDsUkjOxlpNSCGaNVqJWd12Cc1sNpqtAgGr2fZit1lUNJiHU2UyMju5msAAca1yaB3TlPTx6Oxdf2wp0OL55NTZWj/MDZWQBsx89xQnWI9gWSgEovw2AmTRRrHYea/7Fp6mvrrD92sujHylzsUaWDygoHedhlpFZ7BO/wBdeJcHWTAaDe/QVKPGdIIm9HY65vXqwViJXn+6daHRO50SMcbud0C66ghoc7O1y3r9TxVCtWqz9isr7Dro1BTPFFSLU6kynodQpuVeLTE4Rulxkr9q/dIBDnGFBlLL4y3pUBGoCt9STjhJZ2gTSi4a7G3XLNDL/HJM160M0T2t6iljykotG62sp1z499r2EqPbn+Jx/IubqOAiGWuS66yTNzfauOYK7NVjRyfVppW1tt1VbXs+XLOToaJu4Z+xq50G5lMuTsBVLygT/RsmpsKea4LJq5NzqTlrm47OKSqbeWYabT53HNVxnyam6qibODqJdcn2xiiEOT463xzlfFi+Opzl+PxcHH0Pj8bHBcPDyL8Wov4nLZx1se9kvyeL+SdZPGHHouXj5nrR8mGh5fkPN8aos11mXgi647iuXigo5jig40nOOOBtTj1wcrF1P/sFPH0h+Ntv47fwOOuTmkqQ4y45OKRjhJdcnzOO+WqOM4rPj8UEfH684HJb2/jr5PxeHkseTh4eKSGf4N83HRMXxczEzd8U3yEfK5o+VETzfw2vJJwc3NPY4OI/k5Zz+Ljv4vHxnN8LiKZzi+Ixxzvi42amXlno1RzRbUzPTlePrHBxX1o5VanRxX2t618jh4pImOV57YeXjgqP464rni5NfN+FfJw3Z/4+b4eCoTgj+OZj5M38T508mN8p8j7csXIb4uWOK75OT/0+GeGqi7boM+OHHzS3xfIvTXH8euPnOTCIjk7nL40scj0aWXnas4Y8lzlqNmprv+nEStPJTMdZmuTojy8feoqaL+QrEc0cFTxcnFfGa6yF1S/LkXRx/H7zNOomdHFR1WSS91TJFVRz1qWqnVBeB9mj5fxXn5ex8aEKjOQO3XODhSSmwipCop1ZcnJx9WOGJqb4+OTbT9WFSpdiGlM1UT3OVaRzg7U6UOuEtCAqaziqi+6vVbxbrfYJmVwmOmsmXXUi5PMbXdFcoz1wXcmdU5fame+3+N/j0XxEs7kZJ2JPH62m0+PLBNZdTXWTsm1kziHtW74yqRIJnwjrW8NPmVX/ANWSK12Xs1okUNVfOCDfNDKEb69loa6lyfxjnHJ6vLZMmRU1zdsdVJlETPpEJsZmNBz72JtoMsP3GTqVkh5vlJ5JYVfrIb61OcZ9iaZyVZnXV7byr/wn0DPTx97SZe4o1SCOUg6eSknZwV2kaF2uF072UtqlTNbwr7Ibey4V9vXY9sNfqqAZ1Vdmjbk+73WmiQoo8V66VCECfSmYdexP2RDVCta0EKDodHljprOxKDXlEm0TXXaTi9aJJ90YBrJkfuVO0c7ayfsdhfUANbx/dYSE7yaD6YVvXVBNJvXVl93gbcT6i3X+PbqFZ2acV67CCt4SCqoKnYZNTTo11K0Pvk56S5U9qMTek39fEPXF/wCwZjef20YVvaXT1dTBXH40mpw7E+C90UKjYauuuH/6nR5Zr666iM4Sf1Ckc3/hH6hVPbRoZdK9dOvp6Ihqg6y4Pf6LKVk6H1+3HgFTWjW94KVrHwdg6BQKaR2pnbqOzfX7J45rUjh4qAg4OnBWc9RUoZlyT7LhTPbFOuxkJUBpKXsjsCaFTqpjJU6yJsn3f2BdFOgKjSSUe9XRoPq7n3bgs4UgzSp9sp+w5P8AbLofXz203ragKLXmsTzedVDDzD/HGgdAalpT3Rflk5Y9t4eT2CvsUNM0gJaoofU7Eetza9ZadGMS8ja7kpzjQUyaDsl7mthLv0pRkKtnrPBNvAHLE9Zca+wMUFOuW2eO9cHzeWq43IkY6jrswH50CvdjXWuzvss4x/xGaZ3hIGnVsmuLiIGnl+Qtdcnm5Ndc+R8Z+RMoVVTOiu1E1ovcLNTOmDet8/ElGk7hJEsz1pmiuxX0psLDjye2lPGDd8U8l7UuboePgjg4CZjc15yBzaFoDqzQTecPL/8AOd/J7Rwvb43xHnOS2PjwQXkBUytSlOCzW6Aqm2qejpiea2zlY4et1z/Iqubz41l8DZ8f5EC75/kHHMVTXHfGXx8vFU8fbLW+K+Rrnumh4p5KF5I5/wCTkoz5PJbRxyzZ8WHk4vkk83Jycs8scnHvJ5uSeGq42X5GuHkI6/Hrh5PjfE1wTZ8+ZiTfDNTpL5J/9iYjkqzmu5SOTieQbb5xr/1OPnJt5eXingA+JVgRbfaWzlq4/is5aSf5Tg+U1yxF3zxwzWufkvn/AI+R/hLgvk4gJrXIpMyccH8fYqdRW7qJqWI5+Sme7W9UcvIcT2eDmqeapmWK5GKOKYamODgf5OXkznjXIF8lXfHXHVnD8Xi5OXki7Pkank5eTn5v/pzU7LkdxVNLySTfP8i4moZrjK3gxdNZwUQE8nwvm/GumPj1ajebeqCpPY4uOzw4RjZyCdKWBfsNbk1EdxluWnphyzMjnaZZY5+Lj5+Mjl+TxPw+HfD8Pmvofy8nAWNMfyEnGcHDycfLTc3Ewg0n9b5Ov0K3dI1T2EhdoxAQJfyOOHo8/wAeK43k4/5zjIH5vybEo+N8ir4QZlqRyNRJk3c3pvnFAai97e0suRtBrY30eNmFkuSuuTQrRaaE4mK3RyPW+gcg11Dli9ryc8OpmKP4yciSBzqKw3FBoZRKydzvcSL7fJrk6VXyPt0CrTsw3y/VvjiqNk9tGV9aKy9bAeQ4qNxyjZpPquE6oUd1RhIUpUgbGu1bCv8AcvZOjlntSZxx9XV/WXTRvsT94828c0PLPc84oqFGCmgeWV0EQk6xgpMs+3hPU03x7kxWQ0rJrKe1CVuZpzirvc5MA9sqTs6TqaDUm8Ke2S7dK6d4O9zhO5TLnSDadhxEdYyTRsoVMJLFWRSljXIqezrDVEjrQobY9QqjA2mMjKYAzvDW1HRQ4Hpr1TbPohOq2oj5Eky4acKa3k9Q3irRpUlD/BXTg/UHzStR2N4TrW3z65M9Jzsn1ergaDHX7iutDorZofMTS6319NHlZR2MiSaHCuq5VaPeXl69aI5Cpmck1XXD/wDT2roNMq0ZUnVMfd5KGzBJ9x67xF3Oezrf29xTYFb/AANNMk7VF1MlYqo5pIc39dYBVKRPivY7u/606NSrk6eqqPhvQ6KOo5pNIUdtZv7eU61qaKWc7LQ4TudZ1BdWpozZPuFGnKn67yUOrjYC4VKYUG1PrsafMnTPp5O8o6k4epuN7R6nokuzYs7M6j7jsqddjo6EAEN+55KZB27OUuvOuh07aR9+2f8AEX3/ABXoq0dRDTO0o0gB/gvVcqNgYq7Ds9TaHlLOzeUzU6wn/S0k8L6w7VN5vdesrO86OqAlmQSTvRlUTsw2K4H/AM3c1qva8reD4aZueR3X9a0Cf2HqPXq1pV92w6tnKnrTmgoRoRx4zXnViJWJ3Sr2aQkEyII+uANVIrtnHivpLkQ7U5nkgangg1O+OLkVBrwtImqIpuSg9qjOSSOXIFms54nm4ql4PjfwcHSYhEQoJFkkpciAik5+efjcU2zynJM3HFyvJy1L17DQ6rrt3OpOWnRtl7NFRaaf5GIf5LlrlWCO8svNNlwx1rsU8M91ZviGAQo3LtqvNhTu9RS5ErPZnRXnLBzyQ8Pwo4+Pqkxx8pJstlGez7YdQyBOMzl+Y8ewjkSez7QN38eDgV4YZ4AyIbkY+NR8ir43g/lvmoHla3A1M746vhZ5i8v+S/jVcfD4IKav5/Dx8dnMHLzckvGc3w+SabfjcvMfyQ8Xx745/krgmp4arPlc9vEMcPPBETn/AJOXnqpH4jXFHflnk4Oepx+PP/qN8XZ4OKpdxVEnx+WoY4q5eAnjq5+JZEzL0I4weXi6lEXLXDN5yR/Fb14LOU7Vy8fHUycdTF8bGcUM3dCByG+upmZqmVcu5vk47L4w+2fH5yqsrnIuqliILqp4qiW65K54eZb+Xz8kcAfGfkxy1PxuSfkXHwal+XHJXByN8fzeZ+LHG/G4v5ZWzkv+cksGeiyG5zkLrh/jY4ZZ7Xfx0r6kEcynw+KZr/284jlZ96+NFVs3jG9IOrBuYrhSok4uMieXneHjZn4XzHkipYHklt566w1R8iDh7vJ/5ads5N3EtzxfKjmCmbi+PyLYexGr3uyYlB556zOc0zoqjd6YYeq5MMx5wtwpnPS8zLxc98MjH8Rz1TyRwvPzVEcXxq+PwzTHLNcjDc6NZpU3HEckrhPWgqpnqEvKcdaZ5I5OV6Ow3EWM7YZeOuuggWK6cjlhXZwU5kSaJd8sX28LDlJxPr54TWyvfXka49G9yWtolH8hUtEN27w0yySHUwI0ZNS0wfx9qB5eJ0BXxy7BOCChCa6qd2T00m5+xKF0vH1ZkJ64UITnb+svJIhhBMiW9tC8RaL0IKMlAdFNb0cJVNMdZlBoiiUo6efmjAFTLlgcdqTg6h2jQma6qlU9aUgipoqu1GiXzXIoaCSp09Q67Px273olTVZd9JUK7wU3WrIyTddWidmyXsBB2VzqEuMhoeqcSB6dsaSd5K6cnfY3FHrinXSE7AU9wB0YO3WK/wBcRRDbh+4aTWMm8j9Nqd/JJndJyTPh/beyU+zv3ebSUeymwd1jR2do9tqp7nYQ0UuxAQTRiGtZsaNCdRUNmKoGVShp2ymRJ102hJWMNAJP/LDt654Y7ES6f5MKdm2RpQ2TvJGp0juOudlJcd7djs3mvvvDdKFyS5A9lbftrE1PU29nNns4TrtSbJAJ3QZX9sNNYzuXRSTvChO2TPtYCusE7M5Eh6mh2iTyVqddhFXSdif112dnsmMaKSG2NJNS7xn3CuvmOqk15WnOxOsTzZ66BV1WbH3OxL1GtesDraafV8dZ2eu08cVPcNdXHaqpqfBTj0uuujsTk6aaP7T61rw86hgdpxnUmtfXZIks4KIYdicJdq/qbOXtbxYrvShBvGxlMmfNpqhSnspmgdCHQGNa9QQHqSrjQugkmnKPrrCRmc5ZdjkU9mVpRpii5RZE7ZM/Rc7EQo81yBkv6jW9zhKmE+bI5EjqNDUbsqEqXVcfYk7TXXirksqeQkHsf8jKpJ0CiznIDRqJ6X2w1O91UQmcrFwBNkR1TlWVOWrtJzj5LAlvlR847/coB3nY67Npx1rjt3paapkJYtKXVdjh5KZ8NEuuwDSVN/Z45GhO2qd8kxyAZNJyEvY6rl9aTrZUKvCoiFXc0ckz25ATjiatLq5merRW4q1k1hE1XZUidnLVAThAUduKmd0P8aq8kgNBTHC5yEXwVQRxz8IAquTkjjOQK4p38jhvn4Y/j4IviWKjimabnk/l4/kCfFo/h1y/LidFhMfI4WX53LfDwdCLmzikXha9vk6Mzx8Pwp5KOSufh444fJ+RccERfGzyVF18/l4uGgeLlv8AknkOvHfble9xFSXx1fK03V8nxZnj4uZnkY5dMfIp4+HlIqRCOTk0RRFdj48XXChcAhJXHz8Gq5Y455Zsvlj43Mw8nyYp1MTFcJfHxk1xTaTRTTdF2QcvCWQ8hFxzazjibWY5/jjTXH8jiKuSZind1fFM8QZ8ieN5ZX54cEx/D/47iqT5E3/5KIjh45OSp4/kRxJxnaA/vWh95xlkum8eL7GFj3qjm+lQPyL30ePm4a4goqHhmMBiexN8ZBFcvKR1Jr5ScvV4ua2utyd97JZ+VO/kkxUpwzUxVHxue74mn5fHfPxvIfH+P1ncP/jeKuU7HxIOU6Xwx9bji+bBzPFyHIsocfN+6upuezy1U1MzcpXeyiN6JqGaFXtGE8nFvVBcK8sEzs4+f+Wpizi4+CSz5EPL8HpHBPH4Zp5VJuWYM4i6sltTlYJKjkN8kS8VIESNEfLYKtLHjaD5LxpGJV0BxS25139M6ksuOmqFtqXvxdWtNWzOwuqrtbPbQTwv8gLxDpGZEE4O8K8cx2ky+Nnk7EzIgkn9cvzVSUvWhspZC2b2v13RPKpvB7CZEk24WC6oRF82mXQQYbtDGXTuaSc+tSOJdolFPqjnTrXk0kmfYe2cj22kUHHOhax0z4Q+r0WisuXQpt7AS1teeWfwkI7PUo3gkyTgz2zr5sQKc31QQ9afzdPVpAmespnJCr1maoKUUBLZpyGtKRQ7ykpXI/oY7PSqWUZ3ozf2QZJlcKHh1g69xomFTlNeTJNeXNCONv8Ap69VlLEb2YrrSHq5O0NspW8PKCjxcVNwdUneMjHbD9wNygfjvs9fABMT/wChjvbor6pj+Bi9Nizf8pgDJhT264ojOG2cfUpF1jtr2ZN+M6PZln7PnXWbCUGSvcpANKQI8dNFK1UJvvvTm1d4091XSGbRTIqitjPeWsNh6ToVZQMT1M19faDqLNDRTS77CpQYmNaEx3oB0nXGv0Jp36i7rGWZnANVONfXCkkcDcuiQ9yRL2ovpUmjZOtaVYN9A2ILIYSkpgPkhp/db0Z5LrCVPOwy63sFqO1A7WgEGcdYb7eiayh6uyfoGEm/EBc6/jjQya67eqbdpFBKY0M6ASTCfdYS69J3PpWp9rkJqdv4OL+RgyVonelwkX21URkqkwNeKMfU/wD3pXlZ2+jjufsDqSsaGdZ1D0Nn2xEo012EKlQgo1JQlaNSG0xlmfI3UK9fUWSbVBAZHczTUEzWiPdsaJrJgb7As008sxT7HLPbqfy9aDNvZTugaukoSuXdedvthVdTKnct4UdiVOnGmAaF3EBORN+5XFTNS/wJk/Hma0cvDcQrDcv2qGeP3iHtOfx/bsklcoYwtoSvYAZndZVjE2RVVKM7iWcK7INVMlSclPIFTNvTpyTIffLG67ZvXuctkx5FBXY63N1TY1akW9qaui5qnip3vGGpMJvqY8rMwHeIPOR2jkVNQry8W5qwOnDcnFwRFyrDShHRGcLmNa5edu6Mqnl/jnjaHW4i/wD2hfkEBWQ8c1ySfNqITlDlJC4+FHPz/Ju84uGKtHn5Xi5IOPbzz9uWSOFh4pDjqSONuue85es8QYVU9pjn52+PvlXd2ynH14+hy2c/AWcFk9peJmPlMvPcRyxcxDKPJwdYZI5B5uFsh5pjb8mEorh4CBr+QsSpzg3xTtJZmcORiooOHlm2iOXkOUeQmKntnBXVqmuNuiw1F1yHJ8l/j7S2Vwg88V/7cQ/z3bdvBwh8W+V5fnkxXFfBzTz3x8c8nwo/i8jgieM3y8GuTsRPW/L4umqb5bq++Ty19k5UpKIh7aw2TO5slRbj+KUefjm6nk5eXimyp4LiYLZ+fxHPZx8fO8vNPI9W+QG5eKiWvkdZ64Vf/qEnFPyI5WKOXj34qKM8pyFcWfJ4+ObF/wDH8TPDvknULqK9oeT+7VzST2x44/kndEQMZTMspJaGuX45UoPFzcNVLyXfF8gqgOWZogOnjxBylnDzQyy1RamNdRkiN029unLIclKUZxz6NcnBdyU8URMarn4JlKBEN8FM7hmzrs5eQI3nFz94N8tryuToqXHlalVrtWEs8ewga748ZNFLxxVIfToyywEhyE9a3PEU9sdxKqrsSVCBevIzjO665y0zxVrilmajHU0mH12rLreNb8xg67Na4+1Qblcqa7M5E/VkCj6l2TM527QJGiXBDQqYr1zk3U6CZJ1jaPnY7dgGQrBZlTrrWEg1pnVaLn3TEdjah0aGy3rnZEtjk+qLT3A5Jq06GmjLXuAIgt0TtyK7PYUnwLK9GQnQJ1NRS7cr83jyMyThyPbaUtM52+q5x072vs6GdbMdK41/86WdGtlHbRagbmmlMuUTCU0t0aJP5YrkrjOo6GTxW10OKtGmdS7fd0o7TB+qImnACdZUiknUk1gebwAdDvq7JnW8KUV7P4ukxlP1pl7EvavBRZw8d4JpMXxwSZlx1f1xQnrmjeEiZ1OvpoELEnCU3nXtu006cXQgezto2AW6nWEdQS9Kap6hkU06poa9JPaRaPFKCWNFJj7C4Apn10ZQNDj9p0lblcdTIpRjvfpuvriaPBEZeN29c7GnJ/HN7nQKOb14jtXNHVkAVcNa2I+0bKpzx24V5g/bTA7dzAmg/qyM61opHN7GcA/MY7SIzpTDf6ktBhPXdLpdy7o8PrKuynHf1CU0mH2/DwdeVm9jWFHu0K1hLR2pDqOKutkFO8FNb7G3bR20kvbxKrelWvVKcEZrTs43B6zOxHcrpz8nWHcakZRKytWayhOQC582NLx9SZ1PjLO8PJUfHWMlSOTJ22dQ+uUKeXKAYKvXD3TnIvZlrVbmuKQNYr2Nj9Shsp8vVpkfYdA/72OpJ1CShPQyw7IXTVSUy9kzionkJWm7NPGqbIOo5cjNS7l5eychVaJnojk3NuCTy05Xn2yNVrfbeyqma4icJsv2+M6FhTsxmbnTYmpVLk3E64yUCPcqRTVh0AJ1zbSdUpyQzlw1yxlyfx9chHssclfxaCvFLnwzRXmMEgJUk+bOvXIkJZQrjAx4qq67Rwdvk1b8zlmZAKiq28ckzQcvLPHM0m4O+c1dvg1fFz8kUXF18lmOPiD/AMRx38KIk+HbJPxuH4vPFclc3JUcHWuP4vLfB8TdtHJErfxovjZ4/kxfx5vGaOHtfHy6G55uO+bi7cbRQMcBVJIcJ8edt8Z/J34+KG6qjq13mvj/ABOIgK5eOOOTXH07az5DqnkQuebjmThWy04ypSiqmllqyKs608cw9LniiDnm2ZyPj/IUt/hJro8nyI4qmOSiie8krTD8m7j49wcXJfyamL+XxHFxjPBxHN8Tkl+Z/wCP5IhvPiRXFccslN1rPpx/S+auvLJnLLNNN8nJcMn/ALF60zV1K5y6l6nCHHU75KI4Sngnj5oq3n+RED/HM38jk2cHExRHJ8j4byySnxOb43yq4eTiniOYh6MS1x/EK5If5eXi1d0cXB8gSkE4XfyAH+XOauOw5Y4+W6pYD5V8jPNwcc9SIZf6BWt7+SzzcUnHFIaflbqCyI5Oa+9fLl4emo+YfxzCctEAFVb782aY7HxKuZ7PBc9dtzNS6OH/AO1Jax5Xe+3fCr7CXXZkORdMEBPJ2S5QvFuuXsJuvBOLllqubay7vkAyqdtJQ8zTZfU123JSG/c4+CCP5MZkneN9dY01qcgBUVXQSCrUt1hqTFaAzYDspk9oYGshUHN1QOEotKezu9ldsUHGXbqd765yoRqYTaZadRDe8NH663O9EqEbNKS7MiQEwkH145zpXbsd3uLrX6P4L1ZZCq6m3ZRtU1totcfJ2UruDof4m9OFBQpI8nbAe8uAQ7Qi7XKk1sJp8YCZ646Vwn7dSwJaOGWZ0iI6f3WMlU6ZBEHrQGpZXCU9Jt80zt0p9nGVpw/s6PKVujxIroTtewOJrkED7Jk8cRTQKm8jc7nCt720AySqezPgZQG3BGeuTodLQ/jtQwrdU5r0DwXS69Wnq6mf8GVow/dnYqUX6jnHKSOIy7GdHgBJtpQnNFw7lZTA+pSP+5rT6JS70LrLfTfgOJ1ACteCnb1tQ0hJvL07QpYJxg3l77IgdTQoIMigEhW1DtvLUSsPf3fXk2dRNHI61sp/yEqdBplUA0j7RhR2ayhorIEUIkje9mlw/wCyX9MWZrS7oXJWlFQQOxonJTqbPzedj2sF0J2N4yb9ip7ODqgwdC5r3aytbB1gIOdtUYCuCH6b341udKEgYf3xnyRKlew0djSgma2+OyaGDqmpfK3IC46DePk6Ctrl+SYUb0WK+ae2klKKUO2wfUytsulZ0ZUnTyUZBSU9K93hW63kyu9CdexS73jPoDJ2cUqWWPo6OxM9snT5hOpcX7JhSRvB+4nqNYbP0GtqzsNM/wC4zsVePtTueLZO3janqcXD/FxkWTPbOoFYaFgqbd6mXtsqj+FSVUTkqu2h01712uQ9bawlqNm11lOq9ujRjxh6izy9TVdXKlj07kKrQyONtmgsNQ1ZUoNVKylXU6JNz40XRgteVPHM1NOzU1nablqGqk1ijui5SuPqVXbRy7J6rKplwydjikk6pMTRrQ83ZutJpkeNC6u+M2zfWMrcUJdBPYbqk226IxeSeWd8sPNMxnyPhRuafkclzMnFVfQuuLnrXaP5I5bTPk/Hj7a/8T8Jonm5GCrYPjS8ZXZo5e84cfHPyKuvjTPPUVVycZS/Ht5NU/8AkReU3yVF6meHjZmutTydZqb+Hd899L+NfBP8mcXJZM80ctPDNVEVdQ3HB8Pkm1uLOPiJXknnuTOSWORLeS7qsI4eP5F0NnsvFR1Ujiq/kzTXEdL2S9jKq0ky06ypzkqZPyS1cZb/AFmi3Pl1c/Fbi5urF4qieQM5/kRyExPxaOCeVvqX8fV/EmuPTXL8pmmIvn+Tddb5Pkcn80C3v6jS8iB8eq5gY4oPJ5J+9UMFbtPk/wAsHHfLzPD1mTkOXke3AccQzVRHJ1vjeVnkIZ4ODn+RN5y8UcfNJJV0pTNkaOKP40ur5f5AYOO07VPBFRyS18DllYPi8NnLVMcW9UxxHHWzn5Oa/kUcJw/I5Z7c3FMRb04q2FL1rjpfyDV8Ly0lPFH8mg+Qwspds9lF3TycjHMdT5MXqcn5BZNBMPVeTj7V1OXhiZc/n0GR8j+YXHk/Zens7njjZGMT2EiWZozk445IAuehnFPQ95+KUQPjphuv29m98Xak2V9OmVTqZLk6pkQn2dKANoE5PL1n2anSj+bwrVLi/as6rWaNaqakkDqDouiZDJrtIhDVUZ1OrjpGiJOpvW68n6Uzga9XSoKUG+oejJbsPT2TYVi/tAlDgH5jP44x2XZooF0aoPaNO5axvHeiXsG8pNGnQ987aOqQAou6FR6o96amc34mRJI7qvwxs7EjOh2H4DRJ6yACapQ66vzqSudUdDPb648bFCcUjPpOx3NE6we3uVS+lS77BOlQnd7LA3rrsDALnGXsao67c6djebCtorTslMqTt7UoolBI5f2knFPx/qFYUPmVX0dFaN52dlDbMtr9j2K7aqijeyzRkyyqtJW80vg68ca3XogTvko/Sp8HJfqDX9gxCjrhWtGXoo0K0ouuq0bkrA7GI9hzr1RP2UJ8AWnsCnaQyjc7zjkZ00FOxDQEi160bMfZVEo1LrsS9vfD16gHbwSllA6pkySNHgmFEzvDXlYebc0790SoM7ponbKUeb2aQzRVFZVYOhw32RJD3NLLnZBMRRMtdkyT5h9XSa3rHWwXetjS0aP+8NaoHShhO1U3vxv1lK+mxlJ8fJBkdeqa0RJLS9kOrTukJNngDO33rvBdLh7WXRMrjW1c46XeIsmpTsziUaElpKx11x/fB7IGgkx/tp7LLWT9rQTWHu9B93QpWs8dmbDc4hrWBv06u1bnr9xrqI8cnWqWlEKol3kU+CbqprCjoZyT9vC//jWEvURp06bDQzrSvHOppSXc4j4NzLWxl7NZUJ+XVqaO6Oq5WdyCHWsKVF7ddaAmnczNRSCTJGEllOXG/qXJ1N2/XRFNT3SyeOU575OSX+FlqeqUxRdNTQpxBQxVwy9R5GgEj6ugePk7LP6kvaqGLHhNtMyhx2S6yuV2mcaTPtw9Wjjp9tur8cuvr0KhZBDT4zfpNeRNLT/7ETMifnPRAVM8jfUrlCStnLRydWd8dSpKc03ny+S1QmeRgwh69sOPfMd/4e/EQRP8PDEUcTNVBfFHNE08HHHDLMF0UHEzc8nJrg44jtT/AOU4OX+Nvhm//X5Jhv55fyTiY5YOTu/L+W/J57q+DiY4/Y5L4+OnEfkfI49nHyGji5Z2tX/7BwS1Hxjj+Twclr8OOCuxFF34cvJFMnyJGvo/J5BK5JieSe+c0B/HXHERfK7jja5q1vkldvM3INVapPFIun5W3Q9YuXfFxSinBWpqMinVJzzU8VRlcZLRHFF1VWzF9dpByCc3yuROFOPg+Q3qeH5HB0+VPJyItTU1x75O7ff+XYUS9mOG+zSVBxjGuPkUq/4eDlir5uUefvxt9qZviK7058b5HHx3VchXHXC6eLirVcnLMcPM0cPM3rTL/Mp5MeCVZJBp94lfW7Il3HJfJtwkmZEgmex28ZKmeO+7yQVzKX8YmPCjjOs1X/xvt8LnL4Ycbo5EeWy6U9uxAkGR5+IOpdF8zWcbP8e6jhqNarlevdn5fHfjfNBXixTsAreHCdu2NSLTxcJruXOpDDRI5Eno8/F31DsierfMHEUaa+xx7Ccue7pJmeEzvRdYH7l6OPeRSmIQmuUGvB7puKaVypdhgJKtP/GZNSbs29hmyhB25KVTuVdJ3apl27TCdS7N66nmTPat5bXXYStdmPP0ep1KlmVICqHH660z+7QArHzWXsPO261nV2j1XzGRdDPlVmnZWPJXgTvXsaa2oM7bnXpFfo1Lr1rrOmQcJN41/i1tdErS41unD9Qie31bVJnOxM+XRRsH7Cux3gi7w/EOpkO9rb6ZvsazqaXE+g4p44L22VtnWDoN8VBTtpXQmvDrrwmd0j18azZoxddqxpSlmRrZUiNYz/8AIMqkNZQ1RppqnHfUzeqDGRnWIyFJK1oRg3ncr6vbU0Z17aqpkimSttYDoB8PREwNjsNyGO63ISdRJlXSv29JBRrSi6H1fL0DW3YeKk6reAs7U004h4hTqig6yKD1dE9q2qi5ctSoT/8APTK1Jol7azqezn7flC+EgbcDTtqUpAn6m2ez7NEy7j0dm13i9qcNUu/VZxENrv0z9KMVXSngYf8A7Tt27EnZhuhSaeuH/WIfmadYT1TdVv3CfWlDrvAWNYSTus1pcjTvaqAEi4M9aM6nXecrr8XtCB6Gf8kA+2gft2xpNB17T1zQTrA1qV0flVXbZ1AcJ8aGjqbNCb6C5P1XE2Zp26JdTTKVOXAohSZNAdhr8Qfqa1qgwGuQyg36lMllP1caBMQ82vvVo9BXtuc7Mla6C6ejK9ZTRGRuVGZuZO8SAgjNGtINZy7rlmCIRBj+2Fa2q6dtb02u5kynwrK9rtjX450GmsiBXZxDLJ0Os6/idClJKBs7aLdE4LG6Tf41L7SSdHZLX7PXivL7bHLNhnHTEm2UruN1KjOqnWcayEVcu+gyxxvX7VrUXZfXLlqaTiEp3/ZNzqa21Z264cR1TOWUmdbZd5X1kt6J11SGnHjrkjx4lgC6Ilo03QsyxPd5TUfyDbYpxTVWU3YWFGqrb8l38dT41a4unJ4rCQ6R/j7VMvJw1xcvZiWp71HG9qTi4/tKtCVk8Vfw9mOXjuCnnS77My/x1Z8Wbie3JyvHWoY/m17NdeSVnhN9zg5ALuflc138YTl4+W2WuCLmSMvgInbfMRJXH04upY8P8tBXB8LhnmKqOGOPzj6PXx+Pc9qjg3M3vqvDLi1k7d5CRXQ+TPYJeOEhpnbRJcnFq84+XXFVHLW+Fo0zEg8J50rjP4mTg5bPkfwpHJyzbfDwSSpy8ZXWOSvjsQMzXJx/2pOHi1x8vEXVXDyXyS8pI9avDkJmcbi5rbMyjXLMUTMHFycHCTSQ6GuUjnjq8/8AFzI3Ry3V0VEsEHM11DjL5Uk4+G/5ReIKO6W1e8ti5YY1MuorU7qkU1VbCT5Tbxbn4tclHTl5qP4+qIW089yI5xTPH7xtdoKKl4+2+Ll6NOHyJJNVMczVl8WgQ5ajlKOLneSWpJKGLPhkU2Vx/wAn1SJ460t3OhOVa1kwVXcU6iOrgw9nqTqq2FlUS8ky8gqQyD1Q846b9eaVrrP8eoJOXegzewoZ7O2I+rOXM9jbx/q8fHDu8Y+vUgEmjk6zKDGzY11gcXWgiimpLCCawEd5Ausmd1SkJJjLVE4a8Fn1kdS9caUawVjtnhRR+lYz7vJOs7xPr2ff3Ov2cpOvs071Q9c82KUBvClrDSM4yGzLjTKVrZsp7OG3StIzt014I7F9NEzP6VU+aF7OdBKw3Odd15ofHrirPYJ92I68n7dVae7WbJ0h+Yg+hX2NHoa8802TsLpZdFLOmEXyw3pE6uTOgMPFvFfMNebTY6NdTAJlUew5sJTI1L7bt0RuR2yM6a41ps4nrTNf0OuItaGk1trsafG95Vfbqkj1zrq3aBBtQrSyea7ooXHYKyD7JjvU4J20J1VSd5MnVWtmdlp3Av71rXXKfABdbwCh3oRM/JBNa1idUrEXzBA2lfssH2TORD3JDqVWibdiFayTdFPvakBjeV6mGitt+o52Nu3RrKT8FADJ1Ka2m5SgkQk7dsUEylamWp+ojQumndZKtK77VrEn9bNTkiBKKUp5KJvtS4Dp31OuWhKK6DPNZr6uItbV9MNi6LT9a0dsHK0uyqJo2/ikLrWP7rH+2832d47HeJ9dZLt9e3beUmb2JhJ0nZrsq7qkYk7Dm1redQ0v/HeD9vKlITInqMlbQcQJyJ89BaTPDZiAu/61rHWVejQ78cR/wo2DyfshyHWvBN7wdPrP2aJlOwM+KxW/Dzesuf8AC6ZIJE69Q4vv2Jgmqzhu65uSV1oMUK1lpWwJCdZUlS7Ql6ZzT9gB6umNVOIELnG620/hondBjI06qQrYTM62wJtIv9HZuXm79TrxcVcjLVR1uZXiZ8muJrzOrrqlwJDx1I1GNjxoxUzQVcR1M/j63LLxPtMcejWXOqZxmmTUTbLtl0uRRMi8tBPUKCink4yrmsY7BWXE9ZnBJ8L5UhB44p7VAU+uh6q1/HcYT01nGzHH1WTlRWCSKxpu+mcUtzdMRPbvneN+8cRKM1Jc6zhi4rvnbtzMZFRMUNk1IjxkRUEc1TM8Zc8e5s4OB7NZz8WqO164xt+T35CJi9cFTNvH/JwRfD/7F8FP8nNyxXKWXRQScnwzh+I3nwa5j41XXpTJwcXHfGTVP8fNUHxmKCs5JGXUh0JCiDq9GRRrrxpbyRUjNVEU0vyOvIRNcsTyxCc0vWTqhMnMcgSMltVQXf8AJM0WWg8vGxZvkmXh7HPwRHMcp8ZLnsxQcNTj8jl5JYqea+OWE5Zu+2c9MUEtUTIfwagnjOC4mXL4mF7HGzzM58bii4+/F8eOLllj5vyO1fwx2kolj5MxyOuOWhs7k0QpuPOCrOrnHyRycEVHF8gqJpuk4t8dfJ5fkVUnx+Xn4Ei+O2pbwkd5Ffdg5OSInvfN8yerM8HP1Ezl5rqzfP8AItroPJd/c4Pks/JmbOaNfyYpyQ2TcVuseDeleNnhamCN9VePtrPi8vHFEZw7p97JsYqf4+2E/wDJKLUeTj7cgHGTE6Ko6Gr5u86G3ThyoIlPlPbrydmanoJ/Nod8Fdp2XC1NZ3J5CC5KFf4z+xMdHq8QFFOutVVNDOmaK8DbyJhJAmMr6/1/OvfjReIUM61PJ4vbjR3r6s+36euwOo4h5WManP18129UKEwdhonT4CetKTjQgIuvJpRp86mnXgh9nfU7aWvsmMunJUDJFWsqnsaArSM6pMJmaUZ1vSJQJOnRQC1gFKjCSYSkbZvexFVcYWt53R9a251KTak+Yj+nvWhgOm86jWWbqQd68PrrTopcZ0GTS15yLsSdqjZRJJJ19b0ao866x3sl1s0NeM41+AaZ29g0rTVaxnqDmlUSd1inYT+quNDQYkqicfpnosp9naV5WgU7PX/6K167e2/BV6412XTR4ZKj7FjS5/8AuPq6zboHqmnJe41kCUueo6pO+EPZcZ1XYaexWTqq1jALIHaWU0/jPcTJBUfICTZvGX3RuaDDZRWckilGk8X/APU6qfYMV2Ga+qAh6nah2Tr3GexjPaXNaAXVGsfzJde4v1Kw9AJr6u198TfhFfXWVI1rK3SmG2dZ1Z2imppRVwA1ruFaJlJ2GylzX5rqGMlVp6mhHx9FNYrsx1U7eu2V6utBo/QWvWRd5c9vqgzLrWhFSq7YKJj+dsETCih0B+rWtzhR/pQb3VblwoJ7INyXgq7z9cfzrjQCZI6DLkZ06ZlAXzZPb9U3rHw7Y6dOUnpmupOfVFWUAOtAaH3WMqrjQ/t175UpPYFK0s6d4rveaZlDi12oWiXrijIj7rQFSyz9aNHu0NTXkjliK4fVcbYlpKExTatM1XY59m8ikocNMhkkhrKfsabiJaaoZLCnQYz4pNU+XS9VZk6i32oJy5YACTXancShMa9zo24R9ts8cXTtkr65fCTq8P8AA2djFWOzKtNHjTsGeQyrYltL7x3y53LjJ0kSaqicSuuiSyClirrsE74uzMbplePamcnGm6I4pOLs3K9QeOJnbfxOPlgt4uaZqoJ5YbvULM1ZxzU0B2jt1eSYkKwZr+trM0jX/wDDlREhPbOeiZGankqZ11rkZl/inrOuXgHjsz41XHFRfP8AIn+Cu3LXJzyznw7ieOIfk2z8o5M4K/hhp5ovkqrn4vxC/it8nwOCJ5FPm8XJfARBN9TtGuzNHFtnL4hpuvj808ZU3TFSIygJe+qEUfw6eWRnby1MkSRcfIKua4onmmpKKspvvPNJx8fLfL8qR5KbuZnp96RCvR4IOMD5PFNcvHfLXMXJPHy8d1e3t/D1eSZbmqOOIjhJqvjwujl4f46oGFtlnha6zhZJxSRzzXKAhVVlz05ql4uFqAx5TiupXm4SiZ5JOR75x/HOTmmC+J4pUAVo4+JRZ+Nw281S3xvD2mTkqK43L+c9KiuDl/SCf5uObqOMgAICiQidzR86EncMjIYcY09Hisl1zTbyl5FT0pLHt3I5mTz43yOu4U7nXOpxAYzu9YQTTU/+rYd3ik46KOJOSfef5kMsZwSMC1PWNBcVbEdd/wBW1vrjy9Z1kHba3NXfbJmm9Z9j64guTTImNtevBLIpXJB5jXe5yl1rO509/tIl1MIly7naqmhYRya+vbCinClAfAyVJ9PKN/2Wm9zoHypzRT2JFkQpkWnfXR4PuzrpX1AkHO29Gd1PKrwxNmyqJk3FD7jSUbUXb2/3E+2sX3NvY3VDO8nXXap1dGqPSWXShRk+KOypUqdTtJWhKA1iHlBIoOgEA6rWfk7JofrlS7VH80uzLgqSlVnTsZ3jXnXDS4733CtzpHrTsd+KrqUCPM6n+M704y+7dkrnUZ9AAWfRpK7e5eu+dVFxGjAAN9hzsppnTtxllU09ewVudYgJQ6ZNb0GIgmSG0ZN1rBA6tUbBiXfqp9sNtawr7JhIy7T6yZCFMHZ3glVoEdIV9fNaMK+tGTej1CfH3SABWA9a2VqzSnbB2qSmqcn89fxxBnwrXuK7xDZq3QA07XK3+lqUUck9vTfRDG3vNF19dDWp0xRRrGt1o3p0+j6UfmIJloIY2EuNP5kn7i/8s7b1ILOflUY631SuuxK83lL10dqDQKeiDTOe6kwfHYf8h8ByprS5DbRtCtD4u8ikpjCUxoEwsHWMmjA/ZxXwLk1oNKir1ZZ8N5X1nsUsz1d/5kaJ0NjoxO2s8NOJo22pAAO9MGiU7HbE2mMsnbOgLk1v1Z3vE2uB7h9N60D2z1sXsHq66oI6NB5vPwUKddsFd1mtuOq3nV7bV7UmcsrK5NLpX7PvizkU/wAjhK+r9VTjg6OJp7HaUFPI3lyMplXolxl6hj7uc5NobmZ7eWfpnU7bwpuaUlI1mgorOxN9g5HbnPEc/FUXE8ccc8cTIjefyC9CRO1FAmiJUHOu4RlKmdkI+3Ts1pJQ0zBSzqROIGTDrKGNdjs/giTvWM9oZwg7aDfZkqnchExywzRBE9cQnZjDO3OKhp32V0T5OnzTqt6cK1tx20GVQmywni0RLVSZyfHJ5drJ/GycHCbpr+LjK0zHHHgyVq8g168tBGg5uvyTV8vWaTg+RK8lcnBU9aoZ7vR/iJTd2RLa8oE9r54jmZOTmi5qXnpGYqKP4rpOU4eRuv8A2P5uaZy55OKe5NHNOsOK5NPCk8xQ01LnPxTT24o4kG6eNNXhc2eckX/N4tQ/Xirla7UVFSVl8rNzHGy8nC8vL8urJmZjrw/FuJ5ZiONoHk4+LZxTyfIr7Rw9OSNNJySLR2Ou+o40Eg8tvZ3y/Hg4X+OqeLsk75Imub45Ex2Cqs94mhd/Jmv5D+KJJ+TVPyuSJe3H8TjOXrA/HJdzC/x1d3f/ALD1h+PzNIvFutF2ROjim6lp+Fx74Lp4vjpE1fL8WJrtJxxxw2FVpuZa5KqmOPj76fmcI7Th4GOt58R4+Phnt8z5HKfIY4/h/I5L2XIs7LlOKkC/45nIl47G+Sm5ZPkxF62zXHfoHMEM8NTzRGFE85uJ2tZU9zw45Bl4uk8nZdsylyddL8jpL1Ljv2I+VxhvDnq9mO4TT8gmd5/OdzO0BKtBLB1JHcRqWl2DnM9ZKODkNe3Y1sPkUunlopU+MH8ZN9ihnK31dmpk2wXyVRLX+x2q8SlN9Tt0ACtsSdXHaS5XJ/Xc1bPbFV2xt9yftO8iXr6CDr/jp27nNNPbPf8AZUwRpxjrK4+SIaPUd+42m9zXWgRKpMNlYUD728KdaXK32azz9yjf1d7wlK2IWGz6rtXWmNkueIgamdlblMlOoGnso4k6TO1adEu947AUkKz8FzsEY+GwPp1yh8yZWdtL1MEI0IaMf2ayUdGH9nCnRua2+1vq9bXqAIgHTcpnHKm3TFINeG1dCMunXulWh8B3VZFBOsrTZj7Ow+upxe0rhuY8TdBgdRG429gpJ2j3OzRtKWumsUfCDfoSbHEevZ7dCdxrvnVaNKhoNmnBdGL5kzXUxrTnlGl8rYm5KFFd9TqbfF1MvVQkJJB1tOz12RQVt1tdV5AE0bdWdqcEdi7QTsID2N7XSLlzvWiWgrOu5KZOtOHn7WijT+bH/cQ6oItOiihwPtjR165FNGs2yCPrvAdK7lBKGjQ7PqtFAjSVrGvPGtphRQGNanrjTpE/PROnuvN5v3a7ZEJGd5+dtOyjWxDQuzYHbWe63mkoMZe6iJWEq6x1slVqnaaXcSE1jQAYL2NaSvexZ5vuCF9gFp67O3207K/e3pL+05/hhS+YS+Lv7OClOLtTD38ifu4Ua97b2ZD9XGg9xpIoPPq4JrJQd40dkw6hvKWoEqgDGVFz/l5E6O5e3qzZsN06NmkAyC9asQnWWbqR6mgNBQZufdlnbVNaSTltmkUpKkmiZVqkmkiqTZW4RyDtLpoAk2RKpb/HIQkzQlManFRdFaMZJfUCpwpoQd71k0jOdhPKXxSFko5Fq+ueAStfUUHwzlaiTIqK63Fx9mhrrQPHTNGr5Oo0InJsp27wsaHCV+2QrROATQYKuiqNOcHyHm5uSAp7K0UuiJ/c5+khTHEmqzhu6mtzD9muQQm0GV6lNUuc1LTs5ye9HyPkXejg4pv5HwPPj/HOLk6jPV7HLXWSGJjlRb6oVVzdXUhZwe8hR8iK5COIj4rHLw/Fi5LeX47HyN8fLVTQ18auOuXlo545b41j4nFyVDTcsz0JhUmuVejIcX8kmc8xs38Tl4+W6bueSOOoePmunTxfyyJZ8ciaZZ5Gpm44J53scvx64+GnJ5alarhieaM4ZZpiWSaNhM+1N9uR2O59OMqdnJLINHdsS+Mqm6iSprRB044HkODj6ZfPb5PDRXrXHFctVnKwcsyfG46flTnPz8vE8kXwsXFNxxTEmn7VpOIa3PJ8em6uonkr6cfHf8c9cfmycPXOLvcmuUoSTmpJ0HE9O/EbjS3c/wASMP0V+Xy9IOOeLl6h3+LyxRTEXXFX2aL4UOCdS2vEUC23Abunk5d5YXJC8TFexTMkVyuuQl4/kTMVOcVRR5yUTQG7sqc4qvj1N3dVJOXyMDuqua2cS3UlccOys6nVpaGnrHHd8i4xYm5f1e71VnnK1OUjOnkp7ou19OQjxLJDKqKmbwrvZrj5KaTAWWXmLoJImtaeGf495CdWhXtrIoN6qmTtXY64a649VRkOm8qdV2wl/WJqd7X7GqNIpKV1xTzbt/OvgqGJp2XWjz8nA1Wkl2mM/ZMR7NBT1Bdy7NhWmpPzBdoVXWcDtWy9dga3MmkCRIXqq+7Tf+ZWmPIrddcEDS0KUaX7JQC4KqtDK7m+y40dfN+4CnrKCpRQYU6rYhjKPZdac0eI2duq6N7U6ds4z6qVPvZaeuiDRpd78V6m9b8wV+uAykrvfbKqa1vWzwDrjK9snzXYn7Lh5RpHsuSIGdTs72yGGqnY+Y781VESiS+meaAVXTI3XrorYAUZdVLOnQYf5sCUV+v6oypr6zQS/Uev1cmmRlZa05sKTNDrP/w0s4j6BtNLv2ZXdmtfrlyNdcJR0FdaMVXTNfasqgdppsrPNupGqXKj0R+ujNLXgukx0UAz1TSBMoex9l+pWEqNJufcP1o67dAKJjxajwep5v3Kj0rFCVSWXJ3tXT2RZOw5W25Bll7Hsm2UUMa7LQLRNIP7i9TR7rYmgTb5Oemw/TT1etVjOw2SroP+1odaKCmFo/qAJ6CV2zWq2/hnVrbnVK8ZPDE+2CO5yIiFiJ2iYx1rxtIwlo9HWUjesJWXCXrtENYqSGGq2FbNA1sTAOsuen41+Y66qTSalbTm65FA9WjW8a1K40b2ELTeUHXsU7ko6/Vl46ZBUOujjrYh2+u1+479qGs3r7Y6eN3FNU5VV1yaf4zCfqZyB/GpOyfdFGm4GZcvZ5kmq3lMzWn2a0XN3NScQ8cBTttcBqdpLvq9Da4BVdR1NaxlbFXXiy1YHX6u2doPvZMgB8Ib++WPC1RtqhxovSE9q6sz65yrckscccDMyUGoblqhxEN5DuplsFbF7fhAUbNPGZFhbqa3RWRJ+tz12HBxRHNy8jW7pCe/8wOtNZypQDxW1LolAnLsOZM5e/UUk67OSulyt1PJXQeDn+N8kvjYiS9cBPFwxMTbzcnZ8OBtjlGjjx4+k9Y5IN+8VLpq+IaKOL4sxUw/J4CpDEqOM18aiYaeSB3nF8Di4uarxsQ45qDjgGpNoMNck7vkub6jyv8AEQkNG+Sv/H3HL/Jw8/BdSVZBUkUTMNUduvIXijVdZb4uQCuRqSDl+P35Ks+JHJwURfHJerm5JVzl4S5mGQ0K/XruaJmh5pK9Y+ME7eeWJqMiInhIOSGWay+Mui84K4eaWZ4oDkqji4iLbebiXnpz/wAfxcnDZyWV/Iazm+FFSXxtR20fJ5COMgEnjXG4qWLKfj1ERw/HvnkuuT4VRysnxuL5HWZbo5O0Fzb8eprjm55ZBkONMeU3U0crdGXxcPLwhXBwcfbvXxLLanLtvi7nB8tbZeKpgmcf6m/k8RyinLBHLMs1TbTFJwhm+NhkuOZ5KvI4qrk7pVRyUhK8MjwVETU4sfysBxXPZzn4u1eEG9MRBzGR+bJ4nqDzR00vFRMjUcs32oJOvtJHAjwcX27l1ZFdYnV97d8stDxs8LWdapnU81NE5xcsTqjhq7lpJ7ap5KPETdLhPUZeKq6g9WjdRXV7Y8ofV6vumWaHNsyIVqNpQzNYUdnPJPShpprWjOxPmBuferox/wA1VJoGtJt37p20GaWsUB0y1qTqH2SdGl0gjP4vJTO6BUEbF2/vVE3pZn12ukxeo62gGSK7xBPCT9LBN4SGzCU3g/8AIgBNWFSuQHXxkJAJ0AV4rjr0WQnsB+Y07EBaRA67NPYcf8ouSgM0MoFEm8pOvvVJzf2HA67pD6m2UPJft6g07K26WRneE+pmhXXZGh8ZBT8AEp2v1TCUpMaOplz5rAJTSG9oPYzldz1xrrS5v83OjWg07CR2YfZBpS/bkpRN7wpHzxneV+GgWTF0byqCd4aKHGk/TXm1eo4UMq+XrEKN5s8lJScqX+TsbT7OmqcNLTjRS6dB66l8X7G2vN4QLNZ2W6BrzPRdOtZpF0IptkKHCQ3pkGdshLOPm5PZnJncm00dkPDGjwzQT2Adhl6JAJe2mXs4rso2E7X9BdlCS7Hd0tS5Hsq6QcN6XBOoZ1D0VJA7f5iPYS0Fw2SYKjspTWFGnTQZofFDL2Hku5cXWsBNqAUhFh+n2px8rxCTYG6TKH6p75opmd5o7YKJOG2Rwn7eo9jH6yYPmVWpTJd6MdIaZAdNPVAOs9g6nmAq4SPaRPtI9XeI1ultTWXModWvq72X22xucdTKrtUyJGdJJPHQXXWNzFDPt2ASm1Edj5K7ayBRmhJWWp3IYvUZer7rSTlS9Ouci1LQ7DscpqXQ1Rta0GFaaol3G1SidOwdtFcLmqKlCHvtR3O+TaCO9FG3rpd/r09NTIu0roGuWi5dsJWRDI6TtLi9eNV35OVGnaTq+xPeuepU/wDoRm2ppwaI1jIyKD2TI3V6CJmhzodzIr+22grT1ArIEKQe1NpybnLmapM4+JF3YTHhJcdkR4jtx0u+3Kly1nHw0cvnPN1xkcZ8c5roaqI+jx/M4UuDi5uQ4evIwT9kqagttm6NzULTgBLIx2603p4pDkm3rWcHHPFsCtVyTxnEVx5Mly08nMz1UYqmsagnrl7DWXF80uVNzJGTyIgcsVflTE1fZark2JwR2MOKI4//AJ8s3MlcczcWWfwFUU2JRTCTXUtt5AamurqYrofy8ipOvkw8vxGZ+PxXw8ExyRy9ZYOUSu9Ms3VZ2NGpCuKjOPfFy1ZHyLr5LCVTNOc9M0deDl/k4wriNcjuOXjONl/8h04+aWDlnllbauamjhhaas4eKp7cnxeWP40ebkioQ7zxPbI+bx8qB2XhO3FUXqsrluuRg5eA59s2PDJPJ8XlGqlmm67EcZxiZZX8K38b4/NQ2RPNxSzU8txxbbpHoRHHzz1eTpAy8HyZimOTioqtTfFdLRz3fHz0TFamKba7Oud5Hjpn4XDzcfyjlq/kXM6Dm3LL2g5K6kres4omeHWN6HD5HJVO/wCQoYOPljgmv5O7PJOjk/l+zO43rTcuiSpZOSOTgnU9rT2Ju6oeT4xAXXxPjhyCV9eshK71WpTOOiXTbLq3iopTFZ9J99y5aloijRuoaQyZZlXSzOiAglmSa3ibXZorrhukcqTr1z/Oo0CGJijWaGlx/tojbbL+GKb8lBkTekwHesNE6NOlWezvBZdrJWsmQPFGdAa+ym9YSTrE/wC1/Urfb3X10NP23AMDisoLL4ZB+03KCkbHbaSiSobU7O8mSgME6piCKJp06Udn1TE77kZ8FA90eJt0DqOq6xdTvAHdD76ug83+4PufnVGgFwfxzf2cdqIy0sl94QyN73hb6Ya25SfgAGykfMJm57YgDhUyTtDvtujZKyOsEmkWUAwkRcaBlyw17coyBtex1Kd5/lYUFI/g632nTQ9EZPBP3YaDeISO5pmtInt52Z9yaK2Kus7JYJR1BAPxU9xHzSdl2m62aap2zQdRdHZ4lnsLOoAQZNEP+H12ZRRQjLWhlQDNCbbAMae2sEDa6TOwTt7/AGAaSjBPNFJWm99fKlZ8NgbdnmAD1x37SyrjJ1xpftivUciW4dgunJkEF0e5513gf8sHZtZNCKqY6J2T/UQ21609Xfb8yh/Jd1OqP+IVvsmL1/UHRlztKyK1DYoz6FzJsn931Z8a2T4CHVAK2mit4pvQebyfxzR29PGtUC6fZpAGTZJs2srTjOgM0tFFzv0JP7ZXr4oOw2CNAUr5ryk7Ep+6wv3o3N9QWVrxpExfr7MS60zGmMJLtmh0odkr2fP2p0lGz+bbf/Z7Tky9nbJJtoKHLkmb1F1Ujk209QqWeqAgEQ09ciP7SxxEwJNyPV8b8mtTsEJ7NBNM52e3lSm9RXZJSizRM+CWdfDlrckA9pQ7Bk/WwzxVL09pZvVYymqSp27AaU32redUAHZrCt9gJEdwktKzNE6+3bIpKVZe0bpaokL09cBneno6jCT+IWPq13p7SUVrZGX8frBxyyRU03ZbJk0cgLz8YVNnH3KquSv4+TlnQcUc9WfNvmqZnhim4nsHeVHiaRxD6uRKulhqQKnkqePpXEMCyHjkcRL7zd34+uMmyeOMuIqouuSSOIJrdO8NVq649tbabeUzhhiqp4+10znNx/yUSrZRI2UyTw8l9ftua60EDpy5oRzn49bo40ieOVDRvkB4XtyKcXVWpHL69Z0VbbuxJKyoKnOQ6zVnxuUiXuyTXeebhvo0PHc81chwfJ5aj/6TycdV9eLmeK92fMDkZHlut1x/M+DyccShxDWq+N8euva+0SY0VwzZHyL4gofnKEJJzvd4vh/x8ovJyv8AExHCLLERxqzyKGqY5+LlrmjleGX+SdXxv8YS8tpUPFPISNQEJOdeNNPJI8XUUqNMVPCKfL41+8Px7uO5wnPw8vnFyjLnPwcdXNEcYSjc0q4V21L9eNMlnke6RM1VYcTyZxR15eqRJOn5PWF3FdOJkaYsoZbobgJvY0caBxcatFX8eo5C44riw18puKNcUzXrXBWyuN42uIHilJNBugyZ+6Y8RV7wgrYMLSkTEz1xKs1nWopo4r+otTquxFKGyrKZyKATJ327IaxXDW94b7IG9pgAKv5vGao8TBBVdfuTHVcf6yFSTowlqvJl3QAF4h2db0EpvsuJrSs+7BRNmu2sfXTB9fXZW8Hdbw0OzxXAQQZHYxv8R7KLp04T9cRa2gUZUf4q/UDzU46K8lQTOrtrKjenL1oxk7byBFyqepqdSYC9tE/7gnZynUu5r66xFVzsa7ZvW9ijvEEkwdjspRyN0dklexhIT4gjtn67ypJUI9d4BT6Sb7JM+1h/UTfrjJ3cI+1UsU+qM6AnwxP7TlMyiMNJtBDH2/DT9cPHtnjINT2DSMIZp7Yp5h6Z11ugNFdu2z0F9yG2qE0SSzIOnS+4yg1g/wCZfj5vzwSfMUZZzSxvD2VyqewlhU7yA1gnYEnSuNJWikK2OiRL9kcKM2DoZdBlmtb+rOxAqZy5n0ep44y1rXsgP79sHZ6gG8djvOp7T51TDVQdhZ1lb0hMkpOP3QB/cZZN4SOgVVMrVCKpOiaf6v8AWUZT3P77zfXxK7OXqTrjr2Vo6mp9K2LlT2tcqd1vNngv2oMmvzV6qQypa0JImsTtOddhskdaQ/MJ/wAeyvbENG4oXrhr9Dw3i7ARQQFa1hXmwCd5VC7wo7GJqWij6mAn7dbZSK/BdbodqOTX5VVQ2BI9zLVkxsd6me29u55GTi2w76lLtnb2yPkw8/8AEB/uTLIOCUukDkF5NJiPSsg1KvIhJjX1B5eu3OpPHWcUOm2Y7JOE9ZDDTG2RsEqkfewcmsPoIAE+OiDYHf2/KUKEYz3umRujWRTNdsYOrWMgCP21RG+45Uv4TRL1eSks1PGW7Suz6x+SdJZ8Ejj6tO3RyCePHOna0m069+PeTCTsapkc2lGyjzD/AIuXpGsN7nK0XNA+C1qneXInXGyEpKolk5JoNsK0lHjE5Y20J3/ocUtNQx8boNPJxPQJNx0WaThZYp7BlV1UyEUrI0SiUB1w5Q0Ma+wVHX85JNumDtsZGXdbrjUkSEQeo51s+2cd2tOVzHDzM5DAFHPym56dmt7YNJkyVXXK4gqYHaAVFRwoXP8ALJsmf5CDl1MsTdN8csctEBsvfC3VG7KIv5F/K5fj8tV2EeOypM5IOpDXFHEbzjitMHyL5UnhOXj42BeXhOY+vFMTJHHzlyRVHFR9w5ag65HzOfQ1FR8jmbsoqK44PjNdavi+MHIDy8ETfGnVfl1DHHzzw0KPWKn5TzXzds+P8jj4OBqeC75K7UTJ2M+TcRDT8SmuXlrOL4/JVdzl+MEXri4ieCROPVC1xRU7y5qI0xU3PY7xKTyfNkrnmIa/i33Ki4uybir6Txw1I5ybvQtLoH48VLGRU9a3x1t8fj/yUgzUcKz8fS1vtKkvNMWMt8dRc1gQhrlro9TsfyoT8e+ROQiCJMs3tyJ+7rpdNScfCijPCR9lNgMyAAmqMiX9GXpsJJBzZ2Qo90RO5ypNmmQVBmgWKHedutNZI0Ngges6Fx9oBA9w3vN+uMm9Z6SuD1nqLvw6nop5IRQ1WFH61prDynR4tIj9s7JrF/1ufqBKrrGQdKF7cD3eR7JidZ9H7AtZW9GOhzfhlH2HP3U5s7dsR6mCE6ddjN7fKdT5513jRII6/WPBwrcu+y6xgrzAE829s+z5gLpw7a65smTAF3nZ9nJetINfi0unfV7dUlyTftdTfmkdkO13219s2VoWdyYGx3csUammUlUK3lWyYbfGK6+ZSyhjrftA/UDRvCdKOtusE0uINCsrWg+oYaciXap+9MuQo2P2xd/ibRygRwFrWbTF1rAWvdHUkHVYBT2y/Y7E6BrDbPp11rELdiJPjLRk1v101+b/AMy9FiNAUYPnkibw/tgf/TeX2/ldIaHOQaAJlK0umtNz52x3yTvECTCnbWbFAQ0YPVREVx9NYIIZe952GQx1vQaNuOhx+waadZJEwuC7Emvszj7PTCdBpoFMf3Gn/AJNNUI5EtGEk00NKA+eTiFO8Z2hk7J6s+7cpZ2m5p8T7ea82h/pOqyJ61SC9UzuCOMkypNaNpRrY7QxV/KARKraYUfhsFcK3NL4nYA2uFCmg26e2zeaE9kWlUKDdKawXqUoElBXWqcaK12a3TpeoSxA1NG1tqUOrv0n2Ke7q6Heop31BFzi31oY4OPvViOiRrwnO251lyDOnSt5NF/bLfqmAWy0z2sDllXLkrWp3Mk5y8PcZHliZJCth1B7CKp2wgkMKD3Cjr4yszut+mdTRpgh6503e8mTrONBQjbt0Iy7NSdTwAOyVpsGUwPqK1pzbUlYA0i/hrs0byK1PtBW8KOoFh2Q45C6nLoPTiur9xfuKX1nGh5BO5029g1u0pEqQkStbyBOOqrmgsQ/njhlm/m/MI+LPJw/E5eT5HxTmeKBJ3y8gzUHHN8XLLfBQzsunfY5ZLkA5K9xtmQeKpox4oabJ4pHqv1sx0M46klCyZKWvRy2GUdyPVupJoeOgiYLr/6gGkUeWSa3xMVWnl+PxvM1RwRZW4hlz4xK0vNHa6SrJ4yDkqepld64WuNq347/ACcnMTOni5D+YtO78pnHkddDvfJIcjZLW4vVuuWSof5Lkrj3nHyITK0diC4L5qQnr2oaWKkIiuAqpn/24JPk/HOCdr8rm+R93grtou/j9eH04q/lZPi/GOWe2R//AAkLfxfkcvJLeM9dMX8Zt47OT4vHGuUrlnq51ioO3yuHjr4tcJCfG4uhwcp8jjCCaNdvnUTzdM+HLFmNxKb19a26zqVPkyykvLBfCxnLwvFSnyYeXjnvEWTO+WXweCSaqc+PXJPyOWb4udY6HUp0kwE0s/bWfxzfuRx9LJnsg5E64uhxhPIrd/aiY3AL2atgOJZdXFxX/wBIImgePRwiRysyb5rarqE1NyBPXeiogNNnbQO946AzvVUC0ybKq/q5VPXqFU11xqZqc7BWjq3TeCfYUn+wdWQCT+QHaDOaPzLr2Q32RxRDRSyKp+4HY7VoRM8OuiTeeFaUeqhJ12G5k1vdFY6qtjPuaTO2nrjT2mSgPcioTZo8cDW3NfXQz1NYr4YyqIaV3chOEvXQiAZ1c0C4aqnZtn0p37PtJikhOLtMfJ64y6HCewuDkB10mldhv86ebWTzGStChXmMhqs1vOuvM6hThILTUnIE56rK7TaUBol/3EKerpZNf4U3SAFaqZrDkEwde4yPizumsNddZTqupO+pWaSjZVVfovb09ezT46jSaWuyaJ9RoNO97Wh8mXCdT2x9NYa32ywaaCBFOEoWbJ3RhJ+5dXNbDbPdNP68e3YKHtxvSG9Ies9Tr13sp6g9X3GRna6Q2p13k7JleoOgp7eXWn0BlGz/AOYEGv2qew4uvxCnZSBRiJU6QK1hI0i+rOdd9dWjozX4gA4u0HWzWRtMZ80Qr9hRHXm/Qfri6r2pKl0DMkn6+s+phrKfsajbTtE3gbnNq6xp6+HsgL1AdaDWlnE0E4DSAIvio+T1J1jTJ52ZNLPRHIPttV/CH3WF6BGwdYb/AEJPw260oM9QnfhVA9caCd4/65s16frmne88DqNBio7ENKD2nYvU87Oxw0b3O13ln5jK8aIly66fURXTnHPuM9nTSTuGae0yXQpKC0mQUVRJKWqTo7n8jPrFpQO/suR2rmqAkwUpQraD/eqkAn6vLT5GMk0ZI96MqfqWswQVhJdJli0UXql1wzpNsSIFu9Z+zoqTbt81iqBhKfVibWabre0N77IArl/0clnTssDeRIpbFQmDNGPgmakn3R2xoOpjOzeB+wyBXVNI7LF6YbNYya7M09nLk6aYogrVLVlJ2UXpP8jQ7qsuHqa4oVG2dej9tK0RB2qZN4cb1oGYmZnCRlmvrHHLxjRSn8h2e7Cboi3tNp2ZbXrO0kbnRPEjh/ynJpK6vV2KSemMteBRUkgvVG4K+01L2leTiA3hXX65Yaqs4OUmRKkeOkI6VFZs5Lofj8alUPBBaYycfoREWkv+iytFE87x0TXPylcNU8lcd6TqxzTl8p/MVnJx/XuxUE1u5FmJgieGrZR0U6ePRwQtNNTfbZy08FkzTd1MH9CKWXWp+PURFduUrl/IiV1NlTuc+PV8vB1a+Izze8fx+au3WvkdOG+Ov/FkT8X71zFf04+eAJeflf4yePno5OEkj5HN/HNcnJy0vZfj8ny+RiPgy/H4uOOTm5ZlaefiOT4ryJ8OYqXh4O98e6NFfxP8WxnOKGfG5bskiY4ztjJvuc/x3ay0TyzI6sZvjCFgi4vkKn+I7VJFvbrjLTS8VfRMjW0bkUrCe0rkrM4hv2Z8m87z26pMnuEhuq5fjzZ2o474VcjkrqYg12CdfrSAiX2BEIRZJWArrS406bQZ9UaTOUvc645dOKlOzTRtQ1qaJDRXtDZqdM0iYLO101WB9XTW0MPclWtY+Gg9nwAzsLrNusa2lY7dbtd6DcyAg+4P2TD8NqqBs2Zcq7Cjs7Kak3oJJNOtmg/EqaNVRU9sJJByqf6vgIJ7rCTrggNPZqt5deE5YyzqXQuLrIquxTS72pu0xAkHs9UD8TOq3tJPdOw0Rpd5r7O6lAo669NAeP8A1hvTjI0UddVtfQwNpjtpMf6hmvq7PaNfk1pE6zjtOqyU+9fycZdOgNaxqu28N9jFNbX+20H9Si53hMzVBIzTul1rHx3grPiA+z6+0PmIf2KVUwp/i7I9p7C7d528JxWTeeA1h6mdU1rq9XCXVbjf4tY1o64/1NJ9gxoFrGhl36SGAzO11XmbVSQXblOpAkNu6dIDrtp+2xygJTJPOpUq6D9BaTzPGVHQdsfzePjvDZXoULvxvyXtrAD8dAIu9AbfrhOp9DWw6tfnV7CT9nWMh9XRpyqD3D38D3eKL4yVrbrTqVZBPrXVKNphO0cKDYUFGsDxkF1rKBrZAz6v/JxlARkifAGezaJ7C6Np7SG+vkUf6B1TP400sUhvN72rKHsCPY97BlnuzW5z09zf+YK4SFe15usZ2zkut7ZChwWdzlVqgwRnsGmndDP72a3sVDYkb16TtZ/6hZ+rctelSPVrqd+2XROtzrsOdiUStvmRXauhzgEwdn9Sa20wp21Nda65dMaQrctYUfogq4x10Nce3CWXq3/UC2tyZNV9rT7LhwzoSJJgDYy09d9dGzrjP123TIGFJ1Mvheb5PFY7K2o68VAcUkXGu23GWYQmEkCKCic8FjONQEEe1Ybqs7f6ROpUKCicZarCn3PfNansU2pLrYybRPcu0rqEn8e8JElQ0rjNn2RIoBr6/U/rtV7pm+1kvyaiOJuuK+X5FvIEk00VMHLMJRa795IU/wD5lS7uuQCwqdBxddbZOzKT2mcncu2a7acWh2XHYEtZ2ZuzmnQJHbJpqe2FJSJSDq6DWi9JLUFqDJvOj1Mman1qWtildZl4hiWSqO2s56l5DRfu8KAd8VduFHkloYT78OmOKZnefxR22V8cBcqrqeucXx5aZ5Hhnjupk8eg8XaqxN1uY4epVTXMEt1HKc/Ia5eWLrqc/MnHI/yRPUOVrnZ2c63JPFwtcIzGvZeJmZieP4/NfN8mo5OfkKiejH/s/Kp4+xx8FQRzX8jh94oTjrXxvjX/ACDlzBvfL1nlJjj+Odqt4ojj4uxtu5X5FPKsHBTfF/HhxPFLUfFULjIOoryofhVh2b5bnl94qlpK51p7Q7J2c8PLSnHxVxjdXQ3NRHXh6xnLR17Zx3uRY0msGJorEP5GC5RTALkXtJ9c/jmppBiV3yPG8ualmZxj6hl8TfGznLMVxkZfFt1x8XAxUTjWg3E9nBNmIaKdrXZIQN1W9gpUgRPZREPqM9zRcu+uckNOpoZ4yAoZGdRIbZahU1ImRPhqnS6iQ+p/GLiEmCCVilbnBSq3sfQraZ+m8sUyX/Xe6oyU/qOu28KCdZ/aTBBcJ8MXfgbfq0a/OyWTkCqIBQYzpaxSnRvxVPe2a26POus2AaaVZztvWqdJrrrYv13qhqtZE6neaTrm/NunQ5rU6z8d4O60midBrsjt7AHqyoSApt1hs0L6u3ZvWvzGjp4iaQUnCVkWtlbzqstLrRrqa1nYrwiQyB27ZJdBqTSyErgOvU3yepqhx20OVQBhO3T26vXCtPVK+qOnejsSaw/POMCkzavZHzRf+YJU55IzgkiOl1plTHyQzr1BwrzWTO3ePp4a/R1tMfqiu/AZMBKcZ/1fZzfX131NsH19R1ovfTZKada3RtpmnsV4rXpvNut4V12LP27jI1nXUun2fT7aluda070YeiZpEyQVTqE+IhjI/YIPMNym1BHNhLlGgoF3sJNLjL1BQ1pDR6O6zqDlT9Ra9TCnD9NS/wCo/bWJ9nd/2Ag32xp83X9lzylMa+xJ1SxKPUxnWsaWvPZDU0stZZt3JL/J4UVLOI9dDPV1m1fHb6BqvCkVTTK52PzNn6sgGgWd4+So6p3kXuur1OrJ66x/tvLdrhOpJOpvyq7IZ76ZFCoutepuQz3UyXP+4eIHK9w0DGtH2XZSHnGgo9ezvOpNickFXNZ1Osjcp9WYC9JR3dN5FgdXSaFoK97LQhW9GNNanKpeqAtOMkw7VZUnbnjRWMrWjjhHs2y11xrUgp2pyUra8R1nH2kKl1lSS51a3R1DTlOwM46muNcZNtnU7FVPUnTRrXVmGZ2g9deS0rQ7rDk1Juda0Bv8ZD9o7OkN6M2dBdFyuddcYOzrpZRN7Bkf7TSTsgERn3vIkBY3UjJe5z+I+JdVD2N08XHe23qIUM3PYZk2h1CGCuOU8anegN12ydlOka4qXsFbxos1hJB1OVZQEEEu76zGNT18uDqJyTUHkgrVPXrp4J1KLLSL8m+WOLtw8F/zfGmm+PUtBN1MibmfWjyhguzr/BTyUFRM1vkh1x91TfpvsmTKBtmjk8a2anlkrgqn418lRLXz55q+PyfwHHf8MHJU9d9Xivs2HHR68k6iqDi5CWDi4+pTyc9ExG+Tmm5rUcjcHYiynK5eLQPI8FrMV8LkmZ6zEcPMyXw38iSyPhvDbvllJiD4nDfWZY4lppR4mcq/qzZHLPzt1EscKHF8gpl44SZqM6QCp8aGQx4QreE2UjwvaHXNJUyHY11EqlFjrRvr44SkizP3z5LDyGclRw0haVBZExycocjURBB3nrVYUdRSaK2tES3kWVBb/GaLy+8m57aWmd1TJKNGmhl3x0u4quIrkKCVSceM7enWXbFVNKTRIFFeOq/0VpnUnItdcVNbmg1WR6m11tLZf1qT8u5ziOwRlyjvCkmlZZ3WTQJJb5rI5dX1V/cV11QDUujtt2b06CVw84+wr12WdpRmdQA0zKMbEXS00ukyd9aBPq4UJsH1c0GnEEcXrK4Pg4eG0+0+gSazz9zWknCURzf2c2Uax8DYad4jR7s04m/c0fqITvEV0VO51m0TNmnH/TNbBR8DB89oPrqH3eXJQaZVA0+4h4Y/m8fTeVITvKDrsdawTSHJ7107/qEpE412fQ1VCBJrB/zF/MmtpuzRrOzsxoeTK7OxitzvK91KulAk7e67Jn/ewd7xf3JNe5AgOKuhQ7aFE8kfddduJqsQ14GHtJnumX0akinq7p+xo+uwXdOaWhzb2Q122Omnx3OjDbTrp7lbmQw2bca27zf6JOtE061tdiO6b6LSLm3zQmqRXXYEQxROq+SJWxHEdm2tmknrOzsdvROpivZD9DW30zf1mQXqGfor74Yvuk9rwrydbExDXhvTvepNde0Ivs9Vd0GSVO4TRWsN1ox0johlVPtqwA9x119KSnDe9iS6xnrO1WpJy9soFBsQABjaAoduxHUarGTsOC1PgtLifjg6ocF/1NZNP9cqfSsNdd5SjoVIOpoN5BO0anddiQV12MZQxkr3CUnWP1MKal0T1d4T9lzrvxsepodvXF7RU4Srose7A7KlypDemEnTEEyKWUUZcozWdTrjWq1ijKqnXsGpdHYudAzoSnr7ldkbxon0qu6OFPbDl3dStH6D7pZlpMSZok87AFBWqaeusZF28uvAkartnHCrJEh5m2aVme1NN00aCu3uX1nQdUHCdzoJR1g9kVDU2VaT5EmymR3rKmmtJOgAkfXi4Y4+LpBXXeyhfCUoQpOznYuXUy+Zrui1GhT+0ziLqmtzvUcjRgJJp3OqyJ3V7qiFo5JSdkUVZjX/AMjRRv8AjZR4/Zr81sVATrovgOajt16HUNp1wkGaL3El5wfMjlaDluqma4zkWAL5eklCFce5BqeoLslump1hRonAEdaqKRKe5OaApa31nV7Z6YSxpF3AY7HSI6oDSpE/yxWzySi67y7hnozjVVTnVSmkeOat+Z8iPi8DzVxfL4Pkcc/xiWFFr31lT4aiWqFEq+lJrmoxImfsx2op+fcTHHA8O5KJ4zimg63y8Fcect8N/wAfLM8TPMcg8tzwcf8AH8bjvm4GuebipqMmJHRU3LNnFP8ANPpLEElJV05MzqV5eP8AkLjAeDdvFfBxfKqxavj78ZUwzGMoTo47H2qLNYTZOzs0VOFhDdcHyP5eT03Uq32JKDtD1s5Sadcsy6y2q3rtEUGTZNPTktpKrgptprbNwNjJnJplk4Jf4a3x8pSCyqh1GTcERPgkhhvr1Se26eOd7vEJHOW2oqTonISgA7mqvW7hNa79aB7MinIrWiLWmci92TRXZdRQHUsle7Uyz3yOKYkvJ11Lezb1y4GWhm16hx2IhC1vHhmkQ/AzSu23etDqjXnZVTr6V4mbWjKl/CYrtW2TrrCSqDOz19a+uzsOkuXqdeM1NbJHau5hcLnyV/v6H2JBZQXTOjegMdk+idSsdaNbf1XaBe+wYV6iL+rp057r2V9wTQprRtocP7ax8/OxsA2jhKqP+uFfXqgv74VrHfbyq+2jqtFDO50NdUnH+usdVOs6OncullsGRIERT+3ZZ1eEtT2WVZrOukzY0j2D6t0kpnnmz67VoYRkOoFbfcF8ypXrs31lw1UmT4bbFoQ0fTCfPI0iLrSJvbmzSpsnP7GgEnq1PXeidDWaHVDOjN6VPaVz9rw0UuD5karsspO1EDAaEeMCUw12ZTekarUqqV7l/wBpcpkPexU9lp2Am6KKHReMjO8/pOgdBku9ubXWa+msHY4boHKok7MPi4SG9mh0zqq2AzNb269JU3ga0PUE1KJpZKpWjVKzOGt+hp0Ipht/Sj8YpHeMtGw/MAV0jNOiWnYiprqm9CeOdUc2Nbz0fOwaVrVaQPXL/tsJKe2E7c0D2LlXYQE5Z4mHqdZ0G8a+ojRoxfzTv6jaioV3k2UO9I17jPSXN+ZC7cT9M3ocmZ/cFTAXTlzqWcEZMD69lFrKdYP6rvq7/wApCd0atJNvVZyxa65X1QaoujGtVLkQKpUtz1yJ89ZGxeT2ROz6N/b7kSqJMf8APCzWmqWdYS9QHYayBnbjLXI5C9uuTT2RmTSmyfsvgL2LFdoA9hntjNUOv40rJNSKXs7KmgSjqiy1tGK45cnVVLjQuOql3dVGFHWdWjGsZ7BsU5DXa+yYL0HDbRi2V2wr6FCfUciSdmRsoprfZSZgOoO9bKe28EIXDXZ0q0C73vCfDYp6GmTI7TKLWtGXP3aJ4TsVHJSSic3SCQkdaGorVFLbONybjGm5QN9dqb4lzZoF+0s1HAcVtxf81szx1ZwURXVSTOLadlkmlK073XIQae3YLzb23nZkTEO0orSGc/yP4+Xj48a1XumpowmnhDJ4lm5eLgJ1VcgSGuJf6Zz28WH/AOkYfemc6xxztOWevaeWWkovinkerxfE4uHku+PgV4aT+XVBbUs0s0MSrxPZrOPqzWcU6rs8tDyVOcld9xnHNzx1LwQMlczUT904OH4vGcE1UVy1nJxEfDJn4XMVxlEccPI745+zo57r5VwRy6mROZsBuWPVpR08zG9XRz9Zb47/AJiT4xXBwdX+EeYvDUyWHyKm3s8srIlw0Zy3HJyePHpmT48MXQ/XoTkpMelxy1SX37EBS83nNNlNccwc3GtHxL/9cq+DlalU5p4q7PLNvEnGXU8ey/8A2KUn4/FyTxsPFBEsvHVE+HGsS5+3rCTsjdnadXJ22KTHpb1ay0a0Kl7qB5Nq8YAjV3RM13eVyK6z1Wi52ymlu+SenofX2Q8zklpB8fK5HpOwBgrOOkOzNdpcKK8ClM/4sknnpLIadad9ewUzsfVN6L2pnvbqh11p/q5K0CM7mtia2Veq1kupcgBVf6mqFkXe6dM7kyQRyJO9K1M2AV2O2TQnrRo0v4CJOlU9Iko0oGtKv7NKLm/zBLpxlZ3idZ2XTJ5FNesz2GsD3PN7wNO8A27n2XGdDpN+rJVhjG5dSG/Xz3Nsnsid9kjI4p2BdM4JNbV8aNP+jqfNlVssCjCuuhFJ7IlKiaoyzdNY+JWTW6+x/YVDrW9hOsV1pj92idwya+zqf6rhrqOMibUJ1teygHprtvXZpneyt1QFedcADZ+INA1OiuqmbXHTOxnQOdj3KTr5T/2H1c/J3h+phSusDauTSiNbPsl6ny63OsldK1QSYpRoHrvfUaKx/wBnGdSZ5UTjqo6tP3Jwp1s7LOsHtKYPusP9CwRkmtfV/wC9a3QH8ZOKVLuQdSyb1pdTpWigAE87LLOE/wDHEoowGl0utYgrrSAY6HafmFFCJSUiSlbFDaymt530GOifGQgxdzoONEcAqq2FdRUHaG/RRAxok0gs4zqTEdhlaZy+QSgmR1b1ddW6P9K20Ya1O+zsxTesZNm5kK9H1c6qe73sJa07V32xn67whlUUmsJF8X1FDp9ZrYzgm+2Ls8A3pNFVuUE3+V1xG/3uToxFrOWfdPR6obWpGKSkyqEMmq6hgj+njljXJOfxjDOaITCus5Oyd5xUbpbr7SksO9oD5MtU0zGqdtMrqF7O7rdE5yWxRKBSuFD4NNqYDI6maBqokTWfJi2JeMevDPe6Wd5NbRxo5CaLkNp0OqnGboHso5FRf0bp9Dq/60TekotcO5M0lP8AK1nv9mZiR3vbpOzbLegx+vpIzW3T1N7AHJoqa2ABRWnkBVK95KTSQvTaTo8U07OzRWVraET1hrLspBjjnjMICjfJp/Gvqg0r2wpl7hRcCdmr6PIM66q1FFCslFd9di0sJ5YRVX6uwkoKImTdPyOCLqbeqTpAdGa7VQCxxlCv8fc6xQVVLWgqWUDl31A2THV453RlPqvHJ/KjVTX7ElbB4tU22tqUchokeSHXXm5VrpPUJ0xxMbFjtXl2x2MeSKmevYqUbhRrOHkLaXk4u40RxcUFM8nWqmMkmftfy+SOaajj+nK0H8X8Q28nzIif434nJzfI+XUSfI5OPmniYDlO5x/Ek5K5niiK5NZ1I4zOWrudMVccQDuaQ45CJQV5JpiJXZv3SSUjlwVSN8S9bJ497MeK+zRHK8XM2HJx3TLXyR5SRq6tcjrMJl079mDu2FdorfBFfYbtmCHj4CeNl525ZJ4eSuSSs4+vkmri9vGnVt5RNb4IatltanqydVal7ymE6oc8AxmU03Cy1JLK09Te8kOqFSkpnhFSez+diZ09mf7RHbOWTycDrLpvfHOK9gCTYnJMqZMpy7SV/CbN70lMCiYO6rJ0azf2DLB3LMszp8/FkFx/BASuy0B2y7dOuGaGtptAV2Eo6HBfxd+GaB21WtyBukGeutHtbHy0ypF9D/CJ+xmt0iUt6xWZzbQGKB1yjRs2u87f4E7De0XSOgdvZMQ64S62G+jlO5dH9HGVkcNmegJKqyg9uuMnYrFWvIoa6rIGsr3zAfsoVoc/7rAOvXGe1ewiaxoKJQOpsnesQ7SYzqsqVNZNdfzsNbIodrybnRkm60kpvdUdTHeuqa6+RQPXK/r4HVEEP0rWxqjq52K0pQVkhpxGgpWlrjyJY+uFafd7XAvs7hapnBI3s5CqQ8JQN61nT3tjKriPXWAMm3fX3W5doAIUHh5vLn3WJqsTahNPXWIrj9RZN07QEzq66suneVsRz9PUdTqSgQFJ2y73sFPGuuRtVy53rQkgqE0OI9ew0NGdtLrrvCdLtdpp+sqlFGE7TdV6b9pU21OFIA7ao0hVUDtMqdCgL9gzXjuf+RnXrQYaPM5eUgO2xreFephXWqUezrPXYydnRQgbrf8Ak7oowdBg476KMa66JP6gMusYA2sqq29ZE1TRsdUDs3rJRpA93jWzWRtXCQcN9lR+oYvgYBpcddgH+zk0aTAJNrt2nV67zrtlypfNOty5vdGEvXTyw78BbBZO2n7dRCXsUmxrNnbabduMu3SsnpST2zvTPYV6ZA2+0kmEi0hP1JWd0qz+U76xgClZUFLjTvQz72wobFmpFCQGXOsyribd5P28Gg25VFDKrVGP9VIl2uTOr0NdqTKfr0Gd+5M6Clk9Q8nbVNTrJpqwGGKax5aqZMN2BhThe66hsuc7Bye8tajxok7U2MzS1uisW0yJmN6H6zWAUdsKGqzqVO8a3BOF9qTB+pKyunOUpuNTyDRCzRZnFRW821S5yr4Z12LlcnGfR46biTCe0zLKSrk32OuVAHYa+3lhSUM9aBdz6n22PGdmsrkZ5Cc22egg7+QWcLycPDT8iGwg/j60ys9CZBBQlZOS6ZbFUIq6bASr4nZ/P2USXs9KlquzFTFTKch/K7upuVw13AimKqWOUZaYphR7PXa0fjyycu9EXBWCtA03VezDFm2euuvWQc1FUjycTcXOPBE6sjl+RxzX8pDz13PmfE4+LgeebJ4Z/k4eL5HJydZD5C/Fbnj5bn4v/wBL3fMXPe0DHfJPc5KPIL2aDgkqTRxzNgcNM+PLuqKOK2uShfRJjt5sonbjdSgXDfI7vi07SImm8mulI3VUNDR1IGdcs1nFDMUWxUSUXD1cmeTczV/HeW+8V8fknkWeJ7doeM6wTRLoy+JTbwz9W3sBO2Wn2JUTK2DItE7wFeza9ux2O60WXXk0ROmrezJpd09SEHXamWz7Vrj7oa6zWEqG2P0GSpMmglDYmBAOFNCgIaTZa5oZ6mv8wnU5FD+FbraZSdlH3blLoC1A1Er6smSsqjT1KyZOple70L4Y0tE5/YRN62b1O8/3J+tbXVVtaV27F0H74b7GM/ZrH8FHZtrx2MqeibVqdds2dTQafftsz/vFXeNdcp1PoAiTRvWNDPlGvMEPMP00Ui4u5c3oyNC0p325M/Ycr91hW9DQdscUaJeoVsJWlWnZJr8xTsbAXrnjlD2kwra4LvWC19lh32GjYCdvFf8AM0H5EhXh7aP56lP9sNYpG80623vrNYbk2FbrWXSfYdGqWWtgbZ0jugYTToN7321IYJv1krQNGXrQleRoJ6cYYe0bJ/sZrzGUreaO28U12eyUmTIGsd4b36SKjG6OwSAmNLSY/mItGqs3m9+H+ZprzCfrrDW/U2+6+vUd2s5BvRifbTb1DD87ZIJ5AzWna0ytM712WPQAw3LsX/c3reaexqjZLkUTWCMuG02a+3vnVkAITD+rvqaZTXYENdnN9jQyxsz3t2fbneLpMlHeg6ujarvVfVJPq0D20n54O9GwD90FdsRLM7bWc6hRlG0z33YeGifBQ1sx/QBPtk5GvdV9neSvUx/HRT19vZpxQ9Ou9BxRcyzapW1deYBrCvtrOoZQeKVukWvsDYkqEtdroCT0rrdYU9XK3EucVeI12b2XVbXOPa+0nZkaR0wnY2ousutUSAukLe7L5Wx/49cOopjAVsZ/wD3qME0Ix2/JlmnZyLsWXe8Vl8pok1c0s6JA6qal1B1nJ/Gs9h2R2aqiErZncNy9uxNTQ0Oq2ymcFdTeVq0k6HUyaSO2FUyuccKUpRQmKBtXe3CSoZUJQzigKV5TdATOxwnXH1yartrOhCueaQ403RlTJpe1KIUA7FZ28vHVFUHN24lOG5oIe2p2E7DOUddSpaazghjiBKmjZpo9hJUy182TW6FGdpyzbc/xzrkggiAnST1nxFrthViXjQnbCglTtalm0G8KLlcil2PNVVvOGGj1n0rCz+T3kY7A1QR9oqt5cFEuXK8esIamtD2EXibCiuN/yYL4yhn6FYy/qh0TGmLNVTf1K4+0zQce5pX/ACS7Jnx47N2JrlKWplayuW/56l5uOHhJSeH43Jxxyf8AkvkX8mOSeE+PzcdTNcLx9jiz40kTVZxVFz257jjJm5OUEl4qlHfF0veuWZeRt4FJKjj3MtLJoGkAzjT7YT2Z3Em2nkrqlPLV3Xab7E+8nK0dGWCJnL4yuUoPCoY63JquPqiFeO6qqgkunqSTFm6PDdSS0iExJNBM9SVdPUimmsFqUPWm8hJpWeUnmYzsvI1nYZazlrrW8Ku5DGanbXASQpdjCPuycP8AlDNbDCHqWxJ99k7l10/ciSdqASznb1nJo60MnbU4VrmIxSvzvpU0M7wlAx924boDEJnya1yMsrrxBXFywn3P7bolSvNOlWg3jZuTBSsVfUlnCvsOFD+aepOP/WT5OVrWAJ51fXDx2SG/N69SjEHWEgpnY832XDWwypGkwdIL5+j4mOmfTYjieudfGaB+2GFL+f8AaiAbUnak9tZJ7ifXphIJjO5KJCOwsgGuqVlf21jrS519EmdKZ6zvJPtvEDeJ+D11if5jK3tZ/wAzWvXiaDWbOoLJveNDow0+5UCGo2LqTdU4O61lCTsK1LOK66466k51fHIpZcYEdIABOv4xQ1Rie6Gf1ZrTID2WgHv2XWgzf+Y6GnNrIotTp0OzJlJ9k2LjP7gs7MJ35lSEyJJ7lGpd6/3Ip7IiTQtVr64V1nayNbWnVJGmZpuVoM6svrQM6j672B/ZPfcPZ8J+2TPqhskDa0KPfctyEzIKUONO9k607Z2ORP1TE9XJokx9kwZ/F3NYo1g7rYqHk15pdeo0SbV/NFpDKUdfdi+O5+hP/wCLRd0y7BqWfw+yghL4pFKrrqnZdIg6TRPmGhcQdGGjc5L/ALhtfQ0hhOz0Sg2wFLgPmP12qAmv6mkP9ytldciQ3rQ3rFJMD6mWuzE7Sa6j2GZQ1g7UzQTWqR6mTT/JjIUOPhrFKjAKRy5Bxk/Qk2mdQ2Zoa0B/jyS2KRIQYVLKDJstCT0uXtvCWt1kCnuxdZyQDOuMSDEaoxpHbFKKjo7Y12hcRlnBF2Tuaqknqk4/0KJ4i6961xyuNBrZW/Fmj11/34XlPVjZKFaOqO5nQ6EkadT1qmNCo8nXj9bKNEj3APr+bZsygTeROuMZ/BUBrrlz2nbHNzPy64rJ+7ps27JRXPKvaIbw1spRm1DS9mqNBgBrGlCFE0lU/wAXkU9M5Hf1f/XCDOXikloAJJLCZmCJHyuo8hupkCWPjvHyNYS06xgmnXJZxy1c0WAO2qpf7OomZrWIVSHs8TlLPIJfLadTiGg2RvZhKSDUpKPFFP8AZhnedY5NOcfxzttufUzl4zYnVl3V1e2WK1xEjyHXxqKNU8RF7yk2ZxUv9ukVW844RJK3M1DUlSL2IlhninkmbeLjG95czNLJcvaaQVY5dzqXj9aM5ZlXGWp7nyfjPPUJXyHl4NcnPxaXhZKnaRzXzVu/j8ZyTN5w8ckE3fLxnC647iuMWtVySEcTxyS2M9qw5bedl47YktuJ5ZnbLWjF34606JWK3kcp45yWXSvqAO51uw/l8hT1nieSvK4nj3OEvWZCdQtxT1dxQshclT1Lqytn8u6Ypr69Qn6GVugcirlV443NLOp4uuFJPfGhM4pXmewp9mtMiXMLO/4z+QwhrkR4p6VSklUp720VJNJkrorGu0+1uZU4qP45VuU0Fl7MU8ClD26JJcjtrb2HllyO80jfQh2VuSQ2UDUJOSB1FBZkOlXpNL4TfbF/6p8DJ37qgnYbUyqnWjZ2Jxo7Sgd5TNanyTxcKKTFN7Op30NG3ITaJs9B3pzztoUKyt/uedvH/o6/9qGxb2oDrKr0QUp07J1ga8SU/duKtBl7BQo2udhQwo3rP7Brr76T2r0NUbTRrP8Akb2dXTR4IFXtZ1rNlUKndcaBxAreOu3qGthPWzKB+uMgSrpAz/UxA9WCVSp3Ip7Oyl0IJXmedicdTNAMj4dtOQsjtU5Bwpp6jsnyl0b/AEaw9RCfsuNM6Mrq/o6lE3ocaJ2Z7UrnXzJkmdBp9dL9sJ3jqv0o6m9HXwF2NnunfWUxB3lmjWFJPbN+6A82tNGsZdFZrfJrLkmhxPRzrJlCb1UCBlT9eonbkMZd+kmmg8HcUVsSdHY/HN7Noe+r7rCk24yq0CMoiduo1r1Zeq5t2AppV0z2CdniutGj8ynZt2dUziPq7dgOI/2NfXQa0mIiC+apf6rkaDzfu01NK1/mdzxae0qk6rZU9uQ1c2S0TupDFSvdpOaHzEOxo8n1Dbpd0Zxn7iGlwUryZadFOvHZNBjLtFrVNZRuXNvbElM9NkitMrIymGtYK6F3MeD9q3225SgqO8Hzvk+HlLtoK3OL/mSJ6NG3N7fA1NadVPjBP4p/UPHHVrlyBOrkJ7YSbdND6TQzrOvXRhsppZAUiuwA7lcAfMfK8nXXWTEkuw7DuQdL1eu87HhllSgRP5ud+jenU4SdKDdunN9qTJn/AOk5eqr26WlwV/ZoAMbiesV0O285DpSSjVMZxR1POoazXekImpWsqd9pyJ1jBWEEi5tR0zreuOW/3of1KlYZyZYCs2+jFfbeclFISS1LAz2llZGScuSp1hyz26lJThTCDfzIeZh7OvHtpEqJAeSVruTHaUWSKJGSk2T6GPrKMiLXNEu6xoZmpJlmkVK6p5xyZV1SA1GmMqe005cJRbxQvGLM/wC4ygq09Uzip6u2hkyPJ89aNUukzmAnRdXvTXWkDhSRnLl0mL0rSWfyaSmpXCdpBx0CuQF/U6NCLLNTrll5K3kSyTos/lYOVWjVy2Jk7ius8kHSUE7a41b3u+Tq1JVMhyvzbeKZiuJjkpuuW/jXy1JxfDi+Pz4vHcV0G7/i6vFHHUtUWVJDx7Zmc/kb5ur/ABF3vJ47nl7M8UVxm27mpjLoa7l8/Wuy96gz+0zLYdSE69urHMVz1CV3rq1xH8iz1uHTxcrE0N3VLTNS8jByzrjoeLiVdRqa7N2iGeunOWGuTus031yVhS4trk28ZuEQWpWNfmSrXTCDb240hZaO282zJOP9tDFUtYz0l3r/ALrchORJPIOMjW8iA5KylTzsaTGjU49dAEGpoK6plstbxNpp2iFSdilMUqSU0VrCj3TTLpgFVHb4yb2ntYV9tLtpSlZXJXwQ/ca36NSLWVf2zifs520rjWafzPN6akA0b27DdZPlbz1XHcoZOystaoRNMmJ2ygE0UbTHS7V6rs3/AI/22hvTh+jjMm0mVns078xevuXTU7ApXBZTAdbTfYcXc4U6nO31cbUMXboX3qlO/Y0CY00bdeif13tlzsJUroNZXY6znUQyzFWDRvysRjUlUMmxHRmldVySiMtOycj+2iqOzv3rtkd5T18wDrgH+wG8pd9lXRnrPkvgZv7LibHcaQH+v1ztt6j1o0Fe9cHU6z2aA0Fazfnk7axBOyHmdj8fBKafWnZRp97ZelMn93ijTi+egf5VJK4Js2jQmf8AQxsdu9V2Wde41v8AUDVJR7s11DJNSmTrTopZRd+oiy6+3UHUpvA1PUa+yg/7guvV24V9TezXXOpU+uiScVn8XVDiiJmkNK7DQC6yh7Lj54iemT/uhaHYPVU9g0GjHetsO1F1rT1GdJ4dc6CO9JpFapM6oaI8RNjTOFEiNC0I0niUa7YpNZJ9d40f4Sd+zDqkbdubGBdj6mu/vY+xhYi4yGsqlVw31FpTdCnUWx/0HSYV/wBleZVCDjojWAMhh1K03J1UBJZWVl12WvCSp3kmhlfqZPmqzyns7n/HRPg6duzs4S9Oryug0bo6j8iFqI4vsrl0FE4vYZCQrzTT2Krc7aR0rrSpa6GtFeKzU6iqKTDW3evqGEqEutaQRXekPGQnqdtuidG1KGmhrb4ITTm1neVMNFPX/lky8lVhxfVp45vsqT17KVrTmijRWjwgN7fTs4UI6me3oyKDFFUgg12wVcZfV7lRrOLf3ld9jN1+Yq6MB2AV1nHiKreVJ65Ux2VePivVs8XQkDj7ArE/hp2GWp9ZHVT2KUd9kJqSinutFTotNIMPXWXxV9dO5d1Oomh0mkqyJlezcLLtpnIBgg30rS0XOiZJlHioOwtM0pLXUqhCjG//AKKO1d3PadHJR2Iwljk7BZcm7GqHHjak1Mn9cNbcmR9PjD1rCjenlpeSdckz9XJr/wCdLsnm3nFN/wAnZ5bZj68XWpKbS40SnHNUnKguc3F3meWYGhzn+P8A+zyV24OCjTlfA4OeuxFVxLM/Cr+Tjpj+CuXveVxfJ456x8XnaEeNZ1KQbon41T31XyuPVNxxtHETfUe25ierKcaLTxWVOkqWfGlzqTrHiBbyJSgKo7axmb0Yj5jDT6QDRlzuQwkk751Koc5EI6hWp1hTUlOvRyuToaeKanl7ZPKgmFJJJ2TSlz/sneQV+7WAJ1xY9Ga2i1f2XL+9Gl0phVVWiy6WM7P9UmypMvZyaywKRmd6rGe0lJK1o6JIZSEmRQpqL6nV8qdID5jI1W2+k9mORa7CdyaStUTnX9yvfqyoesuvHyd5sdrIlaWne8aNbA29Vnc6yZD8BxRkMWZMKKsMpH64V+Vlafz9cVNaV31Q+uOuq5G3x2Kaf3YGq64/m8qtUamdrgfuOqABExX0w8jWPs7E+po16BKOJ560SOxa04y9TAfzE/zENbw3287fbQO6di9USvqgU6dLvQrveG+qsyf2Nqjn26ufgrrrowdGW7+2Ufb3eq1lUI5QOjKnrWsRK3lS70dkSQokHK2hsmqvWa1ILuK3nbsek0byZ0YeTrGXyyHT6JqgaFFBN4joc7E+PvUQ1rSI9s0vogAnY2Yf/sZe/JR0mGmjY9a64y9nNuzRXhSe+Zp93o/MdpOkTeA+mH/WSJRtnSb6/XSB7o35tk2mB9TEWXfX66TfunS4gaXzedtgEqfpQ0g+1O58nYaXeIMuFHrlb/x+yIuxGP8ApZdYq1rJdSyTrt4n2dNa24DW6JpKz3brVVpTyd5OndJO9mE6UwOy5rwx2V4yhjDrQSlDgrteNTzGt1rKDYAemv8APfw3hK1vGgOqaXz/AB0+oOnwHYOp/dKGt4pIKulx36Yyj6DE9cK/JXaY1vzAfzKnfobAnPKoMsdObdbyh7dgX3et6R11w5+KuXoNa0jvei9prBT1Za/equ8HrrKlrWAL7dblQnuKoGpP44BoNDQTHamm9xrVUzLUxROjGtJp0wuT4bdOjZL1crrVFZNHoC16CdtPda0B47BNapdlYptpnX2Rm+2km5PCSTWLJLLD/wBGqnWFe6x1FGl7GyTTO3XoRXrK10oBp0USptafUOv21m2A1Q6ayJ6LhfakxrrO0r69W51PdE6zlugnCVSiBKzuFBiLrRp8zsiy2VcJMz1IxXsuNszrCm1y1mlWvqSFyT7zfJv40l8nxvnN8tRnHL37M1c6ihkpXQ+4SSOimq6PlawmWei8UXqlga29Pt2Seu0vRFbhkmXF6VWFBpyJ+1bf76wE/b1LNN0FC+i09muQFhmferG5ypVBIIWgrrxvUoI3lckzqjjp8oaha2rUqMtzLll2zIF1VZzXcAtc6SS9zr9S+vGGNNjRsn61ck8P1jmg2Ly/Jrjq64+Tmhq0+Vz3zMHP8d/i7YVfHx9oOa4K18fl5rgGI463J8Webvrl4rJ5ah4qaK11d08n8XWJCqXmdXJEourkDpcyIcXeZAgldU/b2p7R7xyZyUnGoX6VgNT3wadDJKmIFVquOvDOv171yzXbxm25rFqZZxAlx46upWYuJ61E63SQ9RZo6+8MlVQBTWCztqaOzjRSUxX/ANatZaZp6n8zWVO6HKevoWsmp3StQ39aarvWpOMKcgAya2dRSdhFdlG5rtvIQ+jU7fG6NSFfbxlsc6tUyzHQNbWvSTsUFdlcGqNUVrZhXZ8ZHeE/VcQDrlCac6rrCX9xfr4/usHW0ezusp/OxSTsgezuD+2yUTarLpnR5p3rEZneFGze3S56PTPxBQ3vO5oxndbwokcn+zmwrrg+jhXajcv1Nqn9RdaxNHi+9ik3OXJfVwkN7KCXb+pioCPsLk6MTq7wD8xN0yk9Drkf21iPY0b3rH+gYbmdY6DWK1JJrtucpdhg71OaNOVKs0uHuxZPEudhWH9jTQ0hU7pVnzJ3pckUKzQyuJuAzzqGG6neA9VAeqg+O+vuwnS4g7Ma0I6+usXSS6Q1hL0TCWJM7fUcRqfDT4svicn9hz1Ox1Cheu6HOq62APrH1JLVnWA7HGXZQb278XaJ20bCqSX81VO3N/7hP17YQbzX+4H1TGifqyDGClDjX2HDZYm96zqtbyhJ83utZL9nevzD2vQENs9a64/1A6prVqRWpl04GlMZCkzqk7yfN7NemTJ1XADcopXp75g7rJdb31duBreI0eAM9s6oDjL+tDtnCldJrwKH+uPbYnY6tLQyUGgNdj/T7PWd7dDL+preUJIgnmH11lJvRIDt7GkxBNYe7MJ19cZ0Gv7YarzN7nQgT52f3BNA6+usiZaKa112djWsd1Sn7VY0zrAWmR+PEU3Ip7gNeqghlUxRGWMhJ/x2oOx0aMZADE3VIUgrVJW09BwmSNABx6yvsgKwdsooXcW2hkU9kyYrY51fqHTpsKDwYiBKwPsuDoNw9uzjW409j+LsMrJupPZJ+psuhBUSVKlTQ8aTkwaaytDkDTsTaTkShrNapE32q8BmmnZ23km0EraziBRpWqpP3j0AdUxlN4HW9Zfs7I7dezUTXGyp4ZyvdkOJ6TUYyaaxp8cmvNu/cjctFQaqhP3sHXwGO8qiS6eWmaXLsmiUm760cpDJPJwX9mXr2jyJNTT6KhXY1hI6whgaLj67w2m3sfWDamsYPaJUrWVKCvb0la+6MSleL9Sjsbyq+3YqVTRXZaZoRRDtsKbgQ4/NpuhK9FleN2yNUV1zsamksWg8qkHrHCa4kEkZeTkN8gSuufi/kgm44tt74uMnVnLa8VSfDqzgHl5JOSdHLLc1ctblbrluk4uM4ieH7cvBD1S+CQ6l/wDjI5adT8MjiJzi4nj4uufG4mazl/8AlJeVzNFXHBYcfHaSXl29uhUzyTOJ2jWTwMJVM7mpeOvoSOp9zmkernSrPCWaHGt7Hj45s01TBMkzTusB/k9hNK88jLkV1lgLmihZYkrKjtyVJMhvZqrlefmOxpu2SSNMT2Jm5aeLjIHUiE0chvtok8M0nG7JCROxr3s7bPuvZba0HvmTW129ZnSLKKrrxr6rkTs1jJE9cORJ6y1VTsJevZ7Pm5SaSiQezXIThL13h7ItSdXJ3Mhh4LgP9sdtFZsmjZ/UcddtNL364A62n21h7ucRnQM0ruJegsyayheQnEP6hOmtAm8j0RPNGO2lIpa1inTS/wD4K7OlPdZdPXzfm80E+xuoVTesJ1vT6bEdG0JrxU4kR83nogb9FdCB/u8DbgvZw1VaLnejDwdta0Ye6C5HPS1z0RxnzbB9e2b+znp4bE279MT3WVLP5Na9aftouk1QLoc7HZC9dZpJGmi66gAigr0d5bsA/tOO9AiddOg/PJnWKdDNblWZ0Bg/XZ+TjpNYbnRmz8KB3p3Jsf0cTTvGXrohSSVrxXX1JA2Bhvt41rzL1QYaEMP1GZ1pPWttLvzttKyRdyialRV64g0zipXkn2pwp23jX/SPZ0G5RKJlMXc+VQEmNPiMmtkqTUlT5ofYHCnWnsaVFZ3m/PWXt4y+JO/XA1pbUAB1+v11uq1O8/tRvWt0ypQLTXXVU6cCv9aN1sHQZVJW0Wv3treTWxrIlBVUl0ao3ikzvBOu837iiIbdCA/q0mdhnE2eld9GEvVMjXoi9tg6tnI1sVoTwlP0pNzjQ6cfaDCWlpN/4ydvao27Tt4LujHepxlKJOuxAD2UTq5Pj1XbLRxmlDZ4HUQMJP7ZSdgJkDKl/wBBMdUOPXrvJ2S1hT1VifrtlKGm53LoNDvr9Qzf5q6epRVbCcVveAj1dpQm3eklb2smjGT/ACZ39kh/c42v+QEpQnfY3J2FIKfHjCVKmadPFxVx8tTiM11ze9QHo0VSo52JhVqllxe4GSOu2FerjQHXLkp2G5lla6vdLddl3UiD03K0eRjQ8ggvXyNaabr61WQaneI0Ap9nGzSpbX1p5dUScdDXXGVKAEOq0Jo4pCVz0hTq990fgM3qnGyhMgOqhT2ZZQpyansrdBXnLXatZ8iq1ScXFYO74v5JmqOEh3PY6ysVNBOX/wDPZjQg5Va9OxVaxlTq3wvsnDN1HVJ1ProM5ZBqgXq7vrVmG5pyR0L4RIdntouXuJ6O8KGqcihkx23o4pf7LVU0YBMkkMtaL5Uc6RUFvKbkMIWfHc8VSVTPCVXDbUdkTbnJRVkFjM9mOPvYZW5uoLn6oTNcixnJXHEEG62mIvJUPF8OIgLvk1uYd2TLyS6MJj+SXj0zFFMxVVYyzXXOXjOV6vDwUakJF6nLHQNXtdkVy1us4buKHkeQeNHqNLkyDjtfegyDxy9TbsN47kw3x8hWctTyaZL06yQVwlJKeQWfJlnknLp7q8sNcZqxZKI5bfZr7ToR+3aJ+x3SKlxi5qZye07wtXwDxaOtKFOyWt3KY0y9HqVOyu0+schW0NVXrPat4rsWPjtVNoe6XrNGN9aNVJW3IgDq9NS7YSQw4yvcZloyJ2pkyGhdzvBOprsoqHZKeWf9Cma9P1or7Hm+sbzr3mVP7emiky5NlYzqtnlUGaXwd+SMkhoj7d1n7Kom3Ayae3roqnHXXZFHUoK890r2StKJ6CroypGfEdOpKDWSqGeCrvWsXeeO6EGdZp27Nu8KGdovbeBW0TYeN/7kLsy6B82dd4apcFdAjJvNHacV67x/r4SzKmj9wQ9V0k51KdP59cqjszgNVrHQiu+0h1EwO34SOt6A7ZTvc5Fbdt6HCtSGFHXyqV8qesjhepF67PNJrR4jkg6MXoJkrWzHyPCdm2AK7FPrpXQmh2PXWk8dgbkaxpqCcJZhGXWwETeMvs5J9TCZ1oHdJgrJKpvwf1xDsZK/77rWbN7xV1jKIihow0UuVJjO6cV6tYL197H4Mj+p11LQaAKBrDe3flT4zsaK11z2fzyZcpexhPYwXYNP2DN/9odlFKdYyaNkBva7nedXXs6ms8XGfsTjO61jKZcozTJuUKnYahNsvbrqV0ngfU2pWtnks59uy4V7pKHQVuh172HHRsbGtaHSmNdZ7YVqtrQa32+3XFA1kVvzHTWsda3nUZddhyw6ocXvGJsWcZE96sDo3T5O009V1mgVGtVvJD0zQblNJgEu8a6msPzeO/TBJoV93OX22OVX1caP03vYxTtEP+lAcJ0FFP12NTOLrc59dhgJWy5KowQrrhLK0f6Vk8g0bJLnebdbxla8JHzIj92yi6uf8P64nkprrusTsbCdO1etGql0KCrKyddS/wBiS6KnrkaexhLryhEMN9d5G3Y1+7wNHZJ2O3/Qmnp2yupXYmTqufx9VSZSQwk3rK10ZydnmBTech9e2dSxwkm/ZJulXrK4fWtBrrVYD2dcbsnbP1RJ3vsaqEzqh2yYSnQfZBKkAJNd8Im596S+5patzk4i4NnFESBNGjVkTK513rcQD2OrQOQFeLM9GiJ29nbOsqhnwVrc9h1vt67pKlnIlK0sxVNNyNyhxVNN4fahWE24mgUla21IcqE01O8JCtkUMzWNBRppJozVTOpBaVSu3XD1VaZl1Ff/ACXKGp65FPDTJXLdLrgQeyrezCAVSWqaroUgHGM6jlO314+Ogphv3aQ3NSJ/EyZFTxUhypz1Nk1cX1y6mg1BfUxt7aST3VRfGeQjum7aOpMx4tzLx7DjKmh4pK9zki9zo+89cIp8qhNGRH3d1LoFlPM6zsFnVFlQCpEsvsJ1B7DZjJVoXGobzjqnjZKqqlh4omDpifXrnUqgbCuoHG9jIRt1pp1nXqtDKM71qzfKEspAVRWVHaUOrM053ahljjIkMiZ3vNDvOtNkk11cq5mW0nYaIp0u9JJGgqSKp2Pfc6wSGhINuiJmmsJ3ntT4fXXWg/pkqbMqizFZrQWeyCL6VudYUJtV/cJNC0KmD2BeSF0Sb12ZXe8/4Lm9wGUu/HbvP7eiaXU//lp/yAJTBDQu/cZWuyV9VxoZ1h/XrjWjQ0PoOvXRSi/2DOpI5v6gbRHGtqZFOtuzr1PNGdQ9x0ZJ66KRdmnx8Z9AE3vR1CtzpRm/fNGj+xttbA19qlD8l5FAcKGSkp0YyNLhLO6LWk0f44LvOvXeorrXrU9tACOEEjjJRhJVIp0VxqTW+zdOAVswnTgO9CmkJJd46ZxrSaDzSPU1hJ+5U/YDR4LOqqslSfF37iu0zW6MqtOgfQxnW5zSS7UAc3pHNdaNGikyh9caAKwkfRNJvs9sK1vAJUxJoMQ7Jka9V1+pQqY09ur2TeQG6XsJ4hSqp2HCTt2F3+zPVQ6rNZsTTdJQBvr6nvu9AYmtYVtNFfu+ynU8mjGfe2FCaPCdpW0xBvQLvT1GjaaewS/6p298nWAdux1Ouzyjskl7cdgmBo7NC0ONfY2z9VDUmNJte28dH2FevY9AlBNGdftpK7KKCGXt9yVJawfc2U+thSZI+iSOpYiIrqACaqt+l1/8si9OD9RWigoBZN1P29n/ALxXt2fSdZ1WqFGjAFTNmhwldmGtO7PDP9HCga351rRozzquFPZE+w41/wAVBc2NOmtVJl77CKVQ5obMiTrpTc6KkK6pX0wrUhhRPasE7eJWjCXTu99Rw14YyGzGaU02zQCjLtXrSj2rTo/MJ0GijtQ71PkIUSu0csGzWqFEoBoHs5UvhjXU846L+zZs6rOthB1+jMnbTVteYUebd7TOLVT2xSaXLdlLL0DGQO2XJFFZQytPaeo5dBJuKb9Q6pgVWtE7dZUyLOSLPU0d/GEvZr3112JVfDGR8xChHsSVKVsIWRDVk70klfYEmlSjRlPQUGrnTUuzrt32e5NSZP52xEaWiK3qpKqd9hEGUNN6ifCyTT5XhxFk1Dco6OX5vx+Cmb4vkcXPFVxXL1JIr0mjiZgM1usRZ8rZ+RoQyqokVl7GiGqDOWVepEdZHCdWU3XSt41dacJJTbQSa72UyctXGpXQ9FmqKuJJm9N1VPY+NwkR2eeenFNPDy8xzNHHzH1Ll5P5XkYmijBKhcRa3nFyblqii+0vg9SYSmqiR+pd95CWgTqU/YGrAcAKLw5If1Sih6k/bGu0+zLUu0e87YpdjN7LOqulOn2zl0HvZmWcuxgnOLux2xi9dxBooqq6CcW5dUTPY27lMh0y5Vs0hdJx9gkUp+tSJfCb84jrPXIs/k0X7KDKSClWkk71vBCTTIy66+E43M/WygNvvZ3xI7p5HVFEn5SJ13hp2rLX2wk6lLR165GvwadpiGnJCapwo7E50Qaevacn/kLJ28BkR6rPktOhU7byHe9UFTsKOu8DbjsNiBJprTvGsKN6zT7hLOaX9dShj6mLt2OuuCM6OvWfI3/gakzwfexsMA3vEXYCdXb4aH8TCzsSCvuLtNQMiYPbeOpdZ2P3KHQ5/wAVGe2sKCjd0d5MaClGhrS0zOjuezghugubnsOq0lar6pRr0qNuT59sulawV04IuleqGfr6SKbmXv2HenWnrhQUbs3upP8A83wF1NszrTnY247B1KeIutuD9fY06MfL1klG1du8bHjDGnro7tTsP+WCB46d5/xZfV3lO9Z2ANFOxQDzAK1jrrvK9Clsr7Y3oMDezIqSQUGdInVoWtDnbexaAM0d6p29tL5LuEjzGtcruaSdM+npojP+VGHph/piH5hX2xpmtqi9RB8WmZ97GnZrr7+hh5nU37IHrcmzFfzF6z4u9GM+6xrwwkoHNf7jvQYUmks+3dJNOx1jSAYaJ0h0e2OnHcyub27dFY/WhwpXHbJjT11LpoF0yajXajD6pt1soo3VSPjglT5oRyqPDP2kanuazseY0HmFGNaBzeqRp3KZ13ek37DEnbT/APnK9NkT1+2eUeMntBpOxr1M7eTto9wr3eNG0y3QY631HTLhU6Gal7iM+amvrrR+axjbjROsqdJYSu3CF3OM68wnq6zqIKQdnWvfaQ05yTo2bOmsJ2gNanSKymVrcuKm8Qdmdp067a1TdfUcb88E26JGisKOys6FXzsBsNznXUicgzLqNXArCbnDUz5tpdv3HXFuQcpKkXpXV0STpTR+z7WzSbcgY4gB+iljR5P+D0k0ZRoRvVejIT7EfRpvs61I8fmBvVI/Y33RN2//AEdlPYwf9x2TiJfvJQy4UVrTUz4tap3UTPIKzM7Sa+uWtTsiQk3HVmjD0DBFRAqXTM6EdUO2JUWKCgxoaaSXsWrtNQa+jyL307HYs+exx1XZeKU0vLPvfPk/+I5Ct8Pxfh/L4+eLSS3rgOsuu0qWrujjkeIlriapk5N8chjN0I8avMt9mmtVt3WKSSBZAoxI7wjrbeN138vkYrTFLfZujruql3tupl2VQ2GT+u/jNV8aKerfy6OT+HpNchY1yykcscZMsSCTF0xWjj5W3bMo6YKZqmLO1VjT26sCOMQ6HkiJDTR1KfdaGz+udtjs0y0w1194w7O5o31zo+KSSAaK0lzvzKkIB/jdg3D9VuavjTONYn0pZZE0gcY/xbwX9zoxDiJE7LUMqutVtl6OjcmnrqfOqcbsrqE4T9nE3K51alMJ1XpZtAoZclWQTcx2KGmrqBujE1TsQEyt1asML6Tq/OSpg8eQhZnvdEyXPdNTSeA/ZpA3t5ZQc0TpXx9ij7YT67PaXCVnAanZt8cf3Jfr56foLQOkXT+Y6ePxN6rBJ2I9hyew6aPAxfyTR27Ya3rKrRopevvbWnIVNKC7wXzLGtaXrQpOwX0xnfuPmtb7eY0zvNgCHVoxmRQDQqJ2N61XqjM71rwuvAU96tj2NBr9EU128yq7XlV12ZC/53PZlCuQ2jPallqd5KTLhfoY1rSISNDQa0/2Mmu2xgNE4v7nZ7axne1rcUOEvXT5tw2GKrWJ7vJ2z6uhDss7Qr+2CtKu+uwpFlZdGl9TACaQdyuIjLjp3p9lcP65Pq4y9jQb/dDPYd9hLQ3oTInW3EKfB93jTvSjUjho/Fdej5to+o4V/mV47zc19i97WTdPduR+zAUOkO3gLLof+ydeD6bIkK2++r7T2xB+2O096vbWMnUliU7Zp8Gtr5J9XQrPVFD3a/UL+otbpXA7VpdqoVqc7fZVr7aNp619QRl7+C1U7anfVKkPAd9sdTJIpvthRJ5rc6QTWP8AXZOzRiNCAa1tNHjprVVP7jPug3spNdkB3Rl0TvY6pvKfFw2+pL29APXt1n3sg7oPHDXf3SvmtGe9dY7fwPfdE+HYKJxQ5OuP5mtVlCYS6cN722b3o3oVkZVmBFwGnB1Su+29MpG1p6uIGku2ZNFHWaCnS4G3Tddlch3DLE6cT/MJ3XtTu6QkL0lO/GDXg0VoD7e0vVGJ0IRLMo+0oGmgfOuEnZvNIqBpFd92iZQ2u29l10Rxdla4yJ7Snl6wlK6tX1PGfr4N9fI3p3CK6daXKE9Upowl3vLEneCdEyUBnAGlyqKrWNNS1jrTr9n2d1sdNFbW+rrjpZFnenR9jSSO9umtYO96TdGaVFZbaMmGdBVU8nnItc0yFjWlTqi6Fxk67XROmVlwkdGJpcujjnrMWdt4j2zkrUpOxFRaOuFdjqa6mmaXLopAFaVEd6Kbo2V71Kp66xXs7JnrSxM8RgzqdzrtpZLqnGiaJntqjryjWgmf67uWl0UkKVRVEjbvWNsS0T2qUDc0mdaqkzolO+OWKy5Jmt0FOlHiAzoMozBSmVMRVdu5VNl/K/jj+MeVKoZ4m4br4vITLOVLdLXF8eZpoKZreHJCGcmjVS28ohwduqXLWlBfsI9NmNbNHJ1JKOOu0ui9UCX5pKrZqNzZKqeYD2xpnWClGoWt7qV8xlrVNU6cqPDRx17KT1fTjSTZSgZU/XtjXakSdEhyq0bJ7OVKGF+SPYp64y7DGmWZNDTlUnjVlPYgKlp421936hZ9XbJfXYdZzsVap7WWr+QSyOWvYR+8rhwzruTMG8aPTCWNL1Ou2qorBNG2VNCvV3OrgAk0mJ1TWvHSEztA1tfxw90h7vKoKHESdgJ+Fe7OybywTeEhLg0SK6J0E6Ss8aJxXTqNkqr2lpAqgzr9fWUVJl8VDSYyVXXA0kY+ZZ9fNrLlz9pShJNIT1ckOznsm8KdezIbxp6mvaQxdT6T/wAsd7owTxxrbrCVreCrl8Sqzc6k3xzrU5cypslfc6b1WMKGf8eudjq28dFAZTpZHRO0AkrJ0uTOlrL9d4aZ3idta0uBLJvWq0714lKkoIuSgpjJ7WGjU5FHRARpAWZ0QA1WCtdVE2nYNizqdi/UciXQqJ+bN6f67TxXNnWTIdKOgrxN2bnX5j+rggdg9x8HDZXhJvzkQ0Ab3jKzoPZynbrEP8Vmq3M6k0D7Kgaqbo/uiU7wXVK16zj9CtSp4m0xe2b3iL5lKCsP+u9VnY2UqNdcAATrqdnZ/MqWXebOppUAz+o4bBXTpQ12zR3Mvfhi/X3zNvXZsqfANYb0QWz321oNZ72UdvgAk52+rvYO2KPQUF1M71lgVNANK5Xiaqdu8idUVlSb7PUqjfhowkJ0skqBorRsLJd7NCB1VezpjTvBR0miRK0msiXobFKcqij0g1NsnvZKaXHa7ze300rgHurT8xdk7N+S3uVrIp0K7o2tdazktmfdsiJdKGL+b9Zev/DS1p0utY0+aLZorBaryaJdv/7WdJ7eSPkszT9n8kwraC76pkSAoi5rQ6YGd4oSiIbxFhDq9qUoNr2aiqwA1WMt7rOyJWMzPhFC+8tfU02S5C9dvrQDbLrOPlPrtkET9nSSMysaRcZFJak2BJ13uXRrH2a18WLibmrr1AWa2yTvKkmhOoegfVQSZ2CCVghLTU+bGkZwoN7hWXZ9T1+oU3Z/LUzxQxPJQS3EtTJNKJWjrG196iqpSbyL0uM7ocpZnyQ6yZxV2qt8vsrLITtnVSZT03M3vrOQ6redUParakMugYqpspKEbLoq52S3VAaUGjdenGMImgBZdVqknaPb6pqpnQT1rTFdpUNp1wiOm04wlMDtXghUg3p3jTNdUWt50ZZMue298nGVZnJFVxaA7aB4w5EyaebtvijkvmpevbiA+LwRXJyHNwxxPPMTfEQ+RTEi1ypJONTIb7Tcxrl5uKKd/EkrlswnrUmP23E8XB/6+Rxl8FS+cKyrDNFRPWAJrtoSR1hJsrG/+RCXxtIJJlm0zQ6MqdIzFNUtdpUCpK1WW9TefffXHbCmvqSxHZpJk6YzCSBJ11jK11Z3NaxTbup+yi+dsmW6byhLrbSVs+1+5chHnapByaSdvHQUryH4sCDOTtc6jyNYzr8gAbx/HqULsEJcl/cvW9B6aeM7BWBtRuTqCx+IbTrkpJW4KJ7Z9t4ydc67CcPsEo9aQP8AKzqy+MlTQk//ADJze5BDc+v9fANM4f1DH+pnV69c3pnb+GuoI4/WnOxg+YT96RWZx/AN7NCj+iU4E+apO21o/wBDdY++NdpsAprTh2AM8a1lgoD75nV31yF9HRWhBJdJpxklXCZ/cdadbdiPkupjcAkgawjZ6Qs6ZammVpPX9pcEqXCQjeMasoqaqd4111KUMuMhE1mjavXrJskNJ1/aCRTKnS77eC9d2XnUqcJ9KJlDb/yd6dmmiTWf8t4HrjK/VHb1bk3t7DIoerlQshnuwxk7DnVnzOq14g+5+O8ade7HeJrx/UMf2pyF/M5e88k686oKnWhkrbkqOs807aAxkK3l6ZcP7YK7Hom3J1Jl0tUZoVkhNM5GtUqi7Z/fPGSlnTiouhDj2v8AV1Gp4/dDTv0nWFCMMafGqJ0YSfmMm2cJN+9Un1p8nHOyG8ZHVYUtZ1NMj5JpXuVmu32wGdaFTCvzKFRzbVaCT3AYNhCU01LISMqbA92mitsnVZWffJNPtTorfYqdZ1P13sVB0b9UMvfY0SdnQu0U16QFGyvZ2yoyqPupKFcmdjgbHYkrK7NGAy9nR03nu9DLuUvRCZOk3ht3p/EKamgV2DgJQtSVx0BPSeuMtaoL3dRVw0OUbAAO3bCTSsz5ib3pk83paAkaaMiXt7EvcR21TmuuDp9YL/X6gAlVjJNCV7W2f+Ssm1xsjjaZatHKDs4+rop0Ah/tT2/Gesdcvsz0HYjiKOgPB0aBZEDGNV2yYVTP4tUo8ddTIgkqsK3K54gFUARnVkUbNGSo5rs0Y7JHFddWdTj9ZcSbEyJSdL+o0uzB68ewe1BlIpppaXKTwLTZslH1lmlzS6Mn39eHtTVMzvyGU7Yv387fV1c3Wtfmtbek1lTU33xlI9HwSjSBx0lEp/2WtLIUdfKrtJkL2XLkn65dBMmSbvbdFao2GtBO95x/XtTxa9JN9sJK3rqr7cvmXuuTqAWbfr5qHbUyB3NsSWaJ+zpVo1WiQNEBJdWUbIgFL4t12YnU5dHT0onTnXrbS1FHUiHjvWXG6Sa464vk8lcfFFlVbNRHEzf8Z3aJ6RLTfyLagmOarl/kRgd0ySDXyJ45nKk5ZU4oJmu0TyVxIRJE7aomFDm7Om5ba26ZNxMnbU77MBWjydPXd1BU1PF9toh1NVO3RdV/Ib3VbEnQzgEDRxWsq1pRdarthLtwmQlYoBCaGdDX13kp11mhlHrtdWdEFpL27KmsiP8AcuS6aw2rYd3i3nR37UCawhmQCdcgCA6yepjXTeRrqIuqc5eVnjlOO9zpJW94K0B2Ws1t8Z6UmTQPXG3r421Juf3zq9gLFkyTrTs9HE1SHo6zbrtgvmNPbQ0aDJZ8p6lOeI6T1RqicROrg6Mf+ig2GUI4UXtzt1dLv3SHY0z5t/6St6HChOoBvY+eCIeeaNFfmbGtY0S+06kBWt4H/VUqCUv2zyj1/r1VSjNIbDbQ4aVM7bfakYMdIaZk1jMku12sHbQAyugJAN7R65e6HC00YU0s5E6n1e8snYDSoInqezOjCd4T+b672Lv0e3hvtr8TtOm0mjRTO3Jp7axAWg+3jYGhDauV+5rt+9XquQu62U6bBKnaSTKYaJlKk9x0fU1p6lTWjZrbrRo7CNeNapM7bfK3vqh9dlbAQfsOb7HbPRNUanQbJ20aNjegkdtK7Q0uwwk6mwJoFkBM6gOJ45A1QpP9sU0GIM7Oz364G1nD9ZwdKKoEj+pjs0YqbrJ3RvOh/uiZ3nlO89xfsYUKmHp6ytd1rrONDWsJKXRDMtFGnOoOsTdE5/Ux2acPxkQDSap1miaTPuVQr9PAc7LvYHZ0n28A+ozqqVquk+Nfm7rZpAk8kGfSdTsZ7GsJ6nU2bxk8V01vIjexNngD13kwEjjr1AT3GhkAU3iFOw2bURWckP480P5P9TFVcPFxUSnZK7UJ9JU9t3pTXZB9N4OjWEzN9zsm8J3twT+Nz0lw8orNg7xEpcN6yIZPRWXO2hA20DUvYU1R2fetCaI0zO6HHRXliS6B6+uicZWQRZqgaR7JRSUeVOyleInOtdVGdSKifiNfkxMiZ12tHJTMNPZZFK+rWFnmha66qnfUFmUwNwXkprxpr8OodsZFMk0Onc661W3wn6FY9tbWtbpQ3sBfMradjf2cJJk2UVTjWuQx3RvOeuWuJrh12nSUTQN2dRyBZwD/AFCdjoYQ4p6yBeneA+mXSBJPQJH7RSJW+RXWjImWlOaf3rA/rybXZPIzLOFBXGLL3ya6zrAbFzUm98vGMGmSJJyuJWbw1cu4ka1kzUclptdYnU2NJK4XV1omjtRhG5JzqFaxGL3kS/qS9sfPzW6FumaXI1VbXiK5Cc6VCy8W0obNSk32muPdHTeJ2STn4kssSoiqyq82f+vMXXc5WZoDdctb/hOrWfxL1Gf97cclcxTy3F/TJ+Ok1WfIDrMHx2qCHlseTVcDMT5yWbHIrdgnFW+y2emXFlGiesbJld0TPXZQSvbHj7aJVhV2I75FdaqU3R3dMrX2Kbp4vtnB9qrKk0CTv8JB9sGSMA/cNPpMo9QkVcZerl7J0UupVlfE43Ws7M/UL6umK706oqXUmlBtPzOo61UUmzv7nXaU9ZwOvhYtmuu6yYInTdaqQ4/13yVX+Tvq7LKHRO6HEO2ln6oG99mAE3rdUBO9qiDqNkuMhm37CSGC9ky43XbH/DIp66wTq6K36uvDF+uK9kzuO3FWTTXY0AzWs2NaZv6uzbPYKe1OOlA6ogE6p3Huqx/BzewC6fwfNY7NaqXrpJDkV8mVCytkzTVKRO9iSuA7ddVrDSOykUB8ypH7FVr7J+euthn5Js0ul12ANFaxdQiVvW+uneMHlEgU61/uDpXCN1W+u58P8HzzTvqp4TnUlTLrrQkBrWEMq4+0GdR1sOrWwNuzTGlDq4Bc9sk9HGfq7mk/RAU0eKqUjvroxn6+NBJuXYOW6dJK1laVMinfrSXiDRQyzoGDe3k+vjv6pgpO11PubYn2da01rZnZ/oTvWFHaRdJp3vWdXtrHYdzt9t4pQp1+oYqb3vr1DzZtpk2RWx3r7ZoXWG+1D12OjyhZ1sy9a8Z3OSvYBXtvKN0Z21qcBfti+ok6pxDqZ1NE5U4y7M7LygI7MdtAE/2FlKE6vhlmkciCeImSdpnX3vjpVw12dV5OEpPXLo359Shyq8cSuu2HzS7/ABAHebf1ZXThQ1pJ6y4T9ms0f71nfq7nbJs2GynQnbx2JuTY6JT3HQjg9hnCj9WXxxTYHU7bF6z1Cv8A6M40j1zfulk/sEm1ypFlwrtLigDlSb8fK85NH1ya+us2PmdeoiP2THUgZT+4+KjO5MHtA5SbTJp6mmf8O26cle5tp92aJdgEuyFNMz1NPJX3AVqdZVEyZyDM6Gt9TKlUc67llk1NTSkvXHYbOrvWXXvUbAMi2usvX7lYUVKD+ILqWXgg6jjAVWGyXNK9hHRWL9dBrqAwLrOSpJ84t3+TPWfKd1k7KEftJjuZJyntIOj0w/OuBuSs6q7yj/MZ6rvsdkwesuTQRMsv31nJJ2MQmTUviYq/VvVV6wM+QJW8iHt2evY0EoZo0uNLRvkfsaRnjQ7JOsX9pauWZwRp0ws6OpUzIJXHprX8buE0GIteK9/QNo909y/I2QaO2DNcdUgEI731lpTwqSk11GkwOvJsvfuKMtEjvCvzd1qnPr3peVGGciomAzzWsqQ8Y45mVmK2ORXa5p5dVRkky9i5aAeWdJrklLkOfji4rBeNqOS96UKUdfyhROVMRxTrltigOLlmeSayOYuRXhmr6vMf+vxKTvk/OCbantXEKmTxwJapMrU8h2AnXVVrUK8dFxvLo6hnFL5OFMyJVfUcKp0ZO3dLo0LLU+ME/l1245HhWbcRWtp1nWFPm5n7bdilT11rSfidfs1lUddZtduM6nQSTIk0FgNjydTr23kLBthWnRJ1MqfsXhX+40ax3K52/dxZczp1tpINU4tRVLN0rKS9uxd/ZyKbXfZJEhUpYp6qlbcP66wdy1jrU0Q7RxoN7rZ+Pg9eroVeqqAqjonaqpuZHbjOtyP10Ep+ZvsiE1+4zb1xk7bw270DvKGXb10qAqqKT4mvcl3WNHXeBv0DUuu29ahH3KCtmMG9ZoVV8O2M7c7a+uRo3RGn1BK8F/F+0+NHuBvwZfw7edTaKHbf0CnxyXbnaFZFDFPdh9RKk6g9Q9dK4eM0NapSdkuySqxn69sil/alfV3NJlV4B2dBiC+GvTIqdqNLOySiTYdTZel6vrpx/rvNfsvEBGs7H5hT2yNtKu2tH9paPVdgJ6KDiHX1TW8V/c6q9s7boA1K0tejmu07xevom3S7Zc1owl04SUOJqiWafRJ+y5cppCfVyQhXI0uOh3h5WFfbeJue0gk6ze71lRuUwlPMKeu07VCoakBoDyE2OIlVtr7Aa3RQGjJXemXtvNdaTNn6oCOaPazT+Y7fVl/Qd7p0+aYEFRa1hP8A0mtj1GfRNOimaNqdO2bKfQD65v8A3DdViv7i7S8Xdaz/AHYSa8LJ3vsd0N7nTDuQxl1nUKdM70ld9AUbnw11NOvd+9VXSGlnqmGyc2rvISqrRpraa7eBv0ddfHlI+uFGlwpZ267S1kPvqNbyhmu2eu3PScd1Lo3qqKRol1reEhPZRK0k/uqfSWoGOuAdjKp31y5e3i6QSlpEkEMoOqY/nTK112wySOV4bA01kSTANa0mWdjrmo/jBAJZzt+Cg12Wuq4Iv2Qfx3NGvO3k01CtSbVX2RQTZazJhL+4x9cAHR1f3PJtxvdbCnzfFT1DGd6o5B9k/TqrSzvs7nCTrrEexTUibIHtkjrTU/iCUGQlJjUtOyUrdElfpMlbz8hk9KNXaULZtmho6y4gyB17UZs7bwFacJa3uod7Oq+4HanTIT7MvQGAmQd9dOXTNGgT1qfexQteN/Xrko+l0UTKBqhuRn/5lH8TkKTvOx4FyUdQE9YE3itzuWOpWp6zOmRY60UT1kfHRyfaTUy7KRnsjB9tZboEXztl7K7JTsnJXsSlM9sXtWy5U2XLRMlg0mcUgzVMq053tpI46NUsJ/IrSKORRS0/yjK5NSo5bumq56q7nPk2nLPW/wD5jqewjMcdFmui8QtQVqRmCer8SA5mbri1zVTzTXIMpwBLNyrXWYb12sIesnaX6IsV2eO5oqMp7chIv8VgdRdnboGmXRWP1OzD2NYlbQ2HJMtl9nTpnx2rKNsdWNmsZfHOwCFaoDJGb3m0snCvcp/0sXa6J0DL6CaACVShlmhwgN65I3wiAzrRsl3/AGnSygGEVQ7uSurjLusk3IZp66FSfCodCV1pwrs6L411nH2BFFocB1Rg78Bmt5NCaA90OhNShSJspcZ7Gsr+pjW56m9zmx8yjtJopNi70h/+cfWtvmwKqX2aEVKNbywXJ/ByR2mXTjOh1Aus0f1H1xnzN6+odv1JJM14CU61hve26aox0EoSssr5WgndU51R64aJFl3sxd71EvVyn7dg6uk0dnKSpMNlGPiY73nX0yZmaxBnbEmnGfMa+0yNa2Yb1tdhpaHW1+vh4YLpBA1Q1XY0preKml/aEaCUwHDUDlbfqQo6T38a3hybdKrvHfbsI9UJldSozQpudmFDpG2ZzaUFbJ/EHRmu80Yzs91olHdLqf3tmvv71NGwQ8aXwFK1g/UyvKdS7HYsqLO6xla0G+2l11dAqZUMuitBk76rnbzeEgOhTRjX1cREcHTsnyjEatUTrvJHprKkZNAyTq96NM7rbrbo2ydUTt5O9eHsq6JlUDyM5J9kZnVbGtJnbtsw8EwEBwVneCbrS/XWTI6c5Bmdg52JNO5kds+zQUa3nYfMiX+Vc6iKkFgjKVtENyEvbeXCqZUetAL+9QBA7Gebxk0uF9t6e00oUWS5+1oN+7NeOMapx8DexpciSaUVpKx+psihgTZ21jxzVeuiUxp6gupdZ/1jvWMjKPVkwfNZKFM551rWkkz9nqh1neKNdl+vmOqBxXqBxImWazs9hyqpowdCOplMXzeO1cQ2AQEmMjWgn3Qya3jTc931rQAwiOtOBveNB5iDSEy7BZ09RXaNySUkpUmnShi/fb1UdlUqYgUbRdaJN+O/tqt9poZO2jobQ2T49uvJ7dOtpM/uWLswHSsbVkRkpxE1uZfMn6ulr92D2DDcugnsLk61pkNbx2Uue9tZVDQFG57ZGrt2H+5vsOxKdCP+nmgQL2Xto00a0RqR0/u8P9kjTSYtaIXytvY/c6+GiSh67VJo1N0BvW1kXQHWfGnsCH37DaS1hZuZe3b8kLmXChoB/sGO/EHU7Wi6ZHfYMJ+pt8kxNztZ6vdi3q9p0x1eSyVDaaTu9tK7lnNDO0NyK6mXAL9HU/lKz3OWiXsRXejB2d8rvUaojzxF5P4xGOQkdR12/J47DrR2ezyltjRRXJ1r4xEz2OeyOOd3ytlVPHfI7yKvjZvJI5Jm3ndSzx1EVx9Qj+DjlCho2zbSSS1O1aupDjVtTjetu+av5KFmoJNcdlKJQy41uUeCgnqL40UQIh22qBU1WO99QlNDFfb261IB7TooqRPEMEbUKRUGvV2Vpymqnw/sGMjZsTXUpnquRIcYYLpjGa0VjtlCBDJrvNJtK8ncvVpdgFd76sgUatenpoDNBSMdyqpQ2LIaXCgn2qQ8jVyCGuRRNU0T9hwlk9177t3sJ97CAbzql+CVsHUmyKU9ddlDtrYO5c/4rhutJ1a0YhPWg17tHKFnEP8ANfUnCdK5pAcW5pSR2q0M7INHbKPRydFOa+usrywChe2etOl/TPV2XO9oGkRrT7s1rNuNBoXcgj5pIErap+ibEWpmvasLALezhOzGR9yqFDCjsGNHmbJrwZ2bTamVPZoxkaHCXtp7G2Wa7pjC5+047NorWtdnRqJa/SlqpzqNazevx8RzuTPpR/YaNlYp+pJ+ZMs+YL+4yaB7PbwlK8qShMvXWZy+zWidu6ZVowTWnZ2c2SUAJRiJRWb27woncoMILdN6yV1lV+6PY3hJSbd7U34KHb06u9Z3d7wrsNKGsJA1geIu07DTsBSZ0uvzDw0FR2cKWewVsTBdaH6g5K6NV6mgd6wk7Ks9lMQRMNm3JrfmNeerrSW7reNJToR05SyOFFHrDmq6riG8ZJHJrUjlULIM65N51CjDW2U014T74+fpRvzsaqWHWgX/AAJE7G/+SiKHXcmdXXbCRfUqddSf1wn1FnT4B6JH45Prlfm8Hfi1vzE2hgaPWtzXWd9Qy9vmRR11gPYzSelOvcAZ3m51721OsfdB6nnbzS70bdeI+HiqaZodqpvxNGyl66N/XytM9gGQSrWRx3Xp+KYS7N+tdVSdSNekhQukPDEFNxL/ACO+o7MBNmETUjnXzSa3gnoKj7Eut4bpM7e5eytt2aNdmE0avVYwLjGtThIU50ZkVl8cf+wSnHWzTHpWSlbxlqlwgRpXw1c7nZE/V7Ce4VLZWOq3kukrCt+pQ0ZW+hone3O3YZIkDBWuq7mdDS62o7pJTO3UdzGlMZZrzfY7B+G+zU7xodYBs003TOA9BwfNnUTbL2lR+psV32fKWVJmeoyS9smmFoaJey6a0tVJ1JuZqqbsueh7UtMcbVDgGzVodayqP2ZpsSYdS7KF9NbTORPIYlAUFXdtHrFNSOXyFDLY1TOVO5dxc9TdG3TCdijtbaLIXp/3Sy6JGRknIPdl/wBdsykm+Xl7X1JJXtkzERo6kwVgINN1/wDQ5EsuN52rinpgtk1nEVSa5ol4e6Sfas4bImdc/K83mfG4Lra8vxyZU4qPIb+QCRDwzyQVnQkcid8XTOXlI3JHOv0Ih9c5eNhnV8oQ3nDX8nB3apkVPrBnBSapL/RiqpEJZreRHaqRl/UWFW7XjaOOa5SqybetVRyHbL5TcyldhA2gGqK65EJdbid5YGjKWL0NDIng9kp82a7Jj/V2VqRyN/2V2eCIITuFJrpJIDT54bFnVds6nqTUtaz2pqUA8xJ7DjsPIk6G11NSNGiV11Q4j/QTQYybKTc+gK7w3tzp9hNBvSd6zq9hwlnekHY6Oprq9vH/AAxU9HTpCTt4Huxrc+gA5/ZdA7ZxfMmUnS7NOdtjgao2aK02HphJM+oqTkG9bp/dG1azX6AA6xBkAXVIK+4AztZ7jnXSbm/9Wt1rPf3NvYFoNmKaXO3jhIpWEnZcJATI8NI9f1r7elPY0GxcqjXkafGKEdidvf1dMuveoSORIG8dgmOimsd7cHdaPKHUnusvc8hpEreD+TlaMqf6uGwXCDe6Tz2KdphSLONagQnsLgGis92o1/gHb9Tdbz0euHg6T9rPfFNHua8HCRr1EpzR2zaPqbNkLJ6SUaADsZpxoNhr8l8nQM+O+vmb6qYzuXa+mAfoVqVSSodnqyn6uebcqXS5Eu5MAmmcJT0rehRCdh9hR8fUVBV3oNqqPbdYHvtRvWdTW80NYhJvND5jIiOmTx2mFfb25Chx1X6hpDqI7K2OVtRAGdiO+pxr122JqsD67xntXYjbXh55iJNJ1Gd4afTztgImPb8wU5Db/fGXWzWzapvDXZ3o6Oq11NddjWABjL4rR20gEuMhIjJVixAJTs6byV/GvSgl0CtOwxNhnvmDpXF19spdZPu9KIGaSW8f7aCdGsvTJj7vHb+76yKT5pdlBjQa0aePY6/wn7Yy0eE9jwFrQ37pg7e4v/265ve9G+ooE71Rrqga9zrvWXJ2DARTDxVNyAVTvWEbfSVlwr6krX1E32N4TpXOuvMJJlM0dCmZQ6n8e9LQ9vCSfxmmdsOpdzKX3xrUugBNcutCGtedSZ2mkLyaGRJ6taKpK0dv2R7MaKT+LJpayqNuFb8a27nGk5MU05NdZ7G2vzTJ1JKmnZo9Op4pP2d0V6BPZBfPwHaYfV1i+kqM1rK8oQn9ztVLOddySsiEVE6Fwm2ncoKNUHMBpeRCaTYNLpH2ugToqsimXTAtcjhxn9hpA3Mz2y5/q5FKbxSxMBBTimn7v9VW3fHSdZ6i3ysDFFveTO8/+yTnU7OT7oRdPY93nU8Wp7cla5aev8ZW4rqzydoZyRiey0suN65jRR5OVScrOcyGl4OIqaXijpQN8EHGzj8c5pZLnp9GA39Z5Y4yR5+UsZLSPjOuPiaprOOz+g1NIVwc8n1flSPILwcMALezj85a+26KmvtXDEse0zTWrtJ6kdWZzZ7WRZO9NdrFmdyVAgbeSXZRN7snOLlZKhZ/k2UkxMyoVPc71P3OKy57hL2pRlMF/kcNKzlSBsPtU669pRqUqVK7VWclaXU14bNP1wNDOI/mdw+ga05A+7TQ7kF7JtpyJ19hkaNybruGmxUV2BXUkV7Vlbg7YTdTvDUT46p0I7EQ7OEk/i1/i9Z3hX2BPxxDrrFKN5KFbQD7YL2d3pHGf/nvCSZJzTKOddOSlT6aSqzzWyp/zNmxChh320hi+Kh/zUdrjT4NT32A6FIV+wC7FOrs67msA66zxHYEjOJ9XRsjqzQACrqnQhk0zvZSnYKWpcXqKu605M3veFbGcK82bZTcUDrGmr8ID9A8cN9cZChySigwUlzstaNm3F2mitqJona7KXF7e4zVUAShWo+u5dvYDkoKHBqtjrsmWHb21ZMU7OM9pNUOmsK6ugk1oR/j0SpMuAIbddqnOvV1i9Twfq7J2bw2AFJt0RvjKak6aB7ROGgRnftZ+PYrdHUEJ0WJ9TfSsnfuK0eTKu1Fpc6gCki+9nessCi87bXcSs9SDzCf7YSwGx1IpJLnanYMpLkjMmcY2NltdZ0HaTXiTnYKNqO8HbgafAETEE1h9TDSawNTjrt2KO2EtOeCTnj4mugBI6TY0mX/AFdSX+o9a0muzlz2WjsbB0CblScdf6m52emteB1PXzHSOhCQwlnzAZBxn7GtujNdneMhWdl+o7P1lJ7Z1XWShLB/1L1deB4ih/ifisgJmidB527DvXhP1w8Uw2m3oL7E6na9vQleq4D1c9Z867FWQN54u111mc17jXWc/s7zr9u2Gw2tFKgrWlN7o80D2NpmgUBSgfWaWaZPZk7OqN/m+upD9VlPcJRdFUb3UtSa09Ss3W/HVZt7OKdtsXzPPynIUhk677Z+ro5JRbHyADep2j1dgkgFTIKLVawNArS/jW/1rtS4T/2/msddNADKYUi6d0uyfq5MmuuEnYnE6jo2OzZVIModsve5RdSTnVKaPNKxX295ZQ7GvsbudpuHuyKBSYbqkxTZqgZ6YSEzJaps3o0wbfHX+NJ+oVPbJHFdGvNzvQ07/wCRU9UENAjggVOMrqsvjEqcviNhkFTVOW7Oy7kNCKYalTIo8s2ganRLiGt4AznUqdHQJ8TVbGO8qssfYrli5ZKTjl1x8hVsZXGTzF5UU2XBp3QSnq0i4yL2xnrKlWeDy83Q7D8id96uTmnuVuaJWQNI6NzdhxtFVFcU5x97jeOmzZK8fkRX8nE5ySa7HHZX0n5MechhBETrm1Ia2VM1nJYHU4KKnpkxEy2cgysxAq0ctD0o73VO5qrHfLs5pjOIJa4ia2My92ej0CeqLNTq/kLTORd/zs4S6aJ5ZjjJoufzOflj+oTcUXK9uOaze79tbap4BZEvjLlk4o1wiE725BtZQAaNnlYnb96su8U04DRpgE7ZyHagFduQsxoKanwCZdLquwGpM66qlbGGgoIFVvYFOzCvqObCnRrfbDQBlKKEaZN2DOsKZNYfhLO+28OlOK/4b67R1sxDrrNg4fuVQI4m6TF6vmmZ2le9cJ3KH/LzYforOlfHQA6yNLlIHrIyuRXg4GlcK9dOwHOxolZSd4y7wf8ArflONEz4TqVy9o4Hnmt9crzW5NppB2pOqR7K9VdyDNv9cf8AKwqf64w7VTsGEgaPPdE7nRMdDa7rCTXjWkw2lYUeOMpK4UMuzTWD9vCdGeD7Ug7Be2svegwo31SdU79mjBfsYASamTXbLjx0SnIaHULlldvWdyTkyUOwJZnKDSZJodlBrRpllK3JlUmtKdvVeyYiUGEhsNeu4fsrUhtf+qQ35kwddNK1JnVXQu6rE1pya3sL3tQDrtNsuhO+jSY7PGgQUXqIStbzQpK/SXDk3Pk14adrsZO/tSIo0fmF6fdrTop31yEBCQND1kEDrWsFqnRv8wkFMg123M6XOg2WvtGdWfcRH1GTrgb3hqdaZ9E67nQboQDzWadgWOvBqaNM7d4/1wo79VkqhACtht3s0FYoGKBrBdmlWtAEV2yg2ODvxJodjrSKvXYb/B1W0rYijt893hWzT7vePrsND77VYyguSnT1n67wPdZCbZdOzSADj6DnVNY+frIi4nnhp/D+rn8fm82Tqcs86gmlRmtKiznmgTZXjS6DfXYspLgukez11iAgnX9ytVRp2atZ9nZ5RjUldh0MrO6p06KXCNGp46e21VHO2w34AZ0NaxlPw3scqQa262pOutaukrFQnO249VqSc2oYJ0DDdeBPmdWJ2K67Dvdaa6+ApKhSnnihnVlMXduEOkYk7dlTqZpl7YHuxDp1ZkBSJfaVanH7VrGTwNrTKypvOP8AHfInUxh/lHF1aOl9DbJjJ2dAhmz3HX+AxfthRpNT4++q0NkppmlH7KFdpENSYDQ9ldGFdg1TqfOoSo19TC0n1N9azkrc9wesomqpAgg2SG/ePbTDE9ZZaQ0ZrH+u8NE9sjWmlkVco/A5a6x1XlOhlc3aZSJLgajipoVqZ+pFHU3NVv0NmKeVjTQmdO291xdnePx5qemRxMirHauNexPZa5ZmSpKlWW+M6mv2cu9UyckLx+cM3MI/+wzoTl3VVPJLQy8kkyZXGXqmJZZnLgeWaeKLN0zJTMHPF8ex451x+6TYcfFESjfGTbRcxy/Iky9TydTiofrl7vdF9djTZWzGYrlMjiN9mZTi2xP8nHtYZ0rJX2OjUm2jjns771VyEzO2JIn1s67YH+NSad9sP3Zya/xO1CnlKrXVDkEkcKSMaOpIoT2yQsaA1PdNgJ6z6S1Pi/8AFHZSlE8hrU/4S6EB7GI7daJlc0nuSPqiGtRs25dz2NwlX6bFrAK0LRO9M/U1+nVDsu2WtmB9c977afzSaN4rvZaGtVC0o118w/s7NdcBrx15l7N6jUyOVqnT1JpDQcZuvXQaKEudhvxNYgyKvXx11nYL1dv7vGuquUNAzVUUBscqRpX+slG39EOvtnWewiDinTeO9PXSGzTpWq0dTuGpzYpjQG8add86iOj9cYNezKCvU8QXtpf3aTqQDbvYLfbNo7d7HXn+NPphJox2KqvUcPs+dvHJr65euua9ddQMZ1XvXw3361vEEKxfs4H2XE6o4H2aSSdhoaMf8x9pcEpNspWw00KgUr23e1UQSdmsf9nLn000SAem3KSp8IYrZf2eudV05oneIzU0iL41tkHRKYmnCmdboKVGq2aifrn57kiLu/K2P5iAjlSaU8mfAUaI0/i61OdjekFaA2NbaXSD20P5WsqvqGb0Bm/ttaWgA7VibXbO3sGs9ZcA64U6XBdGop7K+LRgm+pSGs3qXfX3sVuqNB9zXu2VJ/MT80h44b1vB69cdFIkvb0kHQ0CGB2l32M9N0RW6y6x+ukV0of5jL64a6uQ9v0k32RafLAkDZ1MqtQ1TW2XCtUSFdqRf8yN14r3pUUnqyIbwX/Ch1opK1iT37iUrSyTOsI9nQL9RlTB0G7pmhLpXeU7DRsj7FNdtoOgV7EjQ/lqHbOROoi6ZxNrgnoxqdudWjJGXa1opO31cn66HbVClarGVxfrl6alzqSlCdMl+3ouuytFLnY0uAb2J9UwkDth/wBZrqOitUy/x9VpJP7Iz2NaJXf/AOS3wRpcKUDDejEbrxFmRNIyVLrROuhKbiuuEsniLYgrO3RugZ7b1E9TRUlJqn3eK16h17I11Qy6fwa60ZFdjsutGNT2RJH92f7QMgUda3mtU4fV0dRnSm/BQBI69Rw/PCd1pdAhrtPvnXaL+4kz9aiWq7ZEsT2xo8BgqjfFCWp2nXqdqxGac491IpTKrpdONHXWC0bzlguPt/EssPF8cXsnGEBhWpIxlqe2GiEds63Akqi0OCFIikjn7W8hZdJuqJxrqtZyXUyVnDI16j2etU3UhyUGpW4D17acgrZOWdpDOpEjXY6qV2vl8YkSWeJmyFjXK0QymFHGjlVPJdbsCehxzd1RhFht5tnHWuI/jpvC/wCalYiblwhmhfkM9Uw5OSKDJ4zmIsaZkaOaP4epx3riNNR2W6oZKO7ozt3ll2FF5OrhTT1zlq5ski5rjlnroMlSlx3l7916R5O2Xd612FKmsZeu866Azwqcs+prqbpaU1jTM7K3Vesnhn8ZocNkudwgAw212y0Zozv/AJhU0CM/izvqmXJTpkmdSuvRJfUF61hslzSOmK8qcN6c1ukylKN9gFN6BPZMT02G9Be3JfVfN6D6oYr4rRQo+IYytK6aO2IH2NVppEo0lFzpkTeNDsz13m3WMmzOrTO02ekgbf8AvPJAeoSGG5lcf6u9m8aQdwNb0gCDQGjqCZe2hx+004T1XbJVGA+InTJfPfe3rRveSrWJ1TBKoWgRlkNaxR9GdfbFWXIftpmyuRwWt1kJhSUj2M31PShHCtpq1/jNVR4Nbr8a1WxN+46647NGIe7qvyc9o0kuuuTsa3Eq7WSp9+oLhrRuB7axlPw9DZoow9rqwebwpPF1+YL28Awn/MuUdZHhtWhMR04rpzzbo82p9g2amUxX8L+ukpDVAoeP4OKCGP23leya69lz8y16qxXZcdzXY1vTj7U4b0oS06yhKw31BWmSsmGj1PJx2nk1sdy7rqb2bwo147d6HY4UdVBTYE+ay9fmWHXtkh5tk9c9qXNsgYUG6J32yFq3s77KwvVE98FQ8Ja1lCvuxgxXIr9lFzr/AMc1oNAzJgohmtHVPAyE7eO+q51+yO0dHXddRrrSOiwMDbp5DuuE604aOXKoQcDtPs/Vxo7dh+yuE0GsQ+2Fapwl9cf12rrxkaVKfxij9WVMpXZnIvlClT2K/wAc7fWqZgk8idzsRPMBnW7p6gB9fSNFbANGKlTpn76NuzF/1EXSKtGbQ28dKO9j9sVQxancgGtunsZXrWTMg1g/RXsJvCRp0A+YyTK4ASbNtg3OpMuVNY17OdDr5E0INqJhQ6w/touUvHp5vbVDkSnJtdp4T5VZxoqOjwyzaOAs+dTxzTV6z0rytzPhS0Ob+reKD1Xb+PtZ2H3CmxsJbprIpFMfHz/k1hrVOX6KSZyK+YV/xwd+rpOubV7Z1N6xNVMipLOCldsPt6JrWOqlnAOpOX1vkBII8yaN6eKlvQz+28c60g7h11ey527SZISGNH+cl3P7Ks7yZrqU1tmpySopnIkJBMvuVLn/ABBqvtp7FUONCIRQdsfKN1QOnbRvGvFyds9suCoA5ZonOKm5kE6+ZUuu2Xq+NyIT5JLxpM+/yNW21Sx2OWu/mfyBILyw0SbRA5KCt5Nk2hVPHNVM9+eScCYpMICtsDPHptHh7CdpFSJ7ZFRDJjGkyaqqN3J1ViJuWTion04luerxcXUVjVSTlSVyFtfIOp1NWAksS0clt9dcNM+JRM9XlGUc4eNmeyP165/x3lL2HCjs53F0TSGzdsqnqaenYnHXtYU1sxpa6pK73NLSMUJRV0SjjU0ANg6I8WXVf7EGjdbmsNU4SdnIkP1l7YprGjSpoO+f4LFaCMJQ1jves/th5RnZmuoX9vKkfsos+SfguvzC38Zf9HXi3HVbJNBm/fEUHA/44ejntTvFdIM6knE+u8IR0g9UEdhlUb8hDewHrj+bIrVelDWspNY+z4yVrRAfV8l65dP5kdqrai8igdR0xv3LlATcukaN6JnWzFCuqL2NTKO3X9qdmwzzbsn67J0O8a3+HgGeZ1f0Hq6aodZpPc/zw0VsJezOGiRxrZ7WkAffAAlR965rYDrVLgpj7IobM2IC7Ex8tzzsYoe57+ptrshrzP8AtDVTpfXWFa9woVMkN7Wj+2Gmu2RfmPtOJ9RAE3jT/UB2bTfqnWRwpqnEOrlPUDGdSoO/sqd5lZNCBoy5/wDnoo+vYl0Di7NnVaFTY1h/+dHYcufUKkAMienjuaGWU/qD7sFA160bpO/UDzOojudwLlVSiCbxUyNAGP8A2v1/F+xrqhvH7zoAmN4PXWJ3pMZNfZl8MpoewPnVtK8k/s4+12zqm1f6pgp+Gvwo8NCunF7eJJvWb/TI0rWIIOH+AK1rDeld9tViqyuvt5p/sDv647OqSPZzq9vKkF0eVsaeyB7+u3Wg1RsjfofumR9ROsmnWFVJuqesoJp8KNY7/UdAZ1PMHddcAJ8dklKmkxREzqMmr1pQHqmAM6BS5nFPzHezJ07ESFM03KkbidZ1WdL/AG1hI1svXYMPqEs/2dMrOgkjWilKMK1+VYG1ErFlNZaaEdG9bQ09HqJG+23wVEa1pPuTnnbav9V662rtpATr7VeGpoqDZOq0lBTWaal2T9QSSNbXVdcJSNuvEWtAjT45fYBzfSTe/DZLNd3fUXFXTjO5dKEe6WisuutGpdDvROjI1JWUn9QY2ubMpWuyUojs67WtaWjezOrKUKEhgyazy2sda3laFxV+yLvednaCb4/VdEmiJ86i1S01pSWq0aNeGqK0zreoNyuIiYS6QD6uwCRywqiVn7+FHXRetGoJu2cg+zh4jlJYaFpcaWXUfW3t19c7A7zsq1nLJSZ4dcZK7OFMwhCsssgR0yOMgrJoqtZ8inUhp8oe/crL9pziDqh4SuXC0oy7QYBE/khkxsrkFPa9IlNO/wCOGZd9dBwDO2OGuOVk52ZS2u5OHGTey4m+RrDjKVWTrOc8xHGhHE9iuOOArxgDlXKJ7yv7WsdzvP8AlMnFLvWA3ydQma/eXkOCez3utUc3XrLkcg8aHcZEL8cZH0Gei4KGFJRWHL1knPGhbrvexpqsintp/wCesXSOG9umkQqvPcONK9qfNI+d8KPaePdR7yaa2teuEnYcZextNO2tOxda2E6NDLOIqOB/2HqYU4oOs/VcfraHbcG9+aDZI4z4pUnUpgfQ/dC9Q0qCbw2GloDsFGti9acU/wAFpxDzE/Nm+y5662gbcKETD/rEeqm/sOAG8F1tkOuydLvK16439XD7GE9dGeijMimKb2W6SiqOrqaSXcOzZ1H1JJp0V2XEHeddhtfXClhDWw0P20bd6GfqudtnVgE0gj4T+AyVLpNlaKZDF9Jw+qh227A1WEm3N/XeNf4M7r2Wal3OgDDynfu3adaKSn+RpddgXfoodHe9phP265QztBdgRoqhdTQ4p7h7j1k64bDzTreCdgxDCtTrE3PYj/MtPQuVgMDtJhPjlKpm9+YzsnHf7hW59h3px9HRPhgaUCUlxkNVnZr913kXrunAKrecp2ic8CaRO2aA7ZoQytL4aWtsm9G2diV2+p6+BTWzKgkaJoFc6iNOjWkTYOjthWvEXq7a+oLsrRfWX62LrCivM6iukK25Boduu2H9sd7caJoBnWtPlZ1cK1JI7NC0GpEfxmWVy6O3nbrm9VrEaWcdv1HZJjvWwfr7Ouzj9TWCo1jXk6B1tJOyDI7o1qfFTRn+G5V3jvJrzyh06B12EV92acNFZoKTK8ol39lbNA5OmnRTNG6VNYD64zutrJO9U6DESgyZ92OivJTS4jUjjJuXCf3c/VcI9KUAwPo7J0IKfqT66J1Wb3Pgf9Iu9zJ/L3GNqHVF2jrOsqme06XbTi6/DSJnXsDh180/23hYqyBblaZMA32X2gV1OKkbJrwUolrZRUiv9dmnr7Wl0e6yHzNhSujqY/5WG19JGTVL1wofVU3opLoyvQM1qXB3LTvUu5fFQ8doEmUm9B/becmy8mVp2j+galC6a1jtayaLgnGmfcKJ3Su970M6wp3rOqYyTPlj1yz7FCBul312MoATO627ApyEdbiqqQYTszleDs0Gnq9fHwzkkQ35T572y0TqkzI0TJ/fOX66CRF3dE7RJX2pO6ZPbblohjGpQPTeXOh3A1oOSZ2ThrdamdTtH7VOWsrqRoKyKka2x1rY8XSUY5OtEtVM8iDe6VLmpTO5NUts9WiIbrGgnzutaGWgcOPTvOw/UJ+qE8EnG7HtQEwTTJ0OxQCBDcv4cnC34xLFShyHeTIh/koeWft1Yk1lQrsuLmCzirQ701XnNP6twXxEJxIGk2A9WNsqzW8it0y3ys3PXqIZZEhq79Umd1Ln6DhJHJo1orcQTfYpHdGw2qs0LUynZNkugW1XX+9yn6/UklnlCZhRo9ZAV49lbTXcpud7yn3ebVUNtOTTVeL7tmhdJrEKSg3t3HuxZ+6rtqXH6m8Kalzq+YoT1qNxTtO1GpobQPXePU24B45rfmb/AACtpWAFM5/iImjZX+rW96mjt7SUok69ChPF1vEJSiReykkzrHzqIfumTesINbWfrn46Ce3qz/xUA6hOhEievTKNpSSG9dd6c1Pbpj5WhfQz8FwDrtDVbzZsMDUmGu2xsmc6ienl+FA+r/ywofR/dHX80TtHH9dnj7srVIuvZWd7J0mKjvAdos7ozkomd4nZmyU3vPNqHrhV7TGhKAoUkHRob2pjo2Z2O2yATCgUwNiNz2rCR9zVD1wDvs39ndHb7B6OadAOvTK80ZH6oqSaPFrCTwUfNMm/EWWSZJHN6g2nhjOqRKOroWTWe60CmpxkZMEJZK5QSXvsckTq4r7uXTgrXUP3WUiqruNYLO5yxkxPzVbdadNGu3iYeQufht2dQy/dal9Bsd1kOqKxBocZB3kybpKsJya2VWa1LqBrVYL/ACpilOb2lLp4+mMpUpNKpk70aPsepqVytBKCuqy3tW8d9kw32Kw37hRvWdv8xDTOQ/pka/tnhvbvYJQTsKNby62mdjbmiaaA3usQXabP1DwyQAcrQuoPq572QnT4s7FzRsrH7eYTocdeYB2dElay9arPw8TtpxlezhIwGHkaVZnqdtjgy7c/KXD3U4gznZlwSo2SnqmydgnVCxp65Nfbxo7bwdKAHqvsKesqe9dlaTWD9UP/AN3UJ3nVaHLfdig4L1TCh41wp1rDyVwWacd9aMk3rcj29CV06K3IeTrLJaxfTXZl1jXaXfUanY7reE9prTNk9ESAl2Jpo09sDR1y67PmggoiEpcmd20o+CVrUYzqQCSp1jXnUK0C7d6fDaDt08mq5DRv+2aknY1/mHSXrg7NCnjjKcbs0zKuuuC6STRuwuu5OeFJgLKZqbJGprr2YoaQan+2NWUGF+KH2okOL0cifvW7rxUof3jrspm+1MZSBkz/ANX5XUqnZo/szhbKyVNa0a3levXO2kcpJ3kKmlgVTeuLtMipJUnJPsMzsO5SpYduzXIzoZe35dE8y1cts9DrMe81AtZc01VPJSyodkLeafJc4osXGTkrqdQ+uOyqMlRDIe55M9XbcEik7OTVL9nHlN9WWJovGyb8KL7Bd+5yQfx9h3b2LAlHiWrqniopndTNFYvWyDqdt4S7Nz1ONCa6LK130PLO62TBEOiXrRXR6+8suzW2Z8Q7SosrhTyX2L4Q1aEvGM0pvI280uGqqsJpmcTqYGo7ArvetU0L5OhERvbJmlrWCb64S0bCmXsKydsjv1VKXatNUYzNmTJ7or+wQ/YTZ31jopMp2mjfrWmUwklV5BNJcizRY9POtfWRQrZe6DTX1VFrVZPHHGOte+OvYASca/cF2Z6aMT61o+yYhpDsfgmjYbrQmvRadkkhNaxfsmIgygk+ohvPGTF1mv1CypAD92Gq2zsfN79xPc7bowlUc0VoSDWwndAa3ul0LWCEmyWtKb25QnhtkXDSmDsQpANgV9slO3preI0e9dGXXScJeqr4eXX21hQ0mdUFwFHOpswdWiz9s7LK5227yytZEpyLngKUjO8Hcdgdiu+xomTfnsqhp1sd8jvzrge+wG3QbredT3AN7xofcNdwRXeeA6fHs9tAZ1HKdPsj7pXqLdOtgEyigA4r4YJv1Dfi6du9oL7j5h7XtbZ7S7eQz/8Ae7NaTV6xk6ugSZGZR0ku+x4m8k1vLPzTonqgkq7GdvbKfN4L+4z/AITJM9cuglcADzzUpdP6dtytSfXF2Oq81s/GcZ91kKaB2T4fm8JShevrjJ0FZLia40QnUo8q4Kfgm952Kr1p2UCs7wDfr7TWPhOitaBBjP2VxdTKdRHCXRibMK3WlrVaB/7tCdAfakEL64/7o/NYUOjGdHmg3mnbsE9zqbUX9o3UhqqN9Slmtj7BRRudHn6FGhdeqtpqcrQd0BFTrpBVJ1/2unesZZHYidcn6szl7l8TtOsiRMaVDNe6NaHKka7YVrVYaZDN+iPr1wOs6Cdy7R6YUvuGgrRJjXjo2vqD9cuXY517SOezrGWZyTqC2/YGw8yYJlk66cddt4G5aCuyRhR2CvfMWjzO52Zf2dPX/oQTKAoTqtGAb8Z6g4f1wPsy/vgbKXGk3p34jKVQSIq0/f015eMk8Y4O1VQXVf22IS+nhp2tAJ+IyemCUklup0+kjm9hrsM7ydG9o9XW/wCtM1vaq9isZJveNAaChrzqIDbL1rJEqqOPVIjSO8oTVTNTUmUpyORKSOTqf2jUgB1fLn111ZdYIDS0Ekop6xszm431Dck6Bqkx+quUutl1r6kSbqyEZdcsE8k8hxx0ulN/yo8hLbtpJdc8FncOxPXK0brKnsUnLVTKT0epsNSTn8R4N3/Gmo5Lk+vLytX1y4QUha1GTSXMMUNzlWeznIhU77PYJ7D9mFqRS96l4eQKoxFnzqFBnJDPJs4yh96E7rJ8veNJOsDtLWEjP2qSFGJZrq+9dNfbrQU9e0h2kUlaRoZ0jIz2Ch3SUVQE1LdQEEzs5qaOr1SScToORxybsiEN07+sPJfnU7VAY+msCgUOOkKSBgWqeUZyZIcqSuqTW5Q7aqnK5B0ZFaPGlnyaivo6aaMgJfANJnGrvA+q4m0M9KawGgVdSKz3AdtV0zQTo6nUc19u2Mnrmx/CTsqe/i60srtcJZfUdGI/2dG8N1rHW3Ww0CO9B46WjeK+SB64utJ1HkXJNUqSq7ukl0O52poOtHiDP00HtbN/9WbN5IAGFG/Fa0gBQgqZv9wHZT5vYn23nJP6K9p6g+Iz7jvrvPyXBTZjLvtnNwT8jhuL44eOJ48hduCvmbR0bervr2fZAnWadE5RvzJXeV6bwXfrpwkTWFG9ZMu8HzebdC+9vAVw+tIuk6mjQZsmSiafdP6ubXk0Gxd7HPNAlaQBf3G3sY60TkU7ZSQpzejz9lB0qYn+YSf2y6X949ROVSOs2ptn0coU3Ma6dlkZyTzeOuuzYu8qumJVSGDSbxHrpleuax+zOrkb2O6ns8YMzh9nSV6AeVjYi5bsAX8UXfpo3loyI+msX8EXt5/x8daN6A7YeguinE2s5O9ay9mNHbSeVWdXTsl17FOqK7A+lf8AHGtvlhfGw8HBHBJHGouSJsP66o7G/NaloA66OSnQYe6V83vtuhNBQ5RrWwQDPBcEVrOz/m39zw0KCZH22Ymq3kT+K6K1j5OKSHUl2uVS1g+4j2MHbibrzqyrh5K5vzeW6kzb20q7M7BrEGthX7l765JudLuQyAidpT1Q3/8ANWa2YjrZ1CisvWgLH9wQ3OG5BzrujPJ9ew/qbHZrpolJFweyYIW57TrNs1ivpiouEm9JtBWDs4eOaZN4UqmCuzN+4naqGTUmU6DVeuMlA4ylbKl64vVJKnW8ZZnzqoOQrRpRrYS+Oa1vSdtmXJ1wp0ZFdTq6VwnqBj/tBSU0lFe4pSY0xK5P2ZrKP1Gl1uXr+WnQk6nioO0QJ2IqC67uTQLTR/rSk6ACtrRT1KPBHfgh1neIOnHZGk3rR1A2R6uLoUquvqSd1OzpADwxqojWHICOFNV1GhkGo3ShFVdbJJSRDzNmiUhmUyx6+m+ztQvq19tapZmrIvSi6/QetMikrSIzSzSnXGdvc9NaHdK/IqprWFckdR7PXaUclay6SUNvklWAUvIVI5FUVTTU0Acr1Bme/YS3UtN8bUt52p0ZxPRqa7IuQavu9SqaRk2S29O78k7V2OOWUcCeqYDDMt9Scln9wo8C65J5lwGpbYhaKynwABna2/jxbMbKanHfZ3C3RTyRTsOKR4zZREgdyL6Z21ArSAqtBp6+4T/oSVLly9RHVBtK6plyr7xu5x2SVm2nxX7IBQCs9kInUuIkrip1G5JO2IsmRR1Big6yVH+HI9aJQLhQ7VIYWyu511UCUUuQlCHY739ico/3D6+rQJu6NAFLrSarKDZm9S7K2q0rIAPlKI0OuutMiFZCGzHXUrBGtD7IZU9jQLM+ptwHa4vpgUPtCip6CSCee/mbJc/fcdPgSe5rpR19D03I4Jp06nTgbXTol1IIGH71QJredX8HZ+CX+VsEwXYYaXE3Q4yjoT0wFcaPHHWncV6Skn+9fDOr23iIuzyRHcmO+uVWpBmhRy3T4+uk3+h+7xcQnaSrPYmTYjQiBLNdR39XNsr2mkp3retm+m1Q1u6Nhnu9oJ6spW82+mSfYco3rT5owFMV1MtninX8yZ3sf7aTwduzt72UTDXXRQIf/wCpl1qq9dEmq2ebXLlNmL2gc29TJP8AspacdVTgeuNZX23ORP1zssm68O2SD9m50dcmushmxFROwDKNaH3WM9p9ryQYXoLMrPXHRJs2O1orWezpCkPeyIKP9sftOddvhteyh2xrvO866p2z66Fo3hWx2R9lzrarkNmp5TU72h+KdQ2z2RUFNEt11Z32TGgneD/uddv20BvF9Nm0809tiu9NCUA6Ch9AMT8WtAUp2Xa/YrNjW82uGmWQd8mh0rslJ8aGgRR3nXW9b/DF0GpoDWVKjgaknCdDkao9FcR6tMJU5186u9U0VO57YAHfL20GJudInbypSRIX9XdGgGd72Mygq6w1W9Nf8UQoo5FpDFfDCmYFEp8qRfYkJ9Z/+ij7rK9Ewo6hn44m3SSbwdU782Z5sM6vZR99A/NXImw2w4HWdP7vc7n9fTworjNk/bbWtG+ouK6NccsyU1+LkbZcD/ciU+qpUmkUNb+zIPoYJ21leSmMpPsCyuKdgwra77fYlb6z71G1fdTp2XvKD8fCfGtDtdT4SitE/b3SyrfsaNb0YSb3gBAYOqF9/qoamMa0Oz87JuTJDrVBoVy6fJZ0UmE/WUt1aZaJJjLscgIoUIdasHbnEtGWH9slak3yalHN9ta3udJIqlA03hIUyMmtJJ2abome2PMromm+MvLrrUzMrt0+PTGkoJmopU0cjKMlTVNz2Krj4oSWl/KrAI42n5V/aNG+0UQqzo5LjmaurnkocN6KeWaqtJrXXCSnYydNnW64wyYdMpWpkCTeyuTtvjOGdV2utU1Ul/XwksKbDr2CTqzkzt7ZctIpK0Z2duit/s0/ZS4qlBfTCRWikeEy6vjoBrcqxYGnZVKdZ8paHCDRtorw6up6tK6mU12zlKqNSzUkhX105XtKRse2Va0znFJUZ01OsdVZITvwA66xpn86tUK77IRAHhKUOAsuNPHLnL/9LKOHUzrOM37lyJogJCc6mjSJ120bXJ8WsaMqkmTIp7ogviHXFdO5d1tTY5ooNM//AD8PVcHQqaQMFrsGu2zFSmWKrbL29azt6uNCYbwfqgutb6tT4bJ6pO5TFQM2nIqJQ0r54y9d5I71l7lHD8xXwxdeYeaw0Sj6QuNAGpBo20v4e0OKAYppC/3eD+VhoNjt1ku/cHWNK7yvwypKydbykNGB9dodgpaF0XOjea0GVYJrkp0OQEpl0aUHfuEPXIXxHXoUABm0HUbNmb+zhQq4e0OXPYyaX3OvT1l+2sQmkeu5EmV8OyVntGsI0Kj+6ql/CWdi+ToTdjle0SoDlb0Bsg89Z939tPZ6phT4F6DSi/iIiem8AXTU605deyZs6is62AhNVh+iadqNoZaaNSFLvtrx8NZWtAzvsQKMtZEnXaVtcU352/3J2yaNjrGfs7K8MPqazb9dmqnaoya/tPl70YCSZas6zxwNyZVfYMp36Mmys0ye0anIHtrIR3hW6cK7UyMmxXYaSl5PFfxZqT2UZ2zII5ooaCfHAHwUPMRxHNu9H+y5VC1hW3SUNazs9tNUPhoXSn2Nk9mjKhDI3pyJ0oa+w5VEiEy69g+zmtIYK0o7/ckGtFyG9L03JGhDFFVtennjWy9MhgEmsa3SZpk0u6DR/UxpE3cyz5M6OuKsoE61ACVporYYUnmFEymEap1126x8oxnsIs7By+ukRINAuykT2lrbvH60Vim1zqVyGV46DTVaaXw39kyl0a7dJae+5VSvA7eAdiSZOz26YnlYEms8/qOt0YxoDDc0OM7t3vZpifwXZXiekJRM6A6zvO2sRKETaS0BSnbehR0L1qR1Vfjk7PS99tYIfZPfsVrSnHRT6jfIONOzGjYZCbVAbDLkKA7O1yQTtWh9OQ2oCUKkpJsqld/o7aBHCtqYqy5H+7UfMqql8t2CNdeSciph3iPgVI0OaaqZw8CF0vYCiXqU4PWfOr1dbexqz9ydAmeztYpTCqOZmyU1ql9QtUk1dVQMbpautySMnWWnk6zMy3uu+UrPc4lVWSZ2hf6Pj3kiJl03titctV/GTlAt8mJDwmuOdE7vS50TkOrysQi/Jh+uOvE/ke3TKrkR68VXJX8jKVSRbKlXYz2PjcVQ967i5NjvfK/bj1Hm05ZepIDEmh06HTOEvTeNVKuQdo8mRex1IkknclVjqY0fH526R5JitrpZ6UyzQs7fc6JRriklrSCisqGplnepj/kTI4cjKmNrazdutJ3/ALO2pLZ9kzjnc9s1RvY0Kodfweu1gNjiArnWNVK6NYmwxj7TQw/xTLcHeaH+og+DLbSjWqmU0ax+2g0O9JqtLRWg0LkiDeFfbYpraS7pR3owrT9h3SZdJqQ/6FU3gZOokxNHly1OE+mxXzF+yppOwf6hvRQjW9j5hIqY10CWgQHT1BaCUw/oGN/hnq+WuhBOqY07E3p2A+uP/eVs9GjrvIA3gGjERUuusdma3rXtUOFOnI0mm60eC9Rze0wNmsqtJsRHc7NGA7NOhDH+uwE7IbZ98K29SpVYUN9nr7+bnJ0BKy9tY/v1kKVzt+SqzoWtVvA8AUaU9lEutoghvFfcNzXZr7VsaerI78Rk0KJ2THbW88JqmERoP1c6+mH9nbqkzkpNOQJxztkUyv6+OyQCdBvr4qozjKdTEOunqW7z5E8lMvGOjTyS9jUaZ0u2gwl11CdVpdddvvb10UaENa14oSsi1S8vhK12LesmitzOpkk7GvBz3tomfNPbz3bQ7ZJ64v4YpsyKk8wNroUkx06Ea6+6/wBWty6/KbEHTkf2cN9VzsjvKO0y4Sj5pKaFA84o623myqdeVKpJNVeJqZnIrT0BNBhonIXTi6/GknwPRWtyI61rKCXeCdXCnuuf8RJH+ZEkK2ngr5jKoB/qL+66gaK1L6LI9r2oZpoJTUvbO23wkZ2DW9hIV7XlK/n6o6Sgp3iHbWBv6jR26vs4zuWhXQTQ/oOp2Ok2mqQYlaRRPUXfs96opryXGWEQ2pSB6tL6hpkGd6wfrQdihl1oM45anzSzpEZxr8M5HS67fYS6evpo3v0p1Xn2z+wLsdCSqmK9dYDsX/kUszvYC7TkPtomv9QK7YCzp6+CH2nSIaHsznZRwla3hCfgd5Bmux4oVtT2VvdPhTs2VqjbpFEa8ddXDWWtS6iifqFbPOs9vHsXsa3QPjXbFNBku9Vl7ax+xi9vw+o6N+qToXNteLWuQDtqWMfIBXUuR4bdPU0bfFouZ1SzKE8eyKqpS3QvVMU6G78cPtxtZ7+EOzId9tlu2aFK6kSystUle8tEnY5uRnpAU/ZLu1WpomIl32GmOMaaQIWnmmtKPKVWsKitByaDWHJp6y09FwLknZyhAVVNtYhMtsyVNLyTTRtns7xspTOKX+GZzrJOn+VXVNM35Zvh7Z/FE1vLoeoXxsy9WeSpyIfKYD9eXiituNbCTjWmhuK2UBcjsPNnDW46tE3c6Ud6grRWFK6bVkojjKezczUHWDa4yMzQ12mdcdiKcc08glfYKAN+ctFTvF6s5UpLWKCSGtGnX9suRneWdAnJqTjBgGamzU00NHSsNdSS5dFHFPauuNEOmaGhDU0GA0VsapZdsa1VJoAO/UZZ3kbZdqdysobNBOwM1qtLILnT7HVjWl1s+3UNY63WP28WANhAe4IvgGvb+0+MjIYKpAvWmchA22TUjnbT1xfGcjTMmAp4a7Zbs2XTscF0uQa2qhrQGsNm9e73i73grXXH92h9d4ik4hvTVuuoSA7Fb1iaBNogQILjKppo14aQVezmvO2E/YrPzeNL9c5JnZsNacEz/lmkzlk1s4q7Vht9zv8AUzlXQggZH1cZFNG9mO6nWKrrCX8zkQN4Ay6PfcPd6Q0OE9jOoL2g60OD28CUN47fU1e5dPimj812cdiGD9tYTutG/fBe3tjsQt2Vnb7Bh/bPd6dGkwokNr/pKk7Sp7O7Na06YwrWsEFFepn5IpsFFUnQd94ez7Z+GQB9s1rkN0EuzWxyaKnS71saNm9fbYfhiaVxk7bx0S6JSeqppDsdBwp6mNU7DhA44ok9VKE1kh7g/ZM6qrgBtLl7G2jW8vQbw/rsJQaPdGk+u2l6gbd6Z2UmVL17Z1Jd4fi4IVrGevubTWNn5iDKFTrD/NModcAZR0bQVZ7YVr5EVgDOsnwd+TWGjOoyZVaJxUBfWis33Vz3Ws88xnVAE/ZE1VLhO53ggDlug0aAM66pzz/Wdy6Z/wC0N5p/ENK5Ovc7MhtANYSdey0UuygQanzrjsCc19uqTpc7FKZ56Ya6aypEHE2dcqWNIJUpiOpwlNudWjSy9aGH67KrtswPrttRdD9jEDSWLc6dacP7bx12w+9KqzOxdnnUNamSt1jqn1kl80bN+9nGntoqljeTJYgSFOCFCa+2FK+MjQ4j6k/Vkzxvb1JNYKb2UPmP1PZrcjnleP8Aydh6uWoGGuoZKguClM4G9iUuhddqwk/EAdZM9dKSNMjP/au9HXX1SSV2V+mK71kr6GhdsI72unA+2m9lCMpql313h5vfYqvTRsCn8zX2ayv7A7K2KE9gEdmGh3inbZEm3Kl0uRorrm3toPTOWdUS3J1JCifc/wCOyNgr1euwnYbaItCKfd0CbzkmytLDWl4wJKbntRLyca1I1rr5EoII9laooZImIGTjDumMFBvqSq9jYTbPmdQNFyzQs0Rxm42iZfUnWctdRia4pOPjH3ySF6oly9nI5Pqw1ztDDFJoZhu2VEQxkRJbMK2GrQkoiO1ds7XW9E/Vi2e2guGVyKSqnOz9kjU6Umk8mRpnOyQDFsui1QljctdusXNMwBE74pBU/rHnJ/SiONSdPIKbD7BtSpJzR20EhGgPwxE6jdLxpnFLKL2XtCS/yCvH9nDc8xs6texQ0yMzQbAJ3hL27KnVSQ6im5+z27UDUy12aSfM8K6pXZ6j9Dwp7K19vthpUU61OaUaJFnqrpRZ888SsJ9U/RAkJ2funDXXzrscmXqAy9hzqFaxGoMiRBzqb3h9Dwrq+bU1gektyyGRIOIa2kpHZ0rLn9qzyRMaJDRXUrf+Dm38e2tZcm8NAZsaZxndbCvqIBSuRf28/wCtdR/eqNYT44r3NUfXCkknEdfXklNYV/me/oUdnK0zlyXxmEkbc966EGRD7Tia0k6meuE/XD+3hX2diCuNdUworalbEB60uEqjlC1hQfVpeyYoOj8k0ZUmnSayq7BqVHxEreIV2E0a3xCVW13QA+aylX2nr+OvFN07xe1MjXiAFULta0Ne9WZCtY6fxFHRJ1MZ1+VreGq2YyJkB+Jo/Wt+Ygz6O5djtnV07w2qApWhUZxn7Vspmtuk3WO1EffsMmjW3tvH+pqQTqshWxNTXXi2cMTjWt7iNM4LLvESnSftANPZd1RQz+qvWRdEz4U/67Q00s+/4GD98saprClJzqr4H1DF27PagFNq4g+5NeO2jS54o4qG0dy4bHy57V2OTit+Zw2RSdtHp7Xv611fZrVbWd1iKEhqZ6sq0o/2XGfHQ7oywaHCRwt1p6Pmr+2jFdeyr5nU7G6p9kaQoSSjw+q7ffzQT5f6YpROCk1sPBxPfE26Bdm0J+2FZ4+4UT5ijszqsgg72I/2ev2rZT10CdTDSmclfhgmtAC6w0Q4ejjqQc/J0G6o2no4y7ENVS4AU6U6+J5oJ0olda3jPvoGnOqviEiZO9pj/ZMk6Ts1pXPQDBZrToFcQ1LjTpcf3eJowNumk8Bl+un2TB8dxsFzYiKLPk6R2a14Vpdr+6dlNh71c/62aN7l3m3+r7vsvu5wnQBbrWWjow1NVSey460a6vmyURzfYMrTfXB/dm+1GTL7Wdq2mNTSyyLOnw3Oe+ZZ1qayoqh0j2wnXI51+xnXrS4hJljrsSsMjWjdEch7DQ1PshXVWQEyaTxbJHfHytcrONfYFSb2osqlFzs13hcP7JnXUiKbEVqti6+mFfYkK3PbJhnkcp6rRx0TVBxhU1GXZT1YgSqGWZ1hLHEkxV7Jua121VJUyTSyrzz/APUSh4iZwmupqY8azk4mWg4qamZTi6SU1Rc9zirvRZHOVzXwpLNLjFTyClbNCNaGNxO2q82RUIfyXurkIftO+g7vJ2V4UOPL9euFvZFs1oK6dXLGtU1ys8hWG+oZzVyQ9YOVeM1K3Jq6T80Euu+wlgd6ya7VjRFbyaa1qJE0Uf6j2onIoK281aorL5b7Tm10Z0r+SqP7VtmOtYm5ZwlZNvqj2CERZkwrc12iQnay1xuKyDjX2AmqlRuSuuHtGwWOqySjnbdDkuzwrr5lG6Vhbl0Ghx1MmbNphrfoC6zr+g67ae263h7vegrZbqXR/UxHZoFVQKPUOoAee1Wkcnau2fcDw3rc9sh+3vY6uIbHPCXegRGWh2SvjaPg2B5oaKxHS4ejhO5dTIbvOxQubfDGutC9va0V9ew0MyspRvDWtFyoOT6bdkiYUI6FR35Uaw++t+79kN6EOzOdTxwdO0o31GQ1sma9GVpA/XLn7APmhF7eyLW8ZHzFexhrt4SVLSH4E625b9dm1neVrRrWKgS9dm8Ne7a14x7WmQ24vZ2+MmNaNYqIGtS1iCiIQAB2dBK0OT7XtbI89YcB6ml996m3E1OwNht3vx9TNbnxr3RQGkmQdOxlMh9cOtXvK1+PYa7Yh2Jwr3TyUbMVIHGh0g+pjrFZNg9rTLrUVvgCeGKNtVvJpf1ppHHWu2bK8X6ymXSajJrtI4S09WkJ0roKwpa0OhNTpv2bO1bPa2MjtD+joNvqboxdXs2k+p6GVO/wDWkfBxdTTm+0mqPMN9fHw2Eou9DvL0zrBUcPsudtHV3sHE0pg/pggmD2rT75rSrol3vNf9+krh9tbZV9NDtXzri6k11XeSOycqhdYB2Edi5L2NYuqywZ1gfXeIbGpUXSrrNbBx9euSmzK0+YH1yWW6lulnT26zg+7SXsb8CjAQJxF9T6+4a2Lag76s+v7ppHt9SgpnLN+khozxryQN4A7MNH2yxp8Z/0/XCfUxNCYn2qc93o0O93WgDY1rHynBa8DbWsFb6qnbWelpjsmc7B12z9tYhU6UNE4Sn9WTo52ZeuHuoGfrrHe/KXeA9WsE3pgdy4ulMTa4T1QxU5DL0msDc9srbWM++9drpWqce/2Ts6AP6ri+YPVVKle2E/XyqZp1K9fWzj9Q+w5Faqhfrus2Ejn9pyZVRsSfKt7Tn8nScKVnLqqDXb66blqjVdtSYJ2zs6QA8xF1pbadzPams69VcCvqt0zkIlSxqaYOxrNs3vOblbg1wcl9Oq1U8usezNbjmJ5SaLgtAts2fJkqW0uIpXjsJblhamizchJtmXHc7rKlnzPi/aXLmuw5qi2Xlg2UfIgupApY1i9ZA5UZZW5JmVKqeuRBPEVkGpc+b8N5Ln5PFxrXVWUeuclxNGNaceQuSVmQbDh43kKynrZj5RJ2/+bI3QmqpmQYa32wmORnL+iaFvULyJXUamjecdty9nVSViRucma79sg7jNM0Gjk0qk01x0ZFEw72TjRPXRTIuWBoSRppiUAzlGjqEIyVvaGQBSZZvl2RP0w0Eiyk9iK2e+aBT7IX2B1MpO8qtI409lew0UcivVG+smortaZVPbyqPDAR2xX265VV6Ye7yQkWZXaM7apYrttxNhrfUzo7LxSqdp5rEPNxTTQ+dhF1S4LWs1O3PR7ZtEW3c7xld5tNSEunNbAxlTWeTO88ZVDzWSjtX+28F9ED1wPMA936bM3/0/Wd4OpaOr2MfFz+2zGZ2gbKaz2nwkZRg1ODut47TGnSE73vINUgCUK0ghv7Bmjq7KA2NarzfRFvb5nkmjS7V0z2CjtpUHeC9tY1t1hOlc073h9kWqO2J2nyKOq4Lt0a/MaP6h+mOp3p/JwB24KrOI9d4Br2ZRdqaNmurigEqNchlSdu2fms1qhNOSMvp4u4pKdKOjEAQHVZrZs89FpT2UTeWvom+pjH18EoE0eaqgTD1c/q+P4I7/ANAkcp1RjT+5UjjIT1z09ZE0Yu6Bl909dUa5BeOx4keHjkJp/E0GDrZjoneeI61udZQamkCZUfDY7Q0ronJH/CV/dfYF0VinXQAbMA1rGg0ZNGmX0PShK3pQ006MlNaz39LSpDAPMr3WgdU4Tvjyf+sUAxpH1fXUf9rO3eeKrpZc1qeyT3NYbl9K8cn+23s+pouTafbJ/VRfcH6mL7pEJ90l5paNdWj3r2xnqVRHqudiqJaHSgP9VO2s0te0vbZpJDOU7VKGykwn1c146T6riDJKRsB39sF67deONBqsvSIM9YDANlZVeVm+0lAL9WXW6yVpaX/rO3SSQDtjH27E67OgO3bBafWXtoZ6Vkr+inU2ebVTzYbfMBkF5qs4arjh1ra9fsd9fY3s9VXAU0sGhyv7Our1Moe2Rqe21/AsChJ81WdnqSb88/0U8BENlYSUpjvs7fw2KZ1+qrW/sOqDNe1tl2aXQ4+U4Z1/5Ap9UrVJlb7qQjPpT1msaJlrJe2py5FRTUjmwCU2ybddWU2jp5OnIS8gU50dplT4uTTkhvNmxOOdy5f+5MtBeNddoUVWxKK7DK0DxSR2cbOpvtqTcBS48c0jjO9uEjNbPdZz31Drwgz2y+SJVybjmnscvFNVNnJxfTsbWScQ/oPBDyUrwHEGln1yd9Qbnq5d7kyJa43fGfxR1xoX3lpJnrsNmIIXnv8AIYa3oTW0QqZMNzsCSWZZlpky63Rx51J2zfIa7Y6rZj7OsJ0baoY6pTKYv8gqVczpZA85OMk01uqdcWqrSJFbxT3bLry5qY28SMuuOglkifqyvEU98/49cnlZkAXdOctJKnHS6vAareVJoaKk4TUULtaG95Y+pO5voErVDf8AXRIf2Sh2ZMk+JXhWFdh2U9WSDr9sTc46mVzW2aSvWS9VO8sSUOMNg0jRipWjjk0Uz/Zldduua7SGOifPyOyJ1zb5k1s60gOgNGwlquuIfmE6EdHZ3T6GCLifYxomcaXWRSSmOj0Na64/bWGvDARHInaVip5nn7koFCnugA3QjXooyyM7Mrw64a79staoMUJBtNZvtIgHoJoNadZo93onbj7O8NJ5U6kMPdaNIaVPMaRzqfoT5tNktZ13pwj90SbBpWt4D/UoDWl0hik9crbRm9ujTNBkwb8BBEFlzo71hOnwdGhdgGwe2X/XeB9dNJ0nOpo1e6TQddufus96g7886oNYPuGv+W1GnaK5AtKVXpKPas/ZdC+iaF20y7woqgx8a3vWkFBwe0zsDFVZDbQ4zudiEzlHYAJ83jLoMg0Y172xlZ2P72KSjz3qOOl3hO5xp2GH+GEnZzqbB8Z0G9+VDd7yTVO+2nrl7qWc4ZIEzqSY7NAH1HLNO89XbGiUH+o49umD4KB/hpKUDaY0P4H5lytFYyCUtI+e12nGfzZL5p21rKPwwnzWWqie9UwWp8JpNrOv1/r5+q4SzLKbnkytb7DXY6qT3NEvuTQmJ0nq9Ursb/0K6/ij4Gids6+xk7FRf9AH7Lp3T/nbCjwx0G8mtNbdrQR4Od/EDcrt31MpA0a+2sVntkO1VoNuflOA67YqyVgjRWMut59jSC68UL00eVsBDWnuONf8cmiqMN0awTWitv4U9dYw9hyDrJu9qUD1lrJFnwV1pntS47Fzt1jTpEvJQPXQOmlDA3XoarWcldlnNAeopg6zs9vVOzLb6SGtM4HgHlfUoOo5v8paAnC1kFOslM1T6vleKGtFP+3WneE6e2Trto81rOwmKgGdkkk7Hkprtlj22U6O2aWXEGc7E0aqgdO9m8oWmsTexiaTTr1BlOTyp6y7n9DCH7a6sx6n2dS6pFF5HSrqi4d7zSQONbkHrpy5BdApp62cuIxXos0aQ7bxk6gup+uO2VwepI8gtuiCftKe7xX2csaPFqaBNEu+Ood5M6WUCZROwBidfufI49BRwcbVCc3HDxVnAE8NbmZv7hL19JXWmDXnJXIlVEFUSVfEE7Ov/XkRO74qqdkdonS09qGEqtvZomTW67H9TBOzhT3cH/g1IT9YoaS6pb84qb5HV2/zdS56BSE6RZ612HqqYI5ZO5tKKGl9CTWzeId9HOMzrBVTJo7axo8cbveydaEaGXc8Jp61BFbP5iXyuUrXR5O1dS6VAjsS5c75Ouce43pupmTHRLL9Th883O9e7Z31TEUKwWZ3jO6Uayll81vRkwVI5Xg6KUXEWVyaNhjTtFnQYAiYTR2p13l2wHWgOpQmynIlN0iV9s09dvkKI/bL+ztJQdyo7yZh1WeA7dgYVr9bO2s7dvSxZ7DQyOH2rGXYZSqb6HeU67TTryHqfYIHrtNaxPtsTQI7Jc2riboMEEMpZQHzQRPW3QfmO1819tg+bTzaesOoACWdlViKuL1DH2TCl2iu3OyGe63iGvIQdKfbeV9q0SI6KnB/UEkOxRrrnZKdTXaXcqYpNVsHe8VoHHSKy6PHflYzud4VudZAa7Av9sqvdgboxNZt7OJudZ/yVAD0+qIfmy1PMkdZ6S6E6+Phhrem9FaD2Mr2gVfzO3bzP+kBa2JJtze9UgbaSnYYUetRvrQupZw9+2HtY+VVYduwntPrrXopIHuTTVO9/wDTrr4+KAf6qEqTQPrITkvWgyhFp836qL1qty5rcm1FDFBHHSdsqfrvBOrgvUrKlonJl2mA/wCW/XwPPd6rtlaKHJH9STRmnsaD7BmhnCep7GloeGrosu60EojOgRQUClyaF9NP6z9ds0aEs3XhvVOCEhgnXbyD0Zk2SbB7FHnbauzeNdVMFdTVTquyf2TOqJq9VQqpIuvNHV1rJnpSZcvoQtJgaMaRADVhjScnnYaNVO3sL4LQEmpN7cK898bx+4uNOgy66oMb9y5HWwNKGivdTrsD4OOvcFZrRWpM7BDOAT5lGzZ6zrGdaMNdVxPyjjBcX7bx06oPDAanzb5gfTOr+Jv+mcX08VHQFPatUv1cZVdH18Z7AuG/duj8mQneJuuoy91Gh24eJrQUh/iL+Z/yaffXDyjCEHAfxZakMqTYZPp6OzbOmjWxprEAXHz80KmKE9QkT1f9xkmjCvzfX7LgC7R0K7a8ytkhhT2XKVTVu7kGRGcdTHVvzLkQQRDcrNuO+5pOyOad7zrrciKEvXTUrL0nXVK2pqzVSICJ00OLrUrJr02bl0teVJTtkerOKDI7/rr2nK/wPPxNaXAaEwlFVd2Lt7dXmWXQD07PFGtr23WcVLLuLKHd7+zMX/LwxPNEzHXXKNUIRGhQ0Z72yj11tZ219686k9UumtpwTNceg4ynrl118CammsuopozgE3WVRogHvRt11TK90p9lcKHzL5SXQ1d2pw9rlm4kmXVDNC1LU+1OneKr606ciYmRyzvNIyhoNzQ41JCYRs85KdO4nsbxlaXChOor7sJjjNodjqDpM5b8JyOJZ8En9jXUS7j0mPNrcQncg26WtGgm7l2S7DOpvqBRMs9lrGutAwvU3WpdYSuynfXq6GwwL0GKdUxGTeNzUdR84xE8XGzr6WNOLsnKk/Ms0FYzTTkQs1hKJgP+UuPldnrunDZvfXfXenXnnmvUN0LPj+mO10ya8V9QZSQwSYF8a3liu8UJ2QOlWWgooPXCT9wrTpE6qlFPhvaIGnW00qDyDmt6c88lAKyfcdH7Wj8gdNV9h2Tp0GtUoD6529NIaNohRnHy947DO1wl9F93hW/cHbvP/wBw6reDud4gUZ16+ZR2+2Qu/ZoJUHxSTdOX7rBZ3hQrm3WsRNhG01gf2cRnQTSjJ7IGWGxyH/t/c0FZ20mL+0krVGJ9dYzoEZPNmpM6+BmursR82/R9EqnXoSDS6z/d4ybdzvtvE/VsFkKPDdqnUijqY9fNFb3vfY3jPm8ds7EMgJrWFGKspiMz4AKkrt3vSudpQCt77AdppSShzwoVoDE0e8h9NZrwc9MT655r2TU+9T+pRsdCkm6qZrbCzOkX0w3vB8cf9w0HV7f41sneFFb0V4mL1k2VLJgLHmvwxCDxr3ReqgyZXzE1RSm+zj9XzQOInWcQkyUZzsKbZRKE16V+jj13IoemdWnAOqqA7xlDzw3sk7Z+awoquppZesb252+5p0oYuzbE/rSIbyk2J5etNI7al14C8esZNG2ezsh1TtX0zqH5OuvtE9TEHx/PMdr4z4766sco+3jt1re0Mfx3FBrd0FaNuxXX5jIvYUJcPJ8354aPzX1zq7M7JXlfSGiaLkoaDW6rxMlVN9lwoJ0GtY/aTa7rWUAE5O+visygiGsmtjLXtCIa7Yi60G33qB5afmOmc7KI9v6uOi+2OwNsklZ+0Lf75P672zTvX4FfmeoGb2yqmsDrvDQ4f20utu2SfcQOtY7oV6lTrP8A9ynUc/NU7EXHfad147EGd5yeS5omfZlDHU0JHvmCT2c0IOLo9a8lexW88PMtOuko0bKOvbBGQHfYASv1HRn2IXJkFxkEMK1S5dFGOiQR3KBPZN7VaYEqs+N8i+a7h39kZjVbyukS3eteIHXQT1KlFjjqnilpaGXtU0z105XHXlLTHGZ6dRPr4lA6OqDq6vqJKsqdn8e51NlO9VEkCYW9gPNbVJn3juK+VyRmuk9eN5m7IJYqRxNhUg1XXBYrTNUUy8jATki3rOCelaRZqs+rqjsv2zlpEc4krKrzzf13nvm1j+x4z6VJrZLqqLlaZZmN9QseanNelE6X3lWt4S0ym0Ko56rt5xUVxlZyyKDCSqtFOFfUM7rxJkV9jCDbUmtFDyDdA2KmTSiYR9Sc6FiMTU6K6FczS+CjpRTyyqaZlw61Jps67UBdPKeSTRWlufTUTPb1pmgOKu1IuhZzVddIsmySprbt/loXaaNV5IUlUrY/pQSmTOh136fvGhtX9HEDzPDeUbN54fbHVAuytb6m60S99rILitCECT1w/wAc0aca/DGk3sp6+FJOslH3F8DAP9a8JNjpJ0G8l615W9rjWg0NPmddTomXYDo3o8p31/0V6hjW1cD7bz3aq7p3dfhh+Ce7x0Gs19tLXVxtaca3O3sISROMvmBqUA1oxXRvWqMN9tHQmqoDesV7aR1On/GiN7ZxpAynbpKD3Jo0zhqqE6hWy3Qqbp2O9mu318VlVU3vGjqIe0ONGkKpdaAN5UvXeM7k06rN/wDYA+tPaaNG941sJz/tSSZNGt6yjeaRAXesFlRHTRn4Kgji6nCjW82o4b7dn31wdC5aTLn5O0NbFhanXUcNuhvTuCZDw31WRHp4roABkcpPEdvqomywziX+PTQ9fIn6s4n06ivUG9deppQME1p66O2TLFO7HzFH8N+GAf2zsL6frJr7A+SuUdtIgTm/qJypM7B901pNhICLP2lFF642fiuxz9cPTthQS7UqXDSaxqq1qxqvCUrWRs3sQqnB6hIL7rSX7b9thvesL1XR2TWBtdQda3k0e1i9k1CmzFWtZPt1rcymM/XsTvelRpnOqmk+tdcZCisaRw/Rw0LqnwxdHi/YcaHZnU6qtMztAwRFQ0+g1Kjp3rs3qcZ1XhWjzsayKGnK+0o9QOuNNUKgzvIQGR31XHzWH5jWx2VqjQemehofacryTCdUuaCkx/EJGTWFCOuSkkcJdd0nqaETCewSVLM5ItiNDtzR17Ib0463h+6yB3vNG9jPg47aNee7NbM/wDf2c8o87JPpT1Zx8ZMt2+AbxntLnZ7aQJepQPiyPipoMuvdJ/X2bXYIOnJnTJjpOuGxNqoOP9jsJW6Wt+ijKvHTvbSB1x0DASuglOqDLUuKBsJRcseq5O+puvtQLLoFogMhW94TrZhH2caS9NOtk8lX108vHHLxVx8lofYKHQdbShmGtbiutVLabBYCVeRK8z+2tK9tZAmyupqsilnWOmmckZhRmv5NtbBrNrxd8uz+HbxXHIdp0plzVOcnGRTZx9p4qGOH+PhaIUnxpkMXWqzlsf68vGI1NM/yUG1p6x32AWXSg/V0u465cLLhPVpDtVAFGtZVaNZHs46J8hbZGU1nJIjWXPSismi10bqScKTYOqkM42Ymgb7SwLfWtnyHj4VOLkOdwhtnsRNSmRJVsnLR2JmKvs6hkknDjUdvGhS9OlAGh3kBpwnz0n7bwmhrVd5DCXc1iedsQZmi5QFeOtI15QMlvK6JYZXk3sRliRzyuM3ElBvqFK1J1XJNcZL1WXTIuy5Z/Io2h5tQDTtk6zOGycJWnSdUQTXbP9B1qRx0z4QMu1RQ0BRkKiIbyt62r1nbXh2NvXxUjaq9TN6reBvbjOwTfUQfZDCdAZDreUDWs/3edgcEdmIkuGvVKa/Q+w5K+yr6AOpxCpKw/VzZII70OS9a7DO2nOp2wrW8TehE92m5FJ0mIM46lQPAwdhgdZ8a7GVqmTINFdwaaw2DOEs+ZO3erqmWEX8YRXbvTlfYFjTpxkmhN6N5soF0njA+qD2cNG0pNUKJIrJR4Hk6lC6Ma15kf1xoKzr5pK1aKxM4aKnQdq8JNuVLtcJOpv3fXDEB1jWnz80ZemSsEr0Ps7XRTSq/1dmwFJw3rP8AgiyJ4z2QK3R5P2NLXVDH3VMSe4nu8HrqQOlO9mvDW3TrwxnzF2sumaJypGtHD2/hGgKFxnrP1U1jf2FrQKOhlIR3l0aJw+wbr7AZ1Pq4QMqk/XWGtrmiq8od+wumGZ3vSLSZt/Dkgo2s7PK2ODuXRKfkqbvNHqiOnAOwYyaTDqNThOhyN7pxUWcVDyK0hjR2c1ut46l9PJUNSbSXu7r671KV+de2s5KYzjV012AUZPrsQ2qGxyZT8/5o60advY2V7t9QMZUM8eoMoe7HYRJrebB64z/uL7Kldj3sNOX5bqUJ2zPirX5nV/Ff3XcFCa7HYdbwkmfABDHW9ZpJ3gn9TqS+FBQnq6xrzwPMJSfW5gasXwDytYyiUgdVwd3jP5WB77vSuTOlxluQyfrOMpXmnzf+GNb+uE6Ew11zb1NzavhL17M6XHyVJoZ2C1OsH3NunQyarGdSUfqIfnjpHU6Z9ZNjlStbwUnQlTPXBXzE98qVs3EdlrGSXvn/AC+3oBlOkQ/Pa9ZRNUB73mcZfU5Q87T74ij520M5O+q4aKMsVKya+pvTJ3x3ooKFJwOtIL9RTdAZ/GFFMH26tzt0ROnqqjpaOonJShIV/uPnjIVJRqQ9niNgeT2Sa0AoUDiDtwkqUWfq4T1pQk6lYb14V4zkTcPZBHa6k6DaPVvrENNcnfiDjviu+OV4oJiJKsNTij1G4GhIPtQM7jWPGeUe0MuhNOyqBqrmSa6FQ6441bGE6ScgbnsA9nDlZpWOVUouOug6sBhxlSZUoeRDUuXIHUiiKHJtmnfLayyLdci5FJPYmk6rMtco5E/V3FeVUk6csdtHQewfG3C71fXRxU8luUPYs5YaoM/jY42M1RO8laBzk3cocSddoS01kpvSO58EfMFKdv6VlyaydSdc/Kd3PY1jL7WMxfrPH0G8Tsssr0JbVnqbZJl2dgxSko1/xWhnq9mJyezve9yU8QFLjQU0n+4v1M3udMiIHUF2H/akBWFrTOdTQmhdYaN7Nn7/ALjvLDXVQR0qIZ23K52XQ6x2Loq9Gdvqb7bz/l5CpvHx8fs4V/oaV2VpwR1hs3r7eKP+PXZ1PDFE8mzWOtlBIGa3oxk7CH/WMrpwgCkk/wAxQ3OSBCYez6upHE7G8ZEzWtzg/bwGaDO3397e1ODp1jo8wpXtk0lVt3XW8UKFh0rm9b0+/U6syGeGnGv1F1JoHymK6ivk32O25cDtOnZW9r166QJ1hrr2zor4UTtxCj0ndOX5Kvb6yMp9tJ9TOz+Gj7StdQCTztip49ddUmffWgfXSAIA4n44uv0N12ytqOOyhd7reW6lwoQzqq54bM8kHKQQwRr7Ep2FZqmSV7bxpr1X66z90oi0LSGi5XaGpoW+sinCb4TUaK6l0dvNfWh39s7djYnYHOpMmmVdYFC4SlaxrqmT7Jj9aKHyexJ9hy6MtSiw0UZZ21QpM7dn4kodTSiZIEdsfM8a06X6pudaf3sC27xDaBW50q7QEoMsnr6efUTciCmh5KfNdidD51BqnRpDXXINGgdLgFVvA+qD47WfVSn2cmdfsO9uLqRyvfQo76xVcHdGNbUzYIrI/Ymd+41RTtB8Te0yZ3SI9RBVDQtCo+dc7Ehp/wBB2zt7bFyZHWn+xqnTiEzsKFV/3eU7kMk/ErVT2Ald5/zXL1L4a0gUO9ml9NTSJTv0o6gqM6VPdLufPE3nbzWKn2zZvzYSKvkueL461nl1sE69sZ6zjIz7DXZF+suD5rFfUWtsmta3p35s6hiHb3Z44JFO5du8dyIG3zOwBOITJq9TOsd1+G3RhXvXLnVeCTOVKztoJ0Yz2CidMhi/ZE//ACartjWqEL26aovZkcjXhVO9s165CJRhQii7k2a0qVqNLR1QTamK+Vmg7AeHUHxc7LKnXebCnLkrSASu7r7miiN0tT/EUcf242jkDqUlE5x+3UqvYBoKZJBnCj2M7Ey4VHcnLZVnIseNcOUFvCnenjVOrX9/OVZWy+WqXcTBrX/ICNzIutziqmidtScc9Y7ZvWjDZHU6hJp1n8f2KCavtLHFcS7J6074qGtscrPOSNxNO+S3TJwGqA576Vobdolem6onlaDkduXQ/fI3c9l5Xjr29f2Z1PrXLOvp/NfbyOepe601Q8YpOsaTS89dYmiqjsVkNkFJyqEcnHuREWo0vtEtFtU4DUk0URRGXWzqTKx3zpr1J+uyJF2cgj518071OmNWYSlNYrZhL12201UkQdvFblMqaZ0D90dupRFTtXGfy7zROnGdnYONr9oPx6vuRLRpg6jWdQ1OH1nP+MmJt1k7J2P29xk8xBGVn8SdP6n2dMnXHetZD9Ue/wDmNFO8155aJhvSKjusp+ugP9e2qFRayf8AUHe9zIHi9dbdaMXUpg119fZkwGa0gr5vdM5Kdt5sapzyhoHzWEn+yGtJo046Hq3vsYzQSnfdIeuzHWuwfqj5I4V46TcjhO4d6M9TeBvRj77iAKAKbJR3h7XbBDamynGtAjPbWGynYbd4oa12/wABX1RKUUYw3reXrsY617yoQAaAcHdJjPhlG5A7DqQUreUPXeNOnQ60Fa65J29Wma1hL1XFfHJN729WdivXze6DNqeDp0bOy5tqtF0n4pL7S9TQaHf++Bqd4yeGVWzWdSZcQ6hgs12zexRkrTgbQy/K83qqw0qBvTsPxxo2QR+bV92G96Ufcnzx2SaCt07BJ29msTdbwnXo0pvFVDBcRPuFJBugY3kr1zeo0uwyK3W8qnOvYcd6mX2ZcPxlJKrrnhRnsU4eSUR65MBVbN0oI7lNqbxXYYn/AFyPWTPGjRv0Hb+ul7D7j9fMDaZX/wCo0VSyIn1lQ9VhEdz2K26MEmUXnh5Z45N1JqPaVX7DmvNY/mh2zsnVXtZ/6hVXDS+hqtZXs9cKeviPjjskc/zeP1oMnX+7CXRr/InXIj/ycddtYW7DFNmuuqwfExFjQ0aDGWdBcnU1oRmhYMPJTA1RpRdYpvTT1BD3bJQC5KVpy5LoSTb6u1wnVKlb+mIaDCfBd9n1/rsa3TvSmJ76Krogl7g/hkv16466hmxfH3AWs3t1m/PKoJMF2Vi7Bxn0Enwzk14pt9xTRm+u1Ad0O61WULnp5inYx2flfZMdPgVtJxPtpJF3hOh2areNPXWOzSAVunQnl6l64Sg7tfzHyUxpiexDveykrytJ46ZlwPVOuxcTtvRQROVR/bF3oDW3WlfA3RnYMt/s5KM7xg8WeLcdEkhBvZJo7NZOixw1/I46vD8RmTTWXRMu4SqKPlzdecfC3PD0S2VBi0EncE5pDb2QdxR1Umt1QFJRh9yhE3oZ2FGyRM7tJI6rVUUdiSnVmyX+yGp3hqZ+12MIW+HZVJs4p78ncsEYboCZJ5tcrKJXUY9ppu5hRqez2WUGjjIqZKrjJgkqWq9YiOJW6OxMPFcfauj1u0+RPWWfj1ZOmJ7UGEL6fW76p8af5C04wXXWO28ievjMBFLEyfd7nItYgarLPCTq7JnjUerewyNTx7JtutDTR6vpmuwbkDldSsKYde2NblCZNFJP2ciQa1sZ0kUV2OrJoEZN0JS55sA7fiLO9Vqtb6nUMDQ4a65o6IkdQc6m8Qa1hoHbresK+xn6tY/mn/PWjwxHQZ1VKAW3LOtbx2pnvuW7kwPMdeYUa3I+ZQdXPWVJEkMUkTJWZ29vQWl/FX1JKBwVlw2kr1NOATXbHcqYKYbNqervfkqU9nHbrKR31IacR0C/Xk2mj9oE2be2hlaNxDrWMk+ZP+GXW9aTcqTtTUmz2t9dkomaE3jXnoguB9tjvWsmvsOP2rPZrxkNb39vDZLsPHJ+ogbF2yaaxnzP+zPC2Vkmt4+LhQTpnRoTZXpS0mOgkyXbpU8Cq/zGe32xa3MYBvwfdYCTRhrWg9ppk2euydZKk6e2s7dh3p7bVN+J7oda0Gw2R7OzW6TBdeGtU5Q61nhKZ2DQS7fAtprK2uglNomh0KZ+O3qNOK9cQZ3ibGk2Osd1OBTVZ/aXbo8xesgFBRuh0pEr5mvQKWRHYmmU9Ga3obPTTKvr5ozt2nqy6NYa3sa7GlfsKjtRp0U3qtJSH1Ap5Jl0unGT+ptacN/7pk3j/wDtGvNhJ22Qp227VRkZ1hpnTvSGE6OuGmnJHoTjQjOV5W8md04JQ7F/cZK126h4dvsGKFGmkfH30dy7xXr4fUyUNbhCqWAJ3jpTCWsdduubTSPoCf8ARvdeuia2H44CTtj+rWCdGskGXWkXB+rvl2AjL44yizip5glEon+YqBOMnqaroanY0LSepIyuUFGsid7orTJoK0zh/U1vfhrsbGnXoDvSCaTROD9tCaeozud5p7GNLWiJ1NGNa04eYqeFqaMJ0bwOuhPKc97dkFNhIm8f3wk7DleOHI/Yz1mVB6gn5rLVNJJpQQcRf1o2Kqi5ZuTO2vMNoaVN6QBUol1jv0wF/E97ZRvYP9AT6yJdek4FPmdWq2wlPW7PqaqUpc9DQS9XN1Ng8crvZT7kbkR0rvLXbOdfSkCqdVTLpNdhZ3sGkdh2JScJe/rtCg1X7crRIVuus8j1jbFbSVrqbb5ejOykPFOTtLwSwKkpTSy1KH8c8Y7VNbaes1kW3W85amZVv5F0M8PxZ1C20TI5Gq1SaKc7GqCJT7JI0a5B/EpLF5dNDkUldXlpmumcyUm7kqe2ddUbvprR8a2eOoy1GgaKfYJum2uswKqVLPvbWOpjsvKddPHaVub5SP3v21JXF3NP8fTm65dltCzfrjxdKkOAmjWTBwWJPKPUPKrwpqnXVrWdPOmcWymWJNds5Wp0TOowk6hibZM2TK1SVThckrk0TowHSijGX9QSRoHDytpqhFd14TtNk/sidaodv+NGxSnaYIaFpmiiqt3qNzOG+vZqUd4OxMBSdlm9BrrjI+FaNIr22Htbw9WMFdC6DAfNFF3rFNaTyTQ7n2dvYxncuckfXqmw1kGh35WNb8xdV2Sjq4P11gLDuZ1KYjv1CnT/AGN4uslDaP56eUJp06aQJWu2adoCp4yb2Hv4yyem9BkPWkSjTo8d4V/uVS1pvQDnbazhWtDQ9jWkJpU66O21cJ8zYoKs73GzQuz82tIbJ24zquw0aZz8ByaV0Pj6b8SEa02breXvqZJ9gDU5r/r2kwHW8qXQLqZ1htFTTRRW/wBa0hvqugQdLNbra/W2ss+pWDvVGt12dFbcF0bKNrkdivXxAaVc3oXN7jWAEk56K4DTjJ20f4KfXdYUht7dqw1NGICOGxzwfRZfU+umnWkVdhM/XSa7UZs0Yq0OL9wy33eFUVrGmzx/BJXbsp1tqTwxPVSnaZJ1qg/NM7+3XGvqa01qX6q4HXWdtLilVvPN6Tyto6NnnbeOqeoa66QBUn6yGB/udlUwlEcf67Gjr1x1qdruiimd9gHYtGhRfymdO6OymgfTKo/cEJHN6GQHq6Xrjte2NK9c2z7hv1ZHbgHb1mijXUJawRNJI04n22tA9sqX/ijLrJQ2MbB3vbtapnx8rH3W03vXZQx/qIDo1WnzGXqS7HZmmZNG3TmtHbK1MiOmdYUBibdGhrGuomG2fWx0ov5glclOVoox1o32O2L28woZdOimsF7E4DsHsyut6oxonB1W8fAcHamddIYDNOlfdyCukFNXsHRPahwhld3vpKKBtmU3WQbnE6+IKk4z/q0UI66nXNbo3qdoa/XPepg/XSz9pQn/ALtNmMHatxc0dhokazSoml04VscJN7wpaTKl0OT4Jmne8dtOpd6cr2XRpnK1RsgZnslPfYqOsTYjUieg0bbU1WS6BGt7cdS6we2zCjbtl6gDt1jOuYzsSNM76mFO1zjp/wBt7O8qmoXIp241uTe0nszsDZT1U8fcqhHRPul5mZZkqrWW1ipo5KugCCpSsuSxyZKqhf8A8VyMizHXr6k/w7C2jw3vYSVTKS9kAJWnmiOWfY+Oz8maiCJmqXSs4yh1kmjVYSfxdmKddWWi1LAJttZocqqRoBoKzlkVWhFWeMp3lETVORNW1dcSe6u33eobN8ddO112L71UxEfUt68hZdVfHrNvUyKp5a118dyvGMjuRwGpZype+Qbqc+jeEJU6oeSpziBh3tJ3jRW5IHsAjs3G4PSlo2yNOrDoJ1SfaFBZ+8m6P7BXk7yetPV41nUZdFOsXZ0CSSc82i/gHWd9j/l4r4DSOq7IqXq9ITQjjfT6rQyUMICFa0MUIGNH5jqdzjR+FSHuHsiNEgBT1HNbd4yFIG/7KtTNOmnwQnwonVB+Ob0ev4STXWjW3fUQDeC+bK91iEbrOw62yIL181nXUexSLOD4OfYoMp9wrqbwna7NTrO3+PcWdj9aMApJdua93iT7oev1SXHsIvVPSUaZydacJ+rsPM1t9s2dUdOh1vSaEc2YrrWdicKSnQ/9p4Z2A92ILSr4O6646fGjwM3qTRQug3t2a/riI9cR8XyjeE/Z07cEKcrxHHfVwoqSaVEGtM9cDToJA+1bTb2dugeul1MDh7tz9nHUhjKqZ11NaNqalDeyld52e28frrSu+rMh434jljQyHkmwBHKPcZTzNf4p9sXVFKGxDSs5oa7IJOnrPbTUrSZs0ma0LkP2af7UyvuTtVyvT3aTvCkcEPoW6HSvWd9uz7oKBlEcF8z/AL3Mk0j1N1oAreUb3gdZkzsJrNkua0bzSSZ5OtqdWgDZWUmlCRSsaQ6m9yOdTqaqiAF78nWjkaanH+xvQfnmvUNbwd9h1tMBKDGtaxAfNH7g+6HSYqLOCM7yRNiz5hKu131DPaTHZQgp2SX/AOaoNzNYr4ZSgYfiZWwEftpx100s7oCn3WO50ZOurt/fJrCQvTcrugrfpr/rt9dutJj47x3sQ15l/wC4n2xBEw8PTet5YJvDsfXEEDCvGc0FbWthKi7A2pu60dskGXSDrZQb0PYxN4C15Wq2Gk0BOzs+H47qhU0ZU9gFknSR9PG9dhwkKNNKe3XoKFbcd9DBQ3njO1kHqNfXP3kTN68WhGglmRSdzSq6NB9iaErep016rVO7e1AB1FhNALufzep7YOp3l+S2En9jb1XN7Gkl7SvXdOH1kcVoEAe04qMmOuzCiyB1+m0072u5azr9TRPYZwXsg7Ezqdd5MuvYnSjbrRghXjt3WLLXRHfL1SZkdKk7G9S0zT1BhOrtonQVYms/c7OmQ5N8fjzEz0f5Z7+CKyRBHIsu009iBrIRkTt2Si/aM7dZmRj7VWdUoElKQqZKcOLT1xCftk2L5yUE+lblDqydUdySdty0GjS129MN1ROXKTomZl9DelQra2Ukhdkhs3Vuil5XbyPHx52eqPFzQRs0lQlKVWTJ1KUOR87MDxs3U1Mt9b2NyaEip0TnWH8itSyknad8sk6CebVJLPaHUSozh2jk7MWUFOzXYJXRhuWYrjmJEI5CZRam3ZJpNXRNbl5e0icNTX4HZctO3XJl/j7YzX8XbNNSVUhN+f6OALp0lFZZ2NIHXtnLb9U47ShWuq419dj9xnGejoVkdFJRvkk/kmqJPNT65odyEJ+zQput24DsxDq7lJkkJOy4f9Z7pUpZ3g7xplXD99Z7YTpcPHxUkrN/YxVvI/qiptnLlqEE8x9HGeqGa8F6lSuNbWcJ6/bEXWx+23W9uQGlzRdCev40dd4Co42G8L/MaJRya8HGpoVAER9pVDWG9UisusAFwT8wkEx3tMTfuGtmG1cZP8NMlKfVwQkcR/X+p7060uCOh6+Yf226+652axlvUgsmNaewr1KyZKFw3rebRMlZPCtVRgqo0fbHVTOqPDSnYo8o0sgmjSpia9TXXTrToN9pDRsEdLIBr3/fXbWx0GzWzeFal0bV2mt793n7U4Hu0Cz7QantlO/VN+Yz5512hiY781prxb+pqdk+m/HFR8BaErbSBvs70a2qa82OqHTSk7Gtdv3B3pFYdZ1CXNFaM5dASgs9goU2f2HDabxOs7zbRsE3tQreB6iD2MZJ8zt2N4Iu8NVoxl7q1PhqJNrgja4OkcUd7QrW9pqcZHlFE3rNPatk7NljVGtbkxoxd1t6/utrRv8AUQl6mP54b7gniozutZUpvaaHJCZBqdhWA60EgDjue1MHYTD/ACRQkR8TLUw1ud1TISSoul+3U90bZ1TokPMp0aHf9g3pcF3vJ31pzze1PvOPXwakZEr+oBP+YiVvKDexnFevp+GB6aX3WNeaw0zvBTWt+6wnfJ2yvaJAcuS5x/8A2gNSYu6JNJW1saXA9dWPYcl3NOQfXWbewYz+0bKkVCq2zuqQZ1QKEhooXs26HTK8m8qmhMd61htfIkHeV5KqfUoOn9s/vvDzqFVoMFRcZa047ZMAZ829mcTpOgr9EoNziD4KGsrXgyMV1bSdmVpkQTedStmaQMJ3LnhKKCCGi+uM9q1iJe8d6MvfXR1Pclnr76gEfWWhntWJu8WvZwE3gvb1oqc2Euf8SXXWii6X0lb/AGpewZsDrnHv0YmJNpJ/NSFHYMmnSl2CwR39MuL/AGXju6dcXExydsqk66o7YT4iTryepMhl1pnVH17NVr3CvtkjNAklXS7WnfLJU57Wk6+UvVb1N1XYlC4lpdz5hPUdqfpLvkaBqpNwdjqoiGE/6cs3NVrllqoovvSdXiV0XO5RuTqKMzKZNDLu6klpnyfY4rsLGe/2Rae5GnlVQ6+ddmwmnsBy6r7tlIHJ2rWq49T1Im5kM0lbHYIxXT6nxoOThlWN32Oaa7aCaqNrxhtyKmd6nkmv2Wq7OGp0HFqXWKE7SUrsS+Vm/Ewl07DtrQ6rWRL296nonmjPehq5NThJ20NCdRdrJsJ9NE6xjsditdjLVpnIP8K80JL6409Mhf1LfFK3TidjJndbzb2TCvezpr1UDwPrpZKy3WjBOuTWzWNfbZtNuA/izr3AX8arbkywrjpTGds517C4ems9EQ/HH+k5+UuLtUBHY+HnX/MEMr88iVoXr+ozoHGvHGYTOvh1KewU1sQ3uQz/AJeI1WUImEshpfNI7N4yhnUmdIm3TXWt46n9TU+uly36uBuREWjCQXP0263+K9kz8clfNXrW8mh2YGwkR66wrbrE3vYyz2xNLqZN6xk2USapCnYSb2ZPsuk1XXI9p2mxMsOxpX/Irxo8ocK3vIrdJi7zeqDHXVMP66WgrqAzpfdOKa2gaKzzt6zjsnTM7reC79qnqdTbRiC7djIk+K4z9gxk6+dgkF80rWocP6bxnr7WvJcda0HgaT6gHlO6D0wk811716Lt3v3OWe2iVJk2yNTr/cEZcXsdc8neClei9cXZlvUdbEBAM669zQDor7Gz7SOeT5i/dT0PBf8ATXXeP2rwEnI327Zv6uRadpZp6uAzXt0H2danWbdeS61v2XWFIGG63nVaKVO5sQlvF/1XesVwkJ0/9mKsby/ZNTuTJlqgyzCkDF+o4yqIf2B9KxO32OrMtCtLWI1vL26GCuxKm112GdhQ/VmU8X0MUZ3g78ORGvTQdnqFdsSqKrPqm8CWdLKTrHde4+mhlHrmv+xfNw6ppUarBStYNS6zaTrD+u88qgyCprHbPYJ0bGRPFXxnXs5+OG9lOvMtDGdfkbFBPzdCOsKQdtd0D3tpK143pAIPfWvsGXQ6w98bqZTCnsmO+zs0pKUTvHa7KR2YnpplaMXwMUXeO5MNf77VJnJt0Duqar33c0kgk7r2KHtj+ue/mBuXO20xXe8rbpF3RgLucoWgB+yZrw0L1xWdY0u9SiCg9va9scmgnbRoTH9NKqaZQV6z29/rPY5OSWf5Hg5DlnudklRlD2H/AK6MUg11KS+2pM4h6ttTXUQu5oMFm6SJK9UJWR1vrkG/ca7UuCVO8qq6IO/N++YprzslhnJT22VQymE/UMQ6tZNPtYSVqnrJJLIyU4UOnOblrj4m5iiYiknttBJCcvvoCD0zzbux1UybeLqzaUDz7akCe3WUBXda2ue3JorpvI5o6ZVitHFqZ7Zw8HZLb4iOMS598KZhnLpqgzTIUfVnrkC8usAuzJ42p6lcDMUrBps+NXSScVh8u67OFJyax7uoGKk0RKdsNxKEHamnaWgUFdcArzJmurOdtoYLNGjYpnPRMHXi5m/MeVqXP5jsBDvNdvc6jQvom2kFyu3ZWCqGq7a8B7O1e1OFdaxSjaeGKtG+v1TOugkNris1rJrVOKD4AThOqVAZ9Qd4yTKGu1ZO/wAdg1Qb3tXq1kyu8qQn0NQhoNCC7nHZrPWkyVF0/qBuZNssu82sjnLROpxpWTE80BvtQjXquk2G9rVJ+C9dYqe52X3GXXaTbvH1dM6dhLr0lNZ41gCLnpyYJ/t7KQUEWq1W0BVx/fKDc73lzo1ja+Zxz2llA7afDW1U1ga3up3OE68Cgd5vYy0s3GDp1joKRWaGhXe5DQlHhtr1o8PWVfc0dlxETCvEN9xMnRTrY614ziLtyH6em+ux7aRKDbjK7xfM/TVH67J7ayttaWXvhvfZE/RVdoK6FWuoUCmQaqjK2PkV5i9vw+2sqUk0q7Q3XHtkOqjutmX6dQdz1EfxQ6+Ca1nGLKO68nF2mmVr1dAZrS5Tv8Z6yY0SshP23RIOgTTkKTht9xdmLqTcgaln1JypdhgG3ASdIiLgGjZhrq5c/VwDrih+D9dD5RsDv1z7M6yfqOGw64zs7Z4ejtrGYqXeyZGqDqIGzrm33Tr1wAPJ1plD13+yOBr911reI6JNidcnbOw3YJ1OvtKIpRsC6FZwRUza7MtdGPleNG3DenGiZRjSaxo6mtNQi766H81nj7jPWmib3O8V9MfpJrr+ohc7SnTuta1hW5zqPuM/u5Xe8oRayTWlQ1vEf867oc39tYHbeVXuzroJzb4pL+gJ+Kz5g/5mlDWvMNNe39anTRtcdfUU0eW+awpqRCWVwrfbZX302Mu8igsV0DoDXm6a6nmwAKShk7ZYj7ciCib74O3SSNCzppx1oCg7CJ/rJ6YyzjRi7nAQxGa89TSO51jr/D/F2tm6NfYfPti66uR/VGT7eoqIj264z6OQs0uNfYos98P1Mg8yq8KUOrnX0rGuuzFPUrZO11/bP3SEuhyn/u/tyFZ3FqKNtaE0+xqp650+qIdR0qb1clSZc6NnHScZhK5ECdnj4yTrkbK0DuhwN0VkUaawGV1vxcrWwxH9waq9ZVPUlad7Lo9Hqn6V1oFhdJNlNAfunqb7V13eypZkp5Y5Kqg4Xk4tTylMT6VNSWIbayOYHrVdb/IIHRy0xQn3mnqtE/a61IZNm3tMC1hAac/jCd5cgm493va6zi5X8y2SJKk21TZ9Vxhr3CRj2p+1ITqtrGqXON6jWcvIks5PVaFZ/klAHU5Ul7ZidI0g0SWPbSbK8bZntkXvwhe0y9K9cTr1cN9sZax0gKBuS32d8b0dChPYigTfdNAWh1Xexx+2zCh2J/Tssr6q6dR2Qwkj3OivbP182NZrcKokmRO131Sly57jgk+rvoYUhtPc7bdYyacZXYz5JtrdbzqNE4a/Splds605VfXWR9ja6DGvv2wrWkVwtFQfqudl1OKO97JpcuhfRVlx17pqiSQdsuMGux1GjXVpawkZ3muwKaP0dwuI9gP+zKP+WTS7MbdmaJlKl8N0GigPrs11HKVo1emsEivCjsOOlAdFbz09dG+2KCAKqjTsHe9GDv65rqk4aJV2VKDrqa5f69Rr67AWQL/zZ7bslP1WpMdlaxko1m3Zv1oytkmivXaIds2Sdc0aTHc9dPpo0E6A81j7rP2kCjfu9O8H/MJ/dy6oytfue9ihn7ALpM67rYLo0nk1h6uSmnehPTWuprQZ4aM/6Hx3qN7VVTeQIs477Ya/sPtJh+6zT297HmUbHAUx8c2dRwk7bOqqulnaAK4zpQod+gHuHqrrrtx312CaM8F1EnbstOnBJk2CzrNBsAQNAj1wdSjt3rP60GA9vWgTGhpM7eoFe9w006vc7M8JdBryal81JsrJldStPZnN/osgidt0mOwNb/XA2aza/npqs6i5r9Ste4upcEAR/wBR9J2f2EadqgFuGuzt0zpD7FiHrnbtqWyUUNlBjJ5v/sU7OsNaRD03oJcBJAqvsbZXxdbJFGfHRoz024yVrIPdNUojOjcKDDt0LjXkh2SsPTZ4X1BZEz/BHetALrW3wwdbF+1CelCb86gp4tGxKldOO/q5EvU3WtJh9vMBPyVoaUeulM2n6amfTWtn/wCc66p10WygDqa2baX/APNJ/VOjqZ/f1CjOrX1zSvUZ/ME2i1rQKJmzTrzzQSmnq6XAddXr9UHwB/zA3Q5Va3sPrrHS7dg7J0qq9fxnVYD191p06ADLgFQdrs39gd6JzsTsw9rbb2lQlZMuVlFSvpkSzKJorrXZqsJKo3eloyJBKOv2dzOq21Wt4U0urlP3yQMuDqQ9gomSWqFqZNUtbNzKk6zTVbxoc9k7Zdem03QtpSJpqxH/AKLZrbhyu9ZyWdpRRNN0fXYlO3i40bX/ABcrTvCXrsKe3V45C7aJHkQZK4vtFMsSc3btOdC4qjjliQYFreVJ6ZxSTNbZ7aGwZpzqQFAd9mO2OuN2ybZvk8yIJESZXqcUlSuGpocaTaDTWeV1cJf6nZDo29tIQ0KjfXq3XqEzTPrT21kWM9mLWvK+queBVLTUmpgXQS1wu+Ie1JMlcm6L7a1X2sFL7Bkcs/zMM6VzqVOzm4gqaeKWewxxBAPQq/XrMSpW5lw3GgCap0qV5VWPU9d7qyEEo3rIWqQNldTbNeCVsH2QxomBZe1dnkQknPEQZjWTudCi60OqBE1vPCnGkd5R+1hraJ/YVf8A6IFfXaOhpVTbFfccV25X/Zr7NBvPW9nV0GICbr1cp2NYzuVD8JdHY0/2xfc2qaSe2K+GK9VA2uWNGsJSfV1Jk61jO9Kr5JLi7oUfcHaGaJExFrE2qCdVVOwZc9TQydRw1U+jo1nXXg7GgdqAShvCkzzJnx2/mhn3SOhX9l3EmvYo67P+WxkcBo3knWnH03hrqGLscKNY7oHDTSp7tzTVbZRTKDsbdTfv+uGja+kuo/FyjrWACgS7lx/Mo0bD2cmh2YrMm72oyGzsa9NNpKZxOvcadbw110lCO9CZ2a/f+nBHzDZjPi4O4di9nLQSRr7eMpPilTvBCeqT2nWD1WR164SJvADTjKvXKrwM7K+eoKhWzBQ0kiplG58HYmeS1Qb6pij6NfuB4YOlrE3LkRvTiaO2Hv2DW9ZpK2jO9FOw2Dtx144h1DP8nT1dtdQ0YTOmh0a3If1KAMr+xm/t2CtrkH6qd3ya/wAV0LgNRs/A0DQ6PFwoByqepRsGRAqnP67ATqpP9XfcAoN9jRvTtl1403DkbB7MqJnb/c7aNtJM9sPJdID7IIh/+91uVJey1VIZopB1qdYv+5SS6DfX250iILmjtO611OovVlK3pxEp0Uh6qK521ToXfZXsZsAyk6uAv2SldutG8N5QOtMgeP5oJf3AWuyBcbWfN40/VN6FGns47nzOwjvzr7pE0pE6Bdmp8pydU6WfULXZj7K4SSbxT9N6NZFf8mvquj7gHXXmMlT1OupA2zPZZ98n7Bl0E4J/i9dGaOziaMAZdVPbzCqL0VL7jIS6NE6wDXV7K+oLvDT9s3+OK+YSdnN6pH825budkIDtBl1I9ha/7xPZWj7mM9qDKll64G67YRtayP8Aot1Ws7BWS9qR10lG+R6+FM05pdbE7OzSlYoyLEFBOL6JNeaWQnOz4ZyPoY0TrdSC0QNSKiNCwo3nHJZ6oX60NGghoqgmvxdSGVvRRNfXqlPgcm0dcUd92iw1RFLNLoAXlm7PrITLAvVkw32TLlTwnrvVDIZU0UaL1Xuw66QJKWC47EHvZ7RVmyJaOvCcjdRXbtMpZ51zr9NsmvqbrvLjDs0T66Ov8fU5Lexo0HXL5el9ywp7ZHm4OKOtIVX2d6H8iTXVkZa18i2tYSy95iivyVJXEFKHQ98mgrsTa3pn90cn3d5vsjkTdCNzrSUluslJjqWptx/qdePZOrqWtaQnxsEEh36wa7YUf5W02RRKiSqzjLesmNqtb7Z21rXbs9c671to9ck2GytuspDe5T9xWpNeEktJL2XW6p4Pkxz3UH/EzR4A7o0i5UrRskawp3piWJcVTsG68Gn8HVTnpKAv6lJ7g7ny5aZ0Gqc356qVJjW59nRXXE+yLsHKlU0V1XO2xEO0qiE9sn7G1FGs1s7Hbsmv91lebzzXpv8A2vsaya81iBU7U7Lm3PwMUNJh/XSV5oL+xKSM+0bdCfU261jHay8JNUZJ/wBGifexoM/tPZANmdQrWXo1IhM7J2CkaRl66dCfhnpRIj320rWQFOsdHps7MsGlWlf38pw1WsRaTLPd5H/5R7Bgnk52faZoqc7bNjLrZxSzKLW9AKpOIHmfp1xl1omd+Yz+OLsdUeYD1cENAhQIT1GsH6geSqGmVzfSs0U7xn64CeJoUzzpst3+Ef8AZW61nm1VD75EPa3KHqZIht6/YxnUuaSSsJBFVakKRmdifo7Twp61L4ALXajE7acJNOmXS47PQ9HZW5NaCd5VdtAD6ooGaKd4GzEURrzbiPUoXU7OyDorz2jSGUCdcH6mtguFOsXtWdSd6U8D/DO32oB3rZPjpduKE5I1pxNVsR6oS6gFdiZKiqgPr6GKsawFEz+yS6B3hW3P/wB+h8yzYYIacftXXCftpU+sr+gdXaZYdjH/ALX7XpNf6605v3Ci4dX+OaNOGvDBSmsD/VmberpZ6v8AyNEjQYq6AVXOV1LrWpKI1pUdHg6n0fNLP3Neh1wo7eu2eyTv9rzRhOhVAjPR2BqvBJ3R2ftpN72Sa8P7VkqmsN1GknrPqO+2REjvF7fhOspSgFJJHbK5J6GKU6Sd7BfrJiapQfNOnXnU7DiI6w/r7ZUnjQzObNLk6X1o8cjyUR80lKClbExCvrkz9WcewVoXrsF15vX1xvzWMjO3/kbKe7pBkpJ9TD8rUym3GvHaI6NtV5S63jupaNtos2aMqFrNu9lmw3Dr65+GkSa6orsVJ1QcwtLuaBA9TPeuwrSGQF7JAme1XIV2yrmUlR7TRAyuX3vkDL/qBtr3L+spPE13R49E6WSoTPeonJ94Eqf6mXI+kSFdqt2+Mo7qq6oYu+uUCphxXRhXgvQdOBJLJci1M9Wa7E0t9Qk2LQQaCto4hpMKNdgou/G67SAkvo/XqcgNaKT9SRnbfGyK8SzaLUzyVoOwmTAT7EaRa1NG+cf5t5aLrOKSabzf1DNNZyhJ0waKQlns0zRO05KOrJxA+MBOzGldO2TeP6OeWJhIpi/UcakkyaLvTU6nYE+ZK1LQn4LQU6hdrkG+TtkHVxpU1NbCsqTXgB9j1neJudZ2RMJN7yj8rH6x4VvenSbzfbU5evwJ6qnvXN+ZL/8AQBf+IzucKJ1tCjsGmUCtQGbdGuvXTmxXNeaZkcXe89K9F92q1sXrrJ01tHXmCP2V+5We9wGtGjR23hraHroOp+40CST5vaMigbFFNLg/X1Xex3rzT/ipWg0nsTu1xAcX3HZThtOuG/wnXgyaqsvc6cd7EK2tYIA4mjNeM4VqExs6ZernWFICwvmKFGI7XFGQxAkMK2+qunD7e4D2VVXagvmvTNemIdvR9272mgGqWRPHXil7NDOyWsrb7khQmGp0Z5Izk0fiJ1ZV2szoQVk1rChTHX+joZSntjQ73CeJ2NaxWac0mzNm+pSzIZQ9Rw2iZATKY+z2zjDQZW9uTKyJQbA7f5jJWsk27GXbqA7PbTowpZqcqX8CdfVAE3U79F+un/NH4KuiRdPb2d9kwlDHbhvsmW9Z6mzeNafPFZxErWMi+A9XZOkTtpdmydp+Oa1PbNq5Sa1krrxl1rEN6yZdOKz9go3o11MFr1N9sNdjHbVVlT+bh896h2cAZ3hQ6Q+0u2dfbCWXRG6k3Tv6qa1vs/aTqk+1NfuAb0utBiVNdjVTLg73uDXq0n1wksROGR8kmGg37t1s83t9mXWk0Oy/s7CQlMqTTWL2FzW58FK21GuTuKOTsoD8rWdVCQEnWG1NAii61rAepuUK2+72XO58EIJQOzolZMD7O36Pkj1xGvBn7CeV6ybr01Vaafyc2dc2Ne6RHNu3Z9t6v/Ma/EkAyZ61mmbcUXz+1aAQdlat209ica1pWWp3lU9gwrbooPV7Em8J3+SpvZJeAy4U0BmlpGXbjup7YSPmUfY0b7aWTWso/NDpcXeks6vfGjtudlG8YWlOiis1UvXK0coY73lIs1kp12sTNCVSJOFB6wi1kQsbxBWTSCoarZQFZB/mE+Un1mXOOv8A6fY4wreNdpdlJewN7xsqmRl/ctWehM6OuROvsbCvSdU40qudmXWFNPaboueqcQCsNR1HkdCEf8qNtyh0NmroiTKm1E4aWFZs67wDY4P21lezkhQ3mh/QPzOwlVlcZX4Sdgy9wdkRgcuYH1fQSXzVL2ZZE9dAjnW9OG2dMy9t4QoU8u6tk4uNgaeis7oUJGGQoaO6HlUlQwqNNa28tM0JFlcgq6osijqzgzO98u1KOVb4e0xxNhRM3D2wurBG2dOJ2O2KEzoextqu1BnX7SNyQ7yKdlYWtedRDbtUU6ghT2kKq5CVpdDxwSFM6Y1N6iftHL+ytl610O7vr9uoyHpVCBjA+Z1JAKAlc4x3W2RkcK9cgU7IKaaZ1rKRk1NG/KGZ3hLsMZenibntggaGnfsv7o0Ls3/XHW/R1JqDU0LJ2zsmjJVAQNIRZU4664ng5Rp1gVsEdILWzSUJhW3zsDrBHYO51ObNgI6dAdQyUHSoPXH87YboHFKjeCEgO1rZsPTynEGc/rO0F9yaR3h4e0JmhBzxocEadL9tYGrEqvdFOzqizK476SZKBjR1DPeq4m5yg6byFZpQNg9vt7dHbQb6uVvt7TusDQ6B7aevSjTtXZf265vSub9HE2s5Qfp21rb+iNekprt2wX0x/tpd9dEf7h/ZBkF2zscTThP27YH2du1MZdjhrQZU7BF9dL1dYR9lwSa3lG68BOou+wYzqt4vvoddmIE7yTwFNeBIO8ud0mcYG8DV7bkqXHUpIDMmykrqk+qmyjZop2V9ih/sB11Q5GmXLETOxoB3o1vbIItbJ8lrOzscK+yYj2cZ2DhIDgdTSa2ueK1j+TqqZOwUTJtlfDep0hqfF0BnZd4+u8mQzquIdd5Ok7CGjTLsQr7OAa949b1jLX2mDqLl1p811FyVo8JeznbVdDQYHq4/94PU9qmurh5jApQ7HxHXUFDuimdiuuN78U8Mj/rNi7xrrRto14zs7YL2nYqspJLgqe6A8VTDewwQmqZk7U4VocTr9c9rXZ2V52CQyjQY7nSk9g326OTJ2HHe9NiAZodYU0MmnJloXAZfFTQEpTqv6GxAMNzThKUmBujcqbMlOyY/28jz6rMxQl0aMt1Ok/M22m0ezsnW1U3vE+whIDuJ/DHx1hsdut12xpOon9dZrsayNpnkKZW0oyaepqJUJZDq6TzRO9Y/hgLJqddd4H1XGns67fbSPZ1h2m85Jd9iZ/ct+gH9hyvqSBWnEGs2zSJyd3sdiUpNVCDEaOy9vqDuvWlUyTTvO2vq+1jR0nXlbylZ2EvUWqCdq7ryZmRWeRVS/ZEkOmkNzrA+7qte0FjQkLVxWMHoV/UMaKocuiRMrrUi9kljDbUuMh2xECcqe3WRSPrlUk7wrf7zVrn6gBJOFP8AEuTs45MNO7wr9UnrxKeMNZU/YMFKBUg3hyBKZG604SOxutajIn61uZNIwlUje+07Pd4Ig41tAZdlZxy/yVrv1gCImipWSeNTr+YoNBtDq+XXjJs117G86nQMumqQmWefD2XrPLo2vtUpSacsWdZxKArPZ0EE61crXrWjRr3sEsydQ8TF1Jl73tmS52M/YBmyiF0US1oGiR0A0t6bB0jX1AKJg2135OpTo2cVfUB1hO6BJexWUmhex0FNqqqm2E3rGnrrANEs6kN9uvuKVyKj2PDR+M1U9TqunDb4dU2Ia04O3eG2hx662minLk8cHesRK8pK+x168XbJ9MHtW8mTqUG6rSm/0VrPV9NYiGsfwB/XR+ax8ox+z66P3Xugo2GJ98v+mdg1murh+dRnShEoqmwRH1wk/wBAVyZ1OM9ckdbd9j0nezGgfRZ3OSjSpuV1pXxr76w9/R3SD5twoqSwSp3n7+r9dItHjLqc0KDppNgTM6X9cZ2egyOVtDQidk2bGZ+zSea0obCn0M2aXJp8EUEwmSsNoaFTS6XtN60mE+YH265R4OOuqL9NK7KNFJQ4UI6d7B6idgUHJN0uL9gy76+jOsdj6G59tQE7FOs8CTD0VPtWsd9tIpW2ZeyZ1XGeqbl92te5esqXW8N9QZUFxk3vHZpxkJwn0pQNaA1rGu/6a0Ssnk4iUb1qkPz64i70quCs+Ci7EZmXcn4pvrhJrqj1NDWwU3QaK2rgKOn6zo6tyuNfhn5YYulHsujFDU4T9UwQx3rWHohtdGEodgUfFGVCdrljrsdjt56V1wApXsASzLrWfjp6oaYo8nFlQweuteFZsN6ofzOroMBHA/RT7BjPWu2H1rLFNi127YqbwFkc0a2jpM7G/HrL6IO8U3p/zWJ9hPf1FN5smRztutZTqhH987HYsNNbalJEDNKY/alQe7r8fJFrPJp2U9jL21vIHel2fVADTvwVSgc6jW6g67xhlEJSpcRewj/qovYtKHOgvbE67c7NV7NFeZKdac7ek4i6cnSG6O2xVZw9cXc6USWsKdzg/qX+GRO+P2TQpx7KTBN1Ap27IkbwXWABodT4p1THetm6EpPHZs7Bjvblf5QyppJAUqV1rbvrhWnWWHWnCGXYhRvOKpJrKdptr3pJLK5e5oSapVw1R2BQyo3Pu9bSR15tZZzrfY2wzPhTVUZwVTSoqaytyaBvqThL2pbpqXrwzZ2XiHq01PmEm8qCP04v0WTq6eN/cZSpQm26MuZ0mcf1raz6GX9Y2oac4rHlrTres2a0cc6jaK/UPJwos6CeE4k9er2JAbors0xNM4VfHvR8g/zsUd0estI/5Qpy7UCuxsPAlr8APTbrWcVV2Uu98qHFJvbMyz4TpMnjg5G85SapCB2mEo0lTIA9Rrs9etVeQE8zTx0TTDQzswlmd5QdtFD4kcZsyUa0UV2NUvYUnvPvUjjJInrW26B1nU1ttWZSB24gVID4qRdU4m69Fn9quznW+pnIfXS1t1hs2YUv1ZFpoUVnJp2Z2fcU1p/ZOsqG8sSBDbqwV3KB1xDVa0VVCeHbIN/hIOiKTKp1TLWg012MA/E15mzsS3pdnXritVrDfUAo7dUGewr2jWClbHRoOz/UNeY7ADQVghTgjWsa35mwnWaSRCTW0l6rjI7T82utLWSh7lUTQ52KPQ3RWA91Q0lA/u1NqidTFNOCwgdjQY1o1jIzhsNGvr57Nes6dY+g4b34n/I91vEOymzs6AKdackTtggApTWypCBYnU4a071rSHsqteAqf4IjhvWsdPoa16KrT+SKa7bDTSIrZteuzIPv2TQq/wDJcdyhnbdC7SdC66mKj1zeneL5sATAb/e36JqjE6VsadyhJrYV2pjIGHSVNKlH2HN/6MmzZoNHIdpckJk2Tu8ZTeD1FFHe03PXJ3KCIum62+GkoygZNoutmlMe7QZp0GU6URaoxpXWAJo3tDF3hOkMHr6b88Fa91qtu+1Y7mtBrsY/YZwn/lgHUVnVYu62Cea9aqh0zvB1OJoHJX+y+ypNHUEk278db79nrgvbri+m2v8AsB9bB1skU2DOnCvPWR9yvJc7OhyqNOpPrsffcZ7HgBW2a61pdU6GRyZ19jXu89K0uhKSTVKfigqmdQTGT9JR3mx3s9Cc9fypE1lTVbE2S1i+m1CRAB7YvbaL56P2DNrRpRTB3mz/ACqmZ2u+taVqd5OmXGRCRRQFMa2mn+3jqhAdT6y9RIUms7anbvRtaEDNGzLCqwpOwzRZs/46z/BRDw6vXxpqcN7XNDiGkwpKRK3LsZZ1kQP6wRx7ONJj083j/UMd9jSareH2nZudDlP1UqQNlb3h9Xw0psBneJ9UCjeB/wDRvOpXXNfuzyXU68ps7ac/fq0b0ZFDKZt/cNdhXTWK9nGjsGdQPN7ms8Ou6k6utm0A1M4ItDCwMy14419e+RRsMoGvKKNBM9JJyn/Hum8fQrLpGcReU0JUjl1ukyFqtiBFUadgIs0vZRpuvtO0Oyn8eo0TG3rlOzJRdZR/20jSfvHMoalc6jpxl9nDV17cgOgF0O63skR3x8ZM7yp1RpD8yQDthZ20WjKZOpnQhqZIKT7N+Gc1b0Onq6uXrUzK0s4VX80yxRdVOXvwmZOhuaQF87dnjD1ylJ9AO2pthRjjbPeJ61quKur1RU3hRTrORquYQmGa0TudnJJU7DYe3qknL4XUuPcvyx6zrqpsLrWmn6Tp+seQNTLmzRTIVfoKSNC5HJOtNyVQt9y3UG+PRNhfXPH8QKJybSWcaG/F8R6/cks05zPZDJj7YG9uHWdyzsok6z6r9RcZehlSsJnHr8x3V+eVOs7DPUZ61sinsjeteGt+po1garQ31oU2ms6fpgBWsjZvCRreGvMHR2xTqYuvcFFTt9Xa9qNO06n+aA1M7JMAaw3NaaVBzRWa93gfbeINeJs86/V1+1ods7yJQ0vrnhxm+pscf3Q79zZKbdKuTW026TSy7AF7M51Z/URwduOqrx0gh+jmpOPtjP1HECycoChxWXBT3KdfrWjeHo4AGsI32cVNGErXo67GLtDF0g+yYoTg62YP164nu87PgOp3m/FyDSLr7Li+Bg6/BftWAAOJ2pcNdVHRpxdbcZPHCU04oG1XRTtVQoufFAMdhWaZgcT6iSgad/bE+28XsOgdbyuzQAm9N/vqJIZ28DEf8N0mf1VdpRQ6BUHWO08nSLgD7nVNgyfVaEXX/HWT/kgjeln1AoUC07YI1mve+QrQYUvmCloul0aCkxCF1s2Uu6xrqDgdlUdOVWj0o15ve8bXrqf7eqV6dfTE7S0AM9XsLpK1OX9XRrwcpDbgCOk2lZVaNqNIppHNHU3WhchU7G/TFfNH2pxdDvZ+40+rqnj8EJzku45YJTVaTfiwquFPZnIk8Ma2OD99KL69kWc86qddawTp60b8nXYcRKdGzzBN+6OyP7Oxr6dc97Kir1zqiieBuq2hRAVnTVNZTqpc6iym/t71f0NPmB4zjJ44TutgG62/Xbhr9yn3WFerlLXotaBEJDD0EvVSAS6Nv6ZrxoZ26E6nUdp4664UIaX67x0JvsTtGhneNO3Xnb1PTXUeuj/paENSDNAQ5Q9fI3QLL5VtdpGjck7w3WhutCFO6DDYGdjsA+60+zhLh7PbH60OGndZNdpcU2K1txdSavWvB9cqh2YyguG5/a2nYDaVjTVbKesuP2grE66Mv6Gia91iojkfYaP0dklS6JZNprbnY35/cXA3QYyk0KvY2Uoqbo2NfbRZ9euM+utBJlLvQQ1Ox80ETTQ4zIFFbNaJPXLPdnFTpVdVl6JUX8zsmsadm32d4vWvGntt2taJCSlgSko3rQ73Ou2wT7dmc6Au4TYPUIayTarX0nWEvZc6G3OWxoGAHWc/SfS7uO1nxraCl+tevJrjKzl59daxe/D2yLsRl57QU5Z/GZmmrIEn0kNuRzTY7nkl8y+TpXhTW0SplyaZ49ZV5RJJLWpnFUkzqzLRVFeh9a0ktaSpZfGdzkiDOEB4s6qaHfWaJDs7Ze0o6NmctBJnnVggjtvHcPZgGmhhHrkQb0VR+PaZrutrTvsyO5qj0rQhnGb7K+yOTR6NngYurHF2sp4mo0Y6kc9qjb6IBXbEdC3rtt0hvFQcQo0M9UBfNCgNZFb3hSZ0eymze8Pt40bpcmPdY7qtYj1cOQIKwAkw661in2cE3n67x0KYD7S6K9V/DQJOP75g7reG9LjyE70P2chP49tP1z004AV7YFY6dGEhWfkq9UezvT5vSqyn4aJwlBwZk0AjrGXRinU1r8XW9VlyC5r0Czsgh2EwOv2wFpGa1SZc9gzq6Ee3YR32Ap27xrb6U0awr8H8rPNDifmuv+5sPMP9mmtGxA0Zo7bKPsBR+aD67w1rzkXxOLmm+aoF2mihdZ1Ewf0zfVDGXtkfelXSUZs6Gon6udv3NAmArt7O94fm8RKXPEHFHWBqc/JTF+xjrfmyqZak1rNH+IjrGg/BB1nV3Sj1wOxrLo0hP9fIo3Rjv9JXRKzqt5Wh8Hbpl++sK60r20Dlv27Y9Sfar647ZME83agZOmWcX1MUrRlalkxkmtYz9epr/cJ+zjKUIJ2zacjObd6D8dgBrHdHY7aMqX/FSdYUKZp2h1OqHYDCWnQaVWHQZO5pVpZMKD65pd4PqYr2yEWpEe2MjLK7ZMrejQkTpJK1SjHuNKLgB1pfArL2+Ow8wQ+udfrrP/3tEeI7fa8oMNi4hsovenUnnV3swka2Kzqc7DSJPZ3lbEpmT/GZa6o6n0n6mplRwpadb+zjW665CTTghtQE0Mutj/brnV9wCX1pd41qWkQnEejUSrLOQHuTXX9Ropd9N7Ne4KnQ11rT2K+uddTvHRuR1rebVZE/rOPlKjutpQGnsS9cadOt31zep0iy6yQEpqR3IbKJfxTEFnJSqQKdmTI052ehjrco0iyCTNGVvsOGgcE0Tn+u9Kudmqxk82b/AHOx9cV32zs1uc67PKOtVvj1vWW/YCqeux/r2y590GpTKXSnmzKoRwqv4wB8IzstdctJ66mvt6O3eVSHrTMuB1nYrZ4UTuWHv9idTXrRybnKDxyeRPotXXJ2yOQL0tiEnjQ4r+ZdPkk0zLitarKBSWp6zsZK8dTWhpf3PkPW++RRW3A+xort2jGknTFV+pR2NNLLqbK+2dRNsVt9N1JDCGzGXes9mkHX21xxoe9/Ijj6pyX/ACu3lmZkshmhsLq6+/yGOxPH8a7untDGtpJN1Ze6o10NC8XLJxqRSzvIqpFUl7BwylkPJxkX5wcY25c+ItdKvIJZSuSUqazQ1ckTs0a1LIEvhW7rrnRmgFSgYn7M0z5rAN9Xr9Wcgo4Qwv6+gVWjqVvfPPWAOOQCsjj6ZeqnyTS1gDXbOup3l/2oCEHsh3TKOs1slkDGCnaSSuO9gKzT1NMlLQ1IdneCa1nZ7TpluvQenVPrOgHWMHYWiU2FCktykOR9kTXpSezSjucJNOwGsFNmITHV/wAA97eFa8wXYZoTeMbJpPtOse0zrOz/AKyUmNIU4q/bA6u8dIudh3OKdt4aHxERwpUctT0ZjfZmCFTW5NOmhxdyaA7en2Ue3rnYFcRfrlHWRev+rtnwV1uqfKRWDAaFSgiaexrZVEhC6HB0GKO8nzeKbAkGt5W39B7GeG6S9m0V9xUdGvKcA06Q0yi6d9TU0L9e2H2nw26zSeNymkQ6mrTrrF9MUTWL+A0KY6dgTRvL+0u+H48cU+LreiV5GsA0ubPduthiq4f/ALIyldcoOxrSOsv8JllNFD/h4yddsji6NCuhXVTgO9Ok+uOmlakJMlPzBRVdfuNSUCUFaUTYQLG2jetGxUdZG911a3Lop/smq+wibc87GMFPYnwab+3oUbJK9qcsEwpg3hQmxEk1SLsjXZw2171OyY0dsRqd5Eu/diuC7Vp7TsAXAJfWhXQLvKdToKXWprezBT9Rp3hQOsK8ayC2Xevd4UVtw0jtGI8KevsyX4AdTUeyqH+gn9smTww329sNJnbW5zr5vHWycDrIZ1+q4H4LLoApdDQfghvayiOFGtYy0mP/AOm5IbKyhd5Fa/WntrKoPCxPyaGero7Mv67QKKWN6awN/XI2Y0dtYqfko6ZK/wC5l1VZBorTSG8Br65QDpJTzJVpAApMaQzYyOf/ALqQhnIkI9vURgB9TqCp2+uG0RtTrtOptE2LvsmSO62oprZ2yZezjJN+I9aQne1ZKRWX3Oojt3v3a0gj1dvNJZxBKeYpvbU6oF8dY17oidbpNbcNiIf12dlGl1KpvR2WSpUFDwn3B9cFoFJ3vB2OqH3Dcs4qy4hIIbXZfp5LoButHnfb2xl9cRdmHnXYO2aYO3crVumrJk2UGt1SUI6LmV+trgNfYa0MqGtMW1vA0Gui+vYjh82dhxdTjSnbCZqd4celjDiJVDXUw9XR5sSt04B7vSaytg6/vM7a04poSyan2guerMk0pO+wrRLquSh4jK1L1yIYpcDQ5Gmwwr6ssQipJ0oVJ7minW8rTyGGqVCv5OQC+KZHUcdNocXxm6rj5D40G5l5J7k5y8i8s6qofj9zilOGZJ5GbYrjoqqFo7pkfHmK0NdJAKa1l9eOTXuwdf8AUWFSnL8sIUgakkON/qp0jWdTsOAdtpPjuKJnxk0LFG2ctVSZpl0x1V2bKVvdRs1rbiNUSTKbU31HOXdEjEfbKN7nN7DIldqVEOg006oGvJ07yJ3QiHXWa31ytSGz2fWmpEBl26EKwkmd4uj6i63imvJUVw/Bdmekov8A1ju2pQ+3q/XDqKtV/uDo0ydVBVoXtNLI0Ob39s/qDkfpWV5Tg7UXf4NfmCioDdA0SLp2e4z+hS+ZK2ayxTrhOjebLAU1Pn7Ppr2Wts4H11nhQYUGpzZtMPzBdFK7dob2YTrU4rN9s5Xel2aNVp64IvhKqOk1sF8K2nUNoGOu3ppFfKMZewG18xkEcJ8dFC9Wj/rZ+KE3hSfZmkfaWTqCgya1RsDSAbSU3X0yDX6y+gI+5VKbnZ5u67Ttf31NSJW+s5HtUNKaybQ1nJTE7yE0uUDOwln3GfrsZNNHXtWspQmB3qca3UqiuxnyaAFaTVaM/GpfSpxdUGEmtB/+zjudGad7w1MuUFBibTHx1jIhIwnVLibERVAfraYb92PpnbWnK0Hknm8/fGtKATo6ho7OaHWTR2R7ms/wSz6jkbxTaLPVABapyhrdM/bS2AoSbn1PNhvr7NblQpRcEvW61s2G62M6rR1/3KEneFfVMDtraBa4SnuE/iMvuuv28d7RA90+bTqGtAL2xEnA3rJ3O8VfqOypln8csGgNGtHZmtmu0o6+u3b1M7F8gANLh7LrbsA9Zxl2JCtM5/yVnfuP/Y/bWnb5htxpFHb2M6hZS+jjt9euqyf7I2acRnBCdAnZH0XXXYW/rrD6taHzBDNO/Kn3Z16+r7S4DJjQVpEc8Vxp7EofXeKtCFb1Iy3OB6YD/XOpK5ACqffxZ3PVKd6pAOuRodYb24/VMmk2Yr20spO82qGE/wCZtP0R6pVEx7FA+qiCST+uhHO3VBv0HNlacdiwGkB1pdyrLtrrZsp2zleGNbjya0mwAdFH7geKA0Viem7eusdrp7PXDWu2L9TZP1XHZrZO63lz9VJnyc9d4gtB/GeB6C4r1w3VjnLNPKBqqASWr1jK00kiPYo7El0bBJXWMzIpB9OyyCaqRnzsFEY0dtHUYZwiJDQ72qjXk2zyIkH6K+ucYyelPbtmwVw7M4wydcqXqLsnSXWq8a+orCWOKF9RAdttXTJ2GZGdFm9osl7gaFajNMh1qmmbzfXbjKybaRxkm8JvyjvdSjAkzYadpyccTPscHbm5LOL48yBfyYvhoo4uWnt2uSr946vjKtVKLpka7LLQ7mvqSQ3S6jk2kMV9tpyEG6aa+xxmp1lV0Jcfa3k8chTjJUjnbdAL1pxrU7Yr7KRC/bHQNMeGmvNatJ2EHeWsfOXtm3ewtaEYbcOM6zj126IKXXbqMF0T1UnY0zrYZs267MOOx0yeG+Xcppj37eTOj0swewxmiqaxo7bQ3W3Uu9k6eueNJhW/MdrvCt+hI+4B2Ep9MK32GdJlDOnERNw/pjHX0Z2Dg7XZSiZNfbHWvT3wSevlStCj2rJPMRVMB2GGwcfz3tqe2L9tifbYSa2SDvOv7hPajE/cA2YhveOjWO5pRp9oUfBoDstEzt8b2pundi6MdaJNduTWTPu8V7dRAM9Hx9rDQGjSO/3e1+usPrnYa8R7DghVK6FrCv8Ajhq91k77YvWsH7Yh222O9GzrrGkkrGvxCTrtK17nvXSf28p+2sFWhddemDoFU0LvY0MvmX6AmuwYz3ozw0G+06JPPT+rhQPswFriq6xV1OFGtsUlax+s+HiQH2XQfcM80SWCewB5jtoWl6mha3KB2Ad9ga8/SdrtXtvHx6vUd4DpBAt0Pvkp/YTWsHY51eoYfhhXrKup1mv9ydf7/bLmdrgkplFV9STrpr9FE92yo7w3p3EsiK93eQOtYJ6O9m81r8PRkfrWhXttnfZvD7Pv+CKUO2etYJWxJWlx3rR20E5OLrbkKS7FkHN+euvqYaZ3i/WcK1QLvKGa8EqgyqSWsAfcP7A1X2DOx/i70ZNLOkrT4aF2J2JOq04fetJX7OGq9zT+Z76HbX5sUxlV3Qs+Mg+ov478zsaHAJ9xO3uCy6Kp8nFXxp/Jw1p31Wew60DNHas6/ZrNfXPFdO5rePoYSppJOxZ11+VK5v0nNadpOgEfro661joo0VocDT4KpvsVesQTYQzTWSf6oTSZNN0uT9q6511+1r9wnXubWnbshWZf5Fz/AFTWzeTIgFwaFSQ7NC67C+bJe3280Ch2c0Ee+kiOq0Zv7aVJMJ7qJI3t9R20dRUCZ2f2NPv5LqUY8BxddnEXQptdb/wJTUjPXzE8ds7lwd6lvW0SfoZ1SgHY+1qaKNII+3Wj+L6LgnaTChGmJWvdhLhp1Ockn6bSiVnRvCdymNMpOe1KZ94TfiGuvaqpfzZUlJOCaN1rqVieFYPnijSunsuGxdoUM561Midz0A3jU9kWWo3njM78oZChBx1v2ACnIn6pi/8A0FZ+6l6dUi9Rxn6uuyT40PWXbrq2+ylvmsTpYN6/kGG//mhHJ9tS23JriqCury8t8fastjn4fb4Ca6hJtQ618fqHEMi7VXF2aSt1O+P7JU0E12WvWp5K7STkQkgfxks2VutbLmd6i951SjKDTQVKbQU3SEmwpONx0nXJEnqqUIun87MxoZ1+xOzeRP2RP0MaWkKr3eFbNZCXT25SCvfydAPXWFBJnjql3VdQ32dK06aoaxlbLe330XWjYUOWbcL8Nm9mbaRzfVlwPa2V2cHU6GjzRXm8sTJPUY16DSzpaDWyfXB3NbFVE2eKdTWO9TtO0qB1M6v8jiblyZfMKN9R2rWRtnT74PnuU+oDrDS7w0T5+fjXXAJveB9e2Ff8s/Z1lAVrKOp771MZKlMZKjTUnhkUOsrbvBarBvbtX9wU1nnri71oN6cHVaYHzP0JyfqplfYHO3iYLVef1Gk9KQ99zqn6HXZm2Z0e1WkBMl7Vsoey5OlMr9kyaE64pOpzZ201Kzk09dIIdkUrZVT1FoX1UrRnH1Jdo7xkUSUD3/dF0zWw31pyq3OjshrKCQMd9dA9nHytJPZdsgmLv6mvN4b6+dfsOb+uspeoYjv33zNh5kaKTAdrl+1vDetJvwynwMd17krpB1sMskoxJkAdn4vU3h5PpyP83TCtta7OzTQGO2dnVFcqkmTKgZElH8rXY0PY1hT5pBdBohHsa9KKr1Hbkdmt4jtwrQmCpmifTQ9tIaN6CRw/s6QD01pFZ/AkJcbeo52CkyqKrWE9TWEjLvSayv7aOzMg73Rm97zR1NaBFdPuaN+wvbs/vmbJMTs7WR0hJp1/04UaDDt22WNac2TZoTap2m3FGtm38B1KrRL1OutrI9hR1tzR44nrvYOs82i+V1wpcdk7x00bXbrJj3bXvuQk0jvrOs0xJo0+njozZ/VfrWPvuS/4s/Yz/kmI9dm9Dtk2A9q1vsG8fDKKp2G9e6UA/Dsxs3uQ12zvp1m0neL16mNfu4kYU2/5vsaSRsMZfZGXtvGUnSQzTg+ONJQMVp2tbNZYIpBqMK16+3vZKPj6+aOqJPVcfXD2e2FDRk7VBf0xXbhLv2vt1ykJJwWqdobFJCRH8Zy97NUH6E7feyUIv2Ra90otpjKHiNQOM6HZOp3jLrYvmsj+qsTp8ftLpgAGAPXj6zVOUkyrGmjHW2RCVR2TO4rp2lZWuwUMhnL+bCepvDjSVWStD522kiop/mOo9zqGnHRO84jkkr+Q1SJSFaxQp0jvWXW3qWAlZx//AKe1kaNNdd7K3OnTR2dsx2Jpjj6p9paSvdP71HyZKWRrY9QJyV7OjXm/7azt9tnMyVO6vVVursNHDV/x1nHzWSNcXyuIqpZg/jBiY11PmQTM2RfnbI3VNEyxO+TkBnwqZrq8MnJNVmq4pAv7ds4eNdVhxpeqYbXU0yEM1SaaNtZEMk6P90rM+t6WX25DCC8JR8JKt0R9gyhitYaKMnVGsqQXcJErmzt5M7ay1KawGk0SbA1pUd/6Uv5tKpw06rKqgZImtCs+6zbUoEhQr9TsAyeUpSEblBZW3bonqlDPVEHWVP11lT1NZI+aZJBzqj71/sLvW8NV9sHr+DudjLR2yew9U2DsrY6J0+3QyYBQGCDodtbxl6jhrtl7KOqJpL3tMNCAIYJrrgOtLo0YJ5pP1O345SdhT8RK0e9j9PAz/Oyzs0dWR2UmhZGtN+alfFR8PD8UP10/gjWTqt609gAPBHXuD9e+KEgGgJa0Tokalc/J8VZ9jfpin6PrrKeunB7e472yG5/RPU35W4Qo2oukpduDvW9AbdP5k/ub3szSft/grJoc66o1CeZPg66vXWBqsaCdZMLS4UhoBKBNa1nU66w21U5PmjHdekamnGTfrT1V0stYf1HHZrRvVVj4+LM9dvsiqlOf8pwdGhlpcN6Nm5pFTWw+29idQKRjQh1mc80uJ44omkArJk7dsmUpwk7JhPjkBW0o1u8HvO2FINmtLjT5T1JO2E1/lTr83sezQm2uCGhw4hpTqyk4v+5P9msk8aERTDZWVs9wp82iU1m9mdkHDwnRTvrimtCj5hIIqaHB9BaEZx864+rmjXUDRkIflP2xRzseYb240sgelAtPoTQyib/XzqZsV0AVhT39TZvCfqGU/YMQKDN9aQqh0Z6uk2z4ascZaocNBorfQya+qquzBe3utOVWwk35lO575x01emk0y6GaGd6la2IBJ4ZsKNul8KHzKkKE7/ZcVTeGtmbZ0BT1NoC52d6w0hRNe6Z/sGAlhjsXBfzJkJ2AzOwR3nY/caHtTUr6Sanxrcjj7QqJRqaWtpWqNvutO/7Gwly52G9fXeTQ7M7D5kTqXCR2KgOp2yYHnvZ/qPiif1BNkaCQTGtKZpBy6Jmdv9dis6yxRwPycdfmSunUm7x+pvHTNSIyeNGzJfxKNUJ2St4bNuEjPUQa9N6BaQ1joQWeojG3jVK/BugDQFayYqJrHsb3IBnVmmhlJddgAT2kRWTdUa64x2kUkDpjvYOnZWHbs7AHNfZFRSHw1ONFBGJqaSKTxraggH2L2UGLp3jqqcf1EsivWg5ffK+wS9pMCZalNNbYlJLGXsaKf7YL1FnUy4Vuqc16VlrMlY1ufNA+XNvJ7yyzxGqm2/WRBmn7dMPpf1+Pycw75IqJ1T8iS+PRsmdPFRVOnlaXOKOwTj8Sutb4JZlku5JOxQ8jJF9Z6BN07WmJNTD1beIve6U/D08ITQKn1FkqtpC1vCQdtV2l1xUS5Ww7Giq3lyjKyG9ynbYr9NHpRbW5/qy3Insk412l3KbobrboJf7DR18HU9cqexmh24yOzIkRCvETYV1y6NqNTrsjJAomxb0UZADvNanRNLLTvtve2dD2+ptrdegFbfNrgdv3r/0C0aimtiqGa8DGSdpOwDLJ6iQI+vr2x+35NOtv4bxPO2Ouo4680yT6UbTR23tNa7ZdJWjZOnJVlcY7ThqqFe3jhOxcJDx//e0PHKdkokR6+9howfOy0V9sr1dDsBK9dmttZR4JUjQkyQsz5rrjXszj+hhvXtbrS9n+zb440GpKrsANUXrOweZo8RpJx3SaZRdaevro8aX3rodDcs0B6Iq7+qPaAwOx606TBZXZSbxpqvXwB9UTq9uwHiMamqBVdhqt51ddkOrrGk+zK07QNYGzBf8AIo07B7gIfpSoGB6CpozsOwqtGnb5p1NAspXbNqBhK1tijsmbD8/7cPtCi+lY0tDh6ege419TZTvHvWzDbmgd51arsa7SadqoHmnb02B1O2fZyV7M4eNGTohzQy5NbrQ/WmXe3SBula2Otvgrp8UdIinvpWR4O+z5WbRduqQd68w//LWzWSPZVDbhIVI9X+Tq0mt4aTFN+1QT5epgUlqxKQHYvlYJVbENYBreeouSBK1R9UyUZx9r0KFMJ7fZXVBgvZ0J27DT4uinSvhs+uhV76ISgyptoF20Kb/c/P6xSnrrqVk+mPszlbfMmnXj4+tWUIv0c2DqtH4RPputG3K/tpiaKax2bD8h3trW9VSq0KlVsmTDRpfVE6n9c1oZwB24y71iGjZVSdcDdbadO8jS9sXe17PYlmeu8raOu310VLVAfniISZ2dervTlK6xo932Qy9PITX6pjL+gJ9l+1e7B7YPWthMlDhWpXD3aku+mT9TBKp0P6ZVBTskSdO2jXbdbd7Sse3m6ouScn9dzP17OnsmIdnE/dtb66PBx1Rs6v2MoXWnejbodYPpWLqtYJL1X6/laPx32AaO2s6/92acKGACuwGWmzXUtTCTWI9nNA+EpPtfbjrL9mdNM2aRKA3994u9GAaU5K3QAGuz519TR40v4zuZcZ7T2TXX1k3rCeu9NJJsoArGx1pXr7O6lTUu99VneXJO3BGQE1WsJkuqebtX1CU4zAPV2fx6V/4BOkkKY8QmQWyl6nbrHTOxIJy6nTXNxdk6EtSb5JQOl/HbubqNTzGcQXagJJ2vmkh1y8VPaj/x/SiloCkIpnlaS2p65fGEKadO4kebI4u1FUaTxofMKp3va/QNtuqHwBe28E6oidVCl1ih9cXrqQl7Ouvb6rJrw1TrJlKKCz0d73uVZZr26wlLqUpU2QaQ6P4kqu0QNJucf8cXqeTW9AnUU/Z7FT5RhL1c66fUEZzqAamdnrGx2aJ8B0KjrOm5TEepLtnPHWVTc9jSSYD6Y0FaP+Qgm0xXXVN62TJSOFPbLV/Znb6705VBsePb9jXlGCGoxnceAdnV7AE2uSHbOwUDcjRqZWuqUi68JZCSpc3tNO5/GnGtzp214GivU3O8EUrKcV66wd60ShsAZcPZ8TVekgYz10t7ZdBr9E1rN6drW9anelwT/T18adBhOqdr2xPqBpdA6dY12lQ3rWeOqEQXAaM6/YF326ZYvoclz9cnlnTJL2DdiooU/gpW2q0LiJJIBreH5vCf3LEDQvmPks419WRncjnZ92U/gVv7Zs7Keaw/tjTMLkTsVNmAImB0fAa9wtZdta1WSrxikvuyQnSSQKtbdmmp1nZh6iAOCT6OpAz3XpooVk8T3/I/PQk2r67JkDqJt0eO9CMOQO9KMUZc69GQo1KmzO0jp4w61OdvHfV3rP8AlvNJiFT0fdYujsbdOuoPqp+3Js0a7YSU5tdGFH5iuyloKQaOo4UbFfsrhqT1nrvRqtOM7fLCuqQ+Dn6uzbPsbmtDrtU4P1THZWpa+vRNe7URM3uSkfGmTbvI1qXCZO2mQ3rZ0nD9Ns9lVaQFHr4jrwr6BleThtkw9/OOmZSl7FIKR4yPuHk7wANlfu1orzDTOlTfhRPo0lZ4yqm9OH1NCm94155M9RwQOxWtmihlGp0mplXrWgp1+CibAHZO2taTIX0o/wBcddXIoL64+SiOwxHvvF2VsoJFNjW5ekqxUu6T2eyUz9hrW7yZ3uk90Nb7LiyUap2oC9DeynWVR9pw3sxpTZ5t3Ou3p/crKkXTrrvOqO8oGtG+s7zjGhp2hIFbakR66zeq1nbVGC0hinbzrtc6m2V/CcNIuGp9yzS9WTWsZ/8Ansp7Bka072dnfrWs67NGzaoPU0r2V/Qxn8rIBrS/WcdVvTJKI0MiVOwRP+WXTNDjSfXKCfAOyOO96AXS0oAAdcpKl6m0ZT/ijulca/wK12FthDBOwrrs4VYO6QmhZ8lZqV0Nqs4S9TWtSmdpk9ri71KzqpDLdygS1IpXaalJTckpkydq0SzUgDrQi0yw96KeSv3V07mmFt9ue9CxIVTaTDQckWyZMVZ7HAa9gIVC+50CSeXq/Jo4/D48t9reOes9mkbU4quJe3Jy/Vkq3UhPEElM1r+1KtI0+7NlO5329/oOP9lT9EZJrAKENIeP9uqTSZE9R3AqY/YdEk6Q101nLrob415aTGXs0ASrl9pOwhXiU9Ws19dtW1QDXvXGvMAqfDinWHEzW1K2pFPbq3S1KaGe2e7NE/u6NjiAaDchea9dIoThoDZW3tk0NY6Vz91kjBW6nc6zqBtT7OM70CO/J3U+76mTQSZ229sQTWBpXOz2ygXs8YTsLGZaAWtsHbefjrEVTIT3GR05rrusA8rPd7GdO8XzD6iZOvDEBcfzzr29yZ6uddejtfHauXPbThqjb0CXZtHCTJA4jb7ImnWsv064667zZozaJpSq8JCdYfY8U6rnG/slpPqUapyRRyn7Ya7OD56uigmmJMaQDKgYyKX6n7K4r4157TO9dhibRfwc7fuNa1j7ItI7zT2BA7OdQDZtnWL6GClCD9sQdD/+67I6zkWtGLp1lbWXJDt1ZkZXF71pK0I9nwytT+CzDtRnyB/Hzr1ydh0xHr6LUyhLTh47br8ANAB7DuvycdJn7+C7zf6m/s6mkcutCkdiVwH9w2LsR6iynhoeuPoC6T3b1Vdb2aV2gEji7BIpf1nfIbdrRgs1vGlPVR0Esz462OKV5nJTMGosuWs7fZMA7Djs+z7TpJrtQ60pjvWNbNNSM4071gJLn9Xth5tdaChFocK1WneqVp+vbFGVxpUcF3tJW3OzrxRkcPwc8BDqTRnqurXr2IVlKigKcmtoiG9I6dZ4dUJdfWn/ALidrlSbcIV2mtuh3D1fJ1gJKYDokrZqcZDSkjNKzpx3rWf2OyomkrVdRl2onhlA0bv0DAWQE6msJ19RF+qGtoGwynrK5D2mlqlneB1n1grTjvsp1UMQ80yVOA7NbXttKZmVDrMgPbeFFLuZNaCtGsQvRies46U1KUrnUWsfUQn7KgdsZGs0dmkRd52N+FG2hrVOj6TtfdOSB9WqJanOPVU5UjPUjZOjW/c0J4LNY67Cf2rWAg5ItLig7ERaaHZSVp7Y0VWwcqQyF/MARRRwl1s9LTDfXebkqpRNGmXt6T57+/bNdaNtfXrmwj3u2dklqQbdwAPgN6U30ey5X29zbI6vytinUxd8khTqNYhsxSjWI9+passh5+UtQ5Vg+ly61Ca9KfRQVyw6uxpoM8J1hyedcRP3l0pnHVPXbLsnLHsmTNVWwg6ugdbynetSv8jI7/lKzqgiS626BdMlmi+zMznFKaXWqANXdORGliokmurBJS5dNekyXLDMTMjldWleagr7RVF7OLkWUY4Tt3vl0yaZOrt0SJFo7YrsuuwbkrTIsvmQnb23c4E9FyB6u6262V1n1d+hoN0upHIWqdrTHUJdeLrwLDzGnkSTiCZeoeMnXY7GmeqyUgddya5LJNJrWiDZtYNCh5hK003ooMaSUWiqxkayZNazoE+O5pyxdIIqo7lrK9NZxf19B0qf1XOoa0UVXjO5zW5yTfHvNjHrodPVTWdfN4OvUn9MA3rH662P1TAd+O19/dAHWqvK3vGTc0GgU06Q/wBM2SKGnePiqv8AmE60i6z9fQeyLqXzR5p3vWT/AJvr9XTSThOtZdaFwGZNibxSpdEm/Ow6wr3WEky7f6oaGN5WtG4SvcdVXh9URDtvENeXOvqRua3l6t1mwQDZWjr2z8r2167CdCm2p6v7od9CkNiVi68KBBdLRIf/AIK1vO25yh6iHoS1L5oFScdb64Gp3Vu5yK7SCzrRSPUMkZXbpfLpk8Ja3rjhXKEp0a0Dv/nhZtl1rTi++bHWdTsSkvix/wDjYmP9d5/b7ZVGuw6n89rWMg7Q2Oa7OdipDFFzSA4iUSEkNOaCuuLPV0Suqy5FXGqOo9uupyytgG9TT6ro/q7XYViHRc/NuB39UF7YC0zgO3Jl611iXqKG0xfwx8nTorSFetIKmM6r2ZNu2JoaBucimj09mpYfDFYpcEqss3Rjv8GhkUl/maGlryf3eMnV112Ajod+rhQVrLENYopohVwCR2UTQDJvYH+P/wC+TT4f9PpOxo2uFfuyQXZrQiC7wffJFa0bDsKdhV6gj7qU2TSTPnvhTIya7YFL6SS98/uNGzesJNmrllkw/rpaCcPtXpopMa/7R36/nmivrgszrAX3F/6KOzvbVOdh1KeiU6k6YyMph7JOL10PXTpRZMexU4/Uz0PBWsdDvFexWPlZFLROCaZe2p1n9TbMq1WLuncaewUvUcFXYL2du2mjYE5VB6admGvawD1wQFWjfVQ1oivWsrbteMJrQUdvZ006TPaXTfakDdaGt7ZCnRsPuq/3mVSqUoNazqkigeIDtrP7GE9orGWerlVukDXV34OgWQXzt2ZARxV3LvcU5C7imVLpeu6XLesITP19BInT5Lse+jLkVnG+p5s8cjVGyqXVJJ+5o7E5fm9s7QSSdbK+zuNVW8JUd9GJxmmgzpMuEoiFFDn266Nbh3Upc1ly3ITFXD1rbXIi60uFKU4iV3ym+23+V11NadZf1OptYaCgXU1t2d33asvjZrVHc3SyV1Ms1Oi5Owzo6sx1JUYnrx6pY67yTZ0zqkm+OWZYbh/kB+TxPZTg4U0VxccROjRQiPWupy1RAglhD0a1uOsSYjVeCP1QB2oaaGhmQ6lS4Skzlz2Aw+kzvjkrY1MtINdY7ZFLO877lMk6yDSggSArMhI4yHZmfQcf31VdqHqcaBrOXTJiLW3qEibs8xd713WRwpbZeWjYIMrWRKdnIpqxafwGlvrjvt1yJdm+xuoCZZ6huZJwok8JmRcqk/J+ujAJMA0KAT5s1749nCTWsTZ5R2Vw3Mm3zZjo4zY/XednrKJvedQBxPd5od6EZ1isgYoHbGkrsSNU7NFZS1+9f+49rxVAfZxDXvXtLm9UB1F9HRmncg7rqZafuaA2q6MZ8DJlk2XX+DJSKSdjVV23mhd4OvE+36ATUjLPubRM7J6Lp1lS+0mu23sOdU0nYQcHeUebzsE+tKIQ/wDWnsYq1hX1ca3xiH9fdpozToMg+xra27dmjPxzT17YKPfO/msilkVl2mEEhpTr2wN1mj8U0uXBVdsZmKdDoQXX1WRANbHcJ4rtlw/eyS6aNuzd0wbers06j839cijenYDlV2N4bOqKk6Z2q4msTtXUQqtr5Q46rknFFXPPqZ1R3nXc+OvVo11w1NOIC6kU01XR7ZFrPZQZ8dz5lgGkrUyjt0ZO6tM0lEikGzSOL4Uf8prNrXXDUymJ9nZTt3dH4wDPtaldodTCXzF9civrrLdBODretp9cN6EdfiTr3FBHFJMF7aTYooZ2Z3Ibl0is7o/tkOh3UGwNFOG9FYUu9I9tPXQ7dGqm1dSEnZx31NgH5Gq3oAly9kLkbiQxk1vGWp7HQaxrR2P7PbA80HuGuumj8zZQOdiXeANZ2TyzdK412rQSImDr9a19caD3Cfq6312ZL9XEztpAaN4Hq4UFLhpXR/bxnW9sh7iH11v8ze67YaPFD9UfMK9B2lOdt/XLAnYrUO5PTZK7cXd6UOwYusmjtrJ3NYr20y6lMJapM6prapOmFo2/v1z/ADWNHbeGmNYAG8aP3Af3HbQZ1J04VFWywM20LuVYn9cZA7ZOjWkKXRr0zqrO1HWAdnT6GK9dBfjhtZQp7VsWaxVHK3Kbr+u3fZcN6xAdYASVj7PbNs04UM6QaaMKWDGfqma+wKh6VPbZkyRJj4qX51Tr1BzsTI4JcayVNThZV6bO6SOgx/zGwSQ20aiQhp0s9grrWFbWWaWQzokris6S6RdVKu03J4ktDjsl1Z11gugVGky3/wCWgZkB2zXlm/Hi1M1vkft5ITxpPHbVO71yA4xuiQ1QmTtXtv7MsSVRObHkEufCima45vGgEZo9mYhqt5rqnZomuy8U2DUyTRu9MmjtO9s6dtfaCUmGvSktQX2U0HgCAtdOQkIOyjM9+uWBoOKmjrid5mcZVDK1J0CXsYy0JkQniyEklPWQyj9CRDbNCM4qUAVqRxV9NiKG/wDXaeIsE4G00n5nmtIusKAAV9xjYGadei6cO06cqtuTO68sd5FHVVmf3CXt2zRMuEmnexQTTPj/APn3sjsr8Eo060KL5sPHFWhz0ybHx2Otm39DxHrr6550263Wlf7GOg1hRsx1Vbw/HDW3d118QnaiLI4dloyZZsrGUXR+K+VQ4UQu+rppKakTcvbZKC4vm3boWpQ1jvs4ppM/5elLWVW66nX7NrpdYLtyhlnbo24PvhWhH11pBrx2U4iSmAzxqyA40k41+YAyZrY4G59XVMk0/aUp11fKPNNSZr8MAk0unSVZrcmuu8D7bF+wjt04V9UXQrku5EhOruTsK9t+Yfuk1+FJscp83nbSbZTzJKK9BowlTOvookrlr1EGeqM6HqMhQ4/ht2K4Ldae2q1jLvePiZ5WM7kcpacoZrxWnSaE111OFaPYn9SVkdTQ0jQfgyi6db0UGp0Sr7QVfszs9vWnUT12r5XY/Z7U13tA2qYH9cK07HYYDshpkrWSlOso9wTJrSirX419jd1s7AhrVyWJg7kFNeG/rsP9zkE9N6dCvjnmjSjJvtrxHwMd69l27Y83La/46Ps67SOdQnyZXGvFars9gr/iyfdya9cKd6WjsbaewC320EO+2Ol2T7O2QRQHeglvYzrbtrVDhayiu9L0OuyQmtMoSuNM060rtQodRIT7o16GnrjonNg7yg3SC/mM/bYz2ryn7Bm9Hn/Jw1sFTrvECtYp38lJ25/25aB4V7rD+u8KMgCZRTesf7ElKYiu1+2nCur1zpswAeuW/Xq7QzrvqIafH7XrP8NtermwTek0nY2aa7epXXWvUMrchKVqfT2jt57lS/2wlDxE3ifmeppZ/rrtvWPDFfILn83RoRclQMdsq/xfucZ1lrAWnfY24D9sB7aw2zvNHutfmd2ZpSqHSgZJrzLN/rSuq1+Ieugk0Zdgdcmj3K2jaf13krsMfXeH9dNeJnbxXbS1i1196/ZM7PXSyv7aMpkrEYDqXIlaaezpMJX9ZTW+WSuQpiep2da1i9Z6jL2Mj2q2T2p3ewTGQ9zqdUyo3+SVs0B2BsNmuSmcRmTUV67vVT7yczMkYVoaXro1x1XZMUqu2UbnRBrWGjc5AFVtk140e6Zf7JbSORV+uQtRQRuaJWWuVpOLq52OoDFddP8AH+OVXRRdOt1JIOCqmbGtN6lMgXZhxzuazlSeTWezCZI9VZP0etT+H2XOpUewaTV7fwaeT0Ps4SUNYVrZk6aVqfsUVJVegb2g9Uw32nT9T11MtYU9cPtvGXe826MK+wIDsxn64Tv3EaprIl2KnmsJr3c8b21lSzWb7SaK7V6UEqO+okyzKEO13O3Zi7dZ27FGK1umadoIshlKAkUJih+KoOf1l1GvV2CmUq6WQN4b6qS+ovNM0Sv7gnV2Cu2q1WwoqWsP6tZGqjFJNBoqcXa5IE+DoQNTLv8AftiobD3U5tVCk/1UnyLewYoCYW04m97Zf64u0cUn3NujcjP72O2sJNbkXqyugNb1+3vsOV+eSBO8JfcVK9n2d4n/ACxVNYi72Sl7yqWeuKVSZ6TvDf8AZne1WT3OvnjSDJFMhk7QwPdY/wCuGz3PK3WQOlzwMf8ANf8AEzaGit1OsjTOst0GFOvOztM0+ZPu3NaNZ+zpZ3QMU7axEoMnyerYdfA7SBoa6qb1OKD1zepnNNgYvgLusNDsPHefvXViHZ6nXCyp3m/suC7MoCO2TqtGKp7EsrsWhwlZTDkP5OqfaPb3GD2HZoneek+MlSOSbnx3iPtY/gYmpc0yidntrGdR4efZ/wB9te07s3vciUqn/JDsivnYydmD9nASfQBVrycRcaXW3W3F0bDdOsoJdYeaMQHYBXqV/mKzQt++4BOs87Yr5jvZj5oN+OxSXUn6LP1Na+zOGiRRGkwSzePoOAytL/YzfZE/NYfWvZlPM/5BkeCsIml2Sb2FLhqpcmUerYu6F6yaZCjGTquBocD2px0so6new+rgGq321fm/caWeuAE+MrVORXukNK4aPcU7ZWmRw121hrZie+WzOtspKgmtgH6lpOdibDOp3NNDvQ9vzz/B2qlHUUfrpp27yfJ1gBW80nJrEJto7for1+pd9Z3m1dZddlwDcuaOzhWyRdJps3hKOsKOwCmzXZnTm9W69Y1hvY4ion+6J2S0Cog/uKiA07RmnSNOgA/Kk7FC4V/qV9XZ7OzekcLCVxCp1iTMgtjXr6uhK7OUn4a05I+uIM+ElUqrrxSZN15Dri2z6eDsrVG6DttoadBJM7xWpNqbBvV616nt6akE0Gn+rsrUmfteddG8UfsMzWjFJkkn/pR1rEN6wK1vOzoy/a8X817o1C9lw0XU49e1A1tMZareDqN5Sr9rDfcgu+aaRB1h9glaGTOoOsKOzqJKOuIh7x1vkZx09h2dVGhNZ/E/ydcOOZjtkURtybvvtmSLXFnq5KzVL1qhrCmp3laqzs3PklSdM6sxvCTft9ZRyZ17jyPHrA7VVJI+sSuxoCjFNhinZrEdFEbeRpXqYTZWJVGG4n1lpED0DtoNtAmnfgz5IYSrsZWNrJUpm3aMmp3lK0JcwSOIKa26HOs6DEN4uh32fNCDguzNL+JtFJGVx4RpA4rK3jNTxe9QraIuRKdtoa8aSisTR1wev1zaGMn1zWq8/fM2GzCnzJnW8KSSU8N4v2ZZNTvH2Ss/hmr7PXTpH/ortGxp7E4aBMJ7TrEInqPusf8AsDU6eup92GqBadD2mdDLoM1vQITFUTqja/qZIFba27StiaZ8ddt60VqlkP8A5rnZ2GVWqDPNzukn6jJOnCuyAyNhlCO3SOCh4v1TKDZsr/kUv4bU3ibwdrt/rhOl3Q47UM+w7aNUKLvTA2+qdvJ1rGlN4Oz1/Gc0+4Vqax2htpA1s8cVNgqvkDMbafphO+s51KPN+mjcznRKrZ5oED932l0DUmH1nWLqcb/roPsue9OyUVVCIbU//DtneSqtY+Oh113knumq7G8vbIsyaDFexsDsuWnk4fW89rejYaaNekU9TbMyuzZO8qmjNhOspOuwCpERZdS6kxd7rKrz3r/Uyjz1QScTbvD+vbBKtxo3s127ICQL23hrshWx2X7Psig4UNOdjRi/hjpkcXWCNiqNiUsmhoKKO37WVQ6MR8rHzai7QT6bKr66woRWDW9lbELpiSns1rHXUMmj7GK6JDfXWb1vf5OnqtZBqSU1UqlCmO6BejIoSsjn69smjbKbAx8kw+i0a/dXWpNHvhKlI9Tu1jpUwnQ7fwl2ig01TICfZRZNHtKe0JkJvSye4CUqUAmVRsMZOyA6QZSdmIaylDrmgPPJcdIjQU9kNyrFbrWAaZXUpKT20kz4xnp+SmycU932H9NZQdDClTWursExWd2CUdsf0yxDWGlKdJ+MnXOzvabXeEnYc7K+u9GUJPjJscKFHH2hwHtrAf8AJ+yoVrzF9w8NGjfjT+E71jK4V6YfWXYk0SM9HQh20HqS9g+uGwJTRqcrZPQ14b96jnbVdTzTokqyc8PUnWqyU06oQQQg0mqnqiaHBBNditavq2rW0DBJlVTLo6mdt+sjv0frmzsOdvzUU7sTXXIlqRxqneaGfR1SDTUqdvrrFSFx00WUk1to26Fe2kkZcZF1nut4SeUIlU5c/X0l7FHXaJc96nXLxMyEnIQar2qenhPZJ2jjW7TOQZHXBPbVN0sqTNT7nZK7ZeyeuUPdoPkRXNMHPy/wuz/2Yuu+cFxyUucoTRJ1f4fZl/kmsdzoezVsjLVazr/9Bwl6+P2mZdBQYyUdcJZr0n7OBTyupNSg2k53dA15TuJ+o52GTReq0NOpWK+q5v6m2yplw3NGrolA2JrGk2vjDgsybKavtkqh2LV1iFV1x+ug8r85ImwmoiTj6mjeP9Rx8cQ6+/1lcP69sn2vDZsKnXjK73ml3g+JjZv26CHP4zZsg9cUqe2INaNe4m6ARL1nqazYG8PzCVxl8Aep4KVWwS0Xi5q+bPJj5vQr5kb1vKnXqhrtgSHmls0x/wBAy9coV2G2c2h1xo1vPK43RIcdCamUE98Z0S5tHGVnKo67CWk1d3HJEyUsm7966aHtOEvZc7eawNeLXoYH2HHw3jpra7N4eUaZP3LH8z/BwN0bPsO/A09U3jT17DvoaEDWIhl1/UKr8kKUBqkTXu95ZqRCeps/F0BU7xrQOGtKm/qYlN4mh1smVU3O8ZY9GqDzX6K6nQUJ5r6uFMyVm/t4601nZqRStvXOp2axo2bJ+vipLo3UbXbrVToFFdGIz5hIyue/uI9saO23whw2U707MNk+VX3MUqcnW1LX9yLepvfauxvVouxds/bZSLhqZ9tZl6lVUm3e9NSa966PPNdQUHbWHkg1SAPdEcp7VvFf5RP29Hfr5hXrnjPkqNOPuzIk7bH2tr7JlT2oxPzbOqc1uQWlp2SMhlaEVnwzq11Mqd0ZRu9H9Rw3RvOoz1zn2nXACdSb1rGHdalV07Q9J07zkCoB4h6K16aA3JoVTRJvtmtm1C53kyEoG9FIg+krXfJlFM2/i/18B1rAK0m3aCOjK0WZL93KfScB2VnZLrIUnSb/AMNhs7vbWIk1ghoXZoez5vz8wk/cBUM8T1BdC6TaKjim9lKfq9p8kNo34rjQO1o2GCb06N7SiVHr9ix0I4h4krRVZ/U87D6GixytFIsvkhv+wuuNCKV08lPklChvfiEnU6h9aytdtirQDTvWD2pkrc61vZg62s09sEBxVnQbD1PxzWqHEBEH9c66oQ3/AKCy1mzrIIgbD02TpUZZrsXT5OTqqZWSq1jR29Dq56O8NrvCjr4aayqaAXSmM9pUVZ90+OeVzFY7Xrn/AGKMmFHiXA+u3q7dEu+tAOa7mK9sqjsAuqYblr3J/TspXuVP5s0SKgoiL7hJpc8JaFA0aQyqNEsyS+KElBtprNNVtHsOyPqLR9vKoxa2gUBpL7/nvbtlC11wVo31Sfeqz2WXTWWrvVx2poiv+Iyk7OOlDSPgbKrpkV9umUtaM6pFWW0x1xh6ekvUQN21jqwl5ZguZiZ7MycvE7b4+P8Am69amRnbZvrhxdd0dXxOy7Hin/iml3jRPuCD5dIVkE7ke2lCK6NTjX3ZyEJpBaSVrXXqaK1mut7ygUMiXrpV7edkkoF3spKTOu5EZJ+yO40QPs4666wXfVAAMg2DjresDUhkzL4iNay5HO3hjI+loQ66mtKsmR+meJilG837rGvRzsguXT1nLk1sNhO+yY7DWO5oRpduTTpUr0cPsOeG5Z/MJ+u8uld54pmgd4aErEKrNPVwkfcnU/XLl/cd+4gbMn+y5614/VZdfZMPKcA2BpTbFa2YamjU3JdSdezsN6lywK1lUUGn10yJ6m6jsM9pHOuqHEAyV2uDtDBFBQoyJ1W8Rp3joM26x1NSjXvhfVBaJnOqTgalnD12rudYafD81gDW2wZ1nUZXInsbZ3TlTTfk1rzH+0hM6nWUaTDXXWImtmu3XJrS4zvCn8zYmsjXV3+C4pVaCTTvqlpmzzHTqR2HXJdorL6YOnR1SjTL28rVU0lBLlU6DNblnDydB7OnsGnH2ayf10v28UnZkTusN665J+CCCInbeMu1xBAwnq9cERHTL1wCcJCdrR4Z1NbxDwyn6uFDO82T+TpGm97MdC46mVZH+NM6qGPv2wlZ7PZDTVEplGkoEXZbrZkh/g6/WmTbB+IJ2TL2G87dtI+TrPZAVTNpOW61sXqOCDW71Ujmta6zTQOdgacaGtZAM04HvlmzDR+eh7X/AFnU/lpE+oZ1f8Z/HOqbRKqFfOvXJAAwp2Y7RxArQA0a09tCfYMH1F3K43v642IYb7GEhVLfjnYZ6oepgIej225smTa/bBKTXZ/MNlY7NrL52x/vjtl7mupnZ0gOnOx/hYPVTrXbH/8AazTsMmu3mG6/daPQJQxWv03Wx2/iz4YmtGf7vJ2jlnkzkUn0ACXFa251JnRJoN0edih69krrIYz23miY7DXpvszO012VDe0V9c3TWz/mGNFHbPA3iKOSu/Zoa96/dnK0yq0kFJqt7K1O8QtnbOwUfNO13o11RBR1sdOTSfvYXWIeI/6Bs5No13ayf7O0C1ya3XqymBr65M6UH9R7PuIGsHrHnd0zi7nSSf6rIoVuXZSyOFbtM7bl1x67Vah2NndqtyJPXAN9sQq3WhXa/bKk15oTxnroapVnIqk1Sshoon87Dx6FJnWCOWSXnYK8NdttUBpfxoBhlN//AE6rO68o2mvV3k/19AKyhKAZ62qzsKCHesTsIsnXWXL/AL2Pw4OIlXKhaJzrE7oVoEPvVa4+IlZZ17tsnxJHzLkr6vGMyLNTvTdRNA0xfHW/jWS9eQnvx6JlE3qp4wF3oxNTvHRe8Sneok9xt7aGTXjSWDW9NZNzNOd+tYdmtrTKaJZ0Z0SlDJkkcatrQT3fTdT2HfmS+6wlB0z7rDWtHVqtqBK5Caay9l4UbmUSxEUnQLWtJpwVUD37Ys9dqGsPJ00nVcT2dunaGyjXXYADrQ79xmR8Jd7Ubjxl6iU9p3gjI51dBjH/ACGfrvA+vpOpNCBpR/jdP+GNMhvfY3g+Zr+wWMa0T5kUejMjvP6qYp/iiuVtfCUpHsFLm1Wgpa7Yu62TW3wdDkmtLVEyj8Zu5vkuUBcNeuWuxOv+utKh9lkEsZyTxcQXeX4+ydZw01nVnc5/mbA2dvqueojoZMTYZ237gqo7Ekwo3M4vrRAvuf7WtAKVtrYhreK7xr/qXW6w2nnUn7CfZVn7bzsfXVytbxkdZS1vCvsbH64hrWPhTkH0DNebya26QQ3nY7awDS4bZ1kvubWgxGbc26xVrsfgOPrl714hUTOeuhWs6nXWbp7S+6TIfqiALi+uVOplzi2+5M+uiXfddu9r9tY7h0O+uw1v01o12dt561vJF0DTVaFOwYr29ZOxotKrCinyAMqmr0T9gFXesQl990p3AFF9MNPuXvs60LrNI+NFreSpjunSh2JBZXfU7eAMo6NrnvXWFP8Ar+mH4mJ4jKiGEhVbn+zKpt12O1ZpQxRN5NFVmuv5OqNjoRHf+7Xbm/dCFVoKOvtaTqgGbE8T8AftrD90PquVsrYqenHvsA19t4AO0B7KCWuO9aw8rWMuvB7OL9p2tFYS1pdfpjrqCUD2ep12Rtt2110i96AqTqmLSy5Wl9nfXwdW7HR56S5xzqlUD9PdYL6ZOpnTDs3jR12eB4rswfeqfasr981vsJ5IJKOsF6u2d/pvQOjaIjKY+nrI9ddmqdv/ABVDfnnbrlm6HK17uJGVezMuytOsDz3ab2blazt2d4VP11a78EawN72DRvKBnWR/VU8OuA6VKEFaNZvYJWlMHqqFHrn9pHHwXCtTUhQIZta0P1NYUCafZdFakxQreVX5o2eF0lGKacmzr5daoMH3Q41qlwV3rXQc32BGNUOB7vNar2pKNCeDh/URB9Svs6dE+XXq4pVYTtDGkmlZFKRCezdAG2daQ8pcAodbJe7vvbWRL2paEDSf1Dr+Y0G88eQcDVOwJVWCaMZDetgbxp/sE+7zwnRFOjdbZ0Sak1zTNGsAuRzjNmp7dtgSqzjMTJSGlAlKVDsO07LOM9ZHGVnslpXnGWiqrxVIDUI8XEtkEQEhnR7DlC6jL1M5vc9Rk3OzdLt2VIUnY1H25aDrtVXZUjDVMEQTTtndFDOwx2nYKXaE73sr6hnHNNlYGqrsakZEepTEJfnZDq1SRrFOivaU1l7oZyDc4w1XoHdMiaNj/Ga9g1+jtdgn4UteMnQ0u8ndA5UrvKfBdJ2MhK+p1SgGma2NfYB0us914DG9CFGro/zejQL5tr9nJqU2M6RUz/euGtgULQYTt991iIYaN77f9w7Hcyy9sF1jWhyhJBV6pmwnePlYSde2ClayNdWUnXmEj2cV1sdMknPG5Q451xm1/HCtOFanWO+w5VHVVFBJl6mwZaQB1jve1oN7hR3ntJSH2w/Byg2B/oZr6tZ2WtA+Jn57hPVNik7zRrH+us0dhF1LpeqOb6jrYvnUac6qUYzRgpJsfaVk6+pozSg4PueuzGe0guzzHWdcn6nXA1KMmjzZ1dxOzeTOp96/bZe+uaREEZ98WjANe0u94AGs/wAyD7KuilB3rbSTS9lowl+wj9QyjqhnvhiIayJ01k0lGCr4mBuu2b7Jh7Rs1rS0Gqz904gS5FJkgX69fdeHhrz2xa1kBM409tAJa4IbxH2jRf1deJjOp0lHQ1G2t4n5TpfwjtVVgMyp/Y8NdfWR0Ds9xdI4m7d/s7ztvbi6PNg+G12K9WXr9gzf13hR2d72rj/0TKCt73vIn1rKUJz09EQMRT1/sAhC6RcoX3HemsQrcpLIA+rsFVRT3EKHTsAyQUQXrhut4J+4+a1B45I79V7bwQz0VLqmRkWoFFAVPaM2vibZ6suwM6+04TscUntRut5r3bUl05O9pnNVkduPg5L5+ObvvumRQpAU3jOvDTscJ+3t6ATqqaB6jgPb03p2nXWkdYD1HCU9fSVVCcds+B5ody9cKCUdH+j7o7kbpNVPu9zvOyG10SU6GUyQZDPH3Cjxa9XRXa91p7dShlKyh3FNpPuC7aS3XkvWNM12JlArtpd616eY6lMfHeDo7Y+7QDrvCvsgoaw10Zy5DWEhrCFpxSvAnVO63o0yUg1KQ6fTth9pkarX1zfbQlEjvkp3vDfXeNDOLr8AK8uv8yDfHt0rjr1IppM/0csqmQ2SpmhkVPZB9lMe0yuFbo32TQe9kT2XO30HGfsC1udZxKqPZnj1jQUjFGuromkw/tvGQ25/WdtybVNNbEQ2KWdUU2sbe2pNqGkdMSAyX/WsifrjQAtPWdFKBWTtFePj2tYyxe8ZB2VrbWSH9l9ZciR+w/1abDqAUM1ieMvW5tlZGvJ+IeUzMcbNBWtZCMuFSV4zujBDLrSKh3cK2rhJMiidkNHXbMknYuEvsxLs0aJ1jXWutKB1ya6VUkU1Iv8ARaz+TUiutmM69Gtpr3UoJvb2Ko2zqXR44gfpqUAlqtBJIifq4u51nh+afq4rImbOxrbjulA3JvKSpd1R1NyO0yX0AtFFO2GwNhue2T/+R1TlSaaCHqOQaDaIDhtpBCfslfpi7DQCe+OtO+y4Vr3BawBJxlmuuMv+/n2xRMKdI1X2DHsz77TRjoTKN0gB1TNm5pdadH+Zo7Votq2MHX1X90DtTGvQxCXSrt00sgAL6604U6Af9wl0OOTJQ70ChA9gwo3SD4Y+07lGvRetCbBzQfbHT9sfVcve/BCdIoolfuk+2xWjqdXwerpQE3uba2oIbyqfRn0EaGQw0+52T64Bpc6m/dDRoXsiArkHVZevok6mfZ/trFFDJGaVrRoTR61vJoTyV91KdWjXbYD4iGp2b2dsJ1Kmwh0a/wBo7BOeegUdnb9Z2Xp/DbJhQzt7JRin6mw3hX1UD7DhWqow1oMtJrSOzWFAaTTOsJK7TkSlBj44BuXFWlwe9by6/rOTKUr1X9UJ0H75Zt0Ems2K7DRWzX7h7LhT1pSjXYpGRGUnRAdQz/myXRKAg1sqNGGwJHcpidta19fISVrF7fZ29tgLtwnS77bpxprxVAF9dYTufOzX6n+i9gMUHRtHZdfqqsiOqkM0bDFTVA/XwXv5t6ymn8IoHNbrYBNaDRsxpnwNzUy9VreVoTCtm0RTbP1FWt6xnzGQkz3wxNVWa9cPqG2TTWFAJkb3RlyUk5+/UTah1fV3o0TvquI9tYHqHv8An7WSr5jP7k0p74VnYmlyl6mFfX1n3WeVpwp0C61vCvquAp76V2RZ8x3L5ra0k/VQVawlZ7YSdTfukw31TE7UGcmuho1oqmuteM/Vlf66SiX0rdVqNC46ZITVU7ofNEOnUzqtjqRc0zWg3J1zqOsqj/PKd4iVs8aHCiVMUGjJDsmaNmNee2nXrijsPfBTr6dhredk9wqZ1J21rGwJDvugAH1r/EHabZ2tHbc+SatwPPO6LikUCbdOTSiiMz2yKZqdnpvPf3OwcnqHXF+pWJ7rKkk3lh2nVBHuLs7IsOzqqht8cudDrjr69hpdbaKrwDXbOzVGT/UoV81yV1Rwp93KzWlr67Y1+tSKzng1OTKAFnpsp06NoibjTj/qu560E6plF9Ti5Ht1KoK2djbOdr2ThSguyk2DIYoTlJ0cagEUWpSI7RVYcfSu2TJMiKNG3snnHVEmxCpCqmE2XINNX3rqxUfhdE15yXupyKHbjB3R7GvCdmlklNBpcZ7WKgfYqVmcN9jRL2TOrocevWcTfpUg5C1O8KCXQAjjuaNj9lyq3vZtlTinXmAA0tOC0U5s6qG0doGtaBKyXrNGJrTgPXrlIShL2lnCXs5F+1t12DOs71hOtbT8MnTm/XGtwSSGkz/l1y5PANztxpJdXXbSgawodbF3U4C/h/asiCeyFLfivZMne1wftoA3vFSzXjtxrecYmzGRpMdf1yFCgmd36yj4FbDE0+EBTYq+4nV7Z2NbA1SjJQODW94bVR/qViO9E0B7W6l0D/rtd4JOW9TeD9lZ1tyZ/wBKfHD+uOh8UF31dOz2TRqjeaW1x/0xo9xOxkp4PbVJh282SvbTXVlffDBH1r+xsoTWE/XTGtI0o513PbEP3DTROIlbnwdD+6Sn1N/ugNeBs2f6pVbo0u61mn8w8plNTASKDJt67Hfbti6+2GmUFevh6BgbGn/Z0T9lACUxVCc6LRhKoIn2kfyca7Gs1RtQdeqGtDv8dOtOl0/RAzyvslpKBIeh4m3yjSbUzt71wElB21tV8o8aXKnwwrc6wkfc67DCezprZLg7BA8dhveier1xl6uyt0GdepsFpWqPN5r7GXR065OrlcraiRrtjIHpL/XAOpOa6SaU/cE6+p5oXcou0NMu95IdfWXs6PrsG1oc+oedjzVyNY7HwPPP2XGWjw6rn9ad9QDDb+olKtBO8PUrASVxr6m37UooSa6n9TsSmE/YMtfrp0pmxJxB1u4dAdmZck2+P7sU3mjr7IlOCddYu9SL9s8qDXXY5O5pBVrR5tpn+7tD7al9B1/xw0PUKf8AEa0YHZ3gMzpT7Dn75hPulg3rPA1hpnWO63o2uhQN4LQ0lJRjswpNzhvqOe6V/wAddVMtTjNXv6g+SOTteyUWdcRomcZOoYO6cZi6HHU1uTYOyu0ARW1MqgEY3Ngu6rJon9TenD67l9Zc7Kuma81oJNj45NFOL/yy3cmiXXc724b06EfMpdbB87ZvcGM6ocUTQ0zXhX/eja52d9ctOtD71lNvdo4+V5OJpha9bGZTCtQzk0kk4BQYD+l9pildalyk+uFPfQWztadpRpK7lu53hvqBWmtEoy528QTa5Gx65R2DOr2N7epkV2ZcE/0FtFk1S2P1Mqn2glY3hVFE4bWs6q+AyevVBxT/ADUvgy9TaX1MftQl7t0Tx0xpEKJGfqaE6u5Ts3im5QFVGvdUa13ORGe5c69OKux5s6uidyaijsaan/eoSuHGNbCWa2/zPbtX8tNkidhcKrqgLUZ1+rsnWg2b7rKx5xrUmmgXZooxBZyg/Af/AJ+kfWQnZNBUPUl0i76jLtL7eSUOs0VjG6cqQocidLuo2aSepQRsnstPUFENhXUTA+uns6MTdJgL+knuke2FPZnK3Q7AaKxvU7yNpt2+JCh77tVor65NGH6OE9lM2jpa1vClneNa3Kf1R/T0ga3hICYy71iADgM/s7c8lzsV9spd7KWd4U9Qw8neJ1lRNyuOpTCl3Wf5sD7ORtuh97ds6nVpTdOCFKtHbeO3eaAwT/Nm0DUoYSnh3B0tm94LrbTqdUobcJO7pA/V7OyJKXbs8B+ue2KRWvENAUz2h2iyOaclR0djS4L18R2GNDWk0yuaJ25I17lD+DP1d1K0aAN4g7yE8cf7e9vqTj/bY1rWnfUMBK2a7GgAfaPr2wo3iHXzQVrF+uynRs69VXSujs+OI01OP1ACXaYQ+6oPRZE7HX9wNm1C5MFPqo5O+zt15jL5n7PnVPvmvDO3/XfeVvsOBvNquOgXHbrB1y+p9gw0Ug+nXEUJO26Md6M1+zm+rvCj2Wj7zpX/AASa1hQ71/z8TB2mCdu2f2NYbfwuQIx7Cp2VKx32xTfUaoDN7nRP1Qy99QEa9wk6mk3PuwPGkkHfaeuD9RxrtLjrrrESjPHHVUChL4G52s62Y/WfGdJiClYTvdYL23j7Tvdf4qUAWVKYKWKaKdsu+uE78QUXGSv0Ct719UV8JHfYCdAje2fCfeyA+YbTZ/8AhFqRx/tIDqlNO1x0y5DuXakzo7HbWM9p0yHXWJrwDqVvqmkZDbjSKO1HDT2GlK08aK7tJpzghmd4p2DENjni7HXuTKoL4axk6+Khgh2MQlFd/XDWb6dnA+u8RawkActdAB+4HVV/RXZrriaZk14hVPX2qYZ12LKxdiBOg0SdjFGjPO4Ybrey9m8qgFIo9xRAxAPFRKyRNI6lwoZDGT9xrp7h4ax37lJU7DbLqR7aeReoj4aSgGQl1vAUZwNGsHU+kr9c9NiSOtm+3XGQdZetohuffZKRqa7RXHbfFNYbJFZE2S9XO294/wBXU0K70CVm/TarPbE+umR21U+0uXUtdMe2hy9iGAtMr54e3pWjW8KK4hBOorufthW7TBCs6oUESh721Ws12fe2xMo0ZE+dsBF2SaFp1LivYzl5Hr5Fdpd9vHZNj2bNJqN1VASG2twBWLNGseOfHB6usXtCpxp9hjb55NKUFT1yJ1KICVJyKe5M9JXJe11K1ck4gSORUl9X+UiuzHyF5DLqGKRiA6kGt6KF7YnjeTPSu2M/UrCgw3SmUz1ZyGpnyXdLi7BJ3Ui1XrOFGuuKlBghozfoZQa3kgcW2PKJIhShJDrjQJo4xCmgdOdmZ946eosSsuzT4o/xrnX/AHIR8eTfZA3pzvqd4E0AVLvQ+bc7PXrlbA1O6OrO9bz3s6Nk7dD+aZd4aTOwDhXko15jpnqFOu2dTqKg0UCKhrUm/fdu8QQx/qKPrhpNYyAa9ZVf0xDFNaH/ALxdTvFeusDU7yVd4jL2OMe3qJSif8goQcGX1Z+210udntj+iIaEFqvZ9nzTVKr9tYJplqgc816OvxXtrFJ1uPQcFa98p8DS5M6dZQI4r16gAG7p3oJX7Zay9TqB67ZMqDTs8ALQn0rfmNBrdbTFMh3sU7GRO9zm/r1w99E0Gqda3+Gb8cAQMqlAVGSXXi5t7BghoU05R9garqhgnXNaHYGxwNulfNYUTOM7reGg6qeKB9d5oTCy6TDVT2x32NeZpPqlG63s31V1oxer6StNYeYH+0/uHpl11iqShfUHNgtA/tZaD4D2xXq6/aXE6ptkVZX/AK7G+pSN7wAew0dxFWicoJ+2N953n/FHqSYH5QqrmjaY1qgyZHzD00mjtsOx5IdsZ/zHcTpayaKdrrSZLrWDr7ZJ9uw1p1lnnbJHtrNf9KGtno4C3vGjF9wRnAF3jIJn6tFGpTDRrRM1lSoaJ3O83g9knF3Lu1LwPsOAuspP8gO5t16527GR2KcdBrDfbsKf1ev082s7ddXrgmsKKRA1us12HOv7mjRsVzR39pO21UQN7nbVbRDXXqdT/a01pNPpyD2dzetGI1Rlp+DJo2htc7PYcQvVEqHpO3WEtV7MtFZYu5zZM6dtSmSJOHtUYyaHAGpD/jrEKTDfV2T6Y/rk16uWaAykqPeKUK7ANOinqhFLvaYrrtkpoyp1Tp/ro4z6pT1qQOWWeNQevEYee46TB60gUIjSJ6CBS06dBo1gPRcaBw2iIvoxLLmnRvSacf1nCRjbcpoGn3W9OOtin2kyjytG2Zxs3Umg3riOnPUIblnG/qgPpn/WmuqaUJ1g6hHWtaVZQrYYd/A1utYyNG1965VdZdzXaVGSjWdVxrVekk6wCU0lO8JJcr3YG+07X6uEuvWvPPOzOKAZE6kFmWisR25aKGVKIjtpHtS1OIqbARFhYdSMUI19MupfozTrsnKtbSiaKwN6nCpikLsnWVtlw8Zxre9VsidMtCZLRXWgJjbVGlyqa45rN3dA3qpZwCDJtT1Ces5xh/IgfV1jQTpXT4Tdcmk+rrCUFy58KBA3kio5qV3hoExjsuzYgFFJOEv8m2W+6qoOGtZ/Xk8NYmwXWrNLrzGe3h4yrEyRKVTsENpq/BnNfUWKn3T/AGnfV1mhAJetayNVXVqVfbRfFNe9TSYbAzet5srNg6P+zB+u1r/vYS4bZVHagSBo67n0nTQyg6XTI46ZDNJ7i/XxfrhO5VDUjhtGc5P67zs9QZra7Uo7Yb7G3/QEJNoImAHi0CGEs0uS9jeaXwQN4JVbGXeM6cFd47AMDzP3kA9NBt15Q7w3uco3mnsqqI4ghQz3ZwGQ0SzWsH/Cv7Oj7SXgD1nKBrQP5ifb29koccrKUyddIjRpTTsnYZYV9cA8Gk3Moukw32dzOq0n+529U09QA8dToReSinya1OkNOGlXEfQDtJu0NA/htk8pXsJga/XX8iKbrRWtDnY0CP2Edd94mgwFrS6PcEX1kfMveyAlm3RJro147xdBm+/2Yf8AB0O8Pcp/cKJUwGgcD7Aqdt5td6rXWjCkpMLd4SbTNa/GR/TaeRsEBfdh+CT9cQHWEnYc/a7PhOiZ9EF7FZdeea1xu/8ACsfEMQfyd7ylNZ1ofWv+pRKwBGcJD8itOkkTGlxduxBdBOu2+rvRsZ1nXT1Lnt9R1/V6u9ZTpdMjK5reTuV20adgP2zf7KSdeqv4YOvx+xWE+uO6/UNAVvQZ6UaQ7bNbp3c75PNhRGdXYZY9RynqyEG1UTVGIujLNfUk+28dtFZtqdAkjKhWtobBQEDqm8F31CvMHu7w3M4pscrVU6VaMa0mIdnEBnS6oMfORcjUymdWjYOppxrwcr/vD+u8K0Z1+xoEMFJBaHL8kwWQA3+5y0TWGvwH/uKe3XHxMmhp1RqdMe7woTQLoF1/vgItPWd27AA8NGj8f6s4fVDCxnToukOvWca2AKlDmvPSmTx9nTdCrks3OyURyv8ANFPk4hvCuwi7kzyqHE1MzlI4f2XBN4A9s7eGz8935vLWdJv+uM9hzZUmn31GpnQ66mh/cPeR2bfcud0UN75dZWtaI3Ugkvphp/evZTCQRdvolPUc9arACtZOv8uhnWH+Ti73pjxmQNAkpPj1utmmQl5W/wCBeM2SU7Oxrwx8N571NKimASKk9nsaP9DwxoHWCrpDdudu1ay/PQBe+dev5c6qVivOpNHQ3fbXnIk60S11xrValp7GTVyphJ1az1rF3RGJugO4xWjVEjYLn5IqNet/YoSSU3Mqq8k1LiduHjoeR1JjU2CRaU0rujbxsztJO1GRRLthO1KBJUl7Q1Mg6xTrrJ2vlB3EfJaGXr6SiaZ2ZK61hKu81ulQCt5s6rnvhgah2aTWT/X29yBkSHHOO28J1W87DW83/wAUAUxpH3aAZFaHTpnea+zprrJuxfcs1IA+apk8MZemMv8AGzh6LnFPIVyVfb3TX21QaX0HzQHbE2uOpRHw7PX7aGWg1/1OUeawRBLqQ8PrOslK2YhIq12ExgTA0jj7vWjxDTvEBpNqbzTuRrc6zr5gI7OyDQ17rBA87aTL2Lif6D9pXt1Uz0z39wfNDLrwQDGijNadPj6NHXH/ADD+pKb7LhoRwftj0kJxGd0iPudXr2xrRlTsMk0+UmkJo7M5W/ca90sgOPpvOpU7f7eZ+711WUZ2z1TSJm07Tkz72K0EgrY6a0yOwMB9wn/kkhWxlAM6p+6CNonmCb0km95YjgDIFH228adEw+ztdOhkBd1QImzag/frincMEnsA+FZSq4Cus7EmGuyqfVwQ0C/XAANbXKPTU1/0b05WzWEtLrruZ0pErnZ81QH2w/1yaSRwDZqnVGCaVXYUAn2we06OwWBALvFdur+obKeu1fPXf6mqNk604S0hlAnpIUobK640ds7CYyJKm/8ANv6k7reUBTnYfMVNGGjdZVddznUNGXChQz1neOw9aevQQqDTqkMfKQKd+Bp1i6mhZ+oYbKNFM0qa1nU/cNdnROkwKF2Az7p00G/9R705P6uCtZaeOdkHQDI4fq4orgOpwHtoBK1l0P1yKeuhVfGvrhQS7DxX/dvGhsH92OtjhqVGdM4ydvPd+KEunXVcQdqSThX/AFR7rF2G/WdZtk65tJwfN4CIC+aSgPStrtTsZsk7HKDG8KOoNBIBO99sdLtA052LADe0w1t1ezaTQ+46VMp0bAPJyJRTCVN4ToF6tUbNdScJ61vFWsJWUxBoMKUNUKGi1qZwkaTCSZ0G5Uw2ngbRSkQw0bxnc4KSGWbFOqhrz8PeuRT2XEKvyt9tAAONDxAOplcmnXifXUtHUUrtJWFJ+iq6Y1TWdnouE+myWdooApJOs0DvENqEte5o/cUnWOwDCk7DxyJ6umZxO3mEg7xlmeweHps9dlQpTpNCNbdXSjvU9WFmmXr6mKyIztoCtIGMjPsvnq/XyXWkQdq1o2SHVyEPyt1sCfEWlDPUSj0AiGR3VMS7miuVza73xUbpSup2T7Gk10AK1DtlTsmw7YyWVI0kgxK1VLqhKmfqmcv0NlUoOFLJLWyZppamYz+Id7D9wv1Hg1KysnYnLn/GEZDJn7eA9tZuujL/AFfYn7u+zrWQCLgbaxNT6GmdyGvfwlCjWh2ms6+eT21pT66z9anK35qZDrqgVnJ2SYG6pVeysoz4DdDhv0xHQ4qg5sK6556tU17jXuKkq6HVZrZpQfx0Bpl6m96dEPjn9tj1DFPTB6y6DzWFbpXa7wF2YjOKgpvVONDRuaDaKPiO56qad5crJo9EOx6OtzrJVl3U+AH7NYz28Ad9c5FJ7Z6zOzY6SgZy667MT/6zj/Zy5SdytU6wNSOJ56/bVZSkuNo6Sjr6G9OHuEjucqSoM9TRrZm3cmaWjbqXYGnCdb3HunNL2kA8xpVFJ2GGuvrWnD17GiaXPSdta6+ut1slK1jLKL+KsSnuFKOI+hFMu11TnD5TvlN05cpO5mSqNstUiSdVyNdRStYae0r46y6a1p1/pufzevMfaUNdQPe3qOlyXfh1afS+xIMBW0N1rP12iCuC7dO+uslf3BGXVSJLim+yUbdk7NtaCjJxvU7Bar0DrvNpSH9QMnwcin9z1o2g47DYOo90GtzW9ZU9nOqNVhOpJzZoEroujSbT6hQbfyqGjHYaUeqOxnWSBLuJCnbvtoNayjQaZd6zW0MZe0ghrqlE6kJ881qBHdfbGft2BOypo2LL4sL2646nzCu3jVaGWZeohs1QyoyJoN69zR/nvud0h3O96XSuzzCutdcins40fXK+oYXqfYrejEfNTtrsmmicKOwlp4EJepVZnwvVG2hp1K9VerPXQtSqyB2f6yrHvg7M6iOoe0pjWq1gu1zZM4L+tp/kSRIYm/w+ooUfjTsTI2KLvr2CTaqj20zvjLSTXlp2NK0JgbDVGkyt66gG+ih13jQ0mPspiH5gaNY77ayJSdvn4G3YxPSUCu2E+7bO1DhIppN2YdplMJd04UpWO9SgCrje6HJ328DdBlrN0ZG9jj9a3SJXZHa4o0p1+oAHXQVow3tGKakvPB7Z1e2FdRFOvuVWt3nauwm2tZUs40RRo33UF7rlV0HaaneNNawl20o9dl6qGTt9aTayaaPN8U9t7ZIfI2vdK80/s7BADNfZGezZmmfcJ83jX2c2O99v2k9+2C1QhPrtrT42mjBaMqgfAeoF1+GdWkphOrrqbx0xvCgBGWq3hspMIDe/w0Iay/NOL2kzfmslo0PtSmRuOPVFPbP0dk9adqHmTIO1W9hppJbk7dpY3RScZxtU3RWwZWVdpPVBUcrkTcvJSa1MVJky7dvtaKpmRmiTjNKVAFSHGbgUKe3aGaVdItKb1AmpkvkDEGjU2gZdboodRQ5X1e6oUa46Wtr9j3qgXgHYllaqkaSja/bOjW9wMymMFTrGdBn6byVkxV2YVutLvan7LTB9QzWq7IHV0a25dAeAyATJLnZKRV6hgnX0n+2j+vpIToDzTSNGyjs0H1gMFN7b1Jhup9dsLkv1cmUr1PMN70AyuUu9521PhTpQutCFKDinXeUKYB/sBS1lADkz9XCs7DJiDSjJ164fWnb/AFHD83ht/A1Xu0d5QVIAE60gSuUfUkKVNj2rWSLWssd4Tums7DTKqusZDTjR10obHE8MjQZrfmGy6c39dYSb1m02529NQv62ibx11XB8M11DGvFx8BwnQ7oSUw2K5rzaVrx29tNP10XJUgshPpRRvPKdLJunDyUfCSsKerWd11iPmpllKaDWyK/7DQpvT1x2VvOuneQjn56j9WWZ88/5I7Nou/rlC+4GjWBtMqdGHnmFLQgdd4n/ADVdKQ/12mnR+Bi/Zx1VbD3WkfQryQSTSs0UbGdoIG94jmxCcnfX0DqGLv8ANP8AG6iSfU1vyl/E24zudHoEpoDKNdcqnWglTaiazZR5RqlyKX6vbR1F3WDRW12b3E6rHbVGRtn1oxll2bV6pvsOVPi5AM+MzQuE9U2U6x+oznbZsK3j6rjqpM8D0n3tjL7hTrWGqoFOq5SI4UhvDVG10SGBqXKkKEZmq1gvcEndVgHV310JkJpc12rKlXTdOtYb27673jR1wjbsgSkx11RhChWRCWYNE4a/MJEwR3ioC2pXqPVMmXp1wOorL1pz8pDkk67fd6V7OU+oQjlipttZEtGZcNECqdnNkroTpsadGE72pRoM7Enh++7JHZTvQ0aVFaN/9ryrM+Ttg3o2726cVLKA7S72iaBR3/8AvK80T+OA/glTPo9anQaVx3vY1v8ACjZONfUVoHwdTkUDgulbVfSfBOSVmUaNqFKUBp2YSFZ1B80T666zpjTPXB9wn8xPPNlR2D7S7IWveuq9pdJkm5oxWUpbGgwlPMKOuqrwKClpEnZrOob2aDzZjIm8g92U68wdTQItGGidYJ26qKZEunYpVOKeQM9VQrtuUe3pClMsx9+w1vtOaWVWV64LHE6VZkwp0jOgXCr7EpXSvff9JWd5pKJOOmmhpJXCnsbap3i7alQ0bp/j3pl69i7SZMmt7xBHP5IOZjOu3NIulGkDfUnF1bIHUazqFpiyBhRaSvGLsHbrOrOh3udIM0Cyej2aqUkXtnVPHipZ3nYqPZoC5qNvVb/BxrSE1xptwntxjNRRRORPXlN6mrdXqSdKiOFbjeP/ANHqxA/rM6m80b0R7pqtsuoHbKz5hR7qd9lShK0V9VzYs4VqfSt4i0oJrA+3hSSjokEqnWsUJJze52IHiVvFXel3uiJVTE09aitVrJrVM5X1+uKADVI5O1xDycfeQUksMH1cNkGFOkJpoyFoZBV87arWaWRzSLvqezkdvRqiJdlHUMr6626qMJQc/dTg6nw0zvAP65oHTf66XajWyNCpBhO/12LnU7ZpoXHyRzx3vx3tlfcA1hKNVnqImnQspesoN6B83iNbwkR0+bCUA2Vt0h6gm9GWGtAm3fhfZ32lwd/rXgge+beoZ1f0Xwxd07ZEEV66Nkz6P/VI7Mg2M522etb+o6J1hrY4iUmXIhg/X0f9IlJdkhumX926P015L513ip7ijLQ0aA82hRtAZanaVrwNb20u8iestLvubBfcE9cHe1Ba1kz13mzWCU9RnSOS+5taNrscI37kyarYIbyaezvq3rK3U9QjqImkHCeymNGwxlqvEQNjqnXv6RL7t/GSE/R1veFrGwoa1lSeudggxrzRt9DwNtg0YS9nRLU+x7Tvs9WcXrtxesbwFMmg0DrtthXBHaTpn3RrZOyjED9/qaX30AVMQ/cTZ4FeymtDnnbRJpTEHeApnXQ6d9hGSURrcu3e3CXTkT54665NH43poA33XOz22ru2jubDF/5PiOigPGrpcTetuu2FDLKz2nCg/B/zEKcZZNiOgxXrplHdBvTQiYiya0Vpb+u9AlBlipihsz/AytoKjWQ6fWgeyzprGt6kJGgWQlTVPoeLtl/wgDHV0OUtTo3p3lbdI6kAdMip6aqfVzR459uxlq16hMjlPajE0uE7NYSn0VQFX/jnVZXAA1jsoyXYuNOlblqhAWBx8neRI/jL5jQ0RjJ2TGSfoTJs2bnZmu1DgaPWutDnX7OAfYDysQ0Y06xO2s2JIyPZMD7Yv2JwXdUClednsp2KoxdyuINbxlmlGvrW2Pyh/MZ8wkK7Ezune0EHdeY/WgaPHr1dYDsytNGJ1/UdFHimM7Ssdr2xU/LpFQQCsEodNBO0WaM0VY5I67ZWlKJ0TrKGWkdMmSLLeG2TGX9xlqTR1rS0m3CtZNPajInXqpUfZABJkrVFhP2OpUaxPqqU0uNr4xqXWTYvtRLy+H1lXu2eCGKvhWp5DTrqmXLQycdPSinyjQ2WUpLSrR5qzcMDPUkEa5ajKSeIM4loum6A8t6hJx0dkOm5tw3KbaV6jyMrOHego4l6mFkWL3e4kU9qcaWvO2qDIfr2wWbpBprdFjO87MqgmSnekKNeb2ZISaRUdJ1TA+2sJGtjvtpl01mglMpGfAUlxk/zX1zRvTYfiKT1zajvXippUxPfHZehsB2KpRvfIuWtS7j8Vd0tZOgqkp9M7b8BQ64SI6aJ+uFDrJPrQG5nRNTX1y5GjTKaG3VaQq7V7I+Xq6kWXesaqhMKVDCvrW9NbxzYLs3qaCvsLe+xolmhChcUr03tnE1TsRyU60ZNNbMd9sUn65GvRo1QYO9GAdqMDT1xHel328PRnCO1DiJLQx2di6TZJtcPq4b69lokNtareNK+eSqy7WV3htBzW68r+ug/t4jvtlLMyYeuVC0SQM2woi6V61WAMAE7pT3frLv0/DNHooABGiUzQnvb6ARN9lypKSEU5ER1Ws7g5cnTZ9itholTSBWD2Xa6reA7V/zeXT10Ov8AVSc/UcPHeGu+sf1Mp+2sNbdA6B1vtn+7x2x7Ds2B/imgcnT2cNs7K06R1pEDWwDWx/2Q2SpCXxC9Ts5o64zp9/44yyCEleZ1B657NeKsiIkuP+bTUtNKJtBoxRraP16howei7K3QtjWtn1HGfrlSNay99TQad4a1rNsuCKaf82G5Zfd6woqtLuVMKkl0yVowOtaRO2Au9puvfxQV3rJOs7a1R1FQ0H56a7ONHqN7PCjqIqVvKPFDSO+prwP3XvuG07ZKI4KV521WU7d5GneJ9kyd7xfr5Ek36bNiqgC/UnIk7NHbrXUf7Bn9Rw/NYxpJw/cE7OE9jIWzTp2GGxdRulXQum+xQEiXrB60mJutZ4Vo6grkbfVne8f9AnQjrtSZ1OrvZ23h7Qlq+LTplR8yvK88U2erh9VcNbM1uuuK/mO0cZmtL2KeuM/iPlqwI1t1tw2b35I6Z1LkyGk7IGEgqEv8iiG6WJ7Oxrr46/MQU0J2Ns9VrBdoRJ29kx05X+deQrqdI326JsNND2AN9VVnfY80OFHfYqHtC/iCaAWjB3nUPMEXqgzQK/YxpXCTtidq9gfVp9JCXVZMjOUblFFgEkJ2leaA+vvYTWUmgK5BcmgKc5K+oZ3BJwnrbtFPCSkMdTXrXginXBR06CuuK61i9QnB8RrVz4G5NE911JuPZkT02SmV6zjPbStIaGhpnJg9y4dCVLI6gllc3sGfBXB/6jZFK/UKAfFK3KVaz1UBfBVIJPsTnky1nUK7rpHJVoFrWt8s6nsFACMHYy9djZJGjLKhdQbryJ0tv9uTq8tHHDMcV0SVk2de7NLTWMlNOPXfpB374BNokyU2gbKyJGdiD212N0YSlbBaoSNMquxpAetCo6R06yFWsN73lSFq1qhQkY0xo2CdVxrUitTrZ77v+0+VKaBWZzQjvxBShnDz3K30WSv3P7z4ADtQXUhSgOjRp2Xmjqqz1nYSunGOtakHqiqGpI1DsnrPjs6hRufY9nGf+iXsVjRtHb26po9wA2MTrblSijU7kWU6u/JTOvmsqXTj5SIFTJlaA0u0xHZWM7DR4IKb1n+uBKbx1QuGyUI322ygJj+lN7P6j7jagDRM9Sd9vX7Jhvs52d7w8lGtdpxkQ2LNiUla0G3GtGsg3O8P8MHVaSRChK7BjrYpO6zqtbx9o3/WhFf0K16B9u2L/mf9mRve8dEqsoGp35uzzwRlwo6+OgM97KRIlOGvMX65NNDKSAGM6o2akcJ3IYux1Ok1joneOzW38FTzBSvVCRxAkyZPN6XWz12tbWTWk3pOpgouh6pK1utMptMFPMDW3FE0G+pInVZUOpplV0a1MZ2/NJujd0+CzuSQr6+kg4P6Y6p2rremXU6/cT6GC7UF6+siuUbgqZO3uAjkgru/8Ard4bBcg2i3J5ok0mTrqUf7tAMqhrRopkxWE36arK9pWgZNQg5R9Rwrzb/WTOzVbH9HDa9sulkx88Np+si9gXa40FUkjO9kkiHY9GRXWTRqhndKm/q0Ih7A6duvNWtUagT890yh1jF+usFNVjJXubZnzT1KdlCZCJrARQftTWIlBlh+si1vP10i6UZ2dcYZlk49rpqk1OS+e61Ki/8ATT7k9SZrFd7PSVd6FxpkNxPms7KhlUqibP2E9MqtiYv20Sn7jW3Q6XwoXylqkNjJnGkjLclpTEpIDs3WX7XUNk98KxFxrX4hvEpvEXDZHmtz7T2QGXsaZJ0rqZ8Nz2puRZSNktYp5i/UMjxJx0DqDYjEnZcaQoYrtPnmkVGgOs7XAe3bN/6d1rY1+7pDQvs9sr/cN1sdtSbdkrge4yiaRo8rX9VdgJrelXRpdvgu/dfXRR9tgJrJBdZeikxWqlyV/Feq527CZ26joWZ9ZWleoIHK7Ss6/i6/3H1LA612y5ansE9pnbKybZDWj1JSTq6paCQk6goaE7fhkzsZWa14ACYm5Zy/qEjKSgi611Q7ZL46oRDE7a31JvtnX9QBFqTZvIp0OEmsaaHaSrjS0RjJ1RPKbGnzc0WdBkPok6rqCnZFfd71O88sKzs0bxHVS8UlVt5pDWinSTayzR/N9sbetU1R0kOL2e2RRPJUprbqqJreFBXTOnZKbWqXCQNAszodeZUne6wHrpiuxsJeruZ3uSx14GpoCTQ5J+YPtYpWxV/jpOLfX3qdFzSaM7HTq7X8KU6Taymm9yZtH0/si6f2dJ4ImNa05R/0vU+rsBH07YD1awUSVnf4r5k01txkDYy62bH96s/kpUjm31zxppJ2VojUgKq5Lo3jI+4z20ib9yvTWFJOsUdbZfTJNCNP10IP4L10629lnqNTaVrRQLl0dQGTe2neqxV9O3XWBtNdp66Ff6klO1a1C41uc0VpxPs6NyGIj41X+Pb+wS/uKbDE09hCq1lb2SL11vqO8PQythSQfpmutKNejmjWs96pm/rg/wC42SbOz7h/VwA9w0V66Dxp3sHzafXzGnWsmnr1Tf7j/RQdyGTISzjIThI6cUHq7a8PeukHewTtp7H5ihIH+axnt6B1N5YA5W0NJ9dYU99N19tg9vFk0Of8ZxWXQB1wNV5tZz3sijtwn31/Xc7Vcp3PhPiZoPVR9wSp0ibUBBVTxGvr4UlG2Ts0lG+qa8cqtgggNFPWdPTVNG0lUBneb3Ok11BdLvOvX9K0PXaK409fTYOvxyg/jcjQe+/2Lt7GRSDK/WjDS4iLv/SsNte3qnrkydSc5JWslmihJWdN9iOpMnU2b1htoy5F3k/XZhP/ACV2YyvUwP7GH1xNy5sZAZ6iCH+zR+PpSYKO8Tf539Cj6ySM6DRtswrVBm/OpVPYlPZDHZ4f8PXbOyP66xl7bBDeeOSfV2n9ayqKAz8kD8nSDp1MhO20pKGXu6RE3Jr9qXQlJ2JSSqcZ2aSWzqUGkyt9TNLowE+uFHhjKaUpTDQ6SdyzkAV1zqaTC18GjTvqnohXg0FApu9pKeApvQvgr1lXsToLl+zhWtqbaKxDXo6oM/FRfO2P1nZc+lhTsS00GOitZX9fDTgT1NuvaF3JkOtbfte8B/WXSpUq6YAepsl96jXbHSdTXY6n9TGQdYSE4hTWef1ypKlGD64/VcV6hnYDee11y16uv7fnWWa36LD03MgSa7E+0rvqLi12w2pJyUzOj0kF+pOonVLjXbzHUjhpkpZ3Lj/+Brps6tILJMiaJHY/XY9lNOj0NYpRoDVZtL29hnROhTBrvm1qQdrnvrlefXEQXBWfbpPMKaXJh3tuRVZ1H4ADreqkyzR4V1MVK8JSWcJa+wjNKO9skRG9ok07ryUGWqwl0GM/WtG1nS/bEZ0nYn75cpJQyE1WSDNaqdgPFyH8ZWOuWRZp6ok1yblKG2WgA3El8WghmtpM1Jabmu2RLW1Zf5JMvRKI+G7O0un2fIrtJOXL2d9lnWRsk3NP9iKXS3++s6orJRlcKJ/EBXEA7I+M4Vv6tvoO1pCYdbz8rE1Lg7dpen2KG6lumfwpUMd+YLrR+mMgbOou2zsmoCtGUacBaB167JarWbDYVSiLsHE2qbN9U1vBHYoa0B0vtlUzQjtdhIbEo6pj/wAtTSUzgPbedtjmjxDboZWZJz/npdbTCTeA6KU3vHQGyRdYy+VjWtq/0HJRPQEDB3XvUklzbNu7Qk0V9tYCV66Fw2Hige9tygupVKdIb0zpNfo6d5VdKx/ysnVPTH81hs3LvzeR+rjrzbKM6XTjoCc7f5kKBhX+DLs07Nasa0oNSa8kN+0ICmsUp0hrWC07bTW8NkmBvzHXbqXulMPaN9vRz3r4oSuTX2kw0bccJNBgOwIrVONLsxo11wdy52OvbCTsULu0wQMNP7HtOOiqcPIdVP5njLsp/wBH/qtvXTtdK68OrvePuzBack0u1SQzsdst6sme7ckVaV1Oxr6qAu3ANk4669cJ+w4zudYUb09h3hvW87L9cNprFHTiPutbAyaTZmnppNea7O8vSMZNapMKdug+xpn8kZGdut+NUjtNKDpK7Y/1mnST4K2qzpdRvXt0r1yZ6nieawAZrKNrooDFWXP3DTJifq7Rwr7Ikn9WlN401xdsmXZtfsOaTWIpjvwU6y5vabN6XFoAyVAE/fV0LhtorKkZyT/vRNdcQp8ZQJzqiYe0gLv0CaTGRVzZID2eqY0sq9jZOA7UdGsTr13vYiS16xrbWU407dD9feuz2fFz8yU7G0dosqK6/wASjXXF1WB2qsQBT2neGz2hey5ySaKA+20GqcfBWNvj1CcJ3U0L13jqw0D7qRJ9udu8D/HSbnHfhnrsyd9UxkrrlOlCVdBMu8BmVxkNb69tOdVlMPfWUJdwpTn9tr/+B3V+jrbm9M9d6XUW1swpa9f7gM7rrgAdU2vYdaVd73i6jxpn07IGbeyI6VDSmD9toJtWiaBdmtdRdvrvUSOXo3jOo6lmtZ5JLgHbsa2lYa072sup/wDyQ77Z101v11ILrSGxRTZOMkjiH+CdnPGdDtrQup9D/kgeOVWmnNnUoF/MfeQcvqOg+yr/AOQ+S/H4e5FlSWxe66lInnZDT/aTLGidCae1V9TanImuy9l0Zt1piCa07611xnVBiNLoeszGEjiNOwevanjsq6c7A1vQyYcjOt2rvRLoydVTtkTRV9Yyzk/lqR7fxyY8V9hERTOLlo3JyDUgktcJRAyVTO6Qy37dhRkpfJVu3oMyDtypZlmZaqjsyqICjWcQlgADrGUVw83uJ+2m9zRqh3kD10sk1vP1HEH8JS6Ur/c7FIYqqF11euTIvVmUZ0pSgB29p0ji6PPN6ap+xhe3FSzco1vN/agEd4b6pj9TSv11gbra0G9lDsGjqbEN4V6bPBCgNYHeNZ1WXbToR3/nXetsmgwHsuEo40v521tB+zvRrxp/GRNObSVH8ET6mFapnFEqc0XqsPzrhKaUPzQfo1JrRp7NLTVe/wCpidZM/wCXqGlzSs0mtax14Yb35rLdTgjXs/bctIDk19zJrd+puhFFTJTq5/mw110+DrNdqKWXq9R0aw118pCZTzWw1ra6nWlAdql+Jv8AD/vFDeAh4zs3j/x2CbpNytJrW86/bxl7FZaDOmXfbDSuFfXRdM6Mj+u8XTsBqt46adOk2zKUCB2THabKn3tkjc0EnWQdad4ofrupz81gvZl6quD9cD/TS0q6fzsz9V11HGn9PdzpBnaT+4s9RV7HoeqL2051dbwd6cAZFs/zHbHtCzuQd9WfdzjJoFes+bPKGv8AQTwbDZoXtrAZ7D712FG3b/3hRp1CTtxEoza+4j1B1/ubNaQ91leKYP5OUPUMIKnWSjOnQG8aNuFPVzqqLW/7A0GkRdZSddIa0Y11n1+6gux1M7/fw9122YSEgdvsyhp2yCYbXSuzxf0ZV3ODuXRJVbokrWmX1GXZsRvWKfqSIIiu0TsBddUMdJvBf9KB1hpnseNGLufeySZO+pvXiYV5rEWtu+wZsFE3ih4BuTXXVZf5sDUgIkm0ZkFfsSFNeZ6+5vays6oX1dPUkTOu58JNplSOhkD082GKTSZ+GytK69mTFanWRRPio7DjnUqlGzTWzQHoK/5npVbFZRBJXCgree0bx/XYAYC2iPmm/tpw8nAUwNgutSmPnuNanDRrYu3T/wDp9jT3nFaZRK7CIb7OgfK0JWddPYXrbrt9aAkXRdERg9ty1O5647nWl3rSG/ChzTrOrXio60vpo9Dc7ld2FcalVoMK3Li7lyXpvKlfcK3IzP0GcFlcKNbVK/Z0Pkh+Kyf1J12XZVBgrYZVa3gIAO+zi+GI06xnrnKeM5pJMNouO/KE2oa+otxNyxZITpHq+ROqNp6Z280cg9d4V9VaWnyJdjkVr6prsOPuNfXsklPZo+25H6rkjreNdZ7s3LLShyb211loKa7OSnQ1pdyOmQGutCNWmyANYjVAv15N5zCdabstlGC/UanlBu049k2kotJIYOpKzalFFn8Zk7aIWeoVjIfdQ0WKN6JGnaHWScmjS4Uqb2emIobhCjtRqlGjr1Qdu6/sZ23sDbRRrXIpKkrjLoCKCQeo7rOpJgvY2HWuwoV7R52wv/kzZ6Lt+ySSmm1TtM4+VrPJpxQl0qdZVBxDXkyUu7+voBozR/XPers2UOIKL+zh5NYr1JNKbPdMrX3JDe8dPXEJr2Z3qaJN6da8x06oigMdj5v7ej7tOoDiDSYCA4L2rAHeeyqDqzOQX3Gn8wdGa7FGKoCHbWPhpB1mtTvDX6m+ziJXtaqRyd/510Kr5gmxxnx2Ia3VFSJP1Pd7NvhLeM/bZ22mN+OIO9FCs5Sz+m0wr/MdVRpHTsk31w/crSmk+q4JlqGke32HdZS+7FZ2FE/qptewho+s+ml9J/7U6+wMDs07Rp80CTvPxqcBEMaSkzQ+Yjgs5pdbqX3QfUU9TfV/0k7KJrHfaR7JK4b0qa1sHauV+ZMnXWbDWXJXp/ump+o5E6KyQJ1nXQ46/wBhd+shrBWzdLr3RM4pp1sZNNPY1QV7h5qFNOwSdqK+FK/XH7YUDUvUK3k1ut4yf6vppVr1oFB2EzjKnXCdugNUmMu1BNBg+ohpTJGqxnRsSX1Baw9NN40rok1OLud52Kk2JUu9hjrY460GI9hz/UP6/tCjeQPbLWfyaN7xfax0z4fvUH1cqlpcdzLkrvrj9tjJtx9NMGp3mjxHqVpRpTDTBJ1oRwkd4CSgP2dw725RukyDbtAaXKPsVnZChjW3LfSTepwn8ErWpClpMtRDP009t7zfb9ZN9h0T4Ki479cd9e2IeY09t4or1BnbimvN6646l2f1DKdLjqa0idnCnbivd2P+4KUGEknu+37s7GKdnVS9sqtphyfZBBrPtvGVowoTw2yZWlNs6kT3tla0GS/k5Sus7GtYhX66L6ulcZGcZ0jm9z4UN9c7bNnglADrKpdhvbl60JtK3nIfbWEvbbs24/uaO5p0vXDW94P/AGu6QR/A1vBfdA9VfeqYGwwCd5UuxF3mytzkyH1x8xdy4TqtYytayA8F6yynjTeG/XIdcgYPpQzveKgBrsmzTSZXbborc9W5ANUduM1Lo9MuQXRR10nptsK1hLJ7CuxpewlWT9iqmZKR7dpNFU7tJCRWaVgRGmDysrVaMTrPXJsqgz6yayaOyFU9awn+axH9MaFJfOsmTOvVfVOvnZ5QQculOuHILJMb7LlC2ZYf1qpR7yKUOcdHJSLx/wDZP2dUm9pTWdNz51OrWTB5WOuuVS1o/a6rA2IT+mH+CmrZxld6k1oWXsqA7xAmnEKfWkfJfVWU1RKVO8X6jh+axdfhsTLN6kPa0nmEu9K+gtJTOQ6ploDdFT9e2MpowWkAH1w3VUYSs7eu465TXmjYZC123Mu3TLNmzZ+/8u2KeYoKv99KHrlybcEpaV09Q+oDEhQ46NYProoaoyNGjKo2Y6041o0M0/m9UGb7Yz+VjujGjYrXnkHZ3jpk0jr0lUUp/wATciSHXTGje6djnbyc29kTbIZ6T1w8oMrWnVf02pqdYJpzb6lUbHGiaDHQCuuqIanWCT+lFKY766xn7GI9tALsXQ+e7YVH64yM7PDerrRvHXU12122ULvJp9c2dQQ2+Itbx/8A00yaNGrP7IP12Olx0msRnWMo9X3eCEds19dO9nVNG0KOxlOwzrqimTRnouFareeLpZPJKTqYrXuM7nwHYjXpjvfYQDWInihMoeUpjrtrA3+H+bF25s3rCgkxnsbH7LBPb8EFZzZM+SDsyZ69sa8AQ7bx0+qHXb/aTID9x9t3Juq07a2le6zxPHYbHysaJeoDVNYupMmQvtjX2RkmZUZZOyAHZPalxUpMkP5FFOvhWvANKutDsCgVUreb7eZ12mNGnUUko1ve8UPc8r3GerrAScH66U+2hnetq68GjeAd2g3veeac6/XO29GAMjk6qXVqaQVTHRW8j37C/VMJCew0P1yU6+jo9K1JeFHX1NuwDto66MdyGp007ugXDW2sdTqjRpnCT8SRpB91l1qdZOsTZ6S9fKbZ846WTJnrTpntWb0AT/XZrZvGUreIIYHXwrRLofr607UimvMNeolbM6vUcJJ8pRNLukRdyK0fuMuxOoBQ0IuSlTsKd+UfWc0+A7lV0Ndsdi47o8F6tYUe0m+2wAdBDqkhfdr1pzsPmeb9TsYGsrbQDrxxdhv/AJlZQHuDP6+JvCnumUPba+Uzk7n1dJo/wxn7bOQ6syRS07oapyU7MrPVzT4ZFLqkk7TqtGCteEuV7WQMqsLp2KOl/wByZQx/PJRzXnpJ23iVtp32qZaWfyaUdlH22a1o9ocKOvnbRQAnKmRsr1p6mdWl2ddTi7/HTYKmwxX+STCTWg3/AFx3P7VHYFks7HHvqyqSG/7eZLoRK+qpX6YV1qYf6/UuWQ0FMjSFUTRM1PXGWaDLegOFbplnxVuia6kBWqzklrSf0gMpVnUSdjFBc2NdcaJeggzO2ux4vfkrOLjpfqLUui2a08jFSACNZE0wy8UszWaepsJnVZy1/wDQM45+vTHvC5NC1LG4+rVIe9XTuXe8itPVKW6372090ZMa0AK6E29d5217gFeLP2MrtPWl3pl0JKn12DTU6dUJQO12eJl+fnb64737W9eNfZM077Y7a21KwONOkfxlxApMKOqhX1FNqmdmeMcXsayvBciuwYW+mUOhIdbFTWxd7cTwzXWTBmnWIk7zQ6cme1LhLoGQ6JnuzJfe2ANO51vWUpXpCZQ1Wg2gprdIeyrVfpm9GgntJv0XAfUK1jvsY09Vd70JQNDoJdz6gNHbCTT25NLshZ3nb7U463619TGar9db65o3mxHSFrlBQ7EoJCRlzdb99FUl/wA6/wBV87KdTtku1nE66MfrpXS7RGWQEvrjW8XTjJM5WprQf10+b2EnZpTUujaAigiez6b69cnZQ4n1qjfpS6ZawPr4eIZdHY1IuTKPk6KFN9naNPXNAabpaMQda/4uaN4nb939mR0aMFN51WtvtFDt16e6oZdpjoJxdXnobF9DD67cU0ThO0cPrKH/AC0FdZ2GzTgLPsm3x/DCTW8Tder2Pdp+7l9CtVj/APg3ruCbdC7TCWSsbQ80jpuQ1oF/OqznZlM01XgOkz83Ofn1wl7GPqZGvHORdoA9ZxfsYflaPqAr2dB4q3VFKG6nbodizo8oVTEB2b/VQ0GbWWUPAGu1Yr/G6D69c866w110qN6ANObUzzroVJUPtIkD1N7Wkwl2AUdgyn8DqDvHSNAJWca/YTfmdnr7p8wdIZ7+ZUnYrKD0NA6KQ8xBQNi56Dhr++NfbeHugEqQxA3o/quBqayLpfTQZod0NEgAqq1vbpDSYv1MPfM1ujCdHV19uwOztlLVdT3qaDaq+qLvRqtU9VNeYUGksAMBJJOOfd5167ka8MXSGVVM6wFNZZ+OIMosnYDZ0RRA0yebNi60fp2e2k69jegoSl1rF6hm0XGd6MdaB1754mk//V93sdkujSf91Iz1wp0y06koNb7tKgYm3wl3s+lU7661pqa3v8OuE6GcH7CvtAdfRwSgxdGsPxcDTof+8JWNZNHUyjCSYdsj4OlNUm0x0viag0IHrJ20OtIaCd5vc6CWh2JtBj8cmQASdS7fDHkWlwWh2T7Kuk7BsMmlneXR4ZZ2cmepomdC5UlJutmkv7DrkfqgJJrOsrvIlyjs9cJ8ABKViese19qHHXu2QZc/sO+SDxzimqhUrrPVPtoWSnwk66CdWOc9HHFYaAciiuMW6+m8qtHQL/jehyUzWie9+MSk7yqGfYre9Gk0tEumNUbxGjZFM63tusmQa20LO7vXq1VSYQa89l3kJVOu51wor7EadYhvENOn7bEnTlM9jXldt+lO3c0Ds6uTJscK06w3t2Sdc7e9RoK1lUeGKh2whfw+vuM/tYydTbveHm97O7ua3sx0JqPZdthoPEEoEQNFJgm8B0bU67B6gYO2t0anQgySSBpwB0Gwdv8AV8X+oyB+Cf4T5rFRcPaoy9dc7jJvezF/NaRaK/7JXzeh3k0Ajv7Iip1Nkyrs7GL/AMcldg1pTUv/AGeK5PoDsrZjIBt3Xoumg/0wdUjpXwndIK9jVaHwnzYmxMgDzNCYB5OA1swnWjDdU7Cu+CU7zwvHVSZ27T6zuRwlTytFegt+ulnL2Yvus5KJh6m2UNMiLWpMTc7dfbedtii/jj6kiNBJIdtvtGdvRA7bV0tVkf1RHzzZvSLM+KlNZa+bda0C7NUrJm9S0G2apA3ik0uM7/qD2YNO9YG1w12xDTQpUbSRFyPJaYV8U3RpkfDRIUVpDNCCa/cJ+uVoDY7Csdg4J/Vvekx/rhpOuHnga35MnZMRJQ/KME3vGQVHQm2tu812p2h+G9mMmt5+axdXjSJo/ac9rVHb3bW5ks0VLors6B1h9TOoaUaKddl/Wh2Jtl1pNo1/uIv1Hzbmx9CVlywh9Ep2aGlX+3YvValmdOsvcUIhrsieb3qwGV7AX28TxNbl8e3uH77Eu2nsG1d9BxlNmElUohAb0+dpkQyZRVt8HNmisJadrRoE9HTtp2CuOh0gV5mje8ZcP8wRkw3/AFze52yNHZJ0u9mhexjJ2RldoJPX02IrtrP8DJka7Nm9SEgOfpjrWO+ruKQTHW9PYNGUdaEqh9EFAdJpmSZ9LT3O3vZ2Yo1vFaEyVacqvqLyH2nRLocQQQ2IYfpjRrWdWjz/APcyv2Q8xkXGQXDTTkP23jMusE9323RlHbOr4puaTA06aHqoBIUj6TinUnNJq0GqHDxMJ0eOt9cP7GP2WclQ0rRKkrtX3qZtOplGt6R811r+TsaJ3riquqO3WjtreNPVlFFCtGnGhUwNHVPsbeXaaImt6almTQeYPiPZ0mHvrOtmC+527DjQy1hKKYJVUYV9lxv6+jugO61jJ+4fZ3mhexsV0Tve2Xq6npMrlbfQg9cqQOoV4aAbBZJpM8ZNKzIGypDOv19JKQx3NeVT+CdfMXawz5Osp63vCo8Bokc5981GdQASyZ6pyf8AxpeOG5oeLlOY7JfamcUORnC7Ekq7uNPFLGdlryvvzF5KSY2ddpQ8mFBXbK5P2sLPAvdRvP8Aibl1+bF1gkBrt2r2dEZMsfZR6u9mkwnW3DZuc69pdQJLvzenSuk3vWFPbDfrh/1jrr2fWuwv21hKm3wkjASeoy6DHXVwoYN9hN4na85F7Dh49cT/AJEUgZYE7A6ybla3OE9ZdmnZk01sTVHVvbGyIrqVhP7tTtsmitGD11q0fTb5tSqBdUOpDN/9bRNCtbXUjtjWtMsm8K1TOG38aNSYy9QwTfhoocodbwp9cXef9OUq6zxXajQAa1sPMEnBNaxp15vU7G91rDVLhW9bqtO8N7977HGftvNPmSPbeOt4iHn9V2Gp3iqGOv0n+qmk9ZQ8yQ1vPCq0bp9N/mb+xt2po9HHVSGApoB6s5xj19ul8UE6vI/TwpXWS7PGdz46TthrQpKYGoMJOm2va867erf0NAm80T+IfuMvXWOzQmuzs/qVigph/Vpa1Pmj+w09lzjRMnY6AWXQAbwod4SbXNPoSfYGq1uHq63nX001prR6EHbspiu9YI41JrLpHeFGtB/pmzRQ/hlAJIiT5IlbewV4oDorfiC0ThsUxanTjPYcfZ1la81VOhx1rR51DBGva+1axEk3NPQwd12y63+2rPq9IyR1sAa7JIlZtZ9a1JskBStFbB7AAWbMo9DB24Hpuf3sVSjtVNgP+RS/oHU0po3+O1o9yt+AOg2/2QCpfbn7CxP0HHbvYbkcE24V9UGdwORXaUU+hgB+olObanePnuT549RN4f7mwnHRO8mklMRk7Yy62qpvPSd55X1xrYOMr9GaJPdvtMTravrrHTrOztM2bcVqhBJlBO/1VOo4UNNYCnpTt0X9lDx3i9Zcr7T5orzJkFyN0u6p+u3bLt00akf5AyTbRhW32pZfQ1+lJoda/EdGyQUwPrlTsM87M4SxuaXtMprQZUqAlf4AeY/5mkfXw8ujzR9TaSA7ZGc078TW5NkpvstBjQU41uintvzOzsM6k7MKNg6NGHv2H/8AA7dZUqbDZPbERlzdZUut49dzWJ5JnValzx+uAzSYqSOOnRhLKKbmdLsqnEXTm6FoqnQr47Wj1z2Z8dA7E3vHtshNB6pX2zzq0iKa1p2KsmCyGNfbrnmjLHspZ2Zz3Ts931FmnYkybFfXuybyF0LG9uNmke0tM4/XcpPU2rtXB3QYzqisbWgebsRualr1Cl0OpNBeplr9reGo1g9mt67SbJJHP13jcklDX/b7TGK+LW62ZJNcEzjUiycdsUxXBJCU87VUXxQt9ljlau4uKJl3xLW91b9sjbWHrRmmQxp3414xhb2mcg78VJRuAIK0b8HYT3oEkAwGgFUfShNHZ6o9X6maEQZWfqevodacV7dsJopcK1Xo6p0fVazQfgvXROtuMhpQfQJVHAQ0s9ZdaXZhpdH5S5UuyzkftJka2KqV1KrtWVRvWTv+2LsTONezsTdYa7MngdcUP02yuCoZMkvr++u9Cdt+NU/1CtSGCaXP00VRrWB3QLlGc9Ex2vvVUUlHxknWGv1Z1NIToM29ETzWdQDKUDJVNIvjk+nhS62b6mLp1hQVs/fcaJlM3sF69XQiY0Bm1o069xBAzZOjDSber1nDfVw20asCeo6EE1NOASriunZI7MBK23oTGtDtdzod6NR+mgdeOnQa6poUay161qZNC/8ANHRT1yp96kiPVsCAwl646JAPPTTreFImGikws60FSMmBv8E27k2phRp2vZ3nXs+cezYo1WHhrJlZ9mfXYhWsTrRgjXYUkdJoENa20prUKU4b8oae00lE7BUnsfrp6eOEkqDO6weyY60zilSY7rWitVl7AQGt4nrSVt0VS+YCUrRukzRJ4aK6qAbWXrvJpHFF9ZS9470OVpKCR/XzwCtuM9prGTCTqmQus69p9J7ac154GnCgp1vqM4zuveyIrIrpNJQ0P6rL5r6mb04OqTKF3pn0kqg0s0ybw0Of2RHQCmlZzqbKGdO2Va02I517TOg1K4h/bIQk2qzo4oJPGgow3Kue2Gig3IP7op6s4+OsKHadkpV9RXS6Wgdse13F9QU/AX8yvRALZwfOqL6kq7HssvbRreOus4n08JZ/dDrYk11HWuox1/NPXbBv1pCTTROCemROvFna60j6HbzEJ3qNi7QdGNGt4aTQ667Hykwqf6vbYS0P9XW61jSa1W2hNPYMUJDLUTVVXatTpBA96prfbL0+ALrejfU0/gO9yzXiPU1oTYbN9vKpaTDdO0kLcN9nalUinb0dbDGgRx/sUUFM6P7G0O2smErD2VzqlYA4gbChQMrXWaxHSku59VrWhKnT720p/wBK9fdf6S/4rtzt9gXU0MtGwfP1Z27z3tvCn8U964VtcJ3QrP2rch11nZeOciRloPN414GVZ3ZKnctY06IPE3kppy3To4g1mj3GmtTiknnV7eii4qb1U7dGtWyAsg+te79BiWacqcDsuimu0vU2GVRxhnLS2stamZIGkouXSZNL9CXuuuz17LqYTL110TSybq4XeclLLKT4LG/CbErOaHq9fj8XIT1vnroEjxFT2WNcuy4We2Q2PaU3WcA3QDIPr7XXKUROpsoqWdOQ+6Lp7ADTQZyp/bOL64IUb09VXfT1fRwkl3llf2KrqhivZAHQis9nJFkcKSverryUk6vn7imnNyz4zt8Tc+taw9PJ+xrPz6qg5foSMnuFB9cv+xTHiZ47Zo7wbHdGRrTi9RMND4I+4z5oK1SnTwxHWglPENuP51wH8CO34z6mVQfv7rWjrgbVwlHsbe2KEy5vzR198UmzdbaMp60DOgrZSrr3ylRkyU6qvv4OnSa6gaOvvn+tCObAlzZsCUHH80M9pJVF82jO6nZ6GtbnZXqnuCUpk2DrCntWx7HkT10tvat4qfqDW8F1rCxEw0TrO2zN+g3++Og3j6hg9XthTt0D3XL804zsEZTQnsy4G62vZocPTJ/rnUpV9mXKN2a8EMdgYlUkiK6wHeQtUGL6mCp4eYnZNAmiVJneOxEF1rKXqOQpee9tJLrKntRnbU6zqqZ1aoFBjsF03rJO1ds0k6ZnauTT2cKSiclXeTtGcUHtlqVkSzWs5LREqidTnHoPdDpzf19K9pzQoos6cftRlbTwXQLSfpLUuh32MaCdsm3NvajF+vqLrZL6IdXDSYQnI1nb13oTL/AyTrvJXqqO3rnVL82J2zwr3zSHUNada98kza+MCg4rt2q7zf19dEBhRU7xDblb15Guuign9Ro3hXb9PZxdGh2+iDI4f/k2O82BmiTxHzUmpE/K8dtBmkSck61p0FJj/YBElc6DGsnchjQGxrQ40v4qAKkyZtqdZLVJhtrebdmFI+tarF3LjQzrB3oB6GO07ZICGNar1112v9Wj9krDaolaAxk/BQkcdLpNJokdYPY7DtnWGt6xlV2SEm3x8qVqaNLSt09UKpkRNHrIkvZ/sY1rCd0ONf8AfUD1n3eK1+ISlMGvT93hJtx/M/QpDe07dQzSG88Xrh9dmMrKYOhk191U+yH5RtlJrDWQalM2LtNUOzZ9cJ15hvt4HalRPN7Ndc8Pcj2fL1pwfqijtztqSV8HZ6eVp+2O3WGzS0eia1QOzzNmXt3nXr6GhcTdCp9dgh+/obsUKydeGOygwSQcEqdYSrrDfbYU1SYelGG+6Z52ZwoqXIpmDsJMqDqmcIddcTdTWG+qY0teb8XHR+LvkQd9tyjP2yKnrvCkQZDfoLQtnV9iQDGdboPAcqmtmWL9WQ7BhZPH1W0mTJXsIWTVZejedWqx/wAA4javRVXmrtWhWnpgE0JyS8i1nxvlRzzH8c3dOnr2lmtVxDFQzeirpJDOHXZrP40ul4uvHWzk1TNY01bMIjO0EdjVTUMfWTKkqhxGUrLkuZCJ1IpvtsbWcbWWWV16/wD4Cu0oj6ivYcn9TGlOp4aAlKxFdZon8KUTOwvbBOvqafE9zW/0PsASxty10VlaEyQTtj6bala3gak7I70aZEwl6EoirnYl1jW+qz/+OwnXDXVcBJdlqm2jWddgEuytUM41quwdiXRW5NVI35E9dmNOzW3ri15hvvWJsM7knXN/lYzutq7BbmeQKa/dG9aCXe5SQlAHrsoQKQNdnt1r0R0ZU7M6pDSOzRXn5QfuB/2z1neEqjlDrz3r6bTSG3ayBsNZOqp2b3Th++Ne4p1cT3P6hj/Yck01s2y7lGSSjaGGtrg9sA26UkrRJNOddacv13i/YMmVPA0eRLBvFDUgLS5x0apNAtYKeVr7Yq152GSsH1xpK1hSdnD83m97rOyAjP27Z7/kgSYi07PxH80Ny9QwlAVHfsz7vA2lZpfGqJqcTVOAnHWT7yZr2sFXbpOxgALhKqhvZgprCjWkVrQ0tdcTwzQZQ9hBNazr4bddXDc16ib39pTR9tOPguNfZzTMtHiFYh1HB9qmqXrlLsyqdzlGvx3/AKVrU46fTTKmC68EqRSxeozvQPseQroyvMl36mzbjtnxF1OBrRjJs1VdZ8mvsGIMZ7rb4k1musup3+ZRtwGRcXWsEd6mXxSXF6i51BKV7Bj9Z7BTU7AdI/q616OCTWCIub/N2ClZ523iGdV3h7IJtzqm9puZ1Z/0yE+L1DCR3htkrFJl1t9SdNYa0iq6yf8AvGft4SD5a9vPdIDsMEKZUENVvr6V9ScJRcNVVbF6hn/LRU9hcJ0gXslSJZknB15gtbcR0GDtxdOlr8nB3RtBNYgu0TN6ryp+45Rre9pOLvzD0RZd6HXqEmzYdfArR5vVBj9j1pJAjZjTrwfMfXZvZm/UxqZHDbSrT6YJ1db3rbIO0VGcdJvFOqB9dbnaZN0S46Q127fhrsGe+BpEBkiDY68xPdOlExE7SiaNAf7s3sdp1Sda068UGh0+ughJcZ0gM/bOoGe9HOr1yZfXGNyZvQUJqhNpXvWWne9aWPzAWcZJS1k9Rer1X/AuXSA0zvA8diuzKCT3qs4Segz9t5235hrsj2J3rYSLOuqIfmKAqUK6ul1sQ1JVA7xprKoImTkrT4DXYyJXVKpPsFda1Fa25XLElaa3136cjSUPZVGGsHva516zTjLyK4y694Jn49cdScq0Uafq4yMtLYPiUSWzyESuNldazj3UjlTdPXGFlzsmklZoGzT5H9anGtSa6604UFayL+0mH92gcJWxduAnuC9q12Zl2VoHBOyYiM6dOCeZR9u2P9pFNUJ1GjSaeuUOp17rQbQrB7IYvvlCGzx3uTdeu/zKnZ2xodjKzqc7bFRQ3hT7of1ygdOAmpBCtZc+jjJrze6M0hThb4ZNMuUnVMDe5yVB2bld+Suge2JsXDXYzsdsNC7NI66h5j/+znYmiW61vD+qBqn0D0ewcntP1U91rNbnCd/XEWkoBxoDa6wnW8CajeOiQw2uI71lHnaewTo19sFakdjsx82YPuskHcvpbrt6YLU7xdspejzFes4pP51XTkiVWy/PCkfWtUmSpSZpmdH9lFkNGbOrh75nXdOD+6pBMpdGKga1rwXShVfmNNIYV2DAV9E6YvjnV34L2TI164UI4epgK6wk+wdu2w3vZmmpKx122fv2N73p2zpUNSCdcaCtFjU7bNaSa3xuFE0YSiZsFMKlkMZP3BP494U9s2oyAyax1sBhmhJBl2ygba8yf7IFf9uqAL88P/w7dAFHX036Oj/eizrGTYY76+6d46QG99e2TRUg6WtJPZUT3DZOUShodDIezrCXVZNfadchreoNGUeBkupZCvsmNB5lzr0NE5W2HfZzXvYoU9sr/BX64jokP1rPewJP64WrjBXoGvqtHgdhNC/5lV1NiCdsiUtvAKFQ98vfYyaDsZEmmlVmdC1XVFFw9NZXs9ia7UyFM6cbFaxU9K9lMAJNKH1wl3vKrR1WRkcdAAdU8F0yNbpEnx26fMdP4SOVT/WSmdmOlM7I6alUAT8z7UDjKPZEN6a2Z2Awpkzkr0nGV047nxl+y4qrIbnZg/Y3Sfmdv+thLj6otHhi+bxWt1mnqbL/AMUdYa/tgOyjr+I/g4y9cmqKQ7eYO5oxk0OGpSjWwrEEdT/jj46F0Tp011x0aDQjjJ18iR8ynxnECtYz9d5VPXR27aoa1OiE2qqSAGg0pTsin7OCaTLlTEAZzXoJ+uKf4H7vT1B2K5sa09XtOU/jgdTebKXR4OmgzYyYfmIkoC9cKVJwo2y6IFxn3y9kdsnYrgDsWiRU00OOl9aAd+oKOtmUvXz/AKTjSaFT7Ljv/Z9jZ2RcHtPbDRO8E7O0ZFQE9ZV3iV1nSNSmRCEmMhTjqFpqyp2NATskQVpObzjl8rGpmScJrkK3E6nWAS7SZ5F1adtZ/wDhiUacZrt1OzrTTujCjpWixns8vEfwFnFzIE1wn/zdWFdZbkjW+7fE2xJs2yRqWKfM4qaVbnUumnqdSqOrTewEpGV6lSyU/XCe/pHs7aoAnJ60iFFWmGqBJfrWq302SOmXo3I4Tqmc6uysdPuaxdGxTU2TWq1jXonbdKmtmN61R9nwE8wTsbuk/UA7DsANrlisyEU1p37pihpFpDSIO1fXP2dhX4pvsoj20a/BfrXvnXzqno1+OXpPJ/6WdmhfDGdSuQP8ZSfgY60pEugypTWTMkutP7jIJu0U2jVelAbw16htGT1d4rvENAEtVvKo7CUut4bUDz9Snts0/o0zoH39J6rjRtc0qZSUdUHbkybXJrxcVacJPNmg2qD4GqNh4yGvdobFfDqCMkvb69QVdHZ0SC7dVP8AyyQHtk+7V+tGaV1kp12H/wCZGVcV2p00hnUDAfsJKHnUl9d07wV/EGuoeVo0FAoUM4T5vNd4wrU7yvdIOp7CuzUaTZKEuXvRofycqutaxo6mnc/bH7SibrBBRKCursOos6M0HGYB2NoVpHQdh0GCa6460b1vGcBbXNHdw2jgn8iZTrxqv8Y/Bypa8xll819gWdmgkV11N+miVypO3g/pgC7xPEYe9U5O6K3e96APJyhWt7TZjpnWeSAL1XClRx1p0CzrJBp2u/Er/kO+qYSIGA9t4yUGw2OM9Tx8fQ672e11KScKN9lNIhX12HqZrXhG3xQ7dhrboKBcujex3QOK/wAbj9pFHcafZlcKd7KOp2JdSjR9cE6mOnjMKaQBe4v9dgKeLL3qpj+q5v8A02UbD2XLCZKNniT16+2hOxpmdvYujAJrNjSuhd4L+ZQTTvwRx3H4L44efvj2MEUcqknREpKNSlbwGhl14BIm1BUM39jZRYpt6uKtM5P0nRJ22YbO2M7+2X+KH9e2O63on12BtMUFyTR1OwpqpK0r7Jrt/wAc17vD3bm+040pvEO3iCgb+podT5s/M1ut4y9RNPbQm/wNmlPuB/u80j52HQGtZaDrGfzCfMZGMJ63laeugGtL/wBjOl3FHudtUqgTvHWhxAreGgx8N4B5S7dCrvWdVXfvaTNv5mzt76yoT1qnDysdVj+g++Gdgqsln0wkNOUj+D2cdiqf8paNSahDH+woPV1Z+ad3W0n/ABq5Nzn6eaeqZOq0rpr1V8ZZiFzseOFnagqjwJrWzG3xCtmXQz3OTlddTj11dlO9t0+U3zUh1/kqbdk3y2VjZSSzQV2za+Fy0zSUdBOKCIUappWIqZ7ZywXpGv8A6G2+tARyxdUnIPV7EpKY0764UPE9eSLvj08EckyN8fLcHZKeRcuF1OcgRxzLBErOXQyU8UGhw3NKVy9IXOJi+MoqikDqdi87lS7OVl2NJQ5W6UA6s6DtM74pZnDU1oBfw1VaFo8wf9dptE2bRfdI1qsU7TiDPl666CQo1X1SxRBw7dUw0x6eS6ne9LRniOyk1LS6cPOtO0Va0mRXaWVp0b7CC7GTF/66qayj8MH/ALF/3e69ufEwpK0e73nV2qp1Ntf4n9cNsuDoNy9XD+3Z7FOsA/MuWpNRVEphW5d1W9TlQmk0GjKfAzilDS16521XmtvptDe10LpXdqhKIaM0IavczsjesT3q72uNtOJ5gMtGeDgbQOvmw8lGA6ujZqsp6+4Lvth+uP1TRvrTm94DNO3f+WppwXZqqN9Q3Tor/wDZBdO+OgkMRq9ABO2EJcZ99Aa03LI6me0m4l6q6/7dbdUHWctQckQ3kO62kmjEmt7ZJnWelbzetYnnmtT1NuiXXjTB1CQPEyqNef1oM32ref652Q1hZvrhrt1OinUok+pO62KNLj4+zR1oSsYF1kBMtOl0lKnhvfsfWvWvto99TjNrOMhWaKNrP6ZMrvbsNYUulU91L+61QUBvroaDWUemEmvAfcHZ1xWXRPgmOpFxD+TYJreFIq1SC4JoUl7OKHg/1ICuqpNaO2Fb2IteYgb2O5wrdG2j0zRvxt14Tv3A6juNH2bnbsVaAU65Xskg/pjoDBA96+bytaKD+wvX9wDWnr1mmXbJTOitO3aLsXR9T2ZUXF7zrE2mkU8J82aHqNn22EgCu02dnSjs1S0M9QTfV3RoROueC7QPcRdCeGsNLm9a0/1JeugFVXbyTNELupoU3M6ZEzqlbX6zoE24VqXCnr1werj/AFwn7awrc1vXdcNH51/abFoCC9dqBc7P461rU/i59dbwrQ4zoXOwUpUm+ztnwivsYgmsJRMo88NdtZrxnDejAVcRfM8Cd1p24AThp2520BhJ1EKRKwAaVwl33xfcNoKB2KBezuKqrpU3OsB7CJt2Vsrea07wk3vEVy91KZxzo3iGnOIGdLTsMoazrXlYiyzky4f/ALWCy471Rle/i/XD8zZ1XNjOkrqrgb1vq79UyrPN9Sb2RRvQACo+dS6OuVWxEoDYf292bEu3r0K5AmZyaYHZdu5y4K2ZMszvLpJU29dnm89ZNLqaWP6mJsXI3TS1WtbDfrb9HrNMgG+yg9mgNHVheTcsnFRJqqkrlZJln6TEPepYlm9LJNeN6jecdjSZK1LqNTHohLqZVbFV7Fu/Mj48TzVeXR/lWldsY70Lf1+ud7Sg4Q69b5Omp1Uk0Buu1Zy8Z/D2yp2+h1kkmnXpT2y0a3k6mCSfr2Xie26yq2US0/XDaKzsrT127Yk7ayQQAgTbtlnDXc0A0gT5rGkNYn1MJOuKkqFbRWnTpnctBR19n3j0iTuWt7dTJrbS9jQKmeLvFe28mfqqskotEz2TdfjTM+z1KEAfW966jVzpXTOiJCAR90vY5PWUkw2VQ0nUWdnmP5vA888fHxDZQLorVoWgmDr9R/0fHNvbSqIYlVIlTqsNj1RNMjo+p61oJT3BFwf+gHY/hrBOvjvsS7OyDX18B06N7Ng+gb3o6g1TITW8T6hjIheGytPXTsBmfUe3gEoBR26uzW8/01p80w9RwQOuAC4rvZX6UeJsc/dOaqXtn/7zfZME2hH1FXbKZNPs4ibMd9TVUuhnZglGs99DrscVacX7aw/PCUPSehM546C06iQfXtnURcfxQqmtZvQK0Lky7VHfq09iTsnqVI7x1t0734GlzpNA59u3XP8AAz3tQAh2xrbonb5nXXuBv9ZZFxEnw0O007G99XSNSIQ9QDUpjP12b9aZ8CkrtXbGTZlTud4yamiF7UZ+VsA6u+rvav1KUNGth1CDrvdn13mztvF36Aa2mlBr/VN1Jt80mvzNO3cnUcfZ6hWpDNDOCH4q6WVa1jprQCfgB7lSeoL11ibnSD+t2LoJQdtJrbtMjaG366Enspidh0AgjOw06TH00r/mNaow2S1jtorB3nr5kgCAG0wR9xn1Ms1Pk01ILTsMTejFT6uq07Ra0khXXNDpzXusTVGOuojWnaTuNBKKUi+mh9zay5vU+V7AZElUVjvtpd70I7xVn0dz7QbBHsaOpFGJs7D5TqD7q6P8TXopoMEY1h67He1dmxQ3I5W/5DX5KYafzsOP9XDThvbvx1hvSH27TlNzrXbeR/beHu3CvNHVP0oKRuk1lqVoK+uleoi7ZAaepR20EimtP/4Ee2jZRsKQDNjvKPNZxupBX9Eoo0iAziFa0a3p3p3g7n2tTIMfWVy5lOqJJRhW9bK3Tig7KWdp2GtYjSiI6ctU1nZH2a3SCfqb3Na0+bXZ4T4ZVDXR7bFxr0FErOGes/aq27woXQJ2BNBtPqIu4oy1jzGlN5fF3ShKeQQoNojoTqVLLJQ+3SQ6KOhtqScZ7S6NxPsSp2wnVZVdlBg6pkpAznUPsdSqlypJ5CsbOvgSCM8bVdcYjp5FA1srT2Viqc7bnc0X2DA1KncZ2lPJ9T/UyNSO72O4mb/lq2lKdM2SpXC6XHfWZyNImJ01NTITosunuzOzunJXZlaWwSZhHLDqL/GtCNJyEuiuQ0Q9tnKky6nZCrx0p1/jZoGYZCcDdGmQHWl1WQG3HYLklUeTImEnuGw3jrt6TNe4ygoG5Ix80Z19dm+usAqTc0bZxkfD80rSzpU6e8VL2FV/GvTOwayz1zt3eub6usftG8JDW3XZwk67xrYCH1ZZDW2V9cNUFY//AJun0F3HViXt6vuhQDDTrPzTiI6yJBc69vcP6uE7nT/XeKToSmqHNBTOXpneNPYpQNuP224roTZWWbh0PgYDVedhcfAwH0XfX3sghtg87DWs2m0Nb9aA2ps0zullqgNqtfbDXknv69u1GCLiHb11rWElbF270U0aGSvy6H8a/wCp/wCTnZKdbawNqt0TGk0Yz9O2cRvThr1Zd8e0duxd0iVqkyqF0w7NZqj3FPHNdbMdLstREa/ERUcN6JX+virGshUAl/ZBNKA9mslGuiHnp7+D9gK3/oajWCutL16uFbp1r7qnjsN1Q4hscRqgB/JUa1oDQZf1TRvWNLOkSAM175Z9ja+bqfPSf+iki9jW58uvoaJ9Zwk2Ypp3T9M49qZvrai7rWM7Fyk6mL23Ib0badkh/kZQVOgE+yovZUTWLtFJUXFJohaO3UP+sAHedvt1GQPGnsbfPMZKjSGiQP3NhLqF2uGxc8qdgM+5/wAuyrVGqkdjPv4G53mkPJCZw272HR1igKSDOVIQps0GPrg9arLkoHHYaBfqYf8AddiAMJ+zeGk3leI5NFLvb7nFp7a7G0TXWZXVTnZ2CAu3rrH+wrQeqoi6GtYyKL6V5NFLL56Zr9VfqoKvif7P/QbHasoji/beFBh+7BEcEIXJkqvV0afWjJGvGnWb3WmXe3D8d7qdVhQbB1/IdvNJmtaRf+2TakShl+K4najQdRUodaA7KbB9v2aRvqmQeVm0Mdk6RXUvVV21124LV6x2rIbqUezNdckX8U0afzWCo5tnrm3aZ70DB/QvsypIE9s0qGDree9TCvZMVaZWknN604+0Z1HKnSbJUxHW02Lnn+F3VMtT6OBo2ooYBrWJ5vOulyRBM0VKD4GC1XlGsTc6wlJ2nqbdVRK6dOP9SMKCtZdkbrJqrNM9ppcv7Duz6CuqCSa+ropaNTs2LKK4hrCdTl11oSR7MlyeDDqetNb+qXqVwoQ0Sep6q4BYauerUiHXeNBXjL2E5eNuSTfX6nHdgzVWqhy0oAWs6sgh6528c6vTuxDy8pqtE1rjHYrQR67ABlVMuHRulpQAd0muqutz5yhyEOcRUcaOknsgbFYKDVCdZGXsZfKCxEWhrK7tdzjbvJXjm7SbUa6qaw1oxndNYUVvCT9ynrOcK9aWVGVp/Rivr1z1PBNKgdQxes+zX1dq9TRWqBuRooXtXXOrrWJ+YL2aOyUuD3k2ys6Knw2BvOvnZZ+3XD6+ZdG9hOsutZOuudkdovue72CKOP2CsR2YV5rA1PpTQ47a7C6e2ROkpEZcT8ErVOtaDHZ61JMaBGfDet4KIJW6cp3RtHjqVpaOxv8AqZQ+7J/DBOyGl2i0a06l9KNIQoOU6oc7JQYT7vFfTGa2grv2ZWtY7qBxTqZNNBjpnWE/oVp1m9S7E/MXqdcU2EmP/wCXw7MaNOOkrZuTwvUufo4ngPhnUodnm9kjOsuQNYAUZ1fzCKJ8NbQA69QSUM0KGULSmg1giJi/U0gnbEEJPf43b9j0rSwobMVmjQdaxqmvGV/DevH+qgLMoJO89/sf1ocD67H1RUDw80L9qEZ8NCacdGtBs2tKhjLVbERNNLewO1e33PQrt+G/sZbvQxT1x1T6+VphCd51V7Fgm8ntGhqTTkaJrCtGqXsedvpm2Q0AjWU/feFmwzkPr512qtaVJp7GkIprOzvUqvuK9dlqpg+oMpIjQ1NUaXxevXDyc67OxtP3W61j/i9XtpjTVDIo1jPhSH11nZQJDUen9tYvVYRKreP65KS9sUE11D86+CGgZWuo7dpqZD/NvXSjnX7JkyzTjRNaUFM/qOQNHvTdZ1Ozh5+s9pTHyVwrVaZ0VoZe2xE/B2Cn9kwRqlQfFHXmx1lCghROzCjHevOuvTW/Vo6pj6eq63m9fgvbeDutIut5vc7SdymAaTCv3bonbsUcR7O+vg4nihSriGtYLpMJ3pH2UTXUppP8afM3qWc6+bXa6Rdq8v1Peqac0IYydTA/TGZ/k2v9XRJSUyaEztr9aWtOjtsutAsgwOb6jrseYLWzH/dzf1BV06Ka1htfdm9Yh3DO31XGaKKw0fnZDWb9KH/ZPY7LNdp7Y1XaQU8007NAPozqSieSaslDsCNeOH2kwENLSTivi1vbhSa12/BKUNPu1gTbjPvlU6HCfXFKeoydtZ1erIUddBQe4qzgoNZy8mxQo/EFo26jj3M1vzGWj3rrQBQAn6OaWRymja8ddvqr/wAcvRqMiWZWqWiUElMZC+xcnYkONmQyNEZdEySmimiyq1Ry1UIjS631DZnZDRMz1MqWdoSVOzlASSJGfbkNB2dmO545nOIUqsg6yduzMpnYsEin+zbu2RCZnXV7Y9iqAnR1EDRW5fCJCXdOp3lU9VI2y0IlOlGijjmaSjkJ7JhU34TDJohJ6rO2awEDCSvVgr8dztmapr25KOpB1GTiRn0DXXInSj2B1nvWpw1Mm/CXNfXWXTP4C0GCD1QFaytkdsBoQJA1nUfrkvUnA6+PJtNAK6xev74zlfiYfu2ZCaypdjhRXmC7JQf8Kdrgquh3Pla6+71PXA29UdFaK0azX+AibyF7aKf+WRJ19KWgzz/bHycgWcUmUZ1reM6XaJ1st3UpX9dkVUu8uivtiPU0SlIMpJnVk9d0tJpSQ3veVrXnizm3qGId9pQPrtPSjsg6J1idd1goU4UalyPK2TR27vUqXDRpWvsVns04/vmlneVSHXJlAM0/YXXX12vgnXOwRt5NeGFbKcD3WEhO8ZN9iZOqZt0af/y11rqdtoqjucnVaM0rtTdCijhrr7TvSTQ1vBdqP2c3qlaoiezctAB+7zX1HFQE7bNZNPbWHYXXbZSzalbvXYkF24jveb+rh7qVTqB6fo/udv8A65uqtmtlVvKle2ilBR+rs3vx3X1Lip5ZuX2uw7qjRvWb7IFQuzOM9BHWwfTYu9TjR/VlH3JA3aevgLLoPr2w80iD5nVMfDTv0lZR0mx7Yy06TZLrbvYdvcehRWeNGhR270AdhTKkQcIaQzSFaaCRwd1sU9ApqTSANJW9OdVnT1KkEJXY1o3huqF7bAQn3Ee+dTrgdlGhh3m+ror/ALCjYNflBG5neNM7BVnq8ikbR++hk6gis6TYqxtVw8ozWqcUa2IdTSm8ZKcmdohR2cX7Anm97eyY6DWflGus+r/x8a+2LoowTqThtGVn/MD+oKo4VqeuWAeSnu4N4jvZ2dY76GoUfXcrSPZddtmsDGkrKp/2K+qvgJjR1DBfdm9efutv1vqMometeMu3F2er+LsJXHVzpQdZO3xaEZzTrK/zCj3YfqEupSp7SuaGRUA3ibnWGuo46R2j/ZgkNZc9aMNqOOitYV7QKwNMGlxdBWC79Er3N9Xsob7EKGl/cZXe2QhCHexXaKAyYJNZbqfZAPr/AFnR7pw1Jg/rjqdmOtdWQUUTsmXOwVddXEXPGdCvhjsNPgayZJ3TVbgcHzNdRy0lJw0STmmhGoKWRjWl66nsO6jRK1OhCdGDs3iLI49TSSjTiNJrR1UqGo2kCOwX6BB5u+KHrWVxkrRMjtWh1IGsZGt40TXQZPEuW+WgZ1RINdmmw2WSiTt8gzj0GczuikodJuyUy6J8yJg4CXjRSiuRKAaANkk12yP+W+Vr+Tx0SYbOZM3uq1SRRTyS9s4ts90Ni5yVo845OqLCyZUE+qhwmzi5J41LKvjnPj8ShBfC0dseOJNEHaSg1MpkP2RZZ9OQWkwkGXPrtMiQWkoBSdVIpTv2qBlyXycAo3hRtnGa15X1wHq6d1ZhOqUtRADojnZdOftaHRJqFpVK8VmnqXjSvqe5NfbqcssToF0bQZd0anYbTu7PwT6+ErTqBJdb2qu8/NI0nmGivRdYSanTvYYS2uyzWiJ2GjZQIOa+oZW6lyaCdZraCpSBoPx2vnX/ALV0IL11jJrH365f+Sj+yTJO8BTWdf1x31XAU1niphxkzpHUub1+On1ZK8w3Jo09Qz8lrGigMHUhl0D4Uuqxo1ogHbim8VVcP6hi7oy5eoYDpMI+uEu+rU+9Rla8J8TBOplb7bZrUuRr8x2Ls/JcEn9aBKzt1wpb3ij7m9Bk7Q06sTPzepHuuWm9Bqqdsrsy9EuiXrmlPKWeuxDeir1htUzTXYQZ8EcR0Y0eOHm2gD00HuFP+kriE8gGn+R2uqDGlPK8BYr6k40AZrtLlUgOeJvNvqJrSGx3i71snVEqE0o769SqZ/GSp7YS9jUhpGb/AEw2511Lv+psK3TI11Bw322dyOVKNdhx2iDW00bnejykyVFMaHazprWeGtE0VWTOG3rppn8HcubE1ns2Ce01jP12VQ+K/XCjZWaBrBZHYb3SyAGUFbnJlB3Y7EN9Rw2cjIS/6wNeUTO3CX/IGqcK60zjyf5htTa73s09axDWsBoJA39cK6oLJKM79cVdI1t3nVVWQ7JjoCc6i+mt6fw7Y1tclQkygKEJdu9I+PbtjSyLMhSsz9t5+vvf80UtNYe6H/MfPrkoGdtmzen26ZqTBf646QMZ0mn0dAzOj1PWt1hWtUMx/t0uhK17iPVw12NL2rbr3WdXvvGloW6OrpldIpX1We06ynSZ2Ss6/bZRsTGhc0a8iUUwr9c7b/RdGhdu3bpP8MsPNKMhhLJ0xCzriJqU32TE62GX5OQe9sTW8muwY0DvKFOuBo8KGdZ+phP4p9lRnVCb7SSNBQ4bqlezqoR1py/DNGjROzNG8feuXL+4GiTB6rOUBKlDreAddZIjWxFqkf8AM0JvGn3O1ITiibxQdtwtFG9pOaOIaxXeFFSydrZJwWhBAkxpaNxvsrSCISLrCpHxPqp38dg0ezxj9nT22xvaFJ1cdUEjLA6mRWcHrjWnsm4ap4uUaM5IP0sSFziuuXVt0TvRIjedUNjJ2rGCadpO6c4vA3cndmUqZG4qT6iu9ZvYaq9JOLrkcpO3jJ11hP1bJ6aETyjKk604G4JxmhTGK0OM1FFkUMmuVnycePsdSy9IxJ/GLxfWzV7iNhPq0dZjCi62svqWhBskrbk0a1kSWZPtOyQEI8onEJnTprWH9vfd6y9ld87AYe/V2BO086iEjhuqrV0Mma3JQz72zqv4hIGdVTcp4LtfLp6qRPtOcsrKM0MTjAz4SH4a6jjNFZ2GXZbJK+ig6N5NLSi+7y6NNBulrJ2ymTqnKVhQoo0En4SdZ8oOxlO/SdLJngmfjlB2BR1sJdTjPm82djanbYf11gfXWKZZuVw8rWfunNaVAH8AZw2acEmisqtzg68xnYIHaclTaChiG9Y7Jdh1GsB7q0j22GhMR8wffAOuJ2owNuw0K46rCQwfDT9u2D1nthS/j5PszrQunQ1PXYx5oeojupNBlbHeAo797Bk69rA/zHTJkn+LKqAieiu5EfMdybCn3aAbWUVB/ZWu2sA6Of8A4wpJBv8AAyNtG6NrR+qZ1epJ720J9t5s06Z0Y0gOH/7TGhaz9fdIay3fhIEtLQ16Jtx3oTYG2Tcrgan1n1ca7e4h13jXajJVSWpTZivXRB2QzsiiUdsEVDto1jSSISdu2KVS5Va3JUwvRdskj26+yyalKPzJ12DLp26dkdcJ7OVtMK35hJ1M36ZQtE5IADQ+mb7K5J1NKn+O0lwo2Tj4OTXvbB7GKuNAG+zp07pBf91OuoN6Opl72bXQYytZNIOae3nV7KslLkyk4Aqhvs4bkXDZ5muzvHTWRS+KnVyXZnbYr2eusAdZrRgh7j/ZyvqE4HnZ7aJ06UxrWpDRJh7vO36ZWmVDSM4e16y70Sd1xr/iEvX0RRwdnhs3OE/beNHZzqaFKPzL/dhX4tjVDhO3GRNZB01IhSOIj6UJrNu9DvSnmvF35hv+RVs7OJutPnXqj6bdjtdMuyft2J9Ws3r1qdHYE65FfVBEDQn2M9/xlJUa8TJXzFGhzzYPorlS9hzsdXfY32xXeXO9bY3vI/r6StOTO3KrclI7M6mtgJO1odhL1BewHiqAJrzJT/a8e2Oq6uW7QP8Apxr3WCq5sdAvmsNdtAH7jpK0HbW3XmbSqcl7FUOk1lCBoHS0z2QygJNM7XbL6JKU2w9v01TpR1udpXvgrhQs6eMs8V0maSvNL1FlpZx/cqeyJ1+ok7nc4j2MZYozTp1A7HLo2SkareNH8fUZCiVRmqeHiCpvL3pSJpjq8u6lc457AsS/yM5pHZfn2G+25yZ+oFQealKrTcFyb44AzpsZOrBsEZ2s7PP/AN6D1c7aHdUEmithOX+azj5PQw1V6WSt6p3ROTSR0LWmXJQoyhqQZGZ6hbNDhzloZUy61yBXJrIrX6J129inToKEgP5PSkUxSeybNOVbNFPtTirJp2ToaFTGheuVczDT8X5UfJ70NbjISneaKneTJB2Ln/o9RE+uL7vHdUYqIs/7OD9N4jgOnL31AB/MmvAxN1oJZScafdGnbjM9UyDT6yVWyXTrKHe86qYSRLook3kafBPCcB7Oj9NroQUo0gGtGt6xHrsFNbE6jg7rSP6ZtqUztqfdfbaKfjp+uHv1x1rT1/8Ap2ROuNaUwQABPMHa5ch5hsHdblVmnzB7b0B20MieGvV1/mOjzB3Wbe2AMunXVTin6+k7Gcmg0gh23adgxD0zQxrETZk+TgGtYz11hL0TCdhibdYmqTCfubn7foA7aPfUSc1tcT6ATryc2nuBp2UPbeJqkzTNGhezodqYC0a8b64Ke5pXSB1B7J60P9gnekaPXDf4Amgr9yKH98E2KUuNJ4T6jm1rD3wXqe7epjWzCdyuNCdcUk1hQmOursE/t1/TGRSWx6+EkIKBTlToM11O2Q7VU0Geno/1HJTtvCfXe0qlfTWdUXQJOSbqnEWlw80v/PWVpO2CbcjcVSn2rthL2dS6redtG02a009dunrknU7YS78t7HhJ0dmuriutY766zQUaQ15EGtkz12B7Tu5PNEjJQniSa/oh/wBOvqhTVOINItBRRNHZp7GxFWdunXhW51jX1EvWjUUvYx0zkT/mSFVrGTfjPuyTb4zuRxEDQhAhX5tVXJNyrYdZc7V5t1vY+axkJpBPBRp7AG8mXo52QTE3x7Hf1BfskmgZNJOsn+pKBsM3vP8AtxCXR2/zE05290+bNgtJhQKpQe4u0A804vajI+rtf3vioC9jviPbeC9nGPqOAa7ZCAiyqZrZrGdi5EgYeKHZGcN1W3W96nRXg/X0015rrIDTLrFH8Z7Ri7g0fa/dvbWV6AVL1YaEjzjdybqRoFWd7KZpwNYaPTsb6qBezYCZtTRpaHPze/RMtPNHq6HUiN7dYb7dUdfuyTTSdpcRp1l6Nammgp8KzW5DB8oNJW1T8Whwk17r7UlGg3UqM4gbAdqYD7uJnsjtqsAmupJ9mW1Jrr8bkvm4CuUl8GYB3gbFxH/bkKNj9doe7VN7CkoV0T607Af+xp8yKNoldPHlSqNTQCPYKcdMiyToMip6uuXd8TvsSGKVTTKM6Wrrk6pX1M806Fmcm67il/ZnOMa5VIl64CLpHtvEqxoBqPY5NT1xk1rPdZVatGKP44qiga0hVMk6YNlgm5l3t5Z8nUGmpal7CM9qJxD6yRP7FXB2DGfRCWTeE+TSIUxjJ9dC9trKOQG/Jnetsq1sg0bqe3J611FIGY64UeaTxVr/AK0BrAd1r/WT2ZoI+sjizszkrV9Cf3Y731HZ+jr7Gig2aPS9kYK+5K6M67rWAf1FCRmFT3W6ZxHaYUL1Hy/TT9illJCtztumtbPxcU0IdV7ZFapcZNbwTvrDZSO9yjtGck9TAduitfrW/wBTWNf7jQ0mSM11LMA3Qhr90L2ydq7d+Zyb3Ob61K7fVN/o7J2ux9/Qkdn5ZsFdgAP5hLsUdCAuskNuIL2CnsYSd+2dUorEN6ZNGG/wJNmu3o5Z2l0Op0+kMtuqF7fhiddZSEm+yuFP+bZFyw8xA05H761qVYkZMJBMuT/BS/drXjPYw2SCaR3f4J1X1PFFoknfYpkE+2J+4UdtZvU7UadB4GAGKoThs/GtAPbcmiWqEqQ9xr7aLk3ojZ+2vYclWnVbr169XYebRoPQoaxFd5MnWnGjZtC53lz1BWjfdh7OlJmtYA1l7s1K6+uSuxTSsr59caepOSuwwoKDEezoXrrIoZFUmjFddc7BO0kJERZ7ZU69BK5GCn11IyaRBXKTsUMhPo+aLWDw12FZaPD+reedc079OvYc2UayRHD6q52Ecn/ZwHfp4+Mq+L1SVAHRR+Z2BxRkXtrTjO5aeu/cB7+o/pa0TqTs0spXbbPpgSrODQY0soCEizppA2m8/REdPjRslTTOf8qMnXbwAlSddUx26lpCQA0lDpRNIKCei7TTsgMNr5HJLVYLtoXfuedlNB+e6XCf1xNdcU15rW5WTsLsacTaOVIbUkqcnW3aPbeG9GlMmfM2mpBO2sK83jWl2b2r51N9fsAv2DE/NH25ECq/0BNZ1CdZ1B80hvLVJcNNDnvV0Skub66cK1flJ2845Znqs68JfHZt+p/WcErZg7FxFXSSHVNdkzf3y0amB/NE0squyXTPVyRZ20rpxn/tE1OIfiD2RdvuT9gcNdfEO+sK3XnV27fdGaHzPy+uXXat4aJ3jo9yv64eVl60OIJrA3rXuycHYZrelZZAGQ8f6zS1bIMt2a7XSyaimpV063lyNeTMzWiUaqR1JhVPYwv7UNVujJp3UqfXCGsAnclo0GSOwy5QKwr9GBJyxaVft98lTH+7OftdWpI7TMkGldJsZKdYybdJRyGpkGlHb7VEjqirQOj1NkNUVhUn5B9XEDqZU7DKhmaCaWScUaAYZGiUjWcgfYABFmk6mEnbzXZNOpcE31WZpJx6s1plI2D5KwhLRVaPR61tNzO0pX3soOVDOqxpWQA+2torgdTT+CgGjciy7j+zOB+6Kre1gn7F6uXJ7FNIiOjU6c1pcutU7ign0Svc8XCg04V/2pWI6DJpDYu52NDOG2thrqgI0bD7FZ1XeJU1m6N1m9G8FHY1t3jaTl0f2zsB2ChUX67o8/cJ+rqPZNW6euTprJo27X812O2bCt4I11zw/R89PtTjPrnU/XX2HGWnWM/at77BgLrAGkXYoAsgz69cqdToiUl2h13npO0k80z46B1ieIS/b18QUN7xTZpDCjQYSMOtjpxTeUHZc2tJg6d4G/BTrop1RISM5rc4ozoPsTnmt5r7BigCa7OsVnqZ28zrt7G/eozo3hSaRo7dh2+4SO8d78E1QtIdkqiShUEHTG3eg3VdjeTOqVftiaFT+w4Sugfs+Id9ZMukVBMaStFBWgmSQnEQpBOu1AGgqpDNvb2xKNlMjuqKCpJJ7Lp1vNHXsnVpBXXp4OEHbGkScKWq317bFDQmhPTzYOhEYad4aDaGza11pcVZ2mpUwBrWCpo0m9/msnbWy1UDqSesibSv0NfaXNdFx3M9kpo09dV4prOzdUEeeYiUSiVVJPu9oEdcB65D2OjU9fqxUiKPVZVDW+m9oGhwdTtK24arQvvptNqu6msaHej7SCjskpTY+DvNrXYK1vK9Bynrh9RGU7eoF7NPmAbdqaESt+SlQYPpvSUaZ+u3Y0aUUQOtGKUuEm9BP2KGf1YTGtjukaDOyyoNfmUfm4P1WCGkgZkHWp2SvZ1t/wBXdbBnygWqJw8kM/f033NK5U/bRZsMY+pqQJ1iiuSdcZWzQJ7guxwRHc6HWP2nOoToJ+uKdzAOuxV/CddqDf4616FbEeuh3tdGX28HQIly+OGisUdzgIzJRPbrXVnEGUWXroVUoKK/J12rDehdkymH/a313Qp1UZDUv+uAi5ybpARqWcJ+pg/WtxW3tlq6QV3t0+4iGiRK6u9IC/tMifXK/Z2767CdUI6a0KnUz9Ew6rrNbGWpGgx/Ogmh11J/JrsriPmz9cp8NG6+2XNM6OOSf2eM21lyE+QD6dt3530GVV6EPHeALg9aMU9TYEmIeOEpOsitKH/JwCpNFe7Sty4A12xSfG66aMr+rrVg1hu/c69O1PLKX2eOe3jQIzhROgbarRCNVlVvWlZ1S6euidJZy9dTt3VYwUOSs7BqnkNtHUlK7LlyOlJf5ZMmjtvFKnxiXabqppwqJnSUzTqJmjU3RUpkb7Lk12e2K7cJakBaVjOyyS1TUDhyS0bKKKkmArrlT11q1IFJ2GEpKZ2BJb/Vw3onJU/ROjKVpcLod5287Y0ddYAzgDoLeodTbQh4C1Lc4S61gBOgrztkfeCnsdQyZ1LvsqYey4OjPPTOztxOvoa9E/sSE9v31qs9166zWp3hJspvfboVr6qO6QK2KiM6AQdgzKojJlafyh12ydToH81iNfYN6lWU9wNmPk6IkT12Gmt9RQWjVUAY77KGtdcA7bxQ2Y1re1faI13qs06w3U6TTDWEiBg9dmB9lzWhc45XSvl6X9MdP1xrVBm2mtJ1kXT18kJgxSqc6/UDwTVHpuafQ881Zp27OoC/4ddUBL9u2C0C0oifkhggaWituOnWNDvY69xFnri/mg2G9OzE+yPZ/wA8VxBk16yb7BIENVW26ewIAemzSFb2CrLtPRQSRNJ9jsO6Q/zEB1lTuvU/HJNmdmt7Hcs5Ff8AZrFAdB9VTaq+MibNDi+EgLLiMrrSu131IGWdGUI9soo0S0tA9Q3m3flSiCBSDSlZFfVEWdq+yZ16zt0tOurP2wU9xp0uMu/POzTY9Rzt22ZVLLLxp4KNUmP/ABy3QmSNHug3RQhoiTajQuAOhKCsPBZK/dv51R07y/AsJWQd/muoV6G97Z88Q6mR+uVetmTXnvUqc6ua96o/YD3tsdtK1oyF6mzyt5b4oUPqr+Y6TqE9grN2631UU05c7ZSPJVaKoM87Djaa2aRQkmNEpW5SUVwo6+78HKo6mDp3jpBKRorBXWtNGhDzA2egddNJocE/MDdZ41o2OxmdzQBqt5+nZ7BXYKTev2t5f2XSIGddevZK3nXb4P2HFe2NYUjONIm+pJt91pd7NzrTsg2p7EZVaPK1/HoOswSAddC6p0O8A6qok+JvrpUDA/77aNZ1f7Z52XFfzH/vDQLlKfXH6OsPKay6RAodBiJ7h722UdtLP2zRvE1KpSppUtWN1JvWp2Enrj/3jLvQj10SIdcNiqJ5mtaMTR4OzPQdqSbzbJ4aqUZ0Sgq0OKMqvsi+78PN52E2zJOsEukx83j/AGxQsB+v1zq0dslE9X7LjL/ljPLIMk60211lTqFIq4SUOw8rYrIqiaDQe9QDTFNBgshK61rE8HN7rWWGyhkt3i9HTRJCkUkJhR6Z13HVE2OElUU9C11xyVyI3PWq1M9tbo6z4R0sCKGUxGpKLqp2ZErxlJtoSp9LZpX2K2ploRWQPZnHX4lHXeFFDBU+hLKlaqSj3jrYOAa0ElUhJ1p1FOt5v/SPbaa4tuchpZTdS1nF9d5yDooqWqKKjsaZ00Tg9lxCuTNhWsXVjgLsxNSYG8vWmg9DdpT1AArGnvvOStyb4mprautKWlk4LSydexrGnVZNMki0K0if47N7nyXZOjx2vm13orbWaB2FdazTOsqfs5sJ2D2Vyv0yae2NO5pbTCvHO1HZeOt1rO070nbq7az1N5/b64b/AMTfoGtGVTNawRNMSm1T9wr6m+xoHeklfpWxEoMUdh2ZJoZ82Iea/wD8c7aeuaChPfZDRozr9d4LI5syV6uxFDJZBkqVovE1Jg6p15vTrQJtpMU67a34BXuGkBfXtlV6GdSfc/46NvmFDW8a06wrdJhWvAGdC+GKSmPmkVFw2SOdtFVgPXHfTeaSRCutYfvj+eoaHKk12Gfqht6khOhXw1o1oVD0VdGnZU67DtUPMfUC/wDMNOnBV3lbqkztqtppe2NPXRpmvGmdyID1wrSGUPbxdyyG9dcANLrb4LNOB4GVOkwlTbQBvH/9pKUax34o+jivXbModkaqlfyjRI0qUdvKo7Tp/tpN60yGtj9R2vaZcj8ox3Iyb3vd1Xjn9c7a1iHbyR7NZf66ZL+2FPuKHg1NSDE6K0D+rrQiuzPKkCdNI6ClwNztnVSGU9d6F3rASlSUFa36jpPI11MTRgdXTToNbGuxdP8AIbNDvP2uuf5W2QN4ybXC9S6aNGaH3FPHE+w4y9TW2qdB+uD72xpgEEuepGuwrOk06aM19awUnQ7HZ2evqf8AIU66GdSadOtuytZ1WqQfeop2NVpVStBtp/cN12AlaNID5W5Ez/jnnXB7CKgi9XttdjrA+3rQ+O1NFJ+ZX/Ty3URuSq6jXbW1r/NDsca3Wnb19fsGvdKtJO8CuinXcmwIdKhK4SB7vRpqfDYalHT187+phW/13r2V7spJ2N/8cFQM82ZayeLre17ft0G6QOvbFGc7bJFP8w1SmMlGnWxDsFsvZaodkuAxRt/SiXX6+rp14Z72MRDb/u8Z88J2+O+2wPHaOhxRl1p66ROvUn8owHWOmRx82j4Mk76mhesrv7VOUoCSjWyq83mip2i6XLs0KJRoKeqjt1Q0hrPe5TddnbMhRQ09QWvqCuOupggE5tZKBUVHzY0tAaR0kgeXvWHppa+jspJ9RrKJnjMdlOSfWtksm2ZKUxUneQhaAMru7HkKzuTpdpDptmSsnfXOKq0jyw9icJdEmn2s5R5JNn0kEXqVnJYswcmpEJQjq8dXXHO/IrKE+oyVVI1/89PXU6SiX0oK893W0A7D1qWD+J/tjGwo5OAqt4wdupPEtE4QkzISvmMqZ1B8RKKGQns+Mbw0lb45BzsV7lKbDkdwaimaZT3YVSSa5HVeM9pHEYneTpDVJ1dFAiF/X3tC4ITWVO5DIoPHsteBqRzXhgBIrKUgClYeCYadmCUabP3NvRnN/UBDQ5cjrradlAaMJYpxWjzjCfM6nbzfqPUqgxP9dp9wl04UlO1QXI1amITRgB+qTQ5U0nnusT8UfeuKCb824zoMVNaaFcd+UftaZrYYIOAb072Y/wBsfSTCkdYiGG96xpfBUkk6i9cT7dXYT0B+wPsusf8AvCV5Oq2AGGhxN6CZ0Izuare/VzYPtIqJve8EXsVR2MF7ayj1wNdV9rQqTPVQ80ya7CnU2J/G4Gt0v9RQapVfPaNT1Oz1UiitbqTWkAnWWAG5rtOs7em0pPSA1qz8cf8AvHWsaGdBo3jvrTga+woS6a1M6K6hid0zW3tj6qqoGAEq+tCDPYMNdvIRpU122V9dCr2IL32DNtXrH9dOyslKOxQbDCuxk0C7ZdbyVOwsjLQTvVYfaXAQ8aPzOynpP1mcPK1m3tta+w51KHUiqYa/MNFenuzOyhjIS60kuw/45f1ECus7TW2UADB1W0NDi6cgf1NdfOwfbHalJppV0/npPtUkmmjQGteYGwU9/NAhhL2zkHZoHqmb1jR+JJ1zfi5PkuO2MA/39N4B/ps9zqe7k6qIaHLl35EkiM+0Y/q57VAVXZ07Q8KGe2SrvbOtmTPuNCoE+Jif8mfrO86vox6OyREH/NdXaCaPer1kBSc7Puo1O8Ea9Nu97d+9lc//AH+63kgfvu9E7dKqusKCurp7Y6dUtblcj10WM63ew2GxM9D1lZ1kqGnW3x2qoLbgfXWeV+tD+u+olUB2BOuDo2gOsK+7lSn6UEmb1pw2VrHf+A1OR39KZak3I+zjPVNdWqFK3HZJSdqe+EstOL2o3rUrhPYLw3rI6spnu+2Qf9QoaQ3vKUlzqvob2Z/+SJfNk73t2U7f7YPjvWowdaFt2aK7TrKrqlKlKEJplHqZOmly5p62ekmmnTuX67ypdjj6SKPYoAIB/AyhaKEC/b2I5p69gaNOO1kCnrvLChAnchTIHV88VrpCnBu57N0FUYAaMORQMVaaOqSbmShMdn7yUEk4BVIUveox+3URNmu6V1bSdos9tYyH1xlJm8aSHYDqDr5ORqZBuv5OTrnHV0Ak6hCJZmsvWJ9RIk7NNzDZlyaKINTI2rQl7Vt+k8g5/FJSpIcftcc1xsmtVqoJrQEFHVjjIpoQfq61Ok9ntiv8jOdrnWd1VONfdr1+yP2ayq8d1/Qc1rWBufCf9I2uIFJlzXXRdGiiaeSkwO07OSa6iB+BY76sLFG3dTUnHvr7yO0AonWiQislCdKvu4etaSeybUP1o6qf2dsTunSEqkj5WJp8dHqoz4z7skPR9DSydnXHWxMffWlmuoSGqwFrEfF2gK3S6ydldMZ64BvGgllKIWiK7jWGz3FCdm0Vw1h7On3Zupew4a7bFP0tZDfX3b2RXNFDjPWUA81hWvQ11MuT3RJWtL2Xb+GXKI477BiqaI0I5SLpQZNgdt5WutU8XIch3za+5177QPVHXjgtfiblBrsYG63jQuFaDRydta7b/WvqOCsphR5K0SuNb9WknaJRtk3OP752AdFd59iSXLe1LhWp1hoHCTxygE2/nibplJey4Stem/3PHSshhIeZeihxk7plC0E7NOnXXxPdYz+jP2NijOxlpFUdL+uMhK5ElT2JR/ers0IVrPJkpVr0KFMXdJky6Vint60NenWfDew3AF+XtrRt2Dt7KqqObertXqYD7oDYoBTsrteg2uwpN1jXjo8kcneEpsTT5hP5SyOqGeq51a/EZrS624U/6GvRaXWSrOiU90/6MSD9lXJ/qylBsxk14zs1lG1wAlc8N4A+5Upozr4C67byd/2zm8Rya2mP66F7byR1nUnc47kTHZxjm11m/cE3pdHiGhcQ6+k/pKhQvWd9cD2dL3MANLYLrOnaUY0T1w1Mu1XStkuEg7xQneHs6wNBgP4bDzNbRA3sDxc12vxmjevCsKGVxUnS614a6mOqk2htMZ34NAk57twUN4/X6lOxMUDbt0oIxvNaDPz0ftXqmhwo1gukxWXeFakwk7bAX8BmqUo9ynZsoNLk/unqUpmjfrJ+YIV4O1sHZ7r7Jn7WCFZddXQP1kzWpcaeoip+UacN7pR2Mn7Jvf8AbTv+NHXU1m/quXX9QPrHsEiGOzdYUbHGyU2VtcoE0Ar1z8pEA9xQHCh1ij5iaoxPtilPTB9MfUAonaNKtYeNVifljTo1P40NVIOA+YIujR20KVrVu43m/wAcEJKdaAa9FDTq8N9diJvRpoxnU+H2dEnb65rThurZx+sm9royJCQLlrkKGj3A3OgT+U3f2l1M/Zkj7HV5HtTJxU/x0VyMm6wFnsdBg2yF+0pvUqbG4GjAamhTrPZiTsmamd5LuShk7Ljvc09juSaXcjcTSPtdaDWmhkXs3LoyIlEdNUAhojKntQHLTUVhTKys1QbIF65PGQu+2nZNlSUlBWnsVZOM9Z1irVK6Z3kn1dzLocJWkX+rqpWdYjU6fTW4FoMdDhT7p1e3GXsa5pDWRKX2yUmXKlrD9NlHaksU8KJJ2a7NYyU7Cg/dSzUpqamMdNdclCzU0KmJrWVS6QPPVYkDX1dzXTQP7vFFNgFVtoPM2FJlUdXOu6JCQpRp/tjQ0ORZp2VrVOx6uKtOdtfZKA7HJa7A0SGXILm/tOoeouTRVqaNm3edf+gN+P8A1lAUIqUYp+nb/tpFlREc0L5UppEepR1CTInezF/xl06dLvJU8bdSY62YbXHSZ+0mAkiMGsfD12T2zzr1IEdCe4rpMiu0+ddGXrShWtGKyO5TrhP5IfYyvDqFim6o240/4TuUOO2jomiu2Nfm1Wu2NV2Aa82TW53hT1DAeyk615Fdpd1upND9Fz8kTRpxVWc19RH+pj7oUEQZb1mnfZVp2n9kz2aEZqk369kgH8kEZfsbcKCTUSbFdVswoPBBocV/qsvbeOnZkV22DrbgtVvIoP3+rvFGhw0ri9dONa0kba3n3p3hKdh1etNBoBds40Cp4A5O9JkCU5NDLtXexnWjJUnWFb3QCi4G53nlGsE6hnu/EIPb/Cj00qBJiqTgNa3ITXUmQreK/wBsiWQrKoZDA/N+tJgJ+73tJH3fs7Xw2iIiVQTtX6aAWcFZ95DchgebwBooUg0O7HNvZrKlQcFD0/M0KVjPU2dd+qdU0VspNKYA05M+4pG2nesKadu0NptkMHU6bfqqUDpQp8vR+zRU6zQJIIbCXU4ba2qy6EKnYf2HJU242+ir13hWp0ib1ikrprRvDRnnZTt9OoLT2d6fEfxTYaunsE1LTqQ+vXANGjVb0brWUfXYDTvGQreE/VMoo1ifU2Ka36V4y9gdEu8F8nFB8ElwRoTX2B5NPonU0SHV0IbzRWmVRR/44mnOxBt61e9siGa+qnlJWAtOE6nRagmErJWFEjvkpUkkSdBss7FGlGhoBnRoPrrcz5tHR2qrEM7mwy16+gNdhlp0Bt0mtufqC+VtAXeO9+aa0jv8SJkcV07KZoMFeQyKFQVHTVagQnq9saPUl6LSmzZXY0BPnpTSVnnUgA2S7R65SPbcaKxXfXCdJorVVtfv2zi/s65Z3RhT1F7qTjsTNS0Z234s/addg/Sz+SlLUQ8lzaTrDqH2HxVRN4htcfJQDrXtjsvJ0zvKVh1A9tjM9cNLMsU+ryCVhMyClbWsvTQIBJWATXl6CdEkvVoCtYrMtH5M5pDeXwnJx4mxrGjQiPWdNDyAtOipmhFInddnjkmndvu1kKrXV6oQBow2vgs0mU/XQO4azzrsquzOaJqc8372CTbczWx5PQOQaHcfUO29JIIUmPuqCPqpQ+gSjqiZ64+g5Z9ishkFqjXJ5IVTSQ/5wtTa0vZMfytHYrGv609ipEoO2CVj9lR2Vt6iji9acqu2jCnaE9GGSq7SONFanJ+1VraVSxyd9SgWq1vTvjsTWOtqx9f19nAGRwCZcZ3InGugofDN6/ARzf21g+lLW3Jrc+psXCXq9ShESmd72aEFZ64OgMivttftVaVAwUnSfmx1e9s/YcZ60oG58fXCdGs7UusQjW6Q0jslzjoZly/A1+7yDVGHle2dvzt9pMvf6S7DZ6uCFJlrtcL2jmqXyR3ThTvCtUpFNGsrqS6f3HQeh1mcaeqk0OjF3Tj9aKKdBR/+0MoT0d+ZrZvA7Oe9tJW5xf8AvYz1UX8Z06w3pMP+0PxxNO1ByZQcQJ9B0YDUuSvktUysiKiAIGGzeL6baNgeQLnUJFP7OvCXNaoF1W3O3pOV+aT8cNj5v+tBT206XbiHqCNZA9kxrwcVzzrpDXj52HL91qdE+/nh2JWWKGcHVO2RrRsK3lnYDK110X/m0F1nb6+7X8NArMmmmtHmTTJoN/iyDgFSSbU98J8J6rvZRtFDbrztjqjQSfuS/bEnZli5pHGdYJ18F6m1K/Ldxjt8BGUZl6uK73m9vl7BlgInGnWdtHpX2d1RWtvtdc6s+DPY6vTek0oVlSIZSprA1rTv3evr5192E62P5oN/pg7rsmneup0MaOoie7USdYA8cmdfVWTtmthonqJjsnYSxIPnXqkpod7HQgaz30Sdb0Oqax87GcU7Nsh+NI7yF66yad6d7O2Ps7RAlwNyZGyt5VNacD6ayJ7TmtGKeGSMymCv2EewOnqODodO/wDBD85K9cJWdO1kMAZ2+qJSA6mjSs0djDUnUDQ0osutfUDQDSpQ3gP+2+uXW/MROqDr9vXqG3rjrOrveMubNmBqs8Hb/XaC9na+qL/bbsBx0NGDodldq0XQa3ctTnVf0hFcnZVYuj1lrwqV1p/fFWc7Mz7NFLt1VE5ZqdGzyiuRmpt87+ebShZoB/dr2/s77V7fjoBlVrd355MpnbewNdN4yBrJ3pH1/FUNx+KqTLQV5t7boXrvkJbA+pQCIrsy5Hk2a+unkgjQ1uQMF6sCzIOK8gD127e203G+xu/BuY7Vbo4Xu01rq7dfqBUm634Zpmu7cta3YNTBezUg9TplTp1nUmvO5OlJbdjBMplDL2IoqfCivC6/rpWaKxQ2MyV9ml0aX7ZP6ucVIIiaHCrKayvdOHlGl2qnGLlTqvJ2V2y3tKABxmTLpc9YKdP2BlZ8pWiRvoelNWZVJszxx1M7ZTrUkSNCiu90mzFDW6r3ZvvODuSRANpKjhO465U79xA/HXbWMhPrO109SjalHjMSYctegU09WINuFB9if/p9nr1aBnsaSTr1zYPtUxJhVy7yVaZzwk2+G8JNKtESJ/8AvKP8NtZ/WfGp65D9VKp2A0VWFIdUoDGjVGM118k3ObM0b0qSzj/beGz3NfhhX+Y6KZNY+azrue2b+xlVoTI+oaXxT/NYJ5Q7d4q9Zyh7aZ+xp3nnUQfdZci+skzol1KOn3RRqtM+iig7RA20Cud5TeL9dg7N59Q3mwlDj1109ityOqDEMa+phR+vkuwF3hO1yV/FNDRVVUzpdo5/uh9dAMU5qn3AV7YUG9s9zOu9Si9tYroMd71kqVrJpmtG9HZdO0P8pddETWhX3egNbxRrWIbQXW1fTYSad0syYVusa+pWFMrLYE4D45P1nsV4m6lfMdvrWynO2/c2b8B9SNVG3ruckD8RFcJRKdlUOM/XFR1l6dFO+yhtUSdhr9CcKBQNUufg5Lt9ZPBNi6l7fqGnYvUWfJwoN6R1vEA7YgjpnqFFz52wpNCD29X6oUfZDsjpmvRey/hX3HHYqShJuRqcpe2yjcmeZNfWlqfezFBucZOu8N+ObEKVVKOyhgA6DZWV/SqBCcdUdsaNawB1p0GyAxfMKKWcNGzKBwnWjHbvNqJhR+rXj2U2GezrSu3D6yjamsNUikqeik0ibneWtSBV7NBJMu2v8yXrJm8Q82jM+NeC+mzAd6xnaGCyYpOgDS47/wAimf3qdlLD1xPzAN6N++26OkwAO024eGkkZ3lGjzbXoCPn/ekWScZN6SNGij3CvDbT10WNAnb021s65B2krNFOx9fJ2ivYrrle1vOvjiCLgPb1344OvEresF/MJQcd7QHbi9VStbJN78xlVwg25c/bq9nszhP1TNboMuSd68TyPVnOxtnPFBJ1rdyVOs2Ow9etYovjqh0vbe4VockTW2gpVRmTFaN42BvHWB56J29XsFDLFi7Njl14GCPqUBTmygUCZ3iFOs32pytSEk0+yFElCf2HG2qdOn8kSndVVVoLWUR+rrW6Kxr3edklRl0bnkditDDkSh7pFcHvOspB08fJyX3lfeqclLNa7BBJpOEpaGDd0E7y5GXA3XVud7MaNMxIir2348UnXeWh9gHylkdJcvYcHSY682alJZOvYdaNEU7652q+phPeveoeZpmsKU1l2mNGlwlvSTrbOIb9KAwv/jjW4dw6Vzl0m1Hcs9j9w+1VlD5tSHDkYRZ5B3jTVKN+itlPkV2h1A9Wmu9CBs0vbyt+jp3/AJihSvtzWNa0Y0ujNVAZMqNPJ2l3kUuqCtS1jYSGTayY1ue2J2MnYur00S34ocPe60nvI51XxaZ1rTS4CKZ2B7Mu1XRK7U7aSdS6N6R7HfTo2udxFJ3264faVwSjWGxxnTvGvfO5TrCq7IqkjhVYobxdG8fsGKoGK/1aWTR/Y7JJhvsuNe9U2GwT3Un2yvZweoOdp6pn+6zeqBo2m60GsmdyVgEqDJrZY+JNdhA3s3T+hJ2HI1Qys0LhtBeu9YIOf8gE+hrxN5rzQwJ5/wAQdHU15+gtDv7FG/CdYm3WaDWkNiHm8N9VyE24zv8ARZpMf7Dj5qhdmFOzalbAPxx1rWAE4aDOz7I1+GDpc6+Kv+Z6TsU67Q3jKej7WhevXb5pCln29k7x3sMK/wByq/3AdbxXfXLCqwSUjCfXbKnUfoZCUbadvn/7+3bcmjSk019cA7e0b05VznGumsDeNIuha9wXRpkqxyd9t4vZMZP8Uz3rpo1gMm8/PM2tAujE1OaTU4q0ZpdadbNisuyuio1tXIX+r/nu9+hXvlgz5P8AQxpHqqm8NbrZK9cTrucD7aQXOOdyiuzOunDTPhTPuMlLmnr1Ou59H6gdfqDMqu9Hd2T64ejvr1O2ftTt/dMKjvqj2dftYgzi6QEPMqUZRT9wR9bGXtnjrB1odbac0erf9dkaNa39TPF9OqDhO73loa2eIrr3ZpSsKyX7AVRNGMM7cmtjhXug8HY6dLX2QH6lIP8AIrvxTZQ6917VnHxdksqd5Iv4j+4G/RfEwfr2OyH26rW8uuo4TtozZLo11+2FbHL1Jt7nYSdyoDXZAndax1LsKBd73Qq+mkNaVX89fcddeyyIObSxxp/Md1+UghjJ+46ftih9idy+qG6LouSjqNfdo35Ek9abr7dmq6msjXVcQ7FYOtbF26X6rnXWpGfRxPrTisyhPtUkSfqe0q15m3qi7/w0m8KdYe/fCRd4+flr18/Jayv9XzXty6TJnrPvbeMpOytkk5p/jKzt7Dj6uDuN5xSm9k7XdzVBJMs3rJkGlmSthvdAcUu6HZKyVopM67srJ1360WlaxovYSnuOq/UmKZapn0sOuyH/AJpsdKHqmnVADJugKN1JpSJ/NK6x23sJZ/PPVJKATWtNslphQ0uI0+kjox3W5JAM9nkN0XrOIJEf5Jmkx5TahZ/IQOu3rK+pysTpla+x/wAdDLs2Dtamuw5smeoyKVjA1oB7knZj9KugVTXZIVnGXswtERrCrqWWVPtkWcfh21Jns+pW30AVy0TeX3FoNv2WQrxnbWRKDtr76W9DvlloKItFkZQ1jrsTgCbwujtKUnuFapMQZ7PTttZUfD2lwqtSDJPp1JrQn21n2jeyh05taNO2xA8QZ89RK01QJuJ1+vleKzrINaWnTjQxJm0XYIri+GKGhL2JlLpM7BJkKOlolQHZnYAcucfrOskShU+zgCmb06xQk2KnrJp2/jikgh4Kkt6cN14zKHhHmxl1Ot+sgaHORdBhNe5L07Ya1tD7LgnUw9ca3Tk0VvYpGNbGcKWfGhlyVKVATNeeVqAx0pJRp1gaXbQSiCTs6qVnkjnHKTvGmKBJ2Dj+7WhUxQBN9qBJT3LDr1xk2aZK9Oob2q6RllNeyuS+Zcu3SrQjL19NOdjrrCvO2K1Na8TQ72adobNo5E7HYK9cadAMoDhS1lHWtkTr1a0rnmlZEDKT3ehfaN0BsD0ETTvuDS/6SE6wr+wnad6JSd4KSKUzO8ERyUM6saRsmXCRnskmhx2OsV6mVR+MvoYiG8dSerQBh/XeGu22tbQN/gyIueNKErS4yktM6Z8DdbKne0hOusX/AAdlG0EQlKNYoVW4Gq9nbWgnW9f7iiUE0suK1JRMoCV5yONaVBNi2AbZpTqJpNgG3H/8np1brrtNiK8egM/t47STe9O8AX1Xfrt2Zv3edmZdK0i67dnIfrWA9TFddVBBSeozjJ186n49T8JrXmV6lDoAbns6J2rpr1nNBoDeNNYPTx7bpz3D1rEA9964fetvpuif6jluic5Inr7GiNBPmgVkpH3QyjnkbjGB2J7OxFdZOxcoCfJO0zieqTJYiSTiBS5V9ZEF1tDe1mZTadqFxXZrT5WAE7UXWO7kR3v1/t4616Vr3Lp64u91h4Bm9tTl2DJj/WtFAM52FQZI9YpZ3inZCt6rCSA12F9smhWdv4p+qPuuy/vpSZs2pE/udTOrrwBdo9pQkOuNa3h9Z0bA1gK6ynamJ2k1qWWVNAYpX1O267Y0VLiP8ahJ1nbO7msKW6MqQrqNfVUN6chpXUhVdRervHlGTI5O1NMVEzXaa67DhoXeV12U8j7sodDkj6JRKy8eq5KrOOy6QNxXVoTa9ez9SexTlSE7yKHSuh3l67aDXm6lreL+yKG5zurvOs1LeaHZlSTKMI6BrVeckl34caWpvetg69JRXCQ2tTtlxTquUhPqG9CBKhVEiE/X2gDozEFNZAdVwVrYnqqFAZ1ZrxnqdjdVPvhLTKaEr0M5ZtmuvGumceVWUNdis5ffzrPQ6HE/bqIT7x0Vppl9xUol39t4hvy3fhNFSmG+3vK9J2tk0JafZLq2jJ5PdKjSN0tgErvQb+oB1RkqI1kzr7IIaSWdifWeptdOb1rZQy53G3elntleHZ46PRnSrno7O3YHCilcPfcrrtw0GsZKreJ28x3+Cvmfbe8teuk1oMU7AiztwBqQrX5iC6zYGsFVFevmdXQCjrD2ly/6aDYhnVHaKvlInn+7y5f3D+ujlnU7wdyjM6e2SGtgOkV3OxUFPNikeFNy57vQV6SgimeNdsfNSppzZLjqZNf/AMo3Eq+mpNM0f4HaqGNT+taPf+SJM7KOSn0B7AtGq9KfTGtetS7w8DKXr7KfmKugHsmCIaf3sC/612oM8605J+OOq8z9NY0FAeHuKM6xHWLqVxpZNK/gvpLTrxDW9dfriHUyP1310up0V6f2w0C5rTvDZ+u3DYawk07NzLk12k0jv09Cn/rCvOiSKuLqhxXu0rrS/wDegOo4S9Vyj/DQAgz7t1M7zt21lLrxNBOCkax2QNFDLTR6Vkf9o0b2hszqlNYgGs7em3S7xdIJ5uMDX5FO0xSt76kmzaOsJTxZXTjt9xX/AE9pBHsJcrvQMoIrXXD++fi4oawEunP2TfY7dRlKxGw1Bp6qKgnkqj6L2SXb++P7nYNmGt4S9kyZ6u8pUQNsi9UTSrSKhqcaaFwfq7k9aynVdcJS9YrocoSRJ3Wuydlcf67wd/hqd7gGdZoP3qutNdZcN1Ro0ap0zhO3WE60lb/cTWto7Edm3O25BNsuH1nqsq6A6CZYrs9rKn1ZhenjfVZxpKDDSO6TsZp7YblcRNuCeLzV2nyK2dsN/wBi6A0dX0Sjrs6tm0GQcNtKH6YKKIdqXHX5lG/wHXqnV0AmkEpBUkMqe0uuv/LL8Jkaf5Axra4yukdEbatRcoZTrY1esE66Jj0Du9mSx31J2VtjetpX2651OpOf1pca2rg/qNbdMhGnA7e5oN6K7uMkjRdsjREtO1pHD1UJ+ql+dXCn0aoZcK9BrXpim8J61vJSksuutayq+vkUFbyXc1iPbLOs9QodbQJ8e1nlSkYDGsZbEydHD7HGHC0UfX2297CigpOQZNdYd0Gzi2cATNVTU3KZc+IzqZXI3MO7p6KcRoVKR08tMzsbmnwrfrdEXoVrk1nJO0rI/acOod1oqUZojkRrkkNEKcjTTuiUXejY4S9UaNgZ2ZNgqfaJEDA61g/9kqVsr6aALS811/Q17mz/AHtueys+2nn5rQGRsMJaK2xoDHcg4Uu86ra5UT19ZXUvWdbQSsPPVgk0KR+FdvM1rW5PDGTs5VbnWRqZdNLrOUbnRcEAnG1dMrI7Bn7edUr0foJO6BJDs6bSdFJ03jyPUAtrx6uhR9Ra80L104VuVI1dbXY6xooRKS95217jrww17qH7K7J8xlNou+oDt9nTuk2jq57TvIpiNJtkMXqZ+/nqhh5WHoKo55pUpJMv7IYvaTXYqcK1aZNDoxEe2A6NkulduvY//CvmL9uo+6Fn1Mmhwr69cqiZNh+77GtZRoF2dAyq3W8Q/GQ2ioPrKOIDtH65Uj6de3qpoMK04zs3h5+P671uRX3zB+zWGqnH91gfVx92Y6/BDrp39TY6XdGpyaN+uu06rx3kz1Gc3+ULsUU7Ab7eBXplfYdMutqGijx1m1MKU6vhPs0kgngOG/d/9rCyrnaXW0Rx9DOx23nn6qtAEuwaDxCuu8BU3+TvCXp6HWlZkGk0uzHfbWdv2cdjLhSOsaOyYAe522eiIa3oztoTPP8AbSZ7YAUuGqmca6oYarQUfcxdGWNM51YAxRQJH3sUteWHim/Va+vsrWh6NISvoL+5Ip2w8rDf43KR2XZRS9kKOwusfwytUCodfNhPi1jS5D1MFBw3LpUqyh/trNNVrKOtaxpAWaP8AKEV32yXa77CJhoNKC9iqP8AK9kT+rIF/bT7UbRVRUNBNIMrvesdSqeGnJD7ZrqLmvsOftCtANLPf8B/1TzE2aJ1vwN+Js9admzUk7xAkSR2uEvXRejWjXXR7WzOw9sqtnmmZF5aSupNco1NA6N3/ueliGtZafZyD6tHbd+VQUyEjLLR4ZtUB90Drs4T/uO+pjL2MqmXTNLx6wrxMte2h0ci5oAzt2QCvUyaV6l7qgF1WSvY2+jiPjnXe3E29MJAdAjvD0VK89RdYygYnUabfUCokyqU6hRMuqdb3Nes4UdsPrWkkivdO3QJTl2k6z7NFH5C47X0Dwy90Vkz3Scah/WlrqNffGeo7qi5AkvSMaH2zrpJk3rOy70hdErQvgFO8QSl7HhnWZ3krO6ydTVGSduOsDp4gg530M5YstHVqZpYDlEn+y4u1o5aE0EkunqddiPpnFX10ktbuk9N2hJrYVrOROpONV08iaZ0bO+6a7SWNdYd/wAh1aO1dfR6z1bV4wzxkliEMOVE1aCYRpbe25RgE8kVMp6aXsVeseKqXUzRHWp5Q3K11rCxrqXf1UeQ/S7JkMd0shISozYNMD7s1rYTIhgkq5dPU0Pk4ggpRpMZ+ukrydo9nR/0zSJi6PCjSYS6tP2tiFLs32Ua6rK1v0tRNRRW3OWSpwmuw4z/AKTK/UYSNYTuQwnrTjEsy5MSTrLgPVAFziWqrLk3rKkfQkKV2B48jPJVF8q9UmhnyBqa3Gydt6J6nUEnCQ2ZdOjRX7JL1ntl8n/bT26l0E6CldZd9dCBT4J23iCbbl7Sp7WV9aXIrq6ypBKxoZcANKV2/FNuAy5W+wh7TjQGsTqoVX1TGgZzW1rIErH+taQ/k0j1ZzdF7GjwSj1Xf6FepnbxMtdFFV2dCfXWDo81+6EQHSUr4VrGhc2T1oXeUeedQ9U36NG5po3pA2OeqqSk+AaTFA8KOu8HwMn/ALV7eYD2Uimlcd7oA+ptRoUo2LFH5lTs3n5Xp7BpT/VDQr9tl07wV9wn6mafIWdUIO9Zre8APco3O8JD9PsbyqJUIfNZWvVUESkZXBejS0MGySZ1gvbIVqgTUu715eBr1K600VS/n4CwLPsyCuFFHV3qScXUgz7KrsnNaAHWs6/VAGZ8qex1xoh6h/bSybTDtsyo66UVqjLdBKvusnyvKkZ1nnfYV9hVNCaK9UZlVQBNdd7jRvL0i4JXh++iEm8TQOOzxa93gu95L9nc7lTLpfMZK2ZB5Sx7W8Q8cTVZ1OqLrYZK9umM++djSpR5lj2HHw9Hqm2tPjRVdsb+qZFaoMffBrW0Emc1tNNGlw2GlQDTutAlfXRPUR/BwH1wPuZSdjV79nN7r1lTN6lXsdeudv8A6m63MtCtRsPQlNDtdNYmjeT+aFMXc4VudYD1B2bJwAUxNvXHz3JRppkndZ193mvt4j13ii0Kem2nU6TU6zezQyyaevbe2uu5nitaJblb2NndBr8cHs7T+yjfV9FqcqtJmvxakqt4STuW012xrtM0MFK47NURAV2SUrsEmy8n2sTfoS6wNDmjAPNVqa2qoGfv7Cu9NaN533Ol37jyM1Iu1kSEXfoZMerlbqTahK4jpSaTj95d1rCkmevvXN952zJsEWpdS7Ux3OxiWhDqRGkH0ZN1lyTQnJfbpJC93VmpaJsuTKoNGRf1dVRM7e60GHvmEhusX/MdTPbGloDtoZU12o467w6uduNwZMDW25NskydNYydtZ1NOiiJ3ivYMsP5NkrMgpo7pQui+5ozk5fuTnLyVKJNN8pWeNiMkyuPKkGRytGniuRU5KGGnj0TtqiprTqnsVqpdtEf2a/ZxXdahaOiPeGnp9a2STOhYBxDsOKTumev+XDps4+Mkqm5GWks7ToC1Hq7kJmGilgK3hD441vRj7oCQgAGUMqiqTPa04Nby6d7Q3Pmu0hlyBO+x5SAO8qj8Gl6uPmgKN6ABpUeuxqY0DDcu+qSaQ/cJZNZY0bWgClpA1CVLlDrKPsIIOhlJNBrbiqtHWfU4AB0ybcAJZZoXqmqUOuysJ+vVitTtiU67KJMrlSjXHRdMr/XWMmqMJ2+KzoOrTSv9RJ9XbKPtq6zipU1/3Qjo14OIT6rvzDj27ypVzXUM8rsYT5oaPNdvti+aYdSC9jzKpT39plZe3hvaAj5iDWsILVZ15u9aUD8M67aM1unUia2rt1KprBP0/wB8l7PRA/xHwNLvHXXQa7Cq68DwSgUnLo3vA+3mjq5+SGTCeYiUyfHeaeE/mB04I+Yn2dKD6UbBUXsMpLqKnW0GnauFFTgHTqlHbA+zLs7AgkqUlUKr+ijvF8BH6hhsfPF9DGgAzW5wWQxpqUzQu0Oq1kz+pLrOR3OVR+ZNdtjX9tZ7JrHT6SJDpH1N7UU8RXsA9dBt3o0+pnn+Fa8VSisUVA2mO9edlrWL9dClBhsolB3p6nYc5J3Ron7eh9nZS0BQXKAg4BVe9ftrIU1r3sS6N1rqaMD7ekr7mynePmJujClp0qlDLqt4Ue67J9V1UdVdhKyKoSaRJ2mikp1rWaNtAAMkyiAwa64mkzWzeO11jQchq6CtgLOkNQ5K+7DZvPdZ217m9zvFwnbvDz1Ek9/sewfb2jVOmWnWMnXSQuhQ/q9fdvU9rNG9HUErPr2d6P8Aeu6xplkzX10tPbqdd0OVuZHDT+jpawrtIvp9sZGcBNqTud5oJ3kyMrnYE2b37Q9XIV3WUPXZM63sXaBK7Vo/1PqA/VXGSkM12GQlQ36Plybz2ewBr3B361VVWmtS+EtbMNdtDRrZpDeOpn3QvVNM4fqZc+is6dPXezCB0jPuit6wDxyNJ0w+r4P13kqyOCe41r8mhVVH06vbthodjRMrjJoxRHGnqqS6N/8AJytTtw1KJKnqnhp0APYK01M0O+1EdcKnWsKTtWa7Vt3pBiTqVnU32UKrZPXTnK3XJ5tq5DentlUXIME70xWnrlUroPqoT27Igdsdeg6JHDQbwSR0Iv2OwVKA0VjrsjR9sA/ytDIUl05GpkMU7dlf+QO6d9QwkqVNV6pRpkJ6lYUL4QzusqqXvnW/s1zQLxwEsS66pO8v3jKYiL4RTjDcjuaYO7QQwFSTK9ftnDyPaqrk5CesP/8AL7MS0i1wx27YxJLTEutVEjS5106LSZHOoSJUtbnGameuEpoev/0rto6m/wCKNuoh6jkgS7gXkXD7uiV3rKXoo/mG/ZFd7zo6KSKmgwHXbNFShxtSs4O0zSOsbR65NfasJ1TQ0tTrqP2K6jOhZreJ+1hopySne6/AI9KF5YHSVUz7VTU9WZkhAoUo2zROaWnRPm8E8lrWqwoZA3rYzqNAWrouUpMhCUQqaA+5VSTqfcJlneKeZdsiBU91SSaLB0apVNZ7vLpqdYRXmuq04G16td5w2z7xvYrqJ/rsrb7tVRlM1uZ2ToqsvZJr3Wa/AN6w2I51EMR2GGvV0equhGXzaqvUg122yu3NJWgHVaA2Y6EwppNPnZy/KAinW3t9cPKdb/zE9NCn6L2dlL9c2n52B3n67xn7VNP4BexrJ1epxl/wDwRSncO94qUKS047qvT+04z5vGe1eMm94O6d7dOzqS4J+40Dj5vWl04utmdt+jorH9XOyTt869cKKnWMvUytpoK8cKevVKe21VBOwSCHbWbO2pJe3iU0zmuvmbZn0fNZQeK0lBgipiG9Z+NOTT+JKDv/AK3sZRBdmb+u8fdOG+phL64SuP8A2dVswENj9tOM+7zzWC1pzsLpUk3mgByn3eC0+9kpMLHSVttB15uU/c6m+yL23hWqN6D2nWtYO6MK7T7deIR/V2mnedWacaKlztoAEn6qbxp/0FHZSV1P8wHaEnmsdoVj4LivtZL2NZ3NoVvq1kq1p3r8utdXPKns61Jko71KVWsU3oNtVvYeLOvw0pjs+yfejWvt1w2Lo89wQl2H26rG9mC4/vvhrE6ngNe5H23vYvglU6rU+i9qFaGnRP22E12dV7vJQHb7DhKBuI3OsU16iPkqDOWJOH1MJF3kvqruR1G50JX/AFrSOO5rePv4415iPjj+lCr2CE1hGl2BU6Z9XH3GdGjrJS4S6DA+xv8AOzkbduTv8y7CdGlTYoAntONGVR4ip7hO5lzt7Qu2tom/Uvu6VdZ2OvUlDWSExrGWq7Z6T6up2Ph52FNuqULXXm9+47r80LhGihpmYd8aH7smRKa7bJPsqpVKJqfDTvcjbq5SJTA+9S3L7qKCQezX1CmfqxWq9QrkQAg3jZMvYtr7YSvIJAN+pqgwT+Q2T90XUUZ72zxn2fYckSuqalVf+8I6bcDb2zaJKa2JH9mmnSmIdJoNXJt1qjDets0VSrulBDQ52CgaHqmcST128rahxLYpR/8ALsrO6QlOPsD4U8lhoeGxvqkpusvjKoc/jCqnIl4zqcrVR1OohBzj5ecdPXrhuZOtcsOwmBPfezuF9MaOrOVT4vHyrucHdaKpZDKonKoQx2eZVdZKOKvVzqduzOmhV6KgoY+qZt3RnZEciiUa7DrbX2M6hvK2PjrTWSntZrZ1zR39AzQmWuxOPUzSeVPvY0bVDKpDzsTO8px+i1nf+QM1LoTyaUlAM4xKRQpJCfqmTIGsvU/Yds7ygZAJXldEGpk6PVgT+xhJ2FdyY1W8rjhTbSXrKX9xn+QJyuA7d866Jooa0sU69qg+qJVZuwQEl9mkpchlrYyVLWRTO9giY68zYvjI8Xh/xGUZ1la2TlAazQq5tdGGvzCnzLGd6J/0F/V/3FfDNu0CXbvrrbmiQwH7ZpKdsDoTzUl6orZrtoo0oM+GtbnRGztSeAJvWj3e8D0cHtvKnQhCbzarholxGtyzKBtpKdM/hiJQKkG8V8XYV52ClxoMDfrrVUZvvnjW1pN471oERMf1pT9rJSZcQEcR1odE9XWhc2KaqtinhrNfiUmp0z10YVrK8TGmtIA12fV3hPUcge2b7b3SBLjpGcXX7+6Gj/TZM7Wnt46FzZ2MKr1wXxZN1vJ3SuEmlwE8V0dcdqYbHWNbnYK0uMg+umdgDJgK+TIDmzej3rpk9ctR3RtopRbHAV6gapTXYTB/YftoMEBMn6+li077Pgj75pXSzoBUAzfmFLTLWl1n7iO/SvBXVPZ2zoydd+2VqXxEoMNbDCjftSMu+x4PXzqGuvjRWs//AHUU0JUm0ewwmFa4/Q+28gDaIIOVJto2dvF/6T7dQrU9sHqbPaJ2BoH9sC9f6i0B/gKdaMN63lHbbnIOsaJAP670bHQV1PFXehKdpPV2L9dqANEydeyyOjFw35nbrPin5jrXnUNI/rnV66w//ZAO+j9r1DaHVVQre8N1PtTqd4VrWFFVWdnZo8cU01kL1Vp2mqAkrKLmhNf5jpnrn8YTrERzTrR71B2jk/WfL1Wg9dCUhrBNkiD+9e0mAmtr4Y6a9dUpnsrgClYGq7NPhm3qUTR1VK37ivUQpdrs8cDdrgDW87Ot1Mk+k0uNfhjT/bKkqTXUIJbdxoa7V7s2ThP2MoKGciWUltNzoe26F1Ja9prY63jrt5G5/d/beR9qXOXytDBUJgBOjjrrvYT13ML2RJ6zWOqnLsaQZ+2TavXCia7M/dlFGkI1X5deeeaMJfdnJrUuuqYnYV7/AF8hJTXYq3SeFZAM6Gj1HXUcuyZ85Ku3zrVPXIm5a3xW/mci1oxk7bw5f/oq8n5MqXPUnga5aOOKrtU8naUKzob8tHtqpqanRBdKPE9aGSpBxfzIg/jXJ34BKTWz6qs0Uds098sI+5xboXOuxy5XWigfFEQXcgt1OT7JtCZ1idnASXD2VyR7OMvUxlV2fXQxWvuvs7L0UZ1KlDjl0mNSV1Jh7NMBW3Ghl1NOncflAVp0qi4G4diH2VEdMaTXZ6hnLxdaanjnexRNa4x6BnUfMdzRovZ7omXHbO8EnjN9diLCcnYhE0ruROoeY8Y7cJCQWTellUMuT3TpkTQT0xZZ0k7gwkkdyTO9HI0tZGlytSUZcz23gSUxkyPoDO06DvfHtkzl0yVhLMeEiE5UeBhslMs2yFq6nOz1TBOppPNHpOsa26w0TvCtT6ArWdXt4OqMdOtJqHRtxRNDR1HFR8jyisvf6GgXCf8AE3RvCeprKX/EKTa69CuoGdTTo3rNKifhrNs4GijNm95vVGgar0k7dsoN6Aa0q6/WtusHaanaK7JDftHbHZKnY1t98M9ac8FMdUaKr8AN7rE+swKb0P1k07TWKTPkvX3FV2nk9jzen10t/wC6rRIYfXZmyQ2Aftnm8igrrlSNJinX2Z3yaa8/ZRrWL1zrv8E7bzk/qUM61s1sM6ulSTX1FdObDeOyXF0eV/UBdTtKXtvYeCpTlbo83oaNu9Yi6cFmsp/zDRJjqpxEAxoNbNTtDSgM7d4yvmb0+v60DqwaTemtdZ2S/o0aHL20maGeuTXui5oo0SbB/fSt9jDQes60YqyCSNmuSg/IBMHS4n1HGivyq/3B/A8J0knfZR2VxPqZoaHLoKALOvtWS5Gtby6ewAq4f2QT7C9jtjuZZJ+0rnU6iNedWNFAVLqlQKHGmVzY6UTr46DYoyK0t6x36KB6GtYyarN6jzsuxkFdsrOjqeCzvYSbp2h164SM6zW+xhL1Nnk4e7RlKE39t4n7RH/5ddt4V1/T+qv+5S66sz5nnut/bx+xrK98wBdiH8k7bEDP7UmVRrqK1PbO2nWW1G3GkmRJTxTqezSSrR/9POzPjYNE4bnwNiGd/wAMKd6arVCtdUT/AHHfYVn0QlU3sn9/zWKa8NazzZnYKJy50mFblM0z7gnd2htRCvZ5ZZrKeogUsjiC9nqICoztRp64jrTEjJr1qTN9ijJnrG2eSJnstd6EoRdRBTs6rdanRtZu5pl13ppqd1oYRKwk93KjpidLu/JDOQ60aQaNNDWhkhdHF2vtknU8Za2nHHXiLzsj7W2jXi0JILjO5HB/xqep1N5EobPwnCSfc4pKpG6BZwladkFA5O/2mv8AMD7hnLOgJaBrbQPpyheTyQrqHXHfUWXsg9xSyYE7jXZQrYSzHmdhHfIfbRIT+kDWsAk3glb1yb/0kHeEM0uMu9pX8d4W68aOub0+8f2KcKar12Hh4ilFy0E79yt5I1TuE9VpZ8ezXkUgL0KnEfdXK7vI3VMqMy6Cq+z4SGcVAMqhT2/km+wRUQVKfavFK3lVqfSjqYIjr+QXxthdNvXzf27AOhwonsk0M7y9sBhXbSVXpnJonyFerjS+419pw0HVmQAzSps0rj4JiGgwk3vK0SaTSOCO9pqiweo67bjtjrZOTqmnB0qKf6howl04CeMbNBv1MiXbWVG6DJ3t2S+YvY3iY+jQyn2zsE+xxhWUI6wo/cdjrBWUShr13J4Vo7K6rChrY0ku2iQwre0dn1TVeHU6iJoU6rvDxcB11yQHWG5olXag11+rp3t29tHVJwnX61t3jtdZNCu9hOCGbWd4U61i7rQ113l00lZMu1ZElrJexsZfBDq5p145ulcFQzYus2bDPU8it/U6taVkHsUDJWFO1WX0wV2HYNLtTxn3b6GsFreNS+KA7DVDlaEcfwcdFBku1ytr5NfuNDtE3h2lNlHUzXrokB2z+Y/virKMh12qbnXtJlITrDelVInGhrQDToPGjNtfYRJ8ZfwB8wXaPg05181h7knVQBqjGSq9DwnHx1i6Nv7JQu8Ndew6HSrs37Megf6mp3lr9U2BvD8xVHQnbY/9E8hR7uXGk+2NV5j5BhISqV9dB9nWVKTvOOdYSMphPo5U9mnIkkXJkp6pTdVOOg8Z1WAaBZEMjW0Lo2jO+3hPUcZ2tZGjjMZ36w/ZkN+Ymtb3+i1qQwX3T7Q4AG3zquItOXpnSSoro16AnXF1Ws5K9DNJQY6a7YPd8Nh7sVz8reEr5ivYcK09cNJ5Cs7xTWTuZ3jTsAPEH3xdI6d+Y0Di7pc7JWzW6azx3h+6xn/kP/Q0fVyfAoqmq09SfcJQXOptWV67zR223Q7Ma3rS7Axr6mRp9yZ3S40O9qUlm/t5f0rrmvPFGzDdTTlSdZ3H7ta+usK0Z2QNsnYxBPdCAMq4alMZUyv7AEHZcaPN9XtKO0yQK0dipaVHRUHXcNIQyVtmdASbarW8JGfZNHUa3XXAJRxnwlqe2jImo3ouKnyZZkEk05UNaAn66wnuIEBWnkmp3ISmtp9hwozsNO7vc7IP+eUnaQrapgPUkVAWNz2zt9ZMqRXE9DB67Ro1OSfal6eOO3Skn+9rKAE7A9vEzsgADppniacIJKKT1cd9ismRpyqIFeWlc50dwccV65w8b/I7mXtsuC+oTD/M8bciBlbkXCx6inV0kdvS1DIHaYUzJOdtzSFP4MpUjcpsGt0Z23VAyvjxlUU1fd5HTN1WQHUMDrty5le2NX16nFIcau3sa2PuIztP3W3c3rHzQBs996phXVFZqyjImgNNP8XhQht3Ya5K6SOXf8kTWFAicnW6aDkso1w86oqbNhCVOwodDxHVBhA0SdcQdOGydrJPpO1MoerotidZN78zkk0aNHjVG8B7I9k5NN0h5D9CnsjiBqsR2ovmh19RJNO6NUoa0zhL2lU1OmoRMld7LQjtlPnYaQ29Q9E2LmtGzTIoSv2Gl0sIyOO6jQ0HWVp2hp66D2c6bfJnoqX7pxU8Vf8AKH8yTrXjSbwpUDqaayad6C+zp1utL4Mt2CbmkreHusPsu3fVEN7wk3rKRkkpQ8ihO40P6U7dWLOzi7kdb2TQ4qnbO3rhQWCmt4HoY1sDCip8/N7fVw1rNvVzqAJJr1dUeCAa0O8XrrOzRsH6+6duwVNq61hQGPmTrfYfKUKX8ad6yJJpQRcKT8qjsbJdqqAAVut4y6aziWwcZU8fXWSnWtR59cXWaCge2pBaJBkOzSM9gxNaQXfrTUumWtuUvV06SdJ+6LD97fVvGnRnqbzWpNL1Ry6dkhtkxfPB98KJXE0jjvtvGvrjJ1FFU2Un1exNaRWc0VJtCgM8n6gjWs39tY6a3hXatLS+P6CVQPXB0jjW61i9dZtTDWsP+0kloJJ1rEEJze6HGipEdBtZ0eCTRmy5XA+v211TZW33tuXaanWD4uJ1rxd0zj46Z2usKa3srqy5Wi+4GqwXaq6MNdZz1ok6kWps6gFFBpfCglXefoad99Jr0Z37uda3nu0V2aNg9idd9Ya1pv7Vp7PV3v7dQ3PYUdZ17Ds+vua2bwU8wnW1lCt40dtlGpdm19H0VTqZQqmewI78MpRwTOu/E0ehsHb++DvPOznIiC+HudWa7Yrpc96qrqjbQ7U0SYSnLVsfXe02uidJKaDqfms5aCVeCrZNlSjQm68dzRISltM+SihX66J0IgKa7eKO6Cg/V2o+SYVsddt1STvea9MR7eFA/b39KPr2yaNO00Vq/dgan0K7b3Uses0Ppoo7Y/VRjkknrmvQyKqti1qu2NNAkpRgSHlIyOFNUjVzKbN16krLOCCQ81ao0SSbb/FCpqdIpLtWussFRPrM/gyPhKm9V6G4l6zud7afEcKY+tFFSr1areEG94WduudtUOO9pgnmpop8D7O60peUl1vGmXCh8wGqpyzrtxGIbLt8C9NHaaeO1eBLlt4n/wCVKU66sVqfTfJ8qbKpYXA61VUS1E0OuxOcWu1LU7pSON32KR5tlJ+SdfKd9q2taPER7Z2H7F0lGGt5QFVqNCDs148k+ZXH2d4QyNkJrrkztbxkZ7FroCjwnGaeQcJFKb2frT6Adv1OtLjoOqU9tLKayaNic8r6RP0x/shd9qAvj6z2yIa/Ju4ojIoutoI9cqiOOl7FQONNDWI1IYbadlHZrGhVQHYp2CgopKzun7xOzeMS3O2QrFSkUVlzjpYZo/HCgOuPo6mgeqPR6toIhL7nUHHqJKqrg7XbSGXVHH2OzvWNHbWTt0IMtGTD+ZXiMtVtnCRkzX6k+fbGXsVnXV4UfmaCnNu8AkcLKrqaAaxkJ+y7O2Tt24SP6/WvWnq5OTttyUNuP2kUh12Wf0wtnU52NelBYZMzFtlPWe+UBqy+3YQ1NIEnYxpBnN/VEo31zsVOXXhprc9cV7OB2dYfuNHY2BNaPEA344UnjtrRlaHWKKYujYCI5vT1Hw8Daq/94r5uaOrvW9AAG1p7AyetO37bAHWVQnXH+pkP1ox3rskuvfAyvPTrulGtTrAPKzsIAzrYBoxnQpSbcNaKz3ur+UbjTtwGZc/PMlp0Z11RvlSdGOuig76ohoxlJ6oJ4E/bWNf9NbnwT7Amvx8+uefma2Y0TretRvA0KXO5wpqtsT6uMgjm05BCQRyjXgv45VOzR/utOtm/ttXVeiE7FfQ6ni1Xu8it0L2JWXt7oVJ3k77A2E3vIdb3dbFIWvMJ06Q1rYr4J9XY69V29goTeKdt47DZXunGfqACUmEv8hiCu4NDgGlGTqk+VtCR04y71la7ItIGyihoE3WCI6AUcTxXboCK1SrqnHW2QOs1hrr54JeFKesm869fHQ62T2lcKGkACjbXbafiGNI7Svsy7ddUr0M6jLuJB9pTeO9hgarKlND+SGK+J2RDGuzlmx2ysGytGnt6yk6neb1vRX0XCU9wGjKjbgebrSb2i+ZpR2htyva0oFG4e1aLr3bYUO3R9k3vPky2aziP44TIkntnVEpXaqy1JrqtG7ues4ouwGXSyeUOgHKladTKqq7lMnRJhGhoP1y/J2bdG2h3If1FU15+dqIr3qtBrKl9nGg8K+01GEk1NDT1JEV7HFBpQkqtB5umtbdlE6nJnW9MrLWI/XJ8UOrVbGekEzNGjH9FTtVOMpOs7fVlj+zvqV9SvLky0Dseeg76ixPiZA9fXZWNepmz/IrsKv8A+ydvN4u5dQbr16dvLfRnTvQSK6a3db3vjaGGJHG/p2q7KCcGnwt+zvqsM5ySGnGT+aTKiv5qxCJnXx+SK4XqV2rTz1McfIYVdRrOKmuPeTv60nKRykZXRNkv2NfY7VhITjG6XADsDIrIStGrPQKl67Jrxz+T0c7BsxCnw0A5dPXyJl1t0A5pZoSibnTrU67I5arsU82leuF9YN3z7WieQvRk0H1e3YM3v3B/dlDtrrN12xEHT0ARpmtFzqHRGpJSWAcZO/u0oMr5GknL5OPptrcypFDvDrRvD0QAJ9346j+uTuN7CyTZu50iE6Ft0Cn6iVTWQhtRX7J10bb3TqPsJnTzZctk03O5etfWBCvdYyP5X9RPdjjTSzhK0QRATW0JrR1X0JCuyTo8duoOgfbH8MNHpNGuufrIlC7x2S6J7SdtmhDXmAFNY+6A/dZoZ1gE7MAHze6TAR060YyYebcre9lUG87emWb1ro1RWdAd4oVoQp2ldp6ojPszudNqBo82v+BhoXJfEz3e00KOj+wUlClb8eoUK+vvZMnaeuhrc15paOxsk8Cq14NOwykaF09DOy1o/wCOKua1E5C+ub1SP6+3v+oKSbXToD3TyyM+DuerO2Eev7rXjs31wqqownfjo11w/d5NNBhJoGvDWNCplap6jpp3VDUyCnITgfVC5c66fA3QtoPqdpoP6QmR/hi9tub6q5pkax9mdobkYRHGfXPasMnW9q7nzw25sTQSAYUU6CWXyafctR7YB+52euO97X7SJLcyduvWfBZOuL/qgTo6pPpR2zslGXOx1pmc/wCjJ/6zr4jB1acv9lzb282hkSLvEZrebWeue78ZZNZPug8Todfq5IKudvAx2jtepgaESTquAOk69b3jSaxNjgHSTIEntiCG7k66zklo0KBOnRtydj1CnWzfngalrGgnSa/cDc7f8XCVoc5NdeqSD2U2dgWt4eDuBlqXr19WlEBRqTavlyppgkk2n23mtUVjrfmvNYzp0uv8NtVnb6qoi0bUXNVk+U5vZs3qZM6/9E/Xsb7UDQtupk69cKWnXZ9zvWwN7DRW3LdSpNImKKOXKuhlq/NMawqmtpbdaa8CSXYKa61ibQRTtWNJFOBVQChKOK1Rq57GaPEEoKTTK41pcld4UB4s1IvWPMU9wP8AF0+NGzyA7axEllZ+u8dL7pDeE9tLW/tWEjLRcshRQy6CRk3W9icaTWs7dVMOvYlmn7S9NUVhDvtleT4y9N0US+cUlIv/AOUdGXW51nk6zf6ZbRXsOx32Q3hbb2xV0kG53nhOsrc612HWL+hX2PJD/YBEPZOyV1k2Cz5+bk875U7p00T2MKXcnV6icYzvdP8AJPUqDr0YlErKSZ88TNdaTKsWYRO2kjZOtd6yJ6dmI5UXd0Vbm15GZ4oJCT/2OSJJb+Q2d846uuKaeOlXCo60NB+4P/LA6qDrzXWporKl7Oro69EpnxQ9zsnmFBABR/Ebj7dRQlxp7edX3tRLvOPsSZ+rkm1310OAbzmgrjrbLLIkvnWTwcTdYr2XKq6n1euhm2Ozj1Z3nUE30OnnUqTDSAtNTprkZ04VNPbKlK3ilSyFLPRJ6+YgV1mRa9s88a1JpE5TSSVrN1W3DQZ4fnYnVCFCpsTRX2806cRSZwkldxJvsOn3OXe5JKl3OaYnIrZjudB69ZKE2BISpOt4bmq3UeIkJrNkzpmQc66QxF2Am2cDvvIfPfO21d04JICbZcNa8nyQNP2wTZqkK7IulV+3pOgQXzEmgpVEz8rtjrwF3PgbPU8wO1bQScaQ3hTW3I3RWRuvcDTWRuWlaKNkduztdeYytaynydAm1dUOuz1AZ8wdKP46XSeGx641s86rvAH7KbrGkl677CZK04r20nUwUreeqaadbwREzQz5TtNG8D33Ymkk7bwPRytq6djjRpQ0yaJ71ujXZ2P289HYKrky5IG8KZreWnUMdBjQeinbbNPfx8VexLi7FF11M7YyVU4hNIdT0Q1LmtUVj9ns7DO3+l1pzsiI0rtEEwk2qfqYLvS62ZT21KV1M1Rc1kpSi/ns7XNBTlKu8H6mdXe87bQwBXQKzlh21jXnujysfd70akxmtmIzLk0LLj+tH91Gt6Nxv1Sj8R0+U7sk3ocDb2xHt2JpK9Fk3luzsQo4h4m0dFj7oEJwEwGJJFDSj2o36OsA0mbRAtD6iszK6X6iHd2y9t5A+1hXmsBb6i6TXYqtHh+1tnw2QyFK7y1a99/H8EyNFYuzN/ZMXaZ1Jl2+mD9stJXYddGWnm2fzSH5n9Z7B9592TvWgWksqdAnXeGjru/sOhdCxW61jvtWaU9Q65WnzNO9411AGiXeM+4h1NwG+xv81boTBVTAJ67aGtns0mKU7w+rt6pbWXOrEZ6u80PEOTX2dwbaV8zSaMKOw57qt3TITkU9d4h10FMzoaR9qkAC967ctPGd8KKn1PBRD0QqhxGqZwg80ugl7bHS/U15R1QJmsaF1nZNQNbQLp7AlfXutLDsD63ib/UWvDXmXvsalNs5Y2aWdmlnqucYbazfm88J2tb24Ua1gf8AItevVl7CABPrE9lHq/gDxAI1Jl+6rLBTU7V1NPuCU7w0bkZqpIxnquzZRon3tjT2dFdfywPcmTrMg139sKk1EgiXQqZdM11B3SsUyaznlewRB1+1zqupw/SkSimjIuopG6GnVpMuooLmSVb9uX/2Khv/AAzh5O0oRpm15RZOtVrQtJsCvpsplnGhkate5A0+auS9yO5nG1rbO2HUkuhZIqXGe1FY+ddV33RnHXd2zQR1zjGpms1qgXw1hS1vF3LKnWnZx9p2TUCZfKUfXs1WdSqRRaNMlUmFMvXESVSkrom6+mRxkQ1iPVolOzFOprzqvJ2CX+Vw1VSqrLOXo040lAg9Rwk17/yZOhNLg9Z9707ohd+smyZsfJOqy5Ms1WRr3H2d5IdPSernXfpUibbiorylqdkUjrFrsp/XWldbwF8CHdYMqmE9drS68qQntibSijdAXRrRW9dcNfWRQ3hIO8JFd3P+MPoCPXR2SjH83mhwGza11/qU1kDt3W5Af1Nv5vBP7MV23T+6MDVe6Gd4Gjy9bnK/submtie70Lr2kHWEoKAdUyF3sKFNvbsIsFDlM3KnHDMoymt51DWFPZzQhsPFGnuSadGAdclR8aNmFf8AHJfXNafKUrYa0OANbOxvWWH4dk+oGtziOeH5+O8dE6X/AHNmzHQuOpfVTzIoVHepDO2/cAkdrTpQ07wVty9fbSCZS6EH8ytaco2uATOze3eWqgcM/wDz9p3S51/5MK6Wndbbr1pJ2jjP7nlfj+GaGttSMuAEmq0sssjhPXYojvDenCknTQdlSQoy9E+wgFCdjeRf+Yun39+2f5vDwM9XRNHZA2K4v1pLrS5Nb3hqpNuuu8FcNphO63iI4r18X6jk6A2b7GL9hxAprGR1g/8ATXbRgtKhpXGp/qSs07in1NBpy5R3imxz0rtj7rNiuQK9sWkVnaeG6reb9Fo3XvDKNNH6uXuo2SJJOG59Z33MPsphIKF63nv+dUrb6vj+hiEybrdfmtT2ST2hdPaRd6yv7Sh59c0jlyJ1TxNXRU6wo0bpexqaakEf8E+uCdvYgiOszP0N/wBa2dduXIAYiVod6UHYbP3yncpjTIGI9hzZt2fiNHiJf11hSmm0JHANDlJQVlBLK/jtqg2k12oFomiV9xfAZn+zhAvYKf6PUo9PJ96smwE2lTqRStgszqkRQ9sf0ilK7G5lx+7pPPqy6fBDGoUHdTXm1nb+SK0CgCrjpvQ1qXCSu2MvZcNNbrbT77/gdj1113iCGgZ9TfZxNbcmhQWqOTClFxFnAJNZdPcR5C0ANNKSE+E69GTaMwAuJ7s7fcRH9WTtMqpWk3c6fKoM0a8ddXIlJdzJM7yJVV5d0HUEAzT1NRqkvK4ztt6qG+7MZ+e5OuhlgsrdHmk7BaOny6CnOVWZM6jRrlD+Tsdf4zeVy1T2xqNdc5Jg1q+FpaIk/mloetA/JoOVsif5eK6PjzcUJsv8CuusfQVgKaCvp1LqpdG9ntBrTt/lRJ6bcpKvWfxCVgsVvIo31xCpwFnbrrWs1pR4vNSVEkpk1qSZX31r61LL0NZVB1p6lz711PU6kUb4tdmmQNuDt2rvZIkz4SL2fanWFHbWCV1SpQrYqjiSuwkp9QidgbkuYXqY0qYSUrjUv5J4GFFOilN6umoKCWtqTqfOqazt1o2nY3lKusa3VBHFs3l6BA3KQfkLgDJnHc3VTKiO+oHjJ5i9KAHt6vWthxU+jT9sikNPddDs6u7rrBrX2KasDSa0ZVolMA13zs9qUXsGIOg89ck29s91rEGuoP1DDRWsVPwnSLGq3h5szQnZT8DaujX2w36Yb27pdGE6xUK12akcZeuhkVUGN4SnpFbpM7FSuD2DI8BWghzt4IACuuw6Zd7wfNKbnCjoifmnsSabp7mt7p2Up72/ds+Guv2wn32qZAzqLpKS/RT0pacPtbLpbFa+xiq7zzzQd66r1TWJ+mEoZ/y1lHaXYqGiem6zt2N5/bJns6SfdroMZ8HFCqcXZvN7/XW+2UG/Tc7nCe2t9ilxOySRqdgydtJrQqCbA2pmutGigBPGcmtVpv2gAARP10n1dFAFMi1vBNC2jtIoKpzbU6fGXchS9XbRtl7Iu/NROt0uq8U3pwRKwFAyRN7N6NEhRmgNZX9fQJ1LKVXbNqZ/2BT4YrmvsS7Cfq9em87E1vGn+qaoZWt7UNGmfXHZOsif3GGnrMxE70/ux+s6yqTJ2y1lnmUDMzgotP66ey7AnR1ydHmM62jO9OFPb2dBSgdfdesk+aw8+2K1S5OxZz6layqPHI37jSpo0U4u8RdB6oKjGmABxfycPa2b99qgrZG96deYmw1R1Ezrs2LvTho67QD6oLo1+aa3tB1O8deOLt8qld4CivZ/cfsM5Na2Av8AiPZcJ92yac376bdqT9jBJvPEc7dUnBEnLjtKkVuCs6nXWVP12X6dj3q797FVVM6MkDKk1sKRBadoRNVvfstOVupKCfqbJCdtLOtD2N5AzyVgn22bKaxWq1hWqwpqtZYFDj6ItFToV1pTVY6AprX+aOoKdNyB1d5O67Yz+ThI0YiXLlL32CT7jXY1mmeP1Bs2IzOnZ5UcZ2YCPs7o6g5Y1XZ29fZFmsLfDHr1HFUYXcjm2tZp7tANaore/WmvrhSb0b2VgjVCVVSKf1EdyTTydg8EGXP2MV69Z4xsd6f5CWjVGP8AUct1O3itmTbYmkhqqV0Sg9SUbUtpuip8LZkpiGtb5V71jXTQ8fIU9aqd8gVckqF8Q8cjckSWcsvJT1OPUkx8aSFjDi12E+q6QZJboGdDpUaUVjx9aDe4O0jgCIypWKs0nVqjZL3BKpvedu1GaGhxlZ94hCsPztjp665XrtYRn2q16IUaJD669DK1vusHXeKa0ca7CiUXOgyKauEGVPTbVUxNRpzr9ceJdpMpKY0J1ypaigg1Dtlh+sygrAdUwrY6LJTJr/M3vaqdTT/Wc4t+j1GmcZ0eTTW5U1XvUIcmgl3aVPbAe2Au5T2dMSQKN/XWRyD2xWxcufC8JZ9yq1LWcctuxkaKevUEQ/MqtHbCmp7ZbqXd7E2HY7Ym6Nla0ZR1d4D13kUs9sK+xnUEoa1n/IwGvx0VvLXxSWqyf3BOzg9a0bXaj93HfZE9pcJ1W2v30Pr47dpPkuKletaXdUawD9xHfbA1TuPV12PZw011x2e40LrO2pAqnTsUASj3ZQUi/wBQFarNNUYDNMom1F2oRsHaL9iN67ZX/SSdjbWrd9g2407E87YqPrtGs7MyObem2DVef7U52V8K1hR2xNCDJ+nX0zX7v3Y46URfd5vUmKTrCSdUrOjNjWdnsmPsuSakzqPr1O2aN5267cEqTW3ZoErthOjtmlreWoylJ22Gnag/a819d5v/AIlm5NMFArRJWn+vpM0UgOtvvuIzoOM0KVvez7PomnD+2s7ImaSd46+rj6maoc3uTGhSQ+x6/prR+4bKRivMB25H4jHk+0MrWTLoHs1qcqTsVjJtpnUoh7Xj4awfsKm5DCnTqBA2GvQf3CvzIX7bF7IOp3geFYn+5WgNTJrxHWsaaByK3SN9We2b/wChGarI1+AfZy18RsYyKOvZ7boMo3Tip6mxduynGtGs295DfrpdS782Zpkdu/3IEUEd+O0DJrbOmQfdLvTU0mzzwDQqK6cdv1T1QSuxp3J1A6mNacJXE+2TIBsNI577jOvD/wDGVL23jL5ONI6l7bHHQ9Q2O85aeIlDWs807idy77bnRomtZDVV6+zo2dXGqJwrcu4oudpTUoM6nWOplnCl/Gntsp7epWtA1uuuK6JbqB9JTbjM1RQUzSKdjZ17b0CiEjJp6vYMKKmpwQkMTr120bEunzRe+23fXyh3psCUCQNrY3VA0Ok0VvDVelSjvJl3vJlY1lT9d4jK4IvVOcPksDSPcb7XJm9cgvcByJ+zoAUNaknLWeTS7K0bD0P6qRTocrSgaPUqvyTRR6U78UPrk/8A6c6nTQlu68J+myddfTs9hHr6lFapdV6PbtoqdzjSyys7kCKIax6a2fJrQmXbU6onttlqnkkIoJaKCZKHdeyr/J2lv/4rk00HYiq7afpAHV6+TsWnjEtpaU2tKaLjS0VRTo2dkyvdZoXtjDQhNIGV2j9aa0P9p64h4SKxrCvumca1KJqWnKsdmFMCDfniMzlXRHpT1NNPXsybkcZ2bGTylR8zWvqugXPJveSBenlexrOOrKoauqTSJZopE2072z96TG0bnA3rbTJvJk61WJvTnTutZMVPbUbh9832Bpp3C9nd0f1BJkWRE1sdVnnVc/rTpPptfDQy7zf4JqhyaRVl7GFbHKPRzj4jjaDR18upAjARdH+jKRKlXJO0oD3vvTlA70nUdFGtJ46UdLgFepOrVqeyVjvrrOxpkH/WEvWmk9zS1vF07z+47s3QM/18dN7CjvWK/UyddAxN+jvHYOq9nY/ZHCtTpo67UDuobrxZ9cqTp1TQaIlGlNaw2T2PV7HYKKX+vvJsewUpl1vUpRUuS7VNlVigVqEZdtMrkmzaroxr67DWtpTOgVHKrsbZUGmlJVd9QB2hhqnyk83KmxXxmhE1kVutrX/daExBneMnVMdQAFbnbXmnH9TB99NAuH5jvsGMn4+o5TvSJ6OKWyPjrCjXUNtCn/eCP2z11p8XHxHHQqteEia0Yoy5Q+UL4JJt6qv5hrtoKJ0N6qTRoayjYpBqXDfYB+rK09tucfpnbZrDf1C/tWsdvJIUO9YyMm4KlTPey5Mv9nqztx1a6FkUOt1ihuSqOwABtwn3tgL7jT1dP2nAXVJvsuVP+YHmse3mp/rtX3szXawxVcA6mCtBi9UwEql6/wBbE2azb1N9uwi6gUdnhU7QZp141ud4x+mGvNUpOx/NMp1ZwrVA0I7HV2GMjpTfpiBO3+wbNPin/FK0rjrsbjQbfE7Ye+Y72oezWlf8PzQKi5AV7keKP/4zt18NnYy/dgbQcquoC21WSrXbKocdsjjX+ZQqGbd419tK+awHtopScd9QQ91jIrpp7ga8cJd7X2nTWpnNtTW5VdZSKCa6m00eWdkM0S6zRram9zh+aN73hI9XCSaNVWq1jv1Kpn6g9jTtoTI/sKb7bVkp2p5prsaxfUWhGCao8woKAIPMqiEHszumdebqjZq11KlzT2f9Ncem0W0Uw+4rUpHbP+O8AQRF63hy/XziJ8rL2KM21ORSYU1TjMoimqVOImm8mu8O+qVue3brOVorqibYNftGyp28klXvKrq9sg14xPWkw/thpFW/Dd0VfqOjBJpnCSdZO+k6ZTtqK2GymRAo6ml+tOMqAs61hRKYV25MY801A9tsL6EpJWKTpOfiKUw4OQpnCKK6k8b17pF7A5OJjUZx8TBSnDB9x4BmjHiIJMINVTc9bkCX3DgaUI4nbLU+Ir9tE33fZn7adBRSUG4Wip8JE3lB4ZQXIYSu3Jqt1OTLoo2dd5A1TQAUGOgXEQrQdtZcrAFP/HBH14eM/j3l+Xp6jNaaSfK9BzQWbra9s5B6m2HquRTMy201RgHUplNu6VBwl67xmXwnf6XFHYyaOsuIVROBrzNNI5NA9mn6gE7drJpwnwMQ7IRK0rYfmRO5N+Dm+mWbkMkXzGtWzjonriD+lBWpTzTGpNZO0oCtDlU9/B1oy5aoWZOus2fmdj3Wj9QCdgfbx2TqdvVliT0yg66F3KIu+uPi6mmkG6OwGhfSQpWZdqCkphvQYy9sdFbOzTkLNOKvIGVqfCRd5MnqimgQodH10PVax/3W3aYy1Os969it9ups6uM9pZStyOA9tBrWRqp8JSVxNGnqsmLukTfajGfe2EkvgddoUTjYOsmutawo04VqUWjt5OjWFA9caB7CvbauhM7JE6bXbhWzSLOsitKlr13g1ocFd7JeroAlT/Qe2zHRJlmqkbTr6UaHN7cdoYmr3i7lwoqRJNvZdNOIppNBrKr6myh5jPV9meqrJtMVnZkCoPbTrKCt07JBx/r4njrtoz/vJoAl6geTLNbdLXQJZtRFRCdGjrqTLlkdwfUoU06++tPVnZkBE7ydL2xEraHu0nVdh12XF+xu5KGQHWl+s9V2xo0oZ1OxK/VVdV7lvX1umZA7Ez66BSa3sx/Kk7HXN0SaF932P1HsLgjS5sZDJ/suIGrwoqe0xXZ0qdQOxr0ohcuXtsitrv8AZ6lJ64UjVZ23SZB28w2iOvtp6m9YzTPhCS5EvQrA27d7gSI1ydsrW3Nfmn0Fa1sR83l12na0aDB0Y664PY1nV6+B/uCFeKA4ypgJCYIay0LUaO28v88NjtdtYCDssucJ16b6jgjIZ2X806QFfV1/nX9rL2gYe/nK9Jpzirc+ni4+Ur1/DEGjaLIyh22k/q7Z+psqjZJ6Y27DPVox113i9u2/NaOxvqkhoHfbeMu941pZWRTV0zZhqnw/t55NICxvGgjYy3W3yp1k/nqNWIwFCRqV2B2VWuoAtSiyddZO9Vpo6uVR3nEOqkUdap7bsM6mGneLvcKDJFTP4HTSxhr1yN9uuXIz2yP7eMguNp/Wkf26E0RIjWGjzGdQznFFNgc/H9iyan+y0k6Zs6+3Q1Mlzt0s9ZRqty0DNvYp1Uzi9RMuS6NITS4cZvslFTrNvQy7a6rGpAeylThKIYbTYUs6Zv8A4oimmtNaKXdY09vBdhl0eiUpvOR1S47QrIEKpLJjOxt0S1QjxhrcTuQpidtZUzXXbyVMvaIL5Kpd7N3SJp5GamkWrJaDZIT/ANkdUpqR2hJ9nJOlU5OwrV2HXR+m5IR0oLi6QKc4p6yrFDKinVx+1AAm9b7G2z8kZfIICUM5X8Dskub29c7+awq9pjJ6HZr65ejzH/V6L9he3mdf+WWuzRPjok9ck3vF7mXJsk7alcKaqd7JNJPbYFEqpZWzKsNGStOh12+vYJ1lhX4OvUoKka6BtrdUAH+rUvIbrVMh2nth9qXFGfV3Qj6GmV40yf3KpXNOic6qdsvX6e9TAUkKlA07K9uOr2AKBzWqrWu2gr3RiBObUZY7FMvXxWEqe7FNcqG3/O2DLRnieShOnbNbC1msmpn85dSzRAp2x+s7O202Bp0/amgN04qLtDqqvoZt0Tlj/imdtnqJXlbKUnbJK0lIS7msZ1EoUPYK3sx/tjvq4B9jHRox1boqTwEDzJoTeKnmGh9d19QHtrCt9gfFE0UmH1NYDrDynGk9ydm3E7QmTvU766/JfNLOq2WbyBJ2/wAgSGdt73bucJdBg/uFkuO6fdBS5s/CUPM2dlQWnJjbtN9XZx9taRDtnYQEZfy6JlWU/FfNhtk2ukzsdzUynbbre3ZreINYaftlOk0UD2WpXxDq5NGgx2Zrc7wlJ1g/9VRKYptca3vU0TO8V1tK8wNA513SmhpMsNmpTXvXfiJJrDT4IpoDQ46AMZWdpL1caCgH7AZpeqb+w4a1QL71DTXV1oRsrrojR9coNAHm3NlfXHwMLOzmjRgu9KnbWVQuf8vDXZy3tLi9QKI3rZPSncxqnNvZ07R2Ugi0dUJlFlNtMgSbA/7wKeTeUh+TXYqW9smxepsDr6hvK2UAfoK6dhuexhrZtlKAZzSos7ZdtaragvpXanNCTsUpcTQOL7smWKVmXqy9ijti6wlBcB/ukouA7654Omv9cmtSuOkFNa3hpGQWqx3PuMi9shTZldt+b+ppoKmk8O2Q/Vcqw1amhR9neKs4umddJLU2bTOujT2Cs3umh0VtdVrED8jU1qmQJrKjsgkshljuUKJfXWsgRpy97E/rK5Ml+k07DBKZ00omNGiSkaofApbNyahYGsmiaXBAlWg1eKl7yqpUCn8O7VMqtHm/2ga6srTrRadMmaPcukqYJ+wUh9dEhWqzW609EdFCC5xz446veg/Jy5diS/Wd3utuTO3bWpQzsLO3SOTpmcgKpCdbddqqNFS6HD+ugTSE7dhxlO8B6qsBIZ17OE6CcJ6unqzbgHUMZ6z1WWlUkkQuaPcoVIyw7SCbAzp35PP45IQt8NzbIGM9TeX/AGN1PadvDqT11QwXOidnnlRRNE5VdZ1jOtISMo1B5JdImEmhB12V/qOdieWpe31M191ev18dH6IzsncvlQH2JXYIJsGUnstLJS7GsJ7JvsKCa26TXL6CO8KQTJ7vJSpueoO67NklCUMS6jdLtn0VnU9sn2Vx1IS+T+dmd7qQew66e7/Eaey54gz23xlinifxjasz0PEWkzq1RpvpKM3X8jKW9jLGqyHbrE0ErJ27jThJ1ayP9xO0soI7FfNG2XCXWKS9sNtawTqroK21/byaTRnc6u5pTz0PXW0KUreRaUmFanY0EtMU9Xeia3nslDxOuNA3O9FreMjfbLUlMnftZFFeZ2FBK1k6Xs1T2dlDTo/p6D2aCvr6UOnA2eUdh21o6holUWpNq9fWQkWdVLvaUzm+2qJdArK12zz3Xb7HZnxMZwn6mVPWDZLtvLfTI1vT1ZwewLWp5JA0nqJvJ/TbX/RMmCt51faKlZ1gM16yoOMtVpJdGAO3D164+ONdTIRlVD9yPDrVz9sJX3K17gj9sq/eubB0FHVwo3nXxMZ88N9dr+uU70400k5JvHT5jP2oOPeqrGe+xE83K0Auykzt45KH5IG90jrPDWgTZVV9tZ306ShPeroxoscPz3tocF2Z23pxo7aWlpBl3vH+5p0y7HsuTsnszO5yaKnDVGzQW0dTsUGijK2vqp+aX8K9ox321gpOm1J8Kf3B312oyou5zfm8NbNdQtrAHZlLoyZOzutlDhW50kHbeC9sXSub/ApJnY1tHHjqkTSfXHXlZ2KXRLvH+qZoqkNugFWkzvNiBJ5jOqZzuzVb/knXbNbnzX23htrau96PQpNLrNp2yVnWw/zNDWsrcnj2f2dVpwld5BTWMqVhPoKk6MqXQ4iUGGqrzyU37TsrdTo0oGMuf8e2bdVuz6yA+AOw1lDscaJqVoRTDtr0kN40AmTIAZoL9dsuO/HASfAP9sRNIddADVD/AP4YhMbd/Xeb3UmVvH6z4SMlPgm9M0GWDQ4fvZj7jjK0y3VSTIOl7a70OIvXGgykZ9vWzNfZm2fvslezvRS7TxMVmjU07d/lFY9l1l7NGK+bNJQtLLo/epQdmEPUCXemp1PYAlMjbQFSammrK49DqWTDTswAPaJqScuWE1IOqSnsOQ7nqSB5hLXpetC63NUkLvTHXdZx121S0VWSe9cqTrkhP5zmrE29mS56jTE9utB9KHCmcKno6K+qJLNelK0As04TW0yKjWjUldyTdDjplQHqrc70sS62tiotDIApKC0VMrxidmpOtKUdQQRHL8TU7qdsz39FJTGQrRdLQSykTK0bZzloqpMK61VZEwyUr2euC9QwrVYlj51oh2KGl0SSlHZl69rAunt1evus29hxnt1UlVQUM/kCXCsu0rRFDRLa/YxrNPrh9k12QBaLdpJsyw3pB26aClOp1M69vwlDb1/NXKyzkj5so7aORMk7AtylaG1gM9q3fZmgWiVGRo2X9eOtzQmdtvkD1qcTetdgnvi9pTDj9Ag0qzOxWY1OKfuI1Lht05pcZB8qk3hQarHVGsddScNTOi5/Al612S5s3NfbaEpofyfdBq2Kkp0UCObns0F77TT5WzaIZy+xrI2ShVIGI16EoKH/AODXbeLpEVocIaSiZZozSToZ663dIGFjPVJ19gBnWL13k/4Y+a0U70thLuaE2WoZo66xEdZ1eoZGppFWUQOorC9HT+azaUSa8HJfRanRieBlu3R5106GdsjvKRZkBJDE7JrQaw2V6Ub6oP4FeZo7G6sTWL+DrtXrLsyqF0RR/p/ZMJClxTe8ZKNJOpclrWlPNZpK0v1ExWRQPo1ilGeE9V0TrA07WU1ol6mjyUxAnZe/49AHbZ1fdeE5Is+RP21ko7M6pvFZ04m63hO63mjRnqOjfWQTVJjS0TnXarYSmlJ1hXjs1PhB9XbvtsdMko6lcUQrD/cFAk67knGPfSSaHAQFK+prjnrOsjZTve67LPuwNnXE1Jvsu91epNaFc/zTumsqe2tx9pXGUMdEgAp1US2c92oao3hRrWddq4SfpRvcYTt81r01qtBraZ1CpSgo8SDSKaMifrhvemj7CL+TjvsqLtxlHKOsq9gDBGkytjn/ABBNTQM16xnJsNgOtLBO3Jll0zrTjOpNa3IhR5iBQ4vi5+730+u8hde1Kb12+uQ6rSv5KSo6qtOaZ/FHdK9QRHWslMr60mbfM9fqmvNLqjJXtjQoLvZvarj4bQSXOvYdEvb1QM2AiigYuq2Miji71tHtWn0U6quctblnD1HH60GI1en/AEQpBzS1p2VnU27JCUPzYP8AmyRrKGnQUwbZndLjP18md6y5CpcT66WUpQOtaypEENMjml3R+fY7N0ZpQR2squn1pVkH0AnrTTyylFESTBoTTTyUqBUlXIQJ9sftOB9Qxko3nWaDaC+bZl1U79OKQpcstpDjpnjmWUUSBBwndOyt/kH2c5Oq9sh/5ZMC7yIO2zs9dgQSBXtaq5dS4qyTUpBoUU203OgnrAYFL72WRezNdc12goZehGKdWQonex+hTL+a7Btxo61WFdZN8nvI5OxBa1sYnUTRUv7PLMyAEJrQO5po3teKhEw6zOgog3jTWtEgzrkuG2MJSdt7raUBO5QqerKiOGx1ikyocnenTtNqHbWUn+EnYMuYiW5gHlV/ulEyVWy00bgYloutDqXV7T38Nb9le3UpGHXY/qlvUBTeygJM6jQZ7vaeSbnVLJT9a31kkcKYud7e3htntnY7IqdvWp/wpY9rkDdE205D2UZ0GnkobDLCpNixpFLCsfwTip66qUK9aAcN609OultRAje6chNDiq0FaAE318iR5NLQhrZXoyVSIPVM7BpWexiJLtn8Dxl3w8XTjZYk7ColUPU7uLujZI1pAAzkHtuQ3vbxr+RJv7WNVvGd1hIGB1n3xHr7P3A+xhX1c87BhXlGF3U9Hj9HK2hvoVK5EeUKvdMNs40p721Sh7vOr4551RAmtBuq9AE00aFlGfGpXzt2UB3K5FFcbiuu2CaHLX3UbZF7bdCDPh/1jt1hO0x3pTb3EKF9DrtZe06w/quegLPsoKCGXoPHf6VQ60UqaHHTTqZ3XXCn+RMd7xpPwV8HZxotHk4aNK2Uu1O3YK/3F2UBPudTXsgbMV6rj6g+HXNJLmtS7Z/6Alaxfdr9g0jrWTop1Wx2C0GX7JOXQJqZduB5tT80Ug517SOUA5FFdsT1BkTSoToU36r2cdhg73OaCgzqVOMs8pRslB7aRb8PT8HOvb9NdcEnVJYusFXCf3I2VW202Zx01SvI9tSHtLgOvaQkc7LUoTt07HeyWe1JL1NUBYNSlNYT9c0GEv7j5ID67JNOw3RtKF0ni640p1jrfie6XZ4iyGw/7JN6xlade7KnsiobeTLnsMhrSIBQqjTOck7DORSRAA3hpEwr/Vo/qad+psEmitjrxMvQS44+6x8d4f10dtPvqe7/ADWlewBXjVdeUkfV3vb2yR/X/TE/FhHe7FRwk7bw9reaD0l7SpOuyrrWP/49Nue1I5Pkqk9Qcn93jrrvD8FmjSjR+o6NZI1SYbnZmuyOeEpmtVtJ6gFUe4HbTlbGc0dmhPOwamlztOkQ1+0AYuzZt7IdiQrCihye29Yy9SA/TEVXF7BOOvMEXEa9Jr6gMrOBRuWZ1PjudVhXnqH5lTr0Z6/li11GbqQyNsTtOtK9P/oUhquwR24xx12819dhv1Wfqa8Naf6uNJWsEl09j6uG+ykv18K7TI2+0EbnxHd4ydeqzqkBqarS1NIEnUM5JdLivbeVR2Ft34rqzRBTsVn0du5JNIJOuP1pZozjt/plVtJAe1aBeWuzPbjnXFS1WcVDNDAP1PSnf8Z7eEhTSyUJg9B2UleXJVNYCC5yV+a2a8iQfAO7JtpR4pWxxn7OmYbLz+tGzsji+abJJ7Be/wCxTt1YWdZmdqlrpGqd+8YEbeT2Xq7OFp46OpTJreorXJosblWKZonO4tTm26dD9XdL2FkKBwVh2yoaiuzUsCy78M2ps/I2TSyZD7ppNKm+rQyOqKdHXI6kkvJxEvchIpEoopOy/hBR66adEu0G2aLR3yFBtpwApnOr0kw5Zo6YPghutmIusDp+D+jXvuLuBB1rZR6ru/wpkNQ+Cer4oU5WuwHg9SxEwrxwe1Ktf/RlYPEaZkyB6+0dfsD10tSL47EoXZg6VTTowkFBRreC0rk1saZqp3NLveADs7emwSocNG6J2qZRqiQHWyfrLWMr2xpk0RW3F0Lk+zrEwncjnWv9FSdW9q8E7Bk+U1gguNHoFf6yNcndvZqgXXZR1omt/qh+Ok2K+OSDQ4Iwq/0KD83lT54G948lTyE4rtlqmq0Qzk7qXSf7Up+523TOMn++de5269nJoJ9nyayNyiiy9gRo1vdZSh5FP1ErWdjxxoqtIb2ZNEiJXU0I6cJ1OsraAdtYO/EpVMN6dtfXBLcqtz4p0QdEglA6Oxt0zsoxkmScPrJlr+nlVvJ8/JV2SvWVyWt9cn/rGvXcT1+2CyqVRreKMeBuXZJ2Kxex4bY6qBS5HhpZaoBCqQYAcuv6mHoh/wAyQ9Gc19QCQnb4I4+VgistKS2RyVpHsu3PZnyUZ7LZWhqXzJkmc7G1Hexyd+527OlPPWnogToz8Ez9c/KNxvsiL2c37RhL1kdEyaFJ1ieLlO698aMUK1nsrsC5KxU0FCV2NvYwCxsZ09iZVFZ1XhRpGtMoRslc2b8Ap8Nbxr00UOwEDrjRM6Db5idtJr8XSi4fht8HB8MJ1SYy9dEHWkfzeA7d0anFTroUAbX7ag0G7NDiimzysBdb10c0uKusPXYz7vO2tBt7eOzGmaB9d5oBzQBlJ2DFRpzjXVIaVcJddV3uQR7azzRh6u9VK5W/3F+usg7HqjSHXsej4ZVoLk0aNb92ea7KaGjh3c6ShrSHrRMhPrO1APqiSa9HqaAeuslWtN0m3CgnwRmdP5rLamSiOVvQtBX2tXllx5DsAy+b5a+ptoeM10GOxEDw7OXc12B7awdfU8K7ZpU00bJU7PbGDfogixpNhtlc77BwPHCmX1P+RUP7g/Vcim7ZxNs7GYoltGawgZB5A9Up9tBVMaZk000MotKSHTkWi90ihtWZB0IMmhGZD+vJ5FrM5OuiYHWvKr+KQBa/PJ0YDS606EaNbWivxGZc7BJIrsBh7SvVI87OvWdfnEk8QD2m5pqiOWdXJc6O3VDKe8lL3JgSmXxDtOor2UpOpQ1+Y0VXvH/XQulyjfDpJJkSkoQ4pSndyk+Gw6vYZ8mWdgVrW+pT2yE1oik8NukJDtOezSYSrvIpPrl1+ua+o5xohWWHphI7xpAwgbKZlLznvrqVo+oA69ZDk3LP6IkrR2Cp1r7O2pmepx73tdWKUNajAJvWMv6JfZTjk832WvGiPxprWRpkM0M7SUlomuoy6HawMSuCddYrKK/nbE3VbvXi9loXevs0rW12SDVbmQmj3OpreUquXOwArXuVXVXCkO2dm50FfURjsIOyfSl8ylOYoBfsB2reV+Oop79UO0ZOwVZ3RWSvbstayq3Pn57hISoKymC7lKRlQoZMdnrxyA01vv2xlKmkRlXqdVz+krjup1h9QG9GE71s31ZzwUw11Ml7Uy9vqTgJrcp1Jb0vUgCSc073nY0IyPuIviGuxn4bIfQbR1kAUD1Cu2Nm/AN1t2uddT6Op1l+yZEhozz3CicVfBn+uVROpw1C40Fe9zWxrZ4DVd00jWLsNSn9cQrw0zQ4rP8Abso6K+pvsE0hTW9zIzvP7Ua6ojRJrtkKU5Ui9s7P49b7m9EvbHQbSus7Oz+IjQY7nw8dI0b65FP42Ffh9QAoT29bDD/vEGgdjZORuVUpP2EFcpd1jO6d6O25hR3QGRt/FfDFWTFd+qBsSd6WeuzA1l/QHJ8g2JfuA00o/befuga/ygdeM6HahIZsRM269RJcPFSlTWQErsTSYB2dafXOqHstJrK3M4V/q0aXHyxxvPJPXWtiNlbjfXsgyVhXZTPd6y9diiqC2jymUAzqzW3z1zq9nQHbYkrlHUF0UbB+2UhQY0n4VPX3tuTAa5O2EgetM/fPGd5G+1VnbwM12r1nW9nqIAINp28d7yq3I5b5oQrWG97aNi4L02Qj7hU6ca0ek7wU3OUPYTqW9cPtSj5SYa040+Lso65D1llV77wp2y9gds6ZXAWxK2uV76Egbx32Q31neS7ewE60FMgNaJNRR4Ogewb0rLT2GCA0HrrGuvpJP663tar7axRd4SNOIzLWSrxqD4uNJowRlBrezLp2GM6rtgrtXlSycWSttTuQLlZEmNfUiZmUR7HUpvc03KBIz1gB33nVddK1IGsalrrNoSSRxn9s49MmO9dcmTooJ1dvp41W0xGpM2TKPQlNMjXcYaorE6Cu9FVhS73csQ6idzvCWt7IU7JCVsqRqtk65KCth2yHdJn7OwHrvLFrZNfXthLtWaJp3Uo9hnzzr29NkSoU/wAaHJRE9MKZ4gGvrsmT8eIP5VOVO4hezPevXLl0YknXX1r8kKprDc1ecs9vAnU9cZbCSgD0WFliuq1hXaNHQrQ1PUdCmnOzdbxomAx2G8o/JyIkjsXTUkiKdWSOpLVR3NaHs54z1Jfs5Ghcd09if6i9m50EodWY896qqUH+636NDSi/ZcfYKaev43TpakvdMo2TiH7hXUrW60S1OqJCekocY9fCDbQTUmweu9V2XsElBs8OrKk+NAmNX2Q9oZyXoBk15m/N5HZM6smsdk7zuVIZK+Iirm+qGcdlnt7v650duUBswkkNlNm8JOo4QC4qmNBvbrqSQGly6Om812oMmEAT/XIpl8uSp0HCe6qaHeNOici9QmNbRxrrTR1eu8nZ49fTZplMjdHtonTHbpwo1oDwp7fYnGfdZMhrSb+pt0A14Z2KVwN70Cz7td7J1KSy73jLUuQ+4BorENslb8oj7GsE7Cut4HSpH/j1ZvrdGJ/oDUutEyaPVwkfVHY4ugMDdDnZK7Y6b7GzZh7NOP1QX37PbtSD7rZGoKNvhiE0OPsifyKY626P67xPthPfWK+YaJ6gGALjuZoA1vPD9rTXbOoG8dknWx6mv3QEm3cf2XK27vBXjMaNbGv/AJ5dem4p6jk7r3KfqSPpi7nCfe2NNeD7FUaaTdyFGpN7C3qJhLPVLntQgO6lNVRlSTRWAG9esgzIoDI17t7utH+B2lUHRGFG9Dr+zGqk0jOgNpm2ayqdbbtiap69pGijtoN9dpolSEDwT/AK3nbqolfqzJX60ldQkZ0fm5GX1GSkpk3vGmVGAZKz9e2dnt1wEQN/apSSvc35o0TPsjNaafq4b1olPsIjIYztKENaNPWQT3ywZ0xKJmvxN9p2mnwNzj+zjR+juhHt9XP+O8qdSOep5QdREaTHeSqIqMjlUdMUJypZ/Cdxo1ua1LqVD1987DirS4VoBVRMaBMp8DP03iDOQTWtGuzjrW8Ha6DSrvshgBe887NZrcqk9ZcKJRxaKdTPji6/SnsGUA7Sfqb0kOp262/uzYPVqwRboKBa6kk9jbIyUpi1rWEp2XsMGU6kQNXVMPXe5r3BatUA3t36HHMTPU663rZ5QlddYUE9U3reD9VJrsGqn65Um/t3duFExvFBdE9qAJHk65QwEYCV2yvfyZ8daf65TpKShrBAMgXQ0vZypma9saexEvVKUmfB8cNnk2k62SzW0ndDn/FxnbjG53nHvW8qpAErc7zXaEWO3UD6nVXqbQDmmmlK2idttSImaW1ypuqzj8rqwlSa5KSCQWqd/rrAZ/SntlT9u42tGyfouFAJlUTHdrfJQC9QkKiZBuuyjFBsHSbOOexUkShtKEVoU7JJW9RKSzjQdt7WUT7QGE6oy9QioqIwyO5o7AzPiYUz6lDTarF7xnejHfs4T9NqASZVUdcZGZvDWjZO3xdZtlXJk7bOr6D4iE73Dx7f1l7ejrSbeqYQdfLpZNFPXWRUlE4gGdhqkqkAW9z5sJ2XTMgnm6HbrKoaFa7SUD/hbcvvVZndSsDijJqztJJHulSpoRlq3UsjOV9bVery9nj1ReoBl3FKmhE9Dc6HZrDfYMuuvh12bzqSaxkXWKDIP7vL9oyHrKJa7BrSuO6fGRkUkK7NLNmuSpzTVSnZr641veFJuUpkrLoTc9lAa49UITrxP6umvCWJB1n/ACdCnmQ7pnF6gorO2vKZw+qJ1evotOsl8BDW9lPaRJ1TjP1xPJMO824LPiJ1ozbAGQPuwUdKTWslCTa/bYLb2DWys6iuzU0jsXSaR2STW8NqZEsmsRPqgeyEkjWebwk/cI0GKlbwUlXRrwVnRsa9OrO8A3vD92ytSuGt6yAo7Yv4YE78kEcVZ3jvbgMqn6bxUo0IV1xDbWIkmRsrs3LaOE6JMdMm7CQkRQxka9AREnq9Un6oslbnNnbQ+U4vhgs0AATvEdotB2Madk57+GwPdmtDNKubad52Tek7bMQA0C731TThL2XH2uqUAQFvQcA32x9NlCek/akeu5KIN+4T9jWvcn66w/vWmt1lA7zq0TJU1VG1CdYz4mDucD1cBNSb0hhLIqyoGAAgujSrOnFZjwnVjmn0Sh/YHtsmQpVlB1C/60t7BGN4rt077bzTTtaGQxo0ZVeSBrehArT60VjqHL3IItaMdJiFOlpI3kS9PX+iExqc3v1pzq61iMwOCULjSmG9O3xwpJ1iFfUndGEiDjvq7Z1sx/HCvzRS/XF+uwENJX2dCfZwdeoCYePnVdufp4J11jrfn4iRS7Fn93sJ1iLO1AkMKfEmkp3VJLjS2bEUnETbgfm11rU7p3l++YPWdJ/VW7Iqawp7YiT2y+M6ztJqhX3FSWsmtmRXamlmmWWNPGU1RqaxDW8Xag0JIDqtAOkw27MJ64quypSfA17l0yS5d6Nm1nwSaVaFBvb+MlOgkPrjM1e8k612OA9ppjtWnqu3A3LqdMmXBvZEg+8k+7NlTpH3rgO3OSVrTEtfpPUoeptVNPbAOvl7E1KDt7DTQrO3Cd632E6gBOsZX0iWlrDauMsdcd9iV2iZoRGts/YpJN9RNjua3lGt1hR3mGYDWE139T2hZTV40JpT7gUJOE9qMR6YGzbyz3XZrXjRt0rIia6qia2TrrTgGtk21rdUnacNEggzaYv6jW7CeU0gTNNtpM+ucvE1W8VKTGv5EcmCUQiSmnmmC+2diftkUAuctN1uZaJ7O6NGM7oXk20a2kawr31r0SZPt2rwNxOvyNqtE/Tz1vyDaJ5QqoAY/m8KD9bHRhQbMJW94L7k8g16vY9iWN5/bWO6WcUmfbTjkrPGXXr5jWgcJ3WctJqI4z6BnXqGaBpzqbc6pKIaeypNbD7rWGmlYQNTG00El15RPUHfrsRjaUaNaHezRoENbzzfnZpTK3U6wd0GA7RI612D7ehT6Z13isfXI/8ArdDUEU0D11eb1WyXFCVGlOoLOjBO4rQeqHop17baOsrIbMDdbxHthJGG6p2P6tUKI0aUmu0bPJUHet4IztJR9063hOvVocaAcBb3jScvVdutdXRv+vgz4uRQmlnt5is+BvaZYaE912Xye2QDPnV/21KFKP1aZBzsFNYodTFCXQ//ALO971M9Z2QutoD4dAlxUa3NdXqi/ueo7k1SYutb8PBlwPBw1vw11cmV/enU2dgmZalrVZrWnO23WX7xmCE6OrowFkEST1Ow0lbTbThX1NdTs52ZaMaJ/ep3FYP7YSe09dUD2DbgvXss9k2SdtYD1Ul1PVsT3KvX5p6gNarJfTGfHNPYrOVcdUbENdsVdLxS+q79nDW+mXXUJzjV7TifsPUXwkAM7dUHQGztp8BN6dhvB7Hlb7bz3zFGmcidHXNddOf55rxX3ouFfUze6GUHe2e37YOEpOO6nQyOjNk0ZWk7A6TKQfCUcH7ax+lbzbg+7AO1OVL2dctMiyCpijQYz1NFPu877TarIZNbk2/u86m/A0BgggemINTOM+mqNaStlTvr1XR7VZ2poMa2+S73hLreCDi/mhaGVlaDNugdG8dToyn3GX/ReukUnTsJ9LZnsilbNugV+xqg/j3kCJqg2YGqcaKHRQy6Kfcdt7xoDQ12kxoTeeM7x/uSWaDJX/Q+7k2FAb77MB7Eh4abPzfGdX19plpSfGf/AKZ/RrbyBGy6ZkkiWtIUVQY7RMiVEXegGfewVrk1iO1xtHeEs0ubHeleuklDeRspWpGnKkJ2J2Mf8lgd7U+zOL1TCTfbCdO82I66oCDqRwNHoa+uG29j+ds7brrmzXXNNHZN7qsXxcuTfYmnZr+07ewSYktY7PTszMgy67BuA1VbkMooqSSXu5Mn5iPuieso1XWdFrck507T5KUVOccFbo6+ORXWic16mWOthJU7b4Ivm47z39xlfcuRo2zZiJROdfxVDrsjYhU/VCQTq0a1JUE8aHIDQAl6zXaRwTYJJPG5KldUnrQ5PURVE2Mh7lj0XJkLHL0u84vZZVa2DTM+rulzgkkoO+q6tUjsuqt0g6mkpJ7Y0FKQnXZNS0j1O3bCdHZ5ZQNyGwxS59eVPUsSZyaJpVqtKFJJCa1vJOuhYalcs1qc7LYqrjK35EPgd/SDkr6pkTLMroa0/Q7LbPXGFvZRuQeWiJ3hTSGUmtpWgAOudB9CtDLuaneb3oyX69cpZN5T1hDi3W1QJUt0zoFd41/H+ce5lQSvc1+h2SPRGTOrRrGVscfxxok0e6HKfScadbZo+y0AGmUgQ/fCEneNPah4qW0wpmuy0BWuO5rbhR7oonzOwy1lUG9NMzohEHKZ67apTrmjqTkSjSodfCKDb4ybdm9dgl0+0UM+m2ia6h/ZRoqupFIGuyORW69X6qIaBBQnK3Lmx0p1reF/ZHZ2VNv1X6ri+BlUtBgBLpKXWBqXfV6jk+T1B6uVXnfJ3UyrsocQ2mAzOEn12HWXRNdVwEgESQER8HfY2PZdMpvAXeyvdNVpBXfbYP6aWeuECA9dSBvZoKe28K/1QfqkoawROqD31nk1pZE0NB7lW9jFPDDz1FVxlA0VucfKBZ3QZWrZcr03O94f1FFp1lGjYSk9RpHqddTVAprLCUTsVPmz0T6oYt9pMmt0aa7V4fQ1jKlLrwnPGUfSicKA1l/ZANVlf8Zzt2rWXP20LsO2/d5e6JFHSMm1zzTk73oJCRKp/BH+LTreqzwlcHtvP9zSgvZ1rNJW82bNs/8AINNTLfV/KrQp261Q+Fe72uMrsypKdZB9iHto8bDTjqpV3oHA27NH7iKIM9kHzeg3NelG+rLrxaVXFeoi6Bxo2bvflDVlVkItONfVAH9R8HGtTvHb6z/Ta/2dXVfy8cTUjoyXzWbfUdMlZ1T3I9r2+xrVTucF66Ff87e9sfa9FB0u9ZK6ciR9IDrtFZcZ1oEGRyZ/TE3OgnS5tTw8ETZWNKmdR8yVJmSxJMmVNgBYlm9Y/nkb93UgHSRn1JCuwhrTW1cNMk51f1pSkEJ1nLSS66+e3/mv2aDjSCs4xduMhOsJPzJlNma05R2/LHtrAUyJDeUgpnXWg/Kd0zMbxk6G+r+ZUfUpiUlCHtyUqFOsDX1xl7JhPSQwldZWwdlJRj9q9ZdlT2RrJnfuaFMfqO4k1vGXrnZ/DSJkzuejUyz1GCZnRSmnslds2odR+3Wn12NIGFLRnZNauXsmVUsjlwKViaQHkY2DWuudukq1TS9WyNCUM4OxnGTSJtMATSUSK3VT9nsfxNVxSpSo/j1NEqoTrmrXEALvTayOzVgpLvWdE/eM90xru5c/XWTXjWElI5ZRJhYukqtvZrrI1clEuNJrOOCWpxo05Z2XRc/0d01WynrVZx1TXTGane+QdBlUTw9MEmnTZ1zt3TJXrp7pSF1a/Yg2JRXXuUPbCn6OO+2iZ29Wo3vUyoCn3zb10srtar6qNeeTK/bJkKUuWaUZXY8eiTGTe09nRFCpTRp1Vpx7CWj7FM3rOpfIbJHxKHUrXTRlydarI1MmTE1tdI6NtJOWdmUiWBErcrkSUgrM/bHVDsEjQVvwmvByg/Bk0AVt1hT28ju1XZkKaGtAZ2RUZ7U5MhVAzqXCjqCSTyMZNamqWftSS9q7SRV+NS/yDhsQwNf2mQrs3L1KwkfF/wD2XjSpAajqino52ewqCmEHuM9R0gQ419QGdT2QKlyGv9ZH1Dc+RsppmmaVQo0NGgxp/j2FJNKOpHN7jQzWzUOvXtqlOwppXWxdivWuoolcptU3ue3bsq/Xe0GUp6qNb0Z23OmK3PXHb1l7TS1nvQlHYbVDyaSTTpcqXW0CZAE7BhOqUE2GNCkgLyKditOQi6ezNmV/YcK7Liei9lTWg3OSutuze3sm9itBl17i3Ummf0wRdY1qc7b1iIjgBSKfqlhrTS1svfiQPZ1qd1Qz2NmwQbQ5DW3rWjfjjeqANvHrN6nYUtbPA3jPb7YTqhestawDeAb0fr2xv6uyuoDtAFqijXZZRFk8mv8AuOSar2UqnVjrZoY2dXrvBKNL4YP/ABeoHrQHn9f19rYPWft/bHsu8KNOytjhXrsk21jWlWRNudiZXGtaRSp2E9Rc3ugU7vj/AGVGkcgGeyaaDGj/AC51Owq6kl7RXmRWw1vddsaGGgO1Flw3sL2fXOvcMVA3oDOyps07nAkn2hOJnGkfeN3WafdmpAVdpmhPb/r5+FaadgkpXbGXsOSC5KdkwfNYp6hWpddtA4e7jLkkwd/uus6D/dlr6RpHZoOuU9Qc/NAup7JacTs31MP7ObWu2PlYf1U7C6V+rgvXeQO946mROwy4T1rN/bZ2arGXTJ+BBa9TU7duEq7L2zvPTSn+Oddbc19tiDRtk2uI7oXehxU1WRopl310BQKJQ40aaOz264AGmweqnIdqMk37jL2TFe286hStni4VuQUO2cgUM5EhuGfXsRIJlIuaPQKAdopsKa45El6pmhGsK06Owputu8lWUBOqprrsKF9rrPoAvj47NiGNJXUZ9DCP3Ikmm8DdVSlTRQp29uWqNdgSU0mlnc6wPRWWq26OwPlLJdL5kaoowkL0B19xo1Rk0tqjWtZNG6cI7HvXtIBL29aDev4jsUh2pcl29S6+zCTrbnlgrOic5IYM7NSJxTUu0ocqtrn1tKyKS6cqtpgQ12eV7cJWclbiRuv/AIodu0zo/sy2/wBgbJpRrrS4cY0GICJxUVSt6uhCmuWgd0DjL21nQqcQmuodu2m16qRRXCmM7Rm56z5EKu+OZqWcTU9mK61vO8M43t8UQrCgkXZ1rbIyynE7FQ1OWJcoS3KtGt6njRKD9cK3sCfrJkUarbU1Tl1JSgA7VvsXkhtpZ0lY02OcQ1KpHXevf6k+HVE/k2B4uTLX2xk16w67HZ7SUofnYRU1IZE724UHuP5kz7tE1rD+wZUmhGe28YStZUz+hqXa1CeCdXaEV3Q6joN1rCeu8bDj7YJ2bO+61jLW3IGVloHQebRrXmEoeIgbO3VFpMmvapHeh6ok41/giVjRpnEdazr1dNS1LZEqdsqdDghXZvc1KT7IrSyadzKBudaEGtwnbVKigT9ciUK32JHLQmcLWeq6LmWkSXHe94a3taO0iPad4z4q1oEHdBgEzvPA0lm9vXeh3hWqw92IpoRPaxk9w/d4634z91OuqwnaUTIfbEb6hW1wdmsZ7S6DqZQGwB11GXtrLkZcK6vrO010V81vxif+rj7ZvWtH1rQJqkVcXq6NeibWZvGXuUOyd52EJxlDVX+kh4Y/bRjOhrIAUx3pMNUYu56m9S7fztTR1MikBCgUwTW042pdEqOE/bqkSvQ6+mOtYDI4QdexEE32xjqCwk+JS9cfKNa3TkTqnZtpxA+ruQ0qlKSrW8XWpza7cZK1okh7BqdVjTSSXT+BPQ2plSM5o04efo6pBpJVvYTh2+0oAEhR2TKHXbJFXcnUnVT9jJSZHO3+CbnR16yBVaMbSfYAnsVrS4a67w1tME7I6GRXr+51N0IE6xXaZVFBOdk1nYZ6inTNiLnUb7AO/J07XX5jQuDt2Em94xveKE4Pgt+/u+r72E9df6BIzho8xUBztqp20OsRTShWpxknY+foUT5lfi4Sm8DrVDvThOnK+ktDtkyXWnLdUYo15UujZr9wPtLgH6HmtLugzYiCPUkd9jfLTMiJ+GNb3Zva9ORadZX9kx32NCM+tNLrW1ZmdWqu52s7ocRKaKoU0S9t5ABsaGvKfML9Nq7Amdb2z4o78Q1/vkV1LRey095kNqJrXHnX67w9oTt2PIdFZ/Xe1KTQv7h3o2BqeudWZQ6ySbuV2hs9Cm9U9SerlSCad0bwoDTeldbGXC/Z3Z2PqV11K0NaxndOuSf6mL6OP4aFbB5IK+on27AM81YJvsCaMo/0NBLhS0mAJoiiigJT9fKDI1+pJ2BPdmf0eyoztDR1wGTWXfa9Fvb3Jk9cZ69gJNGXK0aN7Q3ud4+VsAoqsKa4Vzt9QzlE4XXDXYkxKKVD6LW1oFCo2QnX0LqacoCpx5HuakOy5Ma6oRV07J1OhnVCD/bbX5KA9dKRoxd7cLTbml2jax7sr+pQAHjIoH+VsN57oyhpNdTt2FKfTT+geyPGGk2GsP7VRyT9ic5ZCZwmTc51DaVJ09hQXHo9ZCanzNJpYqSuua+qhOxw5O13IfjSzuNg+GCdeuTK10zq/wBWpR3kf09+uja7kGddiQ1vS0/7Kk7d69zt1DLU05VaNHGbHYjvWyityM+4Bc46V2euyBacD309+tPHpKAR267SZyUT+tOtg7N4i10AZZ2yO8ifsGXK9VJANsrW89HRpdihvKiE+wfWTJ1W9teMhSRvGhQfANmuuz2a9qamfqLU+6ZoVUqsKravnZ2bRM9JcR69q5aGTJQnzewXzQKjLhNVLvqMir13OK7BqX9JPHe0lG/dSRG32zrIn67x1uc07z/vYn+OnWOupJpLHD9HHwQj/rB3Rslm0CgPU+o5H1ExrKk8rJk1vLDys6nXeddmmB7C9hdAH8ipX17Ym3PJ1nb308XAKNYyTre+sux/+esa/TKNzrAdBnfBN4p5pp24bfxNKgo4TudkU9tKdlBGp6mx8zsToK0gBNTBN+zO8KA0oKLsHa6TCesu3VLhsnCR+uFHss6K3n5OTZt3/vsa6ou5nWck32myRBcLO/XJofsbKnAT3H7Ii7o2D/nXXZdCiq60Hv4V2BU/7ewKu0dC60g+VlPpq6RNcaNOPqKK9tcdb8y3VCL2N5OwVDtO8a+tBVBO1kqTcVo0TulcnbOTvDXfTvzb44S9mnZ2TLfQIknau6rwFtSprZRpZaZXr5Nb+rIdcUE1Wii8Na7ZtXDaMlDIjrf4u9TjIbl8TWNKbyQ7Gw+3fGR1jpr1adaDZjTNFZVDvOwpmtC4JXXE60uLLpXVCkb67fCkx/eudTxy3SZsQ0BRvOvm0rW1/PAoHGVVCV0AHbFV8qd0Gb0e+usmtflUUKXTXJ1YknRla0a2PVQGdhQEoozrGnsAK631Gm8gTdLuRAnZvA3Lolf0Na34LhT+KPXzq7HHc5R2gcnTyeLqgCV2UC/VN9vJn91tnUvJvfRH0yZ8cjROS+byntXXGkdY0jrGRjxXqS9nqDar2NpPlTFbxAl2eSqwbaxl1VT+hvb23nbf5demoorkN8kmgDW1bBkoK+wnJTFqMnUSNhpZKaMiQntXlBeLodEH7jT/ACTnnozKfVq2dOKu0OSnZUSM052FDOz02tLyoVXWXUSkqarW2qmdOE95NUeKCyakouncv1RS6gyD/wCRTZVBB/F1+5f3nxlU2yTWGl89GsqlfPareT16i8UiNZ1J/Slrwl/HkdXhBRvL1KznHre8tdok6kHtIawRDCNVtesjqVt9vfXyfrLi7OrO96al32bomUZs0bmo2y1eqNd7dBVujXe/xa0u70yBvtLvsu0QQMrZBtK7RosaXKWr1k71rHvMuNMxLhU72SfXI1rWFDVLx8hT5O+xjaU67qIxQSYyaddu04aOPY0E98q5J3k2dfE/+mdtXpr2t5H2qqf6zSPv7M/VDr/YDXU0ilJN+tBX29NTXUrQmNBBhvqZJra0FmJ9Tc0Naxo2p37I5x/akZn82iwCV6Odt2TjWnTNeU4zJpLgqhK+utJ2HUCU5FNDtqWweTXUxsPcJb0014TjvVSEjx9nrsxlPM0lmyvsQ9QEaG9rofqgL1SQo3Qa0AC6JUd+Boqf3VbpAdb812rz+NMZ3fnXVeD20PQ0oadZdAgBpVKDTjsk0pM9gCvQNmhV2O+p4BqsZMA27QqQI1K7ZGQdnml/EXabAoMUlbfwNbJlENbpiQ3vafi7NoS7SKZpEk34UqzjuXrg60LRM7w5O1axp1o39ERfaA7T2X+wkz/mUBJqtf2ZBnYalEvYNkUdvGTs7ZJdZUyihP8ApNEus1vx8XO29baUTBPArUolOp6nByxy1VS/3dSDXu9Smf71eSnsYTuRw+0+odcE/qMk2Xhrr2wd+ZSaFnXYnFCnGnQ4qjT5vebNZKaxdeY2bylU2Jp0ug1J9NZ+w5chLGRJ/Eo0zBuJ+w4yFVr/AGRFkXIgTQCGmN7oVKEze58P64GtYbH0l0DJ6j3DYXK60Jreck/ZSvAoKCXabnea0bwVidlMymeSbYPaVqmUwrUztk9yO3pm2tAyElYPaTQaca3Wht268fco88l6m3jk1liSaXztgU0GTWp8VR2ygBK9euUsy5Km1KEZwSp7BT2NL1nH0dL1NYzsxRr1N6AdePYpdC1vCX9wNWOSqJgErpl7GzW0ySuxRSUmqdTQL1kgkJoluH+TeNhyeshSZFdqqXT10ITGXKgESDpBJVJ1OmqJ3lbqlTTkbidZO+vsoyudX8yKVodfYMT80StbOqztNSNZMlTKaCsAJXE0iG1y6DqlStdhNBvqxAC9pA9mEwd0uNCe7CdjX1AKKcQfwfOwV4bA0J1CXbI54Pk63pub1sKNeuv96lVrOvVHI1P9uo0uf2Qa4j0a6+OdgpkhXZm2d6u3r1JRCRNfrLUbDVSyXVSqtL6eVQI95rfLIVKk9eMMmZKdvSp0EzC1jR+E7Z0TW41jITJjROoNrzOmUrq9aqkI1MK1L/kUVJviJv8AkSgOG5IpJrc0W+E/fYz28YmnY9UHfHTfImcUeaZnxSqanQoTIfyqdRoqQS0HUSKtR0HeUFUOOr42cqTr0CROrfXqmE9eqzxkolU0QtDUdsh34yBSZy0yM5279QdADATa5yJ27BR1mUgU3UjSVywa2yL+iLUMpM0JP9rGj+mVruGaGUQWkY3WgaZdJPZZwn1B3sk7fZcvtVGonodsKVya/QdTW217TR4yJxyE9KaZnRMty7Z0dcNdazyqEUqherWjNMW6dUs5XWZMgZ3p0SZqWUwNeZ1kc7D4tJpz+T7hl09SiPtBm9TpZ+vYrXbWa0oCetfs6wrqOTQbx5O3gJ+BDOnLCvRRlS6DejrUmVTL2yBSl0eqAK48Z2HH8w0y1LWlM7FDn2p7S7mer48Ri7md9XRrbrF81nVnSEypKpvQXRrGjq3kb25D2x3/ACDgPbsjX2SpYRxGaNb+3R1qUzT1AJVrZO/suxdI9vWUxOtZ7VI9u0ErqfrjJUhhX1QFZ1kJ2pbdgky1OxOs6bDUuVWpFVAcRqcPQnA6726qtpWpHK7OsKR7IJvL8nQvmskWsA0mFKOzW/OyUmFb3lPf9DrvIdgNj03hpUaRpnJlqlxDrvGdhlqeEUP1dOtKDLrjCeIJXVUZS77Z5vrns34jVdclNFNSVXbI2dds9d7VHrj6u7E1R1nqYOqNTS7DqBvBezjvsbF/13NaaV7ElbpWRXJDejqbAUGjANlDvt6kmtW/9ifmWfVSd9clXe07fXE+uzwFwl3o2j6HamcudqJoAGZ6pnGdjriJPVJ67ugaNZK+zitaFrpsyUVkHbpV0SD2okP+03veHZozXat4zv8ARSdY/wBzGkQzb7snezHaaF/c313qJaj0DaJI7M96hjv9zWt6BhdNb6mddL1dz7gs0bqfUD98A3nu89kx1RodfxaJ2G3661mykxpHWKGkvTI4/bYl9AyE2jB124bX3TO9eoY09th6M5TQ40guA78ZWuoPjjsrDzHRiCe76rWb3vYNaxopYU0TqjUtFnWi8qN0UqaANzXhT4t2EtMckc/D3nruOxNrPXOwrOL2rtjKmsD6Zcszs9rxgJlMaJ2gHXWO+5uQ/MhWnZQSGa3WgXWs5JZpcQ6k4p0E0H6zNANIIK9xzs/7Hqp/rupBE0OzGTqZ/wBYzo1MPnpJ1TCT8GjyyOVfWKGTCpunR+odjWs6r+O6nthG9mVpZ1/KzVTTUKJFNK5e0R/iTjHLnUlH2mjSm0P2is7M0GSnT1Upk4Jqa7rJW8NA5Y9GQrcknJKpKUTOi6qpA6kmWy11y57OH1pMiRqduhB6lclaJqb22WBae6Mqnsg851F46Gurx10pCqXjdM+NYz9ZkWihy+001kch+5Mi7Z41syNp1DRNbE6mr7uwifrVZcq9niqQ3lJtDs9zsWdWg3UCckvYQ7DlJeEnUziopZev2JLliQwrqJmzTrl3/XIj/iPHs9s60dujX1ywm51Ns6or5GneNmlShdZZvk7rIZNH5KS7rKBqaK11CWdO3inqE4p37Z268jhM0+PbsauesuzWzGUpk4r3Bm3toadad7kDfjrie3jYzyUYOgMRadxP1cgmfqs/bZK/io6c7E1tZK+uCdc8RcKWsr6nh7rGO1umSZ1nQ2aZNThvXrTXbcD022HUrB3I4+1vJn3YH1NIddD4jku1Mqzsaj7b2611Nm9svXZinuKiS0rIkXHYlkFzk0VI7ZkDsCzilS6lZnyl6+lG9Cg6Tc/hsNqK7xRHYq+V13StnVyPOPVOxKyaj/HTLgn5h46OT18dUC//AMxoIduift6yz6AUawJy1KDLlPAf8eyhtPvKI16+uxJZBNnU0TunGRk3RrWk+qvj9sPtvHQaexrQVpcKBx9FOr10m2UyXc+lIZa+ZtfG0kEqh9Dfu48rTW5GkURxR9BWlD60GdSjqzJ/oh+idvNr2M26NKCbIJc5KJ0NSNYpuXPxB/KN6FccZ82BrzN/9lJK4/1yvdDNdUHZsRBXXVKdgdtrW61hT2ca7PY31WcQt3nVVMJEdyO0Be+CbZzs9kQWjTWt4bw0GK7XHd7lEmOrPrtfrWwkmtYyLVA6na17oKZ252R3gnYAlVcFlA7Gvb0nVH8MJJWsGTZjQX46E2EjsVd7Q/cgZ3s3rbW2fBV7olSzjP1pxTWyg7GyRreUJyyuv+iNmGqrqhU2g78QkVwEnWfp2WTRpEvYdijZL/rrXVZPYx7D2zv+pOj7IAbChNM0MplUbHJT8UHzIEXahXpLvY/ZZyhaAZ/BZJRzq63grrF1PnZ7ay0qtPp+suvTyfT+vbClVwkDeILjW5dcVXsKa9JWVnWF1pAr0cEKcU+pj9cvVyA72wjoJOqUL717YAjvWxMKaknF1jslrOnbWMgeG9I14dXqzpH13kG5rZOlpXsYbJ1hL7Qm9AwOkdk6x9OubDWOtbOmxyN9Qx+tKoTtT7egH+oAGcmuoBqUnE7bMJJh1PWhprbIDIyYr2cd688J9GpGjrBVJI6ZwSj1Xcy+SGmXWips2JB9qGUpnOiVKLdbGCuoY8YwSk1OjLk7bOVdsncupGQZrOm62NEiLqda7EDk8hQ4ydjGmvscSWbpdOcko7JoKd35+EmtY7mS2OTuC8bEu2q3QlzuGskN+3P/ANO2MyFOdK7zqeeOTmviLoQBpqXZDUjhJFIWlT2wUNF3f26xVVU7LYtVe07zkO8/xjLE9sb6y6vfIOccpOsJZk2ao3lz0qQhaHGXqVjXi5ClTWaHQz1KMaN1ppb9KNGCP1GSnTA7NkpVbZKNUQI0cvG9dBqUM6tV1WH3ZBpoHcM5U9IkCVrebapgYlrWHq4Sduy0ybFHDVhOaewT1dbOWWkVB2YQj3eBYnSfulSny5+zhImjilK7Yo0LYdtYob3NIAko6WutOx8FD0Rk8EHzH0wl14yS9cED0QcaCd5b105rYJ2WgVe0geCZE6lE2mw9XNOgR/c4wOxmiQQkqinqJ4yawt141vc4KOD+Lsuym5aEzw3tBrWAOnFWfXsy4z2PSNRoKSpkb3umAq8hWdLR2HE+vlB1yUqWmaFzzszlT9icdTPqFBkQE4TtRYd7NnUW07YqmsZ1TgMhOEHWsKZkE7b3nYjTjRs276+s/btgE6xfubTU9c7BoyUrJDr7uPUR0A0eKopOdjahoRzT2awXsgBT4UL4IaMqlEDfU11AVO37gm9s12qtv2GUXQJRscn97ZaZTp6gHqzKuUfYcEq8pN+Mq6x1NeeNIh/ova3ZSDgmvf3PxUN+ZpP0P0WtapK8DF/6/REqaOuKmjK1reEjOsUHWH0BbBRep+jO6EQFxn/MdeIP+sV2pc7PXyVZrI/qraKGe+i60UaXzPyjQ/YMrc0Z/wDho/cNeDyul2H7gnVMfBzYXrFO5uqBJx8/HZ5hOt1nX8tdPlRsHYukPJdKniV+S4b/AHFQdmkNEr2zjpmmUWpTOup7EHm8aKneNHYMrZe8aPdG6BSU/Nyfu+1OtrRONfbA9XN+aD+qZK/uPiuV9talxlfCfP1EMZZTAP4xSXrrBXbiE+nqi71WebRBa2a93k0lI0AbyT/llVuRwor64L7K0CZ293jR22OgKzs1KZf2k0GpTJ/qAaIHNlbcaJ9zq0OEo9csCpcaTCjaApOs6kjSu9K0+5KlVSe1ThyGhqqKrRDvjTOtVUuNa/SmZpSRTLQitlE1M5Y06wnWtXuqDKrrUwAijP1XTTpl09TSkisVLOCS409dYar1KdqSPVcR/wAfZ3nbcpmhlzZU+9fNi+hhXaexZ+ORpaUCbd0aRxTRpTZiafGdTvCWq8ePdBS/TWKUyhKepoPVPNqGt1s1nLM+IeJL/wDggATOo/hJMumjTLu62YC7lQUkvi0lBfbchoN5YK7ZknedmqR45BqcPtbLZ9arOJUqqJpROy31d6tF/uaI/rRZ9XcSduiIRI1qZJIvtuc5L6aceTttSh/dmwDjgpZvqOj/AIMsPU0VSVlIRuoD0antQZ1StrS8sy3QHnLykM0fzfyy5ajvP52aFmZozk5GaJwppJzkgWdd+tE5Ssm9FalgfVqjTIHXCtUaXX2RHtvjDo51fXCg1rsvIYdmkyKQ1nLskxDZOWdb7F0r5dXMmp8HEXx4q1WlKi612WZoaRldDrV+bkJWTbOvTiSqbH6+YPaa3cjqWpJDOwcrqF2pt9M0IUlH5hS0STW6d9fFae0kjP8A1yUoSdWvUl1rDZfXHXoxJ1XHYIB9cftW1o3irRrldHU2+0hrWdJ7bKN/iGnI1r1Qrwn3sRM07b+nIhO1TFCiSPJqVNRrCl2LWr0WCoSeiszsXj8qtC9TdzvJP1R60Yar3KlfAjcsonkFTqmg2yZCTy9jzXbFEJXRoz2pAJJepOinAO2WAmMjpw6uzIfrp7PXFevUf7yYStKlCmyStoyomVJ44UdfRd4BUJgHfWdt+5a9RLX+PZ52DA92zB2d9Q7aBTHbOkoN68Zyk9Q1oWN6pR7V2GerhuZ1g+6zsN9s5K1UqafWtdXfg+UpkvtYyhm3bhuq3g+6ya3ystGrd7daROqINV4B2cYfrtn8TqV6J52xQkcUfQf+61QgG5NV/UrOxhSruKdq0pOGuusFTE9xkKXFLnNoaOwBpk6jkP6KoeLXhjOgcaAdElz6b9MEp1iE7chSQZGaqcRZ0IUhhKPgH4lNakN9dJreV7qsQdVnY36UHmcjt3iLLQUzSLTuTACtItS1jqzNaDBKPBdAa76SpKreGpnT1R8rygV0eGqnWSGIpUpJ0DBCTcya2Ev9l8/eMCScn7frrsGVL1Uqtk9dqKzqZcJaraJK4bqvCnYIbM2FSjaboK2uU7AyhkEXrulkJMH7aeztMT9M+V8d+ZwHGcMMcEQyM4qfrTPpIk7fF3gfmVt/BSmcpf65Doc/RcZFNB1py/q7yx0aZENogmHnXK1OtC9d4VvrA0e4L/hT26pILjQUZ4jsd7EkGg5hjoBL/tPmhRhcVIrV2a8883QdBziXsOFPuN/cyWQpbroak7vaG5BTK0RKe7w016m+tY122B5lxvk8P0BmK1sgXzfV3jSbwsZnED8KdyGzes7dRxnRvP8AiAyOdqiVUWlwGJ9Z7aog6uhCpc3Q6YfMQNrVM1tPtVTgA7ysJShyfN727DNEybuSq651oNY0mqykqVaCerguzVVoTDc1lfoE7V1poQXUK1Sk0C9iSJKppDrty3VTWXXQNRApZcPbsTXYyg/jJQJpcjdSuVWqMuQ2ZCdld9p0SHpkTMrWXQeiFIMJG3KvtSs1tqcbpoHiOsjnKj9Stk6xp8l7GzGu3bOxMdKeI45lD6A4VV0mVKao1Vdd3JUg8UMCDUu6WZrrZxb/AM5O5XY46KkEo3qb2apur8rO3iwUut72mLq2QmmihWVxqdaewLnZ6Z286hO63l0bQlWky96kSnt7Z9icZDWNKYyNDl8ZRrOHiZ9be11Aw9SCadBRNNOjc16rVknN3ACHUyHlO3p18b14lQEaa4uwdZF4ynqZM/TFJtEen5E7HA+oZ1D8idGsqevZwlzf2cEKTFHZnFOpRJHcoarSx9VwlNL21WiqaSsZd7xNsj5LvJpRUn7OEkzRlBIL12idSdo6XsRTrs/r2SyTbVP9sKXlxNa1Evaqx2FVgrPXOMK3SoO8bQF8rlQ9DeQsDnnUEf8A56I20K95eqa070KubeoNVqsqVoWzrAEU/udSTYydhB2pj9odRTJtdb3kUEtHszvOjvaSpoJ3vaGgE+zunWnCd/YNH6UEuTJ7vX109dmgq2gyl/xlJ7BrCtbxUKSvvOsfUnE/Nmijb54f5oF6oaf7O2q64VuqASeQrOWe2tNPV3qlMXZnL2OuuNV2m6GsF6uIlBliUTkf2azZ+ZS6c27dFbqtNBWzt2Ezvup0LKmCe6a+0ykrvYlfjISIAelukxZ34yNbZHesZern/wCMlVcKd4jukitQhp7GmfzV+T2x2gDsCsf6jhbszoLnU6op+BpHYiyhA+2v9eoToHNyeIPYDqdXJDRSr1dGiDRRpkFAwTs4BvKne5wp9G13K9j/AAStZHkeTXiI72JreifNYUyO0o40E7cZQUrjQ1OlJTZKo4/hqKKqjF1LGD2AIeupw/t7atLnXobzqbaDXuVqYB/4m7ENIBPhT7qpaUwHWf2qbwVk3NbUUPDNaMaPMr8Bs/EKHZjKOG/VtNdjR4BJOsX0nGTGfwzetDXm9ml2P72CXvvOV6ukrzeNCaNv+lPuO1XGXSPEpxapntql8c5DtSZJ1jWQh1yplWR+pnb7+GkKXSm2V2BKb3aCDdd9SlJPrujrnrXRZ1LpTdbQkAlUJYlLAvT4JsMArc0UEzkJU+kt7xl6hgvb2jRsKa+uFdd5O89eTwCaN1IXtKAcrX+MiaK8nY6ZlI80uzs6dOD71yJN4/2cdojJ9nLlTWFPWcKWnXbZTiLLtQrP822PqxXXVN11/SlEffdkjIYn2835td0+KnuOnQNOge35upJkRkXb1rsYDtXinrsZ3vSnaUWQNYfu8dFaIN0YytOiUolqjj43kI5Z+Rwd8mSdYAm65TrGy60ATu+Xqkm+qSgyk2TSxVdilnxB06VetdHyd6l3z046GrIleTtghus5aK4WgppN3JsrGo/Mt7IBO6NvYojOeuqGbZ2jugom1ceQqUy6LkqSSt7NyARS6M5ZGOxHOdkZ54lLXla9Ddm3qzxIdvtOFkil9S9hsPHcfRHUi2mvCmZc9p3hVTXZ5OVglKkme2b7Bpk7bbkfQg6+cXJX8lSqduxAL3evahyo+xZ2rs6ut25IjtEqez6U7rRPugkwsmQxTrliymMmicBOpj/08ao9gHaVKqh/XqR21OmkdjWvcKqa2WFBRI7dv7nU77xpm6M7MVON/fZ72M3vZlGj3qOnFUDOzoFXXtg61Eo+aNbw32d8j9RGln0BlDe3edmewzQuskfsLMvG46KJzjWsUqgEBZYUnEZk1XtYHrs0OlCZ0EEwj710ClaTY6ynTkTTLuUJzttNf3KE/wBBvUCxQmsuuiSqMiXP1U+08UjMHktT46mUmdGte068CWplzwHPw1ibMQnUoPsv9ZxQkcrdOzWjxj7Gu26XOyrtvrQYds7b+wVuiR7b8Xes7e+tebzwe2bPV2FGXX0dTuqB6kjhP6nbdYqayXYuFIbzrtVJPyX2SCfad0NacZ3XbDj88JQzYSmRTVUIaM9qnRLT2NddUD9kev44g0I766AX97CLj/YC5XWhHWHIu5zYG8NVOxk3vDRgarQ6MlOrhLt0UM+37HrZ5sAjROnYkhOG53sNS70bwSlXf7ItdTIkdUDrzKdnvYK2b1HvHrr2zadgj0TCQfE2uHi1jR21hSU7qetFrLTiABg32Zzik6ouuu8A69sl8DDRRIV9qjCVPGtT466+EBgH+ileXuhMJIAz09aWZNd96cH81/8Av7bpDwlCq2Glakzq9jfVod9UNZM+OADVZT9UE3JY19ZyQkyqugwos1h/pinUyaRdoHpR+DRqXDasrsc3tHGft412XBWazs9Rbpa1mtmdeo5VAOqO9M0f10NC4SMjlDNKQ7mnF7SJxb6+9a67XfXCetG6GdIB11mwQy37OB5kn11ltb6gprKr6nW6QkwpaVmv5JDJHs2C7ZSf4/CpKtkZSqw1NErfjRNCazlRPB1yM5KCCUbcPwcQ79gfs6rXgc/Z5OMCVcO++oSDvO1VoWtvonu03WeyhjO94SdhF1LWTrThpNYD20791lAUGdmfF8exNdtzm9Ol8aR9GiK8HLnX2YXp1ygmzHRrLp2YyOtDqgSU9UVcdIUledlTesn+2NbpnOoGl2SbdMjk7O25O8+svV0UyG1XeNNPpo047eXebJtpd5y8pHVS25bg1c+zEh2L0yZVy63c8ZIGuqg0ylLf2zsaJT0JWuk9MLKehd1c6NEz7EvYrOsxDqJWgLlNQtDAFSeBwwrec4RUynRZo1JXXOX5BI4VNrjZ4HayqGAIBjRXV6hsOpKudTYtSVJRfP1rTyNW7jiWeLVxyMSBHIxzE41O2iL7rOfixkT/AGUWqA5fNKUOxqkqTAJkc7JQYBR1nRF6aseHS0Pg7EMaSs5FJUnj+rR1TUpITW17agPtOiIJorGZ7OWC9TQyZ0Njl8Yelyqa6jW8KqnxHsONPbbp0r2RDGQkUer42VRpSPFvXkk+mil3LMoMop+bAHBWt4evjI1svfc0a/l9TRvE6y6d0OXXuAD7JtDNFa27KNSdRMbDcgyGyqeuxTr7L2lVlXyvtpwetbz8p0y2GiGlVOooy6KFb3ohmQarrpdfbwnVKnus5F2AJTt2NTrW3xkUMudy7JNO+p2dPkuhA0xvsmX7IZ1RAr7FCSiaHtSYvoM7a8964ofTNJowpKTIr76H99fEx669tk8Zo7YDtzTU4BKgT9+w0dXVb7AFV2cI706P6ie79H/Vo0o+dTL9TVj1DJne6WkDdP21h/YwXt9V7a31+pWa8xrrShKxtAXaHaa1xW1sTXZc8e2Lr3G3q1kUh6a66yBLqqdgklP7jsN5KSAOg3Mi0oTUyS9ftvDZZlpdeL18Hw2v/wCyMOjcUy1gvXeE6nxXaIvUcPCcU35vYyQP9l3pF0SGdRZcF3rCt04V2pzrtV0+UdXWRIq5Yj2NaUCn9ya7floIYpMpk/45LoFqjZrXu8a63RhToGlKMNdXDfZypLGUGQGwZHIOtZ21+J2HQlJKyjsJexWAF7SiqrNr5lSadCSkvad4O6dzPbblG50f3HVH1QFJNo6U2Mmb9HPf3F/wquo4+qJrWxl7Emx8K11DNdlUk6YHvovbS1+rP1ZcaP8AGhk1IVeeozjL2lxr6+3qf297HJoBE32DGTXpXX6409sDesB32xpa1gboyk7IeT1G5KoCUJ9qSqwpmUGtLuT6mmjRKpJrFGiWk2mb2SHY66atmLvIrsG2h1jfXkMK1SNLKo1/o77EkhM6B2DjWr9rd+YpN+8oVQYyeGOpkMitWTh60YD3oy995gEk0uuphW52rvWgVNoEnUdug0fbH9BJ3Oxo/j2ktVvChFwnt+bRdbdONPkGxdHcnW1BNL9hx23rBB0rNTo7EuxmuoidhlZ35hqN6dV11Jt28htXAK7KT4pNfu+pRrKEk0BU+saDEeyL++yAiodjbL/rXb8Vk0NeGtdfcaCXYu6MmD3J31zkn7ePmqX2jbRTUYS1oSEQOqBRtZMbL3AHrjAHYtVawBmZSRaGZ99ZJHTJ2NEB2Mi4pN1Ym2NdSs46L4zcTS+Vb20lV3pTlVNzvob+Q/1anmWUw12c5bZ7jxVdS08Y2UUyNaJgHeOuzlcn+n26480cSTd6qEOeX+Ih4/tOsiGpWuLUUr17VsmUkk4+OWtLxeuRxzIpxe0zkS3VSoF1qLKlkLnYZtc46O2i6Dkxk3ghNUtC6QKoouWYDIs64WuuyN11yeMRWJ8ZxJmRaSn1pEnGgcu3s7uV1jX1DIGrqlomTUWPXVG6xr6k5Jo3ilOxsKmWJZq6UaTKpZEKdGFHZ2+Ptz1SgSp0b12Ar9xl9CZpfd92lba9Ghk3ew3hozQ2uG9rg/U1VdoQFZVTU4QM9c5Nj5Fdjea+28l1PrO00SbHCT3T9ZdOgcXzQf1O3hY40jvP7BnU7mPpUt06JwSnQbkZQ1RR5O0Fa0A62/2NYaZdp+ygguBqxK17WKcege3pmnqYBhpKoK1K4b6NY9TYTL/pT/UDrQ5tp2tdtaUTQu66sIGgkFcJTao77Y0bNk72lIeLOqKyKOvpX/T6mFbnP+IY1v8Ad6nGmnWErOglKcB3npRsqpr1DtiD471OsNVXom0zWkc2zrQnbWADrFZnWHg9q0yhxUVNZ2e3ZE8y3SBNdn2afxT7axoAcUDY0N6WnXWR3U5VE/iay1QwrVaopaTOv/02z5LhX6Kmxzv71RSc3Oinzq6peuhVZMrR49kVZHfp9Uw9pTsH4U6qjqGzDxds6rWO9mdfc0dtm907EfGE6spSW7vUm8QAyp2tYgpWKGG38/7yjxxp6myuz6T9uuEnXeFVI6Ab3lJpMh8N8kDIA0a7A/mVXqEyJrCQSh/q6EJXP7Ti/XWGtssHWUfdiIexianrm9QuE6nYqoZcvZcJCdL+7P8AhsRmBwrQTibFTUvq9fcaanYj18H7Ixr8RnY4+ZWt7E0+dXesf13R+b6mxL2SVhPvhILu0lAXt+O02Jqe2Shfaiir1nLP1Ovbc6w3/Yq/qGPqbNE6D96JPYFR24bd0ihrKdGxUQXUszMbdiT27NdSUp5rqxoKJgc7dgcvfeXHQjhLUtBJspvXXsVutUga3nKJSkh1HDwqsN1W8Jfayf6/Y3YU1AGieRLJpNP1iVWkErvnYmTA27zWpXA+qEJ7lnmwA2Y6ldVRPXXZqvHffBarQ0ydsiuyCPWsquw5NaDOQJUIpkNlIu213qZCsBqTXZnGxrWPh2BCd0mwXa/hYzt/NYW17mi1SteGAv1y5ooodgGTW1kADAAdDunOr1BlNuG+213tlqU2DTZ6/wBkze68NtuQEiJu5ZwHqpxz0VT7iFSEaf2TV09d4P2FqhoSrQQ411uu19mTbBoalnaRJKTCy4VPXcsfbsiT41M2En3jjkzlA6rcko41XVQHvtZarwrkHqDB4tFOUkS75ec490TVsbLntu2ea9FFwVUyxAbx0+N8ZMiB9hSlqk46vrK9ulaWaV1EhRsqIepYNaDb9shHYcfE1PpLKUtFcm8rVTtiHr6H1pQSPAbnS7JciKO2wJ/Kn3Sebywo0MhM7P6+a2nagJcNa6lmgGQBMTQObkEyKRJxtLcL1PtPWRakr86snXLvpRI17kVuvboo2dt9coX6pPX0VeTWEmwzWkMZyy5dkombarx0SmEi9J2TWdld52+rpfPIO0l4zpyd9hKjs6zQT4eUo7omw2u8E3pZ2awXYJPo4i1t1/UWVrWCIzjP4OlRxBlcBd0n9tHWuzWJufeP2dqdHa29ez13uhT66NK1jIyZ2R27WVw9DHZUgr4Hq6J3pGZKneFdRM19nO+neTOH17D7tU9vFNOdZUxQCcPAxHqVnUfSpPM69Xy0/lmlTsmFdfVDfhp+2Jt2KtBlH1QAT3r547kHC52Jv/cpVMZJkXXYKN9jy6StAPRcJVcd7SbaXeA7MVnWtomX9nA1XU63rxpZ1jvXUTZvDzWbNqdlpMKOoY6XeOzeE+oz7eUk0Sweo2Jx5r6KsJQidqEGVcdoYyp7UlV2IkZ3nZJYYqUKaEynVbC9rukAMa/3AHVYe+4oy6K1JWU/bWTUn1y5Stl61g+7zZsMZ80D/gP7uZLdvbsuur+5f7jT1M6mBrav2kypADEpkcJ7ayqe3v8ASTHbWgCUSpWvPdurBDPO2IhKVZtlNn4O1M/4umRPX6i46Z3kG1DZJ2wp7eqbVqik15+Yv1DNhvey5xSnWf28zR+i7zqdpo8cnenfZqdM+V1z9dNUiJ9qwl9cV34iLjQeYaI75T7sD+qFCrh9p06RHKpXZorVPUPzWuPHRNZVK+Sh9ijtLn3KlyZZqpV12E327P8AIoBxHc7O2Z85NyKcVNTjt1pWa8kH3LF3QbXth5KKlmX7rVUtTC0TTLsqic5frJScj19uwKrLpZlwk/j6o7naz2tcqOsiRJt1dH6CAzhvsbd9nO2zWE9g7a14O2Nl6JnVG9Ibl1gvbrhvZkydgWj8fF3i+eG6emP0DN+az1neEtHUI83hP6ZR6Ya34+pok/cfDea+wBYfZ9JU8X2wZDB01KA7AOs+xqfWg6lBT9jCiQxNVpQ0uQbt0/10AFOM+lYojo5aIMqnYnY24TKKFdd7aKgzkQ2BLp3ymo7s13BOLcy2umMJexY0zBqXe5WiYNFCAEn9sAHWMfatmmmWJSnJBvRuu/ZvXIuNQwjM9gxvLntLfH28MF69k3deRLZMvLxuq63XWhWjrtt6s6myrNkjc2KG1AZzkib4eixHDqVr8Ujds1JPXTXVsnOKkKp46Xm2XD9U56YnRwcrMIyE+lLWsKUJdNX1ziGGttL61PYN8XHMRo97bKtaVDYuQNKYTE6xV2nZ6rkksY0kz142/tSI7kZevr/0syIYw9/L7TJobmvs12nZFCe8o0lZtqfLmplDq1qsk2K06QCn+PWCdPTZTsqkUYqXbIeiSHEyG+m0HqaA9Ron65QmtNA7ztqShfTVV3PJ0a3IRvLdbAXzRPaZUkFFlPBkZ2TIrIys1Sa6uNAayzdFFUAaK70SH/ae1K9tCmxdtKfjvfrtDe1ckXkayqtqcjsZrtCMS+SVKVvGtSCa6+uya11Ll3vzSKy7F7uyjzTS0gS0oqB0yFNYo0IyM7yQApqwoMg/12Vpk/t6qg5vpPjXbrR2+3pCG8a/HOou8pS9MBtlfx2To1lafDTRlzvdPLXQdd6kTOKiqylIqSKSsJYSnxVPygyZA1lOtmSeOTPYUJXc5/msJOu2QQG9KhtAwpfTTI6K7fVj0XKq2epO6SqB7eb8pC6nsH9q6ZQEjkKAFT9RCn1JlmfHWnW9mi6KkQoPWKCt5ygpg7kcumjQp0DGnr5EXEOxFDGpZ1hZIuM65ABZNFlEoTQaG6Ng7CisAKctOqponBGfIk6CtHbWROpM6hXY09ttB17Fb/DaGs8TslBtWjXoqYJvqk9V1DWtrRveJ+afLZEeztKByx11wXTJGze9lKY7DT21UmOVP5kJvWWmq0Vs277SY9aPVZnJRkQX/Raqqw7oiz4a111n7oyXH2msJJreVpcd9Tafmg+yIffYHvjrtl7n7FVsMfJJA1i9qpyQPx0TnXcqxJ1EKAcD3E15jTO3PWWSwZAZdbHZoHQ47qckWfUEc7f5kW9urVanSO68iUwr6Od/Hc6JKeTqx1CVnWRV79jqcLRK1DTY6MJ67ojfbQz9dnUBR2yaXq4eg5Uk+vZKnZI2h0NnUndFZz0PF2eNXjdTIm86ibVKvLGBHSSLdv8AGucXkuIr7IG9r9tppscaO7nvXeTBTrHRXVTZONeGil3KJt0L7qfWnLlr0mVfORarqEkUuM9oNE6NPIPYCF7O2jqhVyUaqTxzqErkb9VrVdc6qjnkVsNNOmWp8A66P66lZe3pRNOxfaZ1oDTM6wnf6R1pcBfVWt6mmREXq5dIE4714Sh76zSlH9Ga0aY3Ne0GkzRJqerS5Y1IHLqtGcEnrnbY4yk6yH7Jlybz0rrl0OzOMo5UYr1Ekb0cktGgCns1ydOxnHyMjomfxmZdThJF6rpvl1jItND/APKkZPKy0TaUghp1t7JKvNW7Keamll0RTVQS7qo5fPbpqdnHWpkxooc3DJq5HRisVvGt1Mj2FojdW7iSJ0L47qhnzlsnWuOm+OcK+jLNpPpylJWF+9UrtXV45rkNJSFbmqmTU13r2YCUlllpxrtO8qTruUGeppIkyp8M473TBFdknEWug/1JNNT6/wBd5oqfeh2ckNawkDzyp9qWJXLtrChnQADQeHvHIldqmAkB8MA31y5HWiUNqFO8Z0zuNddYWG5zt29yjtIgKNLP0AA35+htQvqBuXXu6VkkKTRFTn7Q42s4LvKR24L/AB+qEmyekmtoG+qgsUJsT6qCEitarWMutgTR1GdboqXzeke+G9uKy0ZA7rZvr4yz5m3QZUrSpRMitPmqpI7ZNAuRWyjFSnUT/uJ9vZ1vCfroI+u8DzWI66rSDOM/YcnWtZIfuae20qSmUTttFF0PZ9aZdAmtMoQZYb7Gup2ya9UihnQ6OQcTRtVNZdd3zUr6zqtoMwiUfuXWoyK+mIdTcq0S2brSSTGQJoP+8HxCaWBTZWO+zoD8xdBJ9gDNr6V9acN0egTOsrezV1QdiaaEye072qgMJKuKpsDc1hWzWQ/VMU/So+3nXUgzUrrLpbNzTvqukdTRPWsb00JS+4CKZ+oZGjYglFKn113Lnc9daE2ft1JKYPudj8xopE8JKxTqGOv0J3XbH6vbCl0uv8WXr2x1vQo631TqFQqGb1PRnVA4npray6K8TNujNm1yQTN++bO20TQYu+2ol7baGn012DGpitPbf7ATS5S12nCT/D9dj6A++kDNVqqUIzsydRp3Ok+2x9CsgdpiOnaeAFO0xEsVOzvGhNY1pZbo1oKQ3krS477aYE5HZP2V7rYZvspgAaVPTGtaEoDF+qnZjRiKpiIO4vqerp7ZKUbzwtzs1ROE9d1iBrT/AGV01qsZJO2Pa3QQTIiPbQUo75ZJkrGkEYVW2dtAE7oVt6oS/wCj1NmJq5MRnskOn7V/uFbEx1vriBI5dt+Gxn7gnJh5CrRIhyfYIIWaTIo/B1Gg123Oc0k9V/a9YK9wBnQ6TWa+jsCYcNpvKl2AfY1koGsLE2NB4NM14bNga2qb/BSZ97H7j74dZbbDXZMh+vU7O/dqKn1XVU06ak7EkSBgdpqcJRdMiVRXI9fFOm8JfHFRbzjod7iuz1rY0mXP2ozRrWNPX0oJNzTKypU/YLCFR7bpNDjSdt7DeC9kaHsC1udhL+qfXbL4IS9ew09lZVkcqUreMvI0Yani64aetY0tOGvKywrAfXLp2IUPqQxTOduunPkUzK8f8jFlZVDLSJUuHiVk0bmgJ7U4g6rCjXiKaSTr1UCqrIGiqzlrr9c69eErObddXLuZ5eRueR5qpeKkG2UjfJl8pXH2zhqWSsZSnYMiF2utcozJoD+RrCRXkJRqaTk1+dlBarrNaJi+PbwQTK5fH1fOnZZOrNJluuSYz/l2zi2RlA7GBmfCWX0utbxoZ2801L2IqL4TVSSazkrW8adGcVTNVWR9WV7de2u5rSz9ZDbtzsjhRe3FOORI5aDb/LTyE4clNdWpfMe2/dNUzjsM7aneJ21nsps110muu8aUnUbFW0PckFcqfs5FfsqJ4af49YGpDOgKvRXKn7oQgdU072sa65Wv6m38oCay63Jo13JQ01updDhvbnY/Xa7cEBTvuOuFeA1MtDlUSss0o66/VMfK9qmjyR7OqntrSkhjuqEhP1K2aWjS5UaduvqaVT1esgdmQ0U6ayUJBlK9xkBchFdNnXWCdfWg6ykh9k/tVG+/gr26k7DSyO9s/uHkgTvdbVD2J82hv3AOyLpNGtUmEsvt62UXqp64dykTXUwkPpihtWXrtAJoxlvUhs1tBJMdCAorsn6+iaNKe7dVx+QhLhv9xRPJoBMft9jt5tgXaX5ukpK936C7KHH3e1UWbNbzR0MJeziteHukzTtyTUmUCjnY/rlb6tBJQWFFBtnb9WmaQ0E5sn3F61vOzvJpZZYEcUZ64CODvYK+GA9ndwv2zafjJSzgMgZsTNbFzZsMK1PXPfDB1WGkXCuoaB/crwcUJzsE9kX8RdoTRvqv64mtIemyxWcK0OmvEzyjBnQY1TS5O/TBWt46aaL0G3TocBRcR0aJ6+gOlYlNj4SDEg7zsV6KeOXoPGvtorf9WKdpnleYaFGg7Acsr7kz4Yydfb02I0ThtlGXrXkfbk0oFjg+e1stJVmSmXsCm6rxBNYHpv1neNBrZvUo1t647KR7D7kU6cddnJnVDjfaScJOvuh2B6Bi/YMDSg0x9QB25P54z+zi6olT30SXJll7NHjbFbnyZOvZlKrtl/cdGx2tf5hRVdjf29aXw2zRL1GfVrrsK7ToZ2hnIPb3iVWU3JI0Eztihqt3JyTo0diRoKRD9kDU6H/vNjPsG67F7iSsKOvbCntvCpZVDT4bK2cYq46lFKJxnt7jtFCgEWuwa67RY/q669hrN6neb27CgsnEf8madqDvqJuakmVrwkncnY65C0ErKjKSlqwdmkAreaaMoT7OmlcPP0CjuXTocJKN4SR4o16adKy63ulmhxNApL2ZxlfMJa9evusrcT1NT1DOoGgDZnX2pPDWXD3aJNU7lP3Hr21Knuiiow1TtOQPMbjemeQappicekcbK19glhZ7HGM1W4mUVENbJnqI0aXJV5O2ckP8ynHDFarlloKy+RrhIHUcvthXI2l8ccZnaNjNRfJLqpOOZM4a6yzhTWleU7MnYqUQuqDCRjaUTK5yytiHIcsE4eTo4tVNFeEgCzHY7XMhZyhZja8pWEzXL3bojqZHItbxq70xG01jpnthX45YVQBVM1VSRxuz26KxlKXKJRo4oCqnAN6xpHWIdmnsJi9ZdyqeIydQRkaPTqkE0qcUh2wko1jL3XJlOQVp7MLvzRLOpy6e+hjzWTua6vfqaNezhqqnXY7aKpEx2mzwjHv1z+Q3pKFN7OyDK0GOjRhRp2ISIUq6vT7nYewNHU27o3jvsJVAJnhOh+yGU/XzjlTdH/WVydfwq7Z214hEsq4U3XVdTvGl7dYpDD8xrt1gXqejqciv3YfV2Jm/dDBtMZ6qqbpk7PZkKPDHrLsXewZSdBqXqEqrlmqN7WaMn/vDUT6T/wDRp6/bK3Xg2f1zW58R3vAf9kHWT+sror0/1db9wr/HQwZ4/qbfCT9XWdP8w240G8V7HU2ICYaVcCqwlQlYopTx1gn22ff3I8HaH9nrqe6joTXfebNAGuzu/wArRKnl+Apuq3k62gu6dmqnx3NgEnaV7E1vA+3i+eOx9Pq5yp0rUWE9cmqEjNs15MtMznNNykAf1KA06qhPSgCHfXQVL1HIDTOdU8DVfREaREo3lSC6kCnSetZ1dLk0r1yx3o6DOsRlHD93m0EOv6Z4SY1ugy5+ppl3oJfs40kiQ7lRXRjrsGQ7qpwn9l7BSY0Og2kLnb66STu61rYD7m/rrKSpMdtAH+S9V5FCTWxO0sshQAe/sppcj6qnd21jQ6Qn7ZS0ayF7LiCazr6rVH+m6xSHtjRfbelOuJ5Iu5DD8XI3v1TbprU+JujP0c4tXHpR6BorRr/canp6G9bNA60/uKzTt0y4SgJUj9sorXnvQcdomBp2izKnZ7OwGjRK0jpJXOxoc7Pby5DkZx1KCI7cK3BIak9JGdZVMEmNbVyN/wAm29TO0oD3tqlIaaezbNGmmuTaRSby3rUmNBPYVnVBS6BklFWqllDcm4h00fYp1/ZTK7UmpjrTkUtdGp26Op0NcX1mqxUowldZYFFHUZ2s9Q1Z22nHL1d9lQeVZnZxUoA0djHxLSN12A/VA1hJ6Fiy679Hqz1FUNanE6acEKpX+2sitVvCt9qZeu1mjrtrV62r3kDYtApO8768JR43cgvQpne8jRXY5EsTIlAM5K3qWKJn2I7TvF+4Zc6Zc7V10w6mdslVLlUTKZFNV6UUVKz4A0R5k+oof6WHuXT1bCmoaydsKtUU0Ty7rVHadI80depFy0y3xhKJY8fkc0nGU3M0FDIwGELOsjiOGOpEhTnt1pq/ByBPR126vO01JnexA8tXOpShZexb4+tBnDM2CkiDhvrOmTk5c/iZ+6PbSVxX22XdXTDwUnH7fKkg1U7DLX+UTRsp4quOapLtQzg08ZGM9585VKiWolOrxQEu5l15y8V1Onh4WJrtx0yewqjgvXSB5q96NMszo5X6iQ9J08nIdupHgyRKLmtJrlGdUe/x+j14zXIknsbJcLKTQPZG6fUL/HJ5dyOFHXyJadrP9k8TCWfcl7TKoVyax9OwfekzrJ5joTBOMnPG1zuSGD28zynq1szQs5caFJfuLrTV5QAp12iveRRlqhLoaNCf2WytB1JHbdTSqjqsK0GTqp7nR2L4BtlAlOM1k9JmUVmsml24VpAoK+wSJ7c9acNfxBnVmpSgvXZn7CmqN5NLLva175M1toaFsVQ1r7AK04LNbydb2r1rsOt6dM06JQHOSd1KJZW8d67E1dSbKmaNsijh9duXIJRW5PCtG8FXeQOlQ3Wdd+tMa0MpWxGgVQxUoMmX8ex21kSPqAAkR9Xbteoca8ijB28JpreTC06A1hTNZsqUxl/RO2T+ayKrr1B+usqtoHhPoKuSFDqPKSuqvYnr+l62GWmjU6EDf29gJ/Ow56bQne1V7YT9XYg6yzses98Zmd7TSU0lepYasntddl27l7GwzXgrJ2VoShkewGE6qwU7SZP39LOtCTXWSgrtToofz/rZW9ixJ7grjWwVoKzVe0FfuG3Tl0Hmdk+2Xrt2zz9RWXezuaA6umVDUjvthSU5VeG+p28KSvUHe96kA9neH+GM/XeGtePrrFZOwHZMJ6xvPeoEiK4AVoPaTA0VlUdXS7nD087aC8alfZSf2NV6lIso7pwdS4V29eyFTj2AcRqjVvuTpl1E/q15Wi/qeXsCgaCpeI86ZPj0P+3I+o7rTTqUZ1lUTLsq7NYG6RZ8NGmdHuzB26wfq7fyUoehim95bqicA2orvDToevVZSnQLybTOVKjqRLv1Sa7YpUE4/W2UZrUl6iVeOn7GVSyLy6HtkSUTWaFYxk+uGqveb+usSbHK4n1Lrq+7Zoc7FcrjLTLjIyI11ED1rZpmaGiXWNVrZEH92ZGQzqTLsPtodvIDM/umXt2Qk2FJVdMB9MACsaRyvsHaAnc5v1GdP7aeEhvk0C7TNaN40/qQL2Xj/wCwU3hsk3y0UdQA41dH8YYB5iO3KHttNfhE/WqZ90YSssKH5kdnzE6tI0PuaZlcZaDQAqXV7zl/4s8VJBt3sxpqgKla65Iqq0i412ez1H8JJBP+qy6a3o5egbK7V1OURAvdcJnHVG5wt6ayodgVQUwdmRnLZXVRUE5yfIlryVrktC5/j97HXqMAOiSRXs66s9SkEvTq5CSXskwG479lSrLzkr/cn07PU8rLpKMSd9g7zyTvi4/ojeypJKpfG/obaerQVVSjyUtbr4021WucurQ6WTNVEXdi1MVW8in+RMqmrmc4ZJkjORmSsadm65QlTgluQf4iJOt1LSLxtJOITNSQptwrc4VTRLdDPbHkKlMdA7L3HsWUmQBShR3dLVZyy1Uq1uew8uhCe1V2WmXbcy1KdUooZZl3cBIhNdsZqfTv00LYy2KJoK9nbR6TC9duwnJ0QuDqAytTRvfbczAUafHtht0DIPlU6wnZvGt1Minb0VHJp7NLXrq16qlLDokk0zSqJLU4qaxDtvA+tLKbpyPx1FXWqdnbKkd40764dmQwlVclOuipn3Zr8wmJEy6KXCtT7vsMCh1c5K31BVr1H+OgmqvW5+z6E+omvMR/tiadZXXrvNvoM7kc1tDGKqcKrtO3W/UepSbXsAqSstLohTFQ6jsTN/VrOwgYK0uSBGRIBprqoiO8BJzYG2qZSc67QfZ2lC0qdpnWJWtYFOmietGVRNYSFdsdv2HQm7plnL3OlU0GC+6rXHPvYEMmWZR6MnhWvu1RSOdfsucetUHX/WA9lZqfxtT0VAwlRofrUqbitorRioej18xN360ASafzGg2ZO00Xo1p2gBRrquq1hOnRC19mpLfGdSTjo8yJPHCTrrJp7byhuiMI61lb/sPmtmyuxsHP+W8K6vu3q4fX9uv652UM2a0NeZNfXJ2wq6FQ071SnuFHYGEd7PZQe5oJssZyjSVjZUkpv/O262eM5oXwfqCBSSB/xWV8E12011JTt9sb9XJZMaanRGneh1Xtp45oTrhR7kgPnOP/AKtScZXWdqPjOpgMdlba8TQ+ONggWk0K01JrxByp2mjc5SyDmgCssKrRvWsqgfOOWaXJN05tc261nutopOBudJLBs32XcULjod5FLStVXbyq/qhWo95KNGUp4K9tZ2NbHfU0OjWVU0qsp9hAl2SBp3J2wFfZUNrSTt4tbDE/1J882aEn79t1OgSIOpRUomduvXbyLLOTQjWU0+ZyoPYkWu2M+lLaTt7bkjGS/qNHTCtBoC2pxkh2BMoKiSg7nCUFyJBKwolxNpu1PcmiWd0otYUCmX6ylOpE473+n2ow0VrNaRN7vWCFaxo/QlqvWeu1utTrCkNY156g6rCVXtCzINTqSsuulyitDQAz1CNOiA/Tt7jKe4WG9vkeFJSU1r0fJ0Epvdb6gIVG8PJkGlQyUuth5W5KbPSWTs73W8DVO3UvUqqBjCXsbrjeu3rviKnVbR6100EpWJ1sG6Oo51/+oNym9Vxliy1/HxtVy2cUt3xbTdU9HrP8rFzU/wA8XnffN1zkrre3sMlk8h1N2dd7/CUml4Wsu+p2wpqNrQhTxdr1VWrNDXMRVlR8hvmn+SKWaD+VOYS77JM1bA747bqUok+zfHbVOcI8YuWPYqRWhYs79S0haYmFbqCK2ZZcghx9zWc41uZ4uN1rOGj2M45WfeXlCTRb1byOQulapfJiu0ziLWzkemsSZlsajZSTLvZEsGiSQ1vqGuOhntl1tyqA8qWpULAmGaK+uMhoShry6JmqboTsbpO2DyFFZf32No6BDXbJ27Mg6iJTLpiyjGT+pMOpy6ncy6RU7hrXYFcKJXW+yor265Kgh55gBbn9aQrRrB/UXVO/RZCmzwk27Dq040DtZ0lZUmuuTJO5zszWsHQuG6Rw0Htu+Tqp/wBmu2sPXSr2wO35/o5YV7nJR1TOxKbKNiKWLm3wZrYaJNaA82aTeUEpuN79vfZcmQlM6nbePvmFXLpa3hKG8uTzV6Z0myfaUoyZ7/YA6u0+5Wen2R2uB5oI2Ocb13K0WeKoGP6ZrWOvZxUeyKqrXqNUf4Km8Dc55MmgERa3WG39hWycrfbaSVWxmvtslIMDsJnJD6ABRgPjlV4GXvQZOurTL4y9QNhrronX+39ZXHrNbwr7eiTKFH5J7/IDKHuXR4JWpFNXqmp1Wxl2GMyz5sj8PtW8gBZSEvWb3QLosStn53DWgaVyaJJG6AEHzZ6O0eyIr2VKSd5co7Dfhi7N4U4fakwrxUVvePp7o67WjegkBwkPAd7M3umXaejLsGprch2YrWNH4bdGPlDn1ZcZZozt6i60aK3KYbPGdNVOEk12xs8Ht+Uck2joGvq66oDITvICD0lqd5OiaEfTTqt41tA2p1dfYDWll9HxOz2xBdpt+uFeomzwQl9XtXszcDWcdiaWkVCt80y9fGs7blMdCopt266mg+vYgCly0GdNEDvtqlxXqZtrxLZKc7D4TKbca2u7rQZG97RaqjPDQ77eYT44va9YL1dE112ad4BVBiDSYv8A9a1NVcumQn1pkAq9cJkFNEqE01gDWzQGPH2rawf5M7lM69Z2X4+H4GE7Wc42iujYJovVGs+RDfCfxxO9F1oWg10kwlmisV37O6ExrWnGyZVaZsTWpdxsNYVo0p6rIdtYV65yDRs97eOqJy6JrWX7Il0HUwNy2ceyQKpF3LXZ1MvZyxDCnsaKJN5sI9uqsJyCmgVKvy0NaNM6VQ9a3InLIpREAGeVThXafDWnbe/wlYHE26xmnSi34o6NIPi0aowT/Lk66yICUWQqk0SzpQ2ZFDSEv/borQeVSj2VwBdDQ6D+QZdvkBhtO2FblyvJEq+xtYWdNwTHl1Y6ksDLpu9Y8bLrBtqgZexqJ1ILxBLt42a75x3FfbkNddlXtawrdaWvvvPaknP7OxXXUIJmpok0wFIdXm5ZvmJOHiXmKbtnZPFU1TeFp43VLvI+RHHWx5P5omniq3loWXaDNzP25Zt45o4+Rnke0fr/ACMtTUnBwpxoMtTUZwcbCxXyYO3Yn+jZJQiNa48eMPXnqYk6PKIS8X1ntXG1KYCrlSUNCk73AH7XPHeuE46NOXyMzrGlrWEsjqZTh3RCVWnzcnDLXjAduyzs9TxQrskt7nVBR+5oTOQuhmY4p6hl8U6AI1teu5HKnvKMT1k0ihWcbOky47U1JF9ULutaBqWVutaCQkMZHTjKa1VEJsrqqlNNbaGtK7UBMaPqYS9jRscuSf3b2MKdA8XFU83JyulTT4jh+dUnVay38ABKod9QZOtae3X9K0GwMdBrF8Ut2aK2M4T7hOl0aTbISePjSxtcd+aA6/aYHWrE+oerlpH41IdsAYawOtYVudNJrGfsVnZ3jtNZxVuRy08MKds5yb8kldjkU+jH7rJdcmnrrdEzs6hIG8KanFTWOte1JoqRAxndVrj1tl2mk7df3Q6rHVDk2TCMf2MfKDFD8Uc/zWTr8y03vGdhvjTTWUdT3t1mpyJakEOo0bSUw/ASz3d0E6wl1pqiqAncT72lfD2VWfHSKm+v1ALfZykDy1kE7bqVue34DJpiQja0U7zfjpomuyqmsqUr3sSTkwUVupNaxp80yIYSVKjP0JJ3uTLt2BEn+shOFPUMTT2z/wDxwOmsQ8xGqnGev6hTnZ7+b3JgJWqsDSpfgOvZKOwKn/0HFdeFPXTv1lae2mv9DxdpJIOP+LIa7FUG6exX4WHmXYT0R+wN7K0tfWc7PZMl3Jr0pc09jN9FD8d5/wB7d7KxlJ2/1lVVnWG9YVvaOpnGdAvZo0weLjKzsJCa3ZPgXCVsqnqyNNCYHWtjul0yMrhXY6rqNZdanw3s34VsV6i+0KupAeqV2zszj5qsTwH/ALFonlNCteM9b0b66xqS9LvbQVoNdvsgmlS6ey5Sn5FH7j79cJ7VLjJVmygvESs7E6MUJdr1kkKd6yRmttUzmxo2yeJxOuTeFNW7JDs4yrvAK+q6naOkNRT265v6go79nyVzqlObGWHxGQO4ORIO8rU+H8niEjreE+OzRLjL64AhhPat5SCTTIusgCUwPr7UmqcjXbrk+UuDNemzS5pRB93L1NDgpPkgevLKpmg4/b8HCv8A5GVSqZL3QCWe1MSb3lddoknYt7C7zr6LbvB/xq3roLGjf1Zax3J41TGyb9F7CUqnU1Sa3hXavDbtWZblx6m1Xc7CexsRKwppVaLicq9TuCpnjazi9mpaDqbv36t1e9YTfFRecvMzWhu21JK7sm9UocZ3JL+lAXyErndrQ0bKwbjWuPlKnrXaS95eigCRlU46mlEvWzk7s8ch9eQ3yWtOccXyfJeQ/hs42np3mc4iy2Dlmx9sZEeKYnrMFsIEy0BnSmjLKrmO1zF8JM/x8l8o5Hx2gWOMNUNdFMug7YPaexyVHUl4pWSRqpmd3zNy9ptlB5pLUlWUKjlu0SaqaM4K7zRM0ddnNKHjQsjVBuiFZ08b2Vy5LKcgrqS0swTifYodNdciSZVnRvfbezA6vVBk8J+yMDV0Lv8AUrY4b7DjqqHEaDTWtTgXQaDWCppTtSZNHZxrQYyS9stLWsBKVKKnQy6MhSt1e9dsJ7z2WXsQWbFmK7A5rx1AK7bIr0oP1PwxXt1xTTqK+qMqVjPbs4b7rgnrjT2HB1PXJ3RTgPVpPTtgb0H4DjTmtyOMim7kd6Kd6ON+uITWsF2B6nvh43QkgejkOq1nIomrWaHGpXrjPjrR1TAaa2yxWldyIPm8B0bHtsySQ2KoUa7BWVOjWcYzWVxq+QO3evTRXtGD1pc890V7lUqzgkmh0UZel6j/AN5B9ttAGxnsDmv9xCcZGdDT2NF7Zx2bzY0mNM/tURrXYZaxoZDB611WizQfZrc1s2eyO/8AiIz+VhOvBr17M/5jJNC1C8akRMPnVzQm8rdUdUSOxNE1pZXdMSusuCXWB1/a+lmVRE7yFftgq7y/qaUaNizMdWaNAxXjQgV6IUylDThT1YP6gZKPIAz2G8mvxy1647mRRCtZsKxfuY7UXb+HfbrE/ax1/ILFdfcJGlO28aZreJt3luq0g72Do2v447Z86/Yck2GMacDzeIZxSSe0ipiaPA1QIdztj5+UNAtSdp0zsMHVSOiTeFbO2UlBpnxnJE6jQ/uVSyysqpi9XWCyMqjIhP2HLr80J16qOwI2tCUmxB/kDHa1rk5ThJ76U2I0lCJWyKVy0ijTtnCT/V2uijsmU0aMgrfZd9nCl24737sQ060psoUiTSYp10FC7zkTSY/u2lWtb6wa0FeC69Z27zlJYow8k2b2GTso1epqaPw1gvXeUvaXK3VbJ2zpNTLvr1k2io5Uk6crdToJShQF2VuRy7rqITsnF82GtpjJ7YyMmMhWgmh8t2TEydeyuu3YnXXZx79xF9wnxyJNdVnbi6/eTSGgJlWJ1vbqqDChrWXL265pQD3+uEgKzupKevUXHWu2bQ3kX2EQGdB/yStgYbqUWuyyVLvWUudu04eLp0jJCG4aor841o2s/uNa1KV1rSVuhb/WTR4onsqJKhT0cLWmTqyejuQaTszkyCYLXj/WTZt7YaZAKZqtNdwV0VvGjrCEEg10nrXW4U7F0o1n8tE9W+IpkxrrwCqXbbuNdGkgXjg3y0E0PJ0eRJ1qhr1iQknNdvy5GRYGnWVV8daIr7K9qkrbWp64SzHvcvjc5aGp0327GVvi0yzbJNdWY6HBJN0vyHXEa5OApaXiWu0WRcCcXKzTlVrVEcdTy93UzDRFFz3eKmWYx5Xq640Z+1B2qse9cZ1YWvv8ZY5fOa3sXnH0aowl1psOorx8P9TiiIRxJr6nBJGw+o+Xc1nWY+2LN0hIE7qfoFBLZTkDNabncuinTOT+NMcsXP0qrKKDke+i5GVDljjZ46TaamtWBQlBky9UyfZ3Qujah7jJaLM+umvtIf8ALav2QAocVVFXWkqp5DFU65AvgmnFK4wGdTnRDeRJBVEBS9uoZ5M9m/K0Mnbu8y8k9ZnQEMj2w4vtVDUzHkj1N9exvHTWA7RZWQZ/pkrp0s9mQCdGAdqyxanXZ3rJ1Z7dLtNKeq+6mlnJpuXbvwJda32He3XXCtCYX6hF1Uq8u01nXzsNal3FCozVB1E7UbZ3SOyePzssGgerodAMHX6pKcilm0EA3so/ctH07Kupr67xCpM7db6rQbU2G8Z3OypZo3ZqsK0ej9d52KjxrXgVutY+1vC9Zya34IaV5BrQJplaWUxrZ2yJDh0U0SEnZt0DM7ZlRcgZTK1JtKA8VZaGhSssE0u3WUNOkpZxrVee6VaeusKR2FHbri9r8K/BmU9zk7TVOMz4pT2e1T2PD+vh+AULodulwEr20SnJlkx1ITiFesf/ALOAlVurJJMikXOweOwdhew3e02a1+B2rxn8QT+2b0GdQd5smVzz2lfOzCzve6JazzXrsSm57fh+NDLU6Y0FFEvZSa2+a0aPWTNrJopndpo2lV9jCtpWXva4V9PGntpoVTCnZsV2Z1K1WW7rZqZ8z/8AOFHbIDtjt/FVM29QLSpTGRk2gwUfrmzdTkps3Ve7Ox/vnmPiZ1qaKOfjigLKlgMJCthUmtzKVjA1p7anx2SL1GhCDtsaO2sN6XDRK4pM7N7acqfOwfbtqII0rXUx0uyJduFLQvU2maDzF8R20dsig3q1AMRJ0h9lzjDsiz1lRnYLdKYu48K2TKUduo0PXKFJMdk7wkZAoKDbL2DFEyipnQPjtn7FHJaVrJO8lYimpZSAze56YSP1CDQvXVO6JZ7DvRKDMhg6OwX2KKNzM5ve8ZWgyv8ATHViPu+qz2Sxk6Yp2AqUqbx3oogeu8UqanIUkHWpNEmO96yAq2knesvcsmXPZdGmcNQudhTdaQ3v91Fee/tGt/feAOzGusoXtj0gpdkKAn1rTTMijQw7Kd1OOpklhLUSd8ul5Q0MAzsuEvYb/UlURO0m+vXSNEz4ddFBXZ1kyLpJCpHlT2HRM3hRvK45ujXJHZ7PLbx8ezl52o6sQEe+xyinJDN3QzU9gVruEyz2OsVKtRUbpJWdMTuZMjiieNo5dAuX/UCOW/W4qaoC6RYzjqK9eSCWQ6EcinFPbkq3s1yaepXCTUcbHL2yyWiRkqthN1Oh4r7beLgriqR5ONrrJ/LUUmcvNzPMwcVX1BI66pqg7aiUfGNz7F9Rljjaukij9K/SWOMNuRPWeudAl3DFSbYbpoYetAU3XnNzTJM4c/8AFx7qK/k4u58iTyYl/hkl4uVqW+SKal2xoDOSxgzWqy+J5uFg4uCOCWJl2u+pG+q7z+Djvkm0mqKMBDZND7jKUVnb1FTRp27MifFyF7bGSHeVT2CTQu+z30L2cqgl0T9XCytDrZoKKDEaULrr47SNLWjzwcX6042vGbE/svI9tsLQ6I29lWfxUOyi666SjXbqIkrpy+xqplujYa2iAe4daoWq7WSEgbJodiybTIGdbJOjeX5JR1NdiB2ZNOtHGfXa67Dj/wDtYKnrJR71I2EUC7eQTWDoKalZ2TX+4Uyuz0YxPsOctHbQP12AEmP1wp9Vp2Z21WO6c4w6+prYEnUkPqaGVkw0mlkRM6vQWB9rNq5cnbEKoyfdGTS+4z6GeM+B1Nmjr2x+tbzrsmip0pgbkcperhOj13K6G5JMigoSdbRoShKDQAdibUaHR5PVdjrP5CllfrhSfs1NTpp3ymprdMshL6Uo4bZM06VKGkwr3OX7VpDwUnRWirPy9Ttw5dUapPXI+0YKHrrZtVNDVoDoJ6hLG6Wt0mFe4XEz6yCuRRSmA9t4T4mTNCmFeOq3/XHbLJKdZ2+DlS0eAFaze9zhT102vmuzlUOxFNGdQjqa2ASFKI6+qSleM9ZkNE14/U0f/wAt3FfZ38mk5QOCu1GP775pBlpxBo3Z99DRWxB0AVqnCR+2a3sUZok0euNjOx//ADtK2QblM7OtNL0Ql+usKH3Ae218pGANTiHbyttmux9saKkzrNTnkflH/TFs7wr/AOhtdPm+/mU/jiP6SLbVEmseq0KMzoF/A3R7IC57KhSNUJCm8vR4E9RclSkQQMuSd0cbuZMZNuckqmLt9ZKp1PWaNtGuoyVLLVHUMZ1Jr7Ng/wAR3EiRpnCdIZc7jtkL1F3sM/r23K9u69l1kz0vWcmiQEGVyKSc2u0Z97ZMpTqapEXv1Aa/kPBKXAOxjonbE17iv5kr1Rgw32diW7HVViCOAE6tpNAaanKk/knL37JAj6BugZCZxodGOmfIlWtsn4iIGO6DK/r6yGzK2gBLIGT+bwQmtQ13ndyLsiNxtFZ7J/TsuuxWNUeC9p0I7KKfcuTt51Rmsa7T1riPd4divLpKJYpjCypJdIeAniV9ndyvhUzM6Vd6AWZrAZreXR1xmnmbfwrsqgsT1DTSHvORUCHG2OdmTozct9XnnqSnBH07PFTFadunpMhrOV04SeJM9ZM7b4qMaOxOXSHUJ2MpLN9juk0ssJo5PkE8bN881HJueBvsxYCskccTLs4y5qll5JcnhSWs/j3xq8kPHDa0cnGSixP2nr/dJOX5M09wtljkWfYOzSAeTkiS5y8SpqOAmdDwRqZOSO3bIgiSRtN1mq15ItdUoj6YVR2pk7c3c5Ca5C2IiuNp5E4uOYklrrberjrcwUozWpTLsrTnLR1EENqgs1jC0UNdVgZZreedkwlDWGyuuRXtLNA9k9kTf20JJChW3GyZRi9DuLGtN1Mi43WyifK64I1pQjsiNTvD/rJ28QsNdCcir7byhqhUdI9U0s1qnd0suiWt5S3CSQymwJC8imarfVVQlZrYM/ovcR1b7VfVop+3XJOtOrkNZZ13WB2DD90uzexanbFBdbDztkoRrHyvTTNYK9dmu3r9eNmeM7A4njlVpNTRXJvF7aMAWqok+ysnVEo66CVO2FDJrufmb7RvE1W0lEks8JHbWsXc9c7fZGKGmc7LqSE1o7eu3+4k6e2fqGVJNds7f90u/Yr9nGtZdLRopL26+uzwSQoi9vY7aGjRjo/K3+AfUMvU6c7s7kVeM3+gKGlpp6+RrtSs71OJ4VnUdqHjS09dBT1KwrZjA8vU69qzZ0HB/wByxpKFBdltTpP8y/r+er1ZkMPPDr2cTrOsDrOlo8M6bkxk3vA74DJ5L64O6bCkrqBOlwl3TjWp0pquwrPo19dYH+4HXaQOiloDeFdqXE3W8d7MQaDJPs4qrosNKD7WFKbXYmM/YWNezjO/QlneQfXq6P65Gvxf3WeFZXsiG/TEXSMgayTxG5lp3xyCUP2RD+2l/N5O9mJ9jSmxJVz/ADBe2Opnaf8Aar7oAkMv2tkS9feyQaZQKwrIfCstBZk/q1iTdemiqxoPqtbAK31AUAXt27AG3WKj7Nd9SKAuaanecdeePeeRlKD9lP7KDOy9mMnUodIye7A7CklSPpQeKV+b5Db4S/mSPehETTyyzvIOu82quev2Sd1sNT4n9t4Ib2I0D12jhP8AzV/qCjWiA6lDS3sJdelHXWNBvWvDQutIkvWvPwBoDNao3FGmciad66//ADXBf8FdJdhJGK9d4T20ECjjZhT12k9grOpMMsBvIpmql4pWqMN+Ynusp9DH2lSlo1oDszM1vclds0zWs5KpJ02RTk0utEj1rLSj3YekDustJoVktKWRd4SdtrP2HCtUAcX37HJRMI9z69bUTHkesiDSuFdZA6nU0gTlpveVb5WVTWqxh7DjKNY7/jAG6VRLQXc+s1Xhi91lN9zH/ssanWV3HtM29ejuonwVlpT61TSmqFI8YSo65yf1Q40ZZTXbq8wzfbCIUvELlE11AUL2b8zvsDLlqhCk6uNJqXl6zxaEWhx0iLT/AFNKCDqSs7daazk+RFUbaLpjIvYs8XEnrxzt2j1rZ22idknQPedZcHVEmYmdOrfblmgeSmOSanl5ebl5Gjg5f5OFKjlCiEtWpn3WkgXzYQrFtOH2o7VIaWiYqki1g1duxlppNVX/AMlSkqqOWLOYXl5r47Zn+X7cdUVt99rtvh5KkZvjrQpfIzPd+Nd8qNdG91keHnZmSFgK3jX/AGU68uurI1btArrKu7rjLjjt6gtM0SXqkhuWLmntJM7n3VGnsdb42qEZSZoK3PvVmd5dfYya29cI6U4cqyCLM7CynQU68qXrs3qQRHWjbtasZ0TorRTrWbGWVBFybdhkD22tHrkp29f/AM/tUYpprIX3O3m2qJpENS6f8Qpvad3TJ0HrWKugN69rbWgURJa7Pbsej3/7lGupaeIo7MPE0DMyob3WP2jeXXTc5Es6cTfChBo9uTbgoAoO7exegEVAk6pgnZG/93AtNG+u846d6ytK7KPtWJ1lo7FaBSDeFlUb7bvWXxk2uCpK7J/eTf11EiCoNbzqPinWsHc7wROwq2OOtDjZoH/k4C6G/HqFGuqp5o12VKSvNbTbX01gjROPtdcZ91ltTyY09msJJn2Q91xoVWPm3EHeuOQ41xlABn0WZ7UuXKdawRmXFZM7eUsPalD091ufEKvqATW84xWs6pVOaSXCu0jkbadN6RKe5sJQHGStIydcF6mNEz2zv467KbzqS5p07KLM0dnO3XxV7AUdgHSk6JT9BK9d69AmvIlFXqac1qRyZN7Z1s39OyLM+OFP5mjqudjRhQyjt1i9jZB6bbfwt1eDVSJv7+Ia2sCNAalwVHQ6vOQ2BiLyGRAZU+9hAkTenrjrZjOhwk0KU9djp61ivZBkDaoSXhRVbwrTRn9f1Wnq8ZpdSfb39Ux80BumdAE6eOulNDS83e03SjP1HI3rrlhr2A67eSuqJVIbzjTu09g3lDRNYT20CPY3t7GQJSrrsZfs6GmYyRZKwn6sESSqoUm2SRRPsUwBte2gMH1lQNA+vY4p6zoiWq2uk1jtHNDK55M+B2duntVYLprBOlapK3ORrtVZAGLqRIbKrZ214x2lB3WoN1x0jxpE1h7vK3264zuCs5OQNLNBXlwvMXnFvvrOW9JgtU6JWjVyu0mWeSdJ9hxpZQ4a+ulR3p7ddnXsNMpN6xt6swLU/bXu805b2Tt28cRAxOsrgdnSwFYpvKClz2A1VLZKwOlNrrI2zpKGd5aeVjR7K2zTGFadJT265VaTZXZTNvXISaXGya65FGvGylSOaqUd/UkqnRoShlqEl3HI9eqVKJjR1mmBFGoL3tljjFuG5bErjl2rVFYmo2k6K3M6OrV3/J0zodkL9pDzZYDVupqmzHil+O0tt3qiUO1Mb5Gs6nd0VTLqqOu8sdeMdgl97I8UGtt8u51nFfbdYU/yO+StOpuqidHHTECPKTMjVhSZPL3dZW6fGXsSzAUwPIcfWsJi5mo11nTxctXSPVrQPFreQkXpulrQ27N3TUjJD240VLVrlV1larjZCivC+NernPxUU6sGiceapveFf/LvPEXfJ/JnFR/HeuU/k4WK4OLrxiNMwzgoumkAyFa+1o/ktMuA2aWGf24VMuWNbKmp3jyH8sycrqpo6959jhCeicYfjUa7YUGTQptmmWUrZ0y5+suSg7akNmLJTjL10RBhslMArjIy4mvKjjJn2hb1jponCUveTthMN7MZeusUk6kUqpUr+E9dSMrYr4OjyhDe/JrUu6oZ1hTJm+0lDyEdZW+5OlGicnXbA1oxelLhZpGqBHFOqZ1dTT2CXL8nQUE6S33bynV21/hFUxtaGtMareiidgEb6DMg7sT7BtgMmjXVbTe2mcP/ANTeNdlHXXeWf4TXVMa1PvZd4pSGI/yKbUozdMqHab7YLeh6K6LnzxQyKQ7Y07KzsvVxfxVdaBSVyqD7ZyWEmyR2Z0e00suxGiuyh13g9UnKAswkp7DYaMnVa2aK0gUuKrp110qjvBJkU+tbwkZy3s0hTMbeIUHCt07aap2jM+G4laqoAx7LIMlyucYRWh8Qzb1dHVp0HXdJQ6cmkpnEGt5SepFJSZO65PTxRKGVTkewApSrb6AnQHZ27YL19lpp3vctECk5sf1kGZzzsTi63os257/bHXY10Fd6+3gKdX+tCl6UJr1EsZ3gDXZ2b9D8xNSpsEw2Lo2S7NMuC9wyp1LuwtQ4ePrOmQ7Diu/FX6j/ALi9fVWrXCtzp9OR12JNtUAL2DTkwNd2pO28TVDg6pyH7NYgDibMNWY6JBF640dxR7VvLdVoaYd40i77L+lDRpnboHZ607dmmjTWrNWPXzqKBSFG/wBHLeyuElaMJBpw35WBvep8fIWqRf7M4V6jpHeXt/EGQyK0aY31XBNbw0TvJ7TbOUPWnOzUSv3+u4Ir7FC5ENRkP+ZJregv9ppid5NBW1TRRC167N7dBWjklUxDeiZOrKBFY0TKVMdEVpL1lUyaKCdUa70DEhPU5dFKaD0eUk1ky3x08lARCP8Amcb9kyg/i9kOwZx/XeyuyznhW8qgSXstOwanslMG8ZaDVE+maF3hxmpSPaTHRI4B6Zc/mkd+C06a0QTht+2U6oU+1CspXXCU2kT9svRrYu8mkUCnXU0zoeur23P/ANRzT+vXY1ly7DLnXasirrjKeNXY9SmarqaqEljj1k/WilrXoIC4R11lz3CVhOTCmeXY0hUHHagt1qzVrUoy27C0uGamTStUS6Cr1UsVVcrLVHYAl/si9XASQZlTuxIjRdvbpnDRXM5b0lw5So608YtIz/8AFSorp0KpiO9zXeNBP29ivPOPWqUiIjvnf7NBTR6cpRjES7GmpNolbx3PpKjnK3PLFU868NKcP8s92P5+DmmELDCYJ2Rxsco02LrClUw7fyZ1O1LxszFbvkiKkLv0Q69aEOpRPGp9RtCYz5UbJsZir+3J8bjLKzm6ylT8aOltKSDtGr28XJudN0dmchdGe0K9usrhfYVhizWULXYin/WVaHl3sWB3sZquVXVdnIpKw54miW+R2Y0q5wTVvtSS7xoaDInSoyb2XK0buuyQkNk4SDh2dr3t/OOnqLTp3RytXt6jK46lLG26DOOuvmKHmNHTsL0lziAd4A8jWO33GhemJROk3tw19tJUo51fabpZepSTnU5I6rKShU9pMiahc+/VxkZR6MnjRUuTR5tSdmD3pQ0yuNBLWCO9QDx7VCUws4pq7nl7vaeK0hUrc92dNe27plvUyy1dkgQprbXpl0ygujWJ9nT30uRT22qa3nJR10lfbqlGkCT8Kn/AfOrUqBTAI42yqLfN9g4zjgMFZRD8Ul2jc2S9Yl6tX1driDvKkbNmyqcKVNIqIGly5fwmV3tobBnaOOmRSfdln1Fh6zilCY0dScugSR/sZWj7IaWsv2fI7Vx+8eyupYu9kLXYuvRzVHXdpWpzjU5Dddpl3K9uq0VSLrRIpC5VDXUZ2aVTWbqvsK+b0m08msaGu2dO0ixMSbGgvWNfbQaAypF74iSua3JkTM8fUJ26xrT41uuuVQJlpoM9Str1rQT4oTvVYS1WsBFmk81gfZyzYJNBKkaoXGTWwfPS3Nq6zcioJs3IeqlCGPobmQoV0OGg2+aBqktx3oCxUQCacmfsi+9UQ7Bjfb8kCd5pnbkV4GC7DGduyp11MX8yQPMNf1ev4LZ20IFBhQVouhXBWfs/10s9ZyJ1HUPr9k0acrcw1nYK8mvv0SdOa6+LJ/hIDnUa8KBZyq9zsdd5VeeNLAMemlN04yV7hTVEj+ax12DGT3P9HD16nQiTT9uRS/Z3hSa62hrXVN6J9ew9PMminx1BvClfbmtK3ug1Ks6RaoBthJyt6NXYRrJlPWJP5Sst3Tp0yLyUAGD2prLvtre2pcNdDHxJxs7OuxYGLCOAvGOKdQxkZaZNOHVhHW12VUGiKH74rp2x72XydEXqqldztyX6BlB1VjTJRx0kpkUO6O+qJZpO14VK9sa9dJrkworKr0kuWjQOtSqSbyKNNO+u0f6gmkXJWY272+Mp6lLsygE2P2nfbpWm3xcqTpoIRXAOrOTIhu0nQKdWsaFaOzE9k1UtDSM67FbTWq1lzMcpZchfruLFKa+oWfydWqJXXLyMm83pWgf5fGiVyGWu+OxZYLONJgKmtzQV5NN9pQJl72+9wpKKy7trEouWShuUuBkCeE+2+T7kl1x6kk4pSTdUTIt8tVOcfL3+uVBC2EVW3CRlpKvbp/Hdzf8AH9WZ6TTHJHIGni7zW4n/AOvXCZiq1XH/ACXkcXSQbv6uuOm5DFmaZq6OPeuHljRS1LTM1MzOloHu2lhuYDjaZ4OtKdiOWpeSq3uL5uS+WpzhnUt0y8hs5ZKmo5IipRrq9t5ycns5xw1PeGbqtvauMmc4jcaw4xVOpphiCXZ0+yqaRNo9myejL2+nbONC6oqia0Eroy+LrNWRylbFqJrscXJMyaTfGah2Gyid7LKrqv6SM9b75xiUqjVZrezGfsznFX/zDOWVmUZ6ztK6cbjQay6BlJr7aVOwLQmhl6O57TQhy7fZpGdXJ/YH6FJvWg+vYxqYnaw1RlA1lb07iQ0hvWL9p01qnClKCaNkqe1jCu8qVaHjpqSbjUUmdk/aloUj611wZR3pNDcjDKaJB7Fx2mRoNizWXTNazZU+v18OPRagn5l1PUlqjrNY8pIGVRU7wf6pxSgCzpzR4YUu5wQpcKOuNOwy32RhWnCAWlp7dcf6BjqZnegMup7axpKnJpZQ7LsVdiAvqabZy3Sobn17ie2GuxF0ztgD7Ma3Unhtpo69m6+oENV7hQtYV/8ARl6+9gqqaM1udJprR1Uwo6ikgK61Ww2VRmyq02k+pzRaJE/VBe0Mt2TrW2q7YGqDLN7wkYUZrwe2/c7CmWmzRJvFO2jZ2DF6msqQZQFreSDLKS9Xa78WfOpNAE46NaDddgk+260PhIpSnb3GTe3qKYJ+AMusaT8K+/ro8Be3gggruaMkZg2BrDRrT17Yj/XJNb1p2Yz6ZVDXbDb9hO1DjJswoe2w/HGktMKeukpXHr2HF/AE6+eFbxXs6BVkZBzw9w9/NoUZbqRGa7BjuKyK2ez2tcmQoB0clL2+xpN+n8Y/j/8ApzlIGFATlVo6r/Xydqy9XYGlocFreKprDTpUCXUHu85JJvthpd463j+6GWpKGia3gyguhl1KxO2dlGVtVzsspiDLIz1AL11JI5Ndt3UspnGLve9juHxVoKDHdV5/SSXxMK/+msPKdpqhomTeP/zcQp9nk7fQZboygEMJ6hWMboB0EmXLVZdMhJctJT160ADM6wpf7cfE0aw1Pg8MU9sU6kHHUJ1B2vW6671//JVmtyOQCpnUJmT3Wze/2IXa3PmIVKZYHHrIVkirKlJPTcsDJlzr3OzpjJN4AXjQLvqm9AptHVZNf8iiqHU76O2QQXjNdjl5ePgjtySzcCEsyGX9mZY1MIJXuRslT/Aq6E8dM9ia12c7PVtlXiKL1cOv2tZ0Rdy9ZRVl8EqeuV4mm9BVbGZznlanKofSdz6IBNFoyJa9qH+MdVmmZzpufZ12ISPsrO46qqehIvY/iSZoa7bc8a65cNSmfxpTvqzeRx9pLWjr435VY12grLiqO8N1PLMtzbQnHP8AJTOM1PyFyeb7EKLxqVyl/XGeWaLJouN3ackmiiY9m47tDyVtqL/lnhayClHCnjCk5LqcsVJzjoL95B5KDOebq5iYYdbiQp0QVqquRXVrVdSOU0bdkFHLTKUaRbf/AF7rkpzjGY2m2Bx4rvmqsglCHk4w43XJwc18rL1uZNLU80wXMfQeOgWQD9xk7KunNvpghKrZOt8qXMoNFNLS9knsV6XslyrlerfF3pS+JmtENzIMci8QMUo2zR22pCl4UDtaGfA+u8NbaHR6TBU0IEyBVr1MqWp2ztCl446FPJRMkkT3ruqx6xU7mW6NE4Tt3kp19u77GzVzteQnUspWzGdOs5ETWTL5ly9QFSTfFRR2wSZZORes4HaezNBumpN7CVneL15HdcMN98UChl98F0bH6517a1c9TwbYN1X+kT2rGSacPKydm1J7PZoetAjvbA0bzrusZS1Zok6N7KHKhb2AzWxpmgGhBT83kaN3hXrqTY7LTe7R0BSUatAdNI6ybTqZWq0F0k5fbtItfbWRQ6M/axPrUJolgntM6wvcoxfru1aXOqHs27BJ3TOH1GSjqCumAdU6yAXeMknbP+SoDWCTLku00T9kzwJMZ1OeE5XmnLetaRMKm9yvFEGjjs8H+WN1JXvIVi6kCFR3sqXdBPGuUpO2PupjKuVuZaJ5FND1oKxnTrD7ilbYAF11IWcqnrrB2mh39cAhMDtRSalHNLRog36S+Ymn2g81B7tQP1XW88NBU9caEDJN/XHXbeHgDodmSJpEA20FeZMu6pXrTrt2DVaEMHQ7aeu2B36ptnE7SuGuuxfTGknPHq54m0pXQqKYaX1QeuSrS4KrKmp3hO67F7JNG0VuurLijUrxh27ZPmzLTfhtrSH/ANaMitmg2zrCmo0MvUV1vDdz7H1TbWrw2cyYe0a2j6OjWdmfEr3bf1BLStIy9N511PV0b7KFRRnHNIFGxxNPUqRZQoL8la7GNa8x8RaCtysJS4DtMY7yYjDRh5LTBueuIbJwp0zjQgpS2pO9KndNZ1d9Ep7Ji9d5d9vrhLNGiivw+1klVQgH2p1amtVvzGR8zYbkqVpSbBpeonZgRaxSqoFuRUTr5NbaCDrM1g7pkpCOrfaQCaoMLDWyipMlF9EI8Rrc4cb2KyxJZI90vZvzJoqpMKFNsm9ZcsmskSdLveizWsKLBy5KXZISBsl1jTo0Slu2SqRHWxuIvcckAbkqg3lzrWb7hsHpU5BNXnbdYUllLe43P9E2r1dccpNTkUVOE6TdB265rT6P/wBK2dJvwr/G5evY60HUue3CS3xJQBwpYtxqd5EkpI9a9KoHRVHXrkwlbYmK2oHZStTI5RNMhp/Cra8qZOu8JJveUCNYa3nPQyAVKkjse4MzL2hK4RYip4+w8RySzVjH2Pi8tVybY4oum35Es0s8fJ34qrOh/dmG59OOv43XVoBvi1qM4Jfw6mciktDd3Qt3ycNAxzs9hi2iXGZZV4TcUXyzydyeNUsEuHlNFXVvHV2tdMOGpvtJE1ISVPXOqT9urazjVXqciGIw42a75Hx15KQ4+tbPKkVkTbR7o3q5cZfFlYe2HI76hCUufbe8qk3tRns8vJZrKuuk7LfxrfZ3fKCaL98aa5NoPXaRsnIkJZqIOxbAer1nrh1mmcpGQJQl0JJrCScmhrWCBjQhuYEaWRkQ4YYTGdPn8a02wstbqW3YSyoRLUu6lGjD6kznUqkw83JyD2HJnQbf7DhYiY07dC73k0XXqTOgJ+2h1SOTpKlZ7bxFN4bqfLEr2aNZczSU8ZsRdmqyg076gbyxStddBrstOoQEavYao6mxoqdHV0ODPuijo745Kxmjk2J125Sps4pWEWZ67TyBdumVanWit8m2aO2ghOTsoy+lEhvt2UGmEcmip95BRM4g1t83sUrY7NrgFV2GDt5t8UpZ0ybExlLXP4ip2EPYnJln1fse3IyaLJTLoNOXPbW+ou0kmVwoncvbs6y1nbgBfloeE09jES9i71sftmtCl2dHRqgU/c87uP6qV2dV1ey4z164n20EhrYJW21Yc2oOf1pwXfYVZrtAEiWskJqu074zrvBF1jsnqkv6tD1woRBfAN98h0GKFMsHZML91lKfUfXWOpTY6rZW0z38zYILQqZQBMAeqmtm77NaOo/n5Ob2+GkUl+vVrevAa1hQWCG72htZWX6mdfr7HlrnIkzrF+uz9dhv3bKokhtcp/6EK1m/cg0diNt1ulfGqZ25QVJj5+WNUzj/ANBXXtvtt9K/cE8caJprJEHSUSyu+sjyL5p/NYUS9cqnobKCJ0bmt4Ub9Rud4P2NJuhyZW+uV+ap93gvXTypsc3qO+DvZkNdTbQ0GJuqB98xk2GbZmnI+2jLpHLH+zY7wkJazWqXK0blJ1DsoORy1mhGhe5ycj0XIruGivsiyh3Jpa7vFNaXKmKJcYdibdDkzp8AeTL+rkO6ctJpxpr89nRg0Vo5ZYntnU67w7SdnudUwUrzquh6zMOjbPhb/bCwZrGm+0gUyS8YkstzuiSJQrZ2NJJXm2em8DSp0pp2yRuhntPaAdmT2Z0hbpPtdOgRWk604LR6DNZVbk2a/MUmkKP8Sa7GOvQo/XGewId6l0XvZjLU7IlFpsUmcJfwqUZx0yYzriA/iaQe3VZyXdaZkmXCTa50Fazq1n8cza4QSlDIIqn4OtGkKDLdz6RS6z1ZUv1Q1Kr1SndpXUH/APT0Egax7SJjXavsSnIgyTR0JLXEYHGCvzk0SGaV6sRDKJEcX5tspzm4zppmriYl4+X+fj6rQ11Ljp8iZqSpKTh+QgThzDf2+TMxwIcnyb4Xb8L5kcrWN3U+Hugn1dwCyFzbIP3uuq8SBdfIuq5Ux57umI+NdzUzhtkW+YId8HLNTXag5KdHC92ltOYSxmprIuCdzEhzPXkmOrec8NSUy9yaTp3Opxt7x42uPqcUsUGWlGnj4zwak2oU/wAoND2ay5T+0svGITvIb0ytBNLsrc4B19uO1FDC1pU7EZdHk5oXrhIdtz/+CHfbIrpqaank11nytHZmxae1GE9llIrs5Gk3nnVyQpd8k6o6/f8AHt1r1aXrn59cP7ZZ1fLludE8Rr7ETMzQxLW8aYlqZB4zZI+YSwu0NjjvrjTIZxUUumfsmW1C6iu20iRx3KA6JnRUv4up7Y76rhV1hTM6zT02dSZXPE0kkmsaSdZ+T7VtTQCdTKpJ2fyJtWmp2RW/Dsl6eo0qToVtd1regl46ZrRdNO5eyLiszIw9ZLxSoJagqQXde5azMp11OwqZMinaZdX02sm/I0OVKSrFn9cuu1LnGlSmOgJHX6UodSb+2sV0ONDJsfqOCzWygreyQUwk7Icu3rjuftM01hLNazTspSjRghP2+qdhkPqwu3Kd7ydE7yiURmhTSnlKfbSnU0n9ZnNJNCjDIVR1cKF3lSlqymql79p6v+aYH/DT7jXqnpA4yEsLS/UiiJZB3KFTrr0FqtNifkWmpyqorWPKU9cFlME24m6FZ2qRWt4SKGFDysp4spOtGV9b1itUoqg517T2ydOxtfKwS6VdrhLrwGh0rsxWXY+yaK3Xkz6VhQrh7Rvr7rGkonCQKWN9vDb9c8n1N9lDfZl5BuTTDKh/9B9ZL9zvU71x8v8AJXq0z2DSo7+zsrqeFvqKbmsAZdolGVTNEl/ZEH7OqlXx+u9n4bZP495MjW1Vry6Oulprq5VPWQdO9FCedio0ErINo6BpOQwpmmRlaaCmt5MsvbOwgqduuqFeuOicpJgTqs+G+xrWmU7a3tp7Tp/N40MoFESaTdNYVuewvaxGllSnQbZ7UOWKawn32wa8NlanoU7eGSawdVrCp3oYfNTQWxjAUZf1pomHqVkvVUO3c3Y9tvbVdTTdudtSh712ldWceURnOoS7beoZv8x6yGuVrwIppdy3V1OEs0znVodgRTtSYawRN40tEiK6wrZM5S7lFWvR1Pt09ZTrqOuG52ZDvxaDx2E6w112W9ZNm+grfUKRGvH2TTt0YH29ZadAJWOuy5yat65uh1nZnjcfXClhDsGtFb9ygK8Q8MPK9sKkwoNgI1MhQTs2aEp0hjSqFVpx+9DjX265Wq+rSP5GzamylCFlU2MpyTNTrP6CKiem2etdZfQKa3kv2rdrRvOKTavY00d+71WWfsC3pNHrlT2pSgL1kwJoZ7FQ8ksccSNiMtzEkgTJJquYhmS6KtujkeBqDg6cn2rUt7yvkd4ZZn+S9PD8d4ubkSF3OEsbRp2mHMx/c5WoE7OthV1JOJPyHq18KJdkwlNYy/Wnnm74xPjTSzbfGx2R5mK6ZBM8byXycsc1dRg45OnChPrLU9sutQje5GM4uI6CBqbCa2hhLsA7VvdJMaYpidqnK9iKFR5JrsGEdAElQMi9dhZ1O82e08ta6pNQC5y2LQRLQVVyaNHEjp5YRHOOVlR0JjTJp4568ZjRNdkorzO3Uxo3NBv9yKZqh1vVBS+jT1pId7paGVzt2Bwextu2RS9slkakFKKrTd6EOt7mgkJHDRLLGpnsaKdnKdo+oUbFaZNcJ05KEsq6M5pevk7/ANKrjpMU5J+vV6mnfbWI1OO5onD+yZ1E0EkbMA26FTTVKmj398uNYD7If95yShLjXXQzP1UJOvYaEck7SrVNPR/ZZFGiceNErFXabGeryicanEtX2pvVFZFtZ9bqianwMpRFiS56seUhdfYlZ++XJUsqxPERlbn2TqnfJp31OzRvDToex1cPbVF8RlUwj7aTRswBXE7HZdayrWkZPK0G0ckf4/D3QldqxFK7dusAO1NzS0RlIUmSj11o9cjRQDsvedh2rqqdbXWclPm6pfrgvg9T+xe5HZCnZ49yVtBlwTqC+5SHuVWpDAbe1BPXsWhRnZN7a6vhJVdsXR1PrNbyHsZxj9jHZQ5x0dWs2qUErPbJiNKSzrWdUpQGcHVG0Gms6nVzS8nU+2xwGd1gFQzSkVoKGiVrr7k6qdjJSb6no6SarI9BH+pokAcD6m2kneUTctM29UyBGqxQO2VXm0V66Q8cgOu82VNIyVOn+CpqrIi0V4jTVvszo8ETbfrNIphow6u9VK8eglmTKrU+KvuE7n6n9Z3yO682gDy1uOhG2dIPRwn6mz6z72eus2zLuNbcJOwiiis/4RuuRGRN40k+mw8dh6AHoAUB4aVlXL2ddu5qdDutZA708ntGhOxjQtKDUqUIA9/qYaFnPJnsm3kTE7bwkl8uvq0RTcbyvo6y6rzXJqeJZL3yhnU6qyLHYu6Naqho0rSZ1HYCkEhqa7CaoGlKRpkBxo6ISaWn+29MjYLt3oh2mdfGcqUAU20JP1exQ9XIkrdnXX2w3qnN7DKj82IAYwA0KfXK/ewU+4L5lg0zlSddHcYIxXqbJZntjK1rAWRX+vZafdpp3jPavE6UbmdT4m2XL121kU9d4b/26/6FFpa2OuxscvdBo3vqEl2ThPitiSygkJiATtlLAte7kJUul8Rj+s4+y7D/ALuO9BkTJPQDtVJJoqnqFeFM11x0LQJBpQJA0Ow5Q9Qtn6LU9acbJ0Y2SNBSm5uD+EoLJCmuVHWTfrNRTMuorRWVuePJ5pKYxHka6cfIT9L4+lzsug2IFc2suu9LUclVzTJ/F25NJC9jPk095onkR+vDT/KN8vBx89dsngTjAjtI7iqVkVQGIv0Xr17JonxSa21ZM7I323lV9hHlvrojkTrLNdtxXaYepQJW4oWpLib3DHx2aZzm4LgliJYkkq2bIfpXuVRtqo1M7Io9HbNOo5S9VnYjjd1XYKEal31JSs7S/Z5LfyYprQnb9Gfu40/mQs8vt12h0V5kkXZtj6uhV2N1VTlyCbNSLkcTW1ZCicmR9bRVIH+uX5Uyk+zor/qZezS/WSniqXcnNtmpOKq11TU31o5I76yl9kudz1Wv4p1nZ8Ek71bd6dHBcTKKFKE0TxuxWNhWvxf8ZlodEp9Vl6tEyoVlQs6Tivs2Mzrq1RxJrhtqXNLe1vrWNiqsP9iJ6PvbtVY7Jw2bFs0bQ2mK70RXiZ00jl66gkFS7mCaIxdOhsZcjyTS6rsStONBPY7NTohr8YE5FrkNMoalXOWuVE44ion7RshkNdRzllfWK0FLSVUyW16j2pnG+tOXUdRzu1NURXaBziXRvY14bqpMZ7JlhPgBPiaQ6tHtOxl3F9a09yZ65cSDsrq5Nnd00U+Fv8U51d7De6x3SGclaloqgkEo/k9qQrJQ0gfYz1rbxS1NACfpPijX/ItXRmyTaU9tGmRxmnRkyC4EtOVtXcp121RKC2eyMvQE9lc7EUK0+7uTTrlnrqmHtMuJ1NjX1yf64CenbdoxJNazX5k3o0tBWsizvsbfwnfUcQ1vF3Ol2Bkm1CB9ywqcJCQbgoKyJBV6BLSUC6Vfzb5ilTp4+rK4SMmXINICUbUN7VqjSESiy/uUlPrIQOTroOR22rI+6RNGSkvXFezo3tyXxkJ3ofMaCfZe2xKWdN0xO5Fo3nZXOpbtlfcDWIe6Tf2WhorLmejWVpDcSMplSddCtE6iSbcZpVJ/qmP0CQoKJbonzD1mlnfJsvcuwPoih1cHZIu5hnChfeTQtCflN0SOS+92e3btnZK989A+jtfpPjO/Wp+rokerjQvVZAKxrrrd0yUkUMhUqfVBaR5UJQIa1JPEteu5nrkV3BU3bnVOSpWTr1ybPzJsqgywfMoXrtl+u7nqOur1wl69Unp6u+/bChlwl8RV3q6/xJaBEruiRMiEBX40CGM+aT7CjRr2KAkXZus99RN0OEpvTRMmyinsKIKydisKHWz6+ZsdaukSVDqYC+JS6yaJ0INLgiGv8zx9zb03nJSVqYrt42nZDWrNA/ZewSGbJXZSW7i/rl0NaewyOXL44oT2yag4948p2Q6km8aEHChVWneg2OTVTyOhe2yqa7TjyPbDkuk2Uj2zkqyihrfucVIrhJc7GEpA7VWssKlMZ1MmcATYN+yh3mhlg2q3qWk4ouza0i48vWNU8ZNbOLdfId1O6QZ6cujmmp6iNzSQ1d6mSGAT+T7FEWVXbOXc1o4eIEqiOOnSS7rrxlskZ2e3RZZpomfr5VNSIrVocVWw1jYgvPTXyOhxqTquSpXecYvhVEq5Df8AEgcd6aOatTvkYbCTi4Imil45gHDlEGmCQo54Kk3HFWykgsRri7Sy/G4D4/BMtXFly8V1M9lWjZ0v+MHW+OcoVF7fZy3rE9PjxqTYNS5KzNL2eqN0zNUcdVUkrE3Rq4OGuwU9doOnHZQ52a0PBS7jJm+2m10pFHo3BVEkTJRJcpyFBQhr6ydlorto0zKxodnIA+bO3lh0EmCa7BQ0uXR1MmGq7Kg05pEoOS6tGJ7fV4q3RLcL+8cgdWw1o2+SyaMlqrkzk3PGmEnSTAdYy9VNFS75JKrocWpnrl2dkBNu6HrOol8wkdGVAU0VNdTaJumnciVQTpiTrSkeqdWIN3KSiGnb2O3bLs2Oa92cSa0dpSk4hDxHWiIkkpqDrNCbc5bQNVX17FyprA7ChSTomkNrJVOdmUjF1Qsj1c4q7cinKq6P5Ro3UvuvDRhJSSL13WSolJetGXRVCFCadBPhOzbUbFyNdjbPbWrpoF6nWdEHVrKkbE7UORRc9hNrooJM2TWsZ11cvVcm26js66hvTJh/YEWXpgjXpanWQ9d0lToBAMA/lJy9MrjWkVTsGFGmTQ6nKoKA/seXpsC/tbve5UZ2udkUZrtTpW0CNeByaePYb2Crc+Egis9q7HV1vLrqBhS6RF2kSR4k6pSQXKmjGkDSteiM15tN409dOyhkXUhglbH9nT7vWO5sS9z9sJX7JTOpJvrrLVrsdia3juqMCZNLWqB/kWiheouJuOqUs6d6AR3WUg40VbrsmtRr1UO/g+eIdBWtaFUrQU9kWdz61o1jIfjBp0GtyDqWlrxSpCWsda9tKlkaCNUUT2BrsOyPrlg2JSaTJXZsARzls7TqtNU5xz2lE/6CnsDchpPOunfWpzqm3LPNZVedc29Qzkk0OQnV2WPgr2NcdFC5Q27woqKUoZ2NJLORrq52kvrhck6S432y7GnQouxWNvFZW87FT61MOHKDs7lnpR1MnkmadvJLfjy6ZMuvDTQpsGocbJ1KUOkT9QqGQVao0oaMl1dYXe1wt05626ueyZL0oMs/+huBaVZJNHVE3aNazWplEK2nGvXTSMs5a68m9UCUdWpZOQOzBLrGfNUythjYVJhc1KgveUQ2b7FfXGStmeRIZ3GdZKk9cK/XCmhc9/C1kJwnZTk0o5umlRexktacaKvOevAY7UfZlZNcgldnilZKYvt9Gl67PkVMkyEzjS6cv+25EJHHe5cK90s++Np+KWjjLVVkyemIMm+QsxkqVIUr1sNOOpNpooBqGdJFEpkQn2bu+7hPWlwdelh18VIdATJ2vkl1JylvEUFSb5HiYuGxqvKbqWs5KO08c8Xx5meufLnqzWEtT6HlJy8DfHVHxOdpuGEORpRaEiWGc5Rn0LirYbWYNXyGqBsJGuLoxIqdtLxH8jeKzUysFuzhkPy+O/5hrfWNDXJdOuaNBaVP8OyG/wCNc4quuOapgvr1JCcvqUVjuDWTe2dfJ+T/AOuMvL8nlpBZ7cUQx8deu4YU1G6n2pSNlyVwpjETIl0TLZ8av5Jqsmk3Lpfc5PEoRcE6miVZcqTvt5IfqiA9jyqAfEklIlQEXPt1aYkdGPFU6cJ6fYN9RYEPK/rpX6eXQazWpN2o6wDzdb69SZeus2SaE71oFJRiCuRXlkjQcWqnY0TdBx+u2EsUBactO2W9XqRF9NhsveMlNZxoEy2BLJO57GPIL1IiXlab6cctYTcjSPnnHO/KEVMtZoR5O1Zdfbzk9N48utbp9JJ3X1x400NKyRlzuXGk1OWszhRU40b6kyECANLkbwSsqnfSdoAFNbSRBlYJlHr4VOtfVZH7HHqtGFTNewatVSqQOQJc4ySc6qIJqsRDTU76OEhS4yMqTJX7Ww9qneFGvYoYN9jWU/VckO2s69vJun+uFDJi12cin/TTKkd5nLXqycTsZxSqDGtyaVrGUh3x0Mmzads2u8qa2rFPY1Ix9sD0wNnq6mTCXu1jWycddhwoqvGjfhYSGMnXsRTU6ykK2RXiKBPUdM+cisk52N6wHaESirSXSkw6ZSRnD3eu7J43TsN9qnCSd7mn7TjvYu0TBOyjfb3CHwy9wDk12UGu0ugeqZxoqtas654vVZ+u8X66xNz2V0ae3QAdVpU6yC12ZnKlE172xft3x+2s0yaxXYY0dqzxPD+u00T6y9Rw0PXJ9p0T4Jr66I1qhbBDKk7bx000g7dj9dOg3sr/AFVoawmtZdUAla65L2WMJ3VONGhDzYsgGgKnQ7nj2kiBl70Ba9JcqjqmNarRD2VyOwEsuqMunr2we2nL/FFNSpe52WzocZaDKFnS0H2yweySEhjutpxGpQaQDCUExkZ0dXqCk7Ol1/HzN5TVKkSp1zj1W4q56pprU9Qn9MYoDVwsvaOJ6osvVoIsk1XGaF1EVO1LlRqu3V131s6k6zk4pa7Zrf1zkkjhmcuQCcpeoF7nh7JTorOxfG7jemieTf2Kq9+NW1NNfJk5dck8ySbebr1VpK9Ld4O50NMuHJ1Ry+RnbkLe6zoThREpiK7GzZha7HtItF8kXZgGvOOWY6rQpWXOzZdkIZ/I9trW7NVRrJnbpdROR/YSzdGFf2AkTZcjKDAUAU9SWxKEQqtPx+SOXjb453RjJt3d9KAgTnVrlJ0Yl3c0kvV2U+GTC8usaWVIhqOwNd1WnTT2bRIpeslf2pQZnwpqCkrfGCSGqyJOtAHu8ZA0ssmpsZmaydj4URLTz0HWg9wl1W+Tc8pqKWZas7cjRU032XZIqa42SZrq6rkCeoyzBTDxHKMlEVMny6OOpQfaOTvdQ5xfIOMqa4+OOPX8ZBto7BOsqj6yUDxqjRQN8hIbvXNws5x8E9ZeRiBZr+KewtyW6QnTId4+ojKKT2+x07/UqSNA8aUSE3Dp5FY3HFxckXPY53i+tWlhQ0hsj2dvPTHKRHPz0ciV8aP/AGqNtxztVCWDqNSIcTbvY6Gc01L2aP4kYP8AixLCzLpC8ameqm/VV31Kroys1KO+2uRQTZjMu86kPdKCXGm51n6Grc4tyGruqNASy7g7V5A93TtvwrQy2k6zdOqbkaIymJrTH9US3smXLQJtiKzjU71UclVvXLQzvB6a15/MU3cBOx6SBN9eTaUKaSBUl/8AnOrd0UWn/EnrrGgPbT/CSa0I/wBi3fldknpTqqNR9XaB/n7JsBt2QVX1eIkUeIpdHADtDqgXyyoBUtEp0m8qBFzl4muHJlnZnUqXZ9eM2TU7Qi5los1pPs9h/wAZqAiuq/ZaF7iLTx0i12pvAWUyPl/HeZ+OKEqyhKh1ZHE2O5N/fPY1TctUUSM6HlDZJcn11M+KkL+Xa2ygNOHEEUHGJJl6mkGXROM0LSOnubCSm0a8JOm3r9TRP0KyeKqd5cya2SGpIl7srIIPUJ6Zcz3kOpFaJskxoZ7Yu9OTMytBR1nTqdh2O5nVv07DM6q+1kq/feFE0oVs3it1LhSGiLqYQqR4ymAAMvb1SfRhR7AJ1lvOO2aXIXsGaKrwpnaRSU7gNeMunOP7bGFHWOvzJBacK39EF05P7lf8pIhZRuhsMK0+VTP53SdsUa9uz2sjVO0rsayg9ydbdlj+laraUVO8Q3IvjrJoJV7NjqZSdZLIurAMit6x1TrEexhJUriy+habMmTXZX7qVYGh2+g/8lkJ1gGlWtSU/wBpNutDjrY5QgGDqReQRKOQGDHV/nGbXV7jk1njvNk07vcSUbLykQMfrXbJe9rjO5rb2JMdtNMGxcaEzsGsNe4e+YyOqx1NDhqduUBvXY6+GmQSQ9dpest7Vs7ddb4qGa1o7uxKfCpLJx0FQ9ZKHPkT3d4VMS7mvq0zIXWjmN9cKJRZlmqo4e3baLZUpPWTZ6StS9eucsMxpk7ybIJXKlmnfgEjTqgTcBm/oJ2P4zty2bJSWzWVreml2SRJQaJP43fHrt1zkpeTz5JP9A4G5O0dWOtbYs3L2+yLYhH71exv7Ek3vE7SuRfWeoVXY3yVITkp5OMjTrct6xjrOiZkRo+lbwpue2JfXcTYTrLl7BjbpcCiRGWnrkvUAqk1s5Dex5Cf2WLnTOiXXZT0oSaXRq8ZLoxlaUjS7yqZQy+QmaMjn47Aw5Z3LlXOq3x6Z0u096CSYyz+EiUZ2Jgk7dV1ddQc7PU0bn3DYaWnQYwn61/8Zx/TCY/zlQPIYWhTVEHKRUTOVLFOVroGNV2mcNFDghyLldUXOOGZ2NLVITviKviWzSjVthTSBfLJ4XslkJid7jlK1efNrinhKorhnbjR0NErTUnITbLaTwuuI3PZ1vWRIbHlWCVJLrqE9JrP5bqyUardMQjjVzSZMkzo0CLyp16nHPSlyZAaeStUTJRD1J5Yo65Ya6g214xLtQOqZddWWWh5Snnq/ep8Yv5ffDhPix2nj5HjmZXkSimJWRZomWca0gkhOM7PtaL5xSk1WAVHtz1MKRcUr7ZWqn26oSCROuywdM2HjyhQhFee/wASnbJ/46eruUU5DLs9GJalqepMib1GwpaF6odhldbFqyc125qSpOrkb6kEwyqruWil67WioEHTTlVVoFXJPhyRRpY/kplimINtPJ7Pew1hS6CFJTDTIhJ2ypVUaOwv/sbeo0dp3vzq8ptMjdLvXSsP7DmwFCvFzynWddao7sr2E3vNLLoBRw4521kxPYpuQ/CnqTjK/ZOLZvI42aCjj2tYWRGkorGWtuVR11jNbF9TtjR08TSVnLM1KZx1fFTFSf2nD4fD/L/NjA6xlYZOObNd3++Q9nqtDO1HQYXKkrPWnVUMzppR1NnUXZpoFWcJWVZk0697dsNHVa9pyp9AaD6EyK0n7iMy5PMHCJ266nFCq20b9N6dsg+stS3g7nsnlVJCunGgRWiWRJ97ImkfE1nLqmQFPGqYAw0W1iD9jpKtYhGnCTqYSDrEe0uVs4mTjk6FKfQTayaZNFjDQUAFax+qpE9qBqfr1y0kVivqonWFyKSO2BRWAMup0a3fWTwdGsEFxQRe/wBzCTaZoUrOSVnZNCIqVoxHqonphRNK7FcqfNiAeTJ3oPFmRd0Ob7Ggl6qFJOsHq5oZXGlBZ1VGgCq0PjkUUIkvVxkeIwpNTnvdyArs5Q1O8IGQRerJt3rDdPnU67daplY1W8AftnK9ZNNNTrOvhvqTJQ0ztBaWmCt1NVJrWO9dSlA6tNNaanp9idR2lrUGMtaHlda1K7O0KoZvdej2jtlKyGGukhdG5kbjs0eWU4gSIOzK0gTWjkwJrdFS0ok1EuhKVKkPMYt5Sy12TmvdDK0rs37FBcyLM8hOc7MMVKt1NZFpyuzlP5PEXkXOwAZx6K1nJTuZeStiMUaRNN9SpHj7ZFG2mvrFWm7o21JLJVEzqiyl01RXsydSmq3JORBEqVT/AAizyDRJyahKxiOvdib5K/kVrtkU1tuE11k6xdUal+6QarIGqJzlhr3JpZcJ14kiay6fwiWpd9v+IS7HLiB2cjQkkUTKjXpJL11v+RLRp62RhoolmfttNNKcidvBKpkZkl346nH6yznYJAF0S3LU9sarqUFP48fLUUycvLZKz8q+TkCePgHg4dEE2TbESz1yg7eRy3V+lNVOyZR08hCpHITVGPySa6l81NsV/M8tARTUBk8y11yqK2F0USN8lT1nCrQMjkuZZeLlblhjVchWFnZcaL24VoJb54eN3VlHYvlUEluo2t1LOosr6twzXTHjPG2oeJMmhALptrXLsJ3VjMy/I6cMLhzh1quYnk1/HMLWmJZ1CcXSReWQDp8aT+Oh4iQKwkjk5Kf5Z4VqnlORMKO/YvtW9cWvISTbOcWp3vkpKKyOUrc5MlbWrmZ9eSu/UeUmplrkm7NdSJYZmJlAKfE5KhBizk0kzULGXRMfa772C8kxdtap5ZQgTu2E3seT6u+PkE0kszolCdMaqmi5Z+2claROGuk6q2u44UVuamQVz1rLkkNsNvYRJSuN1RuJTfYn7e7iTqvL9fIO09slaVoqdk5yzoKxrrOho6tZwc/8nG2LuprLouUyk45Fjmf5HTQPnYZZJpaNlK9jk5SRM79uFpRa64RU11zkvfGyHcdMVJSV1gl10KjaTW2sIOoYUlEsKn1J+rg+dsqmPq0TSuegznb/AOgYUk7dtYzRLJG+StNbnaH9dEtMu43va1qUy43IhSJs11dTQ6kVJcmzsjVk/r7UoduxLpK8PaBa6KZe0nRPXSzQdgamq3nLD+ZAsGVJrGh8Uf1Z+po8tcKP3Gw5EwRrY0h72O3gJPYndS7+9V6jLMMSTSLB2dzJ12zOoYIh31ImWmsdp4UgZ3X9Kf3GvvrOTby6xd0AUh1YKqtPXt2kseORynk5UAj+PTWmpEA2an7O8odIcuutZA9dpOtKzsE67NYJtMlK24hyHhoAWiq1lJuhmtTvGnsY0mpwSpcLVDOGVTdKBOKCTiaWc6nUAlaVfq0nVnwUE20SS52DkKWhOuNTozZ1ZKXXXGvNDRPXGdz4qsmOqUzq60ae2XPfWdeoOAhh7XUJZdZr7NC7oSftROHbsysDW32ZR76Ax9oEOtuuwOjuDtk6uKzXWartykrC1KiFaGSodT9dABvyjrPgV1ME1pXtmzfioKFfbQp2TGtT52RHNqAk6vsdhMit72qOFduyq1qsN01p2kmNNPXERdAb6ge9s3pXJPymq7V2w1NJiHWRI0zRU/XRdPUkiF8bkKc46o66H7U5Pu90fYAQDdns6YWq0jreLqSAr7UIhrLZadyJRpfsLyqghT4nHtaVvqBjrc78n7TVEqpfetMo1NYytVnLupQgtWsOTyqY1MssT1kDqsrk11mV8ZF5J6jREqNZ29kGjXTPf9aEZbWd0FTfE0tHYnJSYayaa4dmh4XtNeBl3qdjJycOcX8dlOc66kIl/jmkg6G0OWqoP6s5xXSphZc6WSZrCukvUnWqBTe9JOjtfYkrsIjprDliuPqkNbc7PHTOJI+q7HJlRH1d51WtYRtN8Y2tIhyaxrsbS5K8umt5EiktIVrH3k019RrBLGS6/jo1VLUylC5yzVcg5Um2Z55u/wA4g/ioZXsbiHjqu0S3vSdEk4uMlpRC+pXIzvV8iz596FGmq0cq1RriiCQStCydWpCLYaceRrk2tTdrnLVKvHVMS5NCzqrqLah5QGkrs12JePec1cNT1yA6+8sXM+RyXNSUXVT2Wn+WaP5CiZeXoO0AnWTNt7Z6QbboqlI5906vk4+WRq5h5EK4p4zuqXOyUEh4+XrLNsvupUGcLiYA/nutD8jneceOeCm6mx11e3ap5tZx8ci1h9pAahSSpgpHjg4mpePnSWlsqugqcun+LtzSnPyvx6Jzi5btbopqa7T/AFyIKKzkmOK9THyGiSCbrmXk5760D/LdBnDDEdLiriyM5OZ3tiXl9yIUol5GeVlg8FjtKznJTKaZW9MzcheSRutz0g0R0qq0/wBmc31mu3FR7Ly0t1nFWqBp/dNnmXK0YRugI3L1ygJDJ/tnN8nrPVORVWeU1M52G0L7ukme/GU8sVekjieOu6zvVZR1kWhqtyu5XHlukE5PqzneepNVXVtIirnBurqciW6XOOGJSig3t0gHZ6m6dfvDa7F51olK9QZK0rL5Mk1NKkgpkywUYpLOpe9dkSHeaKPE82VRZ46DWb/7t6ySrugxtnQwjrTv7DU0UGcszdE59xCSe3uBp3i9b1nInmxX3OWx4Ssi+8sqezWdip3kVsDLQ+2Psow7+q323sgXtnVNSchpE6jHZOsmflbxqSdZKzJts7dsK7hhfTepp605+8e8jxaY+u8mtUIvanSv46fMoqUM6jpzkO1+M+yYpDk1Q5NPasvdT52N0MstdX7wpjLvWQirm+xrOT7UTj+7Q1TOANbWRnxNgsSzKruN67KbE61LgbdY7KNA1+y6dZ1XUgu9nEujU600sjWMqIQIonIr4a7+xVVTTX1urYo5BMJSVSnaZQgVnHr8zwFZlre1TzDZW1He8je1YooTHfXeP+aQJ6pJ01mtULfq6iXquMjRsArJDtWnv30O0cPJ9673TNFGgrrVbYWgTRWsQEUleRpu/wDAr7awRXd7DwXrp7FSGNaZM9Boa7V3D8KVCd4TtXPK7bZOwDISrCvmFvXthJUezBoyhP0k7OVQIZdE05FDjJ1oJpqTDX7hp0JPusd6owB0FTtBJ1pdiGVbrqAqa97dsEa0n9dBPvVn2jRFtOE7KMUK1hZMsre66BoHLWZdNemyft2zsdlC56aWa6yI61kUO8t/dQtToAD2pGtZUantnDOhqoqeSnfJqa6jtrtkcIfl2E6yIShf6waD6+3QVNHZqWmK6SuRL1HKV5dn9h0hpcISVKAUnksb7vHJUridZTGT+MmjVUhN7jWNvFLOROpqZ5Z7cAxxWcfD1o5Q4etdXr1OOTbLElSyHSKpf7Tsa1oZlqky6DzER7xHI/zffqVTKDHZrRTrICZIxNUmNF6BkHE8TCmcd1ZQvmxl69QjrTp+86ZkmmcrfXJ8rdNJQF1UV1zk7Vx6wkF68tNywcvP0noHyrqySuXdTrhs7XWUd4q14rt3k8CFSdR+QRcyTsewV1brVdRrXr2koVe/1TlmHrnInRDipmpvkOSQcjfZ21Mg5fOE0sS0G6GL6ykzO8om6NyAkBW6XKt5K64bikbs4+FrJY57avl4uOpYyHm4oqcdWklVEzMNyVc6fkRNdXkume8Py6OPs38spMjliiqOK2be1chI2TzR5K8pXL5zryz0OLl5Z/kM4uSGkqJrmZqmNHWb5SJ+9/J4OKPeX5nJxVTMVEyh/M/H4Zg4vnb3N8LVrsvp+tMTNE8sUUlvfzOQq2dXXJFNPx+a6e6UWF5Vy0pzQc1bSZmupQ0AcXGfxM1F/ZTk+Re3t/7LNSnBy/ySS8/ITGiPkVPGRnF8l7NH/tcdsxjBRJXDXlQkdapCIo7ZHIKrHL2XapyMseUTjRUu+uqKBGcjRrLk7FFX246zgOvIy8+oXcmzyJ1JWVxn8hnJJOrxRn1rVzOFJYL+ZycZWlmIa7FxMIYwsiSklSnLHXTX9expoxqw1lhUmNDOllid4UTIjLUqXFbKP4rOIA3Eg8TNU9WIkdTRX1WUl2vr1OazmqVF1WRJPGZUvYrOO2VormmuPVA9RGdU7Z3TWIUCdeouRSU7rdSbdS7xohVkJ9y6cK39VXW8JEqsqV1opnRm3Oa9zKNCOuKyw1B52E3QZc5eu2SFLvllUx1NMgbn2NgySdapxtaZx3SuAVPsDVvY0acsWgzkoa0Qs/ZdUdmzQJdHUSV17cGimFl01JsRonQek1qKCfRPcFJKR1Oze3yKTVZdFyg1PYnEpXdrrbTVUoUs5MOjZKlb6eOuOWqd/IluUI1xQcYWNablm5od9uxcK5JsVBmikXtnJQRrHt1XA91jBJ2detYT98CPV0supChvGXQkya9gBcNdWcJCezxG+1F0TQvIE26unROcbsNVIpOdSarXYXKTtoabkl2k6l112lL4CTaJufslGnCvs6N9lxtmVCmJd9jRto0Y6caWjCdKOgRCwp2V9/L2pl0kjj9b9NqKQRXl6V029uqoVtftOsJ+mXLrPNyZPIS+3QyJ2JnaeZTudYUAGMm9Zyn0kDTWgCUk2EzlJNeTRVfYonKldmRWjrkJvKsusK+xWXQDWMlO8Pq9Cu0yXkXpwrdKS7do/YcuXshMs07KXdL+aepuZLfsThRNKbVZD+vutymXdSAcS16NO9LcleFyvXGgtnJd3W49pc6+rXUlMqUGVlL1k6kpWiqHO4TJjop1cl61yUxOp4r39Ak83dAssAK2r51Bv1tesznENA4nb0mzqOS/UXtLLWJv9mun59dup5D+NMme3M1lJCTjU1RlKmMVpTqKlROpAJ+yNT/0ST1RAmguuWOU7E/IvdnDLxx7yA9qGj3J5L7G+SuvLt7D+Ta1UPf6dWpGNvFep281E357+5qXi7JCyU3RUEkSM6zsLNZU9uQcqiVMWerREA7TResvQtEbKmlqar6tJTTH/JWtLqaJqlbKoGz7GrorSPOdpG+dpJl1WckcYu+v/wBPrx8SLQd4qtcG0qEl7Ae6NHD9e13uOPxpoaI7eb5UugSN1MnLxrNJyx1na8ybI4OWniuE40GmbqeRQ5U1VcfWq+zUzInF795qfNIGtkT2pWxKAJiSd/TsDyy09SuKYjUNoetFcS5xQEznNpSI6sM9lOW6Uia4jrU3EOc3IRxo9OSCv43kuyaHktPf5IKV/meKIs5f/JcfEMwXX8DQrE7zioI9eblftHB8iX+WK52CkG+3ZOHmeHk7nHyvNY8lcpL14+D5AT0XmmRUvjvievFz1HMdo5TqK3/JJUXFzxZw8H8VMvZmqg5aeqcfJ8i+H7Zxd+Xm3TfbRGtrGR04OQquZ4ydlcNc9OuDirjly60zC8kvLEtz/JxkcfDwcYlUzH1rOKu7bjfeaWJR75M9t0USpvqTqgCq3gvapKvU9VGjrkWz9WeQuUUP74ydm03VBVTM7Ca7amYkunRJSqBf1NaplJNlYvi53EZTUroe3K6u3iEw5dzt4iCvs00hh9V7XN0DlU9XOC+9s1ZIuNgezSSUmxwnrKPbdMvHJ3Us3KsTAVlIV1boid46Jm1SuEp7rJM8c001Vz1QOVWkY3x1OX9nYLQmCSE4GqZz3rrGnrrGfqJrtTsoidLI/bJCdONh5nEr5jR2ZytTGs80S2KOAs5xUTuMjT49koVRlqmWp1kT1AwrVAswVtWRQiesKurHetUo7mCU0zrLoE0v29L2jj7bWEhTgK6yts9ciSh3I+mV5PolCqugF1M72ymSulYRNpJrR23ICn9c69TrmzrWamnxdJajVezNU0Z1eus473+8lanZFeO5oqtCbn0l8MJew5ydYDd3uew2tSmzedu5vKeiD2areC7cCe2WFHUqV1rowgdTS5X45I9TSv8AGAFbkdulri2ILvwwroeWtVSo72J2lcdky40EtZ1acZqfVEjZ51KAWkxRrL8Sg2Ube0ztuXsOadO6GmTGlneP+IDo3OnxNdepVG5QortjaKLHahImT2mj0ezS7n+uFG9LTVJlS9WxoDs1faNndk7Y8j4gpbWTRVKO+vomvUnRIa11SfTcrR7dG/D9JYCTwparTRolqjTkG9GX7qif1xdehX2ZzYU70bVEmeqQ6NEWq4ygSzI0mDrtkfWjA8dJvNvbWJ9NJLWtG+3lgcmjrreB1lo2porW++WSTVMclTXUqbs8ftKpJ2LeWO2MdTQ/Sp1EmndePvIq7YQKaST0B6rjK9aQHSldf3mFkAmpqdV3mnfFwzdLXKs1U5Lc8MyfxDwmmbqkIp8BlnTg+gAteqRDkU0etfbqnGzQ5YdzZGlpJamtkr+tMnZNurOXjLvRx0yVGdd07IuhnOTuT1nhnsNNcUctw19eKHOStccmXL1HOMZ7KhD2zqc0m/4HjmLJl462XyyAhyMxvOOqud5cla1chMznYmei8naRGgrZwSMuuWDbu6ZPNNYTpJdtS7Wa9ey6nOI6qZ3mQxsquoO6Zy6I4kwu317PbTfITozmoimi+Z13zj5SrMuQpZujv7MHH2cins5cs12OLj6qDqLEakQx5mtwxTfEbFriZdXOsmZJc4xIXLekgfIKvk0csscrvgm5qqvmq99Y8rkaeVTRM/IriJMOW2ap4uel6ZNMqMS9tnLzMTo/lGShtmjRacWxt33LsYqsa7BVxL21k0ys4NHJIvIcpQoAhz3MdCuVTjbyojkmYpgnkqeN4YuUvn+P1grK4wlDi5WOFjkv/wBUmuTP/YeTacvyDrScdTy8KcfFfVrjeicj155s5O5BFFY/HolqSbjhKSavk3kJAUzy3Vlsd542jg6k9q4eQ5O8MSSNE1V05yTqWnju77VjMye8/wAa+bk7YVHFM7jlDkrbyxXD342Xm5OOYvhgWXi5ZqqnCWp7hxpyNUcFcnyOS34/F14OhcPHPZLbkzj0PUbjurxdR1j1a+rwlG1SQnJ3RvIm42rHaXUNRyhTNVTWRHWcLeSmM1s0qzchzcVa3kySSESzHXCvsStET4X2r2eeDk6Le0qeOW1F7BhLCOcmneddzsrjCu+HMJvO726rTU9WdVNbiUDrfIEogWOVcyecfI62tO3Ck5Gkk2o0vGTRP+ZchWXPdIyZYnotEzecOkBNAjzzycnMMzTNdMt60VnHe5OxAV3y534S9kGg0gUHjFG1xXTYTqTelTZ/XeWhFLxADl0TXYK7IY736hfJ1SSPMnUU6tA2CvH3wpZZyaTYKroZBNvGUbOXpPYwSpAZ8DPQ3lguI7QZSSiNFeMDRnXrtOrQaSokS6ZneHsmLc0mVWzF005DtBaltgJacJZlwGXHcy6KCuuEtUOAWu7HYYoVsuTbtkKTCpnssUr5G2gL2/swFeE63vX2NM9a7BR2usrSzu1qHGfoJL3vWB9q1XVklTtBIL2cijdKyTXnZD1SmaCgXGvQw2jedWoEPQxD+STHU0M+VpGfO2VW11WpCcdk1hSGmetUqSGgQqd5WmdEBr0+v1wXbvlnegZdhkbNThPalQNdRhldtJuQDsY6Rzsb1ko/t+u8B17M2rstmq2O9UFLSpTI4WCOd96UTs1nZN5oa3ik7Gn66A7CZ1SVw1sR27GA6+m+2Cu17SGTQTvLRsxRkTqrhR2DGSid8ku0NpbhbTWv92DX+uigHTS4b6pkbvcJP27ZVSVrOsq76nXYaud5Nf8A0AdtT10a2E+YgngJ6QvZMuW6Kb/tsKGeuPKVrVfcDD6ygFCOHIKAgu8a66yEeNxrSGE17OW1tcPXGhOqRua0JvriUnbGmp2cVNG8QuXfLYymRyXHJ6S1ybwo7am59oCVCcKXwKethxzETob3yBnHRSjLBWm6LmdEjvAe3dVufKBRpomTF1akUSm+QanrgamdV1KN/wBAvGyRomtSUFUwrEg+kxOqWioNK7AUdWUJbWGjjSoVJrP5Osay6VlAlk30m596kszl1c0o03Tlyf8AIlAkJFZwpgQuzqNFFTJJUoS3XaXTOiV2lNKuhzhv/Xl5Eo1Opt0VVU0NNPtvUaHnWFXlmqm87RdVTz1P8OjjqJ5pYjkb7Ly0V8g7PGsIdmJdC3oB6usuv57cRmwLO09hK41A4iS6hk/iy65J5Uk5l1NlDsLgrWq+Ic31fifCPivIFzc008vHSVqeJnjoePkfJOL483D2I4wZCQoHlonRHIVc7OxHFtijSvy+blbJ45vbCllTWmdznEJyabqN7zl4eQW+ObTkO3JUU6K5bA3VMwUV38Ja3NVcctVr+Tn5Ut1y8b7XHz2PH7E/yJMxxEbV7VHV4uDk+tk3McotcrXN3Wu1EpxR2AmXtUrJBouGNW1XfjIP5SpYzs/xE5w1f8zbx1MVVhYcYZFs31Oa6amVKiWinfJ1DgOThq2ONZBve2jikidvGLTWcscd7Cfiwbtrj6UTl1qZQ44eRE5yKIjl1YzUVxzHU4+LrbhXHXIh1Ke42kzqLevo9qaIr7Jjez1oD0s7basa0NBvNWchhau6rkloqL52664cZM9jsIa5fDyyvaCmbNnENt5FfbWRyDyspL21jrWsupdGd3QC7UeOZo65ZMcmy9zujjrtTotPc5aKn3+U456zFltGSf1MutzpB93tJ7PDfedNWk9JpOov366hGZmUg1ta3rU2UJlyzrbqeTtnLTok45q5FPydnXWwk2oo3Wk/Nu+rhTK7ulMkaRZVlMTsKsu5Qmr9WInWlJ2MS/yNLQBu6r7ATqTUrB4J22sK0hNawn7G+wV2zk2+kSzIZY+Yzs86km85aZ8JDrO56zTS0TOb7T4qTIL9AXk7/UjW/eWYfsMVXH2OmnT7MtEeJSfUA2P1ksK6tbePZ1Z3WcVUe4z1ry6Te25lNNNtVjT2Fad+zyapo47iD7X8j3qRdGttvuI3TodUSofhv6ilAu1mvrJJNVQ0eORR6LVe7KNu3U0Jsrx0ehSnGD2HSEN12yp1OsZOpRVMyVkT9jCO+aeyDtz6+6RqcZJjIoa8JOznJTHISCu9sjvWjtKOu2yo7QOEnX7cbqdsuqcqTQA7Haq7zv8Ab1pK7BX7uZCVxdCk/wBXtsNzhSmwftt1INJDpM7BOmqlnQ1PXQ0qZ2rsmDZibdrCmzqSG+y7y9Eef6YOp92+mA68J7GXJMAbGdtPgIlSbnRyZfhrOW3toJe20PsI0oaNibNVpyg3pmeush0+tHZ0yr6bEk86om5CcEJ7YbZKJfEwfVwp07bOvXDy9Y12lyq+pharkzXbWUIATT2Q7eVqCjkDKl9ABNoLLLpiepOkFBaTGhRbVtcKZ3tSq2Gnj0E9kGaRUWoHtUnURg7knbrFLwXsNta05VNxOXTFY0zsOvWfLignF1HUZKpwlkJxolKyuQJaeJDS3RdqTJuSiTbvqNBlp+kcvWXt2b5VwbKJdQprikierZNQ9YtzlS+MrIh6uq47jjbIWTpycrLXafQ2/wAi1M42SO+Kjk+yulMKZfO0TBVXrsZP0mnCuxuixlc5LZRnj3VCGpo3xSd6TsbpQOpR2aXIlD7VpTfN8qeHnIxarzIparfHZ/H6kEe8mpihu7p+nSXjmiYs5FOTlHt24oGRXiuq2En8hCVf8mddz1OOXuIq2ucaTqUh/k2fxioTP61dzDRh3rUZ0HiJbl1JnHZEg8cVx0SF9R2q9meTl7QbiU+P7Z/80jinXJG35ENPGk9kjI5SKZrl5Erq8YEsvyekyRnHoN5y/wAPRlmIkZnvM15HKysZNpXVqhrb1ae88vJW2hXquNaOrxVUzvKmIpTlgYaHj3xGubRxLk1Lx9K+TE89M5wcLH1zotFZcTO6yOTtMS8sHHXcviga5Mif5bakoqWiqGs4+R467Vy0cteldOPTxvHybE1SBBHJ36fHqv5NpxNz7cXXCZEVyGreMn61x/HIrsXXV0KdvIqWmA0Qhw/eTTwHXayRQZ/FyB25Of63JxnDbyNTx/HInvnLVg7iloA5uodZoimnis/jDAPUK3XZNVXUvU0A80oynMXuWNV9sKj/AHinfZw7W6zk76DA1JjY8spxJcIy/fWX1902iDc7e2RP4Y1MmcWkcHqioMukByqZQG6JtmDs9ceKf5FzlmtdM4uLovflt4LJy+Seo5ycRUqcFUNbKTVzyXup3tvjrGVgMhspnIvtfWqmWkCD6zkQPP3yLXkYxp70TDRQ5ytMFDO51l8H3IIkiSSr6yrFbntiLrSSUudjO5pC4nyxJqpcdIuFUU5pHrk0+CSybKgpnGar9mo927rcrAucYaMuu31P5dymcVtCLVfmduy4L10OhM7UwONKBn9RM6VtGp7VN4aEnOSOyamewy9XXY7DRnKT1w4+kiFEvoTNKtEymb7epyV/U7rKP8iEb46GmhBreNM4+k52P6jSvt1udH7YZFstRk+jL1CWkFUZmmhSTqCyzpSWhcJ6azwkW3/pp2izLNBATsxkEV4+2qCGR3Q7Ff7LVIM4BNzSUFLnIherDqGmmE13du5kXWM/k4bl1hSE7Fa3l0EmiKqlpT8A+gqkb0K71yaL7YJErkVuVD2NZGjRluqA7H2zjVtzkdm8aJ0jZSVhJtrD10w73ugfolPfWCHJvNHepGkDIGaXIkHT4DjsTE7UznV3obHcsI6Gga0NTlmvx21Or12DLECS5dkr+kvUoUTrPrve11oR11RJpHbAnogYT6ZTqWlmqr0mtu4He87LNZVP1UuZKwYQqp1VNGnW87P/ABaejuB/utJXXGB5NPVmWWKfTIo6SrI9tbAx9k2JKq07dbaHTE6HHc70K6G5Aay6Jl1FDJWT7K4LLtYaJoJK5Hd/SnU/XttrXJRgfU3VPYBjtU692QaDTlXJXkc0X/bkfBHkf5suf/jUHx4mJU5jrRYWErj0aEvqUGNPWh46a2NzKaasKmi6LBKA49nYK0tI6yK/60dBStOxDHcy0q9umRPWpXlonSH73apeTus0nQgP15+RionOAGXV7ZN3xdpKx4yqTOoSDPH2vqMHXdTMySroHUV2euBt7PIvk4jLsKGdZdkz6vdKyZmLqCN3XvUjwe+6YHUGlVTGkhypJ8yeOLn2p6u1Sdj2GBJp7A31uaHoPMhSNVOTe76r8c8nKg8IjVXUrNVzSFR3qQgtpUOsbOwT1KoZaeLkvYs19GlPpnLBPMSFHEkrcna6JmuHtnLKfbJpesF0N+zTLo5A2hz0xwUvDQcI53OrS8fZLniqzgoOSutVM/zN2S3yjJEC0e8Wj6twIanqVJnyIuuaqj45UTN3wXDS1Utw0cfbjk38q4lJimVEqX8x79SSGu1C1yEdLKemjkEvrlcSUy9I69S5K45gF6hnNdVxqHNETEkLyTurgqPI4ghM6HHVdTi4uxrlmKZ03L9Sp7vlcXJPPMHJXyJmpj4c8l0U8Ujqnno5KP4zbxzAwjMvLsoKb5OzIVu9FrKhdERVnxuL7vLyR8h/mOPjv5PTSvyuJpl5/mRMsEcjZMnWIotUNaupqVxmZrQBIZ61VPFp01y81aAiWXQ2QaGqvnRYAXIJWqzuyEHFMnCUlESiKePKpPURI2kTJXbioI0NOlIoqdsUNLinYnCHbnUdlc3NPDWs/lbkvIrUmMyyrybq+mcc/VyJ0gc9dJJCu2lmtzrObuU0uyWsDuCG45OuTRNdctbrrkKs7YOpUyA1tl/lqsK1WwoupcuyORXlSTsSnWaZ7VvbtBzjksNVP2Kxo/1R1jooC7o9O/cwp3VB7JObSTca3h7vSHf1Te5EHLvZvPQnK/sBcfZc47Sktp/JOVk946Ktp5Z6rRGmTKK9AloMi2Zd77JvqkphJ1NMhOxdzjYK4j2MKH1P7ezTp0f7WKUawph63F8dVvOVke0tbGiRreMgEhUzLk0MmFMMyvJ2kkaGdK9g3ESV6SaVrUbJL7eNyfzdnj9DLfq6dSIxJ0mQrprL5FdJTU0ZCe1V7+uojddm5vsrMnVpddxK08iYydgLVl0bd78pnHfYnCXqbJDtvlpZO3FIT7COzIDQ5CTLskc1tqQQ2YVo3gDuMKdI1P6nYZzrt1gTNem7pXrd27qeoyEvTTH/AEXJT4TM17yaKAAqd5p6rhRrae9cUmqceUn1eQb2KlSZftaNEmzZ/KAe+ZdB7hW3rg113ky674nlVlyxqsnagu+uz3ym6anYUddsbfti/V2pXjUgiVQSB3GRY+0iOydZKrjQDvsWYzoUmiJpS/r7VFUUFC0JqVDfaZ1Ss7UJh2yAZx2xJjX1ppGZ2UIC1ck7yJ/+ndaDkFLVrSoAxsnb2Ou8bKnqNNbwWv1Xq0ldQnHfWTAJ+uaCly63x9cQeNMi0SWKTe2vWcO2lIp7VSyU6Hfadu2Wsa1IkyM7SSK7IjVOG/sZUBxFYDekloHQHbsxW/aipmd1VFSYVL7jJ1RZQNu/3OIv7U8liuNP8UhHRCBpAHt9iy1HbxQM+J+mSk77RQ63dFcrJskNR7ydXnmmfSqoKyaOogUW08aXujmmmmng2yys/YnOXluZevHzWX0K5brl8/k/ZC7ZNlU/Yrl/j3nBYfY5eWok/i5bbka7BPrYThRVG2up1dtcnjXbj0cagbuvXrF9qRYGd5y0ldVvQp2p0lc1FgdyufqamXrUKDqpAziiGmno9rUO3JNJNA0vJ+1ky0tYSzq3irdVSKXoLOqDOhWZrycY3TuDsgdXShB2lrn4/wD6g8jyTyEhz8pNF8fyZrVPSakrjbZv2LK1Mr608k8fJxyNSx+TEVOn5fPXxOHvnwOW+f41XfJLNW5fH6a5+O6nbE9ph5OS70o2+p8SHtVvNwwclXnF8hiWDg55na9o7EzPV5pnPk8kX8pmYZqKnCQcIALboUJ5qXldcNNnV+Txck/xVDTVNLwXeuTIupk0SVJTH2pGaHk9+PT/ACPGSNah56eOesx8iq+qXdpEcfmzCSuYrGuOFK+TDXJNzPGfxkJxP8opZMUvHPXn846K3B27SS23cVIQNS1shqnl4+3Mo6qSMvnrkKg4KZ5Qn+RuQzh+G8fHUrwzxpdFTCWPLD21ZZQo/Zm2GfSuY7E48Ufxdw4pre+KSK9OVvjcjvyX2P43uuSIi1yWrvpRSHAXCRjDXJqnj7R1GSeJF+RAJjR2kb209Yiv41YKKyKZ9xoTsupneO2nXyOLVFsU9Cc2MzJCfZzpC1ZK6TBY0jTYb5aGal4OU40F+QvYIjsbzir+CVeGjlmry57JZU9UkuZOKaW29IgoK+2lXyVypPHdyhXOzegqWtb6Ak0ak65R+aiQkXZ201Pqj4bxX+2VyNV4kk9WJY65/JVX5MtTnU0UMhI4DreWGkx905X6Gaqax2yrdhLnRQSKo+tE/wC5e+qYUdAYQ6mNvXJpmUy6NAmme0ldtjMh4m2mTr5WUCyHrVYV/WsU7dcKCTTX/wBRzs9nbtlp41BW6m3qFOtZJpYyq1RhPZTI9XKk7ZDo3nANbcZNeE9Bxp8nKoqkGvsY00GRT17ZVPYy5knOpoDkSTeDuWnsDsh1RCU6rJo7E4zM+MShrK4wFKqp9xrbkATrCdS7giF12kpQr6qnkhlmpm2E81xjFcjk0aTBVzaVs/HeTIbpK3O3aGwd6purquoV9d4/aS8umZ2cd7nyKRVrTXZKKnwo7LJrzPO7I09msBJTA3HXI46adxTEmbUXGT+JUoJFHYOLuqUSTLkoLew60j/J6VuhHevZrqg3/ZoVeoGi3D/9Prkvnvb66SVjws/xvT7XKUk52WTbvtvAPUDzwl9UPEK8Gcd4aJnOWXo0MuvVfAg60mUELavbGvc7y7lXWsm19Gu1Dluw07TthAGsJZ25/H3rtgCOqWZaWxCsKeptp/MVmXQNP169IZxStONE8uk//UxRmsdUARLU6SYlaZt7E5xyU5b0Qb0rqnp5NVVzLjWjqTMM7VZpBorzHXFxeRIRVNLc9TsAwNsyAIeZwJX1eTtpAB1KOuTRdOwxrf4U1S4L1cIrl5Jc+hNW8E7lrGd8rtkmhKkrlTOCCadG6XXLG3yPJd3IcpWcdFOnlghLb+QXBq7onbxJYi2U1Gcbr6vJJRomWXAarRbDTjMTRRx8HPy8z1rgvTWccE8XU4tTGmoi3sTLC74qf5M5K3SDS1WVJt3EjTQ125DOOjtpipqjTJ2OpLr2IS+xf0js3SVNLylQzhy+TMlDLYi8vY0mzA09itKFcvGXQcZJMbeXkia2dj+RrOSdaJKI4wwprhlxk/iKxDY5dFRsm/6uTych8lrCu28PpxKc3x4+VwMWycbMyyf8iXptI+xtmapg4dvN5y6qlzr9QwktDCDys5Y7zqSSBbrhjlqorih4VgOPfKDcDSZyVM/ZeWDqNl88yRyLE9CLk4zd8hxyqV3osnVjGfaUjDc9bKpvlvtxyS+R0/Xl5Fna8lVRna+Xm94GpSnmupoCI70rPJLPWGNWa/8AYOOip5eSeCHRXbl7BDYUTbw1VY/I7U9piEqmJ/jnvLPWG8jkePjpzj5TnmP5OK45YDCy67t125iKmYkDOkcfNPIcTE7o6VO7f/Ze1SV8i+HmKqZeaS2+Wdg/UkoYmeVzgmeSrh4JnjGaeQJXL5hhwGuOts3M+FrEqLFOFMtRQwz2CrfpnJyshJV2SZxVVlb4pePrJ2qa7p5LT1q6kSRGmKZ1kLV+QDTqzvC4kMdU5mOSZwlqUzhmbmpesTO0OvN711pzW59ITk0ckPJuHjq55uQon7F4Sk6P5nyAsIKxp6TuxRkF5BkYsmZI4k5kzrX8tSXO/wC/Fx63cRU9/apqJrOTl611P53jAOO1BxkgFKsaphbru1Q8miZ/KQRlwpKNxQ07igkhqj9Cux6fjh3fVnUGXLPrOr4wzqJoiyKZCqZJxqZneFfUMUoQdf7AzQrW1lqT+NnGBrboeTYf64ybXLNzkcT1ayJGQWfOoTtcuaqkCrDWbqaMbUMh6lUm9+1Qb1yurNWhx6KndGyVpy67OyV7OAmBANY6K7Yf/nQ1SMvYCZ1YBM9tt0O8hKjRNM1ORpFy16iVvrOFdaR5ansZNSrigbe+95XPLbk2vLLV6oRiQ+p17yyGpUzbt1FBSl8xKjHMLjTW9J34jRIb2VPurpL08csrZci9k08bnH20jyn1JDfkkSG5wDeb6m0GnaozuRX0nVGhlldKIadEqFCkZtQMR6tYJM+z5OyzqqzP18nc1Qm6nQT1Ss5BizRrekr3ZVbn3s1KB9NGaENslM5tNSHvIaZSgylr96hTSy1XZBJmhpkTLlJKf5R+mcmugGiduRQFZouWhkZMa1PXOFezSz9dko0bui61lV+B2OqZFOlSknRrc7NAdhPXDfaculllHeqYrcO37IFrY7PsFY+zsKOu1r0GZ0OQ0GMlBqBJZa3+FUDk9deVy9DqG2kya2aUb0G2aKU3vcqRvJmWVVio2tSG8OUmjb8gJDOOxlXsTJq1XREqFzxV1KXkoZ7MS+rM9Vt49arVT25eucthuRRdpQ06eWa4djO+Hxnrw6Z4md1lSddh5QYCd7y6dTQ1uvdl+C7QTi7eJxb/AFXtrNIbDjRNxua1lnWhwsPcihtwgiqVo6LgqbwdBsBmrT6gnPS1Oya7MnXbMpJHIar/APVpBJrYFXNVk+UDdE2ar797zoTxm+KaBJ6PsqsOsP6tJLNq2+TkWq3McldSsDU6aDyVl7IUM706gOvF27dkodC09tZ5ISNlVlPTSkeOc7Hx+OrY1ycXUmUQOTjJrx1tMq9DhTFwl8rR0ORoNZXQDBBJWo31I/qjYzxm3dazT1JJB1jrc4U7Bu90SNbnxvdN5VNHhW2pyJdGyVrZEHHYGzrWXe5civ8Aop/qXIzOcoiDx0rt5qhRz+QqagqVoBiDkarlIaoy+W+CQHlv+VEvk5VrOL5HHd9cYt0HxvjqdhWud1FW1Ujyv8y3fJ2+3HxV25urW43x1/L/APNia1xcRjRNSvyOWKo0cv8ABYY3PHToorgXJlt7BbsimCeZg4kmek89HJybCS6qp0RIZHP4baetb5p5GCZ4pY5cjmuOVmYo67FirYJ5eSn+PK4L5IIz4/ERx6b5esdW9+2xxF/a+bkY5ukcWrJZ5EGahlq5TijryuhpqrXigKsrjvkoueKe/J9Kn9GZhlcuiqoHQlZFfXeTNFSpP8lHfp38GCJYju/xtZJVQYS+7uumkqlQwtJF4LYp12Z3l8mpQN0GuWSOqxMqZE9Kcum3oXImwFnY7JUFX3ktJEJm6bmSuzl2mlqZqux/TiRu2ePJ5Lr7Zxz/ABza8jqW2ah5Zo7a423i5/5a9R3QxRO7u+Xk5aTiTknnJSk04clULjyTT9o5oa03trYz5QlTxhOHIIbPt+2CmosmvPaNgLvDfubezZc95lHjaFy6IkCOReUVoeTqFED26nXaaVMKJpMUJBlCTGZaLw2yGO5onGXzS+U4UgqD+AM6wpmhe52cKA1m09GSTYxs3gbkEOuP17K0M05b364arZjuaN60mp1P7c0X4bl+3YFcaHrudeuNDWho2pFlKJQT1xJZETrOCCbKe0yI1txHsVl0zTRpcJ3Rq6TSck8rzEx3r+WpwHZTUleEdZ3l2yunk+zJxWV2yJlfOatbDh5GnoFdJ6vVeplAbMmh9W5U0ooFoSZ36x1xUXqH/c0VSY0B2xBmdWnXWTPg4bmDL5A6yQe5VeEg7HBGOlddczZMq9sJWtFyM6yAiWDkUuoJp8cmu/INVUSOygdl01WUrGztXbWIg77BOVyAudpOrjclbxkPti6UzY+Hfr5jZbrGlOp1eu8f3qvsrkyB5/wVu2Z1hVOtRT18TU+6O8mAdlZt9wpKrVL3kCUlU3T4PmsrkCmSb+hquTYGFOmcu9CYM9RVKoMZAQjc1VYupKVeyY8sz4qUGuv0B96qD38w3Mkg3sUUdr1AwpEoZZrszO6DOvWqpDwS8BpHOunSTHUMeImdn8J/TOsEspX5p2iY6mcmy4EFN6+byvF8Wqn4/I38aG+K+9SlnatE/wDztWrbt03sZWe09slgqpNk1oiz9LkZKwl7O0JrWIIoVPmVytPUVadlUa6Rx7Cq6jvVU9ZGfZRuXbedmo2vyOsujmOTRnhucjlJ5q0cgzRTLvqG42ZNryIiNdcmha7XJVbf5R+R5Nedl89Ha9leunOCtDSV9/VNafUddRkz2TwV3k8e629v5K6JLUumaZZTfHaJPYKm5f4ixka7YJ7q6avQcVPIamYk2zq68bCKGPZHI5Ow7+Rw/wDsSThM8U9RHtt6gbydTY5z32DV6YesqG1o1o66houqZBmf5Ob7clDQREzqqGHro5G6nSSzXbCR6h18HK6TpooqhyA6+lhNGMo0HZne4orzKSUC6arqPlaTmJplmNjOEkotWs0hdVqW5LAIkmQGSuTdF1PyCc79ZJnlri4j0r+T71NNTXbk4n+eKyiY+ODS1UziMj1/k6cDOcMAN5FQ0uPHuaI4t1yBXJEc/HUcc8kM6s5IiqS6V7JPdc+R36ce+tcXxlalbA+NAzcYtzfXKOOYQ4eHjqW3l4iZaziiY9xmeQ6zy8SSaJZn01/F1YbmQLqCSeOdjPbl5LiYmbXkO0cfEs5xR3dsfIGupz7QnOTkJpU5WWZeSS6aOKKjjIzjnpROfwX/ACFBDOTVHGCDUq/a76YTMT1Oa6KaxsJ7Yd2WmJqpXP42fzjhqqM/mieHqtzEbabj7ZVAQLVdmCKHZl2NaQLowmKAyJe3vyNxIl8vbqYa/jJwhtJy4gCSZvrOOmpM7dbJZDTMka9XlYvqc7VchOPL0vUnJbRbcsz3ztPYc5KeunkGeICJvXUe1a7ctrqiTte8+TxcnLHQ4uK45ZM+RU3PVK0MMxPELPJIIvFZcaLuwUF61bwE1PZ9Xy61pxt79UjZ2FZjQzdoJA/ld5o02SSovbWVI720dQL5VSc6a3acZP3Kl7zskYF7jXRA1UpK0qxCztN7MHRRkL21hTVOF6oBVPCVd4yEmNFQY6dqcdvIXhqqrBCWsq/qoW6aTkYDcWs7RL/SV7AiUdSep2bk32ap12IPtK3X2UKaOzbuScq/AI0woUeZEtVrOrApxb9ps0qdSkV0yjKtm60yZW/JLlmUx4yYFiWVWZOpTue3tyfoKUbK1VUP/eVK6SY83kPWXJ+j5f2o2SF9sbNe/wAj3kG/qmMh7lkoSwPXrjNLsR61IVPHPZb7ZEuq0V1nD2TbsklKGuuVavUqzsOfy6JS7daJmjtsXs5xwdWmORqRP5SqYzoP6J/qE0rIkztlK9A16yzRlO6JV6tSkk12bpr+skv4QzswgQWonSY1uJ3y2dSsK1JQ0tmH2pM/GdC6ZWit40n1V1rLrYSWNDSbJoyU7eNKi1bNdsnln3c8p13hzVVePI1WFukd6vY0uBW2hXWgomqBvc6Y2070r6OqNi0Oo5JldtlxThUVQ4zNG2KGnOrUuM0ROpmX6yhVGcl9UD0mcNdRw0O8ut6MhN6GvycAJ6tVrRkqS5E78L3Ip1bgUD+RBmWQLl0kukNpZrRRoCa+iszNTQrEswRTNeU3NbLmf1uP3pZ1nbFXeoIjq7akijZvoaXrLAUkbxpm+2d2neQDsamRWZlaREmOoNVLuOVK1lU9jXHaqvJT2JeSkgk6GsiZi95P0PqwfyTQyVeh5GdOFTUlZFF12RO7rubTOQf6BDNVl00E4+vVaXjJwqNLXHQSmWB2y9CaiveudBUFV6CxG8nk3IyUL1J0GhgJTDig0pxsfc5LK4tM1W6rJPeyUXU9jfbS9eiHFs5GS7duzs0ozbVSvJc7vI54Zm87D2rLSpwk6lo6VT0q8HfF1Y4xvddTXU7dqrdBFFwXqnfDW522pO8K7aRdbTjkrjqgr6gVDWhZP5JiOO+s1m5V2071gHfbxcUOtctE0Ddz/N1rk4i6LGG5GuNlEWiUutlenZnTJz1Mol1MOcnyEFzirv8AMGuQeGupz8EkfT+Gz6yxeqw+PykM1/H3hior5G9JsnVFjx9cnkt4+iWVxOS6lC3vXXI5bgA4nln5NTSyS6QqeqT2oC+E5yaeSv5BgiojbXFZ93j53fHx82Px2ZkeLi5I5AOeyaLzj5u7nHctZfEX1SuLtNIDr2qDmlnimH5DRfAtTavHYNHR5WJ4qteociXM5HMcVUF1fyJQeLt2qyVmV4hqfXliIqb4qlS2K7ck67HVjJ9FSl7QMfcC9z273JX3yZVDOWR1B2IEJ6ENFpoTnpEgZZ441FXVe89STPXho9H6UhnLyj+X2amp4qBwvdKdi4crjjtNEzPXs9mPc8eodwOtHJ41l8rVeRToEsZXGpH3kotZIlnlqjkhJrqURJGL0Sqojlh2ze5Y4pOMFVTeTR1Zeeo69MqW53Knb2rKphkams5aXi876kmmek1MRBRNvJHd6Tx8hFkkp28uQsUka3jWoBK3S5DuXO2pQTtXtcXaiq5Gpkrj3yXEqflSkQUU9p7VOcf2GWYHdIsxl0zc3PY67zsJoWVcSilCa27FK2fYvqsm9Ya0yO/r1oUzrP8AnSdlLQ+4V9kKtFHYUaJW2S+NeQGNnqB/N2U1yKbamla+sqJ11k/ZrfZqu2MjW3q/xmpffs8ThH1rTPWdhYV1zyVAWQ06k1hWp7YUOqyL1XdOXdNN0v4X21Ly19gxuYo28sskYadh26+PHK3Spc0gVvUsQ600Ewyy/Xs8VU17y1XZpqC4NSHZlJO3iq+mmkSrusNg6fK6pKVKsmwwCSoeKmSt3U1x7Sxmk7AGTSVsP12Sz+k6PWW4own/AOXZj+3hLCASVoOWf8zsTowrQ1jTLtJ7ulexV4T56oMrcs2WUvXa12QC2f2KExqd4vSVzkrfpMsmm5lzR4lVTSvVk3kdiTFZ9xqXHkBlOSk+4WXyA9mprO6G2KArdV+ZT2kcmU3J1d+ozpxlUsBXeGr3og67Ksk1i79zs6MqdyY0wdsjmFF8Ds1ydlk45CW1V41yQmtY7/sTyK+zp43bTOsLezo3WmaCkQ11BJKpFVrL2Ub7LXhrv77U+3s60lHUVomtHK3rQJ02jPdp7G+xVLva604UTSs3AuijtoOXsknKdtaiu8unmnYZ3qw1NADlyV1xiZnym9axXkoM7HWpbr1MbdSF1Uy1kclRsVD740zAtvalIERS+vmdpmvYpqmm+RaYzvOpHrLunl44ZEmu07Hv24pZvfJsUnYtaXR/rl1qSTiq6Cm6j8yNn2y47claTruV2yyRDVu7kiFwo2DCXsrk6zZl0lQ52dlZpa3nRe04H8dVJM9kyDXuctUSdfVNtHJvRB1JOVJ6yRTc4RNcinX7di6qubIvrec9JSjfU8/kb4XVSXLDETxcXWC9z1JEnsVQPUlmrqC6PIE3PsWSiyTUqc88ktfx03ERTANGqoiTV2M7Ti76Mgpmpwg7zJdRxSrx9LntMalbV3tOVR7H8s8UnJyKMrnFy9UC7KZ3yxx8iVhTC9Z5inyaS9nJBdYScHHVsyc0zZxTMU1nI1Nds5Cal/jb7LA1Tx8VVy8XJfeQq4fta9gyN0snybeDj7HDzcvJyS0c/HXIwcMw0TVccDVT2qXUoEl5Nw9RmYK0fLgKXPZSD/16Y7PS+HjcOPlT/wCf8TtHn474765FvHAnLr/1+XDlbj1+RCkZdzyXNG10vxp3CyVUBQ0UFY29613iX3j4ImO8nJ11HJx8kW3uqqPkV14LJme3KnLx7jolFMXqqIR67e0vECUE0HLurKziqaoiJGb6sTuVypTj2HxUrsLXZM5ZlvWclb4zZyMIzz1e++PKVPVm3hnyLgibePk/l5i2AEW7GZJuYjiqrrnaZV+RV8kyAdhI5LqEOJdEm2OQ1D5TjypSschckn9tbeSIkWd3131Nilx/JYNrPau3XjazwSkrdf8Az6v9sd1uc6unqcTyRWyGb6LNzrCyYN1RPEZVXMiFNhnJy/xwxU9OZnvfGcdEBx8mrs5fkXNk5XyDn65NcrwlByMSypLABM7KHpQmNienJUchn8k27zf26jaz9Zf3J8+y0M+aOptWZ0RRS6aO2k4n+XuRxwF6j6qJp7C00AzRrZew2O4/sXuNKH4gFZzVUUJKp1UPdC/2xofMVYNWPZrJTp1TU1RlKyyxSdnO9FSjbXM4hEbIqSxzkpl2v29xjYUNaijCSSsinrvA3Lk11lkkay7PdFdtij1YOWN12IVFy10BG0MJquTrjZNdc/k3DqHz1s/S6N04Vy97eQoaMaRrISJ8dVoK1GpfK2ia/C3rMjOwRdDOcdD5lhdJJXSZ3dClPFoznlr3D6pOEP8AKuS9Z2ldqaeStVOr5CeqTY9miux1blePqAyElu50dSoM6/XWGydJJSoUNGrk07md+ImvSjrs2JjTVAE0O8XXVyNstJs9x12009gMuqGc5NnrErIhIvrJIYyRQvMKBkp5u7P8ZH7BR+nZqs/0nBNetpIZRp7YckNmciu0Xqd8KP4nbWvqf8hypH8TXGoV+an+23kVeuT9Z65t0mFEz7287G/NPvhndp2FLTnIWhqJervgH+KqaUMqrNJHIMoknettN0mclVMiTXaNNUBhVlmHKGpwoJWeO503nHQVTl2irXKclGp20IU9t4b83dNV4JVawXYZMlV7qEHNzNo7AKGip0z7TWcs6krITqjsJmgEopFnj941J6hJ39a6fgKk4n2yl2TNti5Dt7D9aVBod8dt3UJtg7c9boSOTd9cuJOKRuwskhOScmelA8oUdcRk65Tyfxgcc332tpDJx1RzVLHDvlbjk/v0yYSu2XU1WyFocr6yxnVq9s0r1xpeYljTOVIUgzravCFjL9KV2erwved5EjIMzJTqZZez2ero2w1k1X+VJX2y9dSVvsTqqaEzjXrQtAId6uhOa2uSSYipHRMTIjMutEamnKsCnFu53lVvUvYnhdzylSSFXkUzpe1FC0jPY4xmu2XW6Umj9SjqyxbNI8ts1o+Xw83yOSJn4y720ty6b884uVmTU3StNTFdQ+Xxt8H1+ETx8DDFwkxnLc7IlibneItyV7rWcUk3vLo01nFwNclUVxJWyYGuwhEvIx8iK4GyPl8fMsWTx/F4Wc4a7CnLd7LZpikyLjikofncEpHJXHw9Wjk42eL7miWibqKamJ+XzcdX8o+Jx3SxH/jWOTdXYCTxBXIxTydI6zb25uuJ0j34fLrlYOejl3Y//qVZHOftvMfsl3HHyaks7Xf80Vx9r6duTuzyEfFW2QmpZndGyI5N0lxyy64uVia18em+Ri7+ORLqOKmXTI73xfIY4Jl+TA0XhwqTYQ38mLY4k6bNVVScs1HJ0Xtos7X16xx67F4cd9mmODjJrtH8c3X8UR4WE0GsqmQ3y8kxPYi7eRqapTbz09jsUa6nJLyUTXFJFOcyNFEUV1jODikJHqFfSqZpnL4m5aL+IXzNU/H2FF6AoJP45whPrlTujdrITBwVU7eKY45oRJNFVCinIRPY79tATLzby5KSRaQzkK7aOKqnrJcvVrOKrRMKHm6jVRbI9ndVw1dU72a08i9Wh5Jrc8hZMsTXGcvHUJUcUrnHd/8A6h2LCcf5q5gX49lVRwTzR1uzXl5x1cygUVOsuQlnEl9yS6lSJfCoEoyJ8DAGtHZ79UnUukdSD5TuNJs6hXq9e2GyNY9o0lU+SVTbOROjy5evhSxK+J468oQH2ndmb0gXQmw1175Wl9PZ9ddXAOuytzeyaGqrOLnbqsmzqUFJdKU3ozqBRM9632/jSZlNjWGlV2tjkgiYAGA6XPfs4XuvSdz5RqepQ3FBG44+rc/yT0YP456HDytZ7fK0RpaFPEwTr1wlUxp2zkamlZClzjSqRmomur8jdVCfxzfEJHHW95Eg6b1B5uK5KWIjXcJlreckl6JeJPGZP4ycrc6DkoXSwgptqWUOoa5J1GO2pcqRrRMvZw9jST21J167lK1LOdlN4LVUkBUuuOmK1lb9SL3NAeHpQmNdtubWSwt0Yn1YdVOjF1LjZo2sTPilazZR1WWZ0FHZnOWlQdpPZZbqdkrSYOjeAGtMvatB1d4ejSPWinq3qmlldvj1ytzDuaajQ1WwGnZk0OzNvX1o1SzZ1qgp6mmk5M1W8J8cKddU2oYLt2b/AAiQ2YgLspXJfRwXd7uCkxjt7H2OQyxKBFZc6M/di6JBpZkoLWqC3r6VZ+Ecpupx5NnhsVzoSgKTXkH23hIjugRlZJrcyVRVJLNbF1KFT2TGRlnGWbRnWvLqUZyYHedSQxNPXHjalnDcq4ylzQQUGM7mTB0dcKCqMarq5/WdDyDJtkqlJonm6YoumdvIS8UaWnl9lJiu8T24R06a7U0u7PLpaHFDW55eslBF3dIzUczVRPm4ZN7b5DU9ZNdu0dJnsfy//TOKZ32yrGms5af75/IymfH5GneXXa2cGfMUuq3ycXapc4jrTSK70alNNdEy6ewE7RVUJZZqZ8teu0kJDOv6p26udBZlnRKHI/YqeJOjvfgkoetUL1OWVroRfVZWirZeVP4mc4J6qZeqQkokenZ2mTKjRvzTdatVkqaoaJny/kRMCxJc96jd2jDNcfsTMxrKk7GEk0GOorrgMimoZISetEzxcerq0mNNkxtKGfsK68Ab7baiEd8c1wTIMUwZ0ad5ykPD0znip8ng4u/MW8vGc8AxLw8Gj5PKVuJmh6asia5Lr5POcV8jyfC+dw8c9H5PPHF8aJOHlmOUpbaZvkujo1V8ZxzbDDU7xin0b4pCWK45lpeRqmsIOSyni4o4uGkio4+L3k6yVTycryHU4ruiSOflmeGeFjUz/IzxlRNhqr6HJxkzMZ2+u3hpsoyo5L4SpiqOWZYf/r15J5+t+nOVxszXORDOFxyyxyT8IlKTg5G15OJIn2+I5PkdybXkmni5J43kvIb5vI5eMZpzi5YqiUmQ+t8zpk442EvHHHFVqadyZtZaGmpXHkrt0SiYQrkeoF8v1ROOFmDl2VVJ5Kqsx1Y52VnOD5c/xyNcrKVjZbppSb0Wfyu+SpmfWC6ZmZeovFZI1lzd3uuOPAWmJzT2MefU7Ipvlasd6pmxVni2+t01sybsjed7Z0D5LRW+J0WIgwzTQxdUb5oarziahR47VobqPJeXim6ZJhOxVckQdIrlDhC+WOU4evH8c55gD4/AxU3bSUa5mHsTFgyHFVsdhP8A4rnBRcVJtfo8F8fC1Txc08hX8cIarIoaUa1W8krysQ9rH/KPeqBNxx+x/wD9tNVQ8i4IhONfmvV9mt0YaAEFJCj7esjh5JSVuNrPYMpJo0z4YSupaNoZcO3B1LstmUFp46c8jtOcU8f8ZMsn8fkk07YCJR47ZvWctkU5VNW4cpVbG53tmpqwkFlCVfX3qmQefaeJnk2+Q05dLOwnfeMgrqDyQEfVaJHCjzUiesfbzCBxjesuahcYevjxjOs0E+xINYQGXIBWF9YEjkduygprLp6oxBRvCu3H1w5eoS9jySpZ4O2RIBtoqWUXq7bNuux2dFodSqakl2Se7Gu2Edb9PSh4Z6qZzXqxw22bsF0IzXk6mN4TOpcSGRIkmVfa8wev1CifxoADltKHG1XZxXZoYZk0GmpWip65O6AwsKkaoTqL15Pal27Kal3vvJqN9uyLLsNWGyvtpuTtrIqu3R5IWXTVSErZvqtHZnOajUA0bdQdQFVNpTMrhfYVJ1Skx0pTt1gcYne8aTqZ99eHu3FnrvN9XZMlKmk05dRNAMj9sEK2spXbCnXbGSftlq6XqUzo9rrLPXk9E6ktrV0EJtp7FeDSORT2V7eOmu5oYd7Dt29k310TdUuaPzP7Sb2shhMeVT9KDOX5HFFGcXyePml/joexWEk70HtCygmJ+OPGU9xfRZj7KmqOronjpGzzLt+0hT38/mXRhc1ejl6VRk8sM+NTPOLE0VVMaL3nZt0e8kslTE35x/Iq+ToCd+zxizdLylc3Zd6bprjOOWIu7escvFqkDk6dtRy1eqSqV1UzdO6iYkiesnVD8ozq91GGoMYKQYhlawprlNfmlE3409dEbqTLJHrlvVKNrJWczEMrw3vjqhvk7INNRp6PTRxjcgkr9c5aYqZOLlNq3IqnEnXrhtp1GtZuXadir6laWpzkk9MnkNzOTJUbZ6bAqJ/lNXsDIprQDcgZ3Js7VRe1KSeuckxUsPSYmdzytdg4+EOHuyT7jVRWh1fEb4oqhVl8puknZCF0521RosZSuz1ZIqqlnPl/J/8AX4b5E5+Pm4i85fmzxS9OD5H/ALAVnU5Gd3y3xzoeZuaF5bmR5Jpa2XWqx+Qk7eLm/n4KuebmLaTj5eH+SON55Ot75/jx9IL4uH4/L/LyNx8vhLni+OzXHd8/PEdeM3bS1yy2EFwxLNPJH8es5OaGieOfkW82rJuuUg+bNlTB8bks7Ql8Vsk8s3PLSnFdcnI1xfK+P8XhIg+R1tueLkOd5LpOvDMzERE9znp5OZsq5Jbf5H5HIQcHH04iG/j/AP0ajrc33Y7tb5OTi5OSuucn8dccxdXx/wAnHqPmRPE9uIuub1IqacmY4+Sl+m+pbxVxkPBy8nHys5y2TfI3x01yE5x8s9KgqCqLDt51uft5xVHQRSk1y9gQZGSk7kctpP8AHxMLRfGbqo4pNXzXXI0RytSDzC8ZWXM3+cXePtnb6zvj+SNez8iqrtTUvO1kVO912J4xOWruQ4+PfVSWCu2QLW8upTo2zJulR2Mn8jkUPHIxJFdM4qNM5ynXjWeCm4SuOlDOf7anOKm0igJdYophp5DdxDLQcsdiK5LGX+O+XqzT8fn4+10fJ5Soup+M/HK73z1x8nA3Lx8l/Hc4EbAuz+boLV13OSek8lZEt2VfYiWm+OqZp5OLn7b47+OvIS8uvj8xxkcsVBOMtMy8Won3ltrQFOyTsNaHdBBcXpCeJr6rws6ceNbKyJCZwPqovg4LKmKkzoskly6e2hr0culkl/rHTDfbeNKqyb9dpzG7AreI72IpsJa+2ctemrO474pub7DLtnAiRWuZ7Gix5Kp5JK8xj6zrjmdO+zO9tOwyOR2jF6WXqtbBCtqAazkH1zlL21nFWrXGLeLYSzxiTJcvY4w494zTIHGMoZdHaZxSaHEOy4pNbyIjTWMyTNZLLFGPouFDOl44ZFdSGRywUy0dqawuCdFWyKFSms4qmhTkomXOPlP4zLoDbx1FRRXIdJNNPqPfQhVTKst8jo7v8lTnepVYpdGEv8mi5RN9gWc7TocWXWdldZUk17xJJ9rnt20P5JUg9c8HqNIbOSJaGhm5UJrU7aeoAx6Jresgs3o47KHH+y550TAFwhk0spyFBSV7Xroh66cqXa5ZcpeT/gNT1mXlorQ1UdtLO1otarNa7OEiNDWtiXuNHpM6/Jyba9rsrrKnVeElU5ddZpS/qB1+u8Fp0G5Ws7dzTyyIID164/YHFH6L27dT+N2q3FA5Epaujbu7NdZ4rK7KynZSXxYk2uFN8jpV/ZmajwAFyXc7zhpVyDTnnX6kpbiu3U+qUXJR1+ZyWc5whHZYEuOSajitrim2qph6TWv0FnaNTfvnSnLqnkMmm+hk0TQAkyq12BzkOo5Y9lASu7xan6t8YmHEBKsv8nXCuo1X8kATnF0pql5OtdjlhsU+PNamntvlNclMdpGv/jLLybkxqY+uTXJJ2GrCuxVhUhNxoyL3HbOprzkCTQvWfeO6OSZqqHsmmdNT5zeRJPH1eP07PLfXr14uXe9lbrbfKxeseYrbLSlLHvGBScnN1CImZmSdUuL2ruxS8ZWQy71NvV3zUn2IrrO2OQ3WypqJZqb7SZ61UjH1DDffwmTeuebjtZMvaCopn7Yy0doJ1HdORuqMKjQDzHRMl70uNTOnDkKPeRru2dp0wcEVVF4XVT0SWBrCR4tkPbZnFTKjVbSG3zQybEeR9kiqolw2VTkXDNQXSLLcFUjyfGefm/8Anw/Gni4Ygikez8me8Bl9ZlDsXQp1fcql2l0PDafH5Ln/AMXyWzV1fGPyZY5fY5T5fxqTlW6d/K+Oc89M4vif+vwBPx04j+R4ubj5vkf/AE4ejdU2kUrHB15uTmq+COSmR/8AH8/FTRPx3jWriZPjvJPEFeZz/HXhOM4Pj2fJ7lneuiyR8Wv4/kcTNdDWyhIeOOucU3fF2bprrBVEVxBVF8XY+MFvHrj7Ok8Zdsgu/wCWP45hOWXUnLCgkMOuzcPLo+PUSvJTchSRwxy9nOQ68LJwcMXx/b5HPMJ/GVycllZcl/kScfFLPDUtdr6FJTVlRQROpgPvUglEEwlKuzkuKZLuhbC6qVdMtWsNI5fF1oYOOgR5+FjmMvt1E+JypumOWOR7BylcnXLlnkdF9YleLvVLk9Jja3DIZVl17FMvbJrt2cvjeVnd8NylMfJ4xYx+R15GSbKnbNsdsmm+EcnpNMHFyxdVJZ7vDiCms+Q1NA90rbXOTLYfIdlPWOTlXDmiBH5VXc9Zjj4eInkKqakqi+Pi4ajkv4nHzS9eWTg+HMS/x8FTbFSLeR8mKbZ5bubaeB+Qm3l4GpKDnYha+T82mUPhfLOea4qvj/l4qmuKf4KVvkdDk3uZ0FOnAnt2x5IjfeOWVQvnjjfX5nHNMl/Oupbg/wDJpc9o+f8AH5OIp4fkcfJx1fHy80eQRZUqC1rFrqyvnIDVaVWpEws66Q1IjraLvU0UL9jkpo6kB11nYifbvrxzSciyqr7Zxct0dXTSUEukRdGSduYcdFOcdCNYapNX383fkjnW9iFWcjTG2ugR/wB19ax5Dp1GIeNljhPKLbKRKE64blHC6nP+JUzZVMPJUdjP8ozlTyjs0u3YjlV23oPBwrsbT67qpSg1y7mNDO5qiVKTIpm/IqLrWMnZDgOlJl01LLMBPXG38wkpZXfUFhM60CqXop452+c2haIr7aY6zWzjqdrnNTVSZR9jTUy+xcMedyuV1dPbqaJlcjkZVDoC5NNV4TuezcpvqjWu0fVoxoN7GqplbICQ5GlyKqaFVQSztWxqivTkqb+pa7xpa6tX2CRvtTqKCXbS6MsU0xG9mXq61k+6hZGleNTl1lyO9MtctRkU9cug7OQ6e2TujQjPG08SdVZ96oUO0a7Klv1BAp7Dvpognq7sWPD6gPZb9eWetA3U7MKUEPeV3VBOmpADJbTrgXUzkTJrbYcnUaYepXvH1CyJdlpPXBPNx9JKWfOoj1onioJXBV2H9t5OnlXLJg1kbKE6grnzuBuDl4+Kz+bzQ1Kce4iYfJkGR+2j16h19lpCiM5P7mFTM0ZFNUixLG8myaQuGobx61PRaKok/lji5Cn+bf1S3knwrdLi/wDz9rmeXlJyJanqws8yt1f8myJiZ1ncmveejs1iNygBXIQ3U/yAcdPb7RbU1vi4rqm8vc8ldZknj21aAYizp007SDYsIbTlouQZgg9haqd+k1Lyaj2u0jijrdyUtvHx1DpdVXpViXx3MRzeXy6TrD15vbkSqPi2Rx1HIVW2SKXW3lj+qQVCpLJrDtPGauwrKvUU5VXqUvn6mjtUvbOXtycIDbFM5/7BUTDFkTsuxkl5GOCO9cfy/j8tUwUWiVdR1sapkKior6nIVUVOVNcZ5wR0/Q+0hVC7wWBCe1WSk6SQ9+x2dsiquj49eVhrbRHNFchDEFHY5IDhKypXk0zws893HFyKHYpr7n2Fc5pG+pzc08HC8lfG+XfNykcnNfDxQDNzU9p/8ffLz8POcvLx9Tio+fxW8by8fwuT+Msfl8X88RfGJx8o3y0cfE08nNyfJpnj5OSPhcBJw/M5okttnkmWbnqTTXKcHJ9eX5F3yaz5FcLxm4quT47ojVG+TkOPims+OzycsuXy8ZTTySV8H/5cs0SW9oif5OTi47+Ryyva54+Sy+fkjm6k1yPDd8s8l8XCRnBdQDkfIuuEg44v+T/63DxW0U2dbmOS+51i4uffk6npM9i6qTi4p4yZLsrmIzjAoDk/+XdX5FzXQ5I/l2HxuLqzTHGfysZDMSW8PPHNKtfNh5uo8vesm5mRyeVjibyON5L72+IFTFXXb5BQEEcjxtS1ynWYL+ZE1UzVXzxtqrkmR3Um2SfM5b/i4CY+E3otgmftlrK08QVw9h5bK6QfIZ1Kbrhqs+R9OpJy2k9eKx7b+Rd9XrxVZO6+R8MleWWPsU8HLMcDu/kHJROR8i44dnHzSFUcVDasfIANvyG+XWVLYN8kJyefxtRuronx4/vugiez25Zrhrzm54mO3JHyIVYefk5OWrXm5p49l/LZqTJZ5+HbyBwk8h8Y/i4y+Tn4i5u+Pj+R04+Ocv5b2pOGu03F/wDqRLRPAPAVnN8j+o8W6udzQS0TR28jnuq6NRVUh/6ce1ycMi7Kl/tmxlo5/kRwfHq6R5OT+Rfj8xI4VfFD/H8bjrlia5QI2SUMgDqfeR0DlUICoJlUSpkclM9FpaMqqdI1rRgle5YxDWFlCZyy0S5yOp0UPUjOD45NVSEz2HQcmXqQCU/ldctM3MEcnWTDlg5Jy5FdsygZGxQWDW5smtMXMrvkt6dsvkKfDmZlyflo9sjlLGjYHYq6B0ctei8166vDyVycnqV1ANzqW61OzyjOz/XO2oawpqQwrYiU0LnHXSZcaKlHv46Q2uNQjtodIbI7t0zWyVvjLwoXGfrrCnt1yaKkW6FJIom+zfJFD1imp7S7FGuOivpxS+biOtaOT63OrRvtOu1Us7mgIo01n8qHZ7akcrdvh9Z6kUnasKCeqyE7UmpowiSnANVruTTWUz/+onINEBS9h7Ik5xh+nRr7tRUW6HrP2umq2TRUtBf/AM9Z23IB5qgfHGyEBnXuM0IJQSiV/wDTQ8hPJrG57u2TTQ9XTnIkcYPFU0UTy0ZxCT0z8nOxJopUMqjqaj9DOw+ZKbTLsmTP5Skzff8AZk69sKrqpFhU75Ab0Mv+pU/ZeQTRFT1JyoCewdWhxrj5CaClupX706Q7dc0TBp3/ABtHvU0L7IbKUKn8OOTttugmtXZowtmgO61Zl1PXrJwRXnJHFEeR1+tK78nCEdZX9jGjqGeXL2dO4SeqmdoKpzi5pmCVv3TVNeETOgOTj21JEkzxzYlXXXjammcE2OTRO5b4ma3nFDpTiiZrVXqTtjylcHUrl68hu63Ls4iZow4SausKO+ye7VVhLMyMytayrrvsLSdFyFi3ZtTi3W8uWqqAGZF5JakpmyqYeGJiOpy2TJrlopSiiqmauuvmXvc40ymNLyyHeXcDyS152Ko1FPZMmvK3xU8vNRlsg6a0eMt0NFM+M0kuHIfbsU1y98sZJTl3M9ltu5WqalKm0okeCP5v5Kibacita1ypXCFfxcd8NTfH8Hh+PyVXGNwGiW4+7/8AqG+3WtHYfMqv+ooDa0zPZ6jJrYzWuPma6txZ22k9t6LOKutTR1nYPV1czPFLjw//AENRVcYE0Vy6pid668sNcozcTMqRbNA29paOUaOzwsc/HUckTxfH5mp+RF1ReRw11dcV9a3nLxiLPLzhwrLy0JQTcTx6slVw5qgms5q5eTdMxXJ8ork5tRxsHHycfDwzWf8A9yihqvmfNjkuTjrk5eSKk4OXfDPE/G5CPo/N3LNMcvDfCTycvL/Fx9eDkh4gl/8AHcxXDXFnyeWJ4eSKjibHpxcETHTH48RFcR8yL4uMp575P4Tg4/8A12/jzbHx4JKrg5ZKqWflRUzd899yajj5+7UV/LM9NnJEz2L5W+LRwUTVFSblmYN09r5WaNd7q6WN1M5y74aTPiaqgOTj5J+V2OXleTfHnDLPH1x4n/2KrIvvJOQFGzgm2+lM9SpIu53OMW+5zwN924du7mePqR8niiiaOGrnjAmqsZCantuSasp5a455Uf8A2PzrbBxG70rdcVUchu5ns7rZRJxc1TJDM3RO7vjmiTvPUcfk3MxGV8u5a1fyoqByiZfCvub/AIyuqFMR1IsJKQa4d5xUIjxcfVRNzxNYJU+XQRvAmrJalntQNJQ8nzr6ofL5WkXgs/sPyEnoTacbs3/IjARoPjc19WGZee2M+N8fknnR5uUOQi2m2qJqeWqmJnkl7TcXP3Ti7SzXx4ZiURreuWulAcfdrrhZMjnHy3yz4X8jufx8h8tUDj+VNaef/wAdfPyDyH/jnjj6MtFS880vWP8AxnOsVF7SdEU761dHYGncjl7mRaSk1yV1RYK3LbRO3Gz8ytxpyakkM5a+0zkREz2zlrr+8dFS3n3OWtnL046cj5HDfak/8jF/KqWOV+Rwdx7wnXlqzlmRpqdHW95y2TwqTUWFhL+nU6EvR03iLMpYVLCy+yuoeuJ75xfW6lJU2sboQrVUtT3+xwzMBOQX2Mp1Rtr7sZDW8KNMqPV1G6lGDfmaYnbx0XOWkV5UNzteDUbY4oa9Q4q6jTql67/Ikgmcmd17UvXwjT2dbkk5FlNTaeZZqlCrj6DV6FPeqkn9ST/69jklqSssfddWZXOyzRk6mUSnphVBMoouvWuzx0bcuuszjSTO+S9VrL5K7Jk2vGoUl1tRkGeNminTpStTKvEkcZpsmica3Xlz6mIRLRx2VpGfEYlmVx40JnAJNZyUldSKCRs016ybV6BXYa1fbGdJTfNENTNW3ITzzfSR+NTPJM5dJXpL1NFDOJ1k001NbAZ65DquqUdnd2SfW63pfSWmKuRWr7SmTXjOA0y5yyE7Zt7ay6EZSC50SJoxq3YkuncBNfUnXM6ZR7ESfjEMymGzU4Gt6eRECLGRSVosVL6tciOsrm3SJRTtmTrrLBKrIHRt27wCispOwAvdC9bMdibaZ5dHKu3Cm66kFL0SZ25Y19sKQMbCgJUp2VxsgvHGlLJmSs46dIxGhcudsyvLHHCkM1Rr5PKTxO555fjNE0c0mrq2lni+Ryk7TluqnR8m55E5LpomsqmqF5ebpLrgrtx9XsPN0OQ+yZaENHFaIZfLN6J67lnCSJ2tkVU8fHytQZT38GoZ7Lskofs6TZOkou95zTaDJ8rl5L60tMhj8iompeDkqqnfUrj1kyxNVmiY3hRWjJAoypl5ELllqc7FV7x8SczjSWBZF8WsZeO6h4rH5RqRk7tVMyXXyP5OwnFRPDK/J+SHx6zdD2ziFtapCQDhZu6Qs5jfL8r4sLh8vid5xfI47SCNTYVyWOmKtqUE68ILxwcrediZ0zynsr8Tm+V8svk67+ld54dxHMTJrGhOw8vH2kS0nDnJipAvoOfL5P4p6Tx8tMdbeSniqA4aoP5K5I4fkkRDFu8JGWSNkVr5EvL8Zk+JN1wScnJK1ZnPDLVBzckcPFK88NdmeWC/tPK7qDm+JeiuL5PHc03hz8nJFQu6k0zTRr43HZB3DjipomWpLea7r4zL/DF8gJyTDXQ4/rtjljh57A+Rd7pv5vJQIW9mqibjjqj5T05+R5Cra23Mz8Yl/jJkMjjP7lHWA5I318aqawIsVNFdZlrXVI7cuNPeqSruvSGpMmIqiUiwr+O+Lkvk0/HqOJJzh1z13D4HH27vy6ePrrtzRNlcHJyVy1JxfT8jlopu2qa7B169sLBN/I5WrnqyxDXJwTF00fI4yZbfj8dzXZjkI3Rzcu6qx50ogZm/lVV8JQhTNW9c47vyZqh5iE3W7L572yHMoTjzsQyJQTc8VXMzv+Tc9sJq1/k5PjsfbOWCJhbJ5YAa0EV2Xgd8O+SphjjOOUOd1PHERVRSMK8TONWDJ8m/4/jgTy39Eif5JReRqWXnSRmq+O2mfxMUg0VPVeWYmZy7/hBeLnsqZyOkckt1xS8qjT8ddc/H/LPHdfIDi2HxuWK4JgRnWcpdxo4AK60XM2wxUsyYJd1TcBLrg4mtywdYCSu0mppaRHrQ5VRXI5yfIJ1OEajePFFbl4+Di4O1cc0VvOwI4UMtPG1dMtz2QbgkAoGS64t1O3nojtdTz8fJwnInOad8PLvlW75YrkKPmfLInRxfIn5E9Hku4uYl5XiknGbuDt8vjeOoib47/kLz/wAVz8xwcjyLVRNM0XRS0EuqoOrhJ1Kw4js0PJt6CmgArH6vXBGhebi2tH8W6EY1Q5xd3kHCqN7nminbyxLXsTJqsaB6nFWqaS2rlPkyfpFK6VVcudpRE9TIRBLRmXJQNZySFLgrANSJ2dE/nJJbNZ4C4ToYJ5LjRnFTUOy445NIeSkJFJftbyaGe2EkIZcHYvDje0rck0ibLq64eddC0EsPHylx2yu1zoBmndBMAcVaSXui7LaWsOVduRSPYeRJAX7beS+0rjW6UjlOuipmiZx4+tbA6de0866lu5p08dTM0HJaWE8nL0RyPkXbpZf5JVOhpK62mG7EyB9oserQ7fuA1tzfWheSjtNCysuXL38tXY3Gik4qUnG23rccLx03k0pW+Oh9xrxlmpPF5RojCq61hN0tM07TPZnbK2JjO50g9ScuWHN1PISz9YdNNmTtdKdTJro7n+TcumgWsPTIkkRIW2whrZjBUgwedS+Ma2cildM/hCTcOgMh6zpuqrWtlOXLV9sleyMVWqVoZNRQJuU7Bl1J2MiWgMiNUmUpTpRRyoL5fbDqTnX+Pl8unrJj9tmRe2oa/fXle9SQ9qZzZNBLyRxDd/K+czxsxx/M5YrOT5F3xz/HdcvPctEdZ0cHPyS7z5Fx8ieox14Jo4qe9SctpNBvkZM+PIUqdeSO6S3Ahy/x12eWpuXKljj6nGks2vKVbAwVKZRcoZwQUSnJuHrnLRWjOSiUa4qa1lVEz2o/kvk2f+w8cap+dFchu+J5KUqaiJk5HcowL8rxq+uqpanqAfUC66IcXK31iuXkevXj4C641SDsL7NFF1tdwjpxOteWs7pLiQ10e5SfG4Iq+WCmqqTqWG+UaneOu0Rl9L8ool7JbUUJy3CFHyBp1z3FcNRVyvKWQ9uMcluYenFzX8mdvHB/Ga5aqaGTm3D2OKhpwVnTdPGCTyVfCPITVSbUqvsX9qcr5HGOuPx05yxe/wD5mo5uz8n/AMlzcDBwm+Rm+a5udLXKtk8cVNQDHx3k+Y3QExdsRupXlr+LgJ5Plz8jnkng425d40chQR8eOOUbbOSiyd1rCLsKxqInR8vl+Tz35ByVxRRPDDNMV8eOGiWuOauuZ4muWKlZKoiuKSFjPlhMkQcV3I5yP8GoeX59vJEF1FbQ5+Mpio5EWElZ947tuZfn/Hu+Z5IkOzvn+9xqOY4+PqklUXfF8e7ronxz/eXgIkogXYV/YkJJn2AaXJgm6XgmO9LzyVqyJ6x3OLmK5KoYLQwh30IljRPZnbyPLw/Jrkgu7oYfjfHWS1sjknc3KayzvOgWFaKE7LMArdfza0cSWk8rf8aP/uGyHk5Lqu0clWUy8fD2vziBKk0zyg3yk1qTn6d2fjfIXnWj5D9ddbOTuk1T1fm/OOGeufH+Xzky1wc3Hyfx49OTmmJUoal+Q1uLe3LOn4w1ydnlqZ7ZHLHNLOQSJQ8rycKDUlym6eI68fIzMp8kt5A45m7rryXYXTP/ALHL3mSuW+Oa33i0tJXVNQxyVOIC7OC6o5K5ZtovJ5SeNc5Oa6g3wctWTLx/IXk7PNz/AGNs9qayeL/7Le2gDl5uSKIiJpqqCWguuOZjiLYW67DGqJIGZNFLLnZsSeCtG1oOOnOGKrqn8cAq8hO9q1W8utchOdyDzjqaNZW5l3fNcUA8nLpoeXk5KKeWr01kXRJTyaujfLxtX0Ipilzn5Xils4uev5Bf/J/IuZYn/wAZ8hr5NNcYVBdc1cc3t4f/ACMJVjB8ninkXg4uxeQTPE1nCnI52BrqzV0W1/Y12WJMdxIAdrUK6VITSziLtp3tnFalnIgTL4zs5xVMrtpqEJlJDOzHmTa17G6wmKnWfgBZ2DDYqlCKTR2VugmZON/+YlU12MqiaNtFa00tOxKg0G53jwAFobawlXeFb7ZFsms5aukp4bOSZrCjo63sVVa6DXov8naerIk7LE5NnJX1qXholIft2EZYnQUUnXoT9yuJvetHGyPLRNdciWuMAllNtszpilnba1WhDpSz0loYlJlWnrOif+rpNRjvrrJqKJzt2VwpcqzsTnFykFBz3RyaJs5a28c75K3xL1qcKOOPI5ewznLL/EMxXTiruW9im/vKPHeowOz3KgY7CH9WaNDESOl2Uo1yRA7K3L0KuvaJJra0U6VZ3orf6T+0bs+rxh2ox3vRx19HOWt9aylrxKrRNdklcjkSTCi53OjqThJ2RmUkF7sgyv23xlOnHQ1RUtE5sA1YkGWGuydq40ZlodRNT7lamdkyml6/V31UQj3Y0mycgJlc0dROQHWdp04UBk0Po3sUL+zTc9kcviKlzp36uMaro1xjQkT/ACTNPJxNTQcfGHKUsy8nYvh4+fh618j4EzBPHUx1BuUAqZ+wZxDKmNE6Y7LXeeeiuONMz0mp5k0OFFTNsVdW6ONjgJe6MmNd+P14rp2ELx9V4910xkkWeJ7Hc1uvL5b4pNX8g0w3ddfeInmO6V/GplSXx6SJmDOXoGl4zsVEcrFTlctzTVPJFbBSaKC2jTHAFCHHc11FeHiaePXJxDhMV6zQKCnbtmy5N8imtzUz1vCivxgr9rjgQL15JfWa6Nw8aa+kpnHquRXmmP5CuMdVW2iiqWuss5yszqsvnmaOM+Vdx8VlvjZ0YcnYIOG9TvPikxwFGzrhPaDHjm7oYpqma5JXrnN8qAnglvm7jPD8zu/xclS8kgxw3LTnJIc0xnHu6NXMna7q+EP5ceZvkGRp+qTcUkMcdQLUfxyIfbrJdnJzTE3xd7x5vr0tjvqp5Jtp18So3UNrWqeUi+TTxRLV9+fnGXiBPjwJfNd12fjnyGyS/kTCVnLU8iIU1DOcFPx6Kwj+TkaKnjipcuat7p8iBIv5MVvvPPvjdvDyRy/H6tR1rbycF8XW7jkixk4uNiWruY/qscfHTyETE8fu/wCS5njvlfj2w8fyDlrjt5PkXpnH5HIvVrmgoTYXOcvJuiTgeP8AusbFCNPn8N2IcvJfHP8AE8VPJROEsyGcdLyEMrNKVRypCQvLVScMTz9eTh5e3hyw14wX/XLtiTut0MVxgnXGgpEiDia475eXk52WLbN3y/CigGKNEny+SK+R5wVPeqp5ruupU/ZueC2UprnKpnOLlYopmzkv6/KogN/L5aiZkBNyzLPGWfC5D+eVioqghUix4mB+/JbEaji7st1fMcXCD8eeO5Zm+aI5LmIupJ0rPIdCib3XFQ2y8lb5HSxHFRhLXIDy/bkOnKTcs1ddWTDkIrqFXys2fw9ae7ykvTGXl4J1ycTHGbNTUmFVwSRnBJvuM283g8M8Xh0sq0OSrOjynx+Nqq+dyz218a+Xm5KthqpJw6xGTyjVC73NTXNJWs4eVraxynZTk54jiqzg5NcPc5+Xk6zuKu6RijuCwVyiHFEvTDU1qbW6c5EXQ0MGmtnkjWctHXw+RF7rjS2ms5TfC3lQ3Knx+KIouvkRx/Igh4P/AB3Srsv5V8HCw8nK8fBxy9O3B3b+TxTMw3zz/CTdXFzo4OVjgawYv8606y7Zt1x81vMSN13kInQ3jorbx765d6rWMrO8ZtqjGd+5ydWNYVXY0vQzs/yKXqgzUlKS6OwWFzu+WVNDuRKJa0duiy9oNSvslN8/WZCUt8U7Y1uQLlkTHkeJB7vSZXkbWWLY/eO4FwiKpTk0bF1Q7+JrtrO7crkcksdWoHSMk16/1NcFdPG9VW8YU3lTUy3kB/GVnKOuxFsgBe3LtkOtO3SxuisqtLQ031mepX3qGpsnCiRpqhnLrfKSFFHUKWiUtPurunsn1lxWB1PJP8IN0dcNLIsmxzkppHOOX+2Q7TfkoCdjyqY5NrzSSXnNV3QY19dPVmtMSHFW2+h0yeTVdcYKWThki948l1yrjVTOzvRO3ay0Nb0Z2KrsSzpclKqpbQ0hToC6fXO0FGbV7Yqmhhp6nbqLRR45yWSzKVPZcj6VVFVv8Emq7VQSdWkep23TRw831VLmuut9NpdE0U3yakM7kzpaHRky1bU+rSf24ykL8xu60ZFFHn49iq+xgky77JVD/KVXVaA7M3qwf5Hs5fLTsJsqXUW0+3aUoDNudr/kZbgmZWJ6ymRuDaJK7jVXWzlP8v8A4q1c/J5FF5q08QXTKw8a0ytcLvrU/wBPiXF0cTzcR/J0m+1vR/8AX5rmZY4CTqFv8JNO+3243tC5FUdQ5OQkIrkJL7S1Ez1JbkyuS5fOfbxT26XNS1VTXGBM+pim948i1SFNfZGOhTcJVMMCtVxhdNLLEtoVy2JXEEmTTNDk8kWq3JyOs6vWJOrFO5Bnsu5o1XNHDLVnKch4ak0TpaVtI1k3N/ZmtOjluzmKx5O1MnGLbWXRxzVMcrVlhammaeunl5pK1LP81PciYmSZ4v5ZZeTje7CQ8Y7+L0r68kS9UIl0OR4m1O65S6pz+K747cfj3VTRc1H0eDi/l+VEMJPWM5Lh45c567cqjy/xT/M/Lr/2OWZSSuOovi4IKaSC4nUcpBtqoHw5CO3Z5C2Zh4Q1cAxx1K8aTonk5ImZIsaVqpmy8UvfRQlpqXk5a6PFX8pT8jkb5EPinTjvnfjcXJ8jvyV8npyT7VFVWviMcXYv5Hxx4uOoOaOEmES5XCt8IYcbFlXy2aV+ZrUaCdbWVn3g5yiY5D+TjvyZ5K5i6qY43x4KhqaIObirt8UOPhuDnpvlqWfL642yGuX7Sjxu5KdtxS18eL+PNPF8eKjb8dR1lcxUXnEdpaef631OODj5pZ5OW9z14K/lvTz/ACn4vH9OX5nKW0ce54d4xNV/LWibE5OWorOJalXn+3Jto3y+Q9ueN85Krk81zzRByRN1vI5boR5dvFvOUJnRyecm8mSzlrKWU0+aMN96zlOs1rag5w8tRqj5NrO3j5bvl1VxJ3oj3iJz4cBe8+J9omm3XDXJnLyPJy1x5f01RNvbq/Mk+ufHtmxN78yZmztUyUq7b5I3NdbdczqYgsJjyqTiqibZ5EOSJ6mEkRmprl71xc9SnHPy5InjA5VvTdPFEk3VTMB3pqcuep2IpOAMidTOuH43GTe4On2zl+TfyRSORpjsW/8AsvHnwOeo5iMrkrjlrLurj7RA8O3hkqJGNTtIpSth2m7eTlqHjcl6JM83IvDvOMOvpE9Gst9HFe04wHIa1qFxdNGflyYyTcpIeOfKqq+ZPx844jj8j5FMSEzyryJlHccYHjHDjN5xUzzIfJ44qXbyPJ8nVcVL8eobP46qT+fk3Lk08nBdvwuW6+LI/HN8hvhuvBOKb5KXij+L5KHJruuRBUQLxTocPxy3dDg9Ydb0OuS0QLPZDi9qnHkqqdxT39k7eMf8jK+oaHYLYFaKpPrl0zDrlXrm+3H3eK3oZyB7nDT0HOzXJpaZAKO0lNPYFadZVMx3I3XGLNLre3Tp3Xtcj1oAnrpOM0OdRkyaZ8D7cgrquRl0fyhn/FyPZB5eMq0yJJ1AyVPvFE1SNwT4Sr7k0vKbF6ubeqvFSzh/ucVKDn9k3BuKHlkKkNaredQKTkt1vI949tHUAo/E0fUze+SVl783p+yZMTVIttTt4gWc6/8A0nN+Vn/HOTRx2nHTV7SSr+1f3c46U28oVQoJyKQFTrEJjZr7GH/6nbKO0yo//MMr9z/+WuTTO9Q+5yOo3lHWXR9nq6KnAHqZyUzvXFy1/GVhXadNa1x6QrkV463x25N12TOC6KTGu3bf7QYnZN+6c4KR1nFTxc1TI/bWXujTNOpxuqFfe4ZBszlDifrxU1xgzSgM+9l44mavUu9j17aUfqY00+9CdJXr7UnczmXTnHqv2XU6JgaM2lUZf6OL9pzk5KeOB4KaSnQ8ns/adoE2aNarGmeI1xbvk5VeGJ+LFkalKyeR5NtTTXJ0eSe/DGfDkObZdduaqU6y58fb8jeGpsCtd+rvTTgs8jri5FTOee1i1J21i7VUAEqmZWefnqYlP7a3b11BPnuMnUcl/wDoi6bMqdROuFXl1nI9YkOHykwpqkqJF3n9ZE3+5/47mv5PJynJEmry+ZnwQdLPsBnEtLv5HCckK/GOnxnU06ns/U844KVquM4j6w/dk59dac5LqeWdNJcJzclMzvnu+L5ddB9kzfVNclJsKNxLkBXJp461E5XFDyztiX7pVV7XBS8HGsWu8320vOpex5auke2uTWEF7c5+ULZz4IScklc/UNOvMdPIj8vkao435Oo60RXbhqnkqvjchMnO1ycfXnB25/NaayZHjVSYeNmZ6MhcF7rGH+K5yaeOJZ4Ym63XLxzT1oknhqSVu4aqArkz5W2FLpJkzsn/AI/iz4dp8WzOf59xy3GRX8itc3L/ABRKfB56v4N2zyT8jVU11J1xyXOn5fHEkJ8njg+LKsHLy7eSJ/mrjz4MzfDO+b48PG8hFs8G3439qciq/nlziquS6uv/xAAzEAACAgICAQMDBAIDAQACAgMAAREhMUECUWEScYEiMpEQobHBA9FC4fDxE1IEI2JyIP/aAAgBAQAJPwDn6eEX6rl+DlPFP6pxEiSfHlKSed094PtiF0rOKnk8f0NqeVr9x1ypPcj9U5TR9vjTFEcoc4a8CfHgk+Pab9zkm8xk4Vt9HFziOLy/BwjklbeV4OfpcWiuLdnN8VHpfFb38CtbT1tHFtJw71k4zymoyuhT5eZH6aah/mSE8coqXs+mWoXgbS44gU8XaHDm/cST7OL5Rklcm7WjLw/GispijpsmXvs4zynHaF6WpeRTydi9KdPi9C9UdaE4mkU1lf2XxdNdrsTmG37HK6STM/0NvlrryJLkqa6G4V5qCn/CHx9Sryc5a0Una3By9UXTOUp5TzBUi9SgUcuNtIY4eX0kY+1NdnN+l4QnD+lWK2yr+WOUrXFdDlcrhu0b0V5/oXxrIqdSuioUDiEoY27t9Cl8TTkw59zn6ZTlvVE8m6d17jr02tMisJde5TXKnsTfHlUPM9nVSOfHQ/SnQ/pHnQ7bii0+Ne59L7ZfLipTWGh3NGX/ACL6v5KWZH6YdvscL7l5Rx93k4tt7QoevAqWyGmOHteBtrjvRb5aXYn6hW7bOrTE55Dl5n+j6Uqhlt1BxaWFBxj1bR9sQLLOf0zUDlxjtnGblCri/wBzDhM41LltGnYqm12caivc4w+h3NkuSo+kp5+DJN4FnCKlyx3NyVPRbcwzj9Lz7i+rZS2PEcYFLWDqCpqRrk9i+7KFXXklptNmj4X9izllrIqeB0y2tk27OjGTD0K9vQs49z5FK15Ke/Y5elJq3+xuy10VOilBc0YlODGZ7KhMULpijiv3K5Jil5omU27MPK0xfSmNqPH6ZexfuKFyKhRBU2/HuKniBulCexW7E3xUJryUlcbG/UlPgaby0OeWx+YFEKG5MN5MqpIrYqX8ilO/IocWjLY4Ha3/AGccK2ROILbtC9KWGKZ2L1PC7KTyinpClaehQ00KVhCcpWz6uLpeBSmY2Nwi3GBSp/BEPLZbwi+vcmBCjyxaFD5NtrtzJhOEhTCFD0caTzv5H6mqbyhWlCOPqS2XKl+3kUvKOMS//MTbhNf9H/H7l4FPJRyU9aFLetDfTLXJ+mXiMshLioXFJWcPSk7Te+xZlJvfcD5JNOY/Y5NLjVLxUi+lw4z4bFHJ4Xd0cWuTddSTGktijjxdx0JxxtXg/wD2p6L5Tb8eR2/pTwvBHH0w35oXqTWUOnLhUjl9S4FrjymfNWcfpTyJtuldCtfU0z08ZquNfgaaT9SfGeyOLhykq+P4LFbUR8ihNaMo4vk2rPwL1cuLlLXRxfH/ACN/Vy7rBz4rlyTcvRUQyksSP1Rl6Q3xX/F6kcNOVduz/jh9jmMycbd+9jUPI5Uel7h5OLT48YaiU7ycvpU1c/jRxXLjxSlvMScuL4xLW09MdtuVlp5ZxctelKfwcXx48X9T4uzi2nHpe/Jwi0resYH6XC4tKbUrQ/SuPJzLS3/Ik16qUt3qSeTWJcvvJxS4telJPD9/kpw7bmX4JfLjw9XJdRgh8nHLOH/8E8Q3/ME8mohv9hzP0v1bZKf3Nxh+xy8NclKf/oOK48XyhJU/yOf8XFvkpcXHfwcbpL00uKxBzn0/bxahceyuLcKorEn+T1TxtcuU/A/S0q4S4caOCXJOIW5yRy4pYScT0cJtP0+JpijkmnymlBw+lP1Jta7PuS9T5ccpajs5/wD5P8vDg2+SdXanycPVyfGOVxU5OfHlyc8Y5OVm/wCyOS4t8uTlqVDUP56OC5cuXN8k3l9wPjy58eM8krjjUQ95GuPD/JxfJLlE8mk18M5rjxXL08uVNw2q8nPj/j/ycuPqlU29H+Z/5OXFPkuH+Ok3qz/Hy/xcvV6Vx5OnDSTSg/zf/l4w1yfO3M4deDhyXHjy9T5cWkkuvc4//k/yJvlx5cpfpU/+ycuL/wAr4tpLkp4rb8j9PLlLfHi2uLxDT9jny48OMJcfW4mJQuPLg16V6Ul4dnL/AC8f83GOXpiU4lreZY2uDa5eh0n1Xyeni+PD1QuSl1cn08P8b9T5O15PSk+E8XjjyWa8n+Dn6XxfFLisrwf4eXJ8rS4WkoWTi+XL1NJ8XEL/AEcOXJer1LdREZob9XF+lT5awcXy+lOeNKYqRrjy48YnONeDk3ymktqcwcuKayp2cuXHjKT9P/JzoS5PjyUvbX+zguMc4SUzivk/xpcuUptvXjpj9fHikuTVUpwc/T9T5cWmk8UhvkuPFueXJJcUt5s4rlx4r08uUU1GX8i48Z4+pu8ScW3MznQ2lyb5elqvY58eT42+XLlisZOXq4tQ7vuhepNPk3OPf8C//s4tNKL5LaRPHjxaha4n+Vc0o9SiHmvexJcWkn//ALa9jj6auf3E3xWX56MpQ347Gk+MS8JjUd9oXp4tLjxXb9i+M0ui+NyouBfV90/NQN8nydp9H0vjibhnNepKGu+mc2nLiReriocvvYm07aUTJwiVbWPk4cuXxo+lvSH6nxdMXKWsM5PlNwL6+LqtdMUNjyVOTPHfgT9T292cFx4r9/kSfTh0W28lKNH03o+hTl5wL1RSi0WuTwfsP3L4jhOnJlqU+i26jwcXWPfser9x0lHyOU9+SkncDisYHaOV9/0e/k5P0rN0L1J46F6l0z/Ha44n+BR/kcppdeRNcsOEc44+mE3s5ceXqytryJKGk5xBjjdDduW0Nqfka5Tj09EpccPb8QKFhLcn3XXSMJtOdCzp6KlfKH6uPKE07gtOJSWSrsuseDju3ihW1fgcqZE4mExP6ajySnEt+SU7lanuBfUsP+hRyT/YUqZRTG6hSXR1SHSWO0VColcXa2ZorS9hRNyO3EvwcW0qFT0cmmnpmVDXkULCM6ZdWREX5LScuGJqzGDKihtp/sd5G/qFvPghJqmYWX4PqfJ+lPofV+Ti6ejbsUcllmZwYjPZXTMP9h5RlKhOWU0sGoln/TK/0UtPsdJ5KhX2x3DyYdQYF/8ACfV34PZk25gzKkUNYj+Se5H7PsctWZfKUv5/R+Z7OXqbcpdFNy2OE3PwUJ+kxlGqRnCK1IsbyZeBuUpa2dXAqasVK/gqcirlMo42qXS8mdk0PyVH8kowkOtE5+P0tL/1Exhcf9mMtPKFf8maUjpfgTaeWduB+z7KUwjE23/JxXJLfaPtzGht8XroctQxwm/U2vyfTKiRU1HLRMt1G0OG8tFri77jY5TuNivCZSimYbuR3MF+nE9FxoWSW1JiNjhtZE26ls4ueOamxN+BQpkWTdCvi4KSt/8AY65XKF4n+Bym4ZXUH1RkUp6Lm13Ivc+lcpnwcfVEQx3qhXsUwsf2fa4stp/sJeUJp6Ll0vI6ateT6UqGuSeZwJ8U7SgjjC/K0OKwVyarTOX0rCOSj0zxhYclcpk4erlyalcZcs/xqFvi0zhf8eUNZnk3GO2RyhONJoSbTXKqF9XJxK15OUcYcttz8Db5Qck016vcccXo4ylh9e5ylPk3PS1siOOGsjyrY7W/k41xUr32NJuFG/IpdtScbUpvt0L0tJeqfbQ5Scv2nRfF4XRiKjI/fsXJPkk4aj8ENpO3bFb5xCWolfInPHhGszIrezM/AvqWV5MOR+njj1Ey1cijk8kzroXq5LD6rIo5ct8nCOfqaS9UNRMHPlyXHj6omp6GuoWDm0nMvsiOPL6PTLl7E+SfOJi/FDhKHftgTSVTByXJ8uKbjC8Da1ynHI4JclyhTyxSsd8lLc/scvTp8VtHGGm00+hPklHLlyeEpgXJJp1Nf/ROZv8Agbjj0tdCScLlOEcuXF4qo6kl+rlDbpp7P8fq4q5uPkXHkkmvSnb5aU9CUcrji3EdfucnP+NNrjqJ/Y5pL0+lvjUofLl6W0nOsQXzTw1aXvsafKmpUuZo5P6YaXGoH6nCmZtxNC1bnDk5Nym083o4rk+U8Z5LyLnx5etzENNa3RL48ub5erlff7i5cVy5QuScrj4g5rk+WJWvCk4NcuM+p8VDa7ycVx4qVx9Vw9OTiuX+Xl9TfS1JxhTafXf4OCTmOLalzBxa48vq5ceW9Uc/So9K4xMLL9/Y4Qub9TfJy3sT9XLkk8QuOjh/j9XLjHFxLTjPucG1yX/FOP5P80OJSSahHJcv/wCTy4KOKfVJT3RwXD/FxhtKJ4pOXfwc3y5cX6n6kqcJKtj5cefLi+PFcVDe030epclxfqebjd9eD/I/pt+pOUojsbX+VcZ5JyvU+0f4uT5cOK5vlxcrk4tP+BRx5N8eS5cY3s/x/wD5eXFPklySS5K/9n+PmuTnjxtNcbtRoT4/4+Dhyvufnsb5JJclx5JJRSrs4/8A9PLnCukvFia4+lPgvUqwrf7nLjy/zPi03xjJ/wDxXz5NJNrhLSiHW6Ob5cP8fpXHhyhw8Sl0cJb5JJQ013ByfDkuTTfNTHUI/wA/JpueK4qWm07b0c/VEJxt+ELjw/xPmvptQomJOXHjz48nKqYE+H+PjHqnjXNtSvT+Dh6UuK4qPebfycvV/wAvTvi7OU8HwltYT0cW1x4rly5cluLONuEm6aeauxc+LXKG8puZTRwfHlz4enUN7aZxXJ8XKbuaJ9XLk1ymq/8AqOS48lycu7cYg5/UocYnwj6XLS48seDj/j5f5En6vz0c1/i5S+S4PaiWRx4+mX6ph+w+M8sqVfHcfI+KXFumoc5UM58Z5crjJCTtrkpqcHPlxX/GMqv3OL4xCTwmvYdVQp4pCrCS17i9Shtp2f4n6rrPp8nKZah4OdNT8HKGpTX+hPjFT/2f5WlxcNW5Xt8im7fbGvVxfqS3AvTeqHHqdt5aN5k5fdoa5OlHY4by8n+T1cW2klrobbc3g5J8eUz/APTi+K4uM5Y2+S1Gjqbz0cYTTS9tD+1ZX7jiXc/sL0vDfZccR1iPgpKXAkmo5Odiid/9Fzt0L1cVpHB2NV5OLnon3Oc8dI4temMZHTi/Gjl6lMtZsXpXGvcX0za6FUFvKWx40fTyeOhPr2NHJembHS32co5O43Hk5ys2t+T0w/t8no5cuSccblob1Q5hZHKmHOlJa5XJbeHo4+pN4OHpjHpocqM/0zk07cTkhPjV2cb4q332J8fTmVk8HKeKdqB5uB0nZynotMwv/o4q0S4Ve46eHtHJ5tMynEuj7eXGYehfU7iDjCV8U/5HxnaOSW6L48csTtifFJ+pPz0cojJ9UXKHXQ2lMfBb/wCL8EPz5Fq2KVxwZ4q+PkcvSFK7HDjApbTTLT30z9+ym1a7PtiiFtFJfuhxxylODP8A2WuX0tbOOHK8nP1S8FcWq9ykxxNCy5b0WsFOL6Q67Hk4ppIm8LaZfkcPSX8lS6GqtIatUOj7kXKoeaZhbMDEmlkcNWbyW4rwYWTZTWSv6HCRd4Ra35Pwcp9IoTyZQqVpjppwjShFpZY4XQ45JyvYz/Rumxwh7hDWMnKWsDh6fk+X4HWl4HawxXtvJFZEoayfb0W4wad+5aVNDuoRxX1Dni7MR+5yiXPuhSszkWHFDh8XLXYqnexTydNaQkk3SLTtI5ZvBcI4q4kxtDS48dFtaM1WiVKhNDtJNsVuzjeUP6nS8F1B/wAXR9zd+wl6k5kcJKGXxaUeRTxZapsvtiUrXR4YypdntPgS5N9pMaUKkVNmMudlJy5L47Y546HS/k+rsw6+BUsspZ+RRy14MxZXkaXY5WkZVsiFf+hRy434Mp0cPVESlleTCh+RwlH4H6uTWRzyeW0JttZ8yKeUw3ywL1To4cvVxVexzfFNS6+14/k4Lmnx9T5POcJ6HyU65XHmTFx/YolRIo9NwJJNJN/7RTWOPd6FEqni8jhPEdkvwnstclD67H937I+njx3GtGJ/Y5Q8tLDOXpea9xTHH8vo+5U5mBS1TWuh/Txd6uMHF+qFKZz4r08Fy/6FfYm+fqhP/wDxjH5KxxSI9a40tt6bH6m/cjGzLv8A8xRyVOTqFyeJMXqCbqf9nK3i9HPi+S6Zz9PHinyTf7oyxxxcNvRxS4xDfFW0cvpbiO0KVxf7bFMfanpeCEm59MT+D/8Aj8+XPknawnNOJP8AH6n/AJG5fJtNOdI/xJTx+ltuJOXpXLlMvK7bEuSm4cN9z4P8S4tTl5XbR9rT9KbmLqz6Vx32zkuXGHC5YXZHLklXKftU/ucePJcXMt5c5yRwbt8cvEwcXPFTDv3Rwe3di9SaXqTtR/s4+jipTXglf43PJTl2fS0vPwcfUnx9TapJxDRwTXF+lcVU1A45+pOFifI7n0pbb7F6p43DcJ6lihxb6VTYn9W5mvBaStzEvNn0pr6XOPP7HpS4qEs0cHyXBNzrI+KXHjhb90Wnvnv2EuX+PjPGJcpOLXg58Vya9P1RLYuXFy3CpNeas4enkl6W6bTOb5cOSfH0umn2c/TyzqI9y+WOTbl9i48f8fGeMqnNW/EODnx5ceHH0+ri5ScKmpqz/B6m8cuOH5T6OPq/y8uL4w+cOcxJ/iXDi0uT9WVqn1Rwa48uP0vl12ennz4v6fVNcpg4enilPJaklcHjmscfBz9XJJNqZx38H+Ljx/ycuCTlWlOF+TlxfpanjyufB/8Ax+fLjyUTxp8e0ns4/wCblx9LhcuTVzvs/wD43Dl/jn1PlyTjipzJxXLlyf0tueS8o4+rj/k5Llwn5kfp/wAK5xPFOIWIfej/AAc+XGFx48+KnjCcQ18H/wCXi39Xp5TxU3hR4OHPk+XFvi3Cl4evMj5Jcl6W4n0xvwf5Xya5PinxWVia0f5P8nN8/p4tqG1KhY6Hy5cv8alvkjh/k/8AwLm+XFqqmY/BxS/xvk/RxlSv95E/Ry4rklypq6gfDnx5cmuS54SzXk5+l8n6piU+/wCRtf8A4uGeUzySUJfuf4+XD1KFyiVmcnJriuLlLMZaP8n08uS5Jck1XRH/APYvS/TER2c+XFtyksOs/g5ripTbdxWGc/VxX8xr8HB8U+K5JtUq2cJ9PCPThzXj+D/+M1/mf2tNTxiJn4JfpSTfnMIccFDl11RzXLi6V3x2mN8uTVLSqUp6HK44/tIfHly5cPSlmFv+R+ptJcWvg4epp/dv+DgmuWW8nF8kp5Li4zFH08tDTWEcoaUpo+58aj3RySXFVXY2n/x1NWcU0koWhxxUy8NHKVtPr3FS42vMjib9jOnvwL6uKlkrlxcpPfgcclnUPZylaZPJqpFa30xynEtnOE3nycq5Sm07gjkuOXNwQ7cH3M5S24UHFcpW4QvQqUJJnBPm1nx4F9M0kfS35ocpcr9xzC9Ka7Ke+oOfqakpvA5bwuNmFm8CbciXLklfGjjx4tpcZ3JypqU9CuJk5fViWcnHL/kv4Zy4vjiamSuMw3oedr+DklLhPsU8lryL4Fq/c45WF/ZxanJx9UP6uzknLurGl6aSeWKGqSV+zMxvTGolOXSFP/8AlrvJHLjmcj9XFO0RxbcL1fuXyTdditqUtHGeLUteThinBd37DpVHZSUNGHcHyZWymnQq70Q2JNTBlfuU8jpUyn2cW6hrz2K+Ik3d+DW/A5lCS0vbwKmmkvkpTQpqRzxzBNWNRryKOWhvjTizlPc9mVJTehNTnx4PdNDhuoL4t14EuV3JhZS2eVZETcGdJkQ6nyW9L/Zv+CksdEceSxHRHl9MVxC9hy1iKHbeD5THKeBe3Q501pF/yL6mYma7LSRbnJbRH+jKUJsahMX08rFTwxy9exUW0OJr4PhjmMsw0lEfIzGkU/I4TyjZvI4eitfAqk+EXySM8skNaRl95P8AyMxgiNFSYmmKVuDdG9jsaMPJfGLEbqxT6XElTY1dpH4KjBDm0ONJm3TMuEOWjOuhQ8NmHktJUxxEQkca213gidNFJKW0NNPSPtWGL6ftWh414HE6bwL6eNs4rksoxyJTm2KG3f8AsabShTiR/UumOY02KEsMiNvcdDvSOMd+5w9PTEvMDrlkS90Y0L3Grt+40puRxoiVv4Fan8GFiBSn+ZGknDTOSae1kUclsuLXYnOXKF7NoUpy2OElSW37j9TlQj3ZcUx2kOHp9j+rDNMufAnnHzByjEimds47wcZTVM+GcZ41jJSbj4HC2OVxVsaXFcoOWMJnL0t4ZznjycJRMo5O1b4v9xv06dYLXGeMawcPTySSfJe9tHJ8muCbhXI4bSh59jj6niZOb4t5eUqPhrDWZOU8m5oXq4v6pf8AQ1dNPoUenWV7jji78Tk5S+TtNxAp6fSKl25T9xwmqed0L1S2p7oXq48vqkS5euoyceP+NSvV5fXscH6eXKuyPTxzL8vA255KPwcPVx5r0t9exHHjxWOOfyLcWc1/+LklydQ5eoOXp/z8eKhvHLwcIfrwr2Tz/wAndfTUWvkXpveRclxazfuU3xcer/ku2ZfCXGn/APTDUsSSacb/ACOH/wCodLbUlNOa/kWik/p5J7VYOKS5L7Xtw6HL4qGukOmm0tQKea5NJ9eEcuTlxCf4qTh6v8qSXJ+pupwxSnT3BXF5i5elBxXHhyjlx56ThV+x/k48ea5tvnybSja/g/yrly+7iohO92yG0/qXG9aJtKVk4J8n9LbTfyNP0/UvTEP4OPp48nKSf3M4Pi+NPipo+qZTX8bG+X+R8UnxWIk4P0OHLppbjyJpab2ji3/k5Ok8pZwcmuPKePHi8qy2+L9Tbj09NHP/AB+rjHHi04rto5eriqa1N2cvS+SlKcO/HyN8kmnxfG5+Ti+Law04isnNQ+Lm8eZGm+LXpfLaF6uX+WY5LKqqHK48mo5OXPkcQna70cHy/wArS5LkrZCXFPjyVW/BzheiW8uThy4/4m5mH9Xyc36ecelKpfZxfHlyS4/5ITd0cvV6uNpuG1qjk+XHk/VyalPqv+jhy5NOOPHlyn03huME8nyb5cOKc10ujjP+TlzS5cVcaRypQuS5NY/oh8P8XJ8uPB5fycH6XxVvk01eH2cPVy48nxdw2ujj6Vy+rj//AIrS/wDbOEvlPLjKa9Oa/s4OF9SiZbnPk48uP+P0/dxpruOzjx5P7lzTpLTfR9P+X1vjxctS4mfY4cvXxf1vjfGGmk/J/kXL/JzTafJKc0v/ACOXp5f8E4iJVTr+Dk+HH0uHytTOUcny5Nv6phxZ63CbS5coSp2c0v8AHy/ySuLtYST/AIP8nDlx5tLkohJSc+EVT0pcsX+TkuTT4cefJvjxaeV3fZwS48P8cpcabtt/FC48U+S/yclyxepP83FcolJqFy7hnPhy5Li3PFyuS9xJJW+MJqNuD/Hw4p8afGJX+sHq/wAv+GFx58aS4pKJ/Yf+Pj/h5L1ceO43K92cn6uEel8U4bwr0f5Hx5tQ+bactNP/AKgS5emvUsvyev8A/FDXJu3NucdM/wA/0tqOKeo9/By5cXyXqXJNP1KM4OCXH/HyUclEtzbZw4cuPBqEuKahq3+xw4uHK/x/41Cajrs/x8eLXF8fTxml3kaWkoy41RKji/pe/A3y/wAvKf8AG05jhqX2JJ8VE68nL08df6HTeXpkNrXQmotdFemmxp+ptJvovjM8ktnBcVxUDaUykO3smYtFzaeh42OuLiTk/S+UPilqN+BQnLsSaYohSuin/KP/ANpE0k25XZL5NJt97dFrt5WhOJhtOf2H6fVabUfBzS48bU78SJPw8jfGPqc67OfqVHJ+qafHP/qOHNzhJSKG1QtVPscWuU229aHekhxFryOf8jUJa7M+Ti1xat6fdFJqZjXYp5fcruTn6m5bT0zeuzmlUpb+Tk5e9ScvU26Xb9hXxcraOXq4cdb9zkuTWuJxpYmRZ7FU7ElJbayjlQ4in7+CIalvzhj9N/B/5HKlbc4GuXHkpb2rOHNep3DmemVx7dMl8m0kK+W1scrU9lJI6bFE2+pFDWi5FGWmyFKhNCtfuL1coiEcXxSySuLctM5NJ3k5SmpTIUEeRTIoWGaUtDluJFLxRiLU7En6lHsKIuRuONC8yXBmclNU0OalChqpEnfpUuTE5kWqbPSmssf3OpFPJ0P6tFty0d5FfJ0fV4OK5RmOxYKi0mQ1he5jYpSX7CrMGxUqgxpGeWuiYSljhr9xWm5kdNzKNr5M9dGOOWKe2XMudmsnG1rs6pCRU4GYdX2Np7g/BSQta7FlOX5Fo9kyHUo90O5se89ERcltY9jBrBmZrodNYFePZDMupFM0zaifJ4/JlWiot+WJeBXx2b2KepKeh2siMrAs2z/j3g/JagmVn2KbFMOy2tCvPybcMURaHLcOPI5c0i+SUrpip4Y70W2rKXL+CIxI547RrCOKb76MZRhPA45RjrqBze9MSjfvo/8AgsWU0xS8z0OevccJTPRc49xWv5IeLJXqtro5YSaFXRHp8GGosShYZCTzP/sly7kmMwUhqcsUxfyXFCjvsa5LPc+5llspJDnrwOdx0W9Cjkj5Kih11ozNihOjOkhy27XgbSf+i/HkdRo2oFKV0f8ALOtjhuZfgcvlFeNjhtWfUvBwUq9o5c2+Lb43DvRz5Txx6ocv3OMtO1/Mi4tNvOkcHLc2vJ9PHlj3LfLlMPDOL4vjxysfA2lNrYlH2qVafY/U2qT78DTlfuc1y48nTdQvcb+nlNd1R9L5S2Q+P2xt+UL7e96K5clDE+KVtRntjxXHU2KUoTk5NTHwjK5TH5P/AOtviny4pU950T9HF8pmZU0v5FD+5NfkdJYi85FL5NV51Rw5cIlvk7bzFCfJJ52/I+LjinyXT37D4rk19KfHNzKZyS5er1QsH+aOL4+prc9Ni5coxNsf1cuLfH1Y4+Pwcvq4tS2olH0/41xfKE19T9hQuUtpac9DpYHHHLfg4zx52lFcVppnDjPLi1z5PLvC6Kb5ftoxh+Pc5cuXFJpJZTio+T1cXEUq90OeSUKohHH0ufU29vsSlTjDOfL1coTuJuj6mkk3A/rXJwo1texHJ8nafWj/ACPi+P0vj25cexyfFNrjM4UboUxSdZLapvvJhNSlV/8Amc44w3GpOb5eqK436fKOCXJ45OL+Dmnyj1KVCmVX7kelOOX72jjF0u0cU4htuvhHF8fp9LfLGbZy9XLjhvHGP/rOU8nXJaa9jjHLlvrycvoTfHi8vxP4Ob48+LSS4wmlMY/sX1vjer7kU84hrSuk/IuK/wATXq5clTb6V9nH0px6XprRxfJ8V6uTmm5lpD+ni36UuNWKHzieLttdHDk+HJKFUp6s4fRyb5OoUC4rl6vtm4nJw+nlwUcar3HXFS21lzo4f/1rnLcXHaHzbeOX5j+TnL9FLauSG2vpndOzguXBJJPirVUPly42/SnDT8+KFz4+t+nk1ENd5wf41y/xufTy4tPU2LjyX+TknDy1ODg+PH/Hwjkralp2cOHL/Ly52/8AkvMaE1xc+qLS41LOPHkuX+NpLrz7UJcm+P08d+fiz/En6+EPlxSaXWDinyfFvkurp/8AY1y/xvg+XNO/hnD08Fxb9PLPJ4cHF8uXHi+LnER1vo9XL1cFxmWklGEv9FLhK5NqXKXfWBf/AJ/VPJNzHt+GL/Jxa5vly421xcYT0cuPL/CuXp48VC/Jzpcfp+msZbFxf/8AF48Z9W3+wl/j48lHJJJuLmfHhHHj6/8A8dJ3F5Z/m/xrjyTnlTtpOlNYOS5f4+PGk8p9/kl8ef0tclD+H7nFPi+EPlNycOb9PJJwpTcqXIuXFt+lJ3Dn9kf5Hy//AI3+VP1JQ/S9NHHn6Wonkmt5fwLi+HHi5fF58Ne6Oa48uUp8W4UQ02zn/j5P/DyaSTlcu79j/Fx48VwXFcV74R6fTLTSczbzWRxxa+rEpz0f4muXHivS1X1VA+LXpb5Pk4TU38jfGKfa7Qnx4ymozGaP8cP/ACv1Rycx3Zcquzj9qZhtfkTfFKmcX6k/+xeri2yuTteLOeU5XkS5Q6cWxtcU07VxsxybzcCxtmeOipzeyfSoTSUtvUI4cuL5YeH/ANHN8uKVN5OKSxW0fUhy19LXHshPbZyUJRObGuXGK5NZJUZShpscKm+xv0vk0uOo2znHHlyniknHp18kevi/SrypFyl02lPwJrj3s+qXEPONFfS1L/ehLkknx+nMew24wpE+S4xfjo+ni9ty8nH7cM5cXDprEHpSd09nNJu0psm5SXLM+Dh9W3ypwcFxbzLwPguXt+TiuSat9FzicT2h3ybhjjl0tnCG1nByT45b5f0JRFN9l8Z3/QlPKYU3Ir2Ydvs40K+Lpdsccmoh4OEtW4oXq5NKOPxlnH7uM8nmGJNW2vBxl8U6ODfJ4if3ObS+5rUD+moWzlDSbc6Pq4u58HK330OWK1kzmCZm3/RCTtzsTXcG22zi2tN7OMOlBbVCiFTkU6lCtu12KUuj7cFt5FkymYmzj9XJfhEp49xT2X2Uv5LTtwRWuzGayKE6b3JnBpWtycabiRRORylmdHGGnHwZ1PQ4sfp9LsfpS2PDt9my4pF9FuW1WBYofiHgtdeBSvBh7Fikn+ktjmKhF+5fJVB24F9Sj/s6+BP1Qvb3KapCV5Zxjyhyln3OOXbH1DKSHstrJjaJaY82LHQ/UmsmFaR5k+C06n5Pgy9oUwqJvBaeWxZ/gWOjGivUWkaZV0/JcZN2fkqNkeUIq8DxghSpbKUCmHZc78CzgtxRqIFM/sLCoVNZLfgsUIUqKnJLvHYnKqC0tbgd7Rni8irlcjXh9C+rbJmcFN2T5FkXquHJytqjjrRNa/sVvAoe0v2HN9krlpDtfszFNiUVAq3ZxzXszSsUtlJq0LZSdfIonouLkVrLFayy0xxB1aE6VpjjjFMh8WmYemVI9RAsuPgroj0vR+DDUim6HKl0aSMpX4K4x+RXNf2P4RTYm08GSqofpi5f9HNtd7yN8klMTgU3ErH5FHFf/qaVSxNJnGOTVP8As58vU6TX9onk4SbxI9V+C1mGcuS4q+K/kjlyaiV15Lzh7E28OHMLX8jfF8cT1Gzj6vVCmcD9TmKwcm2/tfmDi1Djk07mYbg9MTM8pTVnD1JJeprDqoOC4ri3b0tUNVP5kT5Pi1LlY9jnDXH1OlHgtcYlxSfR/iXJKF6uT34R/h5Pkl6YcpNfk4Pi/tfLlVSOOPp9L48sR2h8fSk0uKcNKZg48ePJSlNPs5eqnLel1+5hK+/DP+XClqUzhnPa6o/ytNcpa78ScL58nyb5cqgtc8p0uJzhRC4uL+Rz6qcf+shvir9jkuXGZTbS0JceXqbS5U2ttHF8mnpWhTy4/U28qdCTiJX+hrinEd+RerjyUtq2NNcteBSlE+C9JL2OMer7W6TXUnByuTnlqJwx8ly5P0pLE2Npqly8wPjxppvPqfY3D4wlli9fLlyT48lxx4OMJW1y70f4/U5iU0ofSF9Uf8lDnY54vi2+StT0ck+Uqu3Eja5cqicISfphvuf6OC48YhtJd5wLjy4U05uG6bRxfHk1fLEMh8mpcKGzgpfGU3j2F6uLbT7GuXLjylYlnL63ybjjcKcyKuPOE8CV55LlflYKTfpTmW77G16lPFr22NLm0muLh2cU3/jbp6Zw9HJtzlwtiXH1Z48nCaG/Vw5+lceO1PQ3KT4zGF4+CPpiHdo4vg+KanxDij/K+K5P7ph+ZG3KXF+p1MZOK5P0qG9iiFK46Z9KaaYly9Shdwf5FxWFxeWyeLiXymvZ/B6HyalcbS9kc+X+Pi+Lb4qc9CfPlxfLjyXKU1Dz+x/h5L1clyS7U7Ry+h03Kb4vDTP8v/5fVxhtJLK7OfHl/kXL0rlCpZUPY1x/y8uL48ec21NNI/wri+XFcXydr3amjg+XHlxp8f8AldSzg+MJpcm258M/xvly9SS4ypT8H+Llw/y8ITbr1XhC9XHjvljOmcPTM8eS4rK0z/H6Un6Xyik4RzX+XilyfpjXv/Rwjhy4PlyeozgTfFc/THLjhf18nDh/k48lM8m4iML5R9X+R8XxaTwk8HFRyUtRcxgiVznlxttK9fJwfH/Nyj0pqE0tzP7M5riuLbdtvjeE94Oa5cXwTU012mR6X/x6Xhn/AB5KuShpTtn+L1ckmuPFuE3GW9ifHmkuKmG8b6P8S/xcuPN8vUp+rbo4elcl6Xy4qG+OYQ+UTh8k15RyfLjyXp4uYi01D/YtNrknyzx7UnOE+X1cfk9baiPTSTuK6OL4/wCNKYaioU2f/wBvDkvU+LcN+GcUmklx4u1jCFwXKGkon5/Yr5EvU+Lpiu4qh+qFLfbKa5OUxelqcLIo5KYfY54vsT4pOXs5RcLyP6eUQtFclo4w2S2OHx5LkvccvDaq/IlKnI1yXF/TpR0c/S8zNI5Zb4vk7kXqhxlwc3x/xquSSmXFV8nNQ3/xc/A1yeH4QpXHC1A0l6orEbOc8Xx9VtzxRPLly4/SnXycfTxef9o5S+Sl8f4KTXqg4qWPkuMu9QRySeBtJ8ojQ36U258dJHLLlv8A0OVtLMCwql0vcxhr/QpcLjHnycXKuXylwJ+p8q8iTSc9aOFKpT1kX0pfv7DTatrpeDp03Tejkm8JJz8s5+qMzj4OMvby18lKZejkmk8zoaaj0tp3kd9yfVv2M97yf5KVnNp8cvNCfJbXJ2z/ABTxWIVxB9K5Sr7ycfpdNpZFE+XgWW+LwKFxt1opOzimuKpTY2ki1yiGW3R9MKmcWpwp/Jxni7vCoU8lMlPjT/0cvVGEYdtLstPIuo/0ZThPTHEOBe78Ft56NS0hxOGLDhoteCmlMlrbJaf/AKy7v2FDTlMyoMLJU4MzbWENNKWW4stcev2FDT2JcuP8oX0xgShIdbQ7cqP7LhWh/S9GlPuY2hYiEZFu2d5Yoe14MO1Jabkp9eRYHDdF7L8Ma/2LJSTg0ocGOmPtO5FKnH9neC4f9mzLwYnIl6Ucbb1spLjZU2iKroxDoX04RhitVE5Q7eWcZaUroTbbpLRqrQsFToXq5Za8ihTjoddFzgpTCQ8ZMMalZMvRNukOE3RvRFrfY8szk7mCk6LSz7ChP+SU6n2F7MqMe5ymc/pgba2YTMccocPolt/wQvT5G0lhCaqUfT0JpPLF9Kkji+zjcW8SYaqey4csUOKRMb0JqbTseOUQswNxxwOOXJ5FhyoM5HGzC0ti/I4aHPLSMq5FbclOU2pG08P/AEKpUC+RStlRs5R6rZPp2i+L2zEwx0lfv0Wn+TL2KfJqY94O6/onooWDCK8H1PXsWmsbFj9i4ct7E4eh5RUZKSUvyVPwzKHZb8ewkqU+woq59huVbQpTdx0ca5NyodshbFOmmRxjA/gWFc/0W8qBTydIWqMxgaXFJy+y5uEKOTxs5QuXF26XycpbTiMDXG/q7x2Ncubj6v8AQoXKL/sVO29LFFvlh5ijg+TabazP/RylOXyWWvKG45OePJVUUpHa4Q+57kfL/wDGnjjRxaTbni88XoST4yuSTm80S0+UNThGlCfZxtyxv1JWtR2a0Xyd+PYn1ceSVYiP3OHHl/kblcniPKOPHh/l4t8owuSi67En/j5YTpx4OfoaeWpRHLl6rWKwzny4ri/SuPFw302z6uLp8tvw2cZePY9SS5U9fB9PDjnjn2Zw9PFv6XmaVyL1NcccdIhL/HDXF5jbg/yLjxcv06jofpbbhxo4tceVcW+SeqG+XL7ePHi4vbZz5cfS6cyRPFKeW48L4OLXq5PknmVBz+pW1xVcl5OHFcknycud4gSpS0+/BPpXJuW97JUTyS0cOXL/AB+p8k0u3c9HHk03aTqDj9yfJLOzk1Dy3N+BvjyWeScys2cfobXJufGBqFC+py/ZHF+pr6k7TWDjKUSk53sfF+pPNNbg5+rnwcpa8ypo/wAb5NOWnTXyPi2mm3FtaUj9PG6cJt7jpHFf/j5W0pQl65SVp5ycI536vVidwRKfp4tOK8+LPuWU+oycPobfHk4jX8EcuN/VEqPA3y48ZSay2L0N1xdN47iskPly5NP1Y49yOJmUqTuHJzfpXJ8Wkssf/wDVxaa4vEbcnL0puYX9D9LS9LXLMnFvk+MJt/mDk/St4b+Tm+P+PipS8nPly5Pk3xaxBwSbni3qYcT+B8fX/j5N8VxpNTSZz9O2vPgeEkkvc5vjy4023KdbQ1y5tr0cliKP8n1NNLg1bSSw4OH+Rf4ufJck+SUN+8i9PocPjylpfB/j9X+NpceXNO5nEH+Th/l5cebXFcc8fDX+jhx5cv8AJyTa9VJeVo/zcuX+ROfSnSX9nNJ8afKZj3OCXq4vl6uLhcf3vKOXHjyST9Tptdn1cpt8b+WJPlD4vill9o4845cYawvCk/x8WuXH1cny5S+XVQcHyXFPk201D0lZwS9X1evvEI/xrlpNKE+1P+zh6k+P0tKG32zh6n9qjlcRmR8fTfJPtQjlDbTa5YUqBUp5J4TUYOHq5Q2k6b7k58ePFcLXKM6aOf0zDaULHZfHi0/Z+TnEJP0rl+YOD5NO46JShLikpafk4enk/u9WWpP8b4eqFMW7eWcW+Kt8nhqRc1xUpprB6nxSlJ7XS6OHq4pL1Oftfkfpr1JPai4YpcJt/wD6/ByS4v7XKv2H9S+ltLNbOVN1F2fU02k0hw4xsT4tb/g+5RK8djrMeBri+KlDcYnHybuT6kqZyjbXg+pO7x4QvTxTmluCHx4tvk3lP2OSnLLnKHE3Whx6U3IvVypzNLqWcfTyvlyUzLGmti9TXFNuf2E5f1KVh7s4+rjxTni6nwf41x4pOHxwNfSm72hPiv8Ai+0U1Nul7j9O08jcemWziodP2OC48XLf5HKj1ex9Xq/EHFp4YvUm97RP3KE3h+T/ABPlxiIPpXHHFzb69zhyhS8XPQ6bn04Rxb48YlrXg5NceKUJTBTVuci+rll9LwLNJPob6SRaX1S6OfFTTSObr9+znHFXts48k3g48vT3xpiajFDhbbKSWcj9K4zSw2fUspzfsS60sFpWx3+wmpI5NcpaeDkuLbTaWIFPFY8sVL9iknD6gVXZfGi+tC+rsv1bOLfJ3LJ9TyO9it2hZutPsct2kREzDH91NaRax+j9SVIXuzDpnGYQpc7He+j6V6ceRpOMsVuifU7bHLSjycoUWhry112Orb9oHfJf9mcX/RyhMtq37GOTFaz5Kmmn/Jy8OC5dI6sp6YmoaU6yfclfkpig+r2xBnMjfjyKWqnyLOUf+Y/qdkRv3Jbex1Fe43y5O/gh4Fb0dzPkWsDjk8+B10cplk4oUpozpMyVNNjvaLSyZ0zIpg39Qr5aKejOvYpPBfY4ayOOxSmx+S1xHCWhzP7jv+DUNvYrhQfCMT8/pb4/uJ+roeR0pj3HDTMbZlSy+UWUtImGOVThDaT3FGME2K9meOjlHqZpU9iy4ZaiBtypv+C/pw7gSSyosVPD/sX1R8FNaIlKbHKmff3MqV0KZUObFexz6spipw46OX1aeyW05R/yymYqfYzOWOlaFbw/A6eJ0Olm9Dcpy14PuezDdsU8fxHsZf7Dta7E16seCtJGUUuMPwXN1pErajocwqFfn9FPQm+2/wCRy9D9XLlo/A6jDMujXX6ZQrUyyk/0+1U10ZeR23SwPOV2TMaH5EodGVXwOfJcpR4MLLMJxZabx0yp0xzFnjJrJEK47FHLKFFS0tsUxp5E2nqDkuSbhqIY2+PJRx4zNyQktzLI5PksefYiUoTSws0erik2+L4tRyqYagWYoXpSiW6a8HLk3ct9YI5epr1NKIXRxfFcXVfgb5P/AJLEkcVMfVt4iC+WOXJd9L+Dk+MTESqjs4vlx58VnSezhPLk/SlNY7OaXJuGtycYT5RxeU/k/wAa4c+McVy1ycKZ+DhHHjx+mHnl/occfVj/APXyj6uWVK3/AKHK2jg1xST+mVR6nx5Tmj/i8LrZ/k5ceTh8uLVrU5Ev/wAcpJ5b8n+KOXKaj+j08f8AHxTfJKiYmOSeUKUnMNU1NScPTwankuKw12LiufJXy49ak5Pl6eT48eX9ibX2qJI5cFxUJq4OKS5cHKXQuHpSU5mfBynjy4v6uVQ80vg4pp4aPphU5s+n1L1Nx/LHzaXF8W+Sps+nk1TyjlKw1FC9XGuS49+GcHx4uHxa0uiZ4v6WqceT6k2OeSqtXgfq48UuPLi8ycPtUS++vwJtclSeDnLly9+wny5cJcdvSkfp48pTTu8/0V/xS7XZyXJcqmq8DXLjycr1Sml1Bwjik+M40cvTPKZ0hOeP3cknHJ/+6OEcGmm4pLQ1y5vjCesYPp5WvTmo6Oa9SzxSr8aJXL1epON+3sT6lwlelTd1+45/yOG/fEPsiHajSjfyU2m23TbE+PBJp+pZ0ceLhL7sPv8AY4enly5Sor9h+qOTafFZujhy9KzxiGv9nCFlNvXuenl6cJqYY0+XL6n1x+Rri+PFNzxmWf436uS9XJcr/BxS48Y48mk1PRzX+TjcJ1D8k8Vy4xzi1xeKJ5PlyfLg+Lhqkr/6P8D4+lJPk5pzl9ryc1y9XF8ZXG1W38H1fX6km9zo4ceHJSkuKctN0yeP+XnL4t9LXuf50+HK2m/GDk/8PP8AycmuSin3K6OXLjx/xy0+K+65aTk/yerny41bhXSk/wAjfLj9XJpuY6HXGonJxUJQpXixPi+Muc2cHxXFJNtO500elJRDU0/KOPpXH8cjhPJJKF75Em1yTa+OhPk3ELCP8fq/xUm+KG+PDjCXp1a0c5XrfKXlZ2JrlCa5Jx+Bw19TXHL7Ob4r0/VxeeT0khelcVKTytWzm8rjyaX4Zz48v8T4yum9NMptPi5xJw9T48nxnCjx8FJrExC1fwcfp4perkupgeftXJU2cV6eUylULwOOXHi+TQo5cuKtaoa5KuKbwcZ5bb35R/kXFKYTdSXxmZ44+DlxSmU515P8b+mFOuSFx48m2pS1qRYdOM/A/umV4G36V+3kf0pZ2KFteRwuVKsFrjmbYm1yaSivlifHis+lOGo/7E2vV6VImuVpPQ1QlDWJI9PKGl5OKbjW/Y5uOM/Sv77OC9UqXF4s/wAcri/S5UQcfq5L1LU+Gf41x/xp2+Tm/wAC9XHKbw/g5SuUw9oXq/yOnOFZx4tclC8eD7ZeezjLTTHM2NuHbeYHbfqg+l8nayu6GklkpL7dprs4t8pmXSn/AEcXyT5UnceUXxr4HCiWl3NEL1OGu/Iu/q8n/HLSg5+ri9/B/jwomrOU7a6E+Vw3glUm/c+rkmmh19o+M0/9SNQ1oh17HDilyV1LgWRW1c9jjipZjDY445XY4WvY5NN718nCIcON9HJr/JxpcW8qcEp3KOXp5TgcYgukmjg1x/8AQTEbGkuS+IOKbUQ0XUHujEqBVGRtvstxsy4/Akrht2mZn4MvCFKlEWyuKY7mBzyybysjhqhxGDOm8NGMorqB/TuSHmSmklPRcKmmNJQYjJuk0cneB06OXqm3JrK3k25RpZOVKvcv05Zm48lwseR3/A/VGVoxVGUj3gj1P+T6mxxKNvJqpHDFPLlUjrM4g+puoITSwbH9WF0Y2OdtD7MP9jWx0yG5iRXuhxMujqy4MzBfLocz3+i9/Y0fcXP4HMbPtRgwOfCMvX6dU+xtpo9hXryi5UjhPY6Q6ZmKQ4UTD7PhnFdIxl+48OoJ0qMProxEqbOVcljybtdDicMuZcsmZwZSUN4kczbIcnyhfj+SEnNC+laHAtZP+VT4OzeWPdsw/wCC5cCrRTjZjMjlK2jKousFdiUyPBhIpseal2OeSf5Qq0KH2Z6wbctDiNi+lOyEsGHXsU1SEk1iB4UQOovscdPwZiDA7WBXMNERMId8ehw+Vovsop9ocNfgcucDji8jhux5sX/0f2uURG2Wuyp/jscvshN4bH90GOiIY70Z/opz/wBGjan5FMb/AIHq0Yy30cW+Lw0coczDH6o5SktnKeW10vY4/UqrA3xXJJJ/kbbbfHk1crz+TklxWJ4zPucOPHk69XHyowc1yf2zi28nP1Jt8kn0cl7ZTPU/S25wc3x4ri21xzHuOOLbrLg5R6pa9tIS9S+lPxk43xlp/GUbqPPZK4NqIdSP7k/utt/6OVemuKwvZDtuv7JaVJrSFTyj6nypR3k48k0l6Vy68FpZOHHin/zWYvJhKGtH+Tg1xmeXg/wtpq02rXTQvTxXG0rRHqc0jj//AFxHpUKPLPS3ya4ri1Ed+xyT45fq5RDfRw4c+MfbxUOfHZxfFOOPFRD8nCeL4NN9bOHqat//AEfFZnepOLS4/wDJLLbOK5Ljyct7H6eMQlGuxTycS/8AQ4XFJtLsXFq230eri0koUP1M4KOVwraEnydr017tn0pYT/clcuNNLLfZK5clLfnpHBrk16UuVSU2p4v4OMqWlL2U23y5QsnD1f4svpvSOM8lrx0f43x5N4cSnaTOFp/THUIUYlZcwcfS2pS5dC9XFW0P0pOGnEP3OH0qW2sDhPDf9HK2lb05OXq5qZXajYlx/wAi4ptKCPT6V6X2/bs5y4n6oiPwcXf3e4vo4ttJuE+inyjk3H21g48eXLjl1KTRyXo48ofto58eSSrr5Fx4/wCLi4aTvk+kKOH+SomFx6/c4+r/AB8klM5flT4JT5YhUlk4en0u+Sr2EuP+Ntue3Ox8eXPk016dXsT5cny9TfFfa4wxr/8AJDaSaleX2j1ceTfpfJY5PaaOabaT4rDanK+COTcSuVJXn3P8b9Sf0pqEq7+ZH9SU8VH26wP1ceMUv+PYk55NJPMPDXyc+XLnP1eq1E5gS4ylLjLk++Wk0pTu5H6m/qawkckuT408w4OXBcnEvnM94HLmUm9dob5cuVcnnex8ePBJ1uT6uMtzN5wcZXGJfycVx4t57RxXJO+LSrkprQvuiU2pjoa48vT6vpw12P08VxvilUaaOPJRSbtycOa5riuXHnxUQ1hvs9cT6Y4x9SeHE9nNcv8AG5jjhz47wcufFNLiuOFxWE8n+Tjx5ceTSXHlPqT3klvi6buT6OLecyvJyniuLiLl6GuSbltOlf8AInyThcU/abIbePS69p2cITmI0x1L9XJujmvTxvzJNueXuc3LpHJUrWpIT5Nx/wDDlbj5IbWIyxtPMdWP6eWSEuVP3Jji/ls4+ni7Sel5P8vLlPJwojdnH1c+UelJuXsVuE113I4+ptLyU0L3jsX1O0lr5OKTuU+vBwhRlaOP1pu+O0cVxVwlTVXJzlxen7nPly5QoeheptRK2zlPLSt9HBPi8JZVHF8uP9ipcs/Byj08Hyh9k8luOzh9T1JxtR4F6X6q9jlHSZbtsVJVOuhJ83l8lUCTmUmrRyj05S2OuVvs+58pT8HP0rp9j+nkvS129kvp9H+RS3KUfgafLaWsZI9PJT7CXpbiZ/ocJYfbEpbzs5fUlDWT6vTbZbWO5G/U+hy1TeC+TyuvkSh6emcfpTuLFC2vgxojipOaWIUZOEvi/VcJR4ITjCPqnT7Ep42L0uE0+y4tz2cZfJz+wlDzA8Jwy8yjqj7W/wBzD84NaHp30OXgp6SLTcSfJastaPdFRlHKZhJDpZgTvQ4eI8H1VLXRL4+NCUzRWpLay+xQNRFn2xMHFenC7ZxSS+B5eD7c5oUJUW+9mE5Y4lQy/VsVtwfdoUcskXbEpePKHXuWr4yY7F9X7FRSFUZMHv8AA84Whzy5fgcS4S1BHLj4LR8FN3AvMMprvByhrrsdvA5byzCEqsdNqh334HM7HPqr9ykrQpe2KFxmReJH4gerZhYLlDi7PwapopwZ78GVKRmaZpWb60L5HauPJHq/Bja8nRgp8X/8H9SwK0n+TKcNaFdwy+Ly32bu7sctW9HdMqS2ngVJH25s08ozytx+4pjCk+nuBRI0klf5PZGS25g3n+jWyo2YW/A4hWzGmKuPKv8AYvVKyY0P2HD5Z2O2RbloVvDKnRS2Oowh3r2HE4aFLxYsWW4qTLVexLXeR5wXhotPKPh+DPRb7R8+wpeI0V/oy3TFeF2ZRms9kKUK8pnWTO5L2cuL5N+n0pqY7LeI/uBy8pmFvyOYFSwd2POEKoowsi16fgctLaL3+53Rh2mhLknmagylisjuS7uB0lvYpRD9SyPI36YmByotbOMJZOKlZTKhX7CtqV0SuXFrPvNHOOM2t40c+HHhPq4qG2lmyOXDlxn175OhNNYcUjj4+NM+mITqJXYnEXo41y4w+U0r6OLmfVexPjxSn1LXhErjCvtkrhLpYdYG+Li/S8Ma4rj9rT/kTfFTHq7Hw48m1xa53C2/wcuLiOT48WpT00f43x5JfVyxL7a7I5eqHCV/HZw58eO2uLz+CVC9PF8nc+DPJzL67Oc+nknEZ8MmVyT5JNQ9WcvpahKBePJUOJ3PQuS9CSlYa7juh+pq41xRyaa5eqeOl4I5cGk4ib9jlEZWB/Vb3fVi9XL0uemoOHpXF0m592KVEt/I/Txd8lytJLpH+Fen/wDZNUltqBKV3s5+rjyhwnhQN8OUQ3leDmk8pbbIpQsfuQ2plrM9C9LScrk4X/pOPq5cnH06fk4ynTSJXFUpof1YU4kSfJq4dQcmk/qa7eyVDahOJI4p8seJZy+pcrfnR6eTym0sjfHiqXlbOKfKU+Lal5yO59KfaPt9NPUDSb+pPUnGePL6XyWPk5x6ea9KnPE4TxcNt36qP+SvjriL1clXFrbjoXpjjHFOnPXuKOLXpiFSJfLlC6hp4PTy/wAUJS4bio9hL/8AIraW/cb9fJqVEOrSkT5c+US3t9I4r/GuSXHjyiGn1IvVw4tu1N6c+4pXGG1ENv8A1Bz5cuPL6VxX/Hz4OPp/y8UuXqcNuu+zj6eXJtenMuYk5Phy4v1L0uEzg/8A8fJer1JNYqU4J5c+NtNU1F/2f4W+XLlyfq5KEr3+TlHJNOcpPdn08eLhQ7jycEuTX0vpSc/VxfBcnxzc2kyeCnHLMQKem99sSfGKW9S4Fx5cXXHksxCyvkfHl/k5RDx/8FwfKPqeO9nCUuKfFp37HDl6cR7k8ePHG2znPGXLa0JcVhtaRyT4JxKw2RPG2tHNRydRp5k58eXJTx9KJ5tqOLdenwxc+PLjzb4RjippR2P1KPSk7bWEQny4pS/bRz4cf8fLEuJXT8n+T1cXC+lJ+8uBfSpUdoUcvVWP2ZHL/IlPq/2R6moXFPz3o58uPFcnToXNeleltY5Krk5+p8X/AMqb8pDS4t+qFT0cvSuLn08Y+roX0u77PpUfdqP6FPJ3CFK45gS5epLHcCT4vlT6FM/8u0fao/8ApybbbTfg5v6ba4tjlREdnGVEq8i48UuMXme0NcvU87yQ/wCvBjhPJp9Z/o5Li0pjfwOHXsKk6cH0+rlQ75OJOV8eX7HCHxninmS1iDi1yStNUtnFJc+Ll8XvwOUrTWcdCfJchtf43jjpOFYkuKabeG/A55OYfJwl4OThcmvp3Zz2/SnEx/s+5zLhSrIfLLaq82ZWYE5cXqCW1mcQclbiLycknFro+pNUc/Ty4v1JbgVymvPZxafHEdn0wqKhY/sxbXlkRycxlQJPjm+/0TlRh0/A/SktHJ8uLhqcT4FHJZT67I5KJrT8nwZbvsUepy2sPyfVyiWjhyS8YFUrPsR2158H3TPhs4tQ7epKiISKb2cbeWncnL05UPZCXpj3G+TTr29xy2tHsy08PsUPoTaShCj07WWcoj8j+l78Ds6ihqd+3uKNLpndEpxXsKXo5eDCWUKZOOLLbZrCH8/0RahESnFFp7WT3Q7St+C4UuBTLuBTDhHGeMfkpeR/V6qej2Zf9G/4HK0JYoUvlNnHf0m6ZybhSW1noicjmLZca6FLeWVA/V6YUExlIf1N4HjXkSlzDHKeTKodqh3otJSKWolGU2y5/bwcpSxOjLy8FtZY4TZA4nBXsRSITx7DloeFE+SklHubMfyyI0Xyf7C+mLfkrvuDdz4H7f0fdMufYw8rYrdT0UujCr5ML+SiqwU/Aq7HLdopxPsYdsc7Rbw0VDspJll9meVz18FeTeELNeyM8bhmYkcscRgyx1iNiTlWd4P+ODEWhxGZFD0bZjUlJm0YH5Hbte46lQh2coih/VxHPLrodi/92NcktdC+rfgwXPZb2/AreEfdqCvVrof24G+L1IvU9rS9zI/q7MLszLhFzlPI16YbT/o+15Ppa2PB03Bl9iMPEmx/T/6hzxdNHJLknC7OTXqUcVxy6OT5f5LhKlxqL7OUt4FC7LixrMIf0syqbKatQSk+xzNM7kVrQsV5PuWGN2xfgfp6GpljjTYprKNWJN8lMvopJJlqVCwK+SlrodRkUzh+fJSbTa6Fl0zip5ZbMaa6FCcp6ZP0pv32fa1LQ6XQ6RThP/zOC5cOKpRUdj9KapbOfFf4+XFe6o5erlEx/wBnFr6pbxrDF6Xyaec0P6Uq7k5+nj6VyT45+TlPJqJe+jn6OX+Rr0vKXwc/Unw9McoSmcycoX2w/wCfYSfFzK37r5OP1SlDtpkcecKV/wBCS4vinM3JClNt7idCTeU3S8jfH/Lx4KeSpRFI/wAfJPKUT8j9KTlerqMM48XxahvjUCXpSlJ76OHFJu1x2+zl6eKuPByp8mldx2P2S9x8UuSTkrly+lRhinMpZOC4vlSfFJP5HCfH8nH1JtY0vYXpWZ5VVYOKbVJ594LSTp48nFS1Kffki1SpDTacNeTivVFt1LgXN8stLCQ36XaaGpiIXXkxDUq9CX1NttJ37o5pcanx8EN8n6ukV6ZheRKUphbH9X3Jzga+6JOUtr0r+iJTX4P8nJTycwm0Q3eDh6XhPsfpbTXqVSzn6f8ANxccVf1Xcn28ecp8VEUte41xScwm/hnFPkp4ysvyjgly9LfGYu6r2OL9PJQ41XQ5aUN/HRy5PlyblpbOcrkk3xzDHPF84fFKZt4J5elKaho5JcXp79xJV6k53k+rjxn1cphpyP1cWol3XRz4rgvp4pZ9oEp5OG+PRyTcNrLarK7OXLjy9SX1U43QnyXDjMTh6OEcXxmHj8D9TTfHm9ZlV8wL08k1Cc0nhGfUm+MKUujg+PLimkpv5OUf5eXG9+0l8XPGXZw9bTTal3ZxXFym+Kw+kujn6Vy5KbnYr5KI7OD4v0xxqFPaL5TaVVGcj9NzyXHbMcpTXntnNPtajwU3PLzmz6eXNp8dvisnL6tNKE/JPFcXKaf4g9K9PKX2rk/xLlx9VyrmZRxXFKklcIyrbHHqxOEKeTy1iOv2OHpXJKFyUSpOD5JcfmSOPDjw9Xpfulf5F6k1LW17HD1Jq1h5kcSnxvPHPkXq4r6krhrOfk+qpbY/S3lN/wACTXH6WnlPJyabbZDXfkS9XGK78ihLXaF9rqMpG8POj7uL/KMLAvuqPBzpOcT+DlnjM4TFL5U1mibX0qbycoxyftBaxRDaxPQk+Xpt9n+Tjx5803xXLLuGUsJ/yc7TmGiJiG9fAsPHg4+pvPsJJ8l9LWI7R9NTLpEL0/MoV1DHybUpp2j/ABpzUpwyUnHFcV7ZOLUyvYdty2Q9paFCahrsUJc4S/sdcrTzJPFRhVuWxrk1yhT0Qo0uvBxUcXXvpn1ck2qpfJ6lHKLh/wBjUNu3WjmlyTifA2knPiBz6u8CltVH9HKJ5J+5Pqz4kb+5KX7HH6lMTvyP0tYWJL9LteS+LlpI+mvU3/RmKQ44uGkWtv8A0KNpvKoXq48ncjpb/YtRbQ/toebKfqc+Tik2oroVKGKeLzP8H0wswWuh29dG6lC9NVZx+lTECiXaK5f0V0JynHiBy+SiPBn9yE5wWm6H9KtdnuZeGy28pdF7jaFWZPj3Mt570ZWTVEJeSlhsleq0h0sijiv3F4RSVmF+4o68mcSK0pN2xfSq9xtPiYTOFuky+TVvSFHJRYoTqCk1nY02tkS8stuoXYvq460jLwxS+xTORQv7kUzyz52P0vKM4ZgxywOsx4FlzJSbs4+pp1BTOqFf5M9aPtWS26Hcz7e4s59xRexVilsf1FTlCmd7gUrtH2zPwd2OLyUtItpS4wxxpLUeBVCx2RE2zVqy52Pcm3A7cr4HgUvQpT/gwolfBh4KTdScVOmY37jhQO3s1v8Aotsw6RSRC5NRC6Fc17DhK32Y7FlwhXHzJ3kzqOyJevIs2zYpgy3gSrBj+zKwOE83+5adF8n+3uKU9+TOH7lNULUORenfh+zL9Of0hTsWKa7KtQL5OiuimspsdNWswzhDTyU8pjluKF6lMPwZWOh3NCw5aOP4E/KfY78GS+M2/J18H3ceskoStltXJ9SVtJX8C9MJOJTn5HXKPV4Jhzy4rllKNlSmn+mVod7FLak4mcuLQ8ZREZUFJZZhZKbWfByympFlQWm4H0Xc10XKcf8AZ9NSpHE2W0sClPsoflLyLfehQKVkTdWKr/OmOE1bJ9XG5NOkafpSWW+j/Hy/xxhq0+p6Fx4+nioStu4cnL7eXqcfk+lLLVVGRUqa5SrH6lydLqzkl6XKWhL6YSXZSaTvW2N8uS4ylhHyh1x+nl7Scl6Vfq79kP1NcnyT5a9hpTia2fVHKHeBeqNr9iI4r1erlEirlxlcte3ucp/5J+ejny/yS16VF8bbgninynln1LNHLk+K5JcWlLdYkrjHqvOMQcZXLiuVoSS5K1kfpThcY08QRyb67FTz7CfLg1TStucHDkk1L9VV0cU3hN6Fdt+ns5ZtLJ6W5ps5Ry5Nriv3Fg5fU1PF3nolcny9KStP36H6eKVpW28OV0J8lyUQ8pGYXFLS7OK4tqaxijneo/otJ+lzdScOT9P0xxUnBcniaIhqEtHF8lxqXpiXHi+K9KdP/wCDfJ/al12NYlcvB9TbhyxTz5KUn34OENYnDfk5JeluV50clDWd/kUrK8j427a0QuKh4z7iTpy6gnnybfJt4jSRxXH/AB8blclL9kfSsp7xQvqlcuPc4Z9LXK+XCpdRLOXLlyl8eKXUnPnPKHFRO0z/AC8OPJL1S9I5vm021x45zlHJcuSS5L1Zjpnp4u0vbZx9T4pLi1c+5wfH/H6YmISeGcVy49xo4rjxXFNQso5+ngk/pbrllv2Z/k9K4ymptPNk8eXF+ni4+6t+RPly/wAf1clnU/2cF6eShqLXv4OK48Kh8aUWJPk36lFwckn6ocPXcnP1OVybW/DOT48k3KWLOLbinMWc448X6mvE9i9XHlbaPpaafF9roaUYa/YabhvinlPpfgXH0tq5hx7ja5cVDS8NUNcVy5POX7HpfLjKbXQ5ScryujhHKW08oaTXH1NRs5y5cLUZgfFN5jE6SFM9fknlxmh1KlNWhNcuPKOTdUfVx+5J1Bya4pQmspiXLlxleGpzA8L7dL2OXHk+WFyy1v8AY9McpS058eBLi22o8bk/xrlyWG0TxXJepXKS2OeXKl4Un+T1Q6e46Q2+f+TknD7j/sh8nDjxsXp4xf8AI7401EMt9NWKHa8jS5Kxri1iYFKnKOHLk28dPon0wkm0Zi1o4+p8W/TxexceKStLOMScnyXLgo5RX4OPJerHLipUn1VXbOMLTWGP1LgmuNL5G+TkXqeRXytN4F6eURy4vXkU+lV5FD9PqSqV5OcNZUSvJHGVX8C9c8pfp0vJxud9wcUvVKrCUHL6lDfLwL6W/uLayKZSvo8s43ycKi+K5U/9CmHT8D5P6plrO/7HlKI/9R9XJpTOieSf1L01Aq4u571I4iVySePIq9KSe0xQ1XYmqicHOUkp4z4stOuM5nLONLL4+xSblJ05KXGTj6uLtM+10uiUv7EoWPIom2Xx4zxnlj3FSVYJl7nHgmeLlLTQn9SdI5cvTmHESJv1XOj6nlCSiZY6wXG2K1XyT7douVSJy5RNPHkyqfg4w0vyxfUqo43Ze2KHyqUapmeOS/8AkmRhPzJh5ZPp1JxbhSpK2OKwfuK9mVcm8CibFMORSkoNXJfF/uYYsIyuymmOWbpktpihGrFL/BC2kK8NmZz4FTUyKV2a0cYe/Y+1ZhDtMWVbPmR0xYwTLgvx52cm3EivY7bNOCXGRxLljmHDMGHjsUo+EOUS5y+h+7FlRKFaNq/c1k7kw/0fwZ0KW9H5E7Q/P6K2U2L6ohCtK14FC0KUtmEYwOUVtC+S0sro+F2Jqog6mBu8sqHfkiG6aFgb7F5kpzY4jZMctdClP9xJpa6L77RLhR/2ZShdHGKvyNYoVKvdClKxO9ChLAqn8jptuOzMWQ8G8PUGH0KGqbKnYqj8kvwyUuh1VIlrDOT4t0mtHL1enL8DvYq7O5GnOx5wvJqJXkw7S2hNxj/ZclLRnKR9L5CzTLemKHxtsWf4MToqqeT7nZbjGpFbcz0P6eO/9j9vY4vi3U8a/YfLlySaT5Ob9jVz/I68m9f6JUqPYUwoafZTdKRS9mHgw8kxKaFTZ9r35J9KpLs1TSHihwxOexKVrwYeTDUJeRYwhyngfq8wS/GELHKE/A37zRzldM43DmXkccW7SVInkuW1UCmcDTaVe4peZQ55ceXq4p7e1/Jw5fTMerj8I4Pi+XJ+rk/+S8eBtJVD/k5vlx5QocQvYzKbn2MN2i+OEhWrS/2U8L2g5cePHik85f8ARy5f5ePJvlOb6Z/h9PLllZTXcHCeXJ0lWhpceSUaXFwWv7F6f8bfp/xpJNt9/wD0/wCXYvVxW30SoeVGRw1LbYk5fp5J/wAoT5cuTbhuFH4OXLjw5Jcn6agcJUjikor3PdxrR92UWlGDkl/jSSXGIae3IvUuD+mIiYy38nL1cq5N+dwWtoX0ri5na2SuKUQ9HN8p5U4jRPHlUPUHP08k0nym2uzn6kkuLXb7OUK5bx8nq5ca4r0qm47OD5LlL5PD4+6FLdKZWz6UuOMmOTnim4a8J9HNceLfqhW5JfLlbfk+rlyhclywl2hNLkvU0/YTTZx5Sqa8lcYh9+8Cv02pij6eEen079xqOPX7HKOUW+1FyOUpkccVMKaOdUmlg+2YVnN8uTfpSz8HH6m4tzDljSlUnlPo/wA3oXGXxU/uJNN/TqUTx4pLDiXNIn1ck2vU8PUDn/IkuTbX5Q003MpWtwJNqMQq6fycF6nyUP8AlCUrjDWpmrJa5P6lNyKZShO5WJJ48uXL1cqprsTTaSp/kTb48YTWxxxU8uXJulQ748ZfGI9TrcnD1NYaaTTjKJX+Tlx9PJcs4qD/AA+rvl24Oa5cVz/42ojZPLPJN4Qq9VJW04mym2pjfsU+PG09rZz9PK+X+0JPi4bSiIFCXH7YixPlyTcemInyyW+S9Sbt5wzgnyXx+Ti00vU0nQ3xTaSWE11JD5cXhOFxXSRxXlqhzrwc44rk3zSS+q1CEn6XE+PcTttJ93Z9KSlLl2JNLlDacidL1IfpTltbbEly+5N0vk5dcUtJbbZzT44Smm/7OSh8XDeVaoXqcuZy7HHFttRXwSuLdtafTQ3yXGH6tPsah8010cOPHlmFiP6G/WrU48GaZLadN1NdnOeU+n0ifqX08uLmGU+PFtLlKa/2h+mImexPlyeYxJyjkopDmFdHNclKT/FCvjzVr+xp8m1jo4r1coXHz2cZ5NrjxaUwvBy+mKbJc3JwlLl6k2v3Jj0vlj/3ZSXJqHocpv8APyVGIFDePIqOfJcql4c9HLlx5cU640n7D5cuXFWpyuiVyeZ34Zx9MX/dFzaeJcmeLt+Djya4py37H/JQ0fSk4aZhcs+C0swOOXJ/hbHPKZ9zlCW9zA5bp+RfTxTl9+BP0uIWxL08sLX5LfK05uOh/c22sX2JcdNrDHXLoqXh/wAn/HobnPwZ457+Cp6Zy5qKObfpdZwcUkqTTIhpqbFL/k9XHinLg5+lOn+MGZhewsr5RMRjs10L7ls4/dcCvHwZivc+WVygjG9Fr1XJTTmx2nQojLPlDy77HS1/oprrspxI4l0tFu5g5RFMdxK8m1D6/Tu0d37ChRk7/YX1aIstDz+RUOZuR4yPFwVa/wDg/LFSaNmWO4LembufJoucEy4hJ7Pkf1TkcyrPgpIdZMLYtWZdQLycsPA7MiuyEh/KMNWx2kZHHXZh2xRCN2YwhuFZc9FNYMOPyU3TXgzj5NZRTNQ4OWNH5FPJnumhzOWbtwPFobl5LY8VRygbUOjKpyZmvYo08CiiEnlG8Njv9jdP3PwSuXRSpL3MvDR7MZUKSoL4tFtDhxRbehv6nbHaVMuFA3B8pHw0WzL0VFDvz+mYwKsivoztjmOujL/BrD6R3XUGXTNGsexhH3MUpZ9xVpeTGaJTYri12KIxKKcOBXBTW8jpaRCW+zEGfPRfHaPqiowKVBXHCQ5cTLPleTMn4JbyW9lrspp4KXL+DZUZMp/gUyPf5NYKgcPkYbyP3N4kQ6WRNK290THLCdMVTSN5Q+oP/MTllKYc9DqxNRv5FLP2P/MU6UD+BttYQ/S5lri68WWnp7OM8nFaQnOo6OXLktKp8IX3O/VkX0tUX1/YpT+lC9PFfSlqME8W000sM1vwPNI+1ZWGcI4vj6k/6Y8InlFJrv8A8h+lqOXFu4flHNTxS4zG0oOXHi2vSnKvwcvTyScOJUYaZDbqFazscxU+BLkuuQ/TGEljxB9yWMCpY8s5R6eMLpCXLmuD9Cd3GD/HP0+pPlxh8eXSE1xT6KikMrk04Pul8YOK9KiU6n2E1yT+rjvypP8AHyXLc8XCXRxfF5gwOP8AFxSaSy62S05b1fZHKJbNXHIcNU28E8ctel3k5NcnyXJepRU4bOD4pTC6fc7OTXLlx9KTuu2cvVx5LMzL78GVrYsJ/kpLED9SaluftQ/Ty44lb9jnMz6qpVouISOfKJr1WvY4p8k5bQ45cvp+rEdHH6mlEXPZ6eXN5SUexK5cdcqlHFer8/B/j/8Axvhyp9rshvjjlsT5ccN9O5P8nHi26m3OKOfLkmk179oU8+LcN49yOXHi5U/uL08YhJ/+yepf4uKXJt4aHCW2lakxyuE4/wDISbSlW0pmUJcnyTjiv+MuaE239UZae92fby+lOInqUf445cWuSW5Wzi+LVwncdnO1E9JHP1cXeZotcqld+CeXLjya5LbRz9PNJtJtS0tQf4E0ub7TVTKPuhck81A2rU9pR0K+XJtRh3s4yuNpcV4UjS5KfT6cNak4f/j5qG+StC9P+VZm1yWaG+LpKMycvp9UOsoldf2JRtOM6J4rjD+ml+Dm/TxmWhP1P/8AZT8j48f8jUpu1gc7hJ29t9nJ8U9ePY5/TNcVNKR+lcZlL/kQ+PKVye51BHJcXFjS5Pk1+x/l5cV620syhO20mL6uM+hqo7G+PJcZnXwyJ5JwnjGxRxS+n01DJ5PjKb458UcnyTx6teDlbnkpuFs5N8W/qSuPI3yXKYW0OKHKdPzsfq9StYoji5zEnLk0/wCT6uMw3SSZx+rk4rYm1hPZwfGaT1HZGEp4jalK9n1N5T6Jhef2OPJ8uN+ni5leUf4uLiYVq5k4y1fFtYH6kngpowtj+WSuXFOGs+wo5QpTF9LVrpjqmLVDvaZK5JQ430fU+P2vx7nOOuWEvk5Lly4vDeRWnvrY36k1T0hzy5CeIuz7uL/Y+ri3JUKn56OMcuWGuh/U7cKGXyWH1vJx9XFKVyXvLkccVxtRLkfq4942NJJNy9H+TftB9S44emP08XbjZylbzT1DF6mrSWxR6oS8H1LD/IpXKilcKP7FCVfBwpqTjXFS12Jce5UkcvKzAvTx4p5/Yw2KPT/Ip5PMsyspf7Eny/ECp7EklGNe5yUaQ16lTfgdxkcvwPHSyJt4+m22cXxahcnodLWR2L7s+D7XraJbWGKkoS/scOVQ7eWWpp9m3b2hOWnLX9kRB9TmhO3Q8qINUe1lvR8I5REFtY/0fT6mlA39VQOlljUO0zLiR/TsdKvgbgeRr1LY7Rr8kZ3+R9NFPRpwv7N2zWiKFGY8D+PIrwVltj+lP0pPZl2l40Np4cDkmFgTUdjtqVHQ5WUxQntEuBQnkuMmdDjt/wBjlxCMxBaVGHT9iJVKbJiYbHCWWUsIWXPySmOylFlbZSVqP3KexQuNx4MQfJTeEPGTaye6M5fZb/g3szg3TY6RgpaIKmmXIrbKScIeHMDijDcUK/4GOPJu5IlbLayl0fHcmlY77MMtKzdwy1peDlGZZMvRbVJdnv7FFPZqoNYW4OhpNqWmcpfuOJZ4FnR922VqhyvGxzNCpzJaykZ37kQsyR8GW5QohyvJXLkpJmhS28DhzDHE0PRyrs+3jcbMN4PeCbO8n3MzxpnGnhvJLezE2buR2lS7M7ZSY6y0TKsraf8AJ1lDtuYKbUD/APbN59vYtLDZ8Ca5PJlKRykYcNMcxY42XdeDMilRkcJWXynJKhRfZbgpLJPp5QlHZ7IiNscKPkylDF6nhpkJpVGCeU9e5SjWmcrmUQnxr5NtDxMrxpmU68lTEHKGsdCXJcvp5ao4Zpt22WkOlfz2OXxhNvdiST5eppb9zg3y4/bVJd+woUw/PuJpJV0YbsTbnY/U9jXFdty/eDxJtqWc2m3PX7Dnilrs5JYgU8ViDOj1Jtri3x/4qTjy5PjybW7F9P8AyXKI4vycafH1NrElOLZT7Px2KnxSa7fZ9Kf1N3PsZezlG32P6nkpctiy1PmticLSrYoWF/Ryaab9iohJ5bQo9Oh+qVKT0ujiuOFL68DpL6k9+zLbr37LcUv7IaefBm4ipQnx48Wl8ifLlxalw69jk+Ucb4rYoba48U3FeSHy5Qm7/YUp/TGPJww2t4eENri5fJcUmz/Dy5NS1yfF/ucYXLinCOXLim36uH8ewvTxennxJxf0uFxnHbg4NJNSv+jh9OeOXHQ1yaxPRwh8vphaWtHNTw72c5fH6lymL6Ofq5NqXMFtpLk1cHJ8uPJynNtdC+6W+0uiePL03ybltYyP6U1ylb1A/TxXKE3cPMn/AC+nk/2r8HD6U4Sf4k5ueWOvCRylvjLb/ZFrikmhVyhvisKsifFtepVae0J8U75N9ThHH1elw40NRy5fVqxJ8eNpqk35I48fVEExyni/fs58+UpJpuVM5X5OPq4W1yVN2RL+44tpSk9rwzP+J2p8Ygd8lFYk4+nCnc+R16XHkeHSV30Jvm+Lm694OK48eSl8W5afaZyl8doT9OU4Gm0k2ukRBycZfpzEYQufHjP1TUefJD/yc/U204bWji+XH1NJbnQ+KhV5/wBH28q93k+rmpUSjKVpyKOLdOaY19St/wBHL0xgxMx2toULk5X9kcnxlpPRkTjCKSyjCqSoTkfqStslN5Qp9McmvMXQtQ14OSX1RDoX1cctf7E22kv+xRNS8yXqUKI2ZjI36XheRxFuBzNKP3LSTXwN0mm3mOxLkotPoX1O0jk+KmYnZb5ZQ59LpQQ9Lsu6S/siW8eD6m268bOXHl6sLao4Q5iVhit3/wBlKEsTJ9zVcnohSpnMnFcnifBzS5aX+hPlxauHNCf1RFYON8spYXkSfJqJaOOIbR9Pqy+xy+y1WdaOTvpjTXGJnohuTKqDC12zlL5Q2Rx//wAkxtrk8pScPVyW9s4w27S2jlHJNYHPcHGYabE+SbtEy2209IxCTOUtKI2b/guXKHLbqRtJvRxwoL5RhlT/ACP6cfJ9ux+lKHA8rdHJJKH8jtfgwlTPuijrB7jpZFN5Q5XUFPs/cc6jpj+rC6YpTrzJUOYX8kw9mGq9hpKcDy/gUJO5OWXgjk2oH79My7Q+5H8mowVJjDKcQ2O++hQ+uym8mrZsX47LjRTtmEmvBc/gi3LHbxPRyUx0fUlqxw1rQlCwti3TH+DEUOHiPGCFDO0KLhx0JekVKjPXkdxDMQ5Rjtdjo+qV8lNrA60OnVmM+5+ChSoP+IoQ4qE4Pdsccoyfn4FEq10OUQku/wCh5shqJlDhtwx1t+S156Ka12ZzIsKWOuSrwxW6b8GdM9ky2v4EvTr3P+KtivwNuXPdnLcoxGDxIpa/cV4ovikKlgyjD2uy1OehxX5NYN7RhYLTVDhtUcZbUe5wSlW4Gmm25KuvYiKRiF7jzrcFf2KssflyLMV2KFUlN2PzGRXGR1xsUpoVIURiBUrkzpF0YVkLi8XZr+RQ/wBhy+KopvJ8Dh7Y5in7FNwJV334FbrwO/5H/wDSf+x1yyuvYuciiVDkWc+DKqByxe/uU5gfumJ8ny66HLdN9iyYYoWKLfK10O1kcvL9iHl/Jc78mqj+TbjyhyooUPDY7eBfasdeDkmrlX8FpXPkieOVBKTeVVC48uT/AGWJk4+l8lMZZbW9C223Is4bLTTj3mxXtlQ/lIUx+5d42ik5lbGvHY+L4tNuczo5eltXBbSlnH6fS1VuZLWiJVRuJOMXMlwP0/4002ovkvcSl7IfJq2cpbyocyKHywn0L1Pj9qWxL1Lk5eoJnafQ16eJfqm1o3WDnHGbTr1fJD5emG0oc+GcfVx5pS+Vy/YpLOBzxeL1uhRGhS+O8UOaqGRDtMtfsPDlDiMifJ8bSSn9hfTycPx7kcUpb8CpWoN7RbVprbLTps+6oS/cX2xlfgcOO4kS9OJXZxSafpUzfkhP0vkvT1KRxvjhdONC9XF//tlH+Tlx5cuUritcVkXpXLjKfb2hJNO42/8AY2022p1ZyXLly5XPRyhr6uKFD5RxfU7OGm16cu/Y4xzfKHx5dZKXGLbFHF8qYohLlybUSzj6uW32tH0p+NnD1JZaz4OXHjy5cU1F2c+XqahL577OfDjyfKUptKRPjy5L1Ll8RRzXJ816fZx2JcohNcc+4oThJ7k4vjx5cmklOcwemY9LqU0OeXKYfpbc4Rz9XJ8YfGkvc5clxUzxX/Lv3Oa5Livt3HUH1emG1y2L1cXNKjjHG5fGt0n4Ob4/5OP/AOvKNVJzXJ8Y4rk88ns58HxTafF4dIXpU03Tn3Ocp2uUT+TlHHtd+Tg/8vDilx5Q1Evyc/TwXO6j0u8nP1f4+Sn6cJfkjk88X10OeLn1SsuRU+U8tDTm+Sd/g5RxcStz4H9Dy2R6laf9H3cuTtLQ/Srhqn4Oa48uNNdo5+n0wmmqfyOZVJ9Fp2KEuS4p9Uf43yXHj6nChcnhWfRy4OE1bamTk3y48Um3uokb5cVXJLJx5cVx5LkcXPFJNdvtj9LbmEL08W1ySWDilOdnJy5Va9hNcVy9LaUQj1cuPJfT6tVI5XFJzsVt0c3yc2ui8imbG4twrs5V28j9SUJxkSS5qF2n0KsHK1jSOKXJTNag5JcuKgaq4OWcrs/Hktq2uxeltU1hCumxL0q+LWZL4t2zTzxeCOSWH0cY9Lx/aOUNW2uh3x4nFqUpX+z7lyiP2HSdij1crc4WyXy5NcVWpOfp/wAnKlGnhwcZVfU89CdYaFPF6XsWo/DwOlVf2fUhQ3DTwKuKyRCTheRUiG2rGnycy/BfFRU2KE3D2X6m7fR9yeWqHfLTwjj9SeUP6W7WIZiJTOL8PUEOXMeBUsDlN3KHSmEK1tHL6moZD5PL0OZdMafF6fUH1N59jGpyfLY3M2vJTX1JFqMvowlPyXUNlpZ9xQk8dipvA46ejlKevInC2YbslLfQ7bhkQ8MVrKFEWhf/AEcuJkd7Q6m+zDI9Vr3OWXZfvovkqS0cX6ex+p8cNCczL8ClqoOVLsUpU+xKFgVq5JbnBjLkf/0rlFlNdil8R3yiUZv8GtkNOmUjC2YZaijK/EGSI2J8UsQO3mSG1iCnycteBQm7FFit5Zn/ANZaW12Zm/A4fkdK30x5wW8x5HuUKUx3lwLN2eZ8nyfa2apPyPFouPg+H4Hl3H5KTd+DDwimyo2TGZL2mV0VOBYcsVaX9lJKmKzjCiy4/A4bhEtK0zHLY4Xb2K8Jj+Tr9xz0mPGTWvJl2KJxBca8DpzRGZs05SGpr/4a0Z10bkcKbKWkUm4gy5SKnHubr9NYEm3slPUHeS2lIps2UuL3iBY2hW5GldrwYxI9ERNsc+FZiIFEd9FLouoroprHsOyn2j3noctsp4sXsiaez3Evcv1WyllDrQs/sbw0OeU3JFaFbVGfyRGf+y9GFk+02RL2YX5MbRSmTHezVIVJfuKpwKF5LXRSWH/Q/u0MjNIVbMTM+By4o9mYTagSSPwO5wWoLb2TaycOL5RFqYFEOEituOjDeF0JN6WhYWdI+52fU2r/AAO2vwZXJOfBh6xBr6ZKSrxHY2tQ1DYvUiEuVx8mU8jT5cnRhOvcSv8AgVKkJRERBxamoPplOIOS5tus9WfVKlHGWlMf0fc17jSVVG/6I9X3R/sxxpe5x+rkm00qGncyjD2VUT4HHJWn4FDmF7Da5cvpaUwvkfpSn/6cvUk3Y1yTQ4biuyrTro7hew92P6W45dnN8W6bWBQ0p4vtf0JOT1PlyTfpS/vRyhtSuRz9XJZqEvMHHeRZtL4OKnM4n3P8fHiocvY/pfGW3leTlHF8b/qDlx4+lep0f4+PLhx4yuTh3HQ1x48Wk5/o5erU6FDcQ9lPi1fycohqPM7OXqbmF0cncNtftY/Vxxx4s5clEwvOR8f/AMfFQ0st9ofqfFemItHJJtwc5fJelx/IuahttrjMd/By9LTfJKccdewvpXOOTjC6OL5cU3cQ5Ibtw6XRwvlEOb7hCS4tS+PTH9K4qOpOKXLlS5PMnGOKTTeIZD5JN/E/9nPjwnjPFtw5eETx/wArrk+NNvyf5P8AJx48cy4vo5YbhP8AkfHivSk1lPuxepulGhJ//kX1NOm/H4OPH08c8Xlvtfkn1cuSb48kJrik+TWm5k5eltLk1CafUeTj6eP+TlKWGnNex6srk/Kk+njzpqZhkKHEv2FPKFEddjiZ43pj9PJcvq8o4qeNw8SYfJVx96EpiG+kT9Nrk8N4ZylpWnc+xxfFtrkm4xts428ex9TlNfgUKG21+C1pPvRC5ca5LTVi+nbGouF0z/HXJyuS/eiOPFN8V6swS1xSh9oUN8qWJElxdPi8JxlCxk5vi+syzguU/wD7ZH6eLr09dHP0tN+0ZPp5u1mPglubrJz9PFVD0zDpvjZzjjy1+DkuLTy3ndHHk+Mw/wD/ABeh+ptpcekxJURxnE2KHudilaOEtbWDhL5VQ1OS+WmieT4u285E5S/IoXFfuKFNof3Sl5PpSVzgb9XLMvraI9K3vJKWIdilcnTOOlfYn6XENl9vrs5vjyTTjTPumvA45JPjDz7nG0vSzKv4PtVpCanfdiS9VuxfU+Sv+j6uOGxtKZlCXKpRXF645GxQ4iTHKhXEKTCWV2WlUYK4ukcW41OhTxjIp4rD8jmZbkhRfuViEW24cizdPHgV+OhL0zUoSvCSwJNq2h+lzbZ93K2y53srZnoVKIFbPtTKlmGv3ONOExSno+0cZhG/kUOdFrsW5RtZZSWPI7mWWknL7KclpZFLatitZc7E3Aty/czEL3FMqZHD67FEZbFF0LA7dsVNZ8ijlhmUKsyezZ8scSW3pZZxfH1LDyi4RE/2OH0IpJuX4FbFmUzjLXZUwkXBMOz4UCwi4pMdQLMFTj2HGbKjHuLVnsOXj9FlDoV9izQrWEOG1gUdmPIqVeDqGOEljyXyPg7uRT/oUKYQrwkUuhS3IoeX2POPYy1Bl4MVKFrJlotv+TOEjMCvKfZaLXUFtU2ZHSHkyrZaYsilbKXYrmC7t+BRQrmH/wBF9Myss/5OhZ2YdQhy5ktKZYpkmG4Y848MeNCzlC3NmW4M6Y5nRdm3h9FR/BSWWYWhZyx1vyL7dD+DOjTp9m0W1j2HhKvP6W3TWoLapSKW2K1hFuqNqRboWVLMzUlVSFS34FK0fbmBV/IpXFDbTykZU/P6OU6aNtCw4/RXsxhENmXbg0YYolZK6RlCtuuj7lTYokXsKH/QocNr2Li0z7kY7Muh/UpU+RfVNj3QnmKMxEeBSt9F8WsGUrXZPqalFcmplYOL4u0k9+SXyW/+zCaTLat+xxw/2MpSmxJRbONysi9MdUKJiBQv4Q6bpeDk3ymbHPHEdCcaPuxHg41ESK5gV/ufHsUxTGEOHFtDjtjnWRTZv9hJ6F0kcnySTtn+SG4T42/A546eTgnydzH7iucLPyKs/wBiwokxCabF6uVJ6o+5KP8Asfpaw/Jy5UoSeGf4k3yhp99nFepKHv8ABfqZ6uTVtN5f4FKjD0xNp8fVLx8MlOYnRptjnl6U1NUOeXKJ8I5RyzxevZj4+pJJvz7HD1cvTL5YrEHBpv6VtSJv1OWuh+lJy03s4epp1Dn3j4G3y5N8uSbyzj9UOYtVg5JLkpwTybdJ2co5LnS4zjQ2+NtPA/p4uxwm65LKU7RfLlHGHgbXqUt8co4t8HwXG1rb9z/H6fVxurjwcGnydvEXlnL0tclar1OYEuPp4pJrvz+DjH+XipaXcZkUXlOG/dD9Pq4q/OrOKa48VHJ6doa4uXyc7fhj5cuLXpSeI6P8f/8AXxhck3njFOexLk4jjxcJ/IvSuPH1cmm5XbjZznkknLW/LG1x96zoSdw35OHHlx7Tj5R/jXHhyfpl8qiLbPq48U0293EPsTm+Kz7P+T7YcTaRx9S48k+SW1mjg+PLjSTivH7iXKnPF4nwcYhut+CpVLeLEuTmUkcXyv0+l18pmna2l5OM+lTBLTy3rJ9T4zx5KZTc2znPCZazDjK8HCOPLjbcuVP7HHlE+mXaWzkuXGIVWpH6eO/Pdjni3KnDgSnldKPSy/8AHaiL7kT48OTab68/k4Pk0qe/JG5TOPqXC7E+T48ohJVVs4pcppPvsafqUJfGj7llmW55Tv2OS48eSlt/gX0pJN7yT6tvxqjk+Twm7hf0f46/k4ep8lcaI48HLjlMzqDlPKU01UFcVPLlO+h+ni64+WS/Tn2MRSyfSuTuRJuIllNptnJJqH8wW2rvRyT4x+DleWnsjior3FPJJY2xNSpwYWE/6FDTxBC5N0uQp471DG/T0hwncI43x4n0qJlH3O/+zipTn38j+mL/AJE0lySfUdlTaePgSjkr7Np3tUcvUuOBynsiE6Huzkrwtlt5Qoc0i28+xxl/scaqvBVwhP0qZTIjyKZhs1/ByhLsT6Udj9MxCdPBFZWxuJUKWcnDQ27c6Ui1L9iknaejK2OrlvZDeh0UolmqRXKHZnI7eCYY/gXyYbs+3sq8iyZ03hFylLRMq2hYE8vjPQrbxorin9S2XyWHori0+TKXKxy2ohotbk/5Y9yksjfscnG2Zyl0ZcwZdlyU+Nr3HDev0po30OYoua+D6nlGT3F+P7FbyuhQNSYbtHsj2HfRujjnY4h6MeRYpyUuTysFKRNKIfuU0hT5HiX8FGaUL9MaLU2Wui04o1aLaPah32f8VYsr4kykrN7Pno2cqeTLwjLHD7P+OZLl34HWB+0/plOvYy8mx0i1k06RTeV4KTpM0v3G23gWaZsqTeesC+5QIVxRSQrXQph37Fp4fgSUpSzH7wa2O9lNOZLWSkrSL8i+l48MddEemRWO+jMDhopqIMs0OEuj7Vs2iVNH4JUFzZlZZa0hRDHHgvsxpFbgTbeCoPcVotNfgysIRrMk7orsltrPR9sFpWhex9TioPaDm+HJqnxiUKatmHQrtlQz3SKh2zLSS6LSowqNDsxo7tl/0KtMXu+kPqi0sH5NFpfkzFvpC9yW0WlhdFS5HjPQs99GF+BuYnwYdNndFJ4Ofq4uuPFYSHK401/JZcPJh3BlKx+mH7imWoFCi2NqVb60OeSR9O2hs/8A9pFDStq6z8EcVpu78i+qsbY0kqf5J7MNxJup6MVAqSG+Ly2nZxl8nL5NtscNJv5OUzD8NnKppHF/7OOFaZh8q8DXqSloXqXLk/qQ/pXKE33lo/BxfqiK/odPe0OW9eD7WofsKPS5Vilr8FQ5aFSVf9k8uSUKH/RwXFOm8tijinM9lscNKUjHG30fdlrRl2o/c+7Dno5vjym+S6OV8Y9zk+KTlOddMcxUo4vlDmXcCw1PcbF6k0mlo4elQkkrbXscZaVPksuaI5Ljxzht9QJcua+lQffyhT0cPVDbnH/slJ0VxykNqVa+ZJ48lrsT5ckrT9+z7pcKcag5qMPioqjj6p0oEuXH1LkpqPYccYlNXY39T9L9SruZOXp5LkmllNTs4+p8nHHitvY3xfJ+lJ66H6lxnlHd9i9K4tcpaqMR/Zy9XL1+ltUoxgTtJNYiqZxnilHN+Bzx5OufHHJTMsamVPebo5Pl/jd8rlJ+5PJKo48XEt5Zw5Plyapyozhj+rjNcj7uMJNryJrk1Km0KGpc2rONQk3NuoklSm01pkcuPp9XNt/sPlUNN+1jlvinVPGD6XxuXUD4vlHqTmfUtI5Ljxn1Pi/+LwOeLmXF50cW+T5TO3XQ/T/l5Xy48ljX4OSTWVpiSaa5JJZezl9sqdScly48l6m1TXhCTT4+p+ENxyp3Pp1I2uXFNNcp+VIm+HKE/Stbfg4t8VxqNXMnH1f4o+pW/ONe5x9P+NpLk+XG4/Jz9X+L/jxiIzknk4dcVbRUbekcuSiqFCTafLk0vwP1Rhy2cJbSc8lLnycfTy5Zc0mcL5U+n7j9L0tHK3LTWu0L1LjZ9UpNrSFCVJmuXqhYYl6l/BSYvVxTVLP5OL48uLtcnLHbUKThMO3Gzl6eTbuLjo4t8uKbcY8Ey/p5KceYM8ac7FHFw01mRp8stja4rHHUHJris9tF8pw8paLXKU5E2m6ax/8ATlPGHOr8invr8jaTz7QUtMuOuhvi3b8EQ+NrtyOWk5Wl4KbmF4KqxtLrIkvTlDSZMPECa98lNZXYmlAq6Q47JqLRXpyyH2vAohU2OW6bgpvQnSlSS5c/BScx4fgcYlE1amhePgfpUxY3y4uFWjjbcz4FDdMctaM8l+BxH0r3MJQ/wfczOy1lmF/BLWUfbLbPtw/cU7TOWUJtpwik6SMTCbwaJaWvJ/yqevI5OLiI8CYvlGdCw6gmUO1UaFWyZfQ1R2vwYnJflibeExfSqTPxn5FMuj4RP1WN03L/AKJq3IoScNmXXsTak3hj+oy7kroeGqFSNWKlRnLYsGFRS/kUtaFaKalJeT9vccNfwVomIkWf/SPC2V4HbwObyJmsn/kX1/RMzMilcsowv/Iyb/Yt4koccotCxoUpbRSxAtOCF2ymnkppyzOjCwzDLfRlvHTHX9jyseRuYsdaW5KeHJn8mXvtjhKLWy1hIvwVymh132XLqOiqr3Lqh+TKYpTscubPtgy6XQvpWffovjyVx/BVWvBmo8H7bHHaLWfcUPslPfQ4eXJhqX7Cz/Ap7KZ3QoSLbKTpo4xH4M4RlfuYjZMxgVOJM6PuQnRnowU3g5Uon2FjRS35O48Gv4H9MX0KvBjDZnRSbr2E0tQJ9CwjFT7FpY3Apa1+m8MduxW38ijKkfYs2KItmT3Z3THPGJgpv9yvU5g0PZU0a/cyi3k32Y5K4HCUKxT2fkUpMt/0cZezLuDDmUYqxxAsujByjUagb5cW7TxA7aVCqHY3HFw+MxOIZynlC48ml4twUl/6SXcmVlGOSx/RbdOD7ohPR1fZfJVPk+luE2htpRXkdNWlryVy5b00OXGBe0ESrf8AobSocJ5ex0na2Ty5O67OX0tTbmENOMN1LL5XHv4E228Y9xZ/k5RyfJR7n+T1cOXGcuFWIP8AH6ePpba6c6OHFcW5pR8tnL6uvApb7wcvZf7HbtPY1CVI5Lk1DYm+Lct0o8sa5Jql2io0J3ci9RTWzlM5g5Q+KhPsU+pKUcp38ifqTcon28DxgS4p3xnLfSE1KltXRy9PKfUrhsfqXKYpr8oVpHGOKUL/AGf5HxamHdP3OTfCJ5uujn6uPLk3x5N2rhoh8apZT9hcn/j4P6o7ySm8LpeRQ+Sr/YolROkWoaUew1CqNycGuTdtYX+x1MxlSc+XFJvln9hP1PLXsN//AJUvVy5REKMfuc3xXD6XuayL6vuT1G3+5zXJ8XNYT6Yp58qbepyNUk01jJPK1x4vErZ9PFRxae15GuX+JqWoVboj01Pqyn4/J/kafKeL6+TnPGHxhJP8r4OX1pvivThOMMT9HJ2kcqlK8+Uc+XLk+LfFJKKWP3OWJjTVUL0tOZWXDySlx4wlmd5E3y5RyvrI228JatJJv5OThcfTyV4/0fVw9K5en+T1enk0qTa4vps5pepQlOuxJvjxheX1ByfHl6U11g58v/x8uN8UmlmpRySfJuHGppMrkkl8Z+WcfUuTlLpSS1x+pNdaFHJv1J/A0m3LaWBqUqWmzPpbjU9SKHqqa7/J/jS5cfq5dRmRtr/JyS5O4b6XSOba4xfFU0Lnw5JLlx5cacCfPkl6fVyVs4w3MtrDPTx5pPi5bhLKaUCXHjGH+x/j+r9jm4b9Xp1PsNcuXKU/TlChJemMuT6uXLk2noTUYW5jYnX1eDh6Xxx3JNprQ1MZf8C9KnI59Lg5Tx5PLz8C+mBUuMwsQN8OUJLtqLOa5Npzqfg4pNPGaMJQkPKiOzm3y5Nx6sR1IvTynBjEH4VbOWocZF9U+lp58HFqVYoW3sSSXL0/VmeyOU62ylNLEj+rro3cHJLilKTHdzyfscvVDT4268yL7W4e+SOMT3lHUN6gWNDhPK86HL5Ol5FeWlszM+I0K9MhZovlFofpfF2oLuRTxfKWmP6Vo2nCY5S32ylxhe9DrycqThLs5wsde46apzsbfJrI1yay1MpnG5lLsTUrB9PLjUdoae56Ijv+jlHpdClqxep6OMThnKnTY4Ty+xQto+5JpmHLfghp23+nv/sy8PF6Hacn24gUvlgccowVySp7ky6gp58Dz0OGtH3JxMHW/wBxu8Tg7ocPbHqn5N222UhpJOWjd+4oSVe5XdC+qIfRt77HSyNVSPtWx5TryKN12ZnXQ59Lle2hRZVV5MoVrJiclSaVdQL6VC4pd7ZbaNKUS2saFbVn4FaH7+DKRvRe/wDYpjK+DlC2K10WnhbLUX4MPA/V2j/Sgx+xlZa0W5bj+i3houciSfehwnjZnszP7GOz6pWDDVvo6yO0jH7yZastTvsrRvZajBhMj0vKNKjDRxmFhC5cfThNQY78lJOZIcaFPXgeHY4k3hlqGoZEpfsWqj3FDWB2y2olmHgp6RWoFatPBxi3Y4TtdSbyKFQqi2dDv+UYGo7OMpI1gqs+DMD+fI7Z8o+1uyIHRXHLZMfkcprBl/8AkOu2KHstmFkxyufA5Tcew/pLqpHDQq60S45Q5W/Ay2nF7/RNJqIFPR8Mtrr9xY1/Zb5XWBYz2fcsDiVjFjhcbgUNOUK2xSot+R0lHyO4OTXFKlqRv2NCmpZaWEK310PQoacnwKH+x1gVJSvcVzjwKlXwLdFJZ8Hy+yYwVThjkVrRctyx3Vjwi+KfqHCawxjraMLHk43xyvAvqU+l+DHJfg5S5r2JmaWx5me5HD0vByU4OMw8sxDnowsFPlU9mPVMH3PS6GuT3Glow5bbv3JjjaKahIbS/kSawzSSSUuh9OTNp+5Tctrsjk6rob7UDtWOJ/cj0vPglcuMvi+LOTcOU295Pp5JRezlfJUk6+R0kkm9lXKkp9xTfQ0kuMR/onjGGjGPI44wmlX7iS5cXC8E8WsJbZlWz/lsdvJTUOeyPUrY59VQh/VaXQp4tWzl6ePGZ4qb0huW7XS6OTT4qFEQlMnNPkphcsF/5eN8X0t0cYfJr3no4wsP3kS83knlxWeLu+34E0vT6aG+UKIWR3ySamp0L0r1OE2cfTtvu8of2qWcmuKy0eF8FJtcYPVy5JvlGU10jiuL9MRpVKJXLlbXHrs51x4pKIusuhLk1yfGX15Pq4tp8lo4r1cU0p0hxw5P1J4U5aH6uXFTxyl4OXp58W5XKlJz9XFc20lVdM5el8V1n3OTT5Tx5OIuMo5qFLUNXQ6T+lqm0P1NJ+pzgb9XK1ypKZtHD08pbrCqJOX1cocJr6u2zj6ON+maafhiTXLk1yephw/3E+X+PkvV9KS9PLGTlK5Neri8LUo5pceU8Xx5ZS8PZxfLkncq15OH0+qXycKUcfRyVS3cbYofLi1OJcHHl6ePGrw+kzny5J/UlydpRVjbcN4URGjlbSmbo+lTbqY2NceLdN5Y1ydxqNwYfFSu6PteXOGPjTtL+BJ/4+P1N4Zw9Tbp5o5erlHpSmNnH/8AFzaa43b93s4Lly48km31mUyklLSe5mRLlx5cfpUV8oT48eXH6EkX9UuMycW+T4vimn9qxj4G1yVr1KZXQq6E6eiscWnKmxpri4adtvwcUnxdRpDpNNLbIbqEPtJIS4+lpwuyXyTkcN7xDH6uMW332Wk69hK2vS10S+XG315F6uTcPjmNYP8AH6eVua/g58WllbOX0yofRPqppK72cfSo137HKGsrLaOVPPuPLo+58lL7Zxlt9SNV/A3DmEcvra9TWeoOPqaV1rslZhKyH32NppYeB+qE48nGGnSyJ8eT+lmXS7FbpWfbxpiy4TFuEcbWEKuKsucjmEqZDStsSptL2HMvIqbmUJOMt79hw5qS2qbwKeLHD5PBnRLe08n2xDK4qkTxUTPZxT7Y6uF/Q4bV9jxV5Zjk7nrolLoW8YLlT+lqaZCbeRyl/A1PZiLEpikLKmX2QzKePBLiHBnS8CvlfwNLlqMilMa4xstfGRwtmYlexjoU6n+x3KwZ2NVQ/cmBSsJeR+nUjcvHcD9UYNIwctltZ8FprLIzR9rblFp3I72P2HrJTUFxMT0Vcf8AY/Sh5pIwxLBEZRWmO1gmXMlS5HPg3+ntPkcsy1kzENdiTpyWoMaKnLMr9yv9jzR8NihN2ze/Bi257MK2YzA/ME1UClR/Yp8wJKaRWmLwW9rwOU2X0X2jKsqpQ6atF8olUfS19TRlxR+BzFspjrYk5qR0so3aZa9hZ10xxlQLNMdccoysoialiuC6r/RkURZVUh3FlNZZHKFbMyPUFPzZSVtj9nqC4f5QpSMO7PZL9GOFJ3+5vfkahdmVgcPEF5kfp4rEDvMmU6RU3Zsfv4LjLF6Z/gi8DmL9zLNYLfQ7csUtsdPHuK9iqZMLY89ilr4gysSVOh5MLB9ul0LO1/ZfRmP3NOS08morowjX4ISNbW0ZZ7jnknKLnRrA8OWZwh4VmO+hwfDHbzsu5TY/CPt29ilRXuPOS1ow7nzkri1aNUpPtLTfqfsRWTGWznDcJeWP6da9xy0ob7M8uMR4PCKScyOZ34NibfZoUNy0/Jz9XPjlqr2XP1WL6cs7pKh+r08W0ttnP1ern6Xx1HgcS3kwlfg0pkrkrRtfkpctxgVYKap9wOUkTMQh24ceSmqgSlPXR/kfHlxczmX/ALM8aU78imMPyT9MNR2RyVip4ZGJX+inDs06ZhZhCvrfyLL3s+mHoy8eBxC0UsJ+MHJtcnLfJt2KE3MGcoaTWDMNpdDt01/tijjyqZVzij/NDfKeKi/Ln3LcJqHvDF9U02pkcJv0ryRxSWZmx3peBr0pe9iuk57PqwvTsS4rLXKpja/gSj02lvs+nk+VXlDjjy5YVj9S5KkKeXFyOPTl9nFenk4a/s4emI9LWUuzmuPJRxXXI5+l8paU7uykuN+n2o4tJJSuKmji+Vyn1/5H+RN69K/o4N+p+r1LCXTOD/8Axw+PGL9mcVyluJt5Pp48V6krztHOFytt4OPqXGE+XHEQR6XxUrUf+RzXGOVKN+Wco5WuTTbnZy9XFfSp73Zbf2xmIK4tP09z2cnxVpqIauJZyXLjcvjrSQ55cUuf1KVxWM9nJueT5J9Kbnwc1y5JQkvzkji26fGqeU+zkmuMP01PF4EuTlprklT8jSnGq6HPKIkabdPc0Nvlxni/VhMaTSScL5lH0txP/Q6SSa3MHL0p87T6eGQub5P1cVXqfaZKXJpuaa9zm+Nenjxf2t//ALe5/lSbUcVhN5Ryb48F6ePKI90OlHFvPsjknx5KU24OSjh9KqF7Ib+mI8sbbUyv7K4qeM97k/xtceVJuVXg4LUKDi5wjnPFXySyluyONqoabU08WKG36U3sct5mxWl2s6PpTmHylR8H+X1cntdi9K4qm/5L4tpprocp9lptOVlMcLiQsJHBeppy9/LOEy008NMTbbU8XazTk4uftXqW9nJzv2OLVNfTcLs+rC4vxGxK27OMcYlItvlMM+3jZPpy/wD4OoboSajPRx9K5OPV52Xy4qZ47RDjjMsUt/kX1O22QlxceRttyy+T1/ZXjtn0tvIpS347GnxWF4I9MyO+TljQ8ZY0ltdoeHfsXxVtfwYVwP0pYXgqal9jjk1b7H6tWsH/ACVeCMJStEtRE+RW3bGp5OeM2OGqp5Qmo2KGsHKFCbrYm45S0sC+l/UlqT2fgTumxU/BF2kcadJEREr3EoL6XS/S1Q4az7EJlelbFX9CnCkyNepGFlroUcYpl8psWvgXiROFbZUKiZhDkpuqF9OGt+4+nJ8lxUEOnLFCwP6dfgyl+C4x7ih+exYuRSuxWmOFZ9qtijij4EmmsrsThCS5PfjRodNV7mMStGt6Feh08+44jQ4jJPHyUj5Qnn9jDWRUv3MeR1oyxy3clLsVJ0dWvJfZb0hVpn1Yz2L6m1JlWZfRiDEOYO7RTd/BcmR5cswsCy7YkllswqkdzE+DMOTOmYgcxSMEvTXgyzK/ctjpRK8j1+lclAy0zDuTeBfIobLj9zI4fFSjEGXhGC07j+isQjCdrs1cl9o2oSF/2WuyhX0PFJlCvsylkucCiHrJpw0XdewreIP/AIa32ONlzUIziCO2zY81Iq7ydWhWnXg26gw9FJrI5TdPwUtGWy02aXyOErYr0KsvwOHEHXyU8Fxn2LkysI6qSux/A5aeEOLyL7nMlSPGfcyvwUmrY4ehWhFNKir/ACYe/Bvv8ClKMHx5KUT8mW8jtx/2dlJY9zGx0bQqdJFt6N0fa1XuK9D9kVNr3OUclDaFKWdnQlCtjiVSImIa8TBMd+Ck7jo+pzXgcLUE8mnnoUcuWmQ40XdUYbcoXwcPVyVJJxLP8fDhzhyklXyclySdelRC6KmmexlHH6a4rwOOPFX0N6HfLi+La9snLly+p28orklnsiWseRrk27fSHLezg+ST9La/sVcoanRx9K4NJOa5exnLePYf1PKMdDuUx03hkNvoS42qVlNr9h3x8HP08VXPjGUOnS9jCpFdFr7hUrg/Y4y19ryJelrDzPRXhoX01hwLlxa5JqHob9OYdic8cIrknXkw1opcW5F9LhWXxay+9HH1cuXJx0henk1KeaOXp+mn2oGvSk1L72cfV/j48qXJ7w/3F6f8f+OPSu/joTcVLWfJxrknxvfkTS4w0u3OzhC9L9S3NH1Li0/qml2Vy44fbn/TP8nq4uk4qKP83Hkmlxh1jEE8U20nrPRxlckoaaVzk4r1XWs6OLnjxtYvZ9MXW2zlx48UlfKIT1+4nx48fpcf8Xr4Ob9KUetUu4ga9SVp77Fx5cefL0rjm9y/gy6biUj6k8PXF5mTlHL1JJLLuxvlz5KZ2q30c3y5clbyoE+XFOeKVJvycYa4+lLWdnJN8ksf8XNj4qebp5g4LiuLhJNXizjb+qdP5GuK5cqTtp7FPHSeWcnxT8wJJKn7nH1ceTabiLnIojzgUenl6amRtrlyyer1cXHFxTzCIXLi+McnqrhnJelRe4cC9SXL6qlw7OD5c+KfJNw2lH7HCWuTatKtJn+X1Pk3yjjCXF9HL1c3HFuEm1pNnLk3xa5JN0bbha5ITTcTChQXxUR/UHq48labuH/o4cuT4qeT5YnB6eLiHH/wT5Ljxjk06g48o5Jrj6navSjBPLgJK5vf/Rxl8nC6OTjLE3ctj+nkrOb+l/sTyWtPJwfHknM5lH08nT8o5LjwTSc9jnjctKf/ACOFtJcble7Ob9Uy5w76FHNOOXGddo1TEm8JHKnbS7PtThT7leqq0U06jaMpWKeTpI+7TKTzODCUrw9wXNenMnF8HLhDS4+ppvUdkNS7T/BEPEFtYnRc7OUcVMSJcpVf7IpRGhSuKTcaOamJjfsK01KF3MH3ddI5VxcQxN8eSlNCaaiH2L7lg4356FUn0/SojQreBW8JZkrl/wCo1lKjOkujLw+ji+TSp6I9LimJNpUvBT5XBwWYFhZFKVCrX/RL458CiBy7hFrrY7K5GXSJq2zj2kL8jpOH7mFs7FfWjOReri7c5Fl/IpbxHRlwkXTiey0KXy30POxp69x/ApWjIrMPoUPlkpPXXsWZ/kWTXZ8kt6E7yhT15Je2i1ysc1QsOjDV+DCpimKFEYMu5KrAsaJcmsi8M+3bHCYq0ZFW0ZePYzkVpUxS3pdmctFJU0afsYiPY5RDpZbOF98i/CFKeFOzPQlaFSPf2PtSFUClsVoWbL8ExMnydY/o2KHo8mOkK/4P+T/cynjspzRxSayjM0zLyjCYoUfuYWjVuRJNsVql7FuDKpG7hjjbMJ0i23gvlCl/0U+hfdh6K7MRjyK8yP7mW2hfcobFWhRBUYSEKVgxpGdih9G1X5FAtCmd/wCz2HLf8isXwN3g2OV2KVy0cZX7QKlhyTGBS/6PhHHFi8GELI5mkx/UjDqSqoXgxGBTJswnCZc5PyfcY2LM0KnmRCuJjYvgwrFESats2oL8GOz5OLb48U09ZxJpQKdNlRktb6N68ClExGR1OTNpM6NvJxlKIMM3oprZclKaaySmtPoj2PZC+25L7ZDTd1ocvafQtZNOPkpxTZlCtK/BXFTye3HgbTfFN9meWHoV8YSb32Sm06FnZD5THgeJsUTbT7L4yY2P8DtZ9yo7Mt48HGowjEOX56OK4vlh9IcubHWZZDTc0Uxwl32br/shr9oIjJnfcD9SmTK+n5JaTz5MLH+zjlS/9ilzWimq+Db9LbM78lRcf0KnbXk4+lceTXG5lTTHhQxRy5U4/ajh6uXqUKYo4tOa9im/xJLbUe4m4WSIalNdkenvqhVOTi1y0YdkxxzOhevi1r3/AJE0nbm2rOMcVxbUvJw9XLjNYo5Pi2/SvCFP+NcqXLMiXHbhZfsL1cXx9TSpkepuX/RCc5fQ1y5NLknshPlTW2fSmpv+GSnxt+p1nRxS4ykqh/I3PF0m3Do4/VmY8HBcn6X9SUqO4OUceXGWn37HKVy4ttcddCfH/HxfqjTFypPi0truPg9XoaUtxJxiGmvLnJyS/wAja9STj1fBxfpUJp5ns+rg5rE1k/xuVybfh9exyXHi/q4ow01E4pj9K9MLc3aOPLj6ceTiuNvM53KG6ahKY8HCfVyXJPp/+0f4+XH0tPk3h3JKSS5cuKnM/wCxRylz7DuZjNCb5ddC9SWUpz5J5ceLa4tfwWpcrlmRenk2m4/tF8ly9Xp71J/jUxSeE90cY9Slzr3HE1KpP4P8nK2padryLl/lXL/ImuSypc5OC4rk/qTctLTbOT5cv808o/8A1V2cJXJ34Sy0+z7V9Ka/aRVxm/8AsURxuMClpuG+vY4/QpUYbejiuXLlSn2ElzfFpN1FZOUpK1cyP05avRyccnd3A23yVvr/ANA2lyed5ONtX17nKaaTWZ0jlq/cT5cbb8pIlLkk46Rz9L4u1JXFNy0hT/icRxufeBz/AIuXGFx5dQVNx2S+PGuT7vqLEk0pTi2cHxaTtOjipTUPOhJuao4pN1SON8nCT7yQ0qfgxSlC9U5fQoXKp8H1cfVrXwfVxaxuTk9NchW5vTOHOW4b/of28vVG46HMOlefcSVWK4lCiUcrWH4FKdQpbLevJxUvaOP08ljpjttyiYeZHT42mfdxjPR9UXIneifTDjuezi+Lfezi2sztk8WsbkdqmxTCp+R/VLb9ujefca4+fg5NJv4ZxpPfZjELoavCF9PZq76HC5fcn+w5awj6U2vyYg44UNGde5MSbxJl48n/ACdjht/sWlllLodKaKeUZ7wjVNlVUH26jsTluIH9PT0iZSpjqK9zWCm2W3ZlF/7ML8ndn27gub/6NNyv4Pu8jtXB7Mvil8yVCpjtYHFDhK0Zej49xyzQ5ScSLLgyi4tCzrIm5pEp8WYe3v8ARZqDUKCbQqWWJpNXOfBdSVcEwqN7Pp4pzLK8jmWl8DpWJ3sy6bJcKF5NpjMraHf8Dto/+jgeX+S1rswuhaoqKMNCpkLjxyl0PJ9sfKKd2OEoJ+lQxRDpn2p3J1I94JdXA7bleRe7E35K0x3ypvyfbxpDl5M4NRK8ihopPY56ZbeTPky8P+i2jl9U/sUj7ko8lf0zKpGHXyXUyPOfcpvfkcJ5fkeMsU8exNLMkx2XY3LivB/7wKE2fbpit4XgcydDlqh4L0P2MqTej8lPA7amjk3yil4PtyYWhwtmMowqKv8ATarwex8H3LT6/TKwyl0W5MrE7KXZafehfc0qLY4UfDHmWbNG3Rv9M9Ct1I6NYRl6H8HK+VexK5I6hrwL7RvknFC1gzNIzoziB1low1T2Z47N5KT/AIElqtDqTKwv6E0uhZwWtmzMZH9X7SZzInOH0xTxdSPKl9PwPVNWJt5cjicChqnOBRybtM4ykrUi+7CzodP9i5akvr/Rx+qZRHqasXqaycZcyn4FlzZC/sUJilRRPtBaeY/oVPvI5hUvIplNwxQ0uiU5+RemLbgUpt+ClhoUNultMt8lE6RbTp6krkm5Ppm5JSdNPrszvyVGO46ON7Q/gfJf5Hyt9rQkmsPsmVxudj9O0/6FaRj7qHXFepyL1LDRaWNyOFuMMUcVUDlbS2cGuK9KS0vg+p8lL6T9hxx4txNP3ga5NWlKmPYlceKn5nAq4xycD9MJPm3mIwZVXshcWlD8+w/Vx3x1By9PpiH/AP45sT/ycY11g5+pPm/T41A+Xp5cnxh6g4SkvVyc4Y+KfGeTT2J8eL4w4zIvT6WuM9odtZ00fUk0vS3rst8rT0i5jkvLWV+D6fVMwsqf+xclxdqGfU+P1NrMnCeXH6W3lrv3OPqSSeYobSX1T58kLkk3yauej6vpcZx172N+mJSbte4//wC3im16drVHCnlOmlhyux+r1Nerwu4OK5S7e49zjXKoaWB+ri001EwL6eStL+BQnUzKeiblN/vIvTxXGVyx6vBy4yp5QqGk+TrwPGY2yfV/+ruT/jbOUPksva8nL0rgpU7OCfDinxqYmCVyfJtqYmsHBcuPp9KSmVVyLivVHHjFtT2KOXFLO3uPwcJlKO57kWM+wl6Wv7g5LDbUZXYpTxxuEcfSoy7/AAck+TUf9jbb0tiULjDj+BN8YpScZhqPDJXKa38jfKVDep8sji3Ppm1IvU+Dt4XK8nOUv+M0j6uUU+3loXJ8ttIS9PLjhDpwk9x/s4v0JU/J9T/5PqoP/g458bUi+pJy+OJg5elcnPGL9iXL0orA2/BxfGlHgUrc7Qvp5NN6OS5PSOSfqpLZHFJ/I3x5PknPH/RwXNP/AJSsn+KGmm0nkx9yRbatFLjLer7KbeTjCWJHfHPlFVMC+l7QvpmE/HZDj9jimnSW15OH1YOWHPsOG1/6BQ4h+rP5G1VJluKXbIlUl/ZadToaahdCvjKJa5aRdJlRhjXp5aFPpctMn01CFaVopuLG8Qk9eR/ckj7Vodxb6MPLRXkrlNT+Bvly5NSSpcHskT4bHWLHa/c4+yF6ZOWexbl/2Jqs6M6SHc37ivRLkVaPkjEo8Sl+420ui2lEEuagczjx4M7kenA2pv5LffRTmhDbUKSuSqOjJpYHfG0n0V2KipqRTf6K3Y5tqi+UibYo5LTKNa8GM0cpm7NUmzjn9kdUU4oV8dkNPC7E23TPuwOFNGeP7lRgt5+RezRb4JT79MqVJlUhT2O0OUYxSyOPIpoUtdm6RhX7Hx7FtmXldew5faHWTCOVxKIs1TMpW2LyyxyrlId6NqinEIt6Q7bFLWzk/qwuiqLbpDprOx115MrsiFky8SKT3S0byi+2NqHaRTmjePcmEfdD+T7k6nof1T+TUo+B/UlJ9T2uxw8SZ7FEUvJ8oWT7Td2U1sluNClceykpoeMdlzc9GFSXgULvZ+BVnzJhKGz8lop0zKyU4oyx0yEQ/H8lLZSN2eRrJa2aFbPEm7PyamJ2O4lizoec+BxDs9xusQVoxmhZWBJ+eh2jKzHQ4d2YQ8sd5jpHeezCeTjXjaE4WX4Mw4ZXhjtvBTyvYV99DnTYvU8pvocOKJTbsu8GH+C3BbeS1ozIsCm/3FvA32/BTahdC+pRaOMNq1gpcYPpUymslTLSY5STtDqKZNX4FfnTLUS3iGaltmpak5RP8HKePsauV14HbtplSpTVDt7OUtr8FK232j7ZcFTUt4HiIWmi/S38lp4G23kUNU0L6Vs+7Xkzxcjp0xwlSkj058yOXv3KayuxqXaof2/yO+ux/U8PXsW2qYpaUv30OeX8HL1cabTx5sTfGJR3+xz5Ljxlritud+BTNqOxNQoXuccZsd8ogS9TlwsM5W4TjEnKJTbXg27b0hQmrWSLcNdDtuFPtJDmJfkbTtSlHsVNShq84xGzk2nEOdeCeXF/SpzPY25X018yc1y5etPlNNeGjjztw+V569jm00nxTVyp2P0qPUnufJyX+PklC5Vfn3ObXFr08nNNi48v8nLjbf8AxUDXLlzhp4nbGvX20mmJceSblPHmDg+Pqhcn28JEL0qHHRwSwkuSmM3AkuSmtTuDh9SrlDbT+NDctw1GWJckudrip07YvoaXJvjb9hcarMORttP1KHGz6k+My6l7izj6VP07qP8Aor1Kk/8AZxaVt8l30KeXJerk9RiI2TMwup9jl6uUTHk5U+KlP3ujl9qb4rzpwfTOHE32f5vq4tS+SyuoLmm5pDn/AB8lETfux8m6cnJ+rlXGs0vwP1cuOEynyUqtwc55caXFL5lHGPRD9XLL7RxfFO102cV6o9PG2ocaOLqU3xWej/FHLjE1EPyfdDw9QNQ4c8uyG+X7j9UfUl0uhrinj1ZjY1PezGJefg4tVCfkhNwp5Gst4glJOFxe/I5eI6fktt6wqFTvi5TudnKvVTlpJ3ByXJcuSTXBtPluEerivV6YSwsQP0tZno++Znkso9MJqEsz0JcZfp4rlOO4Gm0lCXZji0nxSzL7OUNVA3y5Pljf5P8ADxX+N8vS+Sc12P1Lji9jS5ZgXp7Z/kTa5ptJ6HL2lg5NclEx/AnxXJNTg5tcm7az+Ti+XLlDbwyuKU3k45SfifB9yfqh99I+3lNbHTx6sjh4F6e+hNqLfE+3lyX4xBcVjXZyhpx4Zxlo49trI/UopaFXK1GIFXZDm1HRC4ra6FC0+10U0VHKE1sw3jYlxSUQY5XC2KG/4FnM6HCVx0Yan5E08NsSiKeLJbSSgdbRZrRhIUy8F1MeRTC+TD0P2gaqkY/s5TH8iiLRS5bHD0Oasn1NOCFGRtPvwW3Xwfd0Ku9yXyHJun1AsbGpSFeGK4yjP8UNNdmU/wBi02WtxVkpwYiDESxQ2oTH9SVih68s6x5MNjnTMDpOkOnLRmfgcwqKiWyYOpKbY6X8lXEeCuLdlvHllD9xVgysnGv2KSwWn/JtX0WkL58i3kvjER0dih8nPJ75M6wXe/Yy3B9y29lKMJbH7GBwnc/we1bH4FSyLwfasit/wf8AujS2KFl+xS4uUb76/RSuSFL2+x26k/5K9aFDSvs9mKcJIctDuWzLoyKBemVXsaw9MiX+ZL9RlM05Y8Z6N/sYaK5aPEjqITHGlIvDJhYKan/6Ze0RKdlp20dQ5HfXRjZgxtFLSWRSn2S4ymLBgxcj+pqT5Kgdv9Kg7ows9DhWzPZjIqHnZ7Dx0T4TwdCxRDzPsUh5wfnY5Tyjqz7X+w5TFTo+fYdNY0OFlH3JQ0KlQ8mHk9myllIWagxpm6Y4eEY6E5fRXZNIf/8AjXQ028v+B2tGJn3FEukbqeh9SZZ7/JlLPgptWh1sVTApWypcod+TrI/+0Yeuv0qcHtI5SZWH7m3DRCaNwR5fgUJRCH9Xqycr0yKzBXJqm1vsb5clctuxTGjDwhpJKTlKawJwnc9yOLwPcIzuC4Kg4wkqZyhtSjlhHLI1Onoi7cFKC+XawOZy0XPFcR+YRX+iotmZVCfJKIH9M+pRvw0TGWtr5HHLirIU7m2Kowhykm14YuqfY3O4Vti3LRxTXLk/VLwvA6wl4LcykeyMOo+ao+qWS+l/Q0uMltOl2jjaUuOxw1VbFWHPRyxrshtuZ/gTb4q1sf3Nvit4k5elQ+TXjotNy14Hqlxyhp8W4xaPq5JpNxg9PJR6Y89yNelpLlGDk+PFpvjyVX5Ep4N8Zahp9nL1JpQ1hVA1ycpR4L48eV4hryW+Ncfbak5NL1fSnniujjPHipSWWxPjtpq5FnjK6HamWrTPr5enLpO5gji3yhzFvP4P8i4pxydfwc5Slt4+RLlxa9LUXM5Ofq48oScKJnfka48lT48Yn38nNcpVt6UyJ8uKSSazPscvTyVJO3kUpW0KnyhJ0mvH7i5cuXPinGlcUxbTTWvc4+rk3TnRxaS5OWnT6QlOZShdDwpWpo4Jt57Tg5K6o5elJfDLa0KXp9HH1JU/Y4y1CTWVfRzmK5bWDjCmVD/Jw9Xnlr4I4rjyTXJ4nH9CTXJxHntH1Jy15OfDj/kb+lOqzBxb48cy1+xwT475LlfF6o5W23yFNemX7jqYfcHGJ92RWGseTnXGI47kT5cfNsa8P5OH1cuVLTONJpv05bOD4rMN5fRC4/8AJJY9hcXy4uePJRKc5Rx9XJ8pfJW5ltjTU1GY8mVi9F8staE5axJSa/bycVy4cnN9F8ZbXLaXTOHp9KieVT7DibaWIMTbJnhE+lTT7OaSTl8V/LKe5ehTGPJUTyLUepJWVxdp9UOWv2YpUazPsNPjr+Tl6k1SyNxxyu0cHxjMibwnByht2hq1Wq8iU8X6q38FOIclemlUSfdydew4XLL7REZjwfTxSsa5J5QqmCuOByq9PXk+5qxJy5fkS9TLhClJXocX+xyhNT7Ct5HLWulBd/sO3LUjtUz7swP6uTo9mz/3Y+o9yG7+BXMHcwckn/PscZ/Ypf2dntK2ZWx+58ESkfIqLSpGhx0jM5MIqHA83JrKFWR4f/l+lPaLnJ7Lwe8ly9jzo2LSHOmhQk/ccO2VHX6YclJodtfgc9sxk24MO2jRT0KZOyoVotdjm2O9I9nRjZhuPYdjzjwOOyGuW2e6MaZjirPuw4MyXqBR17Fpy5Pk+1jxrY4ly/Y+1G1S6QoWPkf1YjZ4fyfav5O6MxK9xQnoxxo+5uy4oVPQ7KUQ+pFK0PeGezY7/opa8ihLDHkwzdlp2Z0jJMq0ZgdiqWL3ZhzD6MscD9j5F9WhV2PC0cs0mYw3swz5Pcy9lxk3/BnSMIfuZY5XIxr2M02ex3kwaHSyhU/4N4PtPaxz6XEDt6MUSotFy8/pllRYrbwIV7FEPDM8sCsqabMrB90yjDyfk/0fb2xVTj/ZE5K5aPyP6U9n/kfBjZaehYtGVlDprZtSvc5JNZSI9MY8mUW9jpWzBe0d2VCr3L/k9mXCiezGyv8AZl5KezQk+hVENGKgu6MGhfS2WlhoiNmWr9hTBcqRSn+45shPk69jLSSkVpFtbNqx1EQU3kXpjJxtimbaMRLs/wCUw+hepNwXxdC+64ITSlwQlOjlixY2OHAr6KfLXk9PHlU+rrY7p+B1UJGHa/6OU8uWGPjTyW8Poc1TWjimkndyXLwfBEpQmyG3TXgyhT0fc3aHPXgy3HwW5qSPfplvjA5ScnKG5fuoOLhu01ediiabWEtHKtruji3yUNxgw+N7SYm07X5OKSSUHNP1cYhrfv7CSSUJNWn4Zx9XJJWsxs5eh4fq/sfqcRMZ8l7TSftQ/Smr5RDgafq5wtUPL+njmRYXpa2herilETKOEKVPgr1RBx9Pq+5Tk4OOMNPir/BxfJ8kmuU4fkX1P6VyuPn/AGclPFNQmm2xej0p8OFty+8H3tpx47bEk5Se4V4Zzhcm5WE8aI+l/wDLojjxfFp+VByXK4SHx4r1pcuPL/k4mEf5PSmpSSv8j+pP6qiSGlCxMn+R8OTbc3KvT0cn/kfGF6klPK9IXH08uKcO2cZ5cdNtJo+pK2pqDHFzD2h5dRREPL7IUO+48HLly5PZ9PpdMW5bXZXbIaWO5Fm3IvSmlb/Jwjg2+XJLvtG5haTgrkoXycZ/xyk1MQ9MbbUKcJd/Jzn6VTuHFk8vS3X8Qzm3xnP7nH1f4ml6YyvAm+K+1pb6fktp4Pq4quUZVaEo9LUvMnBPlx5e0s4Li3LfF3Puz/GuKdpL8SRyaVNVfYvTH1SrP8aa5XffZxXJcn6lAlxl5kiYqP7OK4/VDb35GuLfKFO7wOlhjXq4qb62OEsvz4PtTb+rZS78nCFxqW4s+pcqc5PquDjCVNPoS4+qnGxUxKb9TnQ/UnjpCcehy11A5SUXmTjHq2NcUm2mssnlDuBU+3lFNqUjDcQzj9LaTj8HKI0sDXF8YFPLCY2niNDmOhU3fhETucnJ8lxpJLA/VLmX1o43t9ilRMjmLQsQ20Z0jjbprxA2r2K1tjpKV7iUJXHZxrUmXb/0h7R9ry/Bxr3F9XqlMcNZTOMLTFfgwraIXJ78DxXufK7H9KWFdmVkSpV4NaNbZvYvIvLYsCo+CMXJ9yf7Cxs/IrW/BlmG69i4kUYMmv8A0mW68fo72uy4mINW0L6lrwK3NMyVGS0KFhSYzIvp7OsmGLB9K8iXuK9LwK2LDZl9aO7f8GYIxDLqV7ybWDC2Yd+ZPYyjeTGYK7K9NGGlRnocNK0NQhQ3n2M02ynmDEUzLiDHQpWEO3QpUV0dRJEt0/IsQmzkomfk0q6Ixb2fb/Z1KIZUW0OU7aKfL6kW24MYKR1R8isUVgpJYNIaXJ4KapoxxdC8DiFocNUKqFFCp4HgpQbFjB9yde4qTpl8tpGrUmRS8QU11kt7QklJl0YZS6K67ktuilJ0PxY4i2XuSmrQqTs1mSor9HQ7bUIULHuL2MLoyteDGV/o+npsWMMuITPNitWVdilJ00Yi0O0s+B/psqL9/wBPdivsvUeRw5hoWMQZ2NYsz34HCibEpgucHyhS+jCv9F9OB/dMLs0sbkUPQ1yb2i26clemYNjcZFK8FrZ+PIqy0hQtIU1fgx2VRD49M3ghPaYm3lLsqVBlicQONMpU5XuXkjuC9R4FjHuR9SpHL1cm3L6F4gtREIVLA4cSi27ZERXhjzDSPt7ZmTLHOZPteBUlghtuhV11sfp5csbgjlChimMQzi4w14MpZMpSy28Gv5Llf2OFJjQt1OC5lfA6WPYT9KcTgcsxyati+l78lJ5ZHpbpzg/5PL6Ppbv2FMVHwVyTTTQ7j4M6ihS+mR6YtFp2l0KV40cZv3Pp44aZbccv7KXJOG8JlQ8bycnxW2NenT38n08cpP2IV2l0dy14HLylPkU+lSk3PwfTcz8FzF+PBnk4UHGOnrAk1pu3PSHnL68HH1J8pl69jn6X6m0n/wAa0JN8rWr7Fh51PREKZfnwKIw/I5WW5v4E36afTrQ+KbdLZD/yNNJPM+D7pc+/Rx+pOcZYlx9S3mD08uLT4teaHDxxqhPk1PF+GLi/8kwlpLJHFThaFHB8m23HX/Y/VxSn6ZcHF8uXLkmorVnOHzcK9+xHFcf+SteUzl6uT4qOKxGRU7j+SnLSnObFe2cn6nvpexy9UL1JupZwh/c/ctvLREypa/c5epeqUvB9Kasl8G7eJJUuFOZPutel7H6k+K4vj056F6lEN4aOTTVwcvS+N+/hH+aOPJpv1Wo1LOKSyknvGdnH0uIbUJtilNOe1Ry9XFcrjRx9XF0lI54OJW0z7WpElLhw05cHFxxzU6OM8uLctbHLby8o5TxeGcfVyblLif8AJOKHScUJrjSe3G2L18VDUvx2KFybhdE+nN/wL6lz+l9IcYfv2ifS222vwi0tLY44wL1NXDsp2oQ/pTtvRamuvcrk96ZyXqXGOPuL6olPbKm0UnV+42k/phEPl9zX+jj6eTalcsoTSfJwhW0uNihvKYoa2f8ALeyeSTXLwx03MbYny47gXqXFwrO4XSHnKzBjNYghOL/7KUzyXYoSUQsFJ3Isq+h0lL8sS9Sz5M24F6tL3MdvQ54pUxNKM/I4UUvBlun4EpVmH0OJw/BypflsdMyKW5cinqSE3bRl4ZjvyX6lL6JlMVXZaaoozBvvoxk+F2KOzD2NNJxAqdstN5FQ36doVPsUN4FGoHWkW1iexe68C3ldH3PJUOV/Avb2JXqMsX1YR0YWIPddlcVti9Sbn3K9LxsUJa/sdTYsVAs0meGpEpeWKqFDSK8it0K4yIwhey7Z9M1ZTwuj2YpiWzlL2L3HL6JXYleGOLtlSW+/6PeCIeC3to/OR1pn5HnXQo49bkxuSouOh27a8CvkiZy12Nrkn8EJvD0y27TKfkuKKascysEJ6F4/cwsFpNVsw8Mw4t7ONKoLTFPFRYvS078oxEFdDHLnKHXZiIn9xS+LFsp6Lhi9KWiLwVC2O8lrvybFsp+DOyZbgv0v9hwm69hfc4XSK9y0++z5/wChZXyZQq2VJN56Hmh0Xyg2d2jDwf8AZva/g4zyVWVGV5FCy/c+1uTGGVHRu3snuRU3Y6StZNFmSlGOyp/gtZMeD7VcIvoxNFtZYxJ0YUSOm4/TeBWn+wqasVr+DIt0xJLUi+nj+5XSKS/kVpz8ChMVcc/0KOTln2u2ik7YpjDF/wDT49i1GBxWEZwXFlrbNtL2M8jJ+CayzdKMnGX/AAK0TLmGW+NtHG25QrdD8P2HMKU3/AqSiuzSRxmcCvfuJclycO7S2Z01s+9rfWx05afjo4LjxT+lpy+RTqzD15NVHgttSUuNtD+lEr2MW1J7n3SoZjksDctUvkxltkNO2mLUwc1LdMedCfpWzi/DXQn6YpChQ4nsUqL8Cnjv38C8lXlmHyhI4qnRhUu/By9UuE1gbbn8ipqPYbfJ1Pk5fkaU5Yl6nkylkUNRPsYnYqyhVGOma42tP4PZDnNeRWtd+RUspZkXqdcuLykxaf8ABadENPE3R9rdtaRzU/8AF4PqSUJr3OTniphZJ5QlM9ihcWuKWhUoafT2Om7ZD14F9STd6Zy5cuUw08eYHHFOXHYpluS+Krkjk/S04TZxpLJxXqctM5Zw1cM4rLlLvsUU19WGcWlEJ8e+34OSb4w+T43Zf0+rai+jgnxTlemn80KFymVMqfCOD5LLa2c+TaytOlED4+lTxTcRy49PycfVH2vDVD5J3yU97gpKkzgvUkl7L/Z9LeOl2WlEe/YphZJXGZflFcXDTzXsKJw8SL0tqPU3kfqfJw4s9XL0tw1OOmL6n3gccpH6uPFprufI7c1/BFW+5K5clntaOb4tykm8s+rlya4txjyfVy4xyvvagbTiWv8AoUOG2vPR/g5cfTxlcuOJ6PqzKYtRGpOU8c8n/RyccnDSx2Y9MturP8ih1F2OE1SWzWjh6lPtBHLab66E0nfJ7no4qFDaZw+lqHYsP4gucMd8VS8nH1KLe/gni+LtzDxZcyk8WVye2qXY4lwuK/2cZXLjKjK8Dj372XNtaL4qvYv/AIysnBy8Nq0cvU0qf/tnKUt7k4J8Zm/7cnNrlCT/ANDbUueT/wDYOS5dtd9HCWr9LPuemUuXkcqUmno5raSRxpTBx+pXx9OvDOUbgq6g4pvX4F6k1lZTJfHjUYRx9MpTHQrm/YXqXHLE0sxGjlE2oFDb/IvqjP8AQ5dp9GVYn7CzKoccetkuVS8ihpZRSeRyrhLrJMNfuWpURpQXCllqcdH09MdTJioMQKO2dayYT1nwTMVJcqmOEtds+RtrcmcDdOTKWTDHWzCpLsURo3aRV/kha9zLtToULEMpu2W2VcJ+B7otp0UooeB3cNaKqXRldiTbw2basfleUWKL+DLWR9SNKW/0VmFo7wYQpnRM9lSX0dN/Iov9io0a0Y0O3RTS0Y0LDtitux+yMuzSscqMsx/JbZnfsLGPYXuPVIUpV4HUFt0/9nvW0NOck9Id+TM2L7hX08fBdyn0fD7NuUYdopxRfJLHgeEsiS8mqbMrA2+PQo45Z1KMvouabL4pSjDe1gf0q32VL0T0v0tdGE/yjSM96M7HgfscduSbxsXuYZyvQqTsxy/YcLBa76FEuF0Y7MbHPFKityj6mstkJ7Pu15JZTzQ6mEzDR8o1c9ihPK8l0K8s25Y6yyjrJlWKJR9uy0h01JljpLBaMtUOTbixUsCxlDqba0U9eSZatM/H6OVESOhzM2XqXv3JhYaJS66G2nlmnBmT4K66MOpexz0YUuRX2+i3GBROUYQ4jfZtRIsVB8yUjumb10R4gxeDdwLzBvDHmEn5Jdfgvobe/wBPcb48krRXIzyaN7KTKnY5hyxu1ktxXsYeex/Sm4cHukZX0uTHbHlyn/JjKnLE8/sS0Rml/sxyx4Ll5HXhlLlCS8iod8rFiEk+i0rOXp4/c26Q0/VaeU/kcNimGhrk1N8VCiZSgbbj9xZwP6ZhsUz/AOkdul5FU/sOkmmKmpRx9UOLE+MJFpu34FS0teRynhjiqFl+pG/Oi4MakzhR7lJrHybUJDbcDcjj0pWhP231MEpK37HGYqGKm5nNFLC8nFpxZPqU2UtotOmmzCWJpI+riqZKqFPsacHNy7fkfqhq/IofLekuzCqFVjfJrP4Lalt7mD6uTSmGTco5vjy2u12cly9KbbPtahtjieLS7Q2muKa8rHyPl6uLpq23o9X08klbV+xy+u5/+nFcv8fJ+nk98b2u9in6Y5Obbk4LklxbutHJev1Sv4gj1J4+Dl6UuVJ9HOYhelUl8D9LWGszmDlwqWuXkVNZe3Gjmknhcv4Oe4hYwKGm6Ilq5zJxlPCOUQmkhRx4qnykc8eMzv8AA3LTb49fIqcpvczA2muUtt00uxRx48Zzi7/kV8vqc0hTyeV0KXyXpbFPV4ukcVy5f4+S5cVOCU75NPfcHJrjlRHXZz9PJuE/Hk5erk1fFK/c4z6k5fSOO1DOX0zXuW8tCa/5OceIGnxiW5OU8lU6F6lhJix/Jz4cU8w78nJJcWuKi2PilyVcrkWZUvbE5a9Teos4+ri6TwjjacT2Z5PI16ZiPPQ45NOHmujmk1x9TXGmjj6XDfF9sUP1epP+hahRcCnjDT8jhcVSFfknklyfqXjsUx8jvMDfKHK8FP8A5Jii22int9lcW79xU45KRJcu1RxmJcjlTLWjOvJEcrhHGOXGpYrWUcfS/wAnNS1a8nLFJeCIccmOk5cfwKFlsc2cn9Nt/wBD36Y6HXF2K5qRaHXfZnopt17HK+OVuR2nlDuJsWTbjGhxx45vY3D/AAKkmm/A9fByvQnPJYejjSMuZ9ik0VAkkqktRS2YTsWNtE4MdCvR+DLwY17meimrnsvlotr/AMy7odpmcFde5hC6gXlCmKTZt2KY0U8wYRuHBhTH6falTNKJLXRakuyk/wBHKnBvAs5R8M+fP/8AxlPBXnwfCHfZrI8NUhzI/K9jGux27bHcSmZeWz4fZt4MOjCM/pkyh5pIyrjoVYXuaUwSUngtyW8mev5HKGdJnVD+7+R/UnfuZdRB92xZwvJ9zFM/+QszPgdYZox4F8nx7lzSnJlb7FFD+6F8jlO0U2hzGD7dJjvXsX6qMKpMYRvKF7MY/wD4LKwKz5Md9GPJhO12OOUqi5V+GOtlSZVteDKuBwosy7UDpldniBpPQ6x8jhj+nLZjoUyROI8DxgcSfaOW5N5F7ntBnKZUCrJUmDVruCOKiluTTz5/TdmhzRhqi12PP/oMVL8DdjpaHgvv2HS0ZdsmE5ZnsvwR5KZaboUw4flEQjD0L5FUSb/gcqCowK4KlKP03ou5fkxdeRym/wAFt7LjPufOy2PGUfTaOi30ayRqGO0JwsSax0zGzKmzPZ8vQ/U/U+Tb0ukPwKOo2YbpeBW8C8QOme69xS1oltr4LaFESK04TKexR3ApnXgw9k+nlTj+h/Tx4wpyjlaZ8sxycsuvkVIzOCPVoUvRlU+jDwV2dfsKHy/gUNK2x7iEfbnodTTG1GH4FayZ2hTijj9LyOErXY6MS87OokVaTHLWfIreSnBTj/zM5XXuZ45Rcmuzk+TblpuUl4GkvS48nGGnLcC+5/MihS6zeSJiG9+xjk/pfSOMrD9jjHFq/DkVt/T57OcRyaUSkTyfJw3uBv0pX7ijivthzJlOFFVA/pfFNF1Pc6JUr0pNbklenOm/CHHF23yuH7nq9LTaWn0J8eTXqfJREPTHCaiFc+Ucp5JVeRJLaHXJOV59xp8WlHghPjlzk4tvk5UfyNpOJQq4/T9Q64tR7bOPL0cstTM6F6k+NcVtiad0+8GeSbc4n3PpTtQ8Lw/cXq4vH4E0+T9KTdJZhLo4uZfGLbxTXwLl6v8A/L+vyc/T6U02vY5txX/05er0pKSvVvwLIvS1GdihNSn4HD032c+S5ceMQ4z4JluI3uTmvTxXp4xmBwtrTRUOk+pLU/Un1Oh+pUkvHuQm8Pq8jhLHbHy4xbHj6Z8kJzLbXjBHHirnZyfJpSz6mvpYq66+D6eXqWeoGm74teB/THyJN5XqqRQuPLHk/wCLvwJNbb6KapLxmRU+MuMsc+pwn2zk+PHi8qkvcctY5NFZn/o5Q2rnCohtVMVyOD4vk5+JEpym0fd6Y8yfSpgic3vyjj9TvE1Jx+2n7dmUhw9ycs58i+mGk2OmRxgtxbwxuffQmpOLVZeRLyhemcwjO0mJfUsFSZVpil8moZp5KSquiYemcY9QnOJ8GW9ivXZb/r3GpUx7Djisiud4Li4WiklaZrC8EObkr2MeRZkTja8ikUQog9jDmDPKhUqRjvsw6N0fcOe/0ubHbtsyxZVoiJhC2bdGs+5lYMvBdzHgUp6HK2j4F4Y6WvBoz0Y5UOtDmNmejREbPa/Y2xt8tQXGvBUKxzOF4EU2/wBM4MtYKgfgy8x0cZemzLPkynkyh42ZikW2O5t/yKik7kdSLG/JU0U3ofkpfux0sGdMytHwj49x/JawjSMO2KUlQ4jJxhx+45ffkpL+RS5F9WWjKr3LUDuWkK+xZUnyzOS9Dl4Ohzcsh2aHT0VDHRpZHdR7j7H59yuxqy06+DGk+jTHacSOY6F46NYZvJp48Fp6MFuL9xr1RFbH93+jDpF0ZY8Qmhn/ABwjJjsYr0ZmWfczL/guDK0YSkdvCOLeIgt6M4XsKzLH/wDRzCHXfRfpWj2Zpn3aZlx5LTWTY/pU2OnMFW5Q52zsfye7RjZhKjLwhzywjKMNW9MwcpS0imk3H9Cz2fatEXs0WlcCrH6O0VdMW6/suq9jMGUOswaM/wBi6ZU5Qr0fJ7WRnBXJwYSyOpr/AGNZ+B+V7DpKjJrK8H2ty/yUpLbYuKadQ5o1/B/8OUb/AEysPwZgpvZc1JyuK8IeIT99Dl4ZguR3LrspvJERSMNSz7nguXEoyilk5fd0csOhq+yov2Ldx5LlVJjaG1y68eTpJlLMip0p2KEvuKUSmzmuS5bn8ilcslxgj08pcdLbOL5LSWzGYMp0tH0ttzB93fkc7a8Ft2no3mTdT2jP+NpJ/EjtUKU1PsNy7KjHk5U1jycYacLdaEpVmJuENvjKanoXpWkc/TVHL1Pik+XGJraZzSatqNas4r1RD4qt3ZK9VvjyykKOPY/UlypoX08XLlW2KEm4T6FXKWmlqaOM8ZpPIk1yTUtXPRx4y3H70XxbbaejjcQ0lSP+PH0vVe5y+lwk3mZs5TFRF/kUQ4TZlXPQ4SblYnojzP8ABlXDyVxdtLMnNL0ykovkcuPJelxxw4zPucuSXGGkq/onknPFRCuTm/U19Kdx4IefVVfg5+mHjXSUnCVy5Nt7JaahJ6caOT9PK1K82L0+ltJvHLBlNTHsZacPbHhJ1gdtX5Q54tD1UnJtP6XLwOVDvoX2v9vBPqmYfXQ5bcR/+q7Eoin0ivTrT7MNw3xeyOS5NprruRcvS36eLScK6bH6vpST9MKd2SuWlP7k8YdfyOU1Mrfhjxj89j9PH1Qp7OaXF/Dk5ptcZl3fk/yJJ5xM+xjlhvakXq4cab22elJ2/wD4KU9PZw+pKxeptwkrY4iUjm/S+XqTXsN8n5uzjn4sueMpJ+BqOXHH7lp4Rx1K/wCiplz4Hcyt1GxJcn8uB+pJpLlx0J+r/wDb+B/UlZK5er6uP8ENu2uhNt4evcmJcD9SVwJ8pt+w8/wL1KujjPpUpDxopcXhZbOEcZtvKE1yVNltRjEH1ctLwJ8uKz4NGf6I9LpChacjn2VkRMT4LScNfMH0+n6kXOWL7n6p6ZpTK2YWZodTkpMdP+CxSnS8IcvKQ6WuxxFwrN4Qr6NrA1blI+R01COjVUONpod4YrLlpM9i5xOjcQOuy3MoctaMyKpstN34LjA5ekZbIwOtdkeUy+Wi2lY7eExewocfuaVj+R0n72bcDmhV0V58G8wWkhzP7GY/Ycta0RNQmKIFcWPGhyReP9FN2OUti9vLM5sdQWOeXLC8DiJTMSsDhIVZHuUQZVNor+ypY/KF9zgxyqSvctqkKL/+mHjwYTtoxNji8mF+4n6XvZi2j5QpWuhS1kud9DUvsUKdjeZbZgy6MmcwU+h3FmWiZWPKKc0OlV7N/ov+VlJ4MFLQnPHRkptF+nJPv5LWWz/yF7NFK5XbHnRT0oK79yekW8L2MW2tixgSaThvqmW0oGvVMofitDgeSLMvZjEmVkryWssqBtS1Eluca/SI0RKFTv2HEZUkN6kvtipUhF+C1JhoW/0zp6MVLHvHgxmDWWaN78ilqHJnyZ4vH8DbfJR/2fEbFmvY7hCuPyOH+5sThqfYUJ387MOhTCh9il4IUIqclRkzlHUwY2zGZ6KhxPZlHTlmlBlkXlD+q6NqZ6FPHlxn2Z8MxxcDiR06Md+DGxwW5r2G0seTLTgzEtmKguLXsNJaXQ5wl7ihxTMpV0fcsvwcbQ9luRertjtfxBbSz0OXtn1KZ9iLfxJp4Ofo5clHHlmGNcuTy1UuDjCh2KlRaSot+RboTaUSdm7+D/3uUlT9z/kvyhx0lpHKsWdwvI5aVe4p4tSm+juIMfdxZXLlcilRHJdkele7t7Hbw0Klk1S7KUOTlSiNDw8Po+UNT34HKiEuynFExyZaSg4r1cmnPwKE6fgdOlOzjjMIp9eCHFXpiy7ZiIcnJelwklh+RQ1SWmU2yW2rWkLjy/xcl9abv3OdcuUrT8//AA4NceK12JceKWe/cSrC8wJpYc0mcoWYf8Ca44UitqPjyPjyXFNRy7OSXF/V18ISc2l4G+L4uGlmBS+Vf9iTXK3uyb5S1qfYrlDTbJTQ5WZ/cUVU/wBnDlCf1VIvTy45a0P1cW7kjinadSkck+acNsUtuG8aOENKH7aPqXJpKNMfqUq9uj/G3x5cnK6eJOS5cdJZT/o5tJqVx4qblRZD48piMrcDXp43Vplp4WpFLX1LcPs8r4FWF/tHOUqS/wCjEKHO4FPqU1o06fSFFypyKklycZagnjx5cfe6OV8eXp5VAm+Lf0z0OOLlYwcYW2t+Ucm+PJNK69xVtOymuV6Udjjlx5JTpitOUsJnJrk7zRylpSlr3J5Plb9WIOENv6Vxx8jXqn1RESiHxV8lxzHRyfHk5U+dI4vjyqWlG7RyiFCOHq5f34Ek1jUeBelOVy8sSaVr025/s+pcpfFN4Rx9PHjS8H0+mZnr3OMf/wCSiZnMDTabblYGkkkc2luOhfSkmmvYxxbh7EpcwoycXy5YW9HD1Nv0ri3DOVPlHJcv+L2fbyXp9vAvUuO1oUt5T2ZeurMNQvc43t/7GuTbxgbnY54taE1H4YnLylaMLrJxjiqwPN1/Q4bzJD4tQm3o4cZW1k4SksqxUqRbahLa8j9KV+JEklMqP3E20p9xRcr8HWCG30VymGPuCFWPI8O0ji3FKDhTdCzj/Q4UWvJxlvREaHPgUzknoUJKC2rjwXIrFefkWNMUNRBv+S0KUvq9uhKtmWPGZ2XFUKYUsVPKF7M+qcLoUNsUQ4b0MtrEF+/ZuoFIrd52LNfI5kWTOPkz+w546ktdGHbbyWsoWYhDvrsu7ZikhVmRQ1vr9HCiILWUfcYSwK8jy5aFgfq6SFOFIlKWCaz7kzyeNI7oyhS4yZWDeBTdlRgbhPAsNQjODDdDnpaQreX5KSFuhVyctGEsdmsITza+DUGO3jA8oSidizfsOzKdeTA6eUdWWnCkWxWqTNKPYVJFVZbayK+i4/kuHgV5gdpy/wBPkWd7gedaFEYFMOhWs+RRr/spvIr2V0YWPc7v2LhW0Ku/JvE9it00tFC8G3S+D29hWnT8Dxhm8sdp2Wmsih69inkW7MYjyUnkbumPA64nwz/lkcKKKu15HbfwLCtMX1KkadSPCwOW/gtyYtMVVgytCmqFLjeSnUl+RxoUf7F/Rb0U/wDl1ApeR/S8oxhF1K8iwxCLcjyplnG1iehalmXU9inTFOvYVxntkPLkTiDWzdyj9sGJ/YtJ0KfcyoY5sXmTbeRJbRpZ8mIv3MCxQrHTF9KKiyG24QpqEvIrgblVQ5WSk6aF9She5bVyqQqblIdN42ZeEZy/CPx+iwq8mcH7lpFy2kKeVT2KGovwWrg+12n52ZeRSpwYatIy7T8YsTHMqGeb8DpVBWf/AH7ii4Rb0vBvZwXFptK5laZ9s62KU9C+n0wjf1QZSmB+E5wKW3+3YvC9h0qV4Fx9KVQ7nyhVEsy1S8Ctu2KPbo7yOsfAoadMpTZcuI8Dp6fQoX/rFLVyJzFMhTvcD+Rr0pwo2ZVyZtwZ4cml7HFLEI4Rx4tzKi8Sji+KbbnkceK58ua9XtNwL0vha9WfY5Lly5OlJ96nk+MXRx4xURKrRHJpz/oytsr046YobTs1h7fljf04X9kz6qv9hJt8oa8HCnLaym82PEv/AKR9MNWmNLlryLFeOjjEqHeRL1KYZytumhw3E+VtCbXWxr1cdb9hJcVDT/2OGsTSQ7VLyQm25Sw3BxxTTyU+Ty7gUu1yn/RxhxEMhOKXT2JJLCWGNK7OXp5PcSl5g5Llym3xUfsfVDrej7oSqm1Nob5O65OYulPscZiVLycoTy4p+5ymcZktpQupHpRx234/Bwn1JNrlORKONJ8XHuRMwv6J9Lt+GRPHKxuoJ9KUuD6eXJelexy4prjbS3Jza5bPqWuj/G3yfKU/B/8AtSWjj9PHDSt+DhPJuONWux+lcVL8nFvnyb4y/wCj6Vxw3srlxdvvyOW1ra9x+nlx63WxerknbWhcuXFJtTbOEJwlChHKeL45eJMcZlJ58i9PF4fLo9PLjNOpOPqUwn49iPS0OfTKT6ITbrUo4/Tp9HJJZVH1JO4zIrw21XszgpcSuiePHCXns5fVNM5OIjMqcl9LY03MvzYlxWjLX4OVz+w4i4/6PtVPx0SuURY4n8H1ceUumKHPpajRxjjlocXgp8llmW4fbHpWKtPsczTa/gVu29Guh0lfuK8L3OFu5yhWhJrTgpt2NRuNirS2S21EGdMtvC8lVaKexU6Qq68m5kUN/wACwfDHSyzQvb2/XWzDpexqpMv+CHZuTR9q/Y0P6dIfuYRs0hZcGEWsmtiz0O05Phsttyzi50ypUtj8LwT7aMN0vBn+j8ilKy+y0ssqMCvspocpZXkw1kpMX+zqTYq7FSFk1BpSvc+WdCvZxjoX1RPwe9FLZg6HSX/oMzkyhZ0U8Xo1lmFotGY/cVZYs2jotN/uXY7mhw5hip4FU/sY0inIsGHEEw9CjtH/AJCwW4o7s+GKW+hU5lFpmso0Yg+rLLf7Ia8GDHHKNaMxRU7HSUJeR7yuhZckPtj8ltstbZ2mn5yW5anwKWnH6OkKVtGdFrDPwW9loUPJmTLKY4jDKgUvBpSzAvZjhvCJU2L7afkxoxNFPbH8meh/k0slscLoWbfuKkWkpPp2j/zFWykrgx0dUxQ07WhTGEU3+w9/sPwvYiHS9jVG7LSQndsVNUZmx0m0WuiI2ipo+qKMP+TqGKohJH4FiUZ2jKoupKbMN0aWB0WvuSRp15OOaH/zSF7/AOzO0Y0Jy8rRlNOGUla9y6pHsjbh+0Fow6h9CtSaHU4LfqpLocSnYpKSTz2XyakTbXZFYK2pLjLHb72KYFM/sd2W5lexLbUz0jBfFLKJaRSU0y3ywukOIplrcDikrL0kKU0UiKSheTEQmNOciqcDi5kUJGJcCxgxKTQoTclNqjOH/YqgUJuDjcZ6MXJklSRKcpiabm/k3ET0SuPTG72tHq5cfVLfJzflnOGrSWxxyVrpD+7B9yqF2Q/VMPsaUS487hnFepr0/wBnBclMcpdzlJChuHDyvBXpcNRRSzGxWi3yVPRmLI4qZ5Lla/IpayxQ2rFGXC17ibfJw4pwcvqXFSzg2+Mw1jG0ZVx+5CStrx7iwLv2iIEnxaU9nKF9q7mciz2fS2oEkll/t+TjHJZnHucvU+KbkUQm0v5YmpacrodcVCjvyOXS+NmWrbJV1uSJmkKG6KTUR0OIj2+C1FDy4Z049ti9PHioTnWmL/lD8eRzy9NPKnNihNepPxNibcU5ycFx9PK0m8HL1JuW3pUJpcmnLScOf4OD5cYl8uMuNWujiuT5NceMOEtSc1y5f8neT6uTuZ0cHGkJpYb6H9SrOT44rvs+r1JOY3hofp/4pcuzlS+pvt+COTuJ/YXqfGn6czslNL0w/wBzg1CanDb8H0ceX3bvFlpptpCjnxbj08so58qXWznK5RE9DURhbGoj/k0OHx9xQ1xybVo5TmE6E1yf/F9exwfp4/cuWsH1KceROIbjM+4/S9J68Fw2NK7LX7TPQojrZaRxlcVntink96RyXq7aOTaezi/VlNl8uUys0U33p+xylul7i9XqfphtZPphVdkxFrInOGtiT4258nL6Yn/oWF6odURVtaaIjKjIpt2YeDKuzKZaiEU4pdnyS5VLyZtNDzTRdWLc/Jb3Jg25M/pX6bde4p7XR8lzkwhf9m8mcGTL/wBjwzs4x5HkUJz7HhGOilLPg+LMr+BGOz7S/JjZl6KSL9yf/wBYOxuF+5mMFxR8mfA4o9kbePgXz4KcwzHRMdeD8eTJt0LKhmtH7i8MwsCcOjDZiIZlFyK5oyOFyO6ZdwhY14Ns+WZeEKuh/BSiP3FgdJUjlUWh+CHFM97M/sS29FTbLXZaSbQqiW/JhmWLLhsxs42UocopLXZfXZnkdGdCha8iyYjI50L4EnqSkfJCWWbyU8Cs1oy8otXApSovpDhH3L9z3opKH+482V6mY2zbMOjEWbdSayyu2dz+jpmX8GE5ZfHst/2O8P3H9LhM2sFo1eBOD/yLSs1RXQs60j7i3k6IzoxoUJmXk0k0xR0S2rjwd48HWB04hMWMMvtmE4jwdyYlNs1fwOkqf6V2PLHqZZhOEbye4tQK9mVcn57FSwV2jLFayhXA8O5HZtSTBlO0Yace46Ul68DmRWtH/HnMbOMYedC9n4LUfBWk/wCv0uXXg4uVUrEwWpo0UbFDmGhQ5o2U3EIxkpvCFjAp5YhFckqfYpcx7GSm9djxUeC1IrOPuYiB3/0YVSLU8uhwmqRSWGYUKBpvUkyyElvyKphMzFF1ZXaY47FHpwV2xXhsvplKMo+10mKFyVMdTbHnCHZKfL+B5pe5b6FHLf8Aor+SuOvJhVD/AIFPF8Y9h5jjmvI6WEKOWYM8nnoalcdaZQlbmV0Sksde5PJKr/k4xyVprDG2+k8s5elp3tmqj+xN8uTbjwcYfnowrTE7VJCtuYKMvEWRDE23l79jSlLscTbOS4x+WXEwxW6QxfTGuhKUoXuL1J8l6msz7H2vL0xzy7yo7EvCUji4klJOGfbxmGL6VCj+xJtqVezh6Yv/AGWojzPgbb4r8H3JKV2KXyy3hPJy9KmIJUpNKThy/wDwpR6lTaz/AEcnx4p37HF8ZSfGfwJvjyfsjjELH8DhvhN40cfV/jTl3j5OK9PpiMkri+PqbVT4k+ml6k/ds+lclKa/s5yns5NpKeoc5P8AI+ST+12N8YeFZLacxtrsnjxd1sXJ8NtZQuX0tp3+GTxuW+ti9XFPPGmhriuKTXFu2/JxhJJP03cf9i48uTbTfG0n5YvSnybUYj3LU/k4wnUZRyiaS8eCupGvVyhttfmhzDhOBJ8k3KWEKfB9qXq+IGpdN5Ek26ZyXFLkuKjFo/47nI71OmU1fyO8MmFKbHC5K0z6b9SjsV+rD0OOLz/RyhtS9bkUtRI2+bUy8o+1XG2z6uKeIwxfSlErKvYly5PN4Le14JfkUtRT/kU8qKork2oYnyu35OPqeJ8jfJOjjVqimssZlvZTTlrsxmPJVT4FLuHOi3oc/wCxPv8A2XEyjqn/AKPd+5xefyb0jscN3LNui2UzSv3PYwONfJtSbds1ozpma/B+C5yik1Lf6djtZLWx3mB/BpF8lMlvs2smMQYkf4Hbo+50W2UkqHHRbZhFJZZc/v8ApL8jzUmVhGnRjrsVIynscSfhlPY8/sP6cR5Key1hLoxOxu6YlbhHKf8AY3VotlGTKssopyP3LXkxl+w68G8IxGjCmD/lg6uB+458D8ocKzWGKCkI/Y+3vRbWGZdGFo/I9YMDiMGjqYH/ANixkft3BaKaex5X7jtqhXtn3Dvp4PDn9MSV2iXBUKWYiV7mDWUdaEoac+5URLHef3FKt/Pgyh0s6kq69iox7Hse/wAFFLbE2tFfpbif+jeR10LJVUx1tGXQ7WxQ+WfYm3nwO4ycoadxgw8MsWXcilvDLWJ7KHVr5M9+Rw8x2U0PKh+GOYo7kwzJiZF9K70PORQ1rsw83P4FEKR5pLyONotMqXXRnsxgtxEMUJWZdlJ/yZmVA6WRv2OrZ+wvtpH3M0U2Wm2rJ4wrT/gTz+xaehRdmH/6BVtkVOehVp9jISwcpScJHuPzBm7Faj2OMcm/ukcW38mdFw1gdJ0OU9H7m9ETx42hzxx7MUtbfQ5TuB52f5OfFprl6uDh+xnagUw5Y4atL4FDiDLlsfqnR1+48u+mfbtoy2h3vzoj6afZETJ9ryj7cKStIttVJmoRqkxuXtEtr6ZcS/cpZfuTxePcd4l9mexuFkVZT8CcpDqI+TlmJHjA4aymdOF4N18nddjtK+jPJx5FEuhf8uxyyUnhixjbQvpSU9/klpL1Jq4Rx9bcNNbRxf8Aj5NtRy349hptQm1jyVGPLG+XHknPL+FBNTC0yfS3JTVict23ZfJOWSvS8uyp+UOFFexiHEH1JttCzbfRjXuPUpDcrDQ021J9138j8Obs5fTgScKvyYefcdaFMXOIOTXHTWh0lE7ghtOnk+3laXT8l8uSXKYI9VYyQniXpjhpPjCqzg1xaS9bqibpI4xxaUPTo5Ty405dyJ/ck/TcC9XHCWmJw1Cl4HLblNOGuoFDS25n3HKSVPJhXHfY5TfqnwcZ5P6UppqTgnyVNm/5HHFcYhYyW2nfjSZwqEm1VahfBXKYXmtnD7nMoTXFqUx26hCrip5Rt+4kuMTSwPkly4ptPSHWHbwP6nxSXk5+lLxTXllLlCjkokb4rlK5LjmD6kuMPt+Dk0uKxESNpRDob9PJS23/AOgjl6mo9/JyjCcKfwXLmZFDThoUNlJ94OW8/uL0rlhrsc8uPGE1pnL6lypa+Tly5JtO/azk0uXFv5ycvpUPjUDSacTuTzPkiUsv9hy5t+RQ7TaOV5T8HKnsczbbs9uL/oVtYgct5F9OX/o+lub2P6tyW+VyU8wy/O4K4vLG2nlFcplltXOjCOX46KlfPsL0zg1ow1jFGteSnmO0OGx/9fopdSUm8Dhdow4vtlPvwNxg3Y8XA6TmWK9kLv2Gk5wO52OV/ZmTrBF5XYriGOdtCwlJRvaHW0a2KZ34PZjp0/cmjukbcJih7ZaMLPsY8DmItEJvbKezWjMaM03o3/AsG8G6bFSqx1NMt78DsdjUmqR8Ie5gzc/pUMd4Y/YeXJh2RDUr3KUz8mEpkf7DqYTPYdZkeL8DpZfkrsdK47HfQ5k96Mqo7QvS3t9mrX4HeIH9x/xH7lXQonI8KZITwUlplLR1TZTiWx3sdKoPceYa6FDsiVmBwoscqfwcZSmGKE0q6/Rw8e5bdOB+7RXHRoz0i3GYPgdpykv7LSuEU1oUN56HgpstaRfqI+l5K37DUYiDOG/A7mYO5RXZaf8AJtyX17mEPO+h1ouXDPj2H2kVodoqHguUV/Jh22YmyopeDIqLlzA8LHgwyKdIwsH56FKWx4G51H9mWPKF8EJuy4dscQ7QpnA7d/p7MtNYQrUpIi1gdJYMclfgVTBmIfsX4YsfwPehw3leRYcSXArMZY6eWi5wymnJW2i0lhfpSZvCHf7FGOjOZMzkd5gd9MSnb0OJ2zllxH9jhYTXRyqMd+w4bWBW6ZjPkVPLHd0aVj+6WzLz7C+lQ5eG7wN1bKTwkPDkecMta9x28e5ylYZvDH/2VeOkd17F8Z9LQqbs+RzGx4dwOnaZ/wAXTHTpmMfBvfbKjGiKVvyVKhe5EtQRNScpSkuXnSOUNJ8ex07TYsIeXCoUPfuWmsFxcFPcjyqZEYXnwKGkNLlo+XmzMtsuVCb0z6iayyIShQYdR48jqIRalfBfuP1eBbtZQvS068jhtwOW1NYHPLnURMdjS48av8IUJJOEcfpf5V2cZ5LDE2njwcoX8dnL1JO0coV1qBTNpd6H9T2OJ/dlSnXkaVQmZVCpOUh0jCotLC7OXuvA59Sz0ZifEHu3peDKhv8A2Xxbuh5yvPgniuUTr4Y6ag5SnCaXYnC3Io/9liXH1cvVya2+xfU1Te9imYUi+lu46ONK1NS5ycfUk0+VzDEny4/VPghKIbevYc8ks9uOiPU/ueDmlNv/APxF6m3CY5j6v9fwOW5h6I5WlDtsULk/p9tl+rPsTxX3cXj5Ely5JceTe2L1JVHga48Zc/gjldLv3Pp4qIb7F9X/ALZrlCnY3HFVxRx9PF40kcp4ptMSS41HfuKoidexDfJOdWQ+SapXK2iW0qUVMYZwXLmuUROEcp4ptQnX5OXHim2/Vt+IF9UW32Oos48ZmfLc/wAHNtpLlCWHsSb8lt7jwKJTTfZcd6ObcWz6lh7EnCqdewp4ty1x7OKlvLPh/FHG+27Olxfkfpcy/wDY/UqlipUkJyngpS4faGpVJL2LnTPu5UOVy60XFIy8+BW9i+lfyOOLWO7OL5cc+pfwL6YHKxBxduT7tMdPZtxHk+5w2KeOSkoLn9hw05a7IhVWiE8SzjapMj1LsVNSx/I7bpnKHhwJv0zWmOWkbya35Pyex5PlihtH/wB/TR+5C6kvtCldmdicRMldlLfuXYkmnkdK4FRFOy3Mmh4yVpi+BZSiOy4WWLEXo1/A6VwUto27PtWWXBUimKMSUqLh/kxif0+fcvyLIqxBT6LZ93bLfkxB7lzn9PlFJZXkUXTTFZ1Q4TNydWaFqB+3Zc5k+RYw0VGC+SIUbPt/sqMG8vybFLVfpUimLT8jlul4R1DNrDFhT8lRn/QqMOmV6ZhFPXlFbHSs3ottip0W9ChaKUydYFkh9oVxRTeEWKn0OUior4LWvA7izVGcIURXuhfd/JhFRnyRGkfnSKhT8FyjKyim/pQpi5LTeehxWC2tCjt+T4H9UybkyxTGmU9lwx57HLFEsfsxX2K8yVLtGZlGz4kdCyq8DpSI/BlbktOzOh5ZHpih4dDHL5YXkWVZTeNnHH5HD6ZubHrI3232OFrsuMMeS5f7nu2KptoitdmHhGHj2KTH9PRE1B8iqC08CuaMo3JUZ9vAqWBRuF0U1Zu0ZxJVZ0W8sUvz0L2RqpIlZY8qawK1RtiTky7FeILnA7eBep8v5FbyKoKdULNHL6nypv8AgcSl7ESmOooVLJV/sYuSmlbHM23sdtUiLtlS7RbbaZEJUU+zn6ePCZXblP8AoUp66Eo5f+Rnow8izCFTopN17nKHxUNdnFKFQoSVsyv/AEjUPK8bFSwKZpodf2LYr11JTeRy+OasinKFbtjjjtClZ9kJnVeGOabfkcJ48IUp7LStIVxb8lKDGYG0uNz0f5Fx/wAeuPFZXvND9K40vDJfLlLUY8CahX5sULjCjsX0pRL/ACcXy4tQnFfJyUYcihPK/snjx9MQrRb41xFSU9QXuBYkp69y1FKBfT6b9+hXj32UncdMv1O0POCJWUUlT6MIy8eBNTmBypG4zxRXUHd9jrHuKVGti9LVCXqVpTlEQ6SgXpai12JL1L0+CHOX2jMV7kNOL86EpabbwkW3xlJVFoUYUq3GSlFStYEvTxiPf/zNYRyadtziehw0lNUN+lJtvlTEmuIm/VyiWqS2P0+nPJY5fB9P+Nc/V1MdkLj2s+Reqm37nBtu/Y5RyXJtrk/I/p9dQc/S4hqcIccU5d56G/U0lU0sn0pfS2tk8uSTSW7OSa4/VZ6VU+xPLlE3cnL1cGk4mk/Bw9XLSVHFQ9FRhrrYqahNwzlfJWv2op1D3I55cnnpGIUIhvp4OFdrBT5XeDlCWY2OGz6eeG1snjynDyJcuWGn0KZy0T6njUHC+WWOHli+7MCm5nRcWkimkNud/wCiqhvor00N9SjlbGouZIalQvkW1e46Pp5PCeDlWeTfZqVRlI4zCz5LevCHXL+C1yv4F9KS/BhrJ93kdvAo0QoyzjDxIrF4b0ZVoyn+TK0Yr2gUYS9hUjR/xx7lOLKc2xS/2Ndlw8l3ZRdxAqmxUxVh/wBH5NuH4J8lQZ7MzKQsHGVmfJ5ImLHlowr8fJoxiTB1Es+RU8Po2LKhPow2rEpcSZszNlpWUYZn9FEr9yrv9MM8/pjRflGXgiYo0K1iT5L6KvBsaS0KlgudkyO9mGyfqcSW9sz+lGMtGFYqeTUoUzliyqjoUNuF/s+TVs9yoUj3SNZK9VilPQqjAiu/wY4i+2zds/JXH+zDyzCy0U2KdMy/4MvYq9OBaM8WezFnBl4PdotTaNGZFWj4R7i+TW+zEWYiWU1nyhRef3NZNuzVFPRbw2SnFMtu4FMmFRnsU8dPo92W3sUszkU9PYp8kQzRU3J/2PWRQ0L6dGGqnsVxCMZNYWjaHgxNe4pqxXFFL+TuI0hVyx0YSkVbTMRKNxD/AJFemNOFj9LliqZZjBqoISi/czv2M6R20W1RcKzDwZWfyO1QrFjX7mF/JmZN0jHfg9pNKzeH4F4bFPsZF6pdzUIVuj9yryXLgdOmjT9PwZWH5FD7PklO0n4FPLs+2KezEZ0fb/DO6eCLUlepyo/I7NZ/7FFYNzIvpSwfhih/0XOjHFqEYdQKIULyKJo90xQ27PLUjqI+RY/JPkd9bHcfgUKfTD/ktTYpuz6bQvY0obHfIeVbQr4uZ8i/o5U1MTst/sLOPYeMxlmZMrL20awKVIoh/wDkJ2TDSSXnIvZH/KXAs5Q7Tx5HETJvLFMKcVBMJW1kUpo4xxbpLTJaatK1OV7HGeKSht38HFOcvcbHHqdQbtmXo1lDpGOvIo+Nn3a9hemrHnJM5strL0xQl/JfFuZEn/7J9ztQKqroULkkl7il3fkytrZhTj3OC5ck1Kb1uDg+PqdrkrTFape5fKm/CMrfgtLL0i3MuxrLoXq5J0/Ar2hTybwfSvTTWDj6ZX5Z9KSlIi8onjyTmeORxz63H+4G1/kfFelrM7S/ED//ALITfhxY36alfB/yrkowXPFNrRx9TlQjg55JtxSP8aXLk/So24OS9NihJKFSlinjx5emF12T6U68eBrglhePApfKOK5LApeW4pKhNvipnTeR+njyp/0fVxbyrg4O3lI+lJy0/cy24j9hZdRn5JSiv/pPFclXJ0o0kJ8vTyfJSvyckm8pvGoFLefHgSdNQx+m5STyjnDS9PdH0vlafg5+rknhD+3PY4av4Ln4Kqnoqb9ylpOxWnLQ7fHHQpeZ8kcqTXuOXqKgjim/SvPRK9LiRxPGUi5tnl3mBZ10KWsoiN+x9KevI25wccJS12KeLtRsdr/0DaauEyuSyxfTDbZy+njj3HT/ANj+prLMLKMKF8HGYpScXO4HjSxB20OGnKRnb8HJpP8A2O/6HS6uxQk5PljriN3lmYt9Dlp5LlZHLjJlm5clNnvBow3P6aqfI8jlpTPZMO4KTLMoqMimrHnBkTlaFPaOpHLZS0YexUz3R7ontPR/xUv8llt46FCTo08dszEMVq5NwmP58FOaZajJnTOqMK0Y7Ka2i5ZcUhxKo3lmVhm7kzoUxoVN2fBTTsVodpiyhixgqcGdjLhbFbk8CRnpH28RzNQauCYMPB90QzKhIwtjzZjA9U0KNyaK6RSVSbLdUKE8foh3gwL2k+UL4FL4ipvBlHWB0KtirZiJLUjscSODWTqZFbK37i0Zz/s+rplropMpYQ92hW0PNyKHsc9Izs1sucfgtLIr7FLyfJnUFooxhr9PlGh/SZbgzMybwKkY0yZ46HjPsO0S0yoUJFPotzrQsvZhto+7A5ciiMsprBlrCHMpiihWljyZ/s9x2ts1+mWh2XI/qyUpNFr9oFUz8GzuhXMMpIy6a8mcT4MYO/yO3m8GjeGVRsy2LCKYoqJEvSllilzfQ82x0pfRbNOjDHOPg9kiG3SMKm+xVyeX0KPTvyU07X8mrPkabWPwa2uzN/CK48akd4kUxUiiNirvyXcv2KUuPcUThiwpkxtkQNJq/kyoc+TFySostvLYoimOZz7F9IUTlFxuT7UsE1heDlb79x9ilRKYp7/s2KZqBeniqj5uyocOeiHmzJiDK/8AOCllLtirjgz/AOsU8k5lnyvI7TMGUrWkVO9FSxvwKeTabqR1bfkV8oanSE1y5XOjWZHW0crW30YefcUJ6ex03TY46Y6hppui4ynpGU6jrQ4ScT5L5CblpNDbnJ8ew7Vm3Z1sttyi03XgtaS7Fc4+SnGR26Y28JyVM/kf0q0SuT2Xm2cbz/8AB0qh4kUNOJQpa0hx0fc200v2MrW4OL5eqOK4rbY3x5cWny4un/8ABKE5rrZC4vZ4H9P96KUNPQ548UlxfnZeXBy9Ma79zgmnSf8AsctuKxBHp43jf+hPi+TmsHPlz5N+l086UnPi/qvi/wB0j0qqcttEcm+WlcmUoa/6OUtJyv4L5Lkmk/bB9L6J9XGIJh0n2KeSpI4pNuip1o4ueTfpep2cm3ySTTqGTy5LilY//g6WK0cfHyP0ubcZI4rjxlJ99jnryL0rjj8bL6Ln6Uz1RNUcfpzLPef6RlcjnD/KXcHNcnqT6mvtfnQv+KT98FqIT6RM4RcjlryUm/g9vBDUnH6uUyU3pCxo4xG+z2RlXKyNLSb/AIKTVEqMN4fZUv0+6K5f+oVuE/cuHZTmfcy++hQk8eOx7cJ9HLf5Q1xTJlqI76Jl6H6YddMmd9CpuzFQXFv2KnI4XS7k0XLwh1xyO8r9HCYnWjGybcx5OTa0ngSxswhRcv8AT7otGf4M4k+CmnUn3P6mTiEkPIplRJmILqmaWDjbcNGNldow9+TStjcaKbyv0zmSe4FBc4JbzAtFvovvx+lPs3RUWV/s9kfAn9o5XR9zO7ZSMcf5Lbwe/sPobU62K9LwWuUtFN4P2JXqs+1FPjjyL6naHcfuU4hmIyikrZ7MvlEMdKXJLemW2v3Mq4Gk1/6CrslLRfZTNY9hR0RO4PdMecDtl8pHf/mQ5JrKPty/H6TLz4MrI709CzllE+4/q/kdoUORWmlImoMRbKi5LmyI78FSxQ1TX9jhdolbF3kcJKF0Unlsyv8AY/YWMGNlJ4/TP9DrlS9xy28GJH4KTTTNqjMmENx2OZwK3+D49ypv5HKHlGVhCjl56LSdj+qS06bF8CpGdG0WuzF0POmStj9j3FKaiR3xUKdixTHvHgd4+DOzxDWT9y2YnYk4yO3MEi9kUMxEMtNFJGeTyzLpwR6sGdlRiB115Lm5Z4sqHgUJpwW1k25FL17G9jwrPuSFb29lenA7i2fbiYoVfaPNo5Xlfo4S2actdjrQ8VB9s40yqs8i3r9hRydNGOz6uTufA4mhY5QKXNDmZmSG1QqVQYWEPyKOWhjt00d2V6nCZawRKHa2xztoccp2PBTr/otI4wtex92Tu/JjDHjD8GdiwU3NdDw4a8m9MW5+DlKbr2Iukv8AoaSWWyllotKIgxFvyY158n0vjy/NHLM0xKPB+EX6qXgmU4bMvJhpSvA65Jytjhre4JfqpNZ9z7uWSIfKE+zjE4Y5aVjhKkxTCz2ynyZtfuOM2cfVyVwenjwbl8eSf7Cjly+lNTYqykyphJeZHE6ehRy9Kkc8umKNPwb2ZxDFhSkVNnGVyiH1aWCk3kzOUP6m2pZnjU/wTiEmKePKnByzLyW+Vf6ZfJZM8rqhfUcX6eWOz6pWOzj6v8f/AOvK0cHxfLj6ctqCE+LtZno4qG6/sh8eVKBRNJrBy9UKYx7FcnbFM/x4HHHiv3GuXpUl85lLlo5erMrvoam/TxQ0+VNtd+4nKlyq/Jz5TCh91J/lfHi65L//AC8CpUnNjmJQ2l6lxSjGqH6XNtU5GnxeWOVKrs5r1NwyLp+5w+6Z6iCXwShpKL9xTy5OWm5arsUQs+Ry8JbZSSykJ26aOTS45TWzk5w4quh+pcrSVwcYW6szmfJylq58Fp78djp/xJyXLikn6doW7WYE1yvC2crSlPj0Ply9PJq+h/TyrsiGlE20cnK7s4trCeKJnkmne5Y5bp+Do9zkk1obiS3scwsaHH+zPRdS40Ok6SKSUGrH9PF23kfqawLy35L0ZWGslPlh7FauexQkOsz5JaVJH1J5Xgn0tTCE1LozGB/Vh9CiKS7L79xyY7f6P8GYqD5LiINqWO/5M7HuH/RrDNwKna7kUSXOBxLny/Bja2Sloc2W4pnK6j/RTzDHCXWzSyZmI8Ft0W3f7CjwfJibMneDM7NKaocageMoUt48FNZMRCZ91S/BvBCak2pg1vyPcyTUUOspHL6msseJFK5LIq6H8H1ef0wxx0KeUOjUZ7HLeGxw1UjeJTHnZ7ovlFGV/wCseFEItqvgqXSFV15MJl+pyn4Mu2U3ouMk+lr6Rw6MpyUm5XuXFjqLSocvcivryd37DpVBbdpeBx2bwPOT3SKWTWR0OZy/JnPuUoqOxw2f+Y5lSJyifLPp9L2Z2yZbpMrBR2Y0fJjsw6Xgcxvsz4HM72fbFM9mKbg+5VYqf7H4f7jlo1Ex+laZhYOpnsUqHI8/wd5LXFQ2O2t/pa1N2U5/BTMbY4nMmZqC3GfJlfwUlMG6Y4Rh60ZnApbdjt0zKolxUGiJTyRD/YUR/BhV0Nw6O5kdZlFzkpcdn5FfGJgqba8nwy21EEelJR3I7XX6XOzGVHZjKY6eOkYnMmIifA60y4yVcscyYK6RfYvgp9dmUpNj0dUP4P8Ak2YVMmIoag6yY+4sVbfRT4vI/ZGtjlIxMqBXy7FKSoedfwONlpZNXI8DmHgtdneWTM0PrI4j9y3Jl5geMowlRvCLbx7DiMexzfH08pSX/JdSNeqLj3OjStFChrZl99mErIcPPgdq2seyNuIOLSmIOMJP8j8JCqcOioUSXC0LOxylj36HSUT5FMYfTMvD7Lf8lXY2l0jlScIdcaZjRfH1CrS0L58imLj+S+hw4mDlD5KhYPqbpipQuL3JyjwxJXKMzN5KX2tlro/5Wl/0WpyjjMnH6nj2PphW/A4bcLWiOXFYazMyiEv6Lhykz/kphi9TdXoc8riKsft0zlDZ9MY9Wxw0/wB/I8inlxUz58C+lxZHp/5HKOLyVNrl37iwhRD/AGG24mHr5LWPnsbnjSaI9XGpP+PG+p2P1KcLvRLSarycX9VolclnqTlMuY18GG6fgvhOPI4pJIccpy9+DlDiWjlDVJDSU21nkvc4RNt/tBTjKSSghVl/tI7X79wS1/j5P01DiYHPLDXkfPly4tzwUwrIXCZ9PqiOn5Fx9PpzLvw2RxiJ7Q+XHjLabhr8HNcny4y0/eoMaSG409jTaedmWpnyNNpyl0xuFyhr+iHOujjD468lXcdjnt6kcNOPg/5P9xfTs4xypWP0tu+y/TTfnRfJW+hJPlbk5UohpCS9KteSE8JaYm/U4Xg4yvS0owVyc8pe2JJ95aYkm4XJeSZuX2XIkuT0tM4ppR+ZKSv3H/8A4pEv06Fm1PZlaXYu7HPgzUIi8ryL6ld9GW8fBa2hpNKGQ2+MT0L1PErscSqOUxoUOacCn01Itquxw3jpFtWcVyfLBz8Roa9ib66KiJ9inxiClrybte5a2KuVDlKp2ZI/syxVgyokVwPpwv4NyU/4IowQVAiux0bRFiWKZg205Kj+CKcMeMijx4N5OxWZyaeTYtTJhZ8lzoVPfkcNvA76H9X6eCv4NszUitVPg9kU5cjx+jpjxddGdG79jTgV4LTqDK0YR2Z0jKO3LZiIYoTqexSmsr+RelqyGsoxoevwOeSHjL6YvU9pGeiJf8H5LXGIKTIuiOTnCNO0VOGO3YrSN2oHSpFJMzn4E0opvBhDqx+I0OEhzHQsZO4jwOlho3n3EktnHJgrwP2P3/R0nHyezQ6KWZHV5HE5gzP4MrL8Frztmsi8p+StixcmXcj91+mGOk7QoKQxzHYo7a/Y1Y/CRoysswtitVI4bqDpGEZ0UslqJRuy1gUPPuZHeRwm4T8n5FSMPJ9ujcmDMl9jtYk0sCnyQqG+2WsGFS9xX2j8otykxQ9GGzvBH02Z6KnRibHOkVokybX6fP8Aoy1+5kUeHtHw2VMyy9GJsw8HZjTLUDtZRhJzJlQi52QzlC0O8L3K214IlSpOUQpH9Ty+h2ssU36W+ypitFqpgcJLAzD/AGNLeEOLLaeR+/8As7sUcnsqy24npfpFaFLdGUqZcddGOVF6rox0KbNdGXj/ALI8CvNbYpjvMiir9hY2NRNPaLUW9lPM+DCyPUv3My0ylBbqWP08Ur5aMKk9ihzg+nyQ+1o8yQuux0kdKCrFe2ak/IpW315GuLiUuzhUOWL6XgahUheq8IpU1+B3E+JLTz/R9PL1UU8r2PN/0VyopLJcU9Dm5f8AQnGPkqMPse/wOmrrY4awOlnwjj6uXGIT/f8AY4+nknDXKrJadNFpaFaUtzRx+lqUx/S6SXY/U4v+aPpeX7DlNS5wJJOLE42+xRdFTl/uOJmEKPHZ9KWntDlZT2zjbpNm9lN4YoSwy2nKRb/ZF7b85wNK4TeV8HJS7lbOU8drBx9M27khJ0krbPtWFxYk3xaTn/l7n+JJcnMwvwhpca+nkp/caXqS5cllNTcfIuPHm5bWfx0L6lnk7ryf5JfFvjCUS834Kfplrk3daG09Lx4FC9K5RpeBqlaMPqKFawJ+nk2/nYp69zkoeZHfFU0cs/yPc25llPj5OL01I1LifYSlY9j6XEnH1NPI0nyb+RRGkK3v4G/qpo4ri5cM3coTbdycnyTptdeTlHHj9MR+Tl6YVSznfjoU+SEmKX/5lclv4Gm05if5NiSi12P0uZexaxk5XtfA6WEU8JsudCt5YoTdN9ilN5OxQtMTbjBu5HPL7p/6Ic5SyauDjD/cytCxS6PdsTU1Dob8lKl7jhLQrayOYwy0lkf1JRGj5N4/RTgs2O2WnTQ1THbKqvYwLNipYZhuP2K012KlhlNIyrN0jCyZ0M25f6exsrDg3TMuDMGdfplj1o2v3HiB4lGXRTmzZhK/f9N02KtCrT8mW6MrByrfgxiEfS510X0Z0K8mdihotukM3srswlA5eV7Ci0Wpr3FUYMdGf0+DJfqz7mlK/Rf/AD9FKmoGqwX2ZNK0KWoSM/pT0OIMtz+l6Rh5HTO4g2Zej6t+xSViodzYj2gtYg+DDeTWCoZ8G3k2ZToVLLHlTGy6j4FYvq/sqc+5mhXsuKH1g1v9FLN59zDwL4MOiu1otb/TuYRguaZdGJkW7NKl+v2vPubwZOjKuRT2zDiGKde6MTgw8GcE+45eDVipYPkUN2TGzIpTcMfqevCPwj5f6fIr7Mr/AOFLJEleTbyZX6OXkfidn4OxRUJGZSoXhsqVDfTHN6LUQXxeR3GS0rNlNYFEG5oX1O6FDZuF8lowsfp+5cUYaiBSpoWMzgmnb7FCd+wpbYq8DjjtmsMyplFuS/VXZlI28zoSzCkWz6W3cdDqKFWC1mh0K5tlp0yEv3MJ3PRadLsUN0xefA4loUNN/kuMPyPH1QYbopxEjlbFDdi+pWy9NGWpZ7N7Pu40mZWuqFDahivaFS411JqJRU5HFz7lzkpPCL5eqe4Q8XZFsUrBumiWv7FCRC5ccS6ZPqungT4t4jQsuDbL4+q4zB9LSaSecnUNf2cpaWfA6QsP8jiLgw1T8ktxED9KV8lkSVW/ImqtJ0zl6n+EK3cdCzhdizomVo+12cYbcn0vfsYTz4HSpvs+12u5ONqoMLvYttwKfVEOMIdNQhw7QrThlck5MrAo8ijlls4uFErF6OK9Sz4QqjBxlJKGfSnp58DU7K47a0W9t6Pq5cXbfWh7x37HNcqwuvI4Sr3P/wBqRxS4vkm1d9wck+XJ4jc5P8t8+TrSrsa//Hxzctqf/UcX6Xl5g5JcmsbnoXqfLk003Sc9bOHrfFtcW/YX1emmkcJTVOa8Cl/tJHqmf9wK7UJ/0KOUYfuKG3smJlmWpRxhOWvc+m7grjKhGHpkcW6XsZ3GfgTl4bzBb/djaXHCON/z5JpZFD4uvA3K77E4dx8jh8aT+T6W8rQ6WVOGJxv2ONuU32VyeTjKSpihq2pJU2ymsODWl2ThOS01LjQo6HL1BDeJY5abkanlg3vyOEhtbnycVMTA21O+j49hVSRjcDtuWT9WzGieLuxfTGViRVtx+Ctk3gw8/pT6PlCztYHcSuhqW8GVQpToisMVddmHlol9M3kVP8CnBS2WuujLJia9zNnRsuC5teTKsScuxwuT9z5P2K7Qr6Fcy2fbiNnZ8DpVPksuzOXJaYrdo/Io9ynoV9DlukKyZMO0OnroqLns92VLO5Rsp79jCMdo1FjPJb7NOxy06NlpDhqpHnPsO24SXZvswa2V6XZi7Il7PuemNpv+ZE/TiSkqXubyKG2Lw1/ZjB+5ukaovyYey0YyK7g0P4FuyppGhRGEXN+x8oyrsdLJ2Y3JlWi0TLdMro6ImC350ZT0KZ0OZWC2ZSj9MMltqGOuzJ5k7rs/JSTeTOZMpQKng+WLOz4HcWbwfc9+Sr/Jd4KfF2ioeWWj/oxtmGL3MsUSvwOW0dx+uND+DI67KWUy+xQnSOsGOxUzWh08IyzH8mX+mNCvZnixW6HVR7jzjof01JhmNG8ow7nwZiv9GNjXSIbMItZP/MzuRQtyW25krtmP2NGcouKfuWm7NKjH9jt5NMdIVaFSlUKWsltfyKJ/kc+RZyvB3Zif2FfQ4XEx5FqzdScbVC3JpwTWy1NzmS06XgVYnyJ1rs+maE2u1geqY023Mjp3PXg+Da/A9juW0T5fREovtHGU8I1pCz/P6Yw0zKpEy5oqofuLWxtOMCmFkdcc+5/j+jk2+HPjLUeXoiEjDcC8seMJCj/Y7TtdCtY8Iud+Re70U3gldvB1kTVDpvIpjBhu0K4h/sZbxo+lslPM+ZEm080V6pktRCRxt68D9l5OVrPsPGyopspcuMJEKXn5PZPwcZtT7CjakaTXY/S1VWjzDXYs1A6kpM1SFKm1hkuMJ9FLvpDrSe/kUPldFJQoFK4zLyOOKuWXxeWuzlSx5E07cfJ9qypE4fGukL1cXM9Cm7ZSmkuxw+VtdISSU130JQnMwVxVNaPpbWTNew01K5PtexbWhSq5D3jZy9PLisrbJXKUlNN0fUlHKE3PH2J9Pqhp5OXLlx4L0pN7FameQ4Uy2u8iUcbSxL9jjyXF01y68CjjqLPtmV7eTEVGROGvp5Rkf08mklEQ5z7Ddukux4WJyOeWfgy7cipZONP/APYpMW4Q01ENs41DbZ9rhr/tn0uLZzcZS6fUn0p5ayfdhOMjfLll9It+m0cbnBS4pOfIocdZ6Z93KEz7vVXRyh8V+BtpS1Psby/B8Cmdj9KixYw17EKXDFDamRT0/JSeWS0lQ23lJddHJuXaeC1WMo3g4r1J0hZyn0YSocTbQ8P9h0v3E/A4gXqTxJSSpf6F9q/L6FHHlllJXJagdtTHRlbH9y+TWRw1+xCeB+3n9NjtfwVKpGVTM/2btjpZKTtMuP3ME5HSqB40ZWOpJbjAqE1Oi0mfjwfA6eEU8UO9s2KI2U0OPcWcD/Gjbocs0L6TLWTxQvkxNGUaVCysExFJG7kV6ffgdt17FNdD8fI7PlFIuajsVNH/ABsvi9FKMG7kuUZefYtGclzcChP+TxQl5MsUN9FThGO/I5bxOjbn2HTHXG3/AFB9ys95N2kUlhfpul7lNL9xfgVzDZOKFXgmXiB27PkfwOdrsn1K37CzV6FEaHatmaRSVLyU6haL2VLj4LHMIs0UolPsU0pg2o9ma/kX1JUmWnl9MhJMyOUnjwJ1TTFCy5JlO/bUHyOs/pXk+4vpFN60VyXQrij4g/8ApKnBhPRl59z3kyZ0ytFPHyZboeD5Q6FI/dYOoaN4fky8/pLRb1+irEoqsGVnpiUxBSiWWn+xPkUvXgVuy12Z/wDUKtHymaZdSYkytEw8FropRgVp30YiGi4qSn+KMNf+X6O4FVF6cGKFCgxn/R1N9mHlGP5MQLKglN34OpMZhilJGG5nwOm8ieZMtDpUjiuMO42KFtL+RTDwKujsUOTZboUtFLfk915FatzmSVQoS3uZ6Pcp9CuM9l9m7F9KlQU8qfYUJ2KJyZTVoVK31A5iJKUUWkx3tGXomcwcvq5Ok9mcePJCxHktRUdn3RaLnECipLapFdj1hk+oVdIhX+w4l4H2vgT4rK9zk5arv3F9UtP37KWkKbmWK3kmjUQay+mW8SOGspiahOeoI9VwhclD9LcUfU/2gV8lY5SG3xa/c5W0jWJ2J8XEnWSnFLAo5bg4vl2jgkqrDHUzHycpVw/EH3KKPpl33Gzk4zOmP6kpk+3llI+lJUUokv1Cvstpwn4JTfZGW3WypQsswhUoj2KfLbJcyseTMwcqHPLkm0hKMJH3K34RfJ14+B2v/ScklpocwreZYoamTHGMFVjQ4hTD/kUp2nscNZYpVKe17nL6knPkfpainUH3ZS76JU54jtt8n/Qk2sefcXp5ZhVpHOJ4u42S1hLzk5+lcXLTV+2DnbcpvHZ9T4uZVScblRH5sdceuxfSlNLPg4Q06kcpKIWJH9KcnJ/S5S01AlLSaWWKHGT/AIu42ZoeBR6XT0zCs5VF+Dl9KTt9nFtJSni5JSlV2KHCgaTV5OcJqUnsf1YhYMQmjDbZn0x5Kaw/EE2xepNNf+QpTU32UnMoWBRxTSn5PteuhfV34ISj8dDxCFM2OnkfRE/2b6PpcR4kcp5HdV0PMpEtccSJKej6V+42l5MYXlnKVlJmFgUxmBYSsvcGWrWjCpovlJunJcUmzu2YKekOzCwvJUfpfJ9jvaLqitJky+xYR8lqZSZvEDy5Zh7QoW3+mGOVDpDm9jhzA/pdMqcPyZVyZ2KlhC2oHNmCvTrAqeUawIcRhmYlQfP9mU/2MdmJkxo0XBNX8E+3gyLBn+jVtm3CP/M+BYtDmMH3LOxT/oldDqMCmEO8QOdsqRT6qXQqxDHCZaw0Uz4YrWC2hZqR3Uf7LWUKOT2ezQpUyl8GXldHsTWjKx7mVT9xQuzGWfkcLMCp7HSy30P2RlaY7gUxkcvKMpTeyn0ZxZnRaRl2Onlf9HVRszUDraL1BqUqHEuvCM9jrBl1ZSVx5JldGmP/AOFTgtM1dizLFaVFTscuFLLlRJ3kc3srXyZw/DFezPRnPwXxeTeEL5MLKHTwWhZdsdo+FoUeDPRXg+5DhrK8H4f6WlgvscJOJ/TEYHhZGk9n2v8Agv8A0ZeUxOqY/wA/ohRqjLwZLe2OKhIcbkct2mWzKFTyy4EdSo7OjGy0/wCRWKpktNFV+5l6L/2ZaKSH8fosaXRlPI+smVoWMn2vAq31I40zOF3BabhCMP8Agy/4K7Fbf/oE54P0uj7Us7TNmFMsykYw/D9hxym2v0yv2K6fg5fS8wcsOWnvoU9IypUdoxCopdnVyQoHbdopxLL5QZUKP3K76nY156gubrSOPiSJTr37OWLjtCw69jOUjWGSvPRlK2K5yv3Fb+TKyOljwTPn2EpFcstp0W+PRClUOFpLsUNuExfby+R1xux0KZt/0PIpTbak+2jk03ob/wCzgnyh8fU6bRUUZtN+BKTDn4E/p2S23DQ/pw2XOIwOIqF/Ar3PQ3K/kusof0vPsJRx2Jtt12YiUx7pZsqrX8pC+mKnscNJT7juCnDk07WaFjoh9LyVymWkZ7FIrijKwK3WMEuM+59PJPIqyjl9StsmVmCkke6GOnstOvZ9i9XJfEja5NxDG24n3RKynPWoFSVvFn3Z5LQqTi+zj6WsuD7XMfg4zySTU7R9Lhcf+znHFXDX7JnL6pfJJNJpYv8ABwXHk03KzPscnHGU125Gv/yLlL4zDiKOcceL+rjOHGDjy5/42vUm+L+lH01HF3ehQ+XHI49Nz5G4SjwNvk4lO48kN8mmoXiIPuWBPi8t6FL5Y8M5XtsWHliUaZbeWyuTtPZfLtk9t+TdtsUw4Wi4uCVylNPwfU3h9DnlEJjicrs5RMRPZHq47KnsbbacF1Y5TX7l1EDtPQvUpj/spTL8lJrDOMwoehfSofsKHNds40cYawvByh5aHLmWxxCtvMCXhoXprLwP6uUX2i4xWWXEsltRB7Dfp40oHSlt7Lo6tscqXDZiLM6HHKi28vwPKpdDlLKHEWOHk3hn3RRmBw25ZZfZrBXRaVwKGfnRbf7kpuh6gz+xbT/c0bPZjvBdaJlZky8GVv8AR08DzstmX2V3B8QU3Yo5LKFE5/TI7SyRFm0Rf8j1gcRH4M69z5LiJMujWRy1lC8SO9jpbOz3HjDFX7m8sf06GZpQY0jZkaS17miWOdHsvYtPRcKfkUN5M4kwtjhNUU2/2L6FbtFjtZNOGXRcZNsc9naaHXRbeGNNKZRaHadkVkzJXF2xUdyz49hz4Mdjp3/0aRlYNtsyb0Rk+6RXovoxGux4uTRoe6MNfuU+OHtD9PkudkexSWjDU0bUoTSmGj9hf/T4Mt2ZaPybodZMowi4RstKmYWzL2x+PktrI1k2s6NjijO4PlGHcGGyz2MmRw1fgdK6FcH3bkxtDpuhyv4FL0TTlouXa/TL/kzkdOVRo90a/RU3f6Zimfa8lp4YovWzHZTtG7HnJrZ8eTEYLiK/TGIHhDhNy2ck2jDeB/cYgX0wsDpdD1EjlbM3+CtryPwoFNbKXlCvkpfkw0eyFbLexvuhQk8DcxSOV3KfZbcqT9itMc8u530OnlMdZn+jCyYdlqbHF5Lim/6F9SKak+lS18mcyPWjlCoidGqgrJbiilE12WhYdM5Ura2VZhocWqY4Tz7ltfgx/wCk3ZU4Zfppe45nZyXFLelZ9zmWOJptjqPSO1leBYy0O25HC6RTTtwbmXsluoX+x6/cUvBS/suN+BQm5FGl7i9XHlyXGFTnR/ja48fpSa3t+w449ee2YuyZWXolLY26pZOLfGGp/ofan4HavwU04VDa3MD+lXHfQvMjt4Y2ngczZymbcdmXMiqJZy+5zHRlMy8/ktukjsedjrD/AIOP0xEjvBnk5k9vcy6g3lDfp0khRxUY/ocN3/8AT6YcuckSqXkXpXJx7eRLlxmeX5PufjR91T4EnmEKXyVx7ZE2koibjwcvS1xucZP8fDim6duqRHJulPHWTiuPFT9SpusHLgksfVDn2J4vjzhtO3/72OK5ceVtLD8jS4vjFLWlJw+1QtX7ycF6Un6W2pS6OMt29f8AsCXHjNpbZaaUPpFtKV/omOUNrS+RTtLx7nKI+R+lYZyj2HSwinmDJbhI+rw+zSvoX/uzkmn+RpfyxX3opLHuP1cv4OLadtHCKvyRCiGfVyVT5KTtmW5KW32UnZSmEcp4qDGC4HC5Lf8AIr4/wc/oSpErixudId5c9meUT7DmcMwt+R/blFuZa6RLl0IVfwZwy4VQYaiFgzJDmkxWhzClm1jbHi/gVPKKSXsfa7k0JSsJYRbQ4MR+57NGzMYRmZgytmXC+SvH6Z0Ulk2y42OnroUrUlN0zK0VOzEQi6MCzseFEC9l0ZdQKlfyfLZsxBofclQ4kwmbtGZojpm8of8A37nj4MLB8MyzY5NxJ9ztybVMf3P9MpGGoN0zDMRorvvIq2YWzKMFtU0U9mZN/wAGHg0YnIqzJdTPg26QoiWxTuCm9mUsjl5rZvIpa2bVm4KT2VOWbKkXgsfhFp5M4g0OJMyar3MxfUFb8DpFNJqDuGPuhY6MRgdN46M8XXsZdSbFjIreyHJEaHnDLTTZXQ1LwxTxSyYf8ntBiYLTlNipFJ4FemKIyj4QrTloqGeUWmqfkczBjyZdQZ/otaNY8mTPZ3Y/ybs9oM6MYHDmPcxv3GkdjiLN2/0pQVNCqaKcU9FNXPZs0fAouR5yx2sFuClkXmV0L2M79jD/AEyv3MxT6MMc0Ox1pFVTPYUvLPZI1T9y3sX1JU+kYeh42YcWYX8lSh0kcPTy5P1PkuzBF4Qs0KuTji1hCxlDxj9MxRbdi6KaL4qXA4nRjlkVJYHM010fVFaHcSkK2rbG5H6lciebISFCuezk5V+5u0iq/BylPLXZtVH6OeIs22ZShtG+jd2U69zM2L56IUY9ill+UZeDKpsXt4H9MYGksm3Z9v8AJt4FMa8mbS9z5HnQ6T30XN+xszlJHFPj08diqcI4xpj9UOmZWGJTpbKTp9lNqPgvSZpyvKMDTeRw/VgUp/mRSuhpNrByVuEmrSFb45ffRxn03MZ9iuXK0Jt8VCXgh8Zl9pmsew8KBtr1SV4WyuxSkp9Wl4OovobhpJ+44SyOm6noX0yWlTZhuk+i5Uit6LjC8D9Tf1WRPQohQiG39UvTLav+i17n25UbZc7RUC+l9HGY/Y+lf+wKE1YnvVHF1Oa0ckkrvI70z7lh6HWOi/SoflH5XY/S03M52Uk5b3HSKXGIXRcOHKVnGf8AHht1ZnrX5OKVeFZwT4pV7nJxypT+5LXFelPxof0ttrtC+qNqKnsq6b0jiuT5cVLatuWcfSnxba3MjpbH9XG57QvS0vqEn9PpTeS06nQ5SdHGHxcJ/Bl5F0vgdb8ler9zj9LXxIoeoFWHJrBo4tOclN46ycfVydr8ifFx8nscl6XdnG3xlvsri8t6R/y60iPSPFe4nboldlYoWcFpKCG4lspzgX20zily14I9W2OGvkSjpfpMtM/5UmV5Pqmihyu3lnGhxVf6PunBKapnVPsy1S0L3Rl58FNuI8GdIUPodN4RlT8irkoaONOkzDKNLPgVrDXRlNs92RHk1cmWbZlyp8CpVBmLNmYo1nyV0hViUXaocNOkf9exvZcGP5FgWMIU8cszoyjeRUxXOPBtQylEwYZjZ0Xsw3aMG8j8UKU/2KX9GNIXsL5NGFRcqmjLiJLsUI+B/JSZT2Wjef0vYreitNM12RKozkysxspKRexhrBmKgtkpPHZhUY2zDtMi8lQ4+Cy+hS+j5IhZ9xGhU3o/+lSOSkmj3gvtj1UjmLUnRq/Bb2hU5cmHRhYYq2yl0OkpRnZ3ZF6/oUeC03gUNKmMW7Y80pF9SxJ9yElyzBl4Pdns/wBMvHuZNqJFkV6F9Tyh5cpj+rRjMm6SQ9Gq9z7o/cp9dGVS/RXpCSfYr2KJ70ZeC+0cc4HixRB/5H5FbyazIrWH2Yi/cpoVO7Qphmse4s/sK4rop99i8GIHKivBqpRpOZF8ip5KiGjAvKE/Jp2VFt6M5SFTuDOz3QszJa5WkxCFCdsVJCyWseRV2W1TFhRAsYIXXuKlaFh3Jot76HnIofEltu0KX/JqY/2fchxChIUp6P8AzONyo/2ZTw9iU8sr9FDTlR+woW0W3cC/+HH/AOHdGOSaaPq4tJp7ke79jVueh0nXsJYihxPyKEsMxtiv8lTodt2U8IiWi4qF7GeTtCfmxTLhJihtNqbQvpStopu/BV37CjqMmcv3KhzBiKZXJ0NLSaF7jibSwL7qQpf8Cbu2Z5MvSWBJNIVToXq7XQoadI1ApUOxYSUDiVjRDwkvIm2rr9xRySr/ALOXqcSuiIWUL0vX/wAFDVMzxLfLQvT6ZvTFKqT6ZU8ZKehvi+9CwoTZTizGUxemVfuNJVXZUKhVDOUNZ9jWVJtUx/S8Ch69jKmR08J7FKdKNC6+RUWm8mt9oU8k3Qn6tPz0K1ddihvPR9XKKfktJWtFtzDVe0mfP+zjLTl+KFSWf+iVxlf/AAUPjj2Iq4Pp9M/yR6ml9v8AsmGo/wDqIUYT24o5uErcpKe8HL1Jf/tgtv5OT+m/A2+PJy01EP8A8zioVo4tUk0VSZD9KrpsSi2k8R7ihL8Cc4+OmLlya8k8XESfV6etDj39xxCn38GHMCpqR/DPpafwKj7Vj3IjLRXJLDFPaHbU10VOCH6lgVJR7ClK6H5/YWJiej7YhJ/yOUpl4NVCNfaK5ol8dtYF/oiIitGVsv1Ze59i21HuU5pLoeFLYoenPkeF+xmY8GRf/TlbWuy2vODH8DmcIfph2OZdDlK52vA7bod9JEtb8Eeni/8AyNUjjHb+Rl8ofwaiJMqoK2P6aFQ6WDSscQhNwaLFe/Yahb86OsCuYMbRvAqF1ZUoXkyzStimGUV0KOj8FKcjpFzUdFHz+mByK+JvJSWJMq0LLt/phzDFZg9yrycolT8GFF9lJZbNbMClI2seBxJRl1f8nHNwfkWcPo6pi9UW0f8AJQYTtDp9iSf8F1nRjFZktp5KaMN/uVG3tGsjovtCvEjm6KmoQ/V/BTdtG6MRLNsslJux08McNuEx4dibTdlYgWcM/wCWULGGP6j2T3J8/onMiwZX7irCM9P8DhrJDFeoPf5MPZgqMGOQtldDiKRxvi590b/YmVhjVZ9yxtvDK68GVSHKlVixS3kVPRvCH/snwUxOTWZLmJX6ZRhmDElvSF+cjnlAr37DdIdZg/foz/7JpU/JV/sb/kmixOnX6NwhSipFUWYhNImdwOXELqS+0Om6QnLKWj4YrkbqoGpWyl0ayOmpcDPukqdM6yZ/TDetmE8mZF/9MtDaRXkj1as1oqcFt5N9j8NFnyjeIwYawJMpNYH7oWf4NuGPP5JlGFleBx5R3Fjn+C4r3MChsw8MXqi2xX0bdCTb0TcX4Nq35FTybHDTOMyKzMzPYvkcd+xmLFTz7jxhihRQ43Hkd3Rh2u+z7djT68eByuTmS2i1NQPLsUu4kyyYSU9exMMl7MJKDCVT2VH8CqIXkXqbePBl68HGHESPETPsSnr3F93GZZlHcm3PsUl/J9rluC/Vt9EzENdjmsjhzjsXlJFRMfgTnis6OMp59zjD9OTjh2mKW3k5fTlrcCu/kTqkzj5tCc5r2KdrwPPK4/YcvtlemaM7Q1DVeB5NKBteDlKawclCVePA7z4Zq50OPTZUXKF9MNs4pKbXgdqUl2Sp5RHkzNe5vCP+WyuWn8kxxcl9JmXlkTa+RXFQL6droUJ1KdyZdNmLaQlHF578s+pTLaoUTvUeSOLWW7nwxxymW3gl3T8HG05TZy9SbcrL+EeqW1x5PzsuN7g5tcJhpLL0Nv0pNOKycralil5a/sVpWux1GPI/pVPwfC8mW029ihP/ANYoTV9GeMw11o6tDlK/HuU0/wBxQmqY7z8HwjDx7jp6LkwsIbkaup2W9PYvTxUpe/ZaWWT6nSSuzlyhZTG0mtK/CG6p+WKKz5MK35HDS/Y+14Zpf9FdmdjbX/rFKeWRVscJTEDltqxUlHuxQ/tljhtyxXmTlQn9LUsn1O2tFJ9DmbTeT6hKFPq8ix+4pSZma/6MPL8ihPXk9yfHgwsXn3OKluHFCxaeoLS+p9mDE3Is6ZqjsdKYgyhxyeDS0PtHP0tRcZM4n9LbuDPXkbh59zCMdHQsuSYZvC6/T4Y6opOkOagteDaoUNr9OzeH0NyzA5ikhYyyz4R9TWTC0P2Z8SUi1sSU0aTo3gx0bNjr9hSnUH58FrTM79hYpoynXkVvJlixn3FaUPwYZljpDhPEFKSGtCqaQoaL1BlvHR4o0ZTz4Lc2yotsfyj6n52XOT7Vj9HHF3X6RKHM6NWj3scJWbMPAr0z7sjvLbJU4FlZFnBTeB4sV4ZmL9j4HcGHkl8V/I86NKEUuL/YmP2F4TN58imMfo8aFcz7lZZU5EKIYov8kx35OUeT4Ldm8Fx1ol+SE5nspdrsbc5PteDUlQtnwO0Z2P6kKJpnwimqFHXsZY72ZHEFdMpxg0K3RvZu2WtH2p5Pu2O3SeBW3CjPyKWs+wvtVMWB2tmFZ2UUn+m8GHlihJUtCf8A+0n/ANHh/MFf7HjKMoxlmGj2gxH7lN5MqCt/J1JlSjOTTmz5MJWL5HlkynSL0OtCtswoVi9kcr4q0bR9LdyZTiSSoyaetGMlVopqc9FJ/uOeQt/sfd2fdoxF+5hRCHS/kUts+nlM08EuMlpL8DvRL8sUvbRcuPJiJK45T8F1RjjjuBl8dl9r+C0lMeROf5KWaFLdr3LatshpX7i3gy9Fxci+Rn2jbk+WONJF1aHe5/kuMLJxiE0XP7HymU0jdFRv9MUpKU0PeP3I4tstO0fSotEpPZdU115MbHrD7HcSvYyuMoVOiaRUqWcsOy0nECrU18FPlcLRuD/jQrSl+4vqwxWK1cnKZtFLinZ9U4WhfUonwf5E+Uw1xTbno5rly+U0/KHDe2cVc2uxVm9MdRXgw7b0Y22Oe2yLpijt9FrZE5SPqazYlMP8EtTa/Yp8nSMxEeTYuM4a/s+1vCOTuX4EnycR6seT7m3ybKTdew2+Tm9xqDttLc5F6m02vV3k4rjyltpYjRzlN0tQL1J8pc66oT9W/YpK32XdTsiOXevBrrsVt17n1JaPp4pQ0L0xEoqHY4e4K5b8lLiqMxQ45JR4LatIxp9oxlMcdIc6gcKxqhtfVQ4jrLNKhO/3KT/Mjcem12zj5kTjYsuD7ULKyS1v3gydX+DI4WWvAoSVCcJdFDzscR+43CVryOpscOMlyK+jOV5G0stIeKRUlsdqGbufJcVHnsdzZXgvsmrOr9h3h+w7acIi8oxmSoZqy1yd+x7ozkw6g1a/RTQo8DiNGJyZwi06N2POBtsxhscRRp5HSqB//B1otOxx2mYsUUYMzk1YrpmootrQpnLFTZU4RvZ1EGeKOpkuzK0V+kNIwKX2VBU4He1/o6j/AGawzOCoKfZ9RcrBtFNvKLWx0fLOX0vRhseDKvwZdl1Ry5TxcpLDP/orwZ8DfsfLPuSyaWT4gpOxGNGWPFGRS+SOogXTFSWxGcqTMWy/A5js0O1kp4ZgxorXyNLlkcx+4qbKcfkxQ/CFQ8fyPz7DhxE/6MwxZf8ARmdbN4ej/jMmy5wLGEOtmbPhFcngv/2S5w/A5SIaZtYMdGcpmGZ0YaMaKcZMtCnz5HNkCtjmf2Ho4+//AGbLXXkyy4yW4pCH9Jh4Rp76/R1GSy/9jl3Y5nRlmUqRq2bNUOWzTswZdmtmcGIoeXQoaw/Ivc+1KZHK/oWNG+/0uVXuO5gUuDEWYZbQvqbHmmXOCmv5N2O3k1lChSZhHyZHD3G10dbMpUUlU+TCQ2l/Y3fLQpS2Uno/A70fTApe2h52PxH6OqZhbHL2ZdwiSn0TP9DpUi6gUqYFPS2OXmDKHHJlyfIrix4RcGU6Ix+xmLQn9XH8CwnTFE2mK7bZ8e5hZfkcxTHbKWWVGB2lT8Dt9rA4qDez7kogcJSPDn3Qs4Z+3R+52T9WBYwcobH9rqDmnyeFlott3kTUvHgX/wDkkSm6vBpx8C+pppexlYHEZ9hykjuWf8hy+Lc+DlSs+3ktjSTpjXpf5NlcUokU1RcvPgUKKfZqI8scVFHP/wDIm3yfHlXKffZ/jfG0uTfJRG5UipMUMpzgd8ZXp7PqcfsS1xVPQnyja6OXXJe44TeO6KikO8Jl1PIlyoU9DbbeTCVJdnGE+x9L/wCH1Nv4IrlYqaUeSWlE9ISdfsfaseB+nk6S1EnNejioXGf3GoSrs+lRD7Zza48k4h4F6oUt5Kc94Gpw7OSSVpKzkmlac/yNOGoG/SnKnAomn0O3TgWJqRKOVDidmcoUekuUoNDyKmPVFtMWXKHcTWBS8LscNOp2Zs4w4mf6FDarwNep/wAiwnJ3kw1bFDyvYc3Y6+1H+zlLiZM5fkUTg39JnaKlpkQu+xYde41KFFYeBW1DT9h/aokUt4kcJY9ziqhjUNKPcanjryUoldCtqE/7FUWYWV/A7aVDh8XLZ0p9zRvRSaiB+xE5HKMPC8HuvY9mjMZH4SKebFRnUmRwOPJbMrQrRmaKMr9FMFo0XJSM6Gk7gaUZXgxodNGErHSx+jg6z5HDYpamRzCwi4Hg2V6j/opNwREDiXCRyhzCY8aFges/oo9NG3nyQ1cr+yoavY4cUxzNJCjBaL6PwW3cFzo2UuLZTkayWJ9QbUJDvKRlxCMbPiTI16p10OfcdbjowjKx5MJwzOv0we79xxPRUG3XuP3LbVmv3HSte3kyrgyWtocrEGy/DJzMdG8GFlGTDyjQ7WUWLN2jWjLymPH8EOMe46WEv3K68mVlGeTlSKEs+58lxTLjvKLk+laHa0V5LXRup8GMr3MsXuO5gvaguWO9Gt+TGh4syio0KtLBplvSNsdRflmUrJq5Hn9HLyyvKLeSLyPGOzGy7MrJT/kzmTThR2dGVY7VNFeB/BiJJcxBRhjrjj2HmzHG56FnDEpmmLP6X4Hu2ayX17G6gcTSMO0ZSyWoEUYW0Yz8lMix4+low4FM49hZdePJkhtlvaLWGbszp9Fzr9zSH9tI2K1/strSL8LQ1X7Mzsds+C3/AALOy06Y49VihTcFqOjGR0plDlNUjG/cWe/5FPY6WPI7eUZSiD99Fp7FlWOoz5Hm00PQ95HMaKel5I8i+fBjoi3sanXuX2YZlZHU/sPefBa0KngynQvV48i9Lg+p4FHJddmUK0y40UryY4/yU/TMrGS08ipXHk5/bXJ8cpyPp3mTlL5NxAphUeISN8oFCXZEZY4f2paYpl2yJThsxBlvZFVRcClYl9n/AB0jKozxeByldfwKm6Q6SiCxS3tipQyU+TpITjK/7OX3G7TNP5PEvwPLv8F6b0cvU33kj1K57MxC8nKITYo4w0myGkpS8jtu14LhQvcaT29Cbh23iBp8W6SPtbx0UuVpClbfLEnyOGpz/I1xXG0sQcYXLlh2ktlrl9MtRHUs5cMSnJyVubOSfJpJ+plN/V4QvUmrXJ3IpSUN9PyYcYzI7WUcmuUTOpHauXkdbsc9sdNb0fU0paOUOTHYvparwyFUJkS3gvlEolq2UpISVItNZFjY7Tl/geEaoctNP/Y4jD6ImIY4nlP/AEUhrFH2vZHY/Snn30R7GjPU0aycu4ZD2+zlUS57NaIho+6MeBVyafwK5iP4H9S1JXGvYe1a2XyTlL4FeX4LSzBjaHWPgc7Mty3/AAK8OT8j9X9itxRj/wBgstznwYWGZ8+4ogVPCN/yVOYFKHbwjMmUxRxwn5MctjxgtYLnDMdm8G6b2W8+xVGFYpfQpf8AYpaf6WniC+xUxQL6eSwYodxg+5xjElxkpbLnLIWzJbcwL3NfmSmvxBaRvJrApghvEGcNDoUJU+x7Lexwk8+RJtomXV9ENZ+RKxW1fhimFKK3fZbHZn+jeTswlZhDlJlpYR+UNONi9jGxQj7nbZSFrPgRfGKM9H3P+B/JGSk2aPY7pjpjrC9hZHL1/oyui10KsGXsWMHvCNmmW5PtLepHe0zERJMLA59zS0V3JdUkWnYp8GuiuSVjhK1o2yryi5yQ21MmuxUtErpGNLQ3bSTWhSkOtFuNdHRadNjvaMSYXQ1/2f8ARsiuhW9FvyVGhynUilupHLX7keDDF4RUODLqC4xJcdme+yZ7Y/ByXuZx7oUPYl4FWmOXyRlKCq/LPn2FuEKoZWjMzBiIgyOHpl/2WK2hWtmFaZ8s3tEKKkdLBlC+pqE8szGDbo1hGIKhjot6FfY00sPaHL6RafQol5XR7WbpIri8PsyrR9KbP+KhGVA4jZhrKHCmGexgWrHTVsSnlcx42abvyLH7nLDszL/B+SmxpcllH4KfZ7JnUSKYeRtpY8F3fsUlSK4pDTUzdC3B7t+SnB9zRmIhkSlXgS7kUzTEpa/CLY7ky1RvA7/linsuDM46RVZH6kuVT1Iqbhde5ioZnXREO4HnB9SOMdG+9iy7Rnlf/wAPyuxzyeCIluMM/wCz/i8itKThLvkkoxqBennUohQkKexXLt9Dw5SNZLScNHKE8j9UzLMu2uzHGk3kSlYn2MtT8GXUm7bKaSleRqNjj1XJC0fk3KbM5RC9NQYUFotLWoIiHB9MKDLv3LcQl2z6uSpoUuvg6lN5TPa+jCbZfK3Wfg4y0ol/ufbEr/RUJmNoV9yfbKX7ERlew62s0P0xcJ3HQlyTdI/438Dt4T0o7Pqcy08xA0lxTT4rSkSd/wDL/ZySfHUxfZyjguO7l9/uNVOP5IbeURVOBtp20tn0rLbonk+NVaOU8XTjTL0/PuV3ByfJ8nPJu5F6eUuNsppV2zhHF7mDb0KlbOMrKY70hfUiVt62ac/BxtWylro+Z2fa25L4voaUOFBnSMu5L5TCHeX7FqP3NuGLWHkvS8IwvwJNJV7Fqik3RSdDaXGkhy4o45UNn/GvcUck5MuPgy1S7FHJ2beVguXQofHehwpmezLdsw8n/G/cz+w5T60z7ezGmX4FS0fH/QpWm+xWlcHUQhV12JW2vgcp5R2URHXZhGH0ZPjuS0sLZSmGtobXg9h0nroneT2M9i0fJ/8ATeDpuClyddGVkuR07gV9FJCpGdsUM26WxeG9GBwtrQp9zL/gwtmv4MRkddeTW2KOx7s2sIdDvZylf2Wv5ZKb/Yytm2dUzDwy1mevBakzAq2hRD0W07KU66FKk+7ryZY/gVdDpuWvgdTnwcfHuWtCxj3J9MS10xYLcxJjfsV0zr9zLKbcT0RExJyzjwZwLBa2OnUDOOKLqjEn2rZ9PJYN9GVaFnY/nwOFP7CpYNjqYft2eEOVFHWf09oMuP0U6PZkVUDtUkPOmIdpY0ilxWWPungVN48Fqa8IzhkxdGlMivECpYMt2z4HcWyuXZlIVvCHRMuzDyP6p/A/qfZs44cmCJ0XeGXDFWzKmjCsVZXg3lGUj3cipimaSL8ChrLyXH8nHL9jOEYeC4/BUfgebXg0V0iI44RTLfqsp15ob/8AdCpYZkwsCtfwZaEXpeTGWQ7pClJFypky3DMYgWikqYvI4bwU8SOGY7HqZ8j+7TFawP6uh0tE1EThoyoZbTtG6bIbWngb7+C/S8EuUnYvyLFyXEyYWS0nCGTM/sat/wBDhIpvRlaL00hROEL/AOimNbH9OYF7IvbRT2ROBQ+/9jmcCcKxSv4M96PheRW2O+3ozkw3BiBQfdhmtdnubLel0K1l/o4WmhQ2rHR7T8ipX5KpUQ42hWWbf7lPsxj5LUQujGRqGjj4RPpejqUZWOh/S3UFpK3/AEZSoUdvsf1PK7MJ2/BazP8ARxh8nd0hJJkNclcWL1TS8I+WOOLs5JpZkwpsqLQ77M9eRW7LSr2HC4u2Wk7H92EY0Z9WP9Dlu2+i4yakx4LmmUlxyKIpFRlktrs3TKTz0iknLZXpmX2X2uzv5HUwkQ7adjqMPDPueY2tCc0l2KZmTlK/cUcnjwOVEscxD/8Ahy48lTdv2YpTqFU/OhJzfv0cofK4HPJfycqVuqZxjlx14k+qYj8iXq6N58Dl7empG02p46nRUJNS/wBjl6nOPizlTYvS6S9yPUtZ/c44pxhn2uIFCeGVdsxp+Tj9uSk5lMcLDQ4fTGmlnqSfCE4duz/i6WTj8mHlj+lYMThHGU6bHEZFh/gR1Jv+D2k+538Dqa6Ih/yTWlslNaJpYMt1A30zjSwO9Hsfap9x0r9mLNNirVif3Y7oTb68GXbHC2hKNmq+IOMrjH4KXbG3K2U9Ci4aM7FFQ2U04jwKej3FTVmeLFamEK9icK0Ux0Zz8dmdChrJbZTc/g9oN4MPZbRky6E3DF8eTCWBwtnVo9x50Ulb8kQaRfq7FSpDicorkswawY7MeD6VpGXgvoWcsv3HUWO9GcQPNozslerMCmRNN5fRxbU23/I3CsmsIdaZkt/0bfyZQ/gnFnsTLeTeC0V2OkTcJD+mLML+TxLMK0beDFNkKdrZiMCvIrzKKPf5FNlNGrK7Q8Mw9Hcmehx0/wBFHqVmEr7L69h09GHopFf7MuhWjKmDM2e7FT6FPaLbdGFRkvZ8irf9HcD8IWKFHZ/5FzJUY/8AhiJRh/sMpq/gwYgU3kw8mf6MjvRoWNDicsd2y4stPHuL3/TClJCT5QdZMrB4bZaTy9iyyrodzk/Jup8HK8qNI/I5TVmp/A4TyiY0K3tDqcCv+jLNxRnSM8Vhig8EzsuP5KbJT0Sm1ci8ItsWC3oSpy11RjIvYp7RgcvkfbEIzoX1bHR8MdPKFbeRT0yksCwqLm2WfJ9z34LcSzLyKk8C+Sqow8excYRnDF5FaMq37H2u4NJ/kxtH2xS/gtr+C4KezbQrRhYZSfLBU6/0YaHnM5OP1PIvCH9MX7jbVwxuWey/s/5aHD46ZijqBy04QvqSt/0Sqlya/I3LUjalU/JfJYZS2/JnDRsm5Y/IsoV7nQsOfgVdCiNfyU8opyU9FzbfkcNNKRVtGsI4rk1CS5OKmyPU4nqTl7mNDtZZ/wCY5TWOhtJ4WxusybWS2oSfgUzUoz/BhKkKVD/+H1J4ZN56L/4x0fbxWzLShjh5clyq9ik7fuZm2y3pmWpgUNqGhfdTXXkT9XBymsRuTjsWHTFXLfkdZY3PKhR5MqbeEO4v2K3OzCMeDM0h2+xzpn3JUWnlaRxbUzMleVki3S7OMcVJL5O34JfqpmVS/scVSOUYnyZar3PuahtdELjri3NHFclxbeYPpUQp0P6lhj+pK2cbajix/TEf/RKOThL5E+Sctt6F9T/ArTwyfTcpf0RSkhTcja4tYHC9UvyKWz7VbRhMcP8AkxshcdDp3IqUHho1fx0b30cWmkm2/wCEUv8A0HGeLpoxHqS/oxBhq+hfI7zCFbdmP7Pwe6Q4c7G5HLVSOW8eBSkv3Kehiji8GEpjot8VL8sqVRodppoyrbHE5R+SuI7m3qC1oh9o/YST17n2vJvA745Qoi0O+hYxPYvqdNHL6so0dwO4uD9x5weyZPcChIef4NYM77ItyLcI+GfIqWStCvbZeh/BuYf9H4MzMFpfsyUzH8lLCNCuLSMK0OH4HLmjM/uZHQvHwaQoQpqUUYmB+6GKomWL9L4qmOy3ktLol2fakSVyeD8l9stwKy06KZvRlCoqMseBWO3bkTaTlmeKMPBrPubZae2KPPkVoz/AltT4KWD5gztlPaFDeRQoyYgci+lQmXqCpdD/ACU0qLaOMrMiicag+p6gps2ok+P0cJGHsdoeT8nVmWa35NPPY6yyato/5KSbUfp7sucsUTS/TCwKVA1bihYwZZdQzLcMVft+ihj9yz3N2d0KxtPlk/JljF9USzCWxYHuZHKUCq2fJyl9v9Hv9/0pvsuaHWi7r9M5TInNjtsu7/T4Zoxhjlpz8Dp1Bl7NfVJhGR3P7fo6ikVByXp6iz5ZicipZMOvgrsqRSm4a8lemmzGmKst+TWR/baZhCWTeti81lGTD6PMNjmYHWWU2pkt8ma2KlCRV/8AYrRnJaWTejKUEfTYpyl7m0ZeGZjJZkv0uWbhQLL/AGIc9CltpITbSZiaZOh+rj0d2coS0U3/AAP2NGezjKSWReqnaFTZK6RaRTi0LC/YqqKbKexWv5O4clpKmOlb6PtawbouLbKlWW4M9Dpb79j7nswjvWZPz4OmdmC7NuLK6fYrm34MPJiKL45jodOs6FGbJukTaiPJhKGhpX+CHGGKKls4zOJOM8Wpb8injEyTdMf2qEzPGZfkpqyXCmxXSOMcUpvYpqYJ5JxKWUKeM0sFp5PP85HPLcGWdj9L37HGuzEJMaLkapaLn+B7Ep17EpZlFNqUjMaNEtcuTuaPuVR5HMSm/J9vQsTBmmvc+3D/AJRSbcvxA1x58rXuK2a/8zKUjafKC23SRjc+w0odTpQXPJzHRMj+rD8FQrfWznPHlXLyoJfTH16R+3/QrSwx5L43J8+Dl5UCn04I8ov1GXszstcv5H9WEZ/Io45F6fVF9l4gzmh+45SUyKW3hnKFOR1t7HlRBUPLFSKTyhVl9+TDWCMTK6EvB9K8H28tltZY4h7HrRnDItjm4FU7G2lIpl48luaJ9/A+iU6UExxwj7nSRtkoxF9+59TVyL3LezVM1FLo3kcqZJLU0v8AQ8KGjVOTWhX30W0Y2YVjpMeKRb7Z2oWx1oryKKrydyKNP3Pd+xjloWJmRyzlEZML/wCm6K8Hux+3gw3MjlsedFtJQLOipOqX6ZkVmdnuZeW8CpK0KUtjmdDtZfZy2k15yaX6O3Xwfc3s7PkxagwxzGT7VsdFXX4HKqTCZl6M7Yp/2beCWrTHUDnk3ku0U3cozr2K0zexQlstTKQ4WWtGNGsn/LA6Zh38GDEo/Bf9DhFOJY7awYjB9yJZyt4PYnp+5hEwux5Rqi2K9kqVhn1LT6HXkp4HeX+mcroy1gXybwzOaHh4G5UsxFsd4kXqjejeTOfgcTleD4LaU10YPhmPAq2Sm8J9HukK1Q59OSlEDodxg1kprfgc2W9H5MNW+x7HPg/BhzY5jCR9yFE6NaHeYM5vJkujOzMWZetFtsuHgt/wh3MtPI84Mv8ABd1BfguWkjX8GF+S4HW0eZJiTOGWlcwYdzowlRT0VR2XNMy9dn2vKKSwzEHKF/eSlr2Lb0O4x4L6Zfk7mujCr3Phjp02N5prs+25fwKj3MqzCufEFqJQ/qx8CvtexfIUdI7UH3Pep6JnBmbFbhJi1fkuce36YdIpp4Fn8kRGTC/MDSvArJd5F6rpiyl+R1oVvEFLbFh0/AstpRsd4aMvRcOJ7MKVAsr8FPTG6dpFXN5H6Vyodr9xwstCxvsdcbgy2OUrSMP+DLUCqcjpdFrx7lw8Y/Ir5OPkxhj3P6KxVobjF4MxCHHFZLnrsUOLNWvc3gxuDzTL6ZppizkdqvA8oX0q2iUll9D+rF1scxp60x1EfJnvsvpozkTqVDOTbiBy8fIpck1ymDE/uONFqKMwP2MeClt9Czh9irRnDYrTyVxi/cV5LfRDcQl0hxNR57Jl/wDoF9NSsDnk3gpN2vJV6FXFtKBptK2P1cUqfY6dQhvz+BTHFSW9vl/Bx9SdPwcZTmGk8wK+KtRlHG/bBfKOoU/g4y+S9SfRMPWILlxCPp48ab4ivilZuISykVuGJXhkRxprcDhu/YtNSxQuWv8ARyp4ONOFJlK+iY46LUtyNQNQrjyRD2U0rONZb/o1j2HKeX0RBDu2OE8F8WqPwP6ZsymYkv1ZKj9z6pWNwOlUd+S09jqBpeNjzAqMf+Rp4FEaRipHS/8ASKI2PNtCpuR2/kU9yfT6kOHFs90xJw5KT/g0okzvsfkw1o+UP6WojyLRpyjMWPIr/wCxRKkyW9smJSHI6mEzrBOLMwOmK8Sik3DQ578LsvitmlMGzP7jmKgxhvsU/wBI02ZeH0ayhLP6Y2KsSNpp0U9jrMdMuVRxwfPj9KdSi5pmUUOFt+Tdsn1LHkpv8D0Xcz5KekPJUSKW7b6HMYIkVKxVIh3H4Rhv8j+0eclzbYpqj2K9jeGZb0OFVLQ5d56N2W0xRagcw7HuH5Q4nRqp8mMe7/R2hwtDlvB0OG8+B2sr+zMQZWUaFcRB0YOVp5/SPkuX+5hi9/0yPKmxw04Y/kyv/McLZlO2W3cdGev7LYoWYJ/0WnFjouXBhKJWZKqPc2iH4N59zEyKGZ2Y/cptUxw9jih10xZv5NbNbFatmHTMLBnp9GXMvwZxA/EFmeWB+6HSwKn0OIz+jpqh/S1Z5gx0KYHcGN9ipbF9Sw0KXxUt7HHqufA3C2ZWSmlo1vsiMvsqcGuzv9iJFWYNHz+lcYs+DLdlJfuIUNYMOqFKeDBUmMNlxsua+Re46w0KeWj48Frj2YiJMLaN4a7FDWH5M7R2PP4IWYMt4Q/Jc4gbhjryamWJryy3+xW4NZQvb3EnUmyGmU4Rhfo9URCeDDSM/wBGjD/Y03K76HPg5U7+Tcs1ylnYpcQ0RL0YWS7qB2nro20oWh08djzAqWEh6n4Lbx4LW0KU5swjDPwR6f4MzI5jY84Yq45ZlijsSq/kcJ9EtcXj+xxDmCuh2kL6nbH8DzcaHMU/cWcm8ryPGUP6Vsdzl9Dxk+57HWy4zIsP9ik/9CVVI06iCpUeCrmexynpi+nD8s4wNzE9Icv+hKMwf+YpgcJ/BfppvyNysx2P6X+T2gUN7HbwYyvJMdeTDtMhVImnodt/kpJWSlcvo0lfa7GoW9lpd9jTUWsChRb8lLMbIhNQiE3VDhJfUpyfTxSlv5G3xlNz1ZyXLi9iaaVJ7Pu5b6ZevnQ3xn8I5+puo0lsp7emfTybqEc5h4qWcpcWowelyr/AouFpia5NWniS5pv/AGNp8lf8l8VSexxyxBH05kUtP0u9DTfnBMcanzuBzy0hxyblFLXuYfG2zluGjKTlCzmOx/UmoQ6Y4w/kqZQq5U0P29hxOTC/I7lKimsjbXKylr8mbTRTTLqxw9dFLjJ/yx7Dmf4McbliqSU1+59vFWmfbMIvls5TNIav8iwrHDdSOPTjyXDlIxLzqxKNDtW14HkWWbKaOOFmRwl/ArW/JbzHkttyh5UDdGYofZ8r9LSKHsVqYFi/kcToWLZvKMPBoq8lVDM5s3gwhW0j/wAzzKKuWVJhKj89mtFLEFqbHVNN9DxktoidiscypUCo2OW/0VZg8ZKT0Q06Pq89CxR3RrA4lpQKlgxdFlS7gy3J0Uh1kiDCZFY/THFYMpYMrB8nvPRlL9/0UzTY5bmEOZ0LDKnCL6FT+qXr9Haz5MIw3ZSWC2ti8xgWs+Sm1Bnjk/Jn+Sll+5ypUZnBvJnUnFeSv9FTj9Oo9x2K3ljhp5PyUkY0h5zRUHtHgV4SRj+DTtixaPcTlFy8do9x+z6M68lD90YWDrBUM1gV9FRo+BefYrEjn2Kbox0Yex4wJLoVvP6ZThmEKsCqRStGOxysRs04Mi8FJKEjG/cpqZ8n2vBs05oy7cGFiSKePBmpRSasisIUuMFJZHUZNmJp+T5Zh/pWlIvdmeOSEz5MSY2O9H5LU6Nfyd37mYswYWUXPRe4WROGOlnyUnkzN+woRl5Y5SmXsV5gxsjFD0UtPI5nAsxIonPgf/w3gwOOOUxU8nRjlj2F7GOzqFODY4e/0Upuy5gXqW/Bgf3ZKHnQprE7NaKh2Ylz7jUMzxVCvRr+SJzLLbyjL/YtqGZgylC7FgXx4FNOEZde5p2OlkUdGIFjotzJTeSnhexk+TGZRl9iUqZ8inclR+DJUZJUNtMp5aKbkTlZWj7pabWz5RaeBXvyVcsbh4fk3NM/5YY5hZRfEcRV9kqbTdF3C7HDSslXMMx6ob8HK3rwVX4NTBbSyKnj3/S3vQrXQqwvfscRiRS1VdDXphRGmcnTrRlZYq+4vSTONcXCW5IlqVsz2bqRzCgjioZXsJelo4tpOE1Rxji1D/0KIuCquetihLk3PaOLdXDsX1JxBxu70zik+NSv4MLLYtf/AAX1K7OMRly8/wCjlcpqO4Ll1+COLXL6o0ts+3ipT79x220/B9yeS+VqRudp+5CeHPZbee4wP0qKeWx27c9H08tJVeBw3j2mDqILheqR25hfyfUlfuL4HHJtsttzHwcfY/AvS3aKX7yZSmzLtMvz0Pw2VOxXlMRcV2U+y5cuBat+CvUsmWrF8f2Xy14KqC09FpUY8lpjivmf0tPG6PgdKmfcsHePk1om8otzSFbyViH2W0k5RPJdf0Ussp/+ybnBjZsWKPw9E28MqOjHfgeWYP2PwU28jniqfliTTUCjZs9i4doiOizOJHL8mZHHkurMZkUzhrrY6mhfPQ7j8lIWVA3I7izWJ/S/I62KKHXpSg9mj4/R+Za0LOGZ6HJ9opWmbwW4yVPZF4PcwIvyK0KXBot6FcQW2zAsqCaVeTKL7Yvb8G6Pz+mBdSz2S6HefkeGKEtlyi4akcOJRvI6x+mXofuYZekbpo0sGjZhdClxgUlxpns0WnJvBupM6M9nljhrHn9NozFIdtFt1Oi4/c3hDt0YpSWoKrIvqPtR2zemPGkRb/cWdGUr9zRlZ9he7/TqjGmWSlBlvAhy2qfREOvkdJFwKnk/YRTM6MrKKbeTrJXJdlvlci9z3KMLLQ4bwfMGVGT4HKmzGUxZ3oco0K4F9UWfbFsVfyiuxV0Z/TGEKVhswqgutH4My5MPaNqjERHkudCg+B5Z7GMsac6KqBS9GIx5JhZY33/o1p9lcoo+DE0KUp/k92ZbyO8GVVChzXsU+JvaFEDrTMJfgztMyxXGB2YZ7sXwYKkuX+xupyXteFspqhYRaN48GXXsW+9McyaZFNuR/a3KNpQhQ9GX0KEqZjJfqHPgWckep2i+kV2vImRKdlXZ/wDSoyVVFPZXjwJN6Fa/g+1LHZsWUjA8uxzCx4Ptehw8o2hW99HWRUbMwVP7FpOhXNitrRnK6Lgtofuy+OlsiML/ALMNvJxgVzkpykOE7ZaThe/kUvxspUoJX9+4pbcJag4zyWTJ9u0auDjDWDOjbsajDF6aGlFUZhQvI/qaTayU3oWP3KadCrL9x1taF9KQ4bQk2lT79zj6Unaf9HKcVqCHxawuj6k8rpeTiuKdTCOMJMUvMfAo9WHeTui1+bOLTScTp9C9Li3k4y4maiBw5wlM+5Mvkq/7OH3ZaNqZzB/xctn1Pjc+Ti+XJyp1JbdtEPlDcPZPH0wN+puno4yoiKansjC9LjCFHptztClNZI4tcYgVqkR6u/I4e7/cw3K8lvowsimVHwLFGOVNCwoXsW1cMpVIrTtMfqc1H8FcnmT7W7LjBlWxaiSFcCp1IsU3uBTcSV4Q58mMKBzFvyKHMr2LadM+12Tbr2GR6VbRy+qZnwYy+2ZltLwca/spcc+47WWWsMc8VUCS9RDlivJ8I25f4Gyp34HMC9/0dlJZRaaod6QqyYV/JaapHsfkpcuuxQl/Io9Q8jhb9iYh5H7aY5SyxbFTz2POfYdKIQ6/Yv8Ao4/bKs3j3NG9mW4THEZF5R+DOX7FvyV1B7fI7eDemfS1UM+1Wy9scdJnuLOV5MaY6PktrH4FEYRSUyTRSbbkVzZ2U3oaT6FhYFDQoSUGEQqsudjjaZZcMzNexrJiMM9mpoVRRd2WpLs1lnwx0xbo7o2hbstlwWzOl5H6eTVwW3TZ8Mp6NKGbyby0LaKMf2YuTKKorjB8e4pgz0ez9jey1JUrBdykL2Rl5F7ivTey29mexQ5siVldozFlN5XkeFZbX6X2ykxxoziGUnk+TEGv5MwOTySm8mJscLXg9pQ7Shrscp4MSXFFNmTDw2OUYVeBZa9jb/8AQNpfuO1pils5VpltDiTCwadoXz8nw2R1Bnf6U8NCNihxQ6gUoY7WhZFMirk8eRROEhRFCs5TePBv+DSlJmXLMf2OatCaW/BmMGXLFrI6aMxDQ6WUXmiks+5hTHRGC52aYspOfJ+TCwvkUlbgal5KW/c26spluMGNnHH8CmIo4+8mVs1RhULj/wDjpcFxy/cW99nyOZdikqclrL8Fy5NvXRcIX0vApacQKOL2h/JqB5dLcGNsVjvEGqMvfkei21LY6MK5FTal/wCz7lbbLhUL6to/BiIgy+ymrRTg92bwj6UtCp3PRh2y4X5KktcaHUwxx37mzKZ7ytFy8lmHn9H9Oh0siy5fsXJgcp/xI/wZtyPNpvRTwxym4/YtvZafZUZ9jLuPAreUjCqCn2XPZbQreRtLQ/p6fY3KduNirbfYohClcplScE3x5Ju4hbfk4/U3bJrHZjCHauPAo2+2h1nr4I9KTcmO0NJRTRcxD8G+NJWkZSvycZ5cnT6Ob9Sp+8EepVNnKeURGKHCyhzyTUnFtKJ8FNU135F87kv00K+K9SE/UmmvLOfp64jhdb8nGE2f8rnswnS0KXx76OMclENI5QlhdsUJOfVrFilbLhKWsChafyOHEolJq3I/TDUP+jnTpJja5PscOK/0KboWVEmlkc8m58yPFt+SowcY9U0VKpPDYvTLtD+p2LDplPSYouzeRYeT6Wrkc7HC2tsW5FK45QocTeTeGZezO2VI69NoWONI+7SKrKEZWSnV6HWPkvv8mqY85MtmlBxTaREJQP0w8/plZ9xRtDpvJTwb0KeLquz5HCwhyk68DtozodUr7LsuBeVoWbZrfZghx+x5TkeHh9ipPA/yT2OX14JxKYonLLjfk+ZPumYMomITKZ3aMqV8G8EpKkKHpo1TZxlRKYrwh0fLPY9jKEk9FmJwOHspnuVKg3hCsdCjtdm3g/JbRcYMuW/YylXkRcK/BTsmHaRUFdsyuPwZbGnxaiNyU5wKVMCiMjiaFMujDpk5wOUv4Pt0LwmW/wCB/BbzBpYM8TOYFXSK9WxRBacIU8U/kUJUfIs234KqhZFQ/TU+58Ne5vB/xVozsVvY1DezC2fsawil0i/ThHyUyoLUYHL22Um59zapG1aL69xS9sy2U8SWs+xKn6rJjBtmjaFmf/hTMs+Pc9xVt6KFE5ZiceCHVvUlxUCwPOfJaSOVmsIrwPeEdix2WswfBu/k1liTsUMcXEFNGVEinjGTODdQLGCmjbM4Yy0qgw8DvTF7CibFlsfx5FDeh57KaodaNX8H2tGsIcrSMumi3lmUapdn0jzhlPMdoUuxZNvAreIKiZ8oUrMmG1YvpiRN8Xgf3Fp4LqHs41OdFb8H2rXkl7TFDWTsw9DlPQnPRhqzY6mGOekO5/cTbwZ0ti9y32Vp9GUnKG+KmfYba/oy7Xg3ocNumWuUQW25hmVaLRfYsOTD2NpWmtGROza/B/x/cw4lfA7LH9UZ1BbWSomzHQpikOX5L4wadMykXGWOHMtoubQoehYsl+Tehw9DqEKU8oqHRlUoK76Pu7NUl4KT0hZyyKx0YateRQ+kKGyrlexh0zLivA8uX/0Wnl9IflCUcsLYpe2ZPcVCidGNMcThmPJb0c448ZmMsXLlKtPSF6eTqVqyGlOXk4wtSU/7HWU+xTOGSuWi1qejL0cnThoUrjbR9N0v6KUN/MEtcU2ktobl2xOXbS/kUNxL/swqTxXYrffUHJJJ2hys8X/QqSti9K5Umcn5efgUtJePyclLVrMeC0n+woXLCWjj6aG2tIb6xhFcdXkf3Tb0uhQ3dubPp3Hk5fbHJo+11PkUS5cYHScJdscNKYHPGVJSm/cUJPO5FpqfJxluvEnK8JIzxymOtQOk8LYoXJ48G36RubajBPjyh5UlxQ4cSe8HVow+xalMt1Jbst8oLMPMC0ZuRQlsVJ2zWh+YPt5UkfcqNX7mM0YZcG7TGm80O3j2MdDrcIprJtZJSTzoU9vpDnp4kVbFikZWYFK0/kTlZMLI24YpSzIvUnj3KFk/AqTyN3f6O+hWlcmFlCdkrTaFQ/AojArWWOsfJ+TK0bMKl5OrHDTTZhWzKHTVGPA5XRnfktYgwV7FdClzhd9n42KapDmf2P8Ajfuy2rfZjEfos/yZ0OaqTDJQqZRUU0h4qCWfgcP+BS8T2O4FK7PueRRKKgVNwl/Iip/cXxqTOUd/ItShy8vyhUrMC+l3IreBGFTkdf0YZC1I48mCpiGf8VTWy5wd4N0Ywf8AHJiLRqh57LWiU+u/0tNVGi518Gdz2K2YgURdCjbZaiGmdw0LGEZaUDzEm1Rb45grtkyqOogrx8jvZn+jVJdMqCZVwOIz7mNHaUjmWR4Q/kxtj9z8CwR6tJmVlGXoqM9lJFDpMeaSXYq2OioVmEvky9EzKodPstcf5LSx7jvlNFTSXkw1DHLw5owteRwxYy9ClaGpi01s0av2M/8ARnDkykU1KFqyknUYKTyKvBMvY8bf9HUvyPOPYpOkYTs90VKiC2WtopTYqnPf6O1T6MJKINodP8ldGeKgp8Tbsd9ldrsUvi8LIq17DmM+5t0yuXGOPuOlEroU/wCzW/B9sVBdb7K9NpPZxh9FRkUTmTu2W4/R1MSO9IpYEnGjatInx4Mu0tmVQ5n+CmjCUjzMdltqEa/ge6RSX7m7SI7HLZb5PP6fK0ZWeypX7lTylpjcN2ZwmZwOR5wy09eBUiu4Mt76H9U5HapoWcn/ABv38FJX7CjjyVwW8fBh0KJgd6Ooky8kqM+BzGjBkeENxEEptZMPBnix9He8mMf7MTgWkvBTSoWNlcViR5uDClI+pvZu/Ypu17DXJvBh2d/sfD0Y6MI+20O0YOXpfFTK6OPq5Jyn4G02k1DqDk+TjInPZ9zbjwaVdyXKHCRcZWzqExqHlFimZb8FpuU+mP1N1Jl0/AsrZlO/9EKJbXgcTUlcphZcnFtTFEqHcitUx0sovjOezbcrwJtcqUVY3DWXr5OUvjCUYFXJwxxxTT8nKZd+DCfyKOPGIMzKFLdeclVXl7kwutCU5/cdLKyT6moT8HGU8OM/JFOHGfcri4Jbd3nJp0cpacrQoevY5e5p1Gfk6hdCTShtC9mcvpVuv2OWeJiLHWkOkqHDYvZmj7RwnnwcsKEW1b/BV6/R5VF1+xhrAriipzA1PHH+hWKZcNjzSgqMoy0WK3MFNY8FPQsLJ9zJqnJawi+jLwZZ1beR32LFjrZaf6WnodLQ4xAphyZzI6fQ5XR7t6HKVfP6UUh1BTHY8YNwKtFpYY7/AEfl+/65WTK0MvEIpPK6MdjzorjDlbM7kUvaHacsw3jRsW6e2i1GfIpc2XOUYbPhGetF+Cqf4Kuui1/Rm4NYYonRcmErKSKU15RpKzEWW0buDvIsYPY0z5H9MRI72UkqLbRb0XGWOlpl9MVpYKXRpyh1FIUPpnUs2Z6Ih5ZTmvYUdCybs+UYyPyWsSWujCHNyKIKcGVkzN+w6WH4NI+ei/Bfqs+4w/5IT34LagcT8CzMo0zVMpOK+SvIpaf5Mtm8nR9LzKOUN9nm+zOZ7FNy0QuiknPuO3lF+nJp47FozGS52iz3bZnMH5Mqz5FPFqhRKwbwVBjjJbHWx0OtFR3s1g6li8fI9iofwQ7MNxBbcx+m8+KHZhxYvfY4WzDwPDhmMilceUNaPaB0lTM26M+DlNTMGtF9FPEeB0ollcdGJUMW8jg5XpaNYM/2RVD3LHMZLbHhYLTQ5UX+cEW4SFawZRSqR3r2KeujE5XY01yf7CXpj9xxDiTIqbtj+1wXt/pJmBUKdSUk8kyhfUrH5QlO0NfTkdOZ8I6g3oWagtzK8GZkuVEj7kVZkUpzMH2vYt2JfxImklMq4Ilfg3fyV6WO3gUNb8iraMLY/wDtEw9Dx+5DppwTRhL9zOjdtClo+RWrFXHRSUwhUlaFMOjcUMxro1ZnwZWEby0OJtERaYqaHTUQZWDLPf5O2n4QlDwOV/ZH0qS8n2tZMaZqTKMSO8ozv+D8kW4Y/TVRg5KUqaiz8rY4bMck0uh3praKfpwOJcNo0bt7fsPM2xzagz12YekhV3szp9C+6u2f8aj9OPq3X9jmVKcDeW529lP0p/ufcsefJydpxyVKehTuhvjx6W2VK12W1Eo5JRfmBw25bEoF6nyeemJw3D8eRzxVag4+Z7WT7uTuezlNbwOZzGvBxxTRxaTclp4Wz6U1JnLaIiNjTaKazLwSobV5Rl95nwTyaxIvSplz7i+lKPbyKZpVlihtVoV8Xe5FHhEtx/6TGvY4zMwvJbdfBpQmLDH8eDD2O4otsdK4Eoaljh/cl+lqcjjyfSuxKqRxj08ovocrsceBKEpnyMvj0h5uCLy/BmJY/uo1Zhpn3L+D/wB7H3QJt8qaNTI5UZPdvQ8QO3lm3PuR/oy3Bm0W0smf4/R0d2WuVQK3fwLI6RsyjOIKnQzej7TPQriZHEK0x+f7LfRmB21gwauDLyfuX56LgUkenEeR1oWev0t9ilrJhYZc5FatMziD4YrMNFQfJt4LSyjOiJWxy1JfFuo/TDZcPrRgdJV2yniBxLtn3GFTgytFJKx03JHq17CqzK2V2KLhFtFz+xvIsUkVGV5H4g2aqv0WEPCwOEVRjZ0OXgdLJjDHEKSi/I4imOVycsxUGcKP0i7Fl0/A62z5MEyrXkfiGXOBzGfcV9FTrwPU2PKHGh+8jp3JrQ5hWVo+CrKcQZWRaUGehSv2PkvbRn+jLeTDtr9HRnZrZDZ1kaUmEOXyVm8mFEHHWRxETBcnVlp1JS0ztWVeP06FCH7n3L9FawUlofsh0i0hR/ouFfsS0Z0POIFJhZ9zGJZ7tHdex0ZTMoUroUt5MzRc18ClNqWY6PlGNmWZ7MIw8+51BnbPj8C/6K02Zf8ABaUtjpqvcVLLKeV7Ct6F7M330K23CHf9FRbY6NFvMipmGLyKJqTPQ5fZacyOPI15FMoVqmUynV+DLRjHuKtlpOke0FepwU1ozhClpfB7QKFOC3iEOZxJSastOpGkOUVpe5mLWxYHCJb5YHb6wb0Y0v0qRzFoz34F7mBy27fgX0tm8D+qk5ItixQrzBhxQ5R4Fl3OYNlvZSWvkmqcdFxdFCvJFm3D7M6HMfydfgtdivKR9PKNDh99lSoT7ZUaFPRiS/JXgUri5KSRXgvluR/TxTmO+v2MaOVNuRT6cozFihrHsZqmVGGZm3+5DSy+hy0jOP8A6KapCpqE9mW49lsvr2FhSjSIdfI4hUcPpbpbR9KahilRLb2/BCTuP7F86g4qHTf8F1Y4bwaUeEzMERymJ7PpaotuvJz5rN+ryf5eTfK025SR9SdqOzG15OMzt2cV9KhpkpPi7HHpUVGDk+Tap9Mb5VLT2cfqblrolcZ3pja86F9OEzun2jikkoT3Ir7ehxx45hZfk4xGWfa8NL8DppfBbyn4MxYrjBaLlFxKZ92n4F91OPYhy/8AocQsjh8YU9kJY8QKm85MVJh5Xgy24MtwxJ9GetGPHQvcqlKLawztWO5ti+EOZyOtjhaFCpttjy7HkRgwKJpmcopp2PENjauVGxxMWLwO+WJKaowYUGNMUaoy3BajGjPQsmTKFC7FKSUF7FShs3crrRmIR93SHZ+DjYqZiB1JnoouMtG+yIkpyVH4kUQVxUyipwxQ+W/B3c9lvB3MmMG1lGViD8C7EpS0bNbHMwQpqRytFqYLX/rJUOX5KS7Fbr4N4HcVIpbUexTevJAsHsjMTCKmaHEvAslNuvYtwKtIShIwrrEH4KTwb30Wv4KnLOsltyK8yKFxVirLY1CKlmIFMV8Ct5RSWUU28lKDWYHFQawzWDaKaKa2h2rMXFlRgmmIhSWmYWjzPsTiUxz2Vuf9n3RnI7cpmGhkpTDXyfCLi7F8mIvyQ4ZnYr6MxYonLMqD7lY4bfwOapnzHZaeT7YM9FrY6Sn3NZ0L4Ie/+in/ACOmj2ZLbMLPgah4RjixTOC+TcNihpU3sXsxW9mFkSl0JxXuKTjC43JX9nyzCJstIWMJ7KhX4MmH2Z2jJnbMiaa/c+7swP2ZlCwibMTk2zGT4QpvR7wIqO+xyuVv8ChxaNo+rixTxdzodN4FUUZnDMp/sYPhk3SMxQsXBLbPyQ0q+SzCwY2O+iYxBPq9Pp8R7FLKkjFIWNeCO3otdFWYIlOV7Gd+C+KsUN7E84eTKkVTDZnEozNSRnDFhjlYTX9n/wBM4EZy0L7tlPSk73+mVstddFKKLWvcqDHkx+inLfsbx7Gtiyfkx/Boyr9y9izljm4+DPRb2O6iDrBMvWzCqRydJyKW1TRno2qFaclPsdKD/l+i+5S35K5IVtFNo5Wng/OhTqCpstN0YQoacm9mB52sijPqezan5OLbnCPpmMiSUx4YsbMxRlMmG6j+y5VipcYTHai5MPp4HhaHDWvArePHgczRlKBYFLmPBybuYYlOU/Jxl8q8DTekUn/BlVGpgwrVaOMvTxZU5nQm2nb+CklKY86P+NMld+2h6gicS/4HPFqGhREOBKFSQpQk0uVzkccte2y1EDmZSjREul7Dlf2ZVfBCH6km5rYs3KtNH0w1MbOUdJGqcxMdkw4wcq40W3Cl9F8UvmRrtClNxI2rcmYz8k8X0NuHLg3Text8lc9XglNOW/A/pzfsfc8f/CXrs5U7g+7R3SKmKXZrI4XLKMxKYpnL/guNDmMeC1k3oxsqMJl8cR0zUR+BYMsuaM5LhkPpi3bN7Iif2FbN5XRfRh/zon0vs+Ucly9MJ+5sXsWlkr/RcUzD0zESKGzEfuKG8GINrApFqP0X07LuvIocTH6uMMd6ZW2ZR7octb8FTl+DvOS6z2Kuv3FCdJCxTHEa7JlWzdmHspQZM9/ovqc5HK2j2MO12ZuDNFNa0bWEK1cDnkYl3+mVZRnsi6S/SnpFb/RWhwtryOWlfRrMjx+DjaP+oHapl9+x9u0K9FNKyOxJsmW7XRpy2h23Qq4xI70UkZVQZaFLdyRMHVC6oUJ6HOkhUrcGzK/9Ir34Px5NsqXLKTwfgvaMtS/I86M/1+ilJ/gmNFTcimoyW6ro45tinZjox35Mqh0lBnfkd7noXkxFG7Mn52l+mngxH/kdQ0KPJbdPo1+Du2YT0Mi7MJ0OFs8pM3DbFacJ/wAmHpmtFw7FbzPZrKHkULb7FL4qi3A1KtNG7KWzBjSKRaf5Fl6Ft+4s/pr9i1k9ykWpMTglVEHRb2uyOSfZlZ/RTFSXco1kwqRn+h9JGZyZ0P6kcsx8Gdjt4Qou5/cxxcopQr8lbFKd+xlG4lj9n8lOBS+hQ2V4PwYdC8o+RUmiFy22LNyZ7HMbFKSwVZUY/wCxVv2F4HbdPAoboU6QrglPE/2L0xl6Zc0YshyLCpiqcip2mKOl4Hl349yfcxFClagcN4OS5Rl7LbVdmmW1hfBj7n7nGEvyKIwOeyoWexU8+wsj3aJlXJ/y0hVjyatMeRUY6/gdTaMqvP6W4g27nYoeBwnnciiNdoV/0L2PuWeiVKJqhqNDtzSIaTwJqLcobvCIXFTIraFTpfyJyls/PkmdRkltHGlabM5TL8H2vLO69hTcJmOWZFH1elp2i5oU2lP9n/G5LlWyM9SZdjri5JcZMZaZ9rf4KWjkm1DgcS5gpRYoSg5Vpdn2r6nO2ZTs0qXZ9XBSmk7Q/S1hlyre0xtrEDS44g4wkpbZxjwOHqOi5iOoFMtqdDqYSE2nn8Djjy/BTVEq4hbFeEO1xSU9H0puX4HUQcrWRRpPqibUprTFEIVfuTLw+hulE9sfhiXpeUX9U1UGG5T68DuafgVum1bRyfq7/wBDpq2P1T+w2m1lFtu2xVxyTEzGy+OIOOM/7G11BK5RgfU3oabePYeIkSnsdt2sit2jlKeUhzdrY45TYobmH0Q1tmV/BhYL5eR1E+7MvXgWBU8v+CmorZjL7M6bNOGjCyKpUGYFCWCY9X7GXTQ547Y/KHLg6hs1r9MIleehRy5OW+2a/TOkZ2h0/wCT5PuHMq2OlTQnezWC28tGnT8C1+xFvJXXk+DKpM0W1Zb6NOj58lVRMvZHhmcNFQrgc7KiUzCKnQ5hykOOScfB7IUOZLWSWnod5bLax4NoVzo/DJUEvpnyP5Q87Puz8GXfyKEIU4Rp0ZWWMfhew/ttDuci9l0WxtzrKXsbwKey0ypUMVLDXQqeX5PYWS/Y+WOEt+BezH5Ln9/0mFrtjxclrbM7ZsbjYrGe5yhomZRuIFfQ7HeGYbMI+3K9j4fgXyV0OGqbHHY5ej8Cl8rYo9Tj4MN15MZbKTdv9OjL2YePcwx50ZdNGNnUR4IcaN4MxHg+UY0z47YhxufJ1+5jMneS0/xI42z8dil9HQobzHZ9qmXiPc5ynDlXXgeMLs+2IUFrozNo1n3MWVFxo/8AMqlXY9Uj5HcE3ktJx8Dahwh29IxBlWjdtGHgzP5FlSzD/kdeR+pZJhm3cnVlmVcFRZZcvHR8nydy1+nVDzjwXti3ku6Q4m35HjaP+Kn3Zu17ihNZMvBOpTPtnIqhn5H7CiXbMdGs+TCqTGzOTL0Wn+TEmNoyuuz8M3lFQpbN4HeILnHuY/6KjYs5HZv9xSnbfZhIcNrP9fpSRmJT8EwmKUq9hQ8JnGX4JU4TLaKTVL9FDeemfllpCm/mDbLcP8n40Zbj4MRgxlijp9mdjhCnNHbLSO5TRaM6M7MKxZyTeYHUb7ONafRpYMoecm8IVzRxlpZQpcS15G0n1/A5XXk+fH6OEncEO8kRhJ9iisdGHk44yiZ32SksrwNy8dGWcjDKex28roe4QlMxLMrLMeez6m000YgqHbMqpFTtsy7Zhy4FTdHJ+lU1Nf8ArHKeI0hSuLXFPupkyobRXFpYFPKVaFHJw/dCvfuWv39z7uSvovaN5OWcGOTafuKLh7K47XEl8sdj+pXtUU39VVRoeexw3V48HOZz0yVNopzKfghNKGP02NS8vyf8s/6MJd7PqbUToVJw0Uk0kVycngppz/Q39Q3DXyacpjwtbMsdOvZkzx5fsYnA86MdGFlktrbWjbGxU66O5SeWfdlJmXlD3cCnUFpu/Bjb8DhZRCaTdZMtWmP0pPB1fufnwbLQ5Uwz6XMQ/wAFvS2OuJ5L7M9mX/Ap8ECmrgpxg24Mo08HwOllH4/TVMcrb0Y2aFbLeTWDD2YWPBlHWGfgqVbFLMS4KnJcCmdmDY6VDtYMl9oey4V+S0jCHmkxtxkdPI4SouVYq/oW8mnZS0yY5bMqIKSqTI7WBRymvY2/2L8jzobXHkoni2mvZnLlyXFRPK215YpREtZMLJ3XQo2bowmW+xfV2KezDVGui0tmYHCtr3HaHvApvJjA6wilKK9OjGUU3ot7K4x+5rZU3B8jrLMGHSM5bRMaPhmHoyJzxpdfo5nBaWxuRIcvoyrMtY0awj/yMvBE7/sqdeDLdew7KhHUpjvya0KLPp5IeFfk0qKbn8GcJHRvQ70fkxpFJxAvBtk+5hOz/wCEtTYyukPFGhyk89FJI3stvB92mOWyuW0rrRvEChaZlCnjyTTXgTXHNub/AEqcI3TMN0ZefcWD/wAjDv5MrAqiyp0fJr+DE0Jz+msIe7HawZ0mXH8jzUitOv0ly7K8vYpTUmNGNjcrQ6X7M2ax2fJ8mHgdoxsUyh+IM9DhdOyHIrbgcri4nZnz2bWR0tdo2jDagzgZTQ5q/fsrUspGG6/2OHNFeT7VaZmKKZamz3KxA2uW2xw8QWngWMMvr3HPJd9lNKWjcDicL+yfTG9GFsdIbjZryLNk0vyh28kwnfsPymTWfcWKMo0ULEQXmEbuRyzRVGGqF+T2Ym0rhWfa7U5M5kVujJrKHPZiYFJ7yPUv3HbcLyfjozNM0r9h1owxWW2ob0ZeGXDGbei1lFsWab0ZToVyW4ehJttQmSp0Vf7DjtFdCaWJ00KF2S45R7F6THPLJvI5TcHwZy9ihJLPvY00kl5HPH+PBgcp68jp4LaZWvI4T/ctYgn08oaX8nFJpbWUO+Tm+y9PuRw1mNilRHyZWzPLlS/saicK6HLWVtFS0r0hpRE+x/xcocuaXaG1sdN/g+1GeWWv7M/b4gUNQ4Y4Twy+kcq9OM2L1L/zRyhOr6yP6VaY9Ux+LLX8DlvTF9KtJ1o/ArVlrjU9jhcnXuL6lWC+L+YZi0kOEolzB92KKUiduinhHdGZx/IvqSgf25KbjkVFjzstqkv7E4T1ofizdsUKcn1PS8FTELyVaT6kt+o9oIh18ij1DWR5JibZMNy/cirbWWXCUPYrw/cilPuOU7kwqTNQKKyYSKhCni/5MvIpjHg7UswzKKi42YH7+w8dCrJeFAvpRXRpQ2Ns+Cp2xS0jOTdJLB8nx7GjOpFk/wDgp5QVLo/7HLm/YvJssw1kdzjsdl7go1gvwL8DPtWUS0/0+EaaL2K1ZUWOE9FM6gqGOOkWLVQZWZNwaKfY8TIqmv0ysFrZj9MrJl033+jtSzuzf/kL6WW2fseJMdDsxsw8GNouJMtGWayWsz4Hbyx+5W5HEYQoRujGi40PwZwhzy7K2bOVqj4KhQQKWYVCtUQ6PwZVscOJH7Cxkcvk6Y0pdDxsro1mS3r2Pc96MmZcjlrPuOutmCipplp6FWirw8HckqHLgmYiikrgx1sdPBoXhm1+593LXgiNN9j4vnF+mlPg7iSp/geMeEY4/uU1j2GomWx1NroWHocUP2ZH0nuVDL8Frs+De+jSNG8DtpUYRUdCjsyocF9+DVQa0YSmDGPgVncUZ7Mv9i0tjqM/J8I3MLyYWDwL38MuMiOpUkXsUoecMwst/wAmMwYGqwXEx/Zh4FI4acP/ALFhWzHJUilxtv8ATKpjxZT6FSoUyK8l8ovQ8uLIjRbFSsroxJgVSdUYkxB7CrfsU3hoxiTvZs+p69jstbnoUp4MuWkf9Ftn7mZmTJTKf9fqpXR7otVKMs4/SsC8ClmEpSXZFuxV0Zyimn+44XJs1RfqwVEwYRo0jOL6MuofY+0YeUO9Hsn5Mxg6/cyWz6k2P1eNiWbgdcRTKFKmEJzy/A5StIcuJRrZ3RTlR7H/ABv4HL7HcOSoFMY8vwcsvHkc9oy3TRu2cfllTlH255OcGHaZnL8HWTO+iGk8FJdjnjMt+IOSTT1SJh25FcSJ8luPbo5fSlvuCpOL4tu0lH4JzMCprI2+NT4KWEkLtF5j3IXLlDaO3PZ/5jhvMicvlRz9SVJ4E/S8aYmvThM+rk4TWFBEJQW1iCoykUncoVKIXgbpMrjt+RxBypu3ocKY7gp7bJlVK/salW0+iuL/AHH9XqwzLztEepZbIqW3/H6O1Ik5Vs+nlxvkoyjGl2i2mpXg1nwi2kcsvBTWEUnxKbR/yryfTG/gbmWPOz6peEUk7Ry9STiH0Xf7C3PwfT4XY5TXzJb5KGsMylArkhzNYFrJ5hGViLkeFoe49y5VkO69jW/J8GmXceTDwLcmXUGoXwKkb0zDsuHHwKtChOhYiGujs1TMxKEp2zJ2O8DvY4a35OkYamCvIsCjY9fuaNL4KRc6HKf7GRyxXBb0ccYRXgdzBt35H4aF/sd6MGWfJSahDw8GdR3+nm0dqCoLSyfMdGsm0bx4MNYOqfRZjItizfyKksoUJxBhZ9y4z0KXFF3g3hH/ABk/HkubgUvSMdDlp7FPHfuPOGZdR5FC4/wWy28sztiwo8FeB3y7NW2h+WxZpItRTHSKaWWZcWaaZvIrdmrXQqGoin5NFTYsRJh3KHM6Lh/+QpbMwZSHlQkU3KML9KlTGxXODKKaZt7L4lVTMPZhZZ7eRivLkyuxQYdndsVaMPY0ksrwKTKyZ2/Bl1J7yJTdlLfsWljZ+TK0dQQ03nwWnfiDLwP/AKGpdMfWDe30ZaoVMVO0zHQ3Cyti3TMLDNIcpZMO2dimcvo/46M/0Ku9jlxaeinhtDzkebRqpFlT8lTgy89Gh0XI/T79mU7RnjZv8Hz7mByxSj6dJeBeIQom/wDorpMvbZmKLnIqwi1NvpEO3MdGeVwI9nOylEHcIVrPv+iqIXkrk0p8FSd0a0SlNmFYm7PgzJU4Y818lrlj3JTmvYcWp9hSv3FmaRxfpiZ17HR93JSZozGR2hy3kdZQs9Db0hQWmitH/kLKPwh3F+TLLV2Za/YctXYq2bv4EpTleTGIZbaLa0ZeF8GOLwbmJH9TgiZryKkOumOU5XsKHUe5amxRFwKLpLZUVPRErEGcsU8WP6khWnEeBpRgwnKnY44ilYk5Spctn3clLMKypz4ZukyXA6V2fdn4FL6KlKRzOD/zMRED1ZjQruuyoUrroynMnH7s+CrWj7VstTCV5GvpWhq8JaNQ24J9SbTe2i0qY4TqXgVd6MOEvJaVOMyWkqRTcYPqfJV+dk8fSqXnZPKcPaKfFU30Zlw+iGlkwrX+hw8Yz0K1co4xy5Chy1ByU6S0hRdPZx1LnC8lP01HeRelw8irK/Ti21ywuhQ+mcsv9jLwZYrjCM6QrWUjDuzCr5Ek+TlCp5L5Jz8HGVusCt0hyk1D/g4NQ392GJJOo2Nri8p6ZxS8lyhRUkr/AOFcoSbFWDThluBQoui1NR0JpJxHY58jxSRFdHHEw1sw4XlMUp9ivvyKX0cYefk1jyeZY8qT6rl+xKjYptGN+5Mp6R+447TOrZCxZlbL78Itf0X4Frf8Eq8Dp4LWiekhYpGv3LTcyL3MQOU8M9jGzMGrgplRTIPwKkVODKIuaNKYN1AsUkIx+n2rJjA5hw0Zm0VNuRfV/Qk1Niwr9hWlJvBUDKTtz2YVsWZwas/BpYFnQt2yIpIrMizstxsu3K2YfZfXg9rLnI7Tdixoy6guS/I9S0T0VpIXsxUpSe/Bumv7Md6gdrB7yZhFbMTQvYziOvJUH7UxZszFGGpXuYiI8nZbikd2PckJ6fgUpyv9DlrMChNyfhdGVtiFUS2U4xoXuKhRDOVyvwZSiSIw/BpQmT0KU3Lkc8eJTy3ohJ5Mcdro04ZDnbHuvcSaHEqhU8+C4x5FWY3JhqxKWokhRYlKyL8FIRLFKwh1lGWz48Cxgwv3NGJwOR2XGZ7LTyiIzHRnJjX/AEb/AJG42hQlopZMLZluZ8FwnAocXA6yzc5MNSPKlsmEqZ8mY+Rxyahz/Ir7Pti0I2buC1Zmo8sUctp4FLeYMMxtFSoT2K+xU9+CuIpkWRRIvpaIh6K6Qp3PkcOZYre12VktLZl/o/kuKFiLNqRRMI6p9oeFnY/b22U0pNPuvg7x4FKatDyrQrOsCviqZjN6N9is0o8ihrZfbMLJ/wCQtSU4g7opaLatMwsFLYsYZa0dRIlCIaVpG1+B7S+D8ipIqyuymqK8n24Qk+pFKWhyp/Bb7HEbFikPVodv9intGs+SatD+DLWB/S1HsRVtnZaWDdNistTNHyXDwKZds/BoyngUJGsI2XDnwmLI80ZeGZ0y1uBysyZmfgt/+opF8lY1yUS15/8AMUqK6FH/AKhRyxPkdrDITeUOlc4HMGXhj3C9h+GzTlMTl/hMUrcH3cnkrl6pRxahxMQOGsyOE8IX05S8ltukco5K+L/2Z5W1saTVOR+ld93YsvPgU8knM4EoaUe/RNTMH0rj9q8DlPo+qVTX7jqC4/Y77K8YZU5bFDUNkw8PQomof4k4zx43kUeqqM1Hga5V+SnxSmOzQq3bv3FVewvKXiRwujg+5FG5X+yPU5hilqZ8FPXsaN7E2k4LHD2Wtx7H1NTTyjDvxAnyS2JLi2pUQmQ0non37JS4670cainJluipstPBh0Nq1g+qd+B3vs4xNryKNR5LcYfRnMeDGWj2bHEbZi5bFM3+x3SQqTo+Rzy5PPRlZFMDSFPGIMVJhaFVFJuilZj9x0S32OE8NChlPtCt6KSWC9mV0Z2zC/gUsqd7JUnwKn1+mUUpkiGz/jsw1ROD2Mj+Dq0b/kz2ZSo2KlgcNOvIsjtX+uX+BT6tMVbK8C8R+izUmv4FlUfDF8D9jdI9i1hspNfI9fuOtQbPB1BXZXlHVPyVJcvBS32XB2oPkThbKfk/+GHns+3+DFwP2FX7FuKZhVBcmFozn4NDqbRPlspYkpb9hYpH/LEitChN/uZTs/JTydFrHmTGh+DCotO0W3otNzZjVmFkqMn4MGUvgtdIU9mYliPkqF+5vR+DHRsy6RUs0Zb9qNH2pWfbyn8mHMrxJdEy9EuMvyOlhH3PBtZNNJI2KXMmejbtnyOVNonGWYz0OHgURkhOb7Nq0fgXsvAoFDQ5WyuJlMpIUrBlL8ocLknMGOy06aFnfky8oUNOIG0v7F91yh4NVY78mdjmsFQP2NnwjLpGdm3Rj9xdQh2jVoqcjrQ8OoO4jwYFD7NYLnJTmmP0vQ5ZoV5bJg+2PyKEiptbIpVJTkw3EoxOTDpChNRJadKRxESdHSRvJt/9irs0zqmK4siqUH/kVJRTVLoVid0dFzgyr+DEmsI6iDZMRI4hWKGuhf6JvJjfgWHJtSeJRrRTg95MI7/YtPMGj8FTg+7Rns0Kkxaplt0mi4sgwngmGxZ0ZTwP2f6P0tYPu17msrsqZN6PuWUZbwWuNlUa/B16hWdYRmnJhGcmFkdQN5qezJL49p5Z7oslceWyI4uhOXUib79i27XscvqWVk+7bFZh4bLhZE4zI7iUuVx8ltznC8Cp59xxxWcS/gpKkOW5aYpqEhS6lEJ8ZlW3I5aXqF6uMvbH9KSXzBa5O0KUnCWhQ1bjZHJOmJ8eOk8ChtY3kysLY2nX8ilq5XcDfJuky4pLyKnlilJ5WRJNKEcpcJMcR2OWqXk10O3kTV3JTpMV8fq5HHODlbTh4oaXF9jhaglOoLeHBc7F/wAl8odrCM3QnEWipHMKRenk1Yo9KgpPEdl3IvqbUrRbmoHXKh6OQ4b43I5cOBxKkeXjwOMw1kcyrRTmvYxmxxKHhRA/tVeSkrbLjLFEttChtfsLBXJ68CwxYtjjlSnsudmWokUcVfyOW3K9hRxdpmOh+EWqg+ppGXD/AESwokV4FShDzcmfIorAsDab8HyOy4whDHlj9jdDwUmqFMkpMzZmaZlZNs0sEJtpClrLLXXwMcCuM9Dl9lTaPZjwP2MrKHatGcsw9Dxcmt6Ns+BT2O2xUrkrb8Czvo95HEMdxTHawz2HDocu0btPosfsanBb2bk7FSdGFodf0LBdUaN5GqwYkczhGFnybx4FbMMeEZL8scTT9x2yoyu0YWDwK4yOlbZnaHSyKslaHiy0Ulg7tHcFdwfCMGNjtuT8jkqD5LT3/RU4SKNjmNCz/I/BhZQvDLJ9OjbHNmE1Q9NfI7STZS/ojMz4PeD4L69xOFkU69kZdwWpoxArZlXBhjzoX92fg7wPGULOR5lF9swj48kWO2P6uzVDrY/Yys+T7UnL6ZcFT/8ASlpkysDLTwZnA6SspJ/uY3+i/wDgpjZRrI7VoqPg6K6HnInKzIrZcU2O8DroqlfYrQ86MdGbZTbseD4MmJiBW0O9j3g5QuhRB9qZfRS0/I6Fj+BmYwKnof1JCzTkdYP/AIV2jOxwlbR3Zjr9Zb/YuSllEymPo+5TbIl5Z8m8mGZeTSplN59h3/RjJ8Gtlp4PYwW+iklSRWnJrLKX9fpb8kx5FbaHjRlyU8MZ8GrPkejMRLL7PkWUjWBS8fIrw/c/45MI+GXD/Y+2Mj8CtXPgmVa8lN5Q5f8AHgpbXgX0sWkx+GdH1J5HTr2KTWS1FCp8nfRPSZMLb2KUioyTmUtihRsyvyhQoVsSluhTOUTC5DdO7mTLsdPeTsdddCmXiSk1kVLHeCFyJc/gpuZWy+TxOI9x+X4KSdtFOaTwy27jpdDt3eTC2fVxTns+57HLXLZ9UpLyYVbFD4/+RTfY/p42kcF6uSt9F/V+wkn140KH3o5f/wBnF+r0uml2ux/d/oT5Jqo0Y6RhfaYqUOVbIlzC8ivUf2S1xmWzl9LUs/8Ap8ocdRtn3LeJL5fuNJqnJnxgxENDt5EuTVxMSL08nlPQ48it0zZTeUJQkRKycZUS0OEzWJPuRUOy1O9lPNYKW12bRbiUU3T9xXyz7HGfI1OPkbTTsvjplt9mPH7Dlsabmuz7R21/8Ih7MKbXQ9KhqVaY635MMTqhRyyYRUSkbiP7OXv/AKF1HsWO1seetDorilbHHXsW1sXsh/U9fo60jfRnY/Yu4IhYMZZjRU0P/pm7cmJlGJhlLyZWyrkx2XZXuZ0j5RkeTTg+WfKFo6HSUv3Pj2HLfwP6RTGS01suWWtGVbNKil2OX52Z0jM4FjCZuvYyVd+R4f5NKLFB+TeWP3TMu0Z3R/yFFY6H5RiTvWjY7/S42Z0Zo2Zyfdof22zWRwpscQd4PwixxsdJ2LKyOHMSU0OxVP5PgVsq7KSyQ2qfsayYrBvJocouMFcuinsscPvs1k2phDrI8KWmX17itfjAry4FTSZiC+S4pqfYj6TSpLsz0W9rocRtH5JTdmikh3pFva0KnrY5XfTGu5QsbN7NOUxQ1+n2pmOimzGvJXSFNZPweGVFz2O3a8HyipMSYeWbgvkqHUUjOEPESUzPZ/8ATBluiJ/lbLSwOG38GdMiXf8Aozsxg2WtyP4N5gysjzSRvBTnf8FNYMrofz5ML92d0ymPX7iKS/S7yLCpluKZmMeB+I8ipjT5GUrLWZLmvYidGWaUwUpY5jHsSnGSrU+S3/RUnsOkW2SlI0qsc1gdOIMDn/Qqin2QtwOcfknUpGf6MijUFRkev2PtjIq5OXszypIST7M+Bw2nDHKSXyZHk93BaOlDFXL+S1OEbn4HimXuS5oVTcDiWcvdmZMbPk9vg7iRSu/As58GGWkYWRxGWbtPwW2iouNHtQldtv8AotO14RiR+7HevBbVFNzRmIfufctlpWO9rwXOtFQOOPG0XeEOk/2FHbJvQ4Sz0cs5R8Dl5FK0Rd9CXGP4Oq6HSOLacr+xWph93g4xOItDtOvIoWExzDisSJp5spwk9qC+MNQvdMtuv9M+nj15OXphyy56NqFJydXJxi3D72OIFUKGPDTa2Nw3aeBZwOk/2H6ppx/JTdcXA45KJ4/9keqf3KWB+n/Lwy9cl0P6nELyJpitK0jeC17ix3XwS2rjUlvDgWXLZbSFlZLe5Gq8fgTSUp+5xTpWh2sswk5k1n3ElGGujjaKaeux+lJRAvFD+laMcVF7MtJITXJaHM4TK9LmFiC30S5hNinTkUp2cIXGpM4T8DiMMlzvodwpRns2rRymMLovkt9ryVx2bhD8G1Z9MzxXkj04SKeH/oVp2sDrSyNLlUIxNsppmGbtESezQs/yY6MSoMu46Rn+T7l+5jlLzgxoxhlxn+hQuy7PkiJyOuzs+PJ2rN+R9qy4iGbtsx+mXhCrKOx0JRycn4KnEip4L6f8nVSW8fo4TtGMjhDmSqtHY72e5g05kcOZ9zOZf8GNmIxoy9eBK1hdjtYUCvpicrLZsxKaaF9Ty0P39jWEcqjJ7P2KinJXjwPNpFPaPwKYyLGR1scLsZS3IoatlqZFnYyoKasy/wDyHHkyrlFvlceBWlk3n/QqdHcFcdilpYNiI8GZzokpDaWZOpXY+5NYbPA4mbKcoys+SmsCzkrwXxzBU2zMFqRY2WnfwfDPghwol4PeSqohvZXY4cU9QJyuKV7ohTvwWqx2KX2XLtCuYbGpcoiEsdDiR3BbOzKyKN/BhuFBPTMrL6G2kkmkOKH9RbdrortnwhW8MvtitqhfSs/o66YtyPGGh42h3scaF7FcnfuVOEMUPwW5kptw0OHP7jm7fgXsyotmuiZX7lRk0XWNi2OHmfBls+Y7KaQsZgzlMcvEMcOLMro6ix/S8vyar3HWGYVe5xrtDtpYHG/Jl34Ol+SUouMkt+mhuUlYsRCK0K3kdtKRxNCnzsyrSL5VkdspTkX2tkeILikZ3Jq7HjK7RS2h/UtFQ4RtQ2PAoTmUKsQZX/oMK5Q9S/YyO8x4OK5f5IrjycJ+47qhz5LbozhHdoxLvwOk5bM5KbLSr4MdC+mZZaV/I737Fy5aEjB3aMJyxxHKUWO2O5tD+q4FbtdChyh7/YdMz2V4yco/0K8ON+TCSpZmSIRhqIKSk02KZy0YSHUo4zNLx+jlSf8Akax7it7VpfJdN3o1ktSezHi/gX0qU2Y6FS0KG8Lwfcso+ezlTqPJ9rpx2Obo+q4bLtF2fTCuBKqfsLGHBDL5KmtMlNN3o53xiFBXHM4G005fscnTmIsdpQkRGDjbVpQlBMTMLRlKVtSXNPwhv0pSOVRXqmPK/S+mfLFNS4uxeqHXZhrJ3ZxxstrouKTcyOn905kpJuEKErkraMNR8iltYXRDaVPZdzez6VMKLN4H0lqxRyThaoeblF6RdQyXCSs9mjjVJDhyqIb3BfG5nIrdsmLaj+Cn0YQvkdWylO9iccseCuPFoUy3aFKextNFzhF6FWb/AIF9MjnlZ/xVow6Xfkf1LfZS67KSwL8ChzEPaMPKKaykOfBjRuIKiFZTePNCnVXAsvPgpt09oraE0089krsX1LB9zyZ7LRnELZ+3ZnZlbFfZ7peCk8HxBlTYqeWhbrwbw+xQsJCp0aJkyv3MouGKpFHaM69hpwpg/wCj5FlxWYM/ahT4HjCPk1g0pkj1Hz4Zlux4tCpqPkxghSmvg0KVtbLXQoc48D2Tl/BC8i7hHcQOF+mVtFLE+TOS9yKtbMTDHWYL8Du3GRfd/I8ES8I3kzhF9Mk2sGGiMZ6KRE5j+xZpFuYjwOcyIrsy2bWRz6RV0ZgpqlIqKU5Zl0jTg+CXFfBoQqVIVZhjvYqVfJUZK4qvg1leSJbsXuU5hDh/yayWmjE3sdv+B4/Zmd+T8G8ESz8GtdFTl+D7W6T6KStrydYF9TK7HPF5ZvHQ8MebHDkcLCRCTIqiG8F9FeR7yfBCSWTL/YX1CbSsWVgX09oy7lbLcGy0q8jwpTH5NZRXkpYnyJS/5M6PDN6HllrsVIxod/2awJ+pUy+jCUNaMeT/AJFpfyW5oUVItC9yngdraKb35K/2ZdEPopvfRTRU7PuyXOehxNNsU9swzHZh00Oar3F8j/8AgoemXy78FlzlIcLEdirR1gpumK0TKUP3OzRb2ccUmO4hpmOOPyQk3Za32LFr2F7ixFDuz4Fq2LLwe7FDX6fDMrrRuDPLBbY/b2JxCYpe2Z7M7HjKFX8GIj3KvAofZ+PBEvHto07RnJjwLZtm5lswhRNFvDe4FTprwZzLH59xXOPBxmVC7OhVhx32Wng05Q7wYdI+7JcOvYlqnQ4lFtUpKa/TTpjqMaFRSz7kwnD8Mp7MxLRfnwf/AE/5IwssdNR4MbJfF58Cnyv7FnJWpQpag7eOjMzXQvqeVgWNGPcSTvQpTpydp/JnZjMm6kx/fkVvXRc56kf05S7Fx4tJw8ew1pt+BvbMocTozOdmU4TaIb6g27/6H7/0OW1EakVZSn+hZpe8ZI+mvcnilhCpW2UmrXYpSwy+Tz/Qn6VpDmJV79zLih+nqPayIqBykXOR+59XFzBhs4w1hrRaPdoiVjopu5OJjlEmqN35Jku4gURTHUHGXX5KTuPBtTWi0uuhVORRGzlOpH6m8+wreh1hLSOMt5HKjGRz0cvBi47QpZXJU12i6g1lfBTFCgcNOfg2fajjEGFZ7pihdjuZXsVBTbSS6MdL+R40L7sLoThYHNl8ogz2W3hfAvef4MLRhuUXxcQmK59S9/J2OtLybUeR4MQaLujGzEUR0kawfJu0KH+47bFop7KbPz+lLbHmky23Zh4Hf6IjyZw2jH8I2KokdTjf6ZNWWY6NaM9DwPODH7FJs2YVsVNzZXR3v9ND+WcqQprBo+F5L9JlL8lRZl2V6ZovCkpzRpHzHUmIoyycUiRwot+Dqvcr1bPyfgvUjLSRUP8AJlCrMmeJ7z0MwjtijpGUv/hnIqcihTRl5RXSMLKMbRF9Gzr9MocVg3lGJHWTWiin+Sy4ljpuz8FzAsYfgxki8tfo/c6yZVGNlpuTW/8AQxVMCyJ+laMLPkeP4LSdn27KbwRY/q8Dcq57OHpXqa4uZldjlmclPJl6FXFRR7yd0Ua/gUYM7MTrsaXKKbU/MDxvtmnZhfyY2byhXxloXmNijwVuSlEzOzHJnx7mcM3EFRhnVltkKcM+2H+RZX7DjilXUkQTHZlfua12KE9F8Yk0Ydewm7iUbHOoKU2i01CQ7XRb6FWFIvYX1LLH9XK56M9kN5UmGdUKY0Nnv4/ShWV+lLlktI6/RRcULLwVeR1j2L4sWdiHKeTKMZG84FPLsWXclt2hR5M1DFeBQ4UoWcwY0/8AZgdDupY8ULC2YWRRWDeF/Qrd/plbHuv0w+/090VJep6PudyZV+D3aHW0a/gU+DLdGZlGW7fRbgiHgVOy1kynk3cncMWbkdp17CMb6FKw0L5/TKUsef2HC2/JhOfcuXYoa7/2Y37mP5NOim9lwzKeuiqlDv8AkvyYVt/0fUuTFPJqDbUs1Ms7lewsPHgtQ2iOP+T7msx0i4UMhpRMinuzCVmNlvQsaJ48V+7K5TvZUKY8Fxs48qvqEK1gcuSPpb9Sk406Ujjk+te59KUr5gylZErHl5M/0cPT37ENO0xU8JPfRT9TsVu53ArcRVmXoX2/+kWRRKyXKFaMKn2TGFJxmYQ3CyKUhxeVk0qNfyKJwVCR/wAretDlpZZU5fk9kvBPqm0Y2j6pdpaJglaT6O6QvUz6WsMw3awKFxdG/wBj6ZM58Dt5jsp5Fl0XB4+Sl/RaZ8Dtq0O5/YyjCgV+WXLhil/0KY0jEqH0btdwNtPJTFFr8GMJoqcGDCHh4N6FjRiTu2KdyPGPY2e5XJjiP5LXQoe0Up/8i/6RM6Mi9zGiYwWtmv4MGnR9zR1+5mB22YmKFqTDLexU0OFhdCpkwtjqaZnMHF8W5lNQZkmWSlxgyV7lvCSFayK+XWSbVkvi8dlwY68Cvs2aMq2uz/lvodPH+zC2XBeEmeyKhwYw35Pwd2ey7KhFI1hicbgvoyXQ55eDuvc+UY2YY83JrRXZjHyaZl2mYO6RV2OElI4bX7GU/wBv0qMSZThFTo9mujDQtWPODKLfRnL9yuScSujZTTHUDj+j9jE5LlG8M+ryNtn5G4FV4LnTKuUivBLSbo3heRQokpZRb1+m9HVsyt9iyf8AIUzkfyXGzDsfuOW6bQseC29Iw1Zb417ltRjom8Muv3HMZYvJKcu+zDcC8Jf2Ouv0UJF1g5Vsyf8AmTDLnBl2T5Le0Q4/YwnbMIz0VA6wiIV5LW0ayKeM0kVJkr/ZbRaeX+nWStHsjdDowsMqMGskri7bHS0d15HSFK89G9Ro1/Aq6KWGjWzeUex8mW/06iBuFdFN57MKh08FJYaHapvyK3Z/yQojCMM+GZgd7K22ZUSzXRT6/T8/o8O15MFzaGr2LH8n4Lm42SowKY/gpJ1BhlJZM4nsylaFgw7kuWjWRYHK0KtH/Kn4MFds1UoVt3+mdChxFE4tmS5N5R7Hf7jl9irCkeXg+DToUPBnB1JbguWOO5FK78CbdowrR4UG/wCRQkLVf6JU3A84O8DxLZhMxfFHDlx//G/S29rRjorLUjS1PyVcx5LnZktpYOUNuPYdaikxzCvRm25f8n1NqzDLW2Ybn2MLK6EuTUQl0U8fJEu0W8N9s4t8piWtC9K6MNZMsx2JPlyr4vJa5OfTOBWpl9oly5bPqjP+jDFd34G2opzaG6tMTi5LcotYstJU8lNWpIaix3gcQoYvL8GNm5/jJ7/IpL/otO2x3noccXoULHgdZQ/SlyRyjbKaqDi23D/6QoTWfI4XH9z/AI468iicNCvkJJPKFimXcsdN2+iom2OcNwSpUJGZmSoy9/Bydui0oSFv9zJKT35kbfkeLKVKNGcNeDjnMdFR9K8irpnLLrwaxPY5iU5FqWOpMqkOswKkrQ7wiIX8mdGbgl3A5bdMddmGOsm4ZE7NmNvY649CrZvA546/TGB3oucGNe5cxbH9OkZ6HoVYRixCcRbL7nIr0fIyHOj7df2ZgcVZcDopCuZ+C3geaX6W1SRUUU+hFSPKytoxRlP/AOGSqZfJbY86Idn/AJlujuBbk5Xy81+D5aIXTL+qbG0PNmdldGV/I9IpTcmFTTPwYWUYw/7HMUfa2j4H9Sdo+fY0KZ2Zf7itaYoejEWYVIwjRbTo6oyrKTyX0PpsVK2ykYdybiDJmZgpzZoqD7TCdyW+h03CXky6G7lCpZ9v07hew9THZa/ctQfsaRPzkVJfJSWyk6SHD7ZbTa90XLiOh/8A0dvez2bLMrJ2OLiB1lfpbdzoefwaqR+xkq8jbRsbiKIhdn/L/wBRt2W+jOUhSkOlZcChNUfBrJ1JidClFKY+D7dDzgexQ31sw3T/ANmOkcW01kys+xfGC+PZ59hZmVgqrkuMxgp59zE0YHKylouc+B0nY84FrRTWPYy1Mj90Y68mWOWxU8tDabasdzZ7D9kXDVDlO/0dO4HCM8cwYy2ZVPyP4kl1bZmGOFOEO3aRSVNrA57LjHuZ2j2/S06+DqGWsQ9GXaYrot7Qmv8AQ7dsstzl9Dw8eSmz/ksG9ChZYkK10NxH7nsZWfY+13GzbhlxkccXTRhKIJTMMwjVmXj2GfgtdMm1KL7Gl2tfpqLQvpcDpPLKeUdY0O+kKHFMz5LalP3M7Z0Jz0SujMWkPUomVhG9lUdRZXhEjwfcqSKSYp98F3KHcUK4uDI1KWhZy0OOMNP3PguXPwKLUmXbLTcM4erg4rwfaqjY376yZw40Uk1M7FC4uvJjvyPfw0KeKiWYSwP2HKblPx0O1HwW+jRamX7lJOpMK1A4nA+vwTCrGxwkx+lP9x+nk3A55RCfb9x+rlyctvMjlR+5iLfkzNjz2Rxbd/kX0pTfY5XpHKbtmuScFLKRDjYsF8bbZSlt+2jK/EClChJRJUaHnRxcYgcLA5cYMrxQ6y9D+ri490O3DN7yK1heBy9R/YvU+LlqcIcJKk9IccZvRnjy30OGlHSE4TlspJ3uBZy/JyhcXTP+Stsd/wBDwogeP3IlOZFW/YfsmblvyVOmWnlDvpjSWEWnD8D+rZfHCNNt+4pXJSKlZMpTZU5HRvHuZzI7Vo+5uGxy5r2PkdscM7Hs+pDp2iUPOPApezAr6KW/J7miVuDD0VB8dlNL9xXOhU9l6SFCO4bF7juclvo/8zV+ZN/pjo9/0Tqhx/8AB+UzOGy5mDMYM5Y7dlTbLTLWUjMZLadCtDnodFmWdKh0W/6Hm2hWsGE6MJ0/A84ZgcxZbyjPZjT/AEVqoNfyPLs/5VIqkUypnSHM49xZ/B70RPLRMvB8ItrPuOPB7/JcYIXXaMaMoxaf9FcW4vswlE5NMubbHc0O2YHc2/5L9VnshfU7aPgt6HCcpjwKcUx1JFwmvAqWEZwU9siBw1+C22dn03CF9SwU3TLbx7ibPgpYRjZaMaZfqcyWksFtcnEdSaVv5MqBy1kpTZrAreT/AIsdZvRbWPY+1UfTViuIRos1DkzhMvlxuS1pFTgScOzHG4QoSwXGS2fhm3HRTkU6THByhti+qC08CiHCnB7jhv8AHsVpdjrSF4noxvojKY7eDayOlaZcuzKmiZ8Dl237FLI0pVGtodPDM5f5Lk7/AAaFEjiMFch21D3Bb7LaqSuTz7H/AO0pmNot4gW3LXZSWWNvpf7N4KWxZ2OE3XsVLNdChxFihJxKLKbtFJaMrDHWYMLKfZjYrRc/k9oQ7bka48VDbLXK5MqvkcQOG1b8mWoPu7P+Is/gqVkwjG0zdpFTUmj58lQOnZ7tnFxtsjk/Bu5LeUimx7gdPCLStGYg+Ga0Z2WTK0KVytHHR7eRZw/gcrP6UkrKax5MxJa5Kn0OXj3RXYqyjxBi5Y5SK8ju4YneX5HA5Iktt7Pg2XKqBwnk+3s/I7U46KmEmW0nMdwaUzqRLwf8r+TBnBEq/kcNUcvUrbY/U03KFTyOOKudwTHZhqfkU3bHKmvHYpT/AGLwoHqxxOCkZbh+Tbh+DbH8HH1T+w4T0zm/Sttj+lKoFHLLgX1N/gtKoQ20uUw3/ZnpGhKIwuhKMpmeI8OW9HLGUjlPquP6J8Qfa76hlRT9zlMCjkrS7MPKzA65Uxd0Vr3PuV0OJmukctQOML27MP8A0T/Qm4qNQcbbhr4MT/6T2jwZWJHbe8ES7/7FKdX2JQ8p5M69j3TZy+lkK66Eo5V8itxJjjpmH0bf0iU8eybx1ApocHgc1HwWuh3FIuYYqZaTKSUMcxXsQuOSk1Ejxh+BqHMIVubHm1/3+juUZnXYrmkUv6HZhWfa8QS0K8lWYIM9GS93s5VGBxCMlrZh2Ooz4O7LlQYaO/yUswKVB7yadlMtmfOC+TyY7NGteSowzEYLjX6Onro+GO07ZnDn9KioN5F17lpf/T6fSjDQ4ayb/kyxZKS0OPYZkZVSn+jLswuVCktu/MmcQKIwNt8tFJ6Fui23+D8+TMWLDyW5tCryVCMa9x0z5Fn8mIiD8D+TMYZT67F7HeD2XRbWTvDFjPuPdtH/ACHkWKR5KnJbQpcDziOhFvDMu/Apm2e6kSniXFIW6/7Ml9odGxzdEeEeyHdCiMCxgWB+WYwkbwmL3MPK/k12b2jzC+WNKEp/f/RjRh/mTKNNwdQ4KbMpJwO1/B9Sy35N1Yy06g/B/wAsi9xUsuSnmB2v2MumOo0Y/kX1O4FaZadyfanSL3Ar6M9FNYQ77fZS4+Df4Mp37CzBnIoc2heG0Jcqx/ZnDF7eD8Hx7lVMsxFM+5/sfI4WkYeEW/5MZaKkjk8jhNWawz5Oi2slt7L/ANkT0cV6VCT23sqHUGF2NJLC2Y3Aq3BGLQoeZLH5sdrBawL07MNS+hfS7Fi4MN0bZU4NIlw5fYoSdLswsmsFbNDmaZhVJUyZw/YdMWTGWOG6kdJYRhqzOxS+WSVA8YIaNSryZ2e4qRSNo1sxxiEcd+optwymnS8CnsSjsdaRTdoaTEpmZN59xzydfH6OnDKjHsVyWjODGj5HbqF0VUR4HaqCnuSkmn+k/TozFn2zMjoVqbNuzcrBrJ7GVZ+5hOi1ESKKO4fsL/s1Y5rJp/sW1HyQoyYaKiyGlvyZbgVtqCuUw0KYalGWOmXH8Cpw56Ivf9mkZhn1SqSKhZLmhVhtD+nklBy9TWX5HhZOT8LJx9TiUhJ8msPQqaiHpChqqHfJYH9v8GU3noz7WL6XBrOqGJJ7YtEVvsUKaOUNOryPNWP6alaky9jUdf8AY64+KaOU+p6uGK4p+R06dE/UoS7PptyN+ldWhXI1dpDluY6OT5cXiJ/JfLi6rYlCzP5lHCnhn2vL0Z6N/shzxbx5HhUim1NZaG/VhJChcX9I6bTKSU/JhwpZmbSFPHbLTxAonXg6yKngq79ynFe5liyz/iy9xoURoaTbFlZHm4K03+lqFx+RStCuYSZ9q35HTdeB4cjjqBbkdZSFUl6Rh3JY7qT3gcRZ3ky8GinqCUpLnLHkyheIMPEjijCeSmts/wD2PZP9FQrnBvRTX6YMdeTLF7FtOfgy8iou7f6Kf4Kkv9NilOme37mtmOVM+RQlBhaNaKTybcFpfo4SYo7kVPAvk/Isiic+5lCKaZfJ38CvotLJv+D5NmlLk1Mo2y4z7luB2teT4HnI8qGZTgXdnsxXg3UFtF6JUQZeBRFwbPteC4NW/YwpLSHkq4k0okUxoWNimDCUF1g90fPsWlRS2h3MMy0U4proUqNi3RlZNHUQUh5qS0WnkeFN7Mo2KFJZq/cUJiiKnup/szVEQ6RiLMO0aeDC2ZmjZU0WlQ5TyZMGNfpjlkzhP/ZZmKn9HWJLcCraZUmDqPYiW5clLfuK3khPbMPPuMzsuClr9LRnZhMWceCvJsd6MdDabd+w+0herlucIdJUfdxwVNGYcnRaZ1Zc4MYQpnBa0Uv7FaQ4Tz+nwOW9iicsuag3kxox35MNSKhV/Z+D8o1sUxUilLQ45ZF5UGLk0fCPYZ+TpFFRrscxbFsprHRSawaO5N4ZUdGXhCiMGVg1kcpaKbpmOzHY9kVRa68mUVKtltbEO/bRvSP/ADFSsdxNmFaY5k92OHmDRS/oc9LspNWKGnZnJ+CnpC8H/L9PnyW1g1ljhsxtG2awOXHxkcL2PAo9X7l9j9zWB07THgV8VCWjKdihDicGN+5nsUK5NmGv0VkLitshaQtWi1rwUyHKoUPU9GFsuCl/ZTteTn6W54+GKGnLfXZlZXY45cXTdiqY/cU3fsLx4OKXFde4qx7C+3fYomh0lDRTThvR9zyzTV+Cuhe7MJQkd48HHVFOZT/oa9hNcuVL3H1JqHRlPKsVvL8nGE69hU8GaSRjk6Q7r4Ys9kS5UGJ+Rxx49D9TUQxU3TOLU/k+5Oe1B0k+L0fbMJdDivyS+RaSwzjPFYWhQnKabx7CtQp6F6pyZ4wkujPFZKbmEVVit22Yi50dYNEtTkURhitMpipW2Ono2ZTtFXsyhQlfse79/wBMP+DCtT2W5n5JSFMZMJYFRpfpL8bNyx2sN/pll8l+mFY7FdkWpT6KWTqEz/suM+ClFN9jpOWy1GR1MwX0b2x30LVmH+wr1BTW/BnvwZdIXiNn22KkKJstxktmqfsYWBW9n1J2hYwfAoZfSMLoVLQluR6wfDMM1LMM3cDoj0tsTlZ8lyK8JDhqjKLFSci8wcoeRYz5FnMi9/YUPMnt8HwfJh4Mwd5MdLsU/wBFt0zLx/s6v8Clszo+7Jkc24K5JzPZt4FuEL6nYi30OHBktLKG4WfIvpw/0WdmE4NstumzezCtvsVaHNij3FZl6N6Lct2fktrIr8F9iqD8+BxDGnxhRxi0+5/WmYbFa2fBTSMq/g9xZ/gUNWiITny6Q5eyKUIz3/QoUMcP+jCYpU0OtCx+4qWi2uh2lMFLohNUL6lUlpTY62s2L8k9nzorsziTZjL8kQtlRcHwZ6Fe2X4NKWOW9CaScyy4U+5+B/InJoU1DPwWoKX7G3CRVZFMYgVzs4w1mMwccTaONvJlPHgecjbikjDQ6f7mTZT4r9iEmZbpm0KnkwsM+DjDnA7/AIPueej9h+3sK3pGf6M1Bj+BfV/Rvoec+4sqUV4N4FaPlGeQvYxAoe1s4zUx5Gk1TTFL2itors+SJVstF3DKiilpGRzWeiZwYWz5FM3LOoFg9js2W3ZbHWI8ndstYFHjyU0rN4MKoFdpyKHP7Gse5szEQTDqDuRQz/yPueTOvY+P+zQp8I0j8ofv/o9mv5MmpkmRTN/JoUaFd2y1KkVPAr2V5FKWWY0KdFspZZjYqi2J+Wi9yPzZF7E9+xbw0L6UoY5Sqv7HPQ4WfcpqiPTt9GeUtf7FuIJuZQ36X/JxxC+RWm2vJfFuRripv+C7tsqNmuuhT4HHHa2c16eXKkcny555Lk8HGY1s+l2NXFdCq0hYWexfUsvQ5jHsT4PudF1MmUvUo2Ulkcew/dZkUPl1X4OMXn/Zxh5TGvUlK8sUclnscWkhxOUcG+Xf/RW0caiDHG1K/Y4y3lnGk02zdLpGIpnKYx7wJrjyyv8AsUp226cCa5JUv7PqlS5JmbY82fSlSqvc7FnfkbfGYX4HCcqGOnc+Ti/U9+RzFlMtt1HuUtMyqEuPjRozKhG8lcsKDKt+SotMi3fgUPMeDApSSsyrRWo7Mx+xfLXn3FeBYyW3bFDbhGn+x1Q7WULOTVouRSnT9zCyhZyZeGd35JyWbqRTUQYM7GWpiC+Lozoz+woeYfZ0QppGdj9oG03odxk/BU3KLk04H9xk0nK8lN5HXYoVL9P3HXRjZbeCujdv3N6MTPuO1RUXA5c29CuJkef5FjNinUEQuhGf/QKtlrozmS/B8iUJ1H9mG5UscJ4PqmmOFEMtO67Pcbh/yKCmsFNGHI89FdlSOlMn5MZnZlKBQ8Irls937msMwnjo3hlGYhlKTVst1IrdUVIsZMNSVCod9jzk9/1rpC9i42K9nt8lxryVNMqUX0U5lH3dC9mOWtdGclaSKSVI+SuvIqatmVleDq3sxpsVTT3J3L9ilpGcx4MTMv2ROS079jTtm8jwpQp9Vtl9GP3KhYXRhwd17Dt4RXfRcZHsUTbKasSsTjY/daMrJnK8Fz/JEs5f9lQUuh2lCKr9x2se5nYqW0OiuzWPYriKFodKyOLyumKKlGNlpTKZpJtCvS/kcTjocbgw8mVp7RnyL5LUQ30X/wCwL6Z0Sl0OWaWTLUMXuiZykx3g1TnokctW/covcC3+CZ7MYbH5+DqH7jzoXsW3S6MJ/ufd7ivRT1BlUxeC0toUuIT8C1Mlsudilt4N7N4ZkwuujLxInTvoccW4aKiPn2KXfkvkx/blCzbj+B2mimLN+xaLUU9GctmVgV9HvIh2oaNq2ZPf/s1/A7grtFKZb8GE4gwjCwS0qYqY57PeDDwivB7CoyU3Rr/zJUWfMmHkxJ2ZWY0U8IWKjyOXc+4o6OvwYzI6VCjo07RfZSSZTFby/BnZHsKuOjf8HyXFR4KqS0sMiasVxb1I6dwQ7TmBy/GmW1T8vsxyThLvyOmoe4FSwKFx/klrsVt2now1MvJ9K4qF5KmZWhS9yZy/YdPHsfd3OR+ppzXRhypeEz6mqnFG7/6P3Yo5PPuKOl5ModMry+zlTpyUksjiNLDRb44Pif7OTfF21qR4SjYu41RXaFePM5FWElp5FfFuuyWm/j4OKfkmU7Mt1/2WsUREWvI54vLFDbVsc7k+pulI+pHyhPDwQ+LX79E9t7Q8b/gT4ri6XY44xgcdf2jHptme/Inyf/rJSboTbSfKGW1rszyzY3OZEo2ayvI4f8+4pUV7nVs1secjx+7N5P8A6L6nmDW/B+R+ZF7C1Q4yfc9imcMuVfZTizDwzI8vJ0YmZN/wd0ZZ+TDFSedmclPQo8Hsx+rZV0ZZl5HTbcmG4+R4dsyKUv5HDexT14NGS5mDV/Jh5Yq6N4HbZbO6MzroV5KeS22d6Hay3g+pvY4pocx0db7MpOzOPgtaHf8AJ0YRnkrNKD2KYssvTQ81bN0jOjVWNq6gpsUyKOvApWmaKbyWsPtfoy1BMLBqypY4gqSo0OHywR6eKtj3TPiDOUsmWNOcHvArnJhYO4LSNuJHM1BTaPgVdG1+D5NYJGk5odxjyZw0jGy23EdIhpvYqVilLR9vQ6yfJRfRqZYtZKl5NiFCcP2NUKzBXJVXQom5Mb9y1j5KeujKL2hzyMqlJvJnTK8GlAy6yZWxTOjP/Y8/gls8QO9+xW4MPI5Tx5KMTnaYnGo7PpWfd+RROUOYyOGrcH2r+RuVZlz+C15KXRe4Pdn+z5nBhZXZaSocPEeTCRbdIdNWjTQ4E4WjO/Bsb9W11+lvI8XBXg+ZMVY4TxBbqUWmdwpKMcnaMa8GE7HEZQ7il/Y5lfuZdsxs2U1oxsf6OUsEN99m8vz+lclgXydZ8jtOjOTMyTC5YPx0YFM4Y5cfIvq0TKzPRnfUFrLKWhW7cfsdfgcT2OFBif2MZRjLZmMCjiy21XsKGbwjefceXjwU9/0jPRkt5hjrlS9y2OOSocPECnbKa/gropJ0ylNvuiEm7N4N58DLVL5LdUiuXknxJS15H7oeejWRq8mFn3MJflixkxteDk6uCoUszy2P2jouSmux/Uy28s1Qqmh12ZWyoqS+PqlpGHvo/wCKHCdfInOzDyZwvcc97HSLTiD2ZlibbySuWGj7sJj+pqpFLWTLpPo6mO2PHWyk+imjjm2uzlKil0KeLwKE1a6HKzLy2U8jhcnA8W2Z6eikrRcZFcwmx0kJ+/8AodbnZb/oahbZPJZkf1LH+jHjTLf2wSm1WIHlWmOHNQRLtL92WmpY44vH/Y7qXkdp4Q6atPPuKFypPwcfE5nyU+LmSH0ujVNCXn3Ekml+RW1MjzmxzEQcvqeTMaMTM5SOSaatjpxDFKc08CfpnOyk23/saaS10coi2cqw56NOI7PZs3oc2WtNFcpvwfc3LHgxlLwaZ8stzk+3aHMfAqTuBxMpIx+m1H/Z9XHszJc0YzRamUz6e0KOj3LcWaowqJc4Xgw8DrszNM1ZGJ+R535FWEUv7MUY6NqjbtdGlRh4H8id2ZyVyX8lrZUDtMoxOdGqKfRhZLgucFJWy5PumP0mH/JxdYOORpqbFTLhFWMac1BaWxU3Y84N4YoY71A644M5Mqxw8pEf7Ml8e/Ir0OFn5Lj+SJW/JnJUOZHTtFbaWxbtET0jDyU04cjTikjeBx35LbWUQ7nwZZTR+SJVwXOy07f6YgqbR+TppjrfuY6PP5NHz7GB2tmXMD8wZ7NukfMjxbLalo/czP6WzHb2e/wbdmHmBUqLZ8mNFp5fkc8cpD+lfwWtIrsec+TEDx/B7wMczbRU7NmbKmJ9jKMFXXlDhTcmVn9JW1+nZhsynDIwP4G/Sj5Y9UJtRDGqHEWjL6NMtRHsx1tItTSLj+Cux4yh9JoUJ0PGP0y6ZbmzG0LUpmx5yYN7LS2OkO/IriBz0bVGlYom2yGi6dj1+4qX4MPJcKWd/sfkeMMtzJ8+w4iIYpezTo8WjAoujMmfPZ0P3RS0h3FJFPsx5IVYHTX6O3ZtioylSFEq2Wo/scpGXTH3R+3Zc4HimMr+DdFp5MrY/gq7RPpVfJhMx2PHfRT0Z0ZgVpkeD8GEseTez7UpkubRkyt/pRUSVNSOVidltGUhWrfuLLHO1Jh6LTy/0vjkcN5gerRTTqNlZQ7LcwaoV8rLf9nsVxtUU20YSyK5vdFQi9HuzCwyKizDsVcU3PRvPY3Ctn26EuLuStR5PaOmU5vyI6s9mOVHwdoynXsP7rRHJuk8DT77I4pRb72Nclcou0mWlFF8XbXkxspyZTwO5xqDCUfJnlLR4Fc0NR0jLMzXsWnRiLQrxI7ekKa+EO3Hsy4WDWn2KJyKkPdG2cdpz4F9Ka5N6ONT6pf8CtpuSmovRyhpwvLL1/sxxwxWXlyL0rS3GxREyvI8aMOKHatsy/xIr40Zf7nUohxUnGeSuRzL+ZHHqcSKrls+3X4Haf7kNRBx+23JxUvl+xD4xKfQm03mbRjlhmE6fgalq/Ap5YaWCVybuB5hwd7LWhQ312ZWxzEyOZ0Z6H7mG4bIrIoqUV5NIfpeEXDPtmxRGy6voSUaH7ocxaQz7YHKbK2aHsWJLS/kcLMIcJ5RhZNUfbF+50Z7MYZL4t4Y04JiB0ypiEY2hRLHc0XBUWjDUmXbNsx6RUOos9hx0f8AmW9CtCWR+7FOEilmh0rgpYge4R93Z8eRxLwYdQR+mi3qC30O8sUp4Q97O5K3JSd+S9fpcYMmf6PyOfYz2PGUZ7NYZDQ0tDvUDvoy0jWUy0y1iS4fz8m8FXMaZhSWWv8AzHSWCksmVSkpplXRkqrguVMeDMyjOz4ZlmWrI9TRlYRl5fkeMNH5NYQpe2ZnOR53owkL2Qo4vQqyhxLsVYSFSwym2ObhscocJWX0Wn/BaWjA61+mUaM9lpIzEQPVs1n9MVQo7L6KnRraMzK9h3mBVZjQ/wDcib8m2d58FprIrf8ABd5M4Q8ZZjclLZr9xQtMt1A7eRpJO26RaV/I8/uZNL8HyY2YQtDvIpNOTD0OZwin2P6j5KjXZHpuHuTSwbQpcChwYVWLGSpY5ixVU2PdMrl2KmxU8ohNa8GTCWTGy2YVi+DESW2qWjMypHaE5kcw5RT0PJnZhKjK/cz1ozstxbMTX9lTfwZTwVktMWagVTZU1H6vENrBVjhvBK1PZ1g+T5MNUPcNHuUZbz2byhZwUme0FJZFEuF+lLoebHex1FDiIK8HwLYslxgW/wBxwX5FaSvRYr0Zf7FXTN4MMsw6WimtlQ7Fl0WphFFLZU5IbMXKFCWxXAvI6a0bce7FocrYvjyU5H9S0Y2mcmuXEb//AGfqUOPY+rH4MPbFKgVNoUN14Pu5Kn0U3j+x/Vj5Ia5NWxSm99eBSsFwoQrf8+SYVMU+n9xQ1n3I7IwvyKGeC3lswnZ9TTaZTRlY9xU1aMsUufmSOkmxxxf7ijk6XuJP1Jcm1ti+mn8mH+xc3JfGKfkpvMj04WKPui/c4+qG/g41d9iiLRhWjatDmMimIbK9NIy5pC+Wcq5UPLhzk44VSfc8itKEOHNsqN+RKPOTzK8mOvJabudDqaQ4bltF4j2LcYE2oUe4pmvAoa5XuUOeTdTUCUvK8CpDULjEjluLZm0xw3fsKFtkelqxelLk6PuaM8aTGvUrcEtnUwRDVlQs+ClNCuaEqtSfSnDjcG89s4wLIqStlNimqMJWv0dmqHSwLOy06kWXZkUuR0zQpSFF0LqjGRQ269jHZjEjtYPqf7odrey4Whexc58FpM26FNUZSwYeWY8G9ChqlOzK/cvyZR0VVIQvgWLYvj+xWsN9nKOOYjZnliBfbT9ilkdGNFvFaIzbK5aS/YyrZkWD2Rb8lM44X59hRxG6su4PtLTyyM5LQqePcXlEJYb7MzXsL3FXXkXyReP9mJFI9YFnHsPzB9uWKlZW5+R03DNSZwKv7FvCNNlNOfcy0bwZWWVuTbyWk8nwdUl0IwnJFujD2ZVGFkuTPXgqKRhMpMWGe4oe0Y8jhLY8fwfjyY7FfYlgVaZC9OTqzWzJjtHzJh5Os6HM4ZhWv7MPYsFvtFeTOJRnQ/kdxRnQ8ZRWjNv3PdSWvGioxGYGNJqqMzZNbOhKei06YqeX4LqoLjRhZSOK5KaTtTlCzZhVAvpWX5Hf9G6XuZeR5dl1bKbytChvRDl4MpxKOOBRDdCV6Y/jr9MZH+T7qhGEOEL1TR8ihMtf0auDC0LeXo+5bK/2d2h6wboXsxfdt6Li37mcyWk8Gc10VDgVrBU4Zcb7LXS7Kev0t8Spc+DK/gUsfiBXs9mjHkdv+Ctv2PiTHQvDPwROGzPJQvI3H6PFn48G8CiMrY/pffZjLFXJSmXNJrot5MLLO4kaabyZjBjZq0ZZlitJz+P0pLSHNYOlDMrZl7KWjY48lsqHXsIyqKLTFCTstT9I/jyVJn+h5cMjpo1hHwbFkWMD3Aq9UCicQZekW4U/knGSrmOjaPcziy5HELA4TpvzoanRmB3FlqR5f/kL2ZrHv2XFSOVGPkzNjltwvBLnvSPtVinsp5+DbaKWu8GOjOUxJNWY2U3LhCcsVvXkztGLh9od9eT/AIv0tQKEnJq0yvTvyKW3Kf8AAvVx5Q+KbpVbOHq4+ltPi5SZq3AsuUPFfAqW+hvkvA5f/qFqGOZpwX4/scctV+DjL5IpLAvSnXt5G3y5UoPpdwu2cXHfZUHH/l6XH8jlzZaihq4Uf6KSbUlqf2FSx0Nz15Kl2cZ66OMTfLdCiFTgXq05MXZxl8bQobltlPjb7ZTxPwKXJxlvZS5aY89mn+xyhrPk2O06XgVumKXpsc8tnGfqlsUrlkrk0cZl25oSuYZfXRl4Fiz4ZciiMR+iwNYbj+hRCMFPlXwOf2M9HhmIlwaUp/0OYcwWlBYo6K7RuxWqRhsmHlGMJFplaSFfRTj8n3NaMxgtvX6VGBQ2zWUNroUrEl6ZS2eyk+7RTVNFJMhKLMRs0d0d17FLo2pHDyZwhUtifgtu/wBN1BRu7IhRKNimd9UYhjlcrRjrUGtGVk9ym1DFL1Aqey1hoT7RgpItqJFD0VP/AKSOXKLYpaz4K0iJl/jBZc6FuzKWBewoRvXkVFNxHgn3MqzzJ9zFEG3+xhV+llt6Fj9FkucodtyzZjoysoy8wKcwfHZM4kWceSrwYii12ItPH+ivHSHlQLFGW4FPkqMkcVt+DH7Ct49xw9itYM4sdcsIri6sxhIVvJNYRLfJDplL/wAjHK2WnoVdC9mPGD8sVv8Ak+5P9i5eWRKqZ2b2KG8IVJX2fMkVpG/yW9ivbMT+RU3IndimNdDvsagw8rstK5PyfJiKF5Lm0xW+jlHdFp5LcGteRxOp0OPYUp1/2UliTdmE57O5ZHJSo78lOMiyhexiMmZFPclwoF7mck3ZhlQUosWMI+D9j4J4pZZvLMPZZPh6/S3glJYIdp1ktRS6FUCnyOFvwLOX5OVzq6FuWZ6YsTJT/otZQo18GY9JmROt9l9yT4LhP8n3PRTNq0zq0PKpGqoXuykLxHRX8FNRZ/yPxpFNa8i8GP3MM1jyL3YrjRKFjY7WCWLDmy2KYdLx+mVgzhFjztDl9mJP+Nsv/R+4vYWslp48FoVvZX+yniOxXOC5PgXu/JlOWPGuhUU+i7llufgWj4Y8KT7dF8mKOxz5FLe2KZzGhZ0L6VgVPQqwRE2KowNx0sEJK0o2YTv8C+rcFKPwbR8wU8nyOxyuKvsccntGVho1smcP2OUPKaMqp7NaJjk5jUyxpNWi1/Rl4XgWVh95OP1Pk+PiCXP8FNdZ6IibRXHjnoq7LfXgx5LW+yXI4kt4fgVPsbt4HPgcS4PuWH4OX0pZE4S/IoSots3k5Ycm1KHTuOjPb/ehWKVUM42xerlvyPNR0LBbi15FDjI4UYHauRy5yXyhtijMI+p8X/8ARxacEys+UKlZD6bE/VhQWmsD3Q4q/DHcNJ+DlOnI6Q2mqvs4v6nY3HF2iniBR3RvejGF7jj1VJ03JK4qoY6ZqkjKOjzHljhqoHD2dX7lPKKlyn34Fbt+xUfhFPstCsmHs3aZ9zpDpYPwOOkUms7MNQYez8FNnVoxBmZZ7sxJh9/pRmbPt8HyOGe8ncw+hU4xgeFJWh+6KZcYKSmj4QpcUZTh/pqhT5Hj9jWzIsmCYSj4FGvcZluxT0LFsZfHa/0Sk9jlvAsbPwhYwXI7ik9EKNjmcyXGGV0yWmO1+42knZ3TLMbRhZL46R8C3kzMItKiZW/Aqar3Hb2dQKWjaopxfuauDV0ZeWOsHZ3aFBvY5hwvYcToXyX2jKwZVpvsRgo+16H7i/JUK0KqgUrfsWtSK0hXon1aLS7zJ1otpyvwK9j+nouoXsLwp7MzkfsZWPBLTcw/Zf6KhmeujcQj7v8AsUPKPgUrYo8MWNmVseMi+rcjec9jkuRe3g10K5h+woTMTSFmkO9jbSJq1Aof9Dhqvg6o3+xfY4aKSKWiEtPozLyZSF7T2VEl8fyxSKUOP0WCFLLTopfwXI6TryZWDDVeC5MqkZQpjK+R/TUCp5Z+DCr9FWTjbdex+RJNYMotcrUCyoUFyoHFUK4clJuWmOX34PtdQdnZMYjovFleDOTeR5pMUOq0eUW06M5mKHHfkxstajsyZVJCxfuyslPaMUjuBuDLNodO2XJnKY+2yUmP2Zmf2FL0x2/9n/JGFhnwTDtj+r+Ch5otrYs1BCoSnsX0j1KMPfkzk8FPMn3VgvjN+52WZ0Zmn5P3MdFxgd7PMmZllSNNLIt2O259jKiWNrMlprIvqmn4MPBXJYXZ+SpM5aMJtizDkuOi4bguWKeScJeC07Raj+yKyh+mNCt4RUZ9yU+heRQ05T7L9WRXsctaXUDae0R6nnsmVa9jCqPBTdKRTyFacmW5fR/ydsz2cszTHax5Mrx/YvVyn8GNrydZJtX5FLePA4TdpjmFnBytq0V4HETK/kbU/ufJtOWUrhfo/paYmuPQ44pyvB/yp/yPDsaiW1HQrlp/osu4G3FolJzLNWXGEck2sFJU0fdyz3A6Sh+Rwmy+LX7mUKYoiXJH/Yr/AKG5Whw1mP8ARfJM0OJp+xyVSkvIpcWxYwOtlpU0ObheR0n2bpipKynNSOYUodxZbSLWUh4/kvZSa6Ja5WWsDxTZmLfgeLHimvJmKTLUnVlPQ6WP9kpqp8GrZK8l7NlJUx0i3/A6E545cODeim7NXB8SVs1Zl4HctplOMmNst/pnEGY/c6sp9DtOylgUvR8mE8Dh4k1hj8fpnaM9+T4FQt57HCMrQ67HjHkwP4EioJiaLjYpa1+lzY85HPF7GYR5s7sprfY8mUOKhrTNRRNOGzCcOfYqGd0Zh2WjO/cwsnyZG6/SkhUt+SYK6RU6NZ9x5Ufp1Q7oxpmEYFTmWjCtPoU1KNGFTQ65UOX30jWWOnUnyxz+xgdPQ4/2W04ZlivDHPZaWDoo9i3MMcvsdvaHDwx4HHLtmXkqMGUOIyjNyzcQN5t9Uh2Q3FmGzIqZcWUll6HjI6dwZYvq6MtQYTyfI7blI+SDeyJ45Lc0VGUZSow0KNSxxQ51I5qEXOjq0O2v0zMwYi2ZF8FPJTKl4HTYo9i1r2FlOWVJr9H7jp4jsdozORSlsdaHlj9z4ZoroeDGy1o6yNNo5TORmEUuzf8AA5eRTGSnMQOoryzTNXJiNdjtumO4ktRJiZMLr9Fc7wVy3BjLFiXJyicGVsvDhGGhzpo3o/BS8mljRTHbvsfwKO/YwOmslqcmFUGMj28mTOxwpk+pTKMdeTI8ZL1DHjfZ8nX5MRkcpbLWvBtHdiiEd2zDVmWOqlGHguC3tGWqJjfuJLa8UbHXZhMudnlQVytX0ZjI/PuOE9H/ABVT2Z2fc8MXsVJrI8LBbefYvksSOMjvBbUDgcNaLhmbgctJeJZ7UZeIHvBVU/I8UO3sc9F9eBy4OMtWjPKGkUyJ2z6nF+xSkaXpcLwUl2NLk3CotOhVr3HHHiphdizZlOvYf1O0+jlHHtvYrnBtyVL/AGMtw+yU9FPx0V3Oi+UuGutDmm4Hefkr1Q3+ifJLHuKIcMb9M0mWqj2Kbd9QZUytCacTXYocGFLot7FeBQp2OOLtlN18GOz8FwsbKaqUYTUH2ppuCvqUPwO2QpvzIvdlyR7n2vf8CvA/VOfcccYXyY0h2sow2mhQkUmpR9zTlaZlfwbyKYwLO9j+IFVZFEM7MRRjCH6mcpixQ+jjBh1BcU/J1DRjSNO2Ye/Bam2XqT2XsZHrQtyfJkusHVsUVZirZxzbgiXkWBZVtneBx2xTNNilaNW2zyyHJvAvbo9vc9kOxQnh+TGyz8I1cmVbYr3+mHcnyi62Z3IvpMPQ8D3Z7lbMvHsKWtGtDhuyltnVHvHQ6kwzCxBjoUTlH4LswqbMZFP9DninCQ8tlLR8iuaMMt6Y8qGPtGr9xQngUTsqjKHe/wBPiS1sWCkfg25YupFgVRRl1Hg/BZr8GHRoQ8s/8zPJ0j5MqJRnKj9IXsYWDGTKf7DiZH8mypefBha8FyOYN37GMlsUQ5NYRbeTLyUlTHUyOdFT2PCpdmE8G+X9IvlDH8s+2KMDrRnQnnHZEMizQ5fY3WR0byzMQYcGez5Ppb6MNbLe+xSY6FXRUmdnu0fHsWn/ACOGj4PqhQYiY8lvNGD5LjA/aC3pGFKMTTZc7MLJlYO7HFZ7IldFNoxsSSijalIw1Rjs1UlrEiy5SLf9myyUnKZwqc/2cYj+BXoxGTVIzxtGhWOXhyK1EH4M7MaZPFt2lh+RynvyfkmIo7MXYhzyeDY5zZfXgy5OVp/sfcnRN04N5HKeS09+THR/xVmcjvHuNv8A0VGCvJ3Run2fwRBESmU3kdzEFN02Y5aFT0POWOux1pGEZijux1a8ocVYvkzgfiTESWv5M9FlKPwx+E+0YMrB8yZStGLoiG4Z8rwX4HS/EmXTPaRtQ1gZXQqez49xYHXUZHEvGz/ki1sdxDktOvky3vJnZHpVd2OsGG8mMSU0LNj8JdD83gURgVN2Wky3of1LLFK0+2Jy0+U+RqHT7nwYijDwujVP2N78D+mbQrhnJvk4huxU4vpGExQ0vyYW2O0vyO8JMVZoUQ4aNzCHhz7ipWmPGWOIkxyKbHPIVrseFaG2lgV5fuUnE+WYToczrwP7uMoU1ZlD8mejePcc7bMLY/umxJvSMfwOW80Zaz5HbP8AjSQ5S0vwcKqTTr8C9PHDITb90cr4stNyQnNNnK9piXTKUR5JcZM9st5FPgT9OBy/GERM48Cv9hQh+EWl2cb6HMoiHSMYkqW5cjiW2n0d3HRTSkTzDLv9h1X+jdNFY/8Apl5Z7NeSmxRxml5KfJn5Il4Q0u2X32Z0exvEHUD3Zl1Q53BhYKaUjvlZ7mv5G4lmcMUTSQu4SKM6HcxHQrMHx4N58mZ/YXsytNaLQoTyKO5KhGdkYEr2eTGZFhR5JV2VP8EONGsFmPBm4FLxBjXubz2hNTdGzGyl/RXSPgtNVo9oPyaQvcU9IRuEj2ZTdIWDaagpI/J92vArSsdFj/8Ao/yYTo9khHy+kfDNTHuXI7EvU7ns+X0hV47PhFTocqbFD2YVoV6FLTwXDkx0V5HEU2PDstbPk8X5MdGH/B7iUvLF+BypmRVypseJgqdjzr+hOBRYpeUjLRnSN4jRjs27H9LwyWxz/suHMfB72XKLSqC9QKmikoscpsw6YsYL20Y/sVswtCHfTLcfsZR7Mce2RxOF0K29GNCmoHfXgVN/uYI8M/8AMpp0+x7mTGkYdwZxJkdOyYkwy+3qC+TdRoceDLceD+RTMWhX2O4llcUfahJ+p0y57HU0fbo1sShV7mMyZ/aD4Zp0jGYFOqFTsicWOWew/k8tItpfop5YFfG2h5dIyyvJfkVqfZlJHx+iy8jt5XQpe3JTyNeI2Ut+Ue8f0ZRl46GXBno+12ioHHF5Q6kUp2hz4LyYZ+RfS3ZUKE/JlTEdFJvBKbwYShF1Xgp7FMIaiIgUQbVPwV0Q06RnCXf6YZkUGOxUsQL6jzSMp4K8vswfBhGdDt4Mup8i92UnlmG8eDMy0L6Xo1R5piN5HC8DlPQoVw/JMOmimtrrsVrujPHHsOZwjqG2bdrqh4Q8Dpu5MzKRjrobmZZc1HZcfshxtvYpXGoPkf1crPph/DFF/gcpcX8jjisLcmnZrH8jtGMDlPZb49/yO2ZVChzA5uz5ZSwmY8bLU+x9TaSjMDbfkiW2jPFtNfJ/xf5HDfWCJm5wzLcUfbp+TC+dFtulQ7xYvk+r1WN8VxqhtuJXY36uymlEf2K3hGVoWP3JuJHkdpz4QvqkduxU4HMqF7mVkpPL/cVipLI4x/8ATYr4qP8Astbn2Ibar3OF8qa0iE+hVtH1Rhimcsxy/Y+7oUp5FNTAq5fsRLzIpX9ih8SuVldeCXyWH5JbWS/9mVhfwO3b9zS2VKhDtK14N4R9SSls+5pw++kO8wfsOvBpNDtTfg2qgwrFKbOzWOx+UcUkqku8d9ErcCqWK8tCpuhVA/CfkZjLNy0VOJFnCLa6E52Uv5PkbvBTmz8ijQoTcx5MK2ewreP0X1GOzFyz7Ysd9imhCytfop6M6KaakpmcJF+5tyax7EfHXk/4nx7GFlmIcFzvyaLX8GjLUGO9kDxjZlObPlicdDpRXg+3MGMGNFVBnRUrQ5cQxROx3g1kX1PsyW2/gsUqb8M8wbtIhp6HN4Fb2xSpcCnwXZTVLwZwPJc0x3oXlsp9luIjs3BDdFJ2jePJpkOpM9GOh0/3FKMzEHVDnA5vfRUbkX4wY8mV2Xx0OGiPJfkwsTk6lkOf4OzLRcY9zGTCKb/B8wKZZqhXgUb+TCr3N5HTHf8AJ1sTzgqBKYiTSsw1RDe2KG6MtCz/ACfgy8oeNP8AcikZm0ZKhyb6K8GHYqLnA8YRlMpzkppz+lGXR9LmGKZqPBaUROBUqlYHWTaiEfBc59hSkjlPHMlL+P0tM28MwzD0KeM2fa6ZU0W0xVoVMsShRMjl9FVMdCM4L78F7QqZebRFa0Qm8mGcpXRb68GIsiFRY6dQyZvwabkYp8Ix7l8dmzDUR5FCMNV5KbHWPktPDGm2qfgtTaY/pkWOvY259zMyYg+4V4j+z59jWx2zHGIMTkzgcOzGU/I667KfRnUfprApkYrgw1gun+SJ68FJYXg9zTlirplN4QqRu6FCFmLFDSbk4zKtoWR1f5Mu5O0jKyh7x2Yd+wpWUaZul2XNtaKaVewo5RQ/U8NlQrIfqWei1tHHMQzDyY/kiMohRRvYoh0Vx0VkWB1xpVm7F91pH3RA4e/Bc4Pp5KmsjpdjUOEv+hynbHZ/ywXDhe3YqwoNLJfJ5FXGHPY/S3cmGL6Wpl9lRmtjjDF9Tcuh7a8oa+lJNPZDbf8AZhLJUWYalstLa7Gk4o4+lTbycWuTdCb5JW1RfHCT/g/418jlu4PwKtP+hU6b8i00ns+lsf8A8OoQsZPaNlJGIxqCuIoSk4TyeHo4w/7KXZa61BrA9SkOE8pn2tCiU/T7GcjmWs9FKJkpQ5GSops+RXMJeSnYtZFklLa8lrXudwy1tHuzlei0tDhrKIfQ/qmEL2FESmP6UZ0/BLfGxU6T67PiCtGrMv8AgtccIX5FWWKE9FtOmK1RnpmUjSybvx8mWY/stp4Zq2hR5Hv9jbF8nf8A0Z6LWxRDyO5gtTKFTeRVyaodZb8izJ8sVt2zCF3Bn9N2y6h+57Idrro+UWj8eDeCkrYqeSoLFHaMkpn5HTUMw8dk20ftkubRu7FlmXYrdlObETJk/I9UZY5fQq0V/sccYhrvyOW8Qdyj5HJTPlmBRH6aqBFRSgxLMaMZZpNjnaTLqjbheTOj7smYsXk4y30Yef8ARozJhLemY17mpgprZh5gziClyFqmfB/xeMUauDDdm9lXTKWhYpDuJkcryK5MraM/3+n5RpWKELLyVBpYMS5LTaR8DSSt9lD6/P6Ywz7cyW8rsmZx5Hh5MLZ3RdWK3hlNMTemdItq1BntGXvYvE9lNny+hVs/KHNfJbaF1TNZYvYwtmFgSpFQWnpFPPwayObyU3c7MLlMH7aNf6FM5Oz4GW5PgxocvclPft4L6XgVzR7j3KLTMK/BhO5yKXmRRRejHHKK8iiNm0ZgtqpHKdyYSwU3hldHYqxIi5wK/Uktn3TFlqdDmaO1JcaKFHJOJ7Qq2fdxPeB1y/YUKaZvJW0x52e4sL2L5LDMJWK8yVNTJlPJrB3kbUa7MxYl6klYqQonC8mRtN5Xjotu/gt9i9vYy8FRguLfsY/ctrMFLcmOS/ceIo6k6mRQ1vsqCtHFXXuZUyi+p0K3hDhRa8ip4FjjRjD9jcxIoaNfyaz7ELbXgeYKcsz2fSmtl/UY40kPGOxS1XwOk7KumjG1svafgiMkqS5z4Y6zBSMddlLci0V4PtiZHqH7Gels3djuqMPC8n27js6sf3ZkdZa8mcGUL5LeBXGf0VtFP9jBk2pOVf8ApMae5Gm4siW1fYklRhfgbTptYFTUz/oV4gp5bH6mnPsjX4Mq3uh/Ipapi3An6UqXkThXI/M7kc8on5FXZyheexyocIxyxRu2L6fBPF6eCW+S9K8FCcbXgqMCxUGU/wD6d2YJlKimUlB9SefA021ZXKIVC8STNSy3+48ZHWD3+SobcHL4YpaLWS1uC/c3lHt8FqMGqTEoSsdt0U5t9FqEzGGZ7RqhXGTZlYY8MV7KlQaVFenRjYoS/gxUGJheRS0ZWUOZcpjrJukOC/8AZcLBoyj3FhmZk+S5wjOzCVtn5MI+Y/SoHkwqMzk94NGD8M+R0rZvSGqZ+OxS/wBjEW/JayWYwKsmdIeXHyPE2YimOWz4MHu2a0he5b/s+7lgy9mnMFr+B1pFSd6M5Pk9zL/gyLGGYjJTdoeRTHZZ3YsVJlj0U8jdjp4SMFxhGJj5Oy/c2hQlozo6tF9ljhIuLPk2sFFxvyZeSrLkWLHDTkvozAvqeWZVfBhC/R+xrPuLx7m7SK6KZhqPkeKa8lQZVMw1LJc2vcyV2z5KUZNCvRcm5H7H4NE3RhKzHKn7kJGRQ9DajBc5Zl7JbWjZsmTTscWZRcfwL8E+WZRhGzKyWnl9GNQKkoMDt4N5LbKbdlxgjlOzWf0zMtoy3+Dj6uLptleTKWUOZsrVmCnocTgUyJJeTDOhZPkVOjZa1+kt217FMynbFTVMpMlxrs+UbocNdjkx/Y/cwpwbWCfLKh5G5ozBnDLWWbHX7titFObKjJh2O8s0rgxoe8mXR+fItjiMmtHdnVDzryTyizZk7sybmULGjEYMP9hzFWZViiMMz0L1LpbN20j7ey40b0dGHT9hxX5JnH6dwOsQOeLssVYgl8TOJHEs07faNqKPf9MsSrRrRv6pFjB0TLaMPZ93X64amDKN4P8AjUG+xSu0PBMLQvhlMdKjLX9jjsw5hkWqZfc9kzbc6G7d+KF8rstNn/qMNWKPPg90L6kZVtFVgWKMvI50zGSnOR4dDvUmJgt8csyUnbHKhDpKkK27FKwn4MN32fal+5iMGG8eOzlXK5WT/lMPF9FYg3loebRyXpTGmkseeyPqUilYcOKHOmmONsnkhwkrQ8UmO1UsU9tdE+p6HO5KWnGhxO0OVv3Pu5V/Y5uOx5UiWbei4/k8x7Cpu0xNp5KxgpjTzHufIp9TY/b9FFW2JW4bKu2Judl3S8G6gUSRI1Cx2Y5VV2Nt/wBG/wBhZwK3lLovirglexl37F+CbQo66EcrbHCbHW/yaPtWBw9GaPq45aMO5HLwhyt+5Xft+i9uzqjDWy+LWD4PZm8ijj1sp6M4XZgT7X+jWEZqUa2bj8lXjtFroy3TGYHPZh6FSwWYSz5LluD/AJXAtUjei0xNOI+DW2W26jo6LaH8nyfKHXX6PybNbPcVuDJpforyfBjJ+S310jW0YuSlklqbY/pdfIsUZ0OINmRymWi08eBfIrTZpWjE2ZeRxDsXyXClpjvjE9SdQzWUOtmNG8FbcGGdfgz15MNyzGiivJiINaM4jszpmVgctjvCKe0U1hk4kyrjwLWDHXkU9syx1H5MRB8n48mcwYiZLe14FK5Y7MPK8jmpKpe2xQsndEPyLFNfop/0O9+x922OW04Q5/2U4n4HELJLbdGHgcxbYoaKnCHPklr+xL0iy4+C4vyWsz/Q8vArVSz6p0K1oWfzI206gytGyhRGPYvixR4Y/EGVvsrXyUtv9Pgy8lN5fkWNmFmDl5gdtr4LkyxYQ/p6M20ypzJscRg3hjmIgwjE0y+X9FNv9jCyP2MKTT/KPumvY7pjxg3keM+UXU/AsDlu14RTzJTRgn1P6jV/I7ZiZZkyh0mS7UyLDn3FS30Ux5x7H/Rh78yKksj9tH1T0OJGpUWZ7MLA8/kcz0XcD8GUs7MLAoembwf/AAxqCm1LHfZvZb2fB9rwZiTO2OGrOnJUyxTGC3GPIuj8F9r9KeUOfBopbQoXR5FO5M79hbp+OzM0yVEFJ2mKVFyLEGE5ZN72W04ZvHhjz+w4TyNJJQvY+7zs0pN5Joxj4E7yx+rlCtmxUlj+xY1/Y54t2eYX7jxDSE01lf0NL1WmYiP+xNuKYnakxxRr9y4psprP5PyJfVND+pOE3tGlKMcRr0objf8Af6ZeUKlc9HGeLSsnx/2dipYW0x3EPxQ6Y4z9Q5fY5Y6ivccqLXktp4LTmv4g4+rk6Zxa48bS22KeLiUOGqjfgVKlWEO8taa9jj6uL5/JRXFJNLTFDVoyra6LT290XKw9Ma5S9iiXJyuJbmhytjiLSyYf8H2p0U1iS0nK3AvKHiKOMccL3FM2/cjjUJG6a8mt9imVUCmMEJzJmXRbT9Qstx5M8cSOYbgu4aeh5+n5GlxVv3HD0coTdf7HeJ6Rsd0Ostakulgekl7nvI72Y68j9L5NuGW2oMvElpGXvwaFhyUlZlj9TZhWxzJSb2fb3tmnTXRT72dyPDgdFOKJcP4gzgWX+CmlghzlHs0x3+0GVhmnnyZZ9UYRXaMqxT7G4yX6rjoisGrRiKZsctQYw30Ya/YWTDiuhxGjEUa2ZQ/qjBfb6MPH6aUUZI+SPJpwe9kRmTDowKG8Gju2y1pfpnPwezR7dj0L5ImRw9rwKTVQuhU/2G3ttGUW9IyZWDlZiaYpuXBsWcMtbFHlG3kWD3LSFFQmOXyVvtjyY2jCoX/Q7SMvPQs5KnJopb9x6pvsfuUlleBXhNivXk1s/YUNbL4rY5bcp6MQO1ktRYqeIHbOUR3sank5SHf9j/3AvLR3gV8pvUirDkqNHGD7ekPLofuhXh+0lw68GGsmEtj1ZkwyJiS5tGf4F7nt8Cv+hTVGsHRj+z3MjqZPdIxp6LTpMt7gS+lWhy9roltXPky8jhq5KcOEck3OUXGjP6fUokVjaqhr1JOH/sbT3IpexxHZy9i3P/wcpuVBaXRTaL/YX1eeh/S8diqIb7HbUpMuFaKSZtlzg0PCyZ62bz5OqPuixYMtRPRfJuxxoeHKj9KaE1P8Dlf0P3RnkhSmYWvJnsa9x35FbMP9yilsmtFuZTNOY00fgvjoUp6/o4w5r2LTyn0LNn2si3SLj9hZRTbP2HcwpMJtSa10ZQ0uPJfuYiX5ZdUOOW2OFuC0sG1hDhK0h5QvqehxyalHK/AmVZl/uVWURLv3MbHodz8DtYRmLZfZUUR02ZWhTOCeM5Zqy47/AIP/AIOasyOW/wBjv/zHnLKaz4Ha/gVOl0ayu0aefB/ybgd5jyUlZx9MWx0mbwx5yW13pGGsjtrJlre0JNqDFqx6sdzDjopzEmFUrvYrwQ+KVjuoH8lvLFZyUvRmzK6MqS08owh0sjcVA6cw/I7avyy08yVyfGp/g/8Ahl18GE0bppDlbH6lyuSp447F9te6OSa67ZUxQ/u6MYQ6iz7p/cfp4vZx1ZVwl5OTXHjDjLbOV8eTlvY0ueEk18M+7i5bX9i+rkNynN9GWqnHwK0sHGW5XLolKk0URdTrovk3Zl2zlWW8lNf+s4uV1gc8ZmXmSU2q9xTAplYKao5Snsy8lbHPJfwKfS/yJeoy1kXt+S3xjPue0Ediy58igiG5HC8nwV6XZjXaKfXY8O0y+zGTN/gvtnujMlPjn3F7MilaR9swhQpvsyuxZ0RWzES2bU+wrWEjMyOSui+kKXMMWBR0hZdkembRbVI/4spvQvgvOTVGHZirMNitaFlUjHZS8jzsc3kpbRUZM/yfdgSiGmtlr/qjejDiGuzUp+xuC5PLHfky9GHJUspss/LHG0bWT3PZryUpmTuDOyJXZ1Rr9j3lDt4KSFCTvyJT+R4wjO0fk27MxPgU+w03FFcmzWzDy9HG3Uja6FWzLpLwMqHI4aqx40KJcfGhe5nKL7HbwQqsU2KZNLYrbpDv9iLyhW49hprBejMFwLGfYf3XBfFbM7L6ZqmzHex1ZnBvJCR5hit2Q0lRXsYHgSiVYq45octrPn2Kc17frlxJTd3s3bFCWRxFms+S5wzo+3LHMqPYX1JymTamPItUuhn/ACwzCVe4um/Y3rwOX/RfRlaKhYFTK5ChKjPRSezM3BjLHax0InyO2x28shtk5sSjMrQ/JaNqaHCefctMz2d/sOn0Ny8N7FCdJjiMrs1pfwdFPUGOtmJhdChIz0SrmTUyT4kqc9FLY6kxMpGNj+rvwVyf7lRRg6t+TrB939EJmdye9GUYYrbyV/Ysjh2pXQq7MCiDGTDs+D4gd6nRfHyZjJaMtGTVinyOlMscrBULJ+S6hCalKZHMWW1afgwnTRHc9CbnLMSLP8mXSLFMHGiktCbUGYhi9i6j56KTEm1LT2jLPt1JniOnsUrRlK2VKryZacC+lq2YdGHkUenPkUrlgxxuOxawzTHSgcPwUpv3MLJcDzZ8jhf2Rez2szsisvRqi4Hgp2ONRlFLEd9iUZFbz5HSagptspDTjMClp0OyuPIuBzLvwfgVzkys+x9KdeRUsT2O1l+BYLXplLyZiUn2KYHexF7OSSbHkuFZaH4Pk5P0+R3GByklK2OnTnrJntjy2mY0v2JXJQmfS3sVLvMihrJp2OIz7C9vKgVNJfuKUrMpYOOEYeHk4p3KcWcOKxEoS9Ttxs5TxVKohvsX1JpeGiml2fVxi30zHqhLvyQl+4oh1uhRH8lqcv8Ao4wsT2VGuhZ2KXMPo+6a9j4KF7TYoayjG0YeEZVjt/wOticFp0macQYUYN6Yp9NMVNbPtVR5FXQnWu2Z/gxsVCbauSmzR8mOxSfBxnjsy1ZTbm9DyrFEWK1TFCZEaMbHE5noWEaNRRjscN2fgw/0730LP7DZSxP6dYLRYsimHZkdocRb/RWbpD1UkXs+RGB0sow8jwNjxk1+mkaMN/gy6MIagtuEh+DH9mDCPtVisdL+T5MuhWzLFfkwxXApl58G69zOB4/kyWtlJKEy5qWYxBjR9yqf0voimV5FOzZ7m3sfloUs+5WjMlXgxr3PyVFoei0br3RlbEmpPlGsn2tzJUOjqzoUqzK7we/wYWGPw0Xf7fpgwi2d2i0tFe4v0WaZS7LeGZ2zLN5FPZiTCyL2LhZ8m2Z7FTFjAouJKg2NVZaiI8kvbMJUYwjGhp1KRTaPZQaM7Q6efY94Pgyv5PlDrKkhLLMMtQm4MfpfqdldlpOnohJ3P9Gei0xZ6MyZ2j8l6caNFvorcCwLNoVpyxePPwOoyOHoUOTKMrD0Y12xw0YWWVDak+HsUlQhxuPIrdL3M68Fe1FqMH2scNYF86N2hWKW1k+X2ZWH4MwXRnTFRniYy0KyVSaQrX6cmknMD0THTOv2FOpP/wBYS8jnz+lRTR3+xvZ8+DQ6bL0zDymYdIvitHsVmzM0a15PhCrRN4HSSo/Bh4RUTK2WlhCt1CLWoLS2YsieJMpGnRlZRu4MJOhXiBJqB4VFTgpktopNCtomWpFQpdwYqBw9G8mGOWjq0fdr9HCiF5FEW2U3b9jPLECzTLhyiuPFXBO2KElL7NLJFWU2X2ZxRmTGkJ1aH8dlaS8ijj7yZ78lRElNUxZz4MRZnEGU8bgyZiEhexTZ8kJL7v8AopYYqVQKEmU9wTiIJbUEzgv1PHkUcm7F9MymP0+ln/kb3oysLQ5auPApla2KZVr9hRFIwtC+rPsP6s8fYbXY4umhSn/5iSRxh3P9HCV56OEzxTam5HDyzKTycVahrQoStdjhYU7Lm1HYmlx5ZNEQo/kfqbzBlD8v3Fu0UuxTFOdk5gc7c9D/ANwfdA6Z+Y2KE4hbk/8AMeGKMR7meVOBDt2WkpMZnRywYVwU5HC8CtVGvc2ta8GcmRRoVcbfuR9WGUWjPgflLotd6R1lHvJlI9kOtvyZsuab6Il9DrSMf9FQqYoeELDkcdHwzLMtmOy/IqVmxR0SnJTN/mD7VotJGqfgnEoy8GVsX0tUUm7MbMMWT8Csm2UoktLApW0e5vZaee4NmzDqCayL3R3lFJKBprseNfpcGTXZ7osWHM9lpWjGDPYq4ihuh08spRj5McsGHUI1kX0nyayOukYSg/It5N7MDlvEdC+3Znksk/UZWR4v3M9Et4LSyzH/AEZ2awy0vyidMcIusilcmpM8bYn2mOY2ZWIMZFTVsdqmV4HehSl0O+TorZU2vc+S29jU6NUzOkK0e4smx5psmkZasr+zL/keRQll+C0rLc2hONmGP4FDmvJfYpg+CtoVLLRavGjWJHTyhxqfA/q17Fro/wCzKyxe45gp5RLhX7ivotRS2OHFrRhjlNUz3nQvu2N2pXuK6mCk8GJhIxswmU3sx0KxS1TF7DiB21TWzCmx07g1SXgpQO1spZfn9Ht2WhxVroVwO+xRP7GWO10TD/kfs2VDmSJyjEwYWDGiv4FdqRPFPTFWJHuZKnDRnQ5h+wm1p9GMfAquPY+3sx/Ytibkz/Q70O1bHhlJjlmXscbKaei2sG9mYgyqb7Kc4Jl0W3+f0mnkuf4HEZOMyQnJl68itZPcSh2bpNaHPk2Z7P8AzH9L2/4Fei2koLbw+j8ilaa6KZ8syOdjwO0ZMvL/ANGqkdJWOsn5F9W2dUWnSLclvkxfbfZVWvJgwqOz2JwWtJi3jI4RbWy5waOO3kpLLHSFKimKVyr4Fab+UOomGOFr3GW3TYr9ORw9exSS2SodocJKWx096HMxBUOzKRmDOh5NPJS7GuTmV6evJaFnHR8jhFNrIvU9LQ78lrBytuJFEZ8i9T47ZPq5aXY8OWn2KOSeMoX1RY6eEWk/c+lva6Mq0Z7HSqy+PpyW4/Ytcb+Spc//AA5RJSXX7jfp41nI/Vx5OPYT5J4nohPa8EtR6W/IprHaFWlJP1a6Y0m2qG2lt6Lc29QJel4j+B+UdYQ1KcoqqaG+XLPyOG4aQoT34LUy4HfYvq1/oXt7FPZyrHyWnrRiK8s9mtG6Qr8jnTF9UV+mHlMylk12KVscPEDhTCfnRnsuDqWv0uWz7krjo5Z2OGnCZ9UJ4/cviqMp/sWnX7FpVJjKMKv+yYwiaIl66HqyklR3cHw/A4kctaKbInro0e3sKYN48GUWolM6yO08fprC/R0sjn1WzLg3gfuOU/5M5TL2VLoyqN37FQKU2fHZrs/6H5aMYLlj3Xsbyfk5S8WV6j9zLb/JbeS/Gx6I7Y6H2iyliBy2qkt/2O1RlOF+n/mWnZ+PkdIUqM7KW2bde58lO6HmGUkKngTSEoyhVyyv9CrjsudHVGUqPtbtLsqjMQOIyy/I3DtJlJ235M5Mxk+fJgV8sMeFEjrvQ8OTRl4HXHIvYVm5nwfkUTBfRfIvow5LqEf8nkcQZRycTKMuoFA7Fc358il5SOsfpqx0raLTo3roUN7NMyrgzEihr/0j8PRSRol+ex1ytDjv3E20xexK4rQ3xm1eBvluS2Z6HnEiysGuxzOB4bspVHkz5LSH5b6LUFxf6O3EMqNCrb8jiP4No0TL2W9n7n5O5KKnRy+pMeHfsOVxdocN2p7Ka0U1b9pHbQsYfkWVPgf1YSL2ZwTOzL7F9RlfwY2YVIwtGNGWKLyLOGYTtmFNdncHVPyf9DuPgqWKxqFS9iH5/gpbYsYHDG/MlJ6FXYvJZ+RLyxia9Sz5MvbM4g/JukjeDEDeclqaHSmT46FEYG5Ym3OfIrVlN71I56MJDzgccVkwhTKwOHo+p6RK0/A7mxYdsrsz14MxJl5Lm5MvPgz2h2fdxSfuUv0bXqcGHSR8GVDnY4bUvszNM9xztMp9MyOdSTdvyfuZzB8lqMDqR+roWZn3MxkhTRlWkO+Sw8CtU3ovwOE9Mtp5OroifJaeTGxy+vBbiV4HgzkpbTLW2U2P3TOUp4MrEnuZMRTLey3ijei1P4F4Mf2KTKeGP0ro3hinivwdWjxPsW04aF9MVI25cRI6uj7YleGKE1f9Fxg1j3PpSuEcZT0Kux1h94E/Sm03F+4m2+UyL6VFdlPD6HVV/o4VMtO5ZyXLjritCleNn28raYklNFrLZyviKW3vMnFS82fTx4vGh+lTJpJvyK4pjfl+SSPU8RpChHf7DcvPjoV/s2OevcVqJZ9uZFjK/srRPYr9/wBHu0uj3XZ+Ckqgw4g+5/wZU5N56FD0x0mrFU4LWGKmoRkp5TP/AKO8kQrYoYqeIFlxA2vToVu4HKePY1fwN8p/Yyodizkb5e5S3BjXsYeBGU6Xg6TZnNFLlbgW7kpstdjjk3XsK4oeNF9GEV1BaTHuUZ0OawZds2hWujlLmjdMX5FLSwP7lgdeDQ5SZkUSpgwtmpTRsxgd4Mp/0ZZmx52ilgUThjiXkxsSSejWH5KvB0b0amui5FLR/wDRVNwfb29GVh6notS5Zfq6HEJV2uilteTuoyLCr8lIcabLmme1FerRlU2aeP0qjsye5hG8/q/qHYoWDalocWfb2XlIRTt10bKiJ9hTZ8lLLH9KeCzwvZn/ACyjotxgrtGEo+BW9o9vYdK0x3mR2qYtw0uxz7FJfwdQfkmJHK6P+QolWmOFI8XJbwinEQ+iY/s/8jGjGS+Tn8FrodLs1j9HXgxmB1oz34HXgdM1iBxNjvBco3jwX2NubFfZShuELwiZdMYpc+mBVv3H8DziTMwOv7HlmJspQWoiS4plNsdujOi3NeRS0zOT5XRMozuSKyjE0U0r1Ir77N7LWJY948mzLRh5HUUOZocNYN4ZyxlIwraG/CdjjuMSfa4Mu2fDJTjHZUaLeEY3HY3ySpIpsdrI8YehQuzEU0Wnh/pi0+h0d2Kps408msHwW9FRg1aLSE2nhjpjpZQqbsf0rKMDhjjltGVsxoylRha7YobwzHKYHK5ZRjox+xom3fscbfQ668n/ACbgUzgVKjX8mdyfJjKZgtYTMn2za/sUri/VOz49jukfDKa2O3iDDpmdMvR7orsvjih3mT8mUnI3Y7bvoxg+1b8i1QvpR9vLPY4ip8HWUK9+46/9g3oxORRyeBS3kVQi3ywzLyKE8swsPspctDqZLi1IrazrscJ4HCgmEU1mSrzsyUkhWP6pvqPJyf8AtjvRdjh4nuxOUlNESsDzhbKlTJN2oOsspP7WXGBy6M78D9UpO+i12x7t/wADlvHgdQ0Vy4vfRLfRnltnN8V/1RyTfFnJcfffZyaaacrfg4Qrbfk07OLV/t2ObSrsw7hkceSfph5bOPqe+SwVECakdtzI5SdopkwqSKe0L3IuoHgsfhiniqXY55dChlraPgSh5Z8D+pFNfuW+xwoyXUsdemvB8JDXsbr4Kivclt34kz4MrBfhC1MdEv1O/CHFHxOTIoxQ4ej4NuRa9hylUMXiR3iH0XyWTLoy9GVocRNfwTCUIfmNDlLZ+T4ZmLY7gdn5MSVBhFJ0j3SN6HHLRjowYRVzJlZZ8QaVjqDeUexlZfZFOyk9Guj2ZrRlRQr0zC2f8VbMlKLPxoWNHyh4tG8voqKRaaH7FvsyogU8kYzJjMmNsw8JmrREbY7cWWtPr9HjKLjJrIreGJwrbFRt/sSjCx4Oh/bg4SntO5HD6dMmRROjePY+C/JSuGO4tGXg+fc6hMp7MTKFPkttzH7ChOjVx2PMyv0xI8ZLaiP09hUv0/cytFrDZb6JjI82jbL6GpMMmUjZux+TVNeNE+mZhGSYWOzqjC7Lljo9kZwXNOR01SP+ym1rszJMb9y3Ns6sw7FTqB5Rbz8lVaF4MaRno+DWOjNew/t0boV0RyU2ukKuzBSRlfwOcTI5Qr0z5Qq4k+nRlTH4Ke0YZSyils+S2SymnKZve5M4/YdKh3gtzMmzbiOmKV+w6h0PD/cvv/YobtFxlnWR2jS2dz8GKF8CdqWOeOzEl3+wqQ0u+z2HPmCmv3NWK+y3lm8mcNChO0ipWC08plLRdUzlW46HSLbeOxmUvg2s6KawU9ClvBg7+BZ2fBlqjCpMct49hz/YqmkXdGMildeSnrydouP2HLdQVCyOX0KHs1sx6ZiD4QqWjVGcHuoPtef0ubf+hUsow/2MY+TvZdGqgt5jRVjwoRukVmDHF0jStFS8fpnMDlp15LcYHauC3UFrbGrtGOjdyeY6H9PRVYOqPb5ImBw0V2UuzP8AB7NdnGeMjhpUi2ux7mfHRr8FtTE4Gklk5Yf/AEYUpJiw1krsV1ZjRu41I6W2POzey1N1swpb8EVc9mFn2H9JltzO/JbcJij00ilxpLBrEncQjWWOUoMvjY7ap6g5Nq/wIcryaVnwO8Gpr5OVLDZzqKMcnbEqVN/sKGorycpcytGMP3FPqts4prki0oak+7k/U0sqqY/U3o+lT6WiGlSnJSblyKXt9ivipMuzKiCm8SYxPkUvllltvI64ivI/TPQ7eSxSnDXgc3TFaM5bH4kp8s/pTfXuUlnyJlzjwbVPybUr3LUwZWzjHXZ1LF8kQ1XuOR08CldChJWLqx4LTyXBTFCiiGze/Ju1+T7uxyphjnpC1QqMN0jE0aHcL2HawRJbQqkuMH4LUoyZWjjiiobbXgzg/BvK8Hdi8ioVPKFmjPHK7MlrZlQbUyd2byW5KXR9rybiUfBjSNWZef8ARnJUqh0aZu5LvPX6OFGy3o0rRPsWpbZSwj2R9x8olye7FWTJtyXJV3JdfB+3ZGDOD8dipMroUvJhQ0Z7NUYuPc3gwvxJl1JlHcyy1MFrY54vD8GNihYTR9UJp+5XjyLOPcpnU/JTLjPuZa/TdpGVZTMO58Fyz7WYeTM2mUsQROF0OJ2h3aRUb7FCefcpI6p/0ZwLNJsdfsbyhF9SbZhmHkvafXuP7hWnkz2ZVIzRlX7mHkdIvQ7PZHwUYMZN4PwKYzBTw1tCmcjgdt0P2Ys4ZhiwUj7uux6oyng3RhWQ02LJjQ90ZyPKwVVmy1Ep+BWslPJl20L5P+LmBYizMOjjczJOf/p7eDY6dIcrYpUyZHUzBT/oxn4HKMi0Z5aHK2jqWW2eyLTFjCFa2Y68mBxywv8AspoV5hDjs2Oi1Mts1kVpGxT6cipOxwj4/JTnvI66K6MnclcVkv8AkUy7Y/deD7ej3cHwKOJT3+ijoeBxU2K+JjZjBckeDeCaponyy04lDtVBh4LTx7iseKbN234IXaKMlqIZUU2aK5GxSLRXj9HjBjaPyUv2MzXsKOSqexbsx2VD/S30i+MlLodOUW4hFtLBnMn2/wBiaWTFYMMUXnwLP8FNYT6OMp6XuKx0soqpRl4PkptmFGRpQ/0X1TRxnijDWD4FS0KuhYWCEnfk4qIiRVGyJ2j6YW+xUa+r4MbZ9v8A5Ctm9n06bRhKvbY6dLwOC1kvPgUNKn5KqZMr5uy0rFML8Fpy56Y3y05uFozxdCtPEnGGstjnjpmFSf8ABfFvPRWfKaOEpOn2R6XZc0i5UeUaUMcRhTotpTPktrL8lQ/2HLufY4w1PsLN+IPZ+w7eEKG9mXT6Y4SH9UUOpMKl5FD2/wDRevdinjodiqfuf9EKHEPZVYPumhJxaJlM1pYKmnAp8vLFcWhUq8mtGHk3SISmmNNrS2OPIpSyKEnMi+7CK5FJCqTLMqk+2U9fosGkf9mdSZ/sozhDh9o0jDyOU2VuSk6FYqimeZZSFnLPteV0L38mdnyy0sGHlDtYKlYPdCtZQlP4FHgcV+lswjMFp6PY1R+PJlqTbozMCj0qX0UbRcjmbMqi6lilYZoV7Xgwh06Q8L9yJeOxT2vBapG96JgXp8ltujOpwOWmR5HUGOzDd+xmaHPF4KU3+jvfkVvQrlfB8CnpmHgzhFJZFeoNWmU26Y5lyjRCvfQ830f8dSb0P5Pgw6krTNwmKIkykXmv0VYRlY6PFClM1jorlmUY37kQngdLCM7FEGHT0TmvJ1f/AEYeBWnAvFFLSZjk4noVPDLi2L3RlqjKspNYQ7PteX5F5R8Ix0UlhjUtUVyFDWzOjOSuzGDBvZe/9CfHlOhyhexrBfuUpsxNC+ntCltShKstUcp4vK/tCzTFjKIS5GFheTMlmmYVsWbSxROIHSxI8mNitdYE0i9nuyUm99lxsXsJQ/5LgyZTs9jCeCTeezCV+S0sfpWz7kL5Z8lNK0dih9Ey5b6F7yeIPeBYNlvsnOTatlxvZvIrWUKUUv7MpSjPL+DDuh4LbRa7fZfTNS5MbH9MsU9MUQKl3iTK12PIoTbEKUszk3+x/wAqUlKr8DxgpwYSHTKXRc5PtdoX0/0KjO0K1gy6bMndLot6FO2OEqbLFHiTGyuLUlcXsd97RfvgdIxkxspQKlkxGD5Mdm6j9F5nsedjlwR5PjyU4o7lPo0/YwsotPlU6MQLOH5JUlxNrocznRXRcKS47L2lpkJbXmTEuzOyqrwU1CXR+RTP5FLaKY/giFlCji3ZCVwKeQoaf7mT7nIq2cocPHYk2qkmE7RxlzhihaKqBVAp4qmxz2vAoUfcK1/AvudPwKtkx1tDrNjyplGKSXgqoY4Sy9ikUNrHkXz5Pq5cuUpjh7f7CSb2ts5JvbXWjjM3JSTmCWtpdipVHgq07HMIf278FvZTaOL9XQrSc+4vTyVoUckrPZGeKdHSk/5X7DzsTzH/AGW27kwt9I12aeCrlDh99impnseXC9hS4hUYzB7ihmnKFn9HjEmUr8n2qGO279iI2y3BhOxvuxNyUsJDp2pMRnsqcidd/otx8FpY8GWZ8HcfI/PyZawKZV+BS9JmNoWRb12ZMqybuBwl0ZZ8Mtpn5Kn9kUj3cirKPyZyhQ0blJ9lDp2zGls/JW0zL2xWtjl9lM3k+P0beYG1mUL47LTtHwi40U9ltuWZdt+P0/BnQ8U4Phi8fomn32YdsoxMr3LTycZfGpZlIXmPIsntJbT/AGFcTB1cYG5WZFCj8GIKaePAvMjmXXgp4JvPk+ZF4aLWEjaNFxkvaFPY/KSKRqvcUxkqbR/x0Y6HNV5opqhyo/cVO5FhaNa7KcyillQdmcCleNn/ACUwVVlp1A8YZCSw32V48mVMjziRRKFn9h+lLZ/9G40zTLmmaUJkKRzFssxvyWoqex+yZUscwofsYeGP4RnJv8ItrfgzrwjGmYQtZMvJSVvZ9r/YUp77LfFwoG4/hmFgnGRy4Kl10P5NZNI+S2dmrkrQ4gcSWmzHLApQp49jj1R8n7CtW29lyzOBfVsX/wDkxUsLyZTtYk7if0WX+wk5cM93+nZgr3HS32Z5PWkayf8AmYWZLR/5DXp2XuO0ew6bH7+UOIwVOS7yZW0Xx46Zh5Q3VostO02VGEcr7LhmYMyW9mU4FWmKatCtK35KcR4HJvexfViTCdtjpIe5MLA9tjl5F7MWX+RxGDJUXBpZLWF7GIyY0KoyYbJha7MsdaO/0XaZOaP2NIzgtpyxVgVPfkw8nKWsohNaeY8Dp6N/sX2Tf4HjJsUJFrZNfwZ8lrs1c/J8TsmMteSZWByppFT/ACW+/Jl2axRjfuLCoUdFzUmFTUSV58Coy66LSK6RSS/BntGrGvYU+rKY/LWivY94L4pW/wCBXN+xTmxzyRS72ZnGyXA8uWXOUZmRS7iOzi+MP9FPLxgzGv7OVpTAxJPEPazQnL14JTrBc2zGRtPA4XKsXMimVk+qUX5KUQmzK/cpv96PpWxVBbTInjn3OVrwPFyOYyxSt+TklNLiRDVIflsUt94IUL4OMyOZeBUla2ujPS6MH3f0L7lkUQrZhuIMPRpG7noVaYvqwn4L5KyfqXqlDpLPRXLLFBU2x/oruRTywZ8YZ8DqMdD2L57L9i5Q/ZFHyW2pMJKT4IVQU3L8Fzvyf8dmlnwWi21SLfLK/oxmB25UldnGVNMTXLlo+OjMnubtlS/wfDLRWy27Ptdnyxyk5Kh6Mv8AB+fIrPkoytFpUxz/AGZ41BlMzs1ZbWOjGkhZeR12TX8C9i6HLWPYoXz5PaS+XaFatmUOZxOSowhVEG4bH91I0fDL7ktLLEVWSoWDOX7GZHKZcjxljm7N4N4ZTM4FSY6NqjEWLL30ZnBPFrDMrY7UOyp0OoiEWsz0KsuT7u+kOekMzv8AR/EGGoZ2ZXZTK44PeDuzCoczky8Dn0598lXgV7H9uEPwNqxSj7nSHbwLz8nwYwuyp0a2ZY5ubHEOYHhV5FXF7Q3iEkfgw00zI4ghvtoXx2YSybZClQLNR/ZhaMyOGsT2ZW2Kv5FPjocKIjyXGF0Yg9oMLozMQPwbZPp2bZ8leSoQlKwJyjMQOGoyYWJzJXn4Hk6stqysMdZldlvb7L8CxQsbISmTTa/TNz7FpYK8GfwfJgq8ofpapszn2Fm11JUOz/6YaFfXg40nkqCktFTj2MJ0zGUYwdI2P2R7OOzTodNfuQ2j5FqJMxEiviofTHm/+iEL1JUOsMfsZ8DOWGfU07XgtTf+hQ3gysktzgVpG1b8k9QK3/Bno0mZM7ZS6Hbdo3bO8m8EpSZj9h5owrnpiy00zG3o+fYdWKYwykv28Hy2O1otbMK37FeD7Z/YXsO8spz+WVDg3s4zOvBWz5RpQipyikz2wKOSTTejKwOMyiIf8GnDRhKZHLuB/Sxw1gy8sZiYZaTwYa10OVqCLz7Ch6kwVdLyOkhwl/A4otbZnSHSX7mcoVsqaT6RlOkKk5XYrWEN+xlVQ478jV68Cw4T7RUa8GEtHsPKhmV/Bntm6HkURhi+lqo2UhxLk3cihIhJV5Lns5UtjrY5a4wkfHgvl2e6n+y3JLaz0ZihqU9b7OP1N0+hz0TO2Kp3tFrjSXQsyrPZ+5mpPj3OUdvbFK5LPxspum0ZiI8l25glKMstKkor3MLoauW6PpZl4HgUKa2OVydoqMIuf3HEVYp0n5N0xey1JTqkZK8IVvB9Xgd8b9x+lvBXLEGXtDhOHHRrBrHuYF+lPUDfSkt4MbPcyQ+WxWqX6byYwUxxyWDX7kwsFSrH6m7+CLn8Cp9McdCwU4ZnAp9xzyypKaH8ipWVGhyjBdH4EU8GEsFxo9mOEe36ZSwYihw24MiltwOIM8lDZhOzeJ7HMuzAoqiGliSm9F6HjBbmiqyYdjm5a/T3HDezLMxbHf6XGDSr3PliyvwzLwK3kyKHyiH5MmNi8x4FBjIxVM/J+CC4HbMux2qaKhyj49zawO/6M4YpgUtUVA6X7lvrwYRSF4R1bN1JPR/x2YbtbQ4SKsVctl8XRujH9lzYs0XGypqDDWei32MzRla2YehXJbwOk3Ro6wYSo+3swhKeypuT7UzBhyq0U+9nuJwqY/U12V0tDp4HbqezJiMHdFuT8mVH5MYHLVDotZKkdvZbbro+54ZmYFu0e/sPNofhMfkqMlVA4TL6FktYHDmh3Njvs3+xlZ9jD2awKkZejWjBhaO69zTHeWbLf9DhMzFCvDgUrsxycR2fkmZhMoWEW9EuYrocyK7TNlmHP4MaHUxHkuf5MxAqgye6f9GVoWcfpW4LTWBysjxXkVukxilPBuvcqdPszNmVkpRXY4RfRbefBc5KbefBhtz0fJhYQrmF5HcymX4HTLUly4noeFYpuj7kY/syfk/5MqMLsc9l9GGv+zGkL3IazLE5PtrkhwlUCiNFJYMaT2fcV/odPI/YyzLL7MrA5jP6ZWUfgz5/TvQ8OJ7MwXGUO1ln4Q7Mu0/027Z+UKpsSpwYNq5FuPkUtm8IWXDEvY9hRLF9LdozEo7Zax8m1SPjwxe00P6pwfaKH3o/4ujCli3kvMj9inJCk5RGj8FRT8MwWsr/AEWmPMNGUzOZMPLLXRlNt/6LSWGWn+w8XB1COzJ9PF2ozA8Kjj9PHjl7fUEervwTO2skXgp5b7L/ANwO1yszszCj3MLrR+4sqUUsn3YFDeW6Ui9SxfXY43djqM+TVJdo5RtJH/0lIynC9h3TOyJcF3+5T5S40XxfzZMsd5X+j4LUxY/wapin6a9xTrwbdF5Z3kVGla7MIw6L5Y+C5uR5bK5Zgy2fIvY7r3FjA/TyjHkwrZl5Leym8D8LyNL3Kb10LBoe2VcDiMMVeC25+CmlEj8X+lNm8DtlPZhIcJXBjZ7/AKKdeDLUyW5sdyW0df8ApFbcNHGeXHE9mVkrsw3EFz/BswsDwx4ZLXLHgUjcLBc02hT2JNYo3n2HDn9h/UxV2Y2Q1FFaI6o8FPZlVeDVyY6NYMtmezODWjDX4HnCMwPw0Kls+09oIVXJ0eygcxvRlFtuTDNumKpgcp0l5L2kj6ezCyTKspszo3bM5cGI/cpYF9uUYtseVQsrJumaFltoyrHWaNsf0q0i0U+TyUlRh1fZTbz4LcnsbHa2O1Fi+la/Snsrjhs+TNqB/dgVoXVf7HWxfbow7swKGdfuZm2ZcQUxS3c9GctGh5todG/5Puizuxb0bw9Hgz0Z0U1gdxgpLI8sqEW+hLl2YwO3vQ4b35FPg7NzRaYsZky7a/R/SlDYrf7jhJTB8ntJeoKWTGvJlHhI7gqHCkypM9Cye7TNs+ejumy07PcxlQf/AEqLNXCM9jryOmK8GGv/AEEQKeLt+4tzHgw/qFbyjNSh+xfF6M4XsOX0X6nYvYj1RMiUdC+OhxNeBxf/AKBe09mh5wfLMNCjk0s/pc4HLfRpWxwsmHEGU/2FL44JIou5JSmfBjJE3BlKx+WiEhNRhseHECmOj2FTMya32OU2q6HbM79hVhlXCfgy8m7Rc/sYTqezLz+jSeG2W1krQ51BmfgzkzsyrM7ZDWXJkeD8H/YtZH9Mz5LXJ5FvAzWRxo+ppuemipwKuSmq/RYZ1kw7KcSK1Q62h5f4Mt0irt+RUnY50vCKgmF+4tV7m1+5bUFOTCEmlgcotvQpSx7lNlNYL7RTSLU0OvGTPXkylaPuVo3a8GIHnBtWjP8ART6MxMFeO/BUuTuj3Ryp3BVDcfyW079hxtJCmcJlQOU1KZaT2NL1PA5lf+/gdqUjLv2KXIVKH+4vpeDi/TxptVYvVx4247OD9Lz47ZyXJf8AGRS3x/caVRCwfaq/YlemFHQo4p/Mn2rJgc9DxbFgUdeR1hz/AEL/AEJwtimMMttfhluofkUFwKViDKUGcHUI9xQ0LJU3I9Z8iTfY8umf8XbKcQZRjcmdxovi7kx5M5TRbb2KE/5FZhIp5exeqJcfwKHCbRrRujQ3Ar5WhRGSk1CZHJpY7OMTYn5FS8CumlgiBVtj+plOvY+nQphyKslLYp8lst6P8np/xJNeiLb7bOjoqf5MvQvBjoXhly6jIo17mljyK/4Kj8fpu14HUzXZjL/Rtmf0VcdDhumcZ4y031VMdtndeDTVmHaFnIxTGTUz7Dhv9FLeEa/S0se+y3j4MeB0qF8FVMiiBRP7If1agdOh0slN35FAq0S2rgUuC+TNuxel9mVUmsIerRjEmWOtov8Ak+RUzJnb8FNjwjVGFk7oWMpGYkaqK0WUtC+BQ1Skw3owr9ypHKFbeWbyLOzLVM/5YNxJ9rbIpkJRLfknEySdfkW6XgU68GZUGVhjp5PhmmpQvU4lJ7F6eTSmOz/zFeGXxwO4hMt7MM6/ceIhitsarQqTmdQUs/Jfq2ZMpmP0pPPclHdGFllQYeO5ImZQvTGBx/yI6UGrN5RTURQl5ZtYHEL9LUWYS+TTvoVZTGpT+otci/HRgqKZ0NPyjHfk3/JUlbUFkpJ/sKraQmtQXpe46Tz2yvBV2hemKZSeSksktJfgUpKfAr0ZxQpUZH5ZvD6L7FWxWW3H6Ulkah4PuevInOyu0zKwf9CwhbyxS99ky9PsesDjjmD4fZcnGHt9nTkv1WRKyYLFHpZ8i2KLvyW29mcwxXNoy8e5lLJnC8mUzK/gtFtOuoKeJ8CcLRfgdcdvZamilyHEYkcpqns7oVv9ym1g40x/BjPmSlhMXuX7Dnk/2PyXOjDMJwvJcu0tCF7oyfch3kw9Fp4P/eDK/YeOqKey1vtCtdlQRKUpnfwU5gvuDOkIuWPDr2O6jopbPFmFkw8dELowlbMTgdYaOlBVlcVaZ9Wy0ZaoTjkUz7opkKXaOPt2NKFBrC7HKWUx9yyFMQRSkcuJ+CHFp4Y6ejTn43IqTLc/sKPS3C78iiK9xqOKF9Kw9Cxc/Babbg+eoIiZlirp9jSSbS9hU7b6HfplSLGWujCVEPliPg+1ZS2RHLT9iUmt4nY4a5Slx68nLk+SwnOR8cWplyUsIVvaHEoc8tyjjF5jR3R/xX4FN2vIqzLyXeIOVq5KbtCraN4FLc+x9ScNErTZfFuUfbhe4nCtMqXkdfsNcqyTM10K9zgpzQ3NqPJMzj+xz/op6MPHkrscPtoz34Lbx2Z4ih6Q8FpaLlZFemZmiMWv7M5KZTmxYwx0kOnhCnuRZMxA3ERB/wCQ1H8lLaFj9yHLHWmjo6z2YSSZSmEvBOKMLJe0TIrS+TLMJyZdWKovwzDiWaw/BnbLefYV7gWZRrsuGe79j6k1MaHLX49jKUQZw0Y0UJJt4HSkUPvwU+jLuRXmxHWdmOykmaqTEF9SZ7N2x2i4wKf6N1JcM+GLGWY8GErKX/rMPAm+h3FDlaRLjQh40KuzVQZmhe4sKUWmPJ9Tbj2LXKmx3iT5RSJumfal+aMJUTLyYPlGFlmv4Ln+BxGtM4tQ4bMdeCk3TKnDG5TFgziDLVfgdOx2buSWoWRXecFvXsUto/H6fS3npsvcGZt/0Z/obnMGXddkzn5M5M9lNbWxVEM3cmTPJWin+0iiVaHLKaVx+l6g+pjzTXQ6b/A4bwhVn4GVJabtbFW56N9HaKTR7uC6wxez8inTTFT2L2ZDa1/Y/dmYE0n3k7lew9FKMCqLYsfuWmj9im8lerPk1bK2mO2O25aKasUdNDqC09dDp17DstMdQKS06fgpRslSsoppDzkfq9Vx8n3RY3PZvC2LGUOIz/0U7UGGqQocUZ10YihUtDMLCL60KU6kzxdDmblDn/Yl6nSW2jKpondMwOrRmMnyzCtMrjDKVQK+zaMpW+zHZSSyO8+CnbbZhr9zuILWfYY5c0Xqeic0P6XgtrHsKHULyWzVCvshJGIwYzIrWDLpL+SGm6P/ADFXQ/p6PuXRqoFZcOGjI8VAqRVZKZnaL/2KtSVLpD+3K7M5IhxBt00KXlCISWDWR1mS2rZ/9MTckjfFvKLSHSpCdY8Fy7LXIW8doUeDRcqEOEz2QnQsFNbNV4klqIkdrXyd0jLRVQvczBUZ9h/S/wCSV6abHLyhy8oXuY2OblLRqxTDFMzPg1hDgUtXI6dClqE+x3ylIXuRPLoVPBcY8C3+C6jJELMaH6uPK67LnPgw8ihRBXJYT6L5KGoH6u10L6knZjDFCTz5OhfU+eh5r5M8nc9eS0uEJzgbbbUNp46FE7FFZeDV0bFKcTsVRsw/4N6KU37DmXSLbUSP4FKah3sc1JMPiccqn5MOmvJrrRCS0LYqSgpcaaR9uUhQKehRKU7NbHi0U4tGt/6HUH2xJlKfguVhjqf/ACFHvozH6JSqk9/YqcDJdfsUksG7vQs70byy2qMf2W9+/wCjtX4Nq2U0k00OuxwlscxhlzkSUi8pnRHJuGYdj+kw/wCR24MdGMOf5HMuhttlcn/As2pHXQ4WDSUjPZ/0Otlp5Mdnsy5VDcPBEK58GOXL1ce4wipHkuKcCiXJnLKuvYULXRlYKvBh9nVGMGJHa147HGz49ymmOWsmVLMyLz7F7fkUbN0bouMlNouVAoaFKVwUmZVMpPZcH2rBXYv9fo87P+OjpihdloULAqPwUsL3FDTPt2vJSVIQvf8A6L6Fn9LuGjGjDFrBlaFDTN5ZbWyC2tChJqBQ5/Y6p7FKw2YG9wz2Rl5ZnCR9rVst9Md9n3XBtRA7WS+zVJmsmE8GHk4x0zjih0bFuGfbjs/Pgf8A2L6XmB0r+C2z6W8FIaji69jU2YiX7FcWKElKfZadp9FsdFJUhUqnsmpMbQ4Q32hqHbRTePYwU3kVx+DKFa2OEuv0+Uz4QjeBTH7Mrszr2Fbx4HSt+BziTWCk8H3JWzTwXOB4Nn5NGcL2FKQreP0ydbKgxmTlC0XJjsxocroVRSFh17fpVfuJPvscy68Dta7LbFDikcZbq+z7ppl9eTCwZ8ilp37mLlGHj2Lm0mWnnozo+DCE3O+v0cyi2Zf7MpLHsPNpmih4v4MRQhKFspxRca8lqmKpHWEbUwfnwY15LTWPIrWBVofk6lluT/zFC2OIcGFl9mFg1r9F8Hu0ORa+BR4LlwzDcpl1ktLRhqhQ2paMzgabm0PwfPsfbyotLJg7FTVlTvwW27LjRfFuILgpdDcdI0j4Re5Kbomh/Uj7V+TMy0KVNrwSts0Ymn5Puw2KhVygX069y9Sj5fgwiowzCj+BQ+hJvLRc5NuDKwXOBynUD+lufYtq35FmykYXZbWBYUtlba8GfVY35gxx0UnlMiTEyu//AIJLk9n0vwOHheaPu1/ZxiEpHc53A7LXqyuiZhuGQ3S+CJhcYQ5bv27IjYpSmhzGTDiRxdHZ9MYnY5nIlMw42UuKTQlnPZia9xw3vo5S0oZLlKhNJY9xRx/5e52Yf8jvSHHjyVI4Sx7GFk6lFPJTkzItKRxvwS3j3KqifUlE+OhZ/kqNI30YFsdxLFT2OkVDH9PZ1HydFJ49zbseJlIX0u5KMz8G7joVMwYydCpjtqIZ+CYFTw+jOUV/RZS1+luD7p6Mo3llJuEdU/2P+jOzLpD0fA9TBjMioppmMM1/JtYX7mF9MeD/AMjqiYO7FZtG/wCB6P8AlZSez4FuR4LQqdnd/pMvI6PgVjpI+DZgqaf6W3o3oucmhQ+VR4PZNaLW/cpUZezevP6Q0v0+7f6MlrRnBb0MXsz28mPPQ4THZk04ke6FSclrA5SsxFjXlm8M3bNuB08lrT8G7THky3k3kV/sIXlocpaMql7mVkwic/sKkUuVmXMnKok2yTaPgwkbpnwx1Ii0LpyYnA5hY8C/6PlCmCvByr+xROh1H4L8jxktfo4TsX0pzQqx8mHlDvstwK1FiiDLYtih5Q5e2fkdRlEelfsUptlrouVIs7Ia2fJ9y/TFGG5+DGJPwX/Rb2ZbFcF3gv8A0aswj5N2y2U25HbuPBxrMnyfdIvcV6fkzoUQSlOzCwRnRh/yNWOHiCvKJa0cfU05aW0cHwmfpeULOS+hWtGHY7e2W8/H6KoclOCkfc8Mt9Cto5Y0W1TMaMukkZTgtrK6J6gVzktswl8jpUZykPVCltx5Hu84MvAoUY7MLTMIvjmBQkqLTswqfuYZLejpWXOui6k9x4do9pH7ji7F8G9FqCj5eizM4Ic0KHs+lq30y/A4WJMPL2e67PgyOXvwy3/ZmaLS2YdH3RseXFGFTRgtO5HayX1BlUhWvySlMNEKz3Pde5nYsGMH3RfsOlZEMbcG8ow1KH7n/H8SZbii4V+R5c+x8CvlrotsmWfasPo6PkcXKFUQ0+xQ9+2i21fsZbPyui3DcFL0qhRocvlo7hp9nGG6SRVX7mOTuBZdsxx12x5spJNrycs4FbRZfpaTZ1PwcXyxD8HCWraxDOec+DLUR2PX5Mu37H1anyOcmr8jiXSH9OTKGs/uW1rZy3JLl0jLVimDLpIc8XhF+roVagUcv/ZPqeo7PbyVDv3MRaFXQ/Ekyv3LXQ5TwKatCcYSMpDFfZrPQr2zCHTyO5IkdTlGkW4pFIiYsvbEq2K24klerfgpJUtnfp9jHZ8Chf8ARtTOj/yIhGFbfRTxA7Wh1v8ATVNlyi3uTDtHwjDVstZR8mHoWHKXRgzxxHWhGMR5H9MZH7Dh/pmLMuPkUelTPg1k92O8wLBc5aMPfkcvoeikf8WOsseNmP7EYgw3Y8fuPujBaW+x3pH3PIs5H7LoesH4LodOytowteRZyx2sMcaaL2fA9nwaVmGYYtKOik8+Snv2HasqGOn+w6TSQ/k7qS1Ln9MeBynMnmy5yLDsw7Mm18GalfpmIf8Ascstyf8AwcoURCOhUZzZkyi9srp+DKyhXvwd4LlRXY94HXRaeGK8eS4HKymf8ezVMwkYWF+m8oflEcZLc40Ym+jBr9zD0LOxWkPWDC5Z8ClXfYqTteDa/JaRpWPOz4Y7xP8Aocp7FnotvQ/EGFRaymKVoc+By05km4gqHcbRh4HjI/dMqdibSdmIwOUtnd+xC8CidjxCZrJELfZSejLRmYL9VtdFt68Dh4Uj9j5KmjBhlb/TCyd58H47KMcdmH/B7msFxlmMwO9opZ8GNMppb2K8wx29eDFmNodOmjJEr9eVbKf9FpxQo4tlONly4R+fBrfk+7TIlPBnPybZhYN9G/yZShMtyV0PFQ+y27jr9HjB5k/4mGWlsieV+zJTeEXNz4NQbRXKZFjCPeB1EOBx0mU8NdGWvyU25n+jGyvPZ+DG+j8GMDza8HWS4EVG/I/nsw1MlzZhpt9H2taFcRItGXkpKbIcsVLQ6ehyokUND8jt5RnHwdY7FbzFCfqn8GWs6Pl+SmmZGnNDhMzplSdtNDzkytG0Y+1odO5PtSHtuRQ99Mqb+SvTTFI/q0zIoQ9yYeH5GlqR5USY0NxpeTJlZNYFHlCuIk6iBVfwX2tn25THHFfyVOxZ5QvYuU3Btf2Upxg5SpcHVeRy1ceR30cknltfyOLheUco4pQZajM0ccu2a/crlDgc99jodvolw4gUpq9WKbticTNGMpeT6XhjpqexfStG1LZDmy0ui+PG2hNrXhDxckzs2p8FKhRLsdPLMZZ+GZzBfJ59x+S28sp8cFtjvZkyNdodO2zf6ZdnuPIrdplyseRWnnQ2/IscoONxkz2b0UvwWlonNGslFt2Y/sUJ59jvL7FEqy3pDrcCjr3HdexicDy5+TVtDyhVtaFWRyfasj9h0sDz2IuRz4MGX+DKr4Mqn0KeSUCzkzMwjeS5Hi0+i0n+xS0+j2FZ+Bx5KaetmFkwsinwO4+EOmj9x0ik8CwLGzGilr3MkQWXH8GXgdxbHhmDlvIp9ShFe2jDz7n2vvJ7IXwaproVpaHbiUKUO3bGo2jHKoHa2Y37lop5Yr/otOmdUVxj9zBr8DvKSFCWioKSsx0KP9ntBTWSnscPsf8A7A5c7LkpbPtwapz2KepIhjlOPgdbZYoStivsedvovzgUPjh+BRGPYwsoX1Op7Kaakxx2VtGXn2FKWIKj/wCEua9i3P7CajI4ayU/6KXFQYHhRBjUHwhw3hef0xxrJa8GFsjkng1plQ8i9mUlj3L/ANmcz0OnaNyXNPsrceSosqLTNYZaw2L0sq5/ccp68GWhVtDvLRh5PwLBs+O5FE2PCgxS+R0sCjtlN49jKQ4exzLFZhKzHKrHOxRo/cdIcxkSgtt30cpl6MxDX6JQoyXouXT8jjXgdmdtDwj7v/UOlQvpzJvK8lN0OpM6K5MWaXsOIFLa/BUmFVlttwyf6Y89G6MltvJ3kwuioPdfpCTRA843+DMQzCwZwx+mM+wm0naHCcNDvY7a+CoWRtLlheDDdmHgcPiZePJb6Hexpx+wpXKmbiDwXOTDZ8M1gx2T5bHJ+R2LBPuhxpxtmVrodO/2Hnf8ocpRR8QXsddCTLjD8DqZZCnBxqMrsdJxPkVJWfacPTyl13Yv9od5XsOeTyy+Pkzycoq4js7lLwLy/B+D7f6ItSl0j2L7TFLbsr/RTWB3xyx5ZjSMenPk+BeZ0Ul+4rtGExwtF3DHSc/6LV2hp8WWptmGVy2xw4uOikY7MbZhumL6VrZ9LVPoSbcpspzaMKky+VQL6nE+RS268eBXiCE1pnLG/A4XHLey1Fipq5/cypS9z6UkpX8lE33qhzVQZjWRePA4a/EiXpWHo4zcyL6phChpROhw00o8FNY9j7mpZ9yVocJX5KaVi9VFKLPtbhmMClzCElGym9ly9dmPODDuTCyYf7FS1ZTSryZQocKhZ6HK6ejGoLR8s3SFcyzKPyi1EMxUIxo6NYYlxlQ0YWWU27XgcNn3PI5WjTwUtGNmVgtCtv8AAqey08HZb8ihv8NDxopLI7/ktu62PcMcPrs9/Yw9nefAvkzEszs1+mMGej5FC7LnBUunsqM+WOEuzMn/ABwuxeYNxXRnA/pa/cd+OimtdigXZl6KScWOplGHEilf+r9OrUH7n79lxn3KW35FSx5/TdjmdMwqj9G0k/yYRvA5bmx0xRsy7SfY4aVtitC9l5PiTefA7eSHpirkVFloyzjEbPyYX7m3gxJTWzD0YY6eROqY5uoyZWfA1KV+TE2NprJXFY8ikcbM5kxpHtA8dDn4MuYYpi2YabN2YInH/Za+1wU0v3MLDHCeBRDHKeJ14Pt70XBbeJFad+5LidCuc7GpUsUt4Mu5Mb9j2Ms069jETB8mSk5UGsMfn4NuUW8pHG/JWmjvJEYZgv0u0McMaSi/c6HfX6KXFPAvqLFL0mKivYVxoUrUbfY7W80bRhuOjaKjJXR9uDQ4nZhWyv8AY4/sW3HuV7m1JSVM+E9mU69j8GITof0p0Nz35LjA7jKOpbK6MLLFCbF7F8XUGJlDhrTM4ZZh4K6JrsVm1XZh5M6gx4KYqX5ZjroXmBVMDlS2vVbVzkrfuYgptfpgyy4oV4UGe9lbK2UtsxVIzlmC+x4WBZUNCnCn/RUilI7sc9sUTox2xfHQ4hERRnjhihJ2PUwYk02n7i/95KF8wOv4OMp4Y85WhezE3GvJnAvECp3B/wAWhWpwPpQL3FOmu0VWRf6ZumawzqZOxxtagWoHLSMdnwbKgb8Fp0mhw0mmv2L49mNpCltHUewpeUjWjRl7Q5WJK/sc9Ht8FOHDOWP3Ic2KjKhMXphTBSeUVyWB1tlS7HqT7dPI7yipui+L/kqKK6ZdnltMmrgyzf8AJSTz2KUcY2k+xQtF8fGjM0vPk5U0vjwfnsSSboXs1Qns4zIocjtt2PGzLy+hXCoVSOlaPqTPualrpimbZELPlDvloThIUaR9uW/IpaWx5eD/ALgWH8CjwXKQ8ZUmeVIynb7KTdjmcexvK8mbFE4Kl5MJ0z3aZ8ii/wBhfS1+DOi/3PpbHtoU6rocx+6KfYr9zLbrNEqHMGsFMpmJtmSmnlGcmrZhZYjCM5EozJfRc4RM4LezLZkUtZO90btopoxMNC9zFKPJmDH9lOaXg27NUzPFm3Zjj2L6ZMItaXZ9KyzqCIaM9H5MG2/wWmsDzE+xtfsKoiDOBW8j+mMeS5O9/p8ijoWzP9H4Q/YsWWZ6Njzrz+m6FRqKO/7HVOR0v3HlUx3sWNl8Z/Sjax+kSKHMLybWSYaoVldslNGUpQ/qi0VNwbKj9LlYRmJImJZ8nVSY7ItyOZ14MdeCXOEO/wCits2ivI7deS2uhlpFDvyU8omU4Z7G9Dh8WbeSo2Yar3NGHoyZ0L6n/J8pGJ3o7VHcmFr9FaeT5MrD8G3ZgdRIr2aozkVRMnmDcSKP9FxpIXpWpMxQrjGh3/ZlbOWq8nVz/JlvY5himeh+4nLMGRTGBelirTMq17HmUWtpmG/2HFm0P6k7MrI2ms9FxKFK5GVSRnJEGFgmdFeToqbb7HDTFJL3JUDhrRSSFTWfJRn+hNSy+Usor/RvZ7JCucitZZTUWWna9ymsmOzOEvBTk0zuSpOrNaMIlNY9iYHEsymZhMcLb8jyqY/dGXaZg1+TsVItW5N/I8sWC3OPBU4nZoWc9jzlCyvwOkf+Q8ZMKzE0V2VDFqGS7lM1gpJRBiKaFWJHSopakd6Msyt+TOym3Iv+xS3n2PuUKCkx0tngdrB3CPbxJjaMq5Mt6/SotMyf8nIoujf4EJTNIdr+BisWS+y5pGcMpRDFLbuTHK17/o4UxJKbqTtyOoFbyy2ZVtmxS1rtGHnslRhlpZ8o+2ZgU1+BNNOJ8j+p3IpjMCd66ZXFoVKnI5UWjdfphq2Vo3/Bgy1DLmp8lxTQmpyuylxLWvc6swtmU6Ra6X9nUDl99Dek2LAsqU0fcqQ8L4OUaSPqm3PWzlV5/gtzg+l+C28snz0KpyfTFLp+RU3MijkhQlxn5OUNKYRlUKZcP/oURjpoV8lA0uXJunvs4x6lKs9mjCJbmkOE1mD6mnR9TTZhuWVDKUyzGHBN4Has92xzO0OtSKU3XsO3+yLSyVUtDplPH/ZadSKTOUK4hoUPvJUmZLlT8mteDWf0tRLei1OTBrKPtW0ddihdFcmP3RXb6Nbwb0ZFjECrkzKOi5RaHnrQ4TOjA46Ze2z7nk0LZhijaMxo5OrHMaKcWi/BcbFURZqh5dF+BU4hn/kaZiZhCpDrR8e4ocilmf5Rm2f8v5NzY4XjsddGFgXUF0dDxhHsWyrozxyfLMWL4NG1THkt5R8stdkN6ZqxX2ZWjjK7FB8GG89mVj2MjvDZlDpX7Cxg3+S5wjp0ZjJTRguHZj8mEqY7FFUkKI2fc0U8IUps3a/S2LFHyi5s+1qGy5y/Jjl32YThilXEj0XMlzh/opjBvP6crmjWBUawK4mRZMOZOr8l8jCcSe4/qxBpMdNn2upMKmzBUDye0GFoV/0P6f0cNuy+zDf7GXkzOj8nwzasWaTHbLj8GOheWd/gcUPKsrj4KhzJyvpk3U+DAs4HUUiuzLVLyTKyPOx+JPgWS7lI3+6KhntJl00h08sVqxW7HjJTMm6ZcYZaminJ9zPFmMFdSZ2b0W/4F8ilYkwZzLYvYlQseRy0ZdGFF9irRl0OtFrZOcjd1PgpSXDoynZRiKRaYp4vIpi4MOcHvItUbVndvscy6T/gw8i8oiVg4ttzehaMJGBxJnRhGGeaMI2z29jK/c+lxgmRViyoVpdn3d6HWzcKNC+rj0adPwOU7Fq0VDFXfkyVyePYqHUCodSL2KuSoh/BhYfgVqzqV4Pu0hqNocN4ZjbPue/BnQtUJRGNilb7MvBnZyU6GvI45ceX5RmJ/wBipYIUGXstuvYqBylhs60KV0JYpq4MpZ8mv4H6W8MpqW2WynkVRfuUtyKosxpdDS5afLE+TLSl9GJiR/IspSzLzJ0oH9WRUoMK48neh2dF9dFytFRk+54Mswpb/wCxeSMiyrXZfJZQ4e/I6WX0fU3h+S26kSluus5L37dnVvwN4cjtNSjDtFQkhwvJbetitUo2ZgmJhdCw0OPTUR8GVn3F9SWf5KX9Dp4ZymHKSycn4fktIWcWVlpkw6b8nyO1mCm1I5qxS3n3Ju5PmehYPyYiD7YLbVMysmEpSIy2n4HqmQ5HPFjxKM79h4pFwYeUZaz4LdR5KbyacM+3vY2m7n4GvZn48C+BRqRy1bRf+hxO9js5LkuXKeNRC6KWZ8juaMxjQ6WUbwi2rSMPKLSoebTH4MrBhCodaRjLZ9s4HtQKE3Y3mWIXt7GjLyx6o2XGxS3l+DDpM+qR+H5L9hZH7jl69zOx+JMaRnSNWUzJTWy7MncOcH4HWibcjlKoPktP/wAyMSPGBVyzJotaMMcQkjL/AJFmq/cwbPeWflGUPBfU9juDOmK07Q4UWOW8mejeT7o2ZwVcyOowLP7GeimK+hxTRSZLbUr/AOlDxkpaRcTHsK9FQK4k9hW6RR7o+pvHuZ3JhmFgx0VKyVL/AGMFz/AvPwT4j9HfZbWWY2zKUIyW2nXkhNOGxmMS6HPGIFD/ALN58juMChQYeEYi2fbET5K2jUM3k3gjIku4HSc/Bum/JhKjLpwXVo3Db7MPCHTlz5HECwYY/ZIdb9xSno/B+BzOWXxWWctjMT8H5RrMFvTHTMGnR49hWrMZkf0wYSox0XFHvIq7MrDHDVH3OCYQ6aoqNClKx3ocvLZn+h0PD0Y1Iqf8mtitYEkxy9iFeZK4qYMdMt9FSjeLwOeKkeNPYsZHjQp8+DZcPHgz0O3nqSEh1JV5FCeBvpNGRV/ZTS/Ju1I4Tw/JcY9x3OSPU8QKWtmpX/ZpWzBHLTS0ex18mdou8FTsTfts28msGG5otscQjKHbyz5X6dfuP6n+DLVIVpSz5Z7mP2K5LB90WXNnn8j9zcCnkiVcPyZ/scPDMQjKFM9GlZh02ZUJF+rIsXQrVmGhSk6ZfZfJH4EOVspUb2YfZ7m7L9Kwi28mBqdmNew/HuhJrElwonyP6pNOUXDmDMFRoqaa8kelKU0XBfF2jHZuvk0h/JnrwPIpfkzuT4ZbiSl5HG5N3JjT8mJgUdP+ikqT8iv9iG9H46K5JZNOvIonC6HmaFSx2OHPyxahpftZ4Ki6o42qcDfphJf2KnhG97HMY9/Ioe2hakn0vIoS/gt76Eo44jJc6IhuvYyrT7PpbtJGXY54rKHbHPJP9vArG70OYe/4Gk9o2rHSwuzCseF+DGLM/wAihcqNaFRT15FWUUoOvg6le5iZY/aP4ONC3+UJJKp7HcR8FtZNlLLZjK6/TEUP1NYf9Djscp7KcRIoeDM35MbQqmP9D9h4exTGGYi3tGdHUT2P6VRvRcY/R+zFUWd48HdMcRs+3KHL2U9m1CNZFEUmOIPh+BpKmYfZnryXy5FpXBjvsxOTER4MMyngrky3s7yPGkXylUZar+xeUYamCOpM5Mp2OFMmejCqDEm6+TA2z7vJjK/0LFmIk0sj+CtyRE0WoqOx5wUm7ZylNV+mGb35MFmMxs/94KbVjw9mFo+5KGjK2LOxYpMctilumTWCYyKEY6FX8Iy0OXplPsvSNYSLiWhYwK1mT7sorloVaexJuKEo0/JF6Fbprop+TWTDx4FRhYNYHqWhQx0qMTjyOK+C0rZ5vwZwzMihp2LCsvsVUQksilTKNVJ9U3Pgrsy6/wCzTpbPn2NlPRlOkU5lvRLmpMxkmHhGE89m8wcoey+QrxJ7paKTX7nL3ZjscNOm9EUYgcv+C5VtjlN/gS9LmyK12bWfI/cdpfsUmrGrtPo+ZHThmjOBxymIfZT67R3XuIm1MnF1ZXY4n+Rr/ZnMDtfwfbaaMK2y+/Aq5L9ymi2LLscpGH+SfI85H7ijw+jTmfB8+xtfuZSoVwXNCKi0XJh5FDVJm1bMC9vYtYUFzl9GVgtq4F9SdKbK9xeXJaiivYwtDh+R2tCqaQvkUTmTY5aSrZjtjy3CXR3gw1BS2XOfBgxCli2cp6Q55J48ZK8G1EmHkpp2ZF7mD92OogXgUOKFhSmQqiemO7lEtpKD5kX09jzVmsmHYpnA61/o6watH08rvwfIogV5Nr99jluDCz5Ptdop69jI7Q9DiYMvLRtuUWlgvUCu/YuCl/BEZTMWo8l3+DLZylvL6F5bYpofwZUe8C+nRXXRi/yYKaUmcsVzZnJSyXmRfUkVOilqezKVx2b/AGM4bZRSTsVcnFa9x2dRYvTn8lxn9M4FnRfHIpSddDlvoa+nZPlodRRiVHsfHuYil/2OYUscvlg4u6T1B4j2FC/JCTde5nKk+6bTUmR03aZ9ztMXpnPbFhfkcaY6amf9nUOd+R4cwR6dsxoUzgUx+zKTtrpGcqBRySix/Uogpsw3MlR0KnTHfHSHN1otzvYqyfn+/wBFDWJH7GP4MuvgSejMirEGGYzDHmjeSWmt4MditZMM+C6s+GP8n2qhTxVJCiT3SPHsZKZl/wAjzowsm9jmdDhKoE212fKHr8GdldweIFDTFq0bHMGDDv4PexXplUaZ+D4Y9Qy2xwZVyPOX4Mq0L2MLZEzTPeRw9CswZWBS0LwaRllRgzFM7KW2O1oVxMFP+ytx5JnRvJnTFbyy2lY5mKHDmEj4LRhKPcpd9CllRktwYWEZ/op4/TO0KzHfQ1gh/wBlN0zorR0ylENCzl7NbJmIRb6HM9lzpFNKi0K05gebRb5YKv8AKNpt6NkXkecF8ljSFqz2PZjuMFEJscCtYFTuX0Knj2N6M4ISOU8ohs7hGFbNFeC5yXqT5gzU+TbkfujZczY6OoREZaJlNfoqLSyXcmqgtMdNqjVlQ6ZE+DGxTOGfBbS/JTyp0ZWC+ypwOUrFTwLCozFjnluOxrtryZdyOmU0xS+P7occZk/BcVJfHYpTZlDhPCMlak/B8McyqbPb3MZH9K/Ip6I9WmVEX4ElxWfcj2L7Laz7kdIWU5XaF6ePF0cZ5dmUO1BfY4TWCHCoiW9GVX/wVFJn3J1OT7c+RUlE+BUkK8pnVpFLoyxX0XBmJHDdQy/Viezdi95MtwvYt9n/ACwVcQW/0Uuci+pWl5KfLOxS2ZpEIvz5JxHmR2smEK3tnGG8i+mBXMx4IjJjQpXIziBVvwacKP0X1ZbF+P0y9C9xzHKyYykU6YsuWbyzexSmsDlN17GOuhV0K9oyrFhSl+j7pmVvswn+w6MP+TL/AGLPtwOGtQX6lSMH3CXpi/LKS0L3PZexc4Ms1vwbev5MwU2qHC/s8UY2P5KbPMjrKXTPwLDyM/IpiUKOSVwW+KbMzTFEodYnR1HuPNJDhp4eBRDlMV8inNoQl/tCpsUypkn1Znx0KZQpuGUmxpcmpgwZf8GNpGUO+Whz4G+2p2Oo0KVFTsUObjsudDTTbWMitKUOWuzHG/g+2IFadJn3ProiZiWa0hVN0YhuF+xilRxlPfQ6r4KaqOy3x32jEZFTcMUxbjo1aPuw/BjMEeGR0XQ7RkzEjvl4Lu/cWjuSpNWbdGR0slLLN4IjZRjI4aNuyotGF/J1QvDM9n2mz3MjYsYMzhaMZT8j+kWMo+7HgfbgrksR0O9Mxx35Pcdod6MPHuUKU1TO4MvApi0j7slNzDMrZnZsuXKFUZFLWDMUKWnhmzCyO3j2MIpKkj9z/wAx1FDpUZWCk8NDZhi3TMaZqj5Fbs/J+B7y/wCBRJnv9PcykaMsWdGf6M7NYR3e7HbwZ/TGi5LKaUlMyKC2qkcqZJjf6KmfgU9ChYXsOW7XUCt2Z0KlvostLEDiFaKhUKHMQujKRCkUTs0bUyPyyh1o+C5VsRjDHMKzL0UlkpZRmJky2VIpnJnMGW4z+SoUJDtZPcwsmHAo2POEbyTeiEmXVHz0KOmKJv2K6gU+SJwLDz5LazA8DhvsyzGxSk7ZoUPkXexH3RSFCf8AJlfyXLs0ZWfYvpovbZSiVIvZmeNIpt0/geMM3TL0fnwUtHuZSwcay2PO9mDEDaepNKfcvaMb9x1s+H0fJrMGFnqTCRTRnQvHwVBW0ZWzJ/5i7Q4WxYeGOsihFtVBhlpL5Hj8lpmGhZMbQp3ORfc5s7otrY/ybcCxguVDFhQOlUDpF1sz5HHSH9rFHJUZaJjjoctqZ8ldIXp9i4ZtRBhfwYFUzRlxRrJhk28lvRQ/3LayWt+R5MyZdiw2TVSh/VbRDWWy4szBT2P2LS2ZNYQlD1op/wAmdmGqMIvTeB4RhMc2L2Yrezwvgf04QjHFWW1gvtGG5+D4PBosXqbVmcoUXbHFqx08lw96H5NYZ8sWpN59h1Fo+5bPgdTbMvJTFUivUn/JukTSiHtjh+SvV+j+nMG8G6FW+5LSM7ZSk6owy5eSLUspo+pKiksIUTTMDmCrtfwLCLVtmxS9PMD9UaXuYz8FIyXyeRrN/wDRTeWX17jpLWxU8LZX/wDrkX26Y4b348GVENqZKmHPgcQ8lNfljtu4JhKys/I5czH8j+mkl0b2fU1klJNz4OsClufcwz6bscTXgtqW56NuzE2vBMNUym1+RTplraOTxCWjKH9Texq3opSK30YcyfHRUZMtIzo+fceMwW2Sayz8mi3k42ym3QsaMZb8lxrZnLR1gU8jVfA4SpIpolrb6LnA7Q5SzJ1gVtRJi4ZU7KaPlmMWYF9pTnBpSh4tMuDKKeTKwYeSlBXcnVj1Zd2ZkuKgxyyh1HyZSk3U+RUtmOX7GEUndmv4PdmHsvj2dmjTKhSOEsjrciydwLGUbbsy4MOjMlToiVhn21aOsGEz/jlmzLKexxN/JvPsKen4LS/gn1REot7kusFowOX2OUpliyxUlJ0e40+LVLyKL0KFFQYaNiyxRUM2iGjMlvrQsI12YWTZ8GNr9K/2V2XI72mWzJkdrI9TPX6Y66KcTB9yejM48Dj9HD6Mu02O0O1hlKZbM4LlaIqkyuMSLWT7UsaFS34MO34GlZ9z7HLb32NRMUbUFJ0VLhG8lz0aUsVSfgzy35PFn3Nqei1st9/pGM7Fh2j6dmIocJGXgy9dGTBl5H0Y0KuheyNjpflmFllvvwORUlEi+T5G7wUzP/sjak1n3MaKuYG5TlFJ00zCeRLyx4yOoZTi/cy9lzhMy9GqkcxbMMpbXgxJq0X4HHF/sYiEOn/BjkolCrjUmM/Bh7MItuxU6b3B7otsddDG3mSfBU5Ko6lGsGXlHsYdQLEWv0/BjLMFqTLmJLl2I2K05Q4R9KdI0OsmHaRnSLjY6f6O1Rb80IeLb7Mu4Nikrt+BahipIe69jOzPE9jGzWmU25c4Qkm8tH3SZSoUw8GHZRh00zDdFcjWDJxgnNlJ4Y6wKkUj5MoyzOxzZcWzSkeYhmdH/Gj7VsU7FL2ZSTPtyYjeRPOTCsrk9M1lFm6ZEShJcXbQqk0tGMkeD7lvRXZjK9xQ+KiCuUEQsmIldDzkeqZpW9EJZM7k3E/9GYrtqBQtyLOjCVLyKalGHE+wrTceTVr8lLwYeRw0PKvovimOLx4FeY/gc+nXkVyk2jM/sNK7nSMO5g8Dtv8AAonIsKnqTkvU1MIUJv5+BTMfkzLTWBYbfkqKjwP6Z/cVajszyUQOmhfTFJmFof2uYPqbwcuk0PZ9rWBUtswnRTiaMOzLdoxxxHQpX7mOUCh0jdizky8IxpH/AC0KUse5+R5eC1tCtfyI2yrI9UUxy1T94FDWy2YrODRb2L4Mm8wK5s4xuT6V+4vUxfUjeTVw+hlv9yEKzB1n+BRNfJjkon9MaPaUXOH2bocqf0w1MmVs1Fjl5nwKHH5MvCHkz0d5Jo5UsCUu1I5UCjtjt4KfLZjcHy0W8mHZlMwsmB5weWo6KadGXRyiHfsL3fg/IipyipdmDG0Wlh9i9mW0LGWWlpjFT/Y3pGdMmdjqTWkWlakUKcC+mT2XhGNCmdlm1K8HmRxGj7t+TOjDMPZ7yV22ZVm9eBTKw9CMp00Xqf3Lbz7jtot7Mr/yIrRnZCrQsu12KE6fuaw/Jv8Akl+wvuv2HF0ZZ7/JSjKE3FGz2oVyZ0h2U9wJ+CuLxGxexMLKLSpoeMePcuNvZffsKZHY0uki0r8ijspLKYqeTLpiqBXoVspqo/s9jOIZ8D9uzOY8G8mEKUyqzocPMivf6TKdMczg9l4H9tP3GqwZeuzKsq4FayhTx7MJWvIlDcwXx6MGJakUpP5PtiEL6sGjDdQUkpo94M6FjL0x52Ui2slTbLumW52LyLwXEUZiGYyh1v3HRhZ9h4qBU8sUNujfWhS4iy156N6MuIRfJxktKk9mKsfyfkTrK7HUGsM0XKuT5fYsCVKxxDK9Tgrtl9ihKn7CvsVP+RXxw+hqWXDyNtLLHM1Aoe0zTs/8hVBo0hS2U1seMoVd5FbMbNpSyZa+CoLcUjOGe45b2aqexNOYZ7wNpd7keK+DEYMSOdGqaFapsw9nWj4FCWtjjbHu/YxoWcETMv8AsziTKWUO1lmEiGjS2cZevcpu2W1ktGJlClPEGpo2OOMC9mVNXpj+qL6Oogr068Dif5FnJfF/sh+xcrCMvKKbstaoVKK6FeJ2OJMrocvDPwK3/AxylljlymU+xUKf6F4R7PR9V4HPsPEpFcmoZfFpQO2sCmMvybFbyjCdeEWlYpTQ6j8CrjXwONtoU8ZiX7lzC+B+ZLbmDKfwZopqkv8AYrX8iwOVdGXMMw4bns1n2H6VprIoj9/Jltto6hp5E/SSvVSX9jlYaMNU2XGBVK4wKIwmRL/cq8jzElJYFCVJMtNWkNqMt7HmEV0L6krKbtj9vBM6Q/deT8mXljl5THgxtf2NNrZOfSItUmh4K8IwvwaeTeGxJbfl/plotJRH+hU18wKM2OF2WhRChGrUjMizcrslPaKQ22O+X7CubMx8Ftf+ZiYY7VM07PcWR4yuz4RbVjKjI7V+6FE6HfY8NSdjtYgwv5MTYpbUyeJMJyx/U6Ha2OkfhbRlKV+kzj4FPaHeWbyik/5Fb0VBa0Z438DvKLbcDye1EuMH79l1AvdGKg2L4JjrpCzRMXDMxMjrU9mG6H7mvyW9G8z/ACJKah7HPjodKx21KK5RswqotpQOrMbejRa/cfhFpbQ5VpMtN0yp/cUdntB3RaWZMPDOqZspqGW8FPYpel4PkX3K2O0z/wAy0/5/TDKfgdSO1aPyjdoWGYWPcicporuRb/ApqZHLT/BhjxgUNOWfufU3kmXcaFDX7it/sLufY9kTO0OXmCpeCmdW9m1U4PucY0U3RlaKfRxoqi1jyOtvod6RlV/2Y1BDTUtMVcYktKaNKZf9GXtChJ5HTtFKcFcdjjsUpuiOWvYuv3HO/wBI9mVOR3jyOnHuOUuNDp4Mu15FWWV35FWDVNf2PH5HM5XRZLSwWmpJpmexxGUVCmT6nkdz8lV+5lqS4mfcU0VNlNGEssXTUFtDjj2Q1GhZ3kU3EC+T7naFYqmEj6Unkw3ZFYMqmx2v2HYsuYN5N7HMumVGWK5F8lPoUJ5gpx+xk05SHCHLWzZyU4TG2v29hW8HyVExZTjKF9LVvZiZHDfyZbHcRCLkcvS2TH5Qn9UWYWJJb6PgyzUzA4i2hxsWcxoh8Wi6yOOx+U+jCqRut6HKOjTleSkh1FPyU06YqnBhmGpYphQP6t+w5agzgp7E4iJKeH7H4LHDeWfc/wCR0nkyOfTTHSuSlNmWxxZc48DFMCvye6X6YeSHqSkv4EoUyjDePgxFD1MmLN46E25f4GoxP6V4FTo2rHiI9ijGjlGi/ThGJk1Rh4FCn/4djhOJjMl+rT6PLKa0OZ0fkcSoMs3krjx6uzjTtSL0+mo7PpjLydRJdbKmJZe5K5bQ8pXsWpbONUZeEXymVA7u/PQlS9Moc1jyKIx0YW0K+UxoXq4u/JSyhJQ6nY6TmDd0O9H5NbJTeh/gzxtjplToe8Ixoy8Et7ezdjfyNNbHDTlHwVG+i3JkpzNGNDwabFnNiyrKTmjWT4MmEZSkpaLTr9PZJDqRRx78lyqf6ayYex72YaImBx/7Bh5MsfiBbHCykXhMwsLo1o6tD9mW9GFbbMZlG1+5VnwJTF/0R2PY8qkW8NL9Pu0bcQOblfwKUf8AIeOjCO6M/wBDtvB2dwxe57FvbHNQYFnDHvBpmON/PQqRSiR4VotQPeTMNItR+5hfyfue1/ooWjTyfBkzhmYyWlQlP9GWi1s07HaZSyh10fJuxS3UFajoXt5KiqFKeh10U3hF8k79jEfua0RSN/UVFo+kzlDhcaRbW+xTNo6qDWjK32SpbaKh3BDX6fbhopJ0Ywh/Gj28nf4Myky3hPwZWUccYMuJO4KSN7Q5W0KOiR1iz6W9FTs/4qD5KaLnAp8ivbFPZnDQ4RaiJHKyh29GZyZX8m/5HeJMK5MGVTMOyoy/BjoqLgdbMvfQ72OtohrKY3DqCmteBYuPA8vPRnDQ5SKmP4ModLXQk32UkYWB0Z0KHiRxDpjvbRukcYbeE/JkwtmHUCxUHud2hwsn5G2mZUyZ30KlSFWycZFTEoWxuZiEKpU+57X0axBc78jjR91wx+/6ZVSjPQ678GMmWLxPkw2oZPhERFFNbN5G7HJcG8oyv4LdFuIglVSG5W4LTThlpwPCwOY02U3TPgvzs32X1BEaZdWjKU2U1go/JPpX8mMMtyaRjo06FZ8FLJXKKHE5PnouFaHuSu46O6RhaMdDhcqa8jnwR5RSeTcQy00KdL2KhlrRq72b0VGDGmbuEKFvydUi9ohN3Reh23bHqBVgx0YjHbHnK6H9Lswlk5U6aF6YcJro0sstq17H25gqXjqhyuzD2J+nirM0im8fpTwObP8AjUDiaPgcp0x4wuxfGoOPqXGKlK/cr1JNrxA8qS+RxytmaKaZb0NYtDjlxhmjapGWqf8AQ5TVv+DKsw2VGC05c/7MrXQ/p6Go1JDuvBLTdexp0YSxsw8SO+PFJsccXgxOsChzC8IW5TTkS4/5Hb9zM2v7JTnD9zj7v/omfGBN8nXUFN0vIo4zY4hitqzi5iYM9DtwmO+zqyu14FuHBhNyzIpKUUxy/wBoFPRvAvyWmiujKP8AyFgURYreDrKOM+RXcluFIo2OYeDeSzOi4pmI/BC1JlYMoyZ/oyjSgd9m6fZ9uS03S6F7MsyK1mdkpp0ix5eTPGvc+57Fq0YZTQqprv4HXLZiRexstSVqD3ZU2mZWC4Z7nyWK5MzQ6QoSVMwtlzk90X/scJS0NYlmC1gtq0XOxV47FN7E2Zgrc6GoblyKJdGVkzEQdQZejR8HvBhjy8bOPp3Iq0h4FN3HQreDKFXHvYobdlvopK0K3gq4Rc4Yp8mN+DRiL9hSloUJYfkzhMyWlfydWK+yltmMItPQqP3MzZ+DKVs3kxP7jhD+lCmbRgprEnyYpFdFzsvohpmHgpaRjSFg+WfaaMvJpihsWfJ8jlJC1J2JStilrPsVKmBZ/wDQVOfcz2OplMRnZQs5E4HPg/JhleTCRul4MOi0KU1k/b9FaleS3BWipML9Eodof/Q7eH/scTRjZTMzbOpk1XujDtH4MvB8lnwkKZf7GXRSWB3xHCOVql7DrFDraKjMH48CxQjBrLNqmW1112XsyP4FBshNZFcoV7ZcWe5h3Iq7KqzDtM/Yw4Hl/se3kzNPyZ2K1RX9GTP8FPRmb8n/ABymK6wa6HfJRJdwj2gcNZHF2dxX6boX1Oy23bFbPwXP7DiNsjBnJmaMsroptwj/AMyoyuyqoV9kt/3+mhT0e3yRJbuRd/8AwcQ0jWRFcoz4MTaHo3nsuRVmT3gpRbNdGe+jO2K1VmFlChpZMPB7s3vwOlRpFSKG8HeTaF7GZwK0lQ5XFSLZh3IpWUZk3cHUEeP7H8GOLtlp4QqwkhVLPdihzRa2U+xTGC/UsGKyaN0jM5eIHcfBxXK5h2Ko/YzgylclLMiwO3cimHRSezSK5PRllRddChUbx7GevIp7FDbpf9Cl3MD9KeEL6dvsUdewoiFD6Nul0YemOY76F91fAoWn4F9PnRPpmmcvutM+EfdhiicRkUS5lGVSkvaRxh5RekvI6m+4OoUnKeOhWjGUh0k67HCSr38ihpGnYobz/sc6gwqXuZTM4MTXgfsOU8HtG2U+KMddmIHTGupRbT/CNn3TCXgUM3meyZbwK1sTk4zOF0yU7hFTb9zDodK/YiNP+R51sxH6XeR2K8iV5RjkL2MpOSbq8E52ZVwOtFQ5+DEz+mE/3/TKHWPBrYqHgTY7WzUQaMNUj5FD0xiTaHazJsuVMChpWfkxgzBnTLaR7sVRH6ZihYcz2Y0bwQtWV2PxJ8jicMVaX9/ok7wY0XNo2pgRin7GIF18D+SlmRShONsWoG00jLyO0rPyTLizRKSxPY76FjDHXXR9zyxSm79i0lSPtKb6M6M4HKbx4KojpsSc0OEYf7CrbKcDpa7ZTeBYwxfUrMq2bRamBfSsDidodRlGcLo5V15Kh/2Z17CiLgY5jJcOkynRlaNnZMujMCgtrRjKMPJl/sKWl+xc4gUra6ZvB1kw8QKS7z0KGY6Lg+J/S50Of6FHp2Wno1bZh4He0Wslcmq6HLWR1ovYqyVBU3Ap4mFhil/sfPgt6IcZPZe5GmYf5HDbvyXVPwOOKURqDTN4LaNq5FXjoy/4Pj3MvBcUp7Fe9H27MvRaeB+GLNSOOvcdo+1zJh5HjHlGVktbKayn0d0K4x5PwKsqBY/A/pmfkqNCrJ8mf6NuBakwtlxtDiVQrk/44He0ZeB2rL6K8ludmcjo/wCTizv8Ft2d2fbryLfykcadC1kzmDDcIVPZqkWrN6FfHHk42smXhF8eRS2yknMvf6YX/pFPl9wPGvIo5HcE9onuSlB3Iq7N6NPZN4KS1s915/TK0tleex5L8dEWPFs3nbJib7OtGMx2Vywh24lmHTMT/Rq0UZiDHZejDX6S1NIVmt/op7MxRn02hUsI3gWKLT0VOjF/gyrRxji8PsVYg7g9ym6PaR+yFikP2ZmYZaii9lrP6PcJDwrQ4pjMpVBMtVuzqzawYiBQlhj+lFSxTpHKNL+h2N+Cawxz/wC2fsOZ/HwPGET6Yc+/gdYgc1RLbtlqoJUf7KTSj3L4jdcZcCbqqM8ZaQk1leBusPoUucMqV8eTeEKuy5cJIuOx/S8F1fuUlA5IsdpYKUyKFlds/Bh7JSlJGnlFsdZfsUx30Yapk0r8jxa8HKG/4HbWfJTwxX/RoXlscXbJ8MzNFNi93pMpb8n3aQ/9yOoVdMVKkR9PZj+hRFpmcSUls1SLix+w7Zfqyy4pGik2McaM6YvKHDVR5FTH5klJttlrYpjPsfJh4EZ7HCPpY8KYK2v09xYo7kn1PL8FexW0jKbh9im7kUtLHkppyaN72ijaqTbsUwXxM1CMrJa68dmVT8IwVJSf7GP7MaFDUqO/IrZiKXkpKDeWb/kVKjxAokQyIeDcL2N0kdWWkj59xfdZa2mXxwhikSSWBVsU+DRnQ44u/kU+CuXgt5KbuRWKfA4s5Ttjp46KezePcpyZzI4ZRiM+SaporkOl+4/ZvJlkyslp/hGEhWZ/o/8AIwkSnI772OHGOxFLbRMXbLc/gxo+rvsqLPay5RmMdiuqFHF/yfkUpGplC90tsTh5RPceCnoVvK8FrvrwSniC1OcWS7mxuehSnkqWYkfsKZcSU5titmXg/J9uj2HjQri2e480/c/5JDlKmYRTbyYjJnsytDiFT0LNe5U0+hzeyvUo/wCy26bNqnplRsmR3hoUNZZQohCncEz5MvZTWy7p+B0snuitr2MotZk+pMdsysNC/wDos7Q6w3uSkh+5hYLkotaY7eB2qcGqfuKmWlSFZevk+TWF5NO2Wt+DasUPUi1BaVFNCmWZXRjNmsGditOkYmJF4Y6dtdF/6HaufBhFqcmHSFK7PqehjTjJ9zqD5Zhjp/sR6mx3hopaHizG0J+NH3P+DzRTWfc90xzK/c/+lJ4KgULszpnvH6btMUN5RSMtSYpT5NYM4TZ9uWzAoakcN3Hge6M9jv8Asmv5M/pvXg3iOilr3Pdm8DhLaMxEGNky7kdPZkcQ4sVpW5wX2LGUXti+mKY6amBz7kwteTVJ+S3v9H9TI9LyKV0uhYM5Op/7Kc09ih7ZSbzoXsynpicrei1sc8Woj+TDwxuVxsd68i94KdKeh5zJo90Vx2PLeSPp6wKOLtxvwKm6SN59i43oVdocPkv2G3d7v3FSwU0KOOJPtShvpmrbOU3nQ7Tgdf8ArInyOlEMcpKkZuUdZFKdyXL/AB7G7fuP2TKcGYkc8ksjtYkwfnwZE5ezWD3ZhYKi2dUZeULAvHgVM/A/qqj/AMzdFvoymYLZXRrRlYMmxtps3+lcnUIqNFt5PFlriKHB7GpUbHaHeG9SPFP3N6FSNfsP1QfJodsfz5/R0xJN5g/crox/X6ReROVXwZWIOtDo0/7Fhn20XKPdGNI+fcdPB5NFLow9jMJSZFDZkxhjlNWZeYKjRMmVkUJbHkeagxA4XIbTWUh4Rh4Mobh5TKbKhfsaVGEqRUivXufuLX7kLwWts/Y6wzOinhM9jCH7Ji+Hsf0rHhmJpMi6Laf7GUh7ktXA/bwxzFST6WO0bNY9zLw2O0pKSyVA9zRa6HfZiKLeENynA52fKPyZiGaiTeEQvJiK9x7szmR26RbcHyh3NmZI7MNDpC9UfwT7HsjCtm8r9KS2JOMD8X2TY5fTJ8mX32W9lPJcl/6Je34MLLM9aFLT/sceFRhZWR0tdlyfKFhFtxCWDBnY4XgsqOx50u/0w1THDdP2HKgxj5FbqDSv/Rs06RiDKwi40OnplRscpr9x7xs2UxS5j2HDZq2Z6HfRV0fCN7Fe/wBY8sn6rkwO3SK7RgcLMnZjYvuzJjDR8ES8mXaM7M5ZfZtV0fgdMbmMmXCYsDstb8jjoUSVFv2HHudYHumUmzOXB7mxVOjWCk6gZagn28mZV9GcijuSpyOW7+TKVe4p0h4KTUozs0t4M/0POdlJ4NRgWNjvo0K05kz0Y5Kp7PuwOcv/AKL7gU6QoimzKiBHs2jQryxVGR0ts2oKk+DM2OrHC2zWx+fgd8tjmd6kV4stWkxas6tmtnSY3X7lpZFiimU9MiNvybdG8xtixtGVhrJjDZ1T2Z/ocy69jM0ZNWO8yZFMJi9LdsUzbZlm/wCTWjGkjCqRy/4NZRf8itYfkuMePY2X6aYraoXleB0nkX+xV12U2j/3gULlhYHiEUv5QrWzuDD3JTeH17D+qcj+pUVThjjlCl6F9xl/g+nlMz2pIdrIknMFvfllTk6pClZgqak5Rxka8IuaTY8bFL0VLhm9jlJQNQsx2X0VUWT2aoy3Q6MNHcDlTCPqmpFKef0T9WCmPNjtYL7HRv8AY/J3ksmG8E/AtGOTqdM1SMLR/wDBfP6Mc+CXVfp7FTSZaeaKVx7jvbPueRW1ZjfuYbPz4HM4MvJo7P2KhUKm/wDzHeEZRl02OVEwP4M4R8Mq4KTwWlkVZNoqMFRkwz98ENLYpmn7GFQpU2imjZlfkwzawL2ZdRJnZ2aN4KZ/5mZNTDKYvg7oqdl1sdrrop490bUC1TRlCxEG6XsbQpbpldIzEx+i3SNZRtOReEhw1rs9y1k+1ChYPu37FefJa8meJby2PLyP6Vo3ZpSLQsWyPUy7KbW9ORZpTcDqYL2PGWRLVXso7tFKYP8AjSk/DMzLfgdsylvP6ZWTIhYtlN5FHqeT4LrOmKu0OJiB3uB4yKS0x10YweZR9uvAsOSlNMWpKb2tixRb7M5R+Sll+w90fTDwY7HCQ/J9qQoaeGOGxx+5SKWl5PugdilH/RbzA+je/wBFcGKoVJjraPtdyOm6PyPFtGdvwb8G8CjwP6XiDK/keKg1aKapPyP/AOlpZHWZH5HMnUoey7LawW3s5OswawxZx7GO0fGi+P8AYqzexwk5SLkcQqZ9zslu2exWjMZKfZsdRKRMZQ4lUNxH7imdHVfpSQ5kyh5P3MsyKuvJXbMZOpZpl6RujIrya2N3ZChQX5PyOPSfI/piRGXSNPJcYHEYFCbMYX6Z6PaR2nXuY6Jgy7+TPRTxOhw/0x0J+lYWjJTxAodqPJhyvYqf07f6P2My4QrdQVZ+xSRhnKkojtmGsDUvlKXgpJly8G/5FL4rHgxTgUJqB4/LLux1P7j92JqcPszJ92OjBiMD6s/I8O2itI+GKGlgcJY9yrsX0pFLH6VGDX8mYocPlg06Ksd9mzCUm0k/HuZ0JxtH2t032OVvwhtN2ZTuBWhe7JbqC/2s40oUjtKEJwuNodO4NylAq4kLiK0KePsfanT+Rr1LbwJVaXaLbSWcLyQ2rkq/Z5H6v3Mb9yktPaGn6tGnJxpOUymngXhI0/3FSlIfv7iTTMNx2XA4h10Uh5UJdFtuTOjbmS9z0ZmfZj+qRzyuh3BaWjTwfgVrL8DlzRvL8F7THGzDWSngcQojwKZRlMSUDpa8lMTTdp+T8GG4P+OGVH8lM+GW9Exkahfpnpl3Q/DKayRM76Pwbkwinhj95HRa3IoTOUp4Lcm3+nRblpM95Ljot9Gez5Pkx/fZl4aMowOrgryYFG5N7MYaPE+So7LjQ6/sdt0RVSZNWKj4FHQ56K5aPuLhX7mZshpy4PdD7oxtanwVEjVbMJNmXvwfkylQ7RcWmOGnf65TVozyMxfuaZreytDlWNNNaKa0bVlJ7MOkdQy/9ClaQ4Wx1iSMZMzBpQYMO5PkUribdf7HqhpoW6MTRXjs0VF+4vutMUaodI+Rx3/I7TiTX6WmLWD7XUDqPcz0KVtM1kti9yvYwylodRkclS7MvYo9NoUN2YY72R5/RR0z2MqxSk9n2jp0hZN4Zui2hrwxX1ofsxN8olMqcix2WuinpkQ8+4ouyfBaWyI0tnyYsea+TDVmDJTFLWzP7HVD3TKirEaVmHZdykKI/wBHQi+jWRZoplXJ9MPAol/sW1hDXYrnZSmZWhwtIw3gwrY9DyW8ETGDGYPteH5MoU8W/k+1ClQa2PCya0b+DWI2f8bZvMj+SG/3FaUtm1KY8jtPWxYdstvKMLBTeRVomsrstPDXRtUy3BiJZqjDFf8ARiZRg1dWONGuyuSv2/RwswhGsinibyzPkR9yfwLZyt2LVE+JM9FS7ZiaLSzWTKtCypkXwQZRT2K8SZtM3lmW/wAIef5MiyYWfYqXMjp4R9XcFtfkWTsV6NW/YwUatGWZyZj1Mc8Yh+5yw5RbmzCab9+j/kYSs0v2NrI4v9jDLUmeyoSbSIiJSHEZXSLfLoV4TPb/ALF7+x8j9XFDxqSKtiicFzgvjsqpbISWzeX4NMcyrSwjl9Kavscuf3Kbpo0qWTDctvRMa6ZXKpKl2/2HVyYY6ayKqag0lK8FJufgajlEr5HnXaL4vDWhTyblN9dH3Nw52iFy46Pu4uE/GR2XVMrknf8AtDUPArm0Zf4KjMmHh+CG8NmVlELr8FpZkb9nopNRI7W9mVEyOUqs2O/VjwWtj9zG5MP6TGJyOnEeR30KO2KeLVSe0G3aKjJl78DhQYijKZmfcnl7mEsmNCxTZaVMzpHsWlbQsFN7OMNO2toURhmV0f8AFihZ8GX1aM9lRnyX6v2MtU/BXRFGRQ3vwOuzWP0y6MtOUXGPYXsUnk+R4QqmWO9HvORLEMUPpit00b2YThFOak27FHQtV0VVyXGtCqMEw8Dmcse6Lm34MdlPoW7fgxRmKLbWCoqh2W1g0rkyXOWYMMSZ8pleCjsvwTgppfguWZStdGG8MwqgqcMU8jGkacpFPszpjzP5M9IcxlMy1fgStQ15MbNqGLwi+4KgUSi42dw0P6UaL4zRabyhQoj9O8FqLMZZ9uPg/wCQ8/scZjD8ivvI5b/kzGDjK6TFKeeym2VMWU1svi/qhn0+P+xXECdGFkV9FTnZE9l+C3oqP/MUIpdCjjv2La76KfZgeX+xhbQvqxP+zP8ABji7H00TL0ZWWYlKCU5r2NjwWr8mV0ayj6Xx0XLwYwx0mn2PyoFQ84ehf+8GNx7Dwyrvyfg/OoIfhDarWJMxTNr4LbUxIvqWmTe+jUsc9lrTPNmBYsuDDWf+huO/AnOjQm5cQUngpJwxSuy10yuUz+5a7HWmcekzdDwLOvBhvZaz8Dyps3YoadIVvQqWYP8AinkXyd5JT5L4KLPwVGWKYtMVu37lMzryYgeqK5NzJh4NYKdNP+hfS1bHXZc4eBeyMxBfLEEUO+NJwKVmejeDTF7EtpQ2LI7qmP7b90VFF3nwK079jDWDCwXGjbyZeH4HMbND1LfklHwy0tn2rAqVxA57Mv8A9RcODKVNGUk5MbMNHRlr9Mj+nr4PaTDH8GHo1gplTkvs/wCOBQ4z2adewrWBWzMZLKekKFscp0KmY6L2hr04gqaQ7f5F5Q4kvjCheSoNvfZF5QsoWMsn6bFkUrsw1k+5KGxThM/JmaFU2VKijDWBT4Ek2JRuRKEKekYS/c26SFTtpswzxBXg6FSuF2fT6s/gXqSuT6VECpp8fYVL8wRSlfwxJNGWy6xopLKeUyoV+/R9La/ccRxzqTP9Fcm1/wCQpbcXuykqSdkKOSzgbmbgdPMdF8Ylx2RMJteBpLLRaWBelvApSZbY/TGn0VKplJqT/i5MNy/A4bcMuFRlqoMsXSZmMGWQ3oUJ/wAjqC3NmetQf8XRcr9jHRbSoephmsJEjiTPQ84PkrfkyzGx+mXoVPbHWZLuEvBamx5qTPHZbiypPk2fbycSKfAs05MrDfRU0UpotKRykOY/I92KW8TgtqjGfY1fyV0O1vwLOR7xsuplmWxRNsqHRhutGJoeJLSoy+h4VjzoV7MTZjA7SorYvBl5K1AvKZnwXydfo4awJy8mHhmjKwIdqj/VmcLwLApVMWpa8j+B4qTL/LLTwbz4FtfJlxQ6R7QOXsWVguHDkeUWodGSbMLX+/0tvElRZlmImuypdyW3llLsdLY8WOIvxBliw5YrWRRKkw8szhCiLgwpZjkoLWFOB/B7xs/YqjdCpaFXg+2CU+NGm5MKn/JXQp4rLRj+hRLLnrotPDNLJ8+CXO1/YreDKZWhRFHWBUsmFcDh4voynZxyOGqNKH1JE6KaNvI70W08DzNn1VT6Nb1JHlagWcMdxSNW+y1r9MOz3S7M9izRjbLS/gUp6L8GB10d4FQsVIr3Bb0PwiG1p0REe4r00awheyMMX4MIpPH6T1BNty+hytCypgpLRVm8eD/lUjyx14FjfZ7GYH2OUv5IaQvquxQnU9GtFNixTRT68kPwyekjLmGfkpoVtwWopaELDTR9qtlL+CmngqrXkcrRSVs1svlj2FfZEsdzPwOOKdFJCwhwsSYWzERJjz2V3JhmYJka+B21Y67MxQsCl9j0jVVk2o9zHZbyn+i1S/sxBuyW24Kh1+iizVyaUmWjKiy535Gp8m1b2L2a2PR1DFWjP7ivRTyOuzGfJh4HEdmx1FMtNH1Tjv5MJFcniSmnhDuR/Bj9PkzlC+DG0ux2rFhWj4Ys76LS0ux+lvL7Nqm9FltuGNceU0W4v3K4qCkt+Ck6j9MRKKnBVw10Lw/cbadt5+C0rTNIf/SPt0W4gWMmFnr4HPGLRbhy/BVOGXpMy8D9LWy4UIwU8fJ7stS4nQlMQ41Q+0X/ALFM/sx0WvBbyhYt+4l91jcTb8jTvD0JpyvyYf0v+TK4wvK6PpaVaQ5bh31/szycJi9Se3+IZ9SSp/0JLlx2fa4UEyx5dT0bwU5tDt030LFG9eRePIphfsPOEXlDwkyJ6QrQ5a5GzPZovtGZMNWiqwWYZcx8GKkxBamUytIqz4N2Wp/S3pCmXJ7y+xy5ldj9kbWD7Zod68mlaMpWZiExXllaXscZrIoSeinoWRagvs3s1j3NZZupKjPlF9ItF3gxpjicEdMdHsYwZNIwjTo3oy8oV6FSw3+5tWKO/cz2Y5IWvyU2fBa0adlDqP3MK0jZ1kUm9ipUv9jlcf5FHIUR+CxfTo26RTMLIrhyWtI6LaNLJ8mv5PZmZyOIexynY6n9jHRj0ndyfk3XfyKG9nQ8YbRtDrS0jeGWlXyaprowtlzgVuoM4gdrJUmjOzKyUj7nUsdqoXZq0zeGdTI5hGOKx5N1IoUwZeDIpSwxXmR4ZU3I7Tr9HUaH7ndGNv8ARTpscxsqjLSkuD4LlFSqHWWxJvIrmRwnbkau2OJ0ZkpNVIratvsQoXEd5HIomy5cF+5p2PGRVpmdseMlPiylyqC+JVSipHD2i6gzdaHRfqwV0+yz2aHEZLT2ZezK6Rc3BlU/JsWy6odNWKGsIV9Djk6aMrLF9p+4pV+yPyY0XDwb7MaFaMMVo1oxsdPPuO5hl9GnI4mUn0jLwzL0Quy0sCqs6NZkwO9Sfaxyv3Qil0PCwVeSnMf6NV8mqKeJFfZlU4MrDHeJMJU9GIv3Fa2aVj/+GJgVVJ7+DCX7jhmcHsx4ZjRRluzKwfJKlfI6HKM6FHq2VFL2En37GVocfo6i1+i1JvJcqhxK/c/8zDQqY1KtQK069ym6Q7VP3MsW2l7FrZSZnRcYkdRb8jlwOnseUW8It6ZlZTL8HufDwWKXgcIcQO5s10KFgt7Y/kUv3MvZaMKmWnFeRfc5Yrw30a2ZWSuzOF7CvvZ8GGKWseTL0RLqCrhofsYf5Fawv+x2K28/pjCH7plrC9i0lXZgxB1qx3ORV4HFQOeTmX0Q3tFRj3K9OF58mskPx/oVPs0f8s+BUohiTPpbr3FHKuKfkw3S8mVjo/HR/ja53OYaGuK5Wn5H6vU4ZCXFUiZbtjlOqKTr2Hf8mBWtroXgeMmN+4vZn4XRqUXMyxzcVgxLg+1ktpykYeStQVOEPwy+mUuWR3Bb2Z6KfRpUvI7g1lDt6Nm6Ypao1/I6WS7H7GVa8mM0az+j+dD9mOVGDSz4Fa0d7MT+ChVlnvAvMG0YyZmD2YvgpTSKbcFQ4oRRqzCSFky3bPyW9mD2RicjrJjs0Zoy3NjpItoqf5MpOBw4/JopJflDyKHiGY02Wj7djvjrtDp38lpqxKHkWrL2u/k3Y6dI95/oy0XGzDOOctFr+i+vc2Y0ipMpYHljwZdpltkyiS1NItrHsPIrUT0bo3lmex/gqMLstFVgpXSHaWezWC9mVkbab2Z0bwPJS7FWjCRp2L5PtUu+/wBKTwzGzef9Ch7F7Rot1LGLOx5N7HfZhaMsddFXJbdxkd9dCnZ8Fd9HsVRqpJnJnCMxfuP3Ha6yWqscubJjozxRam0PCr2Km4RnipQr7ZSTHEFRKM5ZrIocwVH5HlypMvIoezpGG6fR7QLFWZdIWNmdjpfuKXGDKRhHKPHZowsjhRSFCalGGXFJFSOX2TLyKGnvZjR+C4OTa5JV0ynscbZUbMFuIgURiP0dKv0ZqDE2YeiUnkV9jyosiP7Gs4FjBkUR/H6X0b/Y3ZSWj3Kkrt7M4TZytF3kc8coX4OVNnK1oiMxsytGH+RzOD3Y5TRrJoS7KPhCZSdMd6Mcl+DW/JTWzaLfQrToyU3gddH3LKFmbNfsy4tsd+P0daL7Qyl2ykzL0VGRtJm3EeD5MPJSHKSyh5MyLGy2/wAFPQ/CYs/p7ih/yZP/ACM0fBUGXbOi5R/xplTgqLguB7wYWTDyVRl/yfI5mR3cvye4syWrj/4U3aQpfFkS9dlw5ZrKMIxNe4oawZahsU9MtmB5dD+DQ5NZRRcuz8I45wXOPfo0lXk8/gczJtHKMJJjvK9jY7aHi2+xJzT/AOjKlpf7Hbz7jSqlocxkdpUKlk+7B9TXQ6dJDmNGE9iiNjtZZfcexyb5rCxU4FfJzb32cly9LmS0rOV25MPC0P1J58DcTPwNwtDlGl6o2WuTn9FLyjeUZyOkfSm1Bp0O31UGFE+5idGJx2P8jhvEGezK0atGlLX9Gco6LM9Fv+hUs+BalGMlM1c+RTydNoo/AriJZnNFN+R08yfbNIxhPQoUU/k0lAsuhfHkztDtmIhyP57FFnvI5lzB9ycs7wK8/JlbLaLj+S3FMctuz8FTSHL2KVydybyj2kcLfuXcow7gUro0h1MyZdIp9G8ChcdoeGio34Pt7MIdaHW0U5ViluxtLEDoyKGjGjlr8GslwrZqzKdI+7TNZZjwJwkPVDuhQx//AAw//SNOabI6RhYLqGfalQ54pScpbxA/q70b6H+clbotNGE4K8m8Mf1ZocNFS85gerPZjp6FUjiMnL6mZVsuLaMZgcPPwWtmsGWbF7Mqcik+BxiWNRr3FnZjsj28FN4gWNspdDUr90KZqEU1vstPJhDb2Z0WxxcP2Pgc1Ru0U4wyk8M+GZzJhvIn02+zr4JaejLHLToX5O7QsYIcOUdYKi2Yiuz5KZbymPoWXY47Z/5n4HUUy06a8jvJTz5H7i3vTMqmX/Aq/gtaM9+DZPVCrDE77LTpRoeKJrR8NfwOIzJmaE5d10LWS2sP5FXYpimitwYiWZj4ktxsWMltj3kqrKWKMqkI6hrsUaFgd7RulArxApfR2W1rbMO0vJ1ElQ5g3gUGFs/5LJVQZ70PP7mmZMYHnHg+GKUze2Smt6gvpfplC+rjR2lBtQNtupY/kdaFjHn9FO35NI6Lc2ayvApnD6Ka0U1Y5Z7WP2Q4uz3RTuSpyVOBw1leS08GYMSOe18mGawzRbT/AGL00YkprJVimakdPLH8bH87gVJFNV8GzSN17GSlxpMxk2ZY5evc8tMcsvz0W1geqFSVN/waUp+T8lqTqy0YxZjT6KvPZUVBmRar9MLZjB9ryxT5/wBj7b/0UrTKZSx7eSyl2Ok/kvEsw1T8lNHKv3MNV/scRSRumO1n/RX+ymv9l9mU6Ic5KeJWDlL5WvwcoqEiU0s+BT22OolLyNQv/QfSsPsWKRC5RDgxxv3KlQxQotCriv8A4fc7S1BnfuU4j3o/4jSdpqbnAqaUwx3FFJ8bOmVmIOK5em05wjHKxRxw2L1LM9KIIvLHNJoX0vDHbwTOKo424rs+2GlstdlL9h/b2KmRdxteBel5HbWCo2OLcGt/yYWEKxJel37GIM4FBhYTMod9kf8AZlnyfbhnsZYnK/YebaF9X9fphaMPEjauBePZlw77FE4fRp0ZUFLscxcsecMpN5X7lxXuKJyL7cGOzDwI+UWYdSf8pSM/wZ2i4mWYHej8jwpkryJop6ZvLWC2s9jqJkqL9zHJDg3h9Gsmtnv+jbX8FUaFZk9+ytwhXFlTB7ryjfZSVG9iz/Jl5fk26gUqaPeEYHCWxFyX5NlLZ+SuUfkiUOIyfAqbtsxsctYgVZ9zP/rHRc4RlKSFP5HKlyLOD7uxWrXkfX5Kcsy7nZ7FLXktft+ls9mVD/orSO5aM6Qtn5M6MI3cCxhjryR6Vvonk+9fAoi2U3k/YUwL2Pte2O7j/QomyElEjno1ZSeTEnvJamB26jwfBT0W9H2mceUfC/S40OIdIV5PyWmvwLOypaZbstU0OnkeZR8jrlBdaHWvBl7Mt3BhC/BmKKS2YejQvkxKHlaOpbRDTR1hG9lJYfZxripb8+DD/I4evYVrKJTeGZaz5Ki5LRhGpj2F9MWhS9LYvS3lfyaUQY5dizU/0KU1B1T8DtOvY+OzGB5pCvsyfE9CwL3K8FdNDhNUxSoPZNCl9lN2keXI7WzOS510a2ZVCtQvcn1crS6K9O+z/j+Cnoy1HuL3Hi0im5jwjl9TczpCmB3NR/Y/JXJMzGimlZa76G4mU9l3CMpkqcn248jhqv0wx0s2L3NmT3jz0ZdwOGz8GP7KbPYrXyZS/cdq6Ljo94MxFj7HT/Ih07vB+UfKMaHTwOU8ybuf6GnxUR7j9ilFow0ey/TuUKFx2ypwayQm6PtVIWMMqLEomxSY0VpyW21CKg6st9Lox/5DiMDUt5XR7GVLLTyjGiqgc+xyt4nArWjD7FWIP/IcqKF7ibVmct+B5cJ9jtDn/Rb0x0qaNYIaamT/AIql2ZiByk2XGDLVi+l0jOxwln2HOk0OfA8/ucofGpwU/wAltU3/AKIaeGx1NvQoS8Dn1KEy3aaFHkuFEFpqZ6Hl/sZTlkL068D3MHwsES4jtHGOXdwSodm8xoeLnFH2ujl6axpClvLwjilDVD25QqUJSKW2mkzWEjl6uMU3ocJstxQ6SlmOSn5KMNTDuzUtmEbwhW1SyPY7dqR4ts//AG+Rm7lCh9scpV5klRHyco/+jlqP06wZ6YvqWiuST9x0i52NpwYasqVU9mez5GW9+xL3Y37MUPa7LUWukfa6jzoU+ws2KPBtZHi2yk8exaeDPkXkwnQvk8KDPkwtitY9ikheZLmGKnEClKvkp/8AqFK7MNfBidGGVcoc8uRS2YZmD8iPuexZRpwWk7Phfoqx+mWZTyd66HPEyyuSiPYVZjZ9rFT2bTleRT2nt7FHUFpaHqDVWfa7gw8mVcGH0O4+DHRSihZWTB8mE6Y7zHkt7ZF7Q4eEh5UtvYoj8leT4JU59xZ7PuUKDCcDqKMszhMuraHOPwLGZ6JaefA8aPuWhQ4tLsWBVj2Y8GcUYyWm4MyZdMiMR4NV7itWlixw0e8DoXhCaaydZM8cGv2fuJtbfQ8Yb2OU6gq7MvYrx5M7Mxg+l/2Kcplw4nwdxBT0O1aPuKcz7iaSyZMvAoe0Un+BOeUy/wCxwtGnEGWrQsUzQsz7i9kTH8Cjsqf3RaVJFrPsIpsV5k+mNGXkxmR5wZ/I4Wz5JzCLcyxRGUOEv5Lm5R7+5P8Aoy8Clf2VOHJ93Yrw0ZeUK9j8v2MCmNCt4Kq4F5RiDKeJ0WsixlmHhmG6Z9ywYUFqIKemsCqf3N4Qo4o06kdxa0YWhXNiFDVpIcirRXLa8CmaQpioHaYvqVewhJSOWkW0ZdNCh9lLTHjJl9DlJGG0y/Vlz+ivb7L9iE9SYTheSm8IctO2farfkw5ZyxktyU27K/sxhG6FacoxFstKjMjhS5S7N4H7yO3TMmFmOhXSKfF2YfQpW2tHqhO9mDCwzCVmGpozhl+RRutiuTPFuPJ2oZUDhq2WpIocpFSpgUypk7N5MK5KlF8VEMsRTVl8YoV1A7Kj8mOx0qfucoUuWfArkzspZRvBkrwV6W+ROagRgpMtNV7kTy/grseaEvpdFcdnwOO14HEjbWmxTFJIy8roZHpdjtqh4VjlLK0RLUHKFywtH0pLPk/PgcQ5+CYy2PcChRkpcbnQqVt9lvjgualbY5QpaleRPCbaErtspzS7I48Zt/yOWoT9hXP7CTTGlyfH0vZa5dGE02n/AEcojRSatdH1PDMcqRymP4FPHjUbHPSK4tbMNS/cy8LwKm8wNwz8+CHTfgulZxjk1gdsVP8Agc78E+nlMsysLwKZf47FShGUsHuP6Slr3M9jlcnnwYgx0NzEMptSRL2ZZTeTWzMuC9sz7iFawyt/I4rBez5Ga/kpwOOV5FUy15FEzRlL8lspP9FSJkeIbM8q+BYQ/gxtCpZPdmDjWWj9zEUzOmPLk0L/AGfa6gpLBn9F8DtZHgx/RReh1EsdpUmK3ljmo9zKeUKZ2UjbpFXEG9m8GVgeIgmXSQowfPuaoz+xjBhLLP2HEMqHciiMjwLB8H4E5X8lCMNSXxZhmVcleBbHeCrHeRe6QlgXgzsc+/Z8oQoo5eEhy0Z3Bl5ZhbF59zMWK3SLjs+6ZMwLOWV9MSOUrLjsysG7jwWlpaNqjI4HEqx114Pp7fkyszswOJo+SM/ooqTcSYj/AMx3xcWZz4I/R1k9/n9MswtkTMSezMo3sfyfuaVlqKHg73kbxgef5LjBDR7l5g2XBtGehU2YRXT78D8M9hjp4ZjX6OVkuS+xe7WBykoS6YsUxyxz5IjXuPzJc5MGVZn9HbKayP7hQkVymhYpe590RHgyLLyUkh/bgzkuVLQ4nPuZMSfjZ+4qxGoMYLRq0aH7NFclcmIiStSauDDtDxleTKHbguMe4nLiTLMt4Mp0KpsttbNUY2O1/Bh1R9qpMwik8MX/AMN4M4HEaHbpstmcJn58kWO8ex8igc9juoFHgtrZmZTNmHkcwt/pcOGa2ZTKayfbGTGTCyOSkZwOE3Q9/I/ccTJmFI/udjhYFcQxTGWUKexzNM1rwZ6+RTFtjzsyngSjPyas4yplNYaMuqHEI7kdTRlFN7HJs0VDHbdF8v6HMrIo0o2KtNChXPuXf7GqkWpgrwOe15F9KV+47wvcz/RlGIMPA4mJQoPyKV9rbHN2PVQZwhppa2KuNRY76O7Y/A7VNMcyskQsluFPlERUro5Snl8RwtlxtJ40LUtnul5PqTVtGEo+BuVR9qqD7eLtdH06outiuoFCeGhQnhiw5H6e0ZaKf2tnJy9nGG8+x9UvKHeG3hihLRqbHacDU8VHwOV/6iF6bg5fEVI/pW0NNtLjxX9iltCmHohPjZUouKoyqPln1TKKnA6ap6NKmLH6ewpg+3L9zbrwjL2YyjWB+w/EeDCY/peim6MoURk2Y6NSXPY/DR9TTpdGWfU9nsL2OrRvI7WSpbaFLwKswYZlV8DlPRTP2LbL2KJtG1EDc6ZpXHY1dswrZ8H3Mw8lN/or2btmhxmiHLs3gWDGkZ6HXLE6P/hsidSLJrBbmzdGmSuTeui2i9x5/T8Fyy/U8IyhzqDWC/Vaf9DfZlL9i5wZ6FCW/BvR9yLG7yi1GC06NmdilP8AkXux/g7mTqbFbyQu2iH3I6nBbzfZrK2RHLBqzWChXArWhfVlyJzSjZq2h5lwK2W9nWTsszsf05ZgV6JlqjO0zJolQ7Q/YpPY4HSyu0U0pgdtfuKdQv5HfRKgvi3CLs2skz0Xxz8GNLsvaHeTCQrVFvMoiWLGUjPkqHKgcJ4HCXYs58D+BY/IpXL+SmotkyzLw2NJq30f8tGGd/BVyl4Kc6Ff6Y0WsqSuSsy8yN+UbZTHPsWsQYWynkTxaM4NuzGzejZ9rdGnfsLFSTPRVjuF/Bfkcs+C4KiB7pjswfJTWSmzLte5ej7jTgv+jCwU3SPizGvc9mjE0YZ2ZKSs0h2sFNUPF/oqalCpbFDwo2O8yW8pncIebhHsK++xR6X+RV5MFdMU8djxJ8DtZMaMmOvJtwhUnSKnRiq8jhvBnkaKS/kdwvY20U09mzWhQtM9rHkvsj3FcDzSHeh3+ilGlgcw6F3BM4XuOU7jyf8AJfuW4sfgrksDicm0WU1lClaH5/RP1Li+UxWexVo0OEx3/QrRVy0zDwhfAjLZrA6blz0YVp/o5HLR1+4/9IeKkc8k8otfpUZZ+WOJyW26Z05H9tpFt9mW7K5XD1JlaLTddltfkwmVOB3n5FDHZTTv2N59i0b/AJLb/wBmHaG5y0cZSX1GXsc9n0vEbLU3OWb2U27P+SF8eDHJZKTyPDt9ivlLF9WPGDKX4Kej2fglQrZ1RydOGYWBUlrsdxS/YSlCURjycohClvPgeLXhkd8VkcVD9xZcNjlYk41ucQN+l4XQ023Kno8x4MbXZSmkhXEr2Kl/kxFscbnyYFeV4Jt/Avc+WfA6WvA9ylk+3M6FDWGsCmbT6PkcrCWxz0LKtmEamT/4cpe29nVIWKcFop7MGNz0Wk5s/I6aNOR5mX0zaGV5FcwXFtHKsmMQO9xk95PgudlxrsUcpPt449/0+X/AoeGv9GtGx+ZO4Yvp2SmsfpnDR9rpmHscGHcjpWVOTBYonM6HeH5Pgt9imd7RaWzBgV5g2jWBfTGBwm3C6Fq5N1BrD0b0K0JtJfufanJWRxKKRnZL0jCsqR0y4HnT6HTycpbMzCJVWzL3s1gdqkzQpIHf8DhJ4KFjQojAoTz/ALMUk+xZ2PGR3lmX+RQ+xU6no90ZYoVWPOH5NFmXoUznwZN/gVZRU1JS17lTn9LS0KFplkeS0lDXaKuUmVFsWXldFjvXgr058mF+7HHg9zToVLKR7G0fjyU1s/A7diseFCY85L/kURcF4Y7mUOOxS0viTKqNG1b6FMP5LuY6FSwP2R8ex3jwL3L8MxFroeFgUPHkXlwZ8i8MtrIoHW40JNTbPiT7dn77Yo9LMPKMMU/yhStv+zWmS+xOYp9lPsy4U6NqWyO5LawypwT20i3OC0bxOz5HDbUo1sd9GZL0i4yU8/Bb5bHaVnu0auCf+xX/AGaMnyfK8GcQPWf5M6R8DvsmUYMNSv0+CuhzqBTuS4xJ18CuY+R/Vt+T5HnX6OjDUn4LeEi2j4RT17GBzKuR1FPyZ7HDR7sSc4HUmX+ldodIWcskztsdTTREP5L6ZUWjjCTo3r+jGxzI7mYHFiqX+R5wy52Y5dFXF+xZvsURroeYlbF4lDtjcTDfkTgy+zsdOy0d4N2xy5yYWBeDKwZ6HEPDMDzguBaLaUilO5RaYryKV2OV0YV/AqatC9PHjoc+5W56HazOxW1gqiuSyZn9ti9oFK4vfRb2KGKXoe7Y5lHGPS/yP1IUjrbQ44py5O6XQpuPYUs5RNX7l+nvQrlNQP6n2hZdLyOnk7cqS9qCFxeENv0uU/BcrJL48Vlj+mMCuRxi+6LtfJSlsVxDbw0Wv4IaiYHaV/0P6bl+fIpafx4FnA0n0Xxex/UseRfTOWKOSQrdr3OSUS1OBZ44RS2OKscvtjhYkX1J2/8ARukdQKNvwOVy/T2UmXn2HbdDUMw9o9hwrXyLGzub2i06NY9jDVtG6oVxA4rBTbl9FSPwf8kLH7mXoVdmoHO2OtyQ1HxA80kQktrsy6bLlWilCHRlOi4fx8G8jn/Q7nJFi+mLXZSQ89DpChJUz3RaxJehRyWUhYj9MTZ+Ck3cZHDw4K68nuQ/CMbLgddCyxXhPo3Zh4HjRlxJl7LacyZxPgrv3HW1oZcd+47UqWdHz49x/Hk6L/0RBKevJSkWIM5R1aMpitX4MvPnwOJwjLdwPUMcmHCHfFY8FTslN4Y61ZeZ8jlilNHwaWD6YUmXsiFlGU6FNZwfa+9GUV0JNVJ1no9y1F9Ht8m1llLUHz7FJ4FMGVtmdjwYmv6M7MN/gdSVNI3TXktItr+D5Rhu2eZMlPQrStm/4Pp5PovEoZaexry0buC22V20VNs3+5hu50xWnT7KgcKaaLdSZRrIvp8+w1GmzCVEStjSfKmLG/8ARDb0yEnaQvp0KHhMT8+5vE2Y/gdbHjoeXPQr31J9ry/7HRnJ7pstnyi5Ux0LehV0xZyxxFe4k4wivYvuSk7l4kn1GmK1giVaQoaeSXbs/L7L9i01aG1pIyVGzCp+GZihpubFexbxozoQ6Vjzsuxwi3/KOMOIRbm0O+i3j4JaWHpiS3Qkmu+ycmZopdlJOZHEJx0WW08lt49ino1lFzUIxsiWzJhZZTjJ8DllcVlvMilPrYrkmUyooc+DVwVyeeinpmHspvQ7RfclKLRmaFizqXA7yxWO+Kyv4Jh3G0OUsvsURkWFZ9qHa0YTNClO2LO/Jf8AJ9yw3kp5M6FnP6csSWor3KlTIqdDy5Q76FatESjO0L7jyQtsxGBelOoLjPlChYS8mx29Hsf+Zh0zlErPgtZMu6HawU+VQjJUYFDVHV+R3o0h/TspJexdOtj+rllagVxnoUscR3stL9xpcYcjxTMxT7HKf8wY0hTB/wAu+hYqSk7FlIdbSLikii/J+DawOU8IqcwKUnZ9vLA9/sOcwuhWnnsUqG6OL4wo9PITmM6Mq2OuUPxAvqwkZSlLUGGng2uykmqIabft4NIzGTWRZqVryWbUGuKHbw9jmXDZ9rbhPBmJFDVITSduDG15HXW5LfQpfKR+68C+mKRfEtRnouMLY/gah5QzXRluy+ToynBcbHToxOPAvJbdlLopRCHFEeES0ti+lzIo8LotSbHMYQ4hyKFoxgX3OD7myIRRe/gV9H0vcilxMm1DLlnz0YmKPaTMQ0byPyfa9GFCRTVGVRqmhShSj4fTPYlG1nodK4KUGlk2z4KnD/TexR2YWEew7XYstt9CrtZKuh5FgwsMrZnaNVBff6OjeZNF6L7Z7jt5gsxpG6RhGRqIN4MPKPwKXha/RY2aMrBmLFTPuZ1+4rex1+w6WEKhws/Buk+i/J3nwfvg+14YpipHux2hUlkdlvZ8iVoeaoh9lL+hVl+4payZRnJTUNsh8cv3HUwkfuLFsUp5Lev02LSL5JORTFlI+XuB3vwUlhi+nMjOVbQrmGiVDoiXAvYpNxA6458mVsyXJbn9jKUyfktoWcyYS/c1l+RWycw+hUqFnBT0f8kP6olFO18mdoyse5Dh0V7GqgXzscN1JrBh2fArzJSVQWppl+PAvHwOoyZjJa8FtRYvYyO5Fi20O2sMcNozJD9tD+BpG6gda9xXsyuhqsDpU0ZHNkqYZSUSjdpspozmRQ+hY/ku5Q/qYph0hWi5yZ7Kg1k3Ys58oqZhFPXY8YLmPya2YWB0mdfudHdlJ4FeBRJns3RlG8SX2YMLR1gVPJjXRhZLumK+ikfc3kdmRxxTMVZdtORP3Lex0sF3Y6N5LRh4NFyXdlGJyfd2K432b0yl0KG8MqKbMR8mEqYqezZmYJjRhVAqM7RpwoFEVBlUZKhG6ntnGbrshRkz2YX8lNvJhWp7J8I/A86MKjujLdIylLZvf6Oq/IzEUfc6M77KiYPmD3fsR6fPZnsyhtRxSaHTVCjwLdf2fnwY5Y9yKUNeSrkyYawUUlaMQY2M+JK0zDehbQqeTCPt/sWXEDpKV7nKeTv4J+1qPkccsfA6Vq7Y/S00x/dlDheR4qOzKX7i+l/60OY0cY9TytDvjvspcaF3Y8qvBZUNJe59UFp/wZ2U07M8v2H/AMZ+RxX7lJbIfFrPkfpStyJNN1KOKni4TGpX8Cl8qT1H6Utv9JbycrTVeB5WDdIrpChDo9zE7FP/ALJlOvJUuDLwOI2aHlI9mNx9zSOH+TiuLhPnxfGfKQqXRaSpltCubRc2KUtIwaFeTGxfPgptQVtl2NThvwOXMfBhlKDEkroTv/zFDTp+C5X5J+nCFeR+xUifZvWym5KXfkwse5TPyZLR8sUuToWNeT8GmZeC4z4KXJ34MPA4K0aIhqi23+BUrMPB8GW8v9L6SNw0ujDsqxu8jtCs937GZE/BrJls0qPccRcmnUmzDyy1oq8mZNin/Rt4F7Cta8EpvstM/wCNoeaHax4N4ZHRTaopbXg0qMYjybVr9LlYHW5yKXg8SZ7P/Myqgt79jJS2jKsZulBT2f8AJ3/sZTiDLZrBjLgtrQqaPuPf5FbMmdI+T8HWyuh28Sfk1lDyh+rl2f8AKV+jtGWmfPkqMHz5FEoXszGI6MTJ7jl+q2hRr3NbFXImEPDPaS08H48lLlgo7gdrJ+5VjpYkcxlG9+DPI6UyL39hT1BaeUd0d2hx2J9SYRulA5bN2aVDb7Y00qI9PFDiB7svX/Y7dQNTv2FamyE8QO5NYRotPI5SWBYHa0f+ZibRca8GWOzr9NYKnaHMTIvuz7fp/wAaKWC12e6M7FmjFOD5ZmY/TKgpPB3HwYwb/XZhHtJlKJ7FTFOUYTspaI89nwjCspjowxxGUM0asfwYayOtChr+DDUwY0jEl6HN0i+0Upwfax3FGe0XDXsKEjDyOI2YzJhC3/Z2NNaYvpRbHbtlzUoVXLK2OI0ZwKYwOdjstJUW8NaPyWd0YmZKyx6mjWEK2tGSoPyPKpimKZSY/jyWngsVOx4/cx/ZnBKKihfHZ1T8+DPFOJxIvTzX3JaclxhmXh6Rqp0Uk4Z1Ka/SkN3oW8PZTnGRfTEtnz7HyYa/cpy/kVil/wDrF9Whw1MjmK+DPF0P0vo5S5hwaUJMqFT3I4jaMqvcrk7Z93Q4h/kTh6NIwikpkrjA8Zg1a8k5h/7HatNdDbnCFMWxXLa7MZodcXP/AEP6lXuRhIbt5NYFebFOIISSlimTG2zHaIUfTBuRZqH/ACfcsHlx5LYpXkq2cvJK+fwVMQXxezSh+wooecj8rR92MFumIeFMeTeBVswz7dtGHkxligctqGW4LkuDrApuxw+zJ5opyOGjPHfg404r+z7XSFHTFeyo0Kkx+T5kv02hO8D+DGV7jozv3FmyLuykoUm7R0YSMizAqZkuMryWtM8DuR3sqR/St7LUUYWeiPAlESxzJkocNGdIeWJKNll0sm8e58ic4NWkYbbgcQojwayYbk+X4Hf9DmzvJhwme0GNsy8PwXx6FfTHLVoUcowW3k6pnsjHfTPmLF7I1r+ioyUb/g2OIeDOYE29PwZ2VIvC0dWyi5wOFMeMFVA5a0KIWS2sluP0prRlwY2dW+2LFHyUlsdrKG70OXuSoGk8/pr9xSpMJ17kXb9z/wCC3R/8FS0OH/A56MRA4ozFlNbNfopm4Kswe9FclfuZ2OYwnR8ilb9xxENvQ17diiDGkKop+T3c9/ovVOv0aq4ZhVBl/sVBh1Ym0hzP7iwOE3RTfXRdzKMvRh5NEepXIreUKJRla7F5aElyeUVpo+3b2fS1/A9yRCWFkffiB5Rnjk+WU0IgySlUMopO5HgcVZ9TSwOxpI/8jCVmG7Wzeh5cMmMIRljnSEm1XsP40dyL6nkW8msMi8C+pZN3P6PLOsF+DKGKVmhVhIu7JHPKMdivY87FUw0LCwUlsdmMilLPsOswSo2bWjLY/wA9F/7MvZUm0ysyi5wzBc5OTSujm+UtueWvA/YxpigcKWf8dmssVRCfbLuzUQi1TK48nn+icCh4gpPLN22LOj5N9ZFcy/YtfyKIxI4aZlS35O/3K7NuEOboqpPkriqKl5/Y0fkz/KKXLX9GhXkcwZSliicEOWPwZVr+yvVgU8n9KXjsa5Xnj+w7m4Jl738GVTLnKF6e3kwrRnXkw2o/s6s+DCVDpdYkzJnMs/JhuWy3Ouy/AvYUNXeGjjDykWyPqVH3REC+p3DNU1ownSZ9rttdlTstMpvDZCfJMece5KazGztX5KS/g/aoHi15HTNMUT/6TXZHFPPljmXS6FM7Haudjn08aQvpnXXkUJZQpUyLC/JjA4awh0qfclvjg/5ZYobeRTOD7fTY6Tp7L4zRmIjyZeRROxS+W9SWohGnKFXYpZs/6MYsh8ehKMm8CrECvLLb/Yi8MULbLT1qDG1opJy3/AvZFzlmsiofwxeYPdnUMl7S8mFMDF7dGZ+C5qPJNjtZ9v006g1suVg+TET5kU1jyW27FDTK0K3U9lz/AAR7miZ2bKdmOxxJlK+jFKdFDrJ1kVJQmZUyjDxRvZns+SpKX7n/ABUwxJvSPdzo1gVd7MrZniWRFyjDwVy35MJyK7v9FWTDtGFCk3pihLBbx7lcotPo2YezU6M6PwYybMK5E8uWZV/BGbT6HUuB+pSKnleBNSsYHXRmMsxh+BxGGdUuy/VhMU7khNrAs7O4vSLeUvB/x/YedGFoiuxYyvJiGZWGOaKzEdGe9luZFktI4xNyW3lsr/2TOzHZh97HNZLTWDHfyKXyyzrBh5R+BZdtF8RZJk28n5NC2fnRb0y32KXNxgUNufkz+xmYZfZjA4UZZK3Jh58srcGZMbFKdyhpYV/7MO5LW2XFtDlaNIaabnyY2iqsVPCIXLTKbyX0dbFm0x00Y/sfybYm1xKm0i3I54vRt0W0rLiWY5dlufwO1ZU59jOCmiU9ip22Jwsex8vcFcVvLFcipaHEuy0s9mOWjF0T8jxbPl9lJ2IcOvYuKclTlaPuSwLwhwkvyapyYaotZK45sank6ONrJ7iupNNQUlTHcQjWTVDTmSGlv4Lc2Vsy3fRSpSXyQ9mHlfpTwWxQ5kwixx0/I/qTH7nZjHsf/R1A4KY8/pq2dGf6Mipmbkm/2N4F7CXbMKxSmsj+1ndjhcbMtSzOGh5UI/8AeRxUJlYgcTb6HemK1lGdoVqimmYSMItaK4tzBhi8Lst0Y2ZWh2lfkUtX/spI2KG1fsZQ7HfbHjZcqzOD9h1ORw2qMpUKZ30XpzkrtGYzklrKnQ/f3He/LF4M8s9ml+D28GcGcSPFDvf6bPz5FK2/ItzQvSog+ri8pER+RZ0L6k4cdGF32fUpW/3JiITJ1L0O+KtQeyfgX258lQqQvctN5QpnJnirRK9TqBQkoRU68ilKIsvtTXufsYVJj+mY+R/SlLG4iEYTY2nCTb2hy04fsS3Xsf8ALDfWT6VEiiIs1p5FLeIHC5TZxxkUPKkSXLzjyOsDh/ydZ8j1Mj+mrNQZkd5YsFt4JvKYpnJp+pPwKIISb2KG3LFmmOsLwZTlmTCWP7LbmjDf4GqyU2hW8pkp6Q8ycp/0Yxf6ZVMp7FGpHM4Y/uusyLEldI27Mfmyn4MvCK7QriW/B7fB3K9jEH3PsnwZ6Kadni2O1ouf0WME+S+jdmfJk0Z8Dk9kayjDWB3/AEfHX6YhV0YaobcaHmz9zaszt6M5aMLRDM/uKFlPyK9mnaKcyLCsoV/yUmUpJTTRt5Y7ToyK9MdlpJUWnoeMGNj9kZ0Kls7OoR1DNUzESzDUJDuYNEpvECi4fkyW8I+YJcZFHS8GdC+P9ilvIr0fBUId8v3HbFc5OiJeDKVQZ6J9U1+mbkpITbyzlbwnouGoHS2YUwXLwOvAq0fdhGGqZnZodxCgdJ2jekOi5wv0zxG1cFJn/wANqWWix5wVNjlMxEWUuKx5LtGsyfkyx3Ghah9m8IcRa0aohJrJK6YsSn5M78C8NEJky1TMK6sV/wBCltYY9ZMYM6fgqF+44WP9jhaHb2aqR2qHivkyjMZHEKxvyWy42zO/YVNe8Ff6Lh0he/gUmVhm6Pcp7g94N4ZXLKNjlNndstJmEqZiFCNqWXNMUyZWRNNbM+RU/wCDWUzrI4gWFvLMJYLQolykVAol2z5RTWSvcwzTsy3RTSLQ5biP09vgwtFMyUnkxcHuzE010e9GXR8yW9DtZW2i+0z4PhmR2jRbapiyrNV+lvs3kVOIF5R8DzUCzg+R5yYeUbr9KjZXnyW/2FCJiZIhvJjop7Yp1+ilbg3gVPJ7I0tCicI3kcsp5Y8izllt4PEG3sof1NfJfZnsr1DtocRmTUQR5kuMM+R220h0tCiFA4f/AKipVn/JW+jLdyKbn4E4mzEwiuh52d58Dp4Q9JEVTHZ2RmkUzGmyoptDhKmi4wjVjpipVCH6mnkrTWpHDVxpj7dFJRZXKMitimaNZKctLpitNJp4Z9K0xzy5L1Nnhsd4SFMZQq6PuRLlz4g5ONPwLOltDq0k8oUt3yQ00mo9yuKU/JUozydexluyu0JNbQ7HTWGcpXF0e8eS7ocRgw+hwutQYdH/ABWyvS8FecMuIG6cGjKz+i9kYWSk8vyOnZXFR+SmxV/ArnBhZXkalu0PBuYQ6jAkowb2ZWB23ZlkeSU/ArX8CqcjuYGo2U9m8mlBhqi0tlNZQsYkWCuL0P3fR3KZlaH5SN58G1CY8OGY/RSm7aPj3NaLZUqzC2QY0hUyhW6MPJcKPkvsw6kxgdjtC+lWZeDHnYr0Kxy8zoXgf4HX7lFpsvinX6bZodnlNHwbyLNmFopL8exljpKTOvcdscuDGx28I0qHWi1seb8juD9zMjhvRlWinkvstxQrcSfbg1sWzL2OsNlJm3SHb0fBWZFmoPiBQ3sc8qFLbv2FUlpit5k2pHlqfKKkuP0RfFxBjryYb/otrJ3SFZ/x0Ul/JvKNOEYdCTgdQK8MUJK/cXuhfVswqMSRM1oqMGJhoVYR/wCRnI4Z8pCSTyvAkn0U+kaHEZNU0OuWUXGPBjRSQ80z5g3ns+BZwXNM7honENIVuBUsMz1pm9MVfsZIbdfIsKPBXQ7i0UtCmf2J8rJSVSUn8ijqC0fbtihs+TBUuWo/R+40/wDRb/gcWIxkVTaHnCF9ujD/AJFjZhoerLY4e0OujCPDNU2U1gzBDoxk+WZQs7HLVFNGXA50I3k3gwuuhNKslzgilJx9T0lsy8pdjzhFvEmjDVGn+TZpE3oVxZlOz2PgXsX14KL8jmTRvBVr9bXY7FcfBbmjoppymdG3jwY67KTMcdFJuJZlN0uh0o9xQ1h9kRovqBT6nLfRh6MtS0byZbmjLwXLs7KFfGzHZ+TRTeDMGcF+XllrZUMUvRl/sP2HjDMXI668GGrZZXsfkUzjwyp+o6wVFwO/5K6KXfkuddFpaZS6M0ZZhJst6Rl6NlcpyaVDRhIUNixlGekKYprwOU2kOkqUFJsf1PQvpeUYwOm2XDrypL1HgUN/wO1Yo9Sv2Eo42Qm3T+TDcFLC/BuJN5joU7kyh2vugcNwlCwvJmJbFEumK+VGYysj6S9/YpTfcnHoUzSKQpTY6wkK/wCRNbYo9z5gV6ZlKDCcGUXBkzDn2MQZd0bPMmZgecjy/wAMttQz3QsOB5Y8XBc234MZXZp5fYoj+Rxs27XTL5YRl6K2xL3Lbc2XAr2Sly35HemXKwK1lmej8lxaeKFDayfkp22PGto9p/kpPCeC1UM/JUbLn9j3T8nyX4Ns9h0tlubZowrgUrBc66M6RlaNIeFfZjCZrB1gXuZNGE3+mUONGFsft7FedFpm1RPgiSxSt6MZspWYPwhwkhzNSYFM0Wsrs7r2FK7N9C+TCxBs0q/TMUzK/BV2zvBvKFeDHRifwNS8IzNMdIo2ZVlTn3KcYRKe2fclM9i0U3opaguf2O6MznyW+mTKM6F9UUdX7lPHwVUCmB29mvwbwjKVkOXZXHaJo+njoVaQr60WKU8MeP5/TbHSyWnopfp3R7lrp2L0vrsuNeRRGC+W5FStjnif8sfgyv004a8GSnGCzMH5MKmPNQO3UC3liu5YrdKP5L5L8GMtjlKjKuujezT/AGKWl4FE4Eo2Z6NjvQ5cimbGpVn7ZLT7FkqdmezWGTKqRTOixQ4h9Clu5FK7/THXkktJktch09lrY5X8F8sUSlNGOsCxmeuyn2OdSezLuxwtIXubwxWsFz/Jadex7ryKjaJb17DnotddjhxLHfZ9uBWzGz4HcUfkzJqkZZpFpUb7K99mMGFUjmT3KG4awUqRcinaN5LT2exjR5opEqMC2aK5NS0K9l7kUKMmxUxe5aPx+jlakysMWdjjouFaFhQx03MjpGHci1bOsnuYbiWcpfnRmDf8mUduGZR7wWnkdvKHjsdGFgUzgXh+EOksjpqfcytGcodme0YLWxt+RTFM3QvdDhqhu7gULstOpQpyXpi+lDp3HmP0z/A5T0Lcil4M6fkp1Z1SH7itYFb5S0K8DotDjwPSpj9pMVg/5cqZ4E4WepM/cvcp96Z/5meTUIqKghN/ydizlClct5NUxy1+ROIbT8i9KV3s+5Omy+Mz8GU8H3ctPRx+qbYnKU+JOUNn2yKUux/TqCktf2L6XLkS5e5HF5XgfqWZNZZcOj2k059zKbQ4uCuXbISlSy+OWLcqOj9j7e0bcT4FD1JXHKHTmRpJYKgXhscpP5JrKYoUChvAsv8AAsY8jt4NOBQm3HuZwzGybWR/VMof1dox35FMquxfSVoqMnuTTiR4V+47allRsw8mE7YpX8GFaRRhKynvsmFTQrRl9bHcYwRMUPODCyJwXuC9oanZux28+593nod1RXRe0O4wL5HeRRLtmP4HLnJjaH9KFD05vyYWP0uciswLwaqS1h+5lURdyKzLeej5n9HMfyZSwJ8V01Y6b/BhUkYpCVFPszxeXv8AS4uSioyxbyZM6Y7MP/0itYMYNY9h4qD2Qok9n2RKtFTs+1V7kt78CcdC8v3MdkQslrKZjMGMscrKXgUS4MM9zM4MZkhPIvcysmrscwP6cNGF/I2ktLD8MV6RnEGlRnb7Flwh7aZl5G/qeD2vArlSU5FDWGUn8+4lHWGY6Y80mYWUVGESkrJPgUwTFSjDwWsD9owO1+EZ2YOMvoz/AGezZq0/OTdwUvIob0XNopqoPcXx4MeMCtkpNUOUv5Hbyy2nkz0P5L8dCjirXRU2zKtEelKl5NYMx+DLyh3stq2ZX4HMsnKopfuOpwYWX2NRg1stoU9oVpFPoU7T8jrkiXxbJmYMIiHRnJDfHCZqmhQ7THKahmOOSW+vBjsx/Rab1pDfhsy6kcvH7Fx/IsYPpMdYFefgy6jwKlVm6k1ZSQpby0McTk2z6f7MsUIwrMPGim8PQ4fZ+SUxwktmHZs6yKpwW24M6/RFLrs/A8mFot+Oj/yLWikngRg1oUqMeRUPKr3Mb9xxf7Ft7LjZluinuR07Nwhw8KT3FifyZQ/c/wDImMFeSx6LlRRmSuLHWym2PQ16Yo+GZbKUWY0fgzkd9FelfsUuxv8A0XcMeBU9GHk909DhNy12jLM7MIv0lqa9hQ9oo3hCh76MHFODMKUZSmCMRRvJldmcMUqMlsUSKhvJT1BT0PzH6Z2y9H/HfYqTdinlFRvo43t9Itzn9y2rTM8nXgcpPY3PH6oKU0v6MrX9EJZo5Jxj2gUy6nJ/6iuKYoTy9SaRlLL7KmZfjszlM/7F1jY48dF8cT2KHxwYRyfGLv3LfEhSsi9KVT5M9n3LKHDbhQOamS1NChZRkbc2yvSik6vRabqP5EvEmWWkq9y6mtGG3+DWtC2Z8C9zjDefJlLHYlOX7jjsUcuNJHGWmK5PmBu4gwKXr/oqXYvnyb0XFClpRJFGdjtCh5FE2h6HLzAlOFIr5a8GJLS2NEQ1jtDlJwKolCiVRlY/0NS5cotMfhCrfkVOYkxl+By9s5eZMb8spbS0OmpSP/MXuYWkPzIqH7T2KakVLQobcIdZFTyv0tPLFaZCc/A7SpCudkRoXwZeh28oxsuMmXvXsa7LWxayZLXXg+R7o+RTDRjDRjMFS8eBQmOuzOimsPRrJaps3pbPZFtxC8FSWlnstIeRvodNWjKK5UoFZMf2atryKHs1T/TdNdGXkUJuEhWsGW/6FD2YRlbeCGQoopZkUrlkdrJt0hUm2zFjpRCXRbMW0xClfvI469xS8opvArWx08FaT8kzh+T2PteR2tkqTCeGKZyx3pmslt7ZSY5fkcJLA5F5Yo3B8I7UIiypFKgz0ikK9GUsCl6kqMspt2xfSlQ9flFXgmB2lRXpHCzBt7HOfP6WmpPlaMH3Dn2MJqiX0K/0pO/gwsIcPiJz2LChG8H1PAoi57Pgqf3FTpmhR5Pq6NZXZgU3fuVGhJtlf6Ep0I44wOVOfA82xWiuL0hQko/7Md+THR+GKVM0Z/kdF+r9j4FD0PKh9yKpyKlr9MQYiy3tkjyi57KacplI2WkYYl6dsdEtpX/ouTNr4KrPkyrQ1Wh/A7eCIWExYYvZnuKZy+iYPePA6ZnJW2+hTclLspMct9/o6TvyYRluizOxZcr2Lr8nZbqS+LmDIs4fZlo2xxc+YNnVseVgysFuJgzsVxhld+D7tmWKYdexHlGFhGEvkRlmEUXGCotohJjzbPpbY6y0WuvI6iC52JO8ItPY5q/cri7S6JXFvBb2x4uCE9IuXBUKIHYocfJj+xe6KbtlSP6Woj+xyVClinaFEjlRY5TdClLY6WzlMuhjSv8Ab9OX03CF6mp/6JajCMSK04V6L5TN9ChOzLWBZVryS4cHOmqT7I2mVCFeLMNQ1/ZjLP8AlMDtU5ML6Y8DhYaKdowl+ia44S6JbeX2XCz2UnZcOyXcD+qcGlc9jtu2OI0+ym6MN0NtGdIdK2Nvbk+0c3Mn3PBbwZQr4rRh5kw3A/qbs8yW+2OeT617FqkKeL2NW/whQ04Mq0L6lsw9o+7seNENJVGSnP7G7kWHEk7KnL76LSyOopCdXZp2bwYcoWKnowsHz0e8eTHRcWVFMcN2hxURscJI4/JEJV7ChZgro/I/pi5xPQqw12RiktnRCzQ57fZ9LxJrZjEHtBTcUOWjWv0UNFN0pLaq+io15kp2YybU/pkdYMMu9GVkqcP9HTwawVQ4T/AsUj8F0aVPyKP6H9Sv3N5FmoHS/YUQ/wA+TXYq/spqBz0x+UU+WilFMpLRrsULZEaE42OYwi5uS/JcZ8j8L2Mp20Xx0TOx5IXQs71+lPY90xYVQa2zYqgVYz/BycGRS1Ulx0cqmbJU7Nwd2VMpPsf1YYqS3R7IdpR7nwZQoT2fc8sytIe5HCeBTOh1MimLkdwX/oZscRnyKCl3JUZfkb7hmssVaRhIUN4MLZaROcEvKYhVonz7inUocRnwVOPc27QpnBSRqyksMcTk9oMxXsS0/wBn4FmjLdR0O1leTPZiYcFeEJubbJbX/rF4TM9iwZ6IrKKKUT8kuS3o+5OXJbdjxGRTGR4tlxsd+pURCwNTscJ0jDM6M+OzEwjOTBUuylEr2K49D1A5Rn+jxJ+5TZU5R8PJfEpdmFiRwvHY5ZSThz2IUrYoekOPBnYvB7lyol9ikpvA7HjArmvcpySo14LiZRbdroyZKW+xZmBbbsqC1oal6KG/c+Ry9yfnYqWSY7H91v8AI1KdyOU9akVHt+5YtCzho6lImr+C2tDxhGPTKaFmmYwZm2W8UdZJb2YmynycI7wi3pCiMH2q5HM/wawV2zKUCtOGiuTNCy8/pdyjo+B5R7R4FtSzTif00ogynP8AoUOaWSo/2K3gUtaXZXHY8Q0jGx2K2zTEldFNM/4015Fg2tdGXgn38DrTLSInMM3o1hkpGUWZejOzq2e78CgUJYH8eTLyKdC8ysGMnLUL3F7oVLZ3T6HLav2Ma8C9S5X/ANkNq17n03NCl3RUqPkuNin/AEOOLaocpvArbyVMf6Lh02V6sexb8nJQ8wKU7jpiUObH9JS5O3A/p6K9KplN5fgcN4O7HDX8mngiFlGd+wrpHuvYcf6HUGF8jpuv9C+oS9Lwx6HSoq0PJbWRewoMyOYwdmtjjkO3kn1PKHC0iYKU2h4dexe2x1AsG9IrZEYL79inOOjOykjsVKoNCmWZHMu47KhQx0RK12NenY6Y5u560OpsULI5bsfSFLK1ZicHiilNDtHybX7DpuE2U4sU6aFPFTPgw8e5MzRQ4cDmjGvYtLAqeDIo0Z17ChZ+T5MK6LadMUvPgW7Z7iUNFN5/TBtlzk1UeDJbN9dGIuDGmaMdmH0Y7OsGEexjf6ZHc14LKfF58jpZRhI/Gj5g8wR/ZXFGdGEhUaYp9zVpeTDtIVPBcquhxyWS8Hf7FJFrlc/phUO4plpM7wPDswXP8GGf+R3BrAr2uhS1aHfRnI4RhJfgy9PoysrwfBE9/pkt4Rjo3lmcGZv2ISymQYUI+2mjbLMbHEl3swZejdstbHLWGe8CvJiMl9D9KJmS42YRnQvY+6bZxhlQzC/ccpZRT63B9qhT5FM4M9+SZbsXh/7HcWvJLbxI4bxH6uexVMMsUabHlmGzDVnt8itdm8jt4ijk0vB5vs90O1bOsn4P2HNUhUjwZeTwZF5bZgf/ANFKwYTqBRMz5K8DyX5LnKRCaVEPocPbH5N/yTmS4x+lPRlGzLuR3EUfLMtUZGb/AJMyU3THKZiDqhSnSHLTv2Mu6Hocpf8AmP6UzEZHcRBXYpgzmDJhFPbEVy4qUbMfplnZp1JmJkcSsFpXJTWRUqg+1uoNGF+5ldiwyoKWPkyZwb/TKtDicHtfZgjH6KW8ji7Rr+Bwsjh5YrSlP5HCgp9jb6Q7awzK2O+I5e5Llyj4FlOVs6r+jOy5s1bQvVET7DwoSM5joVGVP4/RZJtKGO2O1rwW31+jrSM77MI9oHM0zaheBy0pgxFMyoMvDKcfuXFpeRe7PqfLXkrpsy1RfJKEz7plGFoSRluEz7pKhN/GDCpM/I7WRTDPezh6Un9LmfV58H/HTLfJUOW7cnK1kWIUi9XJ6LSVLycVC2ZmpK79x4cihzghtyft2RehDS1Bpfsb7M4k3gyx2tv+TO/YdLMG3kgpqHIrmPYyqaIgteSuhVmCoeim3RabSQoa6H6Z7NHLOBYVmckQ8taHjAqTyWm5+DG0OyV/orz2jHQ8Y9xwO5Il4KcyhXP7it59y2VEmG7LJj9xVFi+qxW3HwW+jyPVGXsj6X+TKce4q7LShORQj3vserJSboy3Aq0JVZyvRpSxW7TInjR7pmUfKMdeBakVnHBhWvYtWbwLOShFpZPZR0K3ciiMo9y0sC+Slg3SHDScIztkRyeTlWhwmpLnZAp6Fi/gtaZv9xtel4FbVMxv3MNsdyV2jX7oqcdlC+OzD/Y7aKjPk1oV6Lc2ctDk/wDMi+i3MHWEOKgtMwsLwa/k6tFS6ZuH8n/E92hW1SKkwhw0PODKH5cmXLMyOfJiLgdw6MrDLeEOKo3k9/ky3Elx0Zll8X+xq5MPQtoS/seHXZXJK+jqmW5HEaMLLPJgeclFeTOjPRhFJrGTOzstVDH7jStwx4K6Z9yyNz30Uz89ix+DfQsopDmdDiXlFqJlmPwL4HDSuT/Y7eJFK40RiR+zOsmnhmraOv3LT2syLSiMjpWKLpeBzIojRlUhxNfP6LAp7X9ntB8MecmeM4GOfCK46Hqkbwfcfkl7M9j3RUvQoWxS3mBHWR4z7CsUvR1gURZbbFe0YWIOsMUt4eyWL2ZgwrP27Ox+x1EjtZZadFKYRc4ezOjM2x6MdmGsCiDBhDcrD8lxgw8GVkdFvA/S0fc7gcuYPmCIjJbbR+TEZPeB30VeTKwik3aFS34Pkfuj4Rxp22V4MRgjwUtyLEGTGIf6V2hZ0LGhRBN1A5nB1EmexQkXDhI+6bgqHnwRPLK7HMwoLlQ2xw04voXqSwz5M7YorBULQpbvzAoX7QdfsPOGP6m6Wv0zBnKkWL+P024ZKh5F8jh4MQmYdjt/kVN1PRfH+BL1aY/q68il5fsRCZLgWK90KI5fsU1aZ75HPFxD6FM4XY4iZeRyts/cY4UYKkc7L4py0OIU9GUhpTkVKh/Vi99jxoXhi+lf7HKh/LKfHPuOJpmFgtdjUrZlG+V+Bynlm/wYV+4q0Y5Kh2+slRrtFvMsd4M8Rat9PRFjuZnsafaJfqdromXsdt/j3ImHYpbxBuuUinllJktrL7HHHfZyhJwmS2rY/wD4f9Cp0K8IpfyZWRTKhyVygTWvI5n/AELNNeDH7EtRTHTtm8fplRaFiMFopcqMLDK62aShlNbLeGtCa6bWWPFyPKkzKLnDyY1BmJRT4vR8NnyKItMhodNpvezo+p9+BZwXE15MSY0POWZq/kucvwKng2OOJhqzJEbM9Chq02NJlt0uzHRlYaErwx5wY0ZezCy9nyh09fwW8wUnh6gtZHm4ZtfgzGR23+EfampRa6L0+z3T7PpjRaRSljzo9oPll9G3+RfSsM44w+x+/v8Ap+S3scPUGW4NPBhbOzH7ybolNY9jExA6mWQ5sxs/8jFs7od5fZFqhqXNMVZgptsdM2fbkXsilGxZwy6hltZXn9ElGH2XIp8GKHERHhGI/TKLkxvs+mHQ4g2NtTa7RUUxxGBqex4pscw8nyOx5LbpDrDFKnPkpx+mtldDzstuH7lxgV9lVQ5SPqbyvAoTqOhfcasfpjK7M4cix+RrEJolxhEYKjK8mcfI55PJE9luISPdSZmZMHiRVuRylg+TO2OF5HjMbNVJfgdaYsuUzTgdLaHG0jPZh0UlOcjtuUY8dj1REpRHdi+ri7gaiZiaHjr9HeYHHSW0K9GxVoSxE7+TBaeIHLd0W5oVvCIgaaiIMa2XGCkKFoVvBq0xRiDMn3dC9KUwvPgw6XuW9+xvP6YQ8DF92fccJRIxpt7XR8PtkN9C/Apb7FTtMtFx0e0lJ0VDhFVjvyLesGNrwKVpPR8WUlf6OV12PeVoUt4ZqpNlTbLeBUsNDs3n8FqcPJDl5MtXA3G+zPgdDxhmNHs2Zwy29FCqjVjpOEVOx/AsQcqjRjkpFhfkwqfg3TFHkyq+Cm7/APh9qtFJ5RrHsaKas1hGs/6PjodihQ5H90WQ+Tx7G3+5jZhFRsfceRtvc0UpiuxZFLZhtf8AY4m0ZeRtJaLTh+CkohmnHwRCgpTJlYNN/wDw5VQpTttaMKp2xpJWUuU0Yw/wZSihRNwOf6FE18FqKY21N+RxOhbo5Vr3Il7VkRqNjnjCSZhUl15Lbf8A6B+rinDWT7VfstFxUdXkf2/U0jHK2PNISvPuZZT68CyUn/8ARJaQ4aabHSslL+UL3gw8o0rj3KUUz7k9bI9SZk6roU+TdIz2hZtivcZKYreGj7m6InjocLfRiL/I4bf6PDmDGC4o0YjemZTUiz1lITmFLaFstct7FN0vA2n0WoFMKIQ/pivHgdcsex90UKVEkR+TeRQlUoScOEy2rbQ4ljlJTRSbxmhwnBzSSx7Cp2u/cqqZnsUcoozg3QsvBuaN7M9djsiymlBVD1gWpH9Ons3joqLFDZp/uW05Fc5HfF2QYePY1plPZjJD8bFnRbZXaMzS1BpT8nZammVNtlJmVSLax7D+pqpLTKY1RgU49x30Kv7KbiUjEqPY5SmU2zCeCPSZiBKWiXNtGVgfuYSmTKseFSMilC+S4sd6GZVwOVMt9sx/BSdWUlj3LUUhRAk7slDURkprEmXRiUqNK0Y7NWYSkVK2YWV4PgtN2Qkqk+Z7He1okrjolqc+TWTvI6wWkoI/6/TWDKybEY32fbgc+DLowjOi10WxX35ISyvY9hT/AKNdFiwvyPFTti9hxGGKux10KnMCmD3SLffZs/A86RluPgVrIo4vJtz8CvshvyKY6FCeRQ04U9HcopZ+CX1Jl6ONIScYFnQ6ey3h+4jHQ4Wxu9DmfgaUfhlQfdyJSWRwtoga1Qq78ioVFPod7HEYXgcwpY46K234LcZMIidFPQ3PSK7klrEi0ynSgpxjwW9CipS7J9OB/StjxgmE248m8IuNiqcCjyUrYsIcvjcGU5KawZVsuclcTjTMLCPgy8rwOkrXRlVMbMm8swmYevJ/5nyZcUKj2RvJVGJhe4oaFKeivGxvqNmnCFEu2xe3llTsmex6HLTkrkzE17lQv/pl68CfqY/pXZmoRlWn+woeylI/Sv7NUL/R+SmiXNswe4sCz2KMOh6wbMJRPk/JnHwOGsJC8FxkUrE6K0xzp9nGXNmWRyePk1lGGpRaivBmfyYmvBS7ZU/gbqGVNofxswsip20bRnPgXuP5Ka/JfnoVaeDM4FKoWcHdilRBqmtClvD6HfKn0YSuNmZH9L/kpvZtY/kpq47M7XQ2oVeHJmJcHK2t9GV+4obcvuS2tMUcV8SXMwmVpFVvEj1aRl0n4Lahx15LSUwY5aK6RwaemQ+SxQ/pTtCnlNMThXJ0TDuc2JQ1YofgVYUlp3G4wXH8FJ9DT8DrcFqSpZljvjbR70YKXQqVGlaeSkpMLCFaq+zKyjOBQuWEKIwIdR8GXsuUU1Qo0mU5/Yv3yKWslPoy8lJITlI41orXuK1lvsVOo8n3aXRbVD9zl4/0PNGtGce6FKm4OKbcQmV4ZxXqVz4HbSpiwW0oFEKPkUOLaLTwW3AnKFHIvsX0o+BXhnv4FlYKjJ8ipaFea0YdwPFQZnJ7kSlXYsfyZzBp2j/9t9Djpl+fJ8lt/qr4s1sdrZPvoWbkx0WlREoyrkzkzsdtChxRdYPldGJr9NPIoun2LH8SZRd2LGz5ZjRlsUaZmo8iuYG4lIwZcQ/0meiYWfcuCYY862Uux29lwjVwVKkqMdGJwfDFB7pivJvBjH6KiopnszLtMdbIaWRRRXfQ6dlRXgizKbMrJeRTRhilG8szLgpLJfGK8mz7XmMk1RUUzZT6MZkvscrQ8M1QhykpUFbMCyqN76LjfkxmDV/I5bctlsUDH7QOWOm5Zh2hJvEG1Y6m0/0lxSMxLQs5XaFT0OYLSX7m8pHcJCtOZF8nyRnJd0kVOh4yQ0jKqhpLXktJxyT6OoTL9LtCh8XJRlGYuOhW9EToy3Bp2xYr5LbyxZwZSZWi0/4PctNItaY8PY7WPYx/Z7DtV8GeVN/o7z7CmMPwO8sUS6MdibTwbR3Ja2LOi9s1kqHnXyRCTx+lTkUaZcGDEyOI70WlF+Cv/bNuZF7lRcDxtDFMY9ynJhqn5OCjTTNjpYHKg27MrocdmHsU8mhu2W5mGU/+iZ4u2zZhCttjeP3OMPMi3D8igw9roTSi0xYIhDvKMsysnsYWF+mTLMMudsqW7MpUkV+462PDoy7KqD89H3dvott2OmylUMw3EeTeB3ytH5Q34E4eR/SlaHi0/wBxRNpj/JlYEkuKTbN0VFLqBS4hPyU9kqqZ+5+fBhm7KhlLLRaj/wAxy3YrR8LoVLItyhXyhoafJZg90VOCHvyYTmB4dx0WoHJoVt10XyFfQ4nCHim/JXJ4FSqBT6XMGfJ90tGMM5Pkpua8qD7Ulf8AsUpqhY/YTbdoq7RmJX9CiWpRlUxtpqfdjV57LluPc6MrDLzPgX2qGzlCeiuvYcQm0v2PumH+aL5Kx23gXyO4v9Ll4E09exlu/cWFjZxN49ydi/0YbE3/ALKauBRxFUYKcWi+UDiagVKi5/JbypKl0/7KZlYWhyjaTN0l5LShFy4+RJck5Q93JvKMaZlaezM7HT/TSlst5fZlQ/MjnoX1ccPyO+8Etu2iVcipJUxVvyhQlLSKbwXNyZdUZ2OdoU8ZzspOGiowtnyOE7YvqexXpFzkcN2YZUQv0UJGGYY6mh1fyTX4gYy1mzEo2jjHnR8FOcCyawbwZdGIod4HTK/2ZVDhSLJhFNZFVX5M5LqGawaz7mBQnaZaXRqmi5lFMpjw/Uh1vyOYM9Fo+UVCpk0qHa7LnIkdzRo9kjEYRlu0ayjAqV2Mwr+S5uSUYf8AAqgx0aHJljxcaKk+1PJPglfpXSLbFcXB9rs+F2K9Ix2dQj4Fgbul4HPsVD/TJZsU7Y3HQvgw8vo/8ip0d0hy3v8AR2zZErPsXKoidfpxiexR5NbLlJGHCg+GV5GoVN+S+4O7RTdFvivkUNmGpXubyOPT/JLcCvZSY/TOz4Znjfg94Fn+BT2L1cXoUxoxmOhY3oULlslJ18m3+RSsFVS6/SoUpyKVJjx2XKyP39jpNforezPQ7bkwjBvYvqwKVmikrszH7jlwZbpnymXGPYiGYRU9FpYH5HWhW7Q/K8D3ge4gztFIVlM05T/TMClmxZcIly7LQ/pX8ChKl5HTuNlTlkUbPZe49D6aFLy0JptZHKTQsio4ym3fRUNX2hQ1+C2oX/Zjjo6wTmDGWilEyOZFhQU8lRlCqaY8Q1Jcu0KNj8qSoyipUz+uWKUqMrKMtlJWY6MYKUwkKOWWbMuUOU05ZfbnRev+xvwKul7lOPwVNyOX5yUqc+SuKVibb6MrA2m7aMJ0PuWfkcdyZH3DMwcs3Jl5MaM6JrK6Lnfgyqgvx/saXvsow2OJ/guagXuOU8eBfUZH0T5N2JSlgXuMVI4zOF5L7RlKKFLyxepuml0Um4afRd3BiIc9lT2PGfYunKfZS6zY4eUfdxz5RXGaTwYatLoXquox8GVcDTfGKX8Dja8shqMrsmOKrwZVD+rjbNUl0PJbfRxbXIhpLArwkXKH9ziCEm//ADKHHHjkdpR7ohLZPqWCnp+TlK0LKueik9iUPDHLeX4Fh7Hc1A/KGR7EX/6C0qRWjTLSwLKwWsnz0KYHKWZLm0SniTPF5LlY8lKJrQ8bFmRwng0P6Wv3MbLmkzD2P6tm9jalGjEFoUPsUrTFMLApqmhQ8eyMNGFjwXGSuTx4PuxJ9qG7yXGmNx0icZMa8FxElpHs2TPRbLZiDWR4lGEK8svoeC8SXqGbtIrkiG289FPTInvIqWX4HS/dChLBqzqoIbm10U078Dw5nwPHQ/pX8/pgtPJc2v0nscwYuTHQrxBjEfo5TNZMIwzR+DlMP8ilpVPY0v8AJcxjOBQ3of8AZjscN60ZWWLy5PkWLgcbSHeUZbhe5UFIVtVui5tmE8GIo7/Y/BjUm9GMQTOJLimzvHQqnCPueB7heB4pmVRu7M7gwsIwsDht7HK3Z8sZrTHG3/ZXl4ZmVZupLM6Qrg5Z2fB8meViwv2/SKUsdLfgcP8Ak/J7yP3N0iPVBpzQm1sytCiVY4SUHVixmRy3b7Kkc1kiNJFJfmSuOy0sI/5ZPwJXhnwLOxfJ72fDJupRPgcm1BT0VVlDy8mUXmTOhSk5PCbMqnIpi0z9xp3R7odrLLhUZTiCIdfJTeF+lrkzE0YdJdFrsbSWC06G6wz7oiTHY/cdQyqtCo2qej48mZgz18laHL2OrohJ6RiJkdt48GqPcWbQ7mzscdDl6PuMrIqeBKi+l+mVheDMjsUvs7yOPSV5kc8VZ3TZqi09Ch6Y2lMSOW7n+iqheRw0rFD2hZb+RG8MpI6yzGB+WfasdmIhyYWWXPRL7YrezWV+mGYRl6Ppu0zJhUyJbo+R2rstoxjzJ90tp9H5KXJSmbbonI5cspPMjrPwUnc9Ga/A6eDCqClLozoeXgr2MZPln2jpWxSuKFkcpSXJjbHnQpjZ1FD8QQ6FLUS0WhQ4ohxh/wAFVbHTxBCRn7UsC+lGYycp6Zxh7Q4Tyi4pGTEjpTLL7Y/U+NpsU+n9xym5jwOYLfJ+paouZl/7Pq5YXka9S12cmn9zjYlPYomJ8nKXKkaw2n0hyljwJ8ns+3lS9x23TFK5TeYY6m0hxMn3fyU/uhCjjA+qJ9hS3kWWL7vpgWsGGlDL49FVMCh7R3h9HtBbSyO1p4MzD9pHqvDFMWKZPucCrlLmf2MYSJTmil2W5MNSpMNuZM7MxSYohWOUspE+VguVgVP8GGcqWDGGcYacKCVylx5LTbkpYk5erjx2z9hyslLLLMQO4lew9SNy5gdTZa2x118ip0x13/Iqf8DhLLFWfcqsIq7ff6O26GvJUCpZJTVomHn/ALHCWhS12RNQhQ1bKlmXClFQq8kKdETsWLY6ejD2aVjsX1WY/synKMpmejHRjXufuY/ow8DzSN1LL0KOzL12L36kmZwZ6RMrEmJsVPKZmk2dwL2K69jDdi94/RDhJSKEsPwZdlLbf6PIsFWbL8mf6FlD+DqbNIcLCRjohvvo/I/DTyOlcD9/JpzPg/IoSw/Je2iIK2ZeWWuykv2Pk/JSayZH5gpv9j5FOZIaYoShIdvfZ1grwOJdeC1MMtz8FLEH57HPgV7HuCoLaLaUwhT2x07joeBe6N6/sxtmhw3UHVdFdjloqclrwUlZbwYh1uRQlEsdtSL5EZWDPRbf/oMMri/yU1j2Il5ZhuI7FbeGbLeh21+5jDI8IuMFcosmFhljjNFpGGqFqjJT2L58Cv8AcduBQi+xXMm4vyO9lXjsd7XRnXkqcoczY43BSd/JrBhiicSYWvJEa9z6V0P5KS+BS6SMk1kw0V2YRh7FMIecLyVGZHKwLOTDsctZIXgUQt/p7spaaLoy8IzGDZd37GU68GxxOh0jOz3op5gy1gcdrY7br2LWmO8X2P3GTK7MGFRh5bHLmPmRWtvJST/cpW5PhPMlrJrDZTS9jHLMC+mDD14LfRSdpfo9wmOGq/oxMfJy+lU10T5RKhwKUqgvll+BQn/J8/o/hjhrKMbkqoLSei1lsxOfJaey6hFRg2XteUcpT7yKknQ02r6szT+T6eLpLtitvJGfyi/6FEq/cTxDXkxp+RVOexNOJS/kUPCnaOXtBCSpew5TUOP7M8ce2xQ8voqzDcpmOzKbbMxRb2LN0XWNwOJFnYr6FLktLXkdlOJsxOhXmsFNQLZSVChKPwUowcWk3hFq1JOXkXpfFe7OP0tzH9mVyx4FLQ/qmZe+xTyiG/JiIb8j16Ry8o+5qH7DpJJs+lKZQobykU+PFQuxRhJZgdOo/kat4HNQ/cuIhFcXhf0K8If1Pa0KYVlTjv2KixWsI+3l/wCotUoFPHst4YrqBWzycqehY/kw8+PJpSQp2PbtHdkVpn4Nxe5G4kw8GjOTwYW0KVENm2K8yuy0kO3Fib7Z2nBhkxle5lNtmHDZh4HT2YboV3LM9l9vZbVFwJSrkpebLVzOzIphpfpe0KXhowxyuI60L0rbOTUUX4Ysb/2YTj2Rl4/7ML92LOGOeSVjqTKLbFDxAp9WYH+T7UmqLei1FsmFnyYyn4OvgURhjyzC0KpL5MfmBVxn9FLSkTlYZjJgtt0zMyhQ3mRzEw9xofkcNqUKcSx7lsxNe5yl7ZlZMsabbNUmOlryO3rowVcMtPI/cylTLX8iU9itltIVujQ6kzh+UPyh2R7s1d9CSaxBmMjirNfuzjSmDLRbgczvRESXFmXk8lmYscpZRU5M8lkY0+PioJhZMmFiCuTwO0nKKikdwZyiqgtF4kitfIm9mXbRjUDmezSk8+xQ84EPLlmGVB8mKiB0rKhGdlFTo+7b8HZhKlJ8DcJUQqyYqTKUSzZT0x4Z92i28Jj+S1NplrB1TITnI48lrodvDNCSaiRXxpexbKbr5O69h/Bb/s3kcOG2Sm79yk7YmmYzJXLtlqD7k99DpKWK0sdsVLBnvswOZfyYV/JbeY6NIpYKUD/6NWO1cihOp2aKjYoSRv8ABcqCHBTfXY/AtbMYKfgWcvwPFsWdm8CxoepH7dny/wBHC/So/k6M7NfydWj8lQ4fuIXsVGfJgypM79hy8wKkss6gahCiHs+5lP8Ak20jG/Y20x2d+xMbJ7kWzeTTwZMpQzGLG/JiKFaqDDyKvAqkURkxB/5j1EGNChom8jhOkexaeS/BlP4JlG2/wOfccTo7nyKdsw8rot4NaMdnGOMyi5tLsVFwqY8MjycV6mqgVvlhn3LLHTk5eprI5nJxpZY4/odrZl6HawW3kwl+xfJ0Ukxw1h9lNNSxQk4nscysDlLZXJUxzFyXNm9jt4LapjlbQsKG9n/HA4TUtZ/cy3AnCbMN2mK1RgX1aG25teT38yeSuSUQOtoeZYvpScL+RNwpMqJR9L422+zPGJjD8jzS7F4fkTjlo1j28jhzQoaWbiTi/LwhTyStmWJysn3K2OVpHwi12K3gUGYstLs1UDzZ9M4LrI45dCydjsqNYPh9lXbFLwh2/wCR26gaTwjKtmFbQp6TK5aMvZmSoyLI4h0az5FWiowbONQOm6XQnyU3JS8aGnRiBzHZTaPybM79hyl8GXbXkqb/AEynRXLBkW8C9TRjlgdKzOWJ28GSV15KawXygt57ONvBSbr22YTyPDtIl7NUzLwUzKqDKdl3gwUWnhFSe0FRRqmyIzJcY8ls3RvB9rMYNKGi5/YvoVJGNioWTKLHnZlK2JeD37ZCTyOltHwYaPMDzlmLRux1MG8+450yh4cl1TLa2KGU8D9uzKViljkYrWxQ0j3MDh6ZfhGdmcUXFlzYp/sqT8is2vk0a/I17H5MPJjcDN2vYxFG8tjtFtUy4Ve5nZ+fIo7MGHRukyfAvq0KjU/piD/l+xupMIqP3KnBumXsqdGUiq/TrJvZMuRXYrklMU+oX0rPkzgc7RmRysQY7KRdUx1mR1o3gVivo1n/AKF/8FozGzOkLNoxx3siUqFKeYM6M/0K0fgtNXGhSinN+xhXA4W2YhKR6FKfXZhOhwnkaTX8GOz8ihLL8ilzcGf6FO0OEhWq/SqLUykXRjRadIzmNSJJ7KuxVpn47K6MmWKqiezNHsOIqC2juBUsoe6Flz8F9GI/TrBb2j5HCMLf6VLgc6MQZgYp8dmqgUWadnWDMUi+kYeCmjCFl0KuX7Coc8dNlpGY0N4L8lPK9i3GR+xnZFZR8omHTF7nE3ow+zbj4MPotYf6auNQVxbiT3K7F+RVNCzscNGtjp4KezCVMeoYrTiuirKfGvgfdsw1+wovBSIlLDRMO/ZDhT+SkjKcryZ5VLFK1/2ZeRe7O6LbmDP7jmT7nsVKZYq4qWi5Kh2YivcqbYryXsQ668yZuIFa2Z/7E4wKke0ijkm3Jmq7Rjo7zqTHFwZ1eh5FWE/BfqeVownDfyL3a6NYXkrjxb9U/wCx1t9FS6OX3OcjhQk/e2Vx0hS5laoqWTGxWrkfq4xDn+z7abkahpSfah3NMctZYvpqDThmrQ668ilPJjZl5Rjk79xz0aeBZeOjVy9lra/ozkwi6wfDLjCHDSle5pOfcz4NLHkx0K3hlclUnGFh+57If1McLy8n5HDblLswtM9vY112fdtaHSFh5HPq15MvvoUPHuW+X4HaiGP6ngdpyXDspbZpSZ1JDZgy8CvI9xe1+r1kcJrInDryLb/AtRA6dQZVr/ozj5NGqR0ZmWjZnTNjpfuOuvJqhzUtFKIQ4jK/TRTVItRKHvA8qWtChLQ6wjLZhfyZ0hTy2uii+yoF7ew1OmfkldMylMDg9o8GNmHhDhFRSZab/CKax5PuO8irKf7Hz/sdJ5/S0rXuVCv3PtmDRq3BtWio/kUjr+xH3f0OXszFFyseR29GXgcJYZjYsuiu0K+xXspzApamEPGEKHiDDLj+B08wYH7fpjKF7exg+UdQl+jnv9MTL7M9+BU8Jm1+5EJfJnRiaO5QpW2VGGbWTDTFK2XdPwI7o6v8mOycZNGEslvspQZ2d6/SIaMcaHm4ejC2XFlyLOxUipx+kuahmdFtYFkwrMIvQvqVJ+B09mnEjcNQiUki0tk9j9uylFyfc8GzJ+R+DTHY8ZowsmyxUmK6FKmxRFm0eFArVyjDmUVOEPNQtG8vf6QuzBbxBSmn5MzK9hTI6ZEYRWh+7FfgtFw8mv8A0ip7R/yplrAq76KQ1MWS3Eow/wBjDmRUqPtSleTPR/xo2VKr3PkcPKnZ4keMiotLR+R1JbMDFGmVESLJCfXZ18yaQnLwzMSmKZ0Zmi0smH/Io2x/S/qTZcYFacM44cWXFfApcyOaLZTefxRhY8ihvRUH5FL0U05aIe4KWTDd9k+C9OTVoTvY7jBXHXZA4fWjdx5PZimd9Dotr+RQn1+4/pfXc9CUza6Q/V2yWlUmeO8H/KDCyPIsKl4H3DeDl7Gcj91iR3xy30a2xv8A2zDwP2YrgwLGGL0vApnQvcpK5HUUy8mOhTx34KcymZymTYrJaWF4HfRaWF2OEv5M79j4KSwZm9SVJxjT8nKU+jl9ujuZk5Y7PqcQkL0zcfIqjCM0+xSuMu/cjim1WjCvyPcpu2TKWRy3jwf8uOdHUz/BMO33JbTx4HM5ZcZL9MNIV5Z9s0X5QoTwf8VXuKeXYoci+lWhJp210KtsrGTWjK/A8wWjeEe0mE8G0bVseVTM9/pF4/7JkynjA3nBlSfdH7H535Pkf/vBzpK1/sX0vL2OtPswk89ldlVUaJuZONpOSqkzpGDDNCp3Iss2LCKWkd4FEbZTexXhjhMx2fgUromFiMG6SMRBbdopNSkL6m5HKYq/oVqxQ2rQq17DoaFc17ClzZW2mUtM+DOxX30W3/B7IqNeD6hn5Le0K9DvYrjI/qff6P4FjL0ZQpgi1kUrBh02bRTThsdrZmbXRpWNSzPGmOtoyKoyU4yhz5MYUji1D+SppMVvPubcx0as3bO4ZLuj5ZhChI12VM/JTX8CmHspq0l7inYoWzuiotIWFlCpszhlN6L9xakVtz+jbbZfREyK8IVDmqHXHRbWPIvS1lM/+FpVRjCNIWsiz+wvEbSFjRSZUfp+CoeOz/yNKEfsO2LwJ1oebKXRnLKTUGHMn24g1o6NnKdryRMWiJ5b/wBEvkbQ5ej8jyOuLllLJhUpyJs+3Y8PMCiP5G32exOJg93JhUyzeBWsQOZMzMdDt5KSuS0sSZ4uLN6HnBhZJ8ew7fQ6Zl7H7QsnuZdIeWYeivV/6R2vwTPGkv7L7/7E8xGhuFr+h50UmWrKWWynt7HAoMtmVglNOx1tDpYktFLyXK0KFtFt5XQ6eT4ZbJl4MNGHhleT6f7HKwbLO6FLgULsyW1gvsXwYeGLGDWzCM7NuzLZhlSP4IbQoi2dV7DzgtrP6KaFcRHj9Ob9L41x/sVouct9ENJyVxeDKr3N0/YhcW4XsZTteBTJh5ZhMUJspp0ihTKHqTOhTOTk3OvH6L3Z8tjmF+Ts1ot6/o7mxTqS/KLkqpo9jKcIwsIhRn3HCdFPlMNFtlve6MJ0/I5b00LwxXbno+2aXyZ2OKo7ifJ9sWKvGRWsM3Ul7Xsf8qTMrBaePA7L5eqIPumJ7HjPsOfA/NaZmZYpTz7aHbwKblf0KGq+TCyYS/BxtKmRBfuZVNsdzfuUkr/2OHNLwOpihsltd9+RQspCpYQ5cwrFDaTmSnyTjwW4hTsX/wDjH9kfU69jjvOiMZ6H9Mty9uTKwKU1hHGO0OEtdmnU/wACiXbLVZMp48C08HLH8mRL/stNy0LHWhSfgtPfkzopJm6RS6Rc5kvaQo2Y14K5a6ZcWkKE1Kb9h+p78+Ee0ClLBjRtQTOUaiTOpM7k1MoWKKiPY+G8GeWYPtHPHDQoTw3v2MN0Ux2teRVxpoqXMf0fajZxpOJF6vTgysCiMoUJqhXLTktXoUbHDYl6Ure2KHOPAkksIct6OVTakxtmFSbHnJfq14FSpXfgVLBlPPg3gxBFOPjoUtYF9Q7mzDeWUkOLU+xBaWClpeTMZ0OnAq0Xv2HSMxR+TC2b3seHJiKMmS70M94QmotN7Pz5HFtR4HLWB+y/TTqclrMlPlfLyb2U3DbHnKKWyuKyXODLWR1/JS7Kl2XDX4NWvYxFe4rQ70KmZ2hVo3swrlm7g0ZYlZ/9PYwjHXRrZjroz5FjJp5KjB9K0Otns14H6UnkpTkwnBb0ym9+BUsMw18szB+Cn72LKyL3SMKybVG9ipYMoWXQ29jt/I/nBh5RUjpKCKFH9CsbadMWMmDH9CdaL5NqxxOH5/TSouaaWPkcTS8Dt59/0/Bp/kvlJa6PgWcltYMSJpoTs+nRaeyrfuhfTototJDrstPDJrRT76HE7Qpn92QoxsVlN4s/5ZfktL9jSMzTMwsYIU5MJj9kazBbgazM7H7McxscRvwZdwOG7KcWUv72ZW/JcGGfbOUU1T6Y5cbOh/BhYOsjzs+YLTSNRKHS/I46H5TQ0m89kSZdplelxR2vwUrZ+D8Hx7mIvwz8ilrA9yjoj0mIlsddi07LfZnpimcvopdGNLZiBSte4k6kw1hlwslzvo+7MizkeseBfVxdQZ6Hqx4MRCMcVR8IWobFUxRTTT+DuUXuSfS3aQp4xCW0zlLixzGh0O5k9qMrBjksFxfweB7teDCwvAvdlPXZurE5bwYSMu1BnfQvVtMpm9lPYrak+F/Qr/hCm78D+1fMkpRD80L/AI2OFpeTbtPTFDVySpYpToecFxs4w9tGFkwssWHjsVxLQ8dmJLSpfo4cSjDybMMT9j6tz0LK0OHy/YdtufKLZai0bO7MdihT8lNkJJXIyLpotR+CmrfUicJfn2MYYr5MjCleSt+5fY47/wBDv9oKhJLpjvkqXktRM/6Pt5K6L5cZfv5Fu10cvT6lTXZyj0r1VR9TasSXFaFD54nCLc0YWX5HKeB57M6LY8wp6HjDMyU8mOhT/wAWyntmHDj9FRq0aKgy8jmSniPBdQkUy4VModYZXLpdGuhUnvoeP2FDdf8AY49xvGVgUuBXEQKm7YlLpNFLlc7Ma/7JqGmtsWMeCngc+r+RNrZcr8DlpR7ipmNM4/Oinp9mX/B3flCxjwZWDdyO0i28CpZMrA42LOGJSnJMmnY7VyKW4xmCJktoy0OrLjYp4rIrsucsmVs1of1eRw/4LeJNWWmpj9NNmFkxJXbRjwfMdCM7KfRXRlqzVCxkqUXMQZ6KUkdwz4SM4bHS2OW6NMw/2Pti0cfYrottzOy8GYUGNoUZLnDFMYFC5Z9yuUYLT0WpMrDPyKdI9kj7Xj3LS/8Aop0jV10fBpZKnEdjtOWujHRYmoyU/wCilhG9l+T2bPae2Z68mNiT6kxCkxP6Z026MuhQl+4/qLaKi4Nq/YzcNGItmlkqLodR+DeRSlRm4Q7lJi+R5wZWypFCUw9jwrZlVGzEZ6H8jjtmf5O8HQ6yOGpG1GRU8MUpYRSHWjL0ZwL6eOEZGaRTtDlrLHY/kddIUtmP6N/gcxY45Ox/HkUyIc9LZfnotNFVU/p7qDDRk/A/JiEK0KmLSRibZo+TLuTufJibRgVSY6Q/L9ipuBZeTMZOlPsVGUZz7izk41g/BhoVZQ6Kh5NqzDyLLo+3+CyZk1+xUuvwTLYomvYr04/SFFtn/LZaR3+mcFdlrr9FWhzseaMo6N49y2YFL0KKHQvpWTEULxH9ilRlkNIVNRJrHsVNfBhQkTCcyZSg+6YZhZQoU1BrPsPw0ZyXh0U5gUvS7FD60V3BnbKSuC0l+B40aqWX48lypjybz7lxRlWh/BlMp/0V5KayymaFouso1a6H+T/kYf8ABiP/AEGcKT7Vst5PuboX0vJ3CNGIoyZTstZnyVFx5FWUL7jlbhoofszHZ/8AB3ozxpI5TClopNz8CtuEx/VNpFN1B93Z1f6YHLaHEPLMYM4P2MLlYoS2V6j8DlTgUQq/6FDmUzCky8EeWx/cOlUrvscwqaMcnnopJNMX/GI69jjLWWWpw+hT6ppfsfS9rycvU+Lht7FC40l0xzyx7CSlwynywume3uK9I92z/wCirlnwfuPCglLfktdoUtr8i1XhmnZRlUmOujlK0Zgd4Laox/ZnsWc+R1H7jni6PuUQfc8lI0jOliyp/kdMes/BjstSK1iTO4FjCRV0Vyi0W+katJnecHsjZS2x7wKpFlQi2uv7McdHRbkvwOBLipswxQ5cFPsysGGOjM37DuLQp6Fnf6fkVPZ7GXTZv8Hw0THR90ROzamCpUj8QVo1SL5Iyxn2vDMPZUCxsw+zDLmjZqh3MFxLMtYFaSwdUYgzUplNWa/krwd/o4Tc0O1/Bi8ip0i7wYj9y1FFrk4gpfsOyVOxzGzMSzeCnOfBhX8EJwXRpfuIiF0YeW9CfhGUKsHxB8n7FrozNCUqyoMMx2YnIvbofgcORYYqeStQOHTYsNQvJ7wYWz8EJzUmSlH6Zmyf/dl9mFXyXx29nsjZ7mIln/HBhWS3yVM+fH6fgxEQxTqBU3ZcCpsw9FqBTGB0L6dC+TpyvkpOkN3UDmcQfIq2OJMxaJPlnz4MpC3MeC3EuP4O8DrocVQ5ayy1LM6fg0jKZSgqDL7HKgn5HSx7mzWUdQvcqDCZXaKUSmy5MSN+p3LNov8ATO/IoWpM6L6YsiuC2hw+VilKIKui3/RgwWlopGPI96IlKp2L08v1WqHcS/0zCouoMvZjlhCo+10i1NQUpoeaMnzIpTHKVFGE4bNiM99FJL8irv8A0atdGB+EaVsw2vwWmYfRMRkysGHlH2t1I46ZlUj5Mt2izK2ZbwYbhe5cqzGfkyv3HKeEeyNjFKdMwsQWtPoVupNKiGnorlODMS3srpFxSS7FdM/Yysn4MMzNyXn8GGrFLslagvRnJn+hpvocJKRxOPcUXJTahryZX8D8oy7ZhmVa9jX6XA5bMaFaN4RrROMMcyaSZczHsf8AJSvBmLaOSnRT45ZS/A/q42hS1l9sVNn5LlGXSYqbhH7Dhs5Y1uR3ydmHQ5aefBS4/wAD+lZR/wAaY9DqmO0saFLbk6n9z4X8GN9nLCwNQtjbTwn7lcXLHPLfgp8qT30OOS/IottR0KsK9D9S9SnUCfH05bUFck6kzTFcyzP7mrcEwlSKTwzle2OJw0VyxCF6oLWYISuR0aI8+4pSx2zg0vOzE5MFLZNKfcVLQszKPt4jh/8AmOGlLQpaU2Y2Yx7C+lUj39jBSbSLlSdU9SW23+CrteBeqoQp44X+hyv6PjwWkRml+ini8syz7hSu+z6WfJLjXky9F1Z9tryReGNwlDOUqS2n+wm9m8H5JmlQqn8lroU0YijcfkWaXsLI437G3DfklySOZ/k/8jWfYdp6KeWzYsYRmLNipUJwljY62fbMQYUWauRWnjx2PLkVlQKW3jwKKNGsMXp9y4L/AIFkUw/2JmZ+B5MdinSNUS2sm1LPyux6KpilbMLY6MJQ+4PtgcLKFLeULwzH9CtK3o2aqDCmTG2V12VdG0MVs1ldiaTg7po3UGnkr/RhYPFD24f6PqWOv3N5FT2isqDKxP8ABU/wXOPcd8XjR7mFa8jhuJ/ozFzkz0KBxP4kvi4TgsWB50W1kiNIpI3Z+w6Swtj+BKOhxBmcj8OC30KEtCkSHl/sONClSKem8yPqyGsmCnlGSuW2z4FWxzyahj3b8FdvwKfKGpboubkVf2O+hQ9rsqMCp2yymZMrI62WL08YwXNJmUaU+5vJox2OlRnomOhYtyTDHC0cbjJXFFTgwloxBhFKLMIiWOU1Zp0tj3fgni9NFvEi8R2KJyMtmIwKN0VODOGjS/I8jhtSdxJPlFtUW3seVRjjgwzef0+7syv0Xx4MYbKFTUCqG12VdC+m2vcyzatGEbGaMsVl6SNCjpDloz0OUt9GRT6bY68G9FToUpIwtml+TMUKey4whQ+vJW29SdGqQ/gcrZtZ2OtfwOkKtjTly0W0TLx4F6ohyWtMcro+Gh2jf8FRoxyoUwfBpWipr/sVLY/U8CaaSyRGOU6IcDvS0LGJ7HaUryKozs+GYeR+z8dChMcNDvtFTkX0oqfwYUIy/wCOz4L7aE08L20W2oFEVDK00YiSYihylo1Ejdy2dYEr2ZdRsdbfgcDjKXscsD7oVp2Oc2K24TNoupHclenPkdrsh8sfBTdLqTeY7K9NJGaU/FmW87GorWR/TplJrBdVPZ9LlR+ck+pQm+/J9Uw2/wCjkuL4r1dn1ceVtP8AmRvim4aZTmX7HwfdyVsVvMFaaL5LBcbFHGMLsc18wLNtlJfySvU8aZ89SO1k3gvobS/9RDUtPwVxdivszyQ0mhROfYdrKFTHE9nKYX5Oh3Njmbobc3BxvfZxuJfuZzdfA7iH7Dqcoft7iSjPY7fQqmmYW3nJDSWdj9h1/B9q2+yUlhncyLAoYpfRS0OmZ0/7Jh1JT448lIlJJnJ8W8ePcqKkt+S32fSux+p8ctYRnH6KDCuB+pLA9FOcFEOzLMu1/Ape4MpV0jOn2h/Ul8m8rwL6VLSY65Ov9Fy5ZlHFq6THawuh3s/PkdMeGbL0YTpClvJ/tplzstaNZHc0hj/Bc3ZbPaRSmKG9FzsxiDBTWipxA7iBzejJcuULWDEWtGMGUOGPKMpXG2eJY6QioVjqMGYyZWfcy9kp3JUZFL78Hwz/AI9DvMIztGRDq7HVL4HjAq6LTyZuGxXti3JK7ZgV6RmZLS/g6gdypMOKJTXQxr6sNjmUNKDJ3cfopTwbyjykh+wpTUtiiVhn3OkKnvsSjL8EJZnsxtHKKyJe4p47ZhfyWtipVArTF5cCwx1sVrD6Rlq2fVLpEJDiNdm5XmTP7FiidlpCSaQ8svcoxxlQzOjHQvkULsvfwXDdilsWXa2REWy3mP7PaBTGEUO2Mi8+xxnlNubPx/Ik0/yKlRaxDL8F8kqMY9jP8oWdfpXqnIs1Pgr0qEYaj5HMVJan8lQqLj9HjoytszJqh3FItrLO5kzJhK2KHHwfKP2HEFuDGTPLQqUi8s3rwb2zVqB3g1opPZSwzX6K0rN6X9mi+1+ntZhbNUmYyxTToqqLey1OSlORYyxqBYF6k6k4pRl9od8dltuGjlCbl9ldih4hlOKPqfgbt37FN4MqUcYUZfZb6XQo6FEql5FYoYvI/puhalmGqLQ4XnA5hivYq6Pu0i09HaVjw7Y47eS+iuSpvY82O9SQ089FpupLn6a0JzKL4t5HSyi3/BXZcPI2kK03MClOkW0SlHw2Y3B/x0zWuhzeT2aMPXR3k+1XKKjvI5StyW3aL5MykXCt+RTO/ArR5lnKUtCza7HDeYOpaKnY/crl/ZN37j1SFMZR1EMpXHsYQuq/gcvo+n0p2Xx4pQux07bRbePfstfcm73sq6asStJqpg3jwOuX4OU8Y9I16uNpn1bhFxtqhtN03/Q9xPkdtyn8GHiR2hblzZt2z6pcf6MuIPMlp2X4Yqdew/d6LSQqtlpuWvBhY6OzckTI5XFWvJXsfA1ObOTvY6ijNwtGRR5KrQ3FR7jt9dHKbhQU4Pt3BhPJCevY9kOZljXfkpzrXuKIw12K9TSKmmiEknBn+T7W59xfJMLL8iSaNZbPaR3a90WmWmWpk7FIsixbFHKaNbLXQqFC8KCO5MqpHRbVIalu4FeJMr+Bwm8GE7ZPqRo1EDmS135Pk1s+7l+By4paIbVyeyHC0jD2ayUolMdcrKhlPtDrRV/sbRh5MaHCf7FpGezLs9l7GFcm3kUPpDqp9z9xVEpIeBtLSOtC8Jia6MwRX8j1I6Q3CSgfwL4E3OCiFGWX2POBWY0O1hlzgyU5UDLWvJ+486L6fkzgyyDDrBrBTKNPI8TQ5emL3aMfoq60av8ATdSOFiT3kt6KZ7QeUjlOvI/geFRgtv5bMmOx4MNfg5V4Lh0jLwP7Sk6gSjfuU8sUPNn2xY4S0O8tGNryfBTj9zb+Cp0jCVIa6fRMNnLDwitQR/ZbYoWzFz7iucCSgw6K8eB1JscxscXJmXApjCPuaozuMDpOxS04REwWmoTehwnRlZkUvaPuTleBYL2bZh66Em3g7t+BxxVJGlZjK/TPY95RezKtowuxVo2VHQsqkZefYq4K3BKnRW5KMJFTgdf2bEoao9kK3lm1Zezf7CpOvcjpmUol7HlwOS1xhl+/6Rf5ITwWjTHnPuZ2PcM0sf2O/wCTSHnJhuD7S03RvKHHY77LcGcPoz10OG1RwfL1colaRVXH6NUbuCvHkuaMS5XZjCWy3FGV+xEv+DToctwWsmqfsQlpFLkZ/owx1ktdlcXo3RfHfgwzMZ7M/uXopq0TOJP+LuDy4FmzCMDhrvoZGNC9LW/A6WTDoxBf+x3+0GG6Kdo+mKTHK5bOUroc8uKlixn3LzJh0/cpOik8+59yFqWYi+/c+pRaQs5nRDmaOMaj+xX/AEdD9Pq/kcLj/J/ycFrMmN/6GmlSFlxJlVJSwvcWdip4Y1SJhWjdo1lCh69iMtSZ2Nf9jUcovyW07jfkf1NTQoaztEP1fsW2pcmomf4FDuE9Mc8uLX5E+Te4L4xSG22k85QnnWi2nS/kcJuZ0YfYm+SWBqUqTNZHlX5Khr8FRg3MlLioZtSim+/YqDlKhTZ92J8GFj3HCmzDgtZ8JH/ujfY+pPdLwOnaJl4gqGX5Glcm9HKGtFSK3mDOUvBSmiOK15QqdCqHxMJIcTCOj6eSw/BjxmTzBh4RmNEy2O1hGM0Z5GUf+QvPyTOUOU8mVI7qCmZM4gdNx7Hwj8CxvozpeDM2WsP2OU8W20no+5uJ7HfRvJaX5FfRn+z6nsw8scxk+1WzETY004bHCn8/o5Y6X6Uy42OFtClObKgqFCJRaUQxYctFLow6HWB2mW11sduP0+RyohmNjp/wTMYF7EwnkTdUypoe8eDbyP5H7laY9it0ZTPE9H3Jn5E8FtYLb5X7n4HLI9Ts1kWsHvBmbNMxhLyZikOEsvJfLvwZVwK2/wAHui0aRoy3k2OGZiDeBREmdIx/YreBUO9GGxy0adItGrZXWiYMxk0X1Ao0zEmcM+TD6HC2U7cGtMU8ZqDe/wBMLo2tl6XjscKVIqiiE/7FDeT/AImHkeMDtZJ69zDNZGlGYFKWzJ7oqNDpZ9j7clPaM/wZRhOTHk0b0abVinwZSyU/JLnHRhCiKUlQKG3ZSaLUUVOWZ1obSN5FhUXGEfS3ZniJNfyxy3ojz4HjfZ3Z7eSkkZX8GFUDmVNFt2mZSkeYwOl/JcGBwUqkUorqRytybtHwd17k+TCyj8FpCuZFjLMHbZZjs/6KbRhM3aRVGEe6/S4yzPZldFz+mFfv+mdNHyxQb30ZTHnRlU/YVrLLWF5PZmNe4vcfbXRl2OzSpIyi5wzDQ2uOiPcUTs1kqLOobKShpmOy2xShVMtkXgcRoebHMOGbH9U5OLhuJ8lzhiuRQ29GUYwjClQTHHHuKZ0uhqFjsw8ocdou7RFYPdnL0ztmsP8ATkr0YePYroesi+p23sqXSHan+BS49hfdbXRMKL8j+CmhdCjpF8Wz5Q4h0O0KG7odzXgbdw15HHJquj6pzBWyuSv3R9zUoX0mHhl0YK4rH6dFuaRmKMzD/wBilqn5FDWF2c4bitFvlLTw0NQlehW6+SuKbOX1O2mNW4S8ExVPElThYG8JuOxtLrsuNCzl6JXqWdCXpWH5kzNrwVKcvsr1Ufkc1Q5Wi+l17lN5IfHlyTaPdH3MVxTGpU5Ka0OxQllli8G1ZTWBS0p/6FSUF8pl9CpWKP8A6KsC9U7NGU8mKOUJLI5ex1iBQ/6FOYRTQ9y14G/kw9oS9Tw+zSdrbG2kpnsz+x9qwOsLyOOWz4PhjnsyYkfwO2KBUlnydJldDvsgf24FTL8jlubMu5P3Eo37j/2fBTRnJ8mM0OVyts1o2OnkerPkwkUnk7mdFKbQqZ8jrBCeV/2OXMy+ymfJhGphmFaYqan2Zl3JV2P7hfpljo1ksiGlQrTgfuRi2O4v8ESqke7GKHtFek+5pOS2sH3JUhU1Ra6/YXnyadG0V6sfpnsu6HSoUIxmPBjBu6N0i4FeFPY8opumZWEs+TWB6kc9GezP/rN2XGCz/wCMwjeDCwfB8T0PGhw/6M6Ha0UnlIdLRfUGF+Da1oWLR7m8MdM7NbLoUucD9/Ar7ZvQo8eReyLTMJ2KvI72Wsjt17DzpG8i1rIsfIzMGT3jydlz/A7StHUnKJ2s9lp7Mv8AdCmxCxsddLS/Re0DVqynKUnwVJUq2Oko+B0zHZgcJrBS0jVIwv5FnKZayhOYmTKwKoyLqB56JjLTHm/J9N1PY1DyLJZUaNq/BKnBhmXN9CtKf9iitG9dF7JxMFYNbKlU9H3ZQ60ZaFLVfo8WUnsz/JvZnryKGbwxQ2V2bGpmUUuuj2NFtFNu0WTI8Chq2Zwn4JcGdGVEwbNJuCos9p/T7tocdpnwJKjdIWFKcmf2Kc5MTbHSdeDMWY7wfA4ayvJUM0VCmBT4PuTMPRqmxXN+xVX5LnXg3kt9OjWvIsQXGfY5fAqezqvcVigxnyWpFeGQ7sysorlo0r/0aNOF5HK5TYpmn/RrPsPz8FQfa5MIVLRH+iJw0OplmcscPSLawKE5fyUln/Q/tyjdckx2Q6mDdSO1s1sWNLo1+wqwKE2/g1n3LbdJdj79xXFDxkUvtG5Sey+Kd+C/TtHRnH7GxbYr0YWEPWRV35KfEtTZxtOEjk1E2+hp8ePRukyuSVDvbZJGb9iaWNHK9e5cOjCswtIcKWkP6XMwYe/3I9Ir4u12cpVtLQ8bPjqBZw/4HSmRQ2jKX5E0kpljhoac2zcfCHh5WxTy400cpbdlJjl6Y2ulsW87MZk110KZdvyNubPxgt68FrbMwKsSWbwp/c0lEdlcomCnsUpsXsK1sdPWEP3Hu4K6Z1bH5M5Xg5TUexaSt+DK0OevYd9j+p5HHsMuVSGOUnbKe/Jl59ivTTO4oqMM+R34HHLBTW8ltVY80vYdq17GNL+TlfF/kqMit6LWzHeRT6ZakebaR9M2/wDo32fdENDhvJyp317GXdYQ5cOBxZfGKfk3s7s/cpmXowtEyY17i8NI+ntGsETs0x/I6KSw+xy2StJG3Y70xqViCl2KFy/ElvlUlvTRmV+DlaszsbT0OHN+T87FDdGlEnxJXn9FLW9ChtkuSu2OG7HLSlo9vn9FLM8nNluRVGWeyMPQ7VKR26YqHWKOqHEZjRZvvRmcsVzCZcWP3HKmEYTFk/c/JhaLax4EkKnhjqYFCwn4K9SkcmBYWUKNkNvJRayx1Miy5HWGhYH5R7k+5cuypwPFSPNlp4HEW0RDwxZsUp2YMTNZKnJjscVjwXOxuUpHfexzqdobdX3Bh0kx0fktCvocpv8A8hYe+iXGV0dyUk7ZemUk7LbNIcm6SMqiG8qTDz4GezXZjBlZPI9SS23ZcrI8bIlLIpT8WJLpyOeiXJknwNJexc4KTVf9laPwVJXEfscYatIXgyj8C/8Ag6Zg9oPc9l5NGdsvsnscTSQ5qyF4Pu0fbo3ZvZS77Fh0/H6KsstiiaguMCl9iPiCnpH4NjxakVK7N/sW1kUX+x2VR1k95RLbecmU4gy3LMrKFKawU296QpWU/JlDhpRWz2Mp4K3XZcYN5FHJY8lNoVXI6wirwfgedDzTQ4emKfcctmFll7b2aWWVyr5FDe+xS/AxT/ovlySbXQ1O0KZKb0sDmGZdckKFpmJs6/JbFDeUh3mTexZVt9nHwdV4Gk4EVyVryKXy29EudPsrlFPyO5vpsxmB3sdREf6/Sow1l+BzOH5HPp/ccRf7iT45PyLGGL3La2+imrlCubfZyxn2HTzf7nJLlyZUY8nG4M4kct4Wi3NoVaQ/paz2Kms+RQ8ryOeLd+Bzx2hwtkvirns5YwQlyV+GOYr4GnL9SHMW2bdCpt8Uxw24lD+rdbI5cZtIw5icwPKcsXz4Gk5lj2XDyh2jDwhZhClI/wCSs/6KHTx7mNJitoVf2KlZodQsfuKIhSdUzrJp0L2Y6S/ca9LwjzY6a/Y/4sdMUvEGXgqLHWX0cqbpeB1ortrspN2hU3+x/wAsFvc6NoTrsylIt2n/AAL3Q3qCeXk1tDjjFo+GP1JGV2OVloqDJlIUcuzKPkwmf8UUopiv+f0eKSMpT7jxRhqjeGZX8GzJy9TZTTJbWSYtWO3KHawW4HbVeC+XKYZybc2XtIpdD9jJMuj7nrwVr5HDeyI/sWRYQzSpGNm8eRRGjBTb2ZSod69y3uDIsY1Y/qTlSZWS4KffYo/seFhYP/o4n8jzkT+n9zDIvElxUDpmP7PyOl/6D4MndmcmG2ym4Q3KcJn5HEvBvZluxU8HZfY7mTPZuJ8nwxUUloitIyL5F7sprJb6MplpltsUpqz6Y32OGv3HvBaWBR72bdexncl9eS5ZlMhtm5NzkUprJiMESVCcrsWLT7Lqj4ZhYKUxRpUUrrQ2lOPJrBa76HMU2fa1ZqoHr89Dl4HEWzW0IicDyrRh9mKgcOVqkV2awLCyK8ET52ZdCvbQ6WUKkxxNmVdCmcvY6exunZ8CwXL/AGH9KNUYLazI4aQonPuXDl6HHsape5qmOVFGVotJV0O08DU5kVrJbiD4YpSVxkleRs2jCTyaUwU8swsj3R1Zm3RlXBbWitleBP6cDhOZTM9+BuHhlroh6PYp7NZ9jGztjvZbTn4Nr9xQv6LmmUnn9HDeTAvz0VOjMVJhGJwLH+zPHo3hlt6HRj9zeujGFJSRTeBQhulJU4LUFtPI6Qsy58GnUGG3Jl4/2Yijbhs1RxcvA6KS2U9NF8lhChOy40zik5mOxYcIu1BkUt6K7Q4TliuIFnDRbWy23PwLOR3tjm6IlH3MVtWzeWYRl6MNWNyqZh4ZmGm/7PmBT6XSQo4uZN/wK+vBh6FPLkvyavzA8PPgd6Rl/gTs5fVlyZyZamT7a9x1NKcG6Q00pkptwkh1l+R21L9xz6sNGrOMTaFrBtZLh2KVGNDoc/8AtGdMdxQ7i0OeS0uif7gtWvYXqePgU8p+BS3TgUlN6L5WxVlDtZFMUvYz+RN6XuU5uczJKhppmPuMaM5SemKZVyfV0zLtD7PFj6MvaG+W11Jl2U30Ygx/ZrCFLbE58l8poSbbR3bN4ZiiuOGzOivI5SdGfJul7ClConx0Y5aPuVIc3SK7Yt15JXFY9i0tFrzsUVY/phuBSk6nJaZUYMpSh+/sNfVgd9+D7YH6qocNKTKUGIlSda7L5LsrlGC3lv8ARFVhiqbOvyP0zRc5K2ZWy2sshp22f/EP6eLuOzGFOx2Z0YSmFodvEirsX/08uT5NvYrdC+riXLn2OUeRJw8mYHdSh/Sp/JmB/bkm5YlWRf2e5bTtnuODR939GEPdFN2XBn+hZuSMZPkbey3odORfLMtG1TFihynQ5eSnsuMIp6LRSN6FuhYsvJ9UuUvBh1P6ZP8AiVOB+l6Y5WEYTwKOiIyJxlPpGf6PYf8A0THfY6W/Bl2itMctstD+pfsK8p+By4ye4ralM6yOJtl1kqc+xjRdIpleTvJl2jKpmnS6KSdGdrwOujKN4LUWd5Nb8l6Zf+jOjak3Q/qVHQ7QvCPuzCN5SLdz5Kbcn3bLzA66Q/umi0KlaF2n79nyaNYFfRN5NmVknikU/wCiVcD9im7ZfUCysGUZwzE0Q06aGrwTMSU8v2I4y7HWS40YmxWsr9E/dG+y1pm3gpxPyfkk5Z0bwxWobMvDNYH9TV+xa5aHEXDGpyfc/wAGIgw8memWlkhPz0O3ocM+4xoorc+CpuRW69z6l/B5vwatmh7Gmro6wOG7Kbgz5K9WTCf5MlyYMmUZj9LhWz4bOpMsdNFtYOj3R8j+na6H7GEX0YyP6tFJZY90mextZ8lpUYei1pDijLVs0sspsy2NQ7g279jCHIsuF7DcvC/SE+RhKD7eWGY2LGjN0ym1ZT1H6LB7D92/6PuZb/seGvfscSpgri1guMilleCmso1gUxdocPZXSPt5b6HemPNQY7Hg9oL6QqWylaaOqg8zI5g+5quhy1UkyUoKXfkpp5O7ZUZMZSFYvpSyOfV+4/ky1BpYFTf7FOLXgc8XhIctYRr8mXrwO1oy3gp4FK8Clu2hVlSP/wCDrj+Sk04KfKil5Pu8CjlvdjXqprjuBKWzVGIxuTesX7lJcYSMKCknRiKQ/pVr3LnswsFNuPYV5g05SYlKUDqZa8m3KRLlw/BbWUf8kOXY5qzC32W0bclRKkdJX7mXky/4NaPiDJEJwxwnj3H4j+y0v5J9OIHPkdK2K4tmnRTdQYHEv0o08GV0K3kcriKI0YjAo2kXTkocvKReoNOXHR8SKZRWqFM4HWEKlorcH4/RWhZ/Y3o/Jkccnvyb5TPkft1JDa0ZWv02qMIVvK8CuIZaWPczNSKfBuI/BrI6Lbt+w81GhJp/6FVM0W1s4qsP9K4sWMGeVkwjJhvIqHlSky+TVGsMVbNTXgzlmIozsysv4KfHQo3Ao6RtUayhlG9m6kyjC0av4KqI8F0Kor3Hkdp1oVqbKbafshxyuGZ2zK2fAvVOfBjj3sUxl4FaF4H9OK/SvBcjrPkcrBRiZRiKX+z7Vo/8hzUNFdMxlMc9GD8H4F8Lomkh0OmbZ+Oh4wX3+DdtH4N/sWoMTJ8FvpC8yMt4fsfUirFKVT5F1HR90j9xW3CbHexrjDyj7XT9/wBLbF7M7MJkf6GZ2jD/AEdQj6mtCoqHkptWatFNjTjEnuv5Mot8rSHM5RnpChPJT/JXg/5WvBMp5HbWPBpQ/cVp0LNHVM1sxvyVPQq0W8ZPgy2P0odLKFb0VSFcfsfdaSFEr5k7lSP2LbMt5Ms9mK2bH7mE4k+GZjJXpHfLBZj+DLwvApeRWrFMrI9iqMomtmDBhrPkUOIMotLLNYQz3MaKeBXP4PElzcC8CtW0e5sv/ZlOTLZl48D9x3GDCpspdizcjvEGJgUtH3QPFQS5z4FczHYq5M1kucvwKeOvYtQ5XSFUFt17GG5hiT69hSsr/R8o+EU1ceDezJhGGfah/TAqnJkl8jP/AKRZdsUj1XuJTdiiMlzs+3/ouB/9mHbXkcNYHNUU2mYSiC5WEXDN2X4xYrWBT2KJdmslShQ2KU/wL6Vs1RlKYHizKF7N7MMzFJGOPRl2kKui5hyO9ohKSnv2EvS8FOrIUZMNT8iqcGk0impIacyXx0Xy5U40i/SoKuZ2adlVKWjleLLWJVyP2HE5FMzIpj9iKwj7Vg05g4r1clE7jqTDlm+Uqej/AIuJ6LUbyL6u10P7TWX5FLw/7MbZTWB+rYvqY45YM/tA9OUdFrjvDH1YvMoeMMSl9FwrSHC1Bljt38GNdnGGnCM5g1cmsyKWzOCFDsjArVm+slvaMql4Q5nZSL9LsWHKHHSQpSf/AKC6aZcPLwKllkNemV4Eo2xWsLpDvi4fsO1LTFPktszqxw9/phrI/gwjqvct7FdGOhZybedimWVBeylCscv+TEmUzMSzOx2sCxnwXuBaKTtseb/+FQ4T7ZFKy+VwhW5cl4Y4mo8mz8Dy78nGIxs+7PyU9mGxx0ayhYN9jy7HWjD15Jr+B2smBw3k+1Y9i03nwWuOX0Ygcp6Epj9xxKaFELRr+CqFG/crjtGzE4HD5MUpFMzAplq+hxxVjwqYsCgbSWh5LaOpHSwU40LC/KKWjMXBadsVbJUfgVvY0uTv3FIq2e6FETYnDRHkeWO0WVoXlHHGF+m8lxPwezHKnJt47Pu66HLbVG+i43seNdmxU1ezr9xe5agyez8ewpWmW2KVy6FclFPRWclctrszMT4NIiHj2HLgdrolXXgUxmDFNon0rKf9DrQ/fo+SsQd7K38ihvsUcpXkhQsiJl48GYM7gb9TctPRb/k/BaM4Rjo9pm1ZbbtjvL8F3S6K6ZhyY30W3gcelXZvf6fkt5q1AqX8jMaMrJHpbwjWnsy8oxEWLCgVNUy+1stul7GU7O7XRmKMxfTPuS0W3kUXg9zezCctmnZhaM7RvJbWH+llwXO+jeB5xA9ui30sF3L/ANfploULJc4LqEYX/oNvAqm2ZQ8aKmmfI83OS5zBXHs0U5/Ypzb0ytPyKiqpibeh+w4UmJkcwLOR1+8CtsXu0ObyOWhRNo/8h+JKcawK3lMUcujPfQ4a34NFRQrnBQ8ORZst4aFak0Opr2FTyKzv5G3mBW1fuW2oMdjvXWSoui0XDyZ4nJ0fKRSgvj2U9LQnjZULJumYVsc8RU3kTPu7FPbWT9/0w1Mih5ZKi0ifU9/7LfQpkUxbZ8di1Y6dl3PkSbUN9lNL9j7aM+rRUOFsULCRSajzJmbfg/8A9rFXK/YpzHk3n+xS5n4Hb/2YWzev07wJJ1DLbdChz+5xmba7Ki2XNp4hihxkuddPs1hCpzIpqzDRaVHdoh3nwL1JxDZaex1uNmIbnEFvbZh02KnRcVPQp5PJ7uej6W8sjlqH/spWoE4WZLxZc2mQ2qMMn2EobhkZdvPwK9mMoxtmnY6iGhwb0L4Pp9OjEKC00/yZHXLzocXDPZwW2r6FmhUWnTjRaejLwujEQaUIrsVRbHMNGFY/MHt4P/MXsa0Y0aeOibuTDxOjLMuzP6K1DTE/Vtj+nvyO3j2HI6R3Lkcv+jFQU0fcuuzLyxVpjicDgVCyVHRb2KaM79yWuLopiuHY0vB9SVovlFGDDFEihxZbbmD4k4+WmO1r9MaYoe2ey6Fgfx0f9C9UmuhXstbG2lg+GJrjRtSdM1aGt2PHYvpWILay/wDY5f8AQo/2U9x0XcicvJxtoUdsUpukcaezuY8GHKk5VFIcRSfY72W1+5vJsdOkYGvYccmbcImehwuxw3hMUumxRH6OxY2VDHMqvfoSb2uhX12fKK8GXleBzGiPUse5CfgXz+izloqzlKTrozFI90ZxDR7GFsceTWWbK7JRlpz5Yo5E+rol0awfjwT6VhMtRnYkodFQxNce/I6tDjk89QOoeTG5L/seF+46F9Ryzkw8M6pDpZFPYvBmfS2h0hwng+IOzVqB5s7kxpl9szODbvwWng4/9lenZlukfah7/Yuf2Mwj3GvTH7lzmBu7gX0mMo7mfA5lyl8GFT8ixg3TZUV4Hbdoy8jhSIccf/UW2sFQqLhmHdnUGGKjDOzGkXcfBd37FJ/yY17Fx3lGUY2XpswZeumJTpm67Lhr9KS0fd0TlqDPZ3HybMrA4ajHQ445a8jtYGlCpdsxv3Pt2hTdI9mZqfCHCWEfVDr3Le/DMvbHCREaFPKB28yVx2x/TEwKHyo1P5/T7ZwY0NtvM6NUkVVomlYqVo/A/M9HKWsFpZaHKn5Kfk6K/kuCLHc2K9SdfuSk8DlRTLSwy+LedjlR7GRwn+xvJrZh14FKm0ui4z7lqSqiVsdKyngWmmpscwoSRnL0P3PuTcSUogy4wL6dDhKx7MyZU0NTNibzaOq/7Mt2OU8op048FQ8eBwnhdryUnCclwrepHHqho1hDp4FFkX2ap+BVOC+kKWphIdvCYoXp1+44XHPuNtu2/BCbtyKZlt9Dn1KZ6Q1gV1ZfHisiZymKfQ5RmRzE/kcRotPDL4rjKE/TiVszX4NOn4NYPtSTR9sUdtIcQ7js7wNzNoyroX1TgTvHQr7RmRX5HWnv2PZv/o+RWPFik3s1NGUKHET4FcZMq0+yk9Mc7hCUMtFvwLeTSG1GCR1xpsc/+oVJsxsdxgV7F9Slyy2nKHC2jGmWcfaDG/DF7oqKbPqUTYoapoy6QtWmOHCgz/KNvI5hivksCsWxCfFy1HIVSrIjaFBlb7RhuTX8CzaMLJMtSloUNqWzlM38GEyh/wD+RTN0xawcvTycWW2pFEuWVZbiZFUFPwVFouRUt+SmnRlYGXr5Mdit7Fv9LfHJbWRXkd4kzo9vkV4ZrJnaFen+ktvlgcXNmlcFN2OteC+y0adexcmHgtp2X/7ApiEnryOWnR0OXsdKzRjZaRgu6Y4kzB+TKkVNZ6Ym2soUNmU4XsfUsmtMjwVDknpoaczZfbMrDKc4PudmsJn5KeGWtGU7a2ZbtMpeMGtkSl+wrdtFN6GKHytf9jlo3h+BpRmBy0QniT5FnY7Shor+Tq2fbtjtYZylvfY47MRKZUYfk1sfq9WX4HCX5Ftti8k0Z6N9jTiZ/oqMwjQnYvVmTJlmnoU/TP8AoUP0w15HhYL8Iqc+WP1J2kUY12Oenr2Pqf6KrllKXJdUn7jUrP8AJlCvRUdDnT8jpFJ0p2U1n2MHU9MXgUKbHTWsn7dFp7JbVQUuh+D6Xg+XseM+4obnHZo6/cqMlQ89lbgzs7hl6fuVDiDEpGVhmejBShpooSa0jWjxBUq2cpn+BY3/AELGyn/Bv9iW0zqDBpzRl5Pz+n4IhWxUUpsUdFSOI32OYWRUlXuL/wCGX+yHKiEPd+BTORlL+zLTZh5KYi0O4odcnjoVPK00V37CpaZlWYQ4TuTOC5JXqwO07FcTJv8AgwYefYringeX+CXFS/5HKm0VI6a/DHCKSpsytlcpX5F9KwhfTho42qXsW1sdcct9jhMf0x+4jHZhOz2oWqF/9HKyLOxU3kUtYEuPq672ZXKPYeYtF8ci8jm6f6bqB4yK+KryY8ifbaHhuUOJZXFYfkUt4ZS2y5/Hg/B9un5MCnqMkprc0KUrk25lDx4/Bo05Uf2NtNR8ituB0tM+lLXY65LQvqdfAs6HCeOhxEr4HHJ7JTXGEUmrFP8A6DPkSTWX2YzJrDKnMGMe5nCXgdTCPuTd+CWlscOIgxNjpukN8nOCmk2l2U+hzxev2FSQx/bo+7owccMVrLFe0P6ZHSaSZhlN1RbWT28nKG02h2sDj2PkynRlWxQ08CWXXgWdCxo/Avtsw/2M8v3MrZjLHEOTPHaMpw4NKE/J8nTkpsft7jzncGBP6nnRC5fsXORTybscxoU7NHmf0rwKVEClRQj5ZBTTky8spTYrStCpTIo7XZaglJocRQ5UQkVxbszuBxP5Kh5NO2XO+jVilzNH0uDDQpWmUoz0zGy5Mju8jrMH7Fcm5KqZN6HWi1Bk03BbY5i0/JbezJhMUrN9GZo2ZyhYdIdqzsqXXRjZUVR9rdyZdpGUqZTWDBS/czM3sWcGV/JbVwO13ghyh+3sPKot6HnTMK0aSaL6KuDQ48FN4YrwU3grwUVGhWh+YHOxQujLRPR+TGoH6U8iwjdM26RXZaUQW28DrkYzJrEFxQvpei+xZY/dip7GlNMUTvJXbF5kWTSmOjCdoVYLNDt6FEWOZyVKNW5yLJhEy8seXktp34HFNQyulsyso+T8o9/cpNU+mZSFcep+5emZ7KeZ2MXwY7Pj/slN1CPqTyhXNMrr3Laz5K5PKfYvuzBUTDM9HwbqGSmsJGEKEv5HHLovksi1+51ZtWOOUDTlWjXeRQ3sw9fsfgzorsy1JTgtqoMsziTKNWjayhzGGZT/AGFF7ML+Tuka0KsmdC0V5KijGh/aZgz2UumfLOjEH/L9Lm0a2Ojo+CuTMaPtWh3BKa0YjBEOUz7R7hDyogVLfkcy4kcKCeSa+WV6cIw8+DlPkzyyYwOZVGYiTd+7/T2LcWVKiRptpJLUim5OMryUkeBQ3bZffgVvJRbqUi4f5KkdGVkuzGYHLlUL6WUk8/wXiikhTsVpS4MrZnl/BayioKS14M4aHZn+RW6gUPsyYn9jTo+S2nKfgVPAq0V0i/JfEedDhKx3tfp7Jn3LL8GrhCa8HKOMlT+j+pOng4y1UnHcFPONlzaZbiUc0nyTcd9lRoX0xkSxTNZSHEtJFtUW4sf07nst6IQvp0WuMG9MSnkpRvCZxiVT1BtWOzj9PQlxXJQnnQ5lUL6XbfR1K9hzczow3MChLKVC+lKkOZVomESlFCnk9msI4tRTH8eCeSUV4MNaP/My1bKTsUxbFF2VhfAq1JjKTFll97HdyPNmEnLHJlIWaRPgdxZ2P6n0VGzHk45lUO0VN30YWRSlhmIhrryWvyz3HCYrlJx/I5WJ8H1OUnGUuxzCjYqmYFWkKE1Q6TMN5MIepPu0L0zLbGnxyn8joqBex8DvZcniTPGzLUs1aHF2VEy+2Zcsf1RDMaZcdFpGrkTSToVxaFMK1s3hGs/2ZeBSZ2TDs9j7lgxyFe/b9FDmPA6SwR0mTdIWCp7OqHj/AOH5HBmB1FG1Q6wV5Hlm6SFS/kz10v0/faOslqBuNFJUKWnk8NoV6/Rw3MSXopLCK2ax7CtqGPLyhbx5NZMte9FxspTCfkWakeTC66FM7FT0VNSOmOP9jzhFtbHbwW9iucG2/cysexEpmIcoh1Z1gz0YSj5MW2Z6O7LfFltYQqi2Wux/BeIRT5Doyz4MpUy1GCkYe0fdp/0U3P6YqDey29lQrN5HipRnEeB0v/WOH5ELx7CmG49irHC4/wDmY5NH3NuUPGGVVH3N2LKeTOxW9GG6kz0U9P8Aowj5MvJy+DU/JR8HiC2lfkUpEt9DrMmi7pGMMprD8HQ6UNjy3E9G6LSE80TeS3ot7F7nWBW3BXZ+47b/AGMoWMocNs0KE8oi1KMjxlFD9zCwiY2kfJ9rdIxn5F5k/IqVM7yVKlD+EOZjI6h5HK2a30X6nk3ocRrwLUUO5L89Hei5wL3ZSHD7MLMilaZhG6ljTjJEzSHCVP8ATG2agt8cG8LZUYRqy4Q8TP8AswtFt0z2NuZLnZ5I8ew80Ki3hmJh+5SR7wOl/Ja17l9ili+mFjsqHTPkeRqtn7F1K9yemOpotNjicwY0OppjnaKmLMpGVSONYbHRlYP+TclQ5gwZFbwZiTVfJUG4RhZKlTA6mzExHRaZlUdYaOU+q1/o2b7PdMfaHKVjlv8AgiH/AOsdt42U1b8lXZlYa7LbytSPGfyL1S5Hpwy1FpGcQSuXGWnrqzGB5TQrg2iI4r9xxY5mmJJJyvL2fBczOhWOOTz2VFy8lelZ8l1YsUUm7OMN7yhw278kLcMxxcLwS08yKaiELPwYV+R0+yl35/RS1m/A9+pSOJwy/SoMIX2yLLSbH6nlLoUJihChL5gX1O5KvPktvL8kfTgU8UoXZ9rsUTsy3CfgV+TayyuUyQm9GUP6dI6GW1mRW3+CYz4FLSz/ALPtM0UqdCiF8iupRukjLZhL9zlNzD66Ns+Xsfph0kO1pdj95LemXJxvZhfycfqeWf8ALPhHyjDqDCHh/BnTOim6Y48mIOi+TVLoXsZyzKpinz4L5bM7H5HF2kQo+1MUQpgv1PrQphUxQltlLDPJ3TRaWBy7jom/5OzeBaguqQ6T/cc9F8rvRctTGi5HK2KYdCrL9z5R/wAVPyKWzCwjWH4MK1A5bX4Iby/cl+m2xzybHeBxBPhGIhFbgy7gozUmS0sLYquxWohjz+itufdDqf8AyHgqDdvwyIP+VRsX3DsxmRQkXNNlVXuZX7oUp0Zf8mFiT3gaTgrklk/+leSuOkIz2P2RgX/aFK6FjB/xqRU7fse6L7Xkj3Pqez8Mzsx15MaHSeP0dMdttLv5FmmxykWnRaVjyqgysxsrjMKcjrTHMUNenzsriqhjqZ+S3ZMMiXsmtiiL9zEujOx5pFNFcqbY7dtkN6McfySki01TH8mVgVaLm6FPLLHDy2iemy28HyU4mBNeDGpH8DceBR2Y2KlkymvwYf6fhn2vLLW47MRUmnfsW25XgUrKnsW8MrY/qk+65YsZOqQpkqHPyWljyJNzHwRYpRvBmfSv9j9TWjjDkX1KxzFpnwU3j3HMaH/sVRLfkz6fU3PwZeYHPJ7HKmWimnCGoPz0W8Dpq4MtxLMKx1r2O/kV96NZ8jlX7I/5FQx23KRhqjTr3/TTqTLFD7FExDMOZ9i+2ayX2P39iZ1AriGynpntBpRBCnJlZFbqXo/BMIST6ML8jlf0U+N0W++xQuV+wqbtdlPzsVqB/U6jQ7mWKOipszORwh/Tl+Rqex0cb22VCtsdaj+zZVSd6Ov3EmpOW4Q8WmOVUip78nmR23XsVx/otafQojMF+BZKK5LAr/sucohRaFO2jPgzxeh28+5lWe6a/gfq/owoaQ7i0awOsR5Pp5Doy1RnC9zPHBkVuV8nHLtii6HCx8l+DdwK8j8lFrY615OPq0rsev3M8slNupPcw1fg+6ZKa/gVa8leO3BKY4T1/v8ASG+WZFi5KblQ8+6Ev9styp9hw3aTydp/Arf/AJGMtouaUGdz14FPf8Fdfk+538ChJQKYpDbmoM5+BZcwUuPJWVG/JiZYp6FLTryTDxHZaz6tQXHQ4U2he6ZFqyl5Ih6RcKp7OrhENrCMvB0Z42zH9l2O5+DeTWhy1o1fuXUn2pwW5sV8fpof1f8AZr+C5mhxyTF9TtJj9Pc7P/hlikeaguB+IMuGKJ0Y66NUy1UFSJf7ZmYMvJrZhKkYajwUohDltQJwVNeRtSojQqSHPFjoWcClpwh3lrodpQxVOOy1DUdE3oUEtPs1kVOvPyOl/BEpsWLsc8YlC3aKbs2Oi4wKnkWMsub9h1+n3NWZ22L6kKJv3ZXJqyuMRKF6oUotsltuHJNGVktpixoUcVsqf2Pqaiu0KFGPIqblPXsNKVgXyWhxWi3x2/4M49ylH74HKWSfqTn3MtTKY4h7Mi8NjtY/Ivq30POB6wYujakdocbZmLPZHGtMVvIo6gfujGGOn+w6WEO18j9vCPk+77UhKXp/2co98EfULGhJpfsyk2PL+B1NTov/AEYdSxTCtDy96OPuUQ1peRQtvstN/uUtyLMyzMttfJxajJhK5H9S/cQ7dGVgX1CwrfY5rBvCPyL6eyeSWhS+kUtdnxJnCY5cu2MmFgtvZ7P3NUd0Y0KX0V4O/wBhTeDX4KjI47fkcv8ARQtGNMfsW9GdjnQ1OGZmhfaW8+JHDVspNwuzW330fdiC2sC9TVlf0WmqRlUyzeTk+PbWTKUSxWs+TDZn7kaW+xxFlvUkOce5uPdGlCf7my0K5r2FW/cUJQLZxvycYdJs2fSzDTHWkXRlslTTQm0yGzoVf9nwxUxQjEn7FRo6OVaY+h2smOx7pmOjHY7Vl4M4gy8m8e5bzRUuG9SXfwOH2W3A76MPJNYHD0YVlN2/6HEWzPLHgzFsw8ijj2xVpfyK+VLwujPKLMt2W1Q8VYvjs2L2HEfyKoheWYTMMxiWb12X48ibqhQOnhdGkJ0nXk62Yboy8ilsytkp6k+51H9lSjX7CmIsfuL8mNotvMn7Wd3oSTzPYoapiwbwUt+4vYfL1Omm6g+C+Lyuip2KlvZ9ysvloUdIcslRagmWNwnlnLGiU1nyPpQS08exlv8AYUr+DWB3sc8eNpLRHK78DfLisL+xuNwW9FRS8mNf2KVFT2KUhQlXuS+0buBzOTeBEwsItK2cfpdr+jWEKGqifkXSbWey3Eyh3DS9iWzLVeDk+KbmS/phirE/6EoaHHGWnIkkseSW4M/uXDhr+zuzTwKGfaokWaFTx7DrwOdM3/6xQ1gtE3kvXszCwhQ3a9xYH7IX1La0OkRLtrR9sH3PIpFEDuMEqsihNS2fVEJe44i2RCr5OMxPJs5Sy2ynEFRj8iyPGDcwOeTtsUKLPdGYgpjhtULOV0xRGCtQLP7MusFNUzu/0qWKIMrRSXRjIqhsU8WL3N4Y5kY7dH4RlZRTtpHEidSOo2Y2hQspi+l2yWniDKGk25X+i3A5f7G9loVDqLnsdtbFCy2S03I1WuzPX8lo+10/cdbPux5HMSmjDWWJP6VD8k2Y09nyK+y+hy+jk1LwexiINYKTyUzqz7W8DvT6K4z/AENxBfHjh7ZiKkcekcTaLexToirkbatmsGVvwdisUUVVo2zyyknLfRaihudmMDn1U2WbI9/JX6Lc2OsuP4Mr+DGhRKyPLgcxbXkpt5NWbwKhGMs2OORcYZe7I9OWKzPQvMFSfc6gvuR5qRVGTOoL8eTO/P6XH6OtEy++i4UM1o0O9jwrW57LW4L/ANGEKe1+mNGFsc8nY5awWtFop8nK/TWTHQobFibMyvwLFSj2grwVpLya0dZHkz0KW1SFRK9KHHJzXQ/p0ypn5HeR21FjznwPUGVtioSlYfZDqvJr+RyS08votJQZWClJQvkxryayWk4PaOilvsprRei0zCyXNmhVxpjh6LufgwrgzowzCdMpEpdDzhjxZnT/AE26/SvBgmPJc34Jl4HoWbgUNyYYvVUwjanyOm4MMXz5Mq3GxW8fpUSbVocbfufBh7NaM6QsKSn+xb8j1A5i42W++mVufI47Mjtq5MF3+xeimi6hihO252OlsdpyWkqZjBnXY/zkuHlDbfkWbYohQuj4HGZTFPJUfK2ayim3bPjo3SJhGjDP9mdM/A/H/ZbgcJ5LTMz+xonwfS++/Y01I4TcQOK/cfsK1s2kxqMvsqEYamy/TiMjji3L7G2qT9i08GZoRu2W+Tt/6NYQoeyopsft7ndmNr+zeBX2Kx3gpaH9JhKW+h1NeRRpocp48HGGnaQ5h47QoU1Bl68HVnumPcr30W2k3OzDTRULGx3EyXGYK4rCNV8mVgcW0p6HDYoai/BlbPeylOTD2fdtEytdirZUZXgXpbOU9MVaM5Xj9F900LGtlJfwYeB3oU3kqXfZLioOv3K0W3jqTXkVzEizottQ30OteUU24nozy2ROWxTPYvdmnsrwcYlO/kvl2PKloUQ0m/8ARo/JjEH7GZps452Wlk/JeK/TEuCU05MdGCuS7LjA768mXof1K/g0awYMOkfCHRrA1GJRjTF4LezWB0jGIPwKeKyzGWVuzVoxxs+1la9jA07/AGHTFLLXk+ZMaSFL6KTX7nubyh06RaSl9mMFw4+BilaS6FnRhjmIRSTpGrUFuDPf6ZVIynXsWf8AJ1HRXYs3DFDMbM9lO3JlGIFaYvgj9MQK1k+1ZFKxInQs2vcT2hUykj/kOvya35FeDMG8Dn+yh0av4MLEGzpv5I9zBh3Pk6LnZhbLuDL3odbLa2KvJTeOinsqdGYN2PwZWWcciiNdlP8AoyqgZ913s5epvcQfPknyxiuBw9o+p5QtSy0z7vGjLpD9xStGYoqRxdDpjSaqc0W3a8DUotCtbPhFPaPYUszqD7noQrM4YvwZeBqdjmcG6bFjZ0Ykx/Qq0vI6i35FK72Y44Za5PIojMilqxaFEZFCTcGGq9xQ8wY2KtnsYn5kcLR+R3mi5tlJZKS0YYpU5kysmeIj/wAhU1BjaKnDFDLuv02W8/oqwjCMupRl6KXGxY/RS4Fav4MaPyZMYQogyrTMt2YRhUahfuORW3M+P0tm9GZ/7Lb/AGR7JmihfUqMxTLUUKkJwnaFm4MJ58H/ACkdJykVFMedn3TbMWaycWmv4MItrHgw7THlz+ihsWHRF7Joeq8n1LB7IrHwK1YvuRTyittl1YryYfWZMu1+nwUXcfBSFBhjic+wpXZhYkyX/RpUW+NiUv8AgflLYpw4Y4aMbHhG7kU8W4kuHHwU+OV2V2h/SKe34KnDL/0PGGawsGJp+DLYs5R9qTlP9j3X9Gbkv/R0coamv4FKdtMV5Kh/sNdJaHeIHLWPI63OkXJ9Ley3EfJkUPb8jaapQL0+nXfkUNUircl8VCb/ALKaTiRTy70x4wjeBUsIVRKHL0alfJT6NLY2l08yYcQX0N2ogef4GphKBT0helRQ87KivBaf8mDCFToqXsVPZaRjRe5RT/kcNPRp5RhMU7js+mxyuW2KUnXgeMfo4aVo9hwpx2YY44zktzMro7EvTKlHFJcnaQ78lt6fYvZGFVmRUjIsb/otocX+5s9yWWniex/BvHsOkincdFPR9LduNlvZpDpGcp9FccFTvoU8d+4pnA3WVtlS6kzt9FNfghTlmlYlCyilFGsGpZcO/IqSN2ZW0KCWmT1nDMLKI6a8HKtCscTbk3CS7YpnRKamhyoif4F9UUh/V29Dlr/0lzsttfpa/Rw2OEfU8IvbNDrTwTKgTfJWcdy34JbX6OZyO5vQ01FryKKagx/ZTmGx3r/sucIqVgi6lmXkpLL7F6VA9ZRbStlvRSyXr4HK6NUzZSdwPyXtDtaHOkj8I/8AIWcIczg/Pg94LbtilLBU5ZnR8+4//pTXZEPBns/5OtCwsjzZ/wDB6shPUHw9Dyrsx3smswKVFMdMiWyoHK2PNpMVNDSaLSQlVSXP4M78nyOFxqWoFLTlC+5zI5uDHHPsN9QV1I8OEUngUw77FL7ZnpCwZdNDhFxgz0PJOB5VeTH4Zxl5b0L2ZjlZiag6MPCPpjD8G/4JTfY/VR/yRWVI25wJJPXYnR9PQ6Rh0j8ErwLGGLORW5jyV0jb/cfpjPuOWZ0u/wBHbVv9HbuTClP/AGYnBSZldbM9eBW8oU6MLCMrI72zKzIy1n9M9H2q/kuf4MN4HaYpWIK2zRnwdZM9jUuh1xo3LMqoFWxQ+vBK/wDpep3JdWvPZjRhNGNHyW9DiLZtW/JbT/Y/I6bpG6Y44qZRV30VKiWfc4QtkOKYoj9zDQpQs47RnryOIVvRbyKel4Mzj+y3tIpTrSFKS9Mj90UxeC+jKtEJf2a2J1/6RXgV7HMEwtsczif4MMpKYM8XY4bwhWsDn+zjD2ujLkzGBzeSZxBvCQ49NQLDMIcpqZMt4L8mMGVQ3sh3T8Gcz5FY4SVSOHaST2XGfcq5OP8AyISY6VNmJr2HMCiRZymfaqSKTwT2iPUnZSlKfAsxZxlK2xSj7dk8VqNnGu0P1KXJhWmJpabHKasdKYnodpwcb5Z8FJYXkxytI5Uv4Mt11BMrE9C+C/U4a6R1KQrjHff6J3lM+mv3KbWCqtoUNYMN37jiHjR9vLbHDVe5lKDOkOUnEbkvi9lTjyLGWOLiBTEX4HW15F6V+4oWHI5hS32aHBaWWOXP7HLGiuyG5/B7pm3LXkptq0KWnYpWi+XcmE89mbkcqaY21EilzL8Dzkpzns0/2FCTz4LXIctOWOzq1JK6Z9KWfKMJ4MNZMHRhuIFnZmX/ANHEae2hztvop4Li2joeP4Ih1As7K8ipdD+5CctV7fopfJfuZ40WmOYsw1aMedlJYFXj3FnCYoX8sziEVBkxk7szj5yXDls2Y2iowxy9o/D7OMJ2tFXgttUZ17jw8GW00+zHY644PuVeDLs1U/0U/BbFuT59y+RTW/6FPJCns2i5wtCUr8DaWmVFsWMCvllCjT/oqi25bM8ml/sVLDH9KLT6K8IcCyhQso08I2qZa2y5yf8AvY+lLfZS6/R4yVNrzsWKkakUSUtmFswil2OmXDLX9D+Dd10YM6KjQxTO+ifMjvZae/J8r9LmLQ3D0OFxwhqf4F9QsLBClVAoqmsD1aY7bi+yHOhVX+imt9mGrej6eWuhy1oyW9vyPOPcpdimNkf2V6tiUbZr/wBgVaSPuze/Ar1A/DRacF8eymlDSPquH4NZHE5ZrA80eC2KpPwZWJqjrJjvybeBSkKn/wDqPFx0xfgU8ehS5/CL42ONFNKmX2yJWEUspnLVMfq5LodunX9mlM9DrxWjj5lj93/Q70TDj8lRj8mFbMJ7Ox1iDEfBTTtGZMOl7DmjqZ0RPJy90VJ+TTV+DHLXRsdyY2jeBZplKYn9HLSz2T24FUv4Hi/kc9lOfkpLJUuhWpkuP2RjZWDaVFxcGvqNr9hSu2Y0ZT9hwlQlkdlt4FcDjaYvZFJZkt8rG7nJbQpX9nvHX6XGDWe2K3cn/JIiMuS9md+xE6gWFbG/S8ymn7QKG1JjI4jBWYXgpzkW8ENRPkWI95Ic6PZeBXFsvi1fuLyhw1cLRaZu0KnkdNKj8+D2Zc4QvwVGfI4Scoc8X0O/2HbPp5NRKHPIytLocpaZVufAmptscS68lPEDrCPttSVDkafp5Q/DPiaP+5HCTshtV7Gr/wCi8wnjyNNTS8FUQ4MLFnKXEtZMrPsfa7Yo9NR2PVJ9n0rvyOf3HTVIxhpjT4vSFOoRXJpSzX8mG5Y3GIZTi4pwQ4VwZale5SqBqMfAs17EZnA5aclozxHDdtnGElE+Ti5iH0Zbv2JnKfZnb8Da6WhueW+jlmmi+LwvIm5LTVf9mJplNaFEZTNxl6IlYIjS/caXHElyWotdsxGPkct6Y45Zex5/9BTiX/Za00OW8vkPyzA5WGKnEMy9jtvPgUOMjbav3MKI9y7TnsWco0vycaeHmzjTyUuNwtjh8locrlryT6XkUxga9PZekjLVnmvBnocKfyVdivscPlpdlxEkTyin0a/nAtSKW7NOBz6fx8FzaFTK5PZUb7O8Ct5NU0VFInk04RnB7nysWV46HT2XDsWdiwb35NOXHsKEzS/YVRQ6jJpMUkLiYWUO5oy8MUS7Wz5LUQUlhDhK2eyFdQKG1MDjr3FLm30VTaZjJyp5SOMJ6eC4Up9lOb7MimMmOUNHVDHgdPKKUpIoto45XyZZaVMcS5lHxI7ex7vwZyayPNND+4dcS23jRQp5eD8DiVXacjmNieYkpDVYMPJaSKR9ufkxspLB0KuP/qElNQZguPwbUuBzOCnJ0OGsMSljl4Y/JcjpKV7GOh07MxKZlGWoaPlD+l6J+rfkXwYWY2b7HWjofgfuL0t7FPTQ8Cwm2XGPBfGBewqw/cmXUljtZZ9rcTsvSHayxV/IqeUy1EpbH9LVPod2QmrMISrMCh8sM10OkrgziiozGzDUNHvZh7HT2dGHSM+cHR1A29KzGSnEIdPQ/EeTOGzLHLYvumWKrnwzdLuS3iV2Y62XGGYStDp4TH9WC26UmXstpFNWQnFDT2p7Fa0OawKUV1+lN6HFWkLA4UQktlelwNexhIw7Q89n3PJo/Ah5eGRLuRxDMPJcYRRTWTbyOUn+xrRUv5MTaPwZRnYs5Y6fXX6XizHFlcv2KW0KJWCIN4RblT7mNDzst9jtZEtQxy8Mt9DhpQhp1Zl38EqLZEvvoVbWjX1eUKHkXbOLt4IpX4Nn3bg+ILattiSmXBlChfufT0zKcz4MRo+pM6HS/cd76MN0PQpUUfHsRj1McpLBnt4LZ9XpFPHTR+PJsuMilG2cXmiUnQp2KGsPwJTsqMivRtZGUpyJSJew4bwcaTqRRy5ZZ90/sVcdCxM9+5TeXo1tjlSQ1STZpZ/7HHKL8sU+w4q52b2hysFcl+4oac/2cYzCK4rI/f2MPDMNUW1aZar3/T6Vxx2xel4h9i9oMNWzjm/gtJyp6gau1I4SwhQsIhzcnGphP+x24E4ao5TThFufg/5OWhp8uC+pL9jlDy4v4HSyx/TT9jEypKixJJjhKl3kUSpOst5H6dsbTbTdakdrCHk7iBxOBy1vyZiJEnKlpi9Lf7jhZa8lSsFqJehb/wDhHuO5yPNv2FlUhyn/AAPDgfsOGlXYpSuRPwxRy7+TWehw9DpZQoawXOO4H89DmMjjwf8AFSadFTSLhwU8NPs+GOYdotp7P+NtizsuoP8Ak6Fc/p7s+lbQ7ihVA8MxkUTLk3seaQ56M6PublscKLZcHwNy78CbnLZcWj5YymtDlRh5kdbHvJaNfshxGBr08ujOC3lMWVKHKS9LPg94FvJl48nTbQsX8HwOEmWmjFM3Ym3lD/8AgpT437HsRjfZXHDQsYfk+5OykxmBexlsiGYV+w5cWx1NncpHyWv3Hc2jwyvDyMUt5bH9PR8LZsmNG8PY7WEU8MU8RSkZzP6VBbOxz2Ulkta9jWGb67PaPH6S2s+4pW4M9bHocrkYWyLFPpdMbjQ5UUKGqXsW1/ArY7f8GNGUUh4ZlDrA7k1kUPI5aKr9x0h6kzp6Mjt6L6Q77P8A/VoUpmUhz0ykY0a/cqUdUOO0cZSxA6H7mXS6HCastql5FfQ2pFbtwfd30V74PA5uinkw9ihRktddkX2bF/8AS4p+5+T5HHRh4Y5ZK4xK9ym96PY5f/TWIMspu1+jl4nyP6v7F5MlQbZSWV4MaPq4ml+SaHWmKElg05ktQLCyauOkXH7+Tu2UteTEHsvcyW9Sfghta/Smh3Fjzl+DO2XORJp5ZkUWZmGLIvgVaHeoHZY7vB8wWlT8GnMDtmjJo3ZmZkryPDI8Frtl3LO6Mnwcqw+zdDmfwW50RZnkoQp1KIxB9rUDtujuD2HeTk/TTaFcfo5q0aePBU4KdKSrhijz2ZfRjTLTs3ODTv2MKo7GOPVAqWWYjAquCFoto/43A8uZLVZNNwx4MQ256MZ+B4InSFrexzKwZ7PloqqHLyKG7fQ1K32Tej6XhSL6hb/JNTDF9LZfSPwf8raMxa8FvtaFnLFL4tGt+SkqmCpwzPfZhRCF6WlhmX8jaatLyO3cGHrwfb0KPJXfsYSwNKhW8/gdpV7F1gVumheI0Z44bFM6HDiujuvc/YTtfjwLOC+RCf8AyaWezlUymK3U6gucz0WlocwjDwLHXZWkv+xVr2PlFpa/2Rar3LUYOW4wOGrR9UqhxY74un4FT6/kcCtaFvBlw5HOWcZb0XpjiKU/rhbFTWRfSY1JU7XQpmzE2S1tEqXaFfHsccV+7N5jsbtvNivbFLa/JWixW+x/aqFTp+5X8n1dd/ovpWUZcNew84Rm2ZSsWSmnZfZlGeinByh+C2hWo/BbwOeXZ8mZyfcSo6F2jUG7RezexXj5M9+DC7LS0KnkcPx0Panx8DlMRbwi5f4G09LtCwcW0/2fkyinFj+mD4L9TsUtC257NbPMDjjFowmaytmteDH8ihNMVv8AgUD/AOyly2YZbL2KXNiblG/5Mq0WiU9IpOmawz2NDufwO5EUkoRcu2xyuKowlMG9it1HktfyYdMuMCvZW2KE3TL7FR8IeRymyl0xtp7FGbK6FgpTclRR9qWFspsWbsyPLocxR/2YLiEOm6aKcV+kd32K1kx0aPYuMlKYb8HVM4/TtnHGyG+vBSTtH3PA8YHCaw8lLl8jw4n+BbyKU3gWMI/KI5NuSkW/I7mi3sUraM9CtPY4aHMYFY4joyQ/Vh6XgfuOO2KsOehQlj/ot9litMSnjn2MLA5ZZh4Ip0nsV5R8HvJc4IlVJhZnoVbQ7RrJVDnocNmezPLBbSv3HMkXhmIiTPg2smHo/wCVo3kcLiU4HfR7MpYHMjhPEHwuiqoynDnvs9i4p+wpTdMrUDpGWx5yjDyWslpP9hnN8WuUpxKdNQzk+T48UnyeeVZPgw2KVoV6M/pnBTWR3scaJjyT5Yy/Blm8QVOCpqDZadsUJ7GklSkSzLksyLWRqFaMPC8jhvI8xZhKSof7iy6MZY6alItZKc58DlOhwkx5UHKsKS3GRZ2fdFeBWkmjC0Y17il9lvZrZy/+CmJIjMCudYgU3+BShRFMft7HRUS5Fml0XGDLNaFKmRawOV2JtCtaLc0dZ/0LdiipPtx8FPJTeUK+zlp0xSngdNDpYOjCynY24RXRxmKlCuLf6YZ1MjqceR2hQREwjocOI/8Ao1K5YMNY2TyXY/VWGVGXgpqaFE/keF/0UkX6s+xlIzyVClpw9OIE1OmOXyleF+lxDS6MKW/cVZjZUWfV6VA5cuWJpvLwZW/A5TpE+RLj6ki22sHJ3jf5LbluDlK2z7nMexUSbpiixNNZ8kuWnApSlfAlOPgrlxz/APS35FPKbRSWZHum/wBxzGT2nJHhCrY5T6wKY2W+zL0hGZhmez4Zp2KJwb/0TMfuS2qstzLRlSconX8E+nDb0O0nfk44SHCmZFM0e4oTtk+wmZyOI2+hzI/S+KlFOL9xS4IXvYoX7ClPY/Ypil4kv0mRbpmeh3JlVJ5KaZZLgV7MQVVe5Wn5FS6N9mHXuPFLyKblCmRR2M6lCfsZRlYQ46MMVzcnyux+yRlHGJ/k8wyp10XK0JOe9i+lv/oqFcDuMjh3kcpua6NaLl1+mjMplN4ON+T3THNWVGS0qE7eyj3Q5bxPQ7RUYFe/0pbFPq2Ok7ktRZ8eSnGTde+iYX8jiNimGOHGMm7k4tp1O0fAqmRZU/psUqaFX9mtsUpmHZbTudC9SeV4FP8AyLhGFbFJluxQtNFwfPghJrOx7mjLqH/IvwKe2KsyfNbG5eUOspkwhrJgiYpFPjcCah50+xTJcVBrPscVDUyLSxgha8nbLpX5FC45fkuLMPZcTPY4W0TCZLqCqsUpGS40LKlyV/BFrI1MpDHLwl2hqUpQ6eUK9ip12TPEfyjMX7FxEmdyOloWP4NbFUUynpmlrsysSaVjafqhiVOjawbplWKJ2h5TcjtQYwXxdN+TKyJJXJxg82OGtIVYYqHbuPkhJaY8xD8GXSK5OSYeWVcKCvqv2GTVM6lM937mcQZZpwKt/pl76Pk18mEslUYFcfAohWUtGf5RhLJpYR0KF4K0LGSl3tGXTZf8ijklgqPwfAphIdrfgc8lgpaL1Bq4LawjeWXtjlrr9jY+xwtv+iIYpihfJv8AgcRheB27kUcUsmfBaVSKallpw34FWn0fc75RoTns+1IuR4clVMn3cdEQ0Yex+lPApa149zjKZSL/ANltHciupH5M4RlfuW0pYpTVs2XCsoc+RUOmKUYWhQ/J9MWKfJiLE3xuGui1UES6TE6MPDLjY/qmj5El9WF/ZqnI/DKaUMVqk/8AYoeH5HfZ4FKSn9G39VMiblrZiB3xdpFy6KFeWmX4evYUpYRPJKeUJX7JCa4tez+RfM7FWp2cVLyOFE/Al6VMObHbWfkpL+C5eSlMNvo4qJp+RQlVC9KOK5d2YeUWm/wZzBC4uWvyP6hTyayTySc1oX/GZF9MUz6sQhUrkvcrEChz7itq/cajiogU3hLHkaTdocJUxzxxPSOUeWS0srZ3aXQ1GmhprMjlu/DFHIrilDL9zlXJ3A8Ui3Aqyb0KevLLSoWvc4Pk+XJKVq8se5Z3KY/cmFS/spNWU1heOxQ1Y7/A8vA3C12XN0LVoddGJ+R0x+qXrse4l5Lf/sjnklKRaeujMZMJQYaLqjOx1v3LWfgxEyxz6eh09jrvwW3XwWohF8lafgy7ldDpxlYH7rsTlmN+TDyvJc5Y4cSh+TM4FTVIuNGF+Be59rdMuBemEbz4MRSHTOjCq+j4MLrsTTXZSWx6ot4+Bxs6sedFTSY5b3svEdncOclJih9mHSY8YKaow5o6MJUV6S5LSp+S40fgpOoL2hGJ/YxMX/JfqKcQZMvDM7kcy5TP2H4MTkfuvBbWjD/kdzUl+2hTpMuf0ws+5EGYysmT3fkmCk4U+RT5M/2WnxtlS/yK6mRfaoQpbUx4MYkczhmssanvTN5HEjvYm3pE+CJRcGzeiOoFjRCbFn+RR4Ff4gV79hpLoRxxk9mUuORUsD+3ZUj/AAb0O+2Onop8Zh4HFTA7ayOHpows6suWOkLI7ZbYxqOj3T8F9wKWsm2zTodzcluz2NYM4ZvLHEoubbZ8/wBD9XESS5U1ownJlKmQm9+C3mx2fdiD5aHmrHXRT2Kmx+lvZ9uvcUt5YvpVWfkpvD/2OYlMzxwim1UDxVlvt7PtWNmVg1kSgxMihr/0lvLG7V+B1FFN5Pn3Mt0byU5NEGsjlzSKU37mNFLR7J+DZhmxxx2KGlsyvybHnDH9TzBLmExUsNGUymv3EOZWCmOHG9lp5Hl4zA5StdoctqGW9jyv3HnJWmilsX/snu35Fq/Yw3ZhUSl0dZ8mDLMN4/oXpX8mlXsKXFsudGVn2HcDTcWjLVCvb7KW4Hbqhx4Y6Vsnj6uVtdCiKg92x2iJnKFaf5PkUN3IvJSM9mIhfko+5GlNFRg7kVPDPt5Yk/8Ag5FglJq0zHLRa5O/clJ4RltSjEi9/wCBy0LP4LapeTN/kVaFAqacsf08sCt4L5Dlp0KPBrBtwfTyTL7fRjfk4/S1rsUMy3/8M4X4M6fgtPJT40kzE48mXo/42Wm4Y16helzJ1Rxp/wAkX1sXuxy1cjtXJyhtxLJTVz4HD5V8GNrXuOG8xmIwcaz8HFwna89i9L4pKGJJZfgmGrHFbL9qPZMdpbHa/Yd8r9mPVilvA5c2ujCeUUj6dtSP6eSwxzxVThnKE+XpU/sP1N09QYaPDhnH0tTLyx9fgeHU9+DjMZ8G8M+Di+U/S467Z/xmxRx5OGv7MSUoLvQ4a0PNxyLl2ikrE55Um9ju8i+pdnKsvyYeZ7MKUxe6FTM6QoURByiHPySodmUrXZf+jVtfovb9LbdGLbgtPJaqDiLX4FPFaH7Mcm/3NOvY0rNMVN37DiDO0UiZyWkr8mWO1g+ClY/Jt5H9Mx8mP2MNVsUP+SkslObGkkrWyzCuDLUT5PZsd8dFOLbIroUp5FbiDRhm8vf6ZmSpbHfFyadGx0tmPBbSpnyPJvYlTz5KSzGDVmTPUC8yOVxwzE0Z2ZRvR8I2Y0zlfIwp+RQujJiLLaxBv+S4yaKgdO0K1Yp8mt+TPZyvY0lr29i/6GWWVFstsrZVUVOfcs0L0w69hJPjRjBcQkZUQNJKZMZk5SnhdIdsr1UjVD8tFoucjlrMnsiKVoWy5yz5OrFh2O5dGHkpOj47M5LlyXOhXOyuTeNChXgXqnIqWjE0mJSUPWR/VxUMjyyiopFJ5Q5SNi9zES5G2teBCs3Qqwi31+ituxepNC3RnbKZfFDrkpno0nDKawOfBujDyxRNJsf/ACkxyyjClit2i5JrEm9H2zBh0xeEWa67HnI3B4Ll0OoHDeRynbJhZY8ZHqil0YX8irRVR8GzMxBbRpfkpp7LSX7mcnGV4Hi0fHgeNitZFPq3+lRaK45KjBjDFXKo8jzlsdFSzlMuy0ZVrozN+x+3R7ijpmrFhn3K5ycfU9EKrS7NYKnJc5FCykPJlbfZly0zPRxnolcpkctZ8lLRqJezTN02XyX8mWUtsuTMUirMqvcajoVyVH8izTFWZPuTwKVNjhOUaofmyntdmVIqTTbPyY5U0XWfAr6MDrQ7TpmRW8yONv2Ha2WqocbcmJpCczRa2OZwmKGuy2j8ZHD7F6lNorY/fRcTBl6XuYVr2Fl/guLkcx0NrwXJ7M+EKHaPn3HhWVxdQJqONe5L38jvKHF58la9hzKhx0KIxJXHz2X/AKHLaNaH5L7HM35IaSg43mNN9nH6odobcqEogzZKeifVOS0uuxZwYduNl8uS/sV8YUNYL5O86FK43PkUJ0uxQ08Pozsx0aiF0/IvTqRzdjy4XuVKyZ42nk4Ncll2cY5ceU3QraqUcn6ldFyvkmexy++zLX/qHMsv0up/g+WZZc4FWSooU6K49eTKVNCvMjxMSPNfBnjxpP8AApSbQtTIqWR1EwYXkpOy7yOJx7nFQswJuMCtlLTKqx12y5F7lzKP+IrdODE0Z4mWU1+4oT/keWbeBz0KsSaqez3Q5aFDNfuU9pi8MlpjicIxxv8A6FK3Ioc5KdUKa0ON3k1T6ZhYe0OagcNoy8laZlOHJnKXgzliubMzYvnwWpPwKPTI7lQyowz/ALMznwZXYq5P8Eelq2ZQ7yU1VDl0zLcfpgcplzyoV9aMwPoXg+EW8QuzOjO34NMyh/bkysIdiN48j8r/AEW9opnKV0fce1Ch7g+Ufg12SmmWh2lI4/gdi92crvI0+jE/g3hFmIplKCkjI85QsFec/Apnoq7Y5as+Z2UkjDcFNMeP5OzD/gmIo45fZrbHcF1Ejizdp+S1orBhz+SnA9mHgpp0yuSoucC9muymsCjDPkWLUHgUXR7+TaOrI8jyRbPeDeZJicHuOoyWik1X+xRi+x0xyMy1RcMeDGo0O9Mp9HiEKItaFMYf6OJVIUNYMtWcnxc0W1UqpM9GsmsexZnZTiKLxaM+DumXdFJZN2K9expQxzOz6YMND+lfktNG9Cnk1DJxJ+BZR3Y5S0fBhFM7oy3Qxz0PykY0zuWjWUOnkvaMoQ4jJlbMOJMrC8HRlWmjKZqbMtZOqTFTwfIrxHgeMDtfwIUs/wCSh+5nLkpvD6FS6M9Ht4gqrjsW6WyFxTpjhcsxo9h24kVyyknYpu0TEGX+w7aP+M/gtx2fBV0ct4E10z7cwhx4F9LaZEOY/wBjmNleUUsnYqHkvyIhLMmv4HWRSuNLscNq2PGWtmcoXwVKlvyYZ8M7h0VSUon2MyUjGx2zK14FcaJn+z5NFRk3gh3TNQeZXg+l6MvIplWmY6ZlDrs+3A4S34LbKScLyW8/IoY3y6XkVrLPhdFpnlr3HU29jp4jIvS1rMmFSHDWX2TxSQpbyZWkOW8roV4af+yJWUO3aYpjLHGp8kvjMo+T6eWfHguab8HUNdMcrkpjcia5N3GkOW8z3gcTE+GUns4+z3I/CH0cvVNxn4OXpXKOS7fuOeStdJF8W/Sncl8W26eytP8Aoi8vxBznjqf4Ppboeq6kh8phsxkVRTPpadjt5aKaUtj9LgUvVCiMIVrQrSLk+pNnGOScEuqF9qqSG3S9x1Mv3H9SyxwmsjV0jGxy0j7l+5nor1U0LK/cezBb46NuLyYWDZUuhxdii8j6TPyU9PR9uUYyi0/0meNlSYVmeRPuYSuezLeWYVM12OE9ZofwzOI+R5KSUscaRhZ/A/dGcx5ElORwse5rPsZ2bMzQsK2WV2jGZ8Cpqj8CTSyuylGC4te4/pWEfS4p6/T2ZnaMTP6L4IbmWzLtMyti9yWj7u/Ba3JjrZU78GL+RwfVdIzKfkwypMu7/TSrods9vkV9i9mOYeBwOLyKrZ1Dkwse5Hkzn2MRUjns0xy8DwokzIomz5Fg+Gi5Y8YH7SY7KY6V+5la8Cacb/R5cmz/AMz5K4rKQoaz5HMKb7F9ysd9iuZYlK2ZnOjGxU8MeqZULBbfY84R2i5HW0TC2W+hfStCrjldlKMeRudFxaMukYdT4PY0vgzsuMGxQnvsTlbHKcfkecJClq7LrBp5LWkKHstCwpRdUOV0KUrF7ClCavBnIs5JfSMQLwzKKaKkp/sZVWfa2OEqOVraRKUzJlC+4ctr4MrJhiiVZtaHr5Rhb2eKK4xNbM6Zb4ibRUWzP9Dw/wBhYFA/MCzUeSmqa8D0W4gVt2jD2sHvJh5Kc/sOfBMd+P0WditKPMj+DLymPDwOdmMMuTdQN2K08eBSh412U9rsV6OKiL94L6L17HL2QpScNChljyjbj9z7WnPYoVkdyyKSaQ2oozMsh8kL6XhF9mdLZpJs4z0kLGUj4XRlPBnllkrwfa+OC1FocpZKmjChewqWR1lGVs+5Mbs7tmxT4ZjZSgx32ZVmFRh4L7HMKZ6NOGLJ1A85Kbyzv9jTgecmjBld7QqiX2TEJQUlQtZFe4Hm10Zw0bdsfz2J25gcpPZ3DY6bwW1grLJnkUoyL4HboVlJKa6Ptpz2ZkeHKFapvUE3U+RwkU3SMqvcUcl9MLfk40s+SnHpa8lOYLhU2W3k1Eew/ZItL6pe2Y+5PyKEkP6cN+TSlopZfkt5k+7S7OUNaKux3x4pxhJj1HycYSVpvQojLZ9vFZ+RJtZ7gU9Cjp9nOXN+V0L6W5X+hWpl+B4LTdQNcfKyTynLexemlBCSwvg4/b2KVGv5I9L5QlOBepLMdH2xLRxlbfSE7efBynohpqJ1I4ShI5fJbmZZTmhZhNoztvPgWiMQl2PDowoyJ1hlztGlKSHfK4el2R6U7/I0+LahdCT5JZFejj1Y+7MZQlL2Te9CmMnw0UuOUY8C0f8AGZ8i+pW/Ycxocvv+zlK5YZayoO6kUufyIqN7FHJ4RV2bNitbHSyYwPVITsu5KuV5OlJm4Mpy+5FHLs3oUObNNNQVcQOb0PDuB4VoWiotowKbmD7k6QqZjtGZwONijlE/9GEL6cnKYdFJfuYm2zEDtXJiaLllckoT/wBlPft+jlbRvJ9rwxxY7He0OEtFFRKs2amvBrPhGSu0W9exnaMKjL34KimxzNlqKPt0zCwOU9llQV/otvHTMZfgeHnFChF1Y23tGHmezDHL0ODQzUimNlVkysye5SyOItsTTexRUyNODikk/wBhYwL2bM9G8MXlMuz7fIqMxgXlirtmdo5ZcIwx2y3kz4P3MtQvcuHY/U5bbfuOHxtpFQqkbfHlURcnKmogpsdzkaUaeDLyWtGXgcUjehTGhQuhVo+V5LapicMr06FbvwYeH2VA4XZURD7FE5Rsb9OjJrKyfcrgxKljG4mksjceDEZPkualmZsUv9hx0ciK/cqB2huVEnukXeOjqSovwKFoUaTPk+qVY6jH9nyi1FLyXKVMeH7Dp7Fa3oy8DqILRvJFYHnDWi+WGzL/AIHhGG8+DX6QV2YeC+Wy1/BvZTk+1KBbVo28mJwsnx7D8R5FgpNGzjKU30hzef0V5RsX1XDLSPaz2+R4cR0y+OyOUvBS4q/cX1Pvot7Kuy0h0+VpjvUbFl/gz2OWll9jxTRhqkKHMNocrLLhmqfgdtykOYLlx1CKlQhR5H1L7Pt0kXChn2rPuJQ0OF/Z18SfC6MtwxT0+xXt/wCjRKY760byK07fkWVD9xUrsyY2O9exlmUiWm5hDh5fgf0p4R8l3Avpizdwxwh4VjrswsMpJUyWuWte4rfY/gVdrsx/Ytz8lOYLa6HiyHUMdLBTTcsUNOF7Dy4TWiooWh28GdmOtChTaMcXgtZS8iiaSFMwKOvJh5QohQKG6j9jj9OJ0OVcs6hIzuRr1LXY44/+gmXt+w4bv4HmYnA003liST2jTpEJctagULM+RSqwNObRTi/9l/Tn5FHH+DlC4xY7WP6NWkhy3DhdCiNSVyWYJSyKXSXZhZYvUnhnG9jt3D0Sk3dRPsj7plt78D9LeX/0OeNp6FDi56Kba0NqHCPqh2VOi5pIprPuN8Y0tkqKQ7z8CMP8mxxECp2O+PRlbOXwKIt/yj7t+x8mUcp1RMxHyU1GTlHYpT2LDmNmGx4deRRxlWQhp8uRlfuKOPJUjCUQLGzayOlv+jLwLqIG+XR5saTQoaMpiqkR7M1RhVQnCUp9ih+ShzOfB+Rw0og/Y9oFfSHb0dFzbF8FvjPyZbpmypotyV/oykXy6KU2vJnotvLWi0xayRm14J9i0/2MIpzKkUcXkVvKLUUfa8e5befDHNyWtH5FDTKns/J8FPo9zDKSpr9FffRiC42bqC+MFyZVNCnwf+Q5RbbcFN0P8GLbFHFMW4kVrDJvlXglaZmMiibjY7Y62YjI5eB2LI68jqb3Wh+/Zl4MxBTWjJnfsNx4Gk9o/JjLEU2i3g0cvpZXGMH3LBovspPJpZ0OWoa6kir+R1H6ZQ4iZnocz/B5Pu7Ka+ll+fI5TPun8j8MS9W2Z/kcRhFPfZh/saVGIMfooXjsT9hDpjl6FjozFDbuxpRaGrZlG06MtDhpJfJnfY7dJj+rzsULseCPdDz/ACO9Dht48jl9svyxjzab0KngtbF2hX34M4OWVSYs5Ysl9odK2hZyZ86PZPyfJl4HXkc+D2HD0LqEXCM/yYPtePce5S/T8DmOzMWJx2av3FMv8Ftnu2YZgX0/2Zd+DHR8MdKSk0YTMyXP4PtiaLb29D8MV6Xf6cpWUiU1rwOE1clpu4H4jow3aOTr8GGW3TLXQ7cX2fcsFTkbpspuqLhwUtGf6MvKIaWUOk8D9W/BfqcFRmByuRjS7FCiRL/Q7Sk1svSnJrroxNj3BbQofnI7mXHRclS6jXuZNxHuPOymlA4xMDhqo0LyvJpye7FbM6FScUUkb10XlMVOzKHNXHcmc2zJ9rcQbqPEFekZXGoZ3YsZRlzQ7Vm8v9MLodJT5FMtP4Hen4N4XRh02XFroUXa8DtKmZejKUMpK20WnocpMUNP8oUvscNaKq/DJWIHjrot68IUynBePyX/AMkyvLK5RMF8uVvoVL5Y4HDdNPo2X4/sy9f2fVq0UukKstCaXRVrPRT5Y9jDt9FyqXgf2uEzjKfGdxGjl6kn6YqB4iVroxn5FlzJwlcsIWJn1ZFXLJbV24HL4qS1EtIbSzbn8CiXmLG23vybymZ9NI5U3TFNxI4fZ3Rf1T7Ux32NYFMovRl4ZkV5gWpXHtmJ1pih5o+BW8H3YfhDzSg+prJVy/PgXkfsKeIqjPk5W6ovz4K424Q545kxtDiKfsOEkL7dsvliuxw+OF2JQ6ZhqYHnKMu0YY/CHOC2zbkepRlq0K1UjyP6Ux5Q7eCJ2W4FLPu6QqdyZHD7NuC/9CpKx+0lun7GcLwOHtmU8kKGOEv4FFR7itYY/KRT6HCdv3HK2LKiTKVikpXEaM4L6PYeNmGpcnFRsWN9imm5RjvyVA/Zl5gZ0W8iz/I8W3GCPYeHgrkYdFf2V17GNDo+GPwY3JS7P2Mfo/VOG8FQa7Pwb/8ASayxxdClrAsjhrY7iD3Z8sdIaZC3BjJTgVIt4Q17jo0vk2qLZ7PyYwmKeXF2Yqhv3MaMrB9yplwbyawX2O9mckpzUDxRaeWWujJaaFDaoUNXJb2+z6ex1xwKGrY7k3hFwZ2zOWyHcsft+i+nfuPwdCpbLlSYKlFrCHcTdnWFoVKb7LqjUEQhy+hbtmD7sfBfgupYvDZSkqjC/Sq/cptfpmIRlqGYdPwQ0nnwZky7LFfg2exhrI5gdq4Lh0W1bMProcNaKcyZQs4KTMFQYWS1P7F1LbK2b+p+S9s7FuvY0zoczk3g/HgdLK8nwip69jS/IvciVhjhY/RuH/A4hQXWC3ghe44XXR7Mc8X1k3kuWKfBXuX6nBhKl0KOQsKEK0O1lGNvz+lrZVyuh/dtGJ2fa1kzCvtlRLn5oqpf5HKeDHfgSrQr47FhWxzNyU0kmzGhwsrofUp9F7QrehUO9FqTDWB7yy1yyjstPAhpPsroUdGT4SPaGK4g0xTy2Zi0h07Y9fuOJutmUK1M+wkllMpzrHgeUlJTeUVxRaQoWC1lCw/kdzFjiDDcQKEz2a/gX20xVSgU8dIcpsdaKaf7mc+BxoahIWaMKzCPu0xRCh/0O4XFo+4prQ45fyWlcr+BfUsI4x34MJYX7CvCL6/0cfVdKLRltNHFR1sft/otKKX8H3PECpKJ/oUNv1KxKUT6ZH6k78yfCHPJZ9hLEI+3SP8AlHyjiuUzHk4el8nMPbF6eMfnwW99HGuhRCuC+XGTj6Yctkcv4g4qUr9PQ0v/AEGVrwP08l9Lk+rc69jCU2YX7orpaHLdjh9kclstzX8EdUOpfsyuKps/4mtiwz6VleS4KXK6wmOoiCHMilT8HKuVsiExTdvtClZb6H7GEOuhRktaXkpmekcWn0O2e0f0TOGWsI3UH/HfZcuvKMn29i8EwKV0VCsdcjWv0yKVtmB30zVslvsUTgttGUK8l1Qr7PuWx9T+lt23+5q0ym8T+ihFw3LLtyKW8tigWPwzWT6q2K+WuiYPlspvY3Pfkq3JcvIvpZge5NxBlK32JNUmVFNF9DyOEKYFb0K+hxODLuCm69zqiocwT4Hc2O5hHUNnwYx+izsVZH9SM8k/YprR+SmnRUfJmKMZHKRnks9DvMD+qZLaKmBVGfI8bRadCVMULLRXHSZhKkItPKPtTlwLA4f8mFkrrwO6n3LjAqUxJSViSR4LmS4tj+4mFowtCqLY3dp6OV9m8SKU1KfRMSfU29FJixb/ANFyK0OW8/pa0W4wfLNWmLA62YdyZSyfJiBpLyasXmWbps0ZdDxkqBVscMrjGNnKW8CtCumXOGaH8Ch6N4RWmZ0R58GNQKU1RvEitbMtntC7Mj+nSLmBUplFIVzBPYpttstPBXfgwlMmEik0U3s+PBTVHKEi7MZkz2ZWx27HM4MvB+wvcw1KZjioZqkz7f5ZKkeDaNmsGbgztlJuikasdPDHqzwkfaq9y2hw2qJ7YoifwYUwOLFbcWZbkw8e5naHv8IvjGWVcyccYgx4G2ng7wU4ktPJXFbFKeX5KXgxqTaHC68/pcuX4OM8ncCnllL+h4SLWuytolcnhruBSmobL8mXNiqKHnP6LKz4Hm/Ywsnwi+KKatePczYqSgfsOUsCS8mHlMxFDmHgUCiMMdqxVlmXo25oV9lQYWR7wZsVxkqseR0smHgp9GGx3/Q/b3NIVqiY66JSeBz0U+x7iRy5mxZRMdHGbF6ZpQV3/wBn3YRvCNYM4NZb2YWinIirhJbF9SpfuKGkO+KxJiLUWKeP9Cic/kVRTMtOx/Um0mW/6FbdeKFlxI2lpKmhU3b8l8WpQo4mqPqVDiNnwS+PbGlxqv8AZTVpi+nrMFtaVwtGE2oLu314OiuLUNnH6bE028J6F9WJOPplVHWz6uOUv2g+mXLSPulNedCV1PbK5S5F6vUpTWENzcrXsKkpXt0UkNOJiCfTEP8Ao5SkoTNUPNp/JcOUP6YwuzrHkVxa8GGJ1hkqbfuVDnwcnPK5HlJVvuy4cP8A+D9LdjpjiFjyZ/5f9CpDlK4OLUivlI5XHBhqi2lln09mcyPzBKTz2X/JcYMf+yas62fgwtlpqjjK8YRtCtGXs0zBgcdIdvKNujrAp7Ra9V+BatodPInTs2OZ2XqEZHhyzY/Y8jp/sOUl0KIbUimbXkxGD7sv2O8DtuFBVZ8ihxnyKFsVvB9qFb0WlpGkKUjqPkxJqmiEzOGaLmo8mHh9MUt9jhj1A/pVOP5FawzHk6o5GVhi6kdI6+Cbmj4SMtT4MZj9NuZQrbiOhW6RFitW3+mMoo3j2KS2T00P6uux09GJmP0wpFHGJSMJyY2OGteBfI57MDlvD/gzAm135FSLXT6KTVGGjj8jxsrtDnUCuTejWEe0Iy6TLRnRhO0L2ehxChI+1FKH7mJPyU12V2xS26ehy/SKOJT7LS437jwXUnH4FhTHZ9KWR4Rj+RTBgTXQpXLBaQreynsx30WngiV+n0vr+xSnkfp4q4MRSH9OI3Jluv6HPqyS9lGC+M/sU1+6NHmEZ2WW5sUO78iv/wBJmZPn3NSyI17mMspGElMF3aXRUOH5E8ZPaT8jmHKYor9zJvJV/sOU3RSmGXcJHzHZc0O0U04Li0i5yzG/DGqcs/8AhYrWBWZKukOKx5MO56H9KyXODC15KjKMGnYrej3l6MaR9sDzSHfQvtbyL6vJl7WkOFUnHKuOynMH2uBz2WppjmLTRbVe5cqGhpJZXg4y3iDjEuyvP9C+lZZYvpf5kUrCkSl67KShnvPgtKIfZgj6VUncSiEuxZVFOKfgebT8DjjrsdO0x5f7GOjJ7+xQ4gxti0X0Y0XuzlKdlN6NLJhLJsVf0NTFew8XJaMqzD/ktvT60K2fgt8sClJS1/BVXPY5awKZ/IvpmEKazqOhQpr2MRTF4QrdyYmx+xCTyx1M+w83JSmn0O8P3LjHYoh4Ha35LeY8H3bIc7KjKKXZcocJnKXFtCi4onEyU5teDOvJc/8AmOoifImoi0cm8MiYuSY5WvYhuYj/AGK9tI+mlHuRPJaFDV0ORfc6OrQqUKtIyqVGE4hihLoWnI3xS/JU5o2s7SIXHkmv9G8j+E4kULZfGIgpzKSGk05RzpKh/aUsN+RqeOkc44u3FyK1uRTFP2ODfFzLnHUn3K23kaltQh+prZDnjHzsqpcH3Tfkbr/2R0ob8jvE7geEp9xfU1XQq45X6fgafF6OMrjn2FCWmP7nN9C+lMlKJjyPCHDqUOpz0ZX0/Bif6IVSmXFMWWqFDkhKYhn3RMLBKpPwyk6gqUx3tFxgURTk6mDPY7nB0hTxwK1g+UbZ8ItIeVSRmMiXl+cnuLNL8HSL9VQQmvpfuYimU2nY4hyjCyW0KOmYagWIcCd6FdL3MtizREWWvBMPY8OWKm5+BOcr9MxaMxT7RmI+ShwtCvpFSOEjE/gUNfuTDcND+5fuU+xWZP2MtRI5im3vRHYvT/Y4g1liU6Z9yUMa+Ta/cUt/sKex/SswReTOI/ReC9pHyKWseTqRyzKwxW4Sfk2PwbJc9GUP3K7O7FTcMpMf09nt7mHllyjllWhY/j9HLHD17icTZrbMIz2Ksnwj5LXLDPumyky5uRR4MFp1I9fJc58Db8F9+D6ooX0pWUlpbQ7WTKwUmP2X6Qo/kWoKmpXY8YQ/DKZMNHuh0xTOF+lzgroUqfwjOyJHayKG7dC+NG1hn4MtU2KHOi72P3OX1JX79jl4KWDPZbz8DhChWp0RKWUZ2Z10OiC23b0YQ6VSOemfjZbymxTDHkzNlLoq5fkpw2mspmuKTX6VQ5b1ocLHwKmhWnoxciiP4MFNIeXfgy1ECp5NPZ9qQ5byh28C8Mw2O0qN7M7IF8jzZrKK7FSqyJmmP/8A2MP9JkUKbbMrBTM/x5LSXVj9SdPscNQ17Ew7Yv8AlSLeUxX0xTOiuTRMLPsYawYWvJV3IoVpyU4suW2l4FnlAoT2L/spN48Glhm8exTkqpIUw5HE35kucvwKkU1sU8Yv/Y5TwZWIKjAqwh28ybmB5zAvA8/yOm66K2PP8FqxQ2rXR8jjyi3occnco+49md0WpwWnk90U5k2iuOhpp76Hm60JtvHsP4RTcMpZjyfds7leRJJjt6M6QhTP8m8vUjjyKfPgY50y2ssUbjFiw7KscxboVtUhaO4fRDUZFHS7KaTk/wCVD+50YXKzDcDhKU/JXJPBCTXqZa6yNpq2KYxBzhPkklE30VKhM4+ri8ubHNfV7exSUT5OUL/ilZnz0ZjQvq5P8Dt/v4MNS50jPqqcwP1eqkl0K3cPQ8a18jhTT7K9KlNE8W9QJTcI5Krf9nD6VT8ENPLHPlaolpOP2F9WF7ENK60SuTSlPVDq4I48eKdbkWKZfhdifF+MCnjlNaHWHBbVT47H6Yiu/I7VzvIvq5Wn/JhTBmbRa6WUZ37H28b9xXCrpCFTiYHPHL7kxlLyVU9n1NOz2gqco+q4THat9QTNNxiCJbLb/ZFe46Sgc+l2fHsU6zgn1dLsmMNQPCThZNOJO+zi1y0zPZh5Rt50KEOUtn5YnW9QLNmW4FgdK2ke6NbMuh1BiT4KZbd+Cp+pJCjindEStFJmzDiV4MMWdFmTHRupFbw/0wtyKEr9xZ/gcJyjdizlDiaMYkwrH/8ABykqZaWR7wYmDPIuC7FC0bt/o78Hw/B7ildGrZvAoWhTCSG1OFgdohqY/wDp9q/b9Fa2iWtmMoqMsuH+RQ5RcbM8ra6FSwZmaPkt7HMDt7M8ShGPBEPAp9LY8/gpPHhjtdmXmMHhpmcy9Mf/ANH4YqeRU4aFMXJ93J2vA7mzGC26Qik0bFjJiMirUjlNSfVLrs4vyL39jHYr7Pls/wCRu0YyL3g6LXQ/qiWKIVSKGzGzJhrB7mUqLbzsU9ipWxUnrYraHKSvwP8ATo/A9HuzLvybVoULxs2qMtW+hTGTPfgmy28CwrK6FPHEdP8ATWRR0K+jWWNx2ZZmY+DHZSy32OehZpo+CmzVNmsmqTL7Zr4N7LWiocMUIbjjguLTMaH9XZmbYpW2/wBi03jpFSsERNHGmrnBjRjZcxBhKF2LFswPMfgw8k5svSMlds+rjlIto3hFNVRlZKWkxUsEszmxy3gxH7jlrl+xcYMxBxtZKTctF8VpmXT8IxOT/i4Zlv5gf0/+gc9rZhq/BocQnSwUmj8l3joUvHwKXOzo12N0cXijm+HJNOeI/Vy48VeJ8mlCPu7HiV7j9vA/SkacN/wU4hjlPZTbqDQpTehYs1an+T2RqMDlRa8nU/IreEU1cGZlmUXcsp9mHlDotiyrYpuDKM6FPRUZ9h30VX4PtVJDlLKFVyOFX+y4RbWCmslPS6HioLY48n/FivsuXEMzKozaIns+BULNNmOTmETWGz2EqqWOemY68meVR4P+PWimtFKcF+l0ylkcpZQoX7z2XOZMyqOMvUaIVX7i9ULBay+LihfTERpFNa6Yr7YpbcwnBhYXTFD70zj6llR0K0oS8mGWsI4rPeBVhJ9/pa5P8DXJ8dP+i29luXHuXF+3Y448W5XZVYOV9MctoT5KP+P+xRUNefcpemI2x3OWckoxFjj6pc0oixtXTZDTr3MPCWYE812Jwv5OU7c9D+m8GMJ4X4Pu2/JnDJcTJ9Las+luk+zNwvJCuyOSIf8AQvtFWmxv1JOfb3+RNTstPLMr6V5OUVgUvHwL1REL/RTVixOe5NLIsWmP0rMmlk+1aKmB2tDjk6b8H1NOW3sptyxy0qIU7KjotbMqhx47LQ6pr2KcQbqBUZbmP9itUvYd8kVpi/8Ag6cQbMwW1TMp2Y5WyepHO1Aqe8mNvo58uT5R9PLHGtC8ycpbpop8iyoyRK/J3nx5HLdr2NZk9zDz4F5/+GUhXkUzs2jCLbeDsw7SHE4Plfpak0qZpIQs7HLNfwO+izYqkXyNUbeCk7E4duOy5WNjlY/S3JeVBhaH5Ff9Cl4RfHaHEktvY/YzgqzDx7iK6OxwmsG8oXwL4YqGJvSNsuKT6O8jnr3FK4lzTMpSZZEcX+xhCSjA4oeaOUvoY46Lo06N5NrJdD90Zhx4Moty4NfpiJG03MjxkVOEx2nHwO0K+hSQlEKB4Kel2jDVmpTQopwU1odit6LbFFFJZMMqhtrCM6Zl7N4M79hy4p7HeJKjstfpadfovkptWitNCtXJD5ciksiairLejYhLpMeIbow7TNMdPYs5keTuzdwYwTmB5dryONouCtKTMyjNi+Rw5HTce5E9nGOO4G6iBy05Z2XHf6K2oHaWF0XCpiyXQ/gpJqPcpoUyrFXKmkfb5HLds30UnSg+2IbMSrHW2fahxRSxPgwQ6rvJ9y2KVGTLUyVP5Hb0fa79h1oe7N2Z0fjsV8tmVChj8wXNpC+q2vYf1Omxyksi9hzFtMctTHUD+mJgzypeCoY0+/ByvlNmqnyZ5MuXjybyaSHSUmGv+h4Rl/g3sZrY/pLjBbyvc35MsX1Ol4Os+S5/Jj0wo0zMSjRiTDiGTKWh3hmZHfRE5gzvQsfJTyWoFEGZ+B7mBQLY4l5Pgvx5Fev02pf8DixytMyxZwhSycQjKwL7r+R2v5HDTvyOa/SnhofpcGG7Qnk1LL/kzJSeZPteGKl9LbNrP8iTq6G0tpDcwm0lNCta8lwv/SJtMf1Ykpp48GIhHNqPj9iOPLb7PtiH7l7aJXLX5HCd/JyjvyYmW/Byhtml7GE/TfY+PGXCi2x/VMNvfuhp8nKXSqRTySltODk/S+L4tTMHKE+Nzof0rDj8MytnKk4YvpdQiHDtCfqxeEOYboUSfnBMt43I6jJ20mfVyXL4yfdMteDkktNbHKWhpRp/kaTWH/A5hXFnKezlLTtotPlEf2LOWNqMI48fU16W9jUrXRbmkatiSc005ceT6omRVhmUK0e5k+3opN1PRg44wY/Sux4dDtO4PYpYfseyKkvj14PCjUG9ocxopcWjBUYHhlQi5uB5yvA7qRpxR9yzR/yyTPRhbY7eF0e4q44fZl2ZH7ChoyjMYYvcUTMMuf4FFFe/RjZUuYHKPudmdscWZYobdm048D9z/wAjKorXwOeJg3sctqH4FaNtSuhFT9PsfHkrwYiIPhChIguMjvoc7MdjhvPkjEEN+SpwONFvaPdDpWXOhwto6PyZd/AzB+PBiUxfg0OxTdnw9GIVmYHKZvBh5g+Ctye1F3fgziD2kWbQlDwfAvEiyW9oqMo9n7Gj2MfyOPB0P2MuGZaHjCISdof0rRu1IsO2KW2VDuej7Zp9mXSZhLPk+2KFD0xS0L6YyjKZfqIo+4UpqZM1EDxn2Pg+TCVjMxCPhE/Sy2nXgl4orlpm2ZR7MtIp/udQY7Ic4aOk4MOjAlD0xX0PWxQk3BmBe/kpL9zWTbpDzgcC+B5TsfqfHZ+DCdvpjrLPtamS5GX1IpTUHx7Feq12OLlFpspcr+C1ga+pxOPZEU7QsZRvJe4N0zX7GlTY5gXiy/Tgs1RpuvA6SoX1QfdI8ZQq6JdnydqBXI617G9mYP8AyMN2OGv/AEC1MH5MX+CoqOyuT2aNKkaiI7Mt0zCqR4iz7dIrz/0UspjuMdmXRdX5HbyvAqWyuWIFPJ66EnGS4eT/AJItqvgUNvJmans3TX6Z0OEYn9z6eKc2YnIqzJ8DheDlDY7WGynEMcNqYKa0dmimhqE8H4FTuDI1JhCzkrkrkUpOxzDpCiMdMqGqMz/6BwujKpMk+1SkhLj6bHCzKLTwbQphSvJUqDlSeRkprXgSxX9i0hYOUJKx/ba9xxy2U1pmx0rkeFPgXpbuCr0YfJL+R5/BuhtNRKFLSryKZylXghfS3Jx9S3J9PGYvRc3I4iPcank1ktcXnz2KXbbQkm1XEzdZKWvc8I8X5N7HDeF/RiTlTPuWNn/F3+RJQrfTFDUNnCeTytPsSlqXGvYqanzI55JS0Jcny5JJi9MK4wyGlEp1Jx9PNQkm8o1ow7HKmSuVtpZ/ApmlND9hbaXuOU9+RfS3TOEvlno+noWKL0fUuLlNdlLsU8W9HFtNU2L0tKKycZfeEPLlj9xynVDTntlNW1OxpSr8jmbaPpaFhT4HE2YivJUq09Ia5JZehxxiH4H6lgrkzkvU2vTx2ybFXY5TVlMpmnkyjOG10csE5kwrF92SoVGFDR8R+RerjyrkuvJhb7MTA3VmWrLb0REilvPkUPMeT7sIVH/IzlJ4KayzaoX0rL/ocJ6FJPqkqdFRT8ivCLeWKWsldexlqxUyJ/geTM30Kk69itFwj5HX8C+2rFfR1ZTejGjWR+qFNCrXYtqin0b2ZdCnt9H2xM+RvwYy0YK2ylDtFQ/2MdClYo/AvcUNWvIsZevyf8WZoucNDx/IpTZl0kY72XODdQaqDPRjBhJ/JfFrBv8AYUJ5fgzozjwOLMG6LYvp76HoVN/IlOkduEPGWKUlPyL6V/JmCmsDhLQ8WkhwqsUyTnJgxGBZtFJKRT0iBp3jwfdMx8GMyXGUKWqs0smYtkLiJucMzxp+SqSfRfRgy8z0OkKe2KWloddGsork4gSyL9FeGPwk9G6MpGy08NGEpK4pEO6FLamROMOSllC8D+60RKpOaMLZttGFZCfjQreT4Q4OPkuXjf6U+itjhrBr6kilkePye0C+7R7o/A84Pu6xQvN9i+rjTG5mEymswcqbtGUrfjwY0LGSnKrorkL6teS6yW8HFcoaalTehQ9vyKtstpSx5cpmYrwaVltlCpZYp5MicJC8sUscpW0Q018nWDNyxLOhxB+Tj7IzmDj77P8AyMT+ws2pM5Loqaj4FoVKILayK1Ul0kLLITbEqy/5PtdtFPCRiL9zKoUJZkUtDmNn46K4tX7DcK0h1Etns/I4uCc4NMuJryf8R2xS4t+TGGY12NPjpm+j8+RpRhjT7IXSkVZZCTpGsUKPVkpxCK5Mct4kppRORqf/AEGLleT3Za2OKFDWxONx2eLFN0X6qHhxRpaKaod9mv8A0l9s7wKOOhW4dC+lIXhDtdC9TyR6f3RjolcnPwLSg/K0KV2Z7MxMsy9roy8ClrAriGhTxbhjlR+T5FHkw3XhnK0/UoE5Wl12W4d+BLj6ko8kqKo0vTDyzK/YTvxsd7OSTqlkaTj5jyWlNIczUPKFevc+57RKlaMYnsnk+WsDlLApeUyXxwpGpz7ChJZRSw9H1ceWfJyltJWTtx56KTz14MclDS79z6lycOejjK4v9xu1rAmlmUSlixrlKy85s5NpXE0/EiUuHE2cfT6b6ofq5JzA8rGBXloy1c4ZLTdDSSSrH4HMPL66RTdJeTKUT0R9VJ+S/czoX1cXbimcayU+N1vspbXRM4nFj9XLlyaS66Y5TcOBp8uVJL+znKczI4hfT/8ABJTU9j8Mpz6TWfJy9PLko9XgurnZgh8vYztHCefH7eX9DiMeTOR28+4/DE5Wy9ITU22aFU2JRNG6Zh6MCicTsl6P+yknTevBSMYKUVBVQmX5KbeDK2fd5Eo/lCrjhkz10Y/oidD3MChM3THex27gdxaIVwzrAmu42OYyjD2hVx2dyvJWhT346NnZhOxalIWnCPPwOXqBRDlrZTTX4MZQ/SmpMZb8lQO5aRy+7oUv8FctdEv1PA9qZFj+DCX5K9Sr3KWH7mJo+Bw0rMT+5SQi+09Ixn5MLOx0KOSdCtWU0sGsD8T2Pyh4x7mFlFTQ7yZimPqfY42yWn2OvI6aVEybcIuMllmVMlT2OJo+5CuKNLBTz7lp3PRSVplzTY8KhW2/wKI2P6djmRew4b0VHR4Ov3KSatZkUzTZD6FMmJFCSt9m7+BJQ5SEo0iqsefwZmoP+hT0Ybtbg26KnfZc47M9ildDzjcDxQ4eFI5fY4/2O0jOWLGEaFiipwOk8bP+LwhZV+C0vyZ/RZye8+R3cR2O8NszI83Z3kVFJqi/Soa89ilChdH3IpvRpUVySUJYKjZ3kuTePBOMnKHihWPGjDTfgWZszNIf0q6F9Kw9ourHK/g5JLl/Bfkvz0Nrj0cj40zSv3LYsqIQkuK+0UTlC/8AdHuZ4mIMRCG0xQjLiPBrJXGGOZoyOGWnktqh5VSOXGT7nktQ4Qpcmj7uOi29dGEk0JszcQOHFe44jXZmcChLJmNCyoZ/xr2HaK7Fjs+p9ip1HR2YyYzJekyEvAko5S9C8ChrIo5aHDmWzCdGjEStmdDlMdqawXOJPIpSsbjSKTi8F2LehueU/CNscJNlpfgsxuoOMRY/S1DHMMahtQhQ8DvY5jQ/cdRKHEWZcts+1bE2nN/2UlhIcRhlJ4F9XgUtd4ZE7eTi42/A662K1+47nJS2K3kT92P03D9j4bPte8D8SfJ8DyZx8j9zCwycaKhwxTdeDLdHsmOapD6TH6l3mNHGYdvTLWUOJgdRT+BOUof9HH0vK9/I75KlfyKF/RluFqik6gni06XYofLC0K7i6SKjc2XVLz2bpCccbsttWuhepxSFSVrYpXF+lQcm1ySshcU6gZlWkU1opqI8ocQq9xKFh7F9M9ltLRLiVD/YV2p2cqfBwvmzDqTlKtJ+SnpGdvQqcw5pdD+5KZbpiabUtsXpSy9mHrYoXFpr32P1PDRSeRwuUxQ7f8Gs/wDQlCctDhJuiG+XaH6fVh//AK+RtcuP2zCnyfS23XyNRiRyk17jicsvi3IodJexkxEQKOzpL2NfyU3hm7bMpWYaob8yfJyhzNmfeh3Fe4kheZyjRhqI3Iqi2bwdjhOS4bab2Vdk1mClqcsxP7ipyXxk0KmpZSStjxagdq57Kih/9ilRKLukKYwzLEK1hC8so+4zv9MrI/ZCguVHufC8ivln3ONOzjeiuWyuTn8G3noctbZSbFCasX0qRVEpiifwO25MaRtZHj9hTA7iTaOz3OUxkVeTCOOcjlZRSwy6cip4fgxFH/mL/wB2POhW7M9I5RD/AEZXHlhjzbM5g3k7wRM2i9lDzk6g6o+5QbFTVPz+ldlTs5WtD9h0vpR+R2K3opSNQmy3s3Jn+iXycNwVcT4HTHawYiP/AKXEj1k4yZ/st5ZjsdZgcenKKfXgzh+By32PAq7MrQpl0jDyYw0dX4FPkeFRmJL5bM/0OFlmCn4H/QphQj5N7H7MU9Gyo30XuS5qTVFt0xxpdmXs025QryOE7Zy1KHlz8DqT8i+SphuFsl8Yc+/6bPf4KipPZjcI7FSLbeDllTBaYvcxspRQo/2OW1bRxiVfRWh5toaaWhRG3+xul7iukxSsOD5Z3SLY7Rt17DiNH1OTTpHFziBQ9zsfuj8FcYMGZMuj7eI4uYMK7OOcCShWeIgvMHVQfdpmeQ5Lo+0fuK3grs+5v9i+zVmcQL6W7K9OzMv5N18lLaFTcMyW3mcH3Oo8l8ngtyb/AGRqkRO2h/JcY7kzDPY92zaMJX7ltVJ9UVBVufYqH+w5hCluJMzSMzJxy4sf4I8spREfA55RRc76/TCbU+BT50dwmiW9GMwOo0U06FbWDVCt6KSwuyp6eC1g+1a6JhjvrwPFCwiuiYbteCkqkuKjsWXJlOuxwllDni0vwY6HpT4Lo+5ZgpcbgWPqlFzst9+D/jrsyi3hlvKkucxo/wCU/DNKmXCmB1EruRepLIsuSVA7WV0LNp+T6WOeLmX5HK314FNT8FJKEOWlZVnKWmpWNi9XaYsaFKyumQ5VtbKpSbopOJT6KmqInDH6VXucKTzG4oc+q56RlqU2K4mzWi1E2tihvMDofsy1mGRhTBF43DFKbOSX0tL2OD5fVpvH9HH08l9vuVyVeTNSnTHKdR0Ol5OhxOvA8p2Km7HHquS1a9xYsUNW35Mo4qHhsX08uc/9C9SXHHT7OSdW1rwROZHMpw9jh+qvKg+ZyYUytFccpdOCIWS2i03kttzP6K2x5sUeRX4/gltvD/oqVDWx/S7ZopKoNqmK8DuL9jEQOeSx/YvStkR5PtZiJONRTFC2POvBlWxSpK9WzCmRSnspcaYmktEriLZqzCwKOK0v0+S+h4whZtClmYktiy4c9m/2K5MVMVKp5YJrA4v/AMh+ZLUU+j7WhKFj3FDgprXYoTUz4KSyOHlSOFFlU7Q6eUKLpCljm89Ct5KbyzWx+w8mEiUiTK2ZmJNU12i2sGyvJhVe2XOjSIb7K5ZHcUYamT2ZaWxzGhVtCxoqsmYwWun2OUsowsoVlptqBXr2N5Fh5PtWH5Ms/wCThnuRDHuEWtn/AJGJ/YxVmEx16h3/AEXDroqHY6my23Q7Oq/S4yjGC2sDuJh9FKKK9LseNDhZMxgxJjjs3iCuTwzKd+f0Rb6XR1f+hX0yksCtfwK4k4wOZWhWsIX1N2RIoSwfay4yVTodvKHfR9u2xSnZhnuikrFNWKPAlDwP/sWyn0XOBT2e8GXTnYrWsicb/wBlNZ8m9GlAhYo94Zo/BvZSSryOT8Gf7MyR7E7hIWhSowTI4kcxU+TM2e7NTBfFocpGWU3o9j5e4MPQ7TkV3CZlr4KrApo3kqP3MTKgvr3Lbp+5LtQzI4SwPKFSiTIsPIqk9h2nL7KmmYeC/U4g08ipn/QocFt0K/HQo2caeS2tGEzOjRPuZV10VsVLBrRqEuxYFWjHRfhCzaRUr5LbUE+pG/pnJyldmXYsLBha/ow/p8jt2OVHpY67NUxpdGVcGEhNwU+KwyncPEmV/JuKZTWfcy6aKXRcR/IofKoNKkVNuDEZFHS/gV8sj2KJx7CwOui08nwO0pJXJYMNEp/2LBMS8f2ZiVsWVX/wypx7l9mZgwsMpObMMvi3DKjZr+RWsG3b8imG/wADz1pFdjodxjJMKl1JtwZmEKeU1BmPS1sTnZmULxAo8LH4OX1caTHU2OJtvUD/ANSOJpp7Kqjj92RpcuKX0rZqFxHEO3optUn/ACY40vwOuLpYMMcRmTj82TM11Aq4rZ5Kayv6OVK14KlZLa+728CcNwu4FTcNlxYmk1THLivLK5O7pewv/wCuLaWWc2m65Kfwzkk3fq72OXxw4udDxc+TtSx7lpkuMUK/6HKWRYlOR+qMJdivHsKlhnL6nc/0L7eji4WvJbalt5zI7axRznjxqE/3P+SrvBz9XJYXjZ3LnsbXGU4WROF9r8bG0tiptDOXiBwuOx2Vy89G5Uih/wBihL/zL9ilhDl7gtqk5wP1ePBKmxxpozGzDT+DaHL4o+rwVNKfcw9eTDLfkvl2RMSvcdk1VGNEJLPkzEmljsSbdkQ8mnN7M6HdV0fTOYG9DrbH7Dtqy3Fjxovt9iqBzKr2HWjjLw3hQOFxzGBzLMLI4TyvJjRtQh/U8tClcVXbJW0iZexy+KlstdHul0KPVbNYZlZZjvsvtDypsyo/6MLDKbwKHx2KvBfGh01gS9mZ5NTGCHy6FPGPkzoiOzFGE8Izx7yxQ0W0ssttW2eDWfcitGDorcFw7Pt2ag2a0jLcx0j/AIyvcpLKHDThpFp/sYeGLEqSqIs+5WipwZR9M4Y01B9rtDlsV4Y7dz4MLQvd/opWh1xwzLH/AHZ7lrlvwLNMdRHyUnZfFP5NDvfsSlqRNcdN7HWl1+jpKTuR10OIdGG8jyKkLY/ZGJF9MUMyW8Qf8XJjTGh0lky7LcT5wOtmHgblZHPZablSO/BkyzMUhxAxQONtGYtHZvBDHEqnscpXBhl3DKxgwsmJpI1ocxkWKnv2H9X/ALQ7dsVYY19O/Bsw+h09GG4jtjSnB/xw+0Yw/cdZZdiJhOEhSXMJGsPwYex1xwxe3ufch+C0nC8G6Z2Olkcxkr2FhpwZHEZFuGUln3FCVGE4Y5zA4mka2Wsx5MtaFjQ5twbeRxLwWtFJWJtJDUCmdlL+B0ytjt3A/q8Dm5gy5lGCqFKWhzx2NwtLBTasURSRvLMcnXsZX4LTyx/+kct78CbU/uKU3LkiYSFHLLfZiIrsX1aizNWU8v3FgiW8lvUjl4Hbsykf8lTFK0xXuCzDHaw9MvlEpDhTLQqVksjDrY7eUW5ocLZm8ivS/ToxhESnCXgt7LatIVlxgpvI6/spdr9jKKc5/ocNOJHUzXsP6UpfnwfT6lSauBelJj9KWhpcXBxmHMlN9X+i+fJUlXb78HHD+Dpsw7XXk5YxPQ01yhwRUCiJxtyVyVycloS5crj/ALFC17FJuxQ1l9E8vTdCmf5OOdo4P6bRTX4HcV0fTySiC+TUpeS+ScXmRqOOFuS23H9Dc8cz2U05aZq58Gdo+3o8wn2L0vleBNq+NmfOiks1eSXc3o98GH+JFVNMw19Li5OOJSfkcRPFpIbURNZ9xTwTnpwJJNyk7cFcuVTqTlPFS4W7G1KkcqakUJU/IvYiPOhLjNLy4kWab6ZySb6yO5Y6VtjUtzPgccsfBxtwm1uikolI+mImKQkm1C6dixDcHGPS5XlH3KjEX7ipMtN0Kl+SvC2KHxyh+wm2cnLwS4WDjCizqoLqKHTHaRahw/0dTY206kcGzKs95HDmX7GnbNrAoXG3/wBDiMMy1nyQkrgX0+DEilroqV8yTPK2Kh6/YtNil7MRRicrQ70xR0xR0PQ008z0YmV0OIUexxcLDYoemW8uTO2Wncjl6Ll56Mq3Ioa/kysl0mZmzMTBxt2/0Xj5HPLfgf0vD6OMKJfqNfB2O+OGUoRS/scpYH6m1D/2b0LMQ0Kx+wsZF9SuP7LbwzDefI6iEyVDz4HbtmW1L2K1sxMCnl1/BjjbSyTDcRhI3bfbFHHQ8VI72cZ5PC/2NTiFgwxKdDtqIPtS+Sx1s45dt9GG6MZbHiaKgWHQ7XHA78GSjVwOnkVcVCM76MdCh6bKh2Ne45fgaXHjldlPR7/BTeCvSoMfg332LDsb/wBib9WEK9+w/YUrTKc4FHqsVscubPaBSncFRUHQqwV0YWEOVlDlxDaPpSwil0W++ikt/plkdQfbgctGGrFlZHMU2Z2OnryVChrwLWBZoiR+wvp7NMttQ/8AYsYHTwipJaefcwxU3ELo1UG7E8Cy6Y6nAsPPaHi/dDrI7ibMLLL1ZhrJ/wBtCynHgVqJHDmfc/8A2IhMWZhjlUSrgd5bHNT8n3JWzl9SiIHbFKKWUxzCky1P6OHytdSZSofujboUtD95MDtOmJKcoz/RU58kpq3BTzHZ7pmNM406fg1baPexGF/Bh70LFiqK9yEuUfkvi6fhmNMdQbRtlNVB8eC1EwP6VECiMNFQ00cqMYT2y+zqh28PwboeBepN4Fc5MekUt4nZCjPsKf8AZEcbLwL0tZMzMse7aMXSHeEO++h1t/IsP6fK7L7Yvq/s3Y4SX6ZIhX8DUO0/AnDz5Qqw5NNqCYwzT/JsdKz7sjrkqXRUOClpiltitHbPljvsf1DjcmGO3joiViS1plN49z/zHnl8QKk9GOhuEoRV2z7XqBJ8avZVTH6L46K9y1sflGRpJ09j9PFpUXx46OT5Q89otcl+4onHuY5OLWCLqh0+MsSbiX/BxynB9Tf/ANISSiNjjpeC+USjeB+yRaWyu0O2sSsHKeK5JtcvYtt0vHY/q9U0cp5OaycZbzOfA/Shv1LPb9iq0Wuv4HL44W0tj+lWl/JXFQ/gf08nS6HPLi6XjyNSkoR6Zim/9HLFut+xT6dH3LDFTtp49ivS6WjMen28nKWll9ChJ/uU+ibcv2wfU05j+BxKw9MxuzPJyzjKTFjEFTQ1D/Yc1SHHJUvB/lXKHMfyN+qm5G6/cX1J96FKXGfbRLmG0tlcMdy+kTDiJK/gV8l9KX7jmorRfgS9hRUQOKyjCWOxZHDeFsUKcD3EaLfJYQq5WLDh+WSrhET5Ji00KVpjuC3hIXwP4FP9MX0qa7FDUQWfkVZYsyPP8j3ghy1BmYnorpsiv0WcIdYa/sVd+BfSy2sMXiGL9FMVA44tykY4uPB9rwfk3scQ4flCKfQ/q6Y5RC/2ZcqTi5S9Mm8mlo/5aZl5FFibnApT07kXp4qj/jhf2ZbMR+5vBxOpUnq9VS5qPCOX1TljTaHPSFUQn5OVrBExE9nu2d5OMwv3FFZ8lVHyKJ/kUxs7RbKf8mMN9FotXQqy0ZefJyzXsUl3kwlJS5GU5T8C+e2V6dDluGVDtDx+n/KpMQKYdIpPB1Xg1FlMUJb8H1NchVlEtbNKyGkrRUoyxZijDySmsPJXFLYoWp7FlW9iT5RkiXxxowlfk95Mds+JMvH6K3kt0jlUSKGnE+C+h+5aTcQW3orkrHadMeXgviNzuCzBEjgdvK0aVLx+vyTLFh0yvVs3r5Fsy1MMTnRyzZlonz4JU4gdvZCW+xUkYz+ihZsVzI8GXcjtPJh7F+mdPyXMyKIpHWPAq2/BuCYjWP0ymVOBS0jqX7jht1ODOEOlgtZZh7NKPItSyq0TWG7Za8n7lSi6ye0CX01BlJlNn/HaLe2dmzDYrMOj2S7OUKYaRqi34HCePBE8oUocmv4M4OUOB28CmHFChIefwKO+hy9MhyrZ7ovZ93J4RmaMKki5mC+Lwzj4TFLXRTSmRQpz2YehxX7GXEGU5gc3/wDTE14OTuvp6OXsvA8pyhTyVwOmrY4btiqZ+eimraHSv4PtWGKXMGiky2l+xO3A4nRjB7IwjLdj2OnjwNNxYoXI3SLUCluyXKmPBSVQOkhU8PoVu02K0j7bQpmRYz+mFYpXRK4t3A5TSaa6HaocSKEjameht8k4+D7ctrI5Sj8H2pEudCp/sKPS0kLGPcaVYKWEkYY3ifTkcdoWFkt2nIk21cjhOKH4ZoctCzbPt1/RXGM+ZONeDPRpUjOi5lMTdV4E02ocn0tRk+lS70xep/2NXkTaW4HS40h/bgvagVIbfLi6ff8A0cp8bQnxU34H6oWNChrK0fc8+EJenln3KmoXQ3xhV37ilN/k4PjyThLsz/CF9syS1y1x7kpPTLaU1mRQ+Sj6jleGksHL1Rlif1XQ4URYvp7k+3i/yZl28kRymCki0rnSHUWj6uMfuVLlIzyy9yfTx85k+ltW/A/UnlpVJUq417CqHDLTiWsih4XYo48YXGcRtipuGlo4tzMvwKUkfBodLCZpWKU+hXFI6F7yWlZ/y/YVaFdyjH3NefYfp9jk+V2xNpODjcY6FnRmKZfKIfsY/ks8FvBcsVt2uifnY48DqZS8DnKMPJxw8mv5Kevcc8uWVsuLZbt2IxNDwoMoeLgcl6hCiFCXX6ZH2mX0xQ9lFa+DKefIvchSrQ3yawtIji12OZx+BWkKIdmT6muXwdyOUtCX0rOzDqS/T+5jJdlOiYg/BXpwWhTuRypqtiuEWpkUrLZcqGhV2X4En4LkrqS4iR3gx2e5hzKMbG4ZbdGVgdbkrpFRhl6bHL42K3Un5Lv9jGCly/ZiyW3Qs/keMMWdFLaLuT4FFj9hQ2rHHaPYzhFmV/BFqW2KkLxHgVZRjis+BZFCwhYdvwLJ0KcQW3rowh14LWRYyj/l/Blb8GqkUvipcdm7M66Fb0cb4qmO0dZMLsmOX7GHjsV3Z7DhmFk2OFo0/wBjGZ8lzop4R93HY80XI84I/SnOB1ywjHJT7CzkeVBc4HCSg/PktvZlO4Pz4PlnsLKstya7KTdGdDnkrRluir/Yx0SqtDyxx5HfjB8Ftv8ABW2zI6eCun4KSPpq3/oiBp+B+xnTNip7MN0Z17lN0z7f05TFsb+pqRYFDeCvU7Xk1TH6api6gWKKWWT6b/JfZ+EWij7uOx1scvoobabLel/AtEy8nf7FclcD+mDNr96Hbf7HLaiS4ddGXgSbLiY9xw0r9xttPLL0V0dnye5iTCRM6ZCTwvI6ihtLM/0fjpGEpliu/wAlt9DrRb5KIY36XyhsVPD8CdTZagxlHK3/AOsfu0OEs+RtWK1ktrXgX2oWNj9j7sL2JluZPNi1Z2U3iDKtltdYN5HLy+jC6MNQjjx5cXTXJSvwLH8DabY8RLHCnAn5YrWTGZHCScoVN/8AmS29ihPRPcGVJiS5wY/suaLbOOcCbbeOkV58CpZ9xL09do5Vxte3Qqd/A3HJ0KeSb/8AgvdFKKK4vIrVFivoqcfySoJhV7ilXMmJPtZyuKI8vxsThKa2JrXx7ChO58dipuv6MRb0cZbri+l2TEpxP5HSxBvfYovK3eB+lcZj3FbzNaOShOUliI7JdqI0j6W3Y6afqnoUtZ8ihQqMy4XYo9P8nFRyW+zj6eOJWz2roSb0JcZdScJ48Yvt7F6WkO4a6IW0kyp5fsc21Dn3KXFS42xenklDfLPwNZmBfTpfJCa62P6nk5TxmWsHOE7jUHLGdGYwYykPKkVPQ0klf9FrltY+B03FnX7mHUCpCnlFC1TyW1f7nUT2cV6XaFKWWfcrsUVk5NyqQpU5WxXNf6Q4SkdrCQoeDTj3KWzKE3KX4HSlmcyOW/3FaX5N4QrdNEKDDOWKSLnY015wfdNDnTaWinCXwcb7NWWpsUprJn+hzJnQ4T2ORprB7HL1LfZawz4FEX8mIyPDplz/ACP3Q1OJKaeS5dkSzRltQhZyujjcQiqsVTbQ/lCsprMGXpGV/IvYdbJ8oz0Jcv5TPu78mnE+TH9EZstLBg3MQf8AKl7mW8svilM+f0xgcJ4ZpSUmpkyZWx6secDpVPY52uxTyWR1FDn1WmjMZHekZZTWUZqx34/S0sIZSyjKyawi9s07FXX+hZHNlof3MV8aLbX7HwLNDiMSfbA391lq4L9TNOT4N3IrbuehQuhfSY6Hqzi2/VDS/kxlQf8ALKZMQWtPZ9v8GIrs0qKaUsf1JY8fo7gtcbKs3sw1ZaHTO5/TP8nsPz+j9hQknLMYEPJcZ/6PheR2VF+BTs28FpFJZMrDHPF56KW2OV2+v0fwe7ZPYnI6SHPTFKRnjs/JpufYfk/BCtMrlx2Kkq7HTyxUqb/s6s6sxywyfcpZjsVMpr+BX9x7Hx5Lb7MwLHX6OKclyYTpjjo1YsY9x3yq9CicfgyjLMNWYY4gdwatsU8U5Rvo/wCWUK2bpozEouB0qQ94LbcOBTVscPDXRFbHhNv3HpJGJyOCrwK28jvln2PtdDt6Kaw/095FbuRS/Am56FNfuKnRSSsVdeSm3LY7iPcT9Vtsc6SKaeOhy3h9Dl4Q/U1GBSsv2JSwKZopcv3HRMMxbcbHKbtC+p6FHKehZyyolQV/TNGFZiMMx0K9Ew8kttQKHxz7HGtE3EspxCNU2Jrisefcx3HkUrYpXR9Mm8s3Qpap9ivRlM4zG2KW6RslwW3hix/BSFDkXboUUXF+RQuj/i4kc5aRXF6ZhOl+xnkP1LksitYYnEW+ybR8MULUdCUJUxQ3sUQ2/SWtLoupgvtD+5fIpjKHTazYknprDG0vTotvl6oWGvI1x9+iuT+lNnJvi9TWIFHJK/Ye6RTbz4KTiGlR9SVRo+luGlEqDi0m4SVfkWMvocuITeiuTmUuhTDz4OHpSIcCcK0mo8Erjx33QqfFOFgXp4zKOPL08aTq2KErM7UzXY4U+lR7lNzjZbVv38il8suTl6mrnp9MT9TytChQmvJP0q3j8nFcs3lLwOI2U5llpL0yKlEjmXY4adexnrwQ2qTWDk/gda8FckzVj9JlWvJ9Kv8AJhZRCSeV0ZSp+S2hWsoeMUW9divaFCXRyT9SwOUOIqtkxocPsfq0K0osynInWxQzTp+C0k1PkdRgdr+TWhzGujlHJ3KHLFnM6InjLaH9KmY2O9F/0XVCzkrssezI5WY/kcRrom2O07Qvq2ZFQ2puD7Wo9jCpszkyKKr3Nn3PEjlvYqR9yUs2jjKboz4FDmEz+NleTlE1D/RwuVtjprBoceUR4Lqzehw0pg0taHbcSOJdjn1TPsfCHDTpDllOLXkcLKbFWmVDNjpKx5YpIT/sc8pbRfkqKHCaglTtGYKSofpU35HSyhW7b/ocs+BU7fgyW3ULQ567H9WDey2zuZLujKdHH0xLGoxQ/Y/5YZrL8ChzjwZdDp60O8Iwv3ZbxAp5bXg9jcr4Mdjt0jJnJcO2OX0ZHawz7tpmdLwJ+WhONiFFYRjrybY5PaTD2OZY70VCr3FMWzdpPIzCcJjjBQ8KvccvjlbH/wBG9IUPjleC4TidivpaFScqCm8s/cUIX08rOUuPwV0Zax5LWEOKr3HDT3h6Km25o5vGqPuWXtlVLWjj6XGBS2ymv4HXQ6dwQ1Byt0Z0y2v3Fm/gp7Mctjt5HTpIczLHCnbPtalmOTpiarWSvTxotVYpa0jOmi5yycyaf5PkUpbHC0SkuyXKg07K7Q4oWOykO08mNl+By26FCy2dyZeJKTyz7Yn5HWZH+TX8jnlsuEXHRS2vJKjTKlSy0sMdO3Ap4vfR1SIUOY7R/wAlY4SJjXkVrRDeIKUX7mfB8spLLL5Itihu5FY5rBaSbYvTUvYnMlRsThY9QnGGxYcryVKXKDGJ/wBjvp9iQlDdlzY2mm6P+P7DlU0h/TM2OW8oy3J1TFbwK/2Hb6Nj8NFw4k+1YP8AkiGoyKB1mBT6kaFHFZbMO5MPRUODjZ/yL4qmxxZvZjja9zGJ8CvvwVyjBHbFDljmoa3IpeyYWBRodP8Akzc+BTFil6QsWO+vHZ92S2z2ZadKSnhMZhWmJNLC8Cx1iCpiUO3lkp4SXQ/S+Nt6jycpUV7FcXlvv2Ppaq1Q5VJvyO9shxDbGkpTXaH6YptMctzl18FuK9x0rotOvg2tRRyfLlyUr1OXJKfF/v2NtQvb4KSpLeDjLhTJwlcmk317DiMoef5GcX6oysQVOVtiuLWpEvTlpOzj6Y3iRwlpKJZxX2woG2pVdFxKh9nUNaN4Ym3pvs5fVxzxWiePKEmcplzDtr2JTbyP2La/A/S+VtLaOUXllpKvJlK0U5sUcVXcjacUP1LJXJKUYar3MRHuTPJ2KJz4Phly7MqF8GOy3hscf+ofj5L5OUifU9jlJWntnGXMShz2bbXwL6k6kUPZiNn1cXh7K0zLpDmHSK7Z/wCZTXZNVIoc0KGrYr7HEOP+zk+SWY7Km2/JW0i14HK5Jp9msouIbRh72WkU5HK60yuT2KFN/wCxWsSfdMkqaktZc6MpqSmssqvyV/B+eylODbLmoFXZlYFqvcXzgcJ4RjfuQ6hr9Pk3aFDeVocPKLkwkVKVihKnOyY44Fel8ijl0YSpIfpSeO6FgdbOab4v6ktLyLENIuexWWex9robhOW+LhmGqTyUuJtDibkrTS2U3SMrBxnDlGMoqMwOjCwN0OtDvQqe/I7efbQ/p2fDHN0JuU7OULWxZ6LfYoSyy+Oz8GOLSOz7VYvkwkmh3xtlqoMr9i5dim6FNiiVodurPzs+6coYqSiRzOB1xtJkWL0ztYMeOhzWCqlsy8Fxhvsdt/sLNI/46MstPLJayVydi+oUziBTOzHgqMJiyNqLkecopfyW7j2Ic4FnLWRylkzFtHs/JK4xkdRUnGH08GdlrZnoUtQKI66JaVJscJaKehy+uilMoVp0zeWjDoSc7PqnRxda/wCxwohLobbbkVtXJ9LFauDDMD9M4f8AJyfLyy23+DlS/wD1K/2ZWWK4lChv9hUU3x0OWjY77E6wVyY6d+x9q0SqwsfJc4FaLnSE+oH7GSky5tFNUN+GOekOXH4FdyOVtCpGS/BUHYoivA5XK40ZVIdZjyKHJb/RbsuSuVJjupKhWKeKUoUN2vYysijlyUJ+CYwmZRnY92fbNPtmiW+LkpvD/oiJKTwSlpEQ6Zh5N+MCzgzro9/iBT2inyyzM17mHsUP+RVAsuEO3kzsdpyOezPZS5P5HNPA7b+TGEzlI/hkfT2VZuHJh1fRaX4FRY1QvYXsYyOuWfcroeSntMj1N2+ykilOh/S3RVwaNuzPZ9UrHR9ypv8AY2qPuwimnnwLRy+lfyKeU0z7phodPHgcrR8ltwkZdL/RCSiRxENdDXqTx5HL7KZy8Ic8ox/Q3LVp6L5eBUjqnIkm8bryNOXjwQk5gqct3ZDWjnDmb37D9LSz4OSd1H8DhPLZ9XHjv9xw7Urscpt147PtW9FryK0tZ6OMyrXkhriseTk+PJ4fSJ5NQl5OM9z2K8tqimZbdjlcab2KVytT2WmrRc4FLeejPkX1Lb7Ek+SlCT4rRhK11Rz9Kifgu8nOG4aeLHxbcJN1KK5cqhdH1Pe5eyEsy/4G01hf9CzijZtYF9OnoVN0tjiHv+BYexel4aOTn+jK10W5sbban28FNZkxmBxxycp4opcXRU9itvIqTplJWjLyOVlo4/dfyLIpm56FXXZl0POmVcqBalChIcKRX4FXY52vcpDlaMvHQ8v9jb/YU8eTVLsVcWmW9QKZUnKHr3Pt09DTcyn4LWUU3o/6JtjrH6V6rYk5LioZxlRbJa5YL7Y43BfHZ7mDEmFRFDl69hT2/I4UmOjivVOC28eB2L6olyZ6fX6apjhvKMeeyvTlHFxqR00KXSfk+EbyhZUUcEraT5YOb5cuWdJHvOPc0qHeR/SPCNZHHKvYU1YvqWmKIycorA48DtH3LPsadm8ewvpmh0W1hFHUDt4RljwYy15OWMoqXZ9vk1jyccPAptJpZIfqwOHiNMy3ZcfpV0Wpyz4SNLIpbLFLdM6wSkZy0R5PyOswuhS1gpNDm4gpvBruhU8eBzLoys/2YnPkx/ZMix/oqP2HNmMyWmYS1g28FRottuUZwL3HeJFLPwZdjtrHRhD+3YvkVaL3J8fqvKF7CmdmOi46/T8DUt0W3oVbKX9C9j7dEQ0zJ/5mMCp5OMN4H7+5a2Km2oF2pZko+6L6FlD9LWTvBnsp6PaDKGNqrMjiLf6Oto6o2Jelq+zLoej6Yy1s8FvlSQ7Tkdvs3QsQkRHYvpakVxg+5luI/S3/AEfky6Qr2WxUrNS2zEltlSP6nfyNzGDamdGJlD930cnEZfZepJhKU+xbMuEy1rodJYMK0xxxF9Mz7sf0+DeT/k8i+rUn25HlDmEOO2Opy+h2tj+q2O8x2ypVfgQ0oofqXfkcIapwh3uTC2YZoxB8kcUkau+hxXwL6lLT8C3Bgp4HUuxDhocq1JjstZk+V+incm3RiBYZnlouaPyKG1LHA4TtDpbHemP3MtR8FekcN0TCcVsbc0kZ42fbGPJmkxKOhZU+EK+WxpRg+nv/AKHTP+LQ5WfY5VEwz7XxryOnTNNoVJIULot9CuHJXH1WtixaSLUET6bXY4TxI5Sd9fB9XGd/tBEtqJK5J40Q2v8AZPGFCupyWuXyXxSmViTiuLeV15HbmezklxiIyaTmO8FvfWT7crz1Jxjk3fcCcpwoY7VdFpnJ3kvlmdkPlv8A2VFKdjfpbce8mVH/AJib9NKP5MxcaFtqTDHDhpMcqPS2O3iSXyVQ6MOpXufU1DSefk4zyTleBXiB09inllPBEqIYlCSG1KaT/wD1eEcnyan1PltzbE//AMcVynLISf2rwQ+SVN9l8oUwbVyL6cClPMCy2n7dGVbK0n4FayK3roytGodYMrDPqbwJLjoqcF6FHGBTGG9HKUn+wsKJgyYkUtZY62i/JjZhwZWi00OH2WoWTLa4p+DCLiKIT89DlJzAovGxx6na0JNccFuHPuU9ocp6JmceDWB0OGTuV2O/Ap8ns/BlCrA7SLq47MRjcjnjDhiU5HE5H8H3NYKkqI9yjf5O62bwYeGY7OtHGkr7N8YaNKz7lcfIs5TMOmjGLOVWvA5S/crkrFST9xRC+Ry8p9lJDvR8GG5hicTBEw59yxylTfkcPi8mXhG3afQoXR9yUx0ZxAoqxe7LaKP/ADMp20OjSoyrOVLKLb2VmV2Ko+B1xyiz7tjvZSeBzf7ihcWX6XUCzDnyK8TkWFEnuX6lR8oWLg+5Wyk/5He2e5hMtO7N7LV2VFe5jyVcjwqHnsqDjF0/H6YWjC0UKVxU+5S2VCoaiI9y+P8ARMPXgvUYMxkj1UOuX7FODCx7GB4oyiZdyfanA/g9kK0V0ykujEWYFTWEKuTaFXYzOZF9PLIr7RaUlpdGHszsxpjwvkwjCwx1sUqafgecFJYZrJcaIU2i23Q7TlQdmoMrXkXv2N1gWoFKaLSUFPUiui5wXxeO5MIxobiVLHbVrsUNWi1mTLeS5MNfkdxQrfZfEyKW5gv1fp/+tCqMiuCu0Y5bMdjhJ0yocplPY4uEL3HSYp5PJbnA21dFpZRxcrUZRywpM8U4Q44zaFSWX0Wnger8F+w4WpHLzHYqaFDwxwkvY5Q9M5RCh+48+TCVscdlcZ7yOYyNxNCUO34Lgy8jlqS5OX08kUlhIqdFtMUzcCy4Lmi0nEGFstbFUUy26Y/ZG9mhwkslNVY7MQi50ew7wPeBS7ZSMIwO+kONDsrUDtOPce8m5rspJWhmh4L46gbU6PuWPYwcfuwu2cWntrs+1fyNOdPI/qbwbyYwKoFNS2TkTXGaZ7yfa4YoWkZFPFYFbcQOfKEvSnLfZxtv8lxUChpOEzPFx4LblwYSky1MeDex+45XZ9ydrwXHHK7OTTvkr3GYFMO28nL1cWnPfVDjlyp+B/VctDxSTr1PwjklxTtM+m70jl9TWP8Asrjx4pJ6Wh1hSOEmP1S7fXkUpw50ifBxXJ+4vSnHGSoefA610KE3ns5+mWng/LMHKY7L5Ny/ScZ5PsXplRPXmDk+TVuMM4tNKl5GvVhDnlOzUN/yO25gctaehWloStOVtHPj6nideUcvpuU3COUNJVi4s5zxTlv+hw8GeKp+Cowcr5I5JeDTtCfGohmVgzRlfS0VMUxQ5opRr+S5wxpxdFtK14M7LFExZLT0a7M5gVG8izjyXxej4QrHCj0pocPof0z7D/8Ag4nEnRx+rF7RL7ZmYUHGW+z7Xn3Mz+SI5a2UnbZiSE/6Nit7XQr5TUiiNIutl8m7Zen2fDHbz+DMWiWkm4WZI5J7PwY0hZwxQaLWhysHGnSgeb9iEtPof42YVjTpYFcWUu2aHnJrZh/yO1k4x10Knbb18FbTOVp14Lbqdlp2OYpjfq4vK2KD5bMxCnYqymZVv2FXZ/yuTOmfcsCtuUxUjM2/Bjr9FUnUlrKKm2OzGzy2OLyWitpGOujEkepq0R91of1Zg5Xl+46StnwPDtlt68EJLf8AApKZ7I5aabLeEjatDtmnIlPZSyxUikrZfIpq5HLgUK7HapM+5s3YsLJxT9zWYLfKzJfFNp+/6KFtG0Jel9mlg2v2FumR4KWy5/gtd9ChdjpednyhX90juIZjyPxBaFWWzSM9DtFrZLjBlYN49yeLZvPkURa6L49H3PDGnd/osUL4H8GeWfA56K0yuKx7Dc3TPuZXa78mGW1aK1C7FuEOGjffsXCyZWDlc3OyuOHI4kctZYpeELFMedGLI/6HjXaF5YrUTJT20dUzEOF/Z7FJIRMrow1gzEDtYRcGXcEK67HEFzAqekawfjwadvwPJnsUyfLHbqH/ACZi0NNvRUTfkeaouFCFbFHJLW0RMDiVB/x34MvHsVCHnAobI9XHA17iV0XBq2yv9GFlozleRXxSbawzPLkvwOFgX1PIvYcNuHBwhvLY4Sfp/sbXHjhrA848ol8m78HJvsuNv+TlNtpMq4v+Tl1SL+TCVroXqSw2KG02+huXZpx8wateR+DWXBHhFxY8aHCbtjkWXaPcfgxllso1bR8lcTG2ZeBfUtm6fucb49+xL4pumobFMq3/AEZVLow1F/yUordiltYNYgd5llLvRd2/JXpeRqNLpmMFQRx4pUYWPYxD9hS3aE+LaaaeS3ryh+mW014H93L9hT6XD9hU5xoU9NFzljiXbk5TVLyUuXy/cv8A0fsOFDaFm66MJepdFJvRjtmW7Q2m20vCPqnffg5fU1Xa+Dlz5OYc6Gmnc9HF8ucNqsELlKncCmG0578HF8mtR+BQmpcGtaNX8FJS/wDobURKXZHKpnwX0+kK3afTyPOUnsUpNPqz6nxcpTSE5WTSiRynhH07OUpnJ8Yf5HbUNjni3exOFa6wSuTpI5QoqGQ1907Q/TUs4vk+Tv37K5OVHZtfnQly5cbScCvi/VySxE2jimuL9LfnocRTXgVtQvY4wqvwdsUpPGxR1IqWf+hfTEt+fBEqnOToUy4ktimWQuPQ2+OxbleSVyF8ClvYoXgr05K4tZZhZno4/Suxy5tIeLhmlEforbyOYuP7HE1Bu5MxBcY9zdNdELEChtRB6plJLRpqWLeEib6LlShtaTR+SYaotci5prSO6grk6aKe0OeTRl6Zv9ip3scNZ8opdYMN0/ApLbz0V4L6FCKS14JV4E0y08NivTHimO5wZf8ABT00OX0KELA3en/Im5Hb/gcPYouvccxnwKU7lChL97HDeH0yWt/7JpzKLjXg/wAi/wDyKlxuZ6ktpUfbF+5UbKc6MukuyrsUqcdip7H9KMNw2KJ14Ka2fT0KFhH4HBjaWTjnY4VUKotClN2UlSLcWZboy4n/AEOi46KmiUohLTR3oSjlbPtdN6RhXBbyj8eSXx/g+1YRafKGx2K0V35E2mjWES3lDhRfkuFJVHdp9lZiSJfWhQ3kZSexz6W5ky2W2jqWzxIs4Fe/Y3Zj3FDaplqaH9KszkUwjRvLN0pHfQ20naR920btoU+EUsmYwhY2WjD2OXv+hQ1n3L47MP8AI7eDCeS2sMlRmNjmWVhCnT9uxT3Oz5JpwjWSZbHPkwOmsF8lk5RFjiUjHYn0vYcr/wBof1JYwOW8wWutjro3o07HcyvcdrXYoU3OTDUoUL2ItQ2XYvpastYaKSVvyb/f2FSpCrudDhqvgcTYolKEU1spfyKB+H5ONKkyukO3s9i1x2K9Mvi8+5lCrfuYR9rwzWfI7Sx4HKdp/wBDTjyU2TPJaHmoG08qcCbb0OG0P1Nr8DvoUD97FOqHCexyxezFKbNsVpZFD5bHENCxR9zyiuSUqB+YJXHicalx7Dri2OHFvB9s2x+pKZ8LBCeVeWL08m/U0W1CTGpWJ9hp9of1W4KjD7I5PjfucZ45vIrn8iiU56F9LVsilaMvLLi2JtO2yJeexreNIv1YH6WpTXY4c081sh9nvJfYvqY5bpjuNilz+xa/ovz4HE4HMfuZj49htdHLNM5UmPL/AGHCdipukV6uzl6mnCSyOJyjlDdodq4HEI5THxY/qmmKost8afhEtMUp9iUzKLWEJt6glPZyvQvqZc04QrWYJJ9WF5QvUkU1lPRaazo2XCueyntG3iTM/wDoMLTOH09scLN7FUy84MNx8FNZUQcFDlT0xTyhQz7vuXLj/EFPp/0cvqeI2ji3yamXEfyQlNNaKfK58wY5JX5lzJ9XqedzPZxtqIHKWHgtM4y39LgTdilrX7ijjmYuBwvOxzhQcW3iSW+TlsUS4FJbeBe4qatv3HK5ZfRzT0nM0Yd4GtVpMc8ptvBylUpGvSnaaJXpUrUmaaZza48onjEw9wy/CzPZxt8nyaWMlzUxRCh/sOmlfQpqG9j+qLklv92L6nnwWtNdij1YOM0OfA0uSplcf7KbRN010TWGUy07FX7jnjNIdv8AkyqJax4JfFIdKoQpcWxQ1iNih/0cmk2Z7H1YoaqTDFE7Y5W15KjBvLJhO2qscptOD6Vt/wBjTje/InC1ByUZ7otdPRpWxTGWKohsXsZREtyhxGB6/crjMJotrMjjZnvR89EIm/we7PZew/qVlOLHhmx4NCl6QsseFk0WrsdumjBa6IbkuHsV2lGin/YnDyZ2x5aMulJT7WSeSblvxhIycF/+Tk/U3G+y+StPQlNy12clMXoz4PjsVep0fI6472KeLdjhzjY76H7x2KemO3kUTlCU9ihRB8jlOfgdW2hwv5HMLGh1yUNGNLpCuYLl5Y1LY5cQmNSpj2HUYHHR9KxL2XX7jx+x8eRTNwOVqMChTnwO0K9nKH0Ke34HLRTgedGIf4L/ANGFhnwZXQ3hyNuXnopoc8uMtoUJNNoy3+T7ZiBw4H5kWKY41JbFS0sl8c/A4lldGXZyTl4H7LRnXuL6oHcz7FuS3pbF7jtuWYKo5QnowTcSi2OYN7P+Ip6M4aITehfUx+BUqP8AyLg1cFTg1Kn5HEtncIWMFKC3hsdodrEjaT0O0sCSbFbQ3eEO9I+5Q47M9G8iuYNIy6T6MtyQRCwVGZFuTJlYRf8A6yuM4FWEexrLMrrsRvIoawKXtDx/IrZ+BZ6zA59SwL6eOTlbYqfRCbtIttIyx1FmHsyi2rhCqcbIh4QpUXJxiyIWCG2sCvDfQ5lSl5Fe2Ute456EnFSK4wyYVye36RGUvIvpefJTTgUvaJ9SwuWi+TVR1sac00cYT3sdK1L2fKFa+obXF5J9X/FPA3xhx6fByji5a9xzx2+tKDDy3hFKE/ceS3eBxViaXHSJXGYnwcoaUina9zlHsfTKn3KURfZ1CLTdIuFLgcT2PKMOBb0Q0YWIPphSKUhOErMpCctxIoayxwuWEN3NDnjFnL0w6fY8KPJyS9WY09kcof8A6Tilyx2Vxf3NF8lc4f8A8LfKYS0i1ycp5JlrPRfFflnG4yi1mC514J9X5k1n3OSfGJwNpccSOVv3MKpYnSON8cFclpLcFuGx7/svKRlJp6sf1S3Hgfp5J2ngUxcEJo5epdKj6W9seX5wJ8ktMfpnCPqWEc54rHHpjiDjL/8A2wjj6opdClTg44yxTyeFRxfH0ykvEaOXqhX3PsYaycp48t9uKHhfscfUqlYcWSlMp9HKZG+S5NR72OePpUITTSgpvsc3P7HK+VexZjI0lstp5LjRax5k41hMp7UizEO2Qmlo+G8LyPTacnGWrdihNxkbfXRHq68HGFCi/wCT6nMcYxga4rL/AAOfOYOO6fwaeDlmqsXqnZlVCOUTodrJ9r/KOWbTOUJPWPI23rolvDQvfstZRyt/+gp8cF1TPdDMvLEnr5KaX4ZbYpijEwym8HGkpnwKFMLyU1lHJ5pds/6OKl4b/kcPlkqsivjsw7fUkQzhPLwUttew4W2XyVdHHO/Jlq2JLlUuNCTbVj9KShJGW5Z7HyjNtldpj3+xc7Rb7Jjs5Pklhjy6kpwLCv8A0fBnycfS4qT7uz9hqOWS1NHs0P6lUC3+xacx4Zcqv0f03QsW0fk2sjUO1JyzoqIbbMtwuh2VGRWrSFTcodt2ZZvIp7KQ6YpSVlJ4PwLNrqTPQrascpqEK0oHTeB92WseDKUIxs/AoQq8m8nyYctPoy8QOF+l3S0N8UlLeEjl6vL7Laf7C0Zx8H2y6FUV4K5P8lLl0co9PRyhu5HHFKp7Pq/YcQ/3IfktLHgy1SKcwmUmOdtCxky8lraFWDMqcCni+y4v2KjBc4FMqxenx0W2P4FoV4fkU2Wa2Wo2UptGsl/yKkx9fgdrRUIvs/czdimDydSO1RcYKbdGeRj+GfL7F+D7piPJS7MNiqBy0WhfBLjIsu2x5VsylkdMqcLZl38lPoy8mFkzMMeTHZTeEOsDkpf0UujOBRCkfpWYFTHn5oqj/i4RLTKjJjXky6I9TOVIVf2KW0d/0YykKIyRO2UnlCbjHRvQrTmfAqFnrQs0UXmWhv1OH4J7Qor9zlCiBtQbtGS0i2xtNr9yVxU5yO5uC3Mrvwf8XLKSUQOeWEK3afZy+paHLfVFJ/7Gs0hSm5g5e/ZhZGvJx3P7i+lwxuU8H3ZUGYoUypnyTKq8j9KWZEuTXfRxlbQ42zKyyOXFKvboXqcUtDji5lipUn+xyri5kvi7TMrY4S0cZmEbdpn28qKXKIS9hTGR1hmhRGHJSb/c5S0ayXFCmLSfQph6LTKadIpzBb/g1TY/pZuinr2J9PY4U5LRlqD7eUca0Ws0YWV56H9NQltDjlsba2kyG+UT3g+pNNKBt8YhLplJRGv2LbzAvutrXRyqsFt0/ccenL8jjklb7HCdyzLUMqbrs5epOVD6HMLHkwzTx4MKk9PujlMuElozCvY6Tv8As+r1clCFHLHyL6u+z6k9f6E+PL02c6cJSKZdqZSZypKkcvpdLP8Ao5KFKbHHmx+paOOYTbvRyq/g55cFqfwcFVJeDiuXJPaQo9Utfjo+lRCa7I9XFtN/wy+Lwy0qkzNP+xpvDJT40cqWtjpO32JqUoPZMuak+4+7bEumZf0sctuv6gXpTaU7yU1hdo428f0L1clynr3F9c+prUSQ1UJddHGMx7HL6dbEpar/AGJ0pfn4HHJ5bs5wlXuL1J7XQp4uVGK1ovlyXdpGImezMqtidTMkSn+Sk6TKeIexqXvpmVkmU3y4oucrryJ8pWJgTjHwYzJl3JaemWlhinMoctWjBljnuBRxastFNKELCkw9oeqWxw0L6crwz3Epz8kVYtV4FF/sQ25THHp0clxelo4wuxYwKHyeR+rU/wCirzs4qFTaoVOl/s/5V8CrCZl4PqfcR7DjlpGVgVyKVkot8si+p0KYtlpRC8HHNodJ2v7FTor3M8dmMtj9mKV4FScpj9O70XdiXcm3Q/pbHawxUy2lZ+BZ0fTLpCw5Qrx/s+fYdzgQs6Qs1A5awUlaO6Ln8jzkVzDN4NqPk4uFoUJlptnsi9tjmWW9syjPgecGEJxItUhZ6L4vLKtSK9DvbMlv+v0VyOkv3LbXvDGp5NStL2H9UCaq/cy5cD3oVpx8DwsGIwfchex920bscTXsPVsp9voUt0maFLiCoSl+CmcnJbbx0ZdsVKkLJiMGEKUnTLTtGRS5Hl0Y6PDMlKaLwKE0Z0fc7g3kysjlPBbf8m1k/wCv0yU3RVZOzH7CwW06bG00O5Yqf8m7kvxszlMwjYs4FCyU5yOX2KR0WpgrQo8j9TPDTPkzdD+T5NU/YWe9s5SjOYF/3+jiUVUSNtwZVT4M4ZSkdL9zGxaMoqDCFFWZn/zHW2X5NWVP1M6wOOiZ4v8AY5bgy2XVGcpbOMt49jCdopLBXQ/qWR5wi0swOYszH7DtaHaUJm8SZWRRDjoqVUdn5yOEy08t4gp6HauS2YVmH2POPYdxaM5ZNZfgXsdUXVv5PtSmz6cJLyU+h/COpbKqvwZ6L9WfYczM+B2v3LawVdCiFCRjzs+mMDmvwLOP5MDbS5aFLzBfFa6IXHkv30XxizCbj2NKl/Y6bpi+pCagbvRjEoVMrlVTBTdGWZfGXJTehUrb8/pmKQqVJZOKcvZHHwihqVDbWRTyXFPzmz6WpbRa2xPk+Lc2fTO1/JEvDwKeWG+vYbapJ2r9zDizPJqGYi2PdQUuWfA6tt+BzNpISlKmceTbbhRC9xzlx0OsKBQ2KkKXlvoly5dz8Dvv+j7nkUyfbxcr3Kh3I/Vx78HGIixYw+x+qWnHWz63y5bX2o4TNJoUQ8PZ9PGbSFHJOF5OKfpj1NO2cI3Nn01HR/xeBJJrDL5cqQ0mnc/g+3jl+RqGpT+cjX2tOSklrY/SuTaa2XEQ5kfpSUzlOjl6uTj7YzoS9L3F4H9SSryTMRP8tCfKm012OWq4pkNvRy/5WxqrMLvMkJJZw58CcK1PYvqSvqBx6d7OEOrXRHJN52v+xS+X4FTmYoeMTlI5qePGuPXk4+rk6Tx3ZXJK35H6mm2z6lN7eKRxS5TMvOTh6m3fJ4Xak9TbUJpRQl6op7FSi0fUomZI4tDcKbyJy7WqOUp2n4LfbzBxtaM4IlqiFdstLC8ihukcpeF7FTTY03psy1a8ilIcLSH7f2Ly/Yl2ZEk1sw5leRS8wjO5Fgq4LTiEZ1OyGZ15KbpCxJnDRPFt0z6ozsudeSXctnJw8zohRsuMsdPBK5KziuPFqrufYxOWKfVkd7NK0JJPPuOmOLkhQrXYo9SiT6kxuHjwKIyYcGORjCMqjD35HKWzjadMw3bQs7L8lJcrkysMyk2mfIoeivTcn1JKp7HC/kpPEEprK8ij02fbv/oxlDtOmLEujNspLA72RjPkyrZcvBjSFM5Fi4LSUwV4Q65L8FpbHTs2JXk1g7oqRy1kajZcFtoalYgXpaeB42RWj4ZEQoNyZWfwcuXGf+XHKOT5NRD5OXJlJz5H9MR7CtqPKNKZXYvqwRiI8GOmW9R/BVLGTqTuy1roeMpdCvTPubqKMYjyOOSpdGcSJw5+GbcGFgyj2b8GP4PPyUtjdZXkSXkxho0o8SYaoUP9x1s3geMH1L+B5E62YfwcZlQKspCluyjWCxwkdj8GGU+zHYpSzHRiaMzZXJQ2ZimOGi2Oaiey2lEDwzjC8j3c6HPRgzhIrZuWOpHRhWZeWZTmfA3OI8GZiPBhP9hxxX5HEYXZrsdrQrWDMDbqJLnDMVPuLwZbHKgdz8FtqhQ5oy3Q4Ys78CtaHOxTLSscNrA/lmPGzCHm7FHJOG/A5fHbMJxWz7rT9jMHGXv3HbsaSSkc7Z8PyK+T9vc3EwYdCjtltnKWs2XcNEtJ4/s446HDsuHfZyhLKMqxK1a7K1BlbIcil7QlDM6Hnj8M10VxawSk1Y4hRDyy/TDSPz/spTkwtlvbH9V35Ep5cabx5o5q3DXFEerk8aSNtK9Mvk1UDXLk8+xyt49h09Crt9lPXgdRgUJxHsOZts+14FjS2z6Vvyfc8oy8sqHS/scSzO14LhEpNT8kKMf7M8csc4n2HEilHKf5NVQ5WhxUqi4cr2H9Ut2fSrQ0/HY/ty9i+p9EPi6nQoalNN/wcfT6o9TOUuEy4T+DHGmP/lKS71Y7mUn/ALFhTPkcPcsSaX3LsXqUUOFHp9h2lLXxoT5dIrklN2zjl4xI90jkm4fsjkpdpa8HJr0qW+zDwuR8mU8lZTfgf08qhH3S5TehU9o5Ss/A/S8/JTvGy+SV+4r8DfJ3C8ji02ujh6uKv1LPFHP0tO08NjXLilh2P0vk1GoWzmuS2k7XmDk6/MHP7b8M5SttXXRHJOGvNWcHy/yKoeF72J+rlGcxNmW04Mptp9Cj/Hhwcl6VSXL9yGnyfJR1pGH/AARyeePqcx7E+mXM/wAoTbcq6+WTNQ+15E5aqMs5qYmGfa6U72OHsVqaF6uTd+rSOUrlDrTg4zx2ZW5Ofp4t+lPNj9P+N8ZTtOZP3L5PfTK5cvproubXaFHa4rCirFL/AOJw9X/JctT5OK3KiX4IXBTLWJOXq5VxUaXSOLninGhqFl9scJKGuxVFzRERfufT2/JPKFJlrBbeyG3tH3cbo5TyzHSK2Y8n0z/Ip48lFnGLoqPwOItmtCl4k5XGBw3RlOEhQ9+BYedF7sWpkzyqTlcqEyuKwxwtDS4z+R2qRxUH2/8AslWLGUKuWY0ZwiGlSQ4bwliCpw9ManlS7SOVK4/0OX34HM2UuhYWym++vBE7XgXp4qy+Oz8EKaa/0L6Y/BiMCjuS4qi5wn2YThryX2zOmKWsmMteT3Y/gcvSMtGYmBZ2cZavwO3kysCpZ8jp2mv2LXHL8m8syss0jDsoUxhm8sdqnPQqfXRhK+zEWRHSPtjBhpQxz0VDoVdiuVAvS03RTyxT4Nv4FTpPyK8M/wDhqpKfY1V2OmK0rZ/5jw8ChL9xTpsU8V+Z0b7K6kV4kc6L9P8A5D1DTL2aeO0fbH/kZQtQPGPJ8CidkJ6X8l3fuYWhZpNdCjQoUR0YWEfc8NjmM+WYwkcr0ilsanLRCHXQ747OMTmOhZ15HC0fVd+xmbQ8aHbtGFDa7HlYF6vJfGbjohbsn3RjPyOnSNV5MLY7SydqRxeO0R47OpY6akSnTX9jn0irDX6IX1JZPuWi3xgVtmPHY4W0WrfwVDtFeqhTLFC/g1s6YpaMP+TocuTCRRU4YrWTuzlL5XAp5cmQk8VhnGXycFwtFwrbFMihj+PJ9xTbVmByk6KWfkwjEmRzQ/qawaFbpop5kc6LTdIUdP8AocCS5bMveilyzAo2t32YdNiah2SkrkTvEFxUizh+TOkZVtFy8CmHTMO33IobdLof1PKQ5c0y01oiZgp5TOSpzMCTTr2Kl2j2k5V0KXo5RyyinA3WHor1ZHXFUOfTl+RWlRXGM6ky6KlWy0rocJw1+MDmXJUZodtzPa8DbapL5FLeUiHyakpym0huW3g5TKz56E03eROGrc7HLcteS3llNu/PRiHXYvucpjtW/YueUx4HKmIfQ3WXsc8uSuSqwYpSr+RTCal5gzlwcqTwaVRn2MPRfX4HcHKYzBS9JXJUL3Ql6u+kQ26SRztTT6FSUy1RyluJW5yOKsp0o8aPt82iGnaGvS6fuVf7nKE6fuOG3Yo48XnsuE2iuScTOOzkno5epoX52KVyVlcftadScfp4rTy9Qco5PlKjTNOWqnAoSSUKoKip8CTWJf8AZyn1XGk9D9jn6klEeBwrvwd37FJ2vc4yu3mRZ5Y/0PHKIZMpfEi9Lmx03+R4wK1DbQk+PGpZySaqFUo4qHSfGZ9hrknEI4LlKmOVR7M4tRyxyWFgnjHF/Uv7OXqmYfHEaPq7SaF9K+YF6uVt5z7H08cR0clKx/ZzuJSfex/VaTGmlb5Db4v4glSy7iGKYcTteBwlUin0371RT4y2ngtNy5zHRxTbtplemHLe8wfck5fRylJ2hRGDioX0z/0POUNceC5UvPY/p9KXuxfTpbJh5Wxq/wDk1MUc36pV+B+l8aWm0RxbcS+huHhLo5Pip9Knro5KUqcbLfGbwpMRnJ9S4qWiFpotOn/sUcfBTS0LEi1UFz/BUumi8oXpjDL9OWOItHFWjV92c45PPS9iW5hitzLONdjhvZnksk8WsSfUsz5FHLMmZciUvLLlQ0KUoSQ/uiuhQtyPdLwWlaKZf1Wzar/syrUYMrIm4ZVKxqFjs5Q1anDMZn+BfSssUqJMWklvovjhD+mf2HE97FhD+mlExHuNvknEvoVOo6H9U58Hs0eYRxnkss/45Mt0XGTTpEyOopeezDz2ZimSnqTLyYQr0VCwYZgcMn1JlN6MrPsKpsVQfK8C+VocysmBw2zKWCb2WlQvU2rRgtvL+TqGZeDL0fTy/oe/2Hg2LKyJ6bXZhPI/EeBW4sbWhUs/plbFSpmMDni0mOnZd48FeqRTbtC+lQPKmBQ3hjU4Mt5RjfuNd/sKJbwPUfI/S07Y5TdaZp0/Ir2yU1/Aryn0OnPwzl6nh+xtfsZdpH2tYHSRlOyl2Yg+15/2WnmSvJmLgt9lycW/6OWFEf2O1fwKPY6LLlv3kpYHHJ7HEcYT7OUpD+lqEZRNX8CpYZo+DOxZwZ48q9h+R08PY5fFZLnKI8scJKxVBXqUND8JGNHt4OPhJE+r9j5OVJG8mVhj9T/guDP8kqMkW4jorisFFdm0XbnoxUI5RifYxspPHuZeGRMS+ipoURgmzCXpUn0sVvDHtps1ktOylke8jmrgvAvkzMlJDz2Z2Vpo5QlkltOTVjqSuLsbhjpbHTyJPpnL0rEGUtihuWvYqbGL0xnyPFQYSpMVqkimlCgc6ke5N7RDbg1Y62Knk5TLyT6eP7lKaf8ARUOUhTx/gdKYFK0bX7lJUydJoT4p8ZaHWEOU7Y5a/BlZLnI5UjlLPkUt99Hx7GXOTCmf6LzL8HKePF2mOJdJH1PUoV8cpbQ6dwxVt4En5HiEc/pVxoxomMQjJSRofyP1VCXk3kqUU5/Yevqg4tRUdjhkN78ClNw0Sqy9jtqPA6WexeUfdGVkzEvsc8nhLVjXFpWuhS2pbWcZHDa3odJ57Jh4NLf4HMQzMpufY4/a48D9TWfYtNx/sb5XLj+BtPnb95svkuxri+NvytlThGHXyclOmv4JhXSyN8p+peqJFbah6WrHM8cqrOSb5PRx9XFuGmhxxnH8HiWfUlvsR0pMy58E1vsT4pRHpx7s5Lly5Jep6mDlMVy9i69KefwVFrpiSapnN6ow+vaTkvUcVy4txO4F6uLysjSankvPhiTeGk432cvUkol+2PI3GGtP/olKp4vLfSY4bpraZM8dlzxh1c5Hbps9K48lhypOM8uKdZmspifH1P7dKz7W4kn1RSeBw/IpfK417iUb4r+jjCeX0jh6aXtPZz9Tpx5OVcqe/iBpTmRRxfK4yOE1vvopDf1RKIbScrqpgcPjEvvcIa4xagUceKotzjSH6U9IhcnxuOx+pcsrzljb9XbdFcnUFy8N/kttwo/hiblS1ODl6W9daH6uLVNbG3xy3GDk24oyP7VPI5QngbkULwK89Ia8jpKh+qUkVey0KGsyOngdSrMxkswoSX9lfS2iZbTyfamiklb0WoTSM9GtixvpGNDT8+S3GT/9dj1kWRemKOSb2jak+7LSH6XolI5NrSMaML9inyIXKaeTk225fucbekKI3scxgcck8LoVMf0u3y2YmEymK0oRnLMTYpauRZgcy6RUoqFgypPxoej6ekUmdUzCWRzCtDrlb1CHKPteJMPDWB3mfBfRTeS1hs3TMr+De0PGx4LlCyyY78mR2fc1kuMyWv7JbmI8FclSXgtp/sK8jlottDrlk+5YkzH7mWfVKyY6HmzDwKZx/ZhYQ7ayMTqoHDf5FC81Is/mB4ivA/Si46PtbvsVYPtTaOUri8eNk25+BfB3PyV0zoqVgtNfuWxayU6kqqFCTv8A2P0/VKR2W9voxoxMsxgr05L4t5FkdbKlme+xVqDGWcvp2ikt+Rw2ZdD+qaPtaNuRw1Y6TwfBhb8ldPybyZSmDM76HNUKejvH+ylgpdmO2YZ4/TlCwhy07NlS7H7mEJZydWL6tj9jIjQ16tDpGTA6zBW2y6FSoUcVcGFgdqm0OYsdyxZwxSX0zMRBscq5FjA4aFLK78CUSOHiB20UlSMo3s5T/o/449j5HgdcnPsasy1jouReprI4jIk6qSkmZWPYta8FNY9zluUVFsw3ECrkqa2OJtLyfclLb/omVLkjyi+l2YUDrRl3Iq5W2P6YzsUOZkdtS/Y5QokuHaXRiNE+l3A6Tro3vyewottDcrLFjD7FWmxTxyj7cDTabbXgvjBx+pCwxtvMMct6KT6HOLGoSpsxypjiNPofbQsdmNF8ptCcPwO9GVopYfucfUll7k5VFrQ5Vt9YG4ePApeUbykL6UOZloXsceTcy+S0u42WkpRx1RnSKb6E4apia5cspUn5H9XFQx/TD3mxSsTv2OTa49Z9h+lxvQo4y/wOuMJecmeUlJUKE/8A0GW8Mcpjta+T6eLF7D9PFqZH6km734FeZ8DnwcfpjKiHiGW9FPirYsKWv6No4+rlORPtzV4FTUz57IlpNNVPddmZhjXuZePcc8nlrCF6pyJv1ZaobfFfbLtHLlxuJ5D9S8M+5L1V/QstNo5L6bfcFJfTPnUit9DwpOVNr2IfHlC8pzNfBNOL6FDWXIoTarr/AKH9Ltdp6ZXNYeuQ42x10zh4adrwKlSfZyrjlxcdHKZaiBfTwpS6Yvq41HQ8q1NSJ8uPGFE5Zx9Cc/8ApKdKZGvU8TkXp9M2cl6pTc79jhSwmoUbPpWVBHFJ1Gz7uLz4KTpSYlw/JEJX/o42kX9Oxp8nrwcbVeDPLPZhWmxSuXJuVpSOU6lHNvml6n0OeX7ChfwKfVvoiEohCTeX3PZyXKKRUZE3xjK2KiJmR2rnslNKb2OFxqPk30Wpnz4JkS4rKZC9SrwX6anyOk8CrkOLoicF5g0nAr0OE8ryYf7lPv8ASJ/ohtP8DpqbJxEt7ObhqIycny9X2sT5Plh6HDyym3KQsOExYryL0x82VyKbVldvoUcXyswlMGc+TyoejjKbaja8nFUkpePg4xblvoSbnfQ5e2P6WoF6YyX0boqHgzryO1kVR+4p5f8ApNK0VI4TyOU5XsOYcM+1UXDlGE7Mr6fkpTZc0n4H9K0UllFRhD0PoowZY5yvApnPsexjRrCKm46K4zLKo1oeKMN5NrJS17jt6FGEK9ilpyjLtCxlChKkimSvByjjtdjSo1j3FWxOFIol4ZsVDp4fk5JedycfqTlMi1IoTWC5z7jcsy2YMrHuVycSjPGh/VpaF9T0b0e0C+qM9eC1j5MN5PtSgv1O/YdPCFKezCmH5HayZey4ofuWm8n2wL2Rp57FPLlvyOhXEQVTHUZZTmZFE6PZli/YpbaFKKmjLRT/AHE2nRW5PyT5MNYF7DhbMttoX/0WjGF+ihrJSdQL6k5bFbeTjqTdl9mBs+WU6g+GIwzLgpKipqTTgzmDPZU/+Q0uS6/k+1Hco4qdnykMwqRpyioluR3xdMduYPqmn+SpPqh4PtT2ZuvBcujZU5MZRXqKSvyyfqPteB4uTqC/LPlj8ChPCfQ/wOYpIw3+TLJtTJllpuPgWpgtO/ZjuILjXkUctJn3caT8Fv7WxL1cpSnYofJ2e3wY122KU8Nihb8lUoSNUkxw1hi+nI4l2KHU9j9SiWvA8vHguf5Nlt0i3Etip62LWWKhbz/QriYOMJqKHCeRTyiExYmUdfcW+L/Yy16oOMJ7+SXDeejMU/JfLCEumlomEe8E26Wi6ki6fQpa/cSVqngUcdn/ACeRTNGNIUJ7KKSwOG6LcHDjLxKkzEQezaLekjCyiUsJMV8cJ4gXplwuiolN/wAFvMi9LdfJfJKG9di9Ns+5OGxJckoEvUlLZU2/BTVopGW9DlP+S3yr2L5JQ/Y+nivxBTcNH1PUYgpKGhUs6gXq4u70fdpPByh8nsdyL3kUpqntGU5G2lyrtiltKZ1Q2krnzs+py86rsb5TlrCOXGvk/wAnFviriDn6UtRXkSnbgnkmrZzXJJ08FeqZ8KDjT4ptebHjD0KeTR/x/B/yxHZKfLLf5JTT9TXjZ9XFqY/0OVPp6OK9S/5ZoU8tN7UWj7lV9mOx+pu0snH6nEz0KHP5K8H/ACts4x6r+R/Txlv+jm5SnGWVKTUaHPJ/U3o4+r/FGV1uPJwaSWGo+IH6ePXjwc/tytiiIt79zlCT/JSj1STx4uW0z/llnKWmL6uTX5OTvjF6Y1KuF17kcZ8ScvVLhuMky3CqYRx+l905OLcqHOi2sy8DvY5aqfI578PsbidbRz9PFulhCtYfg5Vyt/8ARL5NYWh4ttbXRbTw8wKOXbrRxd2xT0ZwN1SemNY/cWVbPpunFn/LLPu4odpWhJvCkUNplOsDp4G4bhvj7ZZhRBcr8EN2P7aaFLeTKyOOTyzMV5FMvCwS0pdaYpbXwxrklvofqTJmFBq5MPLfZTVKf3GvqpmOiuxQ+yXhRkS48m6PpfJjlagpK0P3n+Slhe4l0adjlPA7aHHJ4ZytV8mcx2XNFVnoo3kpp2YyZ5Uhe7HnJXktaYm216kcZKUbFCnBX/tntPRrJQp7jouMjiKRlsr+BYhJ6LX7Iy8exhqZML9xQ1dlOTWvA/p68lXLF6piEzKOP1bYpa0K4aHfLQo5TEl8cCShDvs+qcj1Zmim0J1stzEFt9EvlFv+yWkss+3jDS2VylNPwcpa0P6n+wrmkQ0nKFLcPyJQnZx+lcRRKH9UDhPA5eC32XB/ydClxC9zPp/cxxYqLcx7H1cm/wADlr9hykYasy7SKfRcWjWGhuVUmaRqUoMKkimv3/TCwjOzGxV0KoteTkvZjiP3Fci8GNm6QvYrk3fsOn+YHD2acSfdovfyfcnhmXovlJfJm1rvZMzk1kprf9Dwjan2LvIoguzH9GkKXgU8nT9uy1xWeyZbloy1T6R/9Zlq10XOF5E04j3MbZhYMsSgctqi5tDrwOE8f0bwfblpdmoLTX7nKWkoEp87PqbzHZcV7GGUxOVgtrKHCwvDFM2ynBEslJKE/I62ZmUP1JOEhNJOfgdNyn4Oibdn1bPpnE7ZXnszxPhj+niKFo+pKWhx2yKpfwKUZdnGWpgpLHZmd9C9kKOSdGV2WXW9FOJaMcui2lMvTPum9it0yuPgczof08cL5MaT7FcV0VBw9XJ1Pg9o8mZbtUVCvpnHGfJ9sUim8oUwvShtLNDpZbr8n1clrwKXdH2r8f8A05pcvTKGuXp2W3hHG2lImtOTh636lL0ltwcHx5JWuhZtSfS25MLXbFFyvIoagcPiy3sVbQt2mZPc4tt5a6HC4tShLklXY4f7I3nr2I9kOE+ux/U1EvMjn02lJXKPSylPc/MFpNQ9Dy+7M62cY5Z+CJeTKSr9OOvctJUOnj3geGJerRyd9HKeKtSvwKVxted0cWuLzLOfqfb0ujg2uvInCqGQkse45cPWyuKSSFL2tScVy5cuS4pN0nDhshcuT9NYmMr8lv1TLM8oTaOXpSVpTLeofwf8WmlxefLEuMV6fBLXcnJx296glclmG7R9T5bd/BHFPCOPpbTl6G3LhtqYOTlKFNeY/czruNjxFeDjCaedjzyULyJ+pO/cSS5Nz3iIOXqSShLWhOWseSeXFKGk/wChYx77PuWUuuxxxacp9Qcoaw0cn9KvSIfLFHKeQvU59jitp+BT6Uk52jjPHjc5SWpKaqfFQcJ48kuK6bOHpfFpXs5elN2vA/VxXJ+n2ga5LlheTj6eXFx+xUDa5aZDaVPt7FfFwl8mXabOMrbwP08eLiFvyxQohsht4cYZ9XJ3y5PDJ5cnE9JCSU34I6UFPlhdozktzI3cepdFLfklKoTY6WBPi+L+YIpUXxTwhVmhelPB1MjmYj2gcddFvtn58jpU28SW6b2VGPA4cX7Dnj1FwTdoct02Qq/A5dOEKZeNMUJL8I5/Vh+2xz6aZnsY5byzjSZDUP8A+Cni1XsL1KbJV4kuZO7kVqJQq5KWcqSwfaswO5+S1/Zxc8obe5OSfJZJXnyOuM/Jc48GVXwOl/A7duOhysoxtbMH/HCF9OhQOkt/o5UWumatn4Qp8mdlNVHZlYH9KX7lNDXqY4eWJQpgp9Czsc6Rh2/D/RT/ACLGzMQyUZ0uxWpoecoTj+x+0nGm7KSq+i4dmMpDqJRbgwngp9ChtiUitbPeSrpjl9in078ivot59hGJMrIoawO8uMDh9C9xW7gy7odrXZS3JemOU9Cw7bFqyk3nRcs+Uh4z1B8nwJNL+RKU78CuYRmXJia8Chfuap+xaeCoxB1MGYkcTll7gUVSL5LI55LZKSyYcyU1loU97Mxfucpb0dSbQ3CWR6ocNqV7mqTHCzKFM5YorY4irL5NvBmCJaotuk+j8+DGGyodwOOxysinTM9IZxcLKLrJnbMyx93+n/kdUhU7SFYmnNmqMMZpFLsuRxGTJbx7D+qFZ/x2XJagrks+xuPYXcomJpPopPMdC+0+1WdYZ/ycltMUrKQo78GnTKSWjDmB2XqS29l8tDiImcGBR17GEpZmJ8GNRsVIrjyz4M5h4MdIxy0KeTTldCna8F1+5a37mFakXVF8uVf7LlwkxVvwa2Px7svlEEy8IulZKRXHjS8jlNjl4IzgcPEFJZnZXHi6Rux7Fl3Y6ShI+pLLMRI6MMVxT8ipU2coc/kThO28yLcJdjiojyYx8FypQ3xefcucPyfP5FHJKGhelPjXYo+puW4SUsfhxFo5Pk2rbP8AiOFqcD+nA4R9UvIvpWHA5TZhZbMYRjsSS2sk+puFotp2yGnhMzLL6WT6cibin5scQ4FL5QxSm5bmRWKOJPFtMt4bOPqWPpHLVJageXaMxo24bJaF9Sv/AEL6nCaL4tIXJpurqJ/0KFyiOxQ07JSfJcp4uLJ9PFLik/bsV6HL5Gu3+5wXpSpbkiOKhz0L7f3KT2WuLx8GZbL4tjabcC9XFxy9PJShJcV9XHikkuOXBh3LHHFbXQriOPF6UZOa9SSbTo5el8XfleTknybysLuSU1+72fU1xlLtZOKU50W3j0015ObbU4Y/qUX5P8dqX6uSV+w5bpycZ9KbT7OUxLh/8Tb9Teh+pZ8QYxFiuMu5L+l8vfZKbt8f+xVyz47HhNe+jjTShPfZx+eieSe12cG20q3JwSVpryLLbF6nywsvBPHjyblNCpTyvZx9KWWs5wLklw5Llx/7F6Xxy4/E/k+14ffsxU5huzl9KyzbhjUaX+xfUnCOb5NuGnoX08vznY0koUm9HBJNzCyvJM/bWBSuKz0zkknk4v1NR8kPlpLZ9Kbl9p+D7uPLZLb+q+xzUo4v1JqDD5OfY4+z7Ek/G2Jy6ZM2Wnl+S5MZM4+DstYfj3NTZ/xZxlu24p2KeDryimrHK32KU9GO/B2d2bz7GJycvUk/pSX5kqbaH6W7aHKmDi8xHYrY8ixKl6ZqmznaiJf5MpU/JxbbmVGWOON/S+5OL8y9wKIyhVyUTqTg+Sx3WxwnDTHKz8mXgqdH2rJUuEvBe4ZENuy01gTTinmjdFi9kfAk3f5N66Pwz6eT/Jb5ZbO7/T5P3NKizLcyxzKH9KcoUqILU4FE0Ol0YXKkK9n4K6RaR3hDhO5kysFvXuOs+xclz+nKos+2ZR8i/wDpylNYFU2LOBzH+x5oy0VFQfalI4nCMzs6ifA21MHtA4ablCtYkU8e+j2XkahZHKVuC6/cmrgwxy0pSH7+4peh1lnUR2L1LpnFpMx6W/k+TFWX4PtawhZmTaGObkX/AMNnyYmiktlcYaZqz7VlGGsH5PkXuYdpFQ7KXRXb+D3bOqLcX7CwxRA/DHPFMX0/o7TnoVp2e7MMWrISTv2H9KUDpOSkjGBUlR9ycODaoyKmqZlXPgxyalDlcWdsyPVFJ7eS2KHseHQs7ZaRUFzZ+BVhn1LRnQtX0LUl9s+5XJUYkzSYsZKLLjJjLKSx7G3+xlb0OOMQ0O40XI566KSyz/jhlyb0fTCM5ktJmHgUuKZPqeWYeJLjvo+3LFE6Mtwn0XEQKehd5FLaPp48csUJYMsxXwKUne7F90OCm3WxfU8N9HGX6mhUsiw6FkfmGcb0y4qOypz/ACilNF1bM4UjjjuS+OUKJYohtM424Y/S3bHeFA4cXIrVkz5FLeUPGh79Tljm1B8FSrRVQjTUGYt6ONpq/IobVIyso5NJ05w//SNzyqsC8KNH/uhp8eSpeezCy2azOyJdMpvREb8mtLaFbx7CpOfkb4t60KI/k+1ZLXK14M4+DE2z7Wer0rXFS4Pt5cU+n8lR8ihvvfY6wS2z2/Ywnfkx08opxafZNqv7Kaqz7ZlJY/Iv+VdGW4fgdaJlrZUCpbFTuSVGh0vp+RS5h+w3CwNOdeBel4MqW52fciKyKHyQqd/BSIbzevJnlvwNceXkcSnfnoUf8n/SHektI/xri+LT9TlzRx+nltKkJ8Zlp/8A7di9PDjbh/sf4G+UelN/JPqX0tY9x+nlx+qxzylw132clHFNzvwcny4rC47ZlZTyOOMOU3Rw9SblPDjb9jh6eLw81g+7nxiOkWk1KxJXGIbi5nv5OL5KMzXiR/dP8l8uKlvs/AlVFKcvRlbpIf2pNtf0UmvVLX9E1+5w+n1ZF9LwvB4bW42Slyd0cX6ZdxMl8XtH2rHa8nKOK30j/I0m02lUktxbeTMV7H0rwOU7TwSuPjs+rlxa9U4bOX1KtP4L5Qk4IXFXAoTVLQ4aTla7PpSWHlmVxab17C9PXsKOU7FU0cpSt9jtzXQ5mp/2KVxelRTTSTePJ9232OWlh9iadNj+ltfAp69zr1C3fgS9Ob2z7mseSnFjm3kWHMjbbUpv/ZaizGUiosVansiZwi/TgebfsO3uBNvQqVMbTqFoX23XRbVv2P8A9nD00NzycwxtQ7H9T4txqRQ8sTScpThMcNtQzCw1r3Ha6p+5yfJZb6OTXFKnp+DhHGVD7OS9Syv6HcODPJKPYccnknk1FIzOOjTKb0x/UlEZjse4UmeP7j+lLA36cQO8o+qf5FD2vJEQZ5XJbWDGTDiB01CGk3scyKXg+1uDCMbZlYN4H92JFWH7m04Pudm8ssduWVDmBWWmy10U8JnyKsH4MZZcui1k4wno4xUeDEDlZZ3MGVgtzkarod6JSbotekdNW/Jqj2Y6H5gx2WmT6eXGW0camlEGHomZhocPA6bl+SqE9ts6FEmUhxyHTl/uKuX7HyO3ieh4Vjx/oWYn2MMyOFxy/JhGWzOmcvVRjCMu/B7uC+2OUnrY4b/k5VjwS1OO2XNj9zykKePY6Shoq21I0vBhP9xQux2n+xjZcoXwcZSiBU1+B4psudn0vLLZt70ODKFaSj3M+nJrDZ92jKfpRnlkURljyZei/ThjhJmdIWSZYx1sv3Mr8GrfuKZ0by+ifVxHT7PL8m2ZgUPkyowez6MxRlYkUl8Up+R2lKPKHUClLCLW0KU7KRXFozpDvRrJ9r2htd+R+6PtSpjlpC01BhXBybauDMS0NKlCOUNuE+mL6mk2KmjCt9yfb/A4aehW3jwTH7GHFvXkw3MirMsttpobbhN+BSKMQLFNdiiMdGNnLx8jiHbPtaMp1+RQ6fwNpcXjUEDmNlrTHL5O3lJE1iRS3X+z7W6LT3/BxrXubVoUNUhfbh5sVOp0Z0y3pidlvHwPOzHKY9hS3Z9MrJluWxGU4QphY8nCHbHqjjRShQtjnFrs43hj/A/q45FCnByjjy5S5OK+CklKPueZH9tMqMJn/wCycKnBlKEv7E2+SyfSuWi+OWlsXp9O++zKUopR8HJSlgvz28M43yhOh4hNbHESpY8rPYsdCYlCRTyf8rQ4lOEP6eTpiwZeim7a8ktdbn3FC0j89+BemEsnOOTrz8HGE6bZnXUDufgdp32XeT5a6F9tI+pTKcVJxbfJtT1TiCeXJ026gfHlz2lro4ptOUvGDk2ncLEdI5PkrhPC8L8HPj6uXOJVfH7Crk1D6ZEzLeoGny5ZeoLjCZxqHME8XFLvwy13EX0JceXGHPFZRPNcV6Z6OOt6/ccvvqh2lU9nJrkpOb+qGvY1H8GWpcdf+YoaTTXk5Ty5Uoob5ckrfkfpbURs+pvtf0V5w4HNpJ9GXKjJbao9KUPi5mfg+pr6W8Scfqes6pnHlOHq4K5KOPUrsU9PBKadivt9FLj9TJbiHxfscU+PKJXSF9KVPDYo5Nts4pt6eDm/Tyyhx1AlFt+DDwv9n01ft2OE6cUx0/4Lel2OE9eRzyl/CHmn/scLjn/3Zx9XKbSyXydpcexYVe5/yb/8x4+DjHFfmTjWmNx5IfSMpUjLdv8AkpOEW+1o+rits+qZSFTZmJ8jp2VLd/2cqd//AA4zOyuPFX0zg+SmH6aihNONf2Xx5ZON78iuIaEuT5VDH9ud2cYSedip1YvTDpnP0x9ULfucIXFpu6flkqYicSJelpS/IrmWv2PpfpuNoUceOJz7jaSacM5Qm5fRc7g1sWNeRQnFlPaez7lohR+DLyREnKOTcNGIkVRKXR1CY46S7M5b8i9TjZtTXZnZvEYKa/gUrTFPJbFCVlzVGrg4vjbUPL8ouaclcWyuIoav2Ke5Fh0NPUeDVFpQKfHQ4UGWmfVExod7Q7WvB1ZbdsvUG+hZwQh+pccTs4w3pHFTRrJxnl0h2rQ5l5/RQlklpOYFawKIUJCvJTalsjlZlYHLevkdTZaY1yeP+hrFjnoddlwh6tdjhtxJy80KZUnJpcXa8Fysi1Zp4MbRSaqDL3stJw15L5Cb0OJyzM58DzRr9hr6nocZUjwxUsryLPR4nVjji7FK0jP9l8U2k0fTxX0qOzlRcf8AkbULv3Py+zaYvYWcC+CE6cs3pijo3VmXYoijaFiky4otlSoaZ/x5WxzLHG4FivgU8XEQawUm5a/cUNfwfKFMKmu/0pCsycUfS8KDlajj/wBnJtbGfI4TLby2K9+4pqSNtFt9GpFnyJKLjyNQ1fRU6FaTXyZVJ+C28mVkcVg1n3LeUz3nyO4sct4M9kXQ15FnDMs+1ZQqmjCw/BVYHLwP6kRG+5HNuSu2O3MEcuL08DX0r0/A0lxP+WStR5Pulpwf8csf07cGykzikpcjh6Y16n9KHaydSOU1cCuUWnc+B2paRiJfuKZVoUQ5aMYkx/KEq3/RF5PtSF9I3HXY2vSOWqKSHCml4IVZIlimeVudGnC9hL0u0cnX7DlJqj7uOzDx0LVHK9n1Slkxowr/AKNfMjhOxZ/8xS3TF9WxKP3P+WEz/ipaPtcJDhRIrdwhQlk49Sn2bsUKcd2P0qJbZv6p1BXFYeoGm+WNipIt8XS8DxMI5UlP+x03SLem8Mf0qMUyuiklEGVlZkT9XKbE0njyVNwOJz0xX1oXp5T2fL8j+nt+4q4235LhnsvJxvydfBTe1g4ylhJEL1KUm78inlxhqMzMi9K5ZW8nL6uOEVLdMfqTw0ZVJeRQ+KtraFNfIvTxWUr2cnx4vj6Vw1M5nsc+qeKe0vcbXJuOTblMa9UXL0cfS2ql18EO54qZg+rkp5Q9bHPDHqzfgzmXmB2nT6FPJRuKirJ48pXFLyf5eLbctToXpc3NDXqmH7YOf0pxa8Up9i/VgUvs9pEo41jWkJQv2s4r6nM/yZ9LicTKglN8YeM4OPqc0uOWYS/b+x+qYhToXpjDZ1fQ65dCh9bPqWl0X6o4tvCZfp/+HJLlxesR5OCXJKW1fuOpbbWfwTx5Koe6FHqycVyi1LzY0+TuZ/YSTVNeTjCS+lbfTMPvs5JcuM3eehQ4ievMDbUtSOOX7wVxw5HK5OPbsUJqGxN3EtjhJbHEZ2YRCW3vR9XLsd1P5OP1csONbL5KOU+RU1fRbxA6Y6x/5ilKkkOVvqYONN5MpxDF6uy3xhxy0KspLYq5Y9tnHikKWnQsYk5R2/I2o/cVTSFcY8ClPJhP0vzotSoRD79y3p+Co85H9ERauRNt4ehVOzW4EnxatnG2kofRy9PKaH6mtHKEsrbL5VLpUJXSl6FMqp/2OUnvCPt9UyxzCpDtqfk5VSS6OMvTLcyKpzH6W3h7Eoj9zHWiOTfbhQJceTyuLlFzlnFepOE/9jlx+48/sNyqXk7XwOnM9IxsUKMmUoZ9sCcD9yFxu9mNsVLCGm4h+TK1o0OGrgpdmrkdSpHLeF0cZTy3r2KaUtlrS8GlhDuHRUTBbwKXFNDpYRhClMVs+2LI/wCioX9mTe9irsf3D9SduDLF9XkSaTx5FGiuQknxZfjRcrRxix2ZdqO+yk9jrEo7pjz0U9CvX+xLpMzj4HlTBU+BT5HHF5THT2Vx40uz7oyO1ElN5Y8yOIYpb2LLkerHrPku4sSlv9y3bL8GsJD1jyZHW/cfpWYVFtuoUF8lsV9C+ptqFg5T6bjyOUs+46YnCxBSdCtuDW2f8VAsW2Z15PuaUnUFpqWfdpLA55Jy0iuX8Dzgrk7U4LZyh7F1Jlql4PuiZKaNm2PHkVuZFPR8nH3MqkfLFRa3J1Y6eENy8sXpexz4RTePc5JwrSMDt4nSHC37jqJY2nUdI4xyyym4H7jt59inszOTK/g1cCpV0UnspnuiFLlM+rjEfJa6FlUYWts0k/cd7QvZit77Em1oa4t4N6LWUJfc2xwlk7hn3canwS0nnwOowPNshctIal2OGl+5mk0UlTMTnZKb/wDMj3K5b9xw3k+mcFs+pNmXa8UVmHkVcqr2mTKprY23NSh3xWBpu1DyP6Zz5GoWE+zLrwzqE/J8opwUnRTnJa5Zb0cbT/BfJv4HL37H2pUKa0S0tDjjxuTlLzB3cGljyfc3Yk4yL7sdDfF8XnBk4z6ts4+lNS30N3STMvZ9ycJCVv0ij00/Bay0K3rom9mMyzLwhRFt7OPq4uoYojBiPmS0ymtaIun7H2rKwXcrwP1LA3OhLlqWVy5fcvJD4rjE5OTUwpKi0J1ciXK4spOo7H6VXm5H6ltrZa0NQ3BlU157HVKBb/YacuWhT6m4WxJelwoyuy1xxIobyuhKsI5ZQ1lRCKTudjtyW28eKIXN03tL/Zw5ceSxxStrcfg4w3wSay5OUPi5Us5tPD4+PLL4/wB5G/UojsS5f5Lr+hprk74pKF2f5OL5J+myHEv6v2OVN4XtZxfp4q2lN9iVOJ86IlU5/kXqStxfsJ+ltU/Ynw2P08trwX6oaaVo5r1S5n8yK2/uH6ksefgvly+pp6SE2uPJclPmJ/kcRLnfgUKMzoUceNJFVKnEbJlnK/NitPGmSlNdQfSrSH9XKPTFSc0uTl5spx9PLx7CSXLlKeGjjEtptfyckuSy8ShpJ1MjaiLOXqm00Nptx+40nvUs+lLKeInI7tzolenDLl5LbE/UmtmmepvL6PtZxSThshJ9ZQm3ydo/5VH9jnilCW3YnxUNNPSxBx9Xpx4ujjnPkd8W2ts+ninjYnx4f4+UN8qnY8occeKbXsYi2L6WtlcYz12cZmpWh0tbH3EGnXkrwYnAl0/fwP08U4UZZ0POUcZTTh7RhNT35KhSn4F9UUy5xB9tR2z7V0ZePAm32Rens4y5hipYayOG3XuZn3YvSllnBPl4yvcUwsYsT4y68ryJzy0ui4j5HC7XWxw1SgahRCHTsi/pa0Ost9l+ehzyiB314Lj+C1iDCeS3xqB1J9qdleR/ThC1RxhTLfkU8WZhbFfK2PLg7K4tHH1Pk4FnH4KNaKlUO0XVlmdIzkysF9ilb9jSo4qbUiThCXpbhGVQrwvBvQqWjoy5gp1KEpi3/oUJqH5HXsV6aTRhaMbRvBhZFcjpucGGX5HHJIafCvTGT6vTCZbUmXlnHI4fKmUlUCkTxb8l8nZllQ8mE8k+pZH9TpjhLD0bqV0OPI6dl+p5EukUuKgdw4Y7W10PG+0Wos7hmMSO1gpzk04HCV2TES9CyQ2jUUcbVSVydiqKnaL8ENtODl92TEwkJrjEyxfS4hopJilLIsYMxg+mXZc4OWsSZ2hzWhak4w5N4HnA5h0W1+YNukKUv0VxUdD+nkYTLTsykZWjeybuTDstMXlCvY7nAob6HYrsuyJ2j7tRk4vi5ba76Y3xZc5XjwW5pDtUl4H9KsctYvL6M99CbYqWWx4HEaFLeEOe0YmaONIXsOUqY6TuTRmBUrY83IrX4FO2PH8F7agpJUaVyXvAsaR9Nx+5auSHeiHcz+xMOaI48WK+vBb7LWSnoUu7H6a32KuMJe/Zh8vYhfUoXgl1K/7OUsU/+k+lql58GV32fTO5E6do4XML/sSba1oX1N2VFo28TsxULoW4FMKxTHI+52/YcJ8YQ6ToXmTeEO2p8lL9xuej5Q6tQVqDbl+w5dpGJqRTNrwO3bY/qeZMyU08lLUGEKeikmpEo0+ujlDw28Dr/wBY25d1kXisjuYv+iuXHfZPlCuJnYn7difqTMa9y+2OlcHJz+7Kn9kKko+TC0PLf/RXGKIfGh8+M8k+TmV+Tk0l3pH26nJcqGZFGb/6G6ts5xy4v1cVpvovlyb5copSO8QjLcmZshrwZapH4OfHjx4t8m24SXlnOeLtck5TWoLh37EqJUOEykt+B+y37Cji1E8o+NnPlx48uUp8nLnovj6Y/wDfgl8YU9wX60+TczN9EPlzwmznx4tv8Zz0jn9XJU1FkclxhceScNo9XLCa4r7WSpUWcFxXHlXKofg5pcnxbbiP3P8AJxXDi13L9kPURvA44tVI44zCw20caar3GuPJcr/s5L0t22R246PtSleCqyJ8uTUqcL4OXprHnI20lS0zi22sO+z/AJNqNYoXqnilC/8AeSmKUz08VxttLHg44x6l+4pbpJlprD7OSjlE7FPLjn8jSaeXSOc8U2k/BMckm/bIvTwfH1JrLhYOUSpfc6Ry+n/lLH9rj3E+XF3KVdja5L/it2Vp/wAtEclMJvqBx6m3Pamjl6uPJWnETs4PkuLh+0aOP1csyPc2OFsbtaOL5Jq+TqGcYfLDRSU4s4fTLvTOKS/glpTD6JlLCK4oT5JY/wD8fciE7WbMo+pOmv7G1x4v1Lits4wpqMD+1S42yU+SUrv3KSqRpJKL6G7mTl6eKWOzL/gX1PYvq4yvkhOFHsdS0xRRiZb6F6uPJ2L6WoXuU1ZxlxoXKDlStwOuSn/Y5WmfZy4xf+jCdGFk5JdaY3WTk+SWWJKEkv6gfq9VxVWf5MrC7P8AJPFcnFWhepOX8/6P8nqXLjXHpeRJrabv2GuT9T+6qFDcxBMo5T0kx5Vzof4qxzya32ZY/eTEV5Ia0zM2WukbcmOjDLb/AIPql6yVOvIvTDhn24FU0zGbyROhS0YgVZTL2pHW/cp4aKivYbS6NjloX/Q/t2JpRZdjqMjjU9m6nyLxZT+4tzQtWWrQlTFlP8jxyPcUpmX/ALFCezl6WqkbfJKW+xtceWbh/kb5Liqbc/uLwYw2L6cI+3+heS2mY0L6Wk17le/Z9vFwKEuhw0m2Zdt/0KZoVybyVxiV7iS4vAvuY4cWR6XlnJqcn2oVrD8Dpqxw1sXq8mNGONDpr5k9kOuI+22KXv2Pt42vI4lfkvwU1kqcPwb7KapMts10YgTp0VNMduj7e3gf1RPyW3X6LKlsUzTITM7Kuv6HL7KSSsUQpZx9SdM5fTBb6LZ/xJhJlP8AkUtyIUTo5Ql2YmkKtil8Ubctm2KYFK7GYeh7oy1RUIuFRlnKtmtH7mxRYr6HPLpi9PLxglOcrYmoqDlvDzIoT32OYbfg+1uhy2sFN59hQqse7Y5Q75W0KUkY5a8lOMH5RhZZjlhDj3xA/Z5omxWoFPF+R/blF8WrQ5UR7GW4RbbhIcQ5jQ4fFxC6KlYOUvzZncilzFjxhEXTHi6GkxVyihxHZaei1xmPcTiXXjol7+B/VLVU2tGOJ1+4piHBXKlBxuJfsRCqPBC1KOM8phoct37VgWFK9/JlvA82xqH0XcP2LSmvBT0cpl6JhZ9zlbzOTG+yoOM+RTxy0U3hHKGv3OjH7Dm1jowxfU38Qcp5LJjCHDSFWTuvY+5rBSy0XxYnehzy0ht8uKpCcvA7cyaKa38mNSKZtlX7UObhoUppFR/IvqgVdEqCITltnJNRKjY42oYo48Y/k+lv6V7Db/8AoqacvoczUDz2SnEFvlxYoXZhUkcY5TkVJa7N0z6UtvY7ctpbRxnjy4tPi9r2K4t+lJYXgxlwUkq7ZXqhNOyfTx0v5K45bh60cnxafqUf2cp5KeT8vozx/wDQW3x9KcRpyOuKqcY2RPPk+XF4XJNymvGjg+fHlylvD4t5jwcPU+U+lPXucUuXLDUx6tSjh6nhtI+rjhcevj5KThJ+KONcXbFl0/HY8KFCL5NNJdewreHP8HNcWrSeBy+ShJ3e2J+r9jnC5f8AFbcDSSVpddj9Tf4IfJ22lfuKuKniu9EtepXgVr/I2owObiMUW1EChJtJvs5cIdpafuV/xjX/AKRel/8A04fTx3mhRf0vZ6vVypOK8j9PqfpUKuVUTUKE5khLlCSdwjkuXp41qfg4LirpOphUP1Li4aTz0clETD1bOP1NT9Wkc1K+GN8UlDbtHGeN30PEJfPQ3MTdSxV+xEJfkUpUkJtOn7iT4xjcHGElaHMRLX9HGZ5JFqfUn5GktIWpa7ZUutvsril/ZxfH5pnKE7SWzLeNlRhmYtHKWspEp5G+T4qPCLlR4PtbxNyZiVOi+LhUXxVw9shvKgbablToUQ3KMtNLozxy4MLA/TGT6m3Mn0t0hRWR+rk+ieM8sMpf0Y47mBfTp9mVOS51tCba5T/8Ll23TVHL62vqc/yfU2on57OUcbreNs5LkkpmV8D5N03OFukKHFrwNepJP2J5cmn6p7OMccNPs+nkk51+BvkksvI/rlpcvB/l5cnyy+UtL2E+TVy1CFU29SfVNs+ltWWr/BgeaYpbw+xJNOXs5y69K0bUPouOjGi+N/k+oryjEv8AkwZWEON+/g1jz+itUPNtmHcDXsawayL2HHJkt8vNHKeTdyTxfFyx5Rg1rsVtmIyO+yqsmO/I4sU6gzLo27R9rdGGogwc4btI/Pgt7gUKqKl2YRguaR+RZ6FK2QX5MSZwKTD0Y8aL+n9x+6MRXuKI0LG/A7/kuGqZu14HE72WsOR6gzBT5UYkwjKNKZKS/ctPYswjCcFQhRJbatFPowsi+p5E0poVbbLW4Jc5VUxpXECn/Q0uOfg+qNs4/bfyZ6WDX/oF3gt+RS9JfzJx8ryxPi3aOSdL5PKZh4FCT/cV9mVP4FKXWzCdL4N7NYZmqJlfuO3lfphDvfsKEY4l8Xow2Y0WV/RlOF7G6LkylgUer+BQnvLHSdGGOKkerHDSKbuUcr6FCWW+xTxTFao+3jl+Ch0rXk46OXp4v9x5eB4cnJ06ZymokWMeR4yZWjDwkfSssduS4Tn2OddKW/wc029Ycew33JLbFehel4k1f9HvI4UXY81Ip6fkucMx2KXcs5Q3ljbfqbgcz+B/Txycq0nstNG8JktjiPI47K9MZFTy8CTXGa7FEvBxxhfA4y/jQpac+7Ppu2cnDhuRUlErRSiUadNlcWj7eNfBb5ZQ/pVIwteCodjipHHFWo6KSUz2VET+mVljvCHufnwTKblH1e5lu4OUqfkf0qEnuTlDfW9FrjST7Jl5M8ey+XJS2tIeMt2TfRxmNspYQvqWekOnl4G1OTWxP6llF8uOZGmvusdNR4KhZF9SejMtsvb/AE7j+5OMWK6n+RSliR/d/BF1BbX7GGqSMwn5FDWGWtjhxD8Dfq5caZjclbXkUQOIf7nD1PjEqfKUi5cVyS5KdDnlxcPOMlLkpemn/o5NRaREPE9dyfS3PFNZRy9XJYGriZHm6KazIpXGb/DODiXDThxIo5O1x5KGnHZx+nkkk/6OK5cePGUncZkbUOY1M9bOfqari8e6g5J8eL9TXGXepo4y5lrEsSSaSSX7jXHk2q8RkThP1dnK083+COXJQ2spdnL1JuEoFT6PtbacZb6H9HBSny73ZzXKFaTkVcrS8F8eScv30cE/8iTluJXucuXLln1cr842c/Vx48YqIT0oK5PmoXUKWcq4uXPe/wCSvSqQ5hSzklxeUsuhRx4qEuz6Unjoab5PAo4t4e9iSUwnOC4co4Q1h6/B6eM8vSknbdwc/Tx5Nu374McZ4tbOT5ceTUep3GII48VbiZG5bnlFR0c/SkvTxuag5er1UtQP08FTa/8AeSeXpi5moOOsCXKVKb7PpUfV0mc0+KqtjxGMHP6ZlQ6E/U+Utsb5OYS6Q7yzjDajzPZynkm5XYoTlw9MbbaH7rocKYb8HL6Xd7H6m+KiNHHljPTHHFJ0cvu0Ode7IfLtHFL08rXjbMTQr8nJLxJ9KUUUm4SR9KTiGNKVhWN+pIefqky9n3OuK8ijlxcP+hJRlChrHganDiiMUJLRydU14IiI8yL6uOCuW12jlipyTyacXldUc/Tyax/0f4+PLnySXLl30h7dZTscN4h33BzabyuLiS1xttb9zlKUJp6K5coiyVxf1NLMj9SnCqGc4eznwXHPJP8AlMTS5VS8ClcUmlFcnoSTUNJXezn5j/RSjB3hCp4/0PFNKxTGao5+nilhf7OcpK0VDiUrHyaVW8/BSY5h0adldf2fgnehxLkWVXgtuLQ6j5PiBQ0YikYiivJDRKeGujk1DhEzEWP6uOR9R0U5OTbWRYhDtI+7KG09jXqeBUn+3k9zbLbltChOxSsDlLA3Dx4H9Kw12KW0oceRw5nzAvqVpmujOl4M/wAlTljheOy6s+1kx0jemKsjSevcf1Izr2I7UjyNKKnUDlIdLfkf1T70O/BbVexynjBemW2VVCrsWehQl2cZ9ikt9lRh+RtpuJOUsY0uKeyXMx0fdMMWMMpvA5asah6Y5i4Hu+z6p/ZGHl+BSpLeUd20OuSVf7GuLwn5KWPdlNqkOJtL/ZN58D9xX72iepZp+59PFKWNpN17GeODOx5FM/SV48mz2nyK6LWUyEuNjHKWSksGv4MMy6LTgX0uIFnKMvDHFwOnv9NExFscRvwP28mExw8Iy9ihLI5Tz4Fhwk9sf0pCi69y3tIULDe5FLf8FcX0fSk2YxLIhlTg9oFMOhLMjSqbN02L+6KSpPQ5SVxg+2fc5elcuL5N96SHXG6r4K5JyuWsWKE0n84ZCl5yZVNjmxp1VUKOTixNK0umKcy+i4blHKEpYpVNlS95MU2Y5YQvU2Z3B1j5KaxJf0xHkrk7jwUll+RU8vcD+rl3mCZUuTjE5k5NyqLc55ZY81Zl4gzy/wDIVx+Rep8nCQ/UksJYotv8H/FYQrex26QkuLs+rkpH6XyJcyiXGJFFfgy8yccYZSKm6F6oVsdtSkfBy9XFO/DMO8DcvlL8fA2ouP4Iadk/9ny8WQmlkrlyyXiB3GF2cl2hZ+5+Su/cVHOU++znLuF0ji3ybz2hVNpnKk7Q5an+TlKeH5GnyVNbF9UWZ9FJ9wJpq37aFDFSV/8AwT5NTDb8kLjLhmOMtIy+OIgVr/0Ett6/gf0vQ3E6/JxltTQ3PHjb/octp8oIxbHHqUw+uyuSuRSoyOJahoa8p68nOOSVt9TLFcwuKv3Y6buBvMltOZWqHWmcpb/9Bw9Thr090cH/AIn6OU8drp/scW8N8kq0K+Mcp3/6h+l8Wm+M4FHFw/2g4uePL1LlxdpiduW3ls5Vxmtt6OX1Xy5JKk9KRvlH7uC5SanKOXqlyly8opdrsXq5beV5E54qfqHfpfqXkh+pXKmP/QOXXJxXq7Rx5cVGMerpFxspcU5nsXqbS5SzOF0P0tw+UP8AYccufGfbv/Qo48XDjsUcn6pfsKuSlrTRw9PL1W1hKZSkxylr3OV8VPIf1PHg44ecyfSohJClS5XSOFcU1PnwcPpVy8n1cZdPMf0f5fTx5JPj6syc1yfGJS1samd/k5S3xltdGE4l56kbfBtT5/8AIeMvDjwKG1a+MiacQkyklhHThMXpcOV5K9S9MeThKSv8inj2tDbu56E3y4/yL6drR7L/AGTD5S5Vs4ptq5FK5VPXZh22v4HWX7EpzbfUHLDx2cXyTcCvjleOx08vwP6ZlLr3H3MYdGM0UltdbO/26FY4XHkqbaWMI5+lcXL3K6Gny5coUdHL6ncT+w8qJ6HKhwyHWCU5l+RxFPyXMR5FDeEdV+Rx/wAoJla7Y65KH7nJzxm24TXuck+S43dH0w8rMD+rcy2NQ7q0z0rly+qOKbo58uPFxyawp7OXq9XKE25aQoXJ/d3s5tceXyxcuP0y+/wc3yU206SOC5cW/TG2uxfa9V+Ufa05nRyhJUs/k+rnxU+rtdCSTVPrZL9TpxEFVovtbgaVzHXg+pzaOS4uc4OSeJgblZUNyj1tJTyS4n+Hl0lylKO8EceXHl9K448nNceW1yo5Jr1emT7sqceR+p4fhmF+D4aMef0vSPyfa9lpo1mB3ODi5WmQuT/YhN1ApbcQqg44FCy/JyuZoct1fY55XnAh2xiwmmKKO7Q5tChJDzQ8KUXyW+zK2P3OKhjS5cVDT6HHHwPOUP6V/A5Wx/drcjjksilwkmjkoyZWEfT4HK6H6swjCKHl4NCrLZWDk0moaMRaOMPPwZHmZY800IUrDZSoykRDtNHKePQ04Lb0WlocpO2iL/ganY62YjZT35Lc2b/Zkucjnkng+2MDnk79hRVt9DcYfkiHoj6VjowsPyTKUzswkO132TI44pRO5OTlujPHLMzbPp4zs3b9x6/YdSfkWcNjtaNH2xTMcYSQ19Nv3LTo+3lSQ45Inj0xzdGSk1JyhIcucGSoM/0fTOC1NjpY9xw9DaaHKeDLPtWvAk28QL6YyhXyyY7FM4MvXQrVjxMwZefAqY/aR4cuOxZxJH1bIm2oLb0bcsrT/wCipcfBbRnaNqPY+pTlirkrFDXL4L5f41MK20RyalP1fyfU3pX+DPFW/ORv38FJY9j3gVZXgcJb0yk+S4ytsqKTWmfS+MNRs+ri00xYdMeVlkxNsh8eOKOcprCuzlCn1SlgdVLJhYOTTblfgaSSz2x1k5UsJf2KI2Om210RLfyzOh2l/WR2rckNrDR9UqhQk6btwQuObyReRWvwxP1clnoy8MeK+Tp/InL2+jTViiLTHPFy37nsmbiB+mMtmNjh4SHKeUcfnwUllfwL7vqcd7EmlkSS5fwYaiNeIMtUv7El0P6ZleRxdSRL7Pq8jhvksjh68itnJ+qb6FPLlUYoWq/7OK9XLsSjiqbxJxafJw30S1t+Nn08eS0c/pUurhDjnx1yqV2Zi1oeFgy7b/kzo5Q04LXLHuOeK0dSN8mtePJPKfqjsnjUyv2H6mpnUGexpuKFbdvo5qJnyNJJYHd+3Yov8i9L2hSoUMb48UoS3PZLaUqXcDjKSOVN2tnK5r+TjhQl25o4x6seluoQ2uUT22NcmtYae0f41xdKHKTW66OSXFJJ8VifByl+lPlxdNuv9HJerllaS8j4qoTms5L4rKW/IpUJvaz0cv8A+rjywlEYOS5f5OTlPLXg9PHi1PLiuOVHY5XJLlPS0KuUJM4/VtNZfSHNRHGFLE+T4/8AJO/Y4pLiqj+H+B+njDt6cYka9Lw9j+nim3HUNHPj9Vwp+k9PKeEp8c4sbbmOSiz7p+nj15Y5TfqflLs5/So4pZrx+R+lcYuJbf8Ao5SuKfHi/d5/ga5cUoW0Xxdvs/xvjyUX+6gT9LU+JgXqTW8nCejillN5TIw00+xP0rk5a7zYpjjEwfVzUzOEjhX8M/yLi+UTWfk5epTLeYRK4vjD8iSSSliaVwtClR6mvByjjx42msIXp4qWtUN+mL8HL0pL8kOBzLpZG+PFrCr9hQk9Dp/z2O+Kh+R+pOa0vJjlMs+m8vE9HP0uKaWui16afkXqc0/nBbcps4p8uSco4+niqKScv3OWahvIk3P9HFepvHwcXynP9izj2F6oRlQnJxaXY65RD/uC+K08krj0s/yOlT7H9tR3Q/SlhZndluD6uT/9AvTxbbcYYp4qpR9K0/6G/pdewpnEYOUNTDOShTat4G4uGYmmhUrVSmhOM8ksLo+rioTTpfBxT4v6bwn+Dinx5KE++zg2uKy3KT7Qk+vHwcHN8Um6jsa5ceW+KteDlw5cPTiLOMQoS1Bz5JN3x5VDmhTx5RWmcOXLa8M4JJWuyOLfGl5PqXpmehZprwK+KOPHim8t1Hg5Q1hKFPycnz5OITdC9Okh3MOclNqJHKSxtvSQofLlSSpHpabj079zk+Latedi9XJKnNQ/Bjfkqcl/6MizcizaMseKRcDrLWDGYRspcrIfKJh59xUoo+IPllpOkO5xg5JvklCEOXkSvLMYZtWOpwVdDTUbKZHqY6aHDT/YVGE6OFRmclxkpbRjKLl47PpacobUq2io2tjlyO0xy+N/AqiRX0KFmWe5aa/A80Y6G4wpMoVsTiJo5QnlnK9Md/2PNHtJyiP3MFQtCbTmB4toUXB9zv8A6KTf7bOVLZbXVCUdHWS/BXFGbMtQLORelPLITdnlQJy7khvtDU8svBulejl9S+kc8ozuTK0fS2pcEuGo9hl9yKOKeherjWx3sf08ev4MPXkUPZazJkWdClcq9mWZbt+CJTO5OHqbUpnR9uV7CuYghcS1tCwrMt17FGeylsuTyZRgqHSJXQ4T15K8Gu+jahe44T14MrBjolSsmWqf8ihyYGqdvySkv4H9v8EJ0/gXqaf7GXgeEKjDwVyOUOcsidM3rs1oUw7K5RaOKc47XycFx5be/wAmUO3htG1fuU1j3M5Rbi0V6bTOVPvBMcagbccoSQmnbhD+7I7bU+5TaabLjZSiGy08/wCxUm/YSd02QvU6jBytTCJ8vZU17jqNe59UYbF4aefgX1coj2OTltPPnCOM+pSjjF0nQ78jlYfRfcYMvKZzbdz0NUv2Fb/jBC5LD/0Rizl6vbJL7nBauJ2U3Q74x+SYbs0qPtUSW+TrwikrjTH9X4lChznY4W+heri1Xg40lXsOITj2MzbQ5UR4HS+2D4fwReEJ/Tidkv0qEtC6g4qmZWxzx/f2MrDG/V1qb/2Ydw9Mdcv2K6en0JTyqH7HGHyWXyl+xxnMyfTOF2JtpQnI8MqXYpMlPRnl/wCZlWjiuPOL4+pOPHkTSVOdjjjFHNerkvp4zbFGnZacy+jkk9zs5pN/VyTd+5yXJPCZyccW60zrHQ/S+VNrBy9XJZf9F9ewrUxNo5P1OH6php/0Ty5ccztTR/i+rltYXt0RyXp9MTfg5vi2/VySj8Oh+lOOPwK0/V87H9S4wk1lwcHyb5LjyScRxy3IvpU3pqe/Y5fdTT7F6mlXHKjycOPD/G3LfHEH/Hk5eneh3F3vwVPBR6sJQPlHHC4vHsfTyUNz2fdypNZzcHDly5Lk85mdk+lv6k9HKFNLTG545iEpOL9LURt/9Eylbu3Ms5xylvitxToXHjy3Cy6wzhy5f5Hl+PfRzj/JyqalLo5ept21p+URPq9PGHb7o5xxf1NefcXHL4wsO9nP6U/TDUWcvUuKxp/ImuKv03I/VxaeNC9KiU/gT4+nL78vyc/wJJt23tG+MJeRenk1KZ9sQWk//QN+lRCe9kcnyqVpCp0XxhVpHL0vjlJw2vc5Plx5NNe84IblOOXU4KlxV+bOC9XHk/wK5iEKeKw6kcvMsXqbSrLKXYnLV+eiEm5T3HQ5ttzfuNSm5Ubgct207SODcOI6yc00nhUQ9NaP8ijCU3+BRtIc8vuTF6vSvVxrZ9PFRPlDhzTy+Rx9TiW9LwP6XMPDHKTpvo5R/wAkWmrjs4JpuJ6Qpah3iCPqvz+D6pabS7IU1HwfS1lscpqn+x9PjyXKTTMu1uyeTbleC0q+Sm1a86G6cwhvis8V4GuLx4FHpV+wvT/jVKcrycn6ZxmfMH1OLTUCSuXJylv7X0S+Le8kJvr2P8a5JP0pcobS7OfpankpbicHGrb6a2cYmYWo0Ljy4ppw0pTOC4rjGBpvp5OKmN2hrlHL1JrMHNNNv5RSimcobVs4JcU6bepk5xKycHy1J/h4rjH/AC5Wf5P8XGdelv8As/8A5C5eFwR/lnllOKjwjnPJJuOSJ48uOzPpvz2fdx/jRfE26N4FEmOKHib7F4ycYzKTmCtRs5WqjZs+54IadeSPU6f5HCM6Pq4//wCPYvTFJch+n0qHL2P0vi69jPFtP+Bw+WOoHLjY8Mjycp3COUNa8ihtSfU9M4+pKBVx/IrY4a/2OU6V6PaPAq5LPkxktYaZqvaz7uM5PpbUvwyGloTvB/yxPY4FL0Kmx432LQhFsprCGvVtEuezlKdmnY5G2nnoUPyfVI0qiRe/sZgxOxx6silO0W+Wh6tEQ7RhL/yFi56F9QnxbZTTt9jt5QlOUz/6ZiENzxVD9/IrVleqhU/3HSeS2smIrsdscqIkT92OPVS7gc8Xs2f/AAUT/I7yxVNlrwW4/YVTJf8AYvVAoqxqZOK+pi1kqHohcd+59TppLo4+nk1Jc2ZifgvuB3xw/A47Y5RjBnbFLZk7tluR0nKFKeTFQUnsytldPwfaqljmdCvK8Cz/ACRWfCIpSY5OWnpm9Hs0KG+OWO3g27LaRP3YFcuPYcJuxQkNxslPUdDtW/cccnbInX6f8j7YQo4pwjDVFtUcZeEfIrWaMvJmDkk+JnDfkptpT8n3W2yDj6p1EjfHpFRvwWnh+SMfIvTClR2ZdeSlxpzspcXnZLeFVvycY5JxLeEc/tjCWR+prMpHJOrUHBQt8cwKuUQjCRhux5x/suItDmcPotcan9hVZx9XJZeDq2VxRcucmzm16c/kX2qThlZFjD8i+rLfgrilA4ay9M4+l7jPg4+l7kUw6ZSSUaKekP6pyv4KdtimVnyOOLzI25cpCpOmxSoLj+CWlBHqbhyLwns5uXxa5cfVK5NbXktzWx+pdLMj9PFW0nZXLp2K1/6hw3E+4pXZVnJ8nydKcHFPgk229H+Tj6uk5FyhVMZ9rHLaheqVY0mxzDgcNb7MvYlLpMtr+B5wopfJzfGGm8r0rpPsX0u3GTi1xTXFL/su5HPJuJXXRy9LXdGcQP0tJ2nc6PqeH4OXpfJOErcm7T3HRP1fSkvNSceK4rK4zfWj/HxUuXFT8R5ErV6a9j7eUzIkuKUSzj6uU/ThLJynms7jo4u8Pja/6FD0twN8cvlxfUzAmuW1o4vi/wAycPVx5OEn0JPjF8dqzi3xS9TfiDk+SarxivwOtf8AZxfmm7OLUttJ9Cjkk4TpNkxyyuvBw9a5NPinXp1K7G+PFNSuS2cfqbhcm5rvB9Tt+5/jfFptJTLnrwJRMpck58+4uPHl4R9XJuZZxjnzVLbPqfpXFbj/ANI59Uo5eni4Sjvwjk3xyp9hpNuL6OSbuUjM48GHSL00POGNcl6qfRUfuW0rj+CFGGt7FySU3QmvKy2fbExhi1cYgufufgzypfkVrzTfsckuTef4KXLkm29r3ISbUt5OX1P8HFwsR1s4z6s3cH08mnxSOSiJrLG+NxUXWCvUpU3ezjbq8ihcWL6Z312Z5P3slJ5g5ep5jj2cX6ahrVDUxEH28cDnTfRhVK2KePGI7HKR9KmH2cs37GOSpj9S5S3PcijknT0NL1N0lHwOE1MnJxC/M7OXp5p6E+PT8wOlxca+B+lty3/ocr+hKW7Ym/YXq4tOvIoStv8A2Nvk8pYKfFXPZyn/ACJS0y/SrSHHLnbXXui9yvc5JcuLcOKiDLuRXyw9eDjL5YnS7GuS5cpc5SOKfHkvSnuSOPJ0n0h+rlyTSTufj4J48oUpxXgbXJcpfpJX+XlntocvSOfpbWckvi01yeIKUQmP6uKv3OGFTE7xD0KONR2UpcsUtu2OblHyzl9XRwfL1bQpWn4OKlKenPg4el4dyx2lSLaWSoqehP0q0x/Sq+SmqSEpi5LeiuK2skr1WvVTj2OXqawXDHDVJdslOZbWIk5NPKW30xv0xczkvlytISb5UkteWP6VLdXMFZbmPwL/AJNKKToTTz/0KeKo4w5lFvYqeinrpHL6phfph7N5kvNjV58jlcrocLoxdmNM3gSh7/cp7R8eRN7MRNlPLP8A6PBy+raHSwfahbswngtPB9LTs3hGdscPEIy9aH6ps1lEy9DctQhymkzQpcFN0v4OUscPDOUqcoeR+rlH0rSWjiocwp2ZiR3Yo8pnmBZgm5jyfVyWGVDGvYhzcjprPRycJV/2OuOUY3BxhMdz+w67XYnKwJ+Eyrr27HTjIpSp6ONbZ9S0SWpiTHInyKTMlvEnyn2NXSK2m3RaiGxQ9t2Odv8AT6k1RhQk0X0KG8nsYd1o5Q+hQk7PhjmBm1gWFX6S0slJzB9sUL6Ucn6VcD3T8G2ZeTWfceTasSsqKnwZmX/RQsIpuP8A6SpUMu1gym0OV1vsrlML2LjIq1/oiH12WtPwfc1TfYpKZWpMq05Lb0JTxiSY/krwKmmv3OsnGG8tH0uMofpeH00ZWjhD9ULv39h3H7bGs0cqapf6OEpK/Vg48eS5XUqD6W7fLkkvwv8AZz5cuMuFycJWc+a9PXJtfgb5JNT6v9nF+pcpjBK9Lwx3yiI0J05a8n08eVruDCpPyVxyVtJs4tcsNIr1NQL2ZlqH/s/4qU+9D9M/yKHH3I7tFpKW1srjEIaXJZS2Y6Hcw4Of0zjtWL1JbIXqwlo5tKVCTqOmKPTEDhoxLh7P+Lvf4It2iPpycohCh3LLSzIofF/sYWjO/wCiYd+5x8P2Nr8mFTH9XKuzdn+Ljx597+BQlhCtfVBl203o5r1W2cZqO0KlqT6W3UlrIvVCwv7E/TyVtZ7o91E4FD5KyuUrkn15X4K5J+ljUf3Jbx4GvHcnP6Wq8WO1hu5OKa7WZk4xyu++qKScuTjK78nP6VKh9zk4OFT5V/5iTXpTT21k5+ltzM037DS5erHjyf4v/wAv/wCTk+MqvT+1iXH/ACN+msC9SdSrony3qhueLhvtnNelJriojRMx9Pv0cuK5ctPQqm2vc/yemG5UtStWc/qStv8A5d0cnDpw94Y1MfTqOj7pdeJo0cH6YidQKeSpLjlo58v8aTj0uv6OfqjkuPPj/Jx4erlrD9jh9c+pxhbGnx5L1Jbb6OKXJN8kuPUYE+XF3KuH2c1yjClIf1TKRE8v+TE21l8dC5NYekls48eKdvkt+4qa3gibhr+DWzk3pbReE13XYoaynT9kcvpWEtOIcDfJpVOvcb5KcLJwS9OZf4QnxUO/6J5RnkxXsTcZfRKa0P6r/g5NylyaQlxXeU2OFxUfuJppq3s+5prw3of1cZfXwcfVLl/6F6fph+5ymXEL8nH6uN8Vyz7jTShvzWDaxgxxoULSPpa0iuKX7n1el9/I49KlIxxe+pOTTl8k1Ry9XFZTIXFVL2J8k37V2c/SoXyx/avVMwL0tu/JyVvCyxTydTP9HFKlDOXq4tuHGhRG9C9Ktsrjxw8QL1Nza2cpW0OOSbTT/c5elK317i9UOH/AstpHFerjEf8AZwy4b+RTDlf2X6RRxTvwzkvTxWZOU8kmkv5K5LL8HGOTz0P0rk234YuLSy9rJwlLjLb0KG6bXXuQqctitKIY/pi1/I5c+pPwK3rZyhuK1OkceMcV6UtnHi+3FifJ+lONJ6OKnjbYnycw1tKTi4iX/RlrL0xvjyfJQ1VFQ8i9U14kTTUpp49h+ppQ0/8ARMuJjQ3D0K4bXUGf+RTTiNQL6s+UW27f7DuHD3InySnlyeBfUlmByiVGV4HK5OBztsltyJzhz32XxSmf6HXJzejk0nTnsc8XCXgblrH9Cl8q5IXpSWTDtSNTyUx5PqXLDfcWfTy5K3pLJzripjb9i3MJnBPlxUy8JHF8XGP/ANVJyhO1Sn5OL5ccNPE9ilLlMeRR6TCVSSk3ET+48s9i06ZxtCybwjdirJ7orkv5NbHDyjq/cV7Lk6sX1J2P6tmkKk8GFaPeCm2O3g3MnKUtFcUcov8Aclp5fQ6Wx+0jlvMmsi+pdGU9ZKkdK/YV9bgcXMfBa7wfTx0LFJrZhYYx62KHymhw8p/0xz2u0L7ZsqFjyYWmW1rwcXDr2HmYMu/dnGE3DQ16ppbFqkKtxqzjUxH+yncsXj5HD76NxBPq4nyxWpsUJqE9DU9kq2mcInlHuOiod0OFomdEKRNbnwcZ5NykL0t2109IxEL3HDSpLCHKii+KVoVv/wBRSz/0cca8H3NTA4cSn/QvU3VChZMfsLORNNPJxfLS9hROS/Jdz8dFcsyX0KGK9pYHobaWRQngTb/Yzx5CtIR2OKHevcTabvwhwnRf/sjuCnyv2FL77LeWR6hz46Hb/kqSn34Fl2XFX0V0KmxQ13vs3DfQoVUhue9CpKyowzOn2fa3rsVqxw1n3G1duIg5OctPAobob+lw/Yn0pZHHpV0KeMRWTlK75bOM8kplWOkq/ow5HNQ+0h+nirY5aVe2bOP3cU3GfZi9LW9oS9KcvtsUJODFpLcmlcYE1DbjwcZb30NvjOyYVJ5G6UyOWrgfq4xd4Y8ZONaXV5YvTyinMpocx1gtqo+TEYky7RTwTC0ux4cwVUteRerjyaroTc7aF9SdCp4ZynkrS0LKk4y9eWcWobn2EuTOMcdCozl/6FTtPoWcoahaOP270Q7UFz/ApbUy0ca5Oa/gl8vBxhJZJfPa17nlPwKpSQpukxpLps9XHl/kTS5cYfyLcSupiZISp5Pu4nGW00zjfJttfJ9qbbgdNzxQ21xc+59KWD6YzoXFtQn6lMOOv3P8nKeqhawclLWVUvo+lZldCb4vCfc5J9PJS1EqfLKa/azl6Y7wkRyXFWl2Rx46j32f8sNbOV8cv+mJLlDlrYp/ej6ZlN+CYSUvHuP0rT/gfq4t12cZS8o4NeyKlSvecGePJJx0LOJyqHC472SuPNQ4qsExxURvxApfRx5JOeTSTj5o4ceMu2l+41yfGU46OUp4zCOcpOfEdH08OSXJTcdn1Rt4f7CTl2V0115LXphxGdHFtvI45JelptSc+PXZamfpuPc+7RXLlELoT5Pll+fBx48uTXpnksLwcpad8uxSt+w19MckpqYyP0ck78iXKJctV4sdNy06QvTy8fwK+V/B9vqhvwLiuSUJtj9Ua/sv1YX9jSacucZoa9K+pPtxs5Pi+Wlovkll5a2JQpcxj3F6k1+5yfHkvpan+hcuTXKU/S+znDSlcdf/AEy9Dabx+CZ4pJMcOuLb2cp46uoKhx+4/VyeW8MfqhWsI5eniuKf01UClJQ3O/JzXH/kvYhJU34FLTpaa0cpelMJI5+lJ57G5dp7nBfLyP0rwcY48WnEfcOuSlKf3g5uEk67Gm+fFqutD9Vq3lPZhanZyhcbflb/AJEm0p8eCn6ahYQ04p/+7HD9Vfk+ni00l5OPGHbUS5IXKlKvyyYT9Ki7FHFNu9o4y0pfscobSlDt3P8AoUpZayJt8nOSk55QqnocelQ/c5Sl32cG+Mxya0cp4q4ZxTXKnGvkf1Jwmy0+M434I9Slrazg4wvApXLilM0i+XLlDtYOfplXep7Pt5J3MyKHxyuXYvU1hx40fbyw9zuh+rk3HFeZOHBNLE2WlCaTrGhUnbfsdWxr6Vk5Q3cN00c4b2mO9csShZprAk/ShTy5T7QP0rcDfphtpjmqcmV2W1Z0oJbxZxUJR8idYkytdjpr9xNLYvUk/TTlDmbn4FhUtnDP5bgVrHF6ON8W3jNnJvlytJVU0j/J9s8U4yxvl/k58p5TdbOMcHzh8uMJRLOUVS42khpclEPcDSwmX/x9x+nk3aezOBzzmMUkP1KLUDzTRhuC0sLY4sdf2XyRhQ/3G0s+JMsWVEMptYHSgW7aL0vcc8uhQ6lHJqrOUdtihbZc9D+pql4F6nxwxwmx5hsv00L7d6ky7XsKVypeBtuRuViS5yzjJ9p2OmjlSU2Us10NK5TMNnKlgym8bOxwnaL4sSr8lcmqZTRcy3JPHislrlaaFKS+ZL8M5REUfU2/a/czNMw02cm28zpG0mYbmexw0h0pfyP6fH6O5x4IUNuPky23BT5K/BbeJKSuszsccXc9C9O/c5Qm5HE18DrJh7JfLSL7FD459y29kylA8v5PqSqS5U+w5a1rA4WFHRyvEHWyk4ktVI4hQbyO+IqdD+l3Z+RfdaKiUYMCrAsr8iE2lSXkj0tpl+pwiWi08j9Q8JSKndFpYHLcKDCHTuf4LaQ6eWzCyPUPoppYOWs+BXsqIyJQsotsdOjGUKRx0h1hIcJ0z2/fRfptFy5SOV4jwcmuNv8A6LlShS+RjA5mf9HKznXgyqa0P1LDQsOlrCj9jCmG1hmZoptR4ZMtv8FJf6H9TX0v+h+nksp4ZwjlwSbc037kcW7cOfmCZX55DzUMyrOU8m4E28OdFLZzXKoG/VNLtlLxrY5fJ58HKG7T/wBnKeKU3ZicnKEj6ePGj/yHDWi2s+RSteRNelJvR9sWXx4vCyNrjCt6RNWjjEKIHcR8DS4q0inMMcKoFeUYeRQnc7LWmOFl+59KVUJxywxR/wAVPXY/VG+ukKxw+NpSNzMspRKFD42xXymxTDv2OEt1Zh1+5y9LVX1BDShfBlcr/Jxhu0vySklc02U+K9PGOsIzF+Rd/wDkUl9MCUK8fgcPU7yK5V7GuPLa3A2/TyXJtYjJxhLHlQYaktdjuVTH9PJT6U9ZNqVGn5M8fDhvVxYlxaeEP6fU+L89savHQ3CeDL2sQL1clxfGdDtvevYT91fycfVEKZiKnI+fqTmML8iSbwh+pclb86Z9yhcl10zjK/c5TKiOjk/TxXp93ORKF9PFM/zcuC4//rS/6ObXLi/U5pcvcxy6Of08+SiMcVGWcm1yfvQ3MLj8Cw7KanJ9TTpv9hLjxVs5S7lD9LbhLvyWlaGuPKMd/wDZ/j/xqZSahUP3dfsfVyad/sfVyfGU5iP+xvunAstXvBhOvyTHp7G4fHE+DSpiUyjPHlCJlJ78GlQ9nBL0qmn5G5TRgbUYvyP0/UsE7wzgn/8A7OYGk5OTlRD/AAKW2k1oqSHWztH4G17H4OKmD7WpgUNzj3HjkNpyjSyeP5Kfj9MJDeDM5Koj1LZtKvgc+nAob5PHuYn/AGJNxGPBlt/tgSbqtCSXrWCZ4ur8lpY/Y24Z2/4Er+qfJxT5LZqYOxKn6fgr1ZayLorkpte5/wAokWVZdzZxThYFx48eTuENunlyXLWzaf8AY8uCPu68Dtuy/VMlfUhNwm7Zb8kf43xTh8fc+pwr5WY/6YuL48kpTXuOXHsOTac/gb6yJbjwdV4sbmHsh+p2mVxuvk0i5dyK0nBTG6j+SoMyJGDLf6cmuHJNuDiuKdwio4ipLvwNr2G5lLJpnYscm1Z/xUL8F8evgbd5eTk2/V6ZdwpG5XLs5N543dDdJjmRDlOaaElBpIW1+nZ2l+lJ5G1Bnjghl3/Q3Z/xmDv+xKf0dD6OzKj9KhDuDBtmZa/cSwVQ7TY3mB9DgbcM2N5G8L9Op/c6EoXImF5Nfo2lLpMxH6KjZp0PR5LhGy4/2O27O3Q3j/8A5tpf0N/bkcSnJ0JYNI/5RIqWDT/Rv9OxKUq/c6Ll2a4uF+iVwPbKTSpCWGN0zMT+w3XH9PBtj1+vRhiiIwUdkTLNoSUwaYlsdRI5UCWDHQ3kbMGOTc/n9G6Y66HrA3CWDaR/6hmD/jj8C23+jdM6bMXQ3U7/AE7/AKGxL/yNob3sbo8/olSTx5Mwan9KliVNnQ39z/kn1J5kSb9JcYPth0NqHo/4y0vgSmOi3Vv3G8wJbEmmhKVFmpEpatnX6JSk4Z5KYlPJWaEoM2LQkxJVI3c/z+iX1ZMQ6HKbaNfrFcnxVYQ3TUWJUpRmjs6OXJS1MM1hn1Tmf0skpCU8cDzM+TakSh5UeDlyUclCmvwef07G5eTEr9FaWdil8VyiRttr1T5G5aTbP/2EqdDipHUoUppFYiNYOHF1l3oSS9UwcFa7EnQlkrinhVIkn6tUW3E/k5N8WsMXpl3c6Kxy+YNIuUpnZxSmmN+fI2vCdHNwhw2rFLU2KUlJiGX/APk4/V5NJx+DlyVKk8/pf1P+WYfJV+DgmkqkSWVSg4/8MJwTXJwppUcLfkSydv8Ak43HZwTfkbUrTOK+njXLZxTbVtqRQ+lgtwrmBu2t+B5bkbbh/B//xAAmEQEAAwADAAIDAQEBAQEBAQABABEhAjFBElEDEGFxIjITQgQU/9oACAECAQEIADiLvxrG7nHJ1DIvs5tlHHjs/J+M5cUn4+HxAjx25+Xj8ebB1sC9ON9OdceV9vITHjxS3i1ka7hxrZYY8kCP5FaKvV5B1xOPx+c4chiFyqnw5Gz5QLCckO+5Szjc4gct/KcUzkKQtdui5+PmiE5f9lPwbpADaIId1bY0lLwrZ8SHH74h4x5VFWf9JcBveon/ADLKl5ltTvItGfG6o4lxrxG2FXCruH1BK1qcTJ8tiyr2V9v8LuWmQbg7pSyy20qGFxfq6lwlQLnXWS6/Xsoi7hynbDiXi0W8nIlm5OObPl4LucbHQ4kPx8QscnxTZ7Di/KcvxfIpfx8uDSI4cODx408QGpz4+nIBa+SscLl3OWFwcIiM+Sys0eXRxyWpbxbiUx5B32QdxQdfyfInEo3Opx5V1yB7RCjk6S28eKlzi7OKVcUQYcmrOPIS3kVkBqXXZY2LRPxJ8aA+XL5H5eIaWGvHkg/HlVThw+XFqnlyt4cTgWnOsf8ArSHKzQEzlxFo4/h5cAXlx418w5HDj8X8f5Ad/H+U56Kc+TR+LmtnHVvkVh/9EyH5C4crJ3Asn8ixYSq6JRVw/v8A/UUEu8jxOo8eRsu2X/zPxjTa1OPFdjwTv/6ceJU1ZyFc5NNTjyrF2fi/Fxe/hRR+TjyAp/JzGnj+YTePHjyJy41HippxpqceIE+RAvXjrrwGcvxWWH4MLPwB0cQnPiJn/wA9w/EkeLVvB+gblVicZdNQFhxU34UVArS/vCFMVhnY3ACBUrIWOIvRFlD0FSyKM+NYH1CFeubFvtdgrC59UVdN3HCLdsKeMrIhEpj9A/b9TuH3KUuNrPltQRyfyf1v7FuLf65Gw43AbqcRJ8QZdGLDkuPJ3AslESpgTm8UnHiVDnkPipXIvXnezjhAFnLjxDHjcMqBYsOINT43hcBqoWkFony5PKGkcny2pwFNTj0LfaNhAaovlYwY8Lbl7a8imvxtFvy/6oWi58qpnyDB5eT8dUqp1K+kyojUp2ceSZHlRR8arkfm43xOS8uPCwHiFC1i5sW22y7gz5ls5cnmU8bCp+TlenDiX805HwA4APynD8jc/LyGnjw4HO1aGcdZwa7hMSXKazis4pP7Dqv1y4nLv8v/APPxqwD048eWPP8AEcEjxHkUcEqfEchQWocuM/8AmejTU50bPipafjtuH4w7/GHCcTitznxTo+Uq3ePI4lPLlxeKTjyUqYM+LdL+OocGs4UFRLlXHh5DjRQGauUAS28uLRcGyd6vLKiKi8XIv1s/xBgff9lZKsnHjkCb6BUSb2WfGJcCyYOoMBIMq45ACO4VkSGG9MupVxC7iRzXiy9j3b2Tbj1EOpx7QpCDeTS4lmpWwpMuj9IdQdoON9UXOIhpU6gl1HbiR4nYgpFCK3g62AlP/wAuPZy4N4ca047k5XU58eWC/jwnw5Glcm5XKrjxb38ZRcrkqisUnF+XEv8AKHxo4NNPHhRvbQcqGOzSoc+V0alz8BqzhxPl8ml5Q5cfeXIeVHKxw6SI9Q4i73hxVM4pceFtnGqqOyrbgMUKFuqaFwAyDRUbWzl/6qU3Diox4qbyLyFVYoFQ4uKcQIldFrCzp4tqHGlDmnny25+NDU/L+MzkFacf0Sr6uCL+uoX1DGL9fk/KUhx/PxTUHkspbjrofDYPybnHjysnLhy8M7SycTJ8B1ys5NTirB8hZq8uPLjnFolvjxXX4V1w4l08imcuZVRWrPxnKqnHhSxKpgZ+ltuO5LJW3A9FRwa7eROTuIMeNdxb2FxfZVwLahBrtYOQzY9wNoZSmHGiUdxIoRruDTENnHqw7Y7Fq6Eq28YdYsU7eLcy5d3GdZK++4d0GseNQgYMbiss96iX2AaLXV2WJk4gOoeM4penc2Y3AyVETJx4+xB1FucuNpAyouVK3UhwvlcUEHnbyz41qbdPM6lKTnx5cWcOTwdOfF4rOYVQ8V2CnRyeRnGxuWt3x403OXGwo4Hyqc3j0H414/M4tIJx+OnHner2ApwlnIEeOw4g4J1K0JyNzlXEzhQrONeNBU4hUoHbaxdpS2cdajfUZxqqnI48nAitZahap1Q5EDHiwadSf0ujTkjachw5NTkK1OI1TRDlu8eQ9ZOoORdnGktqI+XUXJTPjx+VvPh+OrRFwojwrla/gOU48OIRQl10nsD2KGS77oY8eKZw+PASK3YchG3CceNQG9qtQ3UflPlyGNugVOLkal5oHg/d3q9wR6XKntAfYE+NZHjbOJTq3gD0h9gOnLGWsONbLuDdD5nAtiVDve243cKG58gMv2XlxNn/AEMq8i+Q/k48uyDUbSeR5PRcRCpbcvc+yDTolWvUepSQymKyxwpqcWdWxLN8saYKQH3DYsGp/YBUzuG9QWpa2AX1yHuBZTTHYNscjvXZvJ3Scsd4jPyc+Rk5PK64ggKZc5ON/Fsr8jXBrj+Pk8biLDhbrxSFpUPkcbf/AKPU/FybjxflZ/8AD8fcrjx4/BOAljxqhf8Agitqcfk9/wDS1DiJDj9HFOUeKbPKjxQqcKZxW40jOC1qKaXEtGfFg022vLOIL/0lcsaGcuwipC7nJnGwWdm8aZ0RtqPKsOQJbS8aODy48m3ksEOvyIljz5rEucCp7Op5GcR6QgeQLlQNnP8AGcy48uQfFCocaY9VOO1PLa/RxexKZVtx1jxTs4lTlhbx4nOfk/H8NOLPxgtIFRB2c+FdcePK9eIzkUUHFegDG8w/vkCun6nEuVsW9h9RuqiWT+w+5nca6K3CIRzoog+Rwwi+nFqhvIb02WQIH3L2VkvY96lRBlFxyHc+NdljUacEep/AFbUvIIaLtwq9MjsaZWXN8WycSuuPcOokGoH1TUr7qpXkX6LDcqFEJdGfk/IDU+XLm/E4cD8ZQFRucdyJXVbvHYyrbllzknoSmqhxjvaAY/l4CCcvkXx5NtRHziWI2Wh+R5PJHjxfjj1Tw4nHv8jZU4gY8PxDHgcWIvfFWxMbnezkDxnOzDiI3G4/nOgbBOYOTZdNry2HG24FR4j3xtyK9R5B0thAu5ew7oaiDUyXfXZoeSrn/wA2m+iBtIVkCuk4uuVpRk5/jObKepVmXdTlx4rOOlzjb3kfqPUeNu8f4EufyFM5CiB+ahH8nA5ByBRSceUsZxwgXKibc66WFXnx9eQuRHjOf5SqeP5eI5z5HMoPxDA+OHEagpOXc7nHvOyadJlveRuf7x+ok4lRLLa+/wDKaqHEqcuNVQUXPidyj1NgRLZ8L2ceIG/Hc5UFhqTqArOPH7+OalkXYGMK8KZ/I5KgnU7agbcSypxQIqbHlUXcS42BXXT1O+tou81Cv0X4aY+kBqBlhXc47Y2R4+wztabl+StnImTy5rRDjWJhUaScuBy74cDhgaTvt6hhL6XEs+NRIUsQjxyPGiIXjx5ViIaUmfk//mObZx4vACUXaIZGveXA+VTlxQz8RyrTgjtD38L2AvXF+M+VtQ5HU4qrfPkcdn465AjfgoI8efJahaWv4uPaBVCLxqcQnJvYF9/Gm5lTi2zjyqc0C0DuKs4oZLth/E2XU41OSmzsg/fZOSlEAe/jXKy6aihsog5UpLIqEQSHHkbOXNMf/sSmrnBGDFj9x5JOKPXcr9VUM7//AKfxJ/1x/H+XkE5fk+TZw5HaC9FzjuxtJk49bR3LjyTs/IcixLyP4uL3z/CE4/iTQEnEuf2CXU5a2DAh9yzYo4XcxZycwa2XmbUFrVJx0nRaJFe00gtYq9irUqPHM58lw4N9C9LD6DceKDUxKg/SR+4FQMgUX+m7qbBi30KQanRnL6jx3DGxzXkKS6JrCrYOaM4t5Fm1CchKTjfT0xSt+NNwblXkbiKSi4dxC5Vz4sqOO3HuoNYl4o7KI8cjhbx+47BuHSwLLnAVnI+vlyMlZU5tFvyEItzi5caibUoW4ni8RdOM5pxIDcKCWDudzlxbz/58nlZxt7G+zgJvEDA4kKcXiGnLiDcd74nseQGrZZxVucaeVT/9bhCjlD4mHJKuF9SqLixB2f4Wy5VS7yFdRqcXycqnHbpypfq7Hj9cbMis5j/6nA5LOVjOR8sn/wAiLU415X0zlRk+NziVBn+lREgR42U/l/EBfFa7eN8Zxzjo7nFjcP6dzl1O58eRyp4/jy3jRPYl9NmSsgUZxfI4wLJ8duJs/rUSJtnbgoxtlVG43EypxHoocQiYy7wOVRphmpyL28nPTCwqceXJjb2Wd34nH/q4jehfYWUvEnErXC5fn6RSB5A6iUZvUMtK3eTbBsjdyrl5UUuNkcnFuHc+NcrLTINuLtTUqDVWX3AqVREIb3H7nG1bSth9rmQ/rjqLEvrpuaEIDP8AINkMKlwRWJZU8pq4a57UqpyB7SqYoEeVYDZL1nRKXZzsJwVI8ctonwvlcePseAm8WLeATgi1Djy7eJ5F+Jo5OY9oCWt7fCjqiqeWEOWVK+uTRaclq8SANDy+hUhGpxWshkcaHOlqDTUo9fsTJxa7u53L+vlWzj9tRK6X2P5BUOeFlsZxq4P0n3yLlt1OIyprAOv1UOWVNufl/ALZw4oUulSqZxhs7LnEonL6OPGcuITsw40QKifV+yxhK2ILbxKyBTcQW4ZHItwLqIDlVDuV9CtTjvfx4sOIGDbKAmRv1bc7Kh9Nex40wwoq4cQbAWVffI6l7CeS0yclgQKNGoQ+hKLg5c8geQAZ/wDrX7gyswZRU2fydwKYPsNYCRoijsNYcYG1OPtubE9eLUeo/wAiNzk0VPj6jc7Li0Z1NrfYdVOJ9l9QAyFesRIHkrJfUfqH8W+gWbORROT8Qu/riryRSOwvqcgeNTiZRV4plQbYhc5PJaDi8SpwUnPkmH4+CVznK3iULVtC2ldHIs1KyatQAinY8TuICqIk5IkA6VosKq0N1PYuW3eQu53c4l91lxqo6ThE+/ItFzvZxaISg2NnXHuV5FspK0Pj3XzrHJy411xr3AjrFrJgyqhsIQ7l7Uutitz8pzT/AJeaFvFUtsYLdSoNT5eAbLqL7EBn1eDFslbOIy9n9g3Bsy1KjhKyNVGmUsc2DZPjs+NCoZgUkcwuoNMeRW/2JGo41FpuC9t30EC4X0mEWycmugeoZrx3Y72h1OmXZC6nbOLbLtmJLblRa7ypWVCzV5fdbc5S2UQuKVKo27KivUR7KYaQStP+cg7HcS+ouk6hcC2oYxFhCuosH2Wy7mhalZOuq6rXszqxi3kO6Nn+Eo7iVB+uu6HJyBdsJ7Cql+S62GkMd/J+Q4IQWriexxgIxh/zx1q1AttrKnIXjaOwYtsrKhd2WxLyLfGDy/IVDgkxyfk4nZnEnyCifLjbSbEepRf6OQdjbcTYRtlVPZa9Lk48oUsqycvlcCtipVfJiWa9NH5K1/I2XP8A6zkWQ7qPcXJbcsyH5ePyqCBOX5ePHv8AH/8A0cebU7lX0/xl1Of5bXjy5cuVBOHJMb2auVUumHK2cuX/AFOPKpy5M4o7GvXJ8iHIYaXOsnsLCoIx0gr27Ko0+471xKZixIfS5OthpsRZ0QRLifSZOOsSVChgCyiUVOyewPYjdPG+pyDz+xRnGgjhhV/q67esaqD9fkt64r64Sy4FM48o06J9VewKLiTleTzGDWTcq5x0n+2EO4N4l1BuYTqeywIfxpncQqGFRKg3k7n9msGyofcoY1eg3Y3dQNqJUxc6i01BtzRnLO6yFwTuF9TqifFJ8QYcT5SgnK7qcupiVDiAViTlVZxOXo3OV1UOIm/GohU4hdKilKmzrusnHiDlWStgoogIyrKDi8Qsr4i1hTxXUdiC1HIaQurjZ2Flj9w5NTk2RQnC3YMrxeKbGxuLUS24J5zo758g40XHCyvYO3Hl4Tly+LTy4pyWfM5HxnF48g+Tw4nX4+fL5fF+Vw3J0zkW3PyfjXJ+N+TTy4f9DCvjOBRUYPs5vI0NZxCrREuWGTg2REnx+wDjOOFxlrFbzqfL7JVwnIgUWpTUVuDfYE6YlzjxinQpUPqNOGUEQIY0rkeYFQruGxuK2AhVQ0udSrlNaZDWUWSqI8UlVKfXSWkG9eJsKGUXctiRW5xUjuRXuFhp9Tk/V2QbIR7lXs8hmy1Yg5KAgFxPupdy7lXEE3GVcJUauWvZjcNbhX642qx1xQNq9i1HYtxsI2RsiXKtwxuciycCJAjyoqF1PLESWEcnJha6m4mbxanHrayDRcW6Ybk5CE4ls+Psbu04UMtSpxM03ClyAVoZoIy6aLrV5UT5tNclqcnl2cUcKCr67u5yh/FyoDVRgI3PlUr5OGdqBrzRqPK9VvJ8w4xp7/JwKse5yTx42b8Uwr4seZxbfyc+PMLOJdnH8IcrOXCyPHly5FnEHH8mocFVVnMePL5T/wCo9ckOXyePMcnLjlHEeOK31TDjceNdFpOPotXOPIIcldvKnHqpU7hLlWT+TyguqmHaQFI14gytgsWXU9jrAWX9XmxR7+NNxtyfCy5xsahjvIEiUxEJxuqjOobglS8gxRi5qwR2BXKXceIFSqLnsO6gWXLyN3NJbFvA8HpnmrBpYEBW4Nd3cvIFbL6YFGOsFer6u6Jd48YsCpW45PMDaiUlXCHhCPL/AKqcsSVbKDA2IbDqM40TkWyoKNTy4pc4N3P5HNlW0ceOSgKOX3+ht0ycTY7L7IhYDQXDk1DcmjvWx5MGqhORBEjx2joKUMnIrY9Rfv4+pwHlb8VIP/JeuBk5vILPkHFZxf8AmfI6ivhvXIvJ0aM5b2UwSDPkuHHkuPLiJKSWvatXOTbUXkFOw5PU4/kLp4hOdjnLlZ/0NcmuL9fjGr/XcT6sOXxjQ4cwn5uWZ+N41b+TkuT8LePLlyHFVnyJxFbVBgjjdcqDuoDsCmBbE8Ae5Q7LpuNDDMdYjVysl0UjX6DIFRS6iWQnImjo5Ua8uug9eQvQZAyJsFvR2BH6mHfJHImTi9VV9/G3Ams6NrI6zoik4olzexAlVrSM4kq5VE+R0H9C58QIlbA2fEyLbU5HQ8eIRCt4mVEGONhnfcQJ/Je1P6WrSZ33EogEquw2COwqri6y8J1OLrFrRbleRVY8Q0anERqcgvCwleziYkWPe8iCxLanFpgV0pdTgPyt4IllxFJyzribCiBs62BKlEqXROJ98gqpUCipxcqcrqiwIbdJmfErRudkqOlgF3CwuP47LeOdgQ4hk+JcSsb6nxCDseVy4I4vGfCp8f8AmooQRbj1DnlLXU5YWWJby+Jy15lLPnOXLY9T8fJCn8nIKnO0sr6/Hy5Da/nEp/EfPYT8i8eKh+Xldv5fyNWcefK4fltBQWNjPx/I5XOKVtWXKspOVZHk9z5LOL3OPJeUeVYKSw1OV3OPIcWnDqUR1nHJZ+v5M9vMu2DRLJfk6YllSrnE8jE2B68bYnoIzq5h2mRemXEUqPCJlH8n9NJcdh9TKlEqmAs6aB8jsBGot9cUgbroV8Z07ReVfaZLuAEq7Y+s+R68vJxSP8SXWTi+T/bykKZYFQgz4tTkUS7LHqpjK9DDXGLWTycW5a9LG7hxAtqVuvH2V9rO4MouVeLbGwWLZh2Rs1qy5x6qBTvTcFci1B2y/V5KKd7O3Eup8b7SiB5KpqUPfUbycXtlPcTyABcAomGT4ncTye6OXOJU14sOWactJdxrsD0iWRaoTl98imwIFcr/AFc/k/JSTjs4ytiCVOZulEC++f4jx4o1D8fE428UovmN4j0HICk48ex4PlDxqceZ+PjZx53y+U48zkR/EBZ+XllPTigCHIZy5A4fkEucubZOHLkkbILsAnGnp7sOTOHIu5fynNtqfjLN+IM4oM5cbI8cnGf4Csb8Rqo0YcBJSfo6iXHYkKaY/cHbnypxjVzqAeXmplSqz9f/AKK6ZeQu5R3KrIlzTIZsvWFkeomTip2/wLY0MLanx8lJEBFHubO+wHZx/itzyWJOoq6JAyccj6y5o3AXQftNl32n0Xs4tMvc+VSvpdiL0DHCFMOv0WMpJ11tWWvTKbnfb9x1nGiKDDltPTq5ReVP94m0qdTtnHCopcepb43DCHUCiHGuqSpdEd/QvU+K7KvYlsVvE24X1FqcC7vinU5XVz8byrYosMNq2Ko1/wBNk48HFeOzk1FswH0Nqchjx9iJCGt/rk1OM/KX1xMKc6HJy45YlG8f6cq64tm8uOzjxDJy48TYtIPzDkW/HkCHDKH8b5+Ti3Zx+Kt8DidLyOQ8eHO+/wAv4x64Jx5bz4HLZXHoGkj8RQS2zhxb3nXUOdNRSqgUUdE5N4cOPK5xKyXfKkKZVUQLdBILU4jTZHuM0gjkCoAwj1i5D7lZGPUQCBRcI3coupSsol32FxPI4QL2JEOpVk7xQ7i1rY7GOkrI9VBtaG8j9zkdwswXN/k5Nsr2LTt/fE9mXYf1fYQPsbMBuXRgbqVsdcryDXWRNnkS5SNwaVhy6ojnTvXXXyYo5HvFolzit0rPipU6gRP0uT5NRHsqod1KuPUWtlCaq48aIiNlKwjZHOqyz8kNJxCcS24WutPdWRYpWF9xvqISq2BZEqdTkVCAVPksAueXKFL+VsFG0LceJdzkchE4t5G6/V1cOKMpq28nLkhUtWcfkbLVuc6ZlYcc3jYyrWVlQC7nIsqcQMeXFdKis+advPim082h/C9T8R8Sk6uO5O8nPiHK4/j5dnDjQRaJy5Xo8eJyb/GAUHDjrHgvRx0hxuccqfk4t2fD1471y/GVvL/zRx/HZvHjUrYcS7hx248fZxGtDJx8tudQIF919CXrQQCDkbeuOkqH22RanJIYQL7DY8fq6yDgRB6K7i2yql0VLjct6lVDotLM5GFcaqZLy4h6cPQ4yriwH1LxDuN3Mgrsq4ZkSqqd4hWxbseM6MV2K3BxnE7Rp6+MPYdRDuEWiVlQBlgT2GGt0Rdjdyrdq8gawu4B7iTO41KrsqpdmBRBvtW9X2eRcn8gXqjdyxLhSVKWkKjpMuV5ORfRjAu7i/QkpIHsCUVU8P1yvqcaGAdwpyfHbnHWooNHFqfKLVzlvaZZy5AW8GzOSfIIBVzDlL2ocW49Ti7qHjVQbLaqWpg5FEuVLOoIyyFrEspVIl6HKsjpZOT8sOPFJ+Mp1QJx48ex6x5XgcfXnxflYIlxENrKef4qMoTfxI5BTsalHcL9LIE5cPTgBNcE8MCPKcVlbDk9QbdHJx5Dsu5dtTvQ1n+P8y4Hk8ud9DRt5UrIl9LUS2IJGrw+5eTY0wG5xJ8aGJOmv011DZ9TuNpQqbLK2ibc7lWS6YO7ygW1LuKXcMKnIUqV1EDRNsaneKB027P7HHTu4j1GqjRMGlwgXHHT6goVOIuSvE7qAESmG7PY9TuJtRZpkGslVk4OYWNtV0AlrjU25Vy/J2S6P10VDdiV15lIx7lUQMsCjD+n1OP2osCXu1fR1UbGNDYrVnRU6hmwer490pkJng/V3qUaVbcoNj9w4lxdqcudNRKLnFHjlEeyr2cQaXlZ0pLqO4psbl1VmdKVGhqceQ5DldkDIt9/JCocrncAIlTlzOOjS3Dl/wBROS4qkLSnjZDlbojyGcuPLkUHHlVPAoCOsc6115/jLufj41bMdhyso4v2uYoMOtrZ8b7qsnGdxoJ7vFsnIIoT+PFOkS7cMltQIXW3ufKmHsNLiHlTiU7cr1S4vkVlXEWJkrYn0NMJ5iKzqbVjkcJU/wA40d2DibGrZx6uNnVsM6CkvWdM62JA9g3i9xLIxbhcuneVQ6nJpiz+NDqbL7Y16UEQZxCXALmVHuezlU30ya5Aol3EyP3O46TjhZjD+j9PKzLyWHe9jKepWT4rsBSlNnxpiNzlZPNOPZKKyqg1s6gxYHkSYxLKjuPEctDxBZ/JVmh9IdT/ADYWdgMQIEq8XMhU1QnLidwBnHSD9JXRP7H8glz5FXBbj9zufxeL8rlbOTUKdgBsvanc5ObxBMONQPYjc5qCxV14rUeHFyPGo8RN4lFKnQp1OCDB+lB1pnyxhdWouzuxPldRW5xCokCkhvR9Bxjhqj2FlmDjyslPbxb0UuBtAWbx4i3K8iXC7igYXEFnx3R2pdkcCWjlWQQl5LTGsuNXOL5C7il1PYn0E0gVG6hUBnI6nRX6y9y4xd0MyqKhVU8diWRJxaI8qyG9VkscnUepW1NKhTLonLkVnlpyqd91tTqcW4SsuYkp8ewAO5xbanKnq6yV+jqDEHGhlZqLs2qi5UACp32gEM2XujXdM437yLYOSod1HXAzHuMfqM5Zk4myi42zWyUdK9CHkSypdUx5DL2oNzIYXDltx2BWRFIYR+5xPoMhCql3LzRi93l1AqO98uNFzgNbVS3oaq4j1HgeBtTj9TldWH9/1FKI8bnxDjU0JTUeW1GruAccPkhvyEqPZOQrDgDHmDUKqZOQkUColkryBlg/8zkjxuAMRNHlycTk9wbbgDs+N3OPyIC9vGypx45gI/p6gxKycrNGzoLJ8WqA3fiLcGycSoNT5XOJRGLTQjYryvJVMKmMrZhc4gMdLnbUvsjdXAqEavRrIVU9qf691DSd61ZEsqN9B3UQMnPNL9nIvYN4JCwp4tRaKRTYJVLxFucVGkLhO+gKZ1AuGaOjfbP49MTNTKM6nErriferDW5VWwt6yoOzvt7ney77dhkSkhk5L3Li7BslWwcjsrIl9J5Aajc49/obMvI44Nm0dR1nu8gu53BqDbqUstqDbGJU02JZKvEucWoNOrAhP7A++42tS6aL8gZt4iX4jUI/c7mnaWVC+TTxStpxjdwdhdNtuwNYORZy0qccNAG431FTsayPGyK9RLhY1AQqPU+M72Pc5dVFCcbmhU5Son6/oZL3VKwbIGz4psq8nGddrBh9weiLfQsuDXLDW4j0oHXF4pbZ5yaloCDZcsGJ9ncGiP8Aa9nJyy774ltwjB8jVTjkWVFqXkOVy5YTpqHKp/RP0hKy5WNdwzoKgTkXE++PU+Po7i1hBOnkNSodaFMsCf0p9buce2f6FZKrSyIRsZukrxBu0461T2h0mTAg31Rdn9gA3GxxbZ01Ly5bVQuXULS05ZUKbBuoO1LPan9hrQ4zHZdFCyrKl5AhrAHZ01DWWXDY0yhlUz4hryuo9VAe5VkG4yllQI6zyDkGmWQYN9fKsKe1/hjcpZz4rSbWVWQSJsSmddvLZx5cVY1eJbgXDiBiJaJZUXZc5W6BcwyFVoDs5GLBnyQxb79nHiLceMDaQKjHucqW5y4cVhQVM8YkdIcbLnIjYygizit1DOrUqX914OTv9X9Qu7E9lHcai0WLezk1OKpCwsWBZU6Llgz5Iy4X2LcP6u1AbuC3LCWXg01LhaVPI93ErurnEtg2z4xNIFTirLai/a3Dl5DS5dOea1UP6n09UvGmwsKg2y6ZeRdwKlW0jUtqEcj9xb6+WzrZdSyezlsD2JhEYfYdTjZKme3RB2X7LO531dlyryVke4M4wcoLSVURrDexyD5NGcXbbhpUvaipP9Lu0b0oWWkt7l5HdlPn9j3UFl3Fxiewu9O2NHa+S/pPri3FuOUz+TyddD5BDYH2GTi2WncZlVOypyrCO61D7lbS8TuceAtxCX4PIC5x5fLS7lDBHTkNWJk2iKNL3DIqLfJzASAq38a2caGNpUL7iUXOfJWL7BuyceoLLIozqJlTjpii1OQrgfaZlbcRXO2obOmB7ASFaw2F2Rh/Te/uK3YS1bQ+uLTr/wCrLVsvKTiT4y7yWkSMONMR8OLNuBUorFCLXS3LrJdoNMpINdj7DpJ/IIdW3TdscbnxvYGQYaUXtK6zK12NORfIh3A6mQbgez/ayeypRQzucUrXucY5sacAgV3dEWipf2gQ3rsJ2zuci5x+m67r2NdGGTlTByKBBDYP1kDdoSPeFM6ZxuXCk0ag1B25f3YbGyF1H+Fe/wAlNbTVzyFnY3OoE5JVxfJxZfk58VJ8U2fG+uWdceMVsAYH04b3k4pO2exdghCOyvY1LtlbPbG/J9URoLnsr748e54MKNWupdISs1HqcmocsxcsfqPU+N0ofaeGjCGgRLuBRar8hHjT+89yf2VluQNnHkmRC6nxqBZKrRt5XOIXU5UtgmiWx/QVpb7Huy6hxViJCgjfh3DiMeOZx4p+kqJtn8ijBvANgW0hcoCP8Go6keoPjewC7l3G+pc9n1ArZb7dzYuEZni5AJytddi3BKiN3EbsXxO7DjKpqXU6d8iQCot9WCU3CjJxjOtFqdkLupQu2METeIFzahpt1s5NmH2X7Pl9AXrnd+SrucizQypSFT+r9wZdmrUO7msG+umXBPPRWnvkgkcnJQs41Uuqg7UY6Rbj3LqXRLRjUT0/zi3il93P7ORcGu0qG7FnFtuJLvIN7OqImw4jUzw1qJQzsnR+msulZW1HimwfIBOu/wDK2AJU/i5kKcF2cm6nJzQKnxy58+C0HdOhP6hRP8tuolFvFsqcuJDiEe8+MPuXDq4stZ313ON3GX48WomfrqVWpc7hvZxi5m3c/wB0oHjsGoM5CAhbscLgfQ/d5hEy5VTGmVcCey16Cu0zLhTM8SLTKumHU4t5EnUP6Hs83zUo15NVFY8qLnzrItmPJnyzUrpTyhRiEvNqzQgbFplYEyqm+7631DuCuzuWAs28HZ8sqctltSvRxsFdDjgw7tCiA1FXY35SJHjDjUuWJ+rPFHJdZBe4fQkaYfSq7KvsZ0w2cnydMLZf2mzibLuDRFtGdTbmoxL2BmqdRwI1WlSjuUNMquuU4lGLkYrU77DI33OIk5UYBdWKYndvHWJTKzAOom3M/Thgi1NqJPItYDXZ+QVIg9JDKnL+2MMbjrL++TTgEKeNT/8Ax8Pl8jjxzW3Y0lRNqA9S9iiVPJds5QEZceo83oH2Pcuu3kfKB4/Fi32P1awdoepx+5ZHIVWce6ms8oOor1FrY8qi7vFyPLZeRLahmSj2wyceripHJxruBUyP3FfLuWztudRMz3Xa/RQYcbYI2R432Jv6cd4tu9sRJW24lPxtufC24UF/psIO3AHZ7cpdUouD9adJ7Ban+D9+01eyoFwsYo5LoqH1F2o9VOJceqHHDDHkhOHK52XBUj/Wqg0EeXkyraaiMX6T6OqOp/Jxi2sCoCbLbh3tbE+zMRoiXkJVlo+zizrVvqNFTslxaJ7E25dTkt3KgVFn9LQnfYJP8q2Z7/RiVBrtlbnK+5x4qTjYzvTpijhLtJUvIfcOpeTphmR0KONNTCyLUfsSmccdd2LZEvYvko8tqBlw4+vIyfG9nEPQrI8SUEprTdeTmvkqolkBcP8AoyeRW9su48g43Dkuxfo2cbrSzV0n8h9wLJUCnE6IKRoucb85NTvZx40LETpq84j63bVNaGXMhhAp343DjKsuJcbrOPK8lxJcuWxpmPSVDSLUtJbcr1W25sCDHDaGVfVeLk+PJ2cStiLURvTCNQbagUbWziZSl5C6gEpJ3B8jrQ41H+IsoHX7lWzpl1spu4EKJyKnEyHIcS429exKhVWrTT5C2Ihl/aVk39B47N7iUXPIXcVvHdlZDidw/teyoeS6yOlxzBTB8qI3UXyJlTshsc7SofRR4GZ305PqJRaVdvLuktyDcqNXCkuJlHaE4iY+3DIL6FwjGDP7LUnLSp5Yd6pDGJcpuKnVbORtws0q8/VXMNgW6FTrZTcQCVsUNiUSj1Lco6E2PELRJy5JYcYd6KOctCc+KNg2VCiEH2Hdoo1Be/0ldcdyVUEqoOzlnVZGxzV3Rr9NhESHJqcigocpMZey7qHkHajaTqZ3GB5DG4Is5FkPJyLcOKFytxdlJ0aVELWPU3t4nk1yPcq+ryFkIcV1aZWXBtWGEarWWEpWPZaUQSsDbls+h5Vkqul9Ag2Qv1aiZcAIldUUxK2D5ON+IEC+woziQu495XsPr9VljGvAIHs6LeLly2DkqAprEScV7iHcoJl1P7EaneQsIJdTkL0Z2dx/gQ2dupOsKLj/AEbYAduyk4wMtd66pgXC7nOHdRyLuVAyN+HFIOMTJxZhCsmHW9QIlSrurexLlRPtmXBqKXr1iq3KVucmthyrIfcHJVEcB/XGCBU5aQyVeSjuf2crOuM5NseS1b3LVp58fi58/wDneNra8wN7nKiqNm7LQqCnd3OLgS/YNtBHkLL9gLEolUxScauVZPqX1LoqB9pbAO4FathUNgUwDw/rxgV34E6ZV5PJUyV7EHoKMCip5BTQtnZU2sv77hXceWzUnEXtQINxaajpPiXcTlYKz+Q4o3De1ybcFdhRsG5VxBaKpgZBYfRaRvoNKiVCrlSn2k2cT7tJ3LVqAsoupVtxqouymv11EbhXcSo2FRCrLqXllqTi5UR8qGS9ieR4jkrJfkqtjbs/6eVgeRdl30d6uQFlI2vrG4tx3uN9tPcG8mFkA/T1cCLZUOLdmdx4FifEltw/qwclC3B2pXsOpdsvYOXPLhUorL3diUTiZDNiWSqjrm3URu4tywMuB7ByFyhgoVEC1be+yV5FiIVPyLQHGztpnWxaYUpOQRG5b8UFGiFhbYlQQKj1BypVbHkDnHkeqfGC9i1s1LnFUL7BhSQo7X6tu4aalbC8YpLFjUOofUKudxPYEpl0T5XqNMW9eKdSqYGRdlr2f1s6SthfU9h9yvq6qXtt+TjfqetMLeqthUq+iVkv39PEhdUbcepSs+P2Fd5dxQycmuq6viWYhVQKLQye64z+RMhQzs1C6TqocalhkKNgZUqCwFmpnGJkC9fjA6nLqVRjXTo7Sxq4SoF9JSziXGIXB8lBPaiVOOkeNSqlVKUJX37X6tmT/V9nEiZCzP0MOrAFlZPICZDkdRrs47kMc/35Qb1CUwL2DfZLrXbzzBsh6Iyrj9zW2Bkq5ZU90q491GulA0dnE++Fva2VKlXsqu3mJOwgay76sDeTyn/S6Fd1lQKd+cQG48uTkZdwpYgke6iWTKhpFepx4+wDpqt/XxuJRQeTsqex0uW+GRKqNetrKZxrwO4JB2bcvwNnE2nvYtZO53kWmcTY1UvKEncEYtdP8r6brbuEUnRceNxswFexZQQONw4118duJcumLmHUZxYxAiJoko6gVUeNmVUeOXL+uOzkWQbyJeruqS4+TlB3f6/bMqYtJ9Q2IhcOUt7l+QclewlMb6hdSrx9uMq5UO4uxthdx2ez2Vk7sHqabLvJeU7cGu/9QnGo5F2XsB9IttRs/QTZfkGyonkf5xMibnUrLiJKPDScWFjCU+AdykyaTagFUIsPoX0OVk4/29qNXUKgQlBEtnIyHGoFzjZK2BRHlWRMBONygLlA3CjZ2XGFuR1qUVquy+UW8jdRUIuTiVHCHJG58r2fF7gIRdnHIlQWcdIFbLsnFPHeiyWe4RbY16/cbjjOIXL2cStiexbgMP7ZBSezQgI6l98Y1M7ikeMqLTo0XDksG2fEq4t4JhYZOVEUdnxe4H1dbCmqG9l13pEuUHd+R/nErJX0FxyLXemzqdEC4rPINOf2dmHUpGpy6iX1ZdKCQ7uBcO8fqPcFdhZs8mRKKjY015K+sIpHFifQbUa6nRCyW3cG1iNwS4QshrBslk+N7ERmXKyw6l3pezzcqFerTlXqlsrI3X6BW42NQKIjEIYxtneQrarZ3GiM67tGB7P7PJnUNuu2Vlz+wbudFQ+oXUci/wDVTeogsG9hyPXIjHJVdpZHIGjKpr9Ju3eIXU+VtPIId1Lbi3pV7ON3OWGXbak5Z0vpSmcigu5x432EEymuox4g5xbde41OOR2BWQyX9CQ4q7yq6l3oXevTXHuclgvilXOLkrbiezzeMSu6og0qcet5O3DdlxctX6CypdT5Ix+3yHEvOsikA8q3aoufE8+NsCCk2XUuoq5OOxu8sWdE8hbsesypzdjhUGNriqwuB9PGypx4kMlbcIt8qnJJVk5VArqiDsXZyajbZON1UCb8blsZfcO5e1Otll4mRUMGyVdRg3OL98Q9EXD7gVD6h3hcH2PKya9pWR/84jVQ6Ku7trqeQztduZCguFwV7rILdTjG0qcXP0GzqAzCf2UwG6TLgVB2oR5V2Ns67CnEyeVEhRk9qXFqrWVtxWpdESmFVU2oYz/GhsRZXRKIrjDYmzkLgdXKnKx3iq3GjYAx5OAvs5uTO4lsfuVNifaQ5VHY508tJ8gjvVbBFnLeuJlh9yiZpONrOtiXOmolFCXKWHH7Rvf7GwnHDLuiBRcNJVRMjugbUEqOkBqVm1ew406P6tuJKufwP6GziVEtjbiWT+q3keOrONxPYFkeM/kuYMfqHVS5dhSVGDDddHEe5xfI5LQmjDrKogbOuVxvtHN/jfkuyVTKtxpMrtmIEuyWpOmp5Bg13X05EvZy3pzJSaW3r1SBxKOsnFu1dKOiBE9lUwGOTsmBUb8rybP49Oa5PJVkOtqi43gW2RpbhTsG+6AufK8a9G6uV6LZArJ/ifUcY/cTJ31VwLaO2onkrcHyDjON3USCUwHuJcs9+MFM/QXdoQsuFPdtVFI9R/grcSsA8ntKWifZERucoNbDqV4VbGJbHlakFjZHkJT8q7GVcvQBsqcfqVsASezYZkuscGFkFWo2dG9VRCjpp64ttrsMyBZE+6jpUDCFdnkG58nwU7usMMhVN9Q/qYzjZ2NqQIa7E2HK8gncO2LDNhjAyXV2omEUGEKWoN4B5HZvQXdtqwYVVy6nXY4iHr5MuBTT04F7K+6NZdbOUp7nKJuAdJbyYa4F98nIfReTQl9V/oKanpcuiLZPI5LVjRTEtxa7LTW8RS4dzKtH6o84rsG9grKhrApzrIOs49boRc1yN3OLjaZRf09ZQ7PohpBTIAQI9TYMcGCAy2pd5L8PZaxFLg3KrQo2YFSk6MqVOXcoZ7PltzKlUa7BucncP5VtxoJjF6l1k5TiPcdhtzjUOQd39Lqy9mTldlXRt3svde8WuvZzvqduBLiC4fagTKqcS3fidnFppGoWQSy8WVTAUuZdx7j9l5FKg4QXzvvgtQ2JH+OQfId6vkHyHVsoNhvaTaueVPMMNdKiNymqLiV3eTEj2kcMfKASbdy71EMnIa3i1O5yK5CcXuPdwvqXUEqXbc7hV6ZK+0pmXUCd1Y2xxuHcshym5SRJUqsgxAblCRb2b4ZHZVdsbCcEOJONvf8AJiVLdsAxKJdbFvIfyrl11iQyL1OYjcKZYMcMB6b9h/faBsi0yr6UnH7g7DMi/XZUfuFPVjEnXRUeNFzaqOhR9SvYZkr2ezKjxScr6nHvbqD7HuVKDTXG+iXH7nHkVFpncK7iEqi45grOpUAezNl2x3su2Nsf5VFQ6jSTyy8uFMVGWcjA9jU+WypW0DlyqLnJMg7c5tlleFcpdTiEQSUJPZxfreon38pd9+x+4lk42ZE9ny2oOXONe0rFsg7b5c49SroiV3duKXL9ny2LmnKnVvIH2bD6b/Q5ZV5HNihs+TdvceNNxbmdz2clYQPs6xWWkFst6oPyeByX9Gd2LC7jCuxrZxM16uGMGOsSXN8DNq9lXsWVs4gb+qszAnlzsuVcGoCZFbl0x7WXse6j0ziYAKZEiZn+rNlpP5Hy2XDWVkeoGVAoincDLLjOO9lOxHuXZo5HINYUmy7J7HvDVlbUC25voqXP8QqBUNYQ0qdlR+p3kStmVMjdYuK8dLRol+Cfb9wBIDdShgXLuJH+fK2Jc5Snwblo1FzLawKbgVsM1RXBbpF7lWXOi0+jkbUGmpd9AmC0Tjpv9Lbqci5xv1+4i4dATmXkSm5sqDRLyzTIKd9dXPKeXdHBqKXAbwa7+QdfLyA3aGS6qWwfIu2rOI1f6Um+O98RcnG7i5MINM47HNlgav0u5usLGJbC2AEvYuS+yBffLuds9h1cKilSzqccajPjewPJZVl23H+DcuyAEoavBoWo5s7doNgvc8tqu+UOqnGXBrZ/IFZOpx6/QnU8qJs+WwxtvdwhuxpbnLCniAUBPZdFTuXTNIAlRdoq+6KnTOlhTHGgL2NBU7LhfjkbitXO6T2WMXx/k6MMnFvlURuK+BksZX0wPJqhAlegFzbuBlwfS3qcXJasXEMh9R6jRG3vYt98Wz9HqjkHdBi3k6Y0bKpuJCsn+VZKyV5KxItdPWfUrZ6ysWJZUTqLcqmcf6I7OQOyq4wIkTM6J3s5NOPL/oBfP1s5NFzi2wBnIHZ5cHKgSrlPTx/l1sPuALoU1LFud1NO7J2YCbEy/wBXFDoRwll1F2AUR2ddgdQa17I8ZVZDGN9QKd41Vxa2HLZYx/XEi1cqzK+wmEBSnC5d99sEnKqnEQuFsD2bApuPWcXNvY6TfTqcqqZMg21HIVDCUFym7P7D+9zqf6uxdlbOThN9TYE7iBOV1nFXiM43Us7l32WRanZP8C232JRcrLgNTCMxdu8l/R3CdYXtSwKh3HqWJD7nTSdUP3MYgH6vc7ZQxtqHdhTHRl0Uve8bh+rom3j7YnvLcG6m1O5tQ+pVk6jsuXFyNGRlKTqdtx6wuWVLgkHLiWVDqOddNS9WfIcjxrYWFL0gNNQYV8Y9a3OOmOli0EtuWUBycnGy7L9WXU5NziQY0x412XDCfjZzq5xa1tuCz5J0CgoDU+Lco6XiDg3DZRUCsnIsjw8gURpLn1FDJxSoU3DAYOSronESWHYepByJUKuJZBpqNQbYuVHl9Xc6jOL2xR2FpE8hs62fTOTeQ+ov0JdygJYVPbh1B24wbmUTsoQ9qoG2+wssbyNJUy6L8nRa94uTsnca6buGENbnXRR0JU5FmBYs46EcyfKOty1ZR2hU6yONzKiDimQ6tqEfuURLLnFaniwZR1As0u5Vw2eYlZOK3Gom55jvUum50YzjfcM2WQ7ytxulgEFXMf07GmdSi4j4fxEQiAkXZsqL7Ky4JU6Vj3EyABKSf1NhWzL2BcqmCT5fqgcAu2243bekO9tq521KGH2KFQ+hfpdyXUDZQG9d1AO5YdceSE+dcrfk8n9FuKJORWxV7+VkJSuN+cRJVFwK7q2AXRQmMArbPXjbcodQSIdwLnHiVPjpEowGewo7xhVR7xULPlexLYPkqzAtue02ePdRL2JFrG5xS4NE4lqwF7WmauUDTVQ0mLTO5e0hUM7dnGexduV3d3OsXuNDbe2neuwuJSRfJa3HScQ6gW2pUGuzl4U3U6bWz9YMWkqo8S9VuoGauVByzRiizCVcTLFqomZDqLbAyBBgdxo2cS4JDGOFS49wbSVZaXdzIkrJWkq4CzpQbGcappHynJSwFYKMy7jmvZuFSo5OIpbxydtSrjH7e5dmH3AtqeQ+pdLD7jjMMhcuIM6iUyshrApj0ytgFzya4gETZVNSy9WjKsqVUy5yBLAtz/Gvd7i0z3ZyPI/RWVDXU3B2N3FfU+U5cbyceO5xxqXOy4UGpbkrJaM49SrYZK+1AnLqfKjdZxQyUDEfDqLZZo7UMi3sHaUsgbcWoDdy6ocqLsLu4vs/yf64bxKqay2orcqyp0Z7v+XRUVGVXXFqMpqlNuPc6gnZT1Es0n8Vrf13RBAjkFC491ErZTLlbETqmGMKqbOXcN1PoagdWi5EfTYOQH9J7DNlr1YZL2OEXyf2Mbu4Q3JaT3WuoP0dRbNJobS94tRFIFzkHn8jSQZdxxlt64NmS7ahkrMLqFsqJWHH6UtigJ+iqlBiK7OnGG93mdMW4IM/g1diLDqPUpOgWPcbuXc+o5MNlQSqUtIs8hyi5R2M7bjTstSBtSvI1erWTi1iy6jbEvZe3O9nLi9y0Z5huQW4b2XLEuclHLsnFRgKXK2fyPIMgtlukCUs49yojUMIu7yLMcKnEO5/UbIV3OMNis62cQdVHI2y/wDmJ7AuDP7Libcr7rYnLykl1rlxfq6Z5R7LruPUrLhsSuwvFaalXqdYP0ikrJdytjmh3QURRM7h9wIF5GOlQSmw7gXLRuMCB9rsWmcluoMdGuqIStqfK4BVw/hZ2UmVCJDu5077cu2hmDrb1xLsiBPKghDuFhcG5UB6nlI5OPVwalR3sLalV+uu253Ksj9xqO5KTpM3iVsC5V5Asi0xBZx9ZxoLWrigy/Dyo5DIMv6vWLc9py6llRCp31Z3AZ0Un89qL99xdjyLosqJ9L9fyDEvYHkaMFtgVsWpy1ibUOP25O4532x4jKGJZShKYLx6H1Dj8Z1sBWOM41eoXnFXI2z41MgwI5EsnzTljybnHl4ux3ros8nG/ep1G6hyohTO+k2pf09TjQaUlwqWDB9ifS2sw2BfRZg3De1rJgwTwLLgtRcYuQ+4wwCDFAqGdchqDeTpqcepbF6hjg7rHjtw6ly5VdpbKSDutkqyoDUIm3FrIO3HGfH1B6jkbqj/ACvuqRhmSvZx60lwj3c4vq0Modll0ls4h2cqWGRog0TsjYXAj1hyoprI31He9GJ9n1AubW4RK2O7Mq4FkoqoUz2BewfvOoN94EttnEyDtyssdyGlO9hdzl1K2cT2GSoV4Kz45DJewM2cfqJHxlLCXAiWR7wa6SthxO4db3EsmXhxqOk62J9PdHU5IacgNPcSu0O3pswit5d0zkbKjUOtT2AVLuJujlrfUsI5rw5Uy8uNrHC5x5efpxhTOQHK4AkWfKmo2kclXUU8NLmrPlTpT1e4uTs0SAuwanFxiKzuphO5VMsjYwjrK9nTrThVgQsi3h7EyG7Khs66sImaQs6C+yu433AphrG0j1UG1BKnk41OXUHLi2SypvyIuwPsG4se5oRPt7nVT3QHFu6FyVaEe4E3uBRKO3uYzalVku9li5R0HUW4oVF9nuiXUIa/pvuDbH6lXSrWy7nZOslbKVpf4YsT2dQsleiNy6mykJ1CqWHcKvU+nl5G/H6lVDI6Zy2mHJ82qgZvx9a8byW1bxyOlQPu6YnQLtS4/wAtnFyphOoU3KzQoit7dYG99S/Fxj/PYFRLKjYT/Rjmzk3kOOFdFxs2VKYDHiLTVZHol+i5RxLm3QXNhcaNLsuUE5FjC7uPIWJewajraciqjDHeXOshabx5A08t642du4Vm8DIP15HHG2VsM2dEfuCLBTs/mJcT1W5ZcNnlx3ZxK7/zi2R5UYbE3RruqLiXAqeSrYPke8tOhXYJUOrjuGxQxai2QgW4uTrJ8bI2bC3Iwup1Fcu1lVHZxNlbcN5SnWez47YEa7gXj7UGHcyfGWxtmEoOvYtTtiQ6y67rSV5CrnfQ3AO4OVKexBglVACBtS91A6OU4n2uVOyoP2jVQ/uECi4NGd5Eh5DMlUx43BthhKauckOjlk25R1AYfQvr3Bs1T3iscaPZXsUuP3GxolDj0y4jef5c8qM9mGwo7VXHoJdZAsuPL7v6vajnQbc/iorVpUsZ/X3blJ2719QMmw0nFouceNk/+aEeNNT4/dNVONGNvr1U46VGHG9h1HCVkSuu25dqTk0wVnFrjU4pVwaZ5c4vgFTWVeyirjTOIyiJlSgKTe+MK8hUyVKiS7LlbZOQXc4wSNJUOq/Q01F+mr/XF+wgfZksqUXcqnKGLLvYdXM7g3MvaItwbcHseodVH+9MRup1KyDbtlXLUiWs49xS6mL+nNVJ3s9nLsjdS7hfUuFVKswoj1FLym5xzt6gFUl1NOgolI4tb+mmHGpWXCIkAJ1FnylAzqL5N8SyodRNuXsGVbcUGDGpRE+l8jVYHKrgtEv2JcHI5OyoGQyqT64s6ZWwyJjD6ibLhRDlZUu+0rZ0XFOx/jVWV7C55Hi3c49RBIUwCOZDqpdspqVbc8uGmrOTszqONRfpSp1TO58ScOVY8uQFw5W3Fzf9QvELgOsCmVcclri93OOk0bKa3igMaW0xqCGTqPdwPYNwcYY1PMOqempxCfwpWLcu+qMhHuLUr2KQdFGIRHubcdiXKph9zi1sZ8e0bDC5x4j28dl5UsJdsvyW3DuLURCJeTycXIn0FsHyUTiPcYbPY6xw0oiIwMpOpiRdjhL9LphXZcZVxxjLbgsLZgfp6j1megsv627g2QcxcngiJDGcX1tXEqWe7UOqnWTqFpcPtfo+ItSqdB97YUsS+tMmpUEuGk41VRqsqV7L+lSLcWu7qFEvZtTuctyd9DP5B2DZFj3HZUDai1Fh1UqIS8jysizqdwMnumxLP0ORu7KWfkaLl3syGxqGMJ8d3CX9HF5x48jE4i68qq/7BQ3smVU4vE40hex4ziSrJVFwLKPuNhh/XjfLCjA+4lkONx7lUw1ykKnFn8eNE67vZWyy6h/QIEcLi0XA2V6P8vYj1EvYGx7hVzj2xiseWRfptJX2clyce5vlXglGp5Pk9OBcNhDWJUAtrlV43UHLlgQ45gVLrJxYVbGBWzuU+1s5GYFNymWjo0y62exF2d90dPGqqfKmo92K1Ddl2b3AoA6yVOnW3YDOV9m+p9V7AbBsOvLKjfhUKmRfGiP0ncGnL7lI3DS52wSNuw5fbR1Tcq2WdLyrZeTj1kpsvvQLg5Lp0jpUyWWE/wAMhiwbd9l+RdhTpQdGlr1U4/U7jd43dSrhnakHUi3v6buf6FaYMrbiEHZdYEVi0zlyLhLTIApHCd0ghZFvGNnfHkHYi0cuAmU9KAY7DjbKplrhxsKhV6tR+4V0jsUpiUELaQr0RYlll0wfrpxp39fKmk5bT3ON3BtlnSO1BKg10pKe4W5DCJscJxqriVsdIZUxZkc6ullrFppQ6Vuf5duce5XUuXcVlvq0Q6l7B8hk9pWtnLudtSuwNKRpqPIIW9/2U9xb67hU6yPZEyMe5RK1g+Ih28ifIl0bVMKtlDCXRnFyXZG5SsMnevm2FynpqiKdTuMumO7EUy2D0Ra6sl7Uui4XOJ5KOpdSypeRGoP2s4hKhuyiNBcKjONnUGu8Nj3QAwL2F7OJXbVkT6D2GdVs6lzGWnVVKtsMKjONGuET6eN7AlXKHss7Gi4dQTZ/nUW+v8bqddclnRcJzXx6uGwaZd5FslZOsipLJzG7nUFCzj+QZyxsOX/MBdOIVYIun2glQxudlylgFQBLj9lWS6Kj1Rxo7aqHW6mdZPj6qRLbnWzjbrYzjQT39UkD02f/AJnFyZeulR6jYzi3L2LfQ9sBYO606cfqct0u51Fp26nE1l06tsupeVFvoX3qK9z+wbMqKVGoMvN6MMIfzk1UNI4VBXVoIzi62dyvI9S7ZdEXI6XASB5MKrl3PqHe1lQU7oW4FYHdS7h3cuNwud8tYrHucSuljdXHQYvK8eXkGtbs26MX0vYJdIUxs0Nl3dOzivx15IwbZf0uQVmkeotbDq4FEG8lhkFcQ24rL257LZWwVyNFQgx7hU7uVspqN1LGou5f15UGmn+SieQ8p2PHMipBudxwnkaiNx3YYUnIYttRubdRsRH+H3AZdlTlPlxi2xIceT1x4nvLjlvHiPEr8b2Tml5x4h3dS/uiVn6tnEvI8dxKMFdgT4l68QNAIcXsL9sSfEjxrYcSoFQAlXsFDQRjOL5OILS6YYTflqUw+466KRDuaR8gxFZ0QWmI+VcTCIBPbnyCa7F2o1dPRb3L3eXGzOPEqIMDlVnRpUbuHG5yqpxZVsGmlYF9GuqdwSdkCyf4uWjPKjTUqoVVo+/riL3ynIvQN32p1BuBbKqKXUv6uCy/IgTyVtxx0ajyyHK52zvXiE5cgZxpnEq76Y61EbIEuodTbqWjC2d7FZ1g3cDYfcE7AXQ2b1D+nJuDsLou2oFZGyN3G5YTO4ObR3AsWBkMdZp2kGmWGRKx62OGtGx6JWaZOVRf+dbq49bWRfI8sqd7GPK+htqcuNkWmoNdqmjXcbWkPtrCcSigIrc4mQ40yp5iT8lhPx/KWcZydzhbB8lztjxhbRLq5x5CRKInJx49VEJxP+qfyXcCsVCPKlYKs4hVx3IL6Y291PlTUd2dARLZ/lSy4lkS40xJe5eQ71bn8EyZMYfc0yJXQIWu98S24G2rE2PdyzqVVj3kv2GExm3l3D6RCPUqjQXY2mVu17LRI7hlbg1+hsl3ke51+gLYysgUwNllx+0xpxZVQZZLaiia4acUYNMumo0sdYd24xzs0p4l9gmTJWzommwNjmwLJTcvYSoNQr3LsVe2iJ7OtlQH0biQjR04fp6iaRaIGz+y7Y2kHyGQb6H7vKmmQ0m1c46Qtjd1E9iFQ2JXV01FwnlA26URNiRut+W1FvJYE7WWBLuIVUYq98k8S9Bq2dkWAlzy4cqi/QVO58isG9hbssI/atDMqVtR4oWkO7lfXFa3i9ygnHiVYitT6lI3Li+QpYlTbx4278UihRGqoHx8uLmcWyHLajUvSP3BelQNIZB+hvY4Qjnb/FrZdNRfve53PlBUqGx6hY4uabsag5Bpl3Hi3ZxVaeyJWQVduObA2ooUPcXIq6IIIFly42NwwqLeTj9x6uD9sumpydKH6EbJYtRC7QtnbCy4N61VTkey6ZWzrIF5AzUo/XbZcMYuQX1YFdkb7hlQcjsycQll1Dq5qVKy4uVC/XDKrIubZWpmdn65dymoreG9LQRO4lkEZ5gZvlRcl+RdqcSsjmwgBAhsS6GKBKOz/MZda3Zl0a9VFgXsVG5W3BsiFTY6WzbWd1CO5M6iXkM75Is5bkCicm+rqmcl6L+0TI64NJLqXOXEOuK3gzyojU7uVK9icoB23UOtOVEKZj0INF3BCpYwyJYw45cSpyvJcCfESceIEeL4ccnxmkT2EqneM4tLEGr+NTSAmN7QMT6DIlRJpqokdc4sXyXRPYmR7iXNCmrl0TOoV1E2A1UvyXU6Y5sYVdy7ZcEagVK9ejL3U6phrcu5dFKbcEupyb2P3DvFBqC6w3u/Zea1WXrLMhK2gJxKVhcdyN3NbZxu0jvXtTl1g5cpRvjvG2BcS6h0ELeziEL8N6sGomwRxq3c8HLe+m8YkvyYdL0R735bUSm0ut/kcCDkLi7LLSWsujbI/csIsSCwq4WM4/1uJRo7P5H7l3OOEr6qHsWpy0sZxXqXdx0y12cTalfQSsqelNzYmTCKRwz43sSP8qFJK2OtxLuvjcuf5Xs/kTyHHZW4tkECLk/kq4ngYTiXHju1XS5OM48iqlAyrGL4rse4vkV8VSBtxfqmFw2cWpVtz+w7nxvRxi7g+D9hTDC5w5fI16qI+hsaaYd1Oi4Vdxfp6xacNYO1EtneRq7gz4o28Tbaq40OHUF6hyyob3X6PqNMS55EvqXdRXa4l7D+pcrYvs4sKXa8iwr4w+4/Uy42FxPZZcVegZt3D+1TL2VlIVL8mVE9ihEAaoqcQZ1PItQLLlMLNavZ23P5LgKwbLntl9zqprFuV7OP00edugS46VOLXdXKsqf0qpowfWrjEGOZB+i7gvUw0fuEvJZcJlQa2cTY9xfT5L35BWWkLpgbGjtohVxTwaNuoNVHWGFSq7/3lxYj6n01+mxoAOMB5TjxjhnlTjQSqjhKHuid98p9K7Ap1ALi7Cu4J50UlHWux0nEvJx4faB036P2Fu8ghkU8thGxqFy3uCSh2FXpscKCDkf5U6Bh3+uQJU6KlpDugAbjk28CslHiWx8gM606l31d9X90MHajXU/ymGw+5XUe4hORbDYnhPKnkM7SiobDDByXWy/Z3sp8GiXUKtZrFj3HvOJlTL2q64hU9wNiw5faxWPLI0FQcqBdxonJHJWzgWwYbi8dlfbpOJTULdHRIFR2bky5WzvHvICAPcerAKwO2VmAEKuNSjtCnBrrjcVZQtRQyC9PceLeUjC+2/IZsr6P6S9uNXDqFVEJ8gdVjaQfoQl7OycdIoNxj1Nl0w/vfKLRnWQaIp1Bstd2VWRxgbc5MMZlESoUlQczk0wgQqsSKEeXg0gQNnuUBEsnx8Th9pWTl9wWoiEOLU44lqPQxSpTdg7OWsKOu40YcvIW6idSvJ8bhxalVCXex5A0jc9GWXYHUq+gIzt1p2XXdl4uykbmrhmQ7iMrYbFqdM2ciuixqIjOIDKLt5NJOM6f1c5X1F6oLhdTblXKyFQPtihB8l3HJe0sSyP8qydsDbgbHrOKetMSo5gPsFWONuLlFTe4mZV91RUb6FRj9xScdgW1Hqay6MFpZ10NDB9nZDuosDcI27GpdFwK43OOltU4GxHqXsT2LkcJ0W9bEqobFNlnZSmpsUY4hNgVku8i1KvvqeR1tBOxrEv0yJWx/llwuHVTrJxK2cjYvUV6n8n8ghD7mPdNw2OkL9BCZFl5qXPie1ut+IytnK3U6nkUOvlFuFdxq7lMeNFwYawW5dNy7I8aBlFZ32is48a7CcTYltwuy+R6cjJx4oTjkq4Tirkd6eqnGktqowWeLDkEeVxdiUk6Y07PajZOOxJfjdMpu5vU4m3D6fYy2qG+p8fJyAcVWLePtnTa7EPjBuW1j1cpIgZKbiUx6j2EoGp13xtUfjUXctcj3v1EpuPLSWPW1P5A2J9cbbs+i6FgvqfQ0XB9awlBV0dztnsfI3pOLkYdS678lZf645AYimBF24j3CyVkT6CtnU7l+xQj9wG7jmR3jUGjb1u/pduAEsSo91MKI1EOoJkMbjRKqo8sFoSx6lWw0qVtS72dwaMNl7UC5kv1fsC9jpUcqcuPoQLjbkMjuzvIxu8AlU3F2kPISqZyL6ArUyJ7P9SseOGX9/LyWvS3Fneyv1QwPvbnHcnxCF5H6nWHHciXAvI1kW4aRMuU1KwoC6g3ASDeS66ZWR4hKCo25Ag5UNlVioEXIZOTtQBZ5c4txPUK2WBcL7ipk3uX7DkMqUsGHcGlgypX00bF9F9jXifdZaAYmci+S2kLgBAGKTYhUaSPgj6vyvTYfUNbUSB9XTGDXfaEOrC9sHuPWF3X6GmPVwZWymtd2UkGxu/BwmxsIgkUCd9tkCfL7v0E9KScWneyw+4tDY3sOWQ6jaZ9E250XDqo5s7N6jrK+lpyqLn8Eqb3LNpKbhrmQX16gIRVYhUoCBcG3Y/c6dTqH2H9HKSmXU7nWB/Orta2GtSm9ArJ3HCGQoqdbLLhnTrEe4ZkO5V6vUGsn9g2AomHItJZ0H1Lol1Lvv2PHq+SXGERYkCsl1kX0OL3CGNTfQO5iXE6l0y4YT/LtjmQWrghBqcmmKykYtbBKqWEbJxxg/fILl5UMqje2hj3OOSrnWTkVoFwpZTP8+NdjRo5Epg+wPZcT77MSXkUq2NVa/ULclHvt/qidEP69XEzaupy7wE7S9Fya4C9r1hd4nsr6CuxbgVRB1hTpYwLZyscBsZy2OMMJx6iegCQ0pD6ViWadQ4zYv0K0QxiB2VLHIdVHbriR3tMoDKQDAcjsTYmx0YNNTkU4q6N3LamhDOr8iM1llM6Nb6gwPq0lFQ7pe5f2j3ONyr2N3gPtBLnFuGNR2HEYlMV8M6PuPUeqlGTkVpx+ov2IEW+2BbKtjx2F9wE6Oot1DqUuFWx7ny3VywSf1btId1HcUGOz+zy5dQ/pH+8W5S7KbyrhZkupas62PUaMj9juQ6lHT04Z2kPsWqjbyuLc6JSRXuObAUp5FdBlj9t2wLxScc2ci25a4+1BSJkDZ7cNnInGqjV1HvR+lWcW7jYQjrAdgWVEAxodrLhjGcTIl1dbct7FLl0TZfkViSxiLkJVwaZdEOtuGEWXYXYd5KIFEYZHenyd0RoZV5E2X1Lol5ctqXbStZLKqX5FAof58shcu4UxCpx0uXtQW44zHXvJ8emXccaggxWcUS2o1DjR+juhSAJU5UdHUf6NrV5cOri3kUrEuDWS5ReIwALnmH1PagVqIkeNziVFFuL7Dk3Ud2PUR7H+XOOtzbpTJRcf78oKsVuE60pqVErZVlT43UCneiOdAXvIgMqVgCfVXp/U2NsUSDce55U8jcL7hU62dRyOlzjCJTK6YXB0Y142guy/tfIFdpZEYccuceML9x6QezqOdrWAZS1cH2DfflRNlZNuXTavk+hVjmRt7KNiw7udM+5XsSzQKjnbkGiPe/wWeQb2HLanH+vcNjVxUgpBO49zl5RqsrbK2dRRn8h9Sglw6WBbH+ixu4h7ZCOyur+KpLEZxqbdxKly7x5BQHF2kNlRxjnSelnUerj2UZsX2BlQKLg30/UqslZUthG5RFKqJlwDqdsUItwCAJC5Q0zaw116UAdhVhKbjQ4Fym5UVvHdldR6gMC9lFS6KBlgyjuBczuexYdxCAQgfT2xNl3A+3j9cTuw+u4WZKI/wBrN9juzlyOPFXjyFLTbiWZdbHZ5KrUYF9Jssqf6z48XY9Z0MT6HKhmxcy+p8duYFQTzjkI9QNz2dwbjvVBL+3lUXMuu20gxhd0C9PVUcrImaxoIGSm4CS9l3kKuJbTjGNXLuKXRVpDcnkW2dFTisvJxtnIhXvXd7FjfU/sqmDTQodCM44pPZytNOglRJjkqm55hKvpKiDUfub0JmB9cS9X+8ermaxPZxSpSM0Zy+4Z+gRtncpy/dQ7QsltxMl7RYxZx11fImYNFx6uHcxNEWk7ztlVBthYxvIvoFkXxHLj/CpYs76LHWV9KEOol9uT2X7LLuFht5HlLOxuXEsqEEiw7lXMYtMPuP8AFogeKZUqNS1Zxdx1jdSgyBttvhdyqI5Nn8j9xB44FOVMSoj5nxl3jTFpgqYaw3T5AQV7dc5dF2hf6q+2HcAe6onlwqcuV1Q3Dq4BKIbkc2VeS8h9SsoGi5yQyXKC7pIpOKHdU3ONOuXHqdsysRcgXVrsB7jrEvF+o11Fe5xzv2DmhSSrYd1FDpdxPpwqDSwNuXVESHHbiT/bxjvVJNeqp00qfyXUrZeQGC1UHZduJcZ7BuLsYaw2BsZdZK6geF1FuDXRs7ike51qNsrZtQwWX6hKnbRqVFpqJfXyslhKY5DqE9nsyrnG+0Z5OJEvoG45KJyaIUSvIUUIfXWfq/CmH1DtjhPlHe+ug5UMW57QlZBbqESqQbj1qeRlXcvJ5A2PdRKlZUqBWzsnEi7crIawNgfdWykZ1C+4q1fE8gJsUWo3Pqcm+uJtxycsm1ZSkqoGRsccMxNeNkONGfk5U1Dkdy4tkS4K8hHJnpyilYtu0HQ0TiPf6N7u2B9XulxI5ggx6qYk8l5N+OFBSCUQ0x7o8uFVHHPblvt3GyKmK5Aru2pxbl5OipxGH1HYv1dFwqrlbATZ7A9U8g/bfcKuJc7Iq2Qqri0XOLcbibcBTLvINZOoyrjK0li1CXUuAGwEi7l3sAl21HY/cfCNS7i0bPu+oNGLTvyyPcLScZX1du/2Vc4ma9zEii3GthNiNQWbWcSyVUzueQ3YO7WwdiWT/fahDlPbl3s4ywKnn6FqlfIt5OP3Pk9S5t3OVpAlz3auVmrtCUR5ZGnYZMG4X7R1H6XGXtuyvpNmQWqjySXkc7dxaCp1NuDHllwKjctqYMEgxbI1OLZFNRa6s9bYl9XlR5R7V4clWgyGuVKTZ8mqlXsqule5gSqIdXOLXfyYx2XUOsPuXU/kocgCSolNI3yjdQbZ7Kg31c8/XLG4bD7iDaci41UvaghkKGo6yoNar6XRcqjV+uOS5Yw2pyagVLuVk0ans8xNxNtG5xAbnt/p/g0yzuGxZVNyzuX1LUuDAuW3Y31LuURAyXlti1D6lFRbIUZOmh3ZdETuq21spEuLpAPauEpjFUiw+lzrav8ARVXD+YMeoW5OigfITiLkGyLUXbhy2XCjvlU4lz2AGQayUQKKltwrqVSQLZyvwwYpeDfZ9RIrVQ73rrth9/q5y6qV9lhUfv8AVTiDEiZcfuBs45sJUOqnKWsfqX91ZMuH9GoF2PUUqA1F9TJ3c4ms7hxxiTk1xm2wpJxft7nIfFxujypxQKi7PlksqodVEiZKsI5iVVAvUDyEvZUBrG/AZWwyOGHc5Cw7hU6nsLqaQd1bIKsdNrM7h9TTtQti3s61wlbhjUAVYFlStiXHu5xIux6h9TGM0qKJUGLCupX00E6KBTVSXfTC4dabDO/bK8nko6jg0G6bOO5A2Xct9BtsK7H7dl+zsmzrtuo91HYsSor5WXG/jc4uTkR6i25ynZOip0VK3c6lBOnEypx7gIWrsPucUn/JKtncqe6pEs2rwupx/vTL+vJRcO1neT2XZcGe3LqKDNlZAro0jbseqnbTcXYXKy5S5Fl2hLlkXID1KuEqGEOohUoG4v3xpJWS9n9mMavHqBKyphsD0bJvc6643VKtS1anbQFFANFK1cSkp3Z8d/Rdw+hMgXrx5V3dtDb1ddsXKOPU7cC2fEagV1UbuGS8wh9RaLiSganFaoYPsEiZgjDbs+pcHCIXlgzlUeKwW6hUpiZO3XNn9LGORLbg0w+3rIEcm9x5W1L8ily7BDudMDaUouVEthuiS/IC4wtJ7c28nEXpsyLLAhdzi9sKe0OoihSM8porAO4Q7jsI5MertqLc9nGgl5KGZcS+q6itxgSsy24Cu8hAnmj5OPUFms25QM/3+QYr5V1bUrNu8OJRC/Sr2x0SqqsjbLYHss6iVkQIm6f9EVdhFcgXHvO5RA9gVcWurslU3Ey4FtzlUbQUcl7i7L39LKFi3CKjg2TKijkOocgIV3FZZcG4cnqfKW1jyDF5U3Hlk+XJ2cRJdTj3A6I8Sqixc2/C6gy9nyJxi5t03PkkbvSHcOPqD4kpgvTpHuw6wNuce4sWjL2OwHwYYQO4tZOLZCuoxtIaVFrJx2cgJcNl0y6i1kV9wlStEOQkNiGEc69zPeTRcWmpdz+vc47sH2WQ3lrErpdgEW4UgLcP4ITbg5O6qzzk1EvqslCT47FoScQhXTqwM11qVko9GFRxjP4AEqVZly2DBj3Y1Kt1tIdQPurIxtl+I0bxPJl0+k4zkQLgSvJSdgeUx6nEqP8AR2ewqp3HIdyxyDsrYd1OXcuoZFpucXNfpbO71Y9T+y4Z1NuXu5VQfu8nRULIRYtbG3YL08Z/YrcD2dFS6NG6jnTuPDuhPuqLnHqOwpyV915DjG4ARcnZnEgvcMLn5DqnjV3QN/oKbL2crqHLMWAEoYi7OL4v/q4OTj1oRGNnTvQ+fo6lFzkRayIkX6Gcd7MZ9RbM4oT3Cky6cMjBpasS4jkSDbj1OJbcO6UL0Ug5SVVTjdxYX1FpKu9l3LKuNZPhk4ld0H6SyGR0mdzk03Kyd9NDLimT2ow6qZcuVk76rKipk6bj9nFyIXcy7jysqaysitaP0YR5R0nU/wBBuDUzuUdncqo6n6TYnqMSCBbhsOsfucKqmqiBOJKJf31O25y+x5WQI7HuoXVwYVQwI9aVdR6qEcls/wBcnaoUkTyXc8lLB24r1EauDZLru7INm/5kRIPs6bU0rk1OJFypUX7NbjHymrl5PqJdyquGhAgbUDbiLkKqimPE7XqhLyLUv2ZWPVw6h3Uw2KxcnLaiBsWATqIVKrsdI91LqXRA3TxnF+7nFi9idyvU+4lz24Xcf7WSrKiQWD9f70Qbwoq4HocaLgeTbuWxLjRD6UxnGHGHGoB7akvxGL5PGF1OPUO4l98eIdoT4ncGyF3TVT5PUOTdQVnROtl2zKyqyDbnHvQFqJNe6vIH2hcGXTOXLYtw2dZHI9WLaEX6EZ/ntwsW3ZZlP0FhOJLyeQdjnVsOVwpjXZ7KBZy/g9TlZ0FBBQiS6antTGBRMNl+B1M6jAhfcPuOk42R6n8XGpT1ONjOV7OLP5Gov05KOoN9t1K0hZiKwYl7HCJE7oPJxFJYMFZ3CtiLn6aWeyryB9JeS52R+oX3EXEbjmwmvSVKQxvz0v2KrUpvGzos5Fci3CzIFkQupxs2cRVYWkL0isc7s6/Q/fk34x2I1nHk+jtxUx6ZbUTlWCmQfq9uCwbxaCHUc7JyfJ2QEY06VbtbBtliwxhpOLTFfDP1ddjOfHohkHLl0s+Ub9Uu5e3KsjU8lL1qVDAIMXZySrhUQGFVOQXcE9ON7Epp49ZORtA1L+nMVqBtxW5ZVQWo9ZaEuyb1Guo3dQ43EDF3YaQ5bUSKCSvoRdMj3HqGw/vLMg0QPSsjkJhCgyslZCouzkM4rHlbUtrL24g9ldQq7leisC2GqzuexNtWqJ1GV9GTlNl7UplzzbyMDcTcGzQX9O5E6i/a1h7SNRblXcD/AJi/XFuGtIyqj0zjk93+SrhrnU8j9QiDKpgncEWo4SvsAiiQbJU6ce6VahypuOwEYl7N7hkX6nHuJUMdHItQui6hD+kCsl2yo9TjcucW2V1LIngFEFYWNj/Re47qGRbxTqAfo7lvasdnHZ0Tjd1FYKwWdly6yP1EuogSiyHdwPpMhx8hlxruX7E6l2QfYNmBS2jOLPajFncbIz3Nl1kVWgoyP8qVbOVpMuXLvR+m3qFE/sr2fHuncXI/UsuXZiPc4kslNJGqg2XHBhpvK7qJZU4xSVZDSd9tnQ5b31aQbJyYFlxaZ2yoFQxlDLPO3a3cl2S9lWSrCNYTjc24X6ow9h3Lyp5Ouh8i3EzFyJ5OtmPVex7jAlX+utj2T5McZeVO2F3ORt/o412xYtZA2D5GFdTiJi5LvsDpe7jZcu9i7i23AFnITI0dX97pHjcsosNuJ9I9upcpO0e4FIz5I01ZaYxD3plpkMljAqVeLxRnEajxZxshjOI3Gu58th9r9QzIseRHlPkOzi/fIvYNwnIpl+Ra72e0XULiXLvYW7DjkVMi1GBUf4t5BuOdfLYNMK1jcGotmj9q1OLUeVRW55H+LKeoZHyPKZsxqJUvanfQIW9y9Im5dEOsuo70EJUsJf17OnQyV9assJd9BDcBayvZ2zk9E0bQonHuXtSq7LWVFuH1KoqNppkS4943LuMLerRp46MGrZcNJ5akCtKsgvUq5YR6/TF8Bi0zivt2y6uxhjOoNyyZLjmxq4PUe8bC5eXO+wa1uojOJ5B8lXAjsBix/ggRbLg0x8nyphytioVB2HUXuDUG42s+NR5eDUU8S6lBschRF9lfV13S7HqpVk/v6TVl5GbFIZLHsZzOh3o43URIQLLmVOXGhrgr38a2J7LvYlNzpKO7lei3KrJlTl3ELlDk44UlLDqfLuCBBQzjybnFPEuVkcixzp4w41EzQsiWMfqXlSl2PcfLWrgWXOTuirvFek5W68vri7o/bzqceQum6ZlqXDjc4lXO4/Q8RI/U5b3xcgwMlAXKrq9qX90YxZZemqzYFQCL1B9m3oDkojUT7d6u8ONkHYtucW5yYZMBtTxL4xvBCpy+yqgMr2G7Pjc6yfyYNyy6g3LvQr9OSz3pqJkE6gEW4M5fYDVwCIzjbjsKqdS7lFSioPi7FIOy16q53OXkaC5bUutjfcFuWT3NGO/q53BgizuHWrZOmXZnGVbK3Cgh/wCbnF9j3NArtFWyofUAiQbIuQcwhfUagew421EOl+p8FiJLjZCuxdqcauotS9Iy6yKvWuJ/BycjIId/L5EqyBcMIkMZVMT2cio2MGYdvJvAuU1SZHkDvE25t1LnyvJ5pVXBqDZDcd8fqIMrMD6SLuKLOLU5HsDblxsYHst7g5GiDWApkGi5/T5QKnHrVqMWoNwBKArI4ULL+jdnIwqs1IissMg/fI2GEb7l1kO7lNWbUC4ke4KzjU6bgWQJ7GJG/F8eJHGCJLgfV2QzIOz/AFDwPqruAVlDkManTUrIzLmR0jKuDexSOE4lEe7l1Li9K92gVcpMnZvtQ7iXsCGd71BLqLFsgZKtSLkrIBB2Lc6i5P6Uhp3AyJtKkbl2VHuceW1Oz9OlS8qKkaSWe3L257SoRbyUJHvBs1qHISVbv9hyEz+fq5yMuONRai5U48ZdOVuHdS8ZxqtORG5x5HU5NdHLx1KgVLrIrdBzap/+s48hLbpl+vLlGyE5dZxbhybqDcNKgW3AlPpkKhqstCXtQzs6tX6t9E6l7DdhCjsusGphkuDtRtgJU5FlRwtNdTKhBLqLAEgxs2BUa9pIGkovFjDimytjYRUdXLKfAPWqlex7m1FzO9CqtWmXs/22t5L4PkufIaJxWpf09TqGk62VHMnK+oDU/wA9i1A2VbQHTKvu8uJRcyUXUC5V93tQ0n+hUe4olQdmVanTAfbuXtxbaB2pY63kb/Rkerit1DJdRFiZGHVxs0uoOQuXTB9lwe41Vy7jjavn6ysVe6AwciBGceO3O8hPf0trXka6ggYlE2XuABHkDBFwq43TOmX+rZroVVnUxycu6j3TkOVEKbZx/tVOXcCJXT1gV+kHZQM3zlxvH4oZViT4kLIg9Gx7ld0/SldBc4gwKgnRUusjyWooTjyny+h9fWFXLucYvn6UYKMPScuVJHdOpdtRqfHbCoZOtiFT4pAlHURIUpCxqHcvaj1lZN6gF5/+py+4dbdQdnTKbikuHcXdrMaMnUbq4OVAhfnWz5ei5OobsqyLWQabnezshpSdRN29qP3P5BylKgnUZgSy7getyqi/fewbhK9izii5/XzO8lYMqO5AyPdQJjNsIGXAIpcWi5x2B5KoiCbaZAncbCcnKnFyckm9KXD+Bez47cNf0h3GyO4r5O8f9R6botGX5KbqcSsj/FXoKLlVB2wW7nK3pzq2DRtynp5Fzjxh/XSWmRQ6OSEsu48gKByMeVdcaW429/HM4luojQqM+XJnIXX4laF4OS1YtuU9mS6KlkOMLJa9oJTYQqohcDd5fwFIH234cn3h/flxWpy0oPtVe7XT5W6HdfHbmjYtWwi2w7nKawNjx2Jk1LlqyzqLtw2N+scyNXAntwxr9WndiT39XsNK/S1OXsD1qVcudTjd3GXel3qX3HeuzHe6Du5UyDAsqA/KIdxKYi9HUM6Fj/FpItMsjPimzjO3a6jE+kK3irsPsGot7OOkGdbO8gLAqVkdKlVrdQv0vuXcRuFupnZsOrnGdbOXX6M2BU248raPY/UeqiWEMyfG+6ptJxLN4h3MJyu8M1bnPknSXsKsi1B9Bt3lkP5xuNBcGLuGGvKio8mXWIRV6S5xM27YBdyr2N1Abzyy3zkLyg3ESHLKhhDlZcqfErePGt/XFL04jseJ1EPTiAVxc16g1MZV9ONw6gMSjDq532McY8l6LuGkCfLx5KVOJyJVOJcqu1vovpOV5EOomVDclVUHJx5XdCMplbAiUx0nRUCyCdRcm1t03O2HX6Fi7TPY8a2DTo7oHa8bnxrpfpcgbGyBFl5UVG48qCPK3DlcTJVT+Qu4VCX1AZ1sy4mx+p1suthFtnG7qfcuaRzJxYd28kZbcE6ibCcbGOk27g2b5CxbHbBsyotbDlO+vJxBxL6i9wKnyuPK2jzUrJf3xA1W5VcaQgUQayPWGOqd/rjVREZ32H25OP1Ft1fBvoP7VzGB2zihLO48rgrOTbl+zlVYKEUuV7KotNJVtg0wbycrHBvsMpT2LXQkMlexElzly8nQXTGrj3BaCeRoZ/YVWvG+nCil6gXDjKqfGcU6eWNjyucXYl9D5DiVDuFhFtnWAF0/KXRl+wbyPIOmvlONXcaqy8i01OQTiXk+I40dT42b/YP3kL95UlQo77IDU4n08QbH2uLbFg7txo2FbDMjs2qlfZvY2bdQLlVBqDOKRq9VWg2W3U66G2EO9p8SotP65NYoOyqyYCS7xy57YI41YkCnGrIcmPcX2W1Lvr2EVu46TiNw9tA2IGwbucSiy9boSEsdlhEyoIATktkpdlUxa75KmF1PP17UMf0VU8nEY6TZ1svWhRjVXKthVyhnU/ypeyw79ttZ3Oi4qOl3vjCLuA9xdufJMl+TRqISnxKn+1RvXfXaWS9jR2lm1opsGutravAGIs+JdTi1OVP6AufyJQUdyqjxvsK1KZeVPjOj9ctis1LnESDbUL6EhkMZfc24H/UTd6I3bONoAldq1gPctlbFfOShZb2qqpw/I1XLiDpyOLgkK6TMnFTIoucuO3OL3OLhFKl5Hchx+6jyoqLey6LgZab0fU24hlcQNEvqjqH8GsRcn9m9z5DF2OEWmC9uDcXItQ+58kf0NkaIMuFmwRf1dsucm2WhcpW1diaMd6Op21BZ5t7Ks17lU3G53FypUuXHXS0nG1jU9qJBjHkdR5EvyVTUXalvv+P2mddET7u+wXZpKe5ddlP649xpL/T1H7D6jd3K9n+2Svq0Ll2zeoxLGXL+jlPIn23FajPMqpdQu4l7OPGumhwt2XWw+5qE8juzudZH+dkOt280j3Eag2ziqq5Vl2rHkLGdFQLYfcYdQplNXOUMgrL9nLq49RPYS62HLZxK7WklxDqfHIGRKcuu7gey764NKRtyJPyckyfj5Pqx5QBMeKk/+dMwJ8k6W9hYaGX+qnUucftGtgK7VDPbglSpV9vGjArs2VXQ2wagHcW4SoFTiXcyOFRt2VcUMjbO0sf+rjL8DO2yAJU4kBuy61FvA1f1xpY4S5TVR6qGdp1PjKqcRGLkW4vk447k7MSdFR2XlyxNCVAqXNTAQl7UC+26jxCPJIitw72ti2zLl6hWRYY0Wk5axKgeFk4uTlTkpJxnH7bl+Symq8gewI3742dRuVcZYkpqDElV0Vdq3BbpWjQYgyqcpq0yGuBeS7gl6fTdx5UTjyuDRlW2dTtlUTKilzpwvuVfdASqcItS6jVxLJV9+Q+pYysh/XIpVyr7CsjV3Emjg2yidECWw5WhHlUfuLlxWeStzinUe6nsDLOOEUsn5C8gPHYK0rAvprzvYHsr2DUW5xpalUTPN7aGKE4jWjPiJPjS1oadZlCiVEKtErb9hyouAMqm4ssdleSumBU7bLyfyZ1OQsLIIwdKWyB9AkHYUbDtikVnHDeOMXIPpQy6jD+8isOPKim1YHqr1FIuQ/kegK9FsZQkUqVUvyILcy6i2VLzOioXWkPqXOXUMxlCSu4oar5KIOTXZT3P9TLP5BLnulyxbhOJZBpqeQIlkcyBTF2J7KsloRcnEYn1l1HItuXcvM1ag1PbC4aVHGor3LtZfr2ZAlN45LbudTi0y7MzblR7t6m9Toh+mwgKauVBb0pj3cbMP7O4MEagh323HUlDsCWJDY4VOSXHdnHleRBuVG7uHGyy44UjkSjLqkGFdQWUeiBUeVDPl/zKvY4TuDPkDUUeuLRHidy/UKIXBhyuLsDKiVTA2a5AIeM5LcTLbyoVVJ8SNjGnpJdjOobFInkq2LU4ltTqWejbvsbl0wItQ258qYpctq4vkO4syqigVByfK2eXLl6Rmkq2l4/ryJsWUrUoCoVBe5W20Rzr9Id/ry4mabxlezdiohBvq3qDZUU93qccLjsSyV7Ly5xcgy9y2DOoV8ov10adw6ht15UdhEtqNs4lRNuducX7MjPlRUKDX7i7Crlew7iAxH2BTDuOGk2DOtVnHbhbGAEvycS+gCb3PlU+TeKPT3BXZd9CXSpUqcV0f9bvSPrO6YbkUJlQftbabIlT/Sm4jB8lsqeQ45PihP8AX+UyoD63cG3WlyoZOJH+cdNbI5xiksuOdpTcL96JUNKl+QphyoqLxC5YzAh1U5WFRwj+vlcb6i3kWiDeyoiM4l5EWDsW3RHrFqVPY9XDC4bkDsisAu4ux/g7UEup00+x7l1KWcV7h9waI4xbIn38v+ahsqXTUUit2X9vcP7dyvIWdgdj3Leoy8nE9iHcoh3qDHwnIplnUMhpFyBmVH+OjBe15PjsHaltQ0g0SqS/Y9aPkcbnEbtqNShcLYUdNXUG2K9wfJ/qelfZ0McYm3+hWci6ncBrUydkOglXsP7nyg+QcuF6LmxPsPu7u37hCVtR6qUXOLRMYtFQ9nhdhssg8ansU7nLlWByuwDycuMRvLRzuJtQ+o7kCDDu4IzldYWm9TXY2txx3/KWGMcI90uQ5X2uyzucncuWvTCce7jV5Z1FtgxRInsqjTSAx+ouY9WKPV3G0uFPfk66FgN3KuEcKfM6aemcqah9y17d6UHHlkGiPeF+NFzjcbnyvIL7aMuu+T9XtSo6DDvWmcddqmIXO2UGTj2w7gl7xKu0vpCUEDNLGD6VtxbYQWHGBkXYEDRjunlQt2D5FqN9wfG1dXZeRbID3OPL7HqYkMnI9i7nty25Sd6EKY9UVROzYCFQ2xhqzp06j3Kpzi33W1G7iZYFSqubdnZYAsdi0y5ewAncJ1dNLcXMOokr66b/AEu0XU9l3KbuPU62cdlsTu/Z8SGNw1xKixKJxMiWzjVQ6lbORcOrnFuVkQyJTUtnfXVs9l7ipUWuu5dZOKSiLkv2Je/phpFzUKuMqn9X4aahcqoIlQcYOVOMG2o29CuH+9MrMC9OIrG7pOVbFVuadm3K8hjLzDOw9g5Ue7nFzOUcP0m2YJO/1d5DiJoZUfuZ5UHxFugcqUXBph3BHtL6oJe3FUuW9gzpuD98nKgVLDq9qeYuRLl7DanX6GD9Xu35K+z6g/VGU1L++3PY/wACiNjGq0025TX67ajx+tO6qD7ONvaBDltK23BKnHXf7PJQMCosOpc4tFKVO4/UWuuOlStn8a2cberPbrYtZKWGsLGoD75HZ/I9xN1LnG/bnXfkachkWeFLRcq2W3ce4mXONruXRf0dhBIjAWGQPYAlR60Ducg9DNQOkoGDLqP8674xbKP85ENiAToi311O9l31bUX2FWMM7NKgeTYsu2dZDXVjkW4MOW3FvrjnbTOsAo0LyBWF1LonGB9KuyspE6MMiryxKivctexbuPUCpxA1eU48q7UWDXY1QOQqlKfT2y7uKEO89nG3uhLG/iWJce7gaQG5dlwRZ/pdytuYy9j/AB+oFdGbO4O40Nu3QhAh9T+Ttntzi5OjeKtkEeqyFsCoa3EvZtwUg2zuYbFIfy66vZf0X3E9lqR+p7LQj3qbgEDYd1LJ3gfUMh/LOo7q4a3VQ6jSSzxFceoN68tnHDLfeduw3vjRKjTL+rbY2QAhmxwlR8l3cWFR7uGE91whCXSzQIt7Ks3uKBLLqcvKcShuDTFyXc3tuDmD5G+plxLKldrQR42SghkRlC0n1DC5rHrArGgY8ekOJdrKEz2G5GuodTyZOi5dS/u8nFaiDHUnLSUy6iFzjwYlNT+wr2sy521B2ozuVTcovflbDcljDi+wOyXty6GVlwLjFvIbOKoR+kqb6lS72e3N6lXOXgGu2MWp8n34l2XWToKDZcunL6ri3C4mb11f1dTjjOQ9wPss6qy5xNigxzol7AYO6NS+rcIJcRahnZdsK8bqoXFJxo2FHfI+kRqcSu19C2LkSumnIFRNqdTwW8tDLnxlS/IUyu5W0VcDda7iL1yNI/zKhRsum290zRaG+yFk+Q9OllI3Cl0XYlTfVhoEP73HZdG8e4RRiVF6JSOKHS+w5VFXJ3ca8EqoMtuoglz2ckEo01ayOxnTjkHbjcNg2I+yvZxwpqtiWbRVSriKTiBEIVBqKLcLZyLZ5DIi7OM+LdTiItpUcgV38alWbysIbkqCzoudQ6b4gEQnFFufKP2r1BqCTkbjc4tz4vceOES+px42xsyHU+XkUI7G7lkusnGzY7oYQMt4tNy5dwByN1LOoLcrYG7aMtCDkLdVbucep06HgFESmXPd4vsuopBCDbTP5F8bOoBcHIaxRdKJnUONbPJ131+utlFYcoOSwwsIy/v+SqYU3QXP7L8lhMamPRZKpnGxtsixb7KZ2MLgW3DjACdu9bCp/juDUX6G5f2fc5csyxhVR3IkL7eP9F85qbODkGtiWWrlTsnHccgiVP7F9BDYG3BqHI6RjD7l+SvZ23Mqpxalg5U6YnkR2mCQqqn9ncoG4dT/AAS6jRAqr/sMblhk4imygyHdx0w4+zO5TLn+mXEufGum2PLycXZYdmRtyPZdPq5cN65EMllQPFdi12pFolk48adtG5y5ClBc8lV32a1cGjRSawzImxpjxcnxCU7fQEvYFT2V0QxlRjxqXU9ITqCUxpaiktdnTEuo21NYNFR/lWT4tWFzqN+UMauXfSVsf71sGyp2xWtXNd2Cys2tqJ9cRS1s0ZxBmdSjufGgZf2h6hWJkT2AOoFxPodjuwxgBcX7G7ZjLopIsWmXc+JdQD2rcDZVE47Mhhc+VNQ5CxY8SraQqHayhyJUuP3Omit1qo8hqZOWuDgQYM7mBG+5b4b2VeOED7cLBaqGRlT7iVH+bVRKh3EmhAWB9lXNuV9q3q33y+4NbDYFZBGBsXKNNA24oll5HcntSrhfau1DuFJEK/TVT+x+42mjRLAZdllWTKuccZVsJeT25Z5/Aog3cyVeQJcG8jxvR7lQLjvfElyxMZWRAgKW6wNsN2cmmoXB1I8V2WjU5OH6MZxbdu3DYuE472r3DSnjmvyYuBD0nHMa2pUSXcW4HTEO3i+QUS/kBONxsYUtRdqcRgVc9LW5W1KgxLZnrqVQFyjqJ9oE4l9BU326yGx8l9RQaH7hX6XItdcXY41KvQZdRW8XLgTiXs5FkHCvY0DMdnFvINNS29WrpcgeiKRwilzj9za0cjndTyp3Ki1HuBoPIhFg7FqoS2XWwpW7vINQfJ8clZDMjrl1kVvf7AAqVut9RLY4w5DiM6I70NTYlAzyVtz+HLeuQVDWcG+2ugAi10TrJhr0SoHsTMImRSIeVLf123L+zkORgbcW5gRI9tEqyoFk9ypYM41azlHrIldeT4woZx5WU8mpc6ljBmsOqg2RsiLkvyBssMl1A/6iWY8WrHlyqim47KhA25qwLiFwxgXc0agKETyceilLub3L9/R9xo2WETyHUHId1HjeQsnyK2suXcutFsqM4/atssj+nCP1C02mLrDju8Su7jtymAFyriX3X66l/Q3kaHFSo8pyZxbiU43kqmpVQZ5MrK9gXCmFS9nJmhKvZa9NhBrEB2H8X9Gd9MDanTRV7BYrcAev9W6YrDuLbDMjunEs1+owPtg27/IkKudtREc+oK7L9XuJUTyKXUAC5ZL3U2oXDqDHvRWVOW5K9nFtaNnZE+6jA24fwS6QG7Z2TLlZKCNVnXaVHuIwEiWwcqcSyJTtXKpmEd2He9dPKu6U3i7GfyBOK3r3rQUvVzqWLLDI3djkRLltzCLRLsl1Z+lFuadmQQbD7TlkdM02VfS0aL6PsypxbIn2j0Ax4vc431KydGHG+8qgGiN9S/vlrcDZ/ZVEONQzlB3XkDnI8l5U44WNdg1HG4JUtiZcC7gfVUVLpnF8iLDixJ7nULCD91KI6VP5F9b6g0z5VLRZd7FvlUSpXxhs9mdwqFTbqA1KolMpqgyOkuy4Pd3RUKO/ivYVNHCJtwG5fX61Zt6tNSgyVs+oxQqHrOJWwL2HcQCBVEfuO7L6EdnHucXuLmp6X6Lk48A5PKV4BKns+QcpkuDsqti7DTNIORu4hSRaKKZynHxiJgKkDKLt2zpv74m3EF2m8g3AuGkSsn8liVApiZZfsx2AhLKgx/rmQ+g2IkKe/wDA+w25yMs+XkbW5YyvoJcHZy7lbGHECdsq4GQ41LrG2PIvWnp5W1PJYEWsUUyyFbbrQDcxyfFqBWSmpaRbJYwNuKVTQS6dOWUtVU5GZxW0iRqC3LqFBvkFWpyU2cf6lzTI7o/U48bjQ1ElNQKn8nyastSpVmgXU+IbP5DlkYpcSyVOSEF8FJebFVI8pybpgXgtamygjx9jV7xOMu9UKhhnG3sJ1KqfKoN7Ltl5M6mppmpXiJK2N9QTJdM4tx7nyOgR6SyeXOJWvtQXqH9T2ATvIcTzblwZ/YVDGH0aTsy817I9YlwxYDBhrLvCglbOnTXFqdlAy71aqpVFS/ZS94T8nG51DlZSPbBnexLIFT+C0yvpg+wYsC5b1FZ2VKyUw/jV1HjXRdyoMHcwcqfyVG7ucd7eV4JfaMuLLvZxZUw7eqnyJVx412EbIj2Oz4/XIrHi8bqUdzifbjAXC0Kj3LuGNwtN4m1HugWJeKW6uz5ezKgN2qaQtLlXFa0LIlanKcuNtxYvkCyFVUcCWOQK2G9BU2Fvdt1EufyDXemqQTqBe/ri+R0n8OiG9h6myknKqhjAvI3LbgPoHj/Ml20XRt31LqDRSqy7Jf6t9/krY36KEV8DNqyXWK/Y7HlcKuciowE7G6h7WCz2BKbqFXROm1xxfvK2qhhBsueS4llT4nf6T0Z8p/YW4L9AOR+oMwjfcGmfLaj3BZxTuB7OmlZTWDG0ovyKawSolxL6491MGp2VP6GtwKhkCIDFrD+IV0FG23PcbCFORZVs4mzljUG4mytyk7UCxPTypyu6Lnew/uEx6bgvnkDZVRzJdx4IT4keVdmlr1LuV+mcy5xfP0JcC8nBAqfFW5wo7Wpy5ZU4thK9lXHjegJsT2ILlNQHuGkeNdV9cQO1uCsue1NdgFEQehOoqS3ziezrsVifaXUC+VxLpjmllRRyXZNSU1AQqFDOLqwzYZsW/wBJly6xWyciiOuFhUEqDZcHMCqgQemVbf6uqYOxaiz2JuG9LyMFcuy2XXajOKx0llz5ZFi23OJNWURV6CNhL6hkOVw2JPqeLD+rtR1wnHGMoZVZEilZhFKl5UWmX91caGDRgzqFXUupXse5aZAQlrpfkr2KKR+yspDamxS8Ecl4zj1rUSlIFNtbLntQKz937K9ntwrue3HlcCW1R5h/RGBWhQz2YS12DcYnkPqLWr1cO7l3PJ1OKxStGX9/0iLHuLG5kHwJVO3AJ10m1PiEovU3OP8Ay7x1lU0P97JyEbnEUlsSWk+W5/0zkZcOrjbjx1SX5LyopUC8mHacZdNw5DO9LyoPsS3JxeTHkdQtZyBLHlu3RcMdFSAGjKpgfS05rDHSe3FOo9QI9XEnlDsOP3/tVP5BuVVS5xbqF3FfPILdTk2ysuVRcPtAGcnYpe2BotXCLBol2XAuPH0+JUtO6To/rKjc/wBSADUqm5dx3ItVE7hVyrcDYUsFi7i00KzlTk4/UWmddGk5aVOI3UyUHYbcbO7tgUwabRuNXGyXZKDIx+zi+R+48thyg3ZLjTk42ZC7nLdlrOzA0tu8pGVkOoNNLZ18V7rKXJWZ8YpdQ/iFQ7qLAuOZHuWXUc2JU8iBHTP4PGdMWgny+zl4clGIOgW7xK7GiXezpYtdfIlFwPtYcr7DbntSri0SqKWmceNz4lzi01LjStuM7bhhF1jysqVXVIQeQxb7a8K7nHYGb2wELhpHXELsUI1VjyfDknS2UXTONHaX0Y4XctMWq/SDD7gjEauVezCPdQxiQFhfUaqoVcC2Vlrs62H2jsuPE9OJ3AOJC7qcitnE2FmRldMGtij1VEuioBe1qr1uJf61oj9iffEuZWHW29I3BvsaNdgke7jyy52QMiZY7P8AC5Q9sEuXbQ7hxSrhDSXbcvJexahscbUKr9DXKCVFypfh5oHcHLl2zlnQ22rOut9qsHxl5D+tLYBU4p7iXEpgfbvT3UdnEAnbOJ6uT+ysigk493F39N1GrCPUI9aVdwPqjwCoNmpVTk3P/wA1O4aVO2YS27NY3cT7Zozkrj8qyHLjBtqNVZx5fa5UYwuIsSyHGcaq44xZTcONspOW8dNLJXkNiU2vIOxAuDUbq1aScdJdRJ8aJ8VN+NQUYAstVF51BepVNxxgjPl5DMMSw2P3LthZ3XsM7qJkVu5tQzZ/J/IGRqOs4tuveGFAlXF9gjsDpiMP6y0yF3Kqcv4PUoufEucuJVvELqO9lk66sS44XPlD7irLEjURuNUX/YtdU+DTAVjYzFxzW6nHqb5hFiRwzjL9eui7gbUsMGknRcUNlAFH9Hth/J0xVZl4CRV6UOlYZ2YMVl2xWXURsZxauXTrAI1UWnW2XfZGqnEO4h0BoIeCWa9VOOz2CwycSi5YtzvIHk8lN6FE472u2DK9VanLqWVKyH2n21BA27lwMoeNQ/lt3HuKjPbl3jyLCL6PK8jxufGo/GHOuxHYfUL9/VXKi1hxIdXPiXcOJCqo91LYNZBsnsLuPVP9lXU+O3HIVcOR1FDutm3KyI+GFrsOSR5eQdo4ls5FzjVl8gVoE6valMpwiewVyVdRzImQ2NLQcqai+hO3b8ltoWXncLZ9QbyJ6gVUusgqfrRuIlzi7c+Qx6xqssrflkOSsGXfe1ahUfoZR3ACWQbxetSio9w0lwW6HIKxQajyjSXC+oM3x2fRHcj1UMMq5XpRDuKehWQLuCQyKvdX0tRagIToiZ+gojS01FUqd7Ee4CsT2d9WrjhUtTajkXItuh7FrYP13sryJZcrbRl1rvcQgLsRdhjCnIAbO523H6H6gbL2o5Op5cdnfa7LahpU8lJsoZyYqVOPL18lSpXUq+3NeXVD8jRQ2AmzGd4cuNbDSHGjbrIEViNxLhuT4yvYglT+QzvtuclNDIhdyisqzWgx5RW6faLs1W4cC7g3HiPdGTjpLWNXcEnLlTbSz4tzi3cHNdYMdaG3oAodiRPvj3EqdlRaaCvPM+PTD+ipL8U3C/XvOLGAkrWDeTiHyuIXgCSqaeXIEnLqFdwl3s5Fz45BqAQxnkTZ7G6wNi2VFAnlzRxFKj9RPAG6TK/QS66OVT+wctsOu4ORDub3PY3f6LqdEuNjEflcciV25bBwZlT5VHlZc4vrd49FyqMKDbpav7SyNUJxbxG2B7LuBUuzDvU2DE2PUqW9TsgUQC8EupgTqcU7j9y+iJ1Z/XZcqzA6l6S/WGzrYYR5eSsh9TlDi3OipSCq0R5/Q3EqKR1jmQU6OVzjox+oR2LFzEvpYlbBpnJso4gE5Pke4NaHI9oZZVwcuaQ01aK/VAz/ACpSTqXcW4seNdBRLSK1nGw3jyahVWCpOXyucMd+XcpvKQ2hYd6FMeKdX4cTKjxVo0IC5NSHLabb12Hc5aT/AB7lVg4Sypb4Nkv7U8uy5xKhxypVNJzzWnI65exai+jyVl3i8XuALBLhVx6nJ8AltwMuAmptMS4lTqpoaOz/AJIn3f1TZB+w9llVHJ8qMr1sSHLyXcEqcd7blB3ZEe4UkKjyMpL0+X6+O3OZRU1C2vepd2TiV2hcBJVTUh3CyLBp15HU/sGkQbtQplbFVwEibDq5x0nItgFEASotxfo6h9wKi1O2pVM5X1OJEVyyDUDIH2PswY9zycQJy7wYv0Le1WRWDVwSt5NymJTBjfaiNRsmwbKN6nHkg3auIjY8ghSXErJyOokdMgZOPI4lppaA9XUUup3AfQl1+tgZv+9x+v1adK9Rai+x55By5VtrSRWpx+ocX04tbVm8imBlop1yV2fjP+ZxbbUEsraanBRp53dRSDujUDYI9bdQMiUT258b1aZYxK6EnHNXuppETIckyfKicmyceVlS415xXqKrBlBsC2che3jRiUaVcaqVWy+yeQRCuRhLAg5jyZd/oKr9d7OJ8uWPGm5dxHoup5EqFdvRRxvuZc8uBL8jsCYdibRSVOui2fyH3Ayo/ce4saO0n9h3KSWHfLXCKvTjiq3AuFBFvJxsinYbKauN9zbgHUqti2Srnm2Q6gewuX5EnXd3k72I1Q9VF+i7ir0ikuL7LlqQ/vIcS/Z/Zxu4cqdtZez/AF6y7JyTjrbWXTF2HTTCpewu9uPI6eQPXyqHJbjy8baxFMqoWzkkVJxfpDt5F7P/AK1k/kSidxKJt/pnyIV2K1bcX2bOfRXx+zOyc+F1HjUe4crwWcuVFzlyFuXXfzyo6ZwHjDqW9w3Y9SioC6nCjeQxt2IuvEsy6tjYRp2H3BrJ26F48nBEPByVsdZ2xq7J8ZxKLgVGqnGXTNOlqo8tuctLg5Eucbu5ZEqf9XC5xfF+g42wSqjL2XUKrGryqnFBzkqaS/u9mS0NNYhPJfssYfRnlEMJexy0PqL4DRLFtl7j9x3vk1ku4tsEuWrAy46JEQx71SqOSAQaNFrRPbOoO/ouPc5VVz2FVKHIH2uXE9iUbW1PINE47squ6snbc8jrUXULjjCr16jnRy8i3NNDk+3ZE8DMnF2cn6SyLWzLuXXQTkXkWioxx/SXkoankL7aiTjkeOwKbjcS24R0qJTU5ESmceLdznhnBGfAhy+rUnyty2osvyXETowgyqbj1leTkQvqAe8cKlhk6yOOccdb95B0vdCNz401Gjri3rAvDiiVLK3twC40Q43qgZOJPjmIku0j1mOzu6WiP1D6jkWulawUms49XMq4v0KFTouDZcaiUwYlkPptcnFypUGFw3JyyILcC4ZBZ0y9l7DbjEOoKxKYbs4xzur6usnsf5r1x7qJOI+8R9S+nO3+PdwruVmfFgeyo9ZY0g13/jxFuPBJwOVwl0y7yIx3IF4sQUIFwZ7UD7bu5xbKaneNZcdYfUq2hU2XlN3i7KouJlyvvhpilW5VPE3eyMeLATpVdB9p6htVSS2sqzEg3KWZ4KEv2P8AEb0LJW1GgnJ24uS16cJVRabgsGyUhjcdnlQLnI9ncGo6QaIN9ux3S7M5ctjQzYVKg21HDK9l2x5US8wHsOo7DqUXcpIibFQL4qzfbqcbWJYR5WXG+WwzFuBbDhkSi5VE451l0X/zvG+pxU75a4DctGfL0v2GxAIFE48anG7ifQbNDOSrF+6SJUItODYTsuAmxwSO5OIE5dQbn1ahkOVMOqg5F2FuTRi3Kcg03K9gznfjdxJxPI14tsGyWEaTFyhy7Wyz5DDvEqG5Ab1aZbc4Ws6/VgU0VUA8eVG8VGpx5HTy5FxF6sJVw2JZLqb3+uTLuCxKl1G+pYuWVETYoMWoa1HCV48YviuWFNM+Xk9oKnlz6ntzuo0ziAKHW2Cy6yLGDRFrJZLW4GXAe4EcIaXL2p0YKd3DlUHZpL8nFucn2KrcUWHWLeRWqg2R5VqVBg7Ou1+hUtHZdmp99scIu2+y6LncTpnI2cvx8ksOSE4tx7wLiL0vk4jVx432fUqipcqm5VMKG53OfJMOBdqcacKS1pZxW5aTHYVdKcWI5L9hhAHjaFIQ6itRpIZDlXRyLGCU1stMl5Kptah1SqYKEzzjk5DePFS58OTKA2r6eHJwbgYQz9eXFyEOQ9eQad5aVPjlo+Tl1AVi5cW4153k4/2sYFAR2OMK8St/S3LCXDlBtibP5G4VBO4Fwu6gCWiJU4sbWDTFtglTjuxNpXJ2XDun/EsuDfVtzDFMuKEGyh+1yadPVqsrBhkq2M1tLnH7neQLKgoz3a247s4o8tVZxnJywag0UgModgRKP0f1bxDJVtC3Atg5G7qfJwl/V3LyE/kXYr1OKXBtpVuH3BAnJKqAxZV5EbiQ5XO2p/SvJQVHlsvJ3k6gZrxvYlM5Nn6O5yLlUXOiOJLKz4wtY9QKAl0VD41Ay4mXOOR7uLeFfS7YECcqe0CqG5bUS+uL/wBaI49E5cVl10NlJRiLULDACDYIhBGcgKoAGZWV9isCKrc4oy/tTxYbkeKdEHCOGceQ5DiJaBUrI8SLRiL28bJVEurgQ48ToDtq2dw00G6dQIcU7wi5NGB9bx0OSwb2YzliEBCfKL7Hu4/UsvVDo6j3GIOSpxCkgU2Xs/zyguPJJxIvs47NNHkPaGEUJWWm9VfQWXBRjXl3LEnyqXcailxdz5dwVYS/ovuBRieTj3U4sCnWyJWwRJYOUdwRyAHSQaj0w7n8Rj1cte2ou1Fol5cW4d0dQ4xYEQ9DKhkesa8wKh3OLsRZxKyfIjVXKiezpnUW2EDLhFrpWorc7lgXFny2ocvJdx1pvduu6JabHSJZU4qKSycGpkeX0cnb48xaDlU+Qkv6bSVXW9fob6YoZEvDieQNnRDiMDyJk5XZHOVSnuPHYNWTlxTjnE5dx4rig8Zx4gTl/C/ScagewbMucXdV9oekgB0NkSp5a/U02DZrVpPxgxsIuzk7C+wcqPcH2PTOOx6xvuC1cGDVQbKn+uR+2/oFKhd1OmpdFyruX7KEuJDrW0hK2ccN+NtHLj8Ydxu5nYdzL3j3FBuDZoka8dbCju7IhAtx4nSHk+KFnHlWLypz5ZPM0wjXUNKLGopc5X4dTilQNhrEO42bMJxLnFLik+VafK47ESdkMjjDcHuLlQC6gW6Q7gQ+2y53kyBKuXeQWpkup3LAs/xsJcqGM8nHYZgB1HqpbpLDBal1DZV9W9RfQtJ1L2wh/cqHdy/Hony8U2LLuIxH5FfBW4cbaDjOjPk3cNLijAC64wAn9lVHO+i48tIRfYNtRPINECyJXfUby7aqH/UeK9cf6b3YRboLuclGcXydy+mPdC0BKow6paDO2exwg3s7bntRaj9xVJyKIL8SD9fG2ccNHI8TseLK2McltxIRq4tQZ7gVOo7F8eRcAO+PUpO6O4mY2uDGFMf7hF2dkO4fZybYVcdnxJUXJxKnx9jkCcWfJuDfZyKoGu/llRzpWWsu5csY9RzrXp/onZx3Y1cqyJ5MOuKV+mOGVFPDuZVn/LkoOr8nI3INuVRO+gKlezjPYewuJGiBkDKl+J9J3F2eXFuNBZP9sY7CkqVbscg0XDlcW2yzs9lzlrBvJxai/S0kMgniCzK3JVy50UL5Hk3UdYE5NYrRl23LLtOQzjw9flxIoZOWFw5UYF6cR94se/13E+/5A8iZHZ1Fp1bwG8lvUMnJYX5x5RVhjcdYl48VMMqasH/qh5JsFq3l3gkWcWP/AFs+KS8mfFXaScSo9XKnIUsB7jysqHG4FR6zibryrIJVy7hQ3OU5WFAZFjlzj/UGWEECcVqLcsqcuTeEpIcuSVCzJcXYrKfOj9f64zOp8Xs4104bHqBUesPqdyi4YW/Iudz+w5Qyd1KJc+V5Dbv/AFKiqwGcYu3GxhhOX/TDqFdP9l1P8W+uLXaUCKkfqb5xByNnfCp8blUS6j9zi0tjBEnfQ/8AOr0xyHUK7g1hXkSNEuVD6gURMiUVPcBuPcvJ1n7JVRhxbVOKRAJcRq5Q9pUoeqtgCRqBcWtgB0hUfqDFonyti/8AVx70Rw48sijEDrj9zk00cU9eSFTXZy43OQ1vHjegVOJBlhBt2iNkW2ceSYWuy6llxL2BeS3qLfEr+Kwb4zj1GnZvUHCOzlmnHkmzloTomMu4nUDLlexabFqfISLbcCsnEsio0vKOsOTeBkeL3Fal3k9jb1y0pNIZpxL15AEbZ0zLnIl1FpsACCw5U1C0uDU5ctw1jOOEv2XZU+OZSFxQjxHZREKKTYFd35K2L0x5Fb3LOoglzjREvYuy1qriqzsh/FrrjMrHGw2C3cvIozjdwaloTt1UyW3FqLOLTl30j5VdCkvMW53Bo3iXKucX498dFlVkU80LRlVDCcWmXeQqmNdBZgG5dQ7i+ixuhjrMq5X/ADcr7TZ1sqU3N1dZeQuoNEH17g/Rylypf3cS5xasHkZDu43e4MVZWRiMvMNKa3Yu6T+Ts03Hk2Yl7Ba35Lj8WfK5YzkJgM46Q5Hpz3RvTlypoGXVwL64oYpffsX64qlgKaFQ+5U45kEDXqzi2kd6StmVPijHlWA/diwr1TqfLanyjfhDrRJ/ZeYf0qocQ7w0H6tgTqdzIitxSqh1NIt7LrItrKtja3Fn8js41FtuDXfKcuVFBdMebdTjpMCORX4zjys1bjyudFTuou3EzHuovsqy0YW5Pi9zlXxJiE5FVfrRyuWdxR/VxpmkLvOTcHqdbDCn5ZUtg1MTZyvudlPIl3pxd3i1ByXTLVgPX64lZHixsqC1ALuceYZAEsXKiCzipOyPHJVdrFWJWwGpxyD6WJFhjNqAbFyGlRaKJ0be7C5/JhNdgL3C7YXbMBiy5UrcaNUuBRvH9GtTyDURdi+RKbjceMupf2u53BuUdRg0Q4gFvETOPHJyL6BCWrHW3iVsr75cZxQjVyryI9HHqDTGONz42wPiQTpSy5eQ1YNzl9hVb7a8q2fITUyD9pFp2sgWWvGm4i9IdSragF2+TibojkQclpan2UmvEi1KGphBmkr2GOVcGtaZsAe2u4kGiXfbxRufxMYmxjyEzHZhOyF+BeRKi5Epgu20E8nESHe4frYL1OsgbA+0KiZDrdGWdQBNQMjYT5VBiz5dy7/SwUJcdnXYxUd76eW48nJ8tjVXOKMu2PUvdGOMwM+ohcda/V1OLkUclWwQKlRYX6s4txWqg+RufLJiZe1Dl4keqg3BR3ls4p01c/k/su4kcmTomMOTcu4tdLs4158m0gbc5F4MraarYtdiXEtxoLjdY/UBNfyKdDkdiMTbmQfo+o8R6ranF+w9CUjvyqFNSwZxuURKSJO+1qFuvAgD+nY2OK+cLrbXIim3TAairONpcJybqmxg7KhmTlV1BohdS24bkqpU6jjcOUN6J/vsZmM5GkLCHVkO1ixal7cXahyycUGKyvtIdQ+pax+o4Zx3Hlawnc47ONM9ziRslZS8XopqonkMipBelLlbtkGqns45Fvp/llfr43PjXZypqctbLvuvIs/2/u62dzIb2Owl/Y0x/taTkRfI9S8uceVQ5Fx5ZRd98di3sPuL9N1DqbPjU4kOPsMyVTcv6uCujytnZK9cIkDJh0J71DlTnyOWzrIdxqqly66WHW1ZMqFT/eS9Qe0erhyqd7OWthy8lXs4rBRuDcoOXyhfUDJc7j1FTr/qrl8quHKzB5bby2WLLToNgbFOpdbP/n6hVqIYcRScC4AtTjxHtq5xfobYr2/I7bstS+upx+4uY3PjLmHKCw5PcOWUrkXAgZDOuO3OOtPLGeS/Ymzlx25dFQRMzwa7uK3P85mzjybSDBLoNit1D5BUGp7lkuGSogT2aZOXk46To1WqiK3FucUuVUoIlyvJxuXseIx4EOKbAJ5g1UXd+UH2GERNlsP4Jt9MdbXZ3BHYHsusltwDuBUVDHW4i9H926j1As0KxqsiXs6gWwo6pui9qbGLtR+oiRLYlRbM2O7ONwDziZByXPyflRQ/H+R5WNhOJHNhyJtZy+4L0lnXa2FGV7ONy6xE7l5DdlZArsbLlmTCKjBol7jdRhsMipyuCPQU6r1Hqcf6ikv0v6dil3PxvqEssv5U58j35XBazfLit1AY/U5vIqvxmy/FOKxJ/oFRzARxwbLObT+TiZDWg5ZHg8RoK7AmdQ7ibikQvfyO0BVTlzCfjaKlRMl/ce7hXUYlNwUjysucOVtJthy/JyMTlgx5iE48rjyHr+iKUnW4anOLcCiYR5C4NNxIDBrrjy5LqJ1+blyKnH/+nkp8uPJdnH9fKX9cuUCtieRLnxqEepaBaQIU98mDH7hLvIs9l/Q/XFgk9lMtMn+G5OVEMajc4jOVbBSfKXXQ3UoZyGxFufK8gsRZvUu7hcIV1Bgk242MHLhtS2VsKu4pcL8BYrPZXsFZe4XCVsNjk8nP8d8rOHFNgLOJUVZk+UeVtC1PkrU/3iLjWRQja2iy2oIBT1ntQKYiNwwtu2XDMLydsunHlsOVu9T5Wzk1Fioz5ZQj2bPlRUdbnDqdsu2OG0PaIlFhEUs4iGuRvuW3AlHnL7nGqn5MoAWHDk6pUK7hXIIWOfIBn4zjdTj+MScvyLk5A6cb0iYQ5AVOI1avE6G203lc5ceRsu++IYy4MdnRD7DhbrxrIF3asOXjaFm1bznlHHi1tVsCov3Y9crDB4pHjuAuzycwDDkdQMn9jygpkBZ8B1fx8LV5fgsn4xOIPyyoNkbnEqCMvMuP1CMfqZEgVH7iXKlfa10dWiMWsnk4kqmJ7E2BLhKvr4jPg+UnfyIo5OTWhBnFjynLlC3QPJdEvJ7A2DEDZVNxbI2y6jVTopPv9eCWRbZoQY8iLfd0T4w4w47KqC3o5OTynF+2lnRDY/yuyH9fqLU47HkDp+TjVr//AEHn/wBBLHkuR5Hc4q9X9rsU6jkLCLeTs0bI9z5Fb8ipb4tor/OJF2hqckSBWPLeOceT1GWLtt1DmmTi2YOwjrTfoP2NQIsauCsrLil3DlbHSVTPilKIGLc5ZBKnEXrFzkAT8X/rfmSxwRxW1zlx5GrlLy/L/wAtfPC2vA+1uFdTiox5zjzrGyoIwS6jaxPYGROVz8f4zk28uJ2LSR4j2cPC+ROO9x2GOPFSHGpaEsqoNZDY/jGGNRRMMlkeXk4uTjxAtf6CRBIE4svyJ6fK2CVrLg/a1M8H7rI/3lYQ3tdlD0Z2JHaRYcvW4LBv9VfT9QWsbipcqybdysuWJOVeA3c0MKSfkrE4tQ5ZHlUUgt2fK2pdR5VM7PlWDyqr7qL9/L7+QENj9jVS8nlSrl7ULrUnynFKnUUlQjCXbFKnzpjzDE5XH6KdYl9hU5HHl3yAyHFNnVSvlon1w41rdQDuJcvNtMg/S2QRJsPqF3KlVD6l07e2XBEnJ+hurKuPLLnFvZda0XnFoCJZEyc+XKy+LZKGNHfyjb0mwiPi3kHNLZxLyckJxL0XanKFdT8WcqgU4q423Pkzn/5Sf/knDuPc59k/JA1nHuceiBke2fj7iTl2zh1DyHc49fp8jOOM5ex6h0T1nLtnHoh+3r9HTDuHc49w8n5P0+ziYQ7YeQ9hDqPcZx9nH/0z2cZ9RhGM8/R1GPU5dzjDuMY9s5Tj/wCZx8h1HsjOMZ7PZz6YTycfY/8AmMOoeTj1Hqce4f8Aqc4Tj2x7J5PZ7HqeT8f/AKj1OfTHonGcfY9Qj3GHcP8A1PydEe5x6jOM49sO59Q6JxnKPU//AFOPU4z2PZGE+5w9j1Pxf+Z9Rj3PJz9h1Hv9HcJxnHsnH/0zl/6If+SHc59Tj/5I9x7n5J4zwnkPYn/JPydE4+R6nF7nLqcOp9Q6hGewgz6nLqHRPx+Tl0wMJWMe56z8Xs/I/wDBBviT1nPuf//EACYRAAEDBQEBAQEAAwADAAAAAAEwMUAAECBBUCFgEVFhcYFwkbH/2gAIAQIBCT8AK5Qewo2OAtvDVnp0hJNmhso6jWHtD2hW7+5skxo23TUcBZ8TZ6/7XtCj5T1qjQBr3BzR/AP/AJYa/acNTU9atqvxUUMHQ8sbeGwuyD4CYOE2O8h6bGiKHtnuEvBRpsGpqNeUbDB8Bkfyj5RehRpzQ9r+2LV+1ump6LUfK1YNZj/a/wBU4oQDRo0yTUbEGh8g2YsKHiANC4xdA2H5RyNMofKYU9OkfKPlNXlfvqx9s1jgfP5maNnTKzRxLeMGuKe3owND2xejdqZF7f8AbDM5+fqJr39p7Bc+mhgUwiPFhyd4HhPQx8wDWbDdGhY01ap8Q1NT4m7U2R/bvf2woWCz0fkDDdc2FH2vaP4Uj5ce0bihYflHEosgXx1fV2oqH2h6KEBoZSKTcwUPLm7FA01vDYX8H+69IsfLscnsKah+IlEINdsWsFd16RQsFB51WzM1kj+YhB8Ht7QuLMo62smgei44bczyCcz5LfHwUf0Iat7IFj0AuOA3FHgzfA2H7YV5QQF/LOn7wAoIGkNcfdCKMRD3mP0qNTYvwHsa8OQ8oeU/SPAER7Mm8ZqbIeRjYUaGW7FhQ9t7iP8AtekWfim5y8g7VMF4wQEIWNxYU8Ee5jF6H57YftPY+fyx/LnBuqfjHTehZ6HskJn2msKaM/CdY/OC7XGIsPLH3B69uKH4g3PbgDoHyUc/bGt4OK8wP5/i73NgmMDfXDbljhNds/7Pa+rPRxH5T0bPm+Zm7UaKKHO2qURQv+UbiwsFzT33iXry5uLiTqQPiPFWRLXCJQbI4uUXp7j27WdBp7IlHyW/F9jvfcMYNc/kVvgx8C6p0gYBr2GOJtcwhYcQwgqTk+TIDh7puRqxgaxeV5xjHCz81pDdN4x/EDFbBqGRs2boHEUMWm7u3eaK8spOk0xvhBxm67xn5bKvmJTQTQnOgfcDbVm5j4vACDUPknTCL4Einu0ZuIbuiMGQ1ygqyo6LcUYvEdR5g65fAXbNk901Cjk2DLNdsii9OhqNq5mMgPjx7TZNAdBsHQMZpgxbnDIqvxXu/FM8Znk6zMV0XRKb0LPIKbSm4zZeZv8ABNgMnoV4gfl3nvzNfOPwh8eJj4vwHm+5hU4bs2W+Xrgb5jpahNH/AKgMny2u/ZfiDrtZoI8njruiLN9KJ+13tujPeQeI+OlWhFApDkmWeAyDZssIDLbgvwTkf00PVP8ANzEZVrhd+EEP5gIbTim/cfpvEZXfVEk8V0hIEEqPMdV5z4CfuxknlNZ7N8Rqz8I5lF8G5u0DAewoKsu/Vec3bfH3gNifaK4u+QmvgchDee2GqZBkHuOEIbW1W6ZdpzrmvVPekyTmebvFKG0NQzKEB54xbiul7d+k3UeA1ngmcaf5Zkhg+b9R/hH5IxZM3cYvfaL4PydQQgMNVu4SeILBUxj0AqU2hGAOAKGRVeC6zpnALbTPnyhxKDotxGSPtPTZ+XKG0R4oIzwik32rKtl7EGTcEzX4DcExymIO0G6TK7mPGKh+0FPJFj6mKae3AFCCYzcEqNLdN0PKODLGGYIlDnNwNzDgZAQZEyyg1n7ghNGe4jtIbqHPcVlGyCAxbEfBaw1IKW7Ho6wPnC9wPwA+Fet2MMy3kjJ0XvpUpmI1PgUBxn5g7I6LTPIepY7hTbF8Gs/wjzmp7HttDF2s2HsEQG4LIihzd3K78t63GeA+BiNEdLUYxB3GRbJ/kPJT8MTdwx6g3wGum2LIusEm6DKtAeQ8A/JhR13hNymRZAIHqOuOKIDS9Q9IjijqBVlygMQu/ZdJ7jDSzZFJ13j7+QbI/ABE06rxNW85G1REHx79F7ibtAdh0XhDLUVorxGjbgOk99xGTdF4zcx7mgqY24RocMU0B/kDbxZ4wkeJt2RwGNnzbNsjCdcTG4Q5o5DL7TeCbDiC44O8my3f2Ae2EWlvZ0G5B5YamiGMZDVtEdZ0HgCabsm0xkgicTgO6PgNQXV1xRTwRg8F4jcvfJ1w34J9mtKCbYhR42lx2zJb5V0j2RdvgjzBC11nyEYruk05oL00PXOMF5bJtPMPU/U1sHrfIbFljjvILl5G0DMM8qHh65jcMfIvgMyq9jRoLvOF2WZARmyEwSQuJ5T38Lq4mt8GfjwoITkfhX87pyKBgtPKDcAwWlHjiGbP8W0EZNk2Z7r5Fd1XmtKOZ5B+PfljzN/jGREt4m6EEKBBk2mvg2b/AAJktYWaMZzYPDKbSd8owmhasKH4MCk+Lrmzc0pt1NzXrUQrb6m1WhnAy24fuZiH1FikIjKnr7ltiP2CEhc3fJpO8TDPmB6TS2po3tCCK8sENotY+09nVM58TIennvzjJZAd1k/ab41sAq9PFGTLGI8ppJRKY8SZLUYqCcbG7oCx+QZR0N8wLGxmso1guUR8C0U+0843NNTR9qtiyh+NPcOT8vUM8N/iQiEXx11hY5DpnziC5mvmEwgyvi4p+scDBHmT4a/8TjyM+b2NFYqHlHgnrtAdTWAxetwWTOA+8KXp1Z6HirTSgMRQS1wikVAo/DENpDTvKNGh1ROEMzz7Y4vc+WF2g7ooGnSP5RP/ALsflXsKexozPDEFxTUfLCt2fIe5GcbHhPzhiKdUyXW/tfzjfz53+c7+5f4w/8QAJhEAAwACAwADAQEBAAMBAQAAAAERECECMUESIFFhcQMiMDITQv/aAAgBAwEBCABtH/RRi61zqYle3xTWuPGKnGdvlynXHm06cuV2lzcP+PK8dnK+bSExuIlWl1D+HI5NUVaEuXaXH9fFzXxaG2+UOXFrstFy4vQ+LXV2cVRKaNDOXKo/5tp7qumoJbhy41UX/i9fJSpuvVa2NN9M2mLldFY+X42yiTYpN/8AimNqHYuxpn+4SonBti0I5WD0oMe8MgliiHhodxOhbO9Y00JekaFsbIRjx4US0fHY9D5M7YhNlY9jXokpvkNsfJvs+V0Jzr5aOP8A0jq4f9OLVb5JKvnz+XKjbaOL8ONIkdkhxdcOLdHrjtJI4yHxrTdiE0hbZy410Wu/leuaXvGdJI58HauaiGqzi4nOL3Tj1T5TbfLi3F8d0/hZoSV1NxttoW0NJrd0XxNR70lHxbXbX6+KextLt85LE0618tL4b01B3o3Di9lT0JuQl2uSqHxaiOP/ADUSc4pDUQndt9j0cuSYnEN1xtpPVgmx7PI3rpcn0PZ/xf5vofe1zTcKNNsbiKcucHzqFwbZ8Yt8Szr5MtP+nJrSfPe+L4tu/Hj2n/zaY+XJM48qceST0+V2NtkY70MXJnHnHt/9d6//AFfQ22zjyg+X6+aZ8l4zytr8rJVSpFSPlR702vzZtC2MahaN0uFmtHeJCjGM/gkIax/rwjipp9M9KWoT/XPEjrZbobgoQa/LiDglhdD5Qf6cmVtYg1+cehvZXBMSfnGj5OjWx2b4udcWnBusbYm+nxfxQtbTekPlTjXxEzl/1V0v+m0iQ5840ijaRr3nFtLlyXdb6q2ypbH8YQ+QtaUj3psca0q9D4tOE9aSaInpNI5OPS6K098eL7adcG0ntpLS4NPk0Pi+Uba9TaFya5R1SnJPU+c2/komfJ8UmL/rXHx5JOD5VCTTbPnBpPvjdp8m00lGy1HLj6KnJpOj5Poe+1y8aRy4tMSb0JR0+Ke2rx2v+f8A05e9o5PlxeuHN8j5NKt/9az5nKLp8mmh8+XispfzbFy2Pkzkmz/p8tI46e2uLenF1yXydXHi0xqbE9FXaXOnz2ck+yobguULWN7ENvCRxQ1GNzpLdfWhoSOiicx/BaZYN5b2LE2JjcwmNjRfpce4hTwQvwhNCHousJs5CGvTQhMehYvpNFKPY2U2LWE2VpGxJEvVadX/AOjenx5L1uj0jjpnHko4uT3Vy49P5cRtU48lD/py3pcku018dLRy4/Hkz/lt75Sb5c9uLklxV5ca0xKFT0+XDj26k9f9OXi5c2lFZxPhy8XGKvgk+4kzp6fJrrjyiHynLcjjXL9fJJkdo6fKJxc03r5NVnyr0+Sbj+W4rEN0XUS1tt/+SbXKWqrRy4pobr+K5JuIajqXJJ1P/oh/9EtD5ce3U4zhxiGr1BqjjIjnx9HB8YhpicSGJpdp72+TpwTcb+LWji162oPk+1y5PloWlt8l2m7sSNeNxQSnSejTGOpDbeiQcoldCaWlf3ly9SaaOKdNHJqj5KCdH3lfRKo/xoXGqvaLSeHWh/RjQkPv6Io2NlEI7WH+YWhKnp6PsQkNDWsLstwnB/uFyg3Ri19XRHQnsb0Uo1rPRdjYmmcn4bRqHHlEPunpdCbPlFBJus4xcd/JNQakPhqjaTOPLi1vklyHxa5JH/K2lT75cd748VxRyVQ1JHybUOPKOvly/wDGriuS23/138XyWtVctPnx8SfbfFtokcbcWnybUHbr5ap/z3pqPvmnzSny00+K3Vob7nFNrfHgkx3o7I2qJtPfybe00ntco4PjRtJtNrjNrnELndldbfLkmkxcm9JtJVtJvSVW2ojg9w480x14qm+XGOuXY70VC33HRJU5NPt7E9QT1V8n8YceXJaXH5Lt70JqH/6RRPk7Ti4xSnXIfLZxeq/k+luwrQ02LqN6ZUzk0ceXFFr1yVE1CcWJJaw+8RWDX7MJDUF2dCfqp8qLkNqCg8bEqiQt0NDw2UeeyYmNF+jRD3EEJrs8PD2kHpzCey4UOhjX4tiGLveh/wAuJhlHhok7bExvYmUekLeePWmjj/Gzgk9iaa23Wx77496qhwV5If8A0SZx5JbHz9S5prXySW38Xyif/NI/6LQnVt/9eXR/5N/IfJpw4uptf/TOMiTa4pCfFKj5Pt/LQ2mol3BNLY3VS8kNaFam3t6q8c0ixwSUE9Q+Tao2ntPgmqLintVMWtHfKHJDVaR8WkNv17ZxUOXH9XJ9Jc52nxaqXGtsaaZx5VFG0tDd0+LhyescWzk1Djx/8aclCxG/akqcP+jT1x48W6JRaaH+EQk7BJny3BtvQuPjqSguU0LnR3VTo+T4nHm+Wm9HL9VdguTWjjyvfLkppcoJ17+U7b9PR4v6v0ZRaOxOFjxcKiettlYt9saF3iDVw3MXMLm4uaa7EXDZcQozoRcJbGxj7ENFNYbov0Ro9GrjtnHi3siSr5cnyddNDEy6HimzjRsqRROdfJs48eTVTUcfHSomrvlpprc3wi41cuSfLa/Tlz+S1wStfKtVcv8Aqxc/kJpDSW096Klo4tp04q7OXxkFBf8ALdc27/zce+XHilTvpJtDiUHyb0Lk0tVMcQlYJzZfit6hxSS2+CYuT6FtVJul5IqTr5cp181U06VtUbp8tDbfSbTiaZx5vgJqVN9nFxi6FOzkuNGl2diSoml1y2xcohu9tao+TOLSe3/zTaa4P46PnFr5NHL5WnbOM9fJIe3TjxfbaOdPldHHkkPkmtceLZy/5toSfHZ8mxOjao3RdD0M6HsXZskyh7Een8KUTxcLCej5D5bPlo4j6w3ENl2WCRcMn1bKMRCCZp4WNYuHmjIcsJ+DJoaKJmz0/o36nvYhcmunyb7sKenuOhMTGmhUXIXIrE16o+tpnH/s+Kj5clybbrkI3sV848n8Uzjyr3/0+N0+SmlUz5QbnbVPj6Pi+xqKLim9HKpx8Wk0xpPY+PFKjUel/wBOT0bXKtROnKHHWhpra4tvi72NceKE0mK8uUHyabQ0kquSqTXxU2lFC8ktRtbTjNNHyS0+W+nxa74rj2NOa4vTRE1SVa32mt0+ScFt741PfyViSq18CJI5KdNvo7P4ceOj/okukm9PpiotjTP+PK6fPjxejj/zij5cWWLahy5NaPl+rb18vD51j5XYo+nwa7XKC/6tbXH/AK1V8v8Aonoq6GxImji529jGyCFoYhqkNEQqNnZGKDNUiQ9YT2cV6NQi8P8AXodmGv0TGUb3MKYgkaJhF0doomImH2ND0JDwh/wSG9YuFBsYiwqwt5/o4MonDsYtYZRsX9iZs4quJJpkg1uC0KjeoK+JtdPlTiny0PQ62Rta35x5Kb+aXGPlPJB8mmOvts3KJtqPjyujitnLluEbYluNLanKpUb1pN9t7VK33wtO+THtwvJqHHXTdE1IPfKCaZoe3vjwae+XB2HHi+jnpwXdEqolpQXKKEQkjh1D5cUocY1tLdVY02jlvTa/En7x26KnLk/a2dodExsTjq/5823HxSaFyjHflRvRyQoJ6OTOPZP1clNcuXi5Knkdh/RP0br29sXQ3s+TO8UTE9Yl+igjk0u6+0xPEoqjsaxx133saSOjWG9CY2UuZRaLsZTsuKJYRSbEWiGhl0QehLLGylHhfg9dJl/LRiZStFp2P6dYmEf5jy448mmW4Su21smi1lSOO2clHtN9Ks+cUFyFyY0LQ2hppDa6TYlemcX4npmtTk2+/auLr3/VJ2lenxS2umNzri6tqWmppdnQ+NVEu6olRM02Lj6NbG1StOrmm9iUG2jjxq2+NcOXGdJUe1vjwbPikji52aWk+Oj5JOLkzjrR8kkcmmtLelJoamz41UUehQp/z/6tKNu7Ho76aXY0qbT23WcXDlyOPJ+Vrtu9Ni2TwjSNdlpX0n+j6FVrCxYLZaNY0h66rG69yIe8IkW/7iiZ/thfBsuIPWIJDcHsg9DO830bpNCxcXCGW/RCGhsbGIo94WV2Uh1mi6w/4ymxCdKXCx0WHomcdshySiaTEMT2cnuifouxrQujjO2+VdGkzjxT2/8ApzTvEUu2l4m0on+nFxluyxFqEn7xbE7obae+K3Dl+qNuN/8A1C/nFvp8eKYklWdqKqJGoNONHHi5tca6JzRyrdHpinJw+MUOfHofFNUrguS9fIfKdpRU4rRxTZy4uRLi4cY+v+qfljhW9jSg60N3S6e29RPsUXEa9SVNQ/5rjdpKxOdJL05ctQXIexpSj0SiZaUjZx4wfKD5a0lR9xPQ5d6FvCTF+lK6NQuj5bLsotiQ9omKJk1SDRCjeHhZYlj+Y1cMn0SudMhREpcI/wAwinQ+zsYh/oui/RYv17LTsv6M2ifWlpMdbOLfmzwesSnRDhwfJNp9i/DiafaGq9K9NuaXopZiCUE4OQ6YnBJ/I5LjweqmLk0cOTF/5MfFutf+SSOLOOhJtkbrHxY20Lkm4JNMTaHo5WUl7fD1J8mJtdPkzizk2tHHjUyJI48twXJyPjxd3xcPgji0huo58UmI7Qlof/NpVSuHH/nyb1z4NcSvobrOKjFoaqq48IquK42vlHtUnFFo14Pi0JaEqLiqNQVEPixqDcZRNHKeNCGhOFrG0J7OTpuFH+iEP+FmJsVLsei4Yy/Rs/o/0TwtDFse/okM4xDniNlqGhY/h6IWEPeXr6SbNEx3iDYvomM6y+xnQv45iiZZhbRtF0JNnpEO+shSsXLUG6xLRxtI6NtvcYlHtpeNQS3T5NCdE2mPqi12lTvR7U+Te3YztEUG2mhPtj5JtpJ/+UFybaRXaNzY+VVS2z4zlTi36lo5bQ9qPpnF72026uWlBo4wqemnEJJs48UlTgvSrz+nyQuJ8U0Pj+LiRJC4sTUhI6m+Sevlyeznw4yp8UMqYnEcOSXXLW1x5aaK6cn6V0cu1G424h2wSdg9s5KHyHy/Ls5CIkJauJijEyidNQagxCcY+RBJ46FVstHCbEmNHQiaN0/mHou80omd4WjsaGPrEEzUHBCP8EQa39XjopspcJFgmPDKIWh9D6G5hzEuELQsopcLkNiZRL0aVwlSCOI9IXJi5bHvpt9qsapoe9nFo5OF8OMh8q9xdj7q/wBSQnHU+Xg2mjiqqSuJKtM4/wDPdPnxXSSbg20zhzvSOLSG4xxnJrihu7OL9OTQ1R6Insjb18U9vhxiqqlUU18nIceTfcNIuoTUHEit9Lk7Dk21DlzfRx5R1rlxXFzlyuj46raiiTihxa5cY3xhxV4wfBp0XLe20+lxY4fKCaeypOHJrzwdbGkkQ2s3WKUfY+y0TLhNlwkQSExkPc3UEz5QbUo9ibEyoeO8LeYQg9DOi1lz6QWIJH9PMsZdHeGW5XWITDEsUWz/AEW8PDEtCLC3PuHsTmOz0S0chdCE4PkVt04i6JFhsWE3KKtjS8aIWiQ6yCeybFyOyC24J7JDtxLk118koRVtfOcWh16ODVhy48m9ceL+VHrpOCbaE0nHzrPj+Jrocg6xoXFSvkkuuPKMqaIkocU4xceKSaUfUHxu2+LOhRrfwa6+Ot8l+8oTZ/nYk5TjWt/H/wAT/nxOXF9LhxSP+iaEuPsSIzk5pG06tNK8nob0i6HEjjobXRfMI7GUp2d4fZ2IWjYmVMaEdlKkUomTQ1iHZx1hlKNiPcamEmM0J0pRvFrJ7hlExsotbExsuEdjOhO/SQeO3i3EfWPCYZPBY8LhuoQ9vDzxGUZbhvUTUeEzjsfQ2ylp8hMT9aY3drkK0XIqGKU3T/bT5MqR/R/z+HkH3pc4xv8AE6xqqnyiOLrpKdnHQ3dp9HNtdX0XK6KceLY00odsfDdXFunF3TrWhWajbRGP5Q48tnLbc4dQb4pjcOaTcH/yd1/0nHQxJPkk1x4pQ4JI+Kejl/ziqTnRyafGEbeunCx6fFtnHiuhpDRyUQuLfao6yDRvFYuh/WEg0Qh5lv0TEyjw1PokI9on9ZmYbv06GSDRT0v0tzRHZB3Mo0M9uJ9Ee5oxPLRMLobx/iZRI6GU6OKF+CPBH8GPeIhIelBoS/dI/wB6PlBPZS0r8exDKhMdLGWlFy9G+o2qN09HxdPjExaNirUfFRVJR0Wtp8m05wfjf8S+SjfGIl0ceOzjpnJTZylUpxbpwd65JwTa2cecVFyb2cm/lE1GLl+tqHLjyb0+T6a5IrTo0+bj5cUuMGmmf/p4/wDmt1W92vbTWxJtD4tM48TlxSYo+2kNjqe0tR/FQ5KqEhxU2cmOjE9iYyjeKIZcrPWsNDQsWlIJwuPDsg+inYsPZ4d4THBf1vQsUp/maMimJHhITKPHeHBnh0IY9kJcp47NrL3nRP1fToeyVDUHsmJ+N6EQezcFjiz0mz0bKQWGkXFElBMc7FsbGhSjl11oVSG96sRxW6JcbTlye0k6J1i5TTfNJxPk1s48lHfk5BcqNNLSaSjTUK2V+f8AN/vJ7Fvt6OLaZx5JvXJ0SXY3HpclDnt18G241x0cnBf9OS5Qrbp8nDhrtpyrm73x48fi7y4b1w5NdtNqrjy+LG325UNPoTaUOXI41uj4nxY9ui2xKHJ8ZRu7XSG6i6H/ABv0aH928LDLhC2UYujzFw2UQ2UTxcSkzRd/RMZMJRYlwzY80ahcN6EzopMI9xaQg/pBIR2QfVUKdlFhIhcP6rQ9muiTHYinAkYxuDZ0USJMJelZ2WFwhvEjzXBIcfVaQuTmlJtqKi7x2PlVC1xRXaVG4ONbs0K+Kp7fLY5BuQT9E3IcWk6Pa1xaVTfHVQ+PF7FxadT5ND5Ls5Ljy2daUi03GcW3xPnxTj5cqxd6SmmuT+KnJ/I+TejjyS7bHyOXZx5JqNPw5Je/NpiidOXKPT5VYbcKLl4Nno8d4/yj6w3haHrDx2IeGJ4gmMmZ9aJjxNwTG/1soiifoxYei4WaJDwhdYYhPD7KXFOhreHtiEI6yy/nRv6SDHhYmOsR0fYmtpsWjou6cXsuhv8ABaGsNjZHcPYv0e+2yTZdFipG1W0TCYvx8eLbi5KOPj0NuwraP6VTDQqKsX4Ns4tJxxWnsxBJwa6J4cXDkk0cXO/aLlCp7Wlo+U75P5dPuJvk3BJnHjFtv/yiXJfGDUcLRv04f9K9tnMaXaPl4P8AjfpZ3x/6fvN3rS3j0SGVQaGp1INQhIh6+ng8zNnfYnMLE3lj0UuVmYiZN48P9ysrCcKW946L9PBfRDEPDKUtwy5TEPHZyQ+inWEdExLjveEz0oui09jGQYmXZ0j5Qb2MWxLe7TsSGP8ARDw8PZ0tlPk5jjxqonWNNPdonrZybXS/qTOzoTYmiJujK7pVj0NJRlSFvqqlS7sUFWOsXG6ca0fKj+LWuCSRyiVHyul/zUOVYmk6Pkm9ctui6OxdQ4830cn0PWho/wA6ZKPRvsXKdW7GdCrw9MThPcMmjvDYyaIPCKN1felL9PRZtFt5ZGIQxIeHjzCZcrX0mhDJSYuVijxTeEccPD3hPPTG6dDGhKMWNYpcoTF0KMv58is7GjsaFxGXF3RdHJ4Tax6MWsODj6VNjYmIah0qceTWhuaOsJ/rJT4tOCT6GkL8xd0qkKcVR1Dd0eFhxTbSXJtcq3yHy8OPKHF1o0lF8hcvxrVVhzTgrdpPtJVO8tOCr62jijlE9J+CU2lGqJLtcuzihpbG4Mp2cdFRL2lHjkhFu23BtlwxIYnCjR0LMEQoh4mrlnebhP6oSHhjKIaEjo9+lzNiWz0gsdjWfSieV9P8gr2WY19VWUg1cMTGXLyhCnY/5uY0ikhfRP07JsnpMabh8TaKmenohjHiaGiTHlLToTbZyauuyYX6fJt7b0M4yxshxieysuz0cFxqONHyvcTI0dqnHkkh8m0ceFVPlDi01Vy4/iTbdSmxbG0mybjXF0bZxfjXFEusPlHBctab4tQbgnGN1jY942KiFsbjKPZSD2Mg9sWLqJKYf0YjogijFcbP7hD7OtFFh44rzCfg0Jj7GhEpDwaHneLMI6yhYbG8dI7+8Fo7EPYoQhNng0LCKP6MgkNbKLWE2dYfQiHQjvC0xOFTGqMSLRsmGdI77axBwuxnR0di0SbTUYhpJDR6cUhvQ9iQtOjezYl7iJljEk9icHOzTYl+N/qfi/1VbIzjx8aUOTHexyHFbpyO8R3b0TR8rosOSgiMapJhL9ZoaqJDsTY7Rr9R+nQy49yiQY8T3DFhImxr6T79fROCY+yiwxY915hfVstN4Wz+4pcPHZ1iDF1mEGsdEwuzwg3h6x0JYuHhkPCDOilp8vBMRRaY+8dZTiLT0aw0dEuyop4U4tK3VE/SCEf4loaaSFWhaQ3B8m++LTe0QhxnrcOxt0fJrQmxDSolOtQ5NrQmPlEO0QtoV6Fz5JCaguVWm97aqoxcmnBOd8Znkl2vl+6tJsboloTZPRrYy+Yrx/HDiOD2QbmJSYYkMSG1CEPPqhbwxlExu/RDXv0Q9C/qE6PshMQbH+jIMv8A6ENwT2JjGMuJsf16LsSGMeLSjPRr3Dx19WXMFiHhMQT8KpoVIQQ0QW8zDG/xvY0Pr6I8w/woqPk+hUQuLbi5cZ3IJwYmrv5YX4MZDiVMfKLTHWhKMlO9C4xHHWjoa2Pkl2uS8fLixtKxNvY9MVW2ml22/E9j6gokeD0dqnymi+lb0Mb7wx66IM66GqLoh7r5FIQWG8N4buEJYhP/AEwWy4Y8JYRtZbEPRcXNdmGhdDy2dkIf4mM9x0JjyjsVx39H9WQZ3seJjsf0pVnrDYhIeOPIo2zi/wBbNQaxKdDbZ4diWGJTCJCj6F/c76OKo3Gcn+e4sH1SifojkJbEqLsvibE9bGx6E5GN3Qp8WhO4afvpyo2z5eCbo+UOST2UtG9lFEoNibSGrGtTaG6PYkvEfwWzlDsdZofQ20JjeEL8wk0dYuhmxD2IQ19Us0hJhLK7NiiOhDTbE1BPw/o/7cd49ExiwijFiHRM9Dw8LWIQ8zYJ/WYlPBaGh9EIfw6Yk2sIfeGIXYliUZPo/wBS1iieesPrL/D+iG5h6R6dC3npFPlRsonen/UNne8dCR0LF3D48kqf5p4b3jXZU2NTYmzs1Cno4zlo+L7HxXZ0N7HhqYTGylPBMbmhsmz/ABMpxY9jQtjcO2Nn+SPYn4XDcx4TCJhYSpfMNTCGdZQkQXGkEiE2diLMpzr3Ev1WJhLeIQRDoX4NeFGUcpDWEykI1lKYmEdYShceDEjs1hMbIMX0sPcIX82UrRRbQ3+wQjrCGxfpYPZ4NwuGfzK7H+kFhEo+MVwnrCx2haJoS0Njtp/+/L4xti0JvsuqPZDrYnsSQmVTHHjO+PFJU5NPQ2+iCU40exs4oapoa9a2x7GnhsbE4XefdpCWtMS1i+kuytdDYt4Y8IRMMey46z8sWExNDUwni7LqFiN47Y0PHQsdlGs/5fMNnZ1hkPaPWErhKsah0xixNiWUyZ7wxIo8MuhM7+sGs9nuEsyimGJDOzotz/mLSXH+8R8lRxrPWOll57OzjF2+V2XCEPoWtCWxa0JFIN7L4JlhSibOxND71xE9FPleloc7PTik3B3ojbg+KXa/tGOTS7OzY9PDYtDEqOCo9aG9idP9bQoXevZhzFKUQpRqYRPulSGjs0sNkF/BFxUNi1lHhV5RsT9+nWEdoRo8EdYmWJjGnhYTxM2k/E/su8MSFopS/Tvf0gniiOj/ABYo3hY7YxMcGphIeha76Q54PD19ohadP4TQjtCcwsLaNMsH+lw3EN3F+ieytF0dCehOxPRwVH0cmtTUE5yaXHkkt8raOsa/IPqJpPY1i0f6d4aFsp2dFqxoqwmP+eYgxoWGIbOx6E2hiGykLRieXlPDHoorh6GLv6eC7IN6NYRcUespl/LcJj/R4sPRvN+7ZfB5pVhRjxcTLGji0u39HiiZYhYe8elFrDZqCGJkEyiG7hMeORdYbExPFgmXM2QTmExKjVIz0p6dYa9F2NUpS+HHfbOK0JJGiLj1x5VD43kNpaHxbevlNLi6x6O1qbGqfEaVxIq2mLi0iDFvCQy4SPR/zpDZaLY+x7HhZ7LhvPQ3R7xB/aGhuErGiYopBYbOhGho2PNuIM7x0L6djO8trFhu4q+tNCePSKj7xR5sLshT+GoNk0dYQ9fRCwsNTeGxCHsWirCY3n3CZ/cM8w1vELhCHhYn7pbFGJG6QY/42WDS7EJbGXC7OHdGcUxu45chcmkceVVIk0xVKjSbEpyqabdHpE3cfBtb5cWukndNIhpON6eOhiEtDO8bJn+5o8weHj0XRBi39pcspVjpDLmYTHMI6Rfoijx3jwWKd4/x9jebvNyi4oi47wmPPeEV/SjLSlpSnmJlIbwyjQ+xuFw3dkEMmJlDGX6PTH9XiYesbE29HQ3RxCGyi2LjCxnyczxSNeN0Sh2tQfQkkJsuhvQm0zyie8NqnFaOXLxOorP9sEqyHohH+idwhzsY2OjNTDGdEx0TQxYTISY/36JYTgiJDxWUuspDENCEW4uLMU6Hm+C+iH1i+Y8GdFpDWJh50dfViyvqu8f09+iYxbFhsZPrPToQhsRSi2UfYzWKN+Y7xWIYl+weFtDG80XY3TpnLbOj0gu9PkytnesdYf6KG6JLRpC/RCSEqOHY+KZGtHyQ2no49DaYnTR0xu6JGO4hCVkixKKHaG3DsbELRrDRLj07R0PeUUp2dkRCiQi7ESFw8NH+Fyh46wv59FifS6EWYWni58Gv/Ss97x2d4/xEw/pfMXHv1YilKJYsOy0omMWjrFEdiwkMuX9OsM9x5hOE8GsVCEJzDLrCZNjZ/RDIhLws02LbgtKFOKvaRpCdJD5QejfuxM+TkHoT0JjEPkdnpCqHFfRiQ0vUNYo+xnZdjGIesJExCCw3iDbzT5DeZhDFjs6+i6wzrDGWDf08EX6MgkaGNnuF9P4TQhLY+8I6GP8AjUHnwuEtkP6e5gjvCX1o0MQ1hsRfp/Tsv0kKW9rC+qPCEE/qtoUOi3tK6GJiaypBrUFXhJPYkcVWfwSUOP4USqOuqNXZIjsmiNliKSI2Psf4bw4d48E6dFG2XWFKQ6Gxlws9FKNwuhrDX1o3Si1noTGIsLnbWej/AHv6pjxN4bwzzHuIdFwtH8Js9OsdfWi12X9gv0bbdY0Lsv8A6Fn+46x0enbEeZh2SZpIPCeO8Jl/aN634JlGseCGhi0QTIIesv6f60VjfuE9YUaOKo14N7xUlBdUWhcdUgmnsSadUpHMLSrfdH1S6G4zs0Ml2WoaRrDPRp4ehDZYXCcY2PHRBon1WGh5Q0M8w8M7JMTL7GJZmYdk3j3Dw9awsLCx/V4dLCGTEwxEwszC6IPXSw8TDGhqZp2NaHj07xBZuOmNFwsodITPQhrDZtu/RFxD0u8rK3mCG10IYxqjUEvCaGcZ6mSYXW0qeHGHm6QVg3CtiqY34WD2MezcPBDfgnoXQiCRPzWH2MuYeaxcUZTWXhNTKJ9emaP5hdjwuoNC/B5nmHTvC+qyz/bimseYRBiwhD7YynT+qXuZlCjHolF3vH+YWFfpMvWEdjLT+4f2tEeazcwmGvpcLYvpCZWsJ7H2Kpj/AKOolOsKkP8AfB3o9ENHFRwujRW0N+nF7K0xDX7q6JRpIlQl+rT20Xwa0NDOhLY+tdjeylPCMnhGIaP6MgyY9LmYolMpZZCEENDUOhnQxYQz3Pgst/Twbx19LlEFldjexoQj/JiH9+nguxYokUmGp9US4mzwWPCw0dZe8+/Tv6TYyYTEPv7f7IJwRcf0h/veGhf1peQu4d4T1jrRRbY1sU6cRx5Jaba8/gtDdbYtbLVMUf4TZp7xaQpx6py7I0ixbe+o2fH0bUGSjWFvQlBzENCGPoXeIPWI8TDw9Fwso6w8I6GIo2bIIh0OnX06+7xLh4eHcw81h6EIfY3nrGivs/pSk0M6F0PLwj+fX+nuH0XWesIp4XF1DwfeIM6F/wCh6yyDEdi2eCHilxYxbwi6yuyiQ9qjX41Di2tlro2JnHsT2f7trc0JZXHY+iip/D+jZYWIZ3oY9LXaJFDaRfzZ/r2hPEEv3ZET0Q8sap0xMtwi6GLZMLDFilx/nYkUghjLhsQ0TX0Vw8sfeLo/gyHf08FhPRcLYh9jedCVx/r/ADCedvCyx4mjeFj+Y/uVl5Y9HpDwZPstdrDEPDFlIWOsrsZCEGsMWzzKY43pLe2MbdE96GLQlWQje2uxr1OeIlOOu3oaI0LlTVLs5I4pjQxre0k+3p6d6KphNwY3CjdEyjdYqtZ2PELBslLhiwiGx9HpPo83H8whixTf3noijeJcLH9OxY9wsdjw8Jl2PtiII1C+LC3haEylHm7GlcPDxceiHi6P9X9x/q2PE+lOjeesUQyqHYli5YhCLstP5hnmHhkLi6PKTRNG/IPQrhI/1ISndbRB8tFYnTRX0S98kqfHWvjEJDi2JpnF3pJD4zY4cWl3UcnSjY3FpsduHj5Cc6cFoY2UQ2jwZ1lLZDpEPcw6ExEpBrWGzoSx5h56+rwuoUkx4LD6+7+63lLMGz+jwtZQliYWhvDws9o9IIf/AKkPsWbo8wj07KIY8dfSNMePcS/SE+r1hd4fQjobYjvZH0JbE46UYu4PjFX4I0JHmFoT9PR6WuhomiI4toWuuXKofVcKPZfDs9JoeHsokIn5pHIoj3C+jQniUtJiDJ9EN06ytHYszHYjXZcdn8ws/wAzPpcopRvKw89FOvp/Mz08ELHQs95n6LWO8f01hPCIQ7IdjJMseEPCT+kmESHp3iZTg2L6I6KLeKTdPMyiX6dI2J4qKcf0bpJiiZPwTTGk0XY/7obgyNM4pTbXg1RtJwuiLxL0aUEht4eEMSF/U9jxMcsLDokLRNieH9KeFWJhfSXCwxD10tlh/s/bD3KxCZf1uVmHgiC7O8Ug8d/bvHWehv0VwzwZJ9PcPL6LjsRC5WLsbzSUWhjxCZoyE0Q/zCxBiGISFrEcpCiWz0d6OmMX9Q2JNi0ilFsjSKdHFlOnS0o0mTwd+W74NwQ3ELk5vl3RNCY9jQzsRF8RcUNYWjvDyhoesJ6Iej7Hp4lGseYoxZ2TK+j3hYRId5R2sJCf0ojsmPcM8P6MRfrcPD708PKOiYYsy4W8tbwsefT3KKPv6N56y+8pw6KMRRj39KP6MWKPNEzsX4NnuE4dDdOjvCO2JCdPBMTHy1BKiSm+hNFEMpR9iIKI23Bfi5LR7hbZyXp0LaHUcW2oNxng1Rdi2dEGaIPXfhMTDGJnR2dHeOxnhTsWsUmE946zHhjyjw6wux6Qj3MEpjUzrPv08KKLHh4NlOxZ9Lm5RPDwa+rX/o8EMTxcUhDv6MRMLKF+DR6N7L5j0g894mUNZ6KN7ET1vXQ8yHZYJ7xBKiXpdnondYo4Jwt2JDw3DUGIsFXok0VnHQ5ILiIlF+L44t6XGj09NaqX95ZbGj08xTvCGQZ0I6xMIbx0zs6EzvFg8eDXuJRqaGsLEwvp/Si3l5mEM8H0U8ytHWX19Fr69IQ+z/M0hT00LLwn+weWi/R94Q8eCcGj3CVGsXMzPxneP4QSghH9OyFxMI8Ox19LSEhDfgkQnp2d6wtKkueyEvSU7OstVnLlD5idVPkIe9kQh6dEVI7ENlvZ0JaIPsdx6NDdOjorEN4XeWP6JixN5T8GR/R7Jlr8G/p4dCIOZ8wvp/crrLOz0o8bFhK5WXh5WW8Nu40Ps7yi5UeOxEylhMeJrM1hZSw51lY7z2JjP6eYWExIZNkh3hCLT+DxYPsTKyidL7hvZYsPshDrYldjUZGSojGzkqJNuE8EtlEylQ3hHXXgz+P0abFUoN6P7jwp0NfV5R1lCyxiYsLQtF0MaEinuG/y4lJ9ELspNjTTh/ry/qsXPQusQ7H9PMRGswWeseYn07GdC3hD/fqv7SjeNnR2aw8L6TCVJcfzHQsTL7JjrK2JHv0kEQ6GRzHWGtiKcVWSYamHtYTKTe3ySE0+m4oJdl8Gldejto1ybG4JjLGUenSij7YuWjvYxMbKdnWGhjPcU8HlYpREEdYTwxGhIWYPFzMPDxRCGJbG23t7zv6UoszQ+seCZ1men8w/z6UuEPK+neF9af0fRPtoaxcy4f8AcU6+qpD/AHse1mCR1j0X6PCEWDERTDYuhlvZRNkP7joWzihkT2WHeGqJFLTlxom0hcmnXV2vlsRyc2diUVOW2bJh/wAmhITHB0dE48M8FiapMMaxNDW/o9D2LDwsb+sELEg8yCRMPDGeYR0inpNEP8NZeF1hCL5mN9JExdYsy80eP8mLRfaEzMaG/rR4f0QxDw0dnmy4YqUbxcT6+iGdlLMWFnTY+8M/1M1nsWUjiSEJN4twscYtD0LimcuLRw2o2m2fJLTbdG2lBjaeai7K7j0/ov0d8Ge7L4inYyNDuEdjZ2ejwhC2dE1ho0QVQxZmjsZCa+vf3Z7jt4R0z3C+qFlaGN4XQ89lf3cOlhLDEhCEhDVx2JefRfmJh9iR0QSGsrYzseNFITGikNjIeZ8wsLL+vQuWFvHQu8ITEekaJhiLhvCIzjpCex8162cXHFycdOa6Yk4cn+JEL9GxM7Y9aLOr+Jtmyo0bpRMbeHsbmLhjOjs8F1nsT+mkd5uLvEwkT87GTWk4NicNe5onsaKSkw89PKwhY9+iEx9faOXENfS+YaokQR0MSo6h48LouPTX0UP6IusTw/g9ZawyD3hCIIYmxvwuxiwmTFv0Q2MSJsRT3CWUiQTFsf8AEqfwWkN4e8JIb2UbOtlOEpzaHWxdHKEx0ej1slGtidZUumIfRx6KRiXhINsWhoe1Dr6WY7yszKL+r6aL+/4hvwbwuhH9zD37en+URfwmfMNY8OxfR/VdHY8+no3VlaOs9jG4N3FO39GX6NfRZrGTDOxL6TPQtEGQaIWjND7ysdCO8sexPQhd6SJ6THZ0JsVFPOItaGekx/Bqi/reFxZBpI7F/PT3CaZBjY1sZWPlsWLcd/T5QqZKLseENbGsTDglczCOso8J9kMSwhkxUNHWJFnwh0QgnM9nYh7w1lbGNQ/uG9fVHmXo9+sEiYeNDx1h49x/BDx/cpnWEW4ZBCGvoiCQ80Y2JzolN9YmP97EIehJdF0PvKx5lObP6WYQhnFfsol6QUZ0NVCRs/8AJtIfGKtq7wsJlNG3ohBqvHQ1STGx7EXCzWh8m2Ll+tlwnijHIWFuO9kIU9zPBH+tH9whYTFiZRfohDPMvePcLHRD0usLHhKswmZi4eUdDOjwRMPvPWGXPe8NT60TJlEOx4WybGhL6QRCCGMYxY8z0MuGI6w1jo6HhsuFhYSYiwTOL1tnTPILSzti6Hy8f9FyG9C/s2fES2Mp/vbG4JlJsY1vHWEsQSNIeKMeh5eFhiWH+DUel2IYssSxDo/onMLWLRvLNE+jFoTwsSEG8XLWYek+0L9J9GfwhaUbO8+4eOvpMTMwyiLl4u8U0xo6z3lneGQg8sRPCYmaIW8+/R/pbhMomV4XVG3T5QfIWflR8l4xYmEPlorbEtY36MWhaG46PkW4YxUYk/cKDIsXHWWLLwnGds7xfvfpCHR5mjHlMXQ/q8MeZ9d9GhYTGbOxnmITKWH3hCWHhiZcPCcwvs2u83FwxFG8PHSITFPB4av0gqPGyCQpSDRMPQlRCwzo8JhoSfYxa0U8PIcUeG6LDOKpCjpUfE+JNl1lFHyExEKU5EJmCGdYQ8UXJIqw2QmesXCwsQRTzY+ilILKGyjdwh/RC0X6suINEmVhHuLloWvo9C+iLC5WGNix2e5aw8XWKLHbg+8p5XZ7jso9ZswlCYf6T07z6LLOxYmhwfeGJiEhH9GhnWUMbFSYTh8oX8RSnHQ+z0S/fihKD7F+Yox9E0Q6PkU6EN3oYuj/ACnEbGdYaELFEPDRMLo8ytj0URDWGf4LC/SiYkjoZ3i7xNn8+q7+j0Uh0LFFskNfR/SkP8xfqxDJce4YxYQj09w/ovp6M8xC4X7n+5RaQoi6Oi6x0S/X+CHhKifmKLWFhCkKdnlwzsTKITwn6eng0T9kx0UT3BtwbNHJTZ8hkGPWxMby9CPfp2MmKJlF9UJbGJQsw9CGyXEy0XEG8NZ/mEIWGeCGNlZMJiP6Q0PD0LHmO8vHv0RMenX2RYxVnQhk+jPZhdkhNjzrHtFnw/07xcQXQ+sP+e/Rbx5nsTzMd5mEjrZfzHWO8dm4PYijGUXY8en+pwn6x7ZCfhfDYhvwWhHJ0STFrttdDGag34dFz3iCGNM7EhGhKjTJRDGhM9GPCGXC3joqxaQZfsifRHQ3m4f8yhiJh/mU8WjQ94/3CwssTw8JHWLhIaQxbJh4Yv4NluU8ejF0L+5/0WEjsQ8NFO8QQ0UXW8sbOhsTEsomEMWzskEM6KMbTGJQ9NLCJoS/Zjw7R/iz6TDYmNFmEx7Ox/VaGLDZcJHh1iih2aExs/i8G5soxPwnuH9HoTGbwxKDytYpbinaEN7F6XC6+qILFwtkykSdH+fRaF+47xSZSxKf4L9xBkGIZPfrcLL08t4fQrhU9z6MQhMazctQQ3RrZYMQkNCwnl49KIg0hLQ8UotlLMo80n+3HoiwaHoWjoamHbiGusMTFsWjkM8z4IUWITFKUbGbRZhCG94h0e4uILCQt7F9+soauViDQ8rLEL++YbOyfdfwQn+QebnU+iexnmO0LEEf6957Ohb+jOiiT7EX06FWL6bx0IsPMsuPBfR9F2Sk+0xcMbEIQxMby8+jEcU24mhdYnmb5ilx/nmeyzt96Z7i6EMe8e/SC0WkIQaPcLDXuIIQi4bJomLldZ6HhYcw8bzBY8HiDwh/ZlmFlFGUeWmJ4WX9aNnmPCEHlq5esPLNYWETczNY19VmfSYX0mbM94XYxP6TCZfRvD6+qF2NlNov76JTEpIM60SsaSOhCIM6Gx6eu3h0SOhjZcLZcMuEhFpSDpaOnglhlOsrQtfR7yzwe1iYQ19G8zFEN5h4T7L6vr7z7eYeXvDx/uYTC+zGs36JbxfRlzCjzBaxVcpjwsJ/SY7wvq2LrNGy5YhstEhYS/W8JUUKUoti7LHqwbpxWqQglGN0kQkdj4iTYkV+tDwyQuUITn0h7hnWX9IISEh4eOx/SDw/sxM9EezDUwnl/v8A6Jh70dkJiRYX0hfpKiCz/uKP6LPoz0efcQuvs1h6xPc+0RBkWeOfNdYSLWJCyyiYtkKUuGJEwj3LIdkWOyDFplGfwUI/okL8HxhWPqng4TY3HBmhJ0e2cvwZMIh/uaWFEyaEdIuhD1j3C2dZTh/T+4eKQmKQeNnQkPZ1nz6MbuUdn8Hjw/n06wiYR6SbyuzvHRCl8xRF+qWUd5f0e3ljQkImUM8zvO8o9ITFEh9Cw8rHf0eF2LDXg8MWFi4ZKPWEtjYstnRd4SrF0bTGhChxSpT5I58d1DRHR94sLGf4QeaXeNFGLCY1iZ7Gjpkgi/SXPeGbKeCwxZQjsSJh4VP7hI6wxj0d/bzDGQhqaoxfX3P9ExJHou8IWFhHZcd4o+hs8GM2XWfMe5f02eZg1iCVxS/Tr6UWifRdjKPDPcUSHS56wux47+nY4JEOlTvbIhMRfcL/AOdtei2O05KiUVZPxaPR9jG9FeKeYmUITo1vDQxM6Gx4ZSNoSZRr0eE6eHf1ex/WEJom83FE9fTWH9HPcbw1hHQoemy/VY8y8XCf6Ja+tFvLIdY7+iOsenQ3jw6LmaHhY8OhLCL9XvE2UQ2I9GszCR0JYSo1MJYSbGKEGiEILjT46guIklobpNjVLBPdEqRJ6/05MmiMb8IniVU0MZRlxMeZYiXN9GMbErs5Dx0dYkEyDJrCQkd5kOvqhfR61npYpNYSGLHZrHWErj0u8IYzwb/F1ijwsdHZS/rRMNHmOloeLHhay8eDEUYj/GUQxEx6dEGdZYiHYtjwiCxMI8JiYux7GJZaH9O9kvUFvvrpiE6xw/g7mmhtsSJjkkP8OLFyLhvUxx0T9WtjY+Qmkxo8H2P6LPR4IX6XZBoaHsghq57Q8yYTGejeLhjxMeCJlPYy5YsIWO1hLCH9aTL7PDzNjNeHpBZ1M39LftSV5Q8Jj+q/CFzdz6I33lEwspkzCCZMTf07Idi6EhvKQ0IR4TCcGzrFG9QTR6UrFKIWPRdj2xjrYkLs46Lj5VnYm6J/jcTQno7Oxu4eHhiY/wAy4IXeLhoeGijG/pRbwhlGzZ0ImXKMfQtDeKzpj6xBoaPfp2dDKXLefCCQ9Z9ET6Pf07G8e/SQd+iZBQo1iXLf2b+j39KONCHhEEXCKPDwtsTw/wBG12eZeUhHQ2LHohicGTHXZ39Fout99uStPR/RvYi+Dc020mMSFlr89FKdCe9tLzwi7EaKhoaINIf6LbGLCw9i0WF0eY7H2MQ8S44saGjsmEeHQilwxngu8V4TxS0eF9O8TGrj09ysdn8x5jzPeFhiw39W/rxGQmyYZ5iF+i/CZuF9JlDExlHlLLEU9Eho/wALhng8PrKwsRjWhPZfzbOiFPD+i7GtYexfgvwYl+6OTEX8aEh47Y1+dD2TQscsPEx2NETRBo6wl9YJU6G4dsZBof0TKdj6KJjYxEKdYfY+hD/9MF+jFjoR5jr7U6Oz+nglsQ8eiGd4X7hkPfo/w6x0Ibgl9HsuOkf5vE1j0/o8rDzBoRRFx0XCKXKIdn9IMWG7lFyxi3hv8XQkjrPghY/rXKYb0J/uusN3r+DZKtejFfOzQ94eywTTQ2qfI7GNiZNYno/0SxCDEyQYtkJTR5lPD/BvZEyZWUQlGLEwh7Er919LT+nRcoh/veLi4mPCl8OiEg/p0I8w/qtDxxlGdfXR/R6Y94Z/hSxkRfuho8JRjxJmCw0L6XCGQo3hvLEiaxNDUFsYhYaguiiXoiZWxsSy/wAPdPRfBCfR6IqFRsdIcXhyi7w9PHF3t66TF+ELqDPCiQj0QrCjZvEI6djQ1nsWEyiwtPEOhCOxuHFD0NIkEhoguI1MrrD3j+5Q0MuLiFEsP8+kOi/RMWjocx4NCxsgtPHYmJjx0U/pMvX28FmYQxiHM9nX0WsT6IVv0cIeHf00QaOhiWWXL7g0xZS2f0b2I9FsYx9CRSwQj5ITp/qjHTiP+omsdkSFFtMgns2yRnpYPbEd4TEKMaJSFmHslHiEzKNH9wiwRceCQ1RDwpC4m8tE3iYee8f7aTf0QmIuV0PeIPLwsPDex5R/qWOzrDz5fovp2e4fRsQswRydPMQQi7L9E/MTMEmengsNjEISxU8XEFhDWi4WtiEv1E+iFreWhbGnS4aj+nF+C2hKi7o2drDw7SEQ0xKkOnR7IRevivPgPjCCEhOjOPe2hohC6GNnYzo7w8IhPo8NZh0NiYu/pMbzc+YQi50L+4WEjVEj/ffqoTEmx/R4uEN48xS6LiZrhTrD7+iW8plzMSfR41mlFhfh2TEy0LHZMekENGxHJkHlYR32niD7Em9DTQ1oR2NYSP5naEvRdYaHVoZboSxxN0twilOLhUzo+THs6x4Lvf8ARNMehvDTzIIaJ9JBk+qVFn+FHTsgnso/shHufBYhMpEGIovvCP6yn8x0PsX1Q8d4eV/OtYeEOn8x1vFEi4ePMXHY1MdiwzoXYlsa2I/zDZR4TEdCWN47Gsf3CEN1lIQWstXPH+cmPoRExKjVZsSPSC43tinjZZ1VCUiQmkUbh2Qh/rJinZouzs3SjENxlcFBo5EaRxGJJEXRIsXw0+4UQxCwmX6Q6IIX08v2mUccX6OQRCYWFrEyyjkKXR1h/SaIIqGyzCYsNYYkMa+lz31Kayuh4h6PCzTQlhCEylLRjG8I70JCX6tYRMccMW2MS/X2QibxRCcG9nSP4UUo2T9S/VIQqHx3R7Y1HMV3TZRpwvhWJsbvbF2QpTwY/r5BcYQemN447G0xOoTO+kioa9Fh6O8NYoxsTp0d4Yj0719GTWPC3R3lOFwljv6JUSpIQRbh5g3lCxLiD+z6gqTHmG/r/kHp4WyHWLhHZCTMG3i7KPCHsmH2J06G8MRBDx/cPCRILWF/XtiWPceDVOtiV22vxlOK/Yxl8EQSId4So0ns9EvyDX4uTFvbsHBsbxRp9i2j4wa0Jwa9K6Poezw7G2fElyk2bkGLshKhU5MsKJ7OyZ46HvD7GxMQ0QaJns6PcMkJctYdEIZMTNWFtYQi3Z/frcIYhLHX1YyiZMQuxnWjbEyCkKikFj37sWO8ooy/SE+npFlk0MRKT3Gy/bo8EIY1B77/AMsHBMTHs46KNtYTuKylusLujZKM4oaSHoco0OYe39H0fKFooPsTEXFIveO3H/BJLvlxV02cWxPDGkzwTUGhiwhsolWJTPXb/TRRtsThRv8AZepjRCCJof8APIJCWJhoWJh4msImEjwQzrMP8WFhDJhYesTWGIgkQ8F0PH8yse4pLlnuV9EM6JWLCFiExcJCPSnY4Jjd+jNI9Fj+ixN6172IoxqawtaJEIW9j6HoQzZ7BIaEQWOLXRy2qpdD49DdPCCZSi6JRovhDkrs6KceKezkkiCQ9CaR8jbZ8U3tKDjH3inZBjVKkJ3DWylgnso8QlGQeXhYsEsU8y8dDNYaHh5ou8JlOx4RB5T+kYynZD0e8PCEhZ8+kyhFwxawx59w/wAz7hFmOsNY7LiCQxXGhnRTofQyC47GsUuE9m7jw7LDt4feIdouWTDx/p/RUQo1Rr82JI5OaEkclD4piZBLFXrWExvY9sS0cdDdIkIf9R/BlHsWh4v7rCrH2Mp8jsZ6bF2MhKzouhImKN3Eyh7GphLD2Nax0QSHtjQszKGvwYkIWbsoiiRR5WXPoh46KLeZvGmf4nho8GdLDY8oR59FsSHjYjohDoaz1sRohD0g8LZNTD4k3mi/nf19G0hbJoeFjog0NU6R4VjZNnRx7EnDj+DWqJwbTF0cuW8JUgnslGsNe4jYuNdJsoiwZG1RdDTYmz/LvDGoJDexbL9ElBEN3WxQWsdHYxLFhKPLPBQ8xMQhBDEj0hCfe4giYo8UTFvNymelwt56IaGIWmfwmH9X0I7YxjJ9F9GNCJT0WHlOlx2hix0TEGj0R2T0bnfZ/CE0JQXQxqG4bw0u1DwYsMS2QZPRpiZ/j0cWiHFKFSFEfJIfJFpf1tUo2vENTpfpaPYxD7FDbdFhCd0M9KXZPxkpGQ9Gcdi2LEwlDsmKhihNCWhp5h6PDyhf19DTPMJkpoaGiCFrE2dYgkTRBDEUYzwgsN4oxYWxoauEsoRBIR4QY8diwtja8eOhj2JYSzcoohoWs3Z0x4ZuYm8I/wAbOsMe8L9KM6y0SiQ6Qgle2vSi5eCeiU6E/wBFrY3j+DFMdmkKLQh7KkPaFsuhDRDs4kJO1oYzZGIaEpjv6TeEmSC7hGsd9uFytjx4JTtkmPCE2IYtjhono8SiRCi7GIZRdYtGNDH9GMnhRYaKXDdG/rBEOhIh0VDR/uEJY8HjoRfp10PX1aPDwuzvPWjeF91j0WO8JZhcLYzQmXRR4okcXsbFrtveKcXB7Y1C7ExbRo6F+FGhISxBo2JVkhRPRB6I0Ji7G7iGvHrZbhrZNnIa0L8JMdi7L+t6F/JSIezop2tzYxsa3h9nE7xf1tvZ5mwf6K4uHCbNj6GNCEyEmifp5MLEJrEEPr6NDRBFGNYRMeCWEIf08pT/ACkHoRBa0ejz4UmIMWP7hlP6eDxMvoY3hYXR5h5X1lx/BCeNkHiw0M/hRId6ON8uysTrHhHezkSYTOi7EJZn7NixBuHWeij6EcdkIQWu+WxaEN1jG7j0Y3i7ozsSSQhL9GkIo96Ejkr10iDOx9msaEseD/iexSjTgvzFJvOsbJhfo3TvDPML6TD7Oxr0j9WXmUYzsSYyYh/BfhqixBYbG8TLxMLYoPK/qJBaGMQxjYtEJ9FsuOhLLPMP63C2NC/qRB7xCLMFDZouExVjEyxDXuNCKViY3opd4emccdM6OyEPRxZ46LisbR3s7Hm4WOzZNDRINrw/pDvRYNiYhsYvpDyGiwX6eakEqRFeE/p/BoeYdj2L+Y6GQ7NngyDWPRlh2P6QZ2L+0eyYgn+9FFj3D7LiDzRsWELMuG6JXMh0UZC4g/pB5ojWISiUwlBjJqnWOKo9MX79EMUGTeKP9KdF3hdjZX9OhMWhlHoT9OTTSlFvFrE4xbGyjmfRusrGvD4nESGqQXRxQ1CoomQbgoPbPiKsWkaHhxi0PsbGQWEsawyKETGjS6g+8XCGsNEEiDRBCxaQa0LG/p3n0axGd/brEO8dHZR70QQkOkx0NjZ0d56NiRIQYkSDQhDGQ4o5LeEIsHiYR3jvDFm5Z2soTENaxs2jcPcTRaWj/Dsg8Wj6E/1s2KDWHsRSIS9OUI8KEKJbOhPwfRHR4SpxQlXjk/yVQSaQ2W49FYNUaQ9ELBaE4fIpqng+i4eUyHgzs2bFc0UOhr3FPTQt46NzFosdPCWyZpdYfehDeKXFxdiY3B4aEMeGdEHiY+TGyjZaPHZNUmsV/TvP9EekwtEGhnWEQehi3jsh3i4RvLePSwY8JiWhKHElHoY6N/kxfBd4WKPDeF9dY3TrQnHhl0M/whMQfeWNQT1BbKNiRyeFULRdiZ0OZ4q9wmhNIilEsPY1EQaEhr8X4Me9KIS2MZcJkEhiY0MjbGkdm1sQxs/xKFKQTx4dlKVjeZToWVlC2NCw0QmhdjG/BDR4LDQ8Q9GJ4g8NC3iHRct6ExiQyX6waxcPYhISw9suUSDzLhYuEce8cl+K9j2JUZ3j0pT3CyifRpo7PILQqyH+wQ9HhUQfQv6ni3v0o02tvjuiWOyNDWFaNbNPR0yejZGyDehcv1cqz4rs1lj/AAXRRdD2hs8G4yjEtYmOhV/SDEzRMy6PRD/iWsLCPRxZv4yYublkJBEokJD0Jix39W8PCWLhQ7OhixLh4pPokJDw9icH2IQ3h6whnQsSEPBFFTsmWPLWF+4dm+joX8ojzD6ozv6dixRCGUY2J6PlB8qUTg9rT2LjR6emtCIU5JeCTexC2eY6OzTIoL+pVj0yUglMPZKP+TYtCaKLvX+NHY1sTE17S+DaKejeLvE/OOs9stH0eC4iw9v6TC7w3+07HiiZ5vsf0WETEPDoXWO8s2XFKUozomJRl/O8Mv18J7liFhlHotZRCIQY9C7ETD5NqH+3FJViHhTzHeELvCYkcuoLY+JcwZcQah0UR/cPYsdHeUjs/o9CLjvQ/wCr8Evc24ngzis1sX4NQcomSvT4pj4zpf2JbPSCNUSY6LrbLCqlpUJJkjJDyGy0g1hP9aXeFl7PcLYzrHQhsmLsbp/SGqWDei4aEeFwlSIlJhI+ItaLhmyiG2SY7GU7KS48JljQsIa9IPCRBaPYP+XDw28XEJl7x2ekFhaHhrH9fZ4eHSFhoglj+FxxcNM+MY1laG83DWEsQR0J7OjrCaYywmPCixEcv4kIRBREmho9NsVpGLWy0bolRJPvioPlsTu1ysKxv8W0NpHbp5hjG7iCYuiE8PRvQk0PvER6dkE4iZ6eb9rj/P4Jky/o9Fx2Ls7WETRfzYljomye4g1epCT6+CIRY6+kgxO/Xs8xYPrHgt4uXiCcK+sXEwyG/osQXWGh/glUQuEtkP4NMTgtDdVP7j/S3DYhLDHMeCwjobFjwp2Qv6Ig34d4WhGibyv50LlsrOPEa/OkcW0U/o4ji4cldjRH0PWxp9uwexCQ0yibQnBtdC5eFaw/w6PkUYlBomOiiH+iWGzvCEx9CFsmyPGkyj/cPrHZBCZ3hOi0tuDW8ejw0J4g+hbEoTRf1iSIRzEg0IhMt5Q2aw9kOhfSC1h9ZohYhPfq1js8O8Iiey0UJ6JiQmN+5S/WTaORROob1C5bxMV4f4eCWJvMKPeZ4SCwxbLsb1CHpKP+8U6SDX4PRxcJogujofe2taVJhqi1sbfRsT/Wqh6Q97Frro4tHJkEQn7o4sZ0PR6e0VozYm8QShPo4JPs8EyaOztEGxHYxb76H0PCTEXCeFov0kLXhqDJlIuy+H+MQusRWYmaJ+O/VCmWzsgtYWbhoSPML9H+iVx6I5dYuYdkJmNZQ0z+CQ1iCHvC0aPTw8NMo3snp2UvotlPkLrF3iFFsT0eU70Ib2KixTtCVZBo4pMX9b0N0ap0baF/YUezaNrZy/8AkURZolZaxVD5Rw+TkOSuFRbUJEMhJtplrImddQ30PFOxiQnjiJDV7R2NFHsZLs9wmMehPHeHsTGPLcGzo7HlNlG2xifhyP6Io14JTHeyl0L+e46whvHpB4eIIX06wy4mENYm4QmadoX7h9YWP8/g1sgt4R/uhui0ejlLqFGmbQuh/wA/1MWhu4bETw9EtDJlPWGIY2I9OinHR6dDwtmuiCakF/CUSSWvjSMa0KjQkQpFN/GbFxGmmNvoRIPklt/KITvE5dkT0mpsYmJPxptjWhQXQ9EEWs+SG6NJobiNQSpPS3EEs9C/DoeH/BCX1uxMQ9dLD7EQ7Kh58whlKJ7G9CGd/RkRIbKXeEsQbmOhEHhViExDJh9DZBd4jeP8eGPLdwlRDOxEEkNCGiCHRU8F/YMVG2IfQ/0Tm1RjGhjZMPHmrsYhnglsR6XDKdiRDZ2MmEqIkEJfvFelg+QqPjepNDEdkG2N6Zx5Vb5NUdTG+h8mNPtobi1PWu6NqHLoXYhl1BDILfV0eYTOxaImJek9GxMYnov7PRNDEzrKHoVH0IZ4T3G/o1BDe6dkhD+CHhCJ+fEkRCTC7EIr6O8NC7FsXR6Q0WkO0QWvosI6HsuKPoRbvDwlMLYliHpCi/SmrhQfRcdC2TZcTYuhiINYRfw7P5iwTw8+TC+v8KL+IhD010PQlSDT8Xf0WhP8VE0xJs70Rweti5XQ3Cps+N2dEVw3s+R8oLlvVdomkzkjo4q6baZdYrT0ti4pLa/Rxrc2LSG3IPR8p1R6xH0NCVxRqDQtZX9r81hD6E7iVDEU/h04IpoX9Yh94g+sNlEqhd4f8gmJ7xRnuVBk2SnuFp4prsZBsn61hnen9PCr6Q8E18YLCzKJDOuvSjOz/ExUawxHYlhM5F0LRSC0Ubv0YvwYnhDw2THY9Y9IUb9EXF3pEGjtip4IaTIPQiC0JC2xNoXQ3qD/AES2OnFeiGj4u4b3FNiVI09RvYhu6TSHo0R9k1ufiRxacvxvS41MSTZy29PiPuEgoh7R8YNqbtK4MqgncMp2NzDWWJTCOxbIJIa2fEgl4ci7p/SZa0JE/YSFG9EZ2LsSxMdj1hPHo+jYn+HmGRnZMRj/AEkw9CNvFxsSETFOJ03EIgxMbKdZhKiYauiFwoh7PMNHF4s2JEwx7IdHYv0bpZhDez/NdHgujdG6eEEOeUSylCidQ1RQqFCDUZofFedCaffxHpnH9EziSPDGq9PTh1pipRKkjjiJhOMqXXLkjcEjdEkeHelx4N7TcZf/ABhCKjU2VFVL+cXUXwaTe0po5Wj6FV3daOS0cZCE0Qe0NNHWxsTp/Cm4bL+wexCFINE2JDRCMaNDQyif5f23Cp4f09IxdkdIJEw3jobi2mQTXeUPXQz/AH+Y0Ib/APShCR3l5Qxf1KoWsMQ4TC7mNDOxIWIz0bGQTOyenWi7EJfppdppPE8xpYTR/D+HJEpIJEF2dCV0v9EtHYqM8NEJ+IlGocUafacZaNo462KMbU3s4uaPixppVJp6OKnbaZrobSYtofH0b8OLjgxJjSOOhcmuuXKj5U482hchbRIJHHjRJpCVPjsThy5JjJ4NCNlS6fK9JrzQnNHpNnor1iHWEhN9N9lF/XpYpRvZ2WDIaEvSeC/CbE4NEF+Ghj/iKboiHYxYe+0p1cpETY9Ip7iH9yyC32xEuZlK7EiYf08EjjsaINEHhiF3CDeyjF3BF3mUax08+CWFtDuOx8RaH2NHQn+/0aFrEp4LZRObEq7hGjWG9lPkiwbouWinE6GdCa7ExbG0lDi64ck1s+RG0Pikziot80rVB8X2bRx5JafJ1jShxd0l2cv1cWPWxt+N1kb3hbQ9443s/omi1U77a8RfRrZHcpFfRvttlF0TQu9jIIcwle0iU0htU2xEVuGtiLSC0f0i7Gt4aGN+i2eDcxCHgzrHEkPBqY7OjvLiH0Ub/G0XYt4X4b6KXK/vQ94Ta0JocmJlaG4I6QyYYtknQ9CZ0M/olcQkP4Ipy7FbrfjesITOxKFQnCwtGe4mXMLDx6JEEhCEriRmnjrPH8IRkjHxrGp0hKEae+K/Um0RHHs5NdDqR2VoaiOPGsarNPQ0cVrb5TSfJyNNSlQkm3OXGFQlRxIWhIWtDf4h1Ib2J7G9nLC/+hjQv6NaJ44dI/hT5UcmOjs4kNdFGJDWz010LbFp0exKMmPiQfY0JaxqCRoaTP5jjDzDF/V0PHR/ol+/GD6FsY2hIiRyx2TeG2QY0xU6I8pkv0kGIgsQTp4JUfQijEhdjpPcbwiaIKrQ27ufjTPiJCEJekEj0bz08f7og1cdkIJCQlCC4zYkmxqCV0P+Nax2JDSR4SPSZdC2xpTV0fGnSFehNtHHkm4viiNbTaZWLoSnfJro+U6onHSnkGtDo9HDhXTk40lybfb0xDSkOxD6No4vD7Np672PsgtHeyfsqN0mxq7IXWh9iVJXhiZxZ8kit9WC5I0i/Rbx8WuxiKMT2VE2JFOhjabGWHaIJjISkGho8wl4MY2aH+EGLRNE0NbHhZ/2+Z2L8FRrYsoh7Mo60JDw+x7F1iDURIM494arOixjZxeyjFUNnlaHETYku38UQgkh0/okoRdjQ1BcSIdok7hURVBHxaJN4psSJs6xaxchOo4qPF0cXMds49CUe6OIc7O2JO0bbHEJ7GzjYJO1xMXHwanaRxqWk720NIT2NaI1somiU6G34z0rJHGNNCsHWxIXemoNmkNYSPivJstGiCGitG6LR8qLfaFooh7K33WMh0OGkN+GxCVGaeh8UhqHouriEEJENj7E9FFyg2O0bz6MSTGz+D1hLKOiwZ2LHokdCTEhI2yQZ7ipn9HtDGKYajJUW6J6UQ1+rujREPo4kEqJHFEJD+v0sxyR/lHvC/qp4NGhsjuViI48UlTkN7HKLj+rihJJEPjSDWj4i4nHikqfHWvjRN9CSE50qma7Kx8f2XpcGzlx1E+DXb4tnxaPje2ozi69tqjd6+Da3GntpzUj22PZN7bGeiWmLaNHy0NXZxje3CwTaY3RCIh66fKaH2JUa0RTSvtL+tQTzoa2K9nKoQujitDJsQ0cexiElRpDGqNTC2cSaG0hyDVVPSjE9kprywZTkNnF0fQsNYYqT8mOh1kENlfYy0fEhD/fLhdYkEmcUQY2PrCSbOxjThshBNC2JQaFskE9CWx9U81hj/CCLsouNHoauyPo+NGdsaFsZS4ejfZvCXolvfHimiLosFy/ZdiXhqiV2nvt8Rqdfw8EvTt7Su036JCSRxSZ/wDmmLij4vyD41bXFOoSiGkclVB8Iclcd7OE95KsS/U4tWunJpJMbb2NbGxMexDh0Lls5OdEbEvX0KNDV2Rk1Bdbnp3npEOLrH+DcR5RbEJCeybGixQe3i+FRdCFvCZREHoY3cdC/iY2zl2VY9EkNCGI7EsPHEZ0UouxlxRomiTpog0L+pIiQ0e4XYsJaGh6EdC5YaEJi7wkNH8No2+56J6w1oXZ093e6Mg2OCEmf7Rqm0USEdCbfbiO+pNNRDtpZlqsfESh8WLj4NerpDXp2yIh2NNPfHkkPkm9Jp7OUQ4ziq9rifDVFob2JJ7Fx2JDbaOKcJh8ta4tPYx1DYzkjXQ2lo+X4m+zl+i5RRLbHPUqhJ9tokGqLj+tKDVFxRy2cdF/GtXCQ1oSo0rFxX7y4wSiGtHQmR3fTE1d8t5X9Eiw77G9C40afRB7Qhdl2TDnibRtjVGoyQjpx4kNMaSZrEEkyijeELo2VDp6LR2LseX2TLHvMJDootnQ2MSGdi0MaxLiQa/FsQkRIbFs5fpTvQlRb0MexVD/AK5dJQW0ejpLsnomIUWy0f6dvSexNPZpDkJo6O9i0M7xDk1pLs49j2J72+XpRuFHUcVWMW9D29o41bHH2uNcPjNEigno5JSk2LsWxr0SYtl8xxSGo9be8Nw+XpzdemoteiafSOXG7a48UtxJaSva1obnbS7Jvd/Ep21scFRr0aE4cUm98ldHFxj2JaguLTw/x3wSEqSOEiPRvYhKkQ1BlEiQX9/3j3T0exiexEIIlRNFrGkNKUeh7OKH0Jj2yEjLsuxIThRMuhkwkJYmqUdZRdGiCSmUh6JsW8NEEmhj2LbOhJdk0LYkNUehMu9kEsQYtHJUetHYj+DLse9HJaEvSbOJ/R9Y8F+CSovwScjmxOM7Zxag1x6HocaJIiQg0PsfektD4/sPRObFWiflOSsI2NlUE9CSOnhco4cWrXUuTa48ibH0cdrb4iWzk50kyRHF62Ri4pHu1/HRr05cYPjVrlxi3x43v4p6TXg3EPbr0kfIl7agmkN3plpyXpG3rjLHyFrum6NpiX7KSCbaEn2PexcP1odxGQaHhujXjaIPFwnCOlYmmIgsLWiYVQ0yDQkLiNC4rscTNtk0JJsfGCQlDtkF0JngkdMg4inFbOhVnhIRiTxDZaa94oh2P9IQgkyHE6EdDGhomjUHBDE0JJkGcuOqbsfFbFoaTOnC7KJGkJt4abGv1pogxdjohqbEticK2LeGkX3DaWsJDkLodbEhIX6X0TrKN0amxIkQhp4+Pp8tHFJnFkG1qF22UYhIg9K47Q1osYnRsbQ+jlxbOOlupbO0cmyC2cZClbHxQtOH8Jo5Jo4tdO/lYlSNHHscwoN7Fymkm0oSI32VdnLa0uxsetl/dYt6bgstGi4pBRDhcJ/s3io76eUmbQ6zoaHreJstGkJVjGPrRDSGkUbL+I9PRbJujbTONYpSUYkfESmEhpEQj/GqTR0fGra4jQqNHSETRMIQqhPQ0NNj47Emj5ah/RC4jUOIxJE3RaJ+0+Kg+PuE7h7Qu4NPEmz02cX4WHZNiqPimtyCV77HSejd0cXOz+j3oSHWtcdd7Pd0ibi4JNQ46YqLk24NDlJBz1O7KJjWsJJjY09nGDV6iHGjjrQ+J8SqQ5OlfSShxWhSHxTVOXJWLikJ8UOet7Ektt96a/OJpk1SmyPsmyCWtOoSQ9YSo+KGoPHgnCnE1R7EeCEsJUfGMaEky/iH2QaSOJNnJTaSUwkM5Hm20LZd0TXZ7RMgkmRCZfyNjR4MWhZpaRi0odGsIgl5hDQ14NEGhFE0LiqJHx2Pje3x0Lj6RLp6wxIiE9jY2jkNoeFoaGklBKIfcFrQ3RTpXYt7fZbofGojThf1yYSpBKkR6JbH2QS/H4iqj40etC6JTi503ujjUP8ALeMHKXZKdLSdRxSfbSTglvTQ/wDlqpJtUXKCbKl0lschxU0fETNeaIWaGJJDbXXL8Y+FVS41HT3bo5diSEkXxJNI4qo5cEnR8Gh8Zsrp0x9iSZy/j10lVRPcEpobOPLUFxro7YJKwW0497aSg1s4NKnNenJDWjo1DTY8QSO8W4SUOJy0yUmyqEGmWnbOKiG/TXr6K0LkPlSsv6+NJEPiTwm92uEIRjXgutLWsPWIKQbY2RC0Jro8P6cexveuxR4aOh/1v6LrCLoT2LT2/wBEMY2Qhw/5pqvlwXHalRTiqNMhxGkRND60zj2ckrEuN2Qkemkiw2dMQ2SqnxokxLYh66ZE0PShSJnHuHJfi0Twn6tHFaOetKjWtT9XG9Qiu+KXrj648U1SC4nHik2clI1w5fvJxakRx6OMbG0uk09EnSjImTC2hqHY9OpdUarJs4prbbQ66zjxa7dY2kcdsk62cWzvQ+KTG9D4tnHjs5cYbSpx48XtfDcPi1TlxnSTUbiFxS2uKSenxb2fFrrimlt8V2Nto+Lm2uL4xRpbY1+8lxS0vif8uPFp3l/w4+cklo9EQgkW6F/UNqlO2TelyKOrrjxpORP341HwmyQSiPiNDRxqw0Pj6/8AXTjYOw4yHJI4jVHxJe4WCeoQ+P58RNLvXZNDQ9HWId9/w9hy7FxPDwXFwiGJGxPzE/WX0b0Ni2RnH/pOMfLkmNwZxwuL9SgkmhpYbSWm9iTfekhqkSNti72n6Wnmu3qa2kbezZIhKpppVD4zrZIJUS9IibOL4x1pHxFrRyrYhpi2VoUfbWxcvDva4KkSUElBvZxTfGNKaOKguK6a4t9cePraiEqqJHFtNoei3Y+8RPtcUiUg2rMcYNtOnyT0nx0O7xxrYnBOoSolBwa8Eh8Wunw0JI4peE7Km4PZx47Gmu+CTe3+KKD2VUTvKvknKJ7OW9CUOUao2kz5NC58+lx/6xnNp8qoSMo9s+LPjsXBytJnHim4c+KlX9FRQdGzi4yjWzj+N70NbO1SDZahF0LoabHUyiej5Jja6T4uHGiVGtUfEfHQuJx4kg3+JOi41i4vs8GminaEtnH+pJ99PT26PEPidGmzkJa3J1N7p8h8i0aUJWJI5L8Vw9IQnD/EJUaOPHk2P/nyp/8AlFv4TkfFdr41DSWnPyKQS3pKqDUcXFXv4xj4tEa7S3rkuo0jinGTW2xdHZxUG0+uOmfFWtojXXDguW3y4JjUe5olE3x2p+pPoaT0fC9JKQ2kOeN+DTkOLnaSHCtFVg3Uf04vQ1drvYuJ0Rk0NPtcU+2uSo7BrYl4mozk2cOK7fJxaaTRx4nxFvpJLT4rw2z4+nx0Lj4lpU5JMZ103XSJ6PjNJqo4vQocVBt0t6Q0moNKi5tHxPi1ttjTPj6NOjrcPjBwuyjguLezi/CJcdqfGNcNj4x62ybFsaaL4enET2NH+9jTFrRB8fFIJHxZ8X6nO0vTlx2LQkmdMTTUF3BpoVx33IzgNUkYlRcSLo+KSHsXESb01xJeuu3vpcRI6P4KntIk7hLQ0Ig06SiTKN45M6Qkz41C4D4w40sFy/Ozi+S6VHy8NHThpLfPlemqNvoVY1s48U1Wlo+LOhtPtJDhybQmN0ab6mo5OuSZxTOtEaUJ4aRw5Lo5SUe22Jxl2cVx6X/RJPXHk2xcW2JJYSZ12t9pNHpx1oS/GxcRqacYti/MUbNH6LC7G9D7PTl4cux9IRz6OJ6hdj7OOGeD7H0PofYuz0XSGPoQujiMXQuhj6Y/Tj/8nLoSGMZ6jkI8Echf/KOHQujw4HHsY/R9nL/6PTj2I4YeFhHpy7whjF2cuscRi7H2LsWPTl2cexnLo44eH2MXQuxdnI4iEMfYhD6EPofRx7Ecuxdk2cjzD7H0LrHhy7H2LtC7YhnLs5C7Rz/+h+i7EeiEcRdY/B9n6M//AJeeH/0cvR9Hh/z6F2jl0j0fR6f8/Tkcez04dnPsRx8F2LtHI5HHpDF0L0XQ+sPoY+0cR9YfeP/EACcRAAEDBAICAwACAwAAAAAAAAEAIDEQITBwQGARUEGAoFFhkLDA/9oACAEDAQk/AMJ4BqGHrRpGQPl8sLooKRQU+GHwRgLxgL44J60EEbUjJFC0I0uhQ4DSGC1TQQjWGSUELr5Qb8tl4regsg8uCCHWijhNLIqXHAfKFA7+WxjCvU8YdzLpZeoQZOIZ5oaF8r4ecYhHusItuWGaSoYEazSGmaRjFQ4sOEPjuw8qyFqy8VhhRofKFDd3y+Hi+GckMNijjjtEvHn+lFBWRgNDkipU0+HlFGk1nhnMex3yxxg+KzQ4Qp4kI6GGI0PKKGgTjFD4YcBoXHhjLOEsnvZtkmscecwV3TSO9TxjdsIIYI4AqEXlQdKGh8oWyWrGKWnzQ1+Ghk6KLYUcaKlTqYcAtlgtgOiJefRFgwHQs5oxFxyQgg0qMM6sOEaTHFGQ201HJHGOjY4o4A1nGvDradhB867GqRbXl/sVOuY+v0a5hH8K4+uQ/wCMgj/b+H/BjP55571H5WI50fhenQU7vGUa3H1QnWIR4kujimk6Unnn0A0bHsJ0ZDQj2sciPXx7cPCFke4yoyzyIzFDAMYQGSemlRUcw+hmscq+IdSPpoyxor+vc//Z
\define link()
<$link to={{!!title}}><$transclude field="caption"><$view field="title" /></$transclude></$link>
\end
<table>
<tr><th style="background: #b3ad97;">Spell</th>
<th style="background: #b3ad97;">Level</th>
<th style="background: #b3ad97;">Technique</th>
<th style="background: #b3ad97;">Form</th>
<th style="background: #b3ad97;">Casting Time</th>
<th style="background: #b3ad97;">Range/Area</th>
<th style="background: #b3ad97;">Duration</th></tr>
<$list filter="[tag[~Spell]level[0]sort[]]">
<tr style="background: #d6d0b7;">
<th align="left" style="background: #d6d0b7;"><<link>></th>
<td align="right">{{!!level}}</td>
<td align="center">{{!!technique}}</td>
<td align="center">{{!!form}}</td>
<td align="center">{{!!casting_time}}</td>
<td align="center">{{!!range}}</td>
<td align="center">{{!!duration}}</td></tr>
</$list>
</table>
''Type:'' {{!!skill-type}} Skill (roll: 7 + ({{!!base-roll}} / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less); 2 Character Points for advanced familiarity (roll: 9 or less); 3 Character Points for base roll; +1 to the roll per +2 Character Points.
''Type:'' {{!!skill-type}} Skill (roll: 7 + ({{!!base-roll}} / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less); 2 Character Points for advanced familiarity (roll: 9 or less); 3 Character Points for base roll; +1 to the roll per +2 Character Points.
''Type:'' {{!!skill-type}} Skill (roll: 7 + ({{!!base-roll}} / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less); 2 Character Points for advanced familiarity (roll: 9 or less); 3 Character Points for base roll; +1 to the roll per +2 Character Points.
''Type:'' {{!!skill-type}} Skill (roll: 7 + ({{!!base-roll}} / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less); 2 Character Points for advanced familiarity (roll: 9 or less); 3 Character Points for base roll; +1 to the roll per +2 Character Points.
''Type:'' {{!!skill-type}} Skill (roll: 7 + ({{!!base-roll}} / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less); 2 Character Points for advanced familiarity (roll: 9 or less); 3 Character Points for base roll; +1 to the roll per +2 Character Points.
''Type:'' {{!!skill-type}} Skill (roll: 7 + ({{!!base-roll}} / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less); 2 Character Points for advanced familiarity (roll: 9 or less); 3 Character Points for base roll; +1 to the roll per +2 Character Points.
''Type:'' {{!!skill-type}} Skill (roll: 7 + ({{!!base-roll}} / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less); 2 Character Points for advanced familiarity (roll: 9 or less); 3 Character Points for base roll; +1 to the roll per +2 Character Points.
''Type:'' {{!!skill-type}} Skill (roll: 7 + ({{!!base-roll}} / 3) or less)
''Cost:'' 1 Character Point for familiarity (roll: 7 or less); 2 Character Points for advanced familiarity (roll: 9 or less); 3 Character Points for base roll; +1 to the roll per +2 Character Points.
\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
<div class="tc-table-of-contents">
<<toc-selective-expandable 'TableOfContents'>>
</div>
§Primitive Culture Package
---
''//Basic Characteristic Scores//.''
| {{!!str1}}| ''STR'' | <<eval =!!str1-!!strength>> |
| {{!!dex1}}| ''DEX'' | <<eval =(!!dex1-!!dexterity)*3>> |
| {{!!con1}} | ''CON'' | <<eval =(!!con1-!!constitution)*2>> |
| {{!!bod1}} | ''BODY'' | <<eval =(!!bod1-!!body)*2>> |
<$list filter="[all[current]tag[test]]">
Whatever text you want to be displayed when the tag is "test".
</$list>
{
"2020 01 31 11:14:20": "hide",
"2020 01 31 11:15:52": "hide",
"Customize TiddlyBlink": "show",
"How TiddlyBlink works": "hide",
"How to add TiddlyBlink to your TiddlyWiki": "hide",
"My notetaking process in TiddlyBlink": "hide",
"This is crazy!": "hide",
"4. Topics, sources and hiding?": "hide",
"Test thing": "show"
}
<$list filter="[all[current]tag[~Spell]]">
|!''Classes'' |<$edit-text field=classes/>|!''Spell Level'' |<$edit-text field=level/>|<|<|
|!''School'' |<$edit-text field=school/>|!''Technique'' |<$edit-text field=technique/>|!''Form'' |<$edit-text field=form/>|
|!''Casting Time'' |<$edit-text field=casting_time/>|<|<|<|<|
|!''Concentration'' |<$edit-text field=concentration/>|!''Gestures'' |<$edit-text field=gestures/>|!''Incantation'' |<$edit-text field=incantation/>|
|!''Focus'' |<$edit-text field=focus/>|//(bonus)//|<$edit-text field=focus_bonus/>|<|<|
|!''Duration'' |<$edit-text field=duration_type/>|<|<$edit-text field=duration_time/>|<|<|
|!''Target'' |<$edit-text field=target/>|!''Range'' |<$edit-text field=range/>|!''Area'' |<$edit-text field=area/>|<|<|
---
|!''Special Effect'' |<$edit-text field=special_effect/>|!''Effect'' |<$edit-text field=effect/>|
|!''Activation Roll'' |<$edit-text field=activation_roll/>|!''Skill Roll'' |<$edit-text field=skill_roll/>|
|!''Real Cost'' |<$edit-text field=real_cost/>|!''Active Points'' |<$edit-text field=active_points/>|
|!''Provider'' |<$edit-text field=provider/>|!''Source'' |<$edit-text field=source/>|
</$list>
<$list filter="[all[current]tag[~Spell]]">
!!! {{!!caption}}
"""
<hr/>//{{!!classes}}// <span style="float:right">//Source: {{!!source}}//</span><hr/>//Level {{!!level}} {{!!technique}} {{!!form}}//
''Casting Time'': {{!!casting_time}}
''Concentration'': {{!!concentration}}'', Gestures'': {{!!gestures}}'', Incantation'': {{!!incantation}}
''Duration'': {{!!duration_time}} ''(''//{{!!duration_type}}//'')''
''Target'': {{!!target}}'', Range'': {{!!range}}'', Area'': {{!!area}}
"""
</$list>
https://shattered-realms-rpg.tiddlyhost.com