--- a/adm/style/acp_ext_details.html
+++ b/adm/style/acp_ext_details.html
@@ -19,6 +19,7 @@
 		</div>
 		<!-- ENDIF -->
 	<!-- ENDIF -->
+<!-- EVENT acp_ext_details_notice -->
 
 	<fieldset>
 		<legend>{L_EXT_DETAILS}</legend>
--- a/adm/style/acp_ext_list.html
+++ b/adm/style/acp_ext_list.html
@@ -48,7 +48,7 @@
 		</tr>
 		<!-- BEGIN enabled -->
 		<tr class="ext_enabled row-highlight">
-			<td><strong title="{enabled.NAME}">{enabled.META_DISPLAY_NAME}</strong></td>
+			<td><strong title="{enabled.NAME}">{enabled.META_DISPLAY_NAME}</strong><!-- EVENT acp_ext_list_enabled_name_after --></td>
 			<td style="text-align: center;">
 				<!-- IF enabled.S_VERSIONCHECK -->
 				<strong <!-- IF enabled.S_UP_TO_DATE -->style="color: #228822;"<!-- ELSE -->style="color: #BC2A4D;"<!-- ENDIF -->>{enabled.META_VERSION}</strong>
@@ -73,7 +73,7 @@
 		</tr>
 		<!-- BEGIN disabled -->
 		<tr class="ext_disabled row-highlight">
-			<td><strong title="{disabled.NAME}">{disabled.META_DISPLAY_NAME}</strong></td>
+			<td><strong title="{disabled.NAME}">{disabled.META_DISPLAY_NAME}</strong><!-- EVENT acp_ext_list_disabled_name_after --></td>
 			<td style="text-align: center;">
 				<!-- IF disabled.S_VERSIONCHECK -->
 				<strong <!-- IF disabled.S_UP_TO_DATE -->style="color: #228822;"<!-- ELSE -->style="color: #BC2A4D;"<!-- ENDIF -->>{disabled.META_VERSION}</strong>
--- a/adm/style/acp_jabber.html
+++ b/adm/style/acp_jabber.html
@@ -47,6 +47,21 @@
 	<dd><label><input type="radio" class="radio" id="jab_use_ssl" name="jab_use_ssl" value="1"<!-- IF JAB_USE_SSL --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
 		<label><input type="radio" class="radio" name="jab_use_ssl" value="0"<!-- IF not JAB_USE_SSL --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
 </dl>
+<dl>
+	<dt><label for="jab_verify_peer">{L_JAB_VERIFY_PEER}{L_COLON}</label><br /><span>{L_JAB_VERIFY_PEER_EXPLAIN}</span></dt>
+	<dd><label><input type="radio" class="radio" id="jab_verify_peer" name="jab_verify_peer" value="1"<!-- IF JAB_VERIFY_PEER --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
+		<label><input type="radio" class="radio" name="jab_verify_peer" value="0"<!-- IF not JAB_VERIFY_PEER --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
+</dl>
+<dl>
+	<dt><label for="jab_verify_peer_name">{L_JAB_VERIFY_PEER_NAME}{L_COLON}</label><br /><span>{L_JAB_VERIFY_PEER_NAME_EXPLAIN}</span></dt>
+	<dd><label><input type="radio" class="radio" id="jab_verify_peer_name" name="jab_verify_peer_name" value="1"<!-- IF JAB_VERIFY_PEER_NAME --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
+		<label><input type="radio" class="radio" name="jab_verify_peer_name" value="0"<!-- IF not JAB_VERIFY_PEER_NAME --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
+</dl>
+<dl>
+	<dt><label for="jab_allow_self_signed">{L_JAB_ALLOW_SELF_SIGNED}{L_COLON}</label><br /><span>{L_JAB_ALLOW_SELF_SIGNED_EXPLAIN}</span></dt>
+	<dd><label><input type="radio" class="radio" id="jab_allow_self_signed" name="jab_allow_self_signed" value="1"<!-- IF JAB_ALLOW_SELF_SIGNED --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
+		<label><input type="radio" class="radio" name="jab_allow_self_signed" value="0"<!-- IF not JAB_ALLOW_SELF_SIGNED --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
+</dl>
 <!-- ENDIF -->
 <dl>
 	<dt><label for="jab_package_size">{L_JAB_PACKAGE_SIZE}{L_COLON}</label><br /><span>{L_JAB_PACKAGE_SIZE_EXPLAIN}</span></dt>
--- a/adm/style/acp_main.html
+++ b/adm/style/acp_main.html
@@ -30,6 +30,11 @@
 			<p><a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> &middot; <a href="{U_VERSIONCHECK}">{L_MORE_INFORMATION}</a></p>
 		</div>
 	<!-- ENDIF -->
+	<!-- IF S_VERSION_UPGRADEABLE -->
+		<div class="errorbox notice">
+			<p>{UPGRADE_INSTRUCTIONS}</p>
+		</div>
+	<!-- ENDIF -->
 
 	<!-- IF S_SEARCH_INDEX_MISSING -->
 		<div class="errorbox">
@@ -125,8 +130,6 @@
 		<td>{L_FILES_PER_DAY}{L_COLON} </td>
 		<td><strong>{FILES_PER_DAY}</strong></td>
 	</tr>
-
-
 	<tr>
 		<td>{L_BOARD_STARTED}{L_COLON} </td>
 		<td><strong>{START_DATE}</strong></td>
@@ -145,22 +148,25 @@
 		<td>{L_GZIP_COMPRESSION}{L_COLON} </td>
 		<td><strong>{GZIP_COMPRESSION}</strong></td>
 	</tr>
-	<!-- IF S_TOTAL_ORPHAN or S_VERSIONCHECK -->
 	<tr>
+		<td>{L_PHP_VERSION}{L_COLON} </td>
+		<td><strong>{PHP_VERSION_INFO}</strong></td>
+	<!-- IF S_TOTAL_ORPHAN -->
+		<td>{L_NUMBER_ORPHAN}{L_COLON} </td>
+		<td><strong>{TOTAL_ORPHAN}</strong></td>
+	<!-- ELSE -->
+		<td>&nbsp;</td>
+		<td>&nbsp;</td>
+	<!-- ENDIF -->
+	</tr>
 	<!-- IF S_VERSIONCHECK -->
+	<tr>
 		<td>{L_BOARD_VERSION}{L_COLON} </td>
 		<td>
 			<strong><a href="{U_VERSIONCHECK}" <!-- IF S_VERSION_UP_TO_DATE -->style="color: #228822;" <!-- ELSEIF not S_VERSIONCHECK_FAIL -->style="color: #BC2A4D;" <!-- ENDIF -->title="{L_MORE_INFORMATION}">{BOARD_VERSION}</a></strong> [&nbsp;<a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a>&nbsp;]
 		</td>
-	<!-- ENDIF -->
-	<!-- IF S_TOTAL_ORPHAN -->
-		<td>{L_NUMBER_ORPHAN}{L_COLON} </td>
-		<td><strong>{TOTAL_ORPHAN}</strong></td>
-	<!-- ENDIF -->
-	<!-- IF not S_TOTAL_ORPHAN or not S_VERSIONCHECK -->
 		<td>&nbsp;</td>
 		<td>&nbsp;</td>
-	<!-- ENDIF -->
 	</tr>
 	<!-- ENDIF -->
 	</tbody>
--- a/adm/style/acp_profile.html
+++ b/adm/style/acp_profile.html
@@ -85,6 +85,7 @@
 			<dd><input type="checkbox" class="radio" id="field_is_contact" name="field_is_contact" value="1"<!-- IF S_FIELD_CONTACT --> checked="checked"<!-- ENDIF --> /></dd>
 			<dd><input class="text medium" type="text" name="field_contact_desc" id="field_contact_desc" value="{FIELD_CONTACT_DESC}" /> <label for="field_contact_desc">{L_FIELD_CONTACT_DESC}</label></dd>
 			<dd><input class="text medium" type="text" name="field_contact_url" id="field_contact_url" value="{FIELD_CONTACT_URL}" /> <label for="field_contact_url">{L_FIELD_CONTACT_URL}</label></dd>
+			<!-- EVENT acp_profile_contact_last -->
 		</dl>
 		</fieldset>
 
--- a/adm/style/acp_styles.html
+++ b/adm/style/acp_styles.html
@@ -52,6 +52,10 @@
 		<dd><strong>{STYLE_PATH}</strong></dd>
 	</dl>
 	<dl>
+		<dt><label>{L_STYLE_VERSION}{L_COLON}</label></dt>
+		<dd><strong>{STYLE_VERSION}</strong></dd>
+	</dl>
+	<dl>
 		<dt><label for="name">{L_COPYRIGHT}{L_COLON}</label></dt>
 		<dd><strong>{STYLE_COPYRIGHT}</strong></dd>
 	</dl>
--- a/adm/style/acp_update.html
+++ b/adm/style/acp_update.html
@@ -20,6 +20,11 @@
 		<p>{L_VERSION_NOT_UP_TO_DATE_ACP} - <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a></p>
 	</div>
 <!-- ENDIF -->
+<!-- IF S_VERSION_UPGRADEABLE -->
+	<div class="errorbox notice">
+		<p>{UPGRADE_INSTRUCTIONS}</p>
+	</div>
+<!-- ENDIF -->
 
 <fieldset>
 	<legend></legend>
--- a/adm/style/admin.css
+++ b/adm/style/admin.css
@@ -1,4 +1,4 @@
-/*  phpBB 3.1 Admin Style Sheet
+/*  phpBB 3.2 Admin Style Sheet
 	------------------------------------------------------------------------
 	Original author:	subBlue ( http://www.subblue.com/ )
 	Copyright (c) phpBB Limited <https://www.phpbb.com>
@@ -2691,3 +2691,12 @@ fieldset.permissions .padding {
 	word-wrap: break-word;
 	word-break: break-all;
 }
+
+/* stylelint-disable declaration-property-unit-whitelist */
+.emoji {
+	min-height: 18px;
+	min-width: 18px;
+	height: 1em;
+	width: 1em;
+}
+/* stylelint-enable declaration-property-unit-whitelist */
--- a/adm/style/ajax.js
+++ b/adm/style/ajax.js
@@ -280,10 +280,11 @@ function submitPermissions() {
 		$.ajax({
 			url: $form.action,
 			type: 'POST',
-			data: formData + '&' + $submitAllButton.name + '=' + encodeURIComponent($submitAllButton.value) +
+			data: formData + '&' + $submitButton.name + '=' + encodeURIComponent($submitButton.value) +
 				'&creation_time=' + $form.find('input[type=hidden][name=creation_time]')[0].value +
 				'&form_token=' + $form.find('input[type=hidden][name=form_token]')[0].value +
-				'&' + $form.children('input[type=hidden]').serialize(),
+				'&' + $form.children('input[type=hidden]').serialize() +
+				'&' + $form.find('input[type=checkbox][name^=inherit]').serialize(),
 			success: handlePermissionReturn,
 			error: handlePermissionReturn
 		});
--- a/adm/style/overall_header.html
+++ b/adm/style/overall_header.html
@@ -54,7 +54,7 @@ function marklist(id, name, state)
 
 	for (var r = 0; r < rb.length; r++)
 	{
-		if (rb[r].name.substr(0, name.length) == name)
+		if (rb[r].name.substr(0, name.length) == name && rb[r].disabled !== true)
 		{
 			rb[r].checked = state;
 		}
--- a/adm/style/simple_header.html
+++ b/adm/style/simple_header.html
@@ -66,7 +66,7 @@ function marklist(id, name, state)
 	
 	for (var r = 0; r < rb.length; r++)
 	{
-		if (rb[r].name.substr(0, name.length) == name)
+		if (rb[r].name.substr(0, name.length) == name && rb[r].disabled !== true)
 		{
 			rb[r].checked = state;
 		}
--- a/assets/css/font-awesome.min.css
+++ b/assets/css/font-awesome.min.css
@@ -1,4 +1,4 @@
 /*!
- *  Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
  *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.4.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}
\ No newline at end of file
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
--- a/assets/fonts/FontAwesome.otf
+++ b/assets/fonts/FontAwesome.otf
@@ -1,8 +1,9 @@
-OTTO 	   CFF L   OS/22zR      `cmap!wO    headHI      6hhea
-Z      $hmtx  l  	maxpgP       name&x  `  post             g(_<      Q     K	                 	 	               Z  P g   \   3   3  s                              pyrs @                                     /          /        :        /        Q        /       Q c              	 
-                   	   ^   	  [  	  q  	  .  	  [  	  $  	  [  	    	  s  	 	   	  *  	  <Copyright Dave Gandy 2015. All rights reserved.FontAwesomepyrs: FontAwesome: 2012Version 4.4.0 2015Please refer to the Copyright section for the font trademark attribution notices.Fort AwesomeDave Gandyhttp://fontawesome.iohttp://fontawesome.io/license/ C o p y r i g h t   D a v e   G a n d y   2 0 1 5 .   A l l   r i g h t s   r e s e r v e d . F o n t A w e s o m e R e g u l a r p y r s :   F o n t A w e s o m e :   2 0 1 2 V e r s i o n   4 . 4 . 0   2 0 1 5 P l e a s e   r e f e r   t o   t h e   C o p y r i g h t   s e c t i o n   f o r   t h e   f o n t   t r a d e m a r k   a t t r i b u t i o n   n o t i c e s . F o r t   A w e s o m e D a v e   G a n d y h t t p : / / f o n t a w e s o m e . i o h t t p : / / f o n t a w e s o m e . i o / l i c e n s e /         "          "                                                                                                                                                                         
-	                                                                                   l @  ,       !"""`>N^fin~'(.>N^n~>N^n~          !"""` !@P`gjp  ()0@P`p !@P`p   \QA0ޕR

-	       j                           R                                                                                  p   v    _                         ]                             y n                       2                           @                                                                                              z                    Z                                @    5 5        
                                   Z  Z          @                                                                    ,  _                 @                                                       f                                @                    @                        (                                      @            @      @        -  
 M M - 
 M M                  @                                 @  @ 
 -                 b           
                                                5                                           -            8                                   @                  D           @                   ,              *     @                                                 	     m  o                     )                 @    @   	                                	                                   '                      D     9                 >                              d  U     *       q	   	   	   	   	   	                                             	                                                           	                                                                                        R	      	   	   	   	   	            	         	   	      	                                                 @   	     e     	                !     	                         %                 R                                                                      FontAwesome C uvv	  U6 U6+T+| u\       " , 0 4 < > E G M T \ _ e h m q y }                  #)4>HT_lp{
+OTTO 
+    CFF 9s7    EPAR  ( l   0OS/22z^    `cmapǢT   head    6hhea
+ P   $hmtxJ+ t  
+maxpP  
+`   name>$# 
+h  
post    x      FontAwesome C 	 U6 U622 
       " , 0 4 < > E G M T \ _ e h m q y }                  #)4>HT_lp{
 '4=GRYfoy
&,39COVcoz"/5;FPUZes}&+16<EOW_hmqv|)04=DPX\aju(,26GYhy%16;>EMUckox				$	5	G	V	g	l	p	v													
 
 
@@ -36,2071 +37,2538 @@ u
 
 
  &5BQafmty !%)-159=AHLPTX\`dhlptx|






%
,
3
7
;
?
C
G
K
O
V
Z
^
b
f
j
n
r
v
z
~






























	
!%)-159=AEJNRVZ^bfjnrvz~
-"&*.26:>BFJNRVZ^bfjnrvz~%0glassmusicsearchenvelopeheartstarstar_emptyuserfilmth_largethth_listokremovezoom_inzoom_outoffsignalcogtrashhomefile_alttimeroaddownload_altdownloaduploadinboxplay_circlerepeatrefreshlist_altlockflagheadphonesvolume_offvolume_downvolume_upqrcodebarcodetagtagsbookbookmarkprintcamerafontbolditalictext_heighttext_widthalign_leftalign_centeralign_rightalign_justifylistindent_leftindent_rightfacetime_videopicturepencilmap_markeradjusttinteditsharecheckmovestep_backwardfast_backwardbackwardplaypausestopforwardfast_forwardstep_forwardejectchevron_leftchevron_rightplus_signminus_signremove_signok_signquestion_signinfo_signscreenshotremove_circleok_circleban_circlearrow_leftarrow_rightarrow_uparrow_downshare_altresize_fullresize_smallexclamation_signgiftleaffireeye_openeye_closewarning_signplanecalendarrandomcommentmagnetchevron_upchevron_downretweetshopping_cartfolder_closefolder_openresize_verticalresize_horizontalbar_charttwitter_signfacebook_signcamera_retrokeycogscommentsthumbs_up_altthumbs_down_altstar_halfheart_emptysignoutlinkedin_signpushpinexternal_linksignintrophygithub_signupload_altlemonphonecheck_emptybookmark_emptyphone_signtwitterfacebookgithubunlockcredit_cardrsshddbullhornbellcertificatehand_righthand_lefthand_uphand_downcircle_arrow_leftcircle_arrow_rightcircle_arrow_upcircle_arrow_downglobewrenchtasksfilterbriefcasefullscreennotequalinfinitylessequalgrouplinkcloudbeakercutcopypaper_clipsavesign_blankreorderulolstrikethroughunderlinetablemagictruckpinterestpinterest_signgoogle_plus_signgoogle_plusmoneycaret_downcaret_upcaret_leftcaret_rightcolumnssortsort_downsort_upenvelope_altlinkedinundolegaldashboardcomment_altcomments_altboltsitemapumbrellapastelight_bulbexchangecloud_downloadcloud_uploaduser_mdstethoscopesuitcasebell_altcoffeefoodfile_text_altbuildinghospitalambulancemedkitfighter_jetbeerh_signf0fedouble_angle_leftdouble_angle_rightdouble_angle_updouble_angle_downangle_leftangle_rightangle_upangle_downdesktoplaptoptabletmobile_phonecircle_blankquote_leftquote_rightspinnercirclereplygithub_altfolder_close_altfolder_open_altexpand_altcollapse_altsmilefrownmehgamepadkeyboardflag_altflag_checkeredterminalcodereply_allstar_half_emptylocation_arrowcropcode_forkunlink_279exclamationsuperscriptsubscript_283puzzle_piecemicrophonemicrophone_offshieldcalendar_emptyfire_extinguisherrocketmaxcdnchevron_sign_leftchevron_sign_rightchevron_sign_upchevron_sign_downhtml5css3anchorunlock_altbullseyeellipsis_horizontalellipsis_vertical_303play_signticketminus_sign_altcheck_minuslevel_uplevel_downcheck_signedit_sign_312share_signcompasscollapsecollapse_top_317eurgbpusdinrjpyrubkrwbtcfilefile_textsort_by_alphabet_329sort_by_attributessort_by_attributes_altsort_by_ordersort_by_order_alt_334_335youtube_signyoutubexingxing_signyoutube_playdropboxstackexchangeinstagramflickradnf171bitbucket_signtumblrtumblr_signlong_arrow_downlong_arrow_uplong_arrow_leftlong_arrow_rightapplewindowsandroidlinuxdribbleskypefoursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464uniF1F0_466_467f1f3_469_470_471_472_473_474_475_476f1fc_478_479_480_481_482_483_484_485_486_487_488_489_490_491_492_493_494f210_496f212_498_499_500_501_502_503_504_505_506_507_508_509venus_511_512_513_514_515_516_517_518_519_520_521_522_523_524_525_526_527_528_529_530_531_532_533_534_535_536_537_538_539_540_541_542_543_544_545_546_547_548_549_550_551_552_553_554_555_556_557_558_559_560_561_562_563_564_565_566_567_568_569f260f261_572f263_574_575_576_577_578_579_580_581_582_583_584_585_586_587_588_589_590_591_592_593_594_595_596_597_598f27euniF280uniF281_602_603_604uniF285uniF286_607_608_609_610_611_612_613_614Copyright Dave Gandy 2015. All rights reserved.FontAwesome  
-  $ ( =     $*.48<DHL{!'+9>`g
"&.26;?DKjs
isw$7=FNUzRW^ejquy~	4<DNY^ny
-P[`eisv{			%	<	@	G	S	l	t	{					
-
-
-
-
-
-!
-'
-M
-q
-v
-
-
-
-
-
-
-
-
-
- 	-LUu~
-(:K\ejqy




#
<
U
Y
b
m
p
w
}













-$).DZkx}	
(,?RZclqv|#3AIOVZ`djrz$2@N\dmrz 
(-3>JRZ`fkpv{,!
-T
-
-<<BKH
-K\i
-"
R
t%
-l
-
-/@EXXE+y}}yKX=
-+EXXE'3
-`T~~4gT@
-4
-f
-
-1
-TR
-@D=
-'
-*
-<<22
-T>
-:TF
-ya
-H
-T\=2
-@@u
-66%
-y}}yKy}}yTJ
-@
-K1
-@
-c;D
-N
-'
-T&F
-]]H}t	 "" 	hh
-+
-Xy}N
-|zKz||zKz|K
-
-ff
-
-T
-TT|zeU#&
-|
-w
-R+
-hnnh*}yTy}}yT
-
-V`*#`V
- EQ|z `
-F
-~k9
-9
-0hnDRRD~
-
-
-1
-TR
-5
--
-
-T tzuxu[Brlmyz~ 5qsUaRD`hnnhhnnhy}}yKy}8
-
-TT
-TT{
-[
-;(=ZXWG/9;/_Mknmn9:YIƑP`q~d_iiii
-h@@hh@@hh@@h0:
-l
-.F/B[NPuc]T<Od}}|1B&2B
-9T
-i
-ԟ-
-.<
-YYffTE
-EQj
-v
-y}6nh
-Pj
-T-
-Tj}]t
-#EAS i^wvhvi^S AE]#W
-^TA$$EM
-$$V``VV`
-`Vm3'!%Ơ#xM'nqwdo^
-j
-]
-3C+
-]yots{tqT-
-Tc`
-4~~4`_`R`e9C/R&aҦ4A'")~41
-'
-T
-!5!'
-ftkv
-K:
-z;
-;
-{z
-d
-
-33z|:vl
-:u
-5!'
-.
-BQE0u
-.fM@
-jmq;fveKxvuztvRDffYYY
-ff4
-i8_dd_~~xzƅy@
-T
-T;
-Srj23CC3l
-t@kt
-f
- \|\?Z Eԅc*y^H(ym|[ZZrwh_
-Nt
-
-
-~
-8CZ7)
-
-6
-9"TM5Ř{~~D;i
-ffPttBxwBD$$D
-8
-8
-8
-V``V
-
-YP
->
+"&*.26:>BFJNRVZ^bfjnrvz~
+"&*.29@GNU\cjqx '.5<CJQX_fmt{  '.5<kvglassmusicsearchenvelopeheartstarstar_emptyuserfilmth_largethth_listokremovezoom_inzoom_outoffsignalcogtrashhomefile_alttimeroaddownload_altdownloaduploadinboxplay_circlerepeatrefreshlist_altlockflagheadphonesvolume_offvolume_downvolume_upqrcodebarcodetagtagsbookbookmarkprintcamerafontbolditalictext_heighttext_widthalign_leftalign_centeralign_rightalign_justifylistindent_leftindent_rightfacetime_videopicturepencilmap_markeradjusttinteditsharecheckmovestep_backwardfast_backwardbackwardplaypausestopforwardfast_forwardstep_forwardejectchevron_leftchevron_rightplus_signminus_signremove_signok_signquestion_signinfo_signscreenshotremove_circleok_circleban_circlearrow_leftarrow_rightarrow_uparrow_downshare_altresize_fullresize_smallexclamation_signgiftleaffireeye_openeye_closewarning_signplanecalendarrandomcommentmagnetchevron_upchevron_downretweetshopping_cartfolder_closefolder_openresize_verticalresize_horizontalbar_charttwitter_signfacebook_signcamera_retrokeycogscommentsthumbs_up_altthumbs_down_altstar_halfheart_emptysignoutlinkedin_signpushpinexternal_linksignintrophygithub_signupload_altlemonphonecheck_emptybookmark_emptyphone_signtwitterfacebookgithubunlockcredit_cardrsshddbullhornbellcertificatehand_righthand_lefthand_uphand_downcircle_arrow_leftcircle_arrow_rightcircle_arrow_upcircle_arrow_downglobewrenchtasksfilterbriefcasefullscreennotequalinfinitylessequalgrouplinkcloudbeakercutcopypaper_clipsavesign_blankreorderulolstrikethroughunderlinetablemagictruckpinterestpinterest_signgoogle_plus_signgoogle_plusmoneycaret_downcaret_upcaret_leftcaret_rightcolumnssortsort_downsort_upenvelope_altlinkedinundolegaldashboardcomment_altcomments_altboltsitemapumbrellapastelight_bulbexchangecloud_downloadcloud_uploaduser_mdstethoscopesuitcasebell_altcoffeefoodfile_text_altbuildinghospitalambulancemedkitfighter_jetbeerh_signf0fedouble_angle_leftdouble_angle_rightdouble_angle_updouble_angle_downangle_leftangle_rightangle_upangle_downdesktoplaptoptabletmobile_phonecircle_blankquote_leftquote_rightspinnercirclereplygithub_altfolder_close_altfolder_open_altexpand_altcollapse_altsmilefrownmehgamepadkeyboardflag_altflag_checkeredterminalcodereply_allstar_half_emptylocation_arrowcropcode_forkunlink_279exclamationsuperscriptsubscript_283puzzle_piecemicrophonemicrophone_offshieldcalendar_emptyfire_extinguisherrocketmaxcdnchevron_sign_leftchevron_sign_rightchevron_sign_upchevron_sign_downhtml5css3anchorunlock_altbullseyeellipsis_horizontalellipsis_vertical_303play_signticketminus_sign_altcheck_minuslevel_uplevel_downcheck_signedit_sign_312share_signcompasscollapsecollapse_top_317eurgbpusdinrjpyrubkrwbtcfilefile_textsort_by_alphabet_329sort_by_attributessort_by_attributes_altsort_by_ordersort_by_order_alt_334_335youtube_signyoutubexingxing_signyoutube_playdropboxstackexchangeinstagramflickradnf171bitbucket_signtumblrtumblr_signlong_arrow_downlong_arrow_uplong_arrow_leftlong_arrow_rightapplewindowsandroidlinuxdribbleskypefoursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464uniF1F0_466_467f1f3_469_470_471_472_473_474_475_476f1fc_478_479_480_481_482_483_484_485_486_487_488_489_490_491_492_493_494f210_496f212_498_499_500_501_502_503_504_505_506_507_508_509venus_511_512_513_514_515_516_517_518_519_520_521_522_523_524_525_526_527_528_529_530_531_532_533_534_535_536_537_538_539_540_541_542_543_544_545_546_547_548_549_550_551_552_553_554_555_556_557_558_559_560_561_562_563_564_565_566_567_568_569f260f261_572f263_574_575_576_577_578_579_580_581_582_583_584_585_586_587_588_589_590_591_592_593_594_595_596_597_598f27euniF280uniF281_602_603_604uniF285uniF286_607_608_609_610_611_612_613_614_615_616_617_618_619_620_621_622_623_624_625_626_627_628_629uniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BEuniF2C0uniF2C1uniF2C2uniF2C3uniF2C4uniF2C5uniF2C6uniF2C7uniF2C8uniF2C9uniF2CAuniF2CBuniF2CCuniF2CDuniF2CEuniF2D0uniF2D1uniF2D2uniF2D3uniF2D4uniF2D5uniF2D6uniF2D7uniF2D8uniF2D9uniF2DAuniF2DBuniF2DCuniF2DDuniF2DEuniF2E0uniF2E1uniF2E2uniF2E3uniF2E4uniF2E5uniF2E6uniF2E7_698uniF2E9uniF2EAuniF2EBuniF2ECuniF2EDuniF2EECopyright Dave Gandy 2016. All rights reserved.FontAwesome   [ _       "+/37;TX_dhn#'Prz.26:@DHM%*.48@ENUZ^} /3PW^cgl8<FJCUajov{			@	J	Z											
+
+
+&
+*
+.
+:
+A
+T
+m
+r
+}
+
+
+
+
+
+
+
 
-}yvKyx}zyzr^``^?_
-}D}}
-kK&
-^hnnhL
-);
-h@@hh@@hh@@h@
-T1
-+yys
-pF
-88'}
-}t.+ݭG
-4
-1
-!
- _
-
-
--.
-n\n3/{V=@;~~~w~fz\J$9:lAT}yT5Tmm))mm)~w]]w~05
-
-HEYM
-@h!(
-!
-SZZA3
-3C~z{ Uf
	,,		,				,	-
-.
-hnnh\xcikvss]tRatyxx{Vv7+4%MYtk6~w~~p
-05
-xyots{tpOK+yyrrrry+t1()=
-@
-3<
-|
-T*
-5quuqqu;;uqQDntyt
-H
-t>
-r!5$
-arwwvyr/w__cp]44x]]9
-
-h
-&&{
-F BiD$$Dyy;6Tu|z<<<<`=db97TT_Ldknh
-
-˻WL
-ETO>
-}|AE##EE##E~w]ɽs
-o"7lz&6\
-gO
-+
-<<y}|zfz{13DR$$-
-0/
-
-EQjb
-~++P,,
-z}XtxmihbW_):z{<
-T;zt*E##EtBh@s%$TɽYMqt{tsoy*10],y	B'!!V}jii`V']
-]6wkz||s}g+
-   hTz4X  \$"WTSZrsyy'&%t~*i
-
-]]       }            Yg    ,  0                1     x    e   q   Z   
-    	c 	 	 
-; 
- 
- B  P  
 
 
 
  j ^ a     i 4   a 8 d       T   k   8   b     9 [ d     & \   P   T   P     !F ! " "t " " " #o $ $ % % & 'G ' ( )e ) * *O * += + + ,9 ,{ , , -q - - . 0
- 01 1 2K 2_ 2 3 3{ 3 4/ 4j 5 6 6d 7e 8	 8? 8i 8 9 9 :
- := : ;W ; <` < = > ? @ A B2 B B C	 Gz G H! H\ H I/ I1 I3 I5 I K  Kg K Mv N N OZ Ob Ov O P Q S Sy T T U8 U V W X X  X' XJ Xi X X X X YK Y Y Z [_ [} [ \W \ ]m ] ^ _ _b _ `Z a aG a a bF b~ c' c d_ d eE e e e f& f9 fG fU fr f f f g  gc g g g h h h h i0 i j; j j j k& kp k l l m@ n n n n o} o p, p q q r> r r s1 t
 tS t u1 u9 u vo v v w& wa w w x5 y y4 y y y z* z {& {< {q { |+ |b | }* } } ~ ~Q ~ q   >  B U 3 u   4 i     h    7  `       
 b   N       4          v h  o  k      / w     B  *  k %   t  A  Y q    V  O  L  l B       X    Ā Ĺ ) ƿ C Ǫ   ɓ  ʥ 4   ͫ     l q 9 ) 	 X ִ  , : ة  q    ܃  g L ޵    (     K  
-  -       7 Z      <    c =   R `			j
-
-
}p<}abT|lF7D) c    !	![!"#$$v%&#&o''F'{''(*)3)+`,B-./019122p4+456%78e9 9:
-:;;<=>>*>x>>?(?@H@@A/ABB>CCCCC
-CCCCCCCCCCTt TT4d
-4  
-z..ȮhKh<Nh--N<vhNKhN<h..Nhv<NNvȮ-m-hڠvNl
-
-44T
-44V``VTS44T?
-44K
-Tyuuyyuuyy?j`,4G yu~8գYSKkj>h3c#
^uiƭRl
-
-@.
-?
-FMffMZnnw
-
-
-d
- `Vc~ofa[
-Y
- T?
-
-@
-suw#$L>$#69JX"!!`V+/EE+V1RFS
-_r@3CC3U
-f
-5
-p] 
ksu[ztfU& q9
[[9:QQ:Mqksu[ztfU&l
-vVlXXlVv6 *33 6q
-)
-Ki
-l
-
-i4Y@
- zzzzf
-Q
-T0
-Q
-`VV``VTV`ԛ
-
-T0
-f
-Q
-T0
-
-
-TV``VT
- Q
-
-
-TV``VT
-TVTV``VT
-
^y
-$%
-"
-hhjyy
-
-"
-"
- ttBKH
-ttH
-K\tti
-tt
-?
- H
-K\i
-?
-a
-tW&S:aR`S:a))6
-z6)õ`a;R`W&tA
-;;QEEQQEEQ Q
-
-
-
-
-
-T
-
-T
-
-
-@
-h
-k
-zK}zaEV" nmloL{yry}{{OJNll~n|i&js^^[{m~mkNo|y|rz{Kpijki\f_i]QM[!|Lz~rǑ̒Ȫ 'fgiM
-
-
-([po
-pHH4g
- l
-nnt-
-v
-.s~oJ,W`aGahc~v~AHH
-< 
-4t4tttZ
-64$){||||
-N
-g|5pp
-Ty~}y:y~T
-ppur5|gccn_Tz}
-
-y}}zT 
-
-Tdgf[wXX[fe
-?
-
tqTTTTTTv
-
-T~~/7
-v
-('T
-T7
-h
-,T,ThXhYm}}chhcqj}}iVgvL
-wxrwwvttv$d
-t
-!SY;;A
-ylD&)'C3
-Y4T[
-
-t}
-|}zcesd,.9/F-0T5
-T"Q>W"SX5z|[,9FZ3{
-T[
-i
-#""T
-
-
-
-@
-ԪG@3CC3U
-TTT
-T+
-kT^^^^Tkth]bt\i
-K^_=1lno1"-SKq~n}s{x}zsz6
-;3n L T
-T/WW/!(ZMj:kA
-TK+k+8V=_GxɁHKxMG_8+
-MddN-hnog?

?go 
-dN-hnog?

?go_QP
-ox}yCQ(Csyrp}t{xo_PQ_K
-n{}|zx8
S``*S8
qxozo||{}s}|{n6
-
K
-vvvu'j
-
-ʪʪꪫʪ骫kihvvvijiʌ
-oz
-1z
-q
-w
-z
-z
-z
- 1{g1{{{{Q
-kllo ʀ
-oijivvviijn
-)n
-/
-_^X*DtcX_^sjii}jttjjhs! g|vtywxog`vf/TFw.qra\zzzaM{tswxyzzVc,sj|wut{tv\h2p]yx}xzuxWi:mY{pvzs~{sww}e_^#:/r8
-s
- 4S4K4"Kme,,eBV4
-K"44"4\t4T?
-4t
-"T33333333T4tXr=EE=UIrXtv
-l
-O
-T,
- ie%/,xxx(((#Ɏ	wR'VbgfVpoqqq{\/j}}Yh^?DFG@EatV@ha %-n<scsŔO5*VJM(0x[[_}~%;AHW{'Qbgfg
FIGf=R!G v^]^z8'n\PuH#hPMqJK{-ЊxġMMN[ĐơϦԖУ!!!x$ǁΓmr;ni~GhftnOlFKwz6;p6p_ph6hpo;_}oh6h6}_yǏ\|}Cy	^^^LuZ
-q4I
-eptcCDC
-yǐ]|zb||}3mrS
-667W,
"4I
-~yv}u
-] y]hvp|zwwzv{y{ |phy
- :
-
-.
- :
-d
-.
-:
-[
-y
-:
-.r
-:
-[
-y0 :
-
-.0 :
-d
-.0:
-[
-yE
-E
-E
-t
-
- @
-
-f
-tX>l
-TX
+;BFLTX_cinsz .38@FKPp|

&
E
d
m
z













%1=BGNU[e
+#)-7=CJO]kr):PUblqv| ",5:BJOTgz$6HZ]hs{
+ &,6@JTX`hnt|
)8@OSX\bhp~"/4;?FLSW\hmt
',2=HS^elw*
+A
+T&fAV
+TlfPzz
+ P
+4!
+t
+
+q
+q
+bt&
+y}}y33%33
+`zT~~4]
+Tg@Z
+4
+
+R
+,T[@
+<<4
+,
+^2
+%%%%%%3
+T<
+nh@;TN
+TITN
+C
+KFKk6
+?J
+
+
:
+K,:
+y}Tj
+5
+/W
+K$'T$V
+L
+v
+
+
+L
+6
 f
-T1
-H
-ke
-tX
-{tz{~'&9*
-TT&
-T|
-:''~)T>4444Tl
-
-|z@
-Y
-
-4ka@@
- j
-D~~UT44/
-~sjiij}st:944::!k
-CNLT_p tR!u
-@MϠHGwwsr@umXXj:bkkcv`~:jX;Y;l-&@yyE
-iS+,,||~KK$
-fccL+4444400f,,fMff// gl
-}{|y~wj$
-|z)"L
+y}}yy}}ylz||z%
+1
+
+KTTY=|zKz||zKz|N
+
+!5
+!
+
+ff(
+G
+
+Q
+3|T|T|T
+T
+T|zs
+R3&'
+'
+<
+@A
+G
+^
+[=
+T /
+3
+c-`V}hn"Bv
+g
+OG
+`E}n\>lg
+,hh@@h EQP
+|z@z||zTz||zz||zTz|7
+F
+x
+3CDRRDDuy
+;
+;
+5!Jb 
+h
+
+5
+/
+TT +
+-tzuxu[Brlmyz~ 5qsUhnnhhnnh
+tttT
+ y}}yKy}?
+j3CC
 
-{zt{tqT4 7\3ulz* p4Tqtv l
-KK$
-fccL{kkYkkkYkkkkYkBBk
-
-{
-
-
+5;(=ZXWG/9;/_Mknmn9:YIƑP`q~d_ircrriiiy
+@H-R
+'
+ 
+T 1<t0
+lnl||}_zob^^bzM<M<v	o_}||r
+
+/0
+]}
+]
+
+EQy
+v(
+W
+T/T
+
+jih{t*
+<<<
+<+B
+AS i^wvhvi^S AE]#'
+K(
+D
+Fm3'!%Ơ#xM'nqwdo^]
+t
+x
+1!!EQQE5i'Ty}
+tV`
+
+K
+T
+
+
+t
+kb
+K<z
+X
+@3CC3@#P
+nhQ
+h/:nh
+
+:
+
+;xtulTK
+1
+0
+8i8_dd_~~xzƅy"9O9%9)o'0qi?@hh?@irC
+TFKkTr
+P
+;;YS<!yots{tqT/Tg5[
+F
+
+s
+*
+41
+ZZrwh)S
+
+-
+vvzz:
+tttttt
+1
+7
+Ԏ8
+Jn+tmy;
+[8
+
+hn>~w~~w~K
+=+tX
+@]
+@gZ
+tV``V;
+;`L< xra
+YW
+@3&
+~~w~@5!}yvKyx}zyn
+T7rrcr~g
+hnnh
+YYG
+P
+~********=
+4
+4)
+.@([
+h
+P
+vT~z$j
++[
+<<5!I
+4*
+A
+C
+7
+r
+C
+7
+@r
+b
+!6gTE 
+ˋ h3/{V=n\n]9
+vx{zz{X
+CZ7)D
+T}yT8TC
+T7
+Tr
+]][
+1
+
+
+7Uf
@m
+ 
+<
+ZZZZ{B
+rrz{
 +
-u
-0vgs
-<
-UZ<
-
-Z
- SUZ<
-ZZ
-ZZrZ
-hlvlr|h@h|h
-d
-@^
-F
-^
-[
-h
-d
-@ Z;ZZ
-ZZrwhZd
-Z;Z@;}rrwS
-rZZ}
-

-u
-.
-::}
-zz
-zzr::
-'
-zz}
-::
-
-::
-zzC
-bu
-
-[nh
-!C
-hnn
-!h
-}2zz11z
-IIII{zzz1IIII
-IIII1zzz{IIII{zv!
-
-zz{z
-vv,+
-1zz6h
-4y}}yTcTN
-T4,#Q?`\pnZtҫȧPKgjzx}wy\O~#7@TKT!h
-4@
-T1
-4R
-+1
-4R
-;D44{44!`$$`$`$l
-$$v$`$:
-}
-#Zk==k##kZ==Zk#:
-#k==kZ#v#k==k#[
-]&&&&&&
-
-&&kK$g
-%}
-''}
-%%
-
-::!8$ %56&{SjjQh[=<<=>a>a
-^CT}s@skiij}sst:
-jt x
-}sTӸ~ssjiik}ss@@stjtTC^OG
-GOTs:
-js@t
- K/
-sjiij~sts:
-ks@sTC^ǸTs KT/
-@sjiij}ttTTtjiij}tsA@s:
-jt t !j _
-
-t,Qa! KtkvqCth
-tԃh
-
-<<<a<-!y}|zTy|RT|y.}|yMx|zp4HhnzhThnhTThS\V`Zy~5V``VV5`VOL'HMoZd99dMH''G
-L+&4?
-4:f
-
-/J7I[^_[Z_~}yhn{x(nhZf7p\XTHaG-whhiwVQZ:#vz]l`L{l{,+\^˒l
-4BH
-K\@i
-CN.ETiCkhTT$?LL?H
-]]
-vc0;'dquuq--*LaaLvtrrtvLa`LT$]D'#5H
-#7quuq-.*Sv-yU*PNO_Z~wrsrswH7*V3ziU{Qg
eg
SA:NT~=L=&0ErAuXf
-5y}|
-y}RT|yR
-~|yMx|z]pkou`\\`qbuud[ddsd
-uz``K4K++44-3V+*QQe
-듔VV땓4L554K ˫44˫j
-_`44_Tt`Tt`Tt_44
-K
-Gt4`_t
-K
-GpK
-K
-
-Wl
-f
-."&Ft5t+

+K

Qc-b.T5MKTz|
-sRrQnS SL0t5tĤŨ Ty}
-%%_Ib	\;COLD|yz|rs{A0%h
-d
-TKi``iK,QQ,^5
--
-.^5
--
-[
-Larzy}
-zyrrbr:9r
-:9Llr:9}
-}
-:9rrbrzy
-zy)
-4TTF
-yxxy}||F
-T44rdTi
-4^T44fTH
-4TTA||}  QEEQQEEQQEEQQEEQ@^OH
-`E{l^@lF
-
-, 4B
-4
-&
-)WWXg3
+T
+<Z:wBD$$D(=`hZTA
+
+/0
+nh&&&&&&{Vv7+42yqpV``VV`J
+Y
+MY
+}
+>
+|znhyyrrrrypttp&pt15
+tv'
+K(
+
+;;g
+
+$4y~MQsQDntyyt
+Fte11eBBT2
+
+rI
+F
+y'&K
+w__c4444p]R
+GTTX
+x]]
+ 83
+wrrhh@;fveK\xcikvss]tRat7+447&&
+7
+V(-
+hnD$$D
+,
+}tP
+`=db97Bxt3
+?Lg__gg__ga
+`VC3~w]}
+y6%6-	_$cX~
+TRV22VV22VP@zyzz 
+s/Avzz{b
+z-
+
+ft &
+3
+
+]]EGxZnyt P
+P
+++P,ʲ,
+
+_hmx2
+
+
+ˋ
+
+
+d44
+T[`M`My}}yT,V;;0
+&&T
+3
+
+t'.
+%@p
+)qt{tsoys%$333vK
+44\~v
+}jiiC@@x~C
+Kw5 !4wkz||,$P++
-
+
+
+
+gs}}yf
+#ET@)Wbit
+S
+4Xwmxyjh  ofZedZdW
+fr
+rsyy'& h@v       }                5  9               2 I   8    8   !       ~ 	 	 	I 	 
+M 
+ 
+ ? y    
* 
 B P  | 8 8 ;  l   ] 5    m     + \   <     b -  G _ y     ' > U    > c   R   !0 ! ", "^ " #0 # $ $q $ $ % %~ &5 & 'A ' ) ) *J + + , ,m , , - . .1 . . . /P / 0 0 19 2 2 4 5q 5 5 6< 6 71 7x 7 8h 9 :S ;x < <T < = = = ? ? @! @ Aj A B C D E F G HJ H I IT N N N O" Ox P P P P P R- Rv R T UG V V V V W X1 YX Z [+ [ \C ] ] ] ^ _+ _9 _G _o _ _ _ _ _ ` a aG b6 b b cP c d' d eN fG f f g> g h h i- i i j  j kw l% l m7 m m m n$ n; nO nc n n n n o" o o p p& p> pX q q
+ q} rI r s8 s: s< s s s t u v< wI wh w xG x y  y z& {6 {u { | | | } ~ ~ ~ ~  C    M   9  C |   2  8 V   P  	 c   S    O   I    # |   L     `    m 
+   P o    1   * x     4 f .  H   U \  1      ' C w   [  W     (    b    ;    J {  .  ŝ Q ƭ f Ǯ *   ʛ ˗ ̉ ͌   | ` ϫ Z ҝ (  J տ   ׻   p 9   D  9        g    t  g  ,     q  ?   o ]  1 a J C0g	$
+
+N
F.yq4+M< !>!";"h"##$b%g&D&''''''(()*"*++,?,p,-F-U4>45~566636>67	8"99:-;F;<9<='=\==>?Y@RABDEAFGH(HIImKGLLM^NZOPxQ@RS%SlSVWX:XRXXYY]YZZ[+[n[\d\]g^Y^_2_`5`aacBdd;dWdvde!ffgoghNhikj@jklmnopqhrtukvYwfxzV{r|}/~~Uu[
tJ~3J#c$;Tt TT4P
+4  c
+z..ȮhKh<Nh-
+
+-N<vhNKhN<h..Nhv<NNvȮ-
+-hڠvNv44T
+44V``VT<
+44TA
+44M
+0Tyuuyyuuyy?j`,4G yu~8գYSKkj>h3c#
^uiƭR@2A
+4
+FMffMZnnw
+v
+x
+P
+ `Vc~ofa[!
+Y!
+ 
+
+T@
+b@
+suw#$L>$#69JX"!!`V+/EE+V1RF
+_r
+Z o
+p]t
ksu[ztvUZ
+tq9
[[9:QQ:Mqksu[ztvUZ
+ZJ
+J&		&a
+)|
+s
+Kw 
+ t  
+w4X
+]
+g@
+ v
+
+
+YT3
+Y`VV``VTV`Գ
+
+T3
+YT3
+TV``VT;
+ YTV``VT;
+T\TV``VT;
+
^y
+$%
+IVhhvjyy
+
+IIVV V
+V
+ttC
+KFttFKktt
+r
+tt>
+@
+
+ V
+
+FKkr
+@
+
+
+pP
+tW&S:aR`S:a))6z
+6)õ`a;R`W&tPQEEQQEEQY
+8
+&8
+&T8
+T&8
+@
+e
+{
+zK}zaEV" nmloL{yry}{{OJNll~n|i&js^^[{m~mkNo|y|rz{Kpijki\f_i]QM[!|Lz~rǑ̒Ȫ 'fgiMm([popHH4
+wOVVOcZwE;L1Hu
+ v
+tnnt/
+s~oJ,zW`aGahc~v~AHH
+
+w
+!4t4tt4tt
+to
+T
+4#
+)vTV{||||Ng|5ppTy~}y:y~Tppur5|gccn_Tz}y}}zT 
+T
+dgf[wXX[fe6
+
tqTKTTT
+TTx44t8
+zT~~f9x44t8(&
+T
+T9vT
+,T,ThXhYm}}chhcqj}}iVgv
+wxrwwvtL#
+P
+
+!SY
+ylD&)'C3$
+Y4K
+Ti
+t}yT|}zcesd,.9/F-
+1T5
+T
+"Q>W
+"SX5z|[,9FZ3
+Ti
+9
+"!
+!
+
+T@
+
+G
+vTi
+TT
+T+3
+kT^^^^Tkcv
+]btkr
+Kg
+_=1lno1"-SKq~n}s{x}zsz.;3n L vTTVT/WW/!(ZMj:kD
+L
+k+8V=_GxɁHKxMG_8+MrrN-hnog?

?go Gw_
+rN-hnog?

?go_QPox}yCQ(Csyrp}t{xo^PQ_K
n{}|zx8
S``*S8
qxozo||{}s}|{n.
K
+
+
+
+x
+
+
+
+
+
+ 0m 8
+vvʪʪꪫʪ骫kihvvvijiʌ
+1
+
+w
+ʓ
+ʓ
+  1Y1Q
+kll ʙ
+F? ijivvviijz
+)z
+_^X*DtcX_^sjii}jttjjhsW
+ m
+g|vtywxog`vf/TFw.qra\zzzaM{tswxyzzVc,sj|wut{tv\h2p]yx}xzuxWi:mY{pvzs~{sww}e_^#:/r8" 
+
+4<
+4K4"Kme,,eBV4
+K"44"4kt4:4t>
+)T33333333T4tXr=EE=UIrXt
+tK
+
+T/
+ ,Qiep%/,xxx(((#Ɏ	wR'VbgfVpoqqq{\/j}}Yh^?DFG@EatV@ha %-n<5scsŔO5*VJM(0x[[_}~􊢋%;AHW{'Qbgfg
FIGf=R!G v^]^z8'n\PuH#hPMqJK{-!ߜv`ЊxġMMN[ĐơϦԖУ!!!x$ǁΓm`r;ni~GhftnOlFKwz6-;p6p_ph6hpo;_}oh6h6}_
+Ǐ\|}Cy	^^^LuZ
+qmeptcCDCm
+ǐ]|zb||}3mrS
+667W,
"m~yv}u] y]hvp|zwwzv{y{ |phm
+R <0
+R <P
+0
+R<
+i
+m
+R<0
+R<i
+m
+1 <0
+1 <P
+0
+1<
+i
+m
+H
+H
+H
+t## @w
+t\
+ 
+>
+tTdw
+TiFy
+tdv0{tz{~'&9*
+TT33T&:''~
+)TTTn4444Tt|z@
+4kX
+S
+@g@
+m 
+D~~UT44~sjiij}st:944::W
+
+
+
+{
+
+
+NLT_p xJ
+ 
+vPPϠHGwwsrP
+mXXj:bkkcv`~:jX;`Y;l-&PyyQ
+4S+,,||~KKXfccQ+4444400f,,fMff// 
+gt}{|y~wjX|zh
+"Q2{zt{tqT4 7\3ulz* p4Tqt
+ 
+Jw
+tKK3CC
+
+G
+fccQ{kkYkkkYkkkkYkBBk
+C
+
+
+
+
+-
+4=
+1
+
+
+gsvZvZ SZvZZZZrZhlvlr|hh|e
+P
+@g
+
+@g
+
+i
+e
+P
+@ 
+ZwZZ2ZZrwhZ
+P
+
+Zw
+Z
+
+@w}rrwrZZ

+
+%L.2::zzzzr::2%L'2zz::::
+zz
+ph
+H 
+Z
+hn
+ 
+e
+}2zz11zIIII{zzz1IIII
+IIII1zzz{IIII{zv 
+P
+zz{zM
+vv,+M
+1zz6
T
+4y}}yTy}T
+T4,#Q?`\pnZtҫȧPKgjzx}wy\O~#7@TKT 
+ttt4
+4:
+T
++y}4j
+4y}}yTy}4
+44 
+
+`$$`$`$
+$$$`$<Tg
+#Zk==k##kZ==Zk#<#k==kZ##k==k#i
+]&&
+
+&&&&&&kK#
+g2%''%%
+::!8#
+t
+ %56&{SjjQh[=<<=>
+>KwP
+^CT}s@skiij}sstv
+jt 
+}sTӸKw~ssjiik}ss@@stjtTC^OGGOTsv
+js@tE @wKsjiij~stsv
+ks@sTC^ǸTs @KT@sjiij}ttT
+
+Ttjiij}tsA@sv
+jt t W
+@j{t,Qa! KtkvqCt
+
+e
+t
+ԛ
+4
+*
+<<<
+<+!y}|z
+|RT|y.}|yMx|zp
+4HhnzhThnhTThS\V`fy~5V``VV5`VRL'HMoZd99dMH''e
+L(
+$4A
+4u
+v߈
+/J7I[^_[Z_~}yhn{x(HZf7p\XTHaG-whhiwVQZ:#vz]l`L{l{,+\^˒1
+t4C
+FKk@r
+CN.ETiCkhT$T$?LL?'0cGv=<
+vc0;'dquuq--]
+LaaLvtrrtvLa`Lv$T$]D'#5'0cGv=<#7quuq-.]
+Sv-yU*PNO_Z~wrsrswH7*V3ziU{Qg
eg
SA:NT~=L=&0ErAuX5y}|y
+}R|yR
+~|yMx|z]pkou`\\`qbuud[ddsP
+uz``K4K++44-3V 
++*QQ듔VV땓4L554K 
+4
+˫44˫
+
+44Tt
+Tt
+Tt44K
+
+Gt4
+tK
+
+Gq
+q
+bt."&Ft8t+

+K

Qc-b.T5MKTz|sRrQnS SL0t8tĤŨ Ty}v0%%_Ib	\;COLD|yz|rs{A0%e
+P
+T%Ki``iK%,QQ,g
+
+/g
+
+/
+arzyzyrrbr:9r
+:9k
+lr:9:9rrbrzy
+zy)
+4TT@yxxy}||g
+T44rdTr
+4g
+T44fTF4TTB
+||} 
+
+ pQEEQQEEQQEEQQEEQg
+OH
+`E{l^@lg
+,h v
+4
+4
+&Q)WWXg3
 UGQ {y|ss^
- B
-
- /T_
-
-{
-u
-0[
- 
-
- 
-
-
-2o`gfbnh./>p+>|Ri/8Crb{Zja_qV Pi44T)
-V``V|
-N
-tY
-d
-
-
-T
-f
- ` d
-d
-
-TT'
-noqqon'
-!5((5!Tft//tq:v++n+*mm*+n33"
-äyppv-)k
-ERQDEQQEERQDEQQE9},~
+ 
+
+ /
+T
+
+
+14=
+1i
+ 
+
+
+
+m}
+t  2o`gfbnh./>p+>|Ri/8Crb{Zja_qV Om|
+PC44T%V``V
+L
+teP
+
+T
+
+ h P
+
+TTTT
+noqqon
+Tft//tq:v++n+*mm*+n33Väyppv-)mvv
+
+>{
+ERQDEQc
+ERQDEQQE9},~
  q
 2srqt-}}N}}~ZTYprr~n
pwefc~rrq/s~|~M}~,soppndmfnen
  s
--}N1kmo/C
-C
-f
-l
-yQ
-n6$7dI.3Tfo1\s\k<^

-U/Sk?Ÿj-@	
-+6	7
-Dɝ·lZ'#ik}ts')2OKebh`i_mdG1dq`d
-m]a"#
-e
G.3GNOH	6
-	t@K̬-*osr^?<k篞
-Y	xxytR]ssvkc\k}\vs򺊧1fzk~rvdO J.eY$n:mo`d
-q1d_`cJl2)t}ǏymD
-	f
-@KM>M>KR4)<5Mnɿ<5)4RP
-p]5 dr3CT~ϧXԙT&
-~ϧ4
-{{{J{J IYU:=YϿڼWG j8Ke`bz|vw{	̋{&,(i"z 4t4|
-TwN
-T480QEEQQEEQ086
-(y{wA[
-il
-$
-T/TL^ADD  EM
-  DDsl
-
-,^GofC3T~
-^Go
- ^!Y1/)Yb1+
-pԶ
-V``V
-Rzf|Xm}[YKKkK+++K+K&6+++k˙̚zfR_L<L aNi`ʆ ŕXP,!
-t\
-r[t
- 
-
-˷?ApDU88Dp?
-?
-\`
-TTz{{z~TTTlTc!8ZZ.n82Y\uZHm{(r^-Ʒ֫Ϧ[{wx^^]Up[c\ˀtbdee	$fb%<l6fGWG49<:]ua\H,2n{l
-ZwRQSqklN2IUphsJ&J}rIm{jlkāuvgE{|jZvkSr^kPxOH.76NPT>aa>"ipuleǞëѯtC3$
-4,g3&
-
-t&;*226;*s
-
-
-qXsIm[FHNMo;otpлͩ&oxtt_Jdwry0Ayu{&Ay  (TQrLyJγʣMfEpB}P7.G$%Frrs3Xo[{TO(QVY`1(mpnnvww."4X+prq/#>VK?ʹķSp. v/nQ1h%
-p%\
-8rwsp TTT]]S
-T4V+T
--
-[
-)
-
-\@@
-@GttZ
- Y
-
- T>zi.],++,]i{{}zyjpnjry''{{~{y#joicciq#44J
-J
-4
-@
-ԪG2t1v~z1vF4YtHAAHZEtYrtpԊ
-d
-4TttgTEuFF6!1=۴n_F(
-RD\\T$4
-.G^SSG^J(@twT3fM
-V``V}~d3fTw@t(EQT]Th
-`wrPNxyprNV[Pwrqqyxyprrwwr[PNrpyxxyprNP[rwwrrpyxyprrwP[VNrpyxNPrw}PNVVNPxi4.TNl
-FPPFs\k>\V?Ckk++JL7
-
-=3`?.Qm\ibgbjnG5[`d
-fuel#
-= 	 i.Gc4`C>[B
-atĹixFP+֫ঽtttuV]]B1f
-[GngimQ`?34=_`b
+-}N1kmo/
+`
+
+>a
+B`
+
+aNty6$7mF
+dI.3WW-
+hn
+fo1\s\ko{yxx<^

+U/SkW?Ÿj-@	
++6	OGo
+	Dɝ·lZ'#ik}ts')2OKebh`i_mdG1dqhWm]a"WY
+VF e
G.3O׈-
+7hn
+GNOH	6
+	t@K̬-*osr^?<kO篞
+OY	OxxytR]׈ssvkc\k}\vsO1fOzkO~rvdO J.eY$n:moOhq1d_`cJl2)t}ǏymD׈
+	83v b@KM>M>KR4)<5Mnɿ<5)4RP
+p]o udr
+T~ϧ\
+ԕT33~ϧ4
+J{{{J{J IYU:=YϿڼWG j8Ke`bz|vw{	̋{&,(i"z 
+4t4
+T,
+L
+T480QEEQQEEQ08.(y{wAi
+
+
+t
+XTiTQg
+B
+4DD  G
+U  DD
+t
+*
+^GofTp
+^Go
+& 
+8^!Y1/)Yb1+3
+X
+]
++V``VRzf|Xm}[YKKkK+++K+>7+++k˙̚zfR[
+/`obt@v'T_GqzyYwjo`)Ib`__`b)`~oDW~jgw^SX_~|~~tjn~@t^oYYk|P/"`c}{q_'TvQ
+yyt  
+
+?ApDU88Dp?6
+\xTTz{{z~TTK
+TT
+1 !8 2 ZZ.n82Y\uZQ m{r^-Ʒ֫Ϧ [@{wx^^]Up[c\ˀt bdee	@$fb% <l6fGWG4 9<:]ua\Q ,2n{
+tZwRQSqklN2IUphsJ&J}rIm{jlkāuvgE{|jZvkSr^kPxOH.76NPT>aa>"ipuleǞëѯ
+
+X4*
+(3&
+
+&;*226;*qXsIm[FHNMo;otpлͩ&oxtt_Jdwry0Ayu{&Ay  v(TQrLyJγʣMfEpB}P7.G$%Frrs3Xo[{TO(QVY`1(mpnnvww."4X+prq/#>VK?ʹķSp. v/nQ11'A<*
+<<xp%j]^hYE֊ׅB
+?Gߩϼqٵ˟'(͔͂z'w!q=wUG7HJ?xs]C$8rwsp+qi^arʆŕ vTTTT$T4\+T
+/i
+)*
+l
+@Z
+@Gtt
+ 
+ V
+Tnzi.],++,]i{{}zyjpnjry''{{~{y#joicciq#4
+444@
+
+G2t1v~z1vF4YtHAAHZEtYrtpg
+
2
+
+4Ttt]
+TgEuFF6!1=۴n_F(
+RD\\D
+VT$4[
+
+.G^SSG^J(@twT3fV``V}~d3fTw@t(EQT!
+Te
+`wrPNxyprNV[Pwrqqyxyprrwwr[PNrpyxxyprNP[rwwrrpyxyprrwP[VNrpyxNPrw}PNVVNPx,4.oU
+wtFPPFs\k{oyxx>\V?Ckwk++JLOG
+	
+=3`?.Qm\ibgbjnG5[hofuelY= 	 ,.Gc4n8`XC>[B
+natĹo8ixFPv8+֫ঽtttuV]]B1
+o8[GngimQ`?34=_`b
 
-	 	 =acf}|}KKYS#L
-
-KV?Ck1B]]Vvuut+PFxiԹta
?MQYKK}|}fca= 	 	
+	 	 =acfn}|}KKYXS#Ln8
+
+4.B
+`KPV?Ck1B]]Vvuut+`PF`xiPta
?MQYKK}|}Pfca= 	 	
 
-b`_=43?`QmigجnG[h
-ʰl
-ZB
-xxyatRt]ssvikcx\j_qFPPFGOLJ++kkC>[+
-hnF
-Ԯnhkfuff
-`[5Gjnbgbi\m.Q?`3<
+b`_=43?`Qmig`nG[
+
+ʰ
+.Gc4B
+tZB
+xxyatRt]ssvikcx\j_qFPPFGOLJ++kϰkpC>[Hkfuf
+h[5Gjnbgbi\m.Q?`3<
 	
- 	 =؉ˠSL@
-C
-QQ{z@e00-
-0 
-{zz{QQM!
-00LQQk
-QQ
-0{z%
-
-
-00{
-QQbQQL 
-{z
-
-00k
-QQc
-QQ 
-{zE݂v
-<<<a<-~|iyzr|x|~t}uz~}tyzrjhv~|{|~oz|r}spwhjhy~|}}|x}owuxzp}o~vqyv}}{oy~tcuyuu~xr}|~gwɛ|cx||vt|$|~d@|~vrys~@uw}{~||}}xzutl@|~|rk||}y~z{|}{x|sv~vzyzzy7}r~ww/*Gs i_
-8"W==s:
-jt x
->>Gww|&xjUt=N,BQ?F
-;
-
-{tq zu
-~z
-t
-44
-44tU
-t
-a h
-w$$Tj
+ 	 p=ϰˠSLH
+QQ{zH
+00
+0,
+{zz{QQ
+ 
+
+X00{zXz{0QQQQN0{z 
+00{QQpQQ
+,
+{z
P00
+M
+QQqQQ,
+{z
%Q4.&E݂v'*
+<<<
+<+'~'|iyzr|x|~t}uz~}tyzrjhv~|'{|~oz|'r}spwhjhy~|}}|x}owuxzp}o~vqyv}}{oy~tcuyuu~xr}|~gwɛ|cx||v'݀t|$|~d+|~vrys~݇uw}{~|G|}}xzutl݇|~|rk|'|}y~z{|}{x|sv~vzyzzy'7}r~ww/*Gs kin
+8"W==sv
+jt 
+>>Gww|&xjUt=N,B[
+Q?F
+
+t{tq z4~
+zv
+x
+
+44B
+
+44t
+tX
+S
+{e
+w$$
+Tx
 Tqt{stoy$$$$tqT5
-T6
-$$jj$$T.T
-$$"Wn|`_]#v:[vVi\\iVv6*446Y
-Tq
-u܎v#6]_`uuu0n1W@^;Y
- TT`4S2S@zyrrrrybcyjdK
- djyddysqSUmtvwjoXV``VXojvwtnrry@dd5
-ybcyrrUnTddUA?<AkST3«nUbcUB>?BnUU'&UVlA?>CTddUmի3STk@< ?BUbcTmԨ'&"J,>[KQtd_O>Kj}|},D!/G
- #
-
-#@*!!@i##flA\3T3T
-
-K"~xF͇F6)-1?pWSRWn?=%(EUmþBB_XS-(mU6EF(%=?VXp򎬇F˞y\&sqb]NEN ewd G&NS6}dNDwO0]bqNñ џsSe& GF\}w~vt:4+q4CKtېE,-
-4dYztdV4VAlff,,fflAV4ST?
-Vi?fflAV4K
-444K
-4|+fLdUS55TTd..Ġ
-..||eWT6LL6UVe[o!"m\à
-B)%h;=h&)CMe004Vԙ
-4
-4S?
-4{}~bx4
-T
-ԪTGkmeeBV4@?
-h
-d
- h
-d
-Trrrf
->l
-4B
-4F>l
-4B
-4FT
-4Fh	$@7_H,`djXg]SˈScfzhebpR3^v"Om(;.?GdFjPyi7voMyyy4
-@ (!?:::  (l
-
-T@bTz|@>f
-@4
-/{pkgGR[".__ušȟmNgG&߅ȂAP_ATeAa6226^%OLJnpsosxZWS]{`lcmcbnXzyY\a\^cbhnnpszf%_whY+W~ cv͉ΒИhv9!݉}t{D$<T;JYYbll|ԡǩ+}yLJGa75t|m`PvG#?}Zhzdqcwuvltlsj{hxPKGQPObktl{·}yُˌ|na`ZUTSR{S-deh}~~3@
-@
-; 4m
-
-y}}yy}T}yT
-
-1t
-@
- eO  .ZZ{
-{zz{ZZ
-ROXOXXOXOXXXr6v2
-@
-WW2x@
-^5
-T4g[wrrZZTT<D^Aٕ]]ف))P%
-Q̙rԋѭVLE^"t*9xI&Oq=b}%BVH\fzw}i~w{z Y
-nL Uiw<u8=q^Ei{PjPn]vӀ
-((NKsӋЬWMF_#t+:xI$Mo;`z$?TH]f{x}i~x{z!YlJSfu:s9>p_Civ9U:j\ik==T6N#-j^AT36dC@,*ݶ8Q_39*w:8XkEK[=.
=)Ҹưչtz}|}(JC9_4K4'KT,T"
-T(
- N;Nh[NE"sxt
-.6-f. 8CW8
-orkOb.QE-]]d Md*SkC
-t&
-ŧH(PSb_ghPsY6gWb7E9@7M( m"mh hooi )^
-u{r|sv>(T+J~ff~JJ~ff~Jv
-
-O
-^ 5
--
- [
-
-o
-
-mTT{zTTs_
-TT
-TT c
-4
-
-g@@
-
-To
-m
-To
-
-mmjingr;<7
-M7#?#77<:fimU
-B4@ V7)0[/ 1 /^//1 0 #sEAA*,?m6"mF=(G`$.ƣ0
-a
-;;YS<!
-/
-sjiel{ppmoy,,yrrUg[giyxtq]um~~~~mu]qtyxgi[gUrry,,"
-omu
-pp{leijt t !
-vL
-TTL
-@u^9v:p%"M$%MڑhiL
-L
-TTL
-T&&&&@;$yz%:@
-%%
-iT
-DddDWXYV_lw}v~v*AdDQ
-yo6$7n	^~ )?cwrvy~x]͈}|*YvvTF 
-+TT?
-VԹ
-TT+V``VS?
-V+TT+
-?
-V+TT+
-?
- 
-XvvuuvvHNNHHN>
-+
+Tp
+$$
+yots{tqT/T
+$$K
+T0
+T
+$$)
+Wn|`_]#v:[vVi\\iVv6*446eTa
+u܎v#6]_`uuu0n1W@^;e UU`4U5TTTT`4S2SB  zyrrrrybcyjdM
+ djyddysqSUmtvwjoXV``VXojvwtnrryB ddkybcyrrUnTddUA?<AkST3«nUbc,UB>?BnUU'&UVlA?>CTddUmի3STk@< ?BUbcTm,Ԩ'&)J,>
+KQtd_O>Kj
+}|},D!/G
+ 
+#
+#@*!
+!@i##flA\4v4443T3o@TMK"~xF͇F6)-1?pWSRWn?=%(EUmþB B_XS-(mU6EF(%=?VXpO 򎬇F˞y\&sqb] NEN ewd G&NS6}dNDwO]bqNñ џsSe& GF\}w~vt:4+q4CKtېE,
+ aV4dYztdP\4VAlff,,fflAV4<
+:\i?fflAV4M
+4440M
+4|+fLdUS55TTd..Ġ
+..||eWT6LL6UVe[o!"m\à
+B)%h;=h&)CMe00
+4\
+44<
+A
+4{}~bx4T
+
+TGkmeeBV4V``VTe
+P
+ 
+&
+P
+T
+wVn5!Jt4C
+
+7
+F
+nt4C
+
+7
+F
+T
+
+7
+F
+')h	$J7_H,  `djXg]SˈScfzhebpR3 ^v" Om(;.?GdFjPyi7voMyyy4
+ (!?::: @(t
+T
+@
+Tz|>
+$@1
+i{pkgGR[".__ušȟmNgG&߅ȂAP_ATeAa6226^%OLJnpsosxZWS]{`lcmcbnXzyY\a\^cbhnnpszf%_whY+W~ cv͉ΒИ15hv9U!݉}t{D$<T;JYYbll|ԡǩ+}yLJGa75t|m`PvG#?}Zhzdqcwuvltlsj{hxPKGQPObktl{·}yُˌ|na`ZUTSR{S-deh}~~3U:
+@4
+u
+R
+ `
+
+4y}}yy}T}yT
+
+5X
+]
+g@
+ &eeO  .ZZ{zz{{zz{ZZ
+R%
+OXOXXOXOXXXr6%
+v2%
+	
+>
+
+WW2
+g
+5
+T4g[wrrZZTT<DAٕ!
+!
+ف1;))PP
++<<Q̙rԋѭVLE^"t*9xI&Oq=b}%BVH\fzw}i~w{z Y
+nL Uiw<u8=q^Ei{PjPn]vӀ
)9
+((NKsӋЬWMF_#t+:xI$Mo;`z$?TH]f{x}i~x{z!YlJSfu:s9>p_Civ9U:j\iCeM#&nYA   ,Ómxwr .ffFfH4 ze`c`c#NW[S9Z))));7eefeefeefee)4
+
+{r|sv>(T+J~ff~JJ~ff~JK
+
+g
+ 5
+/{i
+WԂ
+W~
+
+TT{z4TT
+TT
+TT
+ m
+F84
+
+X
+l
+@
+@wWT
+~
+KWT
+@wW~
+t0mjingr;<7
+M7#?#77<:fim
+B4@ V7)0[/ 1 /^//1 0 6;$p#sEAA*,?m6"mpF=(G`$.ƣ0п
+D&l&yPsjiel{ppmoy,,yrrUg[giyxtq]um~~~~mu]qtyxgi[gUrry,,Vompp{leijt t W
+m
+b
+GTTG@u^9v:p%"M$%MڑhiGGTTGT&&@;$yz%:@b
+%%
+v
+TDddDWXYV_lw}v~v*AdDyo6$7	^~ )?cwrvy~x]͈}|*YvvT
+p{3
++T
+TA
+\
+<
+T
+T+
+\+TT+
+\+TT+
+ m 4
+XvvuuvvHNNHHN)
 				1j
-j/V
-qV
-qeU>k.)$4S4
-T
-˪TGK4ime,,~V4T?
-#x:4tT.H
-pFF4KqHaZxuuvwtD6O'xODwuxaq\_II_\DD$2??  nzykjstz{ztsjmy}z{JlQeűťž̛{yn׭|zT|WT`
-t4`Tz|
-"
-tFTGtDts"
-4z}|yt
-T
-ty}s
-tT4T>
-
+j/
+eU>
+k)$1
+
+
+
+4<
+4T
+
+TGK4ime,,~\-4:4 #x:4tT.F
+pF
 F
-N[cG=B^60
-QEEQQE
-]uI7#e  #7upjj_pB:'
-!5ܾئ_Wc[7+447q
-
-5!'
-7Ep>
-m;4U>
-ua[w
-RҢ&>
-&
-RD[apdu茆+
-U;4mph]@
-@h֦tFt
-
-K=t
- B
-K 
-$4
-(@twT3fM
-V``V}~d3fTw@t(EQT]T)T'
-K5!
-O
-h@@h5
-t{
-T
-
-.4\
-44\
-4:Bpmצ^ 
-\tEQ
-< 
-44K&T/T+ttT4
-T/T4
-T/
-t#"KT|zKz||zKz|GT|zKz||zKz||zKz||zKz|3
-F,d
- @^ 5
--
-
-[
-?t#"3
-" >,kST?
-
-K
-+
-K
-ԪG+* G^U VT
-^ -
-
-[
-)j
-L
-WWl2L
-4
-
-T05
-4hZwrrlZZrrwZh4
-!"""T[
-4^
-4̗
-4
-
-Tt
-k=t4
-4 B
-k 
-)tK
-+4Kk44Tt+kkTkTs
-TskkTkTt44Kk4
-Ftˋ |g>DRTT˫kTTktkKh@@hTTi
-
-
-Tbbc
-c
-4 
-
-C
-b
-[M Z4
-}]
-
-}]
-ZxxD
-tI
-I
-D
-4IIt]
-
-}YYY
-D
-I
-D
-I) 
-Y
-
-|zY3C4KGfF
-.K
-)4ԏ
-TgTkFGT
-Ԃ
-`t4+V`@Ӷ+7_
-4
-Ԃ
-TG
-TC3t
-
-d_gg_
-d4
-
-TGTT7EQ7
- ԕ
-
- Tu
-NT@"RDEQRDEQb@TT@QE`EQXx
-~
-3C 
-@T5!'
-1(b
-'&G
-h
- !*j 4a,t{ztC8qbbb{y{x{K  t44t)
-)
-4\<-7ʗ7-tD&c+zi0&H.0,-##s&&2iGz@@RQT+c&&t
- ^
-d
-tV``V
-V`T*
-TTTB
-4
-&
-)^
-|~aiEjVulѬo70 XDQ*
-47mGGT4!
-
-&
-naxjigxi j(C(jgjixhi5' ==' 5G7
-n5Y' ==' 5YihC ix7
-T^
-.T7)TT@
-TTp
-TTCR
-TT<
-;TTD
-KL
-M
-Cyy
+4KqHaZxuuvwtD6O'xODwuxaq\_II_\DD$2??  nzykjstz{ztsjmy}z{JlQeűťž̛{yn׭
+0|zT|T`>
+t7
+`Tz|)ttF
+TGtt
+)4z}|ytT
+ty}
+b
+tT4TN[cG=B^60AQEEQQEAKuI7#e  #7upjj_pB:
+ܾئ_Wc[|a
+m
+w 7Ep{
+m;4U3ua[
+RҢ&{
+&
+RD[apdu -
+U;4mph]@@h֦
+t
+tK} 
+K Q$4[
+
+(@twT3fV``V}~d3fTw@t(EQT!
+T)TTT
+K5!
+Khh5
+t
+TQ
+
+_
+4nhhnnh4nhhnnh:Bp
+צg
+U
+ktEQ9
+w
+!44>TiT(
+ttT1
+TiT1
+Ti99
+t"!
+N
+T|zKz||zKz|IT|zKz||zKz||zKz||zKz|6F
+^P
+
+ @g
+ 5
+/i
+
+ Ut"!
+6D>
+^
+k<
+TA
+K
++K
+
+G+
+
+TGEg
+p\T
+ /i
+)>
+GWW2G4
+ttT15
+4hZwrrZZrrwZh4
+!""
+
+"
+Ti
+
+4
+44
+ttTtk}44 
+k Q)TkktK
++4Kk44Tt+kkTkTsTskkTkTt44Kk4
+Ftˋ v
+|g>DRTT˫kTTktkKh@@hTTTppqq4 
+ph
+
+ zZ4
+
+k
+
+
+k
+zZ
+
+!ZtLLAZ4K
+K
+ztk
+
+
+z
+YY
+Y
+LK
+)d
+{
+|zX
+]
+g4KGfg
+0
+K
+)+TKx
+
+^4Z
+T]
+TgkF
+GTԀ
+`t4+V`@Ӷ+r
+S
+
+>
+n
+4Ԁ
+T
+q]
+g
+4d_gg_
+d4
+T
+GTT[
+r
+
+EQ9 v
+
+ԫ 
+TTYwNTt "RDEQRDEQbBTTBQEhEQXxC3p
+3CB c
+BT
+ 
+b&'&e
+pe
+P
+ 
+@*j{4a,t
+{z4
+tC8qbbb{y{x{K  t4
+4t__4\<-7ʗ7-tD&c+zi0&H.0,-##s&&2iGz@@RQT+c&&t
+ x
+P
+tV``V
+V`T^
+T
+TT
+4
+&Q)F|~aiEjVulѬo70 XDQ^
+
+47mGGT4}
+
+&
+Tnaxjigxi j(C(jgjixhi5' ==' 5G8
+mTi
+n5Y' ==' 5YihC ix8
+
+Tg
+
+0
+T8
+)TK4TTT:
+TTx
+TT4
+[TTTTKGxP
+
+x
+
+yy
 p<
-ZE
-)j
-?p
-G
-
-t+t
-
-G
-4
-  +
-
-G
-
-H G
-
- G
-
-G
-
-G
-
-`++t
-$g
-f
-`d
-g
-
-pjMPdioo '.<WN2XVuh
-P
-p$]UM'T6"W
-NQ(YcjMPimpP~~~+r+UQtb3L?0X3>X@Qh
- @P
- s]OT4
-T)&Yffff
-zM{yz	zyz	%tJjZ!!
-!"и$yf+/YkzX,Hn|}1d Z\I<PW3֩ÓWW}Ou[}zyyy}p~u[BO}a` 5_qUU5yw{z q~}mnnwmr
- 4Ot~w~tW
-tt=tt
-tt
-TTXV``VV`
-`V5!X'
-DMje!_NPZ|UzXrĬX5!'
-DMjRjdMD dR쿣3>ێĬ TTTpK
-=b$tO)
-36mUzxwyysqggKgywxzpTmӨ'&h~zUB>>CnUU'&TUmC>>CTz~p5
-y
7O)
-36$+=
-}
-K6
-Khnnh
- T-
-[
-Pt-
-
-tohhonhhn
-S3@
-8<
-;|#&%6Nkj3hW@x}pU3@
-@8<
-Y;|$&%6Nli3hWy|p"9Iv]Yfh{osjeV]]nw uKJQT*FhltnݖݘƎqDA5%!*QTFhulstnl_a99:P~݀*Pk9okթ.
-
-]]
-
-DjD 
-D$$DB
-?CI9..9~`n
-
-S
-AENB^
- 
-T% 7;L9\XpqTT^5
-9$9 j
-#
-4@_
-T+}~|
-~
-knr]J'V{ke{ohc-#
-/&|~T+ `t{yS;RQPIODwt{K6Ktqn;<-y
-y
-=vvkhF@8h
-!!0
-ZZ
-ZZ0%
-
-!!h
-a!0
-%
-
-0ZZ
-!!0
-0
-%
-ZZ0ZZ
-!!0
-ZZ
-00%
-X!?6IY(uC XVYx\b66
-PeSGQGz5:5'DN5(TKKT( T _
-4O~~'1
A3ZpT2
-T7׷[v
-,9_7XT5
-
- /
-TZA1
~P'
-~e
-Q1

Q1.]
-TTt
-/
-F
-]]9
-kV
-Y
-CyyE
-66%
-U
-TU
-TU
-U
-TU
-TU
-sL
--w|a99az~zzw|33z}zz99S h
-
-<<<a<-wvttvw@+-
-
-s
-Z@@@@֋Y9ZYYY9Z@@@@Z݋ 
-
-C
-k
-M tO4
-6^
-C3,L9{sYsn{xput}T4T~T6Tt}4TTru|utpxnurT}ynnA0
-
-0gggg0%
- T(@WWS+}}F簰ɋf,,fMff z
-q{ttz{j0
-%
-jxt~t 4G{zs{4O!mFNB9x*}}~5W]4x
-G ttTc#$
-yussu~uvqxTzTQJ
-y7}TxvvxzT}xqvu~J
-zTxqvu~ussuTTt@
-T1
-TR
-T}yedyDs4>$0K_|h)!<z35#N2)+&hekIbz|P諌2v#O6'
-I2
-TkG\L9xs,'
-&*b*&P[fdL"*
 & _DTz|}yHec$,Lt1HDU
-\+!W)E $z ~jCy}6Ch&5`O?vk}6T+z|% e@1+%&?nPDbQ](E5UW+M3T)3w'T<|#
-T6}ykאSS8x_uaz`{{sk=Vjb#&6$&@{_,1!T!1NH'
-	t'
-)&t
-t+&tT;6T
-T
-NHf
-@3uk1@:6zi
4OG%/쎔|~}.)|}~}*1~|4
-"C4
-d4}3;e:}38i1..`zJ1Z.cbb.jjlh8ʟgk&wl`lK`\..H̢W/&~kSڡ#ڨZDpA4Ih
-l,,}V``VS@?
-V`h
-,,}llp8V`V``VS@?
-tTT(/
-}+
-|?
-,
-(/1?
-,
-2
-}+
-|t(/O5P5PT5TP5kO56t(/4OT5T6TTO56TTO5@s2
-(/Ѕma@2
-(/d 4Tgnohgonh4
-5
--
-.3#؋Gt
-`aMPQOddlli`g]_Q+fjoojhovuf \#ͥȅ֤ TnhgooghnF
-4
-b
-~)|mxrze`I3}y?z#\f LuOvhimohjoQ]`ldOQPMatGmqvin4^ːΆ̀ƏnX+}j{xtzj1HLzii|E;;]SHv|~}Iqzxcypst}qv5Hίp}Gq|z{t}ypjip~rx}xoddnyr~Wvuyi0izj60w7~Q[`R|R[~wߋƻő|ą`P805]A]|s|z|WW[
dm}yrxq~jiqy}~rxndImpr|rv| {H lDzك{цԨ_~q|||||f|mm|t^]Z'X"-Ibgiwknv v}(]jvgrxhklm[2+* mxfwj]Ynwwy{hsfy\\hqxAzireV$G4]t~%]~smn}ft]fcqyJ>LNMMNwK=KQx<r<Q؃vLNMMNLؓŞzGD!MLM.EZ
#xrh]^hzirxrdVCVdqiz0nwx}y0gs|rT 7yg}}~5T~~K}g|ut~$zmvs:ssA~Tz}xpMXlLy{q-gpLn}t"VOw( f
-
-uvxw~~vu#,lu=-rutturr->Cu)k,##,)CrrutturӠ,#ˬ&~'+' }~~}}
44W+W4
tl4}*UJ*d&?K&>G5#p)q
M)?
==BRippiip!~b^^jcjc~9?>99>?9elleBel9Ble9Bd 2  22  2 v  < <e
-		h
-&]&8t#4#4-_G_G!r 9*Hb=gh`̀,ް5-"MM/8(x,(90KǲіɕOTOm̀ցQ\Y5Yy{))+)jxYhmG{IUsV7=o{vu! z'f@o&d1caaPEb4"f|aunO鿦ɯ˱nno5.OB\WQĦdRۛ~-aOpbKI2C@lU[s^Yoc`̄ƃ ~ƒΑ~vD,@aD1"@3byЀѐl"k"rbsIr3p1o1]_qewG1('$:er)n'y*ԧӥؘؒ6;2]zt[uns PDcl|P~_q<}Nx0k<Nh
-pti"d-"`#69VѺDMV"TAK$ ~tW
- t~~))~t 
-t tO t~򕃘t
-~~t =t~qqPV]]tסжihhMD;ZQuItI[nt]FEQZ-[+@@*e-8;@@4uvǹߤp7ZYCYCq5( >>>-r>->j7)1auabtavzyvvzyu:uzyvvzyvLR]]SBR]ĸB]Sx*.NZwR]ĹwwR]ĹwǼ|CNGCCG|pNC!C,313, q|]RS]^RBR]Ĺw$䔻kiᦿůI7Y=+kt}n~x?z}}}b;u{{~  YP
-K  S{TSm  {qiTAsFGKiwzw  o_ewkjZ ˒lshztu|Цy  u"5@ '\ϊ؊sqٱ  .&7e}|_g͗ 5|qD|unlaK]~d iqqquzw|wʎó^=~Şv}M,7QupzTS(pzKYN  GJ b/ѓcctup4K6gp1zy  yr7Y}{w\@  wxFis}txyoGqt
sp^)X)iz=J<I
-ԑyʂXjeˈ  𫐠{yM9<  IbquҏБZ=Z>Fdf|oL{1$+#~[G0`SQRne*wXjsIx[Ͽ^d7,vX9<DBcr~}\{zeugwTqtmqFXec_d 5dyq]ŉm]nr╠Ĩ  ԰= j<5x03%\QMG#K.<؃fff h8z_=K
8^@mK#2'(hU5hKQy%."/b7@:,M%sysvn}||,#/!
-@m_X-PuPª.MĲT2&&<_]AQS@QdXJ*13SsVQ~ys"k=OBmmYXX[J:3h@@h3:J[XXYm`
-K||vpusrdopdadomnno&{{xojph_hmnfArkRhg/QQIs7z6ݺͰHfH́b44TT@
-t1
-R
-t;4@
-t1
-R
-t;4
-
-tcMAAM[Pc|xxSw/F
-TMY4TTF
-/wp{K
-4
-TttT5!'
-4$dd$
-h
-~mpk`YyuݶSHkpf1H!xHH-Ho{H遏+HH+HH-}%I3U6RH!f_xxoriB?z<
-."to2|3A
-CˬThn2~}
+ZQ
+)
+I
+t+t
+I
+4!  +
+I
+r@ I
+0 I
+I
+p% I
+0 0
++t
+$
+h
+q^jMPdioo '.<WN2XVu
+^v
+~\buD
+
+
+^zxvuz~L^?
+ޠ0$]UM'T6"W
+NQ(YcjMPimpP~~~+r+UQtb3L?0X3>X
+Qv
+\buD
+J
+
+zxvuzLJ?
+ s
+]RT1
+T*)\&Y
+ffffzM{yz	zyz	%
+@tJjZ!!3!"
+
+$yf+/Y
+kzX,Hn|}1dtZ\I<PW3֩ÓWW}Ou[}zyyy}p~u[BO}a` 5_qUU5tyw{z q~}mnnwmr 
+4Rt~w~tT
+tt?tttt6
+TT
+
+
+V``VV`
+`V
+DMje!_NPZ|UzXrĬDMjRjdMD!5
+dR쿣3>ێĬ TPv4TTTTT{K=but5mUzxwyysqggKgywxz{TmӨ'&h ~zUB>>CnUU'&TUmC>>CTz~{ky
75u+=
+TTg
+K%.Khnnh< KT/i
+vPKt/
+ohhonhhn
+;mg<&S3r<
+;|#&%6Nkjk
+hW
+x}p;F&<U3r<
+Y;|$&%6Nlik
+hW
+y|p)
+9Iv]Yfh{osjeV]]nw vvKuKpJQT*FhltnݖݘƎqDA5%!*QTFhulstnl_a99:Pp~݀*Pk9okթm
+p
+[
+SD
+
+D
+DU
+D$$Dm8?CI9
+..9~`n
+[
+AEN^
+U
+TT% 7;L9\XpqTTg
+5
+9$9 
+
+
+#
+4@n
+T+}~|C3p
+knr]J'V{ke{ohc-#</&|~T+ t``
+t{yS;RQPIODwt{K6KtqvMn;<-=vvkhF8
+!!f
+ZZ3ZZg%E
+E
+! 
+
+a!f
+%33gZZE
+ 
+Z!f
+f
+%3ZZgZZE
+! 
+Zf
+ZZ3gg%E
+X 
+FIC?6IY(uC XVYx\b66S*
+PeSGQGz5:5'DN5TT(TKKT(T n
+4R~~'1
A3ZpT4
+T7׷
+b
+,9_7T5
+2
+TZA1
~'~Q1

Q1.
+ꗐv@Ti
+Tt2
+@$k\9
+
+e
+
+
+yyQ
+a
+U)
+_
+T_
+T_
+_
+T_
+T_
+ss
+G-
+|a99az~z
+|33z}z99S e
+*
+<<<
+<+wvttvw_+3sE
+Z@@@@֋Y9ZYhYY9Z@@@@Z݋ Z
+
+ t
+
+
+tR1
+
+~*
+Q
+9{sYsn{xput}T4T~T7T
+}4TTru|utpxnurT}yZnnAf
+3gggggg%E
+ (@WWS+}}F簰ɋf,,fMff zzq{ttz{
+f
+%3
+xt
+t 444G{zs{4O!mFNB9x*}}~5W]4xE
+G xtTc
+##
+yussu~uvqxTzTQOy7}TxvvxzT}xqvu~OzTxqvu~ussuTTt:
+T,T[T}ysxEFvdyDs4>$0K_|h)!<z35#N2)(
+$hekI
+z|P諌jjnW{2v|#R6'I2|6
+SkG\L9xs,'$*
+*$P*
+[fdL"*
 & _DSz|}yHec$,Lt1HDU
+\+!W)E $z ~jCy}7Ch&5`v8:$:R?vk}7S(
+z|% e@1(
+%$?nPD
+Q](E5UW+M3T)3w'T<*|v;<#6
+S7}ykאSS8x_uaz`{{sk=Vj
+#$6
+$$@vtT
+iTi{_,1!T!1NH'	)$t
+t(
+$tT;7T6
+S
+NHv @3uk1@:6zi
4RG%i쎔|~}.)|}~}*1~|1
+"C1
+d4}3;e:}38i*OJK.J?71..KzJ1Z.Scbb.KjjlhM8ʟgk&wl`lKK\.K.H̢W/&~kSڡ#ڨZDpA4I 
+l,,}V``VTV` ,,}llp8V`V``VTt
+T
+T
+ $+)f}]|
+z
+@\
+ $+)f1z
+\
+2}]@|
++
+t)fR88T8T8*+
+kR87t)f4RT8T7TTR87TTR8*
+iwq
+sj
+)fОma
+"
+q
+j
+)fd
+ 4gnohgoH4R5
+/0
+3#؋Gt
+`aMPQOddlli`g]_Q+fjoojhovuf \#ͥȅ֤ Tnhgooghn4-
+
+
+
+)|mxrze`I3}y?z#\f LuOvhimohjoQ]`ldOQPMatGmqvi Ǿn4^ːΆ̀Ən԰+}j{xtzj1"Lzii|E;;]SHv|~}Iqzxcypst}qv5Hίp}Gq|z{t}ypjip~rx}xoddnyr~Wvuyi0izx`60w7~Q[`R|R[~wߋƻő|ą`P805]A]|s|z|WW[
dm}yrxq~jiqy}~rxndImpr|rv| {H X?A܅wlDzك{цԨ_~q|||||f|mm|t^]Z'X"-Ibgiwknv v}(]jvgrxhklm[2+* mxfwj]Ynwwy{hsfy\\hqxAzireV$G4]t~%]~smn}ft]fcqyJ>LNMMNwK=KQx<r<Q؃vLNMMNLؓŞzGD!MLM.EZ
#xrh]^hzirxrdVCVdqiz0nwx}y0gs|rT v7yg}}~5T~~K}g|ut~$zmvs:/
+ssA~Tz}xpMXlLy{q-gpLn}t"VOw( [,xxM
yh>GCTU{x%%%%TD即#}f
؋%%%x%{TG>h

+˳&~'+' }~~}}33	+t4b4tD809mi%if+qU3@
+
+nDDnnDDnnDDnnDDn .bXXbbXXbpc}zppqh&c&}hzqppppqzh}c&&hqppz}c
+o11!"!!"!$o1111o!"!!"!%11o$Z< <ps
+7
+7
+e
+&]&8t#4#4-_G_G 
+C3uXr 9*Hb=gh`̀,ް5-"MM/8(x,(90KǲіɕOTOm̀ցQ\Y5Yy{))+)jxYhmG{IUsV7=o{vu! z'f@o&d1caaPEb4"f|aunO鿦ɯ˱nnoI7J!I5.OB\WQĦdRۛ~-aOpbKI2C@lU[s^Yoc`̄ƃ ~ƒΑ~vD,@aD1"@3byЀѐl"k"rbsIr3p1o1]_qewG1('$:er)n'y*ԧӥؘؒ6;2]zt[uns PDcl|P~_q<}Nx0k<N/
+ pti"d-"`#69VѺDMV"TAK$ Th~tT
+ t~~h
+hh
+~t t{tR t~򕃘t6
+~~t ?t~
+qqPV]]tסжihhMD;ZQuItI[nt]FEQZ-[+@@*e-8;@@4uvǹߤp7ZYCYCq5( v
+>>>-r>->j7)1
+;auabtavzyvvzyu:uzyvvzyvLR]]SBR]ĸB]Sx*.NZwR]ĹwwR]ĹwǼ|CNGCCG|pNC!C,313, q|]RS]^RBR]Ĺ_wη}|w$䔻kiᦿůI7J+kt}n~x?z}}}b;u{{~(  0YP
+K  S{TSm  {qiTAsFGKiwzw 0 o_ewkj	"˒lshztu|Цy(  0u"5 @B '\ϊ؊sqٱ 0@.&7e}|_g͗|qD|unlaK]~d  iqqquzw|wʎó^=~Şv}M,7QupzTS(pzKYN  GJ b/ѓcctup4K6gp1zy@ yr7Y}{w\    wxFis}txyoGqt
sp^)X  )iz=J<I
+ԑyʂXjeˈP  𫐠{yM9<  IbquҏБZ=Z>Fdf|oL{1$+#~[G0`SQRne*wXjsIx[Ͽ^d7,vX9<DBcr~}\{zeugwTqtmqFXec_ddyq]ŉm]nr╠Ĩ  @԰={ j<5x03%\QMG#K.<(؃fff h8z_=K
8^@mK#2'(hU5hKQy%."/b7$:,M%sysvnX}||,#/ 
+K={@m_X-PuPª.MĲT2&&<_]AQS@QdXJ*13SsVQ~ys"k=OBmmYXX[J:33:J[XXYm
+)MCKK||vpusrdopdadomnno&{{xojph_hmnfArkRhg/QQIs7z6ݺͰHfH́b48TT:
+t,[tR
+4:
+t,[tR
+4tcMAAM[Pc|xxW
+w/g
+TMY4
+T@/wp{M
+4|
+TttT
+
+4
$DddD$
|
+e
+~mpk`YyuݶSHkpf1H 
+x
+HH-Ho{H遏+HH+HH-pmt}%I3U[RH!f_xxoriB?z<."to2|3CT˳T-
+hn4
+Tg
 5
-T-
-l
-.^ u
-d
-[
- @`^tAA
-}
-AAAA}
-
-AAI't
-t2F^wtpcsKcI>ZY
-deҦt.tE##E)o}}4u{zu\
O#nWvZh,lt:$4Zsj{rglb1XldvG'bQ^{yqa|x|{jjs}.Ӣѡ?IYKk.#4)sV
-1| XRf
-7n]Mw]^}ǟxwVo]
ytyywyB A'!3EMM!#] ([B4WtImnxWxWtIWȇ$rzӎlQ3J>Rq_(%vv==)G/H{uAR6=zkwlkkwllaelj{RI7
-A5ifsgffsh./gge0lF
-h
-miE#=[Z\Z#=EOiNQ@QyQ@QzE&}9ً܉{H[1N[GCJۋz"q*g2EKa"81&*a/rwxrrwT(v]*I0  3  30H4Tz|
-4$T|W2
-T
-4$
-T>
-~~TzwwvxT24JY
-7
- dp~
-F47zw8,lr7RZ(x[ts[{+;f
-DK^Fxukrlqv}K ?(&PX+)#JU^mmmjgenyiYW»ëP7iSպԤÎ˒rSppoG.B%r tTtTO4)
-Zdz{
-
-IT4+.
-^
-tO*K+Z
-q
-
-^
-C3,L) 4՘ΖT˫KT]HAF-"K
-g_yz}>Q~{{~؉}zy_gK飳ܩn_ZZp_bn:vkbA*t%ndʋ̫44m4tbm++44kkLJJl.d |{|8S"1ÞH=|}}6TV5wSL<JI<{{|4"U4wTL;KI<{{|31VPwcSM;Nۛ00VPwcSM:Oܜ-7OdٛT89OdڛS;@ǠL9"e
-V``V
-V`Hzu|KRKjgůɣYPOdq2P2R2QreL]]]Le303aSZó^Un2oE`+s!jmdfJ\e܌X
-<bdaʵ֊یX
-!z2vԀ<rqo=w5d:y.hO6&&&&&&&&)k
-kkvkkkkkt
-ɲ~=`Uf6@IV`b1N <:M@xi]'8 Tt
-T'hnPelnhKleP;T
-elnh
-le	 PI{{{{{{Iy!~$~}}#M4m	eupb[^dtQETQEreĸ b$0Y	`	__	fdeggh1(', geffghaCN~WN;Nh[OE"iY@7M(7fWpb6E9	PSa_giOsZ
-ŧH(u.f. 7CX8
-~orkOb.QE-]]d Md*SkC
-
--GlG}ff>TT=g}}RIcZYccYZccYZccYZc\pcdwywxRj.j.Rcoͭ}t qZbZZcbYZc\L
gSVIm
-D
-k.L.k?+llH\\HlZ釧鏼0K
-K
-kcthjz{{z7LvvK7isùĨwлQahaahhaai?Ul[Ĺ]SZ +)**MOvrqvvq 25 3
+qv6!Mr34  2oqv*
!)```NW{WM}|XLy R]^SS]TTVQ~ùù]SS]^SS]WQURTTl
-4''tTTttTTtT a`aa`aMk`|8aMakap`a9M<97Ba|8M97Ba|gg[o+@+CG%:`dhbgbۏ֯Ȱ:%G?G%;adhbgbN;%GH 7@
-QYr3FZXaXxwx_blkx B) K%Lo3BJwu~kuxuk?Oz!xyxvzAY
+T/t0
+g
+ 
+P
+i
+ v@`g
+tAA2AAAAAAI't
+t2F^wtpcsKcI
+>ZY
+2deҦt0
+tE
+EE#)vo}}4u{zu\
O#nWvZh,lt:$4Zsj{rglb1XldvG'bQ^{yqa|x|{jjs}.Ӣѡ?IYKk.#4)sV
+1|5Gc%1 A XRf
+7n]Mw]^}ǟxwVo]
ytyywyB A'!3EMM!#]([B4WtIm@nxWxWtIWȇ$rzӎlQ3J>Rq_(%vv==)G/H{uAR6=z@kwlkkwllaelj{RI7
+A5ifsgffsh./gge0lF
+
+miE#=[Z\Z#=EOiNQ@QyQ@QpzE&}9ً܉{H[1N[GCJۋz"q*g2EKa"81&*a/rwxrrwT(v]*I0  
+
+3  30H5
+7
+Tz|4#
+5
+
+T|6
+T>
+4#
+T3~~TzwwvxT44Oe9 1
+dpSF47zw8,lr7RZ(x[ts[{+;fC3DK^Fxukrlqv}TK ?(&PX+)#JU^mmmjgenyiYW»ëP7iSպԤÎ˒rSppoG.B%r u`vtTtp
+TR4%Zdz{	
+	
+IS4(
+
+k.
+pkTt
+t
+
+tRMo
+
+6
+~*
+Q)ۛS% 4՘ΖT˫KT]HAF-"K
+g_yz}>Q~{{~؉؇}zy_gK飳ܩn_ZZp_bn:vkbA*t%ndʋ̫44m4tbm++44kkLJJl.d 
+|{|8S"1ÞH=|}}6TV5wSL<JI<{{|4"U4wTL;KI<{{|31VPwcSM;Nۛ00VPwcSM:Oܜ-7OdٛT89OdڛS;@ǠL9"ts
+V``VV`Hzu|KRKjg
+ůɣYPOdq2P2R2QreL]]]Le303aSfó^Uhvn2oE`+s!jmdfJ\e܌
+<bdaʵ֊ی
+!z2vԀ<rqo=w5d:y.hO6?)kkk
+kkkkk
+ɲ~=`Uf6@IV`b1N <:M@xi]'8T
+}
+T
+TmhnPelnhKleP;T
+elnhleZ	 PI{{{{{{Iy!
+~$~}}#M4m	eupb[^dtQETQEreĸ b$0Y	`	__	fdeggh1(', geffghaCN~WHynjmjm)KTe]Bc====OJi!G)eGlG}ff>TT=g}}RIcZYccYZccYZccYZc\pcdwywxRj.j.Rcoͭ}t qZbZZcbYZc\L
gSVIm
+0ܰ
.G.k.L.k?+llH\\HlZ釧鏼0
+
+kcthjz{{z7LvvK7isùĨwлQahaahhaai?Ul[Ĺ]SZ Z+)**MOvrqvvq 25 3
+qv6!Mr34  2oqv*
 
+).```NW{WM}|XLy R]^SS]TTVQ~ùù]SS]^SS]WQURTTtt4''tTTttTTtT 788a`aa`a^ Mkl `
+8aMakaW `a9M97Ba
+8M97Ba
+Hgg[o\@\CG%:`dhbgbۏ֯Ȱ:%G?G%;adhbgbN;%GH v/}7 
+QYr3FZXaXxwx_blkxB) K%Lo3BJwu~kuxu*k?Oz!xyxvzAY
 Ϲ[Djmhl|{{̡ԡԈ֊j8ч5T &9E
-Z$j@b<r(B{]<6TY uZ|iJC^E,g_zsyubՖӪu^@q-1ݛzJ1jI1jgTiԻ EY}MF{M`@]~tvtz,~@Y=U/0Aqt  תdz}PPxvtnos~}mzVz-cObPru[N
S=)id<&li@XsՍ0ZZ6:3W4U_U266WBN@	h[aj6GUv@cLj^HI,+T(jjc+,54+,mmZZ;ZZ۽+,33m0vH9*/o⩩+,44>4
q{7$//)9wh	0m+,54+,44,,nZܼۋZ,,>'l4n,,44,,44,,mZ;ZZZZ;Z+,/o-D/#5>'}n00nm,,54,,44,,ۋZZ;ZZ+,jJѲ"^z}i{ѧ錐zss^myzSvnnU{uuwz~ڦLvewe:rnwt]R{ϝȹ̯\jtazm|}l~~nh~uN?MamJ}fg^%llI%uXBlznxj|Z6{&1~\NULܿI4'6kZ6nNwauT
-t
-
-`77lf,,fAV4
- O
-W?tqB
-B
-B
-44z
-@t
+Z$j b<r(B{]<6TYuZ|iJC^E,g_zsyubՖӪu^ q-1ݛzJ1jI1jgTiԻEY}MF{M`@]~tvtz,J~Y=U/0Aqt  תԛdz}PPxvtnos~}mzVz-cObPru[N
S=)id<&liXsՍ0ZZ6:3W4U_U266WBN	h[aj6GUv@cLj^HI,+Tjk(jjc+,54+,mmZZ;ZZ۽+,33m0vH9*/o⩩+,44>4
q{7$//)9wh	0m+,54+,44,,nZܼۋZ,,>'l4n,,44,,44,,mZ;ZZZZ;Z+,/o-D/#5>'}n00nm,,54,,44,,ۋZZ;ZZ+,j+
+JѲ"^z}i{ѧ錐zss^myzSvnnU{uuwz~ڦLvewe:rnwt]R{ϝȹ̯\jtazm|}l~~nh~uN?MamJ}fg^%llI%uXBlznxj|Z6{&1~\NULܿI4'6kZ6nNwatTTTt
+
+T]
+gZ
+`77lf,,fAV4
+ gKW?tqEEE44
+
+
+
+@
  5
--
-
-.j
-<K
-T
-DK
-T<K
-T<K
-y}}yKy}}yT8:8y}}yKy}}yT8ttpfeOefxxxxeOeffeOe8
-  *`7Q `6w%	Y4W%*%	X4j% 1g6` Q7*` D4	Y%*&4	X%WT#EE#\[^hnT^\z.}TNNNiYT}||||}TYyi[U\`uTT
+
-@
-8TjMQMQMQWm[FN$l\TT{zzzz{TT\vl]X$FN\vl]X4[^vTtR
-TtR
-Vo8>A
,'>&&2uQeGWn!eq=s)b?ɽX/c o E`(yk2@	/POlAAe
-	e1<fXEioB(4G#ɷRM7LMģ[?Qmkȥa3N@H
F?AG!</0U @Y\@քd=6>j*.Nz+8a{z{aY%#y=<==<=<<*```^+LPzlX1Az/-6D&@I`_B
 4
-4!3}|~jk/k;j:/d;jkjL`,ThuY54Y\55\Z56\~   
q@-&
-T|
-k        D>m2W._Z8nE 5<hLhLQRSu'/>0Agz8(ҒӑP0KC'ZL{o_uOn	ɋ#xW{DߥpBdȋeE)3+57wp	44tT~
-
-~
-4'V
-.
-;
-.
-:44 VT
-
-K.
-K.
-:' taXt
-Xta_
-&'y&'Y
-
-{
-Y&'{
-y&'{
-bKHJjp̃Έb[
-aouwr~'89{={mx<*e>okjqpi{AR*7}xE|}jp]VY0-|xp aime{}ld""p*}|blv\&A}xfa)!
-po"_m3m"3s¿8~~}~hs׌$zctc^_Pvv~w~yf{h{
-Z~}}}}}||{|Z}	z}{10df}itj\KMuTuzy~00h
-x
-x
-x
-<
-
-!a!<Ǒml 
-D4CPWhЌǌʕ|vw||ryIs7h3^1c:gJlXJU>]wD&_nr6Hgdalor@/K&``m}",y }z~|{@Ë)ҧ̞ȭBO`)y)o3hm^Zx:< 
-4i 1J{z~v$${z~J1 E8)3y{||y38)E1
- 
-4gVQG ?33A HWT! 5|x$5!~
- 
-4t/|h7S.1l~gd`;!Ъwgvph
-
- 
-4'TTT(5!'
-1
-
-
-
-
-PfAV
-S@?
-i
-lfPzz$ d
-'44rn<j
-H(vMzzy :(( $u6H!eDRĨnhhRnD
-K 
-4 f~:;5:;]
-5E}}oۮhJto%]8%{~yxg(|{~rxjrqO>99l>SO~~zz
-K 
-4EQj1]
-
-< 
-44v{v}JJ}X}w}vw}Xe}w}JJ}wev aʁӎyLzzyӈzzyuYaaff6&̶QHyA~`Dޟ (#PgQ+<3%!!!S|BDMhߺ ђ.-.-.lHs-U7sH<JJJ?H&Urs&l~v~||||~v}~rrrr} d ^)[OK0-npq
D:)rJ?t~rIFo9$"%9/iüIIR^rdclmkԧ2*:8)0\pFN[BA\ŸghgGDDl)3=A
-t
-D
-
-jR VVVTPQSyVVV :R j VVyVTPQSVx VVyÁVVR jh@@hh@@hh@@hxmŁyVV jR 
- W
-FPp6pFM
-W%%%%v|y*|8G}AIrw-u\?	5'p$ PY84I5K G3#T1!I%>HGUB&- -%bbd&-JRprvQiu,t~՗Ӣ9RMgĬx{}ާEvhrjplJ- ?&n@5dbbI,ueui`M6 fXPljiijlPXlf`M6`ZiRuL};pommop|;LRZM6`m[[ƗM6Ġ|}+vjS&zzgMRjhed9oICAA~CtIo}d{fxgj;v+Iz5&o? mjhĬ7;jjjjjjjj
-D
-\O+:xOa_UTS˄@gftXRweWWk :{z{zzy"J<%wly}jhw|m'!+\!
ոϡnMbx7tttpopyjef{ m~	Ǻ iii	yzyWuf^
V]g`[[f_\ `Ujf#b'^ jTm4=yBF$3P:kS43g߫ޯG@pFAw@UMMM%O&iWtLXU_ogBFbWR?d/yH(#-:=;ra``^_^rrukedA~ R?wnmm(?+RVB=jȕwS<;QE>?F
- X`X4! 55 pqsa_^U^HKʲJpwm7ųu~`//:q~iykkkkkkgfhopypoon0
-+(\fmjő¡CB{gtzldg{S)ik-z/Rɮ٫ސq,Þ2=5qnYVL9+3 zZ$;;#}MwzVqzvy^oyzz UggTUT¯¯gT{fggTgg¯ggUggUTUgTffgUgggg!Mm#[8ICnyy|죢Ԟ[TI& %7w
-~~Tvtsrv61psYM
-w
-wpv~Tv~tsrvlUXqsk
-%]ra
-;;YS<!
-tZ
-
-t66I
- bXkC_}g555333g}cm6ﳽmv%f~~O~~~a}g767/./h~bn1lp.[Rh5kuZi/4oe
-^Wf7h7jvWi'2nfz#zCpisL2r@;pEVP<Q<m+,4>;Odlwm
-#>m
+/0
+x
+AAK
+TV
+1CK
+TAK
+TA_K
+y}}yKy}}yT9
+;9
+>0y}}yKy}}yT9
+PttpfeOefxxxxeOeffeOeDD8|
+ Z *`7Q `6w%	Y4W%*%	X4j% 1g6` Q7*` D4	Y%*&4	X%W
+T#EE#\[^hnT^\z.}TNNNiYT}||||}TYyi[U\`uTTv
++
+@
+8TjMQMQMQWm[FN$l\TT{zzzz{TT\vl]X$FN\vl]X4[^vTt
+Tt
+P8jJ2RQkVo 8>A
,'>&&2uQeGWn!eq=s)b?ɽVW X/c@o E`(yk2@	/@OlmCLAAls
+	e1<fXEioB(4G#ɷRM7LMģ[?Qmkȥa3N H
F?AG!</0U @Y\@քd= @6>U**j*.Nz+8a{z{aY%#y=<==<=<<*```^+LPzlX1Az/-6D&@I`_4|4B
 44!3}|~jk/k;j:/d;jkjL`*
+`huY54Y\55\Z56\~   
q@-33T&k        vvXwpD>m2W._Z8nE 5<hLhLQRSu'/>0Agz8(ҒӑP0KC'ZL{o_uOn	ɋ#xW{DߥpBdȋeE)p3+57wp	ntTy
+@
+y
+4'
+
+
+
+
+u
+n 
+t'
+T
+
+K
+K
+V
+' tXt@
+Xtv&'y&'Y
+
+
+Y&'
+y&'
+bKHJjp̃Έbi
+aouwr~'89{={mx<*e>okjqpi{AR*7}xE|}jp]VY0-|xp aime{}ld""p*}|blv\&A}xfa) 
+Wpo"_m3m"3sٝϞ¿8~~}~hs׌$zctc^_Pvv~w~yf{h{
+
+Z~}}}}}||{|Z}	z}{10df}itj\KMuTuzy~00&
+
+
+
+
+<!!
+
+!<
+jvt
+Ǒml!4CPWhЌǌ|vw||ryIs7h3^1c:gJlXJU>]wD&_nr6Hgdalor@/K&``m}", y@}z~|{@Ë)ҧ̞ȭBO`)y)o3hm^Zx
+
+:w
+!4i 1J{z~v$${z~J1 E8)3y{||y38)E
+
+1V!4gVQG ?33A HWT! 5|x$5!
+~;
+~V!4t/|h7S.1l~gd`;!wgvph
 i
-ƭ4tt ttT tth
-7>jVRH%HVjRHR>7E##EجHE##ER
-
-	++	
+?v
+x
+V!4mTTT
+
+x
+-
+VP
+P
+P
+PfAV
+TlfPzz! 
+ P
+44rn<B@(vMzzy :(( ! u6B@!eDRĨnhhRnD
+
+x
+K!4Bf~:;8:;
+5E}}oۮhJto%]8%{~yxg(|{~rxjrqO>99l>SO~~zz
+
+x
+K!4
+EQy
+ 
+1
+
+%v
+w
+!44v{v}JJ}X}w}vw}Xe}w}JJ}wev aʁӎyLzzyӈzz|cyuYaaff6&̶QHyA~`Dޟ (#PgQ+<3%!!!S|BDMhߺ ђO
+.-.-.plHs-U7sH<JJJ?H&Urs&l~v~||||~v}~rrrr}|" d ^)[OK0-npq
D:)rJ?t~rIFo9$"%9/iüIIR^rdclmkԧ2*:8)0\pFN[BA\ŸghgGDDl)3=
+
+0
+jR VVVTPQSyVVV :R j VVyVTPQSVx VVyÁVVR jhh
+@xmŁyVV jR ttttF4xPp[px4MFqqqqIwwv|yx*|8G}AIrw-u\?	5'px$ PY84I5K G3#T1!I%>HGUB&v\wͷ- -%bbd&-JRprvQiu,t~՗Ӣ9RMgĬx{}ާEvhrjplJ- ?&n	 5dbb I,ueui`M6fXPljiijlPXlf`M6`ZiRuL};pommop|;LRZM6`m[
+[ƗM6Ġ|}+vjS&zzgMRjhed9oICAA~CtIo}d{fxgj;v+Iz5&o? mjhĬ7;jjjjjjjj
+0KBH
+\O+:xOa_UTS˄B gftXRweWWk! :{z{zzy"J<%wly}jhw|m'!+\!
ոϡnMbx7tttpopyjef{ m~	Ǻ iii	yzyWuf^
V]g`[[f_\ A^N?I`Ujf#b'^ jTm4=yBF$3P:kS43g߫ޯG@pFAw@UMMM%O&iWtLXU_ogBFbWR?d/y(#-:=;ra``^_^rrukedA~ R?wnmm"?+ RU`B=jȕwS<;QE>?F` 
+ RXX4! 55 pqsa_^U^HKʲJpwm7ųu~//:q~iykkkkkkgfhopypoo
+n0
++(\fmjő¡CB{gtzldg{S)ik-z/Rɮ٫ސq,Þ2=5qnYVL9+3 zZ$;;#}MwzVqzvy^oyzzv! UggTUT¯¯gT{fggTgg¯ggUggUTUgTffgUgggg!Mm#[8ICnyy|죢Ԟ[TI& %7O
+~~Tvtsrv61psYM	O
+wpv~Tv~tsrvlUXqsk	%]rKwx
+ܿ
+D&l&yP
+>T
+/
+Ua
+
+
3^ bXk>C_}g555333g}cm6ﳽmv%f~~O~~~^a}g767/./h~bn1lp.[Rh5kuZi/4oe
+^Wf7h7jvWi'2nfz#zCpisL2r@;pEVP<Q<m+,4>;Odlw
+#>
+ƭ
+tt4tt ttT tte
+7>jVRH%HVjE##EE
+EE#HR>7E#E##EجHE##EE##EE
+E?>?
+	++	
 +	heXuS	+
 
 	þuh	
 	+	
 ++	SXe%	+
- 9/ː/4Gj{fj}^11^rt|qj|$$P|jBGrbrrKK&	j	Sˤr(Ge~1~w~~w~1zz0v~
-0KO+)
-3ET=
-@
-+3<
-+~w~10
-
-ddD
-
-mcFr@:}77:@ڳm-T0>2tM2V33V2Y&Lt>T0-KKKKKKKKTtQTQTQ@ 2
-gn~Q TQTQ$ 2
-
H~HfW
-T	 
-gnT<}~}
-2TT~}</
-
-O4tOf
-Y:YY%$~~$%YY:YZ$%**44ool8II8oo44**%$Zu*+uHd8lhTwwvym\_u5^/7hVfJC22C=+JVhX[<*N?Y3: ]#"S:Y3N%I%%%%F%"F%F%"mmm%@5z"mmmmFFVmyjjgwrPE]}~Su8ӗ)xm6
+ o9˫49/ː/4Gj{fj}^11^rt|qj|$$J|jBGrbrrKK&	j	SˤreGe~1~w~~w~1G
+zz0v~0BKR+%+
+~
+T+u+~w~10G
+4
+v2
+dd0
+mcFr@:}77:@ڳm-T0>2tM2V33V2Y&Lt>T0-V-
+KKKKKKKKTtY
+TY
+TY
+" 6
+gn~Y
+ TY
+TY
+"@6
+
H~HfT
+Tgnp(pT<}~}<4TT~}<2
+<p4tp
+Y:YY%$~~$%YY:YZ$%**44ool8II8oo44**%$Zu*
++
+uHd8lhTwwvym\_u5^/7hVfJC22C=+JVhX[<*N?Y3: ]#"S:Y3N%%I%%%%F%"F%F%"mmm%@5z"mmmmFF
+VmyjjgwrPE]}~Su8ӗ)xm6
 |uw}un]~')kp{u~y
-nkuptogo>4y}Ϧ)Q4
gyr=7TRyytvz3* WJttx~8tA&ysjmm}՗
-
-v \
-T
-5d
- 0fg
-(  eepZp  %$
- B((BP! (''$$
-GG(GGs$$zhl?9%$
-_{_{W
-2$
-
-L
-L
-
-L
-
-L
-L
-
-L
-EQQEEQQEL
- 
-b
-
-~$
- EQl
-
+nkuptogo>4y}Ϧ)Q4
gyr=7TRyytvz3* WJttx~8tA&ysjmm}՗
+:
+Vx
+
+ dTT-
+5P
+ x`
+  eepZp  %$
+ B((BP! (''$$
+GG(GGs$$zhl?9%$
+_{_{
+V|
+m
+%
+GGGGGGEQQEEQQEG-
+ 
+
+
+%
+
+ EQt
 
-lT^_|_j-Z7BG:?)_ s:y8CXccs{~syyyyzyoto֎~@,="H(`dine|Anq˗Ǌܨ, +@מaIƁ8%m^9^9&^5
LZ_mOMrqs7bh%7fUiU>!Vvj1	zA@LF){B90kMKpo}q4^i 4c2!b˱̩,|l-s|eW"}fڋ\GQ+L~bGDCd5.26J:#:t|mcUJmopmvn]TB4B@Dd$rvJL88˿}~=.|Նs=xzo<BY$lŖ/¸le3k{ut~irgk{ut(  ӥ`xnqx}p[!T77:_  \\]k]: rZwxo_(  |  MfmW  isu͐0  |u~Lvkcpy}  ~uz{y\ƊosTuwurl{~CBm]SbVBMjʞwywkws~~zqXIHI}Ons@WJ-E`Ǜx|}jx Ĩ@  6'r[vyo  _  |  MgmWisu͐!t~~yqWIHI}  !?|zvYaOD   Vhx/Ym1V:FMFVmY%0D  F/bbF9@O)nH4(nO9
Y"Ω̵i&L̔+` ~tvqazpubw& SJZu\ek pkfY ,F):J\^GZgm n| @~~rNvƯri_z{wow{vy}psV1}nso(>}>ptlN[XKH[ͨ>"?4'::''::',Ah" ttLRAS1Sc1J @ֶgLXpjZ  =PBBPOAAOD=̹|ͻMV˹$QG̟^ͫw_BG.O`IΤwϓRϺT}c  3"  @"7<` ߊmQ1    ryt
-   8spvu:@    rfqvu:   @r_F       /     >L6L!    +    Ohhhh[N    c    92;    1    y,    ((,     mm<}nik<ytgn(Bnlmv   2gW @   TPQ~   wez    u        Eu @   :PBBPNBG=_     "   Z*y@u !   _    M "   _H  D JiQwrSrNG2J   D t(     w\  D x]nrTrN:BNcTX.        ]^ggTW-|cQ    f   @+((+ll>vII<5YaqT;Qvy{Qŷ   bZ
-Y`qT;Rwz{Q9RIPP(*/inW|ϊL/b\04]O__  @@e,l,}
-
-v)@eiyz )
-v?n
-?r4
-or^{g=Zip
-*>薚=v*0n
-9 r3
-os^{f=Z@ip
-E(J-I4i^xz xY~**)(!=
xetpq@ tJ͉yiiylHXzdipsl_~UGJhsxyW9Yӿwyk]]s}zw~{mh7k>Yi{
-ztdYgrn|oM򹓝gptx*kSk*kl1wGb_]aTfvst+*r\zheN;h_hg__hh_ilu~~$rfP|KEUf av,ɼuaaP@YT@A
-
-~@7뀙v~6y
-uT4*<씒<JڔoCjSR'"pG*J,)
-pv~6y
-z
-49T8
-T9T8
-T9T8
-Ttg
-D7**~bELpCQ']VO
nLE
-
-3(``be!u!366I
-&-~&`b z]A)F9:5$
__;;A
-EAbw}.$X'66poGb{
-SxY-	q|k jouhyəRr	T_su#ff"ss~ki_K_"
-ff#us_^TTTTOt
-Z]ukhPUj=;<$=ӭ}(70!uc6rtv}raf'ZX,W
- 
-Yx
-XXuxmihaX_)(XbhuXx T5!KTTTTTTK'
-Tr
-r
-_hmx 
-
-
-
- 
-
-TԬIiV!!ViK
- 
-`OGo|iv

dd}}TT44}}
-



v8W97̩uxtovwpEV3'(I6/H#@ _6s2rv)	7,u`melh@K(w,k/TcWBRZsZV: [X2;@Lp"
-x#&|C@H#SQ4 + 2йyz{6C'r v'QjaNScI=λۊ6OFuɷayrv.Dxylu\eh[xO~|iK! 
-c
-
-
-zz
-0	Nee%N0	zz
-l
-
-zz
-
-c
-
-DjDBwPakON(bXS9}^HtT 
-DjD]]FJ{oQ$wv
-rG
-tKKB=vN;mYi)09Q]]
-L
-$
-] cmgc`cm*umvpvvpquvp$i݆y"Z4x+4x$Zy;N9j
-
-
-
-]??Te[R[ed\\dRjbO e[j|~bO [ee[\ejTSPe[PZ[ZQRT[ee\[eQZZZŅĀ
l94MJlrHm9	MqxtturJe
spszy}e
<cHuRtyzuw BX@2ʳ8g^zp}UY̲nxvwww~zm# Ԓ,f~x*}-oAc2S3_( %Q,dFW<~gEWRCp|1$+s<
- T)0a_i3 DX;&
uss9&%9l_nhY5Vk_k`1T<kOFw 2ϵZ6_
g<jOFx 2ζZ6`g-~	L9wuz~\LyǞMyv}N}	ǜz]z7T   t4t4t4tt$rrd+
-6**
-6TO4+***4+T&drrZ\Jxk^kwwkkw^~|}T|zxk*kwU|zwk-jxT}һxjҺ\DE[[DS^mxH||T}.һһ\D.####h
-'V''8Ltt22T22
-22T22O
-)$
 xrOrmcqly|~"|yy|~  |ylqrkew}xt[pwtoptbptUkr#
-$Ua
m}||} #V䕌OV P[d\R\D?G!cLm?J9_	lq1:KI<EQ88?E  Vws-1
S]aA<Uiut,e#z_6 IclT7P7o7w>>?DB(DD(BzD)ANZȼxȼXN=h
+lT^_|_j-Z7BG:?)_ s:y8CXccs{~syyyyzyoto֎~@,="H(`dine|Anq˗Ǌܨ, +Pמ
+M	q{mv=m
+RJCww7cl!w/|)q%
+QXeYGDW[r0Id?qov|wvNX^UZl-s|eW"}fڋ\GQ+L~bGDCd5.26J:#:t|mcUJmopmvn]TB4B@Dd$rvJL88˿}~=.|Նs=xzo<Bd
+l8l	\ʨʩܧxxӪѩ̉Шܧ̩ۨ~+Un/nT8)m'  xxxx+UmTs_^^_xx  xx((8m0nyfz  z~|~wL@ %" sx @ {s@ q|xs @ m  w~x   ~x   _sx{rr|xs @ sx@ zs  ( r{xs   2C%$%w   x}s@nww~s@m  ( {|vk  6~}xen    H  G)qtyduw{  z  ~l{  s{y{  si|hobp[N  @~   r  @na&s   u}{xw   cn  3  o  w~u?m  {  D@}s~  szzqqz  s  }}w _oG  ~}xem  HG   ox~u  ?n{   ~}wfm  G( %  $  %  d
+;zu1t&A"Ω̵i&L̔+@ ~tvqazp@ ubw&8@SJZu\ek  pkfY8@,F):J\^GZgm n| ~~rNvƯri_ z{wow{vy}psV1}nso(>}>ptlN[XKH[ͨ>-
+"?4'::' '::',Ah" ttLRAS1Sc1J ֶgLXpjZ@  =PBBPOAAOgŬ\]W»[Z3)Sff@_±RD=̹|ͻMV˹$QG̟^ͫw_BG.O`IΤwϓRϺTEDjX  3""7<  "ߊmQ1 @   @ ryt    8spvu: @    rfqvu: d@  r_F       / D@    >L6L!   @   +    Ohhhh[N @   c @   92; @   1      y,   ((,     mm<}nik<ytgn(Bnlmva   2gW     TP      Q~a   wez   !  uP        !  Eu     :PBBPNBG=_!!@1    @  Z*y    @u  @  _   @  M    _HE    Q JiQwrSrNG2J     tA    (@     w\E    Q x]nrTrN:BNcTX.E       !  ]^ggTW-|cQ      f
+    P+((+ll>vII<5YaqT;Qvy{Qŷ     `bZ
+Y`qT;Rwz{Q9RIPP(*/inW|ϊL/b\04]O__@   P(	e,l,|}
+v)eiyz )v??4
+For^{g=Zi
+*>薚=v*09H3
+Fos^{f=ZPi
+E(J-I4i^xz xd
+623~**)(!=
xetpqR tJ͉yiiylHXzdipsl_~UGJhsxyW9Yӿwyk]]s}zw~{mh7k>Yi{
+ztdYgrn|oM򹓝gptx*kSk*kl1wGb_]aTfvst+*r\zheN;h_hg_@_hh_ilu~~$rfP|KEUfav,ɼuaaP@d
+XvvT@A!!KTy	
+~@7뀙v~6
+D
+
+T4[
+*<씒<JڔoCjSR'"pG	*J,)!!KTypv~6
+94:T[R
+T:T?
+T:T?
+Tt
+߼wOVVOcZwE;(
+K&
+L1Hu
+m4"9!4 D7**~bELpCQ']VO
nLE
+
+3(``be!u!3Ua
+
+
mO%* &-~&ހ`b z]A)߀F9:5$
__
+EAbw}.$X'[[ހpoGb{
+SxY-	q|k jouhyəRr	Ti
+_su#
+ff"ss~ki_K_"ff#us_^TTTTO
+O
+Z]ukhPUj=;<$=ӭ}(70!uc6rtv}raf'ZX,Wa
+p{Y
+XXuxmihaX_)(XbhuX
+{TKTTTTTTK
+T_hmx 
+TԳ
+
+iV!!ViK
+`RGo|iv

dd}}
+TT44}}



v878W97̩uxtovwpEV3'(I6/H#@ _6s2rv)	7,u`melh@K(w,k/TcWBRZsZV: [X2;@LpZ"
+x#&|C@H#SQ4 + 2йyz{6C'r v'QjaNScI=λۊ6OFuɷayrv.Dxylu\eh[xO~|iK! uF
+$
+zz0	Nee%N0	zz
+
+t$
+zz
+-
+F׀
+D
+DwPakON(瀰bXS9}^HtTU
+D
+D׀7׀]]FJ{oQ$wv
+rG
+tKKB=׀[
+vN;mYi)09Q瀷]
+T
+4G%
+] cmgccm*umvpvvpquvp$i݆y"Z4x+4x$Zy;N9@?@?@]??Te[R[ed\\dRjbO e[j|~bO [ee[\ejTSPe[PZ[ZQRT[ee\[eQZZZŅĀ4
P:
l94tMJlrHm9	MqxtturJe
spszy}e
<cHuRtyzuw@BX2ʳ8g^zp}UY̲nxvwww~zm# Ԓ,f~tx*}-oAc2S3_( %Q,dFW<~4gEWRCtp|1$+s<
+
+@T)0a_i3 4X;&
uss9&%9l_nhY5]\a\<RVk_k`1T<kOFw 2ϵZ6_"
+
g<jOFx 2ζZ6`"
+g-~	L9wuz~\LyǞMyv}N}	ǜz]z7T   tTtt4t4t4tt$rrd(
+
+**TR4(
+**'
+4(
+T$drrnZ\Jxk^kwwkkw^~|}T|zxk*kwU|zwk-jxT}һxjҺ\DE[[DS^mxH||T}.һһ\D.####
+'V''8Ltt22T22T22T22O
+)$ xrOrmcqly|~"|yy|~@ |ylqrkew}xt[pwtoptbptUkr#
+$Uaᰥm}||}#V䕌OV@P[d\R\D?G!cLm?J9_	lq1:KI<EQ88?Ed Vws-1aS]aA<Uiut,e#z_6 IclT7P7o7w>>?
+DB(DD(BzD)ANZȼxȼXN=v
 :jTRR;;PPQ2<;5,$()MU]()++\TMqqz΂34ypm1
-.oQke^
'uv&^ek ex#B9o=9B]:#/ݠ"\&"iRex
hB
RXD@ _* pX@RchE:dM+A*[ $qf]]]U9pttp.ptqtoq
-
-AA
-lL6HpAOYKI++srs I0"/rIHqqIHrﷰg(7]F$gVd
-p'7)28]8
-j	@
-j
-j
-j
-@ o]"
-]"-]"
.\#<]i|i|i|j|6
-6}66
-Fٯ
-6Vg
-
-<(
-gwddddd;A  A@ !A@!!@A! @9ŵwvmQuLflD^A94 wHMZXaǂݏ,|)

*)

)*

)*

**

)*

*)

*)

)[OCPZ[P55ZPCO[[PP[(ǻ@:M`edeSO[/:~~|yw{
->g7.iczdfptð+&4Rl^vQBR{xxgd~y</Rc4jc'^d</gZ8%V  
-\
-j
-
-F
-nhnhV
-  
-z{{
-F
-'&nh'&nhV
- h-Q Nkg-``%`azxwwxzxshtT~Txu
-x888
-88
-88
-88
-88
-88
-8811j
-r
-ڱ
-898}
-xyf΢{cEpH
-EQc}{[hfKK8
-9811j
-r'mHP
-j
-K4T+TDqT1aa1qӌ$ӊ4FlGuj/>cvYXwrlO[MOO[Olr}twXPYv@c>kPS/k_`bjpN1kI7+447
-c
-uU)4S'-{:d@Gl
-&zzEwvlmulchr]t
-bFs^[XVvN;mЋD1 %/O,jF?j}yykDjDB'wsxx
-l
-DjD 
-l
-_>hjthhjbgSgT.
+.oQke^
'uv&^ek7|e pex#B9o=9B]:#/ݠp"\&"iRexp
hB
RXD@ _* pX@RpchE:dM+A*[ $0bwqf]]]U9pttp.ptqtoqJN
+JAN
+AJN
+lL6HpAOYKI++srs I0"/rIHqqIHrv;(hqjuqiF
+ﷰg(7]F$g)XP
+p'7)28]8j*% jjjA  o]"
-]"-]"
.\#<]i|i|i|j|66 6Fٯ6UaZg<xgw;A  A@ !A@!!@A! @9ŵwvmQuLflD^A94 wHMZXaǂݏ,!|)

*)

)*

)*

**

)*

*)

*)

)[OCPZ[P55ZPCO[[PP[(ǻ.S "0@:M`edeSO[/:~~|yw{
+>g7.iczdfptð+&4Rl^vQBR{xxgd~y</Rc4jc'^d</gZ8%Vd
+
+X'nh`z{{@X'&'&H` h-Q Nkg-``%`azxwwxzxshtT~Tx'e''
+
+x"888ށ888ށ888ށ888ށ888ށ888ށ88811
+rJ8
+8mDڱ8
+8m898݁xyf΢{cEH
+$DEQc}{[hfKK8݁89811
+Dr'm$HD
+m>
+K4T+TDqT1aa1qӌ$ӊ4FlGuj/>cvYXwrlO[MOO[Olr}twXPYv@c>kPS/k_`bjpN1kI|
+ FkuU)4S'-{:d@G
+&zzEwvlmulchr]t
+bFs^[XV[
+vN;mЋD1 g%/O,kjF?j}yykD
+D'wsxx
+tD
+D7U
+1
+t_>hjthhjbgSgT.
 
-T譁bjh>n_KD;Df
-`-
-l2+
-f
-
-suS&yprxo)nrR/Eoqwn썍c@
-";;dxpXBB}tq۽<Tdmlsur|jtZ
-ttq
-tt/t
-H
-]]
-)\<A
-4j
-,
-{uNvQ*33Q~Fu{uv+NR-XvT
-
-vXRX,
-*6xllsvr}jP
-i
-)[=)R~[~w~5-!/5
-A
-"~v_V=)[P
--uqu f!D! }qquur|jtZ
-ttq
-ttA
-tt/tì|r	
-PZ<:~
-`Zvg
-$gJAv<ֽYi<AJo&
-)
-d
-0ulc
-*5xlmxyv{?ZS4t9Mkjt9MkxxwJ11Z`wwxn=OvTJ11E`nm=OvS
-
-Fܬ)
-gN/#-teZ\i\hT
-ֽ?#f,WS	
-Z<:Zvg
-$gK@v<~
-T<@Ko&
-
-ii@@@@==)\< ![
-  ijA
-4j
-,
-<4/49/[
-^]}
-^]S94Z
-4j|ѡlsmdtK,
-
-mv~^^
-MMKj|ruslmdttq
-tMM
-^~
-,
-TA
-
-T,
-
-]]HҼ
-\ee\\esVe\M|?S#`<`Rw<EDz8D^7E&SMX]Z-`LML<z=a3lxmqY*mSZ]eauжXp~v{}|[^s\IFFS#Jwaâ7z_
%>}=af44	)5Mk4444i ;
-;
-TT;
-T      l
-T
-qT
-TH
-4Ti
-
-T
-tTsR@6{@),\,)əEQT
-qs
-IIs~xxx{?+)])+8s~T@d
-Tj
-k
-F
-T@hh
-d
-t
-TTTTT//TTT lTT!5(5!'
-4a4a4 `Dqfe2sq4eessfjoFee2o2e
-
  d
-״(
¯#wmݿbt  @r|kj>Slst =Sls_tiqnvŅ3I`QnN^DyagTQ3I`nȜn;((5;!!6ryP qhn}.d9=k%)}|||{zvvuyyvvx}̖ҹ֐acrppxswzn}{wvvD  Ӎ⟳͂pTlZxeyR{  o|WbeVHquO  z|n*)j4_SnNe]_\]gwkrmn   nny{ŉZlvTdp@JI4X  @^xԉ  jwvw @ ~ny   yorpmue{`nY  npr@^rss~~xvvyv}y  uwz  {{|z|{}{x}~yz~~}	; ` ˉˬ7y88Siˎ ;	   Lp` d|jK='t<<vug|c |[ f  _&u1||~  yo9utwKrjR|Y%  ڬӢ [Q|+<cgvEU||zzЕ֦dBr;9WdIrPmu͆~//0//0//xyw`~"b|ьҋъ[[~![s'ҍҋӌl3zQR#krw:vtvv  LFTŐ{όxsx<ծ|DBF+D~I#6B7}IH_ID&\Ӂ@r  {)5?} @ zP  &#?aOC:)x{}.`A<~$!	z~|}}XXX}sruj~^at\C&ODIH}ߤ@	 rB00AA00BA00BA00BNpi4rT_		__		__		__		_D
-
-$kt
-t
-$K`\buA
-f
-<<<a<-tV22VV22V+
-'''+
-
-b
-~
-g
-T
-1
-TR
-@;f
-4g
-3C@
-4
-
-
- K)
-K)
-K)
-T)m{zs{tq 6
-SXk{E֫}]pc`
-
-KHW-CCHKh @)4) @hKH-WHKh )j
-4) h
-W
-^@ 
-!  O
- 
-! 
-@v !   
-@   ! 
-  '@l
- j
-
-'u
-
- v-U  P	 @ " O
- 
-( 
- 
-@ Pv    @ 
-  " j
-    
-  @@ 
-
- j
-@ @'
-
-
-
-''vv'h
-Z444LL
-xzzMMzzV``V
-
-4
-ժLL(fcsm- -yisn@K8A*,gtx^L p&{'%%{pVJ9$5EE$ݑͥr:CW*[_?P`X=[A `
-kk(22I2(UJU2kYA
-+
-Ԃ
-ԪGt
-ԏ
-t
-44
-ԪG4TTT/pE77EV@p4
-U_xZ
-
- /I{
-_gg_3
-J7b  3
-J7b%Xrzspps^?``^%_`b Z[z[;Z%&jWWj&[@"UzUU%XrzsppskG+Ph
-K
-xILLIILLIx^ 
-tt
-΄PH
-ZVNqqr Hrqqrhnnu~t˻WL@mAN.
-JMs^\lji!)tIK^0(H!wwx^B<``uf`WUAtttt|
-ɽYM$
-ɽYMwwx?)^cj]D=
-ҳxk.a$|18X:b}}}FhXa"
-KD ( 	  }}}|b81ittʓ
-0%nllv
-!+fzv
-p/7chhk+^[THP}.}{{MYɷ7o_qccy4{H]ȣǦɽYM|%npzdcZ}!DR
-\Zjћ0!XEdkdNYTMNX0PcXR}6~YVW
-Ft
-S'
-kIJX%Ba8kf#Ef(b>[=:
-Yvk2
-OTV0OUƀF
-ԫafob~hF
-Swk9&&
-
-gY8>%˻XM,ɾYMr}QQ|Q'%`em_Jppuiuzzwɺ˿gYv*ʹ%q-u*+? q8$@ q+)5x}2#xww;Q" 7=YjyJAkttTtTg[
-MCΫ
-MC1NNgZ´[VmJJ{K/oqwnb=
-ѵvj+^
-v
-d^]  Kb[Քm)xyx^HCii}l\NJp"#kkgk
-ot
c7/{{{
-v
-zf+!v
-lln%0
-ǓEt^+jffllɽYM{{}.}PHT/7qͻ]H{4cycq_MYɛǦsjZ\
-!}Zcdznp% 0DRɹXNMTYNdkdEXÿ!0WV~Y6R}XcP^Zt|z+	za
-
-}z!~q{yzp~"{}~{=UP?Q={~4Z]41YW36ЧubQEd]"+T&6/V,'
-t
-D
-44'%YT84
+T譁bjh>n_KD;D
+h/4+|
+Z suS&yprxoh
+nrR/Eoqwn썍c@
+";;dxpXBB}tq۽w
+
+Tdmlsur|jto
+tt
+ttDtE
+[
+S)\<D
+4x
+/
+m
+
+8{uNvQ*33Q~Fu{uv+NR-XvD
+^
+vXRX/
+m
+
+
+*6xllsvr}jXm
+9
+)[=)R~[~w~5-!i5
+D
+"~v_V=)[D
+Xwauqu f!D! }qquur|jto
+tt
+ttD
+ttDtì|r6Z<:S
+vg$gJAv<ֽYi<AJZ)
+
+P
+0ulc
+
+*5xlmxyv{?ZS!
+4t9Mkjt9Mkxxw
+J11Z`wwxn=OvTJ11E`nm=Ov[
+m V
+)
+gN/#-teZ\i\h^
+ֽ?#f,WSCZ7)
+6Z<:
+vg$gK@v<ST<@KZii#
+@@==)\< !  ijD
+4x
+/
+
+
+w
+4D49/^]^]94o
+4j|ѡlsmdtK/
+
+mv~^^MMtMtj|ruslmdtt
+tMM^~2/
+
+p
+T
+D
+D
+T/
+[
+]]E
+Om|*
+\ee\\es
+Ve\97M|?S#`<`Rw<EDz8D^7E&SMX]Z-`LML<z=a3lx-vxmqY*mSZ]eauжXp~v{}|[^s\IFFS#Jwaâ7z_
%>}=af44	)x5Mk4444+
+ 
+
+T
+T
+T
+
+ { { {tT
+aT
+TF7
+
+Tr
+J
+tTsR@6{@),\,)@əEQZT
+aIIs~xxx{?+)])+@8s~v
+T@P
+Tx
+{
+T
+Ti
+
+P
+
+TTTTT//TTT lvT
+T
+T!5
+
+s^vt
+4~44
+}}{ptrmg}e}Mpvwyۏ
+
  P
+Xtj\b 'djгg[L״(
¯#wmݿbtG(   r|kj>Sl   st  =Sls_tiqnvŅ3I`QnN^DyagTQ3I`nȜn;((5;!!6ry  qhn}.d9=k%)}|||{zvvuyyvvx}̖ҹ֐acrppxswzn}{wvv   Ӎ⟳͂pTlZxeyR{ 0  o|WbeVHquO    z|n*)j4_SnNe]_\]gwkrmn   nny{ŉZlvTdp@J   I4X   ^xԉ  @ jwvw @  ~ny    yorpmue{`nY  npr@^rss~~xvvyv}y  @ uwz D 8 {{|z|{}{x}~yz~~}	; $  ˉˬ7y88Siˎ ;	 D 8 h Lp` d|jK='t<<vug|c  ` |[h f @  _&u1||~   yo9utwKrjR|Y%    ڬӢ
+2H[Q|+<cgvEU||zzЕ֦dBr;9WdIrPmu͆~//0//0//xyw`~"b|ьҋъ[[~![s'ҍҋӌl3zQR#krw:vtvv   LFTŐ{όxsx<ծ
+|DBF+D~I#6B7}IH_I   D&\Ӂ@r   {)5
+?}   z
+ T   &#?aOC:)x{}.`A<~$!	z~|}}XXX}sruj~^at\C&ODIH}ߤ@J6	 rB00AA00BA00BA00BNpi4rtT_		__		__		__		_0
+$kt
+t
+$Kh\buD
+
+<<<
+<+t+
+'''+
+-
+
+
+
+i
+T i
+R
+,T[@R
+
+4]
+T3C@Z
+4
+ K*K*K*T*
+
+m{zs{tq p
+SXk{E֫}]p
+FV*
+KHW-CCHKh @)4
+) @hKH-WHKh )
+4) h
+ -
+@P  @ h ! ( @@ P
+!  @@  !   @ @!  miPt 
+mP
+
+
+ma aR@	   @ P( "  Z D 
+
+ $@@ D 
+% D  B  " 
+ @ @   $ "  @ D  @$ 
+
+ (
+>
+ jmP
+P
+Z-mm
+
+me
+f44-4LLmxzzMMzzV``V43
+-ժLL\UI (fc}sm- -yisnK8A*,gtx^L p&{'%%{pVJ9$5EE$ݑͥ}r:CW*[_?P`X=}[A bo/
+kk(22I2(UJU2kd
+
++Ԁ
+
+GX
+]
+gZ
+X
+]
+g44
+
+G4
+t
+TTTipE77EV@p1
+U_xo
+H
+ 6
+ f
+I{
+_gg_n
+7b  n
+7b$
+Xrzspps^?``^
+$
+_`b Z[z[;Z$
+&jWWj&[@"UzUU$
+XrzsppskG+P
+Tv@T
+K
+xILLIILLIx^ 
+mK+ tttt΄PHt
+ZVt
+˻WLqqr Hrqqr-
+hnnu~t
+t˻WL@mA
+˻WL.t
+JMs^\tlji!)tIK^0tH!wwxt^B<``uft`WU4
+x
+tttt*
+ɽYM$
+ɽYM
+ɽYMwwx?)^cj]Dces
+ҳxk.a
+ɽYM$
+18X:b}}}FhXa"!
+D ( 	  }}}b81mo9ttʓ
+0
+
+%nllb
+!+fzx!p|/7chhk+^[THP}.}{{MYɷ7o_qccy4{H]ȣǦɽYM|%npzdcZ}!DR߼
+\Zjћ|0!߼XEdkdNYTMNX
+0PcXR}6~YVWt
+
+
+S
+kIJX%Ba8k#E
+b>[=:-
+
+Yvk2
+OT\0OUƀԫafob~hSwk9&&FD[ _Jͽ "QQO;2x)+? q$@8 q+*;u~-%xxxquutgfh%'E̹VL*v˺VM`wzTE`ubiqzuppJ_e'%|ŕ}rɾɿdZ,ɻ˾gY%8>4
+x
+[;kttTtTl*
+MCΫ
+MC1
+˻WLN͜f´[VmJJ{K/oqwnbces՜
+ѵvj+^
+d^]  
+blՔm)xyx^HCii}l\NJp"#kk՜͜k眫
+tt:
+oVtt
c7/{{{b
+zf+!b
+lln%
+0
+ǓEt^+jffllɽYM{{}.}PHT/7qͻ]H{4cycq_MYɛǦsjZ\
+
+!}Zcdznp% 0DRɹXNMTYNdkdEXÿ!0WV~Y6R}XcP^vHZt|z(
+	z]}z!~q{yzp~"{}~{=UP?Q={~G
+4IHtZ]41YW36ЧubQEd]"(
+T$7/V,'t
+044
+'%YT8l
 9|2'8
-(%XU74
-9|3'9
-4D
-
-tt++UUttttC<<4444vTT
-UUttttC++<<44f
-aJZZZZ44cTSc++TS33ZZ
-D
-DORKPKaXWaaXWaaWWabWWa 45! 54! 5
-4!-..-......-..- .. Xcc cccccc0ɂь8`a @aNdC9sbccc@ccbc X9XE-JF,bH5@Y&nË49HbFs̷N{R{	`_`_`_`_9''''pqD-A&aa-D`qX_1`AMtCC%&*)GGbbIc~c͋%)Gc͋cBս_h
-3PD33DD33DjKgl:VF_-zMWSRn\nnnn\nZECSSnn\nnӾN+F:g˝VC&&ӋlgZG%%GG%%GG%%GG%%GP8 X@
-6DD6srpsG4Tmmv)t~̩vVJk}ltu(vumm	 $O?$d`zw~y8Mva\tiN߶܎`4s~nkA["gwdLaG$lΥэv~{ҊꅮK-5%L
.U <BB<Gi
Џ|r0+= E=w	yKoIlkhsljisQxK)]`J'R~×bB!-(pW}^^_I|Dc/ %)p}[De\]]ϚF|E/+'ǙeTGf{HB- *\mNNNNNNNN
-D
-f
-t
+
+(%XU7l
+9|3'940
+k@tt++UUttttC<<4444
+TTUUttttC++<<44
+aJZZZZ44cTSc++TS33ZZ
+0gQvOy#DORKPKaXWaaXWaaWWabWWa 45! 54! 54!-..-......-..- .. Xcc@ cccccc0ɂь8`a @aNdC9sbccc@ccbc X9XE-JF,bH5@Y&nË49HbF8s̷pzSzN{R{<	`_`_`_`_9''''pqD-A&aa-D`qX_1`AMtCC%&*)GGbbIc~c͋%)Gc͋cBս_m
+3PD33DD33DjKgl:VF_-zMWSRn\nnnn\nZECSSnn\nnӾN+F:g˝VC&&ӋlgZG%%GG%%GG%%GG%%GP8 XP
+*
+6DD6srpsG4Tmmv)t~̩vVJk}ltu(vumm4[	 `$O?$d``zw~y8Mva\tiN߶܎`4s~nkA["gwdLaG$lΥэ`v~{ҊꅮK-5%L
.U <BB<Gi
Џ|r`0+= E=w	yKw"woIlkhsljisQxK)]`J'R~×bB!-(pW}^^_I|Dc/ %)p}[De\]]ϚF|E/+'ǙeTGf{HB- *\mNNNNNNNN
+0
+
 
 @j<Z\
-fzd?*1"0-)/!U=ITAIzWdd],O+2=q4{E)<A1t1j1(w;;;;;;;;	uR@@gL)wteC#B3B3CVj>|肙i54_:vx H|Q̋yPBCĻ*O8Qz }y2!v/>>>H>8  *`F"]E4ѡ+E(7S\t"6%Ws& lhf%H;F Bdx;s6S:
6Sq%u?K	La) an
-
- 
-Y
-T
-|z
-TYTt4
-/t
-
+fzd?*1"0-)/!U=ITAIzWdd],O+2=q4{E)<A1t1j1(w;;;;;;;;
	upR@@gL)wteC#B3B3CVj>|肙i54_:vx H|Q̋yPBCĻ*O8Qz }y2!v
+w
+2!dx%%uouyf"2E"ciP8+H>VV>8PicE0}D8F?:/5mV?_@)*_AUm֡F8~4pw:{hIK6AOR|||7 ::-R=6jsnVK
+{Qr2w..4$<1Unk;HKTC$[EEq;rI/(6F+ G-7+`=(c2F]U=PO>Ulx
+x
+{
+T@q]
+Tgt1
+it
+c*
 KWWKKW#1bnZyOL/õB+
-h'X=-k7yS[rWmK|CO]ew,i@RF˿WK7]o(Hq(H\^q(H(H_]Hf++AP[sHr8{3QB%W
-0%$;K0Qfui{3iHw^Fyl}l
-66xtm|cw&LL+dtjiJ4qq˚|O)xOpYpZ,,pWwT,JyIE7wt4vQ^6_
-d
-tpK
-K
-
-Wl
-j
-T
-)
-
-T
-)
-
-@l
-TtTKtZ
-ttq
-tt/4O4
-6t#
-+PPPP]w~PPPPQPQPSPQPQ[
-k#
-]w~PPppiP#
-f
-Tt
-5
--
-.QQj
-4tT_`b#v#b`_yyE
-Ct33|
-V22VN
-'
-!!yrr0K+
--
-
-!!e+vTTTrryy!!!!"
-@
-yuw{{{s{sqvwl
-zz
+h'X=-k7yS[rWmK|CO]ew,i@RF˿WK Jvf | )}xyk~JJ?X7gf3.x,+.46?JGXjkځǇvl~doJLN*4A@Pbaul~xyJJJww}IIJÐN~LkR{mmaUULEC><;;{mDRs*MSPwms}wy<u|ƌ
Y10Y
1122X48C1£ǳʧr]^NJ qZoe~|Z~W43XV32X+1fIHJLh67:gfs˂uncor~EMUUaml|ؚѩʵɩӛlG@/' "vg9~{~iyenaMxx,wMw^Fyl}l
+66xtm|cw&LL+dtjiJ4qqߠ˚|O)xOpYpZ,,pWwT,JyIE7wt4vQ^6_4
+TT4
+P
+q
+q
+bty
+%
+%
+
+@tTtL
+tto
+tt
+ttD4
+TT
+
+4 
+t#4
+
++PPPP]w~PPPP#
+QPQPPQPQk#4
+
+]w~PPpp#
+iP#
+T
+
+/0
+
+
+x
+`tT_`b##b`_
+yyQ
+
+t33
+V22VL
+'
+!!yrr11K-
+/H
+!!e+TTTrryy!!!!V@;vyuw{{{s{sqvwtzz
 zm
-m `mmf
-t
-H
-@>
-222%%WBS	qg@\LP{|@)҅%i@@@%%
-\h<;v-;ݯ].Sg9G  FXVi_d:ftl\mM>U:\!-<F<C;D)Ե4C554C3.N$rjm2h
-o
-Wqqq
4o
-+j@8rr  Rr@LiO;{eSw)}5TԒ?>B	o-Bvˌ{bє~8wp@
   W ] k             .26:X\gnu"&*/?J~%)-1>BF
- $K5:>*.QXr{		#	'	7	E	K	P	T								
-
+m{`mm
+
+
+
+F>
+v
+m
+m
+m
+%%WBS	qg@\LP{|@)҅%V`
+BBB
+%%
+@w\h<;v-;ݯ].Sg9G  FXVi_d:ftl\mM>U:\!-<F<C;D)Ե4C554C3.N$rjm2	O
+Wqqqt*Qt
4+j@8ߪrr  Rr@LiO;{eSw)}5TԒ?>B	o-Bvˌ{bє~8w0R8#0F2SXtegJ]lA9HH8QXi[syxy\HN-fXR22<GjmkkKLЬ̬[H98HH89H,,KUUK,|}Nv}|u||a8HH98HH9v[y-rn
+ f=qF)?
`9{dP3o&?($W2
+3CZ
+ `@]
+t	 tT0!,JJJJv'k$&8CPB4n!48V%%%%k,HT4Tw/+,{{a{L{{
+==
+
+
+
+k
+F
+o~|܏f
+yh|lidbooprmmrrmvw~ovF
+I
+v	 oT~ƣ @V5!7EV@p -F1M \ZG#n'x!ϼ 1-+T
+S(
+++EZ [spkT~O@GA  BHEB  Bc
+0-/-----mJ#66"!!!!p[mmVJE46H``Z[|]~c`}pG;-7-m{<8Yn,=auKKvQ.-QjKs[hshs\hF:87s;\Fsh[t3]-3s\hsht[h"eE!sh\s-3~+***}Mz]c.p%$fM55277<&UA++Kq5PPm;XY;v2
+,cTT:
+,[R
+T:
+,[R
+ 
+xttt
+
+e
+:
+,[R
+T 
+tttԙt~S(
+$t
+Fh͉yy}~pjPPjprk5jThc
+ctt 
+R*N^Ȗ*
+RDejok4ph4hplh/X
+4X
+9joqjhp4lh\ƙ;2
+;ǾbP0&M	q$;1
+;$9	q&MtsT
+
+|~}StK|}St=u=ttt*w)))((.ddZNNZZNNZ
+Q+A@AA@![  		  [P
+P
+B 
+
+a
++ 14wx{~}g
+4t4a 
+Mr&Ȃoly
+_lZb
+&Z_lZb>Tt4t9lF9y4d;1?;UҒ/tt<%%<"SKj<5eZ>:$$$=:Z>ejSm$54444q(f?f?(q***M**wI9(9II9(9I*'
+wdA467MR*M8=IF[-2	~
0XPdow4
+4b^hvii!r(u)- vjzfj~qsoqzazqHoCwqs|qjz )(!ivi#o#vi%GT;;;;;;P
+0VviWPVgumlwa||q{cYili`dH__·I5)4y)Y>BݮU11V1h8SM$wh#hAQWƇ¹ÐvZ];();;)(<&U11UԡϱB.`	eSGtCm$t]$ttR4'4$BL8,L9}x 9`Q^fxOoDk3dGԴ"TUa
+
+
vsXQF55EE65E<xiUNgs{f<ϖҖ~hr84W{mXx|cqJ_s '*0󍂎iZӵԵYn5U+"C~?ihyvxnnn6>#A0W9
|xuzlMx|lT(x||x x|T*0(=`hZ6,
+L86-
+I86,
+_
+-i1Yn|||jjk8dJ!E+z$99$+!8YisV>crbxy~vz\\\}v{~^ws8~64468w^~ybrc>s3%p[rrcrrkii~kssqrbrIIV*B+$$c+CB~II%%Uaa;U%%
5??H5
~)ԫ
+
+
+Tt
+t
+`
+5!J
+Jn
+J
+wNk+mTTT11W
+E
+
+VNMDH>>35b
+d-
+E.
+:V22VV22Vd'cU/ocuovocv?%	q|~fFF
+0.*ocvnvocv&0q|KTi
+KTTdhjw{i^u_oYlnus
+o^iwhY_u{jhwuji>qw[GA?ijkŒ[V(1g=VijNbi6%Qtb(enzfl4u~dp"v[~}dtVldvtşW4tt}}}"CVt[Rt}~[tvR[Cljh\^a\Qwt\s[Rsjz\oUwQVf[VT[gdk\c`^ebiObt6Qb(Te|TT&&'dq:=2G<LCYRhn@K5
+$c{{q{<<{{qz{cc00E3'ҥ}}{PRHLbyz{*Tb#E.ᕖz<_d_:@sgD_^_*dJA	Bɴ׵to'W4pwοvW XMuY1A3g,{ հ	yL Z=xsav^|ZZ[k.k/k.hemf$ 6k+ː]V$Iqo~QN ڈ7.;ghhVND<{B3^w/ۍֵ5b	LQ*GJW}ϗѝڏy kTUnn~ryj_MlNy|bmmT]bj[X]~-u[_k[TZKNW]dWT]TkYacYUaö1r&>kfbr(ywvE^nw"'hRcl`jObenfQaWT`]Tti\~{&XU3tOZq]s~Q[8qQ]sZq{N\[kP`m]lM_|r(nhd&>lecovDd$H6}z~t1YbSu\q Py,:|`B/O~TaKJ~Lyy1Vwy:pI>/2ndgaWrsw		=!Y	2R?2"?=. O?U<<quuqquuddVTqu"w+B~oftaz_VSRt9Kxx:Ktp;VwxQMMt#"Y()#`QxgihiVKlfT'Fb(-]ݸuWh@JM;uT|NwbdghsK[bei({q}P#4%Saj_≖`/7bb/6aa.;c}}pmmlji0+.10.{\YYFC?>AD$(-}}}[ׯMgYST**lSmMrWJB`enū)c1&E,u|ѰڡXMN9*
+T(T33T&V
+]!zltahqrp!s,o"prrgl!|N#l[heeezpK^7Lw} 
+ cb*
+[)F3RtZ>UKLLdllh]rd.^7|}}\".% _qqoy~yGAokzAïwPW~|ԪAyoqq 0[]yZigmpgːt@6)HW\!zktaiqqq s,o!qrqhk!{
+N#k[iedezpK^7Kx}p 
+	 	 
+#` RN{M{ xiwi9#GsE}Tl+{X|V}2h8pihE[&Yr!hgRoq-εߝA UǾԾ*}t~xqi#E3lgc2Fj`\Y=urrqrqs$>tY~\w`rk2FclgglbE3jr`w\~Yu<rqqqrr%t<Y\_jF2bfm1F$kqw~v}$}x$k1FE2j$t}%%%%%LX0X/X/TTTT &O,-OO,-Ojjk1'
'-4nOxqigggh~ie$DNyWvw#1rHe%:qzt{s[s,w!w""0tdcubhgc8cliccmid@dmho
+id0 B clio
+id Bdlhcclid@Y3W,zhehjwmyxjhhj
+gk
+ditiy74kg
+}RQPtd,c *pqq`NAp@`JQzH~GF+/2rYN'K_IFF_ʷзIL	P&0hFyzy\\[ V _
JP mz
Bpgfsvy|s#Lc|gVXTVtbewvvNA($h^~mo_~|z}y~x|nf{DBYL\'
>mZR{QsstN]wiggXnϤOTͮmwmw mwŷ	v|iI#&bSS!mvvu 
+
+D4P
+3i-kbUST345IIIyq߬
)

))
19j4:P*C3+K}T
+-Mujmatvhj_|[t>4a@kk[|^4<Nhc_/22ģ֖kEb=0/Y -"$3QtlZ[Yfbe7]XUnPI"Rgɰe;o[1HwT
+Tg
+<R;JLwgVVLJ	B; 95
+4w2
+
N:9՛ͻůF4O
+cbc{"犖M88']L"/f
+UA=0;}Q <0^'0 ř}W}w};O<04
+
+bw}GU)@'eY(.E"E(Y"+G}v|fW}x?r?Q<ŕzE٘+0@
+4|c"-dc|.44|q\NEE*#"#*;QE"	9aRqs|ig4vߟ	ތ[lifk8I`Z\uρ6ٿ<0JAeci>z8qFl;7MtH$v"?-=xGnS-ub7È
A
+wc-Ef7-^DNfrx~58~O	 K(JD;;JEYFkT«FYEA#	##	#$	##	$R+7TS+V
+T}y 
+`
+$	##	$#	##	#[pdIH[<<HINm}!75'mwS@T|zJ
++J
++r
+@
+
+G
+x
+)4RMDDR/@2o[ͻ2@/1$%&%%1:
+ԩ
+R
+Kw{{ww{{wS::
+,u
+R
+KX
+@l
+A+?
++c
+Vw
+)/e@2oZI[BBIZ2e@/4M1%%%&1Q 
+{ww{{wSw{'
+1
+
+M+L
++
+
+G@X
+@l
+
+4
+YXyyXO:>+N  >t:OO
+
+%%%&$'b
+%%$'#(
+Gg4(K
+K4(Gg.S1>P;;>S1.
+F
+
+ڨzz'.<!bV[b-;PP-;b[V!E$@hh
+? 	+YZ<	[	ZY+	
+d
+0dA1]ZInBBIZ1dA05K.$$%&T
+`X
++S
+@gT
+T
+B[PP>P[,cs£,P
+t
+K:
+y}j
+Ky}}yTy}
+K
+K[R
++X
+@l
+
+9tk,ccTsNNTck,BP>ƻPn4RT1
+T7}y1
+T
+8
+K
+'
+T1
+T
+@
+{X
+@l
+
+o0 v@0<;u^'\	=*S<,cXP*"c`[h3\5jj5<UgF19PREij+#hd$єZۯӄhw*K	(Y&ZvV^e1.j4E9""оqrQ)`j#KE[|z0Y`7~?g
+drlf.kg*{WrrZ^mwvl[s njbgnzhylqfSB[<	.ShtviKkTpxvnmn`j|kfZ_FnʬҞgn|rRMHh,Irqprg^sAM/)8[PD0nf	ivqXѵ+DD
+yZnbt9 #tx
+3us{q[Ƣ᳚s~N\
+0H"
+H"
+H"
+H"
+1
+
+VKTT6  64"
+E#E
+EP/"@Z<[@E
+EE#[<:Z
+T TT@TTx T)
+9
+__&X.$
+ Kp_A;__9~2M@nh
+M*
+TKMT
+@nh
+M(@nh
+M P
+M@ 
+@
+i
+@ T T&DNuye  }
+ 
+Vҽ  T} 
+ l j l l R 
+ ~ufH7Nuuaa uuTAMr\JC +1
+7}yy}}yy}K}yy}}y +
+,
+@j
+vjIIJ# %BzϜԝ̒<LRosxzce%k$ld!|{{tuv\|
+k~}lr>++6YF$&E{YIv['?Eljo~
(9
+0tX
+@]
+T
+
+
++X
+T]
+S
+TgTZ
+c
+k~~w~}}}}~~w~&&~}}}}~&&~}}}}~&&~w~~}}}}~w~~k=====&&
+====
+&&====&&====&&}
+""4
+0_}2/bw_1*S@H2spoȫg  zz9A{ezp{{hh{zqz@ez@zz'L`FF=1<1#WX
+ ]vvL;3lK@+@LV	+<qU]%FO^ePVn`r'sysfX\Rq8dsضsF%KٮJ}3хbslt[`Tvuai4.:e?2%ٰۂ~%~GbRSlg}^`st`an좾]4jމQ@ .&% &%&%&%	YJ	I8/-pR%szw8&%Bpq2zr%!!2.l?A R჋Ίt,ә$j"u/}s-|ZH8		
+H.w_puj}$xll`?^ l2BAAq3l۴l8okmYQSBjtvml	.ڎ\KHqX
+@l
+
+)uAp6wYl4~yUѯW?QYm}ptjhFEPx3|(/ŏ45&ϻąfamJ?jԋ<#>n,iIΙJ\DHհ4.4g"]vzuyia=sA|M5#Mo`Ba,l#:PhCt"]уHą3B̖ڒ/qu=hUUv@i/
::hUyrw>ggjk>pDLUxzxzxzxz[a7MzR?ݙob4~{z+4+4+4+4+
+T@ 
+ 
+ 
+( 
+ 
+
+ 
+ 
+
+ `
+@{3
+
+@<
+A
+P
+ 
+
+P
+  P 
+x
+7ޜr8{M11Mז@;NyydmyN!4p<%0d*TKjjT*6Ld0%pb;4NmdylymczN ;j|@118rz;jN mzcmmNT4o;b0dSL6jcjKSd0<oT4N!ymN
+]]zϞҞԝxxy5___Yt	~rl3/r5l3/  HrvZjG
+?C-T%%\:RR:R_DDDDDDDD?)|8oCA
+/-$",B5|6-GcKdԛӘ
+py||u~w'~rb<!ێjwws{z}qr^r}d0Gة蘵и۩޴r~v~wvyy7-8<ÖCKlwxxwxw|lt{u{ltt{hh[sgshZsr|
+9qYfqgqXf|fr! |bR$I=X,3|Mq&h8 ?4yeRRYNiꏏ]ȵ9ЉОȶ%[/+(yfqypxfppy|3uuu}uut}Hqqqzqpqz,N\u\gugu[fgv~$xxwwwx~Swbnvmvbmmwp@
+
   
   #'+/2<@EJOcgkozBFJNRY^ly.9&.9=AFMQZbfmsw{9BJNRY^u-z<MU[agos"29@EN^px~			 	V	Z	_							
+
 	
-
-*
-3
-?
-X
-k
-v
-z
-
-
-
-
-'<QY]br{&FPlz

$
.
9
C
H
[
c
l
o
u













17<BHLSZ_jp~*@LQX_dy/BU^cir{(-3;K[kqw
$38<AO]fty(4@LX]dltzfAV
-S@?
-i
-lfPzz d
-4T"
-33T&
-l
-ttpK
-K
-
-Wl
-M
-!33)
-33y}}y33hnnh]]]]9/
-
-TS6
-V.
-?
-C<
-KTGTKBKH
-K\b
-A_

RI
-<p
-R
-;5
--
-hnnhhnc
-
-
-}ynhK
-)
-|y}}yy}}y]w ʆiimdod$@~ Kz&w{yyw}| |}xz{wa&zK$|'˒a%%%%%%0:
-.++
-z||zff}lTlTlZ$
-}y!T
-
-[=r
-T ,
-0
-w
-+Z
-+q
-/+VT.
-T?
-@h`h
-^OG
-`E}n\>lF
-
-,*T+|z@z||zTz||zz||zTz|Ժ
-@4F
-v
-]b
-.j]^hYE֊ׅB
-?Gߩмqٴ̟'(͔͂z'w!q=wVF7HJ?xs]C$YPffEffM
-}3CCNW }'
-K&[ T% 		tkOE;wOVVOcZwE;ɦL1H:
->0v
-!
-1TTL
-/
-_^X*D44D*Y_`t!^ATTTT@
-1
-|A
-j
-lnl||}_zob^^bzM<M<v	o_}||gԊ5
--
-!
-`D9>!a>9UG
-@M
-V``V}~d3fTw@t(suwN5~w}+}PV
-o{zF
-(
-rcrr3CC3jih
-'''G
-
-*K+A
-zz
-3')x~D&l&y;;Ky}_Ib	\;COLD|yz|ru{A0%!h
-!hn
-r]EQQE
-1m
-M
-ff}'T6+
-6
-C35!tV`l
-K
-Tf(_
-
-T+
--
-T GCC8=<<8CGCV``V
-:nh
-O:
-Q
-Q
-!
-&&
-H
-z|LfeNzyz# u"=1?u՗
-89\buA
-Kxxtw~BTH
-K\Ti
-
-1
-TMY;/a3g
-5}+
-h
-&/]]1anhe
-ZZrg+vvo@
-ttttCTR
-tt
-Su4u{zu
--<<<<t;
-[8h2j
-%%~w~~w~
-
-
-;`L< xra5
--
-OT
-d
-zz
-
-44
-*<씒<Jڔr
-
-
-@+XTYYE********
-n4ԙ
-4yrrrryy1
-R
-}
-8@h&|z@+Tz|
d
-v<<,l"7o''&B@4i
-B4@i
-d
-@6gid
-N
-z{8T(A(A(A
-<
-{tsoyx2
-OIIgX!!gXg!BT4Ti
+
+
+
+/
+>
+F
+o
+
+
+
+
+
+
+
+
+&,@es{ -:KUcglu|


/
O
V
Z
`
j
o
u
{





+&Dbs~-18>EKOTm ).7<DQYns%:@Ui{"',1CUZl~$(-2BHP`gku{$,2APWZ_drw}+8EOU[binty~	$).38CNY_doz
+<<C
+KFKkr
+=oYB;
+E#E
+EP/" @Z<[ E
+EE#[<:Z@
+T TT TTxTBt)
+
+P
+t*
+i@EXXE+y}}yK
+.
++EXXEP
+
++
+.
+' 
+33y]hnnh}y]]]]s4
+.\2A
+y}B
+,
+FTkBBa
+U)
+y}}yKy}}yTN%
+=hnnhhnqF
+A[
+]]E
+}t	 "" 	M
+-
+\
+
+
+1<0
+0
++
+
+ff
+}yf_"-
+. hnnhCp
+}yT(
+-V`C3}yTy}}yT
+c
+|zS
++o
++
+D+\T2TA
+ ʆiimdod$@~ Kz&w{yyw}| |}xz{wa&zK$|'[[!! oZ S1
+0
+[R
+YWffG
+ffU
+]
+@gw
+ TH
+U
+
+3CC3X
+K]
++>
+TY
+[RDh1
+TTTG_^X*D4
+4D*Y_`tW
+!
+'''e
+
+
+TT
+
+TT
+i
+hh
+
+
 O
-!
-z~
-
-!!O
-Tj'
-
-0l
-  ZZ~rrF!<Z:W
-ST?
-l
-o7F{2yqpV``VV`
-S
-F
-
-}Vrrcrrcrr@{ttD
-
-pttp&pt
-
-@
-^D$$D
-yMQ^
-a
--<<9!55!e11eBBZKSy@$$@!{
- }trrcrSTdJ,]շ49`uttu~w(DB%$AΌy'&qtOG
-	 [0"WS
-s
-wrrcesz!$DD$Ez*6z*E!EQQEEQQE;;!
-zyy/
-''0cGv=<ag__gg__ghaahi`ah-
-l
-[
-`V
- @ 	_$cXy6%6-Tt<
-P@zyzNba]
-@+
-hnF
-xd
-F
-RD
-.
-ip EGxZnyl
- d
-d
-1
-_hmxd
-t44tt`M`M
-&)
-y}T^&4
-j
-
-_gg_333vKR|
-B~v>yT+
-
ɷ,$P++5 !4e
-}yTfzz{ofZedZdH6*Ö)Wbit&m/nh
-Z
-@
\ No newline at end of file
+g
+B
+4TT=TT
+y}7!x!hD:
+,
+JJ4
+F/B
+NPuc]T<Od
+}}|1B&2B
+:5
+/%%
+YY
+(
+ff9>!
+
+>9UG
+@V``V}~d3fTw@t(suwN5~w}+}PV
+{zg
+:
+T
+TR
+]Ky}Hg
+TB
+4$$G
+U$$
+V``VV`
+`V!_Ib	\;COLD|yz|ru{A0%{[k@hhnz|r4~~4`_`R`e9C/R&aҦ4A'")~4Uff
+,u
+!55!=
+=
+T-
+/T
+
+{zGCC8=<<8CGC VVz|YY.:t:}
+&&TO
+ 'LfeNzyz# u"=1?u՗ff
+YY
+Yff
+&/]]1a}.
+MMY;/a3:t@y
+t
+gZ
+!5
+\|\?Z Eԅc*y^H(ym|[n
+U
+t3
+ZZrEQQEEQc
+'>
+0
+4Z
+V``V
+~
+zz3')
+{z4
++<<<<{.==
+C
+9"TM5Ř{~~D;i
+ffW4x
+!x!QE
+8
+8
+8
+x
+
+i
+		tkRE;V``V<
+A
+5
+/
+RT&
+
+
++
+,
+3
+ O>
+zr^``^?*<씒<Jڔ>@(
+
+St
+}
+
+
+X
+@]
+-
+
+
+}yyrrrryy
+(
+yy~w~~
[
+
+tt|z@(
+Tz|}D}}RD,l"7o''${1D
+
+
+!K
+z{8T(A(A(Am t  Kxxtw~̍t|~}:@w{tsoyx~R1
+7OIIgX!!gXg!fz\J$9:lA~w]]w~z
+
+mm))mm){G
+YU3-
+ta
+hN0Km
++
+)vP
+\
+t44
+
+
+<
+A
+	,,		,				,	T
+
+b
+<
+TA
+F
+}t.+ݭ{`T33V@
+tkrcrr@
+>
+xyots{SK(
+
+tp
+yy:
+7D$$Dnh&T*
+5@$$@!quuqqu;;uqf
+K<
+p
+ QEt'rrcr2
+TSTdJ,]շ49arwwvyr/(DB%$AΌ%
+`uttu~wcclqt=hF B44
+
+V
+sVEz*6z*E!!$DD$
+7T-
+R
+
+5
+yyC
+.
+@h<<<<o7TT_Ldhaahi`ah
+/ti
+VH
+ԫԫ
+
+]Tt.;;<:Z:3}|AP
+3CɽNba]
+0$7o"7l
+
+
+@
+<<y}|zi
+z{RD3$$DRip w
+
+EQy
+
+1
+0
+
+fM@
+jmq,4[
+@XtxmihbW_)RK(
+t:z{z}R%7tC
+(
+t
+zx
+x
+
+!5x
+&%y}_gg_
+
+*10˒h
+`Vm[
+ˋˋˋˋˋ7ߋ7
+K[Lz   -
+-Ty!5z+&m/%t~-\$"WT*nhtttv##                         
+      	      h   3   3  s                              pyrs @                                  "          "                                                                                                                                                                         
+	                                                                                   x @  8       !"""`>N^fin~'(.>N^n~>N^n~          !"""` !@P`gjp  ()0@P`p !@P`p   \QA0ޕR

+	       v                           ^                                                                                                 %|_<      O<0    1h	                 	 	                p   v    _                         ]                              y n                       2                           @                                                                                              z                    Z                                @    5 5        
                                   Z  Z          @                                                                    ,  _                 @                                                       f                                @         	            @                        (                                      @            @      @        -  
 M M - 
 M M                  @                                 @  @ 
 -                 b           
                                                5                                           -            8                                   @                  D           @                   ,              *     @                                                 	     m                        )                 @    @   	                                	                                   '                      D     9                 >                              d  U     *       #	   	   	   	   	   	                                             	                                                           	                                                                                        R	      	   	   	   	   	            	         	   	      	                                                 @   	     e     	                         
                      %                 R           E	            	      	     $                     k  (                  D    '	          	          %                  	                %	                                         	                                                        0  $    .       $                                 P              /          /        :        /        K        /       Q ]              	 
+                   	   ^   	  U  	  k  	  "y  	  U  	  $  	  U  	    	  a  	 	 y  	  *  	  <Copyright Dave Gandy 2016. All rights reserved.FontAwesomeFONTLAB:OTFEXPORTVersion 4.7.0 2016Please refer to the Copyright section for the font trademark attribution notices.Fort AwesomeDave Gandyhttp://fontawesome.iohttp://fontawesome.io/license/ C o p y r i g h t   D a v e   G a n d y   2 0 1 6 .   A l l   r i g h t s   r e s e r v e d . F o n t A w e s o m e R e g u l a r F O N T L A B : O T F E X P O R T V e r s i o n   4 . 7 . 0   2 0 1 6 P l e a s e   r e f e r   t o   t h e   C o p y r i g h t   s e c t i o n   f o r   t h e   f o n t   t r a d e m a r k   a t t r i b u t i o n   n o t i c e s . F o r t   A w e s o m e D a v e   G a n d y h t t p : / / f o n t a w e s o m e . i o h t t p : / / f o n t a w e s o m e . i o / l i c e n s e /                                  
\ No newline at end of file
--- a/assets/fonts/fontawesome-webfont.eot
+++ b/assets/fonts/fontawesome-webfont.eot
@@ -1,291 +1,1452 @@
-
 %                    LP                       ^ >                   F o n t A w e s o m e    R e g u l a r   $ V e r s i o n   4 . 4 . 0   2 0 1 5   & F o n t A w e s o m e   R e g u l a r     BSGP                ! YD
-MF x>ޝ Ə)Y
-ڤhDpjóK*0~71^{+rAPu;.3ռKğ?]:yf`o&d:ٌeDgKR% qH	:ф<Bt]NbfJH%М~SG؉8I
aU-&q1󪫿#`U  WLgE qy:g$8eAV䂒3euj zi@ a=%ө0O\O "3ef0c@ψ$*qDE"(/Jv,^&N?'c-1f*}쀄	)k\eLe86QpfvX*XC;VeP CKWaZĹd?pKU<TlRTೈ$*QФYEeԌOIʕ!زFE]CE	r>sdW*0#QTݘ:b#@Ym̉{Dt!Zd΅S
Qv'xUL8996,
-BerR+5ˊXWNJ _;J%$-nprtǹpLVĪ{@ L"7
-B|ڰ7Jǳc*eKd=x|4!d؋(A`_os[0H^Lpa)1P8SAs6LDɢoÜKŪ$SDRIUW, u@:5WʬNFGgi<YFP`1%RIb
>sµg1{LB#}aD0`C*Տ ؼ'/a9H}d#"4z@c15n@r67&	ZX06Ma]b*ß6.Ql|]x<ED0f'Bή_	'hA3w7@o|/J[s eދ/"RBmBk>&l@r,4 lg踱:eQǿ Z<#(t蒨8	PaL,nr'np8
-`:*C(H2VfS 9jK;ה'"zJzY=5@涷	ad PAiC'%Sd}!ơr3 w!

4qZ,.m#UޤL#	RC$rj72t} 
PP0f
\KT,n\ĕ,D:1 7ZA5EY L\WXhY8`Lc<L	+v`XPhZ5^cPC4`VpRRXiڠ!e\X2-<Ws9Чf6,ylvLCT 9YKA
-w;MW=xDDU9Kudu򵻞	!X/xX0g*܊ݠH(KRuҔEn>NBbMfŚaP֗rIo&DuE:uwzt?3EYzʞeʙE"戧IHse-Ek~bdB"=8/PN,,cp]!E˛A_]YkHFTme俿56;6~Jz /cY	P =Pk,t֮Phxz$N0:k[NZ8҅s
~7d^+q[цEopHG|?>=>MJzW=C~4
-ϑ2"XAQTWv)pHwã0D&Dܥz݉j{YRNYd\̽;eYM>ܰ( d:hU]T+Ց+Gi
US
-9pmáp&,	TH{b`H'I,m<Z0gO+
-*YÂ-;b#he ESDȑ"[v %*(vRBrwԖqx/ppmsq-mN0FF 101LPaƖRvD44#O{6:UsUesQ\Buj[#'I'ʨ1/n;o?]WuJrNZbxyQߪ+9ffrc^mu^"K̚Xm[XVWgٌ$.zq
Ǚt҆6;TNb~=q+#=BQY⺆ЗO*~}SdOg Kx	e!bFP#9u:ZX/iR*UH 4T@Wփ>N\+0cjDߖךt8*ݲ`
-gi3:^ƶS׸?t^.Iʇ6J)AMwD@CciDړEԯW,;\>YmJmP\Gp
%^z'&ggĊ1B^"i_]
_+.s>:Ȯԅ)TFD< wVQ⧌LhKc(	ht]`#9PP"5Eq+3|{}":L+W'~	p8<bꟿj$jm`'V#|b6~g؉7WNgRH	ϸ\7/,w+ƶ?0^prJ)R`"p3
-"7zр.SD4ᰖ̳`}˲ݟtGe')[IplQ֬
-(x[$|d[+	H$ƠF"5<![j#2͞}ĮH!	gF$]9u\>i!gFNYX'2F7	3'qy|JV`[i
6o$whOk0gz[6jG8Iۀ}YL)]#z)|\{񖃭>ogNВf/`zC^!keRFBDtPbUZZf2"bflRyIyGY@
1f1/TMWn`~@
'Ѿ:I-+rE`a	|󗍌h3%'"p9mi <[ٝI@zu}!Dގj0"<S=;VҮQzz-y	[GzXVT
-1)LbhMU{7JQ)n"\RU44Hɘ$
-AB\^^
-	?')TmQ(o$V
;"5_e;rïn@8{v"
ߢ:1͈+ V*؈z'TsH8ʰ󣖷¨]jy	|z{KlDxXya9(kɎRڭژ.apj,B`u
-vA799n>kRؔ
-<像v7|?9D	7G`aacB5PAza\J;k 0fKc58X@/Nؗ@8y`>wo(j^0}G``JU k[@nXg:؉pH_
v"-* Ry%κ1r0H&ʤC2+E|q/Mc/
-njA&rMɡ?]5[9qNe}ᙐcp	qF)u.u`n)d`Z04
;[A
-֫
WF2!,}jQDt9fA2 ݬާ[5+(!DN/2 3`;1cB\zAqMVwWmmČ)<ݳ.9wHlv*%i;PSBQ^DׂLO_d _P"X{#qw۸DF^Pf>)2]8;j\ͻh>+QSbJ3AnI`i{9Bc`8mam?)ԁ)QͽiC9e}6!BƿUzelvZ*t>jBlc|8Ca
36 9NM!jw5Zķoh5!뚲Sr َG 
ߺ:.DfFFpEKҍ%k͉?յ;=2Ʌ܅( P	B1Py8 n(*Dbڣ<cpѐZJ)I&,1S{"Ha24L=ި0Q4TuF-B4FBǄ8~#$: ڞ'(|_gi51(߾U=!bt_F
C$ePzJN1#F:B:p;
A Z1lUMP^m=vJD3y_
-qW0&vAEyU4޽T) զcݤ
	D\#ƪ$9AP?TSFxS>DHK(jczl|K@2khidj0I1:\Ayo8DHҕ\#(jwiR2eCR#t$H\܃ݹ
[H9Q1$-Ps\wO%3(vׅh\xskؓnhҚ׵Aq :Y+ѡ߈@rcF#<ή0z߅(}CA,s5ӌសkUOClml>#S~p=Mxr7y'Cuޏn
-9KA$zhQ"mτ> B8%0{lmp{(3pTfT'hbC:Iɉ2o3.glORʫ[}X0t7ߍdjs1:E}nv5p1'/V['5Uv@}$bhPtjWV&ip/J>s*+.}wdG.f	ML.w&E06l~A;9}Tgk뽡x:jm{z``-BU^9PZ`iH4Dђ	#C `#MR楡UwgP3Y>C.d+!pU?bZ(=GbBpN--*s,	2(1I
-lp]
-E#|c\dJ4n\rіO&nBc{h 7|M= <Vߢ9sD{ְa 
YOTBf^3D!dGh>hcYr#y7fа`sS0}1 ćHLZ(8d$oo
D\b7Qs!^$b\	ƓYB~;XX ='m
G7 f]mC48.zm"D-HKǦO{,4ڦ{HٮF*"0px4'JUxIo!*LTee1.L.֓S`MO+am|V YR'_Ie*8@v۶R8JcK[-"}e*:h"ĬANz_h[Sax*f
-*D4#]U
yA.p dsêђZ*Gڀ%C%W2UU ?~N5r	)گ
ڀⶦkkvjmB^6psc8
BW'JM\h2dU~!;D+$"&kuHr;1	?L84P#3)j07-+LKA[z'."fG.܏
dlKO$ޚ1PWlzT7,xr 
m.8
- ,8
-on[a\]םxi,RF~035/\ֆx L]2Wpvclxfd!Y3QSCWdPEEo]p7BvBb[vCyX8\ӧ:u"^?t:vo"5f4!
-(,8dZzrM׌rXï(v?!@l	SƆivDNɸB67n*

˼S]@<OH}&FL'N$
-5ВZb=l=VWݫGcńQXgA@RASa~Gҧg8>3pCMJ @<Ks'FA2.$'ǎOLbDó;@eGqw2fc*,fFהCmvƝز+P:VBdKwB?H"C cclq0'ʢF_2d̰z<E
-u R=o
-Bc=hqXeE`o6뚀B	<aNKplCdR,YlH+O,B-N&jBlLN670iL9D1, 3^)܇.CV?1@5d >$SMB|,ݷF۶4K}y%T=zjc!9fԶľa9:!A8^}Nx0ʕ07qUN:`t%N{ #m"3
0	>ͭ9lL(ٽ'H?FOEu6Ȣn/eh-
KۅE1\a6D%Зu#r(a(C)(["zZb7$ g
-7Ggv
5A4
-Rl OW@}an.%9NX\9-y5 `%zQ E1ո>,BZdTܸ:cF0+>L)eF򑮮{hR@!j)h1(!D_XX eI<7xrN'o0R[NЗسM
-8CYyu]ŚhzN	x42x^O-	(b@"a@ԴG)cH$'HJC&,~+Rb[Ztp
Q6B2C|SBD4 ~D%V\3NR/JrB@_k9*Y oͯsŧ.`,v[W	@šQ^ -BX:y<6&նS;dbt\2KTpA
-Z+1@P'Bi|j@uu_MGۻhy!NXhF@_09Rq=7Vu!XpA2,JkŬX B^Ƕ XTR TPb<C
,:[RSMXL	/tu|5 
8V%?D
-sȏG͠ap;g
8	O5l Į'_)/
-&^/D"*(9C~s5C俟"2Ac]ac­2{
-"C$4rix 噇l$#QXzH5C+X;d9ҏnL1:S  g,t%,[ƢʛT<IgQdsA&eS֔Bj l'3b(OWVacr	*Je5Dd<|R&_@o8 "4hhi48b	|Vy;A'D;R>3v>: oʻlc'}{_]IaFV8V_WqUrF-{
-^I0Z7zIh|T"{"׊4y.1Mx)=]PZEߏبQ9-!'JU[8V)y4WaʈW,D1
MѺIyZ'[I)>N,8.<յ'0DÚ }Sp~WHYVVFO(Hvo77`Sv	dSqRZY kyKS+:&+8&EgYx
-;!B"0/SE/sA)MXSIpD;L]C4HՇeVv]9AFrv0x< rؕ^DEt 
jBC[c;BR~3|5,d
-wҢr&=@܆2f%"mbk9"h׊ Z{4+>'kOz0
-ĦlP\V)6@i>XOCf	e zCTwgY^0@
y=¦
=(J0x	ǩAlD8qOag.`qa`zoZ#̀oZf%lwwB/S rb~"ugh]l)ga [+&vc~a"| DT8Wg[>b}=eZrY=ƪ<9h";wOMRiUMM,y([yt	RDl!?7!í_ZDA\o~dZ9xeȦ@U ҕ`djJ]
Cw-
U"1R-/_>Qgɲhh$MNe}	ㅵiSu /|ONmWyG4*eZQOD	G>iWA(~YTZ[G45]Ҽ|#ȟ> 5EYA)}QO08vJ%!/d#FHa|*c.]+@8.,*<O*jjj#,40IWp+˪Ia+E>nryzsn,zfE^D׉&w>X5U)͡3A)5( zȅC,, n@>9[uE"
-*
- 9q@LTnUk8 I$+/ KxVܡK9k9+SXDς^	3e2),<lJWt|43섀TӠC
ϡ\mr}3i)d6[-GuASY\d[78)nfݝiRс	_~-bt84ܗWzpUHIeRR Wޣ^d~}7/%ďKrgéMe_Cq~asli\7$KD[5G)p|a9_4
- DDIS`2+^CA7 04(!"Ŝ6"q wHm!5P>noұi,[!F`tl]KM{5ȳckZaN:{G.t$vG9x(f>,6r(ȭjnr¿\5^yaGJ6ꜞdԼxEXbPx
-U"eZoƙd0t-df6u͢^GX1LHv&h[]0%bESAL3):f]ġխt:rK0;?:չ!tV1YJ%0RecZ n@7hN Qqxf0Nt2t!yMQ jE\igdsn]?5JϖT$[O
-;W3;hu 57np+Pq%(pP79BD0hR>֞g͍LH6Ns|HdhѤ6Ӊ5],]6לJT.![a
-"3ƼCgMWq` i0Ws^kҽC< /8)H|
-|'ŒSdlKk42{fYۊ%hv2T5ӎճ$)8\\zG;-I^d4#](ײNCh
-f4,M=@a 	O,ȠMhN&Yh}< 2c7Fq_ہsǠv|pZܦ`=P2ZFޛq#Ո,i摶PruY3Lbo qj/m
 V@DVʨ"tL1AMه,k=ّt^^dYQ`HݢpW#u""@P@i()l]<<I	H)A>3y倿$)NzO@q=|/H@m?p\0PѸ"a 4XZon?n?? eʐF?QRƷ%<RNSFy<
-\m0`ykL᠂.e2e:kľH i0Z
-rɠ8FibėFlXϰ.2rѢĢ%QKuu6=Q6	*9r`4"V_RH&PO_ 66=*'#+
,k(HBx$ƺZؙxo^m{&.[߬D%@4;KK^{n)T$G̈́UTgC[@
-qA2"%)?0;dMT
-gj4oVіKPZ=}aa~	&Szd'<X5h&.QLz
8},E5|tLǠ`ӝAe`
u71jvK
--"UCn7 7A3	P4݉,"DDH[QC3rʸhL)Mn&-_De 3C
fl[Έv5
.kRJ$N%8rWM5IB¾?KHVOl]1 ^#o}p/+ .cIyلŮW*?`sY)I0Ҏ	p`P>IEj(FhOpJ, Xn/밙*WBL5J97Z}zvܬ<HC%#3$IH4YЅ"^&3i$mV|Crc֑)a6 ˩0&en
BLa=DrU?GKK[ʚ?rD)ŎpYtRIԓ~uRM0(~^7A,dOJaM	l}H+P[a|ȬL3~H @e ܛ_T^RO:s(Ohlջp/siK0Ul?AcS03~D^Ӧ
^<N2QRNIbmZY_3sk^D*`N4mciV6@`!p)L>&ǰμBxˎynמc(#ih)q4g'ph­xY;#ߊ@K.of#Mx{o?%eR 1YEdqRzPtv?kŎzhD@xP/0"Ł|n9%)#"RC~2#fhZN̬T!];BsPB-D	x+pr|2=~siq*G;HO^=B*KFG'XQUmNַL UK%zcЭ:oA(:|iev_Fr8Q '+VCU E) I=t¼S4XR̼CU*ENϮQӮcW/RfvqRF̎eOWJqT*	5cXXJF-Q*+<?q
jVG0|i!?݌vk3}&R;BAiEP\-g|ӈL28i@5A8Yܾt
.Eiug(h> " t3bpV&Bx6hE|;O9&qp-׃B,*O4%R\:bu+c&[y?)qm! A!# Ȉ "
-6Н
-i!`Y bΧ	XoϙF/W9w|*e|UL酁yRI^3}Vvu쟳]DXh0-πԈ%8_g
w{/"NM7-
->N@S!ᜪm1GicDAZ2d3Ĥ<|$9xH
YEi]gDl	:%v/%/EHN>Q/̪`*[(7?Y6 #S!N
fk_gm_v bw	*3	;cb.t*-%f'8d#"k ɻ4JVZve:2pː{t`\Os}W8t:4;Caw/Jqi{@5lC߇b`}'F~1Rkcr{C薣@Q0;
-L!՜%R<	i<l	:12,D2n'2"v3yC 0
-Y`Z7<_}~E&n<!9Ƕ*DA!W%DyP&sC/4uҌƪhBэHvhrs B&{$5D 3ORpq>eh ej#XV5<C|++ݘadD#0=PG:tm(J`_5X
-7)s*J(ya+!\@	 >oQ(L	i4!D\$?b
!掀a#iW׌q4lG;Oe3Ad<=#hE{.-4yw$s m^=TD	0hgJN:;4J0/(Y iKpG1{ȗ r
-3.vXк/	'7igkLsK ho.2#	Q]~S,4n㻚ˬe	*%Tm
%FRd`F:̀CS3? ,aC`S볯J>:΢11o6"K.Q2lr\(`\5}TSf2	Zzͩ VNfvi5KNSi|o,Sc,h0@y ׬p4<>x
-2{:A{fȈ..(9+i_V0]p
-fdqbEjYh6eKiȂ /f\o~r`Ӈv7U@ĘBc!f$ۺ[7Jht 4[fo1islNb?ԔG8!8K?Dm *`i@SOSpnt9 \
Cy?"-"He7=@)J!,[2v'֔RH;ͧdh<zfzA<>.cĀaxFY9eBi
eb9<xj
]\WV	]Aô46U+H8z.WbE"q	S7`9G# ͍S"^j.wgB3oYV03@~)HQ_dVm!b>-lQ9/+,lQ{22ی3HbGZoE|Z?@+hvd$S¤BY+0Hu>1Ҋ^<{do@؜pf_Jo??da=S[d|L7cd{3Fyw˪/n_HgiQ*s{
x%,Owyg ^F9,F{>]2<
-˃5\Y1
-6B-5/1 eU(u
-Ŗy`f<jS1.Z@FQ=A,1H+/Q[h\d9k.f@!l4f<*"q$
-J=PQ:#s ""<ڹ{M/{~jxkoi6jbhnya:1@[@:OƑmR:e cEVsW UF|'	ho*SM닩 *7OmHֽW@Ơu ^t~uP:2ɭA(<VRh(Va}GIڅѶʣm}N#وꦷHVlRE)) KSJ<wSONAFX*tadtO
ȪT3`=UD_o
-ǒf/q1N-,@5iɃ\ixءB*xGe$HK:X
-4tyML?}yAP12U#? "5~V~1T^C-9w.sWGS^舣)|ŊPj]AWO20	׍Q|J&:k@33sLhfm/cyƶvόf!Fy9P3ey-1pEp2vj
Z-}!Fm,	$ҳ'^Nt I_R 2DY*.KE餙$Nmw=;a?CXw{C.xRerd
`rzb0am˂XZM:Q6@pit2)UX_)-'y`w ˒JV{ irȬ;X
-f8#;75^ I86!cRckHRd*jI]h?O\7X&,Q	E" `EUͭrٴQD0kTeWA)@TBJ@GTCjr~L
heRp(!ӫ};Ru>٧=9-N_nx<&=eJa#MfB{gJ3<zd lq9"y<s]D6GBE!	dE2(V
ݱAL/f|
-3zz,8ZwYoxFl.+Be&_H|%(ũTjk52T2ܫ ib 헩BA9fHm'>;kgW{;`#X	U|ŧbB3&.s{U_lHN
k):LΆ إ)шTA8B uLra?Q2ꪚ`ULb0DBZu'{jܨr-	=˃eVnpB|Y @NUܨTkF[Q
-Nx	xÀGi@dpA&nr]2%^֬x/E"sZ\]H[gVl#hY+F$Rk'RFdXVlڽ.075;dĸIn0Ӛs4R)i}1/\- ظƊ4Z>H-ߑ[N`S:˜Y2@Hqp4Ȁ;\4V܀vE3嶖}nyEq`B%a?~(q䢨 GH1k
-^R%f-euK8[lߺMZ?\['ZsQe/Ra~@:!X_14͔un%P5 bu9C!zΦrt,8kܭM,Ŧ%ժ4Ft4\+#!/xmd*z݈EuÎwsq؀rj"YNOy$h|BhQp {"(yR	+!On=:9?H_JyB}k*[P74h)TerW$'smO<J8
$=SR* g к@9P)x<3_X/kr_}>cޗ1v3NuO 	PIDx 
ݭtE"ISGuT!
-ezvf K%Rv+ZZst:jac!

u{\9g[0IZ[\T+ƕ
SRs\0s]]UQxL<IX]E\b;+qBH)OI1J`vF*=ws{ 1NײaCA8	^ba+0 D/+\;=bcE7fŴQlohHSO"^_)X#=<E4Jc3q$}v͔J~1kKŒ1a|,LcC LcrsTAb6W=
iy>ԂaAPc=$S4<τmomy :޿i?J
@&!<R)[2Xk!}POA_al(3-+}i Wbq^ EP
-YQDxLy!K;P*yX1B ~a[ :hɟ
-'E]m'X/uy` R}6Ɛ`/KB`P >(V
-z"IEgx$4ETBX P
;}b4,#Je`R DXA{3lΤ
/|pf蓍>/_@豇
"=pAE@\dqJ&B"ߕdOM\h"гsy.5An -(3Xy!PGn>; GxJBp=dOmOLRE*ʪ1Vۑ
-_VҊX3!Pל&YF%_SD"(楈:f_C[(H >).$@ŋ,yLF}ӪfۢA8Ȧ]	]_]::K㋂a쮨:!5b-91qqZMJD4ψ5SIz
%\A/aEE`>;Y8't%bk=f\o<|!dT{C\+20)O9
-3ݗPb/a	9ͯqyEkNl(qJVTe@@~Pj9!;/NRfTjcʁ!3W&#
`R.J3iRMHMAJd?X8-A
VzcB)J7cC$:rZЊ8@&OI߂pXBg+a4pJ	*dR8>9^i09^ېIGceMl<QQi9٢$11ocDŏJ	Q 	Kd؟.J!c dynl-н<kT3
4{t ʗe^S$ wO٪\筑LVy3+
-5ԦeAi-)	,C{5`E
-&/9Ɛ|1FɀW (paƭ:滗\hgB VX$5D/&Tl]`6.]sVg2l>	B<'оs>O1[ 6]woSqi/O/j-=v[, УeQ&,52M5
-J	O,jk.Rə6ˬVq^!V&kW@qaP<^b? ;<7Ԧ =ʌrN)Y.,-a8Q%,\	l  H
aZFEedB}l]@i&(CʄǇ;{e8;( *@*q
-wK8+`CO}tH\4&2ξ$z.0@NGobXu#lc2$|ӕ' $L{PmL$:KG)Z`r#-6%>QBBDMlQBw[eJћKS9O4fų 
KAvQz
UHJw\
w\ll~ݒHd)JJ(=4
srN,% Ā(	b%Y:=oLpGF	^^׫{}%O% 5`Q{ (ʮ=רKz7I7kCA!~BMNQxuKŇAlp+w~W,NʖEd-LUD6ϋ,E+OO|(eۓj4ixehiU9G[O2y]˸ OSŀ6P7j?Z19_̖;S64&P  e$u6Nm ƈٞ_I^1V L#S$T.WN
-7앯po,prXT[1{"AЖE$tY竣UL31Q$G>@b4{@6a8~GdVfu4Oa,.bn/# >i1舞(̶!^"G0[YW)t"ZI\E}Aks0ѤR(qϓPldyU!%P f?a6%Fn7JHX7_x cScM~Pr1Qju}fuނ~®'TeqI^dP95;`x
%:E4ؤ\D>^
-SjIq|eT.2 D9!LoHD"gd\h";Y;\Bn>`h		.s=epN5ђwӄd7r	P5#axMɀ3coLDT
g|pW[l!5zAP _N= b8mߜ!d)B˔F9Lpẗd0+A$Erӄ=1s=tLǴFՒe7AgO8rdM,G`j|N.h͐av2E͋IåàCDP|b
-B2y63Ѓ$-ã1~R3*Cxkk=TO1c&z!ŀIwotb$nwo@fcnirfJ\ƐXK%vwN^p?8,kP_xyIt;
-i;hI7oH7r(_-?oNfZD>O[_tDш<(5оBf߇9Hb'fmhjp{pc
-!|Qy&"Č{9v+02$hb8Tb%X' S\NGm(0*Y[xd[4MYvj.EA=l.S4xExn(b4 X ̀'Db	D.$	6H"1-5 PW";}Yr">U' oG tard2ב3'ax	.bش*k}s_zIgJspc?SB&DR #9yQBwyFc. (8fH0M-H6DwIl.D=<HX5_K&BAr];13'%p(uĿƸu?nv.Jd`#+'.`i\lEMK62ݤpU
-OM3aZ
*+>-iIM{d=hNlt}03aK1z%bfB&RgE*+?(:D%uڈ4MOx04
 [,1}pAޞ
-Ø)47j77N`eKz	1䥶aA=X
-B+JCjAbp |/R=֢2;_T5JyBԁ94ҭsp3鷁#&fs\Oj+Vw!ejK@)9"0&q\K-3@FyO:街`]HC0[bL:( 5-ܘBVo2^&;XCKZ2_B$
-a'Kr!V埴F8	MXE6pl0hQF2_`91pm ԂUW7(;iqV2`_7)ǃ.(T'ږNi
-P(4fo@?"l;y(uItV/ohם0{27[
-
-Q#vnNa'(#~@m޹\(ׁ?3{4"[ @L)bYH;XյՃUG?
I㏽)a0+[ZS4ө%"iUD'\sx }n1a d&pa/G %@?pNFq[uZQ';|nў6& _3a72&c5lZ5'!i3,KIBɒ40#ƈ@X(U4;kCCGƪJcCrk	(킼%ʦBGpλ}N!"uRD(@JH*㾻
-\֛v$ȬK61W	]00yO(r"Snz7
Pf%EK=yG]6L>h(H$_+h
tfK q5Lvhz
-pi8UI꣤\#+h
-X':ÌJ3E4u<^nyy7ݑg˱3o~+$[Xh|ӑg3h!N]m.*!z3Rk04ld66q?k?~d`pIɜYܦu1	NU!Rr=BPI>O7?b4u&i5	}{n yx
-<A1	PKaEj$6h
1.Lli#Yu2Q>$Q")zEly@6
-QV
řbBA*Zv[,3:{bȥ4Hؓ9b_,U|"&d߂[1a~䔂at Nh mDIQd?_^c[-؂_/X|S8VR1[8D^XJڦ.:	Һ*80zs%InmM1~{7¬(Q*lb$BY4`@oaG!Lga;k ~9W 7 1*FNYi7,вBDeOP1*ҵx!</yAg+^T$@fN8ߓ⅀0J
]GY偒Ttz qew4+r+=o( T
-o..&Uz-@LՋUJ4UJR$t캵n8>LɄd%yľXL.簐}X[ڞ ک+\wՍKs?Y "c3vGxL/8:M#q?A=.|M
-9n{, S`N*o-ⲽ|6Zrr"ɉc7Hopb7IYH
-as'va,@N̤e]=TD9rq'zz2 fOۯeS?)l3[tg#5DƇ~zQ1,xȂca:!bѱ,(z/
BjЧYSC:#
-e>͗(ޕ\n<eH3Coio\}5TK6ˀɗg[%$,daOn oz
HJklݠªy.Ȃ/8iXFh$y/Iic|L&Ym3ۍDeAd<lt4+P(v:|ƀ;e UP .<} 
ye'> )!,"[
T),~I'n[L#b0MO3<a;1pm7"˴*OB=Y"lTt,BX@Cۋ%{Y$)",%Xf:a)	YQ\d_9Ȗ"pR@-I0C'@85`;&kꋎUp"bZyrNezij؞ኇ4O#.SK%ggOt	ly %haxƟ։ |ߐtFŞ*M(OdD11M"hAtۮ=]xw/pVgl)R\'jBu$H^S=o'~y\ӀSEXCH'Iݞ65:(׽Lh	\\\ڃ^	HPEo*#R-nN/}j,T9
 Qe֋ CGYXè) NPDEO	eD\ų4K	ĭ?\K'Fnxg&B,15
=^B&(h3}i,$uq|P텒\ge֬H ]Bkv9Q[P4m<# kbdIN3/V[2#IbyƝO?vQ£Ua+f$}:&-gLH!P/%ܼ
-Դ@׺H2*_SE9V<C@ƸRha8֦)*읡[wdF#3TҼ"a!1̋n#0V{*f.@(SMClTcX$+
-1*GFZm+
n1 $vKAJG5ȟ!W"ೱh  *x8ulZ%Y	'0ޢnF~o[qm i ђ7@O,*\LD=C'ZR%8
-OZ{c
aVV5:<ZC[_=9,Y@4'p`F\a.e2Y*cbX e`gY*4cU"s`"4llo>G"//β\¿0ln&
-f,Bnh=4p+5R)ھN!x*379œ{THHº	UzIPi3ZMwRSbu͹TD C*з =%BQ}[`QfG9cj]eVMvRG^d}`3$Q{rE<+$n-rΐ_z+NC	~1:PSogf84H 
-vBaؘz\
-
	doX8jz[IЦy_mZ(y_Ա|vFaJaY84KԻ {}"dA@J
P^_$]w&礂|y;6p6ԝDrLJs_	sVGˠ5>; 5~NUZ)`o%DYjP8 D4rI|&w@!o.nrE^^<jiRE&"CdT^6/AhOLfԃ/[	6!nɬ@iq?:t
-\2><D_EVٛ2ĥY,?&JY$X*/Cs|		Ve"V<tgwja:d|ǰݝx4\c}TX`NrFfL?UfWF#|epzdQ;:_~JϷvV|@Z`ϡ*nI&XA@@4]MxZ,BA&kBYVj>b'R`Em\O%\$`3K"?.94hlfbZؘkըb+I|ZEhBP0PR,5#w;orˆ;8Θ,6؉@x(P'$	Fsߎ,	Jp=7q|,I J/<{;rZ(5Ƅ;B]u<rB<P0t5<Qֈ /S)$6)%1=Rl$00Y_$tTd`QhvVfN=={8#Uչ~
%s%`S(!
#wb0J5`qoC0 Am(BT)9P-zV`CSz1?a'S;D-H
-^f DFğN 	
X8M+1zA^P_	/ yY@o\
,6/Bdh|M&8($P	mRΆǀôzד@ǓT]_)@
-r ٬U` 3Z
w-	)&ТGi('߻Z\-"U#Z?đ>5p1Hf,E,/fI3)f_fVNXZ݋(C&-4:7¥I#8P*HsI\y4864(H
-Ob
-(dUm/Y&98
עm)Ilin_U4Sj,>[ƪ	/%K䢎sH1~rI۔($EHa
+es9F0/7'iJ~dĖP>3)h"IF]bX
NO!9 ХP飏 `NE%qG1˝:/,Xr#Z+wʺEǻNRX͊^e5A&
-f0 nlKQ[Wq]3ӑ435MNQsN/[Ye0Xb+6I4F$70=˦N
CtGؼ+vޡQPƈcaU1 3lx?⎗teZF[=Os'hlCrSVLۜexdxxs?iE7G	uB.d:؋E/m	
-  -E8<;f뎈?WIHjڪ?L.g9bt4`é1ɑ@!I,Fُx'0;b`A}hKe	/*Cj+ȝPXq	)-6~]ld2-OL>qN<3w{q
-r9q5	W!No(Bfj=j/ P +>8cqHSq& tI|^vSF	DNkLE_R֍2#ݙfg=k('B9Ĭ\CVa)>D^( [Ƹ8!gSpg׽"q	S(R00EؓXHgPTvit}vV38&bQ #h4Dnw埍IO^(.X8 iQkANR245R.Jw ɜM5tz@^Z۪m[m[i_:* 6K맡H|zBЬ,A1fS`$
-<.Hii}nqGmhH`1p;ŜY~q ɠxVTd^ԶWy
0c7""S#zfРhC}dشnMw=DDKP)_ñ<mؽ:+\ZJ`;A}?'\Ѿ7+GH~(H
O cBH|
-06C	 mD60{xt"ZRg<C{Q
-VܔᦵC(fc;33(˥Ե=`UA
# 	{{JB2ʢ!+,h{4Z"@%-)B{UXnws	BX>AOJ
.-oՄI`<A펝֑ (XQvݡ^a={]XR&%9Ä)ŉ4=ۛ4WE|`8tlowC*Y3xp%
-m=;v(0:`	fc
Qq 0熤eH7
-+OJLj `Ưj\i4zj$-U
?_7Ah1kC!{5ЋXZ[mI^:8 Fwk8G?huvPpH6bY^ 0VVH50έ+q2#T`	 ㄵ@πJLƃ4vnh>+dWu[KɘPz>Ra:rJ#+v`F|^+`z4TßaggL]rl&62]9@t&dYl&$'a3sZ~J#&	JvYC^Ox!2QI>Ke&&<Sꨄq7+<2]Y 912(c~*C}qO-p_cZ+5ݤtLekN!
ChW{2J&{RP*%8a8'F*nscoQqSHp)Orؾ
-ie
?yR!>IrWwtsp@C`7+=ܺnhm^ށ:m34%i;4zz32	
K <RL _S%/
5əf(zD'KXR Wxi' 0dĭ8SZyVa -7#\{p;uׁXɷNYcްKh#,=S1
-K\3p+X?kFdn]q3F؊E13R:Ch!΀"\&w>He5,1ÆGÌaxc(a.2Ѝw98D!SY,#<=V -C
ՀT{4VrT|DSc:;YQ<f]ũ4|e] }nft2F8̟?\To%WnҀP1	P훙b+$
z<mC%Q XH`q2ddäLW3:8A4>KAX:UfT.$XT8\<#7[@|meBͨuV۴e3B[8ViXi#,5œAh謳Wj, 3Z  Q],«0lCVDڒ$Q7<Hc`N@)nX+0#q9N
-Pփo{-O4TJjwLJv3Srx?P2n31cìLa+MB2E^/e@&OgPGNd}^rP$I
-~:0 0{1zK H%=#Q8Gtcl#+NT1*H>\a~8TYtߎԒi=5LS}=ADczv >ArJ!,%R~xM
pQm5@ df1|Ũ&쀕qi4x=R!¨2ow)8C "`#;"hgsP=hW[gӿ0=^뢬1,.]vpq
VMf߉BN`<`^'t.̴WY7wd='# YÇf޶K	CN,@kEԐR4H	=)D`Z=,r:
I5'T7kܞ(TLffW+lZ;-<b]	yAdXZ ,"Q9ƌ:Iz
-	XmiG2}+8ikƇ+_3hp4Eh xNf\Wz\Aʩ(J}y6'|p
׭XxWψT"4("0=.=5͹em
6tjٍlӢU>H&,rϋ9GP߂M:e8˗Gj~y5-~PIN'b<m
--s'hX\M-hNA`2
-{8b\\CB'^h],-J|漃G@cz$2D_@FLǛe[*XRX֋֒2x
-  UHPqR[*v	7mA(gp46(312*-w&ID:-/>^:i|eB PU.{$6{\@*t 
,Lv֙;B;F	@ztjE┉5K(r!fiĶI|H(,ҁV}q3n؆ِġ(SkPuN=aqR`g )@T̃펖90atW85crtיev]y?0*uJF
-Y܎4ląZpv䥸C_'-0/5Y5RĊRaVB4KL~$@iK+>3w4u?._2MK@E9\G8^3#
ڐ\HqNRW 9+.-4$O;8si8voLyUlo
-Ó҉fs#4j1+klћ%"t̗b&oIRj}F(W_Sm&	b}r x]ZBFEsuWi}BygC	MuZIB&TbX09==.ɱ9T%.hȯ3v ԢJRrM1 gmS*-4@#\^O:(;
-_oῇXE`pk7 i=D7RhLQ>	֥nÇ@7l#o֌w	a8Ł"8&aZ(/*)	TzáC+PPWc@H: .SrВw*SګX: %[%Vz^H?E08OD݉j|oT
-H>~UX: PJc-xi2`1ڗ<?լb,10bK~#Uq_&LUcZAN@N9 igX9j>-B7Bzc0J?;\'{ArѸ`U>E&~& ~"4S9us2a?AYUbJp@}B=,Ns$/hwy/^WWUמDfPHYoZ9
MB[H1 ]5G"R4hC@/tKx2=e fd.\C{-ugWH6$32L*\f8aT% 7s`VYI$e_-Uj( Ҭ|RJ(#S{d&$?5H3X]k*E8)1
%)HN8 ˌ'h?/(;B:abxܔuH`earHL${Ckײ1a(&m7@^;"&-O Z@Hh@:%*PAܥ$+ ѡya+e˝	UIL, UsoԆ.O\Yʲ3/#8aOdM
-;1RpquPʤB2S48RDNUu#9˫D,Zu7ԖB퓨AT-VIHRa-zmgaO+ёV?LM	X*/)`UU;ws yh~T,b}EB} 
Cr/,ɻp,o^v@=]0{vo[4~0LMej0p*I"i0]o2I"""
-\؟`M@Phbi^֙r3	x(ŁfR>m`k=Pne*S<\.И_Uŗ*1kOjb6=C*@kQBcyDePBCBKfv^8h[Lx=Xǵ$"Zndi#	1da+{{Z<=;ohO=$AV㒝E4Ar͖mkn&5cve-8M	-(77\>c@/ސ]^.,^(W`:Aϭ֚&9WxP2ږ24P;j=*]#f^LE-0{"Mh+ ob,&MI1it%ˏJ	cXɊd0v$=9\s4Qs<)3ez^		^OնopzJH[ٌfDjI8r%ZSq@{b RǴ'2M#$,ax_6+檘3)HAgԢb< {02:?;RՌT0C"磐eUOdnjɍ9Qa{nQqyoK4T3Sw數ʬ~cJW&`x|rX>v4`k,KW J;L''F ZX-恭W8w*$0&2(61YJ7œy|	"
-k)
T:ܽx0ng+
-<`Ծrs٧RQE칑~+>|U-iL{ŪŊ+Z 3DՙQ^BW]Pr5.YUE'$k51Y0mq;G&9X[~Fb̏=	ئa2 B/H
;Wt+NwFg1u)ˬ:@ZBgf	&[\Dgg )
-j<e/uF/!*jdN;3%>ަa.)H'pߤ kNAw5&K^h11=O5lL±'l/$+(izzAhTL.ۂŋ@C8c
ƛ^eC
v"as2bXF";b6/Ë,mT~][L=2R$@+Y@pW
-ymf~CX:~T
-5
JPB,6wָ˯FHM9Axa %4|559||r-ppO 0Nfgz+1(=
!Fvo3OqFтc)#踥½PmW>;٩]Y	SC"YG@TF~6^Fx^?ʎ1l
 3l/Qņ֦B$>hTA@	}`3	 Ӣ kx&\A^+>aM^u"
-@[	dC]81O籰7!m-->\LFDDĈCշN	bK7E@nlb'*ɕ	R[T&*)c KF	/`E#w	ۯ޴@R<;,(~qaRMpE&9'
ĄC;LUU0g7^XS{et)"o@"qfa
/.#b>CxI sɓrsGT:a#h+ F!N@)ȝFnI<Zr^]9/) E艸:ޓl^䇖vͽ:vےa!ݻ$$xIX:	zH$8B1X꠴f^>wuc3qIixk{Єc{mcFK5/f:n`
-V<Ȗu8k[jBԴNPr+:1<vhsN
j
&n14`~}Cv,dKJ$#`{FfZKZ`rs֯DkF5üusP ի
-HoY\xvljxjTl:
;!tJe<VBWtH;)X;0I{4MCwly4
-!Q0UshV]- IY\
kJ/+MJstJ&XiGʡ_a^6h3kzVb}^`rQW̱Hz5.7ۅ_ύTCaئ.8%ΩL͞sZpP-Iwv!Zխ,MP8c:5rڢ)jTHnڳ	(b/)AzV~9bSmlVz>jQEe	gF.6{&F(䰂ʶs״h AYFMM3	$
-
-=f	lN+h$^2ܾ\+Zi-@Wj/kk-H =0gUni%k1`>HK\3*K|1N@67tN&[MEhd@:owIce?Zs	]9^MT`KxYX	doXPu%һt`>Fîl/-2*`:R>cE> gbl|bw4h0mT8]-)$d'%>o(1*^EaG֖YtFj`>\<:W^'fb
,erʏ!\}5qGr͎XfțlMgM=ZT?_cJ:=rH$*5t򳐷8'(<&
0=
-3r^I.TύaR7KZbc?ڛA< oP,(9Oe1Q,ZXLN1|p 
-C/2sy(,DDN$cM`OuBp1/*{/:Wdג
-rVxW*3~S)Q;;'5ZxDn2pc	Wf)y+\NXöNJ5zl^ 
X'IK]`Xe>ܱ?^;JKw/gZhO<z\ 0_z>ώvGbmIh'kDObHWض؅e.kp%'I BnN"n$_P_AuH+-@=?vu&{ޔ`?N)K"Hp|
-B"E3q)+Ґ;Y vzD> '2ƈe>>:uY;Hmh`Sˍ`|C<jse&y5'bgV%."Y<Dy{Д^0nXn&tx6IA
-GEz!-)z)X]	r,9XΏ6'h菁{mlI7Ro&iBN/^n΋f]
-HSy]|м S'`TD	JD@I$T)2k0waԄ'*W[q6NyCʺM1)*K56kyMbn{4<>VqVu9K	Z]<#a }
ck6Wjއ,,dN
!M>muV*"U43OrG %x+`xJlہmhS0A$0+
-G/mx*2+ (mmn.4>ޢ8<Τ1sVd<5S7WIHP@g!RCx
-ق`Ywޘ	ێKꮕbxB~ #Mr/
-EK
A8TL|ks\v l2A9w ]HtK k՛pw!Iq1;gbtQV*'瓮^[]_6-mעρȲj !oi.cM MoDD*|96(+?¥l%"zɑ#C(>xckiQV	6+-KfϽZ82;8PuPbM
TaZ6}਑NXDUf?V[2c (*0J
㝙1)LvU<j)^Y	"95)T!@DE*BCya<Co\P1Uls좾MYD
&=62[dD7QInl,wkP"GHJaegf!M䣱fpu֫9Q,0dTSFni)1`͹w-%
-RXB.5̒=2[big!m3T?<<5lnω,	lg,>΄P-<x&UTY ?WgqѸ
-͝H,S324o)W!1IӠ:etm3+KD=M6p2	+dЫPpUr(;!Tj	KvΪƴurYs54jB*D]d:B~A{h3(@iny<aݐI
XďCۢcށThDfBRf!pseɇ.2$=O<J3zCBN*W)q;z)Vf0Gft Uu:ZBT`]K>V\)-G]yDY犬CZqA8
1.;5I=r㌉8AYh]/J{2F@.Z&r9dqyaHeQϑVר(ҩn (ˈ뎋<<"olqU+?$i
-ݷ͞K@(Jvm
#~ɡ
a
- 77x WLV-bjT7/1bJ%ky/6fj"xW9UNV'!z3(U0aYb`TOt)(tWIi`,wh(@yoDȚʉ¡NGRSrpR ɣ3Vg6I
M{@BH n ܽț,O\JrJ嬙M2IGdXUӥEOQu>lUnJQhRa;b*lWHmVIJBjgNEqt-^͏}'آ䢦Z0@*B,^%s
(ɑ<z 4T8[X/]D@rM<!p=S4un8SkP^
-T>m~驡_Px], 츻(dW-ycI
-Aދ3WC9g@0jҁ@mA;\+~3s`
-	QA@2IQg	kK ,dC@u~ӪL2Uuqg
$BN#DE{C&5k㯵;R_֒[1uĪS/e:nQƋq;p1ker;.	SCxA/G
vد2cX-P `F(ᛦU~܃k$@%F2 B<,t|b$ٓbE @	lWV YT@c]%TO0tl@b3R=b1C"S+js~A`dcAn<GKL~w qZ2sN%rrM_KFkR90q-YdmP& ȓh7$"ƌ,"ŨǔP."h̰w`"JA>R1/@+5@8k
-1"%&!l{&˜[TDQ1itire)XѴ1@kFh`@9 Gk(CM
-IPp3	Bxg D-z c.y)ȽxCжз['X.d50AL4GL|_E4|h<?fao>W2Ħ\CnLQ-rFE}I~jw@0jEOs%yQe+#s	C1']i!apL69Y5Ծ=0!Y"Y8i
-T4e/sTL3sOjBz-?dh9xΥ3,9ЛpC[Q>eN^(Hqqe$;C2^֘v^Ej5,O3,@LOh7eQ`t=M *J4+-*'b]~՚_Z4׻_kmf3W¬$᧢jug#"_حpalVě7CL9*3&k6W4}۷BmP
-[a/i"7co@(!Wss̗EIB^HA*`z/$6[7w
p2sGx9{C䮸RFX܋b4n0ٱ9[iB87+Ve,~l@{ 0 =jfV36mA91:o6w\ ًaxJ6<MӛOu:Rh[ApˍĈ|Bnl zf5+ jOC伳IK)%ί\hRo'_Xl%Jys>Z%.馝ĤNáQI0 :3]Ϝ>}&@KZ'5(
-$R1ly',d5|WAҋ6P/ڦޕyoa= q;hJYi(nZ㹗\n71Fum	>mAf
oO]:v ODbQHݹpށ6톈;Xb'~A(q9*P,@3	~jlv<6~":~Ź"N@ݤ<V^e0O5Bk!,6siS)q H?&`'|LY+?NU+Dk?v7B)FLa0'
-(FbyD2"t(8Vs֊̲[$`OB6XjH.\%ˌ$/f&Ja6BNH	AyMBa˭ͯ^D
- ndɆ
#xzK!hd6|
-dV^ ބԘdum ː ?M])H< 
 nXɀr#g.eQJ[*HDoX
-/k@tC<+6[Fg*r	; ūHSYU&Zu%Q&Fu:@{΅ڭGth&.dJ)ӕ4)S"o.b>
5Glx)"1mbd}st4` Sv[iǝ\KBr d\}M~6\
-y3kp=`ˎV`l5~\=G8ۿ|`uMtFtV9Qh-<+,Hೊ;%\h	ҢU9YJ3aQBC8qBC>.x>~ˇ~?p"by&B@Wx`c6B<B%G=(]u>"-fo&	/i/[;>ca8pt/\5zq9TY5Kw!#]RSs	G,]zXm/E /Ҭ/j"-%qA|E4B>o9H>IrʺȪWϩdExbjyđ ~i?{^9Nw׏2jJf`	8|#o	 l~T>*l?r]"wЈ]QUp;,=~!wB{SX.*-">%(T͵l1]9v@{6.-M~=`URzj5Hi!
\a^1ja~g4FiH6rY%wbu#bs; ?_jPmspZԴ̤
-OӨ	CcK*z1,>ՁQnh	>;ԂG!Tc^*Ѹ c RJMb	+|E
Y	B1˔
Ng}U|C$m46}Z9$̆s1oQ_'v#3%a%5sTi~qS\u]v%	J?355@>;]!㑱X,
-5Cq&'fxPv4	v_v(bcn}g| ;6?cx
-KG5rSd	:\_=L =,ˑdDnzH;7B8<ثq0hY;5r}9hت -Ƚ:;P۳<yF
-W>FLŶ728X_8p%~EHm;HMVm8@\Ʉ]Gil#]v>
ӵL[ÔC	
-Ăv `L_E1#P~<o"Tѣ=r
LB)'3b#`Fĕ";=Sꕳ24aW=!/mwL󶛐g!uI4/	Ǫg)֝VGobh?%X7 VG	Z V<p514H#=ᔃ;ۀ,2B>P,!e` 75PHOڪ*#Ҷtt-J|iZΒl*bNǨQV\.fzY
t.ǝ{HQP7@d@
-%S@(jl7@7$(XK*`d\ki1p,D1#1^5I~SbYwe'4^>EO+ W.9eFkD_n

8JuKf y@hzCӓ4앢21߷	 YF+*GTs"*%,:	)=17bs=ʽR#WD\f"W@e􋙿B*
5dj=L^!ox4\(^A=Ï'A}"w4REtZ)#5MG@PncwgEELrĆҁԃ_SbhX
"INLBBG4mtJ@b7A:Q=K/H6IVYh! DjZZCω̥j8A^5UD8*ZHOwJһKxvZO@	A( |\܀s "gM9fBVaq<٤0D,KVP4gnq,vl,}Ƭ|Nj7<~CuC;w^Uahҕ;0U*%)Sk^#L5c-Rn1#jIԍ~hvlE4bzǅHnE/&v×S jMoW"tfYe`(`^A< eW-8K?[qM/{V˿z}	!t
-@#9Ml}Tyh1֪IP사S":}ld>8{IIO7Q?G8x%7x[6bEUX/ TfF-&UQ^FtK&_kA MD/+sۜ7w{?OO֝GudP۽%$kQUn *V>wwaX"H?'cÆ
-z%Vs9ca/(3p_l7_AS$\pT^s%;Ayj(`>4A`ge,>K&cK7Є"h@AA
-CQ0`,!/kavOwBB<n?eb[`]`=z?nDHȃq4<rk4w>2@@}blIe#h@I9N"I(()NUǴvNk%k
ljMd` 6HuzAZu$_l^=m
F#iY`f~<=`Pyn(Bހl	@$(hԫr]JtF4d
R- 9ד!G4j	4K69VPDKQ8h	٦,@jðexG&^`hȝ	C"Gh@L`: 9qvlRA
yv"VsSCz4@ Q h?ݒI]B]a?g xKWDDBp_:bF6/T!pH.)xUp/9L<T`pǜQ2"
甥*lQż`7SSrnݼIɦ~ [H89 
-i
-&C4DϮdEu)LhIVduAsol_(F9KtXA@,4Y"x4lF\;;dp2	,̪ҭ˳Zstvn`:!/B/-~BJ-l(K^iYFV++1=*`,X뼈ã]Zz*䦙`u)r
-G e{Ivv/:	m8bT Zӌ	]^6,k> 4x`K=O#=îLʴB#F\RFh$j9E(
-5hC:U /^iT $J
-p
<R4/A'qR_aȹZ@#Ⰳ֒^#pEW o@0qsx!2?RpH͵Ghkyowf̗L5tڊtB&U28khf\(
D"Ds;x/4ws4Xr$Ib@O$ɨ#|'/L$.3#3^vQ6KCQ$F~-;/IotZSQ"bCtPrdVvpzo=懪AY?SULQ 	H !K>Kn	!ulhuG4!L8BI]/FX:5(M!`A<.#͒3\<FeA
ݴ^:djGW]U&_=
'~[q?[nwf?爛Ð1ucm-]qxa_͋#B"8^sՉwymzҶ6t[hD4(+6t
,]X(jE7ĤLzz D]=zTCmu?0V/LfA2iZB=]#
-19*ErsN]Ҿyu+My6di9r
-~.)c"ݱ+mzLCxDl-f0IjYԁ*~>img%pTJa!>IS*{X
~kN wL<
1_8{%5zEB@qO2%	Uo {ұ=PQ29Y0!b	;n<9T54!>}4О1U33RNa}bŕ)jv*^nl%KiV "Bjkʦ͓>$,pƉKg ńÃU!q/-
O%>*[.`mj#gcU;ߤȒx^̑le\[LĐܖ<w|ЁdWȩ9P_A[_xOl(o*ّN8Yɡi)^Jvp}=jx3U(.s<hdH`-ۍG)K,=F8>totKp
V<Os~xיJ0B
r6'`&Cc$Cz
WFT-.Rtе:?Dx}SjʗP8_[H|4%;!&;?=Pޕ{VwW9fO`,Jȹ1Rǖu	U]%nayD8BeQl{giz7`-]pd8Mlu18D Қ?DLG{PJ1HB^JQ
-<8n_y"픴BAП,
İ5xN8((a c p񞎁"{MqSBRhyܓEh_\: rp81)ۆtC,	vj6u[KVʹV-$B{9y2`"P2W
-~M(Tf6V,U-n'{cAa-&9>s>\2DJr$$4,	Jãi:i"/N?9j]?D`T	w1ӎ!
-: cFQ)`!yUzJN\RQLSVդaʉ[~B:0PR&[$ؠs.{lŮZu]MD5j Wyp2.	juO=}L[j\?Uw\>DGӛPS)QxpyXˍ/6SVM-BixQOjcnJyl(3y?6`N,>uJDbMC8,S<J S&%!x)#r8
HPf$Ǭ
|76t b\=k_mf`!b^ئ1S1c
-Yp
a@ɷB,~!%ES=ЂˑFy.r!,s(%:/d$5<(!ּ`͋*@$w8caX1<][xJ}&.7,,#+c̈ZQ1Mt?ݬ1;@Ǹ:)ρ'
-үmf12$pC!}*VTe C~KҬ+L̀6hל$`Wű)O'eJtdlKz=Tͦq"\>QG%n0'3)w=!/fLeqG=eܟΞ_HuX~[XvүB.؎kcnVVfs*	鯑B0q2ZfmRvVJeЋ#"oDÈSI`:jwT1}r85Y4ưǨ`.7
-O&V$FT_qʀ,Sk<ou<=m۔'$PH/%l]Ƨ"ejHgJ^:u10h_2ݟ_E8EsKs+5K-º)3{0V9%:=CX$,"B*|n؎a$Fr2HZyb
-R+E]>Q

PF%1en,Z04f䆀o_'W΀x751y[SF<a\sa
s=},|䂟]sG]r4]nguHܗO[R=7d_\\$8Jk_pRnn-G5ӤEQЭa:>={WW+m {ClZN0;\
.㟻*^d*ѤI
y.\&i:*O_@!;٢
JZ87g5iM'z]}, (ym"ǏGU_ $*LyQTܹI2-o`G!_ODm̉iJH 48t)fI`=bYOշJ]%-]w
-0 j	a]]TZ H,]ό0 ؤ$K$6ߣtez9sy< A+j5fun+x08bgq8M>Uu7\h׃d 'k&#רZ]ɹB]t;(	L^AboM攞g9r
,Ө5)a\(Up8D 6M+ieN c@ZU,e<\pL*
c 6ˁ'/@&I4:NFծՁܺj5=fd-O7J;2wj%Cp×G4^E
-H`/	V"=`@IWx07Iuj2fCc;kVztC^W$iwI-@bzUwhH
-sBծLCk5#JYNPSwwTK{>,!8KPSPٿ36T.XpOyu6e4赜lIp1P `6*6<>|)7V1+ĜUIb/QÅR?4娍jTy/D21A4Z FGLC:uƏqP~{19@:/MYI
;`{]>	*hbƻ-`[,JA&
-3Hk=@%.YF*D2(d޴둒-Vw+$آ|*'%{K@0&\(KRgMP^rG~s?9Q5Jh|B(xȣ#AV08h{2  xD&κ4WcxRNM=79IK(v@@6ƪ{P!U7ulLO2^:!n^]rlXAp}] )O#-\m*Ҁb^B&"K+"L#&6pZ!!o#)лQML!K\mMv4<>VCNe?!:NMea7YqyOBs˱37؎B0?"0Jlʂ"O^zZRp%Q WC2bld@h|6%yPRu1
g,Sx9 JeOK,ɱ
xJSbSBR4.L6Uดk.6{> aᔹ%
-otϲSԦhI)A9aa9r8ĉץE0QOZsFGF
-af"=[,f{ql3ч~AatC]z8[WE;meR2ޡF}1G-2!˫p۱t @yR-N|RtC#r2ױ~/bwμ[+D )LwKTCCW
-Llg,qHByU
զ!VVj'_6+,C11;8ɏ7Ȭ"\GR%  pvk7BD뽱ecqBQJ
th
-b<i2펳f@'^-Yoi%,AI/~)rs$X; (&uP~$lI	XР4m7u@2M;qHqu- eD3oyU?ݦal="Y pB-Jy>iq(P
-UP@Ki	t;u׻TqbXہ:+|UmF@)Z^'E1I`^dU|@mFiL*MӏOcd7=K]&ECMIsG`$+hkBvDYVC+!zѸ)-Dig~P
-6co1k7G
-(D#b6]IɴۡhacJ>Go(ߣ*^H&bökhbr,m@4j%ͷ|"gm}-EADj&d#MVXAWpQV{f=,klXe|H E4FrXpm~1f,m;׃P\(Y8r(> PU$OwD8IMsh9
^U,MhQȒ,՚ozbXs >ڛ4Vؤ(WJh[Q\c3e/ޮi\wT_4# 8447,6[M577wt,I _{K9A!H7"lmɈ
-Cnd26wcStn.$Ih'ԸO'{i!Z|x.60Ur߻et~D"aރvd<8VepE@p)z6NmBeqEBÑ)嚡)!惡mIVg=*I%lp"2tJ4HdO}PC.(-,r2	dd3IөLꆰsJ/uXwpFK tmd]ŗ*}8ngOvZI a
-J!F'UR^y/%`p$
堍eSv>XPKǆgB<X>fH>
#0(J
	p[:%5;=-*,La8jTA8b0ݹ(hDk:s,\JFׇ0L%`^~T^"xKWHqo$o*8eAF?
-@B|sz^xJkÆeb?d>L(-sh-
-M5	q"YY
~*$
-
#5d*]2]0!_-,N俺Rb% )wrPInxs4d)q\}Kÿ!7BD5b2-"hICzMwBxeuG[xx
KWx`?}	ow"
7ֳG%fJ-E@rD=MG]A[(`ŌJND0GjgPnZe%ڍjcʊXo?ŌP.qtiij!.љPy=xJZOwGjHRߥp@4m'N52/c,Io?¿efB]X	S]g
2/13C
-gP2`:an
->Y#YOOEM %9lOМe{V#c4pr7"}Y*8-y|N4Tx9s)GK<)Pt9U*}7ۄ*\챙,4j#v}efY iJ#(gX=i;lҋJ0I{'pC")Gqs2~@w^sxqB uFR5@༏	#B7[2b1!cG9#zq兵юĪysPE_U8oI<	T;KP]ĨgTY9I1[1O5k
`@A446mNrd&Yܥڸ_+Eh~,.;r.DE7m5L:lIz:'[DY蝳;9Ks
-'O jDՌPM!!b;,

-@!dTF}=М pRochcU^ok@ة9BA1D|?mf猠;ݍ?fdW^aV?In+&
-NчMfYkM)cc[3EsTZ|SKmnbIX4]~1~
@?Pˑ'%hAx{(eʮ :yE`ƯÎSWԞ!6hCRi=t>ǁu`GHAxuQ;FGybm]W[',?#L@x]h}O{aUJU1L(	AlnKO Ϸ@kjB[h3 F3pgt2zDg4<h#d+ ٰAaq,9&
-H&<͞=88 xt謅\P@Dǜ?4'BV[Oz
-`g*ieHJLg]
-VlrS"a9oeR1mtE~WbAxc)**qCd9c4=CYSMծ~X?_<`Wzv5A\TI6mMNtXpFAHh wňm*=-\zq4,s,#H#}b2uiJ%VVdjNx{.Q*04(jBoL3p4]>^jLR-oIC?ɯ;r=%JviM#{w2y!;<};rG u/f
Sy:צߊ?K|WF7sl#I0<Z׃uIulNI(m-7\4H-s8mZag3lcGADROfA+8!+8郌xV&"?{r&fز]!f bW	G_giCòzs,of?qr3JP~DDDϾuf%.UUy63PRUCAߢ^P]C@
|fd[stV@給5"@aFŠP,ab" jY(Ph#JԣOXz~Ki>+/O>
-o;\P$ПN*\lH24Y6e
|#гabJx]0P׆#WoEoB'([.-Kv<1jEEI dZ*2Ie$)LF{l50	Z*GI`&e\Ŕ
-5LWfOcyF`xBûvNRY<#U ]PcHLs,!'9th1hWgDɄNp3vT9BD 8Շ,A
-dc{\ɫXEOKP2}wg(-uV8%X\N)6w3X,(+f&滷-B؎Q-s/$5Awz%ND)lQQq}RX*H\O* s֊ݜ(£*["%JXΙ x 
-ȑ :??4&EB
-hX!
-'
P'ÎY)w\8:lz
-բ hCՕLTW?,;$YQsik!c(^bJH/O7z$SrT&U2'_*沨bV)HuY`NΧYGY10v$%-ld3vu(8SO09fN~;$Ȩ]102ɚ!
-n\Z_Aj L(Q-+*H WR K*vtD,D05@EW=w1	z͂+oOe)P2&-qβf)yZꀤKu-5s42OnCu׺:C{5u\Ձ,0̀>;`#Y n
-AE!vu"A;{@}5Ad. EҺ{C:$OMJezT)g2IX~@Qqgl/wxlz"1!g|5J©q	t:"ᤳIn|HE|$;EnE_/ .@GPɶ)p	PTo+}J4v@YFNl|,$xM%!(3E'FCfER("2ia|l
-7#X7FGZQ@>&0/+3jqw闈
-rH=d^	r2^XPy՜@w+NXX|/i6=\WBސ(1")0]FD#	tjDcݠ|?GkXТAGwGirb1h~!m)-R/JJFl_ƌ4	ԉJ4!RpMᚖZD`7zs̟b0P_wrjy6fKSyĥAgYThYwN>	[k6/f]
-__ƌ-tAG(G(A㦭~&l^(V90SpI4WMk|u[zj>DG?mGXtE':Կ',tdm=;h~.""-Shxzt/&CW<-64_bNѕ=ܶU/nolv\A?yzN $1qVBOBt1*pȭ"
-`~:HFA*NҲ1^E陭"uJQOL%!Bӷ1o	CL|?fXA xL2j<,wY	*6QtBi lg.^l[`p-HH/?Gu@5,)啛W 4r(}.*IH  FY7/T0Ǜ*U悀"FR쑏
;yZ+#}{蠳0dYLTP]pЖ.D\BZ!N2?"A\AUHͺ)*&O-v|D)Wٔ[H͔-7yƊVƣWQ26Tbf/Z	P,NE;(;5E⸮A5lO#:i\BQY{I#a)A35H+ao@337Ќ]*u00!©viS/$n9 /
-Qֲ}R*"@ZHmBGIQ5/6j^kiѺs"߲If!nYI|8ءk ^(Jԟ͘vPWvl0!qȵӦ Kug^
-<.w
-E6Ug+{fDN^%`rt1c>Y_V"_,_ZQal{@ЈIUbjynOX E=0(ԘFG	P<kcQnhhd$Yl;Tq<(	q ŷ>B(#P	FQV0Bq-vPt
6R8(RI1#/dW4f	HR&^6򈗢jOɄ\ֹP$'z2NE5!>	72^
2I!2&P!r8NYh_Q=[awf:!P-II8@;&X	L!a\	5̨$V6G3t!<I,9uu2S2Tg{[vjK
-It)I{-H%0cd	$o2z8W9Qiȳ \;bSG
-Խ_7P_U-{(耔XErHO.Gi/Лţ\㾗ؘUDAPpQ/kvVZg}1
wˢI%u!U6ҭT)'L{S'o K$^pʰE_BH'([0$Ud+8<w
5Χjrcq0GMQBڣjǊ.gLwۄBƓH)N7G;rx32<Rӵ+8#$@DvI8Q}
	Zv]=u%%\L:O99=oІ5;	i}ŭ ٶHac3DځOS \.U_<y9c*H @/IⱧ^z
C ]BU(MYn1UI?`M.
-\6:<c.Ѭ*32aa1K#?@ώ< {ݼ(,ByA'ңoi	ǕQ9A~Bk(*R4G>c[BQ-O=A%"SbWZ,*6_0KPt$ū$GZ5Xqȭo'l-	\:D
H,qFP\:gp+ө"P<]`@$""9إu,&p\YIX6 M"Eoą!ru@Wo򸓙[a`HK 
8Lf\x4lґ@^=80	
a
-?d{Y$"B@0^)DkSj/1z'}<$Lf ۝`"BB٪JD
6'!=ULQL!w&[AärZp |ʽt
(#kݏ}KÂH[eՁ
-|ZN$iy>˺%j&%[Uq1XaB"*vTgC K;  m
-QN(O&h#!!0w< kWSWy,QCK[R/UU<BvC$ DO	Yup($f>)P O1<gDK_!rMcz	QLb,8Q'2y~>18"& hcu/BI)!ңƦIu6wHONC؞.pr`"vg3W8`ص8:X/Q7:UF_OuN+mtlxB_ڃQUR<k]]JR5_0ArUEγnTUlȡ,>Hۼ@ 9n-e`)"5	B
.P-h+YCߟn|.{ﾡ=U%($˒G3S|ЄJ'g͏بE!הD+A)hr3rV*5}/!
-'QTߑlZ(z{7`2E͠J>U,nIA2!38cK "FS[7ʼ>JDF.{Wr?jK\-͕> p#l"װ-$)itW7  {Adt,q5,~S+И
-&CorӃpة, \#Ǔ҉%]@P7VE'1z]Z{._SP֮?u)Y\P4NLO恒	>wǱTCoWe}\9#_8͝6J7A9
Q1meTۯ*]#eq}7Wl9Pbfj`3=eN}6QqI΄r(IrZh̄Bj6FwH]fPd_680@twW&KEFF{z*w`V~2
-,`졢`GDQyodk40ݲx\d*t2C՛F!/@3qFUC5ȦJ4mM*y4>b5#&LK8s	)Rd-ִY5ܐNq2low~ls$k":LD
)S $/NA]*Έ8Fv4W ͼ
-?ꇏl̯KÆ
IF@W.u:@1M n	g\_F@S^Nb8QU$-"̙!&Bxw%V!($#vV8МV_X?@,om%Kkbʲi
-{)&z~V	QEe4tAvQm,z@|8'^Irs&80-LAwT/)M/R;pPK  \8JqUD9
?	EᅄM+? a
-C%xv3q/M`jVb!
P΁ .IB@1 ?~BAi2!ߌȾ$~_	p<VZG (J@$"	S
޷ȪtlۂW|Dh5ة-fIrh<WZ1!\	t}L.C̋x	okhS ٿ
-Pfm;@4҅R6 j)&ױ2¨4f":ͮJIIVD;%yѶ.y[̋ErBGFޕs$83gfDSiu+HSNΒQVzf>5itWf81Lm7ʊ}jN .sluKx
VAf
-&	rmr<B6s<<pi$ĐK*LNxBAʵ307)|G4R7n0^̼^icD*2RpE%6$R,ZwPv6%TT'[hH($h9$LBbeB	Cv
-4qGCXA'  cY3@DDsD=vF,Dۃ)ab<NrȆLY:&0(F*`i?޲(T6$#h/:he 
-N<b'4|LLbaʹb@\w)@\2d!HX/9ż
tv<A`d@NBr5 ѕ,T}U{@l%ѢEd
ؽ4UG)ݲ_g ʝͤbgS}Ҋf4.G ,A_g0{PeHD,2=h9=>>Tt +_I2<s##q''sIm{W/x9߯#bC
\Lb*|#ve8nR*d"死dV
-YB_P%.UWt\e0#ȞYR 2iF_unjv䞊qha"03 ,Kb L
2ݡ'X)/ߊc1@ #l
-$Ϯʵ$3Ғ+JKŉ//`ψ( _l-G-ړ4kM+Cnؠi/kXTƗ"d OyI*
-K|av𳞋iC1ĴB,YRŏ6R$C"e 7A)fb0 Q*T>l0uXg+	{^`B?$s~Vo 3'A2E R,"J9F+-d(v˸M%-h~
-lЍZS֠3Ru8"2n'h̳ƣ8L:9\󶨗MεÓ]Ɉ{S)UNkP/AOO2%_0 z`Tf;m\zz
-'-OIA,21xѠ8?N^wUIIȖ8웙xdM~ZOg6`bf%W'u`GS!%ٔwMńl<	!.݂N
,W+Wpx4jEw6"g"ikD7m@0߻]=;};w7Le3")e?7S)Z%[k%A sJVKdvˮ,N@n
0Vǂy-Jj;cu>t:
--u.m]
-zK*V	~.;jI٘Г_ N-6aza^):Rh4n#<5#羣$C)XƚbbLc~G+֒ T.#"gH"̤8Q	 ChWIb=w \ip*63x&>tgojv}(>Lc冘JmG+PQ+tH'L
(>{j<8DR
-ylG̬X?r #* vc|:Tb}P#}@m2ΫʺubA?}M~lLQnt;;IA1E&,spVaicԹNs\ۜ֬{-A'ŀM
R%FkuYC&}:/,Wb N.ApMw50 - 1%'¿{	bK7pn~90ېums:B<6jiP͛J-(fլrj!&hcv+v0D锔!/b9gբ%1^!-
-lQ>wY5ãRj~_
-X [Dϛ
\?<wG7l*ỏٸM}_fzaӞViae$UWq%bs'i@$a&l.$?YV7=V4|Jjߎ/{ѿxe.'+++R[&=sEF>.),JD">ހ [JАUBՀE9HVy'^e'^ 4;H
-N9=%۴Nx	{rWZX"GSdAY5Hj~;% Vd#lzbE8b+By<p0~Oom@v
-JSMoqճP!x4Hz iT#
+
Tg?H!iּ?&hƟG_Ājxiȷn04P0xG(i#&9 =nL:lLv()+Wjd:67Uh
-<TM@D{,TAewH'|*[hX+AbτȂ,tjhZ96S0P"cwv"r+C4?ޣ|eq!?+r
ulpD'swUP(Wl86yGAhcX}G[|"aᔯ,$<EbmuM}/L5 i9F$] dְX$F߂4xZAc¢t87wt٠W1Jz~6Ԡ%UXF
k^Ppûߛ=^gWY Vxl&ѼsCsL!t20'@Vlxb:$NYPgޖ3STT !?77
[bnޞ
-U6saY%S*:C qJBr@^LԻ*("u
GY/]ggRB~ NQWSk.̦DT''JN%Յ쨀٢K$W*vձK7;96mD	[kt^FcA>rkؖeFxYro$" 3XJa\M'H}h&@*[gtXݹLJ=9Mˡe  8#͊oRpqR	b9P"(Kù4&:qq7AyAGы x«čD} 鑋- i,+	 n '#Eɵ~C>8OݕPBg	 Xh>evjI ѷ
$
-- C&Is$LI\p!yCtyo
-h&>uIpl;P3nvgPQU1JM0_Q0VNP|G^.PX~˙a8Iwhҽl0<	rnEF>9/تV(CqU!&XRT%y[6bM`V9
-nIFu?(%fG5Ӌq55C_
-䕝Y1iI h\8SB%}F%dK%[0S!) mLfG	x} @D$l7"9yC%B]p:Ɋ/95$ 4ЭYO0zM4VFYa_PH-kCgp^sqն
-	FKDrÊ-fFlq܂T}zN7⍖Q{F'sgiVi\_*f*16[^^23)QQY8}.<2OO,z*}	(
qdv0{L* ;3_ad{W|7YGM-jH!}`W[ \ELO$UρbʼR3mNǓqM@JV|040Lcoe/t{Je1^W$a7"QM1\QEtԑL
֘PR9}ls.,ϞUL%&o?Ҁsgi~Fq7z}L91@=:ޝg|q[,<К/eKh
?d"Z]|0"X"6j0tI+\^aKJ5^7y)䎪NQ~r;3J"W,ʟΧh%v|w$'KlseuN{dϰ9U@'8M%]<l0- zp:jb,vz
HuHI*+2?Pԓ29=jil,PuK@5ɏF>Ǜ` -Ƙr+Mx#50("}*bFbH?72ﲸӺᰝKP7Ժ:&^7kH}+bI Z?ߟx@Z2>>GOXse^o-9 0}6Y+v} &>XMpw%Cee
-lLE=s6|@!BOFb$0#H- Mc,  ;e0ǹb_)Dӵ(졁%;FuiN։:]U,{IwN*(MyB:A`&Q0oٙcF-cEnm\8 iG 5rlٛ#gFCLdU0U5]ZkܬAP2.m_]*4{0pZL^Z9A7l
o/"o]LQ
`LPە	
}`@N+u& W N{hqgGw`3ڟs|?S0DH8:9@!D$	T^7 p<zY{פ	:'6hztt&8L&}/?
 Dc))9Ya4<j<قgH'NA<Qo{
 /@Q}({y{mzɰd@>%8Q1Ώ;yM62U$ZQˠ@闶v9{Ї2>(xL\- ðZ=PJaxY>ie@
-b$>7ȯq̒f	'IaƁ2MR!!%:mݔ||l
E7#'#mtVfa[2)ka#Xe;>jhAbBAU/!iizC"{QgG<@d:0	Ĉ*wG(Tvc!-KgXre&4Xg?
-#r,I JP&+"`AP1
-}/S5wB>}{HT!B*$}q&/jd}Vsŗ51OS5ǬFf#Jîq	
H:^uUYk8r\	l5*UPj-kos@SY4@fFlcUiKrg<W*N|'%pe)7B$v z"ʿl;"Q'q
璞|ӸTv\RCF#\(YE&Q]Z[0BbPbgU0wyWuK%j*BL0ˠ*nZЕY <ͭw@xby Eopy*P>J0*p3"!XLcG|Eg~d_|iIF75
-SVy̞_*w	N{&vN8(C3D*,eiկ҃c3U8oL7&XR(6@㎿Z(9G:j:8
/F͋]w@;cvYYl<pbWЊYwobZC?4mҿ!{
ӏ#(ry@zkͲ.'r\nO<mI  B6ڿym2;dR"-Zq6fW>΃VFTT1@Cbj>'큞uK<Lsr.=
- *ySsAF
AR>9!hG?Nf1Ngh$)6HuZtK8	=Tw9 WȀe,g(͉h$ߖ۹{fZС\ދGM*.j;w$t94,ԩzH\𛉷{~yTUN ]uxB՜!3 ܘ*OL#9j&ȍgd!l/c#DpGO1,jrVo1d5zlKrIv6YÚbG
uscGjc@|
+A(kdX**BW(43p`mY"
-AC6`JfQfGU8.F
(xrDv߄3'
-~FL@cb3^RmXC`ZFNh	3n:[hd_~~,NWPewӋ+pQfr&$^`7-xxݐS78MOV]A)%))T{ÂAE}U>%WVJ?>gǨx H$0m/BfZ̀1jz⾭ @@,;oIknI<05{?̐ʓ]Xnk]9~;Vo`鞭x~F'0cPUIHv~4`YvpHpg!_P~r`Öy(&~qk/͵R{r=չu] bF|R;"4PMIR,
;9TK!4WęR{	xz@@RkKȐ#)H!̆G 29spT.
-p|ƃG.=pC|胦u1ÆGQ
F2eq&4lqh#i1FpPkv
-x)PxEǊ(4QG@*UصL"Åk"CBDI( G !^$LLq:nDĜ	':gp\faC6
R,t0A܆6VkbhOO=Ng@	@ @ @R`"3H;@A	p `z`#pF( ]A~
2SA`
-!D dh8(0@3@6` d  S|G̿
-Uǟ9|GWӟRyw_}WK_ G^_k>{+#x.o=W~fx޹w}tdL~]wΈwoF^R{/ϦC<lCpz+NB\8=T@ />/r\nԘ/$mbiM#an}2l.Fs&d"6&H$a*z<R@4 nMi$;8LsB*CSPZ	B%	d#KB/9֋$hÅh\m0
yzMш-|~n(0-SG+x.ݼ4Xe{v+453]y1^!3͐ͲY|D NN߽ؿ_a/Xz#a*"@!>'E\kDpV fܨu;͕XOl_/1AF"/rf'#,`_CF$0쟚4lߪRp{(/ؼH*y$T(
Cn>ڇ}^MV%a!堌`ljxՀG<~m^kPh
	Iy	to y 	5kEV \hG3R	. )NPHi5٢F- 8MU|6!kĽvdBM$~bǒ5+V&e:dV2+7o	
'\vl¦3n'::oTgr#xCٮVYN|l\rkՂ)G)A: P]Gu>)"R[C
$Nq`Pd	9^If˰_*	γ$<6tB"Jx/UUDE&EaR'\]4\p_bsSnQ@ i%Ⱦ /8Cጊ٠8{ё|NIzh%0VR+l|0BtĔ˄z%2IC,u:9G1J*6/3i4դYNc	SvO#74[$;?Hs4(P>%p :[7HE:KM-gBJ^DAL̥GCʬg)ȄXVCAcw7
--ݛpACťe#|yH6:pn^/);*fG_bަI=@3(,
<W"fDn#˦|>>"J1
-"~:_<DvnIa;"a 6;JrZx?Fxd6
-:yi(g.}}MhOV=xSܱ#wrP@ hG5K
 SC*"q!pQGתβ=tHF<!M6%Qc{s@*]q
5
o૤y T]pB 8	ļD-sHPjg5IqQoWZJ|-X4{,FDB`5~Eհ%ԲJu&o>pyج`аeZvna6	DyO%#W1?8Vt >rV̙O hdJ-㯀J0..ȰYoO	Qi)O@VͼS(mX}]@AŒS;7p?IQ	X2S5PCZDd-4KnAp
Ȉ%s>T>i$e0bI&
-m*,㰄<1/z\)uBɅk;V M&`a0d=Q[	HN&kt~hU;Aߥɖc!}_V4LT=SRHCBD1Dv9 Y_9XZ`##+3#a,1\"h]z-#AOStw֋epaudٲtBVV0vioo%e$MF3;5o]4xmIr狅L+X~#q^}n2 3t*vv
E45l^0]X33\w :7K~i!I&w:vn;1
y ^ҟ%_g -b-{BҸB-$T>ؚBiiP΄z6ߡX/!U"!TB~dX&
}4IX,srޮoZ] =%
-!mYfS
PRRc:DH"a0|;?@aMą180
-4M9V?`>aڛ]Nta-FE<AV#:ۤكjj?6k
[p[4ԧS<NXAhXҼ%\R	j}eRҗwg
K%z)i	2JK-`_
NҥzTqX혋iQ%\	nhs=Ki J9qwpN%γN\7 2n9
nIeمT
-f	;2dyeWCxS$)SaTUpG*pHxR<'Újr&?)$WV'"D0HYEw&        
\ No newline at end of file
+n                       LP                       Yxϐ                   F o n t A w e s o m e    R e g u l a r   $ V e r s i o n   4 . 7 . 0   2 0 1 6    F o n t A w e s o m e         
   PFFTMkG    GDEF  p    OS/22z@  X   `cmap
+:    gasp  h   glyfM   Lhead-      6hhea
+     $hmtxEy    
+loca\    maxp,  8    name㗋 gh  post k  u    ːxY_<      32    32 	                 	 	                   '            @       i   3   3  s                              pyrs @                          p    U                                 ]                              y n                       2                           @                    
+                                                                           z                     Z                                @    5 5        
     z                                  Z  Z          @                                                                    ,  _                 @                                              s                               @         	            @                        (                                     @            @      @        -  
 M M - 
 M M                  @                                 @  @ 
 -              `   b          
       $                                       6                                         4           8       " "  "  "  "  "                  @                  D         @                   ,              ,     @                                                 	     m                        )                 @    @   	                                	                                   '                      D     9                   >                              d  Y     *     	  '	   	   	   	   	   	                                             	                                                           	                                                                                   T	      	   	   	   	   	            	         	   	      	                                                 @   	     f     	                                              %                 R           E	            	      	     $                    !  k  (                   D    '	         	         %                 	                %	                                         	                                                       0  %    /       &                                                      p @  0       !"""`>N^n~.>N^n~>N^n~          !"""` !@P`p  0@P`p !@P`p \XSB1ݬ

+	
                                                                                                                                                                                                                                                                                       
+	                                                                                        ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,         t    L    T  $    l  	x  	  
+T  (      
d             l  ,          4    d    p  H    $  d  ,    t  (        !  "0  #   $,  $  &D  '  (  )T  *  *  ,  ,  -  .@  .  /`  /  0  0  1  2  3d  44  4  5   5  5  6   6\  6  7H  7  8  8`  8  9L  9  :h  :  ;  <p  =p  ><  >  ?h  ?  @H  @  A0  A  BX  B  Cd  C  DL  D  E  F  G0  G  H  I  J8  K  L  Md  N,  N  N  O  P`  P  Q4  Q  R  Rl  S,  S  T`  U0  W  X  Z  [@  [  \<  \  ]  ^(  ^  _  `p  b,  b  d  d  eP  e  f  g`  g  iL  i  jD  k  k  l  m@  n,  oL  p  q  r  sx  t  t  uD  {`  |   |  }  }  ~          H          l  @            l  H       T    H        `      @      $  \  X    D        T  X      D  P  ,    8    d  \                    H    x       t    X    p     d          x  t              @            \     ļ    Ÿ  Ɣ  0    d    ʨ  ˀ      ͔  x    ϰ  Ќ  ,  ш    ҈    ӌ    8  ,  ՜  `    l  H  ش  `    T  ڸ    ۔  @    l    ބ    ߬    l  p                                       4        X    $  l    (      `               	d 
+ 
+    
,    ,   8   (  X    x | T  @    |   ! "x # #l $ $ 'h ( *L ,T .L 1t 1 2 30 3 4 5t 6T 7$ 8 9H : : ; < < ?X @ A B C D EH FH Gp HH Ix J  J K L M N@ P@ Q R SD T  UL V` V WX X4 X Z Z [d [ \| ] ^ ` aH a b cX d et fh g h i\ jx n p@ s v w x y z {h | } } \   l t  4     t  8 8  L  T         |     |     4 x   L      X (           @   l  t   $   x L L    H     Ġ T (    ʈ ˠ   ϔ l d  P  Մ x p   ڬ T T   ވ L     < H  $  l    4          P l   ,  x  p , x t  d   4   4  , h  P 	4 
+  
  4  < , , 4 0 8 $  8  T   | !h " $L %0 &H ' ( ) *0 * + , .$ . 0 1 2@ 2 3 4t 5$ 6 9  : : ; ; <( < =4 ? @ A C D F H` H I L L L L L L L L L L L L L L L L  p       7!!!@pp p       ]    !2#!"&463!&54>3!2+@&&&&@+$(($F#+ &4&&4& x+#       +  ".4>32".4>32467632 DhgZghDDhg-iW DhgZghDDhg-iW&@(8 2N++NdN+';2N++NdN+'3
+ 8      !        #"'#"$&6$ rL46$܏ooo|W%r4L&V|oooܳ%        = M  %+".'&%&'3!26<.#!";2>767>7#!"&5463!2 %3@m00m@3% 

@
:"7..7":6]^B@B^^BB^  $΄+0110+$ 
(	
+
t1%%1+`B^^B@B^^        "'.54632>324
+#L</>oP$$Po>Z$_dC+I@$$@I+     "  #"'%#"&547&547%62V??V8<8y
b%	I))9I	       	 +  	%%#"'%#"&547&547%62q2ZZ2IzyV)??V8<8)>~>[
+
2b%	I))9I	         %#!"&54>3 72  &6  }XX}.GuLlLuG. >mmUmEEm>         / ? O _ o      54&+";2654&+";2654&+";264&#!"3!2654&+";2654&+";264&#!"3!2654&+";2654&+";2654&+";267#!"&5463!2&&&&&&&&&&&& & && & &&&&&&&&& && &&&&&&&&&&&&&^BB^^B@B^@&&&&&&&&&&&& && &&&&&&&&&& && &&&&&&&&&&&&&&B^^B@B^^        / ?  #!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2 L4 4LL4 4LL4 4LL4 4LL4 4LL4 4LL4 4LL4 4L 4LL44LL4LL44LL4LL44LL4LL44LL 	        / ? O _ o    #!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 8((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(8 (88((88(88((88(88((88(88((88(88((88(88((88(88((88(88((88(88((88          / ? O _  #!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 8((88(@(88((88(@(8 8(@(88((8 8((88(@(8 8(@(88((88(@(88((8 (88((88(88((88(88((88(88((88(88((88(88((88    y     "/&4?62	62,PP&PP,jP  n #  $"'	"/&47	&4?62	62	PP&P&&P&P&P&&P&P      # + D  ++"&=#"&=46;546;232      #"'#"$&6$  

@



@

rK56$܏ooo|W@



@


rjK&V|oooܳ        0  #!"&=463!2      #"'#"$&6$  


@
rK56$܏ooo|W@

@
rjK&V|oooܳ         ) 5   $&54762>54&'.7>"&5462 zz+i *bkQнQkb* j*LhLLhLzzBm +*i JyhQQhyJ i*+ mJ4LL44LL          / ? O  %+"&=46;2%+"&546;2%+"&546;2+"&546;2+"&546;2 `r@@r@@        n   4&"2#"/+"&/&'#"'&'&547>7&/.=46?67&'&547>3267676;27632 Ԗ#H
+	,/
1)
+~'H
(C
+	

,/
1)	
$H
ԖԖm6%2X
+%	l2
k	r6
+
[21
..9Q
+
$
+k2
k	
+w3[20       / ; C g  +"&546;2+"&546;2+"&546;2!3!2>!'&'!+#!"&5#"&=463!7>3!2!2 @@ @@ @@@`0
+
+o`^BB^`5FN(@(NF5 @@@L%%Ju		@LSyuS@%44%       f  5  #!!!"&5465	7#"'	'&/&6762546;2& &??>

LL
>
+ X 
+  &&&AJ	A	J
+Wh          #  #!"&5463!2!&'&!"&5!(8((88((`x
+c`(8 `((88(@(8(D9 8(           ,  #!"&=46;46;2 .  6  $$ @(r^aa@@`(_^aa    2  N   C  5.+";26#!26'.#!"3!"547>3!";26/.#!2W

.@



@.$S



S$@

9I
 

 
I6>

>         % =  $4&"2$4&"2#!"&5463!2?!2"'&763!463!2!2 &4&&4&&4&&48(@(88(ч::(8@6@* & & *4&&4&&4&&4& (88(@(8888)@)'&&@      $ 0  "'&76;46;232  >& $$ `
+(r^aa`		@`2(^aa         $ 0  ++"&5#"&54762  >& $$ ^
+?@(r^aa`?		(^aa        
 #  !.'!!!%#!"&547>3!2<<<_@`&&
+5@5
+@&&>=(""=       '   #"'&5476.  6  $$    ! (r^aaJ	%%(_^aa     3  #!"'&?&#"3267672#"$&6$3276 &@*hQQhwI
+	mʬzzk)' @&('QнQh_
+	
+z8zoe      $ G   !"$'"&5463!23267676;2#!"&4?&#"+"&= !2762@hk4&&&GaF*
&@&ɆF*
Ak4&nf&&&4BHrd@&&4rd
Moe&            / ? O _ o   +"&=46;25+"&=46;25+"&=46;2#!"&=463!25#!"&=463!25#!"&=463!24&#!"3!26#!"&5463!2
@

@

@

@

@

@

@



@



@



@


^B@B^^BB^`@

@
@

@
@

@
@

@
@

@
@

@
3@


MB^^B@B^^         !54&"#!"&546;54   32@ Ԗ@8(@(88( p (8 jj(88(@(88   @   7  +"&5&5462#".#"#"&5476763232>32@@
@
@KjKך=}\I&:k~&26]S
& H&

&H5KKut,4,	& x:;*4*&        K  #+"&546;227654$ >3546;2+"&="&/&546$ <X@@Gv"DװD"vG@@X<4L41!Sk @ G<_bb_<G  kS!1zz          "'!"&5463!62 &4&&M4&&M&&M&          -  "'!"&5463!62 #"&54>4.54632 &4&&M4&UF
+&""""&
+F&M&&M&%/B/%      G  - I k  "'!"&5463!62 #"&54>4.54632#"&54767>4&'&'&54632#"&547>7676'&'.'&54632 &4&&M4&UF
+&""""&
+FU
&'8JSSJ8'&



&'.${{$.'&

&M&&M&%/B/%7;&'66'&;4[&$
[2[
$&[              # / 3 7  #5#5!#5!!!!!!!#5!#5!5##!35!!!                        # ' + / 3 7 ; ?  3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3????  ^>>~??????~??~??^??^^?  ^??          4&"2#"'.5463!2KjKKjv%'45%5&5L45&%jKKjK@5%%%%54L5&6'      k   5   4&"2#"'.5463!2#"&'654'.#32KjKKjv%'45%5&5L45&%%'4$.%%5&55&%jKKjK@5%%%%54L5&6'45%%%54'&55&6'  
+y T d t  #!"&'&74676&7>7>76&7>7>76&7>7>76&7>7>63!2#!"3!2676'3!26?6&#!"3!26?6&#!"g(sAeM,*$/
!'&
JP$G]
+x6,&`

h`

"9Hv@WkNC<.
+&k&
+("$p"	.
#u&#	%!'	pJvwEF#

@



@

        2#"'	#"'.546763!''!0#GG$/!''!	
8""8
 X!	
8"	"8
	          <  )!!#"&=! 4&"27+#!"&=#"&546;463!232(8&4&&4
8(@(8
qO@8((`(@Oq 8(&4&&4&@`
(88(
Oq (8(`( q      ! )   2"&42#!"&546;7>3!2      Ijjjj3e5 5e3gr`Ijjjj1GG1r        P  2327&7>7;"&#"4?2>54.'%3"&#"#ժ!9&WB03&K5!)V?@L'	
>R>e;&L::%P>vO
+'h N_":-&+#
+:	'	      + a  %3 4'.#"32>54.#"7>7><5'./6$3232#"&#"+JBx)EB_I:I*CRzb3:dtB2P$$5.3bZF|\8!-T>5Fu\,,jn OrB,<!
+54wJ]?tTFi;
23j.p^%/2+
	S:T}K4W9: #ƕdfE     :  7>7676'5.'732>7"#"&#&#"OA
zj=N!}:0e%	y
+tD3~U#B4#
g		'2
+%/!:
T	bRU,7        }  %2"/&6;#"&?62+326323!2>?23&'.'.#"&"$#"#&=>764=464.'&#"&'!~:~!PP!~:~!P6,,$$%*'
c2N 	
+($"LA23Yl!x!*%% %% 
pP,T	NE	Q7^oH!+(
+3	 *Ueeu
wg      a   32632$?23&'.5&'&#"&"5$#"#&=>7>4&54&54>.'&#"&'2#".465!#".'&47>32!4&4>Q6,,Fa w!*'
+=~Pl*	
+($"LA23Yl	)!*<7@@7<
 
<7@@7<
  pP,T	MF
Q747ƢHoH!+(
+3	 tJHQ6wh',686,'$##$',686,'$##$          / ?  %#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 &&&&& && & & && &&&&&&&&&f&&&&f&&&&f&&&&          / ?  %#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 &&&&&&&& &&&&&&&&&&&&f&&&&f&&&&f&&&&          / ?  %#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 &&&&& && && && &&&&&&&&&f&&&&f&&&&f&&&&            / ?  %#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 &&&&&&&&&&&&&&&&&&&&f&&&&f&&&&f&&&&            / ? O _ o   %+"&=46;2+"&=46;2+"&=46;2#!"&=463!2+"&=46;2#!"&=463!2#!"&=463!2#!"&=463!2 











 


@
 



 


@



@



@



s


s





s





s


s


          / ? O  #"'&47632#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2
			 	

@





@



@

@



	 		 	


s


s


s


         / ? O   #"&54632	#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2`		

	 
@





@



@

@


		
@
		


s


s


s


           #"'#!"&5463!2632 '
mw@www
'*wwww          .   "&462!5	!"3!2654&#!"&5463!2pppp@  

@
^BB^^B@B^ppp@@  
@


 @B^^BB^^   k    %  !7'34#"3276'	!7632k[[v
+
+6`%`$65&%[[k
+`5%&&'          4&"2"&'&54    Ԗ!?H?!,,ԖԖ mF!&&!Fm,        %"  $$  ^aa`@^aa           -  4'.'&"26%   547>7>2 "KjK XQqYn	243nYqQ$!+!77!+!$5KK,ԑ	]""]ً	        9 > H  7'3 &7#!"&5463!2'&#!"3!26=4?6	!762xtt`   ^Qwww@?61B^^B@B^	@(` `\\\P`tt8`  ^Ͼww@w1^BB^^B~
	@` \ \P          + Z  #!"&5463!12+"3!26=47676#"'&=# #"'.54>;547632www 
M8
+pB^^B@B^
'sw-
+
+9*##;Noj'
#ww@w
"^BB^^B
+
	*
"g`81T`PSA:'*4       / D  #!"&5463!2#"'&#!"3!26=4?632"'&4?62	62www@?61
+
B^^B@B^	@
+
BRnBBn^ww@w1
+^BB^^B
	@
+BnnB          C   "&=!32"'&46;!"'&4762!#"&4762+!5462  4&& 4 &&4  4&& 4 &&4 4 &&4  4&& 4 &&4  4&&        6'&'+"&546;267:	&&&&	s@	
+Z&&&&Z
+	     +  6'&''&'+"&546;267667:	:	&&&&		s@	
+:	
+Z&&&&Z
+	:
+	  z   6'&''&47667S:	:	s@	
+:4:
+	    |   	&546h!!0a


$           #!"&5463!2#!"&5463!2 & && && && &@&&&&&&&&          #!"&5463!2 &&&&@&&&&         &54646&5-	:	s:	
+:4:
+	        +  &5464646;2+"&5&5-		&&&&	:	s:	
+:	
+&&&&
+	:
+	         &54646;2+"&5-	&&&&	s:	
+&&&&
+	          62#!"&!"&5463!24@&&&&-:& && &        	"'&476244444     Zf   	"/&47	&4?62S44444       # /  54&#!4&+"!"3!;265!26  $$ & && && && &@^aa@& && && && &+^aa        54&#!"3!26  $$ & && &@^aa@&&&&+^aa       + 7  4/7654/&#"'&#"32?32?6  $$ }ZZZZ^aaZZZZ^aa      #  4/&"'&"327> $$ [4h4[j^aa"ZiZJ^aa      : F  %54&+";264.#"32767632;265467>$ $$  oW	5!"40K(0?i+! ":^aaXRdD4!&.uC$=1/J=^aa       . :  %54&+4&#!";#"3!2654&+";26 $$  ```^aa ^aa      / _  #"&=46;.'+"&=32+546;2>++"&=.'#"&=46;>7546;232m&&m l&&l m&&m l&&ls&%&&%&&%&&%& &&l m&&m l&&l m&&m ,&%&&%&&%&&%&        # / ;  "/"/&4?'&4?627626.  6  $$ I
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+͒(r^aaɒ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(_^aa           ,  	"'&4?6262.  6  $$ Z4f44fz(r^aaZ&4ff4(_^aa        	  "  4'32>&#"  $&6$  WoɒV󇥔 zzz8YW˼[?zz:zz   @5 K    #!#"'&547632!2 A4@%&&K%54'u%%&54&K&&4A5K$l$L%%%54'&&J&j&K    5K    #"/&47!"&=463!&4?632%u'43'K&&%@4AA4&&K&45&%@6%u%%K&j&%K55K&$l$K&&u#   5K@ !  #"'+"&5"/&547632K%K&56$K55K$l$K&&#76%%53'K&&%@4AA4&&K&45&%%u'     5K "  #"'&54?63246;2632K%u'45%u&&J'45%&L44L&%54'K%5%t%%$65&K%%4LL4@&%%K'      ,   "&5#"#"'.'547!3462  4&bqb>#5&4 4 & 6Uue7D#		"ǆ &        /   #!"&546262"/"/&47'&463!2
+&@&&4L
+
+r&4
+
+r
+
+L&&
+4&&&L
+
+rI@&
+
+r
+
+L4&&     
s  /  "/"/&47'&463!2 #!"&546262 &4
+
+r
+
+L&&
+&@&&4L
+
+r@@&
+
+r
+
+L4&&
+4&&&L
+
+r         #  #!+"&5!"&=463!46;2!28(`8((8`(88(8((8(8 (8`(88(8((8(88(`8          #!"&=463!28(@(88((8 (88((88   z 5  '%+"&5&/&67-.?>46;2%6.@g.L44L.g@.
+.@g.
+L44L
+.g@.g.n.4LL43.n.gg.n.34LL4͙.n.g        -     $54&+";264'&+";26/a^




+
+
+
+^aa

fm
+        @ 
   J  %55!;263'&#"$4&#"32+#!"&5#"&5463!"&46327632#!2$$8~+(888(+}(`8((8`]]k==k]]8,8e8P88P8`(88(@MM        N   4&#"327>76$32 #"'.#"#"&'.54>54&'&54>7>7>32 &z&^&./+>+)>J>	Wm7'
+'"''? &4&c&^|h_bml/J@L@#*
#M6:D
+35sҟw$	'%
+'	\t          3  #!"&=463!2'.54>54''


@
 1O``O1CZZ71O``O1BZZ7@

@
N]SHH[3`)TtbN]SHH[3^)Tt           ! 1  &'   547 $ 4&#"2654632    '&476   ==嘅}(zVl''ٌ@uhyyhu9(}VzD##D#     	  = C U  %7.547 4&#"2654632% #"'&547.'&476 !27632#76$7&'7+NWb=嘧}(zVj\i1
+z,X
Y[6
+$!%'FuJiys?_9ɍ?kyhun(}VzYF
+KA؉La
+02-F"@Qsp@_        ! 3  %54&+";264'&+";26#!"&'&7>2 




+

+
 #%;" ";%# <F<7
+

??""??$$     ll 2  #"'&'	+&/&'&?632	&'&?67>`,@L5
`		
+`	L`4LH`
`	
a	5
L@              # 3 7 ; ? O s  !!!!%!!!!%!!!!!!!!%!!4&+";26!!%!!!!74&+";26%#!"&546;546;2!546;232 `@ `@ @@  @
@

@
 @  
@

@
L44LL4^B@B^^B@B^4L  @@@@      @@  


@@   


M 4LL4 4L`B^^B``B^^B`L        7 q  .+"&=46;2 #"&=".'673!54632#"&=!"+"&=46;2>767>3!54632<M33K,		
 j8Z4L2B4:;M33K, ?			
 0N<* .)C=W]xD0N<* .)C=W]xD ?\-7H)		
".=']-7H)
+w		
<?.>mBZxPV3!<?.>mBZxPV3!
+         &   #"'&'5&6&>7>7&54>$32 dFK1A
+0)L.٫C58.H(Ye      # 3 C   $=463!22>=463!2#!"&5463!2#!"&5463!2 H&&/<R.*.R</&& &&&& &&&&Bɀ&&4L&&L4&&f&&&&&&&&     Z     %"'	"/&4762444ͥ55     Z   	"'&4?62	6244455        % K  %#!".<=#"&54762+!2"'&546;!"/&5463!232 
@&@<@&@	:&	
& 

+&&
+&	

+`&          :  $"&462"&462!2#!"&54>7#"&463!2!2LhLLhLhLLh!
&& &&& &4hLLhLLhLLhL %z<
+0&4&&)17&4&
&&           #!"&5463!2!2\@\\@\\@\\\\         W  *  #!"&547>3!2!"4&5463!2!2W+B"5P+B@"5^=\@\ \H#t3G#3G:_Ht\\     @      +32"'&46;#"&4762&& 4 && 4 4& &4  4& &4       @     "&=!"'&4762!5462  4& &4  4& &4 4 && 4 &&          
    !!!3!!                    0 @  67&#".'&'#"'#"'32>54'6#!"&5463!2 8ADAE=\W{O[/5dI
kDtpČe1?*w@www	(M&
B{Wta28r=Ku?RZ^GwT	-@www       $  2+37#546375&#"#3!"&5463ww/Dz?swww@wS88	ww           # ' . >   4&#"26546326"&462!5! &  !5!!=!!%#!"&5463!2B^8(Ԗ  > @|K5 5KK5 5K^B(8ԖԖ>v 5KK5 5KK   H  G   4&"&#"2654'32#".'#"'#"&54$327.54632@pp)*Pppp)*Pb	'"+`N*(a;2̓c`." b
+PTY9ppP*)pppP*) b ".`(*Nͣ2ͣ`+"'	b
+MRZB               4&"24&"264&"26#"/+"&/&'#"'&547>7&/.=46?67&'&547>3267676;27632#"&'"'#"'&547&'&=4767&547>32626?2#"&'"'#"'&547&'&=4767&547>32626?2ԖLhLKjKLhLKjK	"8w
+s%(")v

+
+>
+	"8x
+s"+")v
+<
+3zLLz3
3>8L3)x3
3zLLz3
3>8L3)x3
ԖԖ 4LL45KK54LL45KK
+#)0C	wZl/
+
+Y	
+N,&
+#)0C	vZl.
+
+YL0"qG^^Gqq$ ]G)FqqG^^Gqq$ ]G)Fq         % O   #"'#"&'&4>7>7.546$ '&'&'# '32$7>54'VZ|$2$
+|E~E<|
+$2$|ZV:(t}X(	
&%(Hw쉉xH(%&	(XZT\MKG        < m  $4&"24&#!4654&#+32;254'>4'654&'>7+"&'&#!"&5463!6767>763232 &4&&4N2`@`%)7&,$)'  
%/0Ӄy#5 +1	&<$]`{t5KK5$e:1&+'3TF0h4&&4&3M:;b^v+D2 5#$IIJ 2E=\$YJ!$MCeM-+(K55KK5y*%Au]c         > q   4&"24&'>54'654&'654&+"+322654&5!267+#"'.'&'&'!"&5463!27>;2 &4&&4+ 5#bW0/%
  ')$,&7)%`@``2Nh0##T3'"(0;e$5KK5 tip<&	1&4&&4& #\=E2&%IURI$#5 2D+v^b;:M2gc]vDEA%!bSV2MK55K(,,MeCM$!I     @   #"&547&547%6@?V8b%	I)         9  4.""'."	67"'.54632>32+C`\hxeH>Hexh\`C+ED4
+#L</>oP$$Po>Q|I.3MCCM3.I|Q/Z$_dC+I@$$@I+           ( @  %#!"&5463!2#!"3!: "&5!"&5463!462
ww@

B^^B 
+4&@&&&4 ` 
ww
 
^B@B^24& && &        % 5  73#7.";2634&#"35#347>32#!"&5463!2FtIG9;HIxI<,tԩw@wwwz4DD43EEueB&#1s@www      .  4&"26#!+"'!"&5463"&463!2#2&S3Ll&c4LL44LL4c@&&{ LhLLhL           ' ?  #!"&5463!2#!"3!26546;2"/"/&47'&463!2www@B^^B@B^@&4t
+
+r
+
+& &`ww@w@^BB^^B@R &t
+
+r
+
+4&&         @   "&5!"&5463!462	#!"&54&>3!2654&#!*.54&>3!24&@&&&4 sw

@B^^B
+
@w4& && &3@w
 
^BB^ 
     
 I  &5!%5!>732#!"&=4632654&'&'.=463!5463!2!2J  JSq*5&=CKuuKC=&5*q͍S8( ^B@B^ (8`N`Ѣ΀GtO6)"M36J[E@@E[J63M")6OtG(8`B^^B`8   	        ' , 2    6'&'&76'6'&6&'&6'&4#"7&64   654'.'&'.63226767.547&7662>76#!"&5463!2		/[		.
+=XĚ4,+"*+, 1JH'5G::#L5+@=&# w@wwwP.1GE,ԧ44+	;/5cFO:>JJ>:O9W5$@(b4@www      ' ?  $4&"2$4&"2#!"&5463!3!267!2#!#!"&5!"'&762 &4&&4&&4&&48(@(88(c= =c(8* & & *6&4&&4&&4&&4& (88(@(88HH88`(@&&('@       1 c  4&'.54654'&#"#"&#"32632327>7#"&#"#"&54654&54>76763232632
+
+
+	N<;+gC8A`1a99gw|98aIe$IVNz<:LQJ
+,-[%	061I()W,$-7,oIX()oζA;=N0
+eTZ
	 (       O  #".'&'& '&'.54767>3232>32e^\4?P	bMO0#382W#& 9C9
+Lĉ"	82<*9FF(W283#0OMb	P?4\^eFF9*<28	"L
+9C9 &#           !"3!2654&#!"&5463!2`B^^B@B^^ީwww@w ^BB^^B@B^ww@w      #  !72#"'	#"'.546763 YY!''!0#GG$/!''! &UUjZ	
8""8
 X!	
8"	"8
	        G W  4.'.#"#".'.'.54>54.'.#" 32676#!"&5463!2  1.-
++$)
c8
)1)
+
+05.D
<90)$9 w@wwwW
+
+)1)
7c
)$+
+-.1 9$)0<
D.59@www  ,  T  1  # '327.'327.=.547&54632676TC_LҬ#+i!+*pDNBN,y[`m`%i]hbEm}au&,SXK
+&$f9s?
+    _    #"!#!#!54632V<%' ЭHH	(ں       T \ d k s z       &54654'>54'6'&&"."&'./"?'& 546'&6'&6'&6'&6'&74"727&6/a49[aA)O%-j'&]]5r-%O)@a[9'
+0BA;+
+
+
>HCU
+
+
+	#	
+	
+$				2	
AC: oM=a-6OUwW[q	( -	q[WwUP6$C
+
++) (	
+8&/
&eMa	
+&
$	

        %  +"&54&"32#!"&5463!54   &@&Ԗ`(88(@(88(r && jj8((88(@(8        # ' +  2#!"&5463"!54&#265!375!35!B^^BB^^B



` ^B@B^^BB^

 
`
       ! =   "&462+"&'& '.=476;+"&'& $'.=476;pppp$!$qr
%}#ߺppp!E$
rqܢ#
%
ֻ!           ) ?   "&462"&4624&#!"3!26!.#!"#!"&547>3!2/B//B//B//B
@


2^B@B^\77\aB//B//B//B/@




~B^^B@2^5BB52     . 4  2## %&'.67#"&=463! 2 5KK5L4_u:B&1/&.-
+zB^^B4LvyKjK4L[!^k'!A3;):2*<vTq6^BB^L4$)*    @     A  4#"&54"3! 4."#!"&5!"&5>547&5462;U gIv0ZZ0L4@Ԗ@4L2RX='8P8'=XR U;Ig0,3lb??bl34LjjL4*\(88(\    } I  /#"/'&/'&?'&'&?'&76?'&7676767676`
+(5)0
+)*)
+0)5(
+
+(5)0
+))))
+0)5(
+*)
+0)5(
+)5)0
+)**)
+0)5)
+
+)5)0
+)*      5 h  $4&"24&#!4>54&#"+323254'>4'654&'!267+#"'&#!"&5463!2>767>32!2 &4&&4N2$YGB
(HGEG  HQ#5K4Li!<;5KK5 
+A#
("/?&}vh4&&4&3M95S+C=,@QQ9@@IJ 2E=L5i>9eME;K55K	J7R>@#zD<      5 = q  %3#".'&'&'&'.#"!"3!32>$4&"2#!"#"&?&547&'#"&5463!&546323!2`  #A<(H(GY$2NL4K5#aWTƾh&4&&4K5;=!ihv}&?/"(
#A
+ 5K2*!	Q@.'!&=C+S59M34L=E2 JI UR@@&4&&4&5K;ELf9>ig<Dz#@>R7J	K          5 h  4&"24#"."&#"4&#"".#"!54>7#!"&54.'&'.5463246326326 &4&&4IJ 2E=L43M95S+C=,@QQ9@@E;K55K	J7R>@#zD<gi>9eMZ4&&4&<#5K4LN2$YGB
(HGEG  HV;5KK5 
+A#
("/?&}vhi!<         4 < p  4.=!32>332653272673264&"2/#"'#"&5#"&54>767>5463!2@@2*!	Q@.'!&=C+S59M34L.9E2 JI UR&4&&4&Lf6Aig6Jy#@>R7J	K55K;E@TƾH  #A<(H(GY$2NL4K#5#a=4&&4&D=ihv}&?/"(
#A
+ 5KK5;         +  54&#!764/&"2?64/!26  $$  &
+[6[[j6[& ^aa@&4[[6[[6&+^aa        +   4/&"!"3!277$ $$ [6[
+&&[6j[
^aae6[j[6&&4[j[^aa      +   4''&"2?;2652?$ $$ [6[[6&&4[^aaf6j[[6[
+&&[^aa      +   4/&"4&+"'&"2?  $$ [6&&4[j[6[j^aad6[&&
+[6[[j ^aa             $2>767676&67>?&'4&'.'.'."#&6'&6&'3.'.&'&'&&'&6'&>567>#7>7636''&'&&'.'"6&'6'..'/"&'&76.'7>767&.'"76.7"7"#76'&'.'2#22676767765'4.6326&'.'&'"'>7>&&'.54>'>7>67&'&#674&7767>&/45'.67>76'27".#6'>776'>7647>?6#76'6&'676'&67.'&'6.'.#&'.&6'&.5/a^D&"	
+
+
+	4
	$!	#
	
+		
+	
+
+

+ 
+.0"Y
+	+


!	
+	

+$	
	"
+
+
+
+		
+	Α	
+		
^aa
+
	
+
+			
	

	
+
+		
+	
		P '-(	#	*	$

+"
!				
*
+!	

+(				
+
	
+$
+		
+2
   ~   /  $4&"2	#"/&547#"  32>32&4&&4V%54'j&&'/덹:,{	&4&&4&V%%l$65&b'Cr!"k[G             + ;  %!5!!5!!5!#!"&5463!2#!"&5463!2#!"&5463!2    &&&&&&&&&&&&@ && && && && && &&   {    #"'&5&763!2{'
 * *)* )'             /  !5!#!"&5!3!26=#!5!463!5463!2!2  ^B@B^&@&`   ^B`8(@(8`B^   B^^B&&B^(88(^      G  	76#!"'&?	#!"&5476	#"'&5463!2	'&763!2#"'c)'&@**@&('c(&*cc*&'
*@&('c'(&*cc*&('c'(&@*        1 9 A S [  #"&532327#!"&54>322>32 "&462  &6 +&'654'32>32"&462QgRp|Kx;CByy 6Fe=
+BPPB
+=eF6  ԖV>!pRgQBC;xK|Ԗ{QNa*+%xx5eud_C(+5++5+(C_due2ԖԖ>NQ{u%+*jԖԖ     p ! C i  4/&#"#".'32?64/&#"327.546326 #"/&547'#"/&4?632632(* 8(!)(A(')* 8(!USxySSXXVzxTTUSxySSXXVzxT@( (8 *(('((8 SSUSx{VXXTTSSUSx{VXXT        #!" 5467&54 32632t,Ԟ;F`j)6,>jK?  s
  !  %#!"&7#"&463!2+!'5#8EjjE8@&& &&@XYY&4&&4&qDS%q%         N \ j x     2"&4#"'#"'&7>76326?'&'#"'.'&676326326&'&#"32>'&#"3254?''74&&4&l
NnbSVZbRSD	
zz
	DSRb)+USbn
\.2Q\dJ'.2Q\dJ.Q2.'Jd\Q2.'Jd`!O` 	`&4&&4r$#@B10M5TNT{L5T
	II	
T5L;l'OT4M01B@#$*3;$*3;;3*$;3*$:$/ @@Qq`@         " % 3 <  2#!"&5!"&5467>3!263!	!!#!!46!#!(88(@(8(8(`((8D<++<8(` (8(`8(@(88( 8((`(8((<`(8 (``(8    || ?  %#"'&54632#"'&#"32654'&#"#"'&54632|udqܟs]
+=
+OfjL?R@T?"&
+>
+f?rRX=Edudsq
+=
+_MjiL?T@R?E& f
+>
+=XRr?b      ! 1 E  )!34&'.##!"&5#3463!24&+";26#!"&5463!2  
+
+08((88(@(8



8((88((`(1
+
+`(88( (88( @


`(88(@(8(`         #!"&5463!2 w@www`@www             /  %#!"&=463!2#!"&=463!2#!"&=463!2 &&&&&&&&&&&&&&&&&&&&&&&&    @    ' 7 G  $"&462"&462#!"&=463!2 "&462#!"&=463!2#!"&=463!2ppppppp
@


ppp
@



@


Рpppppp


ppp





         < L \ l |  #"'732654'>75"##5!!&54>54&#"'>3235#!"&=463!2!5346=#'73#!"&=463!2#!"&=463!2}mQjB919+i1$AjM_3</BB/.#U_:IdDRE
@

k*Gj
@


@


TP\BX-@8
+C)5XsJ@$3T4+,:;39SG2S.7<

vcc))%Ll}




         5 e  2#!"&=463%&'&5476!2/&'&#"!#"/&'&=4'&?5732767654'&@02uBo
+T25XzrDCBBEh:%)0%HPIP{rQ9f#-+>;I@KM-/Q"@@@#-bZ$&P{<8[;:XICC>. '5oe80#.0(
l0&%,"J&9%$<=DTI     c s  &/6323276727#"327676767654./&'&'737#"'&'&'&54'&54&#!"3!260%
<4"VRt8<@<
-#=XYhW8+0$"+dTLx-'I&JKkmuw<=V@!X@		v
'|N;!/!$8:IObV;C#V
+
&
(mL.A:9 !./KLwPM$@@  
+       / ? O _ o     %54&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!26#!"&5463!2 @@ @ @ @ @ @ @@^BB^^B@B^NB^^B@B^^         # + 3  	'$"/&4762%/?/?/?/?%k*66bbbb|<<<bbbbbbbb%k66Ƒbbb<<<<^bbbbbb    @      M  $4&"2!#" 4&"2&#"&5!"&5#".54634&>?>;5463!2LhLLh
		 LhLLhL!'ԖԖ@'!&	
?& &LhLLhL 		
hLLhL 	jjjj	&@6/"
&&       J   #"'676732>54.#"7>76'&54632#"&7>54&#"&54$  ok;	-j=yhwi[+PM3ѩk=J%62>VcaaQ^ ]G"'9r~:`}Ch  0=Z٤W=#uY2BrUI1^Fk[|a      L  2#!67673254.#"67676'&54632#"&7>54&#"#"&5463ww+U	,i<F{jh}Z+OM

+2ϧj<J%51=Ubwww@wzX"'8'TyI9`{Bf 
+,>XբW<"uW1AqSH1bdww        ' 7  4'!3#"&46327&#"326%35#5##33#!"&5463!20U6cc\=hlࠥYmmnnnnw@wwww&46#Ȏ;edwnnnnn@www    	 ] # /  #"$&6$3 &#"32>7!5!%##5#5353Еttu{zz{SZC`cot*tq||.EXN#??           , <  !5##673#$".4>2"&5!#2!46#!"&5463!2 rM*
 *M~~M**M~~M*jjj& && &`P%挐|NN||NN|* jj jj@&&&&    @  
   "'&463!2 @4@&Z4@4&        @ 
   #!"&4762 &&4Z4&&4@     @  
  "'&4762&4@4&@&4&      @ 
   "&5462@@4&&44@&&@        
   3!!%!!26#!"&5463!2`m`
^BB^^B@B^
 `@B^^BB^^    @ 
    "'&463!2#!"&4762 @4@&&&&44@4&Z4&&4@         
   "'&463!2 @4@&4@4&        @ 
   #!"&4762 &&4Z4&&4@          :  #!"&5;2>76%6 +".'&$'.5463!2 ^B@B^,9j9Gv33vG9H9+bI\
+A+=66=+A
+[">nSMA_:B^^B1&c*/11/*{'VO3@/$$/@*?Nh^    l   +  !+"&5462!4&#"!/!#>32]_gTRdgdQV?UI*Gg?!2IbbIJaaiwE3300 08        4   #"$'&6?6332>4.#"#!"&54766$32 z䜬m
+IwhQQhbF*@&('kz
+	
+_hQнQGB'(&*eoz  ( q  !#"'&547"'#"'&54>7632&4762.547>32#".'632%k'45%&+ ~(
(h		&
+
+\(
(		&
+
+~ +54'k%5%l%%l$65+ ~
+
+&		(
(\
+
+&		h(
(~ +%'         ! ) 1 9 K   4&"2 4&"26.676&$4&"2 4&"24&"2#!"'&46$ KjKKjKjKKje2.e<^P,bKjKKjKjKKjKjKKj##LlLKjKKjKjKKjK~-M<M(PM<rjKKjKjKKjKujKKjKL           <    6?32$6&#"'#"&'5&6&>7>7&54$ LhяW.{+9E=cQdFK1A
+0)pJ2`[Q?l&٫C58.H(Y'        : d    6?32$64&$ #"'#"&'&4>7>7.546'&'&'# '32$7>54'Yj`a#",5NK
+~EVZ|$2$
+|:
+$2$|ZV:(t}hfR88T
+h̲X(	
&%(Hw(%&	(XZT\MKG{x   | !  #"'.7#"'&7>3!2%632u

+j
H{(e9
+1b      U  #!"&546;5!32#!"&546;5!32#!"&546;5463!5#"&5463!2+!232 8((88(` `(88((88(` `(88((88(`L4 `(88(@(88(` 4L`(8 (88(@(88((88(@(88((88(@(84L8(@(88((8L48      O Y  "&546226562#"'.#"#"'.'."#"'.'.#"#"&5476 $32&"5462И&4&NdN!>!
1X:Dx++ww++xD:X1
- U
! *,*&4&hh&&2NN2D&

+..J<
+$$
+<JJ<
+$$
+<J..
+
Pbb&&          7  !!"&5!54&#!"3!26!	#!"&=!"&5463!2 `(8 
@


 + 8(@(8(88(@(8(8( @

@
m+U`(88(8(@(88(
h`         ( \  "&54&#"&46324."367>767#"&'"&547&547&547.'&54>2l4

2cKEooED
+)
+

+)
+Dg-;</-
?.P^P.?
-/<;-gYY

.2 L4H|O--O|HeO,,Oeq1Ls26%%4.2,44,2.4%%62sL1qcqAAq      4  #!#"'&547632!2#"&=!"&=463!54632 

		@	
`
		


`?`


+@	
	@	
!		



+          5  4&+4&+"#"276#!" 5467&54 32632 


	`		_
+v,Ԝ;G_j)``


			_ԟ7
,>jL>       5  4'&";;265326#!" 5467&54 32632 			
+


v,Ԝ;G_j)	`		

`7
,>jL>        X `  $"&462#!"&54>72654&'547 7"2654'54622654'54&'46.'  &6 &4&&4&yy%:hD:FppG9Fj 8P8 LhL 8P8 E;
+Dh:%>4&&4&}yyD~s[4Dd=PppP=d>hh>@jY*(88(*Y4LL4Y*(88(*YDw"
+A4*[s~>       M   4&"27 $=.54632>32#"' 65#"&4632632 65.5462 &4&&4G9&
+<#5KK5!!5KK5#<
+&ܤ9Gpp&4&&4&@>buោؐ &$KjKnjjKjK$& jjb>Ppp      
  %  !5!#"&5463!!35463!2+32  @\\ 8(@(8 \@@\ \@\  (88(\   @    3  4#"&54"3#!"&5!"&5>547&5462;U gI@L4@Ԗ@4L2RX='8P8'=XR U;Ig04LjjL4*\(88(\    @    "   4&+32!#!"& +#!"&5463!2pP@@P j j@@\@\&0pj	 \\&       - B  +"&5.5462265462265462+"&5#"&5463!2G9L44L9G&4&&4&&4&&4&&4& L44L
 &=d4LL4d=&&`&&&&`&&&&4LL4 
 &         # 3 C S  #!"&5463!2!&'&!"&5!463!2#!"&52#!"&=4632#!"&=463(8((88((`x
+c`(8  @@@`((88(@(8(D9 8( `@@@ @@        / ? O _ o         -=  %+"&=46;25+"&=46;2+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2+"&=46;2!!!5463!2#!"&5463!2
@

@

@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@
 & && &@

@
@

@

@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@

@

@
  

`&&&& 
       / ? O _ o        %+"&=46;25+"&=46;2+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2+"&=46;2!!#!"&=!!5463!24&+"#54&+";26=3;26%#!"&5463!463!2!2
@

@

@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
  8(@(8 
@

@

@

@

@
 & &&@8((8@&@

@
@

@

@

@
@

@
@

@
@

@
@

@
@

@
@

@

@

@
 (88( 

@

``



``
- && & (88(&  @    < c  $4&"2!# 4&"254&+54&+"#";;26=326+"&5!"&5#"&46346?>;463!2KjKKj KjKKj &ԖԖ&&@&&KjKKjK 
+jKKjK .&jjjj&4&@@&&      # ' 1 ? I  54&+54&+"#";;26=326!5!#"&5463!!35463!2+32    \\8(@(8 \  \ \@\  (88(\          :  
#32+53##'53535'575#5#5733#5;2+3@E&&`@@`    `@@`&&E%@`@ @ @		      		@ 0
+    @      !3!57#"&5'7!7! K5@   @ 5K@@@      # 3  %4&+"!4&+";265!;26#!"&5463!2 && &&&& && w@www&&@&&&&@&&@www        # 3  54&#!4&+"!"3!;265!26#!"&5463!2 &&&&&@&&@& w@www@&@&&&&&&@&:@www    - M3  )  $"'&4762	"'&4762	s
+2
+
+.
+
+
+
+2
+
+w
+2
+
+.
+
+
+
+2
+
+w
+2
+
+
+
+
+
+2
+
+ww
+
+2
+
+
+
+
+
+2
+
+ww    
 M3  )   "/&47	&4?62"/&47	&4?62S
+.
+
+2
+
+w
+
+2
+
+
+.
+
+2
+
+w
+
+2
+
+M
+.
+
+2
+
+
+
+2
+
+.
+
+.
+
+2
+
+
+
+2
+
+.   M 3S  )  $"'	"/&4762"'	"/&47623
+2
+
+ww
+
+2
+
+
+
+
+
+2
+
+ww
+
+2
+
+
+
+
+2
+
+w
+
+2
+
+
+
+.v
+2
+
+w
+
+2
+
+
+
+.    M 3s  )   "'&4?62	62"'&4?62	623
+.
+
+.
+
+2
+
+
+
+2
+
+.
+
+.
+
+2
+
+
+
+2
+.
+
+
+
+2
+
+w
+
+2v
+.
+
+
+
+2
+
+w
+
+2   - Ms3    	"'&4762s
+w
+
+2
+
+.
+
+
+
+2
+ww
+
+2
+
+
+
+
+
+2    
 MS3    "/&47	&4?62S
+.
+
+2
+
+w
+
+2
+
+M
+.
+
+2
+
+
+
+2
+
+.    M
3S    "'	"/&47623
+2
+
+ww
+
+2
+
+
+
+m
+2
+
+w
+
+2
+
+
+
+.    M-3s    "'&4?62	623
+.
+
+.
+
+2
+
+
+
+2-
+.
+
+
+
+2
+
+w
+
+2        /  4&#!"3!26#!#!"&54>5!"&5463!2 


@
^B  & &  B^^B@B^ @


MB^%Q=
&&<P&^B@B^^            + 3  "&5463!2#3!2654&#!"3#!"&=324+"3B^^B@B^^B
@


`^BB^p ^BB^^B@B^`@


S`(88(``             '  $4&"2%4&#!"3!26#!"&5463!2&4&&4


@
^BB^^B@B^f4&&4&

@
B^^B@B^^            /  $4&"2%4&#!"3!264+";%#!"&5463!2/B//B 
 

 
0L4 4LL4 4L_B//B/

@
M    4LL4 4LL            >& $$ (r^aa(^aa        ! C  #!"&54>;2+";2#!"&54>;2+";2 pPPpQh@&&@j8(PppPPpQh@&&@j8(Pp@PppPhQ&&j (8pPPppPhQ&&j (8p         ! C  +"&=46;26=4&+"&5463!2+"&=46;26=4&+"&5463!2 Qh@&&@j8(PppPPpQh@&&@j8(PppPPp@hQ&&j (8pPPppP@hQ&&j (8pPPpp     @@  	   # + 3 ; G  $#"&5462 "&462 "&462#"&462 "&462 "&462 "&462#"&54632K54LKj=KjKKjKjKKjL45KKjK<^^^KjKKjppp\]]\jKL45KjKKjKujKKjK4LKjKK^^^jKKjKpppr]]\            $$  ^aaQ^aa      ,  #"&5465654.+"'&47623  #>bqb&4  4&ɢ5"		#D7euU6 & 4 & m       1 X   ".4>2".4>24&#""'&#";2>#".'&547&5472632>3=T==T==T==T=v)GG+v@bRRb@=&\Nj!>3lkik3hPTDDTPTDDTPTDDTPTDD|xxXK--K|Mp<#	)>dA{RXtfOT# RNftWQ          ,  %4&#!"&=4&#!"3!26#!"&5463!2!2 8(@(88((88((8\@\\@\\(88(@(88(@(88@\\\\       u  ' E  4#!"3!2676%!54&#!"&=4&#!">#!"&5463!2!2325([5@(\& 8((88((8 ,9.+C\\@\ \6Z]#+#,k(88(@(88(;5E>:5E\\\ \1.           $ 4 @  "&'&676267> "&462"&462 .  > $$ n%%/02
+KjKKjKKjKKjKfff^aayy/PccP/jKKjKKjKKjKffff@^aa        $ 4 @  &'."'.7>2 "&462"&462 .  > $$ n20/%7KjKKjKKjKKjKfff^aa3/PccP/y	jKKjKKjKKjKffff@^aa         + 7   #!"&463!2 "&462"&462 .  > $$ &&&&KjKKjKKjKKjKfff^aa4&&4&jKKjKKjKKjKffff@^aa       # + 3 C  54&+54&+"#";;26=3264&"2 4&"2$ #"'##"  3!2@@KjKKjKKjKKjKܒ,gjKKjKKjKKjKXԀ,,          # / ; G S _ k w       +"=4;27+"=4;2'+"=4;2#!"=43!2%+"=4;2'+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;54;2!#!"&5463!2```` ````````````` `` `` p` K55KK55Kp````````````````````````` 5KK55KK     @   * V  #"'.#"63232+"&5.5462#"/.#"#"'&547>32327676R?d^7ac77,9xm#@#KjK#
+ڗXF@Fp:f_ #WIpp&3z	h[ 17q%q#::#5KKu't#!X:	%#+=&>7p   @    * 2 F r  56565'5&'.	#"32325#"'+"&5.5462#"/.#"#"'&547>32327676@ͳ8
2.,#,fk*1x-!#@#KjK#
+ڗXF@Fp:f_ #WIpp&3z	e`vo8t-	:5	[*#::#5KKu't#!X:	%#+=&>7p  
  3  $  	"/&47	&4?62#!"&=463!2I.
+
+2
+
+w
+
+2
+
+
+-@).
+
+2
+
+
+
+2
+
+.
+-@@     -S  $ 9  %"'&4762		/.7>	"/&47	&4?62i2
+
+.
+
+
+
+2
+
+w
+E>

u>

.
+
+2
+
+w
+
+2
+
+
+2
+
+
+
+
+
+2
+
+ww
+!




h.
+
+2
+
+
+
+2
+
+.
+       ;  #"'&476#"'&7'.'#"'&476'
  )'s
"+5+@ա'
  )'F* 4 *Er4M:}}8GO
* 4 *     ~ 
+ (  -/'	#"'%#"&7&67%632B;><V??V --C4
+<B=cB5!%%!b 7I))9I7        	#"'.5!".67632y(
+#
+ 
 ##@,(
+)        8  !	!++"&=!"&5#"&=46;546;2!76232-SSS
+
+		 SS``		
+
+          K  $4&"24&"24&"27"&5467.546267>5.5462 8P88P88P88P8P88P4,CS,4pp4,,4pp4,6d7AL*',4ppP88P8P88P8HP88P8`4Y&+(>EY4PppP4Y4Y4PppP4Y%*<O4Y4Ppp      
  % @ \ h t   	"'&4762"&5462&#!"&463!2#"'&'7?654'7&#"&'&54?632#!"&463!2"&5462"'&4762 		 
+
+	@USxySR#PT('#TUSxySN@ 		 
+
+		 		
+
+ 		
+3@xSSUO#'(V^'(PVvxSSUi @ 		
+
+ 		
+   `     <  +"&=46;2+"&=467>54&#"#"/.7!2<'G,')7N;2]=A+#H


0PRH6^;<T%-S#:/*@Z}
+

+>h         .  %#!"&=46;#"&=463!232#!"&=463!2& &&@@&&&@&& && &&&&&&&&f&&&&   b      #!"&=463!2#!"&'&63!2 & && &' '%@% &&&& && &&    k % J  %#/&'#!53#5!36?!#!'&54>54&#"'6763235
+Ź}4NZN4;)3.i%Sin1KXL7觧*		#&		*@jC?.>!&1'\%Awc8^;:+<!P        % I  %#/&'#!53#5!36?!#!'&54>54&#"'6763235
+Ź}4NZN4;)3.i%PlnEcdJ觧*		#&		*-@jC?.>!&1'\%AwcBiC:D'P           %!	#!"&'&6763!2P &: &?&: &?5"K ,)""K ,)      h  #".#""#"&54>54&#"#"'./"'"5327654.54632326732>32YO)I-D%n "h.=T#)#lQTv%.%P_	%	
%_P%.%vUPl#)#T=@/#,-91P+R[Ql#)#|''
+59%D-I)OY[R+P19-,# #,-91P+R[YO)I-D%95%_P%.%v      ' 3   !2#!"&463!5& =462   =462 &546  &&&& &4&r&4& @&4&&4&G݀&&&&f    
s   C K  &=462	#"'32 =462 !2#!"&463!5&'"/&4762%4632e*&4&i76`al&4& &&&& }n
+
+R
+
+
+
+R
+zfOego&&5`3&&&4&&4&
D
+
+R
+
+
+
+R
+z v        "  !676"'.5463!2@@w^Cct~55~tcC&&@?J V|RIIR|V &&           # G  !!%4&+";26%4&+";26%#!"&546;546;2!546;232@@ @@L44LL4^B@B^^B@B^4L   N 4LL4 4L`B^^B``B^^B`L      L   4&"2%#"'%.5!#!"&54675#"#"'.7>7&5462!467%632 &4&&4@ o& &}c ;pG=(
8Ai8^^.&4&&4&`	`fs&& jo/;J!#2
+ KAE*,B^^B!`	   $   -   4&"2#"/&7#"/&767%676$!28P88PQr	@
U	@
+{`PTP88P8P`
+	@U	@rQ           !6'&+!!!!2Ѥ
8̙e;<*@8 !GGGQII            %764'	64/&"2  $$ f3f4:4^aaf4334f:4:^aa         %64'&"	2  $$ :4f3f4F^aa4f44f^aa         764'&"27	2  $$ f:4:f4334^aaf4:4f3^aa            %64/&"	&"2  $$ -f44f4^aa4f3f4:w^aa   @    7!!/#35%!'!%j/d
jg2|855dc b    @   !	!%!!7!FG)DH:&HdS)         U   4&"2#"/ $'#"'&5463!2#"&=46;5.546232+>7'&763!2&4&&4f]wq4qw]	`dC&&:FԖF:&&Cd`4&&4&	]]	`d[}&&"uFjjFu"&&y}[d       #  2#!"&546;4   +"&54&" (88(@(88( r&@&Ԗ 8((88(@(8@&&jj           ' 3   "&462 &         .  > $$  Ԗ>aX,fff^aaԖԖa>TX,,~ffff@^aa          /  +"&=46;2+"&=46;2+"&=46;28((88((8 8((88((8 8((88((8 (88((88((88((88((88((88           /  +"&=46;2+"&=46;2+"&=46;28((88((88((88((88((88((8 (88((88(88((88(88((88        5 E  $4&"2%& '&;26%&.$'&;276#!"&5463!2 KjKKj



f	
+
\

+w@wwwjKKjK"G


ܚ

f
+
+



+	@www             $64'&327/a^  !  ^aaJ@%%	  65   /  	64'&"2	"/64&"'&476227 <ij6j6u%k%~8p8}%%%k%}8p8~%<<ij4j4t%%~8p8~%k%%%}8p8}%k          54&#!"3!26#!"&5463!2 &&&& w@www@&&&&:@www        /  #!"&=463!24&#!"3!26#!"&5463!2@^BB^^B@B^www@w@@2@B^^BB^^ww@w        +#!"'&?63!#"'&762(@	@(@>@%%%         !232"'&76;!"/&76 
($>(
		 J &%       $  %64/&"'&"2#!"&5463!2ff4-4ff4fw@wwwf4f-f4@www         /  #5#5'&76	764/&"%#!"&5463!248`
# \P\w@www4`8

#@  `\P\`@www        )  4&#!"273276#!"&5463!2 & *f4
' w@www`&')4f*@www     % 5  	64'&"3276'7>332#!"&5463!2`'(wa8!
+,j.(&w@www`4`*'?_`ze<	bw4/*@www           - .  6  $$     (r^aaO (_^aa     
  -  "'&763!24&#!"3!26#!"&5463!2yB((
@


 w@www]#@## 

@
@www     
  -  #!"'&7624&#!"3!26#!"&5463!2y((@B@u
@


 w@www###@

@
@www     
  -   '&54764&#!"3!26#!"&5463!2@@####@ w@wwwB((@@www      `  %#" '#"&=46;&7#"&=46;6 32/.#"!2#!!2#!32>?6#
!"'?_

BCbCaf\	+
~2	
+
+	}0$


q
90r 


pr%Dpu       ?  #!"&=46;#"&=46;54632'.#"!2#!!546;2D
a__	g	

+*`-Uh1



߫}
+	$^L

    4   b  +"&=.'&?676032654.'.5467546;2'.#"ǟ
B{PDg	q%%Q{%P46'-N/B).ĝ
9kC<Q
7>W*_x*%K./58`7E%_
	,-3
+cVO2")#,)9;J)
"!*
+#VD,'#/&>AX      >  ++"' '&=46;267!"&=463!&+"&=463!2+32Ԫ$
+		
pU9ӑ
@/*fo	

VRfq
f=S     E  !#"&5!"&=463!5!"&=46;&76;2>76;232#!!2#![


 


+
+%
+)
+	

"

Jg
Uh
BW&WX
hU
g
        8   4&#!!2 #!!2#!+"&=#"&=46;5#"&=46;463!2j@jo
g|@~vv
u            n  #467!!3'##467!++"'#+"&'#"&=46;'#"&=46;&76;2!6;2!6;232+32QKt# #FNQo!"դѧ!mY
+
+Zga~bm]
+
+[o"U+, @h
+h@@X
hh
@   8  3 H \  #5"'#"&+73273&#&+5275363534."#22>4.#2>ut
3NtRP*Ho2
+
Lo@!R(Ozh=,G<X2O:&D1A.1G$<2I+A;"B,;&$LGlF/ 3D;a$8$".!3!
+.          3!#!"&5463! 8( 8((88(  h (8(88(@(8         ( 8 H  !!#!"&5463!54&#!"3!2654&#!"3!2654&#!"3!26(D 8((88( 8@@@$(88(@(8(8 @@@@@@   " }  
+ $ B R  3/&5##"'&76;46;232!56?5"#+#5!76;5!53'#3!533H
+
+
Dq		x7	K//KFh/"		@`Z		sYwjjjjj     " }  
+ $ 4 R  %3/&5##"'&76;46;232!53'#3!533!56?5"#+#5!76;5H
+
+
K//KFq		x7	h/"		@`jjjjjZ		sY
+w  "     ) 9 I Y  %#"'&76;46;232#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2
+
+
 @@  `		@`     "     ) 9 I Y  #!"&=463!2%#"'&76;46;232#!"&=463!2#!"&=463!2#!"&=463!2   
+
+
@@ r		@`r    "   
+ $ C V  %4&#"326#"'&76;46;232%#"'&'73267##"&54632!5346=#'73BX;4>ID2F
+
+
8PuE>.'%&TeQ,jm{+>R{?jJrL6V		@`7>wmR1q
uWei/rr
:Vr     "   
+ $ 7 V  4&#"326#"'&76;46;232!5346=#'73#"'&'73267##"&54632BX;4>ID2F
+
+
+>R{8PuE>.'%&TeQ,jm{?jJrL6		@`rr
:Vr3>wmR1q
uWei    @   \  %4&#"326#!"&5463!2+".'&'.5467>767>7>7632!2 &%%&&&& &7.'	:@$LBWM{#&$h1D!		.I/!	Nr&&%%&&&&V?, L=8=9%pEL+%%r@W!<%*',<2(<&L,"r       @    \  #"&546324&#!"3!26%#!#"'.'.'&'.'.546767>; &%%&&&& &i7qN	!/I.		!D1h$&#{MWBL$@:	'.&&%%&&&&=XNr%(M&<(2<,'*%<!W@r%%+LEp%9=8=L       	   + = \ d       %54#"327354"%###5#5#"'&53327#"'#3632#"'&=4762#3274645"=424'.'&!  7>76#'#3%54'&#"32763##"'&5#327#!"&5463!2BBPJNC'%!	B?)#!CC $)54f"@@
+B+,A
+
+A+&+A
+
ZK35N #J!1331CCC $)w@www2"33FYF~(-%"o4*)$(*	(&;;&&9LA38334S,;;,WT+<<+T;(\g7x:&&::&&<r%-@www       	   + = [ c }     #"'632#542%35!33!3##"'&5#327%54'&#"5#353276%5##"=354'&#"32767654"2 '.'&547>76 3#&'&'3#"'&=47632%#5#"'&53327''RZZ:kid YYY.06	62+YY-06	R[!.'CD''EH$VVX::Y
X;:Y
fyd/%jG&DC&&CD&O[52.
[$C-D..D^^* ly1%=^I86i077S
3
+$EWgO%33%OO%35	EEFWt;PP;pt;PP;pqJgTFQ%33&PP%33%R
7>%3!+}   {  '  +"&72'&76;2+"'66;2U
+&
+	(P
+
+*'eJ."-dZ-n -         ' 7  4'&+";27&+";276'56#!"&5463!2~}		7e 	۩w@www"
$Q#'!#
@www       
+   I  -22#!&$/.'.'.'=&7>?>369II ! '	$ !01$$%A'	$ ! g	
+\7@)(7Y
+	
+ \7@)(7Y
+   @       	'5557	,VWQV.RW=?l%l`~0            !#!#%777	5!	R!!XCCfff݀# `,{{{`          O g   4&"2  &6 $"&462$"&62>7>7>&46.'.'.  '.'&7>76  Ԗ HR6L66LGHyU2LL2UyHHyU2LL2UyHn
+X6X
+
+XX
+ԖԖH6L66L6L2UyHHyU2LL2UyHHyU2Ln6X
+
+XX
+
+           2#!"&5463 4&"2$4&"2ww@ww||||||w@www|||||||       	   !3	37!  $$  n6^55^h
+^aaM1^aa    P 
+  * C g  '.676.7>.'$7>&'.'&'? 7%&'.'.'>767$/u5'&$I7ob?K\[zH,1+.@\7<?5\V
,$Vg.GR@ 7U,+!
	#	"8$}{)<?L RR;kr,yE[z#	/1
+"#	#eCI0/"5#`	"84~&p)4	2{H-.%W.L>       ' : Y i  4&67&'&676'.'>7646&' '7>6'&'&7>7#!"&5463!2PR$++'TJXj7-FC',,&C
."!$28h/"	+p^&+3$
i0(w@www+.i6=Bn\C1XR:#"'jj8Q.cAj57!?"0D$4"P[
&2@www     D   "  %.5#5>7>;!!76PYhpN!HrD0M
 C0N#>8\xx: W]oW-X45       /  %'#.5!5!#"37>#!"&5463!2p>,;$4
+ 5eD+WcEw@wwwK()F
+,VhV^9tjA0/@www  @     #"'&76;46;23
+

+
	 &
+
+         ++"&5#"&7632	
^
+

+c
 &
+
+     @    #!'&5476!2  &
+
+
^
+

+b	        '&=!"&=463!546
+ &
+
+	
+     q  & 8  #"'&#"#"5476323276326767q'T1[VA=QQ3qqHih"-bfGw^44O#A?66%CKJA}}  !"䒐""A$@C3^q|z=KK?6lk)           %!%!VVuuu^-m5w}n      ~    7 M [   264&"264&"2"&546+"&=##"&5'#"&5!467'&766276#"&54632    *<;V<<O@-K<V<<+*<J.@kclG
H__H
<+*<<*+<    <*R+<<+*<f.@+<<++<<+@.7uu7
**
R+<<++;; 	      "%3I  #5472&6&67><&4'>&4.'.'.'.'.'&6&'.'.6767645.'#.'6&'&7676"&'&627>76'&7>'&'&'&'&766'.7>7676>76&6763>6&'&232.'.6'4."7674.'&#>7626'.'&#"'.'.'&676.67>7>5'&7>.'&'&'&7>7>767&'&67636'.'&67>7>.'.67	\
+
+	U7	
+J#!W!'	

"';%
+
k	)"	
+	'

+
+/7* 		I	,6
+*&"!

O6*
O $.(	*.'

+.x,	$CN	
+		*	
+6
		
+7%&&_f&
+",VL,G$3@@$+
+"
+
+
+V5 3"	
""#dA++
+y0D-%&n4P'A5j$9E#"c7Y
+6"	&
+8Z(;=I50' !!e
R
+
+"+0n?t(-z.'<>R$A"24B@(	~	9B9,	*$		
		<>	?0D9f?Ae 	.(;1.D	4H&.Ct iY% *	
+7



J	 <
W0%$	
+""I!
*D	 ,4A'4J"	.0f6D4pZ{+*D_wqi;W1G("%%T7F}AG!1#% JG3        ' . 2 > V b  %&#'32&'!>?>'&' &>"6&#">&'>26 $$  *b6~#= XP2{&%gx| .W)oOLOsEzG<	CK}E	$MFD<5+
+z^aa$MWM1>]|YY^D
եA<KmE6<"@9I5*^aa       > ^  4./.543232654.#"#".#"32>#"'#"$&547&54632632':XM1h*+D($,/9p`DoC&JV<Z PA3Q1*223IoBkែhMIoPែhMIoP2S6,M!"@-7Y.?oI=[<%$('3 -- <-\%FuPoIMhPoIMh    ,  # ? D  76&#!"7>;267676&#!"&=463!267
+#!"'&5463!26%8#!
&&Z"M>2!
	^I7LRx_@>MN""`=&&*%I},
+		L7_jj9          /  %4&#!"3!264&#!"3!26#!"&5463!2  &&&&  &&&&         1 9  #"'#++"&5#"&5475##"&54763!2 "&462 8(3-	&B..B&	-3(8 IggI `(8+Ue&.BB.&+8(kk`      % -  "&5#"&5#"&5#"&5463!2 "&462 8P8@B\B@B\B@8P8pPPp@`(88(`p.BB.0.BB.(88(Pppͺ      !  %>&'&#"'.$ $$ ^/(V=$<;$=V).X^aaJ`"(("`J^aa    ,   I   4."2>%'%"/'&5%&'&?'&767%476762%6[՛[[՛o
ܴ
+ 
+
		$
$	"	$
$		՛[[՛[[5`
+
+^

^
+
+2`
`2
+
+^^
+
+`
     1  %#"$54732$%#"$&546$76327668ʴhf킐&^zs,!V[vn)	6<ׂf{z}))Ns3(  @   +   4&#!"3!2#!"&5463!2#!"&5463!2@& && f&&&&@& && &4&&4& @&&&& && &&    ` B H   +"/##"./#"'.?&5#"&46;'&462!76232!46 `&C6@Bb03eI;:&&&4L4&F
+Z4&w4) ''
5r&4&&4&&4    }G   #&/.#./.'&4?63%27>'./&'&7676>767>?>%6})(."2*& @P9A
+#sGq]
+#lh<*46+(
	
+<
5R5"*>%</
+ '2@ 53*9*,Z&VE/#E+)AC
+(	2k<X1$:hI(B
"	!:4Y&>"/	+[>hy
+	   K 
+  ! / U i   %6&'&676&'&6'.7>%.$76$% $.5476$6?62'.76&&'&676%.76&'..676#"NDQt	
-okQ//jo_		%&JՂYJA-.--
+9\DtT+X?*<UW3'	26$>>W0{"F!"E 

^f`$"_]\<`F`FDh>CwlsJ@;=?s
:i_^{8+?`
)
O`s2RDE58/K       r 	    #"'>7&4$&5mī"#̵$5$"^^W=acE*c      z  k  ./ "&4636$7.'>67.'>65.67>&/>z X^hc^O<q+f$H^XbVS!rȇr?5GD_RV@-FbV=3!G84&3Im<$/6X_D'=NUTL;2KPwtPt= 
+
+&ռ
,J~S/#NL,8JsF);??1zIEJpqDIPZXSF6\?5:NR=;.&1          +!"&=!!%!5463!2sQ9Qs***sQNQsBUw
wUBF H CCTww      % 1   #"&=!"&=463!54632.  6  $$ 		


`?(r^aa		



+(_^aa         % 1  #!#"'&47632!2.  6  $$ 
		@	
`
(r^aa

+?		@	
(_^aa        /  #"'&476324&#!"3!26#!"&5463!2 &@& 
@


 w@www&@B@&

@
@www          "&462  >& $$  Ԗ*(r^aaԖԖ (^aa       ]  6  #"$547 32>%#"'!"&'&7>32'!!!2f:лѪz~u: 
((%`V6B^hD%i(]̳ޛ	*>6߅r#!3?^BEa߀#9       # 3  6'&632#"'&'&63232#!"&5463!2
+Q,&U#+'
 ;il4L92<D`w@www`9ܩ6ɽ]`C477&@www       D  +"&5#"'&=4?5#"'&=4?546;2%6%66 546;2
+	

+	
wwwwcB
+G]B
+Gty]ty
      # 3 C  #!+"&5!"&=463!46;2!24&#!"3!26#!"&5463!2@`@`^BB^^B@B^www@w@`@`2@B^^BB^^ww@w        ' / ? P  +5#"&547.467&546;532!764'!"+32#323!&ln@
:MM:
@nY*Yz--zY*55QDDU9pY-`]]`.X /2I$	t@@/!!/@@3,$,3$p$00&*0&&
!P@     R V  2#"&/#"&/#"&546?#"&546?'&54632%'&54632763276%>S]8T;/M77T</L7=Q7,i<R7,5T</L666U;/M5<U<,i6iQ=a!;;V6-j;V6-5	P=/L596Q</L5<U6-i;V7,7O;-I68i;k         ) I  2#!"&5463#9"'.'.'3!264&#!"2>7%>ww@ww!"5bBBb//*
+8(@(87)(8=%/'#?w@www#~$EE y &L(88e):8(%O r		
+
+		O           ? G Q a q  47&67>&&'&67>&"&#6$32#"#"'654   $&6  $6&$ CoL.*KPx.* 
+iSƓi
+7J?~pi{_Я;lLUZ=刈刈_t'<Z
 :!
+	@!
+j`Q7$ky, Rfk*4LlL=Z=刈           &$&546$7%7&'5>]5%w  &P?zrSF!|         & 0  	##!"&5#5!3!3!3!32!546;2!5463)
+)     ;));;)) &&        &@@&&&    	  
 6   $&727 "'%+"'&7&54767%&4762֬>4Pt+8?::
+		
+::AW``EvEEvE<."e$IE&O&EI&{h.`  m  "  &#"& '327>73271[
>+)@
(]:2,C?*%Zx/658:@#N
+C=E(oE=W'c:     #  !#"$&6$3 &#"32>7! ڝyy,{ۀہW^F!LC=y:yw߂0H\R%          " N ^   '&76232762$"&5462"&46274&"&'264&#"'&&#"32$54'>$ $&6$ G>>0yx14J55J5J44J5Fd$?4J55%6E#42F%$fLlLq>>11J44%&4Z%44J54R1F$Z-%45J521Z%F1#:ʎ 9LlL          # Q a  "'&7622762%"&5462"&546274&#"&'73264&#"'&&#"32654'>#!"&5463!2

55

**.>.-@-R.>.-@-<+*q6- -- 0<o,+< 3w@www

55

**.. -- .. --G*<N' ,-@-+*M <*2
zz
1@www      0 <  754&""&=#326546325##"&='26  $$ bZtt&sRQsZ<tsQ^aa>OpoOxzRrqP6z~{{Prr^aa    ]  0  54&"#"&5!2654632!#"&57265&<T<H<T<H<T<8v*<<*
++;;+l:=:*;;*      
   %!!"!!26#!"&5463!2@ ]]@w@www] @@www         	 
    % )  3!!#335!!5!5!%#!!5!5!%#HH{RHH{GG{)qGRRqRRq     	  # 0 @   #"'632 #"'632 &#"7532&#"#7532#!"&5463!2L5+*5L5+*5~}7W|3B}}JC7=}w@wwwDZQ[1N:_)i$)@www   
+ )	             6.#&#"'&547>'&#".'&'#"&5467%&4>7>3263232654.547'654'63277.'.*#">7?67>?>32#"'7'>3'>3235?KcgA+![<E0y$,<'.cI
+	,# '!;7$=ep	//7/
+D+R>,7*
+2(-#=
+	/~[(D?G  |,)"#+)O8,+'6	y{=@0mI#938OAE`
+-
+)y_/FwaH8j7=7?%a	%%!?)L
+J
9=5]~pj
+
 %(1$",I 
$@((
++!.S		-L__$'-9L	5V+	
+	6T+6.8-$0+
t|S1       6 ]   &#"'&#"67>76'&'&#"67>32764.#"#.32>67>7 $&54>7>7>7rJ@"kb2)W+,5/1		#
+
+Z
+-!$IOXp7sLCF9vz NAG#/ 5|Հ';RKR/J#=$,9,+$UCS7'2"1
+ !/
+,

+/--ST(::(ep4AM@=I>".)xΤlsY|qK@
+%(YQ&N
EHv~        < Z x  '#"&5467&6?2?'&"/.7.546326#"&'&/7264/7'764&"'?>>32.AUpIUxYE.A%%%h%%hJ%D,FZxULsTgxUJrVD%hJ%@/LefL.C%Jh%CVsNUxϠ@.FZyUHpVA%h&%%%Ji%CWpIUybJ/Uy^G,D%Jh%@UsMtUC%hJ%C-Kfy        E X [ _ g j    &/&'.''67>7>7&'&'&'>76763>7>#&'&'767672'%'7'+"&'&546323267>7%#"'4'6767672,32,+DCCQLDf'
+%:/d
+B	4@}
&!0$?Jfdf-.=6(:!TO?
+!IG_U%
+.
k*.=;	5gN_X	"
+##
+292Q41
*6nA;|
BSN.	%1$
6	$nk^        ' 7 G W g w       2+"&5463#!"&5463!254&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";26#"&=! B^^BB^^B:FjB^8((`(   `(8^BB^^B@B^"vE j^B (8(`( 8(         / ? O _ o         /?  2#!"&5463;26=4&+";26=4&+";26=4&+";26=4&+"54&+";2654&+";2654&+";2654&+";2654&+";2654&#!"3!2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";26@&& &&@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@ &&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @`  '  	"&5#"&5&4762!762$"&462B\B@B\BOpP.BB..BB.8$PO広      3 C Q  #".54>32#".546322#"&#"#"54>%".54>32%2#"&54>&X=L|<&X=M{<TMLFTMLFv"?B+D?BJpH=X&<{M=X&<|dMTFLMTF(<kNsI<kNsPvoJPwo/s.=ZYVӮvNk<JsNk<IshwPJovPJo  @     +"&7.54>2r_-$$-_rUU%&&5%ő            '-
"'.546762@FF$@B@$.&,&.]]|q #<<# (B  B               B  %'-%'-'%'-"'%&'"'%.5467%467%62@ll@ll,@GG&!@@@@@@!&+#+#6#+$*`:p:px
+p=`$>>$&@&@
+
+@&p@       	  & . A  !!"!&2673!"54 32!%!254#!5!2654#!%!2#!8Zp?vdΊens6(N[RWu?rt1SrF|iZ@7މoy2IMC~[R yK{T:         % , A G K  2#!"&5463!!2654'654.#532#532"&5!654&#"327#2#>!!ww@ww~uk'JTMwa|
+DH>I1qFj?w@wwwsq*4p9O*¸Z^qh LE
+"(nz8B
+M         ' ?   "&462 4&#"'.'324&#"3267 ##"&/6326 32 .ʏhhMALR vGhг~~KyO^
ʏʏВ*LM@!<I~~t\0          C M   4&"2 #"&'676&/632#!"&=3267%2654&#"&#"%463!2"&4632rqqtR8^4.<x3=RRw@w_h
+YӖ	K>שwwȍde)qrOPqȦs:03=<x!m@wwE\xgӕє%wwdȎ  V 
  - < K \  %.'.>7'.?67'67%'>&%'7%7./6D\$>	"N,?a0#O1G9'/P(1#00
($=!F"9|]"RE<6'o9%8J$\:\HiTe<?}V#oj?d,6%N#"
+HlSVY]C

=    @     C   4&"2!.#!" 4&"2+"&=!"&=#"&546;>3!232^^^Y	 	^^^`pp pp`]ib bi]~^^^e^^^ PppPPppP]^^]       3 ; E M  2+"&=!"&=#"&546;>;5463!232 264&"!.#!" 264&" ]`pp pp`]ibbi^^^dY	 	!^^^]@PppP@@PppP@]^^] ^^^e^^^      3  $#!#!"&5467!"&47#"&47#"&4762++&2
+$$
+2&&&4&&Z4&&##&&4&4&44&m4&m      + D P  4'&#"32763232674'&!"32763 3264'&$#"32763232> $$ g* o`#ə0#z#l(~̠)-g+^aaF s"	+g(*
3#!|
#/IK/%*%D=)[^aa        	!!!'!!77! ,/,-a/G      	 t  % / ; < H T b c q         %7.#"32%74'&"32765"/7627#"5'7432#"/7632#"5'7432#"&5'74632	#"/6327#"/6327#"/46329"&/462"&/>21"&/567632#!.547632 632
+	
	*


+			X		
+
+^

`		
+
+^b
	c
+	fu
U`59u
+
+
+
4J
+	
l~		~	F	
+	2


		m|O, 	


+

ru|	u

+"         
  ) 9    $7 $&=  $7 $&=  $7 $&=   $&=46w`ww`ww`wb` VTEvEEvETVTEvEEvET*VTEvEEvET*EvEEvEEvEEv         # ^ c t    #!"&5463!2!&'&!"&5!632#"&'#"/&'&7>766767.76;267674767&5&5&'67.'&'&#3274(8((88((`x
+c`(8 !3;:A0?ݫY

+	^U	47D$

	74U3I
|L38wtL0`((88(@(8(D9 8( Q1&(!;
+(g-	Up~R2(/{E(Xz*Z%(i6CmVo8            # T  #!"&5463!2!&'&!"&5!3367653335!3#4.5.'##'&'35(8((88((`x
+c`(8 iFFZcrcZ`((88(@(8(D9 8( kk"	kkJ	 	!	k          # S  #!"&5463!2!&'&!"&5!%!5#7>;#!5#35!3#&'&/35!3(8((88((`x
+c`(8 -Kg
+kL#DCJgjLD`((88(@(8(D9 8( jj	jjkkkk            # 8 C  #!"&5463!2!&'&!"&5!%!5#5327>54&'&#!3#32(8((88((`x
+c`(8  G]L*COJ?0R\wx48>`((88(@(8(D9 8( jjRQxk!RY            # * 2  #!"&5463!2!&'&!"&5!!57"&462(8((88((`x
+c`(8  Pppp`((88(@(8(D9 8( ppp  	          # * 7 J R  5#5#5#5##!"&5463!2!&'&!"&5##5!"&54765332264&"  <(8((88((`x
+c`(8 kޑcO"jKKjK`((88(@(8(D9 8( SmmS?M&4&&4            # 9 L ^  #!"&5463!2!&'&!"&5!#"/#"&=46;76276'.'2764'.(8((88((`x
+c`(8 6ddWW6&44`((88(@(8(D9 8( .	G5{{5]]$5995           # 3 C  #!"&5463!2!&'&!"&5!2#!"&5463#"'5632(8((88((`x
+c`(8 4LL44LL4l			`((88(@(8(D9 8( L44LL44L	
+Z
+	           # 7 K [  #!"&5463!2!&'&!"&5!>&'&7!/.?'&6?6.7>'(8((88((`x
+c`(8 `3333v

?

`((88(@(8(D9 8( &&-&&
?

+

  '  6  #'.
+'!67&54632".'654&#"32eaAɢ/PRAids`WXyzOvд:C;A:25@Ң>-05rn`H(' gQWZc[          
+     -  %7'	%'-'%	%"'&54762[3[MN
3",""3,3"ong$߆]gn$+)

")")"

         x # W  #"&#!+.5467&546326$32327.'#"&5463232654&#"632#".#"oGn\u_MK'̨|g?CM7MM5,QAAIQqAy{b]BL4PJ9+OABIRo?z.z
+n6'+s:zcIAC65D*DRRD*wyal@B39E*DRRD*             ' / 7     $&6$ 6277&47'  7'"' 6& 6'lLRRZB|RR>dZZ LlLZRR«Z&>«|R     !   $&54$7  >54 '5PffP牉@s-ff`-      c  6721>?>././76&/7>?>?>./&31#"$&(@8!IH2hM>'

+)-*
h'N'!'Og,R"/!YQG<I *1)

+(-O1D+0nz3fwG2'3rd1!sF0o .q"!%GsH8@-!5|w|pgS=
"B2PJfhGdR 	        ( P ] l y    &$'77&7567'676'"'7&'&'7&47'6767'627''6$ '67'654'7&'7'&'&'7&'5 &$  $6 $&6$ jj:,AAS9bb9R#:j8AܔA,zC9Z04\40Z9C!B;X0,l,0X;B*A8ܔA&#9j`b9S$#R99#&A8A`
䇇<Z<䳎LlLfBϬ"129,V<4!!88dpm"BV,92[P*V*P\MC
+
+CM\P*V*P]LD
+
+DL&BV*8*8!f!4<gmpd88!&!8*8*VB Z<䇇䇇LlL        9 E i s   %#"5432#"543275#&#"3254&'.547>54'63&547#5#"=3235#47##6323#324&"26%#!"&5463!2F]kbf$JMM$&N92<Vv;,&)q(DL+`N11MZ
+%G&54	#	i<$8&@0H12F1dw@wwwB?@UTZ3%}rV2hD5%f-C#C@,nO	a7.0x2	yRuR/u%6;&$76%$56S@www     D     < H l w  %4#"324&#"32!".5475&5475.546322#654'3%#".535"&#"5354'33"&+32 #"&54632S;<;||w
$+|('-GVVG-EznAC?H_`Rb]Gg>Z2&`9UW=N9:PO;:dhe\=R
++)&')-S99kJ<)UmQ/-Ya^"![Y'(<`X;_L6#)|tWW:;X          	#'#3#!"&5463!2)
+p*xeשw@www0,\8@www  9    I   #"'#"&'&>767&5462#"'.7>32>4."&'&54>32JrO<3>5-&FD(=Gq@C$39aLL²L4
+
&)
+@]v
q#CO!~󿵂<ZK#*Pq.%
L²LLarh({w؜\     i  &5467&6747632#".'&##".'&'.'#".5467>72765'./"#"&'&5
}1R<2"7MW'$	;IS7@5sQ@@)R#DvTA;
+0x
I)!:>+<B76:NFcP:SC4rl+r E%.*a-(6%('>)C	6.      >  
+  ! - I [   4&#"324&#"3264&#"324&#"326&#"#".'7$4$32'#"$&6$32D2)+BB+)3(--(31)+BB+)4'--'4'#!0>R	HMŰ9ou7ǖD䣣
+R23('3_,--,R23('3_,--,NJ
+?uWm%        #"'%#"'.5	%&'&7632! 
;
	`u%"( !]#c)(	            #"'%#"'.5%&'&76	! 
	(%##fP_"( !)'+ŉ       4 I   #"$'&6?6332>4.#"#!"&54766$32#!"&=46;46;2 z䜬m
+IwhQQhbF*@&('k@z
+	
+_hQнQGB'(&*eozΘ@@`             >.  $$ ffff^aa fff^aa  >   "&#"#"&54>7654'&#!"#"&#"#"&54>765'46.'."&54632326323!27654'.5463232632,-,,",:!
%]&
%@2(/.+*)6!	<.$..**"+8#

#Q3,,++#-:#"</$)
+
+w
+
+
+,*
+
+x9-.2"'
+,,
+@&,,
+Qw
+,     ,  #"+"&5#+"&5&'&'&547676)2%2$l$#l#b~B@XXyo2$CI@5$$>$$/:yuxv)%$ 	          / ? C G  %!5%2#!"&5463!5#5!52#!"&54632#!"&5463#5!5`&& &&  && &&&& &&@& && &  & && & & && &      %  2 &547%#"&632%&546 #"'6\~~\h
+~\h\ V
+VVV       % 5  $4&#"'64'73264&"&#"3272#!"&5463!2 }XT==TX}}~>SX}}XS>~}w@www~:xx:~}}Xx9}}9xX}@www        / > L X d s   .327>76 $&6$32762#"/&4762"/&47626+"&46;2'"&=462#"'&4?62E0l,
+
*"T.D@Yooo@5D
+
+[		
+
+Z
+Z
+
+		[	 ``[
+
+
+
+Z
+
+	2
+,l0
+(T".D5@oooY@D,
+
+Z
+
+		[			[		
+
+Z
+``EZ
+
+		[		
+         5  %!  $&66='&'%77'727'%amlLmf?55>fFtuutFLlLHYCL||LY˄(E''E*(           / ? I Y i y      %+"&=46;2+"&=46;2+"&=46;2+"&=46;2%"&=!#+"&=46;2+"&=46;2+"&=46;2+"&=46;2!54!54>$ +"&=46;2#!"&=@&&@3P
>P3&&rrr&&rrr
+he
+
4LKM:%%:MKL4WT&&            % / 9  ##!"&563!!#!"&5"&5!2!5463!2!5463!2&& &  & &&   &&& i@ &&@& 7         '#5&?6262%%o;j|/&jJ%p&j;&i&p/|jţ%Jk%o%      	  : g  "&5462#"&546324&#!"263662>7'&75.''&'&&'&6463!276i~ZYYZ~@OS;+[G[3YUD#o?D&G3I=JyTkBuhNV!WOhuAiSy*'^CC^'*SwwSTvvTSwwSTvvWID\_"[gq# /3qFr2/ $rg%4
+HffHJ4   d       #!#7!!7!#5!VFNrmNNNN!     Y  + ? N e  %&'&'&7>727>'#&'&'&>2'&'&676'&76$7&'&767>76'6#
<;11x#*#
G,T93%/#0vNZ;:8)M:(	&C.J}2	%0
 	^*
+JF	
+&7'X"2LDM"	+6
+M2+'BQfXV#+]
+#'
+L/(eB9   
+             # , 8  !!!5!!5!5!5!5#26%!!26#!"&5!5          &4& &pPPp        @@&&@!&@PppP@  * 
 	  9 Q  $"&54627"."#"&547>2"'.#"#"&5476$ "'&$ #"&5476$ (}R}hLK
+NN
+ Ud:
+xx
+8
+
+
 ,, |2222
+MXXM
+
ic,>>,
+
+		
+̺
+
  
         ' / 7 ? K S c k {  4&"2$4&"2 4&"2 4&"2 4&"2 4&"2 4&"2 4&"24&"26 4&"24&#!"3!264&"2#!"&5463!2KjKKjKjKKjKjKKjKKjKKjKjKKjKjKKjKKjKKjKjKKjKLhLLhLKjKKj& && &KjKKjL44LL44L5jKKjKKjKKjKjKKjKjKKjKjKKjKjKKjKjKKjKjKKjK4LL44LLjKKjK && &&jKKjK  4LL4 4LL  	   ' E  !#"+"&7>76;7676767>'#'"#!"&7>3!2W",&7'	#$	&gpf5O.PqZZdS-V"0kqzTxD!!8p8%'i_F?;kR(`
+!&)   '    
+   (  2 !&6367 !	&63!2!
+`B1LO(+#=) heCQg#s`f4#6q'X|0-g   	      > I Y  #6?>7&#!%'.'33#&#"#"/3674'.54636%#"3733#!"&5463!24:@7vH%hEP{0&<'VFJo1,1.F6A#L4 4LL4 4L"%	
+ 
+7x'6
O\JYFw~v^fH$ !"xdjD"!6`J 4LL4 4LL   	    + 3 @ G X c g q z     -<JX{  &#"327&76'32>54.#"35#3;5#'#3537+5;3'23764/"+353$4632#"$2#462#"6462""'"&5&5474761256321##%354&'"&#"5#35432354323=#&#"32?4/&54327&#"#"'326'#"=35#5##3327"327'#"'354&3"5#354327&327''"&46327&#"3=#&#"32?"5#354327&3=#&"32?"#3274?67654'&'4/"&#!"&5463!2_gQQh^_~\[[\]_^hQQge<F$$$ !!&&/!/

!!

00/e&'!"e$
+		'!!''
+	8''NgL4 4LL4 4LUQghQUk=<Sccc,-{kjUQhgQ



9
+
,&W &$UK$$KK$$KDC(>("
+!
+=))=2( '! 'L#(>(
&DC(>(zL#DzG)<) 4LL4 4LL    	  
+    B W b j q }    +532%+5324&+32763#4&'.546327&#"#"'3265#"&546325&#"32!26 4&"2%#'#735#535#535#3'654&+353#!"&5463!29$<=$@?SdO__J-<AA@)7")9,<$.%0*,G3@%)1??.+&((JgfJ*A!&jjjGZYGиwsswPiL>8aA	!M77MM77M3!
4erJ]&3YM(,
+,%7(#)
,(@=)M%A20C&Mee(X0&ĖjjjV	8Z8J9N/4$8NN88NN      	       # & : O [   	$?b  3'7'#3#%54+32%4+324+323'%#5#'#'##337"&##'!!732%#3#3##!"&53733537!572!56373353#'#'#"5#&#!'#'#463!2#"5#"5!&+&+'!!7353273532!2732%#54&+#32#46.+#2#3#3##+53254&".546;#"67+53254&.546;#"#'#'##"54;"&;7335wY-AJF=c(TS)!*RQ+*RQ+Y,B^9^Ft`njUM')	~PS PRm٘M77Mo7q
+
+@)U	8"E(1++NM77Mx378D62W74;9<-A"EA0:AF@1:ؗBf~~""12"4(w$#11#@}}!%+%5(v$:O\zK?*$\amcrVlOO176Nn<!E(=<&l/<<
[ZZYY891767OO7==..//cV==::z,,,,aa,,7OO7Z::;;Y
fcW(		"6-!c(		!5	#
+bt88176tV:
+&$'*9	%e#:
%'*9B<<;
+&(        	    # : S n       #"&54632%#76;2#"&54632%4&+";2?>23266&+"&#"3267;2 4&+"'&+";27%4&+";2?>23266&+"&#"3267;254+";27#76;2#!"&5463!23%#2%%,, _3$$2%%M>ALVb5)LDHeE:<
EMj,K'-R
M ~M>ARVb5)LEHeE:<
E
JABI*'!($rL4 4LL4 4Lv%1 %3!x*k$2 %3!;5h
+n
+a
+!(lI;F	
+	
+	rp
+p8;5h
+
t
+a
+!(lI;F`	#k 4LL4 4LL   
+  	  
+  2 H W [ l t    #"'5632#6324&'.54327&#"#"&'32767#533275#"=5&#"'#36323#4'&#"'#753276 4&"24'&#"327'#"'&'36#!"&5463!2=!9n23BD$ &:BCRM.0AC'0RH`Q03'`.>,&I / *
 /
+
+8/n-(G@5$ S3=,.B..B02^`o?7je;9G+L4 4LL4 4LyE%#	Vb;A
!p &'F:Aq)%)#orgT$v2 8)2z948/{8AB..B/q?@r<7(g/ 4LL4 4LL        ?  #!"&'24#"&54"&/&6?&5>547&54626=L4@ԕ ;U g3
+
+T
+2RX='8P8|5
+4Ljj U;Ig@
+	
+`
+ "*\(88(]k
+          & N  4#"&54"3	.#"#!"&'7!&7&/&6?&5>547&54626;U gIm*]Z0L4@ԕ=o=CT
+
+T
+2RX='8P8|5
+ U;IgXu?bl3@4Ljja`
+	
+`
+ "*\(88(]k         / 7 [  %4&+";26%4&+";26%4&+";26!'&'!+#!"&5#"&=463!7>3!2!2 @@ @@ @@0
+
+o`^BB^`5FN(@(NF5@@@u		@LSyuS@%44%     , < H  #" 54 32+"=4&#"326=46;2  >.  $$ ~Isy9"SgR8vHD	w
+ffff^aam2N+	)H-mF+10*F		+fff^aa        b  4&#"32>"#"'&'#"&54632?>;23>5 !"3276#"$&6$3  k^?zb=ka`U4J{K_/4^W&	vx :XB0܂ff)
+fzzXlz=lapzob35!2BX
+G@8'	'=vN$\ff	1
	SZz8zX          # (   "/+'547'&4?6276	'D^h
+
+
+
+i%5 @%[i
+
+
+
+h]@ ]h
+
+
+
+i%@ 5%[i
+
+
+
+h^@@       )  2 #"&5476 #".5327>OFi-ay~\~;'S{s:D8>)AJfh ]F?X{[TC6LlG]v2'"%B];$         - o     %!2>7>3232>7>322>7>32".'.#"#"&'.#"#"&'.#"#546;!!!!!32#"&54>52#"&54>52#"&54>52  -P&+#($P.-P$'#+&PZP&+#"+&P-($P-.P$(#+$P.-P$'#+&P-.P$+#pP@     @Pp H85K"&Z H85K"&Z H85K"&Z@Pp@@@pMSK5, :&LMSK5, :&LMSK5, :&        !!3	!	    @  @@           	#"$$3!!2 "jaѻxl alxaa j         !!3/"/'62'&63!2   'y
+
+`I
+
+y My
+
+`I
+
+y'       W `  #".'.#"32767!"&54>3232654.'&546#&'5&#"
+
+4$%Eӕ;iNL291 ;XxR`f՝Q8TWiWgW:;*:`Qs&?RWXJ8oNU0J1F@#)
+[%6_POQiX(o`_?5"$iʗ\&>bds6aP*< -;iFn*-c1B       W g  4'.'4.54632#7&'.#"#"'.#"32767'#"&54632326#!"&5463!2#$(	1$6]'
+!E3P|ad(2S;aF9'EOSej]m]<*rYshpt.#)$78L*khw@wwwB
+
%
$/$G6
+sP`X):F/fwH1pdlqnmPHuikw_:[9D'@www            3   4."2>$4.#!!2>#!".>3!2QнQQнQQh~wwhf ff нQQнQQнQZZQffff           #  >3!2#!".2>4."f ff нQQнQQffffQнQQн      	      , \  !"&?&#"326'3&'!&#"#"'     5467'+#"  327#"&463!!'#"&463!2632(#AHs9q  ci<=
+#]<OFA!re&&U&& ![eF U?g4_a?b+r7&4&&4&p,           + K   4&"2$4&"2.#!"3!264&#!"3!2#"&=!"&=#47>$ KjKKjKKjKKjH#j#H&&&KjK KjKg	V	ijKKjKKjKKjK..n(([5KK55KK5[poNv<<vN:f      . R   #!"&463!24'!"&5463!&$#"!2#!32>+#" '#"&546;&546$32 322$B$22$$*$22$Xڭӯ$22$tX'hs2$ϧkc$22$1c$2F33F3VVT2#$2ԱVT2#$2g#2UU݃
+2$#2UU1݃2         , u   54#"67.632&#"32654'.#"32764.'&$#"7232&'##"&54732654&#"467&5463254632>32#"'&ru&9%"*#͟ <yK0Og" 
&9B3;㛘8s%+DWXRD= @Y%	!Q6R!4M8+6rU^z=)RN.)C>O%GR=O&^opC8pP*bY
+_#$N Pb@6)?+0L15"4$.Es
+5IQ"!@h"Y7e|J>ziPeneHbIlF>^]@n*9
         6 [ _  3#"&54632#.#"32%3#"&54632#.#"326%4&'.'&! ! 7>7>!
=39?
+6'_
>29?
+5'17m-VU--,bW. 뮠@Fyu0HC$뮠@Fyu0HC$L=??
<=! A	<          `  ;  +"&54&#!+"&5463!2#!"&546;2!26546;2pЇ0pp@I pp        > S c  +"&=46;254&+"&+";2=46;2;2=46;2;2%54&#!";2=;26#!"&5463!2A5DD5A7^6a7MB55B7?5B~```0`rr5A44A5v5AA5f*A``0`       	   !!!!	#!"&5463!2ړ7H7jv@vvv'  :@vvv          M U a h m r x                  #"'!"'!#"&547.547.54674&547&54632!62!632!#!627'!%!"67'#77!63!!7357/7'%#	%'3/&=&'	5#?&5476 !p4q"""6" 'h*[
|*,@?wAUMpV@˝)Ϳw7({*U%K6=0(M		"!O		dX$k
+!!!
b	
+[TDOi
+@6bxBAݽ5

ɝ:J+3,p
x1Fi
+(R      
   463!#!"&5%'4&#!"3`а@..@A-XfB$.BB..C     } 
+   )   &54$32 &'  % &&'6 7"w`Rd]G{o]>p6sc(@wgmJPAjyYWa͊AZq{HZ:<dv\gx>2ATKn       + ;  "'&#"&#"+6!263 2&#"&#">3267&#">326e~└Ȁ|隚Ν|ū|iyZʬ7Ӕްr|uѥx9[[9jj9ANN+,#ll"BS32fk     [   / ? \  %4&+";26%4&+";26%4&+";26%4&+";26%#!"&5467&546326$32]]eeeeee$~i
+qfN-*#Sjt2"'qCB8!   '  >    	 
     ! % ) - 1 5 9 = A E I M Q U Y ] a g k o s w {           !	%!	5!#5#5#5#5#57777????#5!#5!#5!#5!#5!#5!#5!#5#537#5!#5!#5!#5!#5!#55#535353535353%"&546326#"'#32>54.&54>3237.#" Q%%%%%%%%%?iiihOiixiiyiixiiArssrrssr%sssrrssNs%%%%%%%%%%'<D<'paC_78#7PO7)("I$	75! RAb(ssssssssss"/!".""."
!."".!/^.".^.".]/".$$$$$$$$$$$$$$$$Os$$$$$$$$$$$$$$sO$sssssssssss#}$)	13?*
+,./:
+-      s    *   4&"2$4&"2#!"&5463!2!5463!2_?--??-,@@,-?pq8,??,D,??,,??      (    Z  2#".#"3267>32#".54 3232654&#"#"&54654&#"#"&547>326ڞUzrhgrxSПdU <ex՞Zf_gן:k=2;^9Œ7\xx\7K=5XltֆWW{e_%N%,%CI%      # + W   4&+54&"#";26=32 "&462"&462!2#!"&54>7#"&463!2!2&&4&&&&4&KjKKjKjKKj && &%&& &&4&&&&4&&&5jKKjKKjKKjK %z
+0&4&&3D7&4&
%&          ' S   4&"4&"'&"27 "&462"&462!2#!"&54>7#"&463!2!2 &4&4&4& 4 KjKKjKjKKj && &%&& &&4&%&&ے&4  "jKKjKKjKKjK %z
+0&4&&3D7&4&
%&           	    &  	!'!	!%!!!!%"'.763!2o]FooZY@:@!! gf /  /      I    62'"/"/"/"/"/"/"/7762762762762762762%"/77627&6?35!5!!3762762'"/"/"/"/"/"/%5#5!4ZSS6SS4SS4SS4SS4SS4SS4ZSS4SS4SS4SS4SS4SS4S-4ZSS4S@   4SS4ZSS6SS4SS4SS4SS4SS4S@ ZSSSSSSSSSSSSSSZSSSSSSSSSSSSSyZRRR@%:=
+:+:
+=RRZSSSSSSSSSSSSS         C v  !/&'&#""'&#"	32>;232>7>76#!"&54>7'3&547&547>763226323@``` 
+VFaaFV
+

$.
+

+.$

yy	.Q5ZE$ ,l<l, $ER?Y*@@2	!#""#!	yy=rna@@(89*>*%>>%*>*98(QO!       L \ p  '.'&67'#!##"  327&+"&46;2!3'#"&7>;276;2+6267!"'&7&#"(6&#"#"'DgOOG`n% ELL{@&&Nc, sU&&!Fre&&ss#/,<=
+#]gLoGkP'r-n&4&2-ir&&?o 
4_      5 O W  ! .54>762>7.'.7>+#!"&5#"&5463!2"&462{{BtxG,:`9(0bԿb0(9`:,GxtB&@& &@&K55K`?e==e?1O6#,
+#$
+,#6OO&&&&5KK      ?  !"'&'!2673267!'.."!&54632>32 1
+4q#F""8'go#-#,"tYg>oP$$Po> 	Zep#)R0+I@$$@I+     + 3   32++"&=#"&=46;.7>76$     @ᅪ* r@@r      ' /  2+"&5".4>32!"&=463      &@~[՛[[u˜~gr&`u՛[[՛[~~@r         = E   32++"&=#"&=46;5& 547&'&6;22676;2      >``@``ٱ?E,,=?rH@``@GݧH`jjr     B J  463!2+"&= 32++"&=#"&=46;5.76 76%#"&5        &@~``@`` vX r&@``@+BF`r       k s  463!2+"&= 32++"&=#"&=46;5& 547'/.?'+"&5463!2+7>6 %#"&5        &@~``@``~4e	
+0
+	io@& jV	
+0
+	Z9 r&@``@Gɞ5o
+,
+sp &@k^
+,
+c8~~`r       8 > K R _  32++"&=!+"&=#"&=46;.76 766 6'27&547&#"  &'2  #"@ @'Ϋ'sggsww@sgg@@-ssʃl99OOr99     F P ^ l  463!2+"&= $'.7>76%#"&=463!2+"&=%#"&54'>%&54 7.#" 2 54&'   &@L?CuГP	vY  &@;"  ޥ5݇ޥ5`&_ڿgwBF@&J_	s&&?%x%x      J P \ h  463!2+"&= '32++"&=#"&=46;5.76 76632%#"&56'  327&7&#"2  #" &@L? ߺu``@``}
ຒɞ  ueeu9uee&_"|N@``@""|a~lo99r9@9       ; C  2+"&5"/".4>327'&4?627!"&=463      &@Ռ		.	
+N~[՛[[u˜N		.	
+gr&`֌
+	.		Ou՛[[՛[~N
+	.		@r       9 A   '.'&675#"&=46;5"/&4?62"/32+     '֪\
+	.		4		.	
+\r|ݧ憛@\		.	
+
+	.		\@r     ~ 9 A  "/&4?!+"&=# #"$7>763546;2!'&4?62      m		-
+
+@ݧ憛@&
+
+-		@rm4
+
+-		ٮ*		-
+
+r           +"&5& 54>2      @[՛[rdGu՛[[r                 ".4>2 r[՛[[՛r5՛[[՛[[      $  2#!37#546375&#"#3!"&5463#22#y/Dz?s!#22#2##2S88	2#V#2        L  4>32#"&''&5467&5463232>54&#" #"'.Kg&RvgD
+$*2%	+Z hP=DXZ@7^?1
۰3O+lh4`M@8'+c+RI2
+\ZAhSQ>B>?S2Vhui/,R0+	ZRkm      z  + > Q   2#"'.'&756763232322>4."7 #"'&546n/9bLHG2E"D8_
+pdddxO"2xxê_lx2X	
+!+'5>-pkW[C
I
+I@50Oddd˥Mhfxx^ә  	           # ' + /  7!5!!5! 4&"2!5! 4&"24&"2!!!     8P88P   8P88P88P88P     P88P8 P88P88P88P8          + N    &6 !2#!+"&5!"&=463!46;23!#!"&54>32267632#"_>@`





`

 L4 Dgy 6Fe=OOU4L>



`

`

4L2y5eud_C(====`L4       3 V    &6 #"/#"/&54?'&54?6327632#!"&54>32 7632_>			
		
						
		
			%%Sy 6Fe=J%>	
						
		
						
	%65%Sy5eud_C(zz.!6%          $  !2!!!46;2 4&"2!54&#!" &   &&@ԖV@& &@  &&ԖԖ@&             3!!!	!5!'!53!!	# 7IeeI7 CzC l @@  @            #  2#!"&?.54$3264&"!@մppp  ((ppp              # + /  2#!"&?.54$3264&"! 264&"!@մ^^^@^^^@ ((^^^  ^^^         v    (  #"'%.54632	"'% 	632U/@k0G,zD#[k#
+/t g
+F
Gz        	#'#3!)
+p*xe 0,\8     T   # / D M %2<GQ^lw
  &'&676676&'&7654&'&&546763"#"'3264&7.>&'%'.767&7667&766747665"'.'&767>3>7&'&'47.'.7676767&76767.'$73>?>67673>#6766666&'&6767.'"'276&67&54&&671&'6757>7& "2654&57>&>&'5#%67>76$7&74>=.''&'&'#'#''&'&'&'65.'&6767.'#%&''&'#2%676765&'&'&7&5&'6.7>&5R4&5S9
W"-J0(/r
V"-J0(.)#"6&4pOPppc|o}vQ[60XQW1V	
#5X		N"&
.
+)
+D>q J:102(z/=f*4!>S5b<U$:I o<G*	,
&"O	X5
+#!
+
	R N#
C
83J*R	!(D
#%37	;$-.
(,覦6ij
+	")9
+E%!B83
+	j96/,	:QD')yX#63V
ba	,
+UeLPA@*	̳`Xx*&E
+V36%	B3%	B3XA	
#!.mU"A	
#!.mUB-#2+Jiiim-C<I(m8qF/*)0S
+		
+I
+E5&+>!%
+(!$p8~5..:5I

~T
+4~9p# !
+)& ?()5F	1	
	
+ d%{v*:
 @e
+s|D1d {:*dAA|oYk'&<tuut&vHCXXTR;w
71
Z*&'
1	9?	.

$Gv5k65P<?8q=4a	
SC"1#</6B&!ML	^;6k5wF1<P    C	   ;  $"&462"&46232>.$.`aasa``Z9k'9؋ӗa-*Gl|Me_]`F&OܽsDD!/+``aa``a1<YK3(
+ /8HQelAZ3t_fQP<343J;T7Q           + ? K g w     $6&$  $&62+"5432+"&=.54  $;26=462;26=4& 4&#!"3!26)߄4R4߄mlLr {jK#@#Qa^@@`&&&&߄4R4ĎLlLN @K5#:rr:#5K^aa``]]`` && &&       	     /  !3#4&#!"3!265##!"&5463!22 @ K5^BB^^B@B^5K    @5KB^^BB^^BK        	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	    +  2##!"&5463!2#4&#!"3!2655KK5^BB^^B@B^@K55KB^^BB^^B` @    {    #!&'#"'&547632m*
+0(('($0K
+**      %   3#!3# '!#53 5#534!#53 6!3@@@@pp@@@@@pp@`     	          + / 7 ; A  #3!5!!3#!!5!35!355#%53#5!#35#!!!!!!!!                           
+   	    # ' + / 3 ? C G W  #3!5!!35!!3#!!5!#!5!3535!355#%#3%!53#5!#35#!5##5!3!5!3!5	               !"&5463!2!"! `(88(@(8`(8}22R `8(@(88(`8HR22         #  #6?6%!!!46#!"&5463!2x  8(`( (88(@(8 
+  (8 (`(8(@(88      	    ' A T d   +5326+5323##"' %5&465./&76%4&'5>54&'"&#!!26#!"&5463!2
+
+
iLCly5)*Hcelzzlec0hb,,beIVB9@RB9J_L4 4LL4 4L44%2"4:I;p!q4bb3p(P`t`P(6EC.7BI6 4LL4 4LL    	     . >  $4&'6 #".54$ 4.#!"3!2>#!"&5463!2Zjbjj[wٝ]>oӰٯ*-oXL4 4LL4 4L')꽽)J)]wL`ֺ۪e 4LL4 4LL           ;  4&#!"3!26#!"&5463!2#54&#!";#"&5463!2


@
^BB^^B@B^


B^^B@B^`@


MB^^B@B^^>


^B@B^^         5 = U m  	!	!!2#!"&=463!.'!"&=463!>2!2#264&"".54>762".54>762  ?(``(?b|b?B//B/]]FrdhLhdrF ]]FrdhLhdrF@@@(?@@?(@9GG9@/B//BaItB!!BtIѶ!!ьItB!!BtIѶ!!ь        - M  32#!"&=46;7&#"&=463!2#>5!!4.'.46ՠ`@`ՠ`MsF FsMMsF FsMojjo@@jj@@<!(!!(!        - 3 ?  32#!"&=46;7&#"&=463!2+!!64.'#ՠ`@`ՠ` 		DqLLqDojjo@@jj@@B>=C          - 3 ;  32#!"&=46;7&#"&=463!2+!!6.'#ՠ`@`ՠ` UVU96gg6ojjo@@jj@@β**ɍ        - G  32#!"&=46;7&#"&=463!2#>5!!&'.46ՠ`@`ՠ`MsF FsMkkojjo@@jj@@<!(!33!(!          9 I  2#!"&=4637>7.'!2#!"&=463@b":1P4Y,++,Y4P1:"":1P4Y,++,Y4P1:"b@@@7hVX@K-AA-K@XVh77hVX@K-AA-K@XVh7         A j  "#54&#"'54&#"3!26=476=4&#"#54&'&#"#54&'&'2632632#!"&5&=4632>326 5K @0.B @0.B#6'&&
+l
+@0.B 2'	.B A2TA9B;h" d
mpPTlLc_4.HK5]0CB.S0CB./#'?&&)$$)0CB. }(AB.z3M2"61d39L/PpuT(Ifc_E       `  1 X   "#4&"'&#"3!267654&"#4&"#4&26326#!"&'&5463246326\B B\B&@5K&@"6LB\B B\B sciL}QP<m$3jN2cB.p.BB. 3K5+" 3," .BB..BB..G=ci(+lOh7/ DVj"c=        & 5 J b   #"'&=.547!"&46;'.54632!2327%.54&#"327%>%&#"!"3!754?27%>54&#!26=31?>Ijjq,J[j.-tjlV\$B.R1?@B.+?2`$v5K-%5KK5.olRIS+6K5̈$B\B 94E.&ʀ15uE&
+ԖPjjdXUGJ7!.B
+
+P2 .B
+
%2@	7K5(B@KjKj?+f UE,5K~!1.>F.F,Q5*H          $ b  2#!"&=%!"&=463!7!"&'&=4634'&#!">3!!"3!32#!"3!23!26=n$<vpPPpPpw*RdApP]'@A&
+3@&H-[(8@
+2EB^&1
=&& 81PppPpP wcOg Ppc
4& #.& &,,:8(%^B &
.&&       2 t  "&'&54'&5467>32>32>32#"#.#"#.#"3!27654&#"547654&#"#654&Mye
t|]WSSgSY\x{
+70"1i92DU1&=		=&0@c	>&/Btd4!*"8K4+"@H@/'=	t? _K93-]
+UlgQQgsW
+]# +i>p&30&VZ&0B/
%3B."to ){+C4I(
/D0&p0D      3 [ _ c g  "'&#"3!2676=4&"#54&#"#54&#"#4&'2632632632#!"&'&5463246#!#!#5K)B4J&@#\8P8 @0.B J65K J6k
+cJ/4qG^\hB2<m$3iG;     K5 6L4+" 3p`b)<8(=0CB.@Z7OK5`:7OkEW^tm@Q7/ DVi##j       % 4 I a   2#!"&5&546325462632"32654&"3267654&76;74&"#.#"2676=#"&'+53264&#!"3</UXdjjPԖEu!7JG72P
+
+B%
+B.!7	@Af+?jKjK@B(5K,EUH*5Q,F.F>.1!~K5y?^\Vljt-.j[J,qjjI7$?1R.B+.B$`2?gvEo.5KK5%-K6+SIR[&.E49 B\B$5K           G  #!+"&5!"&=463!2+"&'+"'+"'&5>;2>76;2Y




M	
+
.x	-
+	N	
+
+
	
u

,
u
+?

+LW
+
+#	          	 * : J  4'&+326+"'#+"&5463!2  $6&  $&6$ <!T{BH4	&>UbUI-uu,uuڎLlLAX!Jmf\$
+6uuu,KLlL        - [ k {  276/&'&#"&5463276?6'.#"!276/&'&#"&5463276?6'.#"  $6&   $&6]h-%Lb`J%E5
,5R-h
+-%Lb`J%E5
,5R-'uu,uulL/hR

dMLcNhR
dMLcN1uuu,LlL   @     	'	7	'7	``H ``H !``H  ```H`            '  %		7'	7'7	'  $&6$ X`(W:,:X`(WLLlLX`(W:BX`(XLlL 
+  	 $    % / 9 E S [   #"&54632$"&4624&"26$4&#"2%#"&462$#"&4632  #"32&! 24>      !#"&'.'#"$547.'!6$327&'77'&77N77N'qqqqqPOrqEsttsst}||}uԙ[WQ~,>	nP/RU P酛n	>,m'77'&77N77N6^Orqqqqqqt棣棣(~||on[usј^~33pc8{y%cq33dqp  f   	  L     54    "2654"'&'"/&477&'.67>326?><
+x
+,

(-'sIVCVHr'-(

+$0@!BHp9[%&!@0$u
+
+]\\]-$)!IHV
D
VHI!)$-#3      6 > N   "&462."&/.2?2?64/67>&  #!"&5463!2]]]3
+$;
+&|v;$
+(CS31	=rM=	4TC(Gzw@www]]]($-;,540=	sL	=45,;@www       (  2#"$&546327654&#"	&#"AZ\@/#%E1/##.1E$![A懇@@\!#21E!6!E13"|!     	 g L   &5& '.#4&5! 67&'&'5676&'6452>3.'5 A5RV[t,G'Q4}-&<C!l n?D_@Փ>r!
G;>!g12sV&2:#;d=*'5E2/..FD֕71$1>2F!&12,@K       
+  r    #"&5462>%.#"'&#"#"'>54#".'7654&&5473254&/>7326/632327?&$  $6 $&6$ !&"2&^	u_x^h
;J݃HJǭ
qE
+Dm!
M
G?̯'%o8
+9U(F(ߎLlL&!&!SEm|[n{[<ɪ
+"p C
+Di%
(KHCέpC
+B
m8	
@Kނ
HF(LlL         " *  6%&6$	7&$5%%6'$2"&4}x3nQH:dΏXe8 z'	li=!7So?v      M    '&7>>7'7>''>76.'6' El:Fgr
*t6K3UZ83P)3^I%=9	)<}Jk+C-Wd	&U -TE+]Qr-<Q#0
+C+M8	3':$
_Q=+If5[ˮ&&SGZoMk ܬc         # 7  &#"327#"'&$&546$;#"'654'632եfKYYKf¥yͩ䆎L1hvvƚwwkn]*]nlxDLw~?T8bb9SA}       + 5 ? F  !3267!#"'#"4767% !2$324&#"6327.'!.#" ۔c28Ψ-\? @hU0KeFjTlyE3aVsz.b؏W80]TSts<hO_u7bBtSbF/o|V]SHކJ        3  4&#!"3!26#!!2#!"&=463!5!"&5463!2 


@
^B `` B^^B@B^ 

@
@B^@@^BB^^       >  3!"&546)2+6'.'.67>76%&F8$.39_0DD40DD0+*M7{L *="#
+U<-M93#D@U8vk_Y	[hD00DD00Dce-JF1BDN&)@
/1 d      y  % F    #"'&'&'&'&763276?6#"/#"/&54?'&763276"&'&'&5#&763567632#"'&7632654'&#"32>54'&#"'.5463!2#!3>7632#"'&'&#"'&767632yqoq>*432fba
+$B?
+	>B
+BB
AA.-QPPR+	42
+%<ciђ:6&hHGhkG@n`IȌ5
+!m(|.mzyPQ-.	
	je	
q>@@?ppgVZE|fb6887a
+%RB?
+=B
+ABBAJvniQP\\PRh!cDS`gΒ23geFGPHXcCI_ƍ5"	
+n*T.\PQip
[*81
+/
9@:       > t   %6#".'.>%6%&7>'.#*.'&676./&'.54>754'&#"%4>327676=
>vwd"
+
l"3	/!,+	j2.|%&
(N&wh>8X}xc2"W<4<,Z~fdaA`FBIT;hmA<7QC1>[u])		u1V(k1S)
+-	0B2*%M;W(0S[T]I)	A 5%R7<vlR12I]O"V/,b-8/_        # 3 C G k  2#!"&546;546;2!546;2%;2654&+";2654&+"!32++"&=#"&=46;546;2 4LL44LL4^B@B^^B@B^ @@ @@ @@ L4 4LL4 4L`B^^B``B^^B``    @@@          # 3 W  #!"&=463!2!!%4&+";26%4&+";26%#!"&546;546;2!546;232@ @@ @@L44LL4^B@B^^B@B^4L@@   N 4LL4 4L`B^^B``B^^B`L       # ' 7 G k  %"/"/&4?'&4?62762!!%4&+";26%4&+";26%#!"&546;546;2!546;232W.	
+
+	.				.	
+
+	.			 @@ @@L44LL4^B@B^^B@B^4L.				.	
+
+	.				.	
+
+   N 4LL4 4L`B^^B``B^^B`L         ( 8 \  	"'&4?6262!!%4&+";26%4&+";26%#!"&546;546;2!546;232 
+
+		.	
+
+	.	`@@ @@L44LL4^B@B^^B@B^4L< 		 
+	.				.	:   N 4LL4 4L`B^^B``B^^B`L         2632632#!"&5463&&&&&& &&&&&&         #   27+"&5     %264&#"26546>&&T,X q&&1X,LΒw     %    % ;  #!"&5463!546;2!2!+"&52#!"/&4?63!5!
+
+(&&@&& ( &&@&&(
+
+(  
+
+& &@&&@ &&& &
+
+        # '  '%#"'&54676%6%%
+hh @` !  !  
+
+
+         # 5  2#"&5476!2#"&5476!2#"'&546 
 

 
 
  
@ 
 
@ 
  
+@
 
+
             8   4&"2$4&"2$4&"2 #"'&'&7>7.54$ KjKKjKjKKjKjKKjdne4"%!KjKKjKKjKKjKKjKKjK.٫8
+!%00C'Z'             . W   "&462"&462"&462 6?32$6&#"'#"&'5&6&>7>7&54>$ KjKKjKjKKjKjKKjhяW.{+9E=cQdFK1A
+0)LlLjKKjKKjKKjKKjKKjKpJ2`[Q?l&٫C58.H(Yee   	    
+ 
  			        Y'w(O'    R@ $   #"&#"'>7676327676#"
+b,XHUmM.U_t,7A3ge
z9@xSaQBLb(	VU         
+  !!!  == w)          A U  !!77'7'#'#274.#"#32!5'.>537#"76=4>5'.465!  KkkK_5 5 #BH1`L
+
I&v6SF !Sr99rS!`` /7K%s}HXV
+PV	e		V    d   / 9 Q [   $547.546326%>>32"&5%632264&#"64'&""&'&"2>&2654&#" ;2P3>tSU<)tqH+>XX|Wh,:UStW|XX>=X*
+))
++^X^|WX=>X:_.2//a:Ru?
+	
Q%-W|XW>J(	=u>XX|WX`
+
+*((*
+
+
++2		2X>=XW|    E  0  3>$32!>7'&'&7!6./EUnohiI\0<{ >ORDƚ~˕VƻoR C37J6I`Tb<^M~M8O     	  	 
    5!#!"&!5!!52!5463	 ^B@B^  `B^ ^B `B^^"^BB^         0 ;  %'#".54>327&$#"32$	 !"$&6$3  ##320JUnLnʡ~~&q@tKL}'` -
+-oxnǑUyl}~~FڎLlLt`(88(           	7!'	!\W\d;tZ`_O;        }  54+";2%54+";2!4&"!4;234;2354;2354>3&546263232632#"&#"26354;2354;2354;2`` `` pp``` !,! -&M<FI(2```@PppPpppppp#  #
+
ppppp     	  j  #"'&=!;5463!2#!"&=#".'.#!#"&463232>7>;>32#"&'#"!546	%. `@` :,.',-XjjXh-,'.,: kb>PppP>bk .%Z &
+:k%$> $``6&L')59I"TlԖlT"I95)'L&69GppG9$ >$%k:            !   +32 &#!332  $&6$ ~O88OLlL>pN

iLlL   	 ' ' : M a  4&'#"'.7654.#""'&#"3!267#!"&54676$32 #"'.76'&>$#"'.7654'&676mD5)
+z{6lP,@KijjOoɎȕ>>[ta)GG4?a )
ll
>;_-/
+9GH{zyN@,KԕoN繁y!
?hh>$
D"
>â?  $   	 n  "&5462'#".54>22654.'&'.54>32#"#*.5./"~~s!m{b6#	-SjR,l'(s-6^]Itg))[zxȁZ&+6,4$.X%%Dc*
+&D~WL}]I0"
+
YYZvJ@N*CVTR3/A3$#/;'"/fR-,&2-"
7Zr^Na94Rji3.I+
+
+&6W6>N%&60;96@7F6I3        +  4&#!"3!26%4&#!"3!26  $$     ^aa`@@^aa       ' 7     $  >. %"&546;2#!"&546;2#/a^(^aa(N@@          4&#!"3!26  $$ @@^aa`@^aa       '     $  >. 7"&5463!2#/a^(n@^aa(N@           % =  %#!"'&7!>3!26=!26=!2%"&54&""&546 ##]VTV$ KjKKjK $&4&Ԗ&4&>9G!5KK55KK5! && jj &&         # / ; I m  2+#!"&'#"&463>'.3%4&"26%4&"26%6.326#>;463!232#.+#!"&5#"5KK5sH. .Hs5KK5e# )4# %&4&&4&&4&&4&` #4) #%~]eZ&&Ze]E-&&-E KjKj.<<.KjK)#)`"@&&`&&&&`&&)#`)"dXo&&oXG,8&&8  !  O  ##!!2#!+"'&7#+"'&7!"'&?63!!"'&?63!6;236;2!2@@8@7
+
+8Q
+	NQ
+	N
+	8G@
+
+8GQ
+	NQ
+	N7
+	    88 HH     k      %  		 ".>2I20]@] @oo@@oo㔕a22 ]] p^|11|99|11|     (       %7'7'	'	7T dltl)qnluul        ) 1  $4&"2 4&"2  &6 +"&5476;2 &6  LhLLhLLhLLhL>
 &
  &`>hLLhLLhLLhL>&&>    G  
+     	.7)1!62	1!62he220e22>	v
+4	[d+
d           1  35#5&'72!5!#"&'"'#"$547&54$ Eh`X(cYz:L:zYc\$_K`Pa}fiXXiޝfa    	         ( + . >  #5#5!5!5!54&+'#"3!267!7!#!"&5463!2U``'  jjV>(>VV>>Vq     (^(>VV>>VV          =  &'&'&'&76'&'&.' #.h8"$Y
+''>eX5,	,PtsK25MRLqS;:.K'5R

ChhRt(+e^TTu B"$:2~<2HpwTT V        / 7 G W g   . %&32?673327>/.'676$4&"2 $&6$    $6&  $&6$ d--m	
+	,6*6,	
+	mKjKKjoooKzz8zzȎLlLU4>>4-.YG0
+)xx)
+0GYޞ.jKKjKqoooolzzz80LlL    D   / 7 H   #"'.7'654&#"'67'.6?>%"&46227#".547|D,=),9#7[͑fx!X: D$+s)hhijZt<F/*8C,q؜e\r,WBX/C2hhh=tXm        > N Z  +"&=46;2+"&=4>7>54&#"#"/.7632  >.  $$ p =+& 35,W48'3	l
+zffff^aaP2P: D#;$#
$*;?R
+Cfff^aa   'Y  	 > O `   "&5462&'.'.76.5632.'#&'.'&6?65\\[<CzC
25U#
+.ZK m+[$/#>(	|	r[A@[[@A#2#
7*
<Y$
+}"(
q87] F 	_1)
+	     	    # 1 K e   34&+326+"&=!#!"&763!2#!"&5463!2#>?4.'3#>?4.'3#>?4.'3Xe`64[l7
+
,	L;=+3&98&+)>>+3&98&+)>=+3&88&+)>	Wj|r>Q$~d$kaw+-wi[[\;/xgY$kaw+-wi[[\;/xgY$kaw+-wi[[\;/xgY     J \ m   4.'.'&#"#"'.'&47>7632327>7>54&'&#"327>"&47654'&462"'&476'&462"'&47>&'&462i$		$^"

+%%
+
"^$		$W "@9O?1&&18?t@" W&%%&4KK6pp&46ZaaZ&4mttm^x	--	x^=/U7Ckkz'[$=&5%54'4&KK4r<r4&X4[ [4&mm             ' / 7 ? G O W _ g o w        "264$"264"264 "264$"264 "264$"264"264 "&462"&462 "&462"&462 "&462 "&462 "&462 "&462 "&462"&462 "&462"&462^^^^^^^^^^^^^^^^^^^^^^^^^^ ppppppppppppppppppppppppppppppppppppppppppppppp`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^pppppppppppppppppppppppppppppppppppppppp  	         L T i {   "&4626"&462$"&462#"&4632654>7>54   "&54>2"&462%"&54&#""&546 %#"&'&'.7>#"'&'.7>&4&&4&4&&4S Z &4&&44$#&&&j3$"('$&4&[՛[&4&&4F&4&]\&4&$
+	!D4%	,\44&&4&4&&4&- Z 4&&4& ;cX/)#&>B)&4&j9aU0'.4a7&&u՛[[4&&4&@&&]]&&Ώ0
+u40
+)4         # g   &'.#"32676%4/&#"326'&#"2632#2+&'%#"'&6?676676632%#"'&6767#"&'&6767#"'.7>327"#"&'&6763"'.7>;7632;>%5K$
+"0%>s$
+"0%>;;>%5KVL#>H30
\($$(\(єyO2F/{(?0(TK.5sg$єy#-F/{$70(TK.5sg$L#>H30
\($$(\#(@5"'K58!'"58!'"55"'K#dS$K		K$Sdx#@1
wd>N;ET0((?
+-
+2K|1
wd#N;ET0$(?
+-
+2K$#dS$K		K$Sdx          D N \  2654& 265462"2654   #"32654>7>54."/&47&'?62 &4&&4&h՛[&4&r$'("$3j&&&#$4["@GB[
"&&Β&&][u&&7a4.'0Ua9j&4&)B>&#)/Xc;u՛""
Gi[       X h  #"&54676324&'&#"'>54#"32#"54>54'.#"32>7>767632326#!"&5463!2b
)
+:4FDN

[1,^JK-*E#9gWRYvm0O	w@wwwC22c@X&!9{MA_"S4b// DR"XljPY<	@www     %   e  4.#"32>7676#'.#"#"&54>3232>754&*#"&54>763 >32
''il$E/
+@P@
+^`'W6&!.. ! -P5+
+
+
+E{n46vLeVz:,SN/
+M5M[
	]$[^5iC'2H&!(?]v`*	l	b$9>
    = R   2
#"&5467%!"&7>3-.7>;%.7>322326/.76/.'&6766/&/&#"&676	&676&6766/&672? =1(H/ 	'96&@)9<')29%
+&06##$ J 07j)5@"*3%"!M
+%#K"%Ne8)'8_(9.<c +8 8(%6 <)'4@@)#-<^
+?%$-`%.
}Q!&}%&N-lIJ;6>/=*%8!Q #P"\Q#N&a)<9     b R ] m p  %"'.'&54>76%&54763263  #"/7#"' #"&/%$% 322654&#"%'OV9
+nt
+|\d
+ϓ[nt
+|@D:)	
;98'+|j," 41CH^nVz(~R	9\'	r

+@L@
	@w46HI(+C
+,55,
+f[op@\j;(zV~      i  / 5 O  #"'&54>32&#" 654'67'"'>54''&'"'6767&546767>7蒓`V BMR B9)̟!SH-77IXmSMH*k#".o;^J qןד>@YM
$bKd ү[E";Kx%^6;%T,U:im=Mk        ) . D T  4'"&5463267&#" 6;64'.'4'>732676%#!"&5463!2),蛜s5-<A4ϲ
+2W9
+&P:\3)SEPJD4:3NIw@wwwNE	2@uus+,/?xsatmP')fHVEA(%dA4w&4J5*@www        O [  4'.'&54>54&#"#"'654'.#"#"&#"3263232>3232>76  $$ Cf'/'%($UL
+(
+#'/'@3#@,G)+H+@#3
^aaX@_O#NW#O_.*	##(^aa   q [  632632#"&#"#".'&#"#".'&54767>7654.54632327&547>P9	B6?K?%O4T% >6>Z64Y=6>%S4N$?L?4B	@{:y/$ ,'R!F!8%
#)(()#%:!F Q'+%0z:z       O _  4'.'&54>54&#"#"'654'.#"#"&#"3263232>3232>76#!"&5463!2 Cf'.'%($VM
+)
+#'.'@
3
#A,G)+H+A#
4
 w@wwwXA?4N$NW&M&L/*
+##	+@www      	   O  $>?>762'&#"./454327 327>7>	 EpB5
+3FAP/h\/NGSL	  RP*m95F84f&3Ga4B|wB .\FI*/.?&,5~K %
&Y."7n<	"-I.M`{ARwJ!       F X ^ d j  ''''"'7&'7&'7&'7&547'67'67'67'63277774$#"32$			*'ֱ,?g=OO&L&NJBg;1''ֱ.=gCIM
$'&&NJBg=.%w؝\\w
Ioo<<   -NIDg=/%(ײ+AhEHO*"#*OICh=/'(ֲ/=h>ON.]xwڝ]7e[@        ) 6  !!"3#"&546%3567654'3!67!4&'7Sgny]K-#75LSl>9V%cPe}&Hn_HȌ=UoLQ1!45647UC"    
+        ! - 9 [ n x     "&46254&"326754&"326754&"26754&"26#".547632632626326'4#"#"54732764&"264.#"327632>#"'"'#"'#"&5#"'67&'327&'&54>3267>7>7>32632632T"8""8)<())(<))))<))<))<))<)Tد{ՐRhx=8 78 n 81
pH_6Soc
F@b@?d?uKbM70[f5Y$35KUC<:[;+8 n 87 8/8Zlv]64qE 'YK0-AlB;
+W#;WS9
&(#-7Z://:/Tr++r,,r++r,,r++r,,r++r,,ʠgxXVעe9222222^KVvF02OO23OO`lF;mhj84DroB@r+@222222C0DP`.r8h9~T4.&o@91P       % 1  4'!3#"&46327&#"326%35#5##33  $$ }Pcc]<hlࠥYmmnnnn^aaw!LYƏ;edwnnnnnv^aa     %    '  #"$#"#.5462632327>32 1IUΠ?LL?cc4MX& 04;0XpD[[DpD,)&&    Q	    9 V \   26&".'&'&6?.#"#26327677>'32>&3#'&+"?626&"#!'.'!"&5463!>;26;2!2P  P 	
+92#.}SP9::%L\B )spN/9oJ5 
+!+D`]BgY9+,9%
+Pk4 P  P &NnF!_7*}B<{o0&&B;*<@$ucRRc#@16#37c&@@@
J"@*4^`EDBo/8927
+*@O LC!T!323X$BJ@@@ &AS
+0C59"'D/&&D488$5A&         % O  #!"&547>7>2$7>/.".'&'&2> ^B@B^>FFzn_0P:P2\nzFF>R&p^1P:P1^&R
+P2NMJMQ0Rr.B^^B	7:5]yPH!%%"FPy]5:7	=4QH!%%!Ht4=<"-/ ?          1 P p  +".'.'.?>;2>7$76&'&%.+"3!26#!"&5476 7>;2'
++~'*OJ%%JN,&x'%^M,EE,M7ZE[P*FF*P:5

^B@B^){$.MK%%KM.$+X)o3"a  22!]4	I>"">,&S8JB##B12`
`B^^B8&ra#11#$R&              " & . 2 v  %/%''%/%7%7'%7'/#&5'&&?&'&?&'&7%27674?6J"0<=_gNU? DfuYGb7=^H^`	=v~yT3GDPO	4Fѭqi_w\ހ!1uS%V_-d
+1=U{J8n~r        ' U  4.#".'"3!264&"26+#!"&5463!232+32+320P373/./373P0T=@=T֙֙|`^B@B^^BB^`````*9deG-!
+
+!-Ged9IaallkOB^^BB^^B       	 + Y i  "&54622#!"&54>;2>+32+32+#!"&5463!2324&#!"3!26֙֙0.I/ OBBO	-Q52-)&)-2
``

``

`^B@B^^BB^`
 
@


|kkl"=IYL)CggC0[jM4				




B^^BB^^B
@

@
       ! 1 A Q u   4.#".'"3!24&"254&#!"3!2654&#!"3!2654&#!"3!26#!54&+"!54&+"!"&5463!2 )P90,***,09P)J6 6S"@8@ ^B@ @B^^BB^Ukc9		9ckU?@@88@@N@B^````^BB^^       ! 1 A Q u    #!"&4>32>72"&462#!"&=463!25#!"&=463!25#!"&=463!24&#!"3!546;2!546;2!26#!"&5463!2 J6 6J)P90,***,09P)"@8@
@

`@ @`
^B@B^^BB^ՀUUkc9		9c`@@88@@2

@
````@B^^BB^^            (  %.'"&' $&   #"$&6$ wCιCwjJ~J>LlLśJSSJ͛>6LlL         $ ,     $&6654&$ 3 72&&  lLmzzBl> KlLGzzG>           ' 7  #!"&54>7&54>2   62654' '3/U]B,ȍ,B]U/OQнQ>+X}}X0bӃۚӅb0}hQQh>ff            # =   #!"&4>3272"&462!3!26#!"&5463!;26=!2 J6 6J)Q8PP8Q) 

^B@B^^B``B^VVVld9KK9d`
@B^^BB^``^        + ; K [ e u  4.#"'"3!264&"254&#!"3!2654&#!"3!26%54&+";2654&#!"3!26!54&#!"!#!"&5463!2"D/@@/D"?,,?pppp@@@ @^B@B^^BB^D6]W2@@2W]67MMppp@@@@@@@@n`@B^^BB^^       + ; K [ e u  #!"&54>3272"&462#!"&=463!2%#!"&=463!2+"&=46;25#!"&=463!2!3!26#!"&5463!2?,V,?"D/@@/D"pppp@@@ 

^B@B^^BB^D7MM76]W2@@2W]֠ppp@@@@@@@@`
@B^^BB^^      A  #"327.#"'63263#".'#"$&546$32326J9"65I).!1iCCu
++I\Gw\B!al݇yǙV/]:=B>9+<F+a[lePn[A&JR7t)+tHkFIK      e	    .    #"'&'>32%#!"&5463!2#"&54>54'&#"#"54654'.#"#"'.54>54'&'&543232654&432#"&54>764&'&'.54632 ?c'p& ?b1w{2V	?#&#9&CY'&.&#+B
+
: &65&*2w1GF1)2<)<'
+
+(
+BH=ӊ:NT :O	)4:i F~b`e!}U3i?fRUX|'&'&Ic&Q
+	*2U.L6*/
L:90%>..>%b>++z7ymlw45)0	33J@0!!TFL P]=GS-kwm	!*         (  %6&692?  $&6$ 	' al@lLlL,&EC
+h$LlL        
  / 3 7 ;  %"&546734&'4&" 67   54746 #5#5#5ppF::FD<pp<D
+
+PppP<dud<M- PppP -Mǅ9          
  / 3 7 ;  %"&546734&'4&" 67   54746 #5#5#5ppF::FD<pp<D
+
+PppP<dud<M- PppP -Mǅ9          
  / 3 7 ;  %"&546734&'4&" 67   54746 #5#5#5ppF::FD<pp<D
+
+PppP<dud<M- PppP -Mǅ9          
  / 3 7 ;  %"&5467534&'4&" 67   54746 #5#5#5ppF::FD<pp<D
+
+PppP<dd<M- PppP -Mǅ9            	  + / 3 7  %"&54624&'4&" 67   54746 #5#5#5ppppD<pp<D
+
+PppPOqqOM- PppP -Mǅ9         & . 6 > F N V ^ f n v ~      "/&4?.7&#"!4>3267622"&4"&46262"&42"&4462"$2"&42"&4"&46262"&4"&46262"&42"&4$2"&42"&42"&4
+
+
+
+R
+
+,H8Jfj QhjG^R,
+
+!4&&4&Z4&&4&4&&4&4&&4& &4&&4 4&&4&4&&4&Z4&&4&4&&4&4&&4&4&&4&4&&4&&4&&4&Z4&&4&Z4&&4&
+
+
+
+R
+
+,[cGj  hQRJ'A,
+
+&4&&4Z&4&&4Z&4&&4Z&4&&444&&4&&4&&4Z&4&&4Z&4&&4Z&4&&4&4&&4Z&4&&4Z&4&&4&&4&&4Z&4&&4Z&4&&4        % - 5 = E M }           +"&=#!"'+"&=&= "&4626"&462&"&462"&462&"&462&"&462#!"&=46;4632676/&?.7&#"!2 "&462&"&462&"&462"&462&"&462&"&462"&462&"&462"&462@?A A?
@
@R...R@`jlL.h)**$	%35K.....uvnu....@@jN **.t2#K5..R..R.       
 @ H q   '&'&54  &7676767654$'.766$76"&462&'&'&7>54.'.7>76ȵ|_ğyv/ۃ⃺k]
+:Buq
+CA
+_kނXVobZZbnW |V	0 	Q2-
+l}O		/	:1z	
+q% zG
+4(
+
+6Roaą\<
+
+)4	J}        %!!#!"&5463!2    ^B@B^^BB^ `@B^^BB^^       %#!"&=463!2 ^B@B^^BB^B^^BB^^           &  ))!32#!#!"&5463!463!2      `B^ ^B^B@B^^B`^BB^   ^B @B^B^^BB^`B^^       # 3  %764/764/&"'&"2?2#!"&5463!2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+s^B@B^^BB^ג
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@B^^BB^^     # ' 7  "/"/&4?'&4?62762!!%#!"&5463!2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
   ^B@B^^BB^
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `@B^^BB^^          	!  $&6$ .2r`LlLf4LlL         # . C    &>"'&4762"/&4?62'"'&4762%'.>6.'.>6'>/>76&'&.'&7&'">?4'.677>7.>37654'&'67>776 $&6$ (4Z##
&##
&y"6&.JM@& "(XE*$+8
+jT<l$3-V<
2'.


+-1
%#e"!Z
++*)H	 8
(j

	#*
-ƷVv/kh?'MlM$($R#

&
"
#'#vZ@+&MbV$
+
+G7
--)
+
+R2T
+313dJ6@8lr2_5m/."G:=	)%5f0gt*2)?;CB66&, 	`48]USyLlL         G  6?>?3#'.'&!3!2>?3.'#!57>7'./5!27#'.#!"g%%D-!gg<6WWZe#1=/2*]Y3-,C1/Dx] VFIq-HD2NK'>*%R=f
07=.
fD]\|yu       , 0 > S e u  #2#"'&5<>323#3#&'#334'."#"+236'&54.#"5#37326#!"&5463!2		<	zzjk-L+ )[$8=".un/2 ^B@B^^BB^5cy	
+
+(ݔI(8?C(3> #"($=@B^^BB^^     0K    S   &'.'&' ./674&$#">&>?>'76'#  "&#./.'7676767>76$w
.~kuBR] T%z+",|ޟj<)(!(	~ˣzF8"{%%#5)}''xJF0"H[$%EJ#%
.Gk29(B13"?@S)5" #9dmW";L65RA0@T.$}i`:f3A%%
+BM<$q:)BD	aa%`]A&c|	Ms!
+Z
2}i[F&**
+< ʣsc"J<&NsF  %  0 @ W m  6&'.6$.7>7$76".4>2.,&>6 '"'&7>=GV:e#:$?+%

+q4g
+&3hT`ZtQмQQмpAP1LK!:<}҈`dlb,9'
+
+
%%($!
a3)W)x

оQQоQQcQǡ-җe)Us2XD\ϼYd           / ? O _ o      #"=#"=4;543#"=#"=4;543#"=#"=4;543#"=#"=4;543#"=#"=4;543%#!"&5463!2++532325++532325++532325++532325++53232p00pp00pp00pp00pp008((88(@(8 0pp00pp00pp00pp00pp0          @(88((88          / Q    /&'%&/"&=.6?&?&'&6?'.>-#".6?'.>'&6'.>54627>%>76#"'%
%6

27
2G
f!)p&4&p)!f
G2
72

	*6	"
47
2G
f!)p&4&p)!f
G2
72

"	6*	!k
3

j&3
+%,*&&ր*9%
+3&j

3
k!./!>>$,*!k
3.j&3
+%Ԝ9*&&ր*ǜ,%
+3&j

3
k!*,$>>!/.           &  6.'&$	&76$76$PutۥiPuGxy
+Զ[xy
+-_v١eNuv١e	 =uʦ[t78X       
+    & 6  ##'7-'%'&$  $6 $&6$ 31NE0gR=|||">"LlL^v!1f2iЂwgfZQQ^>"||||wLlL  &Z X b l w          .'&>'&'&".'.'&&'&'&7>767>67>7626&'&>&'&> '.7>.676'&'&'&'.67.>7>6&'&676&'&676.676&'&>&'&676'.>6/4-LJg-$	6)j2%+QF)b3FSP21DK2AW")")$??8A&AE5lZm=gG2Sw*&>$5jD GHyX/4F r	1
	1""!l=6>	6
+,5./'e

+

.*|Ed!
u&&%&	&5d	
))66@C&8B@qL?P^7	G-hI[q:<rS	U~97A_IR`gp1	1	;"("j?>"T6
+,6 
+   &        / `                                      L       w       Q'             	 
+              A  	   ^    	     	     	  "   	    	  $&  	  _  	    	  y  	 	   	  *  	  < C o p y r i g h t   D a v e   G a n d y   2 0 1 6 .   A l l   r i g h t s   r e s e r v e d .  Copyright Dave Gandy 2016. All rights reserved.  F o n t A w e s o m e  FontAwesome  R e g u l a r  Regular  F O N T L A B : O T F E X P O R T  FONTLAB:OTFEXPORT  F o n t A w e s o m e  FontAwesome  V e r s i o n   4 . 7 . 0   2 0 1 6  Version 4.7.0 2016  F o n t A w e s o m e  FontAwesome  P l e a s e   r e f e r   t o   t h e   C o p y r i g h t   s e c t i o n   f o r   t h e   f o n t   t r a d e m a r k   a t t r i b u t i o n   n o t i c e s .  Please refer to the Copyright section for the font trademark attribution notices.  F o r t   A w e s o m e  Fort Awesome  D a v e   G a n d y  Dave Gandy  h t t p : / / f o n t a w e s o m e . i o  http://fontawesome.io  h t t p : / / f o n t a w e s o m e . i o / l i c e n s e /  http://fontawesome.io/license/                                                	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab   
cdefghijklmnopqrstuvwxyz{|}~  "	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ glassmusicsearchenvelopeheartstar
+star_emptyuserfilmth_largethth_listokremovezoom_inzoom_outoffsignalcogtrashhomefile_alttimeroaddownload_altdownloaduploadinboxplay_circlerepeatrefreshlist_altlockflag
+headphones
+volume_offvolume_down	volume_upqrcodebarcodetagtagsbookbookmarkprintcamerafontbolditalictext_height
+text_width
+align_leftalign_centeralign_right
align_justifylistindent_leftindent_rightfacetime_videopicturepencil
+map_markeradjusttinteditsharecheckmove
step_backward
fast_backwardbackwardplaypausestopforwardfast_forwardstep_forwardejectchevron_left
chevron_right	plus_sign
+minus_signremove_signok_sign
question_sign	info_sign
+screenshot
remove_circle	ok_circle
+ban_circle
+arrow_leftarrow_rightarrow_up
+arrow_down	share_altresize_fullresize_smallexclamation_signgiftleaffireeye_open	eye_closewarning_signplanecalendarrandomcommentmagnet
+chevron_upchevron_downretweet
shopping_cartfolder_closefolder_openresize_verticalresize_horizontal	bar_charttwitter_sign
facebook_signcamera_retrokeycogscomments
thumbs_up_altthumbs_down_alt	star_halfheart_emptysignout
linkedin_signpushpin
external_linksignintrophygithub_sign
+upload_altlemonphonecheck_emptybookmark_empty
+phone_signtwitterfacebookgithubunlockcredit_cardrsshddbullhornbellcertificate
+hand_right	hand_lefthand_up	hand_downcircle_arrow_leftcircle_arrow_rightcircle_arrow_upcircle_arrow_downglobewrenchtasksfilter	briefcase
+fullscreengrouplinkcloudbeakercutcopy
+paper_clipsave
+sign_blankreorderulol
strikethrough	underlinetablemagictruck	pinterestpinterest_signgoogle_plus_signgoogle_plusmoney
+caret_downcaret_up
+caret_leftcaret_rightcolumnssort	sort_downsort_upenvelope_altlinkedinundolegal	dashboardcomment_altcomments_altboltsitemapumbrellapaste
+light_bulbexchangecloud_downloadcloud_uploaduser_mdstethoscopesuitcasebell_altcoffeefood
file_text_altbuildinghospital	ambulancemedkitfighter_jetbeerh_signf0fedouble_angle_leftdouble_angle_rightdouble_angle_updouble_angle_down
+angle_leftangle_rightangle_up
+angle_downdesktoplaptoptabletmobile_phonecircle_blank
+quote_leftquote_rightspinnercirclereply
+github_altfolder_close_altfolder_open_alt
+expand_altcollapse_altsmilefrownmehgamepadkeyboardflag_altflag_checkeredterminalcode	reply_allstar_half_emptylocation_arrowcrop	code_forkunlink_279exclamationsuperscript	subscript_283puzzle_piece
+microphonemicrophone_offshieldcalendar_emptyfire_extinguisherrocketmaxcdnchevron_sign_leftchevron_sign_rightchevron_sign_upchevron_sign_downhtml5css3anchor
+unlock_altbullseyeellipsis_horizontalellipsis_vertical_303	play_signticketminus_sign_altcheck_minuslevel_up
+level_down
+check_sign	edit_sign_312
+share_signcompasscollapsecollapse_top_317eurgbpusdinrjpyrubkrwbtcfile	file_textsort_by_alphabet_329sort_by_attributessort_by_attributes_alt
sort_by_ordersort_by_order_alt_334_335youtube_signyoutubexing	xing_signyoutube_playdropbox
stackexchange	instagramflickradnf171bitbucket_signtumblrtumblr_signlong_arrow_down
long_arrow_uplong_arrow_leftlong_arrow_rightwindowsandroidlinuxdribbleskype
+foursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380
plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464uniF1F0_466_467f1f3_469_470_471_472_473_474_475_476f1fc_478_479_480_481_482_483_484_485_486_487_488_489_490_491_492_493_494f210_496f212_498_499_500_501_502_503_504_505_506_507_508_509venus_511_512_513_514_515_516_517_518_519_520_521_522_523_524_525_526_527_528_529_530_531_532_533_534_535_536_537_538_539_540_541_542_543_544_545_546_547_548_549_550_551_552_553_554_555_556_557_558_559_560_561_562_563_564_565_566_567_568_569f260f261_572f263_574_575_576_577_578_579_580_581_582_583_584_585_586_587_588_589_590_591_592_593_594_595_596_597_598f27euniF280uniF281_602_603_604uniF285uniF286_607_608_609_610_611_612_613_614_615_616_617_618_619_620_621_622_623_624_625_626_627_628_629uniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BEuniF2C0uniF2C1uniF2C2uniF2C3uniF2C4uniF2C5uniF2C6uniF2C7uniF2C8uniF2C9uniF2CAuniF2CBuniF2CCuniF2CDuniF2CEuniF2D0uniF2D1uniF2D2uniF2D3uniF2D4uniF2D5uniF2D6uniF2D7uniF2D8uniF2D9uniF2DAuniF2DBuniF2DCuniF2DDuniF2DEuniF2E0uniF2E1uniF2E2uniF2E3uniF2E4uniF2E5uniF2E6uniF2E7_698uniF2E9uniF2EAuniF2EBuniF2ECuniF2EDuniF2EE                                   =    O<0    1h
\ No newline at end of file
--- a/assets/fonts/fontawesome-webfont.svg
+++ b/assets/fonts/fontawesome-webfont.svg
@@ -1,640 +1,2671 @@
 <?xml version="1.0" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
-<metadata></metadata>
+<svg>
+<metadata>
+Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016
+ By ,,,
+Copyright Dave Gandy 2016. All rights reserved.
+</metadata>
 <defs>
-<font id="fontawesomeregular" horiz-adv-x="1536" >
-<font-face units-per-em="1792" ascent="1536" descent="-256" />
-<missing-glyph horiz-adv-x="448" />
-<glyph unicode=" "  horiz-adv-x="448" />
-<glyph unicode="&#x09;" horiz-adv-x="448" />
-<glyph unicode="&#xa0;" horiz-adv-x="448" />
-<glyph unicode="&#xa8;" horiz-adv-x="1792" />
-<glyph unicode="&#xa9;" horiz-adv-x="1792" />
-<glyph unicode="&#xae;" horiz-adv-x="1792" />
-<glyph unicode="&#xb4;" horiz-adv-x="1792" />
-<glyph unicode="&#xc6;" horiz-adv-x="1792" />
-<glyph unicode="&#xd8;" horiz-adv-x="1792" />
-<glyph unicode="&#x2000;" horiz-adv-x="768" />
-<glyph unicode="&#x2001;" horiz-adv-x="1537" />
-<glyph unicode="&#x2002;" horiz-adv-x="768" />
-<glyph unicode="&#x2003;" horiz-adv-x="1537" />
-<glyph unicode="&#x2004;" horiz-adv-x="512" />
-<glyph unicode="&#x2005;" horiz-adv-x="384" />
-<glyph unicode="&#x2006;" horiz-adv-x="256" />
-<glyph unicode="&#x2007;" horiz-adv-x="256" />
-<glyph unicode="&#x2008;" horiz-adv-x="192" />
-<glyph unicode="&#x2009;" horiz-adv-x="307" />
-<glyph unicode="&#x200a;" horiz-adv-x="85" />
-<glyph unicode="&#x202f;" horiz-adv-x="307" />
-<glyph unicode="&#x205f;" horiz-adv-x="384" />
-<glyph unicode="&#x2122;" horiz-adv-x="1792" />
-<glyph unicode="&#x221e;" horiz-adv-x="1792" />
-<glyph unicode="&#x2260;" horiz-adv-x="1792" />
-<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
-<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
-<glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
-<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
-<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
-<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
-<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
-<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
-<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
-<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
-<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
-<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
-<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
-<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
-<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
-<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
-<glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
-<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
-<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
-<glyph unicode="&#xf016;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " />
-<glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
-<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
-<glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
-<glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
-<glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
-<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
-<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
-<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
-<glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
-<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
-<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
-<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
-<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
-<glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
-<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
-<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
-<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
-<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
-<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
-<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
-<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
-<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
-<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
-<glyph unicode="&#xf035;" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
-<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
-<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
-<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
-<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
-<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
-<glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
-<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
-<glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
-<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
-<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
-<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
-<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
-<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
-<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
-<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
-<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
-<glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
-<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
-<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
-<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
-<glyph unicode="&#xf053;" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
-<glyph unicode="&#xf054;" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
-<glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
-<glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
-<glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
-<glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
-<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
-<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
-<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
-<glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
-<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
-<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
-<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
-<glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
-<glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
-<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
-<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
-<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
-<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
-<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
-<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
-<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
-<glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf077;" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
-<glyph unicode="&#xf078;" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
-<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
-<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
-<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
-<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
-<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
-<glyph unicode="&#xf080;" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
-<glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf082;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960z" />
-<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
-<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
-<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
-<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
-<glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
-<glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
-<glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
-<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
-<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
-<glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
-<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
-<glyph unicode="&#xf092;" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39 t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103 q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5 h-224q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
-<glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
-<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
-<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
-<glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
-<glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
-<glyph unicode="&#xf09b;" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23 q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
-<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
-<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
-<glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
-<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
-<glyph unicode="&#xf0a2;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
-<glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
-<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
-<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
-<glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
-<glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
-<glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
-<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
-<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
-<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
-<glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " />
-<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
-<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
-<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
-<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
-<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
-<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
-<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" />
-<glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
-<glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
-<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
-<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
-<glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
-<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
-<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
-<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
-<glyph unicode="&#xf0d4;" d="M829 318q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5zM755 863q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5 t-57.5 96.5t-17.5 106q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107zM861 1120l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95 q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83zM1152 672h128v64h-128v128h-64v-128 h-128v-64h128v-160h64v160zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M735 740q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4 q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65t-59.5 -61.5t-24.5 -66zM589 836q38 0 78 16.5t66 43.5q53 57 53 159q0 58 -17 125t-48.5 129.5 t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26zM591 -37q58 0 111.5 13t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2 q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5zM1401 839h213v-108h-213v-219h-105v219h-212v108h212v217h105v-217z" />
-<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
-<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
-<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
-<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
-<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
-<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
-<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
-<glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
-<glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
-<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
-<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
-<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
-<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
-<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
-<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" />
-<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
-<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
-<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
-<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
-<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
-<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
-<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
-<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
-<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
-<glyph unicode="&#xf0f3;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
-<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
-<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf0f6;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" />
-<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
-<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
-<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
-<glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
-<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
-<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
-<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
-<glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
-<glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
-<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
-<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
-<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
-<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
-<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
-<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
-<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
-<glyph unicode="&#xf110;" horiz-adv-x="1792" d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5 q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" />
-<glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
-<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
-<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
-<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " />
-<glyph unicode="&#xf116;" horiz-adv-x="1792" />
-<glyph unicode="&#xf117;" horiz-adv-x="1792" />
-<glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
-<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
-<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
-<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
-<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
-<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
-<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
-<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
-<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
-<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
-<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
-<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
-<glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
-<glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" />
-<glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" />
-<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
-<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
-<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
-<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
-<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
-<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
-<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
-<glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
-<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
-<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
-<glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
-<glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
-<glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
-<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
-<glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
-<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
-<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
-<glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
-<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
-<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" />
-<glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
-<glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
-<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
-<glyph unicode="&#xf15b;" d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
-<glyph unicode="&#xf15c;" d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
-<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" />
-<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" />
-<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
-<glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
-<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
-<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
-<glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
-<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
-<glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
-<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
-<glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
-<glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
-<glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
-<glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
-<glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z" />
-<glyph unicode="&#xf174;" d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
-<glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
-<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
-<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
-<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
-<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
-<glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
-<glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
-<glyph unicode="&#xf180;" horiz-adv-x="1280" d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" />
-<glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
-<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
-<glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
-<glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
-<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
-<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" />
-<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
-<glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
-<glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
-<glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
-<glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
-<glyph unicode="&#xf194;" d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf197;" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
-<glyph unicode="&#xf198;" horiz-adv-x="1664" d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
-<glyph unicode="&#xf199;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
-<glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 t273 -182.5t331.5 -68z" />
-<glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
-<glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
-<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
-<glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
-<glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M981 197q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13t99 39t73 73t27.5 109zM864 1055 q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5q53 56 53 159zM752 1536h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5 t-59.5 -93t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5 t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32z" />
-<glyph unicode="&#xf1a1;" horiz-adv-x="1792" d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 t348 71t348 -71t286 -191t191 -286t71 -348z" />
-<glyph unicode="&#xf1a2;" d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83 q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf1a3;" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
-<glyph unicode="&#xf1a5;" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
-<glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 v-369h123z" />
-<glyph unicode="&#xf1a7;" d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
-<glyph unicode="&#xf1a9;" d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
-<glyph unicode="&#xf1aa;" d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 t135.5 51q85 0 145 -60.5t60 -145.5z" />
-<glyph unicode="&#xf1ab;" d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 q20 0 20 -21v-418z" />
-<glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
-<glyph unicode="&#xf1ad;" d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" />
-<glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68zM864 1152q0 -93 -65.5 -158.5 t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
-<glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 t100.5 134t141.5 55.5z" />
-<glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
-<glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z " />
-<glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 v-400l434 -186q36 -16 57 -48t21 -70z" />
-<glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" />
-<glyph unicode="&#xf1b5;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" />
-<glyph unicode="&#xf1b6;" horiz-adv-x="1792" d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" />
-<glyph unicode="&#xf1b7;" d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z " />
-<glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" />
-<glyph unicode="&#xf1b9;" horiz-adv-x="2048" d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" />
-<glyph unicode="&#xf1ba;" horiz-adv-x="2048" d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
-<glyph unicode="&#xf1bb;" d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
-<glyph unicode="&#xf1bc;" d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf1bd;" horiz-adv-x="1024" d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" />
-<glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236q0 -11 -8 -19 t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22v899 q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
-<glyph unicode="&#xf1c0;" d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
-<glyph unicode="&#xf1c1;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
-<glyph unicode="&#xf1c2;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21 q-2 26 -7 46l-99 438h90v107h-300z" />
-<glyph unicode="&#xf1c3;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 h-290v-107h68l189 -272l-194 -283h-68z" />
-<glyph unicode="&#xf1c4;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
-<glyph unicode="&#xf1c5;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
-<glyph unicode="&#xf1c6;" d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
-<glyph unicode="&#xf1c7;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
-<glyph unicode="&#xf1c8;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
-<glyph unicode="&#xf1c9;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
-<glyph unicode="&#xf1ca;" d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
-<glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
-<glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5 t-85 -189.5z" />
-<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
-<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5z" />
-<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
-<glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
-<glyph unicode="&#xf1d2;" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
-<glyph unicode="&#xf1d4;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
-<glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
-<glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
-<glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
-<glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 l863 639l-478 -797z" />
-<glyph unicode="&#xf1da;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf1db;" d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22z" />
-<glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
-<glyph unicode="&#xf1de;" d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" />
-<glyph unicode="&#xf1e0;" d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
-<glyph unicode="&#xf1e1;" d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
-<glyph unicode="&#xf1e3;" horiz-adv-x="1792" d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" />
-<glyph unicode="&#xf1e4;" horiz-adv-x="1792" d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" />
-<glyph unicode="&#xf1e5;" horiz-adv-x="1792" d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf1e6;" horiz-adv-x="1792" d="M1755 1083q37 -37 37 -90t-37 -91l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234l401 400 q38 37 91 37t90 -37z" />
-<glyph unicode="&#xf1e7;" horiz-adv-x="1792" d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q3 -2 11 -7 t11 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" />
-<glyph unicode="&#xf1e8;" horiz-adv-x="1792" d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
-<glyph unicode="&#xf1e9;" d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q70 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" />
-<glyph unicode="&#xf1ea;" horiz-adv-x="2048" d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
-<glyph unicode="&#xf1eb;" horiz-adv-x="2048" d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" />
-<glyph unicode="&#xf1ec;" horiz-adv-x="1792" d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf1ed;" d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246 q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598 q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" />
-<glyph unicode="&#xf1ee;" horiz-adv-x="1792" d="M602 949q19 -61 31 -123.5t17 -141.5t-14 -159t-62 -145q-21 81 -67 157t-95.5 127t-99 90.5t-78.5 57.5t-33 19q-62 34 -81.5 100t14.5 128t101 81.5t129 -14.5q138 -83 238 -177zM927 1236q11 -25 20.5 -46t36.5 -100.5t42.5 -150.5t25.5 -179.5t0 -205.5t-47.5 -209.5 t-105.5 -208.5q-51 -72 -138 -72q-54 0 -98 31q-57 40 -69 109t28 127q60 85 81 195t13 199.5t-32 180.5t-39 128t-22 52q-31 63 -8.5 129.5t85.5 97.5q34 17 75 17q47 0 88.5 -25t63.5 -69zM1248 567q-17 -160 -72 -311q-17 131 -63 246q25 174 -5 361q-27 178 -94 342 q114 -90 212 -211q9 -37 15 -80q26 -179 7 -347zM1520 1440q9 -17 23.5 -49.5t43.5 -117.5t50.5 -178t34 -227.5t5 -269t-47 -300t-112.5 -323.5q-22 -48 -66 -75.5t-95 -27.5q-39 0 -74 16q-67 31 -92.5 100t4.5 136q58 126 90 257.5t37.5 239.5t-3.5 213.5t-26.5 180.5 t-38.5 138.5t-32.5 90t-15.5 32.5q-34 65 -11.5 135.5t87.5 104.5q37 20 81 20q49 0 91.5 -25.5t66.5 -70.5z" />
-<glyph unicode="&#xf1f0;" horiz-adv-x="2304" d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf1f1;" horiz-adv-x="2304" d="M671 603h-13q-47 0 -47 -32q0 -22 20 -22q17 0 28 15t12 39zM1066 639h62v3q1 4 0.5 6.5t-1 7t-2 8t-4.5 6.5t-7.5 5t-11.5 2q-28 0 -36 -38zM1606 603h-12q-48 0 -48 -32q0 -22 20 -22q17 0 28 15t12 39zM1925 629q0 41 -30 41q-19 0 -31 -20t-12 -51q0 -42 28 -42 q20 0 32.5 20t12.5 52zM480 770h87l-44 -262h-56l32 201l-71 -201h-39l-4 200l-34 -200h-53l44 262h81l2 -163zM733 663q0 -6 -4 -42q-16 -101 -17 -113h-47l1 22q-20 -26 -58 -26q-23 0 -37.5 16t-14.5 42q0 39 26 60.5t73 21.5q14 0 23 -1q0 3 0.5 5.5t1 4.5t0.5 3 q0 20 -36 20q-29 0 -59 -10q0 4 7 48q38 11 67 11q74 0 74 -62zM889 721l-8 -49q-22 3 -41 3q-27 0 -27 -17q0 -8 4.5 -12t21.5 -11q40 -19 40 -60q0 -72 -87 -71q-34 0 -58 6q0 2 7 49q29 -8 51 -8q32 0 32 19q0 7 -4.5 11.5t-21.5 12.5q-43 20 -43 59q0 72 84 72 q30 0 50 -4zM977 721h28l-7 -52h-29q-2 -17 -6.5 -40.5t-7 -38.5t-2.5 -18q0 -16 19 -16q8 0 16 2l-8 -47q-21 -7 -40 -7q-43 0 -45 47q0 12 8 56q3 20 25 146h55zM1180 648q0 -23 -7 -52h-111q-3 -22 10 -33t38 -11q30 0 58 14l-9 -54q-30 -8 -57 -8q-95 0 -95 95 q0 55 27.5 90.5t69.5 35.5q35 0 55.5 -21t20.5 -56zM1319 722q-13 -23 -22 -62q-22 2 -31 -24t-25 -128h-56l3 14q22 130 29 199h51l-3 -33q14 21 25.5 29.5t28.5 4.5zM1506 763l-9 -57q-28 14 -50 14q-31 0 -51 -27.5t-20 -70.5q0 -30 13.5 -47t38.5 -17q21 0 48 13 l-10 -59q-28 -8 -50 -8q-45 0 -71.5 30.5t-26.5 82.5q0 70 35.5 114.5t91.5 44.5q26 0 61 -13zM1668 663q0 -18 -4 -42q-13 -79 -17 -113h-46l1 22q-20 -26 -59 -26q-23 0 -37 16t-14 42q0 39 25.5 60.5t72.5 21.5q15 0 23 -1q2 7 2 13q0 20 -36 20q-29 0 -59 -10q0 4 8 48 q38 11 67 11q73 0 73 -62zM1809 722q-14 -24 -21 -62q-23 2 -31.5 -23t-25.5 -129h-56l3 14q19 104 29 199h52q0 -11 -4 -33q15 21 26.5 29.5t27.5 4.5zM1950 770h56l-43 -262h-53l3 19q-23 -23 -52 -23q-31 0 -49.5 24t-18.5 64q0 53 27.5 92t64.5 39q31 0 53 -29z M2061 640q0 148 -72.5 273t-198 198t-273.5 73q-181 0 -328 -110q127 -116 171 -284h-50q-44 150 -158 253q-114 -103 -158 -253h-50q44 168 171 284q-147 110 -328 110q-148 0 -273.5 -73t-198 -198t-72.5 -273t72.5 -273t198 -198t273.5 -73q181 0 328 110 q-120 111 -165 264h50q46 -138 152 -233q106 95 152 233h50q-45 -153 -165 -264q147 -110 328 -110q148 0 273.5 73t198 198t72.5 273zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf1f2;" horiz-adv-x="2304" d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" />
-<glyph unicode="&#xf1f3;" horiz-adv-x="2304" d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" />
-<glyph unicode="&#xf1f4;" horiz-adv-x="2304" d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16 t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76 q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59 t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489 l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66 q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf1f5;" horiz-adv-x="2304" d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf1f6;" horiz-adv-x="2048" d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 l418 363q10 8 23.5 7t21.5 -11z" />
-<glyph unicode="&#xf1f7;" horiz-adv-x="2048" d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" />
-<glyph unicode="&#xf1f8;" horiz-adv-x="1408" d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf1f9;" d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf1fa;" d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" />
-<glyph unicode="&#xf1fb;" horiz-adv-x="1792" d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
-<glyph unicode="&#xf1fc;" horiz-adv-x="1792" d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
-<glyph unicode="&#xf1fd;" horiz-adv-x="1792" d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11t55.5 -11t52.5 -38q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5t47 37.5 q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-35 0 -55.5 11t-52.5 38q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38t-58 27 t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448h256v448 h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51 t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" />
-<glyph unicode="&#xf1fe;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
-<glyph unicode="&#xf200;" horiz-adv-x="1792" d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
-<glyph unicode="&#xf201;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 t9 -23z" />
-<glyph unicode="&#xf202;" horiz-adv-x="1792" d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" />
-<glyph unicode="&#xf203;" d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf204;" horiz-adv-x="2048" d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" />
-<glyph unicode="&#xf205;" horiz-adv-x="2048" d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
-<glyph unicode="&#xf206;" horiz-adv-x="2304" d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" />
-<glyph unicode="&#xf207;" d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" />
-<glyph unicode="&#xf208;" horiz-adv-x="2048" d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" />
-<glyph unicode="&#xf209;" horiz-adv-x="1280" d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q18 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" />
-<glyph unicode="&#xf20a;" horiz-adv-x="2048" d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
-<glyph unicode="&#xf20b;" d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
-<glyph unicode="&#xf20c;" d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
-<glyph unicode="&#xf20d;" d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" />
-<glyph unicode="&#xf20e;" horiz-adv-x="2048" d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5 q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360q2 0 4.5 -1t5.5 -2.5l5 -2.5l188 199v347l-187 194 q-13 -8 -29 -10zM986 1438h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13 zM552 226h402l64 66l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224 l213 -225zM1023 946l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196 l-48 -227l130 227h-82zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" />
-<glyph unicode="&#xf210;" d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" />
-<glyph unicode="&#xf211;" d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" />
-<glyph unicode="&#xf212;" horiz-adv-x="2048" d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25 q209 0 374 -102q172 107 374 102z" />
-<glyph unicode="&#xf213;" horiz-adv-x="2048" d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284 q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" />
-<glyph unicode="&#xf214;" d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114 v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378 v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51 h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5 t-43 -34t-16.5 -53.5z" />
-<glyph unicode="&#xf215;" horiz-adv-x="2048" d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" />
-<glyph unicode="&#xf216;" horiz-adv-x="2048" d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126.5t-103.5 132.5t-108.5 126t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" />
-<glyph unicode="&#xf217;" horiz-adv-x="1664" d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf218;" horiz-adv-x="1664" d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
-<glyph unicode="&#xf219;" horiz-adv-x="2048" d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" />
-<glyph unicode="&#xf21a;" horiz-adv-x="2048" d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" />
-<glyph unicode="&#xf21b;" d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" />
-<glyph unicode="&#xf21c;" horiz-adv-x="2304" d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105 l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226 t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" />
-<glyph unicode="&#xf21d;" d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5z" />
-<glyph unicode="&#xf21e;" horiz-adv-x="1792" d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 t127 -344z" />
-<glyph unicode="&#xf221;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
-<glyph unicode="&#xf222;" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5 q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
-<glyph unicode="&#xf223;" horiz-adv-x="1280" d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
-<glyph unicode="&#xf224;" d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
-<glyph unicode="&#xf225;" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
-<glyph unicode="&#xf226;" horiz-adv-x="1792" d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 q0 -226 -154 -391q103 -57 218 -57z" />
-<glyph unicode="&#xf227;" horiz-adv-x="1920" d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -29 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" />
-<glyph unicode="&#xf228;" horiz-adv-x="2048" d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" />
-<glyph unicode="&#xf229;" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5 t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
-<glyph unicode="&#xf22a;" horiz-adv-x="1280" d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 t131.5 -316.5t316.5 -131.5z" />
-<glyph unicode="&#xf22b;" horiz-adv-x="2048" d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5 t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5 t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
-<glyph unicode="&#xf22c;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
-<glyph unicode="&#xf22d;" horiz-adv-x="1280" d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123 t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" />
-<glyph unicode="&#xf22e;" horiz-adv-x="1792" />
-<glyph unicode="&#xf22f;" horiz-adv-x="1792" />
-<glyph unicode="&#xf230;" d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
-<glyph unicode="&#xf231;" horiz-adv-x="1280" d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" />
-<glyph unicode="&#xf232;" d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" />
-<glyph unicode="&#xf233;" horiz-adv-x="1792" d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
-<glyph unicode="&#xf234;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" />
-<glyph unicode="&#xf235;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" />
-<glyph unicode="&#xf236;" horiz-adv-x="2048" d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 q-26 0 -45 -19t-19 -45v-384h1152z" />
-<glyph unicode="&#xf237;" d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
-<glyph unicode="&#xf238;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
-<glyph unicode="&#xf239;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
-<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M1792 204v-209h-642v209h134v926h-6l-314 -1135h-243l-310 1135h-8v-926h135v-209h-538v209h69q21 0 43 19.5t22 37.5v881q0 18 -22 40t-43 22h-69v209h672l221 -821h6l223 821h670v-209h-71q-19 0 -41 -22t-22 -40v-881q0 -18 21.5 -37.5t41.5 -19.5h71z" />
-<glyph unicode="&#xf23b;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" />
-<glyph unicode="&#xf23c;" horiz-adv-x="2296" d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5 q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42 q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37 q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5 q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139 q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 4 5 8q16 18 60 23h13q5 18 19 30t33 8 t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132 q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132 q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-106 2 -211 0v1q-1 -27 2.5 -86 t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103 q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34l3 9v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4l-10 -2.5t-12 -2 l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-2 0 -3 -0.5t-3 -0.5h-3q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130t-73 70 q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -2 -1 -5t-1 -4q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150 q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12 q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" />
-<glyph unicode="&#xf23d;" horiz-adv-x="2304" d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5 t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" />
-<glyph unicode="&#xf23e;" horiz-adv-x="1792" d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23 t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512 q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" />
-<glyph unicode="&#xf240;" horiz-adv-x="2304" d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" />
-<glyph unicode="&#xf241;" horiz-adv-x="2304" d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
-<glyph unicode="&#xf242;" horiz-adv-x="2304" d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
-<glyph unicode="&#xf243;" horiz-adv-x="2304" d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
-<glyph unicode="&#xf244;" horiz-adv-x="2304" d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
-<glyph unicode="&#xf245;" horiz-adv-x="1280" d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" />
-<glyph unicode="&#xf246;" horiz-adv-x="1024" d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" />
-<glyph unicode="&#xf247;" horiz-adv-x="2048" d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" />
-<glyph unicode="&#xf248;" horiz-adv-x="2304" d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256 v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" />
-<glyph unicode="&#xf249;" d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" />
-<glyph unicode="&#xf24a;" d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68 z" />
-<glyph unicode="&#xf24b;" horiz-adv-x="2304" d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5 t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88 t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90 t90 38h2048q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf24c;" horiz-adv-x="2304" d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294 t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf24d;" horiz-adv-x="1792" d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113 zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" />
-<glyph unicode="&#xf24e;" horiz-adv-x="2304" d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64 q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91 t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5 t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" />
-<glyph unicode="&#xf250;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5 t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
-<glyph unicode="&#xf251;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" />
-<glyph unicode="&#xf252;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" />
-<glyph unicode="&#xf253;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196 h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
-<glyph unicode="&#xf254;" d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87 t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9 h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" />
-<glyph unicode="&#xf255;" d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25 q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27 t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21 q72 69 174 69z" />
-<glyph unicode="&#xf256;" horiz-adv-x="1792" d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33 t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52 h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" />
-<glyph unicode="&#xf257;" horiz-adv-x="1792" d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668 q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17 t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5 t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5 q0 -42 -23 -78t-61 -53l-310 -141h91z" />
-<glyph unicode="&#xf258;" horiz-adv-x="2048" d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32 q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68 q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" />
-<glyph unicode="&#xf259;" horiz-adv-x="2048" d="M816 1408q-48 0 -79.5 -34t-31.5 -82q0 -14 3 -28l150 -624h-26l-116 482q-9 38 -39.5 62t-69.5 24q-47 0 -79 -34t-32 -81q0 -11 4 -29q3 -13 39 -161t68 -282t32 -138v-227l-307 230q-34 26 -77 26q-52 0 -89.5 -36.5t-37.5 -88.5q0 -67 56 -110l507 -379 q34 -26 76 -26h694q33 0 59 20.5t34 52.5l100 401q8 30 10 88t9 86l116 478q3 12 3 26q0 46 -33 79t-80 33q-38 0 -69 -25.5t-40 -62.5l-99 -408h-26l132 547q3 14 3 28q0 47 -32 80t-80 33q-38 0 -68.5 -24t-39.5 -62l-145 -602h-127l-164 682q-9 38 -39.5 62t-68.5 24z M1461 -256h-694q-85 0 -153 51l-507 380q-50 38 -78.5 94t-28.5 118q0 105 75 179t180 74q25 0 49.5 -5.5t41.5 -11t41 -20.5t35 -23t38.5 -29.5t37.5 -28.5l-123 512q-7 35 -7 59q0 93 60 162t152 79q14 87 80.5 144.5t155.5 57.5q83 0 148 -51.5t85 -132.5l103 -428 l83 348q20 81 85 132.5t148 51.5q87 0 152.5 -54t82.5 -139q93 -10 155 -78t62 -161q0 -30 -7 -57l-116 -477q-5 -22 -5 -67q0 -51 -13 -108l-101 -401q-19 -75 -79.5 -122.5t-137.5 -47.5z" />
-<glyph unicode="&#xf25a;" horiz-adv-x="1792" d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5 q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5 v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32 v-384h32z" />
-<glyph unicode="&#xf25b;" d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181 v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46 q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5 q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308 q0 -53 37.5 -90.5t90.5 -37.5h668z" />
-<glyph unicode="&#xf25c;" horiz-adv-x="1973" d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5 t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141 q13 0 22 -8.5t10 -20.5z" />
-<glyph unicode="&#xf25d;" horiz-adv-x="1792" d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
-<glyph unicode="&#xf25e;" horiz-adv-x="1792" d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5 t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376 q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" />
-<glyph unicode="&#xf260;" horiz-adv-x="2048" d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" />
-<glyph unicode="&#xf261;" horiz-adv-x="1792" d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
-<glyph unicode="&#xf262;" horiz-adv-x="2304" d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197 t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5 t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5 t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5 q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" />
-<glyph unicode="&#xf263;" horiz-adv-x="1280" d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" />
-<glyph unicode="&#xf264;" d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5 zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
-<glyph unicode="&#xf265;" horiz-adv-x="1720" d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" />
-<glyph unicode="&#xf266;" horiz-adv-x="2304" d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81 l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" />
-<glyph unicode="&#xf267;" horiz-adv-x="1792" d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5 t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5 t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5 t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191 t191 -286t71 -348z" />
-<glyph unicode="&#xf268;" horiz-adv-x="1792" d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" />
-<glyph unicode="&#xf269;" horiz-adv-x="1792" d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" />
-<glyph unicode="&#xf26a;" d="M768 -92q77 0 139.5 63t100.5 166t59 234.5t21 268.5t-21 268.5t-59 234.5t-100.5 166t-139.5 63t-139.5 -63t-100.5 -166t-59 -234.5t-21 -268.5t21 -268.5t59 -234.5t100.5 -166t139.5 -63zM768 -256q-184 0 -333 77t-240 203t-141 287t-50 329t50 329t141 287t240 203 t333 77q148 0 274 -50t214.5 -136t151.5 -201t92.5 -244t29.5 -265t-29.5 -265t-92.5 -244t-151.5 -201t-214.5 -136t-274 -50z" />
-<glyph unicode="&#xf26b;" horiz-adv-x="1792" d="M716 -69q-143 35 -261.5 114t-197.5 191q-139 -300 -17 -398q26 -21 85 -24.5t127.5 9.5t141 41.5t122.5 66.5zM693 762h452q0 108 -61.5 169t-168.5 61q-103 0 -162.5 -62.5t-59.5 -167.5zM1724 1137h-34q26 102 22.5 170t-25 110t-63.5 57t-93.5 11t-115 -26.5 t-128.5 -56.5t-134 -79q129 -37 238.5 -113.5t185 -179t110 -231.5t15.5 -262h-1005q0 -60 10 -106t34 -85t69.5 -60t112.5 -21q87 0 142.5 44t72.5 122h540q-71 -230 -281.5 -377t-477.5 -147q-83 0 -159 15q-35 -40 -151 -94t-248 -78t-219 35q-78 60 -100 159t7 214 t88 242t143.5 248t173.5 226.5t177.5 183.5t156.5 112v24q-120 -37 -258.5 -137.5t-240.5 -207t-159 -195.5q4 106 34 201t80 169t118 135.5t147.5 100.5t168 65.5t180.5 29.5t185 -8q310 186 503 189h7q57 0 103 -18q80 -30 98 -132.5t-30 -248.5z" />
-<glyph unicode="&#xf26c;" horiz-adv-x="2048" d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
-<glyph unicode="&#xf26d;" horiz-adv-x="1792" d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 q-68 175 -180 287z" />
-<glyph unicode="&#xf26e;" horiz-adv-x="2304" d="M1391 390v0l-1 1q-15 18 -34.5 37.5t-62.5 57.5t-93.5 62t-95.5 24q-48 0 -83 -21.5t-51 -54t-23 -59t-7 -47.5v0v0q0 -21 7 -48t23 -59t51 -53.5t83 -21.5q45 0 95.5 24t94 62.5t62 57t34.5 37.5zM2103 390q0 21 -7 47.5t-23 59t-51 54t-83 21.5q-45 0 -95.5 -24 t-94 -62.5t-62 -57t-34.5 -37.5l-1 -1v0v0l1 -1q15 -18 34.5 -37.5t62.5 -57.5t93.5 -62t95.5 -24q48 0 83 21.5t51 53.5t23 59t7 48zM2304 393q0 -69 -24 -137.5t-68 -126t-116 -93.5t-159 -36q-68 0 -134 24t-113.5 58.5t-84.5 69.5t-59.5 59t-25.5 24t-22.5 -24 t-54.5 -58.5t-81.5 -69.5t-115 -59t-143.5 -24q-65 0 -123.5 22.5t-96.5 54t-66.5 66.5t-41 59.5t-12.5 32.5q0 -8 -8.5 -26.5t-25 -45.5t-47 -55t-69 -52.5t-96.5 -40t-125 -15.5q-71 0 -130 15.5t-98.5 39.5t-70.5 56.5t-48 63.5t-27.5 63.5t-14 54t-3.5 36.5h217 q0 -55 49 -107.5t126 -52.5q79 0 134.5 67t55.5 148q0 80 -52 136.5t-138 56.5q-5 0 -13 -0.5t-31 -5t-43 -12t-42 -24.5t-34 -40h-195l102 583h602v-174h-445q-27 -159 -41 -248q4 0 16.5 13t31.5 28.5t65 28.5t108 13t114 -20.5t82.5 -49.5t51.5 -58.5t31 -50t11 -20.5 t13 25t36.5 60.5t60.5 71.5t97 61t133 25t140.5 -25t115.5 -60.5t83.5 -71.5t56.5 -61t21 -25q2 0 22 25t56 60.5t83.5 71.5t115.5 61t140 25q92 0 164.5 -35t115.5 -93t65 -125t22 -137z" />
-<glyph unicode="&#xf270;" horiz-adv-x="1792" d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" />
-<glyph unicode="&#xf271;" horiz-adv-x="1792" d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224 v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" />
-<glyph unicode="&#xf272;" horiz-adv-x="1792" d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h128q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf273;" horiz-adv-x="1792" d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf274;" horiz-adv-x="1792" d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
-<glyph unicode="&#xf275;" horiz-adv-x="1792" d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" />
-<glyph unicode="&#xf276;" horiz-adv-x="1024" d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q61 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" />
-<glyph unicode="&#xf277;" horiz-adv-x="1792" d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" />
-<glyph unicode="&#xf278;" horiz-adv-x="2048" d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" />
-<glyph unicode="&#xf279;" horiz-adv-x="1792" d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" />
-<glyph unicode="&#xf27a;" horiz-adv-x="1792" d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37 t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
-<glyph unicode="&#xf27b;" horiz-adv-x="1792" d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5 t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51 t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" />
-<glyph unicode="&#xf27c;" horiz-adv-x="1024" d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" />
-<glyph unicode="&#xf27d;" horiz-adv-x="1792" d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" />
-<glyph unicode="&#xf27e;" d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" />
-<glyph unicode="&#xf280;" d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" />
-<glyph unicode="&#xf281;" horiz-adv-x="1792" />
-<glyph unicode="&#xf282;" horiz-adv-x="1792" />
-<glyph unicode="&#xf283;" horiz-adv-x="1792" />
-<glyph unicode="&#xf284;" horiz-adv-x="1792" />
-<glyph unicode="&#xf285;" horiz-adv-x="1792" />
-<glyph unicode="&#xf286;" horiz-adv-x="1792" />
-<glyph unicode="&#xf287;" horiz-adv-x="1792" />
-<glyph unicode="&#xf288;" horiz-adv-x="1792" />
-<glyph unicode="&#xf289;" horiz-adv-x="1792" />
-<glyph unicode="&#xf28a;" horiz-adv-x="1792" />
-<glyph unicode="&#xf28b;" horiz-adv-x="1792" />
-<glyph unicode="&#xf28c;" horiz-adv-x="1792" />
-<glyph unicode="&#xf28d;" horiz-adv-x="1792" />
-<glyph unicode="&#xf28e;" horiz-adv-x="1792" />
-<glyph unicode="&#xf500;" horiz-adv-x="1792" />
-</font>
-</defs></svg> 
\ No newline at end of file
+<font id="FontAwesome" horiz-adv-x="1536" >
+  <font-face 
+    font-family="FontAwesome"
+    font-weight="400"
+    font-stretch="normal"
+    units-per-em="1792"
+    panose-1="0 0 0 0 0 0 0 0 0 0"
+    ascent="1536"
+    descent="-256"
+    bbox="-1.02083 -256.962 2304.6 1537.02"
+    underline-thickness="0"
+    underline-position="0"
+    unicode-range="U+0020-F500"
+  />
+<missing-glyph horiz-adv-x="896" 
+d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" />
+    <glyph glyph-name=".notdef" horiz-adv-x="896" 
+d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" />
+    <glyph glyph-name=".null" horiz-adv-x="0" 
+ />
+    <glyph glyph-name="nonmarkingreturn" horiz-adv-x="597" 
+ />
+    <glyph glyph-name="space" unicode=" " horiz-adv-x="448" 
+ />
+    <glyph glyph-name="dieresis" unicode="&#xa8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="acute" unicode="&#xb4;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="Oslash" unicode="&#xd8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="trademark" unicode="&#x2122;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="infinity" unicode="&#x221e;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="notequal" unicode="&#x2260;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="glass" unicode="&#xf000;" horiz-adv-x="1792" 
+d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+    <glyph glyph-name="music" unicode="&#xf001;" 
+d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89
+t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="search" unicode="&#xf002;" horiz-adv-x="1664" 
+d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5
+t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+    <glyph glyph-name="envelope" unicode="&#xf003;" horiz-adv-x="1792" 
+d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13
+t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z
+M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="heart" unicode="&#xf004;" horiz-adv-x="1792" 
+d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600
+q-18 -18 -44 -18z" />
+    <glyph glyph-name="star" unicode="&#xf005;" horiz-adv-x="1664" 
+d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455
+l502 -73q56 -9 56 -46z" />
+    <glyph glyph-name="star_empty" unicode="&#xf006;" horiz-adv-x="1664" 
+d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500
+l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+    <glyph glyph-name="user" unicode="&#xf007;" horiz-adv-x="1280" 
+d="M1280 137q0 -109 -62.5 -187t-150.5 -78h-854q-88 0 -150.5 78t-62.5 187q0 85 8.5 160.5t31.5 152t58.5 131t94 89t134.5 34.5q131 -128 313 -128t313 128q76 0 134.5 -34.5t94 -89t58.5 -131t31.5 -152t8.5 -160.5zM1024 1024q0 -159 -112.5 -271.5t-271.5 -112.5
+t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="film" unicode="&#xf008;" horiz-adv-x="1920" 
+d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128
+q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45
+t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128
+q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19
+t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="th_large" unicode="&#xf009;" horiz-adv-x="1664" 
+d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38
+h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="th" unicode="&#xf00a;" horiz-adv-x="1792" 
+d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28
+h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192
+q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="th_list" unicode="&#xf00b;" horiz-adv-x="1792" 
+d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28
+h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="ok" unicode="&#xf00c;" horiz-adv-x="1792" 
+d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+    <glyph glyph-name="remove" unicode="&#xf00d;" horiz-adv-x="1408" 
+d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68
+t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+    <glyph glyph-name="zoom_in" unicode="&#xf00e;" horiz-adv-x="1664" 
+d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224
+q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5
+t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+    <glyph glyph-name="zoom_out" unicode="&#xf010;" horiz-adv-x="1664" 
+d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z
+M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z
+" />
+    <glyph glyph-name="off" unicode="&#xf011;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5
+t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
+    <glyph glyph-name="signal" unicode="&#xf012;" horiz-adv-x="1792" 
+d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23
+v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="cog" unicode="&#xf013;" 
+d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38
+q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13
+l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22
+q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
+    <glyph glyph-name="trash" unicode="&#xf014;" horiz-adv-x="1408" 
+d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576
+q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832
+q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="home" unicode="&#xf015;" horiz-adv-x="1664" 
+d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5
+l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+    <glyph glyph-name="file_alt" unicode="&#xf016;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+" />
+    <glyph glyph-name="time" unicode="&#xf017;" 
+d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="road" unicode="&#xf018;" horiz-adv-x="1920" 
+d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256
+q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
+    <glyph glyph-name="download_alt" unicode="&#xf019;" horiz-adv-x="1664" 
+d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136
+q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
+    <glyph glyph-name="download" unicode="&#xf01a;" 
+d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273
+t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="upload" unicode="&#xf01b;" 
+d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198
+t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="inbox" unicode="&#xf01c;" 
+d="M1023 576h316q-1 3 -2.5 8.5t-2.5 7.5l-212 496h-708l-212 -496q-1 -3 -2.5 -8.5t-2.5 -7.5h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552
+q25 -61 25 -123z" />
+    <glyph glyph-name="play_circle" unicode="&#xf01d;" 
+d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="repeat" unicode="&#xf01e;" 
+d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q15 0 25 -9
+l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+    <glyph glyph-name="refresh" unicode="&#xf021;" 
+d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117
+q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5
+q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="list_alt" unicode="&#xf022;" horiz-adv-x="1792" 
+d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z
+M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5
+t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47
+t47 -113z" />
+    <glyph glyph-name="lock" unicode="&#xf023;" horiz-adv-x="1152" 
+d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="flag" unicode="&#xf024;" horiz-adv-x="1792" 
+d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48
+t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="headphones" unicode="&#xf025;" horiz-adv-x="1664" 
+d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78
+t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5
+t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
+    <glyph glyph-name="volume_off" unicode="&#xf026;" horiz-adv-x="768" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="volume_down" unicode="&#xf027;" horiz-adv-x="1152" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36
+t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+    <glyph glyph-name="volume_up" unicode="&#xf028;" horiz-adv-x="1664" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36
+t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5
+t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289
+t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
+    <glyph glyph-name="qrcode" unicode="&#xf029;" horiz-adv-x="1408" 
+d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z
+M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+    <glyph glyph-name="barcode" unicode="&#xf02a;" horiz-adv-x="1792" 
+d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z
+M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+    <glyph glyph-name="tag" unicode="&#xf02b;" 
+d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5
+l715 -714q37 -39 37 -91z" />
+    <glyph glyph-name="tags" unicode="&#xf02c;" horiz-adv-x="1920" 
+d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5
+l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
+    <glyph glyph-name="book" unicode="&#xf02d;" horiz-adv-x="1664" 
+d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23
+q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906
+q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5
+t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
+    <glyph glyph-name="bookmark" unicode="&#xf02e;" horiz-adv-x="1280" 
+d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+    <glyph glyph-name="print" unicode="&#xf02f;" horiz-adv-x="1664" 
+d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68
+v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+    <glyph glyph-name="camera" unicode="&#xf030;" horiz-adv-x="1920" 
+d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136
+q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="font" unicode="&#xf031;" horiz-adv-x="1664" 
+d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57
+q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -5 -0.5 -13.5t-0.5 -12.5q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5
+q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
+    <glyph glyph-name="bold" unicode="&#xf032;" horiz-adv-x="1408" 
+d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142
+q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5
+t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68 -0.5t68 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5
+t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
+    <glyph glyph-name="italic" unicode="&#xf033;" horiz-adv-x="1024" 
+d="M0 -126l17 85q22 7 61.5 16.5t72 19t59.5 23.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5
+q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
+    <glyph glyph-name="text_height" unicode="&#xf034;" horiz-adv-x="1792" 
+d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2
+t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5
+q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27
+q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
+    <glyph glyph-name="text_width" unicode="&#xf035;" 
+d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1
+t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27
+q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5
+t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49
+t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
+    <glyph glyph-name="align_left" unicode="&#xf036;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45
+t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_center" unicode="&#xf037;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19
+h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_right" unicode="&#xf038;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45
+t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_justify" unicode="&#xf039;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45
+t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="list" unicode="&#xf03a;" horiz-adv-x="1792" 
+d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5
+t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344
+q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5
+t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192
+q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="indent_left" unicode="&#xf03b;" horiz-adv-x="1792" 
+d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5
+t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088
+q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="indent_right" unicode="&#xf03c;" horiz-adv-x="1792" 
+d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5
+t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088
+q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="facetime_video" unicode="&#xf03d;" horiz-adv-x="1792" 
+d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5
+q39 -17 39 -59z" />
+    <glyph glyph-name="picture" unicode="&#xf03e;" horiz-adv-x="1920" 
+d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216
+q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="pencil" unicode="&#xf040;" 
+d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38
+q53 0 91 -38l235 -234q37 -39 37 -91z" />
+    <glyph glyph-name="map_marker" unicode="&#xf041;" horiz-adv-x="1024" 
+d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+    <glyph glyph-name="adjust" unicode="&#xf042;" 
+d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="tint" unicode="&#xf043;" horiz-adv-x="1024" 
+d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362
+q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+    <glyph glyph-name="edit" unicode="&#xf044;" horiz-adv-x="1792" 
+d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832
+q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92
+l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
+    <glyph glyph-name="share" unicode="&#xf045;" horiz-adv-x="1664" 
+d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832
+q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5
+t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="check" unicode="&#xf046;" horiz-adv-x="1664" 
+d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832
+q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110
+q24 -24 24 -57t-24 -57z" />
+    <glyph glyph-name="move" unicode="&#xf047;" horiz-adv-x="1792" 
+d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45
+t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="step_backward" unicode="&#xf048;" horiz-adv-x="1024" 
+d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19z" />
+    <glyph glyph-name="fast_backward" unicode="&#xf049;" horiz-adv-x="1792" 
+d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19l710 710
+q19 19 32 13t13 -32v-710q4 10 13 19z" />
+    <glyph glyph-name="backward" unicode="&#xf04a;" horiz-adv-x="1664" 
+d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q4 10 13 19z" />
+    <glyph glyph-name="play" unicode="&#xf04b;" horiz-adv-x="1408" 
+d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+    <glyph glyph-name="pause" unicode="&#xf04c;" 
+d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="stop" unicode="&#xf04d;" 
+d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="forward" unicode="&#xf04e;" horiz-adv-x="1664" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" />
+    <glyph glyph-name="fast_forward" unicode="&#xf050;" horiz-adv-x="1792" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19l-710 -710
+q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" />
+    <glyph glyph-name="step_forward" unicode="&#xf051;" horiz-adv-x="1024" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19z" />
+    <glyph glyph-name="eject" unicode="&#xf052;" horiz-adv-x="1538" 
+d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+    <glyph glyph-name="chevron_left" unicode="&#xf053;" horiz-adv-x="1280" 
+d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="chevron_right" unicode="&#xf054;" horiz-adv-x="1280" 
+d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="plus_sign" unicode="&#xf055;" 
+d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5
+t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="minus_sign" unicode="&#xf056;" 
+d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="remove_sign" unicode="&#xf057;" 
+d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19
+q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ok_sign" unicode="&#xf058;" 
+d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="question_sign" unicode="&#xf059;" 
+d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59
+q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="info_sign" unicode="&#xf05a;" 
+d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23
+t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="screenshot" unicode="&#xf05b;" 
+d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109
+q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143
+q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="remove_circle" unicode="&#xf05c;" 
+d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23
+l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5
+t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ok_circle" unicode="&#xf05d;" 
+d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198
+t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ban_circle" unicode="&#xf05e;" 
+d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61
+t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+    <glyph glyph-name="arrow_left" unicode="&#xf060;" 
+d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5
+t32.5 -90.5z" />
+    <glyph glyph-name="arrow_right" unicode="&#xf061;" 
+d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+    <glyph glyph-name="arrow_up" unicode="&#xf062;" horiz-adv-x="1664" 
+d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651
+q37 -39 37 -91z" />
+    <glyph glyph-name="arrow_down" unicode="&#xf063;" horiz-adv-x="1664" 
+d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+    <glyph glyph-name="share_alt" unicode="&#xf064;" horiz-adv-x="1792" 
+d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22
+t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+    <glyph glyph-name="resize_full" unicode="&#xf065;" 
+d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332
+q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="resize_small" unicode="&#xf066;" 
+d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45
+t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+    <glyph glyph-name="plus" unicode="&#xf067;" horiz-adv-x="1408" 
+d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="minus" unicode="&#xf068;" horiz-adv-x="1408" 
+d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="asterisk" unicode="&#xf069;" horiz-adv-x="1664" 
+d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154
+q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+    <glyph glyph-name="exclamation_sign" unicode="&#xf06a;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192
+q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+    <glyph glyph-name="gift" unicode="&#xf06b;" 
+d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320
+q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5
+t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="leaf" unicode="&#xf06c;" horiz-adv-x="1792" 
+d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268
+q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-43 0 -63.5 17.5t-45.5 59.5q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5
+t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
+    <glyph glyph-name="fire" unicode="&#xf06d;" horiz-adv-x="1408" 
+d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1
+q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
+    <glyph glyph-name="eye_open" unicode="&#xf06e;" horiz-adv-x="1792" 
+d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5
+t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
+    <glyph glyph-name="eye_close" unicode="&#xf070;" horiz-adv-x="1792" 
+d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9
+q-106 -189 -316 -567t-315 -566l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5
+q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z
+" />
+    <glyph glyph-name="warning_sign" unicode="&#xf071;" horiz-adv-x="1792" 
+d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185
+q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+    <glyph glyph-name="plane" unicode="&#xf072;" horiz-adv-x="1408" 
+d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9
+q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+    <glyph glyph-name="calendar" unicode="&#xf073;" horiz-adv-x="1664" 
+d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z
+M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64
+q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47
+h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="random" unicode="&#xf074;" horiz-adv-x="1792" 
+d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1
+t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5
+v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111
+t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+    <glyph glyph-name="comment" unicode="&#xf075;" horiz-adv-x="1792" 
+d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281
+q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="magnet" unicode="&#xf076;" 
+d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384
+q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="chevron_up" unicode="&#xf077;" horiz-adv-x="1792" 
+d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
+    <glyph glyph-name="chevron_down" unicode="&#xf078;" horiz-adv-x="1792" 
+d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
+    <glyph glyph-name="retweet" unicode="&#xf079;" horiz-adv-x="1920" 
+d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -10 7 -21
+zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z
+" />
+    <glyph glyph-name="shopping_cart" unicode="&#xf07a;" horiz-adv-x="1664" 
+d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45
+t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="folder_close" unicode="&#xf07b;" horiz-adv-x="1664" 
+d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="folder_open" unicode="&#xf07c;" horiz-adv-x="1920" 
+d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5
+t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="resize_vertical" unicode="&#xf07d;" horiz-adv-x="768" 
+d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="resize_horizontal" unicode="&#xf07e;" horiz-adv-x="1792" 
+d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="bar_chart" unicode="&#xf080;" horiz-adv-x="2048" 
+d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
+    <glyph glyph-name="twitter_sign" unicode="&#xf081;" 
+d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4
+q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5
+t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="facebook_sign" unicode="&#xf082;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960z" />
+    <glyph glyph-name="camera_retro" unicode="&#xf083;" horiz-adv-x="1792" 
+d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5
+t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280
+q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="key" unicode="&#xf084;" horiz-adv-x="1792" 
+d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26
+l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5
+t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
+    <glyph glyph-name="cogs" unicode="&#xf085;" horiz-adv-x="1920" 
+d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -11 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5
+l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7
+l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -8 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31
+q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20
+t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68
+q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70
+q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
+    <glyph glyph-name="comments" unicode="&#xf086;" horiz-adv-x="1792" 
+d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224
+q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7
+q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
+    <glyph glyph-name="thumbs_up_alt" unicode="&#xf087;" 
+d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5
+t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769
+q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128
+q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
+    <glyph glyph-name="thumbs_down_alt" unicode="&#xf088;" 
+d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 31 18 69q0 37 -17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5
+t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z
+M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5
+h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -73 49 -163z" />
+    <glyph glyph-name="star_half" unicode="&#xf089;" horiz-adv-x="896" 
+d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
+    <glyph glyph-name="heart_empty" unicode="&#xf08a;" horiz-adv-x="1792" 
+d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559
+q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5
+q224 0 351 -124t127 -344z" />
+    <glyph glyph-name="signout" unicode="&#xf08b;" horiz-adv-x="1664" 
+d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704
+q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
+    <glyph glyph-name="linkedin_sign" unicode="&#xf08c;" 
+d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5
+q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="pushpin" unicode="&#xf08d;" horiz-adv-x="1152" 
+d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38
+t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
+    <glyph glyph-name="external_link" unicode="&#xf08e;" horiz-adv-x="1792" 
+d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320
+q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="signin" unicode="&#xf090;" 
+d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5
+q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="trophy" unicode="&#xf091;" horiz-adv-x="1664" 
+d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91
+t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96
+q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="github_sign" unicode="&#xf092;" 
+d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4
+q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4
+t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16
+q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="upload_alt" unicode="&#xf093;" horiz-adv-x="1664" 
+d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92
+t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
+    <glyph glyph-name="lemon" unicode="&#xf094;" 
+d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5
+q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44
+q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5
+q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -13 2 -25t3.5 -16.5t7.5 -20.5t8 -20q16 -40 25 -118.5t9 -136.5z" />
+    <glyph glyph-name="phone" unicode="&#xf095;" horiz-adv-x="1408" 
+d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -53 3.5t-57.5 12.5t-47 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-127 79 -264 216t-216 264q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47t-12.5 57.5t-3.5 53q0 92 51 186
+q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174q2 -1 19 -11.5t24 -14
+t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
+    <glyph glyph-name="check_empty" unicode="&#xf096;" horiz-adv-x="1408" 
+d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832
+q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="bookmark_empty" unicode="&#xf097;" horiz-adv-x="1280" 
+d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289
+q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+    <glyph glyph-name="phone_sign" unicode="&#xf098;" 
+d="M1280 343q0 11 -2 16t-18 16.5t-40.5 25t-47.5 26.5t-45.5 25t-28.5 15q-5 3 -19 13t-25 15t-21 5q-15 0 -36.5 -20.5t-39.5 -45t-38.5 -45t-33.5 -20.5q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170 126.5t-127 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5
+t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5
+t320.5 -216.5q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z
+" />
+    <glyph glyph-name="twitter" unicode="&#xf099;" horiz-adv-x="1664" 
+d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41
+q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
+    <glyph glyph-name="facebook" unicode="&#xf09a;" horiz-adv-x="1024" 
+d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
+    <glyph glyph-name="github" unicode="&#xf09b;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24
+q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5
+t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12
+q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z
+M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" />
+    <glyph glyph-name="unlock" unicode="&#xf09c;" horiz-adv-x="1664" 
+d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5
+t316.5 -131.5t131.5 -316.5z" />
+    <glyph glyph-name="credit_card" unicode="&#xf09d;" horiz-adv-x="1920" 
+d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608
+q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
+    <glyph glyph-name="rss" unicode="&#xf09e;" horiz-adv-x="1408" 
+d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5
+t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294
+q187 -186 294 -425.5t120 -501.5z" />
+    <glyph glyph-name="hdd" unicode="&#xf0a0;" 
+d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5
+h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75
+l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
+    <glyph glyph-name="bullhorn" unicode="&#xf0a1;" horiz-adv-x="1792" 
+d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5
+t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
+    <glyph glyph-name="bell" unicode="&#xf0a2;" horiz-adv-x="1792" 
+d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z
+M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5
+t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+    <glyph glyph-name="certificate" unicode="&#xf0a3;" 
+d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70
+l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70
+l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
+    <glyph glyph-name="hand_right" unicode="&#xf0a4;" horiz-adv-x="1792" 
+d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106
+q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43
+q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5
+t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
+    <glyph glyph-name="hand_left" unicode="&#xf0a5;" horiz-adv-x="1792" 
+d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-8 9 -12 14q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5
+t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45z
+M1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67
+q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="hand_up" unicode="&#xf0a6;" 
+d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576
+q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5
+t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76
+q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
+    <glyph glyph-name="hand_down" unicode="&#xf0a7;" 
+d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33
+t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580
+q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100
+q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
+    <glyph glyph-name="circle_arrow_left" unicode="&#xf0a8;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_right" unicode="&#xf0a9;" 
+d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_up" unicode="&#xf0aa;" 
+d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_down" unicode="&#xf0ab;" 
+d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="globe" unicode="&#xf0ac;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11
+q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 11t-9.5 10q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5
+q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5
+q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5
+t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-4 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3
+q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25
+q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5
+t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5
+t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10.5t17 -19.5q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21
+q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5
+q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3
+q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5
+t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q8 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5
+q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7
+q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
+    <glyph glyph-name="wrench" unicode="&#xf0ad;" horiz-adv-x="1664" 
+d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5
+t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
+    <glyph glyph-name="tasks" unicode="&#xf0ae;" horiz-adv-x="1792" 
+d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19
+t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="filter" unicode="&#xf0b0;" horiz-adv-x="1408" 
+d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
+    <glyph glyph-name="briefcase" unicode="&#xf0b1;" horiz-adv-x="1792" 
+d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68
+t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="fullscreen" unicode="&#xf0b2;" 
+d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144
+l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z
+" />
+    <glyph glyph-name="group" unicode="&#xf0c0;" horiz-adv-x="1920" 
+d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5
+t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75
+t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5
+t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
+    <glyph glyph-name="link" unicode="&#xf0c1;" horiz-adv-x="1664" 
+d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26
+l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15
+t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207
+q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
+    <glyph glyph-name="cloud" unicode="&#xf0c2;" horiz-adv-x="1920" 
+d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z
+" />
+    <glyph glyph-name="beaker" unicode="&#xf0c3;" horiz-adv-x="1664" 
+d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
+    <glyph glyph-name="cut" unicode="&#xf0c4;" horiz-adv-x="1792" 
+d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84
+q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148
+q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108
+q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6
+q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
+    <glyph glyph-name="copy" unicode="&#xf0c5;" horiz-adv-x="1792" 
+d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299
+h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
+    <glyph glyph-name="paper_clip" unicode="&#xf0c6;" horiz-adv-x="1408" 
+d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181
+l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235
+z" />
+    <glyph glyph-name="save" unicode="&#xf0c7;" 
+d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5
+h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
+    <glyph glyph-name="sign_blank" unicode="&#xf0c8;" 
+d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="reorder" unicode="&#xf0c9;" 
+d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45
+t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="ul" unicode="&#xf0ca;" horiz-adv-x="1792" 
+d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5
+t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z
+M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="ol" unicode="&#xf0cb;" horiz-adv-x="1792" 
+d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362
+q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5
+t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 121.5t0.5 121.5v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216
+q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="strikethrough" unicode="&#xf0cc;" horiz-adv-x="1792" 
+d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 98 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6
+l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -56 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23
+l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
+    <glyph glyph-name="underline" unicode="&#xf0cd;" 
+d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47
+q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41
+q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472
+q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
+    <glyph glyph-name="table" unicode="&#xf0ce;" horiz-adv-x="1664" 
+d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23
+v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192
+q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192
+q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113
+z" />
+    <glyph glyph-name="magic" unicode="&#xf0d0;" horiz-adv-x="1664" 
+d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276
+l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
+    <glyph glyph-name="truck" unicode="&#xf0d1;" horiz-adv-x="1792" 
+d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5
+t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38
+t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="pinterest" unicode="&#xf0d2;" 
+d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134
+q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33
+q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="pinterest_sign" unicode="&#xf0d3;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5
+t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5
+t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
+    <glyph glyph-name="google_plus_sign" unicode="&#xf0d4;" 
+d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585
+h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="google_plus" unicode="&#xf0d5;" horiz-adv-x="2304" 
+d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62
+q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" />
+    <glyph glyph-name="money" unicode="&#xf0d6;" horiz-adv-x="1920" 
+d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384
+v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="caret_down" unicode="&#xf0d7;" horiz-adv-x="1024" 
+d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="caret_up" unicode="&#xf0d8;" horiz-adv-x="1024" 
+d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="caret_left" unicode="&#xf0d9;" horiz-adv-x="640" 
+d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="caret_right" unicode="&#xf0da;" horiz-adv-x="640" 
+d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="columns" unicode="&#xf0db;" horiz-adv-x="1664" 
+d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="sort" unicode="&#xf0dc;" horiz-adv-x="1024" 
+d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="sort_down" unicode="&#xf0dd;" horiz-adv-x="1024" 
+d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="sort_up" unicode="&#xf0de;" horiz-adv-x="1024" 
+d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="envelope_alt" unicode="&#xf0e0;" horiz-adv-x="1792" 
+d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123
+q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
+    <glyph glyph-name="linkedin" unicode="&#xf0e1;" 
+d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329
+q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
+    <glyph glyph-name="undo" unicode="&#xf0e2;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5
+t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
+    <glyph glyph-name="legal" unicode="&#xf0e3;" horiz-adv-x="1792" 
+d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5
+t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14
+q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28
+q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
+    <glyph glyph-name="dashboard" unicode="&#xf0e4;" horiz-adv-x="1792" 
+d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5
+t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5
+t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29
+q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="comment_alt" unicode="&#xf0e5;" horiz-adv-x="1792" 
+d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640
+q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5
+t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="comments_alt" unicode="&#xf0e6;" horiz-adv-x="1792" 
+d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257
+t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5
+t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129
+q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
+    <glyph glyph-name="bolt" unicode="&#xf0e7;" horiz-adv-x="896" 
+d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
+    <glyph glyph-name="sitemap" unicode="&#xf0e8;" horiz-adv-x="1792" 
+d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320
+q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68
+z" />
+    <glyph glyph-name="umbrella" unicode="&#xf0e9;" horiz-adv-x="1664" 
+d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97
+q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69
+q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
+    <glyph glyph-name="paste" unicode="&#xf0ea;" horiz-adv-x="1792" 
+d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28
+h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
+    <glyph glyph-name="light_bulb" unicode="&#xf0eb;" horiz-adv-x="1024" 
+d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134
+q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47
+q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5
+t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
+    <glyph glyph-name="exchange" unicode="&#xf0ec;" horiz-adv-x="1792" 
+d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9
+q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+    <glyph glyph-name="cloud_download" unicode="&#xf0ed;" horiz-adv-x="1920" 
+d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088
+q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+    <glyph glyph-name="cloud_upload" unicode="&#xf0ee;" horiz-adv-x="1920" 
+d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088
+q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+    <glyph glyph-name="user_md" unicode="&#xf0f0;" horiz-adv-x="1408" 
+d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56
+t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68
+t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5
+t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="stethoscope" unicode="&#xf0f1;" horiz-adv-x="1408" 
+d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48
+t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252
+t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="suitcase" unicode="&#xf0f2;" horiz-adv-x="1792" 
+d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66
+t66 -158z" />
+    <glyph glyph-name="bell_alt" unicode="&#xf0f3;" horiz-adv-x="1792" 
+d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5
+t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+    <glyph glyph-name="coffee" unicode="&#xf0f4;" horiz-adv-x="1920" 
+d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45
+t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="food" unicode="&#xf0f5;" horiz-adv-x="1408" 
+d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45
+t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="file_text_alt" unicode="&#xf0f6;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704
+q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" />
+    <glyph glyph-name="building" unicode="&#xf0f7;" horiz-adv-x="1408" 
+d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="hospital" unicode="&#xf0f8;" horiz-adv-x="1408" 
+d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5
+t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320
+v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="ambulance" unicode="&#xf0f9;" horiz-adv-x="1920" 
+d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152
+q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="medkit" unicode="&#xf0fa;" horiz-adv-x="1792" 
+d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32
+q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="fighter_jet" unicode="&#xf0fb;" horiz-adv-x="1920" 
+d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96
+q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q128 -28 200 -52t80 -34z" />
+    <glyph glyph-name="beer" unicode="&#xf0fc;" horiz-adv-x="1664" 
+d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
+    <glyph glyph-name="h_sign" unicode="&#xf0fd;" 
+d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="f0fe" unicode="&#xf0fe;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="double_angle_left" unicode="&#xf100;" horiz-adv-x="1024" 
+d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23
+t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_right" unicode="&#xf101;" horiz-adv-x="1024" 
+d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23
+l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_up" unicode="&#xf102;" horiz-adv-x="1152" 
+d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393
+q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_down" unicode="&#xf103;" horiz-adv-x="1152" 
+d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23
+t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="angle_left" unicode="&#xf104;" horiz-adv-x="640" 
+d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="angle_right" unicode="&#xf105;" horiz-adv-x="640" 
+d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="angle_up" unicode="&#xf106;" horiz-adv-x="1152" 
+d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="angle_down" unicode="&#xf107;" horiz-adv-x="1152" 
+d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="desktop" unicode="&#xf108;" horiz-adv-x="1920" 
+d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19
+t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="laptop" unicode="&#xf109;" horiz-adv-x="1920" 
+d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z
+M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
+    <glyph glyph-name="tablet" unicode="&#xf10a;" horiz-adv-x="1152" 
+d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832
+q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="mobile_phone" unicode="&#xf10b;" horiz-adv-x="768" 
+d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136
+q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="circle_blank" unicode="&#xf10c;" 
+d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103
+t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="quote_left" unicode="&#xf10d;" horiz-adv-x="1664" 
+d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z
+M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
+    <glyph glyph-name="quote_right" unicode="&#xf10e;" horiz-adv-x="1664" 
+d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216
+v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
+    <glyph glyph-name="spinner" unicode="&#xf110;" horiz-adv-x="1792" 
+d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5
+t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z
+M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5
+q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="circle" unicode="&#xf111;" 
+d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="reply" unicode="&#xf112;" horiz-adv-x="1792" 
+d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19
+l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
+    <glyph glyph-name="github_alt" unicode="&#xf113;" horiz-adv-x="1664" 
+d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320
+q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86
+t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218
+q0 -87 -27 -168q136 -160 136 -398z" />
+    <glyph glyph-name="folder_close_alt" unicode="&#xf114;" horiz-adv-x="1664" 
+d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320
+q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="folder_open_alt" unicode="&#xf115;" horiz-adv-x="1920" 
+d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68
+v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z
+" />
+    <glyph glyph-name="expand_alt" unicode="&#xf116;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="collapse_alt" unicode="&#xf117;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="smile" unicode="&#xf118;" 
+d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5
+t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="frown" unicode="&#xf119;" 
+d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204
+t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="meh" unicode="&#xf11a;" 
+d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="gamepad" unicode="&#xf11b;" horiz-adv-x="1920" 
+d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5
+t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150
+t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
+    <glyph glyph-name="keyboard" unicode="&#xf11c;" horiz-adv-x="1920" 
+d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16
+h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16
+h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96
+q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896
+h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="flag_alt" unicode="&#xf11d;" horiz-adv-x="1792" 
+d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9
+h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102
+q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+    <glyph glyph-name="flag_checkered" unicode="&#xf11e;" horiz-adv-x="1792" 
+d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2
+q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266
+q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8
+q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+    <glyph glyph-name="terminal" unicode="&#xf120;" horiz-adv-x="1664" 
+d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9
+t9 -23z" />
+    <glyph glyph-name="code" unicode="&#xf121;" horiz-adv-x="1920" 
+d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5
+l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
+    <glyph glyph-name="reply_all" unicode="&#xf122;" horiz-adv-x="1792" 
+d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1
+q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
+    <glyph glyph-name="star_half_empty" unicode="&#xf123;" horiz-adv-x="1664" 
+d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5
+l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
+    <glyph glyph-name="location_arrow" unicode="&#xf124;" horiz-adv-x="1408" 
+d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
+    <glyph glyph-name="crop" unicode="&#xf125;" horiz-adv-x="1664" 
+d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23
+v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="code_fork" unicode="&#xf126;" horiz-adv-x="1024" 
+d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5
+q-2 -287 -226 -414q-67 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497
+q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="unlink" unicode="&#xf127;" horiz-adv-x="1664" 
+d="M439 265l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320
+q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18
+l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9
+t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+    <glyph glyph-name="question" unicode="&#xf128;" horiz-adv-x="1024" 
+d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5
+t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
+    <glyph glyph-name="_279" unicode="&#xf129;" horiz-adv-x="640" 
+d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192
+q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="exclamation" unicode="&#xf12a;" horiz-adv-x="640" 
+d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
+    <glyph glyph-name="superscript" unicode="&#xf12b;" 
+d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z
+M1534 846v-206h-514l-3 27q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5
+t-65.5 -51.5t-30.5 -63h232v80h126z" />
+    <glyph glyph-name="subscript" unicode="&#xf12c;" 
+d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z
+M1536 -50v-206h-514l-4 27q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73
+h232v80h126z" />
+    <glyph glyph-name="_283" unicode="&#xf12d;" horiz-adv-x="1920" 
+d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
+    <glyph glyph-name="puzzle_piece" unicode="&#xf12e;" horiz-adv-x="1664" 
+d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5
+t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89
+q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117
+q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
+    <glyph glyph-name="microphone" unicode="&#xf130;" horiz-adv-x="1152" 
+d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5
+t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
+    <glyph glyph-name="microphone_off" unicode="&#xf131;" horiz-adv-x="1408" 
+d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128
+q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23
+t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
+    <glyph glyph-name="shield" unicode="&#xf132;" horiz-adv-x="1280" 
+d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150
+t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="calendar_empty" unicode="&#xf133;" horiz-adv-x="1664" 
+d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280
+q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="fire_extinguisher" unicode="&#xf134;" horiz-adv-x="1408" 
+d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800
+q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113
+q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
+    <glyph glyph-name="rocket" unicode="&#xf135;" horiz-adv-x="1664" 
+d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1
+q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
+    <glyph glyph-name="maxcdn" unicode="&#xf136;" horiz-adv-x="1792" 
+d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
+    <glyph glyph-name="chevron_sign_left" unicode="&#xf137;" 
+d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_right" unicode="&#xf138;" 
+d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_up" unicode="&#xf139;" 
+d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_down" unicode="&#xf13a;" 
+d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="html5" unicode="&#xf13b;" horiz-adv-x="1408" 
+d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
+    <glyph glyph-name="css3" unicode="&#xf13c;" horiz-adv-x="1792" 
+d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
+    <glyph glyph-name="anchor" unicode="&#xf13d;" horiz-adv-x="1792" 
+d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352
+q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19
+t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="unlock_alt" unicode="&#xf13e;" horiz-adv-x="1152" 
+d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181
+v-320h736z" />
+    <glyph glyph-name="bullseye" unicode="&#xf140;" 
+d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150
+t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ellipsis_horizontal" unicode="&#xf141;" horiz-adv-x="1408" 
+d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="ellipsis_vertical" unicode="&#xf142;" horiz-adv-x="384" 
+d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="_303" unicode="&#xf143;" 
+d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 233 -176.5 396.5t-396.5 176.5q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128
+q13 0 23 10t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="play_sign" unicode="&#xf144;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56
+q16 -8 32 -8q17 0 32 9z" />
+    <glyph glyph-name="ticket" unicode="&#xf145;" horiz-adv-x="1792" 
+d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136
+t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
+    <glyph glyph-name="minus_sign_alt" unicode="&#xf146;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="check_minus" unicode="&#xf147;" horiz-adv-x="1408" 
+d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5
+t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="level_up" unicode="&#xf148;" horiz-adv-x="1024" 
+d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
+    <glyph glyph-name="level_down" unicode="&#xf149;" horiz-adv-x="1024" 
+d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
+    <glyph glyph-name="check_sign" unicode="&#xf14a;" 
+d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5
+t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="edit_sign" unicode="&#xf14b;" 
+d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_312" unicode="&#xf14c;" 
+d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960
+q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="share_sign" unicode="&#xf14d;" 
+d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q11 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5
+t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="compass" unicode="&#xf14e;" 
+d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="collapse" unicode="&#xf150;" 
+d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="collapse_top" unicode="&#xf151;" 
+d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_317" unicode="&#xf152;" 
+d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5
+t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="eur" unicode="&#xf153;" horiz-adv-x="1024" 
+d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9
+t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26
+l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
+    <glyph glyph-name="gbp" unicode="&#xf154;" horiz-adv-x="1024" 
+d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7
+q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
+    <glyph glyph-name="usd" unicode="&#xf155;" horiz-adv-x="1024" 
+d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43
+t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5
+t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50
+t53 -63.5t31.5 -76.5t13 -94z" />
+    <glyph glyph-name="inr" unicode="&#xf156;" horiz-adv-x="898" 
+d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102
+q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="jpy" unicode="&#xf157;" horiz-adv-x="1027" 
+d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61
+l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
+    <glyph glyph-name="rub" unicode="&#xf158;" horiz-adv-x="1280" 
+d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128
+q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
+    <glyph glyph-name="krw" unicode="&#xf159;" horiz-adv-x="1792" 
+d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23
+t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28
+q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="btc" unicode="&#xf15a;" horiz-adv-x="1280" 
+d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164
+l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30
+t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
+    <glyph glyph-name="file" unicode="&#xf15b;" 
+d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
+    <glyph glyph-name="file_text" unicode="&#xf15c;" 
+d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704
+q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
+    <glyph glyph-name="sort_by_alphabet" unicode="&#xf15d;" horiz-adv-x="1664" 
+d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23
+v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162
+l230 -662h70z" />
+    <glyph glyph-name="_329" unicode="&#xf15e;" horiz-adv-x="1664" 
+d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150
+v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248
+v119h121z" />
+    <glyph glyph-name="sort_by_attributes" unicode="&#xf160;" horiz-adv-x="1792" 
+d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832
+q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="sort_by_attributes_alt" unicode="&#xf161;" horiz-adv-x="1792" 
+d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192
+q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="sort_by_order" unicode="&#xf162;" 
+d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23
+zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5
+t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
+    <glyph glyph-name="sort_by_order_alt" unicode="&#xf163;" 
+d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9
+t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13
+q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
+    <glyph glyph-name="_334" unicode="&#xf164;" horiz-adv-x="1664" 
+d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76
+q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5
+t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
+    <glyph glyph-name="_335" unicode="&#xf165;" horiz-adv-x="1664" 
+d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135
+t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121
+t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
+    <glyph glyph-name="youtube_sign" unicode="&#xf166;" 
+d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 17 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15
+q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38
+q21 -29 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5
+q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78q7 -23 23 -69l24 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38
+q-51 0 -78 -38q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5
+h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="youtube" unicode="&#xf167;" 
+d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73
+q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51
+q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99
+q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-38 -51 -106 -51q-67 0 -105 51
+q-28 38 -28 118v175q0 80 28 117q38 51 105 51q68 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
+    <glyph glyph-name="xing" unicode="&#xf168;" horiz-adv-x="1408" 
+d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942
+q25 45 64 45h241q22 0 31 -15z" />
+    <glyph glyph-name="xing_sign" unicode="&#xf169;" 
+d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1
+l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="youtube_play" unicode="&#xf16a;" horiz-adv-x="1792" 
+d="M711 408l484 250l-484 253v-503zM896 1270q168 0 324.5 -4.5t229.5 -9.5l73 -4q1 0 17 -1.5t23 -3t23.5 -4.5t28.5 -8t28 -13t31 -19.5t29 -26.5q6 -6 15.5 -18.5t29 -58.5t26.5 -101q8 -64 12.5 -136.5t5.5 -113.5v-40v-136q1 -145 -18 -290q-7 -55 -25 -99.5t-32 -61.5
+l-14 -17q-14 -15 -29 -26.5t-31 -19t-28 -12.5t-28.5 -8t-24 -4.5t-23 -3t-16.5 -1.5q-251 -19 -627 -19q-207 2 -359.5 6.5t-200.5 7.5l-49 4l-36 4q-36 5 -54.5 10t-51 21t-56.5 41q-6 6 -15.5 18.5t-29 58.5t-26.5 101q-8 64 -12.5 136.5t-5.5 113.5v40v136
+q-1 145 18 290q7 55 25 99.5t32 61.5l14 17q14 15 29 26.5t31 19.5t28 13t28.5 8t23.5 4.5t23 3t17 1.5q251 18 627 18z" />
+    <glyph glyph-name="dropbox" unicode="&#xf16b;" horiz-adv-x="1792" 
+d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
+    <glyph glyph-name="stackexchange" unicode="&#xf16c;" 
+d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" />
+    <glyph glyph-name="instagram" unicode="&#xf16d;" 
+d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270
+q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11 71.5 -18.5t103 -10t96.5 -3t105.5 0t76.5 0.5
+t76.5 -0.5t105.5 0t96.5 3t103 10t71.5 18.5q50 20 88 58t58 88q11 29 18.5 71.5t10 103t3 96.5t0 105.5t-0.5 76.5t0.5 76.5t0 105.5t-3 96.5t-10 103t-18.5 71.5q-20 50 -58 88t-88 58q-29 11 -71.5 18.5t-103 10t-96.5 3t-105.5 0t-76.5 -0.5zM1536 640q0 -229 -5 -317
+q-10 -208 -124 -322t-322 -124q-88 -5 -317 -5t-317 5q-208 10 -322 124t-124 322q-5 88 -5 317t5 317q10 208 124 322t322 124q88 5 317 5t317 -5q208 -10 322 -124t124 -322q5 -88 5 -317z" />
+    <glyph glyph-name="flickr" unicode="&#xf16e;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150
+t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
+    <glyph glyph-name="adn" unicode="&#xf170;" 
+d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="f171" unicode="&#xf171;" horiz-adv-x="1408" 
+d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22
+t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18
+t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5
+t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
+    <glyph glyph-name="bitbucket_sign" unicode="&#xf172;" 
+d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5
+t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z
+M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="tumblr" unicode="&#xf173;" horiz-adv-x="1024" 
+d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14
+q78 2 134 29z" />
+    <glyph glyph-name="tumblr_sign" unicode="&#xf174;" 
+d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z
+M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="long_arrow_down" unicode="&#xf175;" horiz-adv-x="768" 
+d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
+    <glyph glyph-name="long_arrow_up" unicode="&#xf176;" horiz-adv-x="768" 
+d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
+    <glyph glyph-name="long_arrow_left" unicode="&#xf177;" horiz-adv-x="1792" 
+d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="long_arrow_right" unicode="&#xf178;" horiz-adv-x="1792" 
+d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
+    <glyph glyph-name="apple" unicode="&#xf179;" horiz-adv-x="1408" 
+d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q113 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65
+q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
+    <glyph glyph-name="windows" unicode="&#xf17a;" horiz-adv-x="1664" 
+d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
+    <glyph glyph-name="android" unicode="&#xf17b;" horiz-adv-x="1408" 
+d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30
+t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5
+h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
+    <glyph glyph-name="linux" unicode="&#xf17c;" 
+d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-10 -11 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z
+M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7
+q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15
+q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5
+t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19
+q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63
+q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18q-2 -1 -4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92
+q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152
+q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-6 0 -8 -2t0 -4
+t5 -3q14 -4 18 -31q0 -3 8 2q2 2 2 3zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5
+t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43
+q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49
+t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54
+q110 143 124 195q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5
+t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5
+t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
+    <glyph glyph-name="dribble" unicode="&#xf17d;" 
+d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81
+t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19
+q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -5 6.5 -17t7.5 -17q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6
+t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="skype" unicode="&#xf17e;" 
+d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5
+t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5
+q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80
+q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
+    <glyph glyph-name="foursquare" unicode="&#xf180;" horiz-adv-x="1280" 
+d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z
+M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324
+l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" />
+    <glyph glyph-name="trello" unicode="&#xf181;" 
+d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408
+q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="female" unicode="&#xf182;" horiz-adv-x="1280" 
+d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43
+q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="male" unicode="&#xf183;" horiz-adv-x="1024" 
+d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z
+M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="gittip" unicode="&#xf184;" 
+d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="sun" unicode="&#xf185;" horiz-adv-x="1792" 
+d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4
+l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94
+q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
+    <glyph glyph-name="_366" unicode="&#xf186;" 
+d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61
+t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
+    <glyph glyph-name="archive" unicode="&#xf187;" horiz-adv-x="1792" 
+d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536
+q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="bug" unicode="&#xf188;" horiz-adv-x="1664" 
+d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207
+q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19
+t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
+    <glyph glyph-name="vk" unicode="&#xf189;" horiz-adv-x="1920" 
+d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-40 -51 -55 -72t-30.5 -49.5t-12 -42t13 -34.5t32.5 -43t57 -53q4 -2 5 -4q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58
+t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6
+q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q16 19 38 30q53 26 239 24
+q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2
+q39 5 64 -2.5t31 -16.5z" />
+    <glyph glyph-name="weibo" unicode="&#xf18a;" horiz-adv-x="1792" 
+d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12
+q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422
+q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178
+q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z
+M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
+    <glyph glyph-name="renren" unicode="&#xf18b;" 
+d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495
+q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
+    <glyph glyph-name="_372" unicode="&#xf18c;" horiz-adv-x="1408" 
+d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5
+t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56
+t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -4 1 -50t-1 -72q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5
+t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
+    <glyph glyph-name="stack_exchange" unicode="&#xf18d;" horiz-adv-x="1280" 
+d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z
+" />
+    <glyph glyph-name="_374" unicode="&#xf18e;" 
+d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198
+t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="arrow_circle_alt_left" unicode="&#xf190;" 
+d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198
+t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_376" unicode="&#xf191;" 
+d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z
+M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="dot_circle_alt" unicode="&#xf192;" 
+d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5
+t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_378" unicode="&#xf193;" horiz-adv-x="1664" 
+d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128
+q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 17 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
+    <glyph glyph-name="vimeo_square" unicode="&#xf194;" 
+d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179
+q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_380" unicode="&#xf195;" horiz-adv-x="1152" 
+d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160
+q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="plus_square_o" unicode="&#xf196;" horiz-adv-x="1408" 
+d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832
+q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_382" unicode="&#xf197;" horiz-adv-x="2176" 
+d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40
+t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29
+q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
+    <glyph glyph-name="_383" unicode="&#xf198;" horiz-adv-x="1664" 
+d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9
+q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102
+t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
+    <glyph glyph-name="_384" unicode="&#xf199;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69
+q-47 32 -142 92.5t-142 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13
+t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
+    <glyph glyph-name="_385" unicode="&#xf19a;" horiz-adv-x="1792" 
+d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5
+t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21
+t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286
+t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273
+t273 -182.5t331.5 -68z" />
+    <glyph glyph-name="_386" unicode="&#xf19b;" horiz-adv-x="1792" 
+d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
+    <glyph glyph-name="_387" unicode="&#xf19c;" horiz-adv-x="2048" 
+d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64
+q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
+    <glyph glyph-name="_388" unicode="&#xf19d;" horiz-adv-x="2304" 
+d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433
+q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
+    <glyph glyph-name="_389" unicode="&#xf19e;" 
+d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q44 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0
+q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
+    <glyph glyph-name="uniF1A0" unicode="&#xf1a0;" 
+d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5
+t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" />
+    <glyph glyph-name="f1a1" unicode="&#xf1a1;" horiz-adv-x="1792" 
+d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26
+t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37
+q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191
+t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_392" unicode="&#xf1a2;" 
+d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54
+q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83
+q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_393" unicode="&#xf1a3;" 
+d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150
+v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103
+t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="f1a4" unicode="&#xf1a4;" horiz-adv-x="1920" 
+d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328
+v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
+    <glyph glyph-name="_395" unicode="&#xf1a5;" 
+d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="_396" unicode="&#xf1a6;" horiz-adv-x="2048" 
+d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123
+v-369h123z" />
+    <glyph glyph-name="_397" unicode="&#xf1a7;" 
+d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101
+v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_398" unicode="&#xf1a8;" horiz-adv-x="2038" 
+d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14
+q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24
+q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33
+q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5
+t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43
+q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5
+t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13
+t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
+    <glyph glyph-name="_399" unicode="&#xf1a9;" 
+d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10
+q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14
+q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14
+t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44
+q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
+    <glyph glyph-name="_400" unicode="&#xf1aa;" 
+d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z
+M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5
+t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5
+q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126
+t135.5 51q85 0 145 -60.5t60 -145.5z" />
+    <glyph glyph-name="f1ab" unicode="&#xf1ab;" 
+d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5
+q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28
+q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z
+M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11
+q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q107 36 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5
+q20 0 20 -21v-418z" />
+    <glyph glyph-name="_402" unicode="&#xf1ac;" horiz-adv-x="1792" 
+d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48
+l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23
+t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128
+q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128
+q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
+    <glyph glyph-name="_403" unicode="&#xf1ad;" 
+d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9
+t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64
+q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64
+q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9
+t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64
+q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64
+q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9
+t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" />
+    <glyph glyph-name="_404" unicode="&#xf1ae;" horiz-adv-x="1280" 
+d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68q29 28 68.5 28t67.5 -28l228 -228h368l228 228q28 28 68 28t68 -28q28 -29 28 -68.5t-28 -67.5zM864 1152
+q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="uniF1B1" unicode="&#xf1b0;" horiz-adv-x="1664" 
+d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5
+q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819
+q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5
+t100.5 134t141.5 55.5z" />
+    <glyph glyph-name="_406" unicode="&#xf1b1;" horiz-adv-x="768" 
+d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
+    <glyph glyph-name="_407" unicode="&#xf1b2;" horiz-adv-x="1792" 
+d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z
+" />
+    <glyph glyph-name="_408" unicode="&#xf1b3;" horiz-adv-x="2304" 
+d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67
+t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-4 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70
+v-400l434 -186q36 -16 57 -48t21 -70z" />
+    <glyph glyph-name="_409" unicode="&#xf1b4;" horiz-adv-x="2048" 
+d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658
+q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204
+q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" />
+    <glyph glyph-name="_410" unicode="&#xf1b5;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5
+t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217
+t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" />
+    <glyph glyph-name="_411" unicode="&#xf1b6;" horiz-adv-x="1792" 
+d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5
+q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89
+q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" />
+    <glyph glyph-name="_412" unicode="&#xf1b7;" 
+d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5
+q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5
+q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z
+" />
+    <glyph glyph-name="_413" unicode="&#xf1b8;" horiz-adv-x="1792" 
+d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188
+l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5
+t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1
+q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" />
+    <glyph glyph-name="_414" unicode="&#xf1b9;" horiz-adv-x="2048" 
+d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384
+q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5
+l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="_415" unicode="&#xf1ba;" horiz-adv-x="2048" 
+d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5
+t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z
+M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
+    <glyph glyph-name="_416" unicode="&#xf1bb;" 
+d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384
+q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
+    <glyph glyph-name="_417" unicode="&#xf1bc;" 
+d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64
+q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37
+q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_418" unicode="&#xf1bd;" horiz-adv-x="1024" 
+d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" />
+    <glyph glyph-name="_419" unicode="&#xf1be;" horiz-adv-x="2304" 
+d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11
+q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245
+q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785
+l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242
+q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236
+q0 -11 -8 -19t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786
+q-13 2 -22 11t-9 22v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
+    <glyph glyph-name="uniF1C0" unicode="&#xf1c0;" 
+d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127
+t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5
+t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
+    <glyph glyph-name="uniF1C1" unicode="&#xf1c1;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197
+q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8
+q-1 1 -1 2q-1 2 -1 3q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
+    <glyph glyph-name="_422" unicode="&#xf1c2;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4q0 3 -0.5 6.5t-1.5 8t-1 6.5q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5
+t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300z" />
+    <glyph glyph-name="_423" unicode="&#xf1c3;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107
+h-290v-107h68l189 -272l-194 -283h-68z" />
+    <glyph glyph-name="_424" unicode="&#xf1c4;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
+    <glyph glyph-name="_425" unicode="&#xf1c5;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
+    <glyph glyph-name="_426" unicode="&#xf1c6;" 
+d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400
+v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79
+q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
+    <glyph glyph-name="_427" unicode="&#xf1c7;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5
+q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
+    <glyph glyph-name="_428" unicode="&#xf1c8;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
+    <glyph glyph-name="_429" unicode="&#xf1c9;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243
+l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
+    <glyph glyph-name="_430" unicode="&#xf1ca;" 
+d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406
+q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
+    <glyph glyph-name="_431" unicode="&#xf1cb;" horiz-adv-x="1792" 
+d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546
+q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
+    <glyph glyph-name="_432" unicode="&#xf1cc;" horiz-adv-x="2048" 
+d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94
+q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55
+t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97l93 -108q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z" />
+    <glyph glyph-name="_433" unicode="&#xf1cd;" horiz-adv-x="1792" 
+d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194
+q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5
+t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
+    <glyph glyph-name="_434" unicode="&#xf1ce;" horiz-adv-x="1792" 
+d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5
+t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" />
+    <glyph glyph-name="uniF1D0" unicode="&#xf1d0;" horiz-adv-x="1792" 
+d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41
+t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170
+t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136
+q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
+    <glyph glyph-name="uniF1D1" unicode="&#xf1d1;" horiz-adv-x="1792" 
+d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251
+l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162
+q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33
+q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5
+t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71
+t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF1D2" unicode="&#xf1d2;" 
+d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85
+q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392
+q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072
+q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_438" unicode="&#xf1d3;" horiz-adv-x="1792" 
+d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58
+q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47
+q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171
+v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
+    <glyph glyph-name="_439" unicode="&#xf1d4;" 
+d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF1D5" unicode="&#xf1d5;" horiz-adv-x="1280" 
+d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5
+t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153
+t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
+    <glyph glyph-name="uniF1D6" unicode="&#xf1d6;" horiz-adv-x="1792" 
+d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5
+q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20
+t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5
+t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
+    <glyph glyph-name="uniF1D7" unicode="&#xf1d7;" horiz-adv-x="2048" 
+d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25
+q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5
+q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109
+q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
+    <glyph glyph-name="_443" unicode="&#xf1d8;" horiz-adv-x="1792" 
+d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
+    <glyph glyph-name="_444" unicode="&#xf1d9;" horiz-adv-x="1792" 
+d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137
+l863 639l-478 -797z" />
+    <glyph glyph-name="_445" unicode="&#xf1da;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5
+t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23
+t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_446" unicode="&#xf1db;" 
+d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_447" unicode="&#xf1dc;" horiz-adv-x="1792" 
+d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15
+t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2
+t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160
+q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5
+q0 -26 -12 -48t-36 -22z" />
+    <glyph glyph-name="_448" unicode="&#xf1dd;" horiz-adv-x="1280" 
+d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179
+q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
+    <glyph glyph-name="_449" unicode="&#xf1de;" 
+d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256
+q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" />
+    <glyph glyph-name="uniF1E0" unicode="&#xf1e0;" 
+d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5
+t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
+    <glyph glyph-name="_451" unicode="&#xf1e1;" 
+d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5
+t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_452" unicode="&#xf1e2;" horiz-adv-x="1792" 
+d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5
+t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91
+q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9
+t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+    <glyph glyph-name="_453" unicode="&#xf1e3;" horiz-adv-x="1792" 
+d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323
+l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" />
+    <glyph glyph-name="_454" unicode="&#xf1e4;" horiz-adv-x="1792" 
+d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23
+v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23
+zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5
+t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" />
+    <glyph glyph-name="_455" unicode="&#xf1e5;" horiz-adv-x="1792" 
+d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z
+M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_456" unicode="&#xf1e6;" horiz-adv-x="1792" 
+d="M1755 1083q37 -38 37 -90.5t-37 -90.5l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234
+l401 400q38 37 91 37t90 -37z" />
+    <glyph glyph-name="_457" unicode="&#xf1e7;" horiz-adv-x="1792" 
+d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5
+t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z
+M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q4 -2 11.5 -7
+t10.5 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" />
+    <glyph glyph-name="_458" unicode="&#xf1e8;" horiz-adv-x="1792" 
+d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
+    <glyph glyph-name="_459" unicode="&#xf1e9;" 
+d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36
+q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q71 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5
+t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87
+q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" />
+    <glyph glyph-name="_460" unicode="&#xf1ea;" horiz-adv-x="2048" 
+d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19
+t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
+    <glyph glyph-name="_461" unicode="&#xf1eb;" horiz-adv-x="2048" 
+d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121
+q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z
+M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" />
+    <glyph glyph-name="_462" unicode="&#xf1ec;" horiz-adv-x="1792" 
+d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5
+t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5
+t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5
+t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z
+M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38
+h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_463" unicode="&#xf1ed;" 
+d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246
+q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598
+q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" />
+    <glyph glyph-name="_464" unicode="&#xf1ee;" horiz-adv-x="1792" 
+d="M441 864q33 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640
+q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" />
+    <glyph glyph-name="uniF1F0" unicode="&#xf1f0;" horiz-adv-x="2304" 
+d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27
+q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128
+q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_466" unicode="&#xf1f1;" horiz-adv-x="2304" 
+d="M1119 1195q-128 85 -281 85q-103 0 -197.5 -40.5t-162.5 -108.5t-108.5 -162t-40.5 -197q0 -104 40.5 -198t108.5 -162t162 -108.5t198 -40.5q153 0 281 85q-131 107 -178 265.5t0.5 316.5t177.5 265zM1152 1171q-126 -99 -172 -249.5t-0.5 -300.5t172.5 -249
+q127 99 172.5 249t-0.5 300.5t-172 249.5zM1185 1195q130 -107 177.5 -265.5t0.5 -317t-178 -264.5q128 -85 281 -85q104 0 198 40.5t162 108.5t108.5 162t40.5 198q0 103 -40.5 197t-108.5 162t-162.5 108.5t-197.5 40.5q-153 0 -281 -85zM1926 473h7v3h-17v-3h7v-17h3v17z
+M1955 456h4v20h-5l-6 -13l-6 13h-5v-20h3v15l6 -13h4l5 13v-15zM1947 16v-2h-2h-3v3h3h2v-1zM1947 7h3l-4 5h2l1 1q1 1 1 3t-1 3l-1 1h-3h-6v-13h3v5h1zM685 75q0 19 11 31t30 12q18 0 29 -12.5t11 -30.5q0 -19 -11 -31t-29 -12q-19 0 -30 12t-11 31zM1158 119q30 0 35 -32
+h-70q5 32 35 32zM1514 75q0 19 11 31t29 12t29.5 -12.5t11.5 -30.5q0 -19 -11 -31t-30 -12q-18 0 -29 12t-11 31zM1786 75q0 18 11.5 30.5t29.5 12.5t29.5 -12.5t11.5 -30.5q0 -19 -11.5 -31t-29.5 -12t-29.5 12.5t-11.5 30.5zM1944 3q-2 0 -4 1q-1 0 -3 2t-2 3q-1 2 -1 4
+q0 3 1 4q0 2 2 4l1 1q2 0 2 1q2 1 4 1q3 0 4 -1l4 -2l2 -4v-1q1 -2 1 -3l-1 -1v-3t-1 -1l-1 -2q-2 -2 -4 -2q-1 -1 -4 -1zM599 7h30v85q0 24 -14.5 38.5t-39.5 15.5q-32 0 -47 -24q-14 24 -45 24q-24 0 -39 -20v16h-30v-135h30v75q0 36 33 36q30 0 30 -36v-75h29v75
+q0 36 33 36q30 0 30 -36v-75zM765 7h29v68v67h-29v-16q-17 20 -43 20q-29 0 -48 -20t-19 -51t19 -51t48 -20q28 0 43 20v-17zM943 48q0 34 -47 40l-14 2q-23 4 -23 14q0 15 25 15q23 0 43 -11l12 24q-22 14 -55 14q-26 0 -41 -12t-15 -32q0 -33 47 -39l13 -2q24 -4 24 -14
+q0 -17 -31 -17q-25 0 -45 14l-13 -23q25 -17 58 -17q29 0 45.5 12t16.5 32zM1073 14l-8 25q-13 -7 -26 -7q-19 0 -19 22v61h48v27h-48v41h-30v-41h-28v-27h28v-61q0 -50 47 -50q21 0 36 10zM1159 146q-29 0 -48 -20t-19 -51q0 -32 19.5 -51.5t49.5 -19.5q33 0 55 19l-14 22
+q-18 -15 -39 -15q-34 0 -41 33h101v12q0 32 -18 51.5t-46 19.5zM1318 146q-23 0 -35 -20v16h-30v-135h30v76q0 35 29 35q10 0 18 -4l9 28q-9 4 -21 4zM1348 75q0 -31 19.5 -51t52.5 -20q29 0 48 16l-14 24q-18 -13 -35 -12q-18 0 -29.5 12t-11.5 31t11.5 31t29.5 12
+q19 0 35 -12l14 24q-20 16 -48 16q-33 0 -52.5 -20t-19.5 -51zM1593 7h30v68v67h-30v-16q-15 20 -42 20q-29 0 -48.5 -20t-19.5 -51t19.5 -51t48.5 -20q28 0 42 20v-17zM1726 146q-23 0 -35 -20v16h-29v-135h29v76q0 35 29 35q10 0 18 -4l9 28q-8 4 -21 4zM1866 7h29v68v122
+h-29v-71q-15 20 -43 20t-47.5 -20.5t-19.5 -50.5t19.5 -50.5t47.5 -20.5q29 0 43 20v-17zM1944 27l-2 -1h-3q-2 -1 -4 -3q-3 -1 -3 -4q-1 -2 -1 -6q0 -3 1 -5q0 -2 3 -4q2 -2 4 -3t5 -1q4 0 6 1q0 1 2 2l2 1q1 1 3 4q1 2 1 5q0 4 -1 6q-1 1 -3 4q0 1 -2 2l-2 1q-1 0 -3 0.5
+t-3 0.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_467" unicode="&#xf1f2;" horiz-adv-x="2304" 
+d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42
+q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604
+v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569
+q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73
+t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" />
+    <glyph glyph-name="f1f3" unicode="&#xf1f3;" horiz-adv-x="2304" 
+d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z
+M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260
+l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279
+v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040
+q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168
+q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5
+t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21
+h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5
+t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" />
+    <glyph glyph-name="_469" unicode="&#xf1f4;" horiz-adv-x="2304" 
+d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16
+t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76
+q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59
+t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489
+l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66
+q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_470" unicode="&#xf1f5;" horiz-adv-x="2304" 
+d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109
+q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118
+q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151
+q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31
+q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_471" unicode="&#xf1f6;" horiz-adv-x="2048" 
+d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5
+l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5
+l418 363q10 8 23.5 7t21.5 -11z" />
+    <glyph glyph-name="_472" unicode="&#xf1f7;" horiz-adv-x="2048" 
+d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128
+q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161
+q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" />
+    <glyph glyph-name="_473" unicode="&#xf1f8;" horiz-adv-x="1408" 
+d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704
+q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167
+q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_474" unicode="&#xf1f9;" 
+d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5
+t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5
+t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_475" unicode="&#xf1fa;" 
+d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53
+q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24
+t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61
+t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" />
+    <glyph glyph-name="_476" unicode="&#xf1fb;" horiz-adv-x="1792" 
+d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10
+t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
+    <glyph glyph-name="f1fc" unicode="&#xf1fc;" horiz-adv-x="1792" 
+d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5
+t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
+    <glyph glyph-name="_478" unicode="&#xf1fd;" horiz-adv-x="1792" 
+d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11q24 0 44 -7t31 -15t33 -27q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5
+t47 37.5q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-24 0 -44 7t-31 15t-33 27q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38
+t-58 27t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448
+h256v448h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5
+q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" />
+    <glyph glyph-name="_479" unicode="&#xf1fe;" horiz-adv-x="2048" 
+d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
+    <glyph glyph-name="_480" unicode="&#xf200;" horiz-adv-x="1792" 
+d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_481" unicode="&#xf201;" horiz-adv-x="2048" 
+d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9
+t9 -23z" />
+    <glyph glyph-name="_482" unicode="&#xf202;" horiz-adv-x="1792" 
+d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20
+q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50
+t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1
+q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" />
+    <glyph glyph-name="_483" unicode="&#xf203;" 
+d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73
+q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110
+q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_484" unicode="&#xf204;" horiz-adv-x="2048" 
+d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5
+t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5
+t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" />
+    <glyph glyph-name="_485" unicode="&#xf205;" horiz-adv-x="2048" 
+d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5
+t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
+    <glyph glyph-name="_486" unicode="&#xf206;" horiz-adv-x="2304" 
+d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94
+q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469
+q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400
+q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" />
+    <glyph glyph-name="_487" unicode="&#xf207;" 
+d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5
+h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" />
+    <glyph glyph-name="_488" unicode="&#xf208;" horiz-adv-x="2048" 
+d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327
+q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5
+q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" />
+    <glyph glyph-name="_489" unicode="&#xf209;" horiz-adv-x="1280" 
+d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q17 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119
+t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5
+t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14
+q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88
+q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5
+t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" />
+    <glyph glyph-name="_490" unicode="&#xf20a;" horiz-adv-x="2048" 
+d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206
+q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307
+t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14
+t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
+    <glyph glyph-name="_491" unicode="&#xf20b;" 
+d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5
+t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_492" unicode="&#xf20c;" 
+d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55
+q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410
+q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
+    <glyph glyph-name="_493" unicode="&#xf20d;" 
+d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" />
+    <glyph glyph-name="_494" unicode="&#xf20e;" horiz-adv-x="2048" 
+d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335
+q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5
+q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360l15 -6l188 199v347l-187 194q-13 -8 -29 -10zM986 1438
+h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13zM552 226h402l64 66
+l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224l213 -225zM1023 946
+l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196l-48 -227l130 227h-82
+zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" />
+    <glyph glyph-name="f210" unicode="&#xf210;" 
+d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" />
+    <glyph glyph-name="_496" unicode="&#xf211;" 
+d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384
+q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" />
+    <glyph glyph-name="f212" unicode="&#xf212;" horiz-adv-x="2048" 
+d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021
+q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25
+q209 0 374 -102q172 107 374 102z" />
+    <glyph glyph-name="_498" unicode="&#xf213;" horiz-adv-x="2048" 
+d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101
+q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284
+q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" />
+    <glyph glyph-name="_499" unicode="&#xf214;" 
+d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34
+l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114
+v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z
+M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378
+v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51
+h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5
+t-43 -34t-16.5 -53.5z" />
+    <glyph glyph-name="_500" unicode="&#xf215;" horiz-adv-x="2048" 
+d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832
+q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" />
+    <glyph glyph-name="_501" unicode="&#xf216;" horiz-adv-x="2048" 
+d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126t-103.5 132.5t-108.5 126.5t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5
+t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113
+t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5
+q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" />
+    <glyph glyph-name="_502" unicode="&#xf217;" horiz-adv-x="1664" 
+d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920
+q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="_503" unicode="&#xf218;" horiz-adv-x="1664" 
+d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920
+q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="_504" unicode="&#xf219;" horiz-adv-x="2048" 
+d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20
+l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" />
+    <glyph glyph-name="_505" unicode="&#xf21a;" horiz-adv-x="2048" 
+d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83
+q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83
+q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314
+v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83
+q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" />
+    <glyph glyph-name="_506" unicode="&#xf21b;" 
+d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14
+t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5
+q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31
+t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" />
+    <glyph glyph-name="_507" unicode="&#xf21c;" horiz-adv-x="2304" 
+d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5
+t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105
+l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226
+t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" />
+    <glyph glyph-name="_508" unicode="&#xf21d;" 
+d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12
+q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384
+q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5
+t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="_509" unicode="&#xf21e;" horiz-adv-x="1792" 
+d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221
+q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124
+t127 -344z" />
+    <glyph glyph-name="venus" unicode="&#xf221;" horiz-adv-x="1280" 
+d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292
+q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
+    <glyph glyph-name="_511" unicode="&#xf222;" 
+d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5
+q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_512" unicode="&#xf223;" horiz-adv-x="1280" 
+d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5
+t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_513" unicode="&#xf224;" 
+d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64
+q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_514" unicode="&#xf225;" horiz-adv-x="1792" 
+d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64
+q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9
+t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5
+t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_515" unicode="&#xf226;" horiz-adv-x="1792" 
+d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23
+t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391
+q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391
+q0 -226 -154 -391q103 -57 218 -57z" />
+    <glyph glyph-name="_516" unicode="&#xf227;" horiz-adv-x="1920" 
+d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230
+q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9
+t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128
+q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -28 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" />
+    <glyph glyph-name="_517" unicode="&#xf228;" horiz-adv-x="2048" 
+d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23
+t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9
+t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5
+t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" />
+    <glyph glyph-name="_518" unicode="&#xf229;" 
+d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5
+t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_519" unicode="&#xf22a;" horiz-adv-x="1280" 
+d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22
+t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5
+t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_520" unicode="&#xf22b;" horiz-adv-x="2048" 
+d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5
+t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5
+t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_521" unicode="&#xf22c;" horiz-adv-x="1280" 
+d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5
+t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_522" unicode="&#xf22d;" horiz-adv-x="1280" 
+d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123
+t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" />
+    <glyph glyph-name="_523" unicode="&#xf22e;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_524" unicode="&#xf22f;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_525" unicode="&#xf230;" 
+d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
+    <glyph glyph-name="_526" unicode="&#xf231;" horiz-adv-x="1280" 
+d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5
+l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5
+q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" />
+    <glyph glyph-name="_527" unicode="&#xf232;" 
+d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5
+t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233
+l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" />
+    <glyph glyph-name="_528" unicode="&#xf233;" horiz-adv-x="1792" 
+d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216
+q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
+    <glyph glyph-name="_529" unicode="&#xf234;" horiz-adv-x="2048" 
+d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5
+t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5
+t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" />
+    <glyph glyph-name="_530" unicode="&#xf235;" horiz-adv-x="2048" 
+d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136
+q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69
+t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" />
+    <glyph glyph-name="_531" unicode="&#xf236;" horiz-adv-x="2048" 
+d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704
+q-26 0 -45 -19t-19 -45v-384h1152z" />
+    <glyph glyph-name="_532" unicode="&#xf237;" 
+d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
+    <glyph glyph-name="_533" unicode="&#xf238;" 
+d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56
+t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
+    <glyph glyph-name="_534" unicode="&#xf239;" 
+d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47
+t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
+    <glyph glyph-name="_535" unicode="&#xf23a;" horiz-adv-x="1792" 
+d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116
+q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" />
+    <glyph glyph-name="_536" unicode="&#xf23b;" 
+d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" />
+    <glyph glyph-name="_537" unicode="&#xf23c;" horiz-adv-x="2296" 
+d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5
+q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5
+q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42
+q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37
+q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5
+q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139
+q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 5 5 8q16 18 60 23h13q5 18 19 30t33 8
+t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132
+q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132
+q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z
+M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-105 2 -211 0v1q-1 -27 2.5 -86
+t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103
+q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34q0 2 0.5 3.5t1.5 3t1 2.5v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4
+l-10 -2.5t-12 -2l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-6 -1 -9 -1q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130
+t-73 70q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -1 -1 -4t-1 -5q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150
+q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12
+q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" />
+    <glyph glyph-name="_538" unicode="&#xf23d;" horiz-adv-x="2304" 
+d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5
+t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5
+t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" />
+    <glyph glyph-name="_539" unicode="&#xf23e;" horiz-adv-x="1792" 
+d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348
+t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23
+t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96
+q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512
+q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" />
+    <glyph glyph-name="_540" unicode="&#xf240;" horiz-adv-x="2304" 
+d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113
+v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="_541" unicode="&#xf241;" horiz-adv-x="2304" 
+d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_542" unicode="&#xf242;" horiz-adv-x="2304" 
+d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_543" unicode="&#xf243;" horiz-adv-x="2304" 
+d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_544" unicode="&#xf244;" horiz-adv-x="2304" 
+d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23
+v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_545" unicode="&#xf245;" horiz-adv-x="1280" 
+d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" />
+    <glyph glyph-name="_546" unicode="&#xf246;" horiz-adv-x="1024" 
+d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" />
+    <glyph glyph-name="_547" unicode="&#xf247;" horiz-adv-x="2048" 
+d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128
+h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" />
+    <glyph glyph-name="_548" unicode="&#xf248;" horiz-adv-x="2304" 
+d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256
+v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" />
+    <glyph glyph-name="_549" unicode="&#xf249;" 
+d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" />
+    <glyph glyph-name="_550" unicode="&#xf24a;" 
+d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68
+z" />
+    <glyph glyph-name="_551" unicode="&#xf24b;" horiz-adv-x="2304" 
+d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5
+t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88
+t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90
+t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_552" unicode="&#xf24c;" horiz-adv-x="2304" 
+d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294
+t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z
+M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_553" unicode="&#xf24d;" horiz-adv-x="1792" 
+d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113
+zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="_554" unicode="&#xf24e;" horiz-adv-x="2304" 
+d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64
+q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91
+t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5
+t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" />
+    <glyph glyph-name="_555" unicode="&#xf250;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5
+t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
+    <glyph glyph-name="_556" unicode="&#xf251;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" />
+    <glyph glyph-name="_557" unicode="&#xf252;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" />
+    <glyph glyph-name="_558" unicode="&#xf253;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196
+h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
+    <glyph glyph-name="_559" unicode="&#xf254;" 
+d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87
+t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9
+h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" />
+    <glyph glyph-name="_560" unicode="&#xf255;" 
+d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25
+q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27
+t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21
+q72 69 174 69z" />
+    <glyph glyph-name="_561" unicode="&#xf256;" horiz-adv-x="1792" 
+d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33
+t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52
+h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" />
+    <glyph glyph-name="_562" unicode="&#xf257;" horiz-adv-x="1792" 
+d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668
+q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17
+t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5
+t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5
+q0 -42 -23 -78t-61 -53l-310 -141h91z" />
+    <glyph glyph-name="_563" unicode="&#xf258;" horiz-adv-x="2048" 
+d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32
+q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68
+q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" />
+    <glyph glyph-name="_564" unicode="&#xf259;" horiz-adv-x="2048" 
+d="M459 -256q-77 0 -137.5 47.5t-79.5 122.5l-101 401q-13 57 -13 108q0 45 -5 67l-116 477q-7 27 -7 57q0 93 62 161t155 78q17 85 82.5 139t152.5 54q83 0 148 -51.5t85 -132.5l83 -348l103 428q20 81 85 132.5t148 51.5q89 0 155.5 -57.5t80.5 -144.5q92 -10 152 -79
+t60 -162q0 -24 -7 -59l-123 -512q10 7 37.5 28.5t38.5 29.5t35 23t41 20.5t41.5 11t49.5 5.5q105 0 180 -74t75 -179q0 -62 -28.5 -118t-78.5 -94l-507 -380q-68 -51 -153 -51h-694zM1104 1408q-38 0 -68.5 -24t-39.5 -62l-164 -682h-127l-145 602q-9 38 -39.5 62t-68.5 24
+q-48 0 -80 -33t-32 -80q0 -15 3 -28l132 -547h-26l-99 408q-9 37 -40 62.5t-69 25.5q-47 0 -80 -33t-33 -79q0 -14 3 -26l116 -478q7 -28 9 -86t10 -88l100 -401q8 -32 34 -52.5t59 -20.5h694q42 0 76 26l507 379q56 43 56 110q0 52 -37.5 88.5t-89.5 36.5q-43 0 -77 -26
+l-307 -230v227q0 4 32 138t68 282t39 161q4 18 4 29q0 47 -32 81t-79 34q-39 0 -69.5 -24t-39.5 -62l-116 -482h-26l150 624q3 14 3 28q0 48 -31.5 82t-79.5 34z" />
+    <glyph glyph-name="_565" unicode="&#xf25a;" horiz-adv-x="1792" 
+d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5
+q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5
+v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32
+v-384h32z" />
+    <glyph glyph-name="_566" unicode="&#xf25b;" 
+d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181
+v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46
+q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5
+q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308
+q0 -53 37.5 -90.5t90.5 -37.5h668z" />
+    <glyph glyph-name="_567" unicode="&#xf25c;" horiz-adv-x="1973" 
+d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5
+t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141
+q13 0 22 -8.5t10 -20.5z" />
+    <glyph glyph-name="_568" unicode="&#xf25d;" horiz-adv-x="1792" 
+d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109
+t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640
+q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_569" unicode="&#xf25e;" horiz-adv-x="1792" 
+d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78
+q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5
+t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376
+q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191
+t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" />
+    <glyph glyph-name="f260" unicode="&#xf260;" horiz-adv-x="2048" 
+d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" />
+    <glyph glyph-name="f261" unicode="&#xf261;" horiz-adv-x="1792" 
+d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191
+t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_572" unicode="&#xf262;" horiz-adv-x="2304" 
+d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57
+t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197
+t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5
+t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5
+t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5
+q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" />
+    <glyph glyph-name="f263" unicode="&#xf263;" horiz-adv-x="1280" 
+d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5
+t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94
+q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" />
+    <glyph glyph-name="_574" unicode="&#xf264;" 
+d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32
+q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5
+zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_575" unicode="&#xf265;" horiz-adv-x="1720" 
+d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33
+l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" />
+    <glyph glyph-name="_576" unicode="&#xf266;" horiz-adv-x="2304" 
+d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540
+q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81
+l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" />
+    <glyph glyph-name="_577" unicode="&#xf267;" horiz-adv-x="1792" 
+d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640
+q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5
+t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5
+t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5
+t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191
+t191 -286t71 -348z" />
+    <glyph glyph-name="_578" unicode="&#xf268;" horiz-adv-x="1792" 
+d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962
+q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" />
+    <glyph glyph-name="_579" unicode="&#xf269;" horiz-adv-x="1792" 
+d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5
+q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5
+q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" />
+    <glyph glyph-name="_580" unicode="&#xf26a;" horiz-adv-x="1792" 
+d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339
+q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z
+" />
+    <glyph glyph-name="_581" unicode="&#xf26b;" horiz-adv-x="1792" 
+d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606
+q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z
+M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" />
+    <glyph glyph-name="_582" unicode="&#xf26c;" horiz-adv-x="2048" 
+d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23
+v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="_583" unicode="&#xf26d;" horiz-adv-x="1792" 
+d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34
+h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100
+q-68 175 -180 287z" />
+    <glyph glyph-name="_584" unicode="&#xf26e;" 
+d="M1401 -11l-6 -6q-113 -113 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6
+q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13
+q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 33 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249
+q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 33 -6t30 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183
+q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46
+t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" />
+    <glyph glyph-name="_585" unicode="&#xf270;" horiz-adv-x="1792" 
+d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z
+M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30
+q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57
+t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133
+q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" />
+    <glyph glyph-name="_586" unicode="&#xf271;" horiz-adv-x="1792" 
+d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9
+h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224
+v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" />
+    <glyph glyph-name="_587" unicode="&#xf272;" horiz-adv-x="1792" 
+d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23
+t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47
+t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_588" unicode="&#xf273;" horiz-adv-x="1792" 
+d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z
+M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280
+q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_589" unicode="&#xf274;" horiz-adv-x="1792" 
+d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23
+t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47
+t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_590" unicode="&#xf275;" horiz-adv-x="1792" 
+d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" />
+    <glyph glyph-name="_591" unicode="&#xf276;" horiz-adv-x="1024" 
+d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q62 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249
+q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" />
+    <glyph glyph-name="_592" unicode="&#xf277;" horiz-adv-x="1792" 
+d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768
+q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" />
+    <glyph glyph-name="_593" unicode="&#xf278;" horiz-adv-x="2048" 
+d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173
+v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" />
+    <glyph glyph-name="_594" unicode="&#xf279;" horiz-adv-x="1792" 
+d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472
+q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" />
+    <glyph glyph-name="_595" unicode="&#xf27a;" horiz-adv-x="1792" 
+d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5
+t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37
+t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="_596" unicode="&#xf27b;" horiz-adv-x="1792" 
+d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5
+t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5
+t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51
+t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" />
+    <glyph glyph-name="_597" unicode="&#xf27c;" horiz-adv-x="1024" 
+d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" />
+    <glyph glyph-name="_598" unicode="&#xf27d;" horiz-adv-x="1792" 
+d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246
+q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" />
+    <glyph glyph-name="f27e" unicode="&#xf27e;" 
+d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" />
+    <glyph glyph-name="uniF280" unicode="&#xf280;" 
+d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72
+h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275
+l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" />
+    <glyph glyph-name="uniF281" unicode="&#xf281;" horiz-adv-x="1792" 
+d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5
+l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44
+t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106
+q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" />
+    <glyph glyph-name="_602" unicode="&#xf282;" horiz-adv-x="1792" 
+d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53
+q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" />
+    <glyph glyph-name="_603" unicode="&#xf283;" horiz-adv-x="2304" 
+d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" />
+    <glyph glyph-name="_604" unicode="&#xf284;" horiz-adv-x="1792" 
+d="M1584 246l-218 111q-74 -120 -196.5 -189t-263.5 -69q-147 0 -271 72t-196 196t-72 270q0 110 42.5 209.5t115 172t172 115t209.5 42.5q131 0 247.5 -60.5t192.5 -168.5l215 125q-110 169 -286.5 265t-378.5 96q-161 0 -308 -63t-253 -169t-169 -253t-63 -308t63 -308
+t169 -253t253 -169t308 -63q213 0 397.5 107t290.5 292zM1030 643l693 -352q-116 -253 -334.5 -400t-492.5 -147q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q260 0 470.5 -133.5t335.5 -366.5zM1543 640h-39v-160h-96v352h136q32 0 54.5 -20
+t28.5 -48t1 -56t-27.5 -48t-57.5 -20z" />
+    <glyph glyph-name="uniF285" unicode="&#xf285;" horiz-adv-x="1792" 
+d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" />
+    <glyph glyph-name="uniF286" unicode="&#xf286;" horiz-adv-x="1792" 
+d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96
+q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 -35 -32 -50v-17q45 10 83 10q21 0 59.5 -7.5t54.5 -7.5
+q17 0 47 7.5t37 7.5q16 0 16 -16v-210q0 -15 -35 -21.5t-62 -6.5q-18 0 -54.5 7.5t-55.5 7.5q-40 0 -90 -12v-133q1 0 9 0.5t11.5 0t9.5 -2t8.5 -5t2.5 -9.5v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96
+q16 0 16 -16z" />
+    <glyph glyph-name="_607" unicode="&#xf287;" horiz-adv-x="2304" 
+d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96
+q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5
+t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" />
+    <glyph glyph-name="_608" unicode="&#xf288;" horiz-adv-x="1792" 
+d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348
+t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_609" unicode="&#xf289;" horiz-adv-x="2304" 
+d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22
+q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5
+q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13
+q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" />
+    <glyph glyph-name="_610" unicode="&#xf28a;" 
+d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83
+t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20
+q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5
+t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" />
+    <glyph glyph-name="_611" unicode="&#xf28b;" 
+d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103
+t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_612" unicode="&#xf28c;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273
+t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" />
+    <glyph glyph-name="_613" unicode="&#xf28d;" 
+d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="_614" unicode="&#xf28e;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273
+t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" />
+    <glyph glyph-name="_615" unicode="&#xf290;" horiz-adv-x="1792" 
+d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="_616" unicode="&#xf291;" horiz-adv-x="2048" 
+d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5
+t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416
+q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441
+h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" />
+    <glyph glyph-name="_617" unicode="&#xf292;" horiz-adv-x="1792" 
+d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12
+q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311
+q15 0 25 -12q9 -12 6 -28z" />
+    <glyph glyph-name="_618" unicode="&#xf293;" 
+d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5
+t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" />
+    <glyph glyph-name="_619" unicode="&#xf294;" horiz-adv-x="1024" 
+d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" />
+    <glyph glyph-name="_620" unicode="&#xf295;" 
+d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5
+t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5
+t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="_621" unicode="&#xf296;" horiz-adv-x="1792" 
+d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" />
+    <glyph glyph-name="_622" unicode="&#xf297;" horiz-adv-x="1792" 
+d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111
+q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" />
+    <glyph glyph-name="_623" unicode="&#xf298;" 
+d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14
+t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" />
+    <glyph glyph-name="_624" unicode="&#xf299;" horiz-adv-x="1792" 
+d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57
+q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285
+q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" />
+    <glyph glyph-name="_625" unicode="&#xf29a;" horiz-adv-x="1792" 
+d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42
+q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z
+M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298
+t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_626" unicode="&#xf29b;" 
+d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300
+l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z
+M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" />
+    <glyph glyph-name="_627" unicode="&#xf29c;" 
+d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5
+t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5
+t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5
+t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_628" unicode="&#xf29d;" horiz-adv-x="1408" 
+d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457
+q-67 -192 -92 -234q-15 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521
+q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661
+q3 -1 7 1t7 4l3 2q11 9 11 17z" />
+    <glyph glyph-name="_629" unicode="&#xf29e;" horiz-adv-x="2304" 
+d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10
+t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5
+t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5
+h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96
+t9.5 -70.5z" />
+    <glyph glyph-name="uniF2A0" unicode="&#xf2a0;" horiz-adv-x="1408" 
+d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5
+q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127
+l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272
+t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249
+q-18 -19 -45 -19z" />
+    <glyph glyph-name="uniF2A1" unicode="&#xf2a1;" horiz-adv-x="2176" 
+d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352
+q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864
+q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136
+t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56
+t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56
+t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136
+t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="uniF2A2" unicode="&#xf2a2;" horiz-adv-x="1792" 
+d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z
+M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72
+t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45
+t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4
+q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" />
+    <glyph glyph-name="uniF2A3" unicode="&#xf2a3;" horiz-adv-x="2304" 
+d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55
+q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5
+q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101
+q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35
+q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5
+q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" />
+    <glyph glyph-name="uniF2A4" unicode="&#xf2a4;" horiz-adv-x="1792" 
+d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19
+t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74
+t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233
+l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" />
+    <glyph glyph-name="uniF2A5" unicode="&#xf2a5;" 
+d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2
+q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10
+q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5
+t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF2A6" unicode="&#xf2a6;" horiz-adv-x="1535" 
+d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5
+l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5
+q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9
+q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" />
+    <glyph glyph-name="uniF2A7" unicode="&#xf2a7;" horiz-adv-x="1664" 
+d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37
+t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38
+l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147q-2 -1 -5 -3.5t-4 -4.5q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148
+q-34 23 -76 23q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26
+l-12 224q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" />
+    <glyph glyph-name="uniF2A8" unicode="&#xf2a8;" horiz-adv-x="1792" 
+d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5
+q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841
+q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5
+q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" />
+    <glyph glyph-name="uniF2A9" unicode="&#xf2a9;" horiz-adv-x="1280" 
+d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5
+q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z
+M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" />
+    <glyph glyph-name="uniF2AA" unicode="&#xf2aa;" 
+d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z
+M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5
+q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 42 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="uniF2AB" unicode="&#xf2ab;" 
+d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114
+q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5
+t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="uniF2AC" unicode="&#xf2ac;" horiz-adv-x="1664" 
+d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35
+q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5
+t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" />
+    <glyph glyph-name="uniF2AD" unicode="&#xf2ad;" 
+d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115
+q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15
+t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960
+q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF2AE" unicode="&#xf2ae;" horiz-adv-x="2304" 
+d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7
+q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2q0 6 6 6q138 0 371 55q192 366 374.5 524t383.5 158
+q5 0 14.5 -0.5t38 -5t55 -12t61.5 -24.5t63 -39.5t54 -59t40 -82.5l102 177q2 4 21 42.5t44.5 86.5t61 109.5t84 133.5t100.5 137q66 82 128 141.5t121.5 96.5t92.5 53.5t88 39.5z" />
+    <glyph glyph-name="uniF2B0" unicode="&#xf2b0;" 
+d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104
+q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-103 -214l158 178q61 -47 107 -108
+l-177 -159l213 104q37 -62 58 -141l-224 -78l237 14q5 -31 5 -77zM1352 640q0 160 -78.5 295.5t-213 214t-292.5 78.5q-119 0 -227 -46.5t-186.5 -125t-124.5 -187.5t-46 -229q0 -119 46 -228t124.5 -187.5t186.5 -125t227 -46.5q158 0 292.5 78.5t213 214t78.5 294.5z
+M1425 1023v-766l-657 -383l-657 383v766l657 383zM768 -183l708 412v823l-708 411l-708 -411v-823zM1536 1088v-896l-768 -448l-768 448v896l768 448z" />
+    <glyph glyph-name="uniF2B1" unicode="&#xf2b1;" horiz-adv-x="1664" 
+d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5
+t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 -197.5z" />
+    <glyph glyph-name="uniF2B2" unicode="&#xf2b2;" horiz-adv-x="1792" 
+d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5
+t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114
+q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1476 535q-84 -160 -232 -259.5t-323 -99.5q-123 0 -229.5 51.5t-178.5 137t-113 197.5t-41 232q0 88 21 174q-104 -175 -104 -390q0 -162 65 -312t185 -251q30 57 91 57q56 0 86 -50q32 50 87 50q56 0 86 -50q32 50 87 50t87 -50
+q30 50 86 50q28 0 52.5 -15.5t37.5 -40.5q112 94 177 231.5t73 287.5zM1326 564q0 75 -72 75q-17 0 -47 -6q-95 -19 -149 -19q-226 0 -226 243q0 86 30 204q-83 -127 -83 -275q0 -150 89 -260.5t235 -110.5q111 0 210 70q13 48 13 79zM884 1223q0 50 -32 89.5t-81 39.5
+t-81 -39.5t-32 -89.5q0 -51 31.5 -90.5t81.5 -39.5t81.5 39.5t31.5 90.5zM1513 884q0 96 -37.5 179t-113 137t-173.5 54q-77 0 -149 -35t-127 -94q-48 -159 -48 -268q0 -104 45.5 -157t147.5 -53q53 0 142 19q36 6 53 6q51 0 77.5 -28t26.5 -80q0 -26 -4 -46
+q75 68 117.5 165.5t42.5 200.5zM1792 667q0 -111 -33.5 -249.5t-93.5 -204.5q-58 -64 -195 -142.5t-228 -104.5l-4 -1v-114q0 -43 -29.5 -75t-72.5 -32q-56 0 -86 50q-32 -50 -87 -50t-87 50q-30 -50 -86 -50q-55 0 -87 50q-30 -50 -86 -50q-47 0 -75 33.5t-28 81.5
+q-90 -68 -198 -68q-118 0 -211 80q54 1 106 20q-113 31 -182 127q32 -7 71 -7q89 0 164 46q-192 192 -240 306q-24 56 -24 160q0 57 9 125.5t31.5 146.5t55 141t86.5 105t120 42q59 0 81 -52q19 29 42 54q2 3 12 13t13 16q10 15 23 38t25 42t28 39q87 111 211.5 177
+t260.5 66q35 0 62 -4q59 64 146 64q83 0 140 -57q5 -5 5 -12q0 -5 -6 -13.5t-12.5 -16t-16 -17l-10.5 -10.5q17 -6 36 -18t19 -24q0 -6 -16 -25q157 -138 197 -378q25 30 60 30q45 0 100 -49q90 -80 90 -279z" />
+    <glyph glyph-name="uniF2B3" unicode="&#xf2b3;" 
+d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110
+h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="uniF2B4" unicode="&#xf2b4;" 
+d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5
+q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="uniF2B5" unicode="&#xf2b5;" horiz-adv-x="2304" 
+d="M192 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32zM1665 442q-10 13 -38.5 50t-41.5 54t-38 49t-42.5 53t-40.5 47t-45 49l-125 -140q-83 -94 -208.5 -92t-205.5 98q-57 69 -56.5 158t58.5 157l177 206q-22 11 -51 16.5t-47.5 6t-56.5 -0.5t-49 -1q-92 0 -158 -66
+l-158 -158h-155v-544q5 0 21 0.5t22 0t19.5 -2t20.5 -4.5t17.5 -8.5t18.5 -13.5l297 -292q115 -111 227 -111q78 0 125 47q57 -20 112.5 8t72.5 85q74 -6 127 44q20 18 36 45.5t14 50.5q10 -10 43 -10q43 0 77 21t49.5 53t12 71.5t-30.5 73.5zM1824 384h96v512h-93l-157 180
+q-66 76 -169 76h-167q-89 0 -146 -67l-209 -243q-28 -33 -28 -75t27 -75q43 -51 110 -52t111 49l193 218q25 23 53.5 21.5t47 -27t8.5 -56.5q16 -19 56 -63t60 -68q29 -36 82.5 -105.5t64.5 -84.5q52 -66 60 -140zM2112 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32z
+M2304 960v-640q0 -26 -19 -45t-45 -19h-434q-27 -65 -82 -106.5t-125 -51.5q-33 -48 -80.5 -81.5t-102.5 -45.5q-42 -53 -104.5 -81.5t-128.5 -24.5q-60 -34 -126 -39.5t-127.5 14t-117 53.5t-103.5 81l-287 282h-358q-26 0 -45 19t-19 45v672q0 26 19 45t45 19h421
+q14 14 47 48t47.5 48t44 40t50.5 37.5t51 25.5t62 19.5t68 5.5h117q99 0 181 -56q82 56 181 56h167q35 0 67 -6t56.5 -14.5t51.5 -26.5t44.5 -31t43 -39.5t39 -42t41 -48t41.5 -48.5h355q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="uniF2B6" unicode="&#xf2b6;" horiz-adv-x="1792" 
+d="M1792 882v-978q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v978q0 15 11 24q8 7 39 34.5t41.5 36t45.5 37.5t70 55.5t96 73t143.5 107t192.5 140.5q5 4 52.5 40t71.5 52.5t64 35t69 18.5t69 -18.5t65 -35.5t71 -52t52 -40q110 -80 192.5 -140.5t143.5 -107
+t96 -73t70 -55.5t45.5 -37.5t41.5 -36t39 -34.5q11 -9 11 -24zM1228 297q263 191 345 252q11 8 12.5 20.5t-6.5 23.5l-38 52q-8 11 -21 12.5t-24 -6.5q-231 -169 -343 -250q-5 -3 -52 -39t-71.5 -52.5t-64.5 -35t-69 -18.5t-69 18.5t-64.5 35t-71.5 52.5t-52 39
+q-186 134 -343 250q-11 8 -24 6.5t-21 -12.5l-38 -52q-8 -11 -6.5 -23.5t12.5 -20.5q82 -61 345 -252q10 -8 50 -38t65 -47t64 -39.5t77.5 -33.5t75.5 -11t75.5 11t79 34.5t64.5 39.5t65 47.5t48 36.5z" />
+    <glyph glyph-name="uniF2B7" unicode="&#xf2b7;" horiz-adv-x="1792" 
+d="M1474 623l39 -51q8 -11 6.5 -23.5t-11.5 -20.5q-43 -34 -126.5 -98.5t-146.5 -113t-67 -51.5q-39 -32 -60 -48t-60.5 -41t-76.5 -36.5t-74 -11.5h-1h-1q-37 0 -74 11.5t-76 36.5t-61 41.5t-60 47.5q-5 4 -65 50.5t-143.5 111t-122.5 94.5q-11 8 -12.5 20.5t6.5 23.5
+l37 52q8 11 21.5 13t24.5 -7q94 -73 306 -236q5 -4 43.5 -35t60.5 -46.5t56.5 -32.5t58.5 -17h1h1q24 0 58.5 17t56.5 32.5t60.5 46.5t43.5 35q258 198 313 242q11 8 24 6.5t21 -12.5zM1664 -96v928q-90 83 -159 139q-91 74 -389 304q-3 2 -43 35t-61 48t-56 32.5t-59 17.5
+h-1h-1q-24 0 -59 -17.5t-56 -32.5t-61 -48t-43 -35q-215 -166 -315.5 -245.5t-129.5 -104t-82 -74.5q-14 -12 -21 -19v-928q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 832v-928q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v928q0 56 41 94
+q123 114 350 290.5t233 181.5q36 30 59 47.5t61.5 42t76 36.5t74.5 12h1h1q37 0 74.5 -12t76 -36.5t61.5 -42t59 -47.5q43 -36 156 -122t226 -177t201 -173q41 -38 41 -94z" />
+    <glyph glyph-name="uniF2B8" unicode="&#xf2b8;" 
+d="M330 1l202 -214l-34 236l-216 213zM556 -225l274 218l-11 245l-300 -215zM245 413l227 -213l-48 327l-245 204zM495 189l317 214l-14 324l-352 -200zM843 178l95 -80l-2 239l-103 79q0 -1 1 -8.5t0 -12t-5 -7.5l-78 -52l85 -70q7 -6 7 -88zM138 930l256 -200l-68 465
+l-279 173zM1173 267l15 234l-230 -164l2 -240zM417 722l373 194l-19 441l-423 -163zM1270 357l20 233l-226 142l-2 -105l144 -95q6 -4 4 -9l-7 -119zM1461 496l30 222l-179 -128l-20 -228zM1273 329l-71 49l-8 -117q0 -5 -4 -8l-234 -187q-7 -5 -14 0l-98 83l7 -161
+q0 -5 -4 -8l-293 -234q-4 -2 -6 -2q-8 2 -8 3l-228 242q-4 4 -59 277q-2 7 5 11l61 37q-94 86 -95 92l-72 351q-2 7 6 12l94 45q-133 100 -135 108l-96 466q-2 10 7 13l433 135q5 0 8 -1l317 -153q6 -4 6 -9l20 -463q0 -7 -6 -10l-118 -61l126 -85q5 -2 5 -8l5 -123l121 74
+q5 4 11 0l84 -56l3 110q0 6 5 9l206 126q6 3 11 0l245 -135q4 -4 5 -7t-6.5 -60t-17.5 -124.5t-10 -70.5q0 -5 -4 -7l-191 -153q-6 -5 -13 0z" />
+    <glyph glyph-name="uniF2B9" unicode="&#xf2b9;" horiz-adv-x="1664" 
+d="M1201 298q0 57 -5.5 107t-21 100.5t-39.5 86t-64 58t-91 22.5q-6 -4 -33.5 -20.5t-42.5 -24.5t-40.5 -20t-49 -17t-46.5 -5t-46.5 5t-49 17t-40.5 20t-42.5 24.5t-33.5 20.5q-51 0 -91 -22.5t-64 -58t-39.5 -86t-21 -100.5t-5.5 -107q0 -73 42 -121.5t103 -48.5h576
+q61 0 103 48.5t42 121.5zM1028 892q0 108 -76.5 184t-183.5 76t-183.5 -76t-76.5 -184q0 -107 76.5 -183t183.5 -76t183.5 76t76.5 183zM1664 352v-192q0 -14 -9 -23t-23 -9h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216
+q66 0 113 -47t47 -113v-224h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="uniF2BA" unicode="&#xf2ba;" horiz-adv-x="1664" 
+d="M1028 892q0 -107 -76.5 -183t-183.5 -76t-183.5 76t-76.5 183q0 108 76.5 184t183.5 76t183.5 -76t76.5 -184zM980 672q46 0 82.5 -17t60 -47.5t39.5 -67t24 -81t11.5 -82.5t3.5 -79q0 -67 -39.5 -118.5t-105.5 -51.5h-576q-66 0 -105.5 51.5t-39.5 118.5q0 48 4.5 93.5
+t18.5 98.5t36.5 91.5t63 64.5t93.5 26h5q7 -4 32 -19.5t35.5 -21t33 -17t37 -16t35 -9t39.5 -4.5t39.5 4.5t35 9t37 16t33 17t35.5 21t32 19.5zM1664 928q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96
+q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216q66 0 113 -47t47 -113v-224h96q13 0 22.5 -9.5t9.5 -22.5v-192zM1408 -96v1472q0 13 -9.5 22.5t-22.5 9.5h-1216
+q-13 0 -22.5 -9.5t-9.5 -22.5v-1472q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5z" />
+    <glyph glyph-name="uniF2BB" unicode="&#xf2bb;" horiz-adv-x="2048" 
+d="M1024 405q0 64 -9 117.5t-29.5 103t-60.5 78t-97 28.5q-6 -4 -30 -18t-37.5 -21.5t-35.5 -17.5t-43 -14.5t-42 -4.5t-42 4.5t-43 14.5t-35.5 17.5t-37.5 21.5t-30 18q-57 0 -97 -28.5t-60.5 -78t-29.5 -103t-9 -117.5t37 -106.5t91 -42.5h512q54 0 91 42.5t37 106.5z
+M867 925q0 94 -66.5 160.5t-160.5 66.5t-160.5 -66.5t-66.5 -160.5t66.5 -160.5t160.5 -66.5t160.5 66.5t66.5 160.5zM1792 416v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1792 676v56q0 15 -10.5 25.5t-25.5 10.5h-568
+q-15 0 -25.5 -10.5t-10.5 -25.5v-56q0 -15 10.5 -25.5t25.5 -10.5h568q15 0 25.5 10.5t10.5 25.5zM1792 928v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-352v96q0 14 -9 23t-23 9
+h-64q-14 0 -23 -9t-9 -23v-96h-768v96q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-96h-352q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2BC" unicode="&#xf2bc;" horiz-adv-x="2048" 
+d="M1024 405q0 -64 -37 -106.5t-91 -42.5h-512q-54 0 -91 42.5t-37 106.5t9 117.5t29.5 103t60.5 78t97 28.5q6 -4 30 -18t37.5 -21.5t35.5 -17.5t43 -14.5t42 -4.5t42 4.5t43 14.5t35.5 17.5t37.5 21.5t30 18q57 0 97 -28.5t60.5 -78t29.5 -103t9 -117.5zM867 925
+q0 -94 -66.5 -160.5t-160.5 -66.5t-160.5 66.5t-66.5 160.5t66.5 160.5t160.5 66.5t160.5 -66.5t66.5 -160.5zM1792 480v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1792 732v-56q0 -15 -10.5 -25.5t-25.5 -10.5h-568
+q-15 0 -25.5 10.5t-10.5 25.5v56q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5zM1792 992v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1920 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1728q-13 0 -22.5 -9.5
+t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h352v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h768v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h352q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113
+t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2BD" unicode="&#xf2bd;" horiz-adv-x="1792" 
+d="M1523 197q-22 155 -87.5 257.5t-184.5 118.5q-67 -74 -159.5 -115.5t-195.5 -41.5t-195.5 41.5t-159.5 115.5q-119 -16 -184.5 -118.5t-87.5 -257.5q106 -150 271 -237.5t356 -87.5t356 87.5t271 237.5zM1280 896q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5
+t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1792 640q0 -182 -71 -347.5t-190.5 -286t-285.5 -191.5t-349 -71q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2BE" unicode="&#xf2be;" horiz-adv-x="1792" 
+d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348q0 -181 -70.5 -347t-190.5 -286t-286 -191.5t-349 -71.5t-349 71t-285.5 191.5t-190.5 286t-71 347.5t71 348t191 286t286 191t348 71zM1515 185q149 205 149 455q0 156 -61 298t-164 245t-245 164t-298 61t-298 -61
+t-245 -164t-164 -245t-61 -298q0 -250 149 -455q66 327 306 327q131 -128 313 -128t313 128q240 0 306 -327zM1280 832q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5z" />
+    <glyph glyph-name="uniF2C0" unicode="&#xf2c0;" 
+d="M1201 752q47 -14 89.5 -38t89 -73t79.5 -115.5t55 -172t22 -236.5q0 -154 -100 -263.5t-241 -109.5h-854q-141 0 -241 109.5t-100 263.5q0 131 22 236.5t55 172t79.5 115.5t89 73t89.5 38q-79 125 -79 272q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5
+t198.5 -40.5t163.5 -109.5t109.5 -163.5t40.5 -198.5q0 -147 -79 -272zM768 1408q-159 0 -271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5zM1195 -128q88 0 150.5 71.5t62.5 173.5q0 239 -78.5 377t-225.5 145
+q-145 -127 -336 -127t-336 127q-147 -7 -225.5 -145t-78.5 -377q0 -102 62.5 -173.5t150.5 -71.5h854z" />
+    <glyph glyph-name="uniF2C1" unicode="&#xf2c1;" horiz-adv-x="1280" 
+d="M1024 278q0 -64 -37 -107t-91 -43h-512q-54 0 -91 43t-37 107t9 118t29.5 104t61 78.5t96.5 28.5q80 -75 188 -75t188 75q56 0 96.5 -28.5t61 -78.5t29.5 -104t9 -118zM870 797q0 -94 -67.5 -160.5t-162.5 -66.5t-162.5 66.5t-67.5 160.5t67.5 160.5t162.5 66.5
+t162.5 -66.5t67.5 -160.5zM1152 -96v1376h-1024v-1376q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1280 1376v-1472q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h352v-96q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v96h352
+q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C2" unicode="&#xf2c2;" horiz-adv-x="2048" 
+d="M896 324q0 54 -7.5 100.5t-24.5 90t-51 68.5t-81 25q-64 -64 -156 -64t-156 64q-47 0 -81 -25t-51 -68.5t-24.5 -90t-7.5 -100.5q0 -55 31.5 -93.5t75.5 -38.5h426q44 0 75.5 38.5t31.5 93.5zM768 768q0 80 -56 136t-136 56t-136 -56t-56 -136t56 -136t136 -56t136 56
+t56 136zM1792 288v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1408 544v64q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1792 544v64q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23
+v-64q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1792 800v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM128 1152h1792v96q0 14 -9 23t-23 9h-1728q-14 0 -23 -9t-9 -23v-96zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728
+q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C3" unicode="&#xf2c3;" horiz-adv-x="2048" 
+d="M896 324q0 -55 -31.5 -93.5t-75.5 -38.5h-426q-44 0 -75.5 38.5t-31.5 93.5q0 54 7.5 100.5t24.5 90t51 68.5t81 25q64 -64 156 -64t156 64q47 0 81 -25t51 -68.5t24.5 -90t7.5 -100.5zM768 768q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z
+M1792 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1408 608v-64q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h320q14 0 23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v64
+q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 864v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1920 32v1120h-1792v-1120q0 -13 9.5 -22.5t22.5 -9.5h1728q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47
+h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C4" unicode="&#xf2c4;" horiz-adv-x="1792" 
+d="M1255 749q0 318 -105 474.5t-330 156.5q-222 0 -326 -157t-104 -474q0 -316 104 -471.5t326 -155.5q74 0 131 17q-22 43 -39 73t-44 65t-53.5 56.5t-63 36t-77.5 14.5q-46 0 -79 -16l-49 97q105 91 276 91q132 0 215.5 -54t150.5 -155q67 149 67 402zM1645 117h117
+q3 -27 -2 -67t-26.5 -95t-58 -100.5t-107 -78t-162.5 -32.5q-71 0 -130.5 19t-105.5 56t-79 78t-66 96q-97 -27 -205 -27q-150 0 -292.5 58t-253 158.5t-178 249t-67.5 317.5q0 170 67.5 319.5t178.5 250.5t253.5 159t291.5 58q121 0 238.5 -36t217 -106t176 -164.5
+t119.5 -219t43 -261.5q0 -190 -80.5 -347.5t-218.5 -264.5q47 -70 93.5 -106.5t104.5 -36.5q61 0 94 37.5t38 85.5z" />
+    <glyph glyph-name="uniF2C5" unicode="&#xf2c5;" horiz-adv-x="2304" 
+d="M453 -101q0 -21 -16 -37.5t-37 -16.5q-1 0 -13 3q-63 15 -162 140q-225 284 -225 676q0 341 213 614q39 51 95 103.5t94 52.5q19 0 35 -13.5t16 -32.5q0 -27 -63 -90q-98 -102 -147 -184q-119 -199 -119 -449q0 -281 123 -491q50 -85 136 -173q2 -3 14.5 -16t19.5 -21
+t17 -20.5t14.5 -23.5t4.5 -21zM1796 33q0 -29 -17.5 -48.5t-46.5 -19.5h-1081q-26 0 -45 19t-19 45q0 29 17.5 48.5t46.5 19.5h1081q26 0 45 -19t19 -45zM1581 644q0 -134 -67 -233q-25 -38 -69.5 -78.5t-83.5 -60.5q-16 -10 -27 -10q-7 0 -15 6t-8 12q0 9 19 30t42 46
+t42 67.5t19 88.5q0 76 -35 130q-29 42 -46 42q-3 0 -3 -5q0 -12 7.5 -35.5t7.5 -36.5q0 -22 -21.5 -35t-44.5 -13q-66 0 -66 76q0 15 1.5 44t1.5 44q0 25 -10 46q-13 25 -42 53.5t-51 28.5q-5 0 -7 -0.5t-3.5 -2.5t-1.5 -6q0 -2 16 -26t16 -54q0 -37 -19 -68t-46 -54
+t-53.5 -46t-45.5 -54t-19 -68q0 -98 42 -160q29 -43 79 -63q16 -5 17 -10q1 -2 1 -5q0 -16 -18 -16q-6 0 -33 11q-119 43 -195 139.5t-76 218.5q0 55 24.5 115.5t60 115t70.5 108.5t59.5 113.5t24.5 111.5q0 53 -25 94q-29 48 -56 64q-19 9 -19 21q0 20 41 20q50 0 110 -29
+q41 -19 71 -44.5t49.5 -51t33.5 -62.5t22 -69t16 -80q0 -1 3 -17.5t4.5 -25t5.5 -25t9 -27t11 -21.5t14.5 -16.5t18.5 -5.5q23 0 37 14t14 37q0 25 -20 67t-20 52t10 10q27 0 93 -70q72 -76 102.5 -156t30.5 -186zM2304 615q0 -274 -138 -503q-19 -32 -48 -72t-68 -86.5
+t-81 -77t-74 -30.5q-16 0 -31 15.5t-15 31.5q0 15 29 50.5t68.5 77t48.5 52.5q183 230 183 531q0 131 -20.5 235t-72.5 211q-58 119 -163 228q-2 3 -13 13.5t-16.5 16.5t-15 17.5t-15 20t-9.5 18.5t-4 19q0 19 16 35.5t35 16.5q70 0 196 -169q98 -131 146 -273t60 -314
+q2 -42 2 -64z" />
+    <glyph glyph-name="uniF2C6" unicode="&#xf2c6;" horiz-adv-x="1792" 
+d="M1189 229l147 693q9 44 -10.5 63t-51.5 7l-864 -333q-29 -11 -39.5 -25t-2.5 -26.5t32 -19.5l221 -69l513 323q21 14 32 6q7 -5 -4 -15l-415 -375v0v0l-16 -228q23 0 45 22l108 104l224 -165q64 -36 81 38zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71
+t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2C7" unicode="&#xf2c7;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v907h128v-907q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2C8" unicode="&#xf2c8;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v651h128v-651q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2C9" unicode="&#xf2c9;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v395h128v-395q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2CA" unicode="&#xf2ca;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v139h128v-139q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2CB" unicode="&#xf2cb;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 79 56 135.5t136 56.5t136 -56.5t56 -135.5zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5z
+M896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192v128h192z" />
+    <glyph glyph-name="uniF2CC" unicode="&#xf2cc;" horiz-adv-x="1920" 
+d="M1433 1287q10 -10 10 -23t-10 -23l-626 -626q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l44 44q-72 91 -81.5 207t46.5 215q-74 71 -176 71q-106 0 -181 -75t-75 -181v-1280h-256v1280q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5q106 0 201 -41
+t166 -115q94 39 197 24.5t185 -79.5l44 44q10 10 23 10t23 -10zM1344 1024q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1600 896q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1856 1024q26 0 45 -19t19 -45t-19 -45t-45 -19
+t-45 19t-19 45t19 45t45 19zM1216 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1408 832q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1728 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 768
+q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 640q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1600 768q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 512q-26 0 -45 19t-19 45t19 45t45 19t45 -19
+t19 -45t-19 -45t-45 -19zM1472 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 384
+q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 256q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19z" />
+    <glyph glyph-name="uniF2CD" unicode="&#xf2cd;" horiz-adv-x="1792" 
+d="M1664 448v-192q0 -169 -128 -286v-194q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v118q-63 -22 -128 -22h-768q-65 0 -128 22v-110q0 -17 -9.5 -28.5t-22.5 -11.5h-64q-13 0 -22.5 11.5t-9.5 28.5v186q-128 117 -128 286v192h1536zM704 864q0 -14 -9 -23t-23 -9t-23 9
+t-9 23t9 23t23 9t23 -9t9 -23zM768 928q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM704 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1056q0 -14 -9 -23t-23 -9t-23 9
+t-9 23t9 23t23 9t23 -9t9 -23zM704 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v640q0 106 75 181t181 75q108 0 184 -78q46 19 98 12t93 -39l22 22q11 11 22 0l42 -42
+q11 -11 0 -22l-314 -314q-11 -11 -22 0l-42 42q-11 11 0 22l22 22q-36 46 -40.5 104t23.5 108q-37 35 -88 35q-53 0 -90.5 -37.5t-37.5 -90.5v-640h1504q14 0 23 -9t9 -23zM896 1056q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1120q0 -14 -9 -23t-23 -9
+t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM896 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1248q0 -14 -9 -23
+t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1024 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1088 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23z" />
+    <glyph glyph-name="uniF2CE" unicode="&#xf2ce;" 
+d="M994 344q0 -86 -17 -197q-31 -215 -55 -313q-22 -90 -152 -90t-152 90q-24 98 -55 313q-17 110 -17 197q0 168 224 168t224 -168zM1536 768q0 -240 -134 -434t-350 -280q-8 -3 -15 3t-6 15q7 48 10 66q4 32 6 47q1 9 9 12q159 81 255.5 234t96.5 337q0 180 -91 330.5
+t-247 234.5t-337 74q-124 -7 -237 -61t-193.5 -140.5t-128 -202t-46.5 -240.5q1 -184 99 -336.5t257 -231.5q7 -3 9 -12q3 -21 6 -45q1 -9 5 -32.5t6 -35.5q1 -9 -6.5 -15t-15.5 -2q-148 58 -261 169.5t-173.5 264t-52.5 319.5q7 143 66 273.5t154.5 227t225 157.5t272.5 70
+q164 10 315.5 -46.5t261 -160.5t175 -250.5t65.5 -308.5zM994 800q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5zM1282 768q0 -122 -53.5 -228.5t-146.5 -177.5q-8 -6 -16 -2t-10 14q-6 52 -29 92q-7 10 3 20
+q58 54 91 127t33 155q0 111 -58.5 204t-157.5 141.5t-212 36.5q-133 -15 -229 -113t-109 -231q-10 -92 23.5 -176t98.5 -144q10 -10 3 -20q-24 -41 -29 -93q-2 -9 -10 -13t-16 2q-95 74 -148.5 183t-51.5 234q3 131 69 244t177 181.5t241 74.5q144 7 268 -60t196.5 -187.5
+t72.5 -263.5z" />
+    <glyph glyph-name="uniF2D0" unicode="&#xf2d0;" horiz-adv-x="1792" 
+d="M256 128h1280v768h-1280v-768zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D1" unicode="&#xf2d1;" horiz-adv-x="1792" 
+d="M1792 224v-192q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D2" unicode="&#xf2d2;" horiz-adv-x="2048" 
+d="M256 0h768v512h-768v-512zM1280 512h512v768h-768v-256h96q66 0 113 -47t47 -113v-352zM2048 1376v-960q0 -66 -47 -113t-113 -47h-608v-352q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h608v352q0 66 47 113t113 47h960q66 0 113 -47
+t47 -113z" />
+    <glyph glyph-name="uniF2D3" unicode="&#xf2d3;" horiz-adv-x="1792" 
+d="M1175 215l146 146q10 10 10 23t-10 23l-233 233l233 233q10 10 10 23t-10 23l-146 146q-10 10 -23 10t-23 -10l-233 -233l-233 233q-10 10 -23 10t-23 -10l-146 -146q-10 -10 -10 -23t10 -23l233 -233l-233 -233q-10 -10 -10 -23t10 -23l146 -146q10 -10 23 -10t23 10
+l233 233l233 -233q10 -10 23 -10t23 10zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D4" unicode="&#xf2d4;" horiz-adv-x="1792" 
+d="M1257 425l-146 -146q-10 -10 -23 -10t-23 10l-169 169l-169 -169q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l169 169l-169 169q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l169 -169l169 169q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23
+l-169 -169l169 -169q10 -10 10 -23t-10 -23zM256 128h1280v1024h-1280v-1024zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D5" unicode="&#xf2d5;" horiz-adv-x="1792" 
+d="M1070 358l306 564h-654l-306 -564h654zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2D6" unicode="&#xf2d6;" horiz-adv-x="1794" 
+d="M1291 1060q-15 17 -35 8.5t-26 -28.5t5 -38q14 -17 40 -14.5t34 20.5t-18 52zM895 814q-8 -8 -19.5 -8t-18.5 8q-8 8 -8 19t8 18q7 8 18.5 8t19.5 -8q7 -7 7 -18t-7 -19zM1060 740l-35 -35q-12 -13 -29.5 -13t-30.5 13l-38 38q-12 13 -12 30t12 30l35 35q12 12 29.5 12
+t30.5 -12l38 -39q12 -12 12 -29.5t-12 -29.5zM951 870q-7 -8 -18.5 -8t-19.5 8q-7 8 -7 19t7 19q8 8 19 8t19 -8t8 -19t-8 -19zM1354 968q-34 -64 -107.5 -85.5t-127.5 16.5q-38 28 -61 66.5t-21 87.5t39 92t75.5 53t70.5 -5t70 -51q2 -2 13 -12.5t14.5 -13.5t13 -13.5
+t12.5 -15.5t10 -15.5t8.5 -18t4 -18.5t1 -21t-5 -22t-9.5 -24zM1555 486q3 20 -8.5 34.5t-27.5 21.5t-33 17t-23 20q-40 71 -84 98.5t-113 11.5q19 13 40 18.5t33 4.5l12 -1q2 45 -34 90q6 20 6.5 40.5t-2.5 30.5l-3 10q43 24 71 65t34 91q10 84 -43 150.5t-137 76.5
+q-60 7 -114 -18.5t-82 -74.5q-30 -51 -33.5 -101t14.5 -87t43.5 -64t56.5 -42q-45 4 -88 36t-57 88q-28 108 32 222q-16 21 -29 32q-50 0 -89 -19q19 24 42 37t36 14l13 1q0 50 -13 78q-10 21 -32.5 28.5t-47 -3.5t-37.5 -40q2 4 4 7q-7 -28 -6.5 -75.5t19 -117t48.5 -122.5
+q-25 -14 -47 -36q-35 -16 -85.5 -70.5t-84.5 -101.5l-33 -46q-90 -34 -181 -125.5t-75 -162.5q1 -16 11 -27q-15 -12 -30 -30q-21 -25 -21 -54t21.5 -40t63.5 6q41 19 77 49.5t55 60.5q-2 2 -6.5 5t-20.5 7.5t-33 3.5q23 5 51 12.5t40 10t27.5 6t26 4t23.5 0.5q14 -7 22 34
+q7 37 7 90q0 102 -40 150q106 -103 101 -219q-1 -29 -15 -50t-27 -27l-13 -6q-4 -7 -19 -32t-26 -45.5t-26.5 -52t-25 -61t-17 -63t-6.5 -66.5t10 -63q-35 54 -37 80q-22 -24 -34.5 -39t-33.5 -42t-30.5 -46t-16.5 -41t-0.5 -38t25.5 -27q45 -25 144 64t190.5 221.5
+t122.5 228.5q86 52 145 115.5t86 119.5q47 -93 154 -178q104 -83 167 -80q39 2 46 43zM1794 640q0 -182 -71 -348t-191 -286t-286.5 -191t-348.5 -71t-348.5 71t-286.5 191t-191 286t-71 348t71 348t191 286t286.5 191t348.5 71t348.5 -71t286.5 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2D7" unicode="&#xf2d7;" 
+d="M518 1353v-655q103 -1 191.5 1.5t125.5 5.5l37 3q68 2 90.5 24.5t39.5 94.5l33 142h103l-14 -322l7 -319h-103l-29 127q-15 68 -45 93t-84 26q-87 8 -352 8v-556q0 -78 43.5 -115.5t133.5 -37.5h357q35 0 59.5 2t55 7.5t54 18t48.5 32t46 50.5t39 73l93 216h89
+q-6 -37 -31.5 -252t-30.5 -276q-146 5 -263.5 8t-162.5 4h-44h-628l-376 -12v102l127 25q67 13 91.5 37t25.5 79l8 643q3 402 -8 645q-2 61 -25.5 84t-91.5 36l-127 24v102l376 -12h702q139 0 374 27q-6 -68 -14 -194.5t-12 -219.5l-5 -92h-93l-32 124q-31 121 -74 179.5
+t-113 58.5h-548q-28 0 -35.5 -8.5t-7.5 -30.5z" />
+    <glyph glyph-name="uniF2D8" unicode="&#xf2d8;" 
+d="M922 739v-182q0 -4 0.5 -15t0 -15l-1.5 -12t-3.5 -11.5t-6.5 -7.5t-11 -5.5t-16 -1.5v309q9 0 16 -1t11 -5t6.5 -5.5t3.5 -9.5t1 -10.5v-13.5v-14zM1238 643v-121q0 -1 0.5 -12.5t0 -15.5t-2.5 -11.5t-7.5 -10.5t-13.5 -3q-9 0 -14 9q-4 10 -4 165v7v8.5v9t1.5 8.5l3.5 7
+t5 5.5t8 1.5q6 0 10 -1.5t6.5 -4.5t4 -6t2 -8.5t0.5 -8v-9.5v-9zM180 407h122v472h-122v-472zM614 407h106v472h-159l-28 -221q-20 148 -32 221h-158v-472h107v312l45 -312h76l43 319v-319zM1039 712q0 67 -5 90q-3 16 -11 28.5t-17 20.5t-25 14t-26.5 8.5t-31 4t-29 1.5
+h-29.5h-12h-91v-472h56q169 -1 197 24.5t25 180.5q-1 62 -1 100zM1356 515v133q0 29 -2 45t-9.5 33.5t-24.5 25t-46 7.5q-46 0 -77 -34v154h-117v-472h110l7 30q30 -36 77 -36q50 0 66 30.5t16 83.5zM1536 1248v-1216q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113
+v1216q0 66 47 113t113 47h1216q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D9" unicode="&#xf2d9;" horiz-adv-x="2176" 
+d="M1143 -197q-6 1 -11 4q-13 8 -36 23t-86 65t-116.5 104.5t-112 140t-89.5 172.5q-17 3 -175 37q66 -213 235 -362t391 -184zM502 409l168 -28q-25 76 -41 167.5t-19 145.5l-4 53q-84 -82 -121 -224q5 -65 17 -114zM612 1018q-43 -64 -77 -148q44 46 74 68zM2049 584
+q0 161 -62 307t-167.5 252t-250.5 168.5t-304 62.5q-147 0 -281 -52.5t-240 -148.5q-30 -58 -45 -160q60 51 143 83.5t158.5 43t143 13.5t108.5 -1l40 -3q33 -1 53 -15.5t24.5 -33t6.5 -37t-1 -28.5q-126 11 -227.5 0.5t-183 -43.5t-142.5 -71.5t-131 -98.5
+q4 -36 11.5 -92.5t35.5 -178t62 -179.5q123 -6 247.5 14.5t214.5 53.5t162.5 67t109.5 59l37 24q22 16 39.5 20.5t30.5 -5t17 -34.5q14 -97 -39 -121q-208 -97 -467 -134q-135 -20 -317 -16q41 -96 110 -176.5t137 -127t130.5 -79t101.5 -43.5l39 -12q143 -23 263 15
+q195 99 314 289t119 418zM2123 621q-14 -135 -40 -212q-70 -208 -181.5 -346.5t-318.5 -253.5q-48 -33 -82 -44q-72 -26 -163 -16q-36 -3 -73 -3q-283 0 -504.5 173t-295.5 442q-1 0 -4 0.5t-5 0.5q-6 -50 2.5 -112.5t26 -115t36 -98t31.5 -71.5l14 -26q8 -12 54 -82
+q-71 38 -124.5 106.5t-78.5 140t-39.5 137t-17.5 107.5l-2 42q-5 2 -33.5 12.5t-48.5 18t-53 20.5t-57.5 25t-50 25.5t-42.5 27t-25 25.5q19 -10 50.5 -25.5t113 -45.5t145.5 -38l2 32q11 149 94 290q41 202 176 365q28 115 81 214q15 28 32 45t49 32q158 74 303.5 104
+t302 11t306.5 -97q220 -115 333 -336t87 -474z" />
+    <glyph glyph-name="uniF2DA" unicode="&#xf2da;" horiz-adv-x="1792" 
+d="M1341 752q29 44 -6.5 129.5t-121.5 142.5q-58 39 -125.5 53.5t-118 4.5t-68.5 -37q-12 -23 -4.5 -28t42.5 -10q23 -3 38.5 -5t44.5 -9.5t56 -17.5q36 -13 67.5 -31.5t53 -37t40 -38.5t30.5 -38t22 -34.5t16.5 -28.5t12 -18.5t10.5 -6t11 9.5zM1704 178
+q-52 -127 -148.5 -220t-214.5 -141.5t-253 -60.5t-266 13.5t-251 91t-210 161.5t-141.5 235.5t-46.5 303.5q1 41 8.5 84.5t12.5 64t24 80.5t23 73q-51 -208 1 -397t173 -318t291 -206t346 -83t349 74.5t289 244.5q20 27 18 14q0 -4 -4 -14zM1465 627q0 -104 -40.5 -199
+t-108.5 -164t-162 -109.5t-198 -40.5t-198 40.5t-162 109.5t-108.5 164t-40.5 199t40.5 199t108.5 164t162 109.5t198 40.5t198 -40.5t162 -109.5t108.5 -164t40.5 -199zM1752 915q-65 147 -180.5 251t-253 153.5t-292 53.5t-301 -36.5t-275.5 -129t-220 -211.5t-131 -297
+t-10 -373q-49 161 -51.5 311.5t35.5 272.5t109 227t165.5 180.5t207 126t232 71t242.5 9t236 -54t216 -124.5t178 -197q33 -50 62 -121t31 -112zM1690 573q12 244 -136.5 416t-396.5 240q-8 0 -10 5t24 8q125 -4 230 -50t173 -120t116 -168.5t58.5 -199t-1 -208
+t-61.5 -197.5t-122.5 -167t-185 -117.5t-248.5 -46.5q108 30 201.5 80t174 123t129.5 176.5t55 225.5z" />
+    <glyph glyph-name="uniF2DB" unicode="&#xf2db;" 
+d="M192 256v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 512v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 768v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16
+q0 16 16 16h112zM192 1024v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 1280v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM1280 1440v-1472q0 -40 -28 -68t-68 -28h-832q-40 0 -68 28
+t-28 68v1472q0 40 28 68t68 28h832q40 0 68 -28t28 -68zM1536 208v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 464v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 720v-32
+q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 976v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 1232v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16
+h48q16 0 16 -16z" />
+    <glyph glyph-name="uniF2DC" unicode="&#xf2dc;" horiz-adv-x="1664" 
+d="M1566 419l-167 -33l186 -107q23 -13 29.5 -38.5t-6.5 -48.5q-14 -23 -39 -29.5t-48 6.5l-186 106l55 -160q13 -38 -12 -63.5t-60.5 -20.5t-48.5 42l-102 300l-271 156v-313l208 -238q16 -18 17 -39t-11 -36.5t-28.5 -25t-37 -5.5t-36.5 22l-112 128v-214q0 -26 -19 -45
+t-45 -19t-45 19t-19 45v214l-112 -128q-16 -18 -36.5 -22t-37 5.5t-28.5 25t-11 36.5t17 39l208 238v313l-271 -156l-102 -300q-13 -37 -48.5 -42t-60.5 20.5t-12 63.5l55 160l-186 -106q-23 -13 -48 -6.5t-39 29.5q-13 23 -6.5 48.5t29.5 38.5l186 107l-167 33
+q-29 6 -42 29t-8.5 46.5t25.5 40t50 10.5l310 -62l271 157l-271 157l-310 -62q-4 -1 -13 -1q-27 0 -44 18t-19 40t11 43t40 26l167 33l-186 107q-23 13 -29.5 38.5t6.5 48.5t39 30t48 -7l186 -106l-55 160q-13 38 12 63.5t60.5 20.5t48.5 -42l102 -300l271 -156v313
+l-208 238q-16 18 -17 39t11 36.5t28.5 25t37 5.5t36.5 -22l112 -128v214q0 26 19 45t45 19t45 -19t19 -45v-214l112 128q16 18 36.5 22t37 -5.5t28.5 -25t11 -36.5t-17 -39l-208 -238v-313l271 156l102 300q13 37 48.5 42t60.5 -20.5t12 -63.5l-55 -160l186 106
+q23 13 48 6.5t39 -29.5q13 -23 6.5 -48.5t-29.5 -38.5l-186 -107l167 -33q27 -5 40 -26t11 -43t-19 -40t-44 -18q-9 0 -13 1l-310 62l-271 -157l271 -157l310 62q29 6 50 -10.5t25.5 -40t-8.5 -46.5t-42 -29z" />
+    <glyph glyph-name="uniF2DD" unicode="&#xf2dd;" horiz-adv-x="1792" 
+d="M1473 607q7 118 -33 226.5t-113 189t-177 131t-221 57.5q-116 7 -225.5 -32t-192 -110.5t-135 -175t-59.5 -220.5q-7 -118 33 -226.5t113 -189t177.5 -131t221.5 -57.5q155 -9 293 59t224 195.5t94 283.5zM1792 1536l-349 -348q120 -117 180.5 -272t50.5 -321
+q-11 -183 -102 -339t-241 -255.5t-332 -124.5l-999 -132l347 347q-120 116 -180.5 271.5t-50.5 321.5q11 184 102 340t241.5 255.5t332.5 124.5q167 22 500 66t500 66z" />
+    <glyph glyph-name="uniF2DE" unicode="&#xf2de;" horiz-adv-x="1792" 
+d="M948 508l163 -329h-51l-175 350l-171 -350h-49l179 374l-78 33l21 49l240 -102l-21 -50zM563 1100l304 -130l-130 -304l-304 130zM907 915l240 -103l-103 -239l-239 102zM1188 765l191 -81l-82 -190l-190 81zM1680 640q0 159 -62 304t-167.5 250.5t-250.5 167.5t-304 62
+t-304 -62t-250.5 -167.5t-167.5 -250.5t-62 -304t62 -304t167.5 -250.5t250.5 -167.5t304 -62t304 62t250.5 167.5t167.5 250.5t62 304zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71
+t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2E0" unicode="&#xf2e0;" horiz-adv-x="1920" 
+d="M1334 302q-4 24 -27.5 34t-49.5 10.5t-48.5 12.5t-25.5 38q-5 47 33 139.5t75 181t32 127.5q-14 101 -117 103q-45 1 -75 -16l-3 -2l-5 -2.5t-4.5 -2t-5 -2t-5 -0.5t-6 1.5t-6 3.5t-6.5 5q-3 2 -9 8.5t-9 9t-8.5 7.5t-9.5 7.5t-9.5 5.5t-11 4.5t-11.5 2.5q-30 5 -48 -3
+t-45 -31q-1 -1 -9 -8.5t-12.5 -11t-15 -10t-16.5 -5.5t-17 3q-54 27 -84 40q-41 18 -94 -5t-76 -65q-16 -28 -41 -98.5t-43.5 -132.5t-40 -134t-21.5 -73q-22 -69 18.5 -119t110.5 -46q30 2 50.5 15t38.5 46q7 13 79 199.5t77 194.5q6 11 21.5 18t29.5 0q27 -15 21 -53
+q-2 -18 -51 -139.5t-50 -132.5q-6 -38 19.5 -56.5t60.5 -7t55 49.5q4 8 45.5 92t81.5 163.5t46 88.5q20 29 41 28q29 0 25 -38q-2 -16 -65.5 -147.5t-70.5 -159.5q-12 -53 13 -103t74 -74q17 -9 51 -15.5t71.5 -8t62.5 14t20 48.5zM383 86q3 -15 -5 -27.5t-23 -15.5
+q-14 -3 -26.5 5t-15.5 23q-3 14 5 27t22 16t27 -5t16 -23zM953 -177q12 -17 8.5 -37.5t-20.5 -32.5t-37.5 -8t-32.5 21q-11 17 -7.5 37.5t20.5 32.5t37.5 8t31.5 -21zM177 635q-18 -27 -49.5 -33t-57.5 13q-26 18 -32 50t12 58q18 27 49.5 33t57.5 -12q26 -19 32 -50.5
+t-12 -58.5zM1467 -42q19 -28 13 -61.5t-34 -52.5t-60.5 -13t-51.5 34t-13 61t33 53q28 19 60.5 13t52.5 -34zM1579 562q69 -113 42.5 -244.5t-134.5 -207.5q-90 -63 -199 -60q-20 -80 -84.5 -127t-143.5 -44.5t-140 57.5q-12 -9 -13 -10q-103 -71 -225 -48.5t-193 126.5
+q-50 73 -53 164q-83 14 -142.5 70.5t-80.5 128t-2 152t81 138.5q-36 60 -38 128t24.5 125t79.5 98.5t121 50.5q32 85 99 148t146.5 91.5t168 17t159.5 -66.5q72 21 140 17.5t128.5 -36t104.5 -80t67.5 -115t17.5 -140.5q52 -16 87 -57t45.5 -89t-5.5 -99.5t-58 -87.5z
+M455 1222q14 -20 9.5 -44.5t-24.5 -38.5q-19 -14 -43.5 -9.5t-37.5 24.5q-14 20 -9.5 44.5t24.5 38.5q19 14 43.5 9.5t37.5 -24.5zM614 1503q4 -16 -5 -30.5t-26 -18.5t-31 5.5t-18 26.5q-3 17 6.5 31t25.5 18q17 4 31 -5.5t17 -26.5zM1800 555q4 -20 -6.5 -37t-30.5 -21
+q-19 -4 -36 6.5t-21 30.5t6.5 37t30.5 22q20 4 36.5 -7.5t20.5 -30.5zM1136 1448q16 -27 8.5 -58.5t-35.5 -47.5q-27 -16 -57.5 -8.5t-46.5 34.5q-16 28 -8.5 59t34.5 48t58 9t47 -36zM1882 792q4 -15 -4 -27.5t-23 -16.5q-15 -3 -27.5 5.5t-15.5 22.5q-3 15 5 28t23 16
+q14 3 26.5 -5t15.5 -23zM1691 1033q15 -22 10.5 -49t-26.5 -43q-22 -15 -49 -10t-42 27t-10 49t27 43t48.5 11t41.5 -28z" />
+    <glyph glyph-name="uniF2E1" unicode="&#xf2e1;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E2" unicode="&#xf2e2;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E3" unicode="&#xf2e3;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E4" unicode="&#xf2e4;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E5" unicode="&#xf2e5;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E6" unicode="&#xf2e6;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E7" unicode="&#xf2e7;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_698" unicode="&#xf2e8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E9" unicode="&#xf2e9;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EA" unicode="&#xf2ea;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EB" unicode="&#xf2eb;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EC" unicode="&#xf2ec;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2ED" unicode="&#xf2ed;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EE" unicode="&#xf2ee;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="lessequal" unicode="&#xf500;" horiz-adv-x="1792" 
+ />
+  </font>
+</defs></svg>
--- a/assets/fonts/fontawesome-webfont.ttf
+++ b/assets/fonts/fontawesome-webfont.ttf
@@ -1,11 +1,18 @@
-       `FFTMn2      GDEF '~     OS/26y  (   `cmapb    gasp   t   glyfɁ  | head `   6hhea
-j    $hmtxF_   	locav|   maxp  t    name3<    postv   webfaU           mQ    Q     N            w          C  3   3  s                              pyrs                                                  n @  .         
- / _!"""`%>N^n~.>N^n~>N^n~              / _!"""`% !@P`p  0@P`p !@P`p d]YTC2߸ݺ 
w                                                                                                                                                                                                                                                                                     	
-                                                                                      p       7!!!@pp p                  1   ]    !2#!"&463!&54>3!2+@&&&&@+$(($F#+ &4&&4& x+#       +  ".4>32".4>32467632 DhgZghDDhg-iW DhgZghDDhg-iW&@(8 2N++NdN+';2N++NdN+'3
+    
   PFFTMkG    GDEF  p    OS/22z@  X   `cmap
+:    gasp  h   glyfM   Lhead-      6hhea
+     $hmtxEy    
+loca\    maxp,  8    name㗋 gh  post k  u    ːxY_<      32    32 	                 	 	                   '            @       i   3   3  s                              pyrs @                          p    U                                 ]                              y n                       2                           @                    
+                                                                           z                     Z                                @    5 5        
     z                                  Z  Z          @                                                                    ,  _                 @                                              s                               @         	            @                        (                                     @            @      @        -  
 M M - 
 M M                  @                                 @  @ 
 -              `   b          
       $                                       6                                         4           8       " "  "  "  "  "                  @                  D         @                   ,              ,     @                                                 	     m                        )                 @    @   	                                	                                   '                      D     9                   >                              d  Y     *     	  '	   	   	   	   	   	                                             	                                                           	                                                                                   T	      	   	   	   	   	            	         	   	      	                                                 @   	     f     	                                              %                 R           E	            	      	     $                    !  k  (                   D    '	         	         %                 	                %	                                         	                                                       0  %    /       &                                                      p @  0       !"""`>N^n~.>N^n~>N^n~          !"""` !@P`p  0@P`p !@P`p \XSB1ݬ

+	
                                                                                                                                                                                                                                                                                       
+	                                                                                        ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,   ,         t    L    T  $    l  	x  	  
+T  (      
d             l  ,          4    d    p  H    $  d  ,    t  (        !  "0  #   $,  $  &D  '  (  )T  *  *  ,  ,  -  .@  .  /`  /  0  0  1  2  3d  44  4  5   5  5  6   6\  6  7H  7  8  8`  8  9L  9  :h  :  ;  <p  =p  ><  >  ?h  ?  @H  @  A0  A  BX  B  Cd  C  DL  D  E  F  G0  G  H  I  J8  K  L  Md  N,  N  N  O  P`  P  Q4  Q  R  Rl  S,  S  T`  U0  W  X  Z  [@  [  \<  \  ]  ^(  ^  _  `p  b,  b  d  d  eP  e  f  g`  g  iL  i  jD  k  k  l  m@  n,  oL  p  q  r  sx  t  t  uD  {`  |   |  }  }  ~          H          l  @            l  H       T    H        `      @      $  \  X    D        T  X      D  P  ,    8    d  \                    H    x       t    X    p     d          x  t              @            \     ļ    Ÿ  Ɣ  0    d    ʨ  ˀ      ͔  x    ϰ  Ќ  ,  ш    ҈    ӌ    8  ,  ՜  `    l  H  ش  `    T  ڸ    ۔  @    l    ބ    ߬    l  p                                       4        X    $  l    (      `               	d 
+ 
+    
,    ,   8   (  X    x | T  @    |   ! "x # #l $ $ 'h ( *L ,T .L 1t 1 2 30 3 4 5t 6T 7$ 8 9H : : ; < < ?X @ A B C D EH FH Gp HH Ix J  J K L M N@ P@ Q R SD T  UL V` V WX X4 X Z Z [d [ \| ] ^ ` aH a b cX d et fh g h i\ jx n p@ s v w x y z {h | } } \   l t  4     t  8 8  L  T         |     |     4 x   L      X (           @   l  t   $   x L L    H     Ġ T (    ʈ ˠ   ϔ l d  P  Մ x p   ڬ T T   ވ L     < H  $  l    4          P l   ,  x  p , x t  d   4   4  , h  P 	4 
+  
  4  < , , 4 0 8 $  8  T   | !h " $L %0 &H ' ( ) *0 * + , .$ . 0 1 2@ 2 3 4t 5$ 6 9  : : ; ; <( < =4 ? @ A C D F H` H I L L L L L L L L L L L L L L L L  p       7!!!@pp p       ]    !2#!"&463!&54>3!2+@&&&&@+$(($F#+ &4&&4& x+#       +  ".4>32".4>32467632 DhgZghDDhg-iW DhgZghDDhg-iW&@(8 2N++NdN+';2N++NdN+'3
  8      !        #"'#"$&6$ rL46$܏ooo|W%r4L&V|oooܳ%        = M  %+".'&%&'3!26<.#!";2>767>7#!"&5463!2 %3@m00m@3% 

@
:"7..7":6]^B@B^^BB^  $΄+0110+$ 
(	
 
t1%%1+`B^^B@B^^        "'.54632>324
 #L</>oP$$Po>Z$_dC+I@$$@I+     "  #"'%#"&547&547%62V??V8<8y
b%	I))9I	       	 +  	%%#"'%#"&547&547%62q2ZZ2IzyV)??V8<8)>~>[
-
2b%	I))9I	      '  %#!"&54>322>32  &6 yy 6Fe=	BSSB	=eF6 >xx5eud_C(+5++5+(C_due>        / ? O _ o      54&+";2654&+";2654&+";264&#!"3!2654&+";2654&+";264&#!"3!2654&+";2654&+";2654&+";267#!"&5463!2&&&&&&&&&&&& & && & &&&&&&&&& && &&&&&&&&&&&&&^BB^^B@B^@&&&&&&&&&&&& && &&&&&&&&&& && &&&&&&&&&&&&&&B^^B@B^^        / ?  #!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2 L4 4LL4 4LL4 4LL4 4LL4 4LL4 4LL4 4LL4 4L 4LL44LL4LL44LL4LL44LL4LL44LL 	        / ? O _ o    #!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 8((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(8 (88((88(88((88(88((88(88((88(88((88(88((88(88((88(88((88(88((88          / ? O _  #!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 8((88(@(88((88(@(8 8(@(88((8 8((88(@(8 8(@(88((88(@(88((8 (88((88(88((88(88((88(88((88(88((88(88((88    y     "/&4?62	62,PP&PP,jP  n #  $"'	"/&47	&4?62	62	PP&P&&P&P&P&&P&P      # + D  ++"&=#"&=46;546;232      #"'#"$&6$  

@



@

rK56$܏ooo|W@



@


rjK&V|oooܳ        0  #!"&=463!2      #"'#"$&6$  


@
rK56$܏ooo|W@

@
rjK&V|oooܳ         ) 5   $&54762>54&'.7>"&5462 zz+i *bkQнQkb* j*LhLLhLzzBm +*i JyhQQhyJ i*+ mJ4LL44LL          / ? O  %+"&=46;2%+"&546;2%+"&546;2+"&546;2+"&546;2 `r@@r@@        n   4&"2#"/+"&/&'#"'&'&547>7&/.=46?67&'&547>3267676;27632 Ԗ#H
+
2b%	I))9I	         %#!"&54>3 72  &6  }XX}.GuLlLuG. >mmUmEEm>         / ? O _ o      54&+";2654&+";2654&+";264&#!"3!2654&+";2654&+";264&#!"3!2654&+";2654&+";2654&+";267#!"&5463!2&&&&&&&&&&&& & && & &&&&&&&&& && &&&&&&&&&&&&&^BB^^B@B^@&&&&&&&&&&&& && &&&&&&&&&& && &&&&&&&&&&&&&&B^^B@B^^        / ?  #!"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2 L4 4LL4 4LL4 4LL4 4LL4 4LL4 4LL4 4LL4 4L 4LL44LL4LL44LL4LL44LL4LL44LL 	        / ? O _ o    #!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 8((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(88((88(@(8 (88((88(88((88(88((88(88((88(88((88(88((88(88((88(88((88(88((88          / ? O _  #!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2 8((88(@(88((88(@(8 8(@(88((8 8((88(@(8 8(@(88((88(@(88((8 (88((88(88((88(88((88(88((88(88((88(88((88    y     "/&4?62	62,PP&PP,jP  n #  $"'	"/&47	&4?62	62	PP&P&&P&P&P&&P&P      # + D  ++"&=#"&=46;546;232      #"'#"$&6$  

@



@

rK56$܏ooo|W@



@


rjK&V|oooܳ        0  #!"&=463!2      #"'#"$&6$  


@
rK56$܏ooo|W@

@
rjK&V|oooܳ         ) 5   $&54762>54&'.7>"&5462 zz+i *bkQнQkb* j*LhLLhLzzBm +*i JyhQQhyJ i*+ mJ4LL44LL          / ? O  %+"&=46;2%+"&546;2%+"&546;2+"&546;2+"&546;2 `r@@r@@        n   4&"2#"/+"&/&'#"'&'&547>7&/.=46?67&'&547>3267676;27632 Ԗ#H
 	,/
1)
 ~'H
(C
 	

,/
1)	
$H
ԖԖm6%2X
@@ -15,7 +22,7 @@ j k2
k	
 w3[20       / ; C g  +"&546;2+"&546;2+"&546;2!3!2>!'&'!+#!"&5#"&=463!7>3!2!2 @@ @@ @@@`0
 
-o`^BB^`5FN(@(NF5 @@@L%%Ju		@LSyuS@%44%       g  5  #!!!"&5465	7#"'	'&/&6762546;2& &??>

LL
>
+o`^BB^`5FN(@(NF5 @@@L%%Ju		@LSyuS@%44%       f  5  #!!!"&5465	7#"'	'&/&6762546;2& &??>

LL
>
  X 
   &&&AJ	A	J
 Wh          #  #!"&5463!2!&'&!"&5!(8((88((`x
@@ -23,21 +30,22 @@ w3[20 (r^aa`		@`2(^aa         $ 0  ++"&5#"&54762  >& $$ ^
 ?@(r^aa`?		(^aa        
 #  !.'!!!%#!"&547>3!2<<<_@`&&
 5@5
-@
-&&>=(""=       '   #"'&5476.  6  $$    ! (r^aaJ	%%(_^aa     3  #!"'&?&#"3267672#"$&6$3276 &@*hQQhwI	mʬzzk)' @&('QнQh_
+@&&>=(""=       '   #"'&5476.  6  $$    ! (r^aaJ	%%(_^aa     3  #!"'&?&#"3267672#"$&6$3276 &@*hQQhwI
+	mʬzzk)' @&('QнQh_
 	
 z8zoe      $ G   !"$'"&5463!23267676;2#!"&4?&#"+"&= !2762@hk4&&&GaF*
&@&ɆF*
Ak4&nf&&&4BHrd@&&4rd
Moe&            / ? O _ o   +"&=46;25+"&=46;25+"&=46;2#!"&=463!25#!"&=463!25#!"&=463!24&#!"3!26#!"&5463!2
@

@

@

@

@

@

@



@



@



@


^B@B^^BB^`@

@
@

@
@

@
@

@
@

@
@

@
3@


MB^^B@B^^         !54&"#!"&546;54   32@ Ԗ@8(@(88( p (8 jj(88(@(88   @   7  +"&5&5462#".#"#"&5476763232>32@@
@
@KjKך=}\I&:k~&26]S
& H&

&H5KKut,4,	& x:;*4*&        K  #+"&546;227654$ >3546;2+"&="&/&546$ <X@@Gv"DװD"vG@@X<4L41!Sk @ G<_bb_<G  kS!1zz          "'!"&5463!62 &4&&M4&&M&&M&          -  "'!"&5463!62 #"&54>4.54632 &4&&M4&UF
 &""""&
-F&M&&M&%.D.%      G  - I k  "'!"&5463!62 #"&54>4.54632#"&54767>4&'&'&54632#"&547>7676'&'.'&54632 &4&&M4&UF
+F&M&&M&%/B/%      G  - I k  "'!"&5463!62 #"&54>4.54632#"&54767>4&'&'&54632#"&547>7676'&'.'&54632 &4&&M4&UF
 &""""&
-FU
&'8JSSJ8'&



&'.${{$.'&

&M&&M&%.D.%7;&'66'&;4[&$
[2[
$&[              # / 3 7  #5#5!#5!!!!!!!#5!#5!5##!35!!!                        # ' + / 3 7 ; ?  3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3????  ^>>~??????~??~??^??^^?  ^??          4&"2#"'.5463!2KjKKjv%'45%5&5L45&%jKKjK@5%%%%54L5&6'      k   5   4&"2#"'.5463!2#"&'654'.#32KjKKjv%'45%5&5L45&%%'4$.%%5&55&%jKKjK@5%%%%54L5&6'45%%%54'&55&6'  T d t  #!"&'&74676&7>7>76&7>7>76&7>7>76&7>7>63!2#!"3!2676'3!26?6&#!"3!26?6&#!"g(sAeM,*$/
!'&
JP$G]
+FU
&'8JSSJ8'&



&'.${{$.'&

&M&&M&%/B/%7;&'66'&;4[&$
[2[
$&[              # / 3 7  #5#5!#5!!!!!!!#5!#5!5##!35!!!                        # ' + / 3 7 ; ?  3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3????  ^>>~??????~??~??^??^^?  ^??          4&"2#"'.5463!2KjKKjv%'45%5&5L45&%jKKjK@5%%%%54L5&6'      k   5   4&"2#"'.5463!2#"&'654'.#32KjKKjv%'45%5&5L45&%%'4$.%%5&55&%jKKjK@5%%%%54L5&6'45%%%54'&55&6'  
+y T d t  #!"&'&74676&7>7>76&7>7>76&7>7>76&7>7>63!2#!"3!2676'3!26?6&#!"3!26?6&#!"g(sAeM,*$/
!'&
JP$G]
 x6,&`

h`

"9Hv@WkNC<.
 &k&
 ("$p"	.
#u&#	%!'	pJvwEF#

@



@

        2#"'	#"'.546763!''!0#GG$/!''!	
8""8
 X!	
8"	"8
	          <  )!!#"&=! 4&"27+#!"&=#"&546;463!232(8&4&&4
8(@(8
qO@8((`(@Oq 8(&4&&4&@`
(88(
Oq (8(`( q      ! )   2"&42#!"&546;7>3!2      Ijjjj3e5 5e3gr`Ijjjj1GG1r        P  2327&7>7;"&#"4?2>54.'%3"&#"#ժ!9&WB03&K5!)V?@L'	
>R>e;&L::%P>vO
-'h N_":-&+#
-:	'	      + a  %3 4'.#"32>54.#"7>7><5'./6$3232#"&#"+JBx)EB_I:I*CRzb3:dtB2P$$5.3b[F|\8!-T>5Fu\,,jn OrB,<!
-54wJ]?tTFi;
23j.p^%/2+
	S:T}K4W9: #ƕdfE     9  7>7676'5.'732>7"#"&#&#"$
zj=N!}:0e%	y
+tD3~U'#B4#
g		'2
-%/!:
T	bRU,7    ~  }  %2"/&6;#"&?62+326323!2>?23&'.'.#"&"$#"#&=>764=464.'&#"&'!~:~!PP!~:~!P6,,$$%*'
c2N 	
+'h N_":-&+#
+:	'	      + a  %3 4'.#"32>54.#"7>7><5'./6$3232#"&#"+JBx)EB_I:I*CRzb3:dtB2P$$5.3bZF|\8!-T>5Fu\,,jn OrB,<!
+54wJ]?tTFi;
23j.p^%/2+
	S:T}K4W9: #ƕdfE     :  7>7676'5.'732>7"#"&#&#"OA
zj=N!}:0e%	y
+tD3~U#B4#
g		'2
+%/!:
T	bRU,7        }  %2"/&6;#"&?62+326323!2>?23&'.'.#"&"$#"#&=>764=464.'&#"&'!~:~!PP!~:~!P6,,$$%*'
c2N 	
 ($"LA23Yl!x!*%% %% 
pP,T	NE	Q7^oH!+(
 3	 *Ueeu
wg      a   32632$?23&'.5&'&#"&"5$#"#&=>7>4&54&54>.'&#"&'2#".465!#".'&47>32!4&4>Q6,,Fa w!*'
 =~Pl*	
@@ -53,15 +61,23 @@ FU
 
B^^B@B^	@
 
BRnBBn^ww@w1
 ^BB^^B
	@
-BnnB          C   "&=!32"'&46;!"'&4762!#"&4762+!5462  4&& 4 &&4  4&& 4 &&4 4 &&4  4&& 4 &&4  4&&    z    6'&'+"&546;267:	&&&&	s@	
-Z&&&&Z   z  +  6'&''&'+"&546;267667:	:	&&&&		s@	
+BnnB          C   "&=!32"'&46;!"'&4762!#"&4762+!5462  4&& 4 &&4  4&& 4 &&4 4 &&4  4&& 4 &&4  4&&        6'&'+"&546;267:	&&&&	s@	
+Z&&&&Z
+	     +  6'&''&'+"&546;267667:	:	&&&&		s@	
 :	
-Z&&&&Z:  zz   6'&''&47667S::s@	
-:4:    r   	&546h!!0a


$           #!"&5463!2#!"&5463!2 & && && && &@&&&&&&&&          #!"&5463!2 &&&&@&&&&      z   &54646&5-:s::4:
-	      z  +  &5464646;2+"&5&5-&&&&:s::&&&&
+Z&&&&Z
+	:
+	  z   6'&''&47667S:	:	s@	
+:4:
+	    |   	&546h!!0a


$           #!"&5463!2#!"&5463!2 & && && && &@&&&&&&&&          #!"&5463!2 &&&&@&&&&         &54646&5-	:	s:	
+:4:
+	        +  &5464646;2+"&5&5-		&&&&	:	s:	
+:	
+&&&&
 	:
-	     z    &54646;2+"&5-&&&&s:&&&&
-	         62#!"&!"&5463!24@&&&&-:& && &        	"'&476244444     Zf   	"/&47	&4?62S44444       # /  54&#!4&+"!"3!;265!26  $$ & && && && &@^aa@& && && && &+^aa        54&#!"3!26  $$ & && &@^aa@&&&&+^aa       + 7  4/7654/&#"'&#"32?32?6  $$ }ZZZZ^aaZZZZ^aa      #  4/&"'&"327> $$ [4h4[j^aa"ZiZJ^aa      : F  %54&+";264.#"32767632;265467>$ $$  oW	5!"40K(0?i+! ":^aaXRdD4!&.uC$=1/J=^aa       . :  %54&+4&#!";#"3!2654&+";26 $$  ```^aa ^aa      / _  #"&=46;.'+"&=32+546;2>++"&=.'#"&=46;>7546;232m&&m l&&l m&&m l&&ls&%&&%&&%&&%& &&l m&&m l&&l m&&m ,&%&&%&&%&&%&        # / ;  "/"/&4?'&4?627626.  6  $$ I
+	         &54646;2+"&5-	&&&&	s:	
+&&&&
+	          62#!"&!"&5463!24@&&&&-:& && &        	"'&476244444     Zf   	"/&47	&4?62S44444       # /  54&#!4&+"!"3!;265!26  $$ & && && && &@^aa@& && && && &+^aa        54&#!"3!26  $$ & && &@^aa@&&&&+^aa       + 7  4/7654/&#"'&#"32?32?6  $$ }ZZZZ^aaZZZZ^aa      #  4/&"'&"327> $$ [4h4[j^aa"ZiZJ^aa      : F  %54&+";264.#"32767632;265467>$ $$  oW	5!"40K(0?i+! ":^aaXRdD4!&.uC$=1/J=^aa       . :  %54&+4&#!";#"3!2654&+";26 $$  ```^aa ^aa      / _  #"&=46;.'+"&=32+546;2>++"&=.'#"&=46;>7546;232m&&m l&&l m&&m l&&ls&%&&%&&%&&%& &&l m&&m l&&l m&&m ,&%&&%&&%&&%&        # / ;  "/"/&4?'&4?627626.  6  $$ I
 
 
 
@@ -119,7 +135,7 @@ r
 L4&&
 4&&&L
 
-r         #  #!+"&5!"&=463!46;2!28(`8((8`(88(8((8(8 (8`(88(8((8(88(`8          #!"&=463!28(@(88((8 (88((88   m 5  '%+"&5&/&67-.?>46;2%6.@g.L44L.g@.
+r         #  #!+"&5!"&=463!46;2!28(`8((8`(88(8((8(8 (8`(88(8((8(88(`8          #!"&=463!28(@(88((8 (88((88   z 5  '%+"&5&/&67-.?>46;2%6.@g.L44L.g@.
 .@g.
 L44L
 .g@.g.n.4LL43.n.gg.n.34LL4͙.n.g        -     $54&+";264'&+";26/a^




@@ -127,22 +143,23 @@ L4
 
 
 ^aa

fm
-        @ 
   J  %55!;263'&#"$4&#"32+#!"&5#"&5463!"&46327632#!2$$8~+(888(+}(`8((8`]]k==k]]8,8e8P88P8`(88(@MM        O   4&#"327>76$32 #"'.#"#".'.54>54&'&54>7>7>32 &z&^&./+>*>J>	Wm7'
-'"''? &4&c&^|h_bml/J@L@
#M6:D
+        @ 
   J  %55!;263'&#"$4&#"32+#!"&5#"&5463!"&46327632#!2$$8~+(888(+}(`8((8`]]k==k]]8,8e8P88P8`(88(@MM        N   4&#"327>76$32 #"'.#"#"&'.54>54&'&54>7>7>32 &z&^&./+>+)>J>	Wm7'
+'"''? &4&c&^|h_bml/J@L@#*
#M6:D
 35sҟw$	'%
-'	\t       3  #!"&=463!2'.54>54''


@
 1O``O1CZZ71O``O1BZZ7@

@
N]SHH[3`)TtbN]SHH[3^)Tt           ! 1  &'   547 $ 4&#"2654632    '&476   ==嘅}(zVl''ٌ@uhyyhu9(}VzD##D#     	  = C U  %7.547 4&#"2654632% #"'&547.'&476 !27632#76$7&'7+NWb=嘧}(zVi\j1
+'	\t          3  #!"&=463!2'.54>54''


@
 1O``O1CZZ71O``O1BZZ7@

@
N]SHH[3`)TtbN]SHH[3^)Tt           ! 1  &'   547 $ 4&#"2654632    '&476   ==嘅}(zVl''ٌ@uhyyhu9(}VzD##D#     	  = C U  %7.547 4&#"2654632% #"'&547.'&476 !27632#76$7&'7+NWb=嘧}(zVj\i1
 z,X
Y[6
-$!%'FuJiys?_9ɍ?kyhun(}VzYF
+$!%'FuJiys?_9ɍ?kyhun(}VzYF
 KA؉La
-02-F"@Qsp@_       ! 3  %54&+";264'&+";26#!"&'&7>2 




+02-F"@Qsp@_        ! 3  %54&+";264'&+";26#!"&'&7>2 




 

 
 #%;" ";%# <F<7
-

??""??$$    2  #"'&'	+&/&'&?632	&'&?67>`,@L5
`		
+

??""??$$     ll 2  #"'&'	+&/&'&?632	&'&?67>`,@L5
`		
 `	L`4LH`
`	
a	5
L@              # 3 7 ; ? O s  !!!!%!!!!%!!!!!!!!%!!4&+";26!!%!!!!74&+";26%#!"&546;546;2!546;232 `@ `@ @@  @
@

@
 @  
@

@
L44LL4^B@B^^B@B^4L  @@@@      @@  


@@   


M 4LL4 4L`B^^B``B^^B`L        7 q  .+"&=46;2 #"&=".'673!54632#"&=!"+"&=46;2>767>3!54632<M33K,		
 j8Z4L2B4:;M33K, ?			
 0N<* .)C=W]xD0N<* .)C=W]xD ?\-7H)		
".=']-7H)
 w		
<?.>mBZxPV3!<?.>mBZxPV3!
-        &   #"'&'5&6&>7>7&54>$32 dFK1A
+         &   #"'&'5&6&>7>7&54>$32 dFK1A
 0)L.٫C58.H(Ye      # 3 C   $=463!22>=463!2#!"&5463!2#!"&5463!2 H&&/<R.*.R</&& &&&& &&&&Bɀ&&4L&&L4&&f&&&&&&&&     Z     %"'	"/&4762444ͥ55     Z   	"'&4?62	6244455        % K  %#!".<=#"&54762+!2"'&546;!"/&5463!232 
@&@<@&@	:&	
& 

-&&&	

+&&
+&	

 `&          :  $"&462"&462!2#!"&54>7#"&463!2!2LhLLhLhLLh!
&& &&& &4hLLhLLhLLhL %z<
 0&4&&)17&4&
&&           #!"&5463!2!2\@\\@\\@\\\\         W  *  #!"&547>3!2!"4&5463!2!2W+B"5P+B@"5^=\@\ \H#t3G#3G:_Ht\\     @      +32"'&46;#"&4762&& 4 && 4 4& &4  4& &4       @     "&=!"'&4762!5462  4& &4  4& &4 4 && 4 &&          
    !!!3!!                    0 @  67&#".'&'#"'#"'32>54'6#!"&5463!2 8ADAE=\W{O[/5dI
kDtpČe1?*w@www	(M&
B{Wta28r=Ku?RZ^GwT	-@www       $  2+37#546375&#"#3!"&5463ww/Dz?swww@wS88	ww           # ' . >   4&#"26546326"&462!5! &  !5!!=!!%#!"&5463!2B^8(Ԗ  > @|K5 5KK5 5K^B(8ԖԖ>v 5KK5 5KK   H  G   4&"&#"2654'32#".'#"'#"&54$327.54632@pp)*Pppp)*Pb	'"+`N*(a;2̓c`." b
 PTY9ppP*)pppP*) b ".`(*Nͣ2ͣ`+"'	b
@@ -154,18 +171,15 @@ s%(
 s"+")v
 <
 3zLLz3
3>8L3)x3
3zLLz3
3>8L3)x3
ԖԖ 4LL45KK54LL45KK
-#)0C
-
-wZl/
+#)0C	wZl/
 
 Y	
 N,&
 #)0C	vZl.
 
-Y	
-L0"qG^^Gqq$ ]G)FqqG^^Gqq$ ]G)Fq         % O   #"'#"&'&4>7>7.546$ '&'&'# '32$7>54'VZ|$2$
+YL0"qG^^Gqq$ ]G)FqqG^^Gqq$ ]G)Fq         % O   #"'#"&'&4>7>7.546$ '&'&'# '32$7>54'VZ|$2$
 |E~E<|
-$2$|ZV:(t}X(	
&%(Hw쉉xH(%&	(XZT\MKG        < m  $4&"24&#!4654&#+32;254'>4'654&'>7+"&'&#!"&5463!6767>763232 &4&&4N2`@`%)7&,$)'  
%/0Ӄy#5 +1	&<$]`{t5KK5$e:1&+'3TF0h4&&4&3M:;b^v+D2 5#$IIJ 2E=\$YJ!$MCeM-+(K55KK5y*%Au]c         = p   4&"24&'>54'64&'654&+"+322654&5!267+#"'.'&'&'!"&5463!27>;2 &4&&4+ 5#bW0/%
  ')$,&7)%`@``2Nh0##T3'"(0;e$5KK5 tip<&	1&4&&4& #\=E2 JIURI$#5 2D+v^b;:M2gc]vDEA%!bSV2MK55K(,,MeCM$!J   @   #"&547&547%6@?V8b%	I)         9  4.""'."	67"'.54632>32+C`\hxeH>Hexh\`C+ED4
+$2$|ZV:(t}X(	
&%(Hw쉉xH(%&	(XZT\MKG        < m  $4&"24&#!4654&#+32;254'>4'654&'>7+"&'&#!"&5463!6767>763232 &4&&4N2`@`%)7&,$)'  
%/0Ӄy#5 +1	&<$]`{t5KK5$e:1&+'3TF0h4&&4&3M:;b^v+D2 5#$IIJ 2E=\$YJ!$MCeM-+(K55KK5y*%Au]c         > q   4&"24&'>54'654&'654&+"+322654&5!267+#"'.'&'&'!"&5463!27>;2 &4&&4+ 5#bW0/%
  ')$,&7)%`@``2Nh0##T3'"(0;e$5KK5 tip<&	1&4&&4& #\=E2&%IURI$#5 2D+v^b;:M2gc]vDEA%!bSV2MK55K(,,MeCM$!I     @   #"&547&547%6@?V8b%	I)         9  4.""'."	67"'.54632>32+C`\hxeH>Hexh\`C+ED4
 #L</>oP$$Po>Q|I.3MCCM3.I|Q/Z$_dC+I@$$@I+           ( @  %#!"&5463!2#!"3!: "&5!"&5463!462
ww@

B^^B 
 4&@&&&4 ` 
ww
 
^B@B^24& && &        % 5  73#7.";2634&#"35#347>32#!"&5463!2FtIG9;HIxI<,tԩw@wwwz4DD43EEueB&#1s@www      .  4&"26#!+"'!"&5463"&463!2#2&S3Ll&c4LL44LL4c@&&{ LhLLhL           ' ?  #!"&5463!2#!"3!26546;2"/"/&47'&463!2www@B^^B@B^@&4t
 
@@ -176,42 +190,36 @@ r
 r
 
 4&&         @   "&5!"&5463!462	#!"&54&>3!2654&#!*.54&>3!24&@&&&4 sw

@B^^B
-
@w4& && &3@w
 
^BB^ 
     
 I  &5!%5!>732#!"&=4632654&'&'.=463!5463!2!2J  JSq*5&=CKuuKC=&5*q͍S8( ^B@B^ (8`N`Ѣ΀GtO6)"M36J[E@@E[J63M")6OtG(8`B^^B`8           % - 3   %'&76'&76''&76'&76'&6#5436&76+".=4'>54'6'&&"."&'./"?+"&5463!2
	2				5
-
-
-
-	
-	z<: Ʃw
-49[aA)O%-j'&]]5r,%O)@a[9(	0BA;+
-
-
>HCwww		5/)
-	u

-@wa-6OUyU[q	( -	q[UyUP6$C
-
-+) (	
-8&/
&ww       ' ?  $4&"2$4&"2#!"&5463!3!267!2#!#!"&5!"'&762 &4&&4&&4&&48(@(88(c= =c(8* & & *6&4&&4&&4&&4& (88(@(88HH88`(@&&('@       1 d  4&'.54654'&#"#"&#"32632327>7#"&#"#"&54654&54>76763232632
+
@w4& && &3@w
 
^BB^ 
     
 I  &5!%5!>732#!"&=4632654&'&'.=463!5463!2!2J  JSq*5&=CKuuKC=&5*q͍S8( ^B@B^ (8`N`Ѣ΀GtO6)"M36J[E@@E[J63M")6OtG(8`B^^B`8   	        ' , 2    6'&'&76'6'&6&'&6'&4#"7&64   654'.'&'.63226767.547&7662>76#!"&5463!2		/[		.
+=XĚ4,+"*+, 1JH'5G::#L5+@=&# w@wwwP.1GE,ԧ44+	;/5cFO:>JJ>:O9W5$@(b4@www      ' ?  $4&"2$4&"2#!"&5463!3!267!2#!#!"&5!"'&762 &4&&4&&4&&48(@(88(c= =c(8* & & *6&4&&4&&4&&4& (88(@(88HH88`(@&&('@       1 c  4&'.54654'&#"#"&#"32632327>7#"&#"#"&54654&54>76763232632
 
 
 	N<;+gC8A`1a99gw|98aIe$IVNz<:LQJ
-	,-[%	061I()W,$-7,oIX()oζA;=N0
-eTZ
-
-(         O  #".'&'& '&'.54767>3232>32e^\3@P	bMO0#382W#& 9C9
-Lĉ"	82<*9FF(W283#0OMb	P@3\^eFF9*<28	"L
-9C9 &#           !"3!2654&#!"&5463!2`B^^B@B^^ީwww@w ^BB^^B@B^ww@w      #  !72#"'	#"'.546763 YY!''!0#GG$/!''! &UUjZ	
8""8
 X!	
8"	"8
	        E U  4'./.#"#".'.'.54>54.'.#" 32676#!"&5463!2 G55
-:8c7
)1)
+,-[%	061I()W,$-7,oIX()oζA;=N0
+eTZ
	 (       O  #".'&'& '&'.54767>3232>32e^\4?P	bMO0#382W#& 9C9
+Lĉ"	82<*9FF(W283#0OMb	P?4\^eFF9*<28	"L
+9C9 &#           !"3!2654&#!"&5463!2`B^^B@B^^ީwww@w ^BB^^B@B^ww@w      #  !72#"'	#"'.546763 YY!''!0#GG$/!''! &UUjZ	
8""8
 X!	
8"	"8
	        G W  4.'.#"#".'.'.54>54.'.#" 32676#!"&5463!2  1.-
++$)
c8
)1)
 
-05.D
<90)$9 w@wwwW+
-AB
7c
)$+
--.1 9$)0<
D.59@www    ,  T  1  # '327.'327.=.547&54632676TC_LҬ#+i!+*pDNBN,y[`m`%i]hbEm}au&,SXK
+05.D
<90)$9 w@wwwW
+
+)1)
7c
)$+
+-.1 9$)0<
D.59@www  ,  T  1  # '327.'327.=.547&54632676TC_LҬ#+i!+*pDNBN,y[`m`%i]hbEm}au&,SXK
 &$f9s?
-    _    #"!#!#!54632V<%' ЭHH	(ں       R   &=4'>54'6'&&"."&'./"?'& 54$  49[aA)O%-j'&]]5r,%O)@a[9(	0BA;+
+    _    #"!#!#!54632V<%' ЭHH	(ں       T \ d k s z       &54654'>54'6'&&"."&'./"?'& 546'&6'&6'&6'&6'&74"727&6/a49[aA)O%-j'&]]5r-%O)@a[9'
+0BA;+
+
+
>HCU
 
-
>HCaaoMa-6OUyU[q	( -	q[UyUP6$C
+
+	#	
+	
+$				2	
AC: oM=a-6OUwW[q	( -	q[WwUP6$C
 
 +) (	
-8&/
&fMa         %  +"&54&"32#!"&5463!54   &@&Ԗ`(88(@(88(r && jj8((88(@(8        # ' +  2#!"&5463"!54&#265!375!35!B^^BB^^B



` ^B@B^^BB^

 
`
       ! =   "&462+"&'& '.=476;+"&'& $'.=476;pppp$!$qr
%}#ߺppp!E$
rqܢ#
%
ֻ!           ) ?   "&462"&4624&#!"3!26!.#!"#!"&547>3!2/B//B//B//B
@


2^B@B^\77\aB//B//B//B/@




~B^^B@2^5BB52   v  . 4  2## %&'.67#"&=463! 2 5KK5L4_u:B&1/&.-
-zB^^B4LvyKjK4L[!^k'!A3;):2*<vTq6^BB^L4$)*    @     A  4#"&54"3! 4."#!"&5!"&5>547&5462;U gIv0ZZ0L4@Ԗ@4L2RX='8P8'=XR U;Ig0,3lb??bl34LjjL4*\(88(\   x I  /#"/'&/'&?'&'&?'&76?'&7676767676`
+8&/
&eMa	
+&
$	

        %  +"&54&"32#!"&5463!54   &@&Ԗ`(88(@(88(r && jj8((88(@(8        # ' +  2#!"&5463"!54&#265!375!35!B^^BB^^B



` ^B@B^^BB^

 
`
       ! =   "&462+"&'& '.=476;+"&'& $'.=476;pppp$!$qr
%}#ߺppp!E$
rqܢ#
%
ֻ!           ) ?   "&462"&4624&#!"3!26!.#!"#!"&547>3!2/B//B//B//B
@


2^B@B^\77\aB//B//B//B/@




~B^^B@2^5BB52     . 4  2## %&'.67#"&=463! 2 5KK5L4_u:B&1/&.-
+zB^^B4LvyKjK4L[!^k'!A3;):2*<vTq6^BB^L4$)*    @     A  4#"&54"3! 4."#!"&5!"&5>547&5462;U gIv0ZZ0L4@Ԗ@4L2RX='8P8'=XR U;Ig0,3lb??bl34LjjL4*\(88(\    } I  /#"/'&/'&?'&'&?'&76?'&7676767676`
 (5)0
 )*)
 0)5(
@@ -227,8 +235,8 @@ AB
7
 
 )5)0
 )*      5 h  $4&"24&#!4>54&#"+323254'>4'654&'!267+#"'&#!"&5463!2>767>32!2 &4&&4N2$YGB
(HGEG  HQ#5K4Li!<;5KK5 
-A#
("/?&}vh4&&4&3M95S+C=,@QQ9@@IJ 2E=L5i>9eME;K55K	J7R>@#zD<      7 ? s  %3#".'.'&'&'.#"!"3!32>$4&"2#!"#"&?&547&'#"&5463!&546323!2`  #A<(H(GY$2NL4K5#aWTƾh&4&&4K5;=!ihv}&?/"(
#A
- 5K2*!Q@.'!&=C+S59M34L=E2 JI UR@@&4&&4&5K;ELf9>ig<Dz#@>R7J	K         5 h  4&"24#"."&#"4&#"".#"!54>7#!"&54.'&'.5463246326326 &4&&4IJ 2E=L43M95S+C=,@QQ9@@E;K55K	J7R>@#zD<gi>9eMZ4&&4&<#5K4LN2$YGB
(HGEG  HV;5KK5 
+A#
("/?&}vh4&&4&3M95S+C=,@QQ9@@IJ 2E=L5i>9eME;K55K	J7R>@#zD<      5 = q  %3#".'&'&'&'.#"!"3!32>$4&"2#!"#"&?&547&'#"&5463!&546323!2`  #A<(H(GY$2NL4K5#aWTƾh&4&&4K5;=!ihv}&?/"(
#A
+ 5K2*!	Q@.'!&=C+S59M34L=E2 JI UR@@&4&&4&5K;ELf9>ig<Dz#@>R7J	K          5 h  4&"24#"."&#"4&#"".#"!54>7#!"&54.'&'.5463246326326 &4&&4IJ 2E=L43M95S+C=,@QQ9@@E;K55K	J7R>@#zD<gi>9eMZ4&&4&<#5K4LN2$YGB
(HGEG  HV;5KK5 
 A#
("/?&}vhi!<         4 < p  4.=!32>332653272673264&"2/#"'#"&5#"&54>767>5463!2@@2*!	Q@.'!&=C+S59M34L.9E2 JI UR&4&&4&Lf6Aig6Jy#@>R7J	K55K;E@TƾH  #A<(H(GY$2NL4K#5#a=4&&4&D=ihv}&?/"(
#A
  5KK5;         +  54&#!764/&"2?64/!26  $$  &
 [6[[j6[& ^aa@&4[[6[[6&+^aa        +   4/&"!"3!277$ $$ [6[
@@ -238,7 +246,7 @@ AB
7
 
 
 	4
	$!	#
	
-		
+		
 	
 
 

@@ -249,25 +257,24 @@ AB
7
 $	
	"
+
 
 
-		
+		
 	Α	
 		
^aa
-
	
+
	
 
 			
	

	
 
 		
-	
		P '-(	#	*
-$

+	
		P '-(	#	*	$

 "
!				
*
 !	

 (				
 
	
 $
 		
-2
   ~   /  $4&"2	#"/&547#"  32>32&4&&4V%54'j&&'/덹:,{	&4&&4&V%%l$65&b'Cr!"k[G             + ;  %!5!!5!!5!#!"&5463!2#!"&5463!2#!"&5463!2    &&&&&&&&&&&&@ && && && && && &&      #"'&5&763!2{'
 * *)* )'             /  !5!#!"&5!3!26=#!5!463!5463!2!2  ^B@B^&@&`   ^B`8(@(8`B^   B^^B&&B^(88(^      G  	76#!"'&?	#!"&5476	#"'&5463!2	'&763!2#"'c)'&@**@&('c(&*cc*&'
*@&('c'(&*cc*&('c'(&@*        1 9 A S [  #"&532327#!"&54>322>32 "&462  &6 +&'654'32>32"&462QgRp|Kx;CByy 6Fe=
+2
   ~   /  $4&"2	#"/&547#"  32>32&4&&4V%54'j&&'/덹:,{	&4&&4&V%%l$65&b'Cr!"k[G             + ;  %!5!!5!!5!#!"&5463!2#!"&5463!2#!"&5463!2    &&&&&&&&&&&&@ && && && && && &&   {    #"'&5&763!2{'
 * *)* )'             /  !5!#!"&5!3!26=#!5!463!5463!2!2  ^B@B^&@&`   ^B`8(@(8`B^   B^^B&&B^(88(^      G  	76#!"'&?	#!"&5476	#"'&5463!2	'&763!2#"'c)'&@**@&('c(&*cc*&'
*@&('c'(&*cc*&('c'(&@*        1 9 A S [  #"&532327#!"&54>322>32 "&462  &6 +&'654'32>32"&462QgRp|Kx;CByy 6Fe=
 BPPB
-=eF6  ԖV>!pRgQBC;xK|Ԗ{QNa*+%xx5eud_C(+5++5+(C_due2ԖԖ>NQ{u%+*jԖԖ     p ! C i  4/&#"#".'32?64/&#"327.546326 #"/&547'#"/&4?632632(* 8(!)(A(')* 8(!USxySSXXVzxTTUSxySSXXVzxT@( (8 *(('((8 SSUSx{VXXTTSSUSx{VXXT        #!" 5467&54 32632t,Ԟ;F`j)6,>jK?  Q/  !  %#!"&7#"&463!2+!'5#8EjjE8@&& &&@XYY&4&&4&qDS%q%       N \ j x     2"&4#"'#"'&7>76326?'&'#"'.'&676326326&'&#"32>'&#"3254?''74&&4&l
NnbSVZbRSD	
zz
	DSRb)+USbn
\.2Q\dJ'.2Q\dJ.Q2.'Jd\Q2.'Jd`!O` 	`&4&&4r$#@B10M5TNT{L5T
	II	
T5L;l'OT4M01B@#$*3;$*3;;3*$;3*$:$/ @@Qq`@         " % 3 <  2#!"&5!"&5467>3!263!	!!#!!46!#!(88(@(8(8(`((8D<++<8(` (8(`8(@(88( 8((`(8((<`(8 (``(8    || ?  %#"'&54632#"'&#"32654'&#"#"'&54632|udqܟs]
+=eF6  ԖV>!pRgQBC;xK|Ԗ{QNa*+%xx5eud_C(+5++5+(C_due2ԖԖ>NQ{u%+*jԖԖ     p ! C i  4/&#"#".'32?64/&#"327.546326 #"/&547'#"/&4?632632(* 8(!)(A(')* 8(!USxySSXXVzxTTUSxySSXXVzxT@( (8 *(('((8 SSUSx{VXXTTSSUSx{VXXT        #!" 5467&54 32632t,Ԟ;F`j)6,>jK?  s
  !  %#!"&7#"&463!2+!'5#8EjjE8@&& &&@XYY&4&&4&qDS%q%         N \ j x     2"&4#"'#"'&7>76326?'&'#"'.'&676326326&'&#"32>'&#"3254?''74&&4&l
NnbSVZbRSD	
zz
	DSRb)+USbn
\.2Q\dJ'.2Q\dJ.Q2.'Jd\Q2.'Jd`!O` 	`&4&&4r$#@B10M5TNT{L5T
	II	
T5L;l'OT4M01B@#$*3;$*3;;3*$;3*$:$/ @@Qq`@         " % 3 <  2#!"&5!"&5467>3!263!	!!#!!46!#!(88(@(8(8(`((8D<++<8(` (8(`8(@(88( 8((`(8((<`(8 (``(8    || ?  %#"'&54632#"'&#"32654'&#"#"'&54632|udqܟs]
 =
 OfjL?R@T?"&
 >
@@ -280,13 +287,12 @@ BP
 08((88(@(8



8((88((`(1
 
 `(88( (88( @


`(88(@(8(`         #!"&5463!2 w@www`@www             /  %#!"&=463!2#!"&=463!2#!"&=463!2 &&&&&&&&&&&&&&&&&&&&&&&&    @    ' 7 G  $"&462"&462#!"&=463!2 "&462#!"&=463!2#!"&=463!2ppppppp
@


ppp
@



@


Рpppppp


ppp





         < L \ l |  #"'732654'>75"##5!!&54>54&#"'>3235#!"&=463!2!5346=#'73#!"&=463!2#!"&=463!2}mQjB919+i1$AjM_3</BB/.#U_:IdDRE
@

k*Gj
@


@


TP\BX-@8
-C)5XsJ@$3T4+,:;39SG2S.7<

vcc)(%Ll}




         5 e  2#!"&=463%&'&5476!2/&'&#"!#"/&'&=4'&?5732767654'&@02uBo
-T25XzrDCBBEh:%)0%HPIP{rQ9f#-+>;I@KM-/Q"@@@#-a[$&P{<8[;:XICC>. '5oe71#.0(
l0&%,"J&9%$<=DTI     c s  &/6323276727#"327676767654./&'&'737#"'&'&'&54'&54&#!"3!260%
<4"VRt8<@<
-#=XYhW8+0$"+dTLx-'I&JKkmuw<=V@!X@		v
'|N;!/!$8:IObV;C#V
+C)5XsJ@$3T4+,:;39SG2S.7<

vcc))%Ll}




         5 e  2#!"&=463%&'&5476!2/&'&#"!#"/&'&=4'&?5732767654'&@02uBo
+T25XzrDCBBEh:%)0%HPIP{rQ9f#-+>;I@KM-/Q"@@@#-bZ$&P{<8[;:XICC>. '5oe80#.0(
l0&%,"J&9%$<=DTI     c s  &/6323276727#"327676767654./&'&'737#"'&'&'&54'&54&#!"3!260%
<4"VRt8<@<
-#=XYhW8+0$"+dTLx-'I&JKkmuw<=V@!X@		v
'|N;!/!$8:IObV;C#V
 
&
(mL.A:9 !./KLwPM$@@  
        / ? O _ o     %54&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!2654&#!"3!26#!"&5463!2 @@ @ @ @ @ @ @@^BB^^B@B^NB^^B@B^^         # + 3  	'$"/&4762%/?/?/?/?%k*66bbbb|<<<bbbbbbbb%k66Ƒbbb<<<<^bbbbbb    @      M  $4&"2!#" 4&"2&#"&5!"&5#".54634&>?>;5463!2LhLLh
		 LhLLhL!'ԖԖ@'!&	
?& &LhLLhL 		
hLLhL 	jjjj	&@6/"
&&       J   #"'676732>54.#"7>76'&54632#"&7>54&#"&54$  ok;	-j=yhwi[+PM3ѩk=J%62>VcaaQ^ ]G"'9r~:`}Ch  0=Z٤W=#uY2BrUI1^Fk[|a      L  2#!67673254.#"67676'&54632#"&7>54&#"#"&5463ww+U	,i<F{jh}Z+OM

 2ϧj<J%51=Ubwww@wzX"'8'TyI9`{Bf 
-,>XբW<"uW1AqSH1bdww        % S _ o  #".54>32#".54632?!"32732>54.4>54&'35#5##33#!"&5463!2=uQ)OH,2QS+*
-$
		JB;5P#@<5Q#jXUg^
(R/9%<NM&<yjB(::(,,-2v@@w@www>LI&D,.D#<OUl4=VZp@@W]{,23X3+E,=hA1Q4+-,)&.I.<O3@@@`@www     N  0 E ` l  #"&'&54676%.547#"&5467>3!#'267654.#"2>54.'&#"3##5#5353@[Z@0HꟄ9%YJ .H?MpJL1EF1&P5"?j@*Q/+=Y6:k[7'9C 5hoS6Fq}kii$ECPNZSzsS`<GQ.R*@)$1R6B@X?ZHsG;@>!9f:}R'!;e.ggR44^>0$/.0$8];Fk;lll         , <  !5##673#$".4>2"&5!#2!46#!"&5463!2 rM*
 *M~~M**M~~M*jjj& && &`P%挐|NN||NN|* jj jj@&&&&    @  
   "'&463!2 @4@&Z4@4&        @ 
   #!"&4762 &&4Z4&&4@     @  
  "'&4762&4@4&@&4&      @ 
   "&5462@@4&&44@&&@        
   3!!%!!26#!"&5463!2`m`
^BB^^B@B^
 `@B^^BB^^    @ 
    "'&463!2#!"&4762 @4@&&&&44@4&Z4&&4@         
   "'&463!2 @4@&4@4&        @ 
   #!"&4762 &&4Z4&&4@          :  #!"&5;2>76%6 +".'&$'.5463!2 ^B@B^,9j9Gv33vG9H9+bI\
+,>XբW<"uW1AqSH1bdww        ' 7  4'!3#"&46327&#"326%35#5##33#!"&5463!20U6cc\=hlࠥYmmnnnnw@wwww&46#Ȏ;edwnnnnn@www    	 ] # /  #"$&6$3 &#"32>7!5!%##5#5353Еttu{zz{SZC`cot*tq||.EXN#??           , <  !5##673#$".4>2"&5!#2!46#!"&5463!2 rM*
 *M~~M**M~~M*jjj& && &`P%挐|NN||NN|* jj jj@&&&&    @  
   "'&463!2 @4@&Z4@4&        @ 
   #!"&4762 &&4Z4&&4@     @  
  "'&4762&4@4&@&4&      @ 
   "&5462@@4&&44@&&@        
   3!!%!!26#!"&5463!2`m`
^BB^^B@B^
 `@B^^BB^^    @ 
    "'&463!2#!"&4762 @4@&&&&44@4&Z4&&4@         
   "'&463!2 @4@&4@4&        @ 
   #!"&4762 &&4Z4&&4@          :  #!"&5;2>76%6 +".'&$'.5463!2 ^B@B^,9j9Gv33vG9H9+bI\
 A+=66=+A
 [">nSMA_:B^^B1&c*/11/*{'VO3@/$$/@*?Nh^    l   +  !+"&5462!4&#"!/!#>32]_gTRdgdQV?UI*Gg?!2IbbIJaaiwE3300 08        4   #"$'&6?6332>4.#"#!"&54766$32 z䜬m
 IwhQQhbF*@&('kz
@@ -300,11 +306,11 @@ _hQ
 &		(
(\
 
 &		h(
(~ +%'         ! ) 1 9 K   4&"2 4&"26.676&$4&"2 4&"24&"2#!"'&46$ KjKKjKjKKje2.e<^P,bKjKKjKjKKjKjKKj##LlLKjKKjKjKKjK~-M<M(PM<rjKKjKjKKjKujKKjKL           <    6?32$6&#"'#"&'5&6&>7>7&54$ LhяW.{+9E=cQdFK1A
-0)pJ2`[Q?l&٫C58.H(Y'        : d    6?32$64&$ #"'#"&'&4>7>7.546'&'&'# '32$7>54'Yj`a#",5NK
+0)pJ2`[Q?l&٫C58.H(Y'        : d    6?32$64&$ #"'#"&'&4>7>7.546'&'&'# '32$7>54'Yj`a#",5NK
 ~EVZ|$2$
 |:
 $2$|ZV:(t}hfR88T
-h̲X(	
&%(Hw(%&	(XZT\MKG{x   !  #"'.7#"'&7>3!2%632u

+h̲X(	
&%(Hw(%&	(XZT\MKG{x   | !  #"'.7#"'&7>3!2%632u

 j
H{(e9
 1b      U  #!"&546;5!32#!"&546;5!32#!"&546;5463!5#"&5463!2+!232 8((88(` `(88((88(` `(88((88(`L4 `(88(@(88(` 4L`(8 (88(@(88((88(@(88((88(@(84L8(@(88((8L48      O Y  "&546226562#"'.#"#"'.'."#"'.'.#"#"&5476 $32&"5462И&4&NdN!>!
1X:Dx++ww++xD:X1
- U
! *,*&4&hh&&2NN2D&

 ..J<
@@ -326,7 +332,8 @@ A4*[s
 <#5KK5!!5KK5#<
 &ܤ9Gpp&4&&4&@>buោؐ &$KjKnjjKjK$& jjb>Ppp      
  %  !5!#"&5463!!35463!2+32  @\\ 8(@(8 \@@\ \@\  (88(\   @    3  4#"&54"3#!"&5!"&5>547&5462;U gI@L4@Ԗ@4L2RX='8P8'=XR U;Ig04LjjL4*\(88(\    @    "   4&+32!#!"& +#!"&5463!2pP@@P j j@@\@\&0pj	 \\&       - B  +"&5.5462265462265462+"&5#"&5463!2G9L44L9G&4&&4&&4&&4&&4& L44L
 &=d4LL4d=&&`&&&&`&&&&4LL4 
 &         # 3 C S  #!"&5463!2!&'&!"&5!463!2#!"&52#!"&=4632#!"&=463(8((88((`x
 c`(8  @@@`((88(@(8(D9 8( `@@@ @@        / ? O _ o         -=  %+"&=46;25+"&=46;2+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2+"&=46;2!!!5463!2#!"&5463!2
@

@

@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@
 & && &@

@
@

@

@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@
@

@

@

@
  

`&&&& 
       / ? O _ o        %+"&=46;25+"&=46;2+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2%+"&=46;2+"&=46;2%+"&=46;2+"&=46;2!!#!"&=!!5463!24&+"#54&+";26=3;26%#!"&5463!463!2!2
@

@

@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
 
@

@
  8(@(8 
@

@

@

@

@
 & &&@8((8@&@

@
@

@

@

@
@

@
@

@
@

@
@

@
@

@
@

@

@

@
 (88( 

@

``



``
- && & (88(&  @    < c  $4&"2!# 4&"254&+54&+"#";;26=326+"&5!"&5#"&46346?>;463!2KjKKj KjKKj &ԖԖ&&@&&KjKKjK 
-jKKjK .&jjjj&4&@@&&      # ' 1 ? I  54&+54&+"#";;26=326!5!#"&5463!!35463!2+32    \\8(@(8 \  \ \@\  (88(\          :  
#32+53##'53535'575#5#5733#5;2+3@E&&`@@`    `@@`&&E%@`@ @ @		      		@ :#   @      !3!57#"&5'7!7! K5@   @ 5K@@@      # 3  %4&+"!4&+";265!;26#!"&5463!2 && &&&& && w@www&&@&&&&@&&@www        # 3  54&#!4&+"!"3!;265!26#!"&5463!2 &&&&&@&&@& w@www@&@&&&&&&@&:@www    - M3  )  $"'&4762	"'&4762	s
+jKKjK .&jjjj&4&@@&&      # ' 1 ? I  54&+54&+"#";;26=326!5!#"&5463!!35463!2+32    \\8(@(8 \  \ \@\  (88(\          :  
#32+53##'53535'575#5#5733#5;2+3@E&&`@@`    `@@`&&E%@`@ @ @		      		@ 0
+    @      !3!57#"&5'7!7! K5@   @ 5K@@@      # 3  %4&+"!4&+";265!;26#!"&5463!2 && &&&& && w@www&&@&&&&@&&@www        # 3  54&#!4&+"!"3!;265!26#!"&5463!2 &&&&&@&&@& w@www@&@&&&&&&@&:@www    - M3  )  $"'&4762	"'&4762	s
 2
 
 .
@@ -567,7 +574,7 @@ KjKKjKKjKKjKf
 2
 
 .
--@@     -S  $ 9  %"'&4762		/.7>	"/&47	&4?62i2
+-@@     -S  $ 9  %"'&4762		/.7>	"/&47	&4?62i2
 
 .
 
@@ -603,17 +610,16 @@ KjKKjKKjKKjKf
 2
 
 .
-       ;  #"'&476#"'&7'.'#"'&476'
  )'s
"+5+@ա'
  )'F* 4 *Er4M:}}8GO
* 4 *     
+       ;  #"'&476#"'&7'.'#"'&476'
  )'s
"+5+@ա'
  )'F* 4 *Er4M:}}8GO
* 4 *     ~ 
  (  -/'	#"'%#"&7&67%632B;><V??V --C4
-<B=cB5!%%!b 7I))9I7       	#"'.5!".67632y(
+<B=cB5!%%!b 7I))9I7        	#"'.5!".67632y(
 #
  
 ##@,(
 )        8  !	!++"&=!"&5#"&=46;546;2!76232-SSS
 
 		 SS``		
 
-          K  $4&"24&"24&"27"&5467.546267>5.5462 8P88P88P88P8P88P4,DS,4pp4,,4pp4,6d7AL*',4ppP88P8P88P8HP88P8`4Y&+(>EY4PppP4Y4Y4PppP4Y%*<O4Y4Ppp        & A ] i u   	#"'&4762"&5462&#!"&463!2#"'&'7?654'7&#"&'&54?632#!"&463!2"&5462"'&4762 
-
		 
+          K  $4&"24&"24&"27"&5467.546267>5.5462 8P88P88P88P8P88P4,CS,4pp4,,4pp4,6d7AL*',4ppP88P8P88P8HP88P8`4Y&+(>EY4PppP4Y4Y4PppP4Y%*<O4Y4Ppp      
  % @ \ h t   	"'&4762"&5462&#!"&463!2#"'&'7?654'7&#"&'&54?632#!"&463!2"&5462"'&4762 		 
 
 	@USxySR#PT('#TUSxySN@ 		 
 
@@ -623,11 +629,11 @@ KjKKjKKjKKjKf
 3@xSSUO#'(V^'(PVvxSSUi @ 		
 
  		
-     ^     <  +"&=46;2+"&=467>54&#"#"/.7!2<'G,')7N;2]=A+#H


0PRH6^;<T%-S#:/*@Z}
+   `     <  +"&=46;2+"&=467>54&#"#"/.7!2<'G,')7N;2]=A+#H


0PRH6^;<T%-S#:/*@Z}
 

->h         .  %#!"&=46;#"&=463!232#!"&=463!2& &&@@&&&@&& && &&&&&&&&f&&&&   a      #!"&=463!2#!"&'&63!2 & && &' '%@% &&&& && &&    k " G  %#/&'#!53#5!36?!#!'&54>54&#"'6763235	
-Ź}4NZN4;)3.i%Sin1KXL7觧*	#&		*@jC?.>!&1'\%Awc8^;:+<!P        " F  %#/&'#!53#5!36?!#!'&54>54&#"'6763235	
-Ź}4NZN4;)3.i%PlnEcdJ觧*	#&		*-@jC?.>!&1'\%AwcBiC:D'P          %!	#!"&'&6763!2P &: &?&: &?5"K ,)""K ,)      h  #".#""#"&54>54&#"#"'./"'"5327654.54632326732>32YO)I-D%n "h.=T#)#lQTv%.%P_	%	
%_P%.%vUPl#)#T=@/#,-91P+R[Ql#)#|''
+>h         .  %#!"&=46;#"&=463!232#!"&=463!2& &&@@&&&@&& && &&&&&&&&f&&&&   b      #!"&=463!2#!"&'&63!2 & && &' '%@% &&&& && &&    k % J  %#/&'#!53#5!36?!#!'&54>54&#"'6763235
+Ź}4NZN4;)3.i%Sin1KXL7觧*		#&		*@jC?.>!&1'\%Awc8^;:+<!P        % I  %#/&'#!53#5!36?!#!'&54>54&#"'6763235
+Ź}4NZN4;)3.i%PlnEcdJ觧*		#&		*-@jC?.>!&1'\%AwcBiC:D'P           %!	#!"&'&6763!2P &: &?&: &?5"K ,)""K ,)      h  #".#""#"&54>54&#"#"'./"'"5327654.54632326732>32YO)I-D%n "h.=T#)#lQTv%.%P_	%	
%_P%.%vUPl#)#T=@/#,-91P+R[Ql#)#|''
 59%D-I)OY[R+P19-,# #,-91P+R[YO)I-D%95%_P%.%v      ' 3   !2#!"&463!5& =462   =462 &546  &&&& &4&r&4& @&4&&4&G݀&&&&f    
s   C K  &=462	#"'32 =462 !2#!"&463!5&'"/&4762%4632e*&4&i76`al&4& &&&& }n
 
 R
@@ -642,25 +648,23 @@ R
 
 
 R
-z v        "  !676"'.5463!2@@w^Cct~55~tcC&&@?J V|RIIR|V &&           # G  !!%4&+";26%4&+";26%#!"&546;546;2!546;232@@ @@L44LL4^B@B^^B@B^4L   N 4LL4 4L`B^^B``B^^B`L     L   4&"2%#"'%.5!#!"&54675#"#"'.7>7&5462!467%632 &4&&4@ o& &}c ;pG=(
8Ai8^^.&4&&4&`	`fs&& jo/;J!#2
- KAE*,B^^B!`	      -   4&"2#"/&7#"/&767%676$!28P88PQr	@
U	@
+z v        "  !676"'.5463!2@@w^Cct~55~tcC&&@?J V|RIIR|V &&           # G  !!%4&+";26%4&+";26%#!"&546;546;2!546;232@@ @@L44LL4^B@B^^B@B^4L   N 4LL4 4L`B^^B``B^^B`L      L   4&"2%#"'%.5!#!"&54675#"#"'.7>7&5462!467%632 &4&&4@ o& &}c ;pG=(
8Ai8^^.&4&&4&`	`fs&& jo/;J!#2
+ KAE*,B^^B!`	   $   -   4&"2#"/&7#"/&767%676$!28P88PQr	@
U	@
 {`PTP88P8P`
-	@U	@rQ           !6'&+!!!!2Ѥ
8̙e;<*@8 !GGGQII            %764'	64/&"2  $$ f3f4:4^aaf4334f:4:^aa         %64'&"	2  $$ :4f3f4F^aa4f44f^aa         764'&"27	2  $$ f:4:f4334^aaf4:4f3^aa            %64/&"	&"2  $$ -f44f4^aa4f3f4:w^aa   @    7!!/#35%!'!%j/d
jg2|855dc b    @   !	!%!!7!FG)DH:&HdS)         U   4&"2#"/ $'#"'&5463!2#"&=46;5.546232+>7'&763!2&4&&4f
-]wq4qw]	`dC&&:FԖF:&&Cd`4&&4&	]]	`d[}&&"uFjjFu"&&y}[d       #  2#!"&546;4   +"&54&" (88(@(88( r&@&Ԗ 8((88(@(8@&&jj           ' 3   "&462 &         .  > $$  Ԗ>aX,fff^aaԖԖa>TX,,~ffff@^aa          /  +"&=46;2+"&=46;2+"&=46;28((88((8 8((88((8 8((88((8 (88((88((88((88((88((88           /  +"&=46;2+"&=46;2+"&=46;28((88((88((88((88((88((8 (88((88(88((88(88((88        5 E  $4&"2%& '&;26%&.$'&;276#!"&5463!2 KjKKj



f	
+	@U	@rQ           !6'&+!!!!2Ѥ
8̙e;<*@8 !GGGQII            %764'	64/&"2  $$ f3f4:4^aaf4334f:4:^aa         %64'&"	2  $$ :4f3f4F^aa4f44f^aa         764'&"27	2  $$ f:4:f4334^aaf4:4f3^aa            %64/&"	&"2  $$ -f44f4^aa4f3f4:w^aa   @    7!!/#35%!'!%j/d
jg2|855dc b    @   !	!%!!7!FG)DH:&HdS)         U   4&"2#"/ $'#"'&5463!2#"&=46;5.546232+>7'&763!2&4&&4f]wq4qw]	`dC&&:FԖF:&&Cd`4&&4&	]]	`d[}&&"uFjjFu"&&y}[d       #  2#!"&546;4   +"&54&" (88(@(88( r&@&Ԗ 8((88(@(8@&&jj           ' 3   "&462 &         .  > $$  Ԗ>aX,fff^aaԖԖa>TX,,~ffff@^aa          /  +"&=46;2+"&=46;2+"&=46;28((88((8 8((88((8 8((88((8 (88((88((88((88((88((88           /  +"&=46;2+"&=46;2+"&=46;28((88((88((88((88((88((8 (88((88(88((88(88((88        5 E  $4&"2%& '&;26%&.$'&;276#!"&5463!2 KjKKj



f	
 
\

-w@wwwjKKjK"H


ܚ

f
+w@wwwjKKjK"G


ܚ

f
 
 



-	@www             $64'&327/a^  !  ^aaJ@%%	  65   /  	64'&"2	"/64&"'&476227 <ij6j6u%k%~8p8}%%%k%}8p8~%<<ij4j4t%%~8p8~%k%%%}8p8}%k          54&#!"3!26#!"&5463!2 &&&& w@www@&&&&:@www        /  #!"&=463!24&#!"3!26#!"&5463!2@^BB^^B@B^www@w@@2@B^^BB^^ww@w       +#!"'&?63!#"'&762(@	@(@>@%%%        !232"'&76;!"/&76 
($>(
		 J &%       $  %64/&"'&"2#!"&5463!2ff4-4ff4fw@wwwf4f-f4@www         /  #5#5'&76	764/&"%#!"&5463!248`
# \P\w@www4`8

#@  `\P\`@www        )  4&#!"273276#!"&5463!2 & *f4
' w@www`&')4f*@www     % 5  	64'&"3276'7>332#!"&5463!2`'(wa8!
-
-,j.(&w@www`4`*'?_`ze<	bw4/*@www           - .  6  $$     (r^aaO (_^aa     
  -  "'&763!24&#!"3!26#!"&5463!2yB((
@


 w@www]#@## 

@
@www     
  -  #!"'&7624&#!"3!26#!"&5463!2y((@B@u
@


 w@www###@

@
@www     
  -   '&54764&#!"3!26#!"&5463!2@@####@ w@wwwB((@@www      `  %#" '#"&=46;&7#"&=46;6 32/.#"!2#!!2#!32>?6#
!"'?_

BCbCaf\	+
~2	
+	@www             $64'&327/a^  !  ^aaJ@%%	  65   /  	64'&"2	"/64&"'&476227 <ij6j6u%k%~8p8}%%%k%}8p8~%<<ij4j4t%%~8p8~%k%%%}8p8}%k          54&#!"3!26#!"&5463!2 &&&& w@www@&&&&:@www        /  #!"&=463!24&#!"3!26#!"&5463!2@^BB^^B@B^www@w@@2@B^^BB^^ww@w        +#!"'&?63!#"'&762(@	@(@>@%%%         !232"'&76;!"/&76 
($>(
		 J &%       $  %64/&"'&"2#!"&5463!2ff4-4ff4fw@wwwf4f-f4@www         /  #5#5'&76	764/&"%#!"&5463!248`
# \P\w@www4`8

#@  `\P\`@www        )  4&#!"273276#!"&5463!2 & *f4
' w@www`&')4f*@www     % 5  	64'&"3276'7>332#!"&5463!2`'(wa8!
+,j.(&w@www`4`*'?_`ze<	bw4/*@www           - .  6  $$     (r^aaO (_^aa     
  -  "'&763!24&#!"3!26#!"&5463!2yB((
@


 w@www]#@## 

@
@www     
  -  #!"'&7624&#!"3!26#!"&5463!2y((@B@u
@


 w@www###@

@
@www     
  -   '&54764&#!"3!26#!"&5463!2@@####@ w@wwwB((@@www      `  %#" '#"&=46;&7#"&=46;6 32/.#"!2#!!2#!32>?6#
!"'?_

BCbCaf\	+
~2	
 
 	}0$


q
90r 


pr%Dpu       ?  #!"&=46;#"&=46;54632'.#"!2#!!546;2D
a__	g	

 *`-Uh1



߫}
-	$^L

    %   b  +"&=.'&?676032654.'.5467546;2'.#"ǟ
B{PDg	q%%Q{%P46'-N/B).ĝ
9kC<Q
7>W*_x*%K./58`7E%_
	,-3
+	$^L

    4   b  +"&=.'&?676032654.'.5467546;2'.#"ǟ
B{PDg	q%%Q{%P46'-N/B).ĝ
9kC<Q
7>W*_x*%K./58`7E%_
	,-3
 cVO2")#,)9;J)
"!*
 #VD,'#/&>AX      >  ++"' '&=46;267!"&=463!&+"&=463!2+32Ԫ$
-		
pU9ӑ
@/*fo	

VRfq
f=S    E  !#"&5!"&=463!5!"&=46;&76;2>76;232#!!2#![


 


+		
pU9ӑ
@/*fo	

VRfq
f=S     E  !#"&5!"&=463!5!"&=46;&76;2>76;232#!!2#![


 


 
 %
 )
@@ -669,67 +673,80 @@ R
 Zga~bm]
 
 [o"U+, @h
-h@@X
hh
@   8  3 H \  #5"'#"&+73273&#&+5275363534."#22>4.#2>ut
3NtRP*Ho2
+h@@X
hh
@   8  3 H \  #5"'#"&+73273&#&+5275363534."#22>4.#2>ut
3NtRP*Ho2
 
Lo@!R(Ozh=,G<X2O:&D1A.1G$<2I+A;"B,;&$LGlF/ 3D;a$8$".!3!
-.          3!#!"&5463! 8( 8((88(  h (8(88(@(8         ( 8 H  !!#!"&5463!54&#!"3!2654&#!"3!2654&#!"3!26(D 8((88( 8@@@$(88(@(8(8 @@@@@@    }  
+.          3!#!"&5463! 8( 8((88(  h (8(88(@(8         ( 8 H  !!#!"&5463!54&#!"3!2654&#!"3!2654&#!"3!26(D 8((88( 8@@@$(88(@(8(8 @@@@@@   " }  
  $ B R  3/&5##"'&76;46;232!56?5"#+#5!76;5!53'#3!533H
 
-
Dq		x7	K//KFh/"		@`Z		sYwjjjjj      }  
+
Dq		x7	K//KFh/"		@`Z		sYwjjjjj     " }  
  $ 4 R  %3/&5##"'&76;46;232!53'#3!533!56?5"#+#5!76;5H
 
 
K//KFq		x7	h/"		@`jjjjjZ		sY
-w       ) 9 I Y  %#"'&76;46;232#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2
+w  "     ) 9 I Y  %#"'&76;46;232#!"&=463!2#!"&=463!2#!"&=463!2#!"&=463!2
 
-
 @@  `		@`          ) 9 I Y  #!"&=463!2%#"'&76;46;232#!"&=463!2#!"&=463!2#!"&=463!2   
+
 @@  `		@`     "     ) 9 I Y  #!"&=463!2%#"'&76;46;232#!"&=463!2#!"&=463!2#!"&=463!2   
 
-
@@ r		@`r       
+
@@ r		@`r    "   
  $ C V  %4&#"326#"'&76;46;232%#"'&'73267##"&54632!5346=#'73BX;4>ID2F
 
-
8PuE>.'%&TeQ,jm{+>R{?jJrL6V		@`7>wmR1q
uWei/rr
:Vr        
+
8PuE>.'%&TeQ,jm{+>R{?jJrL6V		@`7>wmR1q
uWei/rr
:Vr     "   
  $ 7 V  4&#"326#"'&76;46;232!5346=#'73#"'&'73267##"&54632BX;4>ID2F
 
 
+>R{8PuE>.'%&TeQ,jm{?jJrL6		@`rr
:Vr3>wmR1q
uWei    @   \  %4&#"326#!"&5463!2+".'&'.5467>767>7>7632!2 &%%&&&& &7.'	:@$LBWM{#&$h1D!		.I/!	Nr&&%%&&&&V?, L=8=9%pEL+%%r@W!<%*',<2(<&L,"r       @    \  #"&546324&#!"3!26%#!#"'.'.'&'.'.546767>; &%%&&&& &i7qN	!/I.		!D1h$&#{MWBL$@:	'.&&%%&&&&=XNr%(M&<(2<,'*%<!W@r%%+LEp%9=8=L       	   + = \ d       %54#"327354"%###5#5#"'&53327#"'#3632#"'&=4762#3274645"=424'.'&!  7>76#'#3%54'&#"32763##"'&5#327#!"&5463!2BBPJNC'%!	B?)#!CC $)54f"@@
 B+,A
 
 A+&+A
-
ZK35N #J!1331CCC $)w@www2"33FYF~(-&"o4*)$(*	(&;;&&:LA38334S,;;,WT+<<+T;(\g7x:&&::&&<r%-@www       	   + = [ c }     #"'632#542%35!33!3##"'&5#327%54'&#"5#353276%5##"=354'&#"32767654"2 '.'&547>76 3#&'&'3#"'&=47632%#5#"'&53327''RZZ:kid YYY.06	62+YY-06	R[!.'CD''EH$VVX::Y
X;:Y
fyd/%jG%EC&&CE%O[52.
[$C-D..D^^* ly1%=^I86i077S
3
-$EWgO%33%OO%35	EEFWt;PP;pt;PP;pqJgTFQ%33&PP%33%R
7>%3!+}    '  +"&72'&76;2+"'66;2U
+
ZK35N #J!1331CCC $)w@www2"33FYF~(-%"o4*)$(*	(&;;&&9LA38334S,;;,WT+<<+T;(\g7x:&&::&&<r%-@www       	   + = [ c }     #"'632#542%35!33!3##"'&5#327%54'&#"5#353276%5##"=354'&#"32767654"2 '.'&547>76 3#&'&'3#"'&=47632%#5#"'&53327''RZZ:kid YYY.06	62+YY-06	R[!.'CD''EH$VVX::Y
X;:Y
fyd/%jG&DC&&CD&O[52.
[$C-D..D^^* ly1%=^I86i077S
3
+$EWgO%33%OO%35	EEFWt;PP;pt;PP;pqJgTFQ%33&PP%33%R
7>%3!+}   {  '  +"&72'&76;2+"'66;2U
 &
 	(P
 
-*'eJ."-dZ-n -         ' 7  4'&+";27&+";276'56#!"&5463!2~}		7e 	۩w@www"
$Q#'!#
@www            /   4'&327$ '.'.4>7>76   "!! jG~GkjGGk[J@&&
-@lAIddIAllAIddIA   @       	'5557	,VWQV.RW=?l%l`~0    ~        #  %5!'#3!
%%	%=#y
?R'UaM|qByy[C#jXAAҷhUHG       / ?  %##" 547#3!26 4&#"3254&+";267#!"&5463!2R܂#-$䵀((((tQQttQvQtn?D~|D?x##))((QttQvQtt         2#!"&5463 4&"2$4&"2ww@ww||||||w@www|||||||       	   !3	37!  $$  n6^55^h
-^aaM1^aa    O 
+*'eJ."-dZ-n -         ' 7  4'&+";27&+";276'56#!"&5463!2~}		7e 	۩w@www"
$Q#'!#
@www       
+   I  -22#!&$/.'.'.'=&7>?>369II ! '	$ !01$$%A'	$ ! g	
+\7@)(7Y
+	
+ \7@)(7Y
+   @       	'5557	,VWQV.RW=?l%l`~0            !#!#%777	5!	R!!XCCfff݀# `,{{{`          O g   4&"2  &6 $"&462$"&62>7>7>&46.'.'.  '.'&7>76  Ԗ HR6L66LGHyU2LL2UyHHyU2LL2UyHn
+X6X
+
+XX
+ԖԖH6L66L6L2UyHHyU2LL2UyHHyU2Ln6X
+
+XX
+
+           2#!"&5463 4&"2$4&"2ww@ww||||||w@www|||||||       	   !3	37!  $$  n6^55^h
+^aaM1^aa    P 
   * C g  '.676.7>.'$7>&'.'&'? 7%&'.'.'>767$/u5'&$I7ob?K\[zH,1+.@\7<?5\V
,$Vg.GR@ 7U,+!
	#	"8$}{)<?L RR;kr,yE[z#	/1
-"#	#eCI0/"5#`	"84~&p)4	2{H-.%W.L>       ' : Y i  4&67&'&676'.'>7646&' '7>6'&'&7>7#!"&5463!2PR$++'TJXj7-FC',,&C
."!$28h/"	+p^&+3$
i0(w@www+.i6=Bn\C1XR:#"'jj8Q.cAj57!?"0D$4"P[
&2@www     D~   "  %.5#5>7>;!!76PYhpN!HrD0M
 C0N#>8\xx: W]oW-X45       /  %'#.5!5!#"37>#!"&5463!2p>,;$4
+"#	#eCI0/"5#`	"84~&p)4	2{H-.%W.L>       ' : Y i  4&67&'&676'.'>7646&' '7>6'&'&7>7#!"&5463!2PR$++'TJXj7-FC',,&C
."!$28h/"	+p^&+3$
i0(w@www+.i6=Bn\C1XR:#"'jj8Q.cAj57!?"0D$4"P[
&2@www     D   "  %.5#5>7>;!!76PYhpN!HrD0M
 C0N#>8\xx: W]oW-X45       /  %'#.5!5!#"37>#!"&5463!2p>,;$4
  5eD+WcEw@wwwK()F
-,VhV^9tjA0/@www @     #"'&76;46;23
+,VhV^9tjA0/@www  @     #"'&76;46;23
 

 
	 &
 
-        ++"&5#"&7632	
^
+         ++"&5#"&7632	
^
 

 c
 &
 
-     @     #!'&5476!2  &
+     @    #!'&5476!2  &
 
 
^
 

-b	         '&=!"&=463!546
+b	        '&=!"&=463!546
  &
 
 	
-     q  & 8  #"'&#"#"5476323276326767q'T1[VA=QQ3qpHih"-bfGw^44O#A?66%CKJA}}  !"䒐""A$@C3^q|z=KK?6lk)           %!%!VVuuu^-m5w}n          7 M [   264&"264&"2"&546+"&=##"&5'#"&5!467'&766276#"&54632    *<;V<<O@-K<V<<+*<J.@kclG
H__H
<+*<<*+<    <*R+<<+*<f.@+<<++<<+@.7uu7
**
R+<<++;; 	    "$1G  #5472&6&67><&4'>&4.'.'.'.'.'&6&'.'.6767645.'#.'6&'&7676"&'&627>76'&7>'&'&'&'&766'.7>7676>76&6763>6&'&232.'.6'4.?4.'&#>7626'.'&#"'.'.'&676.67>7>5'&7>.'&'&'&7>7>767&'&67636'.'&67>7>.'.67	\
-U7	
+     q  & 8  #"'&#"#"5476323276326767q'T1[VA=QQ3qqHih"-bfGw^44O#A?66%CKJA}}  !"䒐""A$@C3^q|z=KK?6lk)           %!%!VVuuu^-m5w}n      ~    7 M [   264&"264&"2"&546+"&=##"&5'#"&5!467'&766276#"&54632    *<;V<<O@-K<V<<+*<J.@kclG
H__H
<+*<<*+<    <*R+<<+*<f.@+<<++<<+@.7uu7
**
R+<<++;; 	      "%3I  #5472&6&67><&4'>&4.'.'.'.'.'&6&'.'.6767645.'#.'6&'&7676"&'&627>76'&7>'&'&'&'&766'.7>7676>76&6763>6&'&232.'.6'4."7674.'&#>7626'.'&#"'.'.'&676.67>7>5'&7>.'&'&'&7>7>767&'&67636'.'&67>7>.'.67	\
+
+	U7	
 J#!W!'	

"';%
 
k	)"	
 	'

 
 /7* 		I	,6
-*&"!

O6*
O $.(	*.'

+*&"!

O6*
O $.(	*.'

 .x,	$CN	
 		*	
-8
		
+6
		
 7%&&_f&
 ",VL,G$3@@$+
 "
@@ -738,15 +755,14 @@ J#!W!'	

"';%
 V5 3"	
""#dA++
 y0D-%&n4P'A5j$9E#"c7Y
 6"	&
-8Z(;=I50' !!e
R
-
+8Z(;=I50' !!e
R
 
-"+0n?t(-z.'<>R$A"24B@(	~	9B9,	*$		
		<>	?0D9f?Ae 	.(;1.D	4H&.Ct iY% *	
-7



J	 <
W0%$	
-""I!
*D	 ,4A'4J"	.0f6D4pZ{+*D_wqi;W1G("%%T7F}AG!1#% JG3         ' . 2 > V b  %&#'32&'!>?>'&' &>"6&#">&'>26 $$  *b6~#= XP2{&%gx| .W)oOLOsEzG<	CK}E	$MFD<5+
-z^aa$MWM1>]|YY^D
եA<KmE6<"@9I5*^aa       > ^  4./.543232654.#"#".#"32>#"'#"$&547&54632632':XM1h*+D($,/9p`DoC&JV<Z PA3Q1*223IoBkែhMIoPែhMIoP2S6,M!"@-7Y.?oI=[<%$('3 -- <-\%FuPoIMhPoIMh    ,}  # ? D  76&#!"7>;267676&#!"&=463!267
+"+0n?t(-z.'<>R$A"24B@(	~	9B9,	*$		
		<>	?0D9f?Ae 	.(;1.D	4H&.Ct iY% *	
+7



J	 <
W0%$	
+""I!
*D	 ,4A'4J"	.0f6D4pZ{+*D_wqi;W1G("%%T7F}AG!1#% JG3        ' . 2 > V b  %&#'32&'!>?>'&' &>"6&#">&'>26 $$  *b6~#= XP2{&%gx| .W)oOLOsEzG<	CK}E	$MFD<5+
+z^aa$MWM1>]|YY^D
եA<KmE6<"@9I5*^aa       > ^  4./.543232654.#"#".#"32>#"'#"$&547&54632632':XM1h*+D($,/9p`DoC&JV<Z PA3Q1*223IoBkែhMIoPែhMIoP2S6,M!"@-7Y.?oI=[<%$('3 -- <-\%FuPoIMhPoIMh    ,  # ? D  76&#!"7>;267676&#!"&=463!267
 #!"'&5463!26%8#!
&&Z"M>2!
	^I7LRx_@>MN""`=&&*%I},
-		L7_jj9          /  %4&#!"3!264&#!"3!26#!"&5463!2  &&&&  &&&&         1 9  #"'#++"&5#"&5475##"&54763!2 "&462 8(3-	&B..B&	-3(8 IggI `(8+Ue&.BB.&+8(kk`      % -  "&5#"&5#"&5#"&5463!2 "&462 8P8@B\B@B\B@8P8pPPp@`(88(`p.BB.0.BB.(88(Pppͺ      !  %>&'&#"'.$ $$ ^/(V=$<;$=V).X^aaJ`"(("`J^aa    '   I   4."2>%'%"/'&5%&'&?'&767%476762%6[՛[[՛o
ܴ
+		L7_jj9          /  %4&#!"3!264&#!"3!26#!"&5463!2  &&&&  &&&&         1 9  #"'#++"&5#"&5475##"&54763!2 "&462 8(3-	&B..B&	-3(8 IggI `(8+Ue&.BB.&+8(kk`      % -  "&5#"&5#"&5#"&5463!2 "&462 8P8@B\B@B\B@8P8pPPp@`(88(`p.BB.0.BB.(88(Pppͺ      !  %>&'&#"'.$ $$ ^/(V=$<;$=V).X^aaJ`"(("`J^aa    ,   I   4."2>%'%"/'&5%&'&?'&767%476762%6[՛[[՛o
ܴ
  
 
		$
$	"	$
$		՛[[՛[[5`
 
@@ -756,25 +772,25 @@ z
 
 ^^
 
-`
     1  %#"$54732$%#"$&546$76327668ʴhf킐&^zs,!V[vn)	6<ׂf{z}))Ns3(  @   +   4&#!"3!2#!"&5463!2#!"&5463!2@& && f&&&&@& && &4&&4& @&&&& && &&    ` B H   +"/##"./#"'.?&5#"&46;'&462!76232!46 `&C6@Bb03eI;:&&&4L4&F
-Z4&w4) ''
5r&4&&4&&4   I   3#&/.#./.'&4?63%27>'./&'&7676>767>?>%6})N@2*& @P9A
+`
     1  %#"$54732$%#"$&546$76327668ʴhf킐&^zs,!V[vn)	6<ׂf{z}))Ns3(  @   +   4&#!"3!2#!"&5463!2#!"&5463!2@& && f&&&&@& && &4&&4& @&&&& && &&    ` B H   +"/##"./#"'.?&5#"&46;'&462!76232!46 `&C6@Bb03eI;:&&&4L4&F
+Z4&w4) ''
5r&4&&4&&4    }G   #&/.#./.'&4?63%27>'./&'&7676>767>?>%6})(."2*& @P9A
 #sGq]
 #lh<*46+(
	
-<
5R5"*>%</
- '2@ 5d)(=Z&VE/#E+)AC
+<
5R5"*>%</
+ '2@ 53*9*,Z&VE/#E+)AC
 (	2k<X1$:hI(B
"	!:4Y&>"/	+[>hy
-	    e 
+	   K 
   ! / U i   %6&'&676&'&6'.7>%.$76$% $.5476$6?62'.76&&'&676%.76&'..676#"NDQt	
-okQ//jo_		%&JՂYJA-.--
 9\DtT+X?*<UW3'	26$>>W0{"F!"E 

^f`$"_]\<`F`FDh>CwlsJ@;=?s
:i_^{8+?`
)
O`s2RDE58/K       r 	    #"'>7&4$&5mī"#̵$5$"^^W=acE*c      z  k  ./ "&4636$7.'>67.'>65.67>&/>z X^hc^O<q+f$H^XbVS!rȇr?5GD_RV@-FbV=3!G84&3Im<$/6X_D'=NUTL;2KPwtPt= 
 
-&ռ
,J~S/#NL,8JsF);??1zIEJpqDIPZXSF6[?5:NR=;.&1          +!"&=!!%!5463!2sQ9Qs***sQNQsBUw
wUBF H CCTww      % 1   #"&=!"&=463!54632.  6  $$ 		


`?(r^aa		



+&ռ
,J~S/#NL,8JsF);??1zIEJpqDIPZXSF6\?5:NR=;.&1          +!"&=!!%!5463!2sQ9Qs***sQNQsBUw
wUBF H CCTww      % 1   #"&=!"&=463!54632.  6  $$ 		


`?(r^aa		



 (_^aa         % 1  #!#"'&47632!2.  6  $$ 
		@	
`
(r^aa

-?		@	
(_^aa        /  #"'&476324&#!"3!26#!"&5463!2 &@& 
@


 w@www&@B@&

@
@www          "&462  >& $$  Ԗ*(r^aaԖԖ (^aa       ]  6  #"$547 32>%#"'!"&'&7>32'!!!2f:лѪz~u: 
((%`V6B^hD%i(]̳ޛ	*>6߅r#!3?^BEa߀#9       # 3  6'&632#"'&'&63232#!"&5463!2
+?		@	
(_^aa        /  #"'&476324&#!"3!26#!"&5463!2 &@& 
@


 w@www&@B@&

@
@www          "&462  >& $$  Ԗ*(r^aaԖԖ (^aa       ]  6  #"$547 32>%#"'!"&'&7>32'!!!2f:лѪz~u: 
((%`V6B^hD%i(]̳ޛ	*>6߅r#!3?^BEa߀#9       # 3  6'&632#"'&'&63232#!"&5463!2
 Q,&U#+'
 ;il4L92<D`w@www`9ܩ6ɽ]`C477&@www       D  +"&5#"'&=4?5#"'&=4?546;2%6%66 546;2
 	

 	
wwwwcB
 G]B
-Gty]ty
      # 3 C  #!+"&5!"&=463!46;2!24&#!"3!26#!"&5463!2@`@`^BB^^B@B^www@w@`@`2@B^^BB^^ww@w        ' / ? P  +5#"&547.467&546;532!764'!"+32#323!&ln@
:MM:
@nY*Yz--zY*55QDDU9pY-`]]`.X /2I$	t@@/!!/@@3,$,3$p$00&*0&&
!P@     R V  2#"&/#"&/#"&546?#"&546?'&54632%'&54632763276%>S]8T;/M77T</L7=Q7,i<R7,5T</L666U;/M5<U<,i6iQ=a!;;V6-j;V6-5	P=/L596Q</L5<U6-i;V7,7O;-I68i;k         ) I  2#!"&5463#9"'.'.'3!264&#!"2>7%>ww@ww!"5bBBb./*
+Gty]ty
      # 3 C  #!+"&5!"&=463!46;2!24&#!"3!26#!"&5463!2@`@`^BB^^B@B^www@w@`@`2@B^^BB^^ww@w        ' / ? P  +5#"&547.467&546;532!764'!"+32#323!&ln@
:MM:
@nY*Yz--zY*55QDDU9pY-`]]`.X /2I$	t@@/!!/@@3,$,3$p$00&*0&&
!P@     R V  2#"&/#"&/#"&546?#"&546?'&54632%'&54632763276%>S]8T;/M77T</L7=Q7,i<R7,5T</L666U;/M5<U<,i6iQ=a!;;V6-j;V6-5	P=/L596Q</L5<U6-i;V7,7O;-I68i;k         ) I  2#!"&5463#9"'.'.'3!264&#!"2>7%>ww@ww!"5bBBb//*
 8(@(87)(8=%/'#?w@www#~$EE y &L(88e):8(%O r		
 
 		O           ? G Q a q  47&67>&&'&67>&"&#6$32#"#"'654   $&6  $6&$ CoL.*KPx.* 
@@ -784,8 +800,8 @@ iSƓi
 j`Q7$ky, Rfk*4LlL=Z=刈           &$&546$7%7&'5>]5%w  &P?zrSF!|         & 0  	##!"&5#5!3!3!3!32!546;2!5463)
 )     ;));;)) &&        &@@&&&    	  
 6   $&727 "'%+"'&7&54767%&4762֬>4Pt+8?::
 		
-::AW``EvEEvE<."e$IE&O&EI&{h.`  m  "  &#"& '327>73271[
>+)@
(]:2+D?*%Zx/658:@#N
-C=E(oE=W'c:   o   0 a  %4.'&#"32>4.#"32676!##"&'&54676%.547#"&5467>'9C!5goS6/Kce3:k[7u">j@*Q.+=Y4%Q5pKL1FE1@Z[@1G렄:$YJ .H?L0$/.0$8];8\;)4^;}R'!;e.ggR4!8HX?ZHsG;@"$ECPN[RzsS`;HQ.R)A)(-R6B@            " N ^   '&76232762$"&5462"&46274&"&'264&#"'&&#"32$54'>$ $&6$ G>>0yx14J55J5J44J5Fd$?4J55%6E#42F%$fLlLq>>11J44%&4Z%44J54R1F$Z-%45J521Z%F1#:ʎ 9LlL          # Q a  "'&7622762%"&5462"&546274&#"&'73264&#"'&&#"32654'>#!"&5463!2

55

**.>.-@-R.>.-@-<+*q6- -- 0<o,+< 3w@www

55

**.. -- .. --G*<N' ,-@-+*M <*2
zz
1@www      0 <  754&""&=#326546325##"&='26  $$ bZtt&sRQsZ<tsQ^aa>OpoOxzRrqP6z~{{Prr^aa    ]  0  54&"#"&5!2654632!#"&57265&<T<H<T<H<T<8v*<<*
+::AW``EvEEvE<."e$IE&O&EI&{h.`  m  "  &#"& '327>73271[
>+)@
(]:2,C?*%Zx/658:@#N
+C=E(oE=W'c:     #  !#"$&6$3 &#"32>7! ڝyy,{ۀہW^F!LC=y:yw߂0H\R%          " N ^   '&76232762$"&5462"&46274&"&'264&#"'&&#"32$54'>$ $&6$ G>>0yx14J55J5J44J5Fd$?4J55%6E#42F%$fLlLq>>11J44%&4Z%44J54R1F$Z-%45J521Z%F1#:ʎ 9LlL          # Q a  "'&7622762%"&5462"&546274&#"&'73264&#"'&&#"32654'>#!"&5463!2

55

**.>.-@-R.>.-@-<+*q6- -- 0<o,+< 3w@www

55

**.. -- .. --G*<N' ,-@-+*M <*2
zz
1@www      0 <  754&""&=#326546325##"&='26  $$ bZtt&sRQsZ<tsQ^aa>OpoOxzRrqP6z~{{Prr^aa    ]  0  54&"#"&5!2654632!#"&57265&<T<H<T<H<T<8v*<<*
 +;;+l:=:*;;*      
   %!!"!!26#!"&5463!2@ ]]@w@www] @@www         	 
    % )  3!!#335!!5!5!%#!!5!5!%#HH{RHH{GG{)qGRRqRRq     	  # 0 @   #"'632 #"'632 &#"7532&#"#7532#!"&5463!2L5+*5L5+*5~}7W|3B}}JC7=}w@wwwDZQ[1N:_)i$)@www   
  )	             6.#&#"'&547>'&#".'&'#"&5467%&4>7>3263232654.547'654'63277.'.*#">7?67>?>32#"'7'>3'>3235?KcgA+![<E0y$,<'.cI
 	,# '!;7$=ep	//7/
@@ -808,19 +824,19 @@ D+R>,7*
 %:/d
 B	4@}
&!0$?Jfdf-.=6(:!TO?
 !IG_U%
-.
j+.=;	5gN_X	"
+.
k*.=;	5gN_X	"
 ##
-292Q41
*6nA;|
BSN.	%1$
6	#nk^        ' 7 G W g w       2+"&5463#!"&5463!254&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";26#"&=! B^^BB^^B:FjB^8((`(   `(8^BB^^B@B^"vE j^B (8(`( 8(         / ? O _ o         /?  2#!"&5463;26=4&+";26=4&+";26=4&+";26=4&+"54&+";2654&+";2654&+";2654&+";2654&+";2654&#!"3!2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";26@&& &&@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@ &&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @`  %  	"&5#"&5&462!762$"&462B\B@B\B8PpP8.BB..BB.8$P88P広        3 C Q  #".54>32#".546322#"&#"#"54>%".54>32%2#"&54>&X=L|<&X=M{<TMLFTMLFv"?B+D?BJpH=X&<{M=X&<|dMTFLMTF(<kNsI<kNsPvoJPwo/s.=ZYVӮvNk<JsNk<IshwPJovPJo  @     +"&7.54>2r_-$$-_rUU%&&5%ő            '-
"'.546762@FF$@B@$.&,&.]]|q #<<# (B  B               B  %'-%'-'%'-"'%&'"'%.5467%467%62@ll@ll,@GG&!@@@@@@!&+#+#6#+$*`:p:px
+292Q41
*6nA;|
BSN.	%1$
6	$nk^        ' 7 G W g w       2+"&5463#!"&5463!254&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";26#"&=! B^^BB^^B:FjB^8((`(   `(8^BB^^B@B^"vE j^B (8(`( 8(         / ? O _ o         /?  2#!"&5463;26=4&+";26=4&+";26=4&+";26=4&+"54&+";2654&+";2654&+";2654&+";2654&+";2654&#!"3!2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";2654&+";26@&& &&@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@ &&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @`  '  	"&5#"&5&4762!762$"&462B\B@B\BOpP.BB..BB.8$PO広      3 C Q  #".54>32#".546322#"&#"#"54>%".54>32%2#"&54>&X=L|<&X=M{<TMLFTMLFv"?B+D?BJpH=X&<{M=X&<|dMTFLMTF(<kNsI<kNsPvoJPwo/s.=ZYVӮvNk<JsNk<IshwPJovPJo  @     +"&7.54>2r_-$$-_rUU%&&5%ő            '-
"'.546762@FF$@B@$.&,&.]]|q #<<# (B  B               B  %'-%'-'%'-"'%&'"'%.5467%467%62@ll@ll,@GG&!@@@@@@!&+#+#6#+$*`:p:px
 p=`$>>$&@&@
 
 @&p@       	  & . A  !!"!&2673!"54 32!%!254#!5!2654#!%!2#!8Zp?vdΊens6(N[RWu?rt1SrF|iZ@7މoy2IMC~[R yK{T:         % , A G K  2#!"&5463!!2654'654.#532#532"&5!654&#"327#2#>!!ww@ww~uk'JTMwa|
 DH>I1qFj?w@wwwsq*4p9O*¸Z^qh LE
 "(nz8B
 M         ' ?   "&462 4&#"'.'324&#"3267 ##"&/6326 32 .ʏhhMALR vGhг~~KyO^
ʏʏВ*LM@!<I~~t\0          C M   4&"2 #"&'676&/632#!"&=3267%2654&#"&#"%463!2"&4632rqqtR8^4.<x3=RRw@w_h
-YӖ	K>שwwȍde)qrOPqȦs:03=<x!m@wwE\xgӕє%wwdȎ  V 
  - < K \  %.'.>7'.?67'67%'>&%'7%7./6D\$>	"N,?a0#O1G9'/P(1#00
($=!F"9|]"RE<6'o9%8J$\:\HiTe<?}V#oj?d,6%N#"
+YӖ	K>שwwȍde)qrOPqȦs:03=<x!m@wwE\xgӕє%wwdȎ  V 
  - < K \  %.'.>7'.?67'67%'>&%'7%7./6D\$>	"N,?a0#O1G9'/P(1#00
($=!F"9|]"RE<6'o9%8J$\:\HiTe<?}V#oj?d,6%N#"
 HlSVY]C

=    @     C   4&"2!.#!" 4&"2+"&=!"&=#"&546;>3!232^^^Y	 	^^^`pp pp`]ib bi]~^^^e^^^ PppPPppP]^^]       3 ; E M  2+"&=!"&=#"&546;>;5463!232 264&"!.#!" 264&" ]`pp pp`]ibbi^^^dY	 	!^^^]@PppP@@PppP@]^^] ^^^e^^^      3  $#!#!"&5467!"&47#"&47#"&4762++&2
 $$
-2&&&4&&Z4&&##&&4&4&44&m4&m      + D P  4'&#"32763232674'&!"32763 3264'&$#"32763232> $$ g* o`#ə0#z#l(~̠)-g+^aaF s"	+g(*
3#!|
#/IK/%*%D=)[^aa        	!!!'!!77! ,/,-a/G      	 t  % / ; < H T b c q         %7.#"32%74'&"32765"/7627#"5'7432#"/7632#"5'7432#"&5'74632	#"/6327#"/6327#"/46321"&/462"&/>21"&/567632#!.547632 632
+2&&&4&&Z4&&##&&4&4&44&m4&m      + D P  4'&#"32763232674'&!"32763 3264'&$#"32763232> $$ g* o`#ə0#z#l(~̠)-g+^aaF s"	+g(*
3#!|
#/IK/%*%D=)[^aa        	!!!'!!77! ,/,-a/G      	 t  % / ; < H T b c q         %7.#"32%74'&"32765"/7627#"5'7432#"/7632#"5'7432#"&5'74632	#"/6327#"/6327#"/46329"&/462"&/>21"&/567632#!.547632 632
 	
	*


 			X		
 
@@ -834,11 +850,11 @@ $
 	
l~		~	F	
 	2


		m|O, 	


 

ru|	u

-"          
  ) 9    $7 $&=  $7 $&=  $7 $&=   $&=46w`ww`ww`wb` VTEvEEvETVTEvEEvET*VTEvEEvET*EvEEvEEvEEv         # ^ c u    #!"&5463!2!&'&!"&5!632#"&'#"/&'&7>766767.76;267674767&54&5&'67.'&'&#3274(8((88((`x
+"         
  ) 9    $7 $&=  $7 $&=  $7 $&=   $&=46w`ww`ww`wb` VTEvEEvETVTEvEEvET*VTEvEEvET*EvEEvEEvEEv         # ^ c t    #!"&5463!2!&'&!"&5!632#"&'#"/&'&7>766767.76;267674767&5&5&'67.'&'&#3274(8((88((`x
 c`(8 !3;:A0?ݫY

 	^U	47D$

	74U3I
|L38wtL0`((88(@(8(D9 8( Q1&(!;
-(g-	Up~R2(/{E(Xz*Z%(i6CmVo8          # Q  #!"&5463!2!&'&!"&5!3367653335!3#'.'##'&'35(8((88((`x
-c`(8 iFFZcrcZ`((88(@(8(D9 8( kk"	kkJ 	!	k         # S  #!"&5463!2!&'&!"&5!%!5#7>;#!5#35!3#&'&/35!3(8((88((`x
+(g-	Up~R2(/{E(Xz*Z%(i6CmVo8            # T  #!"&5463!2!&'&!"&5!3367653335!3#4.5.'##'&'35(8((88((`x
+c`(8 iFFZcrcZ`((88(@(8(D9 8( kk"	kkJ	 	!	k          # S  #!"&5463!2!&'&!"&5!%!5#7>;#!5#35!3#&'&/35!3(8((88((`x
 c`(8 -Kg
 kL#DCJgjLD`((88(@(8(D9 8( jj	jjkkkk            # 8 C  #!"&5463!2!&'&!"&5!%!5#5327>54&'&#!3#32(8((88((`x
 c`(8  G]L*COJ?0R\wx48>`((88(@(8(D9 8( jjRQxk!RY            # * 2  #!"&5463!2!&'&!"&5!!57"&462(8((88((`x
@@ -849,11 +865,10 @@ $
 Z
 	           # 7 K [  #!"&5463!2!&'&!"&5!>&'&7!/.?'&6?6.7>'(8((88((`x
 c`(8 `3333v

?

`((88(@(8(D9 8( &&-&&
?

-

  'j  6  #'.
+

  '  6  #'.
 '!67&54632".'654&#"32eaAɢ/PRAids`WXyzOvд:C;A:25@Ң>-05rn`H(' gQWZc[          
-     -  %7'	%'-'%	%"'&54762[3[MN
3",""3,3"ong$߆]gn$+)

")")"

         x # Z  #"&#!+.5467&546326$32327.'#"&5463232654&#"632#".#"oGn\u_MK'̨|g?CM7MM5,QAAIQqAy{b&
-BL4PJ9+OABIRo?z.z
-n6'+s:zcIAC65D*DRRD*wya$,@B39E*DRRD*             ' / 7     $&6$ 6277&47'  7'"' 6& 6'lLRRZB|RR>dZZ LlLZRR«Z&>«|R      !   $&54$7  >54 ' _ff_L-ff`-     
   c  6721>?>././76&/7>?>?>./&31#"$&(@8!IH2hM>'

+     -  %7'	%'-'%	%"'&54762[3[MN
3",""3,3"ong$߆]gn$+)

")")"

         x # W  #"&#!+.5467&546326$32327.'#"&5463232654&#"632#".#"oGn\u_MK'̨|g?CM7MM5,QAAIQqAy{b]BL4PJ9+OABIRo?z.z
+n6'+s:zcIAC65D*DRRD*wyal@B39E*DRRD*             ' / 7     $&6$ 6277&47'  7'"' 6& 6'lLRRZB|RR>dZZ LlLZRR«Z&>«|R     !   $&54$7  >54 '5PffP牉@s-ff`-      c  6721>?>././76&/7>?>?>./&31#"$&(@8!IH2hM>'

 )-*
h'N'!'Og,R"/!YQG<I *1)

 (-O1D+0nz3fwG2'3rd1!sF0o .q"!%GsH8@-!5|w|pgS=
"B2PJfhGdR 	        ( P ] l y    &$'77&7567'676'"'7&'&'7&47'6767'627''6$ '67'654'7&'7'&'&'7&'5 &$  $6 $&6$ jj:,AAS9bb9R#:j8AܔA,zC9Z04\40Z9C!B;X0,l,0X;B*A8ܔA&#9j`b9S$#R99#&A8A`
䇇<Z<䳎LlLfBϬ"129,V<4!!88dpm"BV,92[P*V*P\MC
 
@@ -868,7 +883,7 @@ p
 0x
I)!:>+<B76:NFcP:SC4rl+r E%.*a-(6%('>)C	6.      >  
   ! - I [   4&#"324&#"3264&#"324&#"326&#"#".'7$4$32'#"$&6$32D2)+BB+)3(--(31)+BB+)4'--'4'#!0>R	HMŰ9ou7ǖD䣣
 R23('3_,--,R23('3_,--,NJ
-?uWm%      #"'%#"'.5	%&'&7632! 
;
	`u%"( !]#c)(	          #"'%#"'.5%&'&76	! 
	(%##fP_"( !)'+ŉ       4 I   #"$'&6?6332>4.#"#!"&54766$32#!"&=46;46;2 z䜬m
+?uWm%        #"'%#"'.5	%&'&7632! 
;
	`u%"( !]#c)(	            #"'%#"'.5%&'&76	! 
	(%##fP_"( !)'+ŉ       4 I   #"$'&6?6332>4.#"#!"&54766$32#!"&=46;46;2 z䜬m
 IwhQQhbF*@&('k@z
 	
 _hQнQGB'(&*eozΘ@@`             >.  $$ ffff^aa fff^aa  >   "&#"#"&54>7654'&#!"#"&#"#"&54>765'46.'."&54632326323!27654'.5463232632,-,,",:!
%]&
%@2(/.+*)6!	<.$..**"+8#

#Q3,,++#-:#"</$)
@@ -912,8 +927,8 @@ Z
 		[		
          5  %!  $&66='&'%77'727'%amlLmf?55>fFtuutFLlLHYCL||LY˄(E''E*(           / ? I Y i y      %+"&=46;2+"&=46;2+"&=46;2+"&=46;2%"&=!#+"&=46;2+"&=46;2+"&=46;2+"&=46;2!54!54>$ +"&=46;2#!"&=@&&@3P
>P3&&rrr&&rrr
 he
-
4LKM:%%:MKL4WT&&            % / 9  ##!"&563!!#!"&5"&5!2!5463!2!5463!2&& &  & &&   &&& i@ &&@& 7          '#5&?626J%o;j|/&jJ%p&`Jj&p/|jţ%Jk%o%    	  : g  "&5462#"&546324&#!"263662>7'&75.''&'&&'&6463!276i~ZYYZ~@OS;+[G[3YUD#o?D&G3I=JyTkBuhNV!WOhuAiSy*'^CC^'*SwwSTvvTSwwSTvvWID\_"[gq# /3qFr2/ $rg%4
-HffHJ4   d       #!#7!!7!#5!VFNrmNNNN!     Q  + ? N e  %&'&'&7>727>'#&'&'&>2'&'&676'&76$7&'&767>76'6#
<;11x#*#
F-T93%/#0vNZ;:8)M:(	&C.J}2	%0
 	^*
+
4LKM:%%:MKL4WT&&            % / 9  ##!"&563!!#!"&5"&5!2!5463!2!5463!2&& &  & &&   &&& i@ &&@& 7         '#5&?6262%%o;j|/&jJ%p&j;&i&p/|jţ%Jk%o%      	  : g  "&5462#"&546324&#!"263662>7'&75.''&'&&'&6463!276i~ZYYZ~@OS;+[G[3YUD#o?D&G3I=JyTkBuhNV!WOhuAiSy*'^CC^'*SwwSTvvTSwwSTvvWID\_"[gq# /3qFr2/ $rg%4
+HffHJ4   d       #!#7!!7!#5!VFNrmNNNN!     Y  + ? N e  %&'&'&7>727>'#&'&'&>2'&'&676'&76$7&'&767>76'6#
<;11x#*#
G,T93%/#0vNZ;:8)M:(	&C.J}2	%0
 	^*
 JF	
 &7'X"2LDM"	+6
 M2+'BQfXV#+]
@@ -931,16 +946,17 @@ MXXM
 
 		
 ̺
-
  
         ' / 7 ? K S c k {  4&"2$4&"2 4&"2 4&"2 4&"2 4&"2 4&"2 4&"24&"26 4&"24&#!"3!264&"2#!"&5463!2KjKKjKjKKjKjKKjKKjKKjKjKKjKjKKjKKjKKjKjKKjKLhLLhLKjKKj& && &KjKKjL44LL44L5jKKjKKjKKjKjKKjKjKKjKjKKjKjKKjKjKKjKjKKjK4LL44LLjKKjK && &&jKKjK  4LL4 4LL     ' E  !#"+"&7>76;7676767>'#'"#!"&7>3!2W",&7'	#$	&gpf5O.PqZZdS-V"0kqzTxD!!8p8%'i_F?;kR(`
-!&)   d   . < \  .'.>%#"'.7>.'&67632&'6'&'
-#"'.766.'&67632Z
-&+\cc:>'D>6KD3W6,9(<*0-?")/SW7.Crb		:+OIX3'#C3:@#*"-A%,1U=}AQfO$"|'"S*`H(:UܳJ?27sZy%+A07C~Ӗ5A"3      	      > I Y  #6?>7&#!%'.'33#&#"#"/3674'.54636%#"3733#!"&5463!24:@7vH%hEP{0&<'VFJo1,1.F6A#L4 4LL4 4L"%	
+
  
         ' / 7 ? K S c k {  4&"2$4&"2 4&"2 4&"2 4&"2 4&"2 4&"2 4&"24&"26 4&"24&#!"3!264&"2#!"&5463!2KjKKjKjKKjKjKKjKKjKKjKjKKjKjKKjKKjKKjKjKKjKLhLLhLKjKKj& && &KjKKjL44LL44L5jKKjKKjKKjKjKKjKjKKjKjKKjKjKKjKjKKjKjKKjK4LL44LLjKKjK && &&jKKjK  4LL4 4LL  	   ' E  !#"+"&7>76;7676767>'#'"#!"&7>3!2W",&7'	#$	&gpf5O.PqZZdS-V"0kqzTxD!!8p8%'i_F?;kR(`
+!&)   '    
+   (  2 !&6367 !	&63!2!
+`B1LO(+#=) heCQg#s`f4#6q'X|0-g   	      > I Y  #6?>7&#!%'.'33#&#"#"/3674'.54636%#"3733#!"&5463!24:@7vH%hEP{0&<'VFJo1,1.F6A#L4 4LL4 4L"%	
  
-7x'6
O\JYFw~v^fH$ !"xdjD"!6`J 4LL4 4LL   	     $ 1 O l       -  #"326%356.#"#"326%4#"326%3#7#'#3%#7#"&546324>54#"47632&#"'"'473254&'&54323#327#"'47673#327#"546327&#7673>7&#"327#"&54632#7#"&54632654#"47632&#7673>73#7#"&54632.#"#&'#67&#"327&'3673326#!"&5463!2
/>	0@[W,8 G'"5,Q4/&4/	$&J	(W" 	+Tl	+7o	_7*#)
	83	(
--5G8
.'3/$&I8
-48+5%7%{,2,rr,2,x-2.jj.2-xL4 4LL4 4L[ <	J 2)(*(8$e '+
-,1)H/	'H4///,~i6_7G*''4fE!%97+"
;=4FYqO" '+
-,&2hh_,0(5N(ntggtnno__on 4LL4 4LL    	  
+7x'6
O\JYFw~v^fH$ !"xdjD"!6`J 4LL4 4LL   	    + 3 @ G X c g q z     -<JX{  &#"327&76'32>54.#"35#3;5#'#3537+5;3'23764/"+353$4632#"$2#462#"6462""'"&5&5474761256321##%354&'"&#"5#35432354323=#&#"32?4/&54327&#"#"'326'#"=35#5##3327"327'#"'354&3"5#354327&327''"&46327&#"3=#&#"32?"5#354327&3=#&"32?"#3274?67654'&'4/"&#!"&5463!2_gQQh^_~\[[\]_^hQQge<F$$$ !!&&/!/

!!

00/e&'!"e$
+		'!!''
+	8''NgL4 4LL4 4LUQghQUk=<Sccc,-{kjUQhgQ



9
+
,&W &$UK$$KK$$KDC(>("
+!
+=))=2( '! 'L#(>(
&DC(>(zL#DzG)<) 4LL4 4LL    	  
     B W b j q }    +532%+5324&+32763#4&'.546327&#"#"'3265#"&546325&#"32!26 4&"2%#'#735#535#535#3'654&+353#!"&5463!29$<=$@?SdO__J-<AA@)7")9,<$.%0*,G3@%)1??.+&((JgfJ*A!&jjjGZYGиwsswPiL>8aA	!M77MM77M3!
4erJ]&3YM(,
 ,%7(#)
,(@=)M%A20C&Mee(X0&ĖjjjV	8Z8J9N/4$8NN88NN      	       # & : O [   	$?b  3'7'#3#%54+32%4+324+323'%#5#'#'##337"&##'!!732%#3#3##!"&53733537!572!56373353#'#'#"5#&#!'#'#463!2#"5#"5!&+&+'!!7353273532!2732%#54&+#32#46.+#2#3#3##+53254&".546;#"67+53254&.546;#"#'#'##"54;"&;7335wY-AJF=c(TS)!*RQ+*RQ+Y,B^9^Ft`njUM')	~PS PRm٘M77Mo7q
 
@@ -996,7 +1012,7 @@ i
 
 
 
-h^@@       )  2 #"&5476 #".5327>OFi-ay~\~;'S{s:D8>)AJfh ]F?X{[TC6LlG]v2'"%B];$         + l |    %!2>7>232>7>322>7>32"&'.#"#"&'.#"#"&'.#"#546;!!!!!32#"&54>52#"&54>52#"&54>52  -P&+F) $P.-P$'#+&PZP&+#"+&P-#) $P-.P$(#+$P.-P$'#+&P-.P$+#pP@     @Pp H85K"&Z H85K"&Z H85K"&Z@Pp@@@pMSK5, :&LMSK5, :&LMSK5, :&        !!3	!	    @  @@           	#"$$3!!2 "jaѻxl alxaa j         !!3/"/'62'&63!2   'y
+h^@@       )  2 #"&5476 #".5327>OFi-ay~\~;'S{s:D8>)AJfh ]F?X{[TC6LlG]v2'"%B];$         - o     %!2>7>3232>7>322>7>32".'.#"#"&'.#"#"&'.#"#546;!!!!!32#"&54>52#"&54>52#"&54>52  -P&+#($P.-P$'#+&PZP&+#"+&P-($P-.P$(#+$P.-P$'#+&P-.P$+#pP@     @Pp H85K"&Z H85K"&Z H85K"&Z@Pp@@@pMSK5, :&LMSK5, :&LMSK5, :&        !!3	!	    @  @@           	#"$$3!!2 "jaѻxl alxaa j         !!3/"/'62'&63!2   'y
 
 `I
 
@@ -1004,7 +1020,7 @@ h
 
 `I
 
-y'       [ `  #".'.#"32767!"&54>3232654.'&546#&'5&#"
+y'       W `  #".'.#"32767!"&54>3232654.'&546#&'5&#"
 
 4$%Eӕ;iNL291 ;XxR`f՝Q8TWiWgW:;*:`Qs&?RWXJ8oNU0J1F@#)
 [%6_POQiX(o`_?5"$iʗ\&>bds6aP*< -;iFn*-c1B       W g  4'.'4.54632#7&'.#"#"'.#"32767'#"&54632326#!"&5463!2#$(	1$6]'
@@ -1012,31 +1028,31 @@ h
 
%
$/$G6
 sP`X):F/fwH1pdlqnmPHuikw_:[9D'@www            3   4."2>$4.#!!2>#!".>3!2QнQQнQQh~wwhf ff нQQнQQнQZZQffff           #  >3!2#!".2>4."f ff нQQнQQffffQнQQн      	      , \  !"&?&#"326'3&'!&#"#"'     5467'+#"  327#"&463!!'#"&463!2632(#AHs9q  ci<=
 #]<OFA!re&&U&& ![eF U?g4_a?b+r7&4&&4&p,           + K   4&"2$4&"2.#!"3!264&#!"3!2#"&=!"&=#47>$ KjKKjKKjKKjH#j#H&&&KjK KjKg	V	ijKKjKKjKKjK..n(([5KK55KK5[poNv<<vN:f      . R   #!"&463!24'!"&5463!&$#"!2#!32>+#" '#"&546;&546$32 322$B$22$$*$22$Xڭӯ$22$tX'hs2$ϧkc$22$1c$2F33F3VVT2#$2ԱVT2#$2g#2UU݃
-2$#2UU1݃2         , u   54#"67.632&#"32654'.#"32764.'&$#"7232&'##"&54732654&#"467&5463254632>32#"'&ru&9%"*#͟<yK0Og" 
&9B3;㛘8s%+DWXRD= @Y%	!Q6R!4M8+6rU^z=)RN.)C>O%GR=O&^opC8pP*bY
+2$#2UU1݃2         , u   54#"67.632&#"32654'.#"32764.'&$#"7232&'##"&54732654&#"467&5463254632>32#"'&ru&9%"*#͟ <yK0Og" 
&9B3;㛘8s%+DWXRD= @Y%	!Q6R!4M8+6rU^z=)RN.)C>O%GR=O&^opC8pP*bY
 _#$N Pb@6)?+0L15"4$.Es
 5IQ"!@h"Y7e|J>ziPeneHbIlF>^]@n*9
         6 [ _  3#"&54632#.#"32%3#"&54632#.#"326%4&'.'&! ! 7>7>!
=39?
 6'_
>29?
-5'17m-VU--,bW. 뮠@Fyu0HC$뮠@Fyu0HC$L=??
<=! A	<          `  ;  +"&54&#!+"&5463!2#!"&546;2!26546;2pЇ0pp@I pp        > S c  +"&=46;254&+"&+";2=46;2;2=46;2;2%54&#!";2=;26#!"&5463!2A5DD5A7^6a7MB55B7?5B~```0`rr5A44A5v5AA5f*A``0`       	   !!!!	#!"&5463!2ړ7H7jv@vvv'  :@vvv          M U d k p u {                  #"'!"'!#"&547.547.54674&547&54632!62!632!#!6227'!%!"67'#77!63!!7357/7'%#	%'3/&=&'	5#?&5476 !p4q"""6" 'h*[
|*,@?wAUMpV@˝)Ϳw7({*U%K6=0(M		"!O		dX$k
+5'17m-VU--,bW. 뮠@Fyu0HC$뮠@Fyu0HC$L=??
<=! A	<          `  ;  +"&54&#!+"&5463!2#!"&546;2!26546;2pЇ0pp@I pp        > S c  +"&=46;254&+"&+";2=46;2;2=46;2;2%54&#!";2=;26#!"&5463!2A5DD5A7^6a7MB55B7?5B~```0`rr5A44A5v5AA5f*A``0`       	   !!!!	#!"&5463!2ړ7H7jv@vvv'  :@vvv          M U a h m r x                  #"'!"'!#"&547.547.54674&547&54632!62!632!#!627'!%!"67'#77!63!!7357/7'%#	%'3/&=&'	5#?&5476 !p4q"""6" 'h*[
|*,@?wAUMpV@˝)Ϳw7({*U%K6=0(M		"!O		dX$k
 !!!
b	
-[TDOi
+[TDOi
 @6bxBAݽ5

ɝ:J+3,p
x1Fi
 (R      
   463!#!"&5%'4&#!"3`а@..@A-XfB$.BB..C     } 
    )   &54$32 &'  % &&'6 7"w`Rd]G{o]>p6sc(@wgmJPAjyYWa͊AZq{HZ:<dv\gx>2ATKn       + ;  "'&#"&#"+6!263 2&#"&#">3267&#">326e~└Ȁ|隚Ν|ū|iyZʬ7Ӕްr|uѥx9[[9jj9ANN+,#ll"BS32fk     [   / ? \  %4&+";26%4&+";26%4&+";26%4&+";26%#!"&5467&546326$32]]eeeeee$~i
 qfN-*#Sjt2"'qCB8!   '  >    	 
     ! % ) - 1 5 9 = A E I M Q U Y ] a g k o s w {           !	%!	5!#5#5#5#5#57777????#5!#5!#5!#5!#5!#5!#5!#5#537#5!#5!#5!#5!#5!#55#535353535353%"&546326#"'#32>54.&54>3237.#" Q%%%%%%%%%?iiihOiixiiyiixiiArssrrssr%sssrrssNs%%%%%%%%%%'<D<'paC_78#7PO7)("I$	75! RAb(ssssssssss"/!".""."
!."".!/^.".^.".]/".$$$$$$$$$$$$$$$$Os$$$$$$$$$$$$$$sO$sssssssssss#}$)	13?*
 ,./:
--      s    *   4&"2$4&"2#!"&5463!2!5463!2_?--??-,@@,-?pq8,??,D,??,,??      (    Z  2#".#"3267>32#".54 3232654&#"#"&54654&#"#"&547>326ڞUzrhgrxSПdU <ex՞Zf_gן:k=2;^9Œ7\xx\7K=5XltֆWW{e_%N%,%CI%      # + W   4&+54&"#";26=32 "&462"&462!2#!"&54>7#"&463!2!2&&4&&&&4&KjKKjKjKKj && &%&& &&4&&&&4&&&5jKKjKKjKKjK %z
+-      s    *   4&"2$4&"2#!"&5463!2!5463!2_?--??-,@@,-?pq8,??,D,??,,??      (    Z  2#".#"3267>32#".54 3232654&#"#"&54654&#"#"&547>326ڞUzrhgrxSПdU <ex՞Zf_gן:k=2;^9Œ7\xx\7K=5XltֆWW{e_%N%,%CI%      # + W   4&+54&"#";26=32 "&462"&462!2#!"&54>7#"&463!2!2&&4&&&&4&KjKKjKjKKj && &%&& &&4&&&&4&&&5jKKjKKjKKjK %z
 0&4&&3D7&4&
%&          ' S   4&"4&"'&"27 "&462"&462!2#!"&54>7#"&463!2!2 &4&4&4& 4 KjKKjKjKKj && &%&& &&4&%&&ے&4  "jKKjKKjKKjK %z
-0&4&&3D7&4&
%&        	    &  	!'!	!%!!!!%"'.763!2o]FooZY@:@!! gf /  /      I    62'"/"/"/"/"/"/"/7762762762762762762%"/77627&6?35!5!!3762762'"/"/"/"/"/"/%5#5!4ZSS6SS4SS4SS4SS4SS4SS4ZSS4SS4SS4SS4SS4SS4S-4ZSS4S@   4SS4ZSS6SS4SS4SS4SS4SS4S@ ZSSSSSSSSSSSSSSZSSSSSSSSSSSSSyZRRR@%:=
+0&4&&3D7&4&
%&           	    &  	!'!	!%!!!!%"'.763!2o]FooZY@:@!! gf /  /      I    62'"/"/"/"/"/"/"/7762762762762762762%"/77627&6?35!5!!3762762'"/"/"/"/"/"/%5#5!4ZSS6SS4SS4SS4SS4SS4SS4ZSS4SS4SS4SS4SS4SS4S-4ZSS4S@   4SS4ZSS6SS4SS4SS4SS4SS4S@ ZSSSSSSSSSSSSSSZSSSSSSSSSSSSSyZRRR@%:=
 :+:
 =RRZSSSSSSSSSSSSS         C v  !/&'&#""'&#"	32>;232>7>76#!"&54>7'3&547&547>763226323@``` 
 VFaaFV
 

$.
 

-.$

yy	.Q5ZE$ ,l<l, $ER?Y*@@2	!#""#!	yy=rna@@(89*>*%>>%*>*98(QO!   		  L \ p  '.'&67'#!##"  327&+"&46;2!3'#"&7>;276;2+6267!"'&7&#"(6&#"#"'DgOOG`n% ELL{@&&Nc, sU&&!Fre&&ss#/,<=
+.$

yy	.Q5ZE$ ,l<l, $ER?Y*@@2	!#""#!	yy=rna@@(89*>*%>>%*>*98(QO!       L \ p  '.'&67'#!##"  327&+"&46;2!3'#"&7>;276;2+6267!"'&7&#"(6&#"#"'DgOOG`n% ELL{@&&Nc, sU&&!Fre&&ss#/,<=
 #]gLoGkP'r-n&4&2-ir&&?o 
4_      5 O W  ! .54>762>7.'.7>+#!"&5#"&5463!2"&462{{BtxG,:`9(0bԿb0(9`:,GxtB&@& &@&K55K`?e==e?1O6#,
 #$
 ,#6OO&&&&5KK      ?  !"'&'!2673267!'.."!&54632>32 1
-4q#F""8'go#-#,"tYg>oP$$Po> 	Zep#)R0+I@$$@I+    + 3   32++"&=#"&=46;.7>76$     @ᅪ* r@@r      ' /  2+"&5".4>32!"&=463      &@~[՛[[u˜~gr&`u՛[[՛[~~@r         = E   32++"&=#"&=46;5& 547&'&6;22676;2      >``@``ٱ?E,,=?rH@``@GݧH`jjr    B J  463!2+"&= 32++"&=#"&=46;5.76 76%#"&5        &@~``@`` vX r&@``@+BF`r       k s  463!2+"&= 32++"&=#"&=46;5& 547'/.?'+"&5463!2+7>6 %#"&5        &@~``@``~4e	
+4q#F""8'go#-#,"tYg>oP$$Po> 	Zep#)R0+I@$$@I+     + 3   32++"&=#"&=46;.7>76$     @ᅪ* r@@r      ' /  2+"&5".4>32!"&=463      &@~[՛[[u˜~gr&`u՛[[՛[~~@r         = E   32++"&=#"&=46;5& 547&'&6;22676;2      >``@``ٱ?E,,=?rH@``@GݧH`jjr     B J  463!2+"&= 32++"&=#"&=46;5.76 76%#"&5        &@~``@`` vX r&@``@+BF`r       k s  463!2+"&= 32++"&=#"&=46;5& 547'/.?'+"&5463!2+7>6 %#"&5        &@~``@``~4e	
 0
 	io@& jV	
 0
@@ -1044,16 +1060,15 @@ VFaaFV
 ,
 sp &@k^
 ,
-c8~~`r     
- 8 > K R _  32++"&=!+"&=#"&=46;.76 766 6'27&547&#"  &'2  #"@ @'Ϋ'sggsww@sgg@@-ssʃl99OOr99    F P ^ l  463!2+"&= $'.7>76%#"&=463!2+"&=%#"&54'>%&54 7.#" 2 54&'   &@L?CuГP	vY  &@;"  ޥ5݇ޥ5`&_ڿgwBF@&J_	s&&?%x%x     J P \ h  463!2+"&= '32++"&=#"&=46;5.76 76632%#"&56'  327&7&#"2  #" &@L? ߺu``@``}
ຒɞ  ueeu9uee&_"|N@``@""|a~lo99r9@9       ; C  2+"&5"/".4>327'&4?627!"&=463      &@Ռ		.	
+c8~~`r       8 > K R _  32++"&=!+"&=#"&=46;.76 766 6'27&547&#"  &'2  #"@ @'Ϋ'sggsww@sgg@@-ssʃl99OOr99     F P ^ l  463!2+"&= $'.7>76%#"&=463!2+"&=%#"&54'>%&54 7.#" 2 54&'   &@L?CuГP	vY  &@;"  ޥ5݇ޥ5`&_ڿgwBF@&J_	s&&?%x%x      J P \ h  463!2+"&= '32++"&=#"&=46;5.76 76632%#"&56'  327&7&#"2  #" &@L? ߺu``@``}
ຒɞ  ueeu9uee&_"|N@``@""|a~lo99r9@9       ; C  2+"&5"/".4>327'&4?627!"&=463      &@Ռ		.	
 N~[՛[[u˜N		.	
 gr&`֌
 	.		Ou՛[[՛[~N
-	.		@r      9 A   '.'&675#"&=46;5"/&4?62"/32+     '֪\
+	.		@r       9 A   '.'&675#"&=46;5"/&4?62"/32+     '֪\
 	.		4		.	
 \r|ݧ憛@\		.	
 
-	.		\@r     9 A  "/&4?!+"&=# #"$7>763546;2!'&4?62      m		-
+	.		\@r     ~ 9 A  "/&4?!+"&=# #"$7>763546;2!'&4?62      m		-
 
 @ݧ憛@&
 
@@ -1066,15 +1081,17 @@ $*2%	+Z hP=DXZ@7^?1
۰
 \ZAhSQ>B>?S2Vhui/,R0+	ZRkm      z  + > Q   2#"'.'&756763232322>4."7 #"'&546n/9bLHG2E"D8_
 pdddxO"2xxê_lx2X	
 !+'5>-pkW[C
I
-I@50Oddd˥Mhfxx^ә  	           # ' + /  7!5!!5! 4&"2!5! 4&"24&"2!!!     8P88P   8P88P88P88P     P88P8 P88P88P88P8          + N    &6 !2#!+"&5!"&=463!46;23!#!"&54>32267632#"_>@`





`

 L4 Dgy 6Fe=OOU4L>



`

`

4L2y5eud_C(====`L4       3 V    &6 #"/#"/&54?'&54?6327632#!"&54>32 7632_>			
		
						
		
			%%Sy 6Fe=J%>	
						
		
						
	%65%Sy5eud_C(zz.!6%          $  !2!!!46;2 4&"2!54&#!" &   &&@ԖV@& &@  &&ԖԖ@&             3!!!	!5!'!53!!	# 7IeeI7 CzC l @@  @            #  2#!"&?.54$3264&"!@մppp  ((ppp              # + /  2#!"&?.54$3264&"! 264&"!@մ^^^@^^^@ ((^^^  ^^^          '  %!53###3!532654&+5!3!#"3 ~E,,EG,+ob'q,5,'          	#'#3!)
-p*xe 0,\8     L   # / D M %2<GQ^lw  &'&676676&'&7654&'&&546763"#"'3264&7.>&'%'.767&7667&766747665"'.'&767>3>7&'&'47.'.7676767&76767.'$73>?>67673>#6766666&'&6767.'"'276&67&54&&671&'6757>7& "2654&57>&>&'5#%67>76$7&?5.''&'&'#'""#''&'&'&'65.'&6767.'#%&''&'#2%676765&'&'&7&5&'6.7>&5R4&5S9
W"-J0(/r
V"-J0(.)#"6&4pOPppc|o}vQ[60XQW1V	
#5X		N"&
.
+I@50Oddd˥Mhfxx^ә  	           # ' + /  7!5!!5! 4&"2!5! 4&"24&"2!!!     8P88P   8P88P88P88P     P88P8 P88P88P88P8          + N    &6 !2#!+"&5!"&=463!46;23!#!"&54>32267632#"_>@`





`

 L4 Dgy 6Fe=OOU4L>



`

`

4L2y5eud_C(====`L4       3 V    &6 #"/#"/&54?'&54?6327632#!"&54>32 7632_>			
		
						
		
			%%Sy 6Fe=J%>	
						
		
						
	%65%Sy5eud_C(zz.!6%          $  !2!!!46;2 4&"2!54&#!" &   &&@ԖV@& &@  &&ԖԖ@&             3!!!	!5!'!53!!	# 7IeeI7 CzC l @@  @            #  2#!"&?.54$3264&"!@մppp  ((ppp              # + /  2#!"&?.54$3264&"! 264&"!@մ^^^@^^^@ ((^^^  ^^^         v    (  #"'%.54632	"'% 	632U/@k0G,zD#[k#
+/t g
+F
Gz        	#'#3!)
+p*xe 0,\8     T   # / D M %2<GQ^lw
  &'&676676&'&7654&'&&546763"#"'3264&7.>&'%'.767&7667&766747665"'.'&767>3>7&'&'47.'.7676767&76767.'$73>?>67673>#6766666&'&6767.'"'276&67&54&&671&'6757>7& "2654&57>&>&'5#%67>76$7&74>=.''&'&'#'#''&'&'&'65.'&6767.'#%&''&'#2%676765&'&'&7&5&'6.7>&5R4&5S9
W"-J0(/r
V"-J0(.)#"6&4pOPppc|o}vQ[60XQW1V	
#5X		N"&
.
 )
 D>q J:102(z/=f*4!>S5b<U$:I o<G*	,
&"O	X5
 #!
-
	R N#
C
83J*R	!(D
#%37	;$-.
(,覦6ji
+
	R N#
C
83J*R	!(D
#%37	;$-.
(,覦6ij
 	")9
-E%!B83
-	j96/,	:QD')yX#63V
ba	,
+E%!B83
+	j96/,	:QD')yX#63V
ba	,
 UeLPA@*	̳`Xx*&E
 V36%	B3%	B3XA	
#!.mU"A	
#!.mUB-#2+Jiiim-C<I(m8qF/*)0S
 		
@@ -1082,10 +1099,10 @@ V36
 E5&+>!%
 (!$p8~5..:5I

~T
 4~9p# !
-)& ?()5F	1	
	
+)& ?()5F	1	
	
  d%{v*:
 @e
-s|D1d {:*dAA|oYk'&<tuut&vHCXXTR;w
71
	Z*&'
1	9?	.

$Gv5k65P<?8q=4a	
SC"1#</6B&!ML	^;6k5wF1<P   C	   ;  $"&462"&46232>.$.`aasa``Z9k'9؋ӗa-*Gl|Me_]`F&OܽsDD!/+``aa``a1<YK3(
- /8HQelAZ3t_fQP<343J;T7Q           + ? K g w     $6&$  $&62+"5432+"&=.54  $;26=462;26=4& 4&#!"3!26)߄4R4߄mlLr {jK#@#Qa^@@`&&&&߄4R4ĎLlLN @K5#:rr:#5K^aa``]]`` && &&       	     /  !3#4&#!"3!265##!"&5463!22 @ K5^BB^^B@B^5K    @5KB^^BB^^BK        	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	    +  2##!"&5463!2#4&#!"3!2655KK5^BB^^B@B^@K55KB^^BB^^B` @        #!&'#"'&547632m*
+s|D1d {:*dAA|oYk'&<tuut&vHCXXTR;w
71
Z*&'
1	9?	.

$Gv5k65P<?8q=4a	
SC"1#</6B&!ML	^;6k5wF1<P    C	   ;  $"&462"&46232>.$.`aasa``Z9k'9؋ӗa-*Gl|Me_]`F&OܽsDD!/+``aa``a1<YK3(
+ /8HQelAZ3t_fQP<343J;T7Q           + ? K g w     $6&$  $&62+"5432+"&=.54  $;26=462;26=4& 4&#!"3!26)߄4R4߄mlLr {jK#@#Qa^@@`&&&&߄4R4ĎLlLN @K5#:rr:#5K^aa``]]`` && &&       	     /  !3#4&#!"3!265##!"&5463!22 @ K5^BB^^B@B^5K    @5KB^^BB^^BK        	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	     /  !2##!"&5463!2#4&#!"3!265  5KK5^BB^^B@B^@   K55KB^^BB^^B` @      	    +  2##!"&5463!2#4&#!"3!2655KK5^BB^^B@B^@K55KB^^BB^^B` @    {    #!&'#"'&547632m*
 0(('($0K
 **      %   3#!3# '!#53 5#534!#53 6!3@@@@pp@@@@@pp@`     	          + / 7 ; A  #3!5!!3#!!5!35!355#%53#5!#35#!!!!!!!!                           
    	    # ' + / 3 ? C G W  #3!5!!35!!3#!!5!#!5!3535!355#%#3%!53#5!#35#!5##5!3!5!3!5	               !"&5463!2!"! `(88(@(8`(8}22R `8(@(88(`8HR22         #  #6?6%!!!46#!"&5463!2x  8(`( (88(@(8 
@@ -1099,14 +1116,14 @@ l
 P2 .B
 
%2@	7K5(B@KjKj?+f UE,5K~!1.>F.F,Q5*H          $ b  2#!"&=%!"&=463!7!"&'&=4634'&#!">3!!"3!32#!"3!23!26=n$<vpPPpPpw*RdApP]'@A&
 3@&H-[(8@
-2EB^&1
=&& 81PppPpP wcOg Ppc
4& #.& &,,:8(%^B &
.&&       A t  "#.#"%&#"3!267>7654&#"#654&#"#.!"'.54632&5467>32>3200?t	='/@H@"+4K8"*!4dtB/&>	c@0&=		=_JUD29i1"07
-{x\YSgSSW]|t
eyD0&0D/
I4C+) t.B3%h#/B0&&03|&p>i+ #]
-WsgQT\QglU
-]#-39oK_       3 [ _ c g  "'&#"3!2676=4&"#54&#"#54&#"#4&'2632632632#!"&'&5463246#!#!#5K)B4J&@#\8P8 @0.B J65K J6k
+2EB^&1
=&& 81PppPpP wcOg Ppc
4& #.& &,,:8(%^B &
.&&       2 t  "&'&54'&5467>32>32>32#"#.#"#.#"3!27654&#"547654&#"#654&Mye
t|]WSSgSY\x{
+70"1i92DU1&=		=&0@c	>&/Btd4!*"8K4+"@H@/'=	t? _K93-]
+UlgQQgsW
+]# +i>p&30&VZ&0B/
%3B."to ){+C4I(
/D0&p0D      3 [ _ c g  "'&#"3!2676=4&"#54&#"#54&#"#4&'2632632632#!"&'&5463246#!#!#5K)B4J&@#\8P8 @0.B J65K J6k
 cJ/4qG^\hB2<m$3iG;     K5 6L4+" 3p`b)<8(=0CB.@Z7OK5`:7OkEW^tm@Q7/ DVi##j       % 4 I a   2#!"&5&546325462632"32654&"3267654&76;74&"#.#"2676=#"&'+53264&#!"3</UXdjjPԖEu!7JG72P
 
 B%
-B.!7	@Af+?jKjK@B(5K,EUH*5Q,F.F>.1!~K5y?^\Vljt-.j[J,qjjI7$?1R.B+.B$`2?gvEo.5KK5%-K6+SIR[&.E49 B\B$5K           G  #!+"&5!"&=463!2+"&'+"'+"'&5>;2>76;2Y




M	
+B.!7	@Af+?jKjK@B(5K,EUH*5Q,F.F>.1!~K5y?^\Vljt-.j[J,qjjI7$?1R.B+.B$`2?gvEo.5KK5%-K6+SIR[&.E49 B\B$5K           G  #!+"&5!"&=463!2+"&'+"'+"'&5>;2>76;2Y




M	
 
.x	-
 	N	
 
@@ -1116,8 +1133,8 @@ B.!7
 
 #	          	 * : J  4'&+326+"'#+"&5463!2  $6&  $&6$ <!T{BH4	&>UbUI-uu,uuڎLlLAX!Jmf\$
 6uuu,KLlL        - [ k {  276/&'&#"&5463276?6'.#"!276/&'&#"&5463276?6'.#"  $6&   $&6]h-%Lb`J%E5
,5R-h
--%Lb`J%E5
,5R-'uu,uulL/hR

dMLcNhR
dMLcN1uuu,LlL   @     	'	7	'7	``H ``H !``H  ```H`            '  %		7'	7'7	'  $&6$ X`(W:,:X`(WLLlLX`(W:BX`(XLlL 
-  	 $    % / 9 E S [   #"&54632$"&4624&"26$4&#"2%#"&462$#"&4632  #"32&! 24>      !#"&'.'#"$547.'!6$327&'77'&77N77N'qqqqqPOrqEsttsst}||}uԙ[WQ~,>	nP/RU P酛n	>,m'77'&77N77N6^Orqqqqqqt棣棣(~||on[usј^~33pc8{y%cq33dqp  d   	  L     54    "2654"'&'"/&477&'.67>326?><
+-%Lb`J%E5
,5R-'uu,uulL/hR

dMLcNhR
dMLcN1uuu,LlL   @     	'	7	'7	``H ``H !``H  ```H`            '  %		7'	7'7	'  $&6$ X`(W:,:X`(WLLlLX`(W:BX`(XLlL 
+  	 $    % / 9 E S [   #"&54632$"&4624&"26$4&#"2%#"&462$#"&4632  #"32&! 24>      !#"&'.'#"$547.'!6$327&'77'&77N77N'qqqqqPOrqEsttsst}||}uԙ[WQ~,>	nP/RU P酛n	>,m'77'&77N77N6^Orqqqqqqt棣棣(~||on[usј^~33pc8{y%cq33dqp  f   	  L     54    "2654"'&'"/&477&'.67>326?><
 x
 ,

(-'sIVCVHr'-(

 $0@!BHp9[%&!@0$u
@@ -1131,9 +1148,19 @@ $;
 9U(F(ߎLlL&!&!SEm|[n{[<ɪ
 "p C
 Di%
(KHCέpC
-B
m8	
@Kނ
HF(LlL       " *  6%&6$	7&$5%%6'$2"&4}x3nQH:dΏXe8 z'	li=!7So?v    M    '&7>>7'7>''>76.'6' El:Fgr
*t6K3UZ83P)3^I%=9	)<}Jk+C-Wd	&U -TE+]Qr-<Q#0
-C+M8	3':$
_Q=+If5[ˮ&&SGZoMk ܬc        #  2>.""$&6$32}L**L}}L**Lʸֶdd*~;;~\~~~ޚBPBdd       	  N  .'>!4&#"#6.!3267! !"''.>75>$732̏Ozv{kgw"+TgEۗE0[CWoG[SL#WN,:vDx9<d]69.P$E#pb9elz}fT-D-%<\N*XN(l0;<Ӝ"%Yj{N5      3  4&#!"3!26#!!2#!"&=463!5!"&5463!2 


@
^B `` B^^B@B^ 

@
@B^@@^BB^^       >  3!"&546)2+6'.'.67>76%&F8$.39_0DD40DD0+*M7{L *="#
-U<-M93#D@U8vk_Y	[hD00DD00Dce-JF1BDN&)@
/1 d        	 6  /   1'.#"932>74.#"932>7#"."#".5#".5332654&#"#!!2>22>232>32o'Ve-0F  F0-eW% F0-eW%'Ve-0F 0XWD_J-'F]KAuL9!=MtCGvO>"bMOohV.(,fZC&\|h=*1Hz^I((H_H\V,'L0+A56@+0M%*5A+0M%'L0+@NEsH0EF00EF0-?F1%6810A>A+7iQPq	"GY):;)2GH22GH22GH2Ft        > t   %6#".'.>%6%&7>'.#*.'&676./&'.54>754'&#"%4>327676=
>vwd"
+B
m8	
@Kނ
HF(LlL         " *  6%&6$	7&$5%%6'$2"&4}x3nQH:dΏXe8 z'	li=!7So?v      M    '&7>>7'7>''>76.'6' El:Fgr
*t6K3UZ83P)3^I%=9	)<}Jk+C-Wd	&U -TE+]Qr-<Q#0
+C+M8	3':$
_Q=+If5[ˮ&&SGZoMk ܬc         # 7  &#"327#"'&$&546$;#"'654'632եfKYYKf¥yͩ䆎L1hvvƚwwkn]*]nlxDLw~?T8bb9SA}       + 5 ? F  !3267!#"'#"4767% !2$324&#"6327.'!.#" ۔c28Ψ-\? @hU0KeFjTlyE3aVsz.b؏W80]TSts<hO_u7bBtSbF/o|V]SHކJ        3  4&#!"3!26#!!2#!"&=463!5!"&5463!2 


@
^B `` B^^B@B^ 

@
@B^@@^BB^^       >  3!"&546)2+6'.'.67>76%&F8$.39_0DD40DD0+*M7{L *="#
+U<-M93#D@U8vk_Y	[hD00DD00Dce-JF1BDN&)@
/1 d      y  % F    #"'&'&'&'&763276?6#"/#"/&54?'&763276"&'&'&5#&763567632#"'&7632654'&#"32>54'&#"'.5463!2#!3>7632#"'&'&#"'&767632yqoq>*432fba
+$B?
+	>B
+BB
AA.-QPPR+	42
+%<ciђ:6&hHGhkG@n`IȌ5
+!m(|.mzyPQ-.	
	je	
q>@@?ppgVZE|fb6887a
+%RB?
+=B
+ABBAJvniQP\\PRh!cDS`gΒ23geFGPHXcCI_ƍ5"	
+n*T.\PQip
[*81
+/
9@:       > t   %6#".'.>%6%&7>'.#*.'&676./&'.54>754'&#"%4>327676=
>vwd"
 
l"3	/!,+	j2.|%&
(N&wh>8X}xc2"W<4<,Z~fdaA`FBIT;hmA<7QC1>[u])		u1V(k1S)
 -	0B2*%M;W(0S[T]I)	A 5%R7<vlR12I]O"V/,b-8/_        # 3 C G k  2#!"&546;546;2!546;2%;2654&+";2654&+"!32++"&=#"&=46;546;2 4LL44LL4^B@B^^B@B^ @@ @@ @@ L4 4LL4 4L`B^^B``B^^B``    @@@          # 3 W  #!"&=463!2!!%4&+";26%4&+";26%#!"&546;546;2!546;232@ @@ @@L44LL4^B@B^^B@B^4L@@   N 4LL4 4L`B^^B``B^^B`L       # ' 7 G k  %"/"/&4?'&4?62762!!%4&+";26%4&+";26%#!"&546;546;2!546;232W.	
 
@@ -1148,7 +1175,7 @@ $;
 		.	
 
 	.	`@@ @@L44LL4^B@B^^B@B^4L< 		 
-	.				.	:   N 4LL4 4L`B^^B``B^^B`L         2632632#!"&5463&&&&&& &&&&&&         $  27+"&5     %264&#"26546 B>&&=,X q&&@X,LΒw  %    % ;  #!"&5463!546;2!2!+"&52#!"/&4?63!5!
+	.				.	:   N 4LL4 4L`B^^B``B^^B`L         2632632#!"&5463&&&&&& &&&&&&         #   27+"&5     %264&#"26546>&&T,X q&&1X,LΒw     %    % ;  #!"&5463!546;2!2!+"&52#!"/&4?63!5!
 
 (&&@&& ( &&@&&(
 
@@ -1156,27 +1183,241 @@ $;
 
 & &@&&@ &&& &
 
-       # '  '%#"'&54676%6%%
+        # '  '%#"'&54676%6%%
 hh @` !  !  
 
 
          # 5  2#"&5476!2#"&5476!2#"'&546 
 

 
 
  
@ 
 
@ 
  
 @
 
-
            8   4&"2$4&"2$4&"2 #"'&'&7>7.54$ KjKKjKjKKjKjKKjdne4"%!KjKKjKKjKKjKKjKKjK.٫8
+
             8   4&"2$4&"2$4&"2 #"'&'&7>7.54$ KjKKjKjKKjKjKKjdne4"%!KjKKjKKjKKjKKjKKjK.٫8
 !%00C'Z'             . W   "&462"&462"&462 6?32$6&#"'#"&'5&6&>7>7&54>$ KjKKjKjKKjKjKKjhяW.{+9E=cQdFK1A
 0)LlLjKKjKKjKKjKKjKKjKpJ2`[Q?l&٫C58.H(Yee   	    
- 
  			        Y'w(O'    RK $   #"&#"'>7676327676#"
+ 
  			        Y'w(O'    R@ $   #"&#"'>7676327676#"
 b,XHUmM.U_t,7A3ge
z9@xSaQBLb(	VU         
-  !!!  == w)          @ T  !!77'7'#'#274.#"#32!5'.>537#"6=4>5'.465!  KkkK_5 5 #BH1`L
-
I&v6SF !Sr99rS!`` /7K%s}HXV
-PV	e		V    p<e_<      N    N		                 	 		               j p    U                                                3   U  3                 ]                             y n                       2                           @                                                                                              z                    Z                                @    5 5        
     m                               Z  Z          @                                                                    ,  _                 @                                            Q                              @                    @                        (                                    @            @      @        -  
 M M - 
 M M                  @                                 @  @ 
 -            ^   a         
                                             6                                       %          8                                 @                  D       @                   ,              '     @                                                 	     m  o                     )                 @    @   	                                	                                   '              
        D     9               >                              d  Q     *       d	   	   	   	   	   	                                             	                                                         	                                                                            L	      	   	   	   	   	            	         	   	      	                                                 @   	     d     	                   	                         %                 R                                                                    P  Bp <$H<TfT	H		
+  !!!  == w)          A U  !!77'7'#'#274.#"#32!5'.>537#"76=4>5'.465!  KkkK_5 5 #BH1`L
+
I&v6SF !Sr99rS!`` /7K%s}HXV
+PV	e		V    d   / 9 Q [   $547.546326%>>32"&5%632264&#"64'&""&'&"2>&2654&#" ;2P3>tSU<)tqH+>XX|Wh,:UStW|XX>=X*
+))
++^X^|WX=>X:_.2//a:Ru?
+	
Q%-W|XW>J(	=u>XX|WX`
+
+*((*
+
+
++2		2X>=XW|    E  0  3>$32!>7'&'&7!6./EUnohiI\0<{ >ORDƚ~˕VƻoR C37J6I`Tb<^M~M8O     	  	 
    5!#!"&!5!!52!5463	 ^B@B^  `B^ ^B `B^^"^BB^         0 ;  %'#".54>327&$#"32$	 !"$&6$3  ##320JUnLnʡ~~&q@tKL}'` -
+-oxnǑUyl}~~FڎLlLt`(88(           	7!'	!\W\d;tZ`_O;        }  54+";2%54+";2!4&"!4;234;2354;2354>3&546263232632#"&#"26354;2354;2354;2`` `` pp``` !,! -&M<FI(2```@PppPpppppp#  #
+
ppppp     	  j  #"'&=!;5463!2#!"&=#".'.#!#"&463232>7>;>32#"&'#"!546	%. `@` :,.',-XjjXh-,'.,: kb>PppP>bk .%Z &
+:k%$> $``6&L')59I"TlԖlT"I95)'L&69GppG9$ >$%k:            !   +32 &#!332  $&6$ ~O88OLlL>pN

iLlL   	 ' ' : M a  4&'#"'.7654.#""'&#"3!267#!"&54676$32 #"'.76'&>$#"'.7654'&676mD5)
+z{6lP,@KijjOoɎȕ>>[ta)GG4?a )
ll
>;_-/
+9GH{zyN@,KԕoN繁y!
?hh>$
D"
>â?  $   	 n  "&5462'#".54>22654.'&'.54>32#"#*.5./"~~s!m{b6#	-SjR,l'(s-6^]Itg))[zxȁZ&+6,4$.X%%Dc*
+&D~WL}]I0"
+
YYZvJ@N*CVTR3/A3$#/;'"/fR-,&2-"
7Zr^Na94Rji3.I+
+
+&6W6>N%&60;96@7F6I3        +  4&#!"3!26%4&#!"3!26  $$     ^aa`@@^aa       ' 7     $  >. %"&546;2#!"&546;2#/a^(^aa(N@@          4&#!"3!26  $$ @@^aa`@^aa       '     $  >. 7"&5463!2#/a^(n@^aa(N@           % =  %#!"'&7!>3!26=!26=!2%"&54&""&546 ##]VTV$ KjKKjK $&4&Ԗ&4&>9G!5KK55KK5! && jj &&         # / ; I m  2+#!"&'#"&463>'.3%4&"26%4&"26%6.326#>;463!232#.+#!"&5#"5KK5sH. .Hs5KK5e# )4# %&4&&4&&4&&4&` #4) #%~]eZ&&Ze]E-&&-E KjKj.<<.KjK)#)`"@&&`&&&&`&&)#`)"dXo&&oXG,8&&8  !  O  ##!!2#!+"'&7#+"'&7!"'&?63!!"'&?63!6;236;2!2@@8@7
+
+8Q
+	NQ
+	N
+	8G@
+
+8GQ
+	NQ
+	N7
+	    88 HH     k      %  		 ".>2I20]@] @oo@@oo㔕a22 ]] p^|11|99|11|     (       %7'7'	'	7T dltl)qnluul        ) 1  $4&"2 4&"2  &6 +"&5476;2 &6  LhLLhLLhLLhL>
 &
  &`>hLLhLLhLLhL>&&>    G  
+     	.7)1!62	1!62he220e22>	v
+4	[d+
d           1  35#5&'72!5!#"&'"'#"$547&54$ Eh`X(cYz:L:zYc\$_K`Pa}fiXXiޝfa    	         ( + . >  #5#5!5!5!54&+'#"3!267!7!#!"&5463!2U``'  jjV>(>VV>>Vq     (^(>VV>>VV          =  &'&'&'&76'&'&.' #.h8"$Y
+''>eX5,	,PtsK25MRLqS;:.K'5R

ChhRt(+e^TTu B"$:2~<2HpwTT V        / 7 G W g   . %&32?673327>/.'676$4&"2 $&6$    $6&  $&6$ d--m	
+	,6*6,	
+	mKjKKjoooKzz8zzȎLlLU4>>4-.YG0
+)xx)
+0GYޞ.jKKjKqoooolzzz80LlL    D   / 7 H   #"'.7'654&#"'67'.6?>%"&46227#".547|D,=),9#7[͑fx!X: D$+s)hhijZt<F/*8C,q؜e\r,WBX/C2hhh=tXm        > N Z  +"&=46;2+"&=4>7>54&#"#"/.7632  >.  $$ p =+& 35,W48'3	l
+zffff^aaP2P: D#;$#
$*;?R
+Cfff^aa   'Y  	 > O `   "&5462&'.'.76.5632.'#&'.'&6?65\\[<CzC
25U#
+.ZK m+[$/#>(	|	r[A@[[@A#2#
7*
<Y$
+}"(
q87] F 	_1)
+	     	    # 1 K e   34&+326+"&=!#!"&763!2#!"&5463!2#>?4.'3#>?4.'3#>?4.'3Xe`64[l7
+
,	L;=+3&98&+)>>+3&98&+)>=+3&88&+)>	Wj|r>Q$~d$kaw+-wi[[\;/xgY$kaw+-wi[[\;/xgY$kaw+-wi[[\;/xgY     J \ m   4.'.'&#"#"'.'&47>7632327>7>54&'&#"327>"&47654'&462"'&476'&462"'&47>&'&462i$		$^"

+%%
+
"^$		$W "@9O?1&&18?t@" W&%%&4KK6pp&46ZaaZ&4mttm^x	--	x^=/U7Ckkz'[$=&5%54'4&KK4r<r4&X4[ [4&mm             ' / 7 ? G O W _ g o w        "264$"264"264 "264$"264 "264$"264"264 "&462"&462 "&462"&462 "&462 "&462 "&462 "&462 "&462"&462 "&462"&462^^^^^^^^^^^^^^^^^^^^^^^^^^ ppppppppppppppppppppppppppppppppppppppppppppppp`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^pppppppppppppppppppppppppppppppppppppppp  	         L T i {   "&4626"&462$"&462#"&4632654>7>54   "&54>2"&462%"&54&#""&546 %#"&'&'.7>#"'&'.7>&4&&4&4&&4S Z &4&&44$#&&&j3$"('$&4&[՛[&4&&4F&4&]\&4&$
+	!D4%	,\44&&4&4&&4&- Z 4&&4& ;cX/)#&>B)&4&j9aU0'.4a7&&u՛[[4&&4&@&&]]&&Ώ0
+u40
+)4         # g   &'.#"32676%4/&#"326'&#"2632#2+&'%#"'&6?676676632%#"'&6767#"&'&6767#"'.7>327"#"&'&6763"'.7>;7632;>%5K$
+"0%>s$
+"0%>;;>%5KVL#>H30
\($$(\(єyO2F/{(?0(TK.5sg$єy#-F/{$70(TK.5sg$L#>H30
\($$(\#(@5"'K58!'"58!'"55"'K#dS$K		K$Sdx#@1
wd>N;ET0((?
+-
+2K|1
wd#N;ET0$(?
+-
+2K$#dS$K		K$Sdx          D N \  2654& 265462"2654   #"32654>7>54."/&47&'?62 &4&&4&h՛[&4&r$'("$3j&&&#$4["@GB[
"&&Β&&][u&&7a4.'0Ua9j&4&)B>&#)/Xc;u՛""
Gi[       X h  #"&54676324&'&#"'>54#"32#"54>54'.#"32>7>767632326#!"&5463!2b
)
+:4FDN

[1,^JK-*E#9gWRYvm0O	w@wwwC22c@X&!9{MA_"S4b// DR"XljPY<	@www     %   e  4.#"32>7676#'.#"#"&54>3232>754&*#"&54>763 >32
''il$E/
+@P@
+^`'W6&!.. ! -P5+
+
+
+E{n46vLeVz:,SN/
+M5M[
	]$[^5iC'2H&!(?]v`*	l	b$9>
    = R   2
#"&5467%!"&7>3-.7>;%.7>322326/.76/.'&6766/&/&#"&676	&676&6766/&672? =1(H/ 	'96&@)9<')29%
+&06##$ J 07j)5@"*3%"!M
+%#K"%Ne8)'8_(9.<c +8 8(%6 <)'4@@)#-<^
+?%$-`%.
}Q!&}%&N-lIJ;6>/=*%8!Q #P"\Q#N&a)<9     b R ] m p  %"'.'&54>76%&54763263  #"/7#"' #"&/%$% 322654&#"%'OV9
+nt
+|\d
+ϓ[nt
+|@D:)	
;98'+|j," 41CH^nVz(~R	9\'	r

+@L@
	@w46HI(+C
+,55,
+f[op@\j;(zV~      i  / 5 O  #"'&54>32&#" 654'67'"'>54''&'"'6767&546767>7蒓`V BMR B9)̟!SH-77IXmSMH*k#".o;^J qןד>@YM
$bKd ү[E";Kx%^6;%T,U:im=Mk        ) . D T  4'"&5463267&#" 6;64'.'4'>732676%#!"&5463!2),蛜s5-<A4ϲ
+2W9
+&P:\3)SEPJD4:3NIw@wwwNE	2@uus+,/?xsatmP')fHVEA(%dA4w&4J5*@www        O [  4'.'&54>54&#"#"'654'.#"#"&#"3263232>3232>76  $$ Cf'/'%($UL
+(
+#'/'@3#@,G)+H+@#3
^aaX@_O#NW#O_.*	##(^aa   q [  632632#"&#"#".'&#"#".'&54767>7654.54632327&547>P9	B6?K?%O4T% >6>Z64Y=6>%S4N$?L?4B	@{:y/$ ,'R!F!8%
#)(()#%:!F Q'+%0z:z       O _  4'.'&54>54&#"#"'654'.#"#"&#"3263232>3232>76#!"&5463!2 Cf'.'%($VM
+)
+#'.'@
3
#A,G)+H+A#
4
 w@wwwXA?4N$NW&M&L/*
+##	+@www      	   O  $>?>762'&#"./454327 327>7>	 EpB5
+3FAP/h\/NGSL	  RP*m95F84f&3Ga4B|wB .\FI*/.?&,5~K %
&Y."7n<	"-I.M`{ARwJ!       F X ^ d j  ''''"'7&'7&'7&'7&547'67'67'67'63277774$#"32$			*'ֱ,?g=OO&L&NJBg;1''ֱ.=gCIM
$'&&NJBg=.%w؝\\w
Ioo<<   -NIDg=/%(ײ+AhEHO*"#*OICh=/'(ֲ/=h>ON.]xwڝ]7e[@        ) 6  !!"3#"&546%3567654'3!67!4&'7Sgny]K-#75LSl>9V%cPe}&Hn_HȌ=UoLQ1!45647UC"    
+        ! - 9 [ n x     "&46254&"326754&"326754&"26754&"26#".547632632626326'4#"#"54732764&"264.#"327632>#"'"'#"'#"&5#"'67&'327&'&54>3267>7>7>32632632T"8""8)<())(<))))<))<))<))<)Tد{ՐRhx=8 78 n 81
pH_6Soc
F@b@?d?uKbM70[f5Y$35KUC<:[;+8 n 87 8/8Zlv]64qE 'YK0-AlB;
+W#;WS9
&(#-7Z://:/Tr++r,,r++r,,r++r,,r++r,,ʠgxXVעe9222222^KVvF02OO23OO`lF;mhj84DroB@r+@222222C0DP`.r8h9~T4.&o@91P       % 1  4'!3#"&46327&#"326%35#5##33  $$ }Pcc]<hlࠥYmmnnnn^aaw!LYƏ;edwnnnnnv^aa     %    '  #"$#"#.5462632327>32 1IUΠ?LL?cc4MX& 04;0XpD[[DpD,)&&    Q	    9 V \   26&".'&'&6?.#"#26327677>'32>&3#'&+"?626&"#!'.'!"&5463!>;26;2!2P  P 	
+92#.}SP9::%L\B )spN/9oJ5 
+!+D`]BgY9+,9%
+Pk4 P  P &NnF!_7*}B<{o0&&B;*<@$ucRRc#@16#37c&@@@
J"@*4^`EDBo/8927
+*@O LC!T!323X$BJ@@@ &AS
+0C59"'D/&&D488$5A&         % O  #!"&547>7>2$7>/.".'&'&2> ^B@B^>FFzn_0P:P2\nzFF>R&p^1P:P1^&R
+P2NMJMQ0Rr.B^^B	7:5]yPH!%%"FPy]5:7	=4QH!%%!Ht4=<"-/ ?          1 P p  +".'.'.?>;2>7$76&'&%.+"3!26#!"&5476 7>;2'
++~'*OJ%%JN,&x'%^M,EE,M7ZE[P*FF*P:5

^B@B^){$.MK%%KM.$+X)o3"a  22!]4	I>"">,&S8JB##B12`
`B^^B8&ra#11#$R&              " & . 2 v  %/%''%/%7%7'%7'/#&5'&&?&'&?&'&7%27674?6J"0<=_gNU? DfuYGb7=^H^`	=v~yT3GDPO	4Fѭqi_w\ހ!1uS%V_-d
+1=U{J8n~r        ' U  4.#".'"3!264&"26+#!"&5463!232+32+320P373/./373P0T=@=T֙֙|`^B@B^^BB^`````*9deG-!
+
+!-Ged9IaallkOB^^BB^^B       	 + Y i  "&54622#!"&54>;2>+32+32+#!"&5463!2324&#!"3!26֙֙0.I/ OBBO	-Q52-)&)-2
``

``

`^B@B^^BB^`
 
@


|kkl"=IYL)CggC0[jM4				




B^^BB^^B
@

@
       ! 1 A Q u   4.#".'"3!24&"254&#!"3!2654&#!"3!2654&#!"3!26#!54&+"!54&+"!"&5463!2 )P90,***,09P)J6 6S"@8@ ^B@ @B^^BB^Ukc9		9ckU?@@88@@N@B^````^BB^^       ! 1 A Q u    #!"&4>32>72"&462#!"&=463!25#!"&=463!25#!"&=463!24&#!"3!546;2!546;2!26#!"&5463!2 J6 6J)P90,***,09P)"@8@
@

`@ @`
^B@B^^BB^ՀUUkc9		9c`@@88@@2

@
````@B^^BB^^            (  %.'"&' $&   #"$&6$ wCιCwjJ~J>LlLśJSSJ͛>6LlL         $ ,     $&6654&$ 3 72&&  lLmzzBl> KlLGzzG>           ' 7  #!"&54>7&54>2   62654' '3/U]B,ȍ,B]U/OQнQ>+X}}X0bӃۚӅb0}hQQh>ff            # =   #!"&4>3272"&462!3!26#!"&5463!;26=!2 J6 6J)Q8PP8Q) 

^B@B^^B``B^VVVld9KK9d`
@B^^BB^``^        + ; K [ e u  4.#"'"3!264&"254&#!"3!2654&#!"3!26%54&+";2654&#!"3!26!54&#!"!#!"&5463!2"D/@@/D"?,,?pppp@@@ @^B@B^^BB^D6]W2@@2W]67MMppp@@@@@@@@n`@B^^BB^^       + ; K [ e u  #!"&54>3272"&462#!"&=463!2%#!"&=463!2+"&=46;25#!"&=463!2!3!26#!"&5463!2?,V,?"D/@@/D"pppp@@@ 

^B@B^^BB^D7MM76]W2@@2W]֠ppp@@@@@@@@`
@B^^BB^^      A  #"327.#"'63263#".'#"$&546$32326J9"65I).!1iCCu
++I\Gw\B!al݇yǙV/]:=B>9+<F+a[lePn[A&JR7t)+tHkFIK      e	    .    #"'&'>32%#!"&5463!2#"&54>54'&#"#"54654'.#"#"'.54>54'&'&543232654&432#"&54>764&'&'.54632 ?c'p& ?b1w{2V	?#&#9&CY'&.&#+B
+
: &65&*2w1GF1)2<)<'
+
+(
+BH=ӊ:NT :O	)4:i F~b`e!}U3i?fRUX|'&'&Ic&Q
+	*2U.L6*/
L:90%>..>%b>++z7ymlw45)0	33J@0!!TFL P]=GS-kwm	!*         (  %6&692?  $&6$ 	' al@lLlL,&EC
+h$LlL        
  / 3 7 ;  %"&546734&'4&" 67   54746 #5#5#5ppF::FD<pp<D
+
+PppP<dud<M- PppP -Mǅ9          
  / 3 7 ;  %"&546734&'4&" 67   54746 #5#5#5ppF::FD<pp<D
+
+PppP<dud<M- PppP -Mǅ9          
  / 3 7 ;  %"&546734&'4&" 67   54746 #5#5#5ppF::FD<pp<D
+
+PppP<dud<M- PppP -Mǅ9          
  / 3 7 ;  %"&5467534&'4&" 67   54746 #5#5#5ppF::FD<pp<D
+
+PppP<dd<M- PppP -Mǅ9            	  + / 3 7  %"&54624&'4&" 67   54746 #5#5#5ppppD<pp<D
+
+PppPOqqOM- PppP -Mǅ9         & . 6 > F N V ^ f n v ~      "/&4?.7&#"!4>3267622"&4"&46262"&42"&4462"$2"&42"&4"&46262"&4"&46262"&42"&4$2"&42"&42"&4
+
+
+
 R
-
-,Dx
6
\
DLX*(2^n0|bX*Z >n@jDH. 4 n  !<!!!"6""#^##$$%,%&&'&'P'z'(@(d(())F))*@*,,~---.,../"//0F11|22z223f334V4456556P67V789 9n9::T=b=>>:>>?|@@>@xAVABBBBCRCDE:FFxFGVGHZHIJIhIIIIJ(JFJdJKKVKLpLMfMNNNOpOPPfPQZQQRRvRTUVRVWW8WWXXhXY Y*YTY~YYZ>Z|ZZ[R[\\<\\]@]]]^^^_F`(`aJaabTbbc cd^dde,eef.fggzghhhiiBiijj4jZjkknkklbllm mhmmnn^nno6oopppqvqr0r~s"sst4tu*uv*vw&wx0y@z8z~z{({n{||J||} }}~F~p~~~FnbP4t:~臮P܊2~hʌ,(Tԏ2lr8ꔪ\`\.̚^Ɯ:؝<vB~ԣTT@§VVتFܫfP8z&t"ڱಊh" H&NʽLLؿο8JfT<Ş,ZǰȐʈ˂jΊDϒhѠBFӬN|||ԲՖ\J׈:R۪dܮ>݆0ޚF߄vDjz8r,d2pL b(< P2nrrrrrrrrrrrrrrrr     x '            @            	   ^    	   ^  	   t  	  .   	  &   	  $   	     	    	    	 	   	  *  	  <  	  D  	  0Z  	    	  
-  	  C o p y r i g h t   D a v e   G a n d y   2 0 1 5 .   A l l   r i g h t s   r e s e r v e d . F o n t A w e s o m e R e g u l a r p y r s :   F o n t A w e s o m e :   2 0 1 2 F o n t A w e s o m e   R e g u l a r V e r s i o n   4 . 4 . 0   2 0 1 5 F o n t A w e s o m e P l e a s e   r e f e r   t o   t h e   C o p y r i g h t   s e c t i o n   f o r   t h e   f o n t   t r a d e m a r k   a t t r i b u t i o n   n o t i c e s . F o r t   A w e s o m e D a v e   G a n d y h t t p : / / f o n t a w e s o m e . i o h t t p : / / f o n t a w e s o m e . i o / l i c e n s e / W e b f o n t   1 . 0 T u e   J u l   2 8   1 1 : 2 3 : 1 2   2 0 1 5 k e e p o r i o n F o n t   S q u i r r e l                               x           	
-
    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq   
rstuvwxyz{|}~ 	
-
 " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab cdefghijklmnopqrstuvwxyz{|}~ 	
-
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef uni00A0uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205Funi25FCglassmusicsearchenvelopeheartstar
+
+,H8Jfj QhjG^R,
+
+!4&&4&Z4&&4&4&&4&4&&4& &4&&4 4&&4&4&&4&Z4&&4&4&&4&4&&4&4&&4&4&&4&&4&&4&Z4&&4&Z4&&4&
+
+
+
+R
+
+,[cGj  hQRJ'A,
+
+&4&&4Z&4&&4Z&4&&4Z&4&&444&&4&&4&&4Z&4&&4Z&4&&4Z&4&&4&4&&4Z&4&&4Z&4&&4&&4&&4Z&4&&4Z&4&&4        % - 5 = E M }           +"&=#!"'+"&=&= "&4626"&462&"&462"&462&"&462&"&462#!"&=46;4632676/&?.7&#"!2 "&462&"&462&"&462"&462&"&462&"&462"&462&"&462"&462@?A A?
@
@R...R@`jlL.h)**$	%35K.....uvnu....@@jN **.t2#K5..R..R.       
 @ H q   '&'&54  &7676767654$'.766$76"&462&'&'&7>54.'.7>76ȵ|_ğyv/ۃ⃺k]
+:Buq
+CA
+_kނXVobZZbnW |V	0 	Q2-
+l}O		/	:1z	
+q% zG
+4(
+
+6Roaą\<
+
+)4	J}        %!!#!"&5463!2    ^B@B^^BB^ `@B^^BB^^       %#!"&=463!2 ^B@B^^BB^B^^BB^^           &  ))!32#!#!"&5463!463!2      `B^ ^B^B@B^^B`^BB^   ^B @B^B^^BB^`B^^       # 3  %764/764/&"'&"2?2#!"&5463!2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+s^B@B^^BB^ג
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@B^^BB^^     # ' 7  "/"/&4?'&4?62762!!%#!"&5463!2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
   ^B@B^^BB^
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `@B^^BB^^          	!  $&6$ .2r`LlLf4LlL         # . C    &>"'&4762"/&4?62'"'&4762%'.>6.'.>6'>/>76&'&.'&7&'">?4'.677>7.>37654'&'67>776 $&6$ (4Z##
&##
&y"6&.JM@& "(XE*$+8
+jT<l$3-V<
2'.


+-1
%#e"!Z
++*)H	 8
(j

	#*
-ƷVv/kh?'MlM$($R#

&
"
#'#vZ@+&MbV$
+
+G7
--)
+
+R2T
+313dJ6@8lr2_5m/."G:=	)%5f0gt*2)?;CB66&, 	`48]USyLlL         G  6?>?3#'.'&!3!2>?3.'#!57>7'./5!27#'.#!"g%%D-!gg<6WWZe#1=/2*]Y3-,C1/Dx] VFIq-HD2NK'>*%R=f
07=.
fD]\|yu       , 0 > S e u  #2#"'&5<>323#3#&'#334'."#"+236'&54.#"5#37326#!"&5463!2		<	zzjk-L+ )[$8=".un/2 ^B@B^^BB^5cy	
+
+(ݔI(8?C(3> #"($=@B^^BB^^     0K    S   &'.'&' ./674&$#">&>?>'76'#  "&#./.'7676767>76$w
.~kuBR] T%z+",|ޟj<)(!(	~ˣzF8"{%%#5)}''xJF0"H[$%EJ#%
.Gk29(B13"?@S)5" #9dmW";L65RA0@T.$}i`:f3A%%
+BM<$q:)BD	aa%`]A&c|	Ms!
+Z
2}i[F&**
+< ʣsc"J<&NsF  %  0 @ W m  6&'.6$.7>7$76".4>2.,&>6 '"'&7>=GV:e#:$?+%

+q4g
+&3hT`ZtQмQQмpAP1LK!:<}҈`dlb,9'
+
+
%%($!
a3)W)x

оQQоQQcQǡ-җe)Us2XD\ϼYd           / ? O _ o      #"=#"=4;543#"=#"=4;543#"=#"=4;543#"=#"=4;543#"=#"=4;543%#!"&5463!2++532325++532325++532325++532325++53232p00pp00pp00pp00pp008((88(@(8 0pp00pp00pp00pp00pp0          @(88((88          / Q    /&'%&/"&=.6?&?&'&6?'.>-#".6?'.>'&6'.>54627>%>76#"'%
%6

27
2G
f!)p&4&p)!f
G2
72

	*6	"
47
2G
f!)p&4&p)!f
G2
72

"	6*	!k
3

j&3
+%,*&&ր*9%
+3&j

3
k!./!>>$,*!k
3.j&3
+%Ԝ9*&&ր*ǜ,%
+3&j

3
k!*,$>>!/.           &  6.'&$	&76$76$PutۥiPuGxy
+Զ[xy
+-_v١eNuv١e	 =uʦ[t78X       
+    & 6  ##'7-'%'&$  $6 $&6$ 31NE0gR=|||">"LlL^v!1f2iЂwgfZQQ^>"||||wLlL  &Z X b l w          .'&>'&'&".'.'&&'&'&7>767>67>7626&'&>&'&> '.7>.676'&'&'&'.67.>7>6&'&676&'&676.676&'&>&'&676'.>6/4-LJg-$	6)j2%+QF)b3FSP21DK2AW")")$??8A&AE5lZm=gG2Sw*&>$5jD GHyX/4F r	1
	1""!l=6>	6
+,5./'e

+

.*|Ed!
u&&%&	&5d	
))66@C&8B@qL?P^7	G-hI[q:<rS	U~97A_IR`gp1	1	;"("j?>"T6
+,6 
+   &        / `                                      L       w       Q'             	 
+              A  	   ^    	     	     	  "   	    	  $&  	  _  	    	  y  	 	   	  *  	  < C o p y r i g h t   D a v e   G a n d y   2 0 1 6 .   A l l   r i g h t s   r e s e r v e d .  Copyright Dave Gandy 2016. All rights reserved.  F o n t A w e s o m e  FontAwesome  R e g u l a r  Regular  F O N T L A B : O T F E X P O R T  FONTLAB:OTFEXPORT  F o n t A w e s o m e  FontAwesome  V e r s i o n   4 . 7 . 0   2 0 1 6  Version 4.7.0 2016  F o n t A w e s o m e  FontAwesome  P l e a s e   r e f e r   t o   t h e   C o p y r i g h t   s e c t i o n   f o r   t h e   f o n t   t r a d e m a r k   a t t r i b u t i o n   n o t i c e s .  Please refer to the Copyright section for the font trademark attribution notices.  F o r t   A w e s o m e  Fort Awesome  D a v e   G a n d y  Dave Gandy  h t t p : / / f o n t a w e s o m e . i o  http://fontawesome.io  h t t p : / / f o n t a w e s o m e . i o / l i c e n s e /  http://fontawesome.io/license/                                                	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab   
cdefghijklmnopqrstuvwxyz{|}~  "	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ glassmusicsearchenvelopeheartstar
 star_emptyuserfilmth_largethth_listokremovezoom_inzoom_outoffsignalcogtrashhomefile_alttimeroaddownload_altdownloaduploadinboxplay_circlerepeatrefreshlist_altlockflag
 headphones
 volume_offvolume_down	volume_upqrcodebarcodetagtagsbookbookmarkprintcamerafontbolditalictext_height
@@ -1208,4 +1449,4 @@ unlock_altbullseyeellipsis_horizontalellipsis_vertical_303	play_signticket
 level_down
 check_sign	edit_sign_312
 share_signcompasscollapsecollapse_top_317eurgbpusdinrjpyrubkrwbtcfile	file_textsort_by_alphabet_329sort_by_attributessort_by_attributes_alt
sort_by_ordersort_by_order_alt_334_335youtube_signyoutubexing	xing_signyoutube_playdropbox
stackexchange	instagramflickradnf171bitbucket_signtumblrtumblr_signlong_arrow_down
long_arrow_uplong_arrow_leftlong_arrow_rightwindowsandroidlinuxdribbleskype
-foursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380
plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464uniF1F0_466_467f1f3_469_470_471_472_473_474_475_476f1fc_478_479_480_481_482_483_484_485_486_487_488_489_490_491_492_493_494f210_496f212_498_499_500_501_502_503_504_505_506_507_508_509venus_511_512_513_514_515_516_517_518_519_520_521_522_523_524_525_526_527_528_529_530_531_532_533_534_535_536_537_538_539_540_541_542_543_544_545_546_547_548_549_550_551_552_553_554_555_556_557_558_559_560_561_562_563_564_565_566_567_568_569f260f261_572f263_574_575_576_577_578_579_580_581_582_583_584_585_586_587_588_589_590_591_592_593_594_595_596_597_598f27euniF280uniF281_602_603_604uniF285uniF286_607_608_609_610_611_612_613_614  U`  
\ No newline at end of file
+foursquaretrellofemalemalegittipsun_366archivebugvkweiborenren_372stack_exchange_374arrow_circle_alt_left_376dot_circle_alt_378vimeo_square_380
plus_square_o_382_383_384_385_386_387_388_389uniF1A0f1a1_392_393f1a4_395_396_397_398_399_400f1ab_402_403_404uniF1B1_406_407_408_409_410_411_412_413_414_415_416_417_418_419uniF1C0uniF1C1_422_423_424_425_426_427_428_429_430_431_432_433_434uniF1D0uniF1D1uniF1D2_438_439uniF1D5uniF1D6uniF1D7_443_444_445_446_447_448_449uniF1E0_451_452_453_454_455_456_457_458_459_460_461_462_463_464uniF1F0_466_467f1f3_469_470_471_472_473_474_475_476f1fc_478_479_480_481_482_483_484_485_486_487_488_489_490_491_492_493_494f210_496f212_498_499_500_501_502_503_504_505_506_507_508_509venus_511_512_513_514_515_516_517_518_519_520_521_522_523_524_525_526_527_528_529_530_531_532_533_534_535_536_537_538_539_540_541_542_543_544_545_546_547_548_549_550_551_552_553_554_555_556_557_558_559_560_561_562_563_564_565_566_567_568_569f260f261_572f263_574_575_576_577_578_579_580_581_582_583_584_585_586_587_588_589_590_591_592_593_594_595_596_597_598f27euniF280uniF281_602_603_604uniF285uniF286_607_608_609_610_611_612_613_614_615_616_617_618_619_620_621_622_623_624_625_626_627_628_629uniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BEuniF2C0uniF2C1uniF2C2uniF2C3uniF2C4uniF2C5uniF2C6uniF2C7uniF2C8uniF2C9uniF2CAuniF2CBuniF2CCuniF2CDuniF2CEuniF2D0uniF2D1uniF2D2uniF2D3uniF2D4uniF2D5uniF2D6uniF2D7uniF2D8uniF2D9uniF2DAuniF2DBuniF2DCuniF2DDuniF2DEuniF2E0uniF2E1uniF2E2uniF2E3uniF2E4uniF2E5uniF2E6uniF2E7_698uniF2E9uniF2EAuniF2EBuniF2ECuniF2EDuniF2EE                                   =    O<0    1h
\ No newline at end of file
--- a/assets/fonts/fontawesome-webfont.woff
+++ b/assets/fonts/fontawesome-webfont.woff
@@ -1,305 +1,392 @@
-wOFF    =                           FFTM  D      n2GDEF  `       '~OS/2     =   `6ycmap    s  bgasp  4       glyf  < "R 䨢Ɂhead %   2   6hhea %   !   $
-jhmtx %    	F_loca (    v|maxp -       name -    3<post /D  8  vwebf =|      aU       mQ    Q     N            w         xc`fsfb"l6F0#F    x͒Kq[#][_+񗀫Jp838ln!A/u	R:$NQc_=&}Q8H9xGDC4i%c>DYTMj[ڥ?+t:.^kLќ6kK/C9PB5lm죅,fIX
-V:\^hJעZ-ѦUAX@yQFc;h
52e-oE+[sܪ[vK[t/ۣ'Zݣ32-/$!q	1y.䩄eHB	5_/?;w+/O|g|dmp,o^(߁h8825M3['     xڼ}	|Te7oL&̚0kYlbDQTąQ)
-TFT}vVoEj[j7Ƕ~?[!?$$2}=s=<s[9DxperAyV<U*r8qUQ#㐐Lb(MeAEөn&H|xyQp>QxGs8xX"MEpxgs]ղ:hɄ[zS,$.5n
*F$gۅfyw3Iv6
۸ !jC#6{&]v'ϫw 	]CT&_uq$ ?_u#Z IZb5ꏢ7z׿F'pq\D%^fF1ႱȝN3pd3nItz`ޣm]K>	(f`V trf7_;--نofϯ=]W(.?mڴ='"gV>zYgێ<%LFwԑNhn1[qC§	?vwP:䡔x!٪urՒpxUto]?܂,>!AQ	 U(f#J&VJt(NG	u57N
~;UUMYgzmSSІZgD بN_KWSգDr;&o5JkWנ]^fjY؁յ/Lf&> 0\!n,@Ԗ	dn.O,wm	8%7@ݷΝ/`V9Y\}#隒hV.vspqqB:mF
brf  2/-4>c?[}GlgsQoan4FʩSLX$BUC9^
-V
?=$IԇRsX[<xz>n=fjи;K<S*Oaud1h
-'agplLXSkUZ%a0W8}q=e>/*⨓LzUM8gᣏ 1,@inj8Vcή9x;e>83$h)G=o[C=Q{m	݁6Sϧ^(ʑv ⸰ÊĆѲ~l.GJVTJ~hRhE7k:-!mnfAJ7syH12(Ȩs>֗Cg?T!inIssmg@Gk@kŹjޏҹ/ȥ)fE> Iٌ%a pZnM]'߫Į6_V6mزtW_eC5P|~OєN ߧzX.,|Mrm˚-+"۠1۠PG.R
H"ȏ얂(e9Q+27nt0}Y
B;<1* :\	
-A>%H֨(jX1R4FQG!-&ag g=j
E-H ?ᓇćmo(|^ɲJ,Diw1Igo/f|Re{sc߭MYbc07&e"&!rrO6ܢ7^1MFښĴZ4--ӗLsÖĆIEKNvvpY
FfpK5<z~Jv#
 k:[Cv-lN&q+!9bPM26H*e`}0Sts	:-v#$|u`^1? ˯߾|H*][50`
-Sg] h!v2(Q@;e7l* W=nubdu(:[6`P.B<BRxB=/4*ߦ}S7}N0[ q[9Z//?T	] {|y/V3Svv46wOl}6,Ggð;;MB4p<xJũO)t	1u؉BPT!R|Au'<& _ZۣΡ4iALSGSjG""P;
1 
-
tsac\*r3;MblGV߅p/z\vb
-IrGXbɤxbF5`L7P|Y7<vw)h"\`(VLە衫$Ǡh4pqP80$
Ou܁^jΞzYnB@!J|qMGSZ.x:5(PCF7`Å਴*N9	E	X-W?`PiՂUsV`3L7z)7uЎUvЙm[bh򶮯j@QmumrvɄzz`C|HS1		8`dAΓBzOFUCKr޴/58Gڰ	P3.ih)j\-P<$˞qC=~j]-uJ#]Q?U*mJVXEC
8[2A=% g?v&Y׎$ŸOtW(v)[n85cJ(ަX_WcsMڑĮ6	s*\!~

-rR^)֕
-Ӆ\?IA[nQRt`)}½klp4+5
-+lVfr9
-Аԯ\y-VD45n(4;ߧ%dBkJnR~aӥq\+.FL!~y#3&vCSC9cxhR'pIô>~Q5q^5GDiA8)%LQV+C[.o'\aÛա"ۯ1Dt?^hp+2epY`h Ū[pAuNqf@!
-Xr}BMiݝ
-껲wv-Mdv
-i8t_PSk6%5>-u;;f(Mhё}Vs,Z?X;8feCJt|õo(6:ﺆuϨ?W
[
G!B(5?z-Q30tOps^`)
lYv]^Q+@8~p8oX]8h\jEz"ZK<MW8Z!\A
-/>ʚ:qi6MR-])'ϝkzEV	*VGn	ZgevK
k#B-]s6g	R(zo@pG0jv:cQ| }V4&K-!Nӏ>
-YZ!D1G5ןX1_SSvfƻPzkC=vVsÉ['~+st:Ci~A!FAt_Fp!9$4Ғ(HH/Jvs+|Fy.~4p40BQ)yS>3bgÙq̠ͥdHN*_?7Gzzf4YO?u_y]Wţ(aD@AT(1B6ETg,t
-
Qo}j.Qa$Ftq-gMB=ƅ(ς-~ZC})談LP~458=6XI,Mڍf1[Q(-.I\=(%qrፋy\"3{GχyG:-.Q'G0CQ3`5
ẌMp;ɂ5Apl:#o>ܪ-gu-]ht[ 6[sHnBzë3E~v̱j{ɯ]!S}P([06p^`,TjB<u^U;B^ono8v.VW_Ѓ__Fm3a|`reah\zƢ>w-|^#D󐆻<|G|9W#9F{2HA Ϲ(o >]]
h =bGQ®*md_12DQSyJ*ӘKoTKGdM<x1m޼iwΣ(oY, N(g4Q3GC@y	DN$RH1$}6Jt-5<}iy%xѺaU[Eԣ?ې[ԛeHn͈;C!Kȏn;G2X=ބOZ$5X
cZ'F,96tǿEpNZLow,%:]N/丈+S$C#pGaNAVDI4H'NH <
-{9,XCĦYvmHv\7Da(
-Ň-I߀~{k'n\;+s?)L٬^i
syCdJc5۳mf̉'k7{[=V?ku&Zάx+۱⦾ԪO.~9>ѥѦ<]9YBY(n,%M!-HCÓrEn!:ϲ`gF6#ObE	~񦎶w$q2v-OXͷv7cPS1r)Ui
v/BaٹV;_;%Kخr7%\V&chSvF#Kxc8Bh>va~
);|FNaJQgDCvY|5hw耟=dIgL/Ü	7:-&c!VWSGlf$%C@τY$y{at(ɒx_ʮaEH0:OY_<#K_}v7X;I
x-M܍qMyǥkG1&p! )qn׸ALG頰AGi]c7NƎ$bCNt:p9	LQphBaSQȻT۹Bb.K.o#Xp'H#l|Ϧ7ufs粝&U <
vØcģ@Ր/"Ƽ4{$}mۿy"餅fSѴcS#)lw̔3\8TvNi<1v߹_&)"ZN31VS'r8gaT䒳8?[W$RO(K0h1c]=c/61!|7Y͇şS!B) =M3{Rv"+N~Љ{3TA;&A:ףbVz(fO>7=Q1
-GgYu''crt+h&
->n	-A]xL}*u1̦Zzű܎cvc落dQQ,(ṟO Wh)I,k#IiLH4bgCQ86oܺuz*rX?D:% yMXPs`؀%pBI^p-^
`6&9Nz4>(0Ae[k:A*V'K48\P"GՁL:VRmɓAMepTWh#GSc%Z>cDQ&:Tﱪh
-zM!%
-çhs8'Ȕ(TbSLq7R|N}u潡ƫ;
-EJg"2,	 	@ۅ9s$<@osԓjRwyWKQ>Dfsg(N={R~Vw|C_~^B?E\77Z&te2
-6T_tEؔK0Lvd v3('4f`H 9k| n:ηHu4 ŴB^JqFP(jB {o6C)6:To
-A)K*ț5l%4tO=tۥhw](DV=
-.r]n{gym5VzS[X|g7U`'!Xb
|)Ǧӣ<Mϸlit`OK숹IRneRDJxҝLJ8v23Ω,?Qy<WIvx]oJL
-Si :tzYdjF`|*3DYGeV
-:b3G|R^a,NI
-s F28vI@> h>^zelm?`2͎rʙ,*=_%)ULS9I/
5e05FVDo_$հDX:K;&i$6y-FvyhKmIUj^լSQhmn`tGg}F-M5&HdbktөW[hs~+3yBks
-U? W(SME˰[Z1Әryw6vJܥJ4~>::raS#~9`aJe89|<V5Q:JUC7y8::@A_ݘ1kbl[7R{uckWӰ/JpRq)@U3B뱌=ᥪiSC-AzG੍C#G? K/Gt#3(8*OaN-4V(RgBCQZ^JaCy࿖&=8堦Óʚ"OZbNv?<L(,7^t'W93j>SJԮrklCЄh	d4{T+TʘeV#=]DmiMʳ*KZpn6%/xh%k,VOkaMZmUzxjV/-Tm!sXkCW70:cāƬ$gdApf8ϊ8wU[{$M6m=`ǵ~"XyO*mq
-hK;.}WGO(1>wɸ.얁0&3?Z`/;{bA+聴XbAR"@GH72_I*etl%-2/\A/gеQ=gߊC`nܕ 4e쥀2!&iJ?1HiW%
-+בLqAװo<0ʇI%Mp3Uw=*
-PR+Eއ/Qv} O!,%BLO8CN`2 T0M?#V-5?d;?Q'Q+:	ԣIWQ.zFІ>]kL1jfCh G"NzƅLϧ_/C&?]	4|$-Ji-v
-J(F
-Hq{,A(R̥fLk?JGDh3KC(
-Cvsi>!G5QcG;KݤKD5~Ŋbl&BKH[h[5"=,ԙ/~ԭ
-U[2
O)@T>Տt" qxRO_$
-ƺEe/Px/rT"!(鞷ڃIL'j3I&+ٝ~o,TJv!T9wl1:dNʺ/E(&1ik;//?&֊x^4
WU4AZ^nm0{Kҳ/K_ȥ!&K3@z/ː#w	7Y;&k7y!&l>4a+.M?+ZY! ՛`T*0D,}.u'f"|TRYAqW+4ӇyDMmg*=pJ{#	Zo{i>tK_ۂԢA[R>_	џT_ajOBCdٯTbJLe?^(
 UBpe|e`v8av`oX`HEq_4;t	$tx`ﶠ]9̹Z^H$9tޗd7W8ŐdB(,fIJEBWomÿh7{oV=xL/LM}n;KW>ߵ-:l|}I;?>HѰ2Liچ=wۢZ/'cwNv{A΋?+')Y4 <FR5OzN7OA|^}w`yy5/:ZԷ~ݶ:C:Bv~Ճ/^W@s4<DSыWn܄6ߺVaa?,e:~!'ۭDb[n6.@V	!aqM7fNvpwӻ{n9Lţ5j^+뼲x_#Ըb-PYk)Kq|yɉ``gs1ʙ/Gg!Qbț]UכG>C'}g}vtXojq [/7]
.7mOrsܥdv[fhvMR&ө<ẸYܹ Ějmg
-)mq04J)_Zx~g, ڸy
З}@u])j%d>om`a"ފ<:TpVfIt~z
-[h?U_9ͿJyPl_m&Ů`v	=srK?_^ʵ[s_;pv+"gݓrI	OD/;Zؕ׍Үd&\("h85̐#!ɝs;Iڃ~`Fɢf
f3yTև(? :}[Rvq@l#`Sr
-r^2*ӂy@oVa#Fp[`cbß/Be@DČdˀK6B=J#:͘7
I6Q)]>%)ȸ7W7*]v\\dHVpQ@B(n<y$

#VZ`4Sz~}ow=^ȱl
-C!PIR_`IhBU؉ z0=Ktga,w5Z*1vEe~> ZeJjP"?2T[O	^-5DovF)	Հ.$#\&OqVתwXׯ{vjv~cc1[|X_nh銝UOuoΞ+z\2dǄh5KU]8EM!%
-Ech&J@!KM#t#D'q7%Դr-Od&,9=~#.{SEmE]vx+`]2?~7~n,͟dZNÊ'?~&摒ǿimv.kijY٪y!UV2L4Å}~Oc1.wQB/MZ^9ţ|r#RU!>SeSJZo*JVICQV?|x_@4hXn3:B54W-u1Z/MF2>8C3J<ZrJr֨s6VpV,0oWk7@hP,].5/{`D=wBySAo͢T?Ah|M5%W14JkLY ?d=6{fhLVc1䍦T!:
6*56OHf{3*E1n3#gܺ={!xu{`I>{*w*(G4j_;˪T*jI )5|iULý
z\|!.?ѥJ7>nKC Qm"/UD&[1 ;zq]V]JZusKWmPNHA|w<x-lʺMfpt΂rه0r *OQaNa;4oXjYq9vze ՐP7B8Et@2gl\53t[upoϩ[ۚxAun>/n΁Ӏ6n:c5c}|Q{ê:Eva.T[t|2c+:6.4LuSJzr2[E6e|3Yh^:{Wϵw<Q|1(/GSZ]1jUT.QzUX{,mL9[4 \&A Z}^3$-c2GÇO>_7Նn'WQOq龾Oe}}/=:&4<Go<iAO6CNWm:fIMK%ٲ*'[Ʀ%[Ko
>L^-n>sW^D'_
]4@ZdA\[45*[Ko7p>m<9/gGH3rhٚ^X.̐;Ν=+*?1MTAL&IQ-9h=,{Q VUov^k%@NfgPDÑзO{ya];Hhxd66RII64W'ՙhRSm8ɞwa]pXuxx,'yl|R6?qӗ0$ O0(jle0$ibc5|<O}Vo,vMzl$5M:u1Im7Clښkx2ocyounÁ!j^#KuV,77f`S	wE@A`aJ/E
-iTi9&tņ*aRA/57>Ni9
7nFsp7uDD׬T{Q|M{ݷ&w~{mu\'DpF?q|O<⌊"yQņ$}|mfźw.ZfzsfMe|#zJILW7`E:`?AO颤9T4Z3G]Pr^Oѕ5S1[ `Եۄv}Ai5Мv<6:DOdoqGc{=f瓋:~0czuhvt(l/Eɪx95]2Z>oa0hӵqѝOmq>繭/]sϿWdI-:0,6`UnGT]IRZ`2jXi{/lXB.bl(u5F<^O4X?陶Phd!n(m36տ1_l/NO5JCrW͜D`{XY%C@BnufcQ#93#
W:nh2}¢.EB01z3,xKЩi"U<PFQl82ʖpq|uvnw=7ܴn`VxB}Il+/qA-hZ,q_ŭ/<M
,'2<*}$NqexP~R-$np#jV&(URVeA8DqTWf>5t<{8Y qd  nqЌ٤]ڍ h鐋(;h?yGB(Y;lC']kfN%Go-@{дG՘&{3[)F*O4TBfm P`1¨LR.vړa0И$MVW/Fbr1u#x1fL"u&]i4}B{}46:ͮoDw~⸘53hT6xFZ(ᲄe\f,,Um)7I`P_S*
-XNIS!lԂ\D =*3E'P	fKa?41(d1WAN
-OzאILNvz!vS~mԎHpop:_~+W7u]-0%fuEMWr8
-@(3ow=O?'>wsLcâdf9e9kf39kvM_`\T.RK+yUort*Im\ApIb<=bQ
R[
-n:>
ԞJ+n?2Hl!Wگ3:)z}Z1|A/ooSimr6y؎!2pf9ͱ/oK_S7%rNcµzg[L2pD{,j*/MF&I
-R$@F`DqI]`3bC0!uNN=sn;s^{<^10UZuI#kmnyXvG[͈磷Tܲm/!LvEQe%6d>缨q]9瘑&*`I+G8j;*G'1>~{;cт9<F ֦qS]2{ Vm8KgX3䣥e5>&eZ cMŎ?htVո<.υ5ߘ쥷lG7~o!lFWMxA~⇾JcBy=KSzk];ҷ=̴[⃍US\?G;R?RWwjwƫ~vk3gt-n3l\^6Ȳ%+@uai+"f??[5LuD3Ejbyѹqd~~âsBoKDͪZd+L5 9QwKޞtXs"AU5d7I$m/%k׭4:MuGgݮ4}GN e[55R؉ΦꁬͨȎcW>chhvFkvJDfn|0>sy3I-p窛5nd6R-.|M?u
-0@pnRd^:-\{GMRL.r=Yli!o`lKdǝh6{cM6j2
-f_qfJg﹈Ldn7[
. Nm]CmF{iNl̂0%MM|}q,EJ﫵WrwlhQ>cF\1kO>7h}ܴŽ\־;7mcݪ򿮸ߏoP0)w/_W8_c`m`$Op$f 	Q2vF(S#ȫ_8$s/zsxOy]F(~Q.Z?男OB8Zj_?u.!vwǚػQ:ɱn(F uᓇF
fՐBYVڳ)ǫ,~
/n]&eLn&4AtCtДT͊Wfx .j<4dVNs
-55dJ[KҠuiLB=3  TB%s8)X^.7kN+܎a ӗߩ7&{	yאe~pkDs\8\s{]6~O:Pݗ(RsמN
4T=Hn{wYehBKc
-=Y<<%mmߕe%N
]ثeQkS[,7\MOO$z[JYX`o 8,lRx
9A<E|!ڧF|4U%ys}ϫש$~6Lhw$jܷt^^j3ߟԟ4kb|'һ(#L@R_i4
-rr\1CL{VI0v{m3
\xPo[>/@Gr\?luW/ڗ^skgΰ\H^gT?]uu>; 8s(>;CNQ'cʞT$^b23ON=IٌgҞ47
iS}]smFTv_SƺzS?.Uc5Mafl[tT~aL7:Os#PU?J^5?cKɒ&l(k&
-7R88Q,yz=y9/~w$>x1>88%6d8k-<3d7Doz҅fF:7s3tib>fB/;=]@Ι¬sYw.w#\da¤21-za'lqhPdhx|2T3fv0Ń˩wXXܟB}wpՊ^D4J/~.]M:ד7E{ZL:=n
-8I4	Ҝ`5yyzcQ2_aOz.墥-`͘sz.=9{P{3 ʊ~~	HPs-ݳJv{(3v1fXu% }1\nQɺc:u4`<~(p>Y
ʏ p'uR6b錇B[x
pRf`ZV؛Dvg*Jg+ĤR.WdӮ&s/Qɥ̤sYx暭sp q~	pu$`Ҡt-@/}8 {,Q0#Ә͔$QOC8Rybp\QRkfp8zjUNx\S!zrAq)$O]&YVKME"m̰֗m(V'u,+9")=>nxF+!V]Zk/ų
WERStk;"Ts٨ٮGgyF>L̈~=t,HJhጏRE12K)(fHƒ,J'a`+%Q^\Lv]W&b)DwԂh

-a.jNtIW*κQzZ딧uIvHnx%5x,ٌf:ᇊXl(81f%ᡨG\W6cQ0KGIt6Ћne.*HnB	\Юl*ueYvv#@RiȠt34+^L1(0Xd;Q7e1QH`Zg@ll  f6M`z6D":	Wb$VAI@Vѥ-!'^"HFKz(k(&zdH*yA,Dodl!AjE
fl 5
-HG6QlA'XD	:$ajăIA/f3!"I:Ld9-xޤn"5a^^+JrŁENcAZ$VV` Cgc^EXp	ㄑ^F"!zm z!o1m<#E$`Cj=بtJȼSxíAЛ$Q'&˄1鉌.B"6
QTa
-&Q0,&Xތay")J>w&$DQ`p!@
-=D0RKqHyD^Â
--$u6^1OHpYklb%N[*(ء=YudIz	
<yP	Ɽz	zd'hFrB6dӈ1!lԋBH}zhh'O6isaaЅE,0:}m2ۍD`Rg
"=du  +&hB:B0k
[	6@^4,	O |`1%%^#vEPذɠIaT2=Ao
dD[iFXVX kDXF'
:C	s\cuRi8G͌nrRm2/iRP?9;lCnsj?[\I<7GXA4Sl6AoKw
˩&(>At 6kg4Rol0Bspߴt!jtK0DY:sW<7.*?5Efse5!<~o$/8&*.RBAWf!nST~DI_6֩JˌqS%f.}TAYrWZҷIU6
hl<4л^EN
h,AڵA]^_-96u*32TF*H;e64#^t;K1{ExM8biE}2+ZwFh.RкEM䘝pMfr˹SN	MRġ+
_`2?LR
-K.zطsƬ^hCw]k(}6zXmGV$LIp벽>T5cgx&@
Kݑ;I>1-$|Z_tKoYq77,R'm#[w 7dqHa?6 FdPxJ9,[!ikLG_R|7s	^ś$`Tk'A߉Ƹ8w^m>/?|ꕻvxu8?š 7ykvI1)Q	ڃ$ƻ.?Gwްrj(yd'2cs\p	5KH?(]sJ~$xt˻a4͘;p-Oco$݇7RXsLG=H3j%fzQ,-d9O7iGȕSE9m]껎v>Ԡ{J]WV/G=֕Ga<:n3/ cd{C-p$ner
,캗aTж4a9Lnfvʢ>j
-aVБb)1cZ<C>"fl).RNaX(mXz]f, 	o
]lm_ ZK]0Z&Zb/^e h9K,I?Cc^2/K؈Cҫ^l9@nѴEwW,^qCfzs3."uiE餜-voړ䞦0{cءkE?8S^=<oj!'v\cbJ'dY)g
-QPHL#oC
-~R̫?CETv?@
P39gQ'ˡ_}@\|`|^,~dpp#([Ь_K1RU~n\c^7t̆\`?,˭)>m֠6AeDw'&[_ѳ"D%m@u^v
as}#ű﯌2kx57u8;
mVV.M`|vmmO6_}'of@5GY94Y[\
2bOO۲^=kwtnKc7&r3 Q[[Rf/$LPޭm; *ˆՌVߍATLJ׽+v˹a;` )֍1>2vgfĔLi;N()JlR> tͽӧMk̫Vl3mѢX=,մ\бq[Ra]Ӽ;6oWT֊%zWOtYvGV_kZs)ڎ%dk:ojcf+事.j|"n#՛*ƕTl/#$L2aU#T!l,Y-iJ!oNg5I w^L}n	'^e0Z
-K"z5glΦadYz`UGK~=cAo֥
8?\hkVL:@S>оvFfu;Z|.jcvZtm&|y?Fu#a5{ł*EIjdYYq9JUohCfE ZnW],ޥFG.}MAo-#Ԟ˶w:3BqjkyV7a)YV/Zjlh%:z\q3wtvlrnx5%4%X37?ݸxFg}>uΆC+gr&+
ČfcBFFEWXZBMԭ幱s"1.=cՅ?ؤ{{lMSV)*nV8Q'LzU_p%
-9lV2Ea&7ZqӝIQ٢7Og/Hߧ~a?tw	?RHђ<,CBk>ߠ|)/`x?)o<ܢ[vjOxa!M(=?@d	5LL$Gf&"u%hJRJ6GbExb~Izyd4z"7ȼ|a-z?R
-4%QfaŖ݈(iOtBuhKW$5~.]uMm-3T_ܴw_k,	r2qw{Edtw:Kr$&WY6XnfsئtcA @P$%!  ![3wSM?l_~_nn,Ŷe1IU3?	칤MYo|?bIo2WUEb+&YF6'Oϖȵ2#).]dQ65<=K՘%+3Tr
^׀gV6.ȏ=oP
eqˆܬR[fMKyE}kr3+5nyXmjL+L&@:f"yKhI	HE")bh]gUu.(5`ү)ZDC׷TfM/64EuU
6RTWW*+sWc;pO+9.hhhKu/':.U#K#ʜjWc`=0?"&8aܨqh
-Zw i x^eH"VPA8ĩ&fHHq	Ra> ҀDLXE#|?bybLӣVX6k?0]f6}?Ys*M<G}N[qYnV2[i;ڻuAl=7iycAOÌC.$Qd~y}-+1>qndOWS>qcW&%_~Bz˖?i;=+ƂPSTY-zTM~$&ZjQ r8D䩞0(hd#{HXwd(&&yӠ;0pqvGW\sy\#mHDK'FyL)M6"&l0 &0*hB Lr@JI5E'{%>q) l6HO"HAҽ	*	1&ޛPڏ1Y$L0yy - &HwPl惙)0DtR`L'aDϝ	ЀFp3=CIy)˰)F¸sU~\=jc^MLR=uvc2y<ͷǿ7IQvz2:ؙ-	!0DiRHpv(ɘPV.qv3jf֖i/[Z &X:UBstG$
-^ڒʊ_\E\skuz7[HaiG,4cKbJ#+#`Sl\m:j͋L*	4X2ccW{AU58csߴ{ZI_Mr{Jcq܀GR(a"X3'̈9:e?JkcwӇ:;=ݻ6@t]{@iR@^t-z(E#&ٷ1g8.up`19Đk֒iBaF(`35-CB[b=p,j9]@;Tvޮ)*{
-I;JAiVVNv)iKk6- RޥFHTfh5Q*z=kл&^r5ɥ{GRT(VwbghwNbaO+"5d3dA0-fQ7t2r&u_)N\ĨY`U
3G^{as*۰]+]쒮KC.,|~rWcqA2B,0=P1}X/F=Go}KMNk|}5ЙmL0gEgL~g췣 a&$`?2`&mK+CuS5S4 ^&,3|ނ7O}/􆫘d#nYh\Jm#/>N0?5
-PhHjHXɀ	@7xUCM!4g>FkxwUf
-vp֡m-EJgk Wk(sDY"	'=F۾$ɠrTM#RDk=ޜj(ǢjC"SՓUIeGSsS5I
-S2rQ60 #bU&/-eYsvd&a (<k`0y՛yyhQ+ֵSʙW1&te.o -T4(Fh4URVݣI^,T͛WTAg5(2AW6OJA'᲎z@L$HeG7y&(<xƱ+A#&$fL/L2PT|R"L:<$ w6}&~Q|ɔOzrr%SEJ$!}jf?w$&6`Ir?s%Kji[/=timbeR&mɍ
LVi;;fMV4ԗo\vĵhWTϼ`~yf*S|7n p8Յk*lVcs*ݺmSn{ƭUL$.%<hP91 hj
-HJLH,O4	RJtfvL`$JzDbod#(rJa"Bwⵃ^V¬EE6@Xwx߽G˃b LXo;wN4zmbCĹ[*G2'#~
;y=E$zZˋA ~~LR<z9:z)QH 8
-G
 ,jZGcjdr/9	J-@]onz@Z0=wNQz*1qu#19СsٱBWq]cGG:M^WSH߲ܹK
-alѽ^TWu[^K.]^-F(*Sb#=}KwLW z3petHUЎL2C<@~i_A)߽j3MkL⮣|pk|ӏ8^<h8h욷MkPd8E%3^$1v"9wV{$5&Hf`JJnb:22INw`%CHޒS+Ttqt?zN|π 'K4),H5qdG"Wuo;%>88jb%Qz@LjSn\_pbS-4"q&EYyfsW]gP8҇"0q vGdS$_N@PGmqXps@4z%۸#@]@L8so clQvt=}A2	ɢZ%. 7hy8M́$~x*APX8A=YÚv`:Bqy'!+ԗH(qIOu>OwbqC#uΉihz$/MI3ie# \T>`XcMr_/uʜJ\4@<A~/ߴҜJ^{,/:#DLq#
-Ho8R+$</6Ao'Y=MIJvEϤthq0D/ۧc-*6+	X*|Y
-SkVe`Ă׹i@d)r$w 	?ĜM!a8ZBje٧0?Y6{'ӈO0!㇨JۥH{Id4IӒ$J
JntL^/N)DfqL<T4I"x)|/P4xĂF
"$?⟦H$R=nw2J=)Oi C0
)ܚvx%ph,%2>:2
-u&O4N3=HL¸޳ɣ$`M	2BEgT*Q
)nV̰2J:7TQ!XPH,Ck:%ٮ0Fֆ{J?9._߇3v|))o)]Rs&&܍֍Dr\_LIqxE;sS fpJiWaUJ&=|#][ܭ߆lQQ^fp~܃
uùR^Ap0r8_s+`L}';DNW1?U~p))_Pv8.~(_'-$᱉]36a<ws iQC\=ПO^Yd|Cm.={7}m̹@D3<7,G1YtI3c
-	5Hyu!Xd	bO۝&PR2榉L1Lb7@g!چ^Dmp^#lU50sl4yP
-+B$x_%!JHtϨ[^@=h3cA3{N	LZk*	㇙Rebm 
-AI<s@4ƙ2@&cdo
-x*FTG20eNHIڇ9%|)Rv͟T(?amq2&}}	@9ӓadta-OYBY>T&~2%
vɓ	|k !W|Ԥ¼e<OthjB;@$'T:1>ǀ$)gI}283cZU.2aԯ1_!y6Bh}Q2_N6LPn>}*czX%Wul|ߒ.WΞMڝtR
-Kw3|MT6%#a'2@5-e2D/ujNX״fͷ"%5$wwEſr^`)|]b.5k&$+yIϖ"Zg-A5aK[$-oH!uҘyL(kXN0ik\h?\Cg27}(%]u]rxMb1xu<r^Cy.sDܽ?eca[±?sI2w˵72i_hҝ/mعs`lௐp9+2x:1j~!9A/37I|X̗QdZC5LA,ZO"sYut(U.26.,#4ʮak;[R|]*ܬ|.W͏
P:¬1FSՄ͈PŉƤxp>ZwB4dgȭv[v}SR-l@[|G	_:E@XnWWImFqv	ܡde[dJUa[帬b?+[VK
-۲H|C)gqEJiބIJ"Q3rHLӐ0z
dLNMjy)*$La27R=zC|A' 	FRRd fK"x,!ϕ~3O4?%V|T&4rҡ4}7F?YOr(xG'z?Pa$0=t<ـw[nc
ߡiuv;1FA?⫼Wd6@d:=N?"RQIWgJXZqIB8a: ĎLa#N^QuhpOy}>xxAY9Cg
-Ї)?޸tzAbz:^w|KWy
-{W+ߦZ3Wg?
uب+͆xzKr! ?MЯfGe΢\BUQө8SL (RD
-e1r&jңo0
-lJ|ef]fXRyα{zUWКү<짷5O,)d*\UȎ 
-3%]EbK/~ctad
-%Sk!ƣVZ</:򑫹?k3\ckf蘌

`XI	7MmSiEݤ0`WNZkωƢaUR";yF}_Lw>@ۓtz.27 QHvaqH!24Z e
ސxα׀[~3#ddo>M܎#ݸgO vp=3k]'(1"|7rLv);H)"TrT!m+av&WB:s m-ΣA
oX̚-,6],^?0> .ajehntֶxԟ}x0/;aZbHO|QP	=74J#24zQ>0(+R$'hxX6h4!
-,93'K!-tGɮa=qz)IwIfMc,P|C;?<ݓgF@W{Oe@	3Qգ|ƱGSLʎs&<!f 7$`ۥeh5Z]ŧ)	Ȯ<I63oO2Ңiv۲jpGѴ@I,
i);RM.$drFh6Z$X\B#Q{1rB7bs&{{45'F(FR( ?߀41B	(H|d]
+wOFF    ~ 
                         FFTM  0      kGGDEF  L        OS/2  l   >   `2z@cmap    i  
+:gasp         glyf    _y LMhead b   3   6-hhea b      $
+hmtx b    
+Eyloca e    \maxp l       ,name m  D  㗋post o`    u       =    O<0    1hxc`d``b	`b`d`d:$Y<   xc`fdbʢbl|6F0#F n  x͒Jqgje>"D>{EO >,"u^[[[jos_M%:0g80B.Lszðפ 1YlKWvest)Mk^Zֵ֪m׉Θbk̳26>'YҖjukZۺgm2 (4-iEkЖv}XBY``c9ZJV5eY߆6G΂`3|6[uIpn-[pL0Lp;׸%8o>F8	G8`Wί"E^_=(K,FK+yb       x	TՕ0o}{uuuwUWիnnjmz-nvEEAAJ!*(hD2c%FʦEbb6$&7߹UUW7
tw{98m8bI	ڃ݌7SEG!3j㔐=w;P^IA;RRnkLS.)o8G([)9O,,AtS
+h
+yujZupPGxNon{ho2AD-r]u5e^dMX8=r5ͻ^Q\~2V0 o0kC qA跍G<
+9 v`|NXWI:"'aW޺O=}k#"7e	%Vs~-y$ŵXw&'q.n.EK#JDڝn봽7=|wL:Ӎ2vmrRv:=0P@DۓVZ7eOd7HMSY|[of'BL}ƷҗV^+{W=uҤ֦='j,|;vAo=0q8"I³8yZ6Ǵo9q<i3k1%&
uk{H}@΁W^qԷ4;gg7Ny/
qP O ЌL4q,ԇ"Sv=jL/UjC-woȍnj̮{j\
vEk

z>pn=^=ajID(෠quF;э5֮s7;QC7U[׈yZIۘػ*!$	dⵄŖ-ˇ?{mf6po~mԽwoG6Moza--m#]?]?Vkzܥܵ.>)9NH%&T/ _IAxOB]8(.v)G=HPSUP>fFE-GGs|'?~zI*R|[`-V'ݙGP3b'\RI̞#n;WٟDTѹb80^s6,rȥism15kk,}qWȝ;t seYqqC/0 q|>
+3W/ըsF"sIoAHI 8Cw~@
+_(]h=r9p!;H-[Ifw;%=d꯵bmH)k=o\hEi7i:-!mn:`[G]GE,;syH62ƈs՗:I@^\wOVõ<g?]Y{?qKgH[X &tdn[,Z!H6#=nݳ;OWUG4]]6ٰp7[aM5PB]?4P呂7o\!׺ߜؤ
2>8/p2h@k~ھB~a[r=Pr8SescF
ӗ S#P|0z'zS)8aFBFE	VrJ(EfDpU\'h4P 	j<t$>d3}CvfM}Zlf,.pj1tYj2lƗ,U<:zt[%Y!1vMfrc:_n"7zwvm
zuidtO.3K<yd03lLl؞Yĭ~bg#8H7JC*gY_YKin0AQPiMg-c)<9ܹJHX-owaX; <z̳@)*rw|u`lc߸m1:H2yΡؕdYנE+G ZQ
+kP*.6O W=nuBdu8<74~c8(bK]4x~*x=¿1T2Gߡ}S}JXùP@z${P"h^bؙJr`R_3@|8~ v:GE8ci]5&4tَSצ	#5jQ 0즰N`v!
RyS(v
+]wB}J]>u=.#Cjn(,THu_Z	6qhhP4#JH%jt3M)#zzdt1Dn~9/ȋB@NV?p'rf:;bBQHb$h3CG|#v2ydm)esvw~٬fp~DG	r0^XzˣՇcl&
 \`\8HHa IC?6:5H;lވ4C&\FjԬ,|MCݔ/f8ܮ2	.ҍl
+_/AkTVΝg~T΂<`2Q&;XAW@@gj{j,	suuE
֟:A
8,&ռ
}|b0lFQ$px=4ddm7nru"N:Ou^x@񝂍CG*%F>Tm?2.opˮ1r\T١K+L؜cn:8qyN\Dvj[ܦDy/*=H	[0l8=`Dd&<qR}~|m?9[Y
{HIFPHp;@Y[D]j}*ÞhJԆ'v^6XDLVa@XFk<N.pVeup+O;F G\Eнbkfy
+zs

	XkM֊PY_g#f}{ Lh.tMV((/4uX4u<k%Ņs=xfȌݐP(.(q\+i}J/[Ok<Ew{W%҂pRJ
˙$["H6#] FC֫C_c|=F2[#\eyÃ.anơzK9řeNԞeUտxUwΫm>76tOd٧,崅v2+׷ TU[NHN8W|fG{ܘlT_Z1 8j
`Ar㼌`h*b
#ռBj0s$n^7w$Gɡ;N
+.A>3;My?zpͥΙ4aqp҃GFw|]֯ !ؾbvq8e+)h.,U~4]h.P4s)+kqD2uϸuE3V⭯ҟfS8/D]5ޖ*xWGj}l&klnçiPv'6#(%)>qEo6U+6ŋ8ۢlޏ>`Mn''zB-t/ꬱ3ik3
+55Z	1ao|+
őm
+0$YəOa1ag9up9Gת+b=H߀Q1hT]ҒQ^?s9ػ  lB|4TNYBL,
g#5A㉐=!7~=/X]WuwZW避[ꞞWd==Bm®ҏ΋v?$
+E#
+L!7ط!TRRI4)H#l*:#H.)pӇ
źRMB=ƅ(ǂ͵˥>A,_2%5pyn6/Mbt,L֮l+9QGb]*D;
{PZ!*U1|s{"3\gGχyG:-nQg7`ԏ3xAx%ÏUXMZ&HX9>osGa
+'!lü|EW-ebbxsY06E>)VH߰}V=G~Ykh/;ۇ0{4. c\h`5
+FA5Tg[4#So3yuy=<'j{	hNk6	@1c/5-T:`YX]g~ilp!e>1x06?eoAsb̪fyb3@B߂Yq?;m)h4skPUfW62c>8F(t*GC	ym
+srp?ICY:ϻ&͜99TY-k%)@|FFh9*(RtKǻTXM-IP.%C"?,+ˆ=	>tUgQWw#Υ7݋[P	ޮ'j77̗9ZI
SO4YkDE͂B~`Ig;mu֢zSg)rE܉=mK9ZD]4~7߉R6Hۂ(ji! BldpӜ^zz拾gF:qꢝkWl/СuX2rTsBנͫڂt}}ƶ_5	k4	A;oHLϹ)z.quAzyxjk5F-@lҙcڗҗ\6=
O]9/5ڔ볝\tOCT3f(i
+]wPiQwγ=JߌvGޮy[[,Et&QocÂyb66kMK|֋$Yz%P(^87DrK`%5.:	Ďx=mnًm]Ю&2G(-@Q7xu3%@p~нt S]=)AGAVg;*=$mz
-|_EZˢk<5U5fFIj`=H})0~F,"N6k"}ṒkT"$mZPc',ϛtzՅ];+j+NG>K#h-zp6\;yb~9.m	\=qrqü=fS
+6u(؍3#0
+:Nz{S M]"`R.Cr`-U{낍znq	tx
ic+Ԛ:3Y㳙N*aVP
+`1Qb@fc^X9̼ܶjtҜYӂhھ3	ijs+\8Tvi|Q<
v߹c81-t\16GInJ:̇hXGr+<O|alyxuco7狿P'j{G wsʥs
??kL5>4Hjv4l!,cC54{ٱ4dR~p*;9nC%d}dA4Q8iOi	TgdulUSAq$.j6U;MǶۏێۏj9JDvAFbm LOI=`jf:>IǁJ!
+6Txưqn̓S9ĀM|!ґ8X)hͅͳ( ,ӌ2+lD3Qɕp$`Pt[ DV2opo%xZ)n:p4N)F ՆtT7Mu`8P*r
>(O^tXi(M4!
t(>hcU<@ܦç$M'(J׳Q܃<8Vjj7P?Ͼ;_!Q.h|:B)Ӓ xܘs_d9aN=.WO.\|_O&tk.".Dp53͓	6`8IuKjk/wiUSusUlr
+̥;ѠMe`TB&n¦\	g2pd[0OvzI'm%4 1}@:įZ/ r
@1m8_.WRlv(F5Aս~]*@Qؿ
+VgM܊:MʞQZ㖵.
+HfJwKIA\f7zl}5VzGƐ
+u̻vߋaɰZ(S6Wz7ek[j#6[6iSڣn@d`[}i]<{bN&kG[Q`Ek$|'GOR4:	yX1dhz3TʷL-3DG%Z
+b锥3I陌R^cy,3P!@ ieNq좀FS'}@4шÏ~* T(PY+=!?}>Ю+w*3Usƽ i[9a\uWeY5	+,iK\ʚe<zKC&Hdbktݩ7<Gh
+fOfp+d<8YX(ϴ s>!;BTR@J	vKU8bUH^Q;Okb%[QHO9谉0r0}U>ʔV5^ܵ }ecFmۈrqLEl	"I5ڦfU2cW+O,
MJ񝁧6y?*0&Nݚxq?)>e(	@qTVx>sjAi2W@W<KP
++
+i
4(ا	
+xA̓	1Jz'O?<L0,;V|'[9;j:[BخRknC.иiޱTݝ&[h5V,RIN{oF|Tn_|QW>U{LГK^A'96&E[h8J*X>wyW+Vc*YP!3
^%"`ɒRcD@2ܵG5gL6}*Xl틵\"*p9B4MzA65L.2k,0^>G@@HtyZ4iepWtAh,8<{9ȽǷƶwZOYE<Z)t#/崐\F7ʔB>(&6ldi t/=n>?& s]@Ν0Z.3Ĥ9MG6XIJHXa:C}36~>D3UO>[vZ_}סqN!ʃ
+-W 
+SHa)Y'lg8=`z(bwvi:2E!`;x,Y ߩ
+=Іj^ǻQ^_Yy`Q[&aYQ
us0{&m胑*j)TC$YQ>*P}H˥_7!n?Vا(sOGRBXbG/*󨴉bE("lrʔ$ΫdJwGp6
+P/#jmtCR0}Bj̣RXvI>(j=:ECtV:O[h[5"uE3W.
f[eܫ8P)e
+0Rԁd.ُ:~}t<)/Q
cOBGGp<"-G-b΢y3b#5RPCk{d˚ ح6d]LdLu鋶
LCzӮIYs;A@*nyڢKˏɩEWeMâx[*u-zҗrizH>2$=_j7{!h7Ύ|pfs%9LAQ,2WH(EEug&/
+$̃cm$0^(K_C]Di+/TRhOJ?Nޛ j;쁳#ISm0Q4WՏ5_fd "0ԏ ~D}R'k GK1(_/TFȤ8>Q 8m.mstÁ-`wZaxx";ͯ2o2:h*4X-hW3snP,ɞ
+"ޗ`7Nw8ɐD\	(,f鄝	IM|؟նkÿl5nv xL/LM}ݻ/Еum.umd>Nh&kԵ-h#
+qs}v.L8c|P=/2,T,\fxP!:*}uLvyj{C [	^܋lV͛CZk9~_+2_ʗ7%\~NVw|:$^fH-l6[DniD>=}4b=U{xCu:6ݨ18=Z%ܓ&?i*V߻"z,K=,5keb PÒ}aM)dŐ".Aǝ2AnK%
+%7 ;QΤx9:J's9 :(w̿sltWN~+lAڏm[w77n\W<9-N߹ti?";iw[;LvP2zrgkcl;#E*b8*<~h!:Q@qӼek/#@wꪫ'	r*2_2mppm"Oގ:wFgRۜ{zh?U_3m3ؾ)[_./d
jG̨.+{7g|6w6؟>d5;{O"-<+jaW22pWagy6&BhI2%1S*[ϤF۷%nwT	QĶ!=00!dP$Oj!%l6bd [6,6`^Hfɖ3V߶[8|\MQ
+lƜYxj?KO3ٲ%))JrGƼQ̼)2c"^;@Y5u!'hVGTi M9#(ן<4s{@efQ`Gy
8L"KB3+fOx_c`=C@d-TOj+Jw]f1򉠦J -L[,Əvu&}z)AԫyzX߶"MWwP-蒺Mrk
44LZvɎiZcKU/Nja,a!"Y<]K-{S&,-l5V(DSJZU+6UԤ)jȀMXju5xkOxkCf>v;oĂu)O[H<t_X4i+*dԒx7)lO=R|Oh\ؼERD*c R?ʇ﫯"bL+nwSBIZ^ģ|r#ReA>%rJrZNCQn?|x_B*kgYn3:B4WͤuQ.RMF2>8G3J<ZrVŗY~P9w;<
+iչ+5DDhp,;ʹjfƼ=䵫9 3Ƒ,@('h:Ƌ&mTkPq8󨴱!ä.#Q{==4V#mx	_)IfC#yFN
uQRPQyQ
u:]g*O<j,0?g`ON\Z\FkrIݝJ%QM	$%G/-S_hzt>U֧c'P fՅԭںo>x,uP^"yXdci+Y_'z6~(+q$U;{S<^xGn}ouvXt%&3`.:gA'%O0j@Ew:мjdqge<TCB=nҗCq+d)ӪLZ&ίYْbvsmk'mxl0k"ȓU\{ӲYzY.TYt|"cK:6.4LSzD&DLJa|+Qh_}eΞz_
b"	P8^Џ>4c&ūY3]*tI*
+r6% &A R^3$p,a2GÇ}O>W476Ոn7[YNqOecu/=cm:&4Co<}iAO6ăNYm:̲f3J"MK:Ek:e-O7
6;kh}x?1/\g^y}7|4q'7o^ o.Uξ& d5v 3_P MpĹVjlU	a^vqǹ܈\?虽쪰:Oob2AL29zXvQ VUq^k%@$Ǡ#o}TscFW}$yF$y^2:l4/maԽ&oL3ѤNIq!#ĺ~N>0=ٞbDAw	OhCTѡ
֩FI.M[V#Œ3ze{EvceR]
+ecsERn`{ahZ]'3W0vIxV[mQ8f64Sc%WrF.aR6aLv0n=,L	ZBU\ ]aJXL7e銛
ǉQƀcHj\}MGޛ
[X@"WdNS<+#(;<"w~omyL'DpEbY?~{{,o,RD(JbC>ܶ_dՇwffsܦk3ގ&~L	=$&Cyd"le؄ tQRʉ@*΋7JՄpC#5-Vgo!Gi
4&NpOo޴խ9k'y=JS4/;٬vY3MiB<
+(Yuv<9_m@|zU
+_<';^;#b})Kywno%6,i7-+v(k6ic"Ym=t#WRTmR[na<j
+X)GVX,gB&blц*ϸ"^(^Bk(tǒD>fʭklW޼(IdrUU5=^Dfj}-:$rp(<MzMƯ:|%7L>%\x+>wW؄	Ou
gq/,W:˺/Ɏ+y+&Lo)	@[@exbiu;:Ykw[50x:rsS&_Xxf[bT:7ak}Yx<5r'(>q-proɴ2HU&I-Kmhɠ\YFY`|fM0]63Bw5%#'iH(8 [*k.Etc&aNmVJQKTMbX4?#4c왓Q,<v5?J	[Js'ڛiӒӇC>䶵hMz__m27b2HC'
 j
+,JN؋
LuqMZW7'./^L^DL%S	n4:OW^of߷Rпlq{\PȖ叙y4*xBav kx@͗qY.3HQF|:rƔ9`P_SRL
+6b|jAn~<DN"u0Q\ Wuާfn6oH玤N	N'S;)̓vGvejOXJUPsps<׷4}am}SjTYCheubm20~t'r3:_H7M笜YrN:1!-z\MaP}l &pq6*_UYIG~O_KU8FT{t(av"CBf_F;QnqӳB$MU*rg,^G D,IH:7FD	Jlk6c']u;&FbFiB"&͙MykUP\M]J~qZ JP$5K?1/,#	K:I)DoY:Mg!'S$M }ÊN~$Ū3wm6]r׊sO^
+ll
6H{RvBoLg(iZhVd˂]w!r<3H/7CyYN9Y@LceY֖Y$rz2dk`8v1gI1"0k~,c$tyh2^/sv骩m{TUM~{WÏɿmkUٹ?΅s4a:ZDg;@Vם4`gلw]x/goLvw'vڟڔyK<+<f>Ǟ~NF=ΐ7.'hٖ}t)vSK4Yԉs]kWN-ЯK`~kR-^"9BF%`%5S'$^\o;NKM#_5y<C$(V*ޖZj/IVZetMk,xC_m{ۏ\ʶk@1R+ې.臬tиl=C;x|^c&a=w99pt袋71R1@e  a<3w6Lj(
+~n0KM.
EaRIW1[S,9p'YPM>r֖
jKgMdn7Y
n NlݮmGYN̂09E&WKbK|ĸJﱵWr{ݷkQcZ\2R؛Oۡ_h]Ըy&܈V;~M/׭n߮>_[./m2A	qJ{>LM8Af]'vHTUOμŃ̚u\eAb~u:ynwݥIٸ$j[QV*b聇nEC*Z ɭEo?҃&k=t#=KTrfWQjJN^yٔQW/Oo^rrj;NM4I`0wϚ _ߜ!Iouz#3tzi
+kjmfL'k
+^9uDћVnǼ^߲rn_CSC "6Gi1#W0=p']@8z}Q/
+F"̒&=lFwdF3v1FuDFYV'F`.bNu䡁 Vl|I׀ɷ*~)Z*!+uQvCM/vԂ.qcYs,wDiN6 YrL U߲[crcq5)V!c031;B0ތeG͝UaVNUe	(;;|d;_TA"?/}Mi	;]wt7WY㰛nNgh7EB7_RE=SxV5Psm`ržYazRat	k_F=dVٿgCj߇%T}[n.Z$Uq:ۛ*<ggnGh(U?.b=Ђ z3ek
+4	v^QVJRT+N1EyD;YC+dNA݇n$9MAyhpJ=^蹭%[ҫ{\r8L^Rڠg8ޥ~ ad8U=gP'1.#l
+=ΑѬzR6np~[EfnG+y|:fE˻~E׶Mʟ]f}jE3qMOϚ{d?]uU?#/;s~򹃫ؚǀK-6B'闘̵Lgcg&=G'
}S唩VCIsyRCM)rd7&UC͝w4Nsca7fl]tTwݵFè4ou֍2B>#o7(J~jE(EM-P<n}enpt^
^<5fͬ>3/rQQ@Wヌ(QUm)!sG7ꜜZ4	Ulڟpd:Cce's2E;u*'$]"c4}
vzyDzɨn4bTF.b4R#P*~6tjtŋdۥy1W!ןD}glْW_A4R/u|]P	Ǯ~:t[94{-.ǀyA0 x6-NMvM$c50ghQ6 1BnW_us;BEg}\"\aQ=#ͧվv1ŊSY(R.i[9JdQӜ<0@BNya)j0Vh2쬄sO eP5>I~1! -A8agjNq^76e/쾇ݳRuԢZ&UEJlpYo<2"_:979f阎 .!
hI4
RkCjGBu+btQPu/А1TZ5V:+zp8jy\ST!zru8Y۸$ՅFuFYTj
++[kj`GŦ+yl֦Y닍4R,+h")=U>yV˕!V]Z8G_
+jWpH ֬Q6P8=wQ9]W809{z$5p+҃D%ꔒ-R`5CbJihEI@xQ@-Jhnא!7#םY
+ѣX2MnƔi&#ix2nB~#}2n)Ͱ.woB(Yk"5nG
PTF;NQ@(奣$%l7Q?lRPfB!wҤJƝaîGٍ J vKgWOӬL_$ta[!i&M>JLBfR%ۣ6!o"$,J{l2"Qo#BQ'!"#H:.	o	<9*a$
+<1ʔ/-
+᪠(J&$
+f^oћ<on!AE
fl 5
+H<o!ͭ(pNtH¼բ.a.&3!"I:LfsZ0A:A REEb"`\`qbѦӻEAlrZg0_
+X0JX	Щ91"BN,bqH/bI2&06IMU%U	lI:DY%YKxíAЛtPG$Lx70lĤ'vluۏx!"Io#ENF.`EbUo˘'\y
~ّ$(dF nd3HazI+F#&zh$Ygu.Xlb%N[/*W8 BV0f^@`^y'/Tz:hM#$<EH,0Aoa,0(i"!1_E63;xMrXvuaQ2C_yY#"/輘XHp#9x1@1@ 
+6	Z m݆Q D/.T;O |`1e7J:^G	:^&#aA$è
+:dz +
a(~dD[iFXVX DXF'
:Cqsjӎpq2E5!K(KWk̙gط(hP+R^Q-O˻h@&lo%<xj/ޅG6R-V|lhtiL`xlhY9U~S㨆ӵ(`*J|u(xn\T"KL?
gKl/jP[ &crnl*oEŅu̬۝dUFW
5\1vC@4Pb|Me^I]%S!W}`*_U<(cnu/Xxhw
+)k0T$׻Z3
+^^v1eFg'PJAR#F,+EY@'CK_}B}~:@ŏݏ. g2K.LKZy,ߍ6:&5 Fsn-Ț\%۹Idn
+[ɸ@i5]iv$tW3L\	C^\L>}6,+7
+g2.;H\Ұf,-JǒEw\Bwjǎ>fM..klDj.Xv}mW\:5֔jKضV3BS$l&ijDYdIO~q!rW )\3
H.iT2R
+˔D'i>- (*Qoc$`g#Aꆘ0ߨn7.>x;w,yc?Ơ 36I61q	($,ǋwܴtr(yh2l{s\p@5H?]JHʽ<lnh'1PmϣSo7i$½݇a͙~}Z}gP$6MhM_:~z{dZKe:s/޵bR+ʤm.F_-mAELǭs;;\激q9:L0hֳoȰhmS!SbfD"N ((YqG"Č;Ck%mDD͙mvKa5:p5<pFi͢=Oӛw4->gIhhh{ ef
+zUs|+DWxst-}" <;p>#?X;$}upȖow/&ν'dޒM-3g֛떤$yIEuR
+;5ItБf<n;u->b{ g-:6ާ>k0ڹQs.A,1xBU\tBBA=
+)~3.{ҍPa~OBP:sQS=:Uf s1KɗM
+@PsygQ')_@\l`|N16fpp3,Y,wZ1~טOnoy'ǗlfCW?Ot=Kz
+(UQCdPn.<=y]Sd2KZu{d^&P^	qhEAakFQ7><~̈^=QbyAsX Gr9Aժ`	ΕMʆ돱,,)4KݑYZ?0Jd\;|h~ki?ev宰Kv2)i9Jcj~Uivo	V޴ʍX~eCkˆƆKڰZn߹ZXkon퀭:h7ΤG+Ș}I]Sfn"u!`*ئ(E3	MN4jnRXMGs/MtbRS{i+-v	aJu3Z/WS9ZK]>Ɵյ68N^~i>v$$&x;ό/nTu
_pdR7#ƌ]Kqk^:J1)Ǥ5$2
;ʗ$X[Z(ޜhJ7*%2E叙#zg{hLK,M#ǤOkdւnnVZĦپ[ȷkV%ʂ:@S>Զ}S~.vm[kl&żVLsHuvM[2/z9ն.S<#y\6 nGfmȬ@xʃEӻeiwXDv
[#:bL_hkm[-NٌEZ~emM%Y뛮% Zbth%:9}6xn.^%,uXF>.1^x oUQO7}\1B,53V̒ׄ'Ōzw67Oi6o_rUqp,1qOi#*n;6F(Ny'+ܣcTq<eLA"qe޲SqxLPQWQWyhBfM([vL#ۛ Q};Ε˒-$glYo+s8qNer:@Bp &*АBy	RZhMKy-Gۗ̮!>333~xh4[ A=,Oc⋢rx{+=.zfGA=SMϒk߉kѥ1|ug<Dk~>\==j=$rR3,xٰU`B!"LQ Jc@({˯F/43ibM6A
>A 0Z( 	zcdI
Q& Z+8LTW& aQ<a"*FS)1^T}uМ5`-q'6nh־ڻO׬%3<h%rܿe	:b
+VYzlN]6p/oyiOc5xrM{>_ؾv5>9Xruʓ3r0rdet|¶Ld_*5hct,g}￼Wi\<csp=iv6l۽N8E߹ٿ}aq̈́s+Wߚ
DٶD^؉>[DPjq\j3th d[)7rhUW]jiK97
+X|/>g],pK4YW_ځ/&-.S0+0:AH4bc7o|~۶FyWub^yV{1
o8S8#(緥~w޹jҢ6ĉ"h0PT	u) $`]+E:Eq؎W7jD-7(3uŲ{Ql`Y$OCoɊ= ;h>E3g^tPeNB* ʘ!x%	֙Y}IK %epH	ZR́H+!)ʵ	*	1B1ˬB`> &)ç	&
+),~)|H}ؚ"odA[aO:)禓GwLr(yļCgQ#[UN84~c!yzݰҔZ3;zss.FMؾ1FSI`A	4QByE軼a "OiPSbnByḰXKG`SVЍC/|WM߫ʪkjv!:|uQ(UϜe׷]N#h<;vU{}fjH%X&?	Vu~V~j6A'MYvM!GP۹re紳 Dk/s)kq8vI8#x
G,c?;_?!syٯ3ηw>w`||tuP~IhhnE/&jy+ٸuTS6ooOoh-Np8ޗU2$u]v$0$
c߂ST6hBڭw.ci[ҙ-:g <F=*ǫT9 r%@+2u!tޮՒ2#ލnA7AYQȺUax(Ę[6b8{`.92q+vK$	2+p*~MrVs\IΤ_!j)pjf]_^șPG>*Khq{FA
+lW?} 'MR~<3.([v<QHPCc
+}Ibr`\~`8{;N\wYuI-U'Ny]9
+Kp;+I^^V۳dv9!Ns߁_倻l1p~G pF#::ԅ[	H˯쀿":s-@w;1n3+U&97ϳJ:Wja3,)a> 'Tgx4JA]ԧ?21:yAc4Qd8`b4Dlu*l.]&' NY	?_EJOG#yn	^TA/UB
+{dȎU}xX1r_i}~8b*=^]W*s->KdfgQU(s,ZeM\]2)1
+$l!?OnG'o~P]h꙾V'E6Fo/q+Zjz*S`OƁ| MUa{o03g}(骪5J8+5OOWU$#+Z	J,2Yin>ŖXp'E!4l񺻜i	S(߁TR_ʠ̈́$^ŊMOwޯ,cӊф惞\I`T)&IX3W
+Sv$Fݸ{e1fHțaw(Q \9u\Ox7NЍ%hۑ\WTT۪˻UmʂjrS-kU-nE*+g]4u,}뮻mfmsMX9UuuUNGQ>+UUG7O(YA!9ې#I%y\gf</
Z-HLHP&OEZ:3.&0B}H`n(.Y2,L~]Dax Q`2:6_u>6)+{?DC<Ukmb~c|T`ᾮ&
+>E7"B1;/ ʤA$vBfYtجG_))P@	p7: z3hfa2
:v(^&m胍ɛ7Mi(&+;vv& 1S	{\ر%W[7mnYm}5qoqQˊc^nBq]dZCG6\i9I/`b}ޥ75!parHٰ)
+|\n@s؇Ӂfs޿jZV+m#~xd	Iq|Y;$`kG^i[يFTX
*QlN+xDՑ-ML[J ϧ},i.F,2"BGщ0~IeOÖ[咛o}Ta>ľ/oz>E}ʋ`vz%5QlҥH++l6gSÔ|Bh8ڱt}C_Ꮐ֣*=d[M{WJfw.a44Do*VVA8sP-Ҟ}A"
@"Ȥt0+||E4NŁݓ1	9)*YѶQoP@	J2::b?2Hϴ3Y_nx[b¼Y1-Mҧi.#?<eng_+w,1?Q`tt@܁
+w|3OQozi/#@ :ۨDl#ww
+khiSyIM@$IgQC3I/IүRОc}>\!Бck3Fʷ׌8'חed($lٷYS  hC:Sli,ɯ䝂<d)r$SIbT^Kp+Vu	iA>Fi$柌tn_=PpT
;(3V{ID{iEZLI
sҢc"3[*8#^NG# c`4cCf4q&E:r@B$=DMRI'04	'yP^?RxS^3Ԡ j"!psmhg8G41$G>LxNy8.'RԇG@"LC8S1I.uߣBG ?>sj6خ0FƆ{17qDXSJRʳR%FL!sM(~l^0av$.XV]Υt:Jt1"GЏeC7aR.#*fE|[rX\pM[\c3`Z*؇qfPW3f!u61SJrmoXQN[1c_.ʁ6a<K#QGRs7gc7P߀sޝtos02zr{V{n͕{6>]yTЊX(|'׵h%" ׫{i`./Md!]Ђ[xC9w<XcpKC abP#lmПur8/^W`Mfs(=TA{r\X݃f?8:4gd<Pm#4Vo-Y@PVp	׆91JȺCF?!i&0 I SHHo
+7A?U'SC]
+74OzC$=*EL@1NfYoȒ:4#}n,uN\}Zagi~@Sd&l'Yp}@&:y0o)@}HUqSsG|@S
+$qOsI#KHOsYdY/R&5@ѩFfk.`G뺦Ÿ~%0iB7}y1_wlﾥq_MRuŐpt{JHE2#f,tD%Q}:0Z`1
+bW6K+bd
fe+7rJLZ+S!}wP3wi-V6uo+6]
`Wdd)PL  #,{yi*+ӕђ	g,cʺ9^V'0Y2 [g?)M~09?821^:3y+|W#ܻoط
{^GǼ?]M=pKW
+BK捋fljh9i\	ȜEΚΙvÿ+~긇}$93&E4 ɹDRu$c<a!;ĂȂ!ŕ1/嗋Xv`tKeK@H2؅Ѐ86TjLeˍ4T,	.7:́bx*GASt=I,"G^HPuePCnA	GWfD#OR~^e*\NYLW|i=<ѵhώ~<hoBttU]Ns5xO|2lm6hݎ]7;S.iZU\W9?[ڜUjurl!.D߄ID1
+'GW<QfB*1S8)Z:!
+)QH
+IZu#vRoo 5\GzxdT f17eEX\9ZAmvP{ǈ	
t8/Ҩ9ӥ%}	{_<`F=2!1ʔۢn|o	v&FH/~_:$nQ$ǟ%~:٩2j2Al 0lZ3qєɢGĉk&b
i[cu<~xsEU@}MtnZ401ySZ&l^}o_l
+Evk`oMM`7-҈lXdm)\ԨHAqj+o	ƥM,ZqO,eT-5ڂC$(*9lR:jj:+=ҟFk*WEpIk Yj.8J

+:S5G^МFm.䜼CcT@%kKH.!%
+ud)kAAT1x7*\ypg
*5UftL1ńZmIj42`WYcD1_-Dw|㟥lS24B a"
+ORz#2(Klqh\X*I_-4V.7&޹kxp1*{cGI	0ݻ
qMeO>Yc
+O*EuDmO[,	f<a#$K0w >s	6WX6b%֢Bۇߕ"l?YkZ &|l
!\I8
|`&11P/IK)){@'ZYhv&g
+@6`	wE&yIĲ9DI=Ab̚|/Hu<R	禓̘*Y.FEvPߡ<ݓgZE=tLT"&ǣ2="ǾG
+GL `D݋g9XF Me
+8~ErnEF*Mlu|BWYBviJ~{^*/m*X\wt˥eR,kT$ӈ tR6j<ڭ'E6ZhPq; q >D@& 찇NQz^~y
+@^,,Q`qq__X(.l{^//T8 c#*bi&OaS	l"y$&̲Ds7Pu
=j\.Qܑ?҆|rz4ʻ}ǃufůsfBQBEv^M94$?8<"<.L3jL(L5FVw߽wpf.p©Mnc^8(Uν>n.Key@{SF׆{`|737KݒpȕHdQ"p(@dYT
cTYKKJ+VOwdC$ZѧtHοn w ?&iG,
蛙|шD>yA-@K#Lҗ|sĩi@3@gM/<X6t\_ey̺q*+j/2<y? 1!Ak(+݅b	KEv_XV!{Q:_׍u{Zfu>+&Z=9s{]	FlƎp7@Ŭ7G/Ð"^9M4%?}e%Ci*fFii&8{L?pG[mXګ`dl'k&cb5ncd`A0g	-X
+RY<zŽU-̞w'
+v8
j BXV>גk5`YTTj,OƧ.
+fء6;*;ZdNywM" 0ԈKՒ4D=#eLpEH6_-8(uwʫ%S$#0zޓd%NQoc[:@~ƹOqS>P䬕}Ǐ{"f+wm3;a8Zx
+9a>n

f|}X<C;>ϓѸ?Gc"[yggYQ@z䛒K="aU5v:top
I+<I~}*2E$ĎKڿmOl(4{_ծ8L^6i4K/m9]e`T%* ~?"bH)Ԣhr9>'	/NAO٠#HzK/ ]^z 1Q80)]h" +_TaU8icm<ǥe}d@ųAc`h9NQS&ݫMXKX~JЃ͠X)=Pԯu<uLUAi>M7:u&eVb{ u+9denWjdSX	6>A8ozt+$5Fv_iN&,>V2
+7>#_f
0ZҬ`>&$+H
+кeH!o ڇևhN+?]¿0Ck~\,?0evgφ
+cuH`s$%C_V@DbQRUͫYA$|E{Z|uaޡU_CSnn"k ǥESʇ8A<vQ #\W)WI0#F`wi~m!FQR^ȥH#|apm #gaHFA>
2}桫j>M_dd2/?(Jt5XOwNn
r>-|<+> z?=y
+W~><W䯀\0gj[yc~޷CՀCC<9OE2VnK+gj2*j~y\'oޱL+0+1{iuW7*voܨUjFc=|LƦ~߮e˴P9i̫ˉ~d
9yr }uf**?8?'a"U[/͑zyU@ʙpy=K.۳H+9ې3۽RNgQ l]}g+Dd3E
+d٠C|="猖D$1K/%cio&5OpFrrre +9Sn*YLID##@	fq 패a#'b}=I\̮'
+Zh|,=:=(T")F`EEVj,Q|FQ_/a|2rKbIxX^bI&$Jt2(i]NEWؗ,ޥxVcmpF&+a)
+z؇d=>>1F_9=!~S`;{L|cpn|U^;-.߄m";aX(Ȑ1|YYz_-^U{3u!C+Hn9d>)Ȯ˵UIͧ@E$*}*~ V9_XAW6Я5DT@BlEM+Քd0XvmRfFu%Tc^*-q)tS9岠G)AojYJ}A8I}JJe<Y s\X&Z?kUY Q2*?qC#M};x~ZT2#hno	QE^y =@'\]ce}溞zF|`ėз)芛/%g@Y@kKӟ*
E{ R"p>r(Z`Y~IrXimf)~U(0$(@z)p_\zvOw^9;]WU5c(?	z?ܶg'hNrG]ua!z"!`4yp
A72E{\G9 T2	ftBIQ
WsxnRP>#G\(:4QSR
+7~F9r@ :bQ&eP3RNZD%&J ~2{@1HrX/SV18cYϷw5m4y /T4"9	|O"u(M(֍nb.e1"r%	ӆڠgt }*ݶ7DHBlg]rt9m72Z.T6kuuN^=ŒBaF_lcY@2n6J
Ea (z6id0[\IoھfЅ <jW}qG9aM\WWr!(^k=sF-멜jH NQkpè],/?nMb=Zdy׻pQ/{B5T)~+0cы[pkM[J%~uD.7Jwuw:l{ٻ<XrfqUbÆffkLv[R^UO
+[>p=[amEeĉuB=\,UX簙ŀb\CӴq<a23'Z @cA"HQjH}g{;k*Sp
+gY&3֚JKV~c}lw]Ohph}Rm9xqfQ4jsD,/yQeH@
ʋu_@WaJM9j12R_%Fj$lgP 1l#LщtJA8g,:Fջ-
+&
+|Q5Jpl兡Epd,$c ΗQ~(QOtu1WJ~ɲ1dSʨH{pTWؘ~I~|K,yxD[CK..y?ґ
} i(v
+h{R@[u1)s" > 倢#ҤZa͍ta[;OgxlL l{]W&#3lwGO܏za5xsbV3wgug=N~%8wo%q1c>(G3J&iJtX2E4}	{ѯDVV"oN`4~[b1BM%CvL|"0-m}Fq$Y";(:jш-P=4]W	im+wԀvZ9Zی|d涋]v8Uzxc]NnSz묝-'<ShC5j<Ҕ	<X*]rj;sjQSp{~57Aǀf
f
+|: 54=hGqA%xIlwJ`ޔPv,K7EoA瑽o)n6u,T~x.{>{=.t(F~>WZYfu3 i7QKT
+h2
+SF}R&U*0, 	61*ap2Հ::A/J\``AI_/qZΤoޒWz]aГ2KV@o/,hZ[8FCwЗ<O~pz7Q3;{aN
+jiZC1jvWqӰ^@ubw+#!δƮ2_Y~t$ّI)s";gZAIeߔZ=FaV;vkuvfe [ ϳ}{XOV`^B5	  5յvvNNyJ>)M`h3ͮsw׈sR7mKWlXu8wNYok׬?޲<;Y(6.x&U8ǹՓ9G̯/!?C#FlndB]]yu?y;xm/1HB
+D_A//Q!;tB!Ll
+1q]ee%]/+
+8{k:|KVUY3i$ambAl ]Vjoinݮr .xIA->9XhJf3UVa1s8ٗ7RmDC1/Th&Dc5[O`LoFE
+&_ugKy%:jz%!W`׌Ot\hԆMKMgZ"
H{<ܲh䂥3BNOsimM6W˂͢oabx+@]&m
+6bZؑʩ;G_^W"Z-FE/.[XGe#^eY3,1h@$NE `u:i4jAy	:
+~%|8@0mLtJ<,a ZZQx7YfK'_6=i V;h
vo8?i;ZWdu.;9 _H@X~w+*&V݄0ƳG3y&|fsGjlO8vN_Z?dy1BK:87+UZf{R[$Ґ&w(T5!=.MdnEk2M=2Mt,uEFq7-_	h᢯!ZESQ=w"6xoגyyQ;aZ@dԋc?ڭ%<%]C^%=Dhtw2}Og+a9g5ԸA~ij]iXcǴXmŕc-
kU¢HQ.aQiӍ.nz
+~LC}SPaa#Tf-V5K -=?QUqxl#_X,U{/~|<kJ&-\7+gCۭ֤IoMN/t[S7gqM>ijQ?iځuo'?<]~dlp@`KysMI8pj
+22 A8_;ͪKpAu|Q__nNg)!(NiU~[^T	VmCg-V祯̌$eEz h΁v@bap([Ӣ~^՘)8oy#km>-<n~"5
>
`,g0}`O1k(O1FN/2 +lE Ss_*3	- D[H
+|$> h^zN
+R % xN!+ސ_SRCAp4Xetf+XO\7뮋/FähZ,:oEJRb[hX`l @6)?llGz  0=,El#;BcY[7?6s>9=1,	?䟃"zs`<h\Ȥ?,/gyLIhkh6ҋ;^׮}|GioH'anCҧvѻKNuu9/mBrhSڱtb9y97e4O1
+ĺb.ypvY&k[j_8ӟ籺\$%i2NC;q *O<$~J>oIzwm"8#e"L
+:R4pE\t#)_/9^\-}\_r9*GBpH~} >jƊOf/aAl}ع03wWrKDoSB﹄E;N#iQ"H܅ :33#^bZ=.*t7
+/lN3/]#ԊYod/2'a-ra|ƙpg+}C2ٌ,KKK<]`mf kẔ&ˆ-NZhn;]-_TDךNjڢnNO]eOȽP4]}iCS]I_%VuY[	4doD:9a*XP}	3FU.
+!nS`9^ik3XWG	sJAyx4͢}}4WNIk{+B6c[z=kKLw|c\k)[#^
'?'xP:̚wkyݺ^tZ&gX^Z<4\kr|UrH`4͇>pklw*iBU
~u㪗K:_m-\bl@jGC1`Y*IbQԟ X=G,=i[:[Y3
fȏgY\.۸EC铞|; FS[Z|QЁ>	Y`-tSkESI]Sq
`k:/mդ7);psk~&*.(O^ްoPTQ1j}l~e6w댂NèZU@NfIbb0SB4TVq5H`9;Xed$i8p3!3@7f% St3w(<K0Pp`3V
+2zO.==pF
+^NA_@Yͨ=C$QU簰0JXf'
+2ܪ
+ѝjg7]Y`Bّo~S+Wcy]ݬEX,NO3a^APh,|ыΖb
h3\(`	Z?J/\rh;vbzrX	+}.w}H71u+2"Itҁ(6F'Fݲ,tnʒT`u,.ZbzZp8Oè{vchiAs33+Q9yAf0*!9*y`䧮x{Tha|)r(h.775KU??+*x+1//5a_Y>7f*ojB(%&4H x*LTB<qJ7;xĒB1u9hԏ0P7@!Ov)c?pY"h#^ކV!ю@JI+h
Xjȏ3nAVpZC/LU:4qaEaa. `M18@
a)p#`DIqhފո>IP!`6N$Or[FY-aMz-JRƤsjh642@ =?4
yioO.6&@ƪ8
g/"*,vh_.@ku- X+ v&N8,s{YkUCӂv#tᬘVf(:fi 46/9-ehtGS&T#h*zDlBJ@]BZGzղ2Q\g9Fc6i,
2F  V;䝎+	(
S@VL)ݛ%NV 
:aE(B ?M'8iѪp|GA5A{z```]wxBaU&$nunw/E !ltg6tF^`r ΀vMs²=j_/ʷNS\ֶBrgUX49m_C{ 3	SjҚ=&@
h(6UCZEJ`p j&=`ZJBsŌ 	aL fɤee2[4_6{A\qڊ
+% 	k^qTUJjZlpUHݖymĠWOY\jY`Bx qz0`4?1FQKnEF6Ȏz2zK g,zBy|Dk`t鳲T9
vCh
hnBӺi~l/tkck6x֮r(rXc7L)DElP{W(@*M1G<nIǲ@y]ERUlct(,PX
+/ |;aP_EFVPaae+!4nsEZl^aBAF\wER^PE֯x?Фg=M׬KN9}hwO*%3&w4G=#|%gepч߶C0777}\BuJ?z5)l}
+
2։4~rT s'Gj={!-[;J+T84a(	E=n\4SX&wT6=ӑYvo욲ڢ?y<FsXޫp<o6,3>3Q_\UܶeIsP(p[Ym\zipG>6o|vݫȃxHwxĲQ$*c|ZBSʳr_	tB[Q́F&FDǦݵ>FF^n4ĻHdZg03LE-6tmYQy[n[uZ]k]O-\JXwP4Qg8vi"3bN~SQK.B.S(Wb
+d'~LYR4@lm$/kmȕX_51
+isQu Pf `>yIt/&NK4GK at=K2A≫
+l6QK'?
ݛR:!+<y=CHIޔ-}P&{&Z{aV ꒡p(j쎒,7[K8KJ-UY̢̧=bWJKU3~cD/fO~ԉWaj[A
+8-$1,q'3A#	<a#ΦΧܶDـY~hyu&a?e3(A'AZqPN$n6Q#n,t:3aM7,UYutlQx\GFHmIcԡNIC|`a"3꟔_~קlA4_˗
܎)f [*,oC'o8q	M}ѵ~ʿv
+o8^qg"bP`q)զ]z0soؖD\3'`Pp8T?æ"n% WbPI%bzB7%I/ĕ㓑5M)kShˍ
+1)T'Iu!؀KN>t³BGw$Iz508;6
+ob-b!B6 uٳϢ)
+)egKY@\͍4VB}f$9zx+C#{
+i<AǜJ=żTgյ4kB(gjt7Lp:d<ÈSo^,齺S
v5ku&sQ9QcsFlǜ-	EЈ`s5DrYuo{wigamj
`Ihf܄vSWzM?6YNB&Cm
+@SY:hk]һ 0b_c␾_]|Ik:dMZ#kv:##^55ZO]ƬNgcD#5XJxb<VDz/qlv:Nk(>[ZBPCcHTT 9FXe*:~gbmQ(-D6n]]}o
+#˧QA?W&Md8qWаcۼIS@.js1/1
Ņ9l\>$6eb/_SfŲ'{n,8>;lO00-q`@ 6m5
+zԡwգ2ӝX㬞VKuycRT9|b$OmkǤ%̣bgDܣ/</_ʷ_}~PDx5(߿|omC٫gߤ俾
+F~VYCN$mk/4U9'(h, 6 qpiĢU,i8hxk#9dwz-]|VٲY>rI@ڒ\0׷˷D]}JǊ9W.h,cи	H%,g5<Rآtp,G-޽c5'Z)>Px j̭fvU\hH[m\h5՘;;9i6_Q}֢c&;ڢ19-}>WAb
.c)In%UD>,/h021:AJ1{+[{q`)~jocGj1iL	b*idS!2}5ca2Zldiˊ9KqsTɴ;;afTU>%+kbGYjQ,VCj)[ePG<\x ՞[]jt=~'}6*#A8ϭT2
+XbKpDZ(׷e!?x2K-_ȥ 5Ap~Uj,{??Z/go~ڒ[
+"m'N:La:hx>,jQ
+8;Ѡ;_+BU۴}KPkj6uO{{iI=
?s~^X@,h**#Q԰Q3aXHp)Brk$,1J=$_ߥ9$t0us0(LL>(U3')˲X|bk{.$#{b*M
3R*V.+r?Q~{3FO]j\x	_b}*JpPh=->"WT>#БZ: a^a"/9$3yɘHy❕;/)aPp-YVtEzk;KKCm?9iN_u"iS"bPɦ˿	w:W(x7(cغDdb
Q"!24:nH%Ux;R<4~:wCr\32;^q]9;ʉ4q6{;-g*{tGwGUe{{7f'3Nzhw	 ahb(Qv,(YZPς sLt??0}s9eqr>rt<gn)Ȼ=!^?TG/J鹠b{5ق&:"@vd_ҮCiIM@%})6~Zsyi
&zåUCC-F
uMΜ |:AYA)j!ffíYKldDxy8%
+,̓Tj1ExB!D?AAx'?ąh≩}75[X	 ^nT?AMJYδ
+rx5Ͽ9lR'5Ӹ,\0b<0J$06tϥLy+ @۷!A'+>A/;wS@ʇ*]Nr J=RҵԞguH(-]RR$l^}{n"<̩'T]Gh=:6'cğ0J1 HC1TOk0q)}F?H}wÊہ
4i؟qOm'ێj%#=k3:)%ї¾袺sql&{dܑxMJfW8O
+	
+%ET
+O'%_IhN$tϚ" 58>sdO2~$3џ~烌VJLLLdRJjˡ\䰼N1=f21]8GЋARyã[f
+jSGZ3GZ ] &D g`6Ko$XL 	ZU}xRy$fsw,J6ؐR(K |FKdUX:4ri8Je~YhO!y΢R>zVtUGVw<0v&7TG8VlƢ!;^8OW/&H#LD90((ѓ?
a)Am!L<|ئ%\ÌL4⏕`n?`VWkhb+iŚb%8ti5@/th$pK套sGXh%bɻb/u5K:`Ěcbֈ^:Mžrݹ׶gY5e\pA:K#xs"Nt;f
+dBC	3vDk/U1ղ9GsX-BC<27ǽ M.EguL͋\yY6{ZbuyE5%.wAP3}Sncez52QYͫx`բ*'/ΗCi~E'`ciE*&9ҞKA#
\:+/c)q!r^={pn7\ݱdq;zkڗ,\Ր9N.N[EZ4w^/<4z29愘+GU=0R=9#}^)trgrt:".^Q~;3ʪrmNEE@~}Pf\tzMբI`/81iSNMPVv<_aO6)hNv9dyXOJA1`SNF0d
7`z$
8g0:aї
Z\f0<\oqg~1?8`|l"[nb1 MysB'F~ZbvGNu_f͉kE/˚>6D٘ HN T1P>GO6g\=WNeqot#uz:JO')%A]4QWCMR&
$%j¢
+7Hl%GmPPF @9sBM\ +,u`4cNZ#,U̥.aLQ<4I&ũ1@aWN]P9h^^=T0}\$y  'ѾY!aED*nĈ\nE*eS4O pD1Kr2B}qj1Ʀ/T
78KYY&駵lWSJ9=4OG:ٝf+\*Z8Nʢg^@$|%-ϦWHMVLR:/QJh{8s*dXJ5`j[pk&UYbd`l&LSTr@tڞ){iEڲZw:0Th	&!̀\V`); ^L1C|]ߢr.-8euJ|W>R Nr 8xA#b +<SfLM6e-
!d#_ԚQ&qqPBk A(#ZqƗ!Jpl"1ײkIZVp@?-=6Ss,e:3eZ5R9+7N9InۇםXgCSٮ嫳lmu
,3m9zOPEǰB^rF&B^mc r4sͅj\g1H9T1rFBCZ0JPhwa n]bյP5ނGnWgkuʥC?■ͮ|@-^%;x>@5eyAU954mƄWbp\!, GhD"	3!
+鄛HT\6H8`9LE5tV\){`{
+ꔻ@`N{9瞞ݷv5ٛ:WnYu?={%14*ve\{z?gme&b+hP9B{
OQ,mճU[`l\5zHṽu=`zrX
~UӚ
gv^5y#Q(2'}CWKs륊O67Րo6kCD&PS<JN,\ՅDePZC1$ӡ *r1ѽcȅOQe4}TB%"9:v̀OHn! "B]b	PIH'h$tl$gup;0y\#0¸iIqZ!-z9$Ey(WȬi*/c[4\6Pu𹚫H53g=>㯳XNoQ5\8<On}թNh
f ft+x2mS48vו2
+)ѻ$:(Z1 FbpB2kYcÐQ+Ꮏn#4wݩ/+kOT=#ʶN=;33Q
+@&.֯ɗ/oD{L=aMM=I;eχ,'d<FOcJwy^@L{i׼ɥarqSY< .'\J2+]>(E5^BK1gՀbAt p7oC/Ҳj8QQޢ>YnPj.$Qlw[ǅ@>|rFR=v?$ksH
Lk꿿
+N	\|D gC ]<xFL_=	gL/ۅGI^TGde!ɐ2eӺu}9qtt;GT{ZDIAIɓ'nLSh|	_D_1 FO,*4&04	aDr
+gสغ7eSp W-5_ԧm0j\rM+93ZG5mj!&\9mޡxKXE{W,҂*s1\~m~e-KqޥsV7]E,/pțgKCSu߮׿{]^>ݭ~wS$cwT<б|"QDRMcjId*YN5~wQHպAk3`$0	t1B(_%ZUh*\TzR׋PyRя9h`AsdӬb ဟRX|
+NjhZ; 'h0{*AZ+ehȦ`<r^PHm˄V}TWkO' #gmkOW.QZQ{p=4A6
ҘB3?#9Db%>OCxu'@<>W 8-{j>9أW9.Yz&omC}s1e5\Z<rI)u+Zǹ/M7/oԹ}蹡ѰnYV
[3ܖL\[ 
/)UC2x&#fzQJm`ݲk燚G>|犩]C-`.*
+45K}_.]|[NIwzd6?rp%K끼5kqAgZ 3g!BE	RǕ>Cl)I]{km;sZ=-Cs[֯{l|~󪧭 [OVƀ#@Ik<I{wKk[V?ZE?oxtϥA E?PR>
Tk	lR"7(/CmUe@$8} ,	a[ҳxq^Q:ZRPjVut%n2f9ر]7~,Un6c6:gѫ+-.?M&fv߱s#zVwq:꙱m۫۷c$_g)O&&\@bd34n'BX̡<i !h%DĩY.St A8Mtx+8P3M3 '
F<,owRǆWd)+LӤ>1R;q"LN,`/mO䔰m8F0V\6&yhM&t3J0`g@5zzX#Ն1oԠRڮT}V*yp-"D$ן2pԓ1 8G07Oy#xh(>
+MswLiw:&mH)yi*F)I$qKwN^~2I6JU`>u <I{2Yp)\֤M}$/p37`r$k㹗8AȬUPL` }QLda~TWli	fGџ0Q"쉠
EoEV-ȃǗ1I`|؁%Aݶ8CDÀHR.L4IfNHRyK3{>0P5mh9vyռ%M|Vεz0cQ[}Уcvg-3盲^Y)Vؿ娢VԳVBa\Α.ї-&<_60¡0z̈B@}
+0gI=FS]+(]`\x\J
+K<WRCQ4j:sۨۨT/.EzGq3h9< FvĶ7a&8P3(eӊ;8sdg$"ٔ0&FD2@lDiazsBx_o:@	B
+ZIH\VJf9
+J\!2ٙ/:T٠Tf6ˤvjUȡf3TF (KZN>RqbN38ʔʗ5
f	jA3]֚@ZOjM$%RN
Y[wzterZlJYV9q* N&[5L[2<2?Kl*}*g?je܏Id?r
+`^1}/U߃wyE|k4~NT~WrZ@
+څ_(ZVT%ZZ#X>u㲻^Eo2˽T 'v	<Ր*`c N-FK+P
+WAv4?JScF'c73 SRӀ\Q>j2;ⱳIܯ3s:,([.edW=s
+~=; !FKl*`DǯP 1I𿐁I
Ș,a8 pc3X)WW`:5KQy7j$uE|pM5*`lh$J6R/#4*8BݺؖWX.m)R3fa-v4+JP<g(bv#l.؄+ a攀³eGw_HXc,@u-ѫs: fp{(nX8fQ :ho6 ֏E:~D|%5V'8jKmڿ/ѐK'oBvNg!dKuK,`靿|ZhQf$v,>%F vځ'C78-6 F
@6aY9_,GoЧͳ%{#QkA6>ohͻ㥌d͟_G蓌/tk`RӍ)
|:2r	⯿s<ʖ5E躉]]Zm/xƜO	XR\roytXQ]$^Ӎiܠ*nR gf5/C7A5(1Gu@|,J$4
DIIDmx8=9="zcq2wНvȅGZ55!_u*ZmߴN3^#7$QLZu%!^A I1)91C|GDM߰A7Y݌:֨n;VBNRSq%yo|&5زgt1cL0o1Cٍe^w>½!6jf4K	GzidߴL]/y rEF~ӛUQ@߉`1qUwb\L(bY%)
+ZRlҿ˪0-WiUФIS+_!y]+r=`'tv7{}1{\ǃ$
cϜZ;
+;usg,kv۸U߻|ozrPQwGb
+"]lɵ\{h7{{8ֻo=`#vN_2}N$sSz̙Z	6 t6@fn:6i!T$"W8=(}mZx}}5hKż{8P޾7yƾ7^:8,B7l{8O<Ĥlt	jC`)7a9Jl6C/?4gZ+q+IaɅq&gw.yEZEW~q7K&*/:; ,woܳeCk57nug͵&շ7ڱf}?uP;o>r;N}ztPu]C<֘јsUۧ.
o bo?7gW ,I$Z*!N|˲f<s&|헪m:?^Kg<CB]DSXI*᪤hs9!?+K__%9@s
+NzO|jĕDAi$ڇ~>zQtc+kx>7n鸧H1L"bN65|#.hd
+`/0뉚]R>[KR;tHdNkVrh*<;?Gj3 d4	ьi1;^Cg&cPSV9y8xqcn蒳ѡϷ]j<BY+<08Һu%3\Nk&,5EO>^	閪8w<:ml튵ݳGVt*魏7Ϛq0Jg!=B_Sb>7LS*J&o#'q&]+F.O	s!qLCDktK||<Q~J% UZ+Pa8<5xzyμե6d/6wXi<tۥuo[Z/w΢%EeR?W h\zSWJ}e@Vf7:xW$7){t֓Et xr֓tʓ]d̪u[)'o%CCRǌ_ރoIrL=e8=gLN;h($MjQ\19z:)t^=QZ	zpƽ9cɶ|ZbdYT j.h7DJ)2jFO^d8P
+7lLč1I#n5peZ.PaӤf[[me1+ًÍ-'ŭ+!]xdskJ?{ӻKբ!őb8cHd}M-9zTg4pӹdLd5,t`V~O{Vͺ-yR%-jOMfsZ2v|u,e4OX|CGlZAzĿMV$ #C. F+&K#Z(QT.
+DUΐ?8XvPs;ֆCǌvZ}I
5C<wMW4ć!'
]qJ!g]KהGJ}VV>4cLzbU[)3K!wY޶oXq¾é	[?b(\5La乖/{satq/RˀƓ/=V!疕	rR|BDPxt|߳eg)VA"#^AqF$ڻ"db&B%+ձa6U{nm0YoM}4Ғ|y|*I{6b=}
6d1yݰ=s/}qU|gFOS1
j~;q/^u 5eZXnKDkc`LSUxM֔v)#(&:!PUԤ:ˮ>eKqGe6(ABO3cC~QgTh&*F&ak[:V#UJ5.Ugp+*¢*f=c(ךW1^4٠.QK wƐetC<(a,zB0 V<[M >CwUc:y'܃i9}^< C08C\OPE^1sZR5Hvn}}n6mpb1,	P	؊A1eWv5wǽ#
h#/_]ps3:u8ifٟ>0[v۶DY4ag
"DR9KvHR]SPŷzJƛ3в 
?X§)VF1Io0O%ehyw	xA;2ބI>gvz
+_ap^i5ҕp}ϛwJ9ˉlԔV4W5qH>.{C[|_B>N=^[r9^5bUΙvJڂk|߰8NgNJhJ,JA9*rDx0s{P6_WFjpm8Ϛl#)ku?!ḰГ
V{=ӓi3a3	`F`vin`n7<2n7unhC"$T /^BdG#yYl޼r U 5) 嘭C/YZ,[,rͱZhXqE~Djŗ=kqW[Y$9.v1rqj3܈m7%q\br2:.G!D8<%rըרi^`:X+r:]<cr6 yi䜂?DE;x6@KIhu϶aںqV-6uU;V3VZG>E
;B41zb_h
+{b#g¼p9t(J8!RY'%saX{D_! "8dr50.&ʷӾ6ې9p:X	qw3Ϡhu8eD07D{ s&ByfthsȤ'7VT
lL./!.75^FV=.H*^WR֮,_0.iW]ee+ܸ&wo]MP{(aW80=p\qZkք΁w3V]"KfEJne*kT7*>q{-ȕ*LnwWXr. ҫ.z=b69bX`-Q
+@w?qmEp_|#KWW%eB3µ{ҷe(K@ږ˃ K{[@ Ǹys0df		Q9)8{!p笯k.U}>}kk׳v@՗.q٥W&oE3C^?C?G[۷={b<}aA uip(uiW2JM_+X	^]"~ǡ@)<MN=BóM-L!mL!]}c@ж\%:%Ko`**|3*]I˰@uXK	{(|I|~_ hq% A_&A%D̠ڍޠ-hCxB>Y3=8:Y7bzS8?%,S/ҋ^$(3HݝH
+$#BL*f@pO UFٳ\@ݟ e
+
+EHquAo=SgDQ.b&.{f׋w	Z%0 .7s??~u?sȊ	'D;FFEl188:UgFͯ_6m0cYV7wU֜'706L6rh+FZ|T~8155ipMVOKZ۲s6žbD
+K읁;!f
I5k%fpoZNK$p܉7&x8"~}3c@qL4GK2m
<J~))gy8s_#g{`.ڨd"J ϐD1x1"".@P9~OQOmUPhPO 
*4V}]}JV7l˸{B5寷IN].g[h`/],lrƨT˛k2ydBH㍰թrё
j[c	eЍc|IO!E# )Kx2_$ϳ}S>L5	TNy#4I <1BD,5X
+ay$yRcTPYLєPZWfjzA3*SUs(go.KZ!Jڊ&A 0%Έ-B:)NゝKgu\6߸~-o_wSg+ggC.f$]HxGhc
+n@dV`2]zuܸVJhsUW+w,WD}nOӤ тf}́Rj5NͧyO8<lH.6N;@{ È^x]8!Dh"=eN23x,>
+I$,>扵pB]41+RKH)'!G,~%!z}< A
+ &d!t2B	&Jd41Q4yAI@6d=c2/c~{V̢ 4WwvÑ@|']_41zJqKOtT)j$4+ӎ0KQ1sm|~2k<L*3{ ̟t<$E4ouఇ.Tk@/nH9 ׇ̙ـ޷`x-mK.]gàDC<'Ap-:bxJqh-,
+Z̀fh7,8z	bҸorL@pG}`)B0gw fh"j2G/ܓWKhFI+Oo,WԢ!H :![lpϠ5{Qi2m^SW\׀d}ﲚ-%?I.g+A(>5oZDnHg
1,:/X9c^k4yUzK<uL?F+MKk\*JbN	fS^)P +nJƁ5jq΁ '$PoaȤ@43F0F|K1s4AsAH4/)\E%B}cĹ
y4OőZl6IQ"rc|Ւh	%PL6;I9!
+%6ydyH;cEBNswW13CIpoz^tf&Ȗ
0	'p5"ϔMbĈ+̹)i;M~6N)yӜ#$7+a	(gL&^o2ypW%0}Of+љ$Ȟ;`P	G\NkFh\.qp:u6hġyPm
J*TYVqz6JU*pg:!ǤL&rʥ2>qjNo6yu4vg(tN')&]tjJC!SF4!H!C3Ą'$O={ bj6iA9CN@<Rbl\8M*AR2HY@ZA-V=oVCn3,v056h
@FQXuj΢r*{v*=
+&G[|-J̥Vgn\=ؐ]m#- CA0
+D\ ǳRӨyx&YrHa!Cx]9<!
)Qq-*AVeЩsB@D'K@Tм"BjJ|]jN1|ʔJW]N8v.˫Td@vqMMAn0n=9nz݋I<`v͛wV,])}nKu:&~&Z[ωVSc{V\<	=
+zh$¾lJ4yڪ@]!jcfI	۱ᚢ |t9q'+,m.C]m+,Am3ҶR{|$举AL1xsé	QoxgA
FQ|4d2Z37O@<qBF_xE	`P3 C&	\Etxa4s=&LgTH^!Bys' ẸBIO6H8pbt
(AD'h!Lv<&Ap;0A+QDo@(IyD:h]9
"!Nl|XtjQ#'cD.L&on6]uɼѭpB簄,ٲu#Rixk!=7Ⱦ+Eք=~:r`6fYK>qz|jP8uMn˦{n2z$aF/K17~;D1cA2=|ɪx\T>m:Vb̗o}Yn[7}_Yj/c
7N\vu؆-5\ƭI~ĩ/,H]>|xq"vJϠ
+|.(D߼*+੧R\N?hp;$OUUӁzY&7uj^c`+)4U3ұsX&:tq{,8qd>IML]Z
+E M1VC9eVH꙾rJ	XEE
֣o_rUxv|0'5#GTO|x\.PިDK8ćGKgd,Xo3.A	5 $@k37_ c%ByN;IpMhZUTM6;$==<RIR5cX6IQ!3;*j
+n^JCCYzAHElEz@.Y!ᩡlI%Y@Գ2+^D*ԿV"h2-0e򽻴2.tKUr]Uт@@]bҿk5ԥ-:TB
+nz҈܄
+n"(E.VX䫋\I^X+PM2q2$E)2(O\"DO}Q
+:ZB"g[?kDQ3[]Ь,eR*7jw킗ƤwFFP^A}AA=pQdrעļڲ33<KZ5(piEUeR<YPSyEmֺفl[ոD:F]\%te=겒nEixܹ}vde"<jyԘ'VB	 +ͤ~pc2D`J[f^D^bzw' V[1:k6Q84W9ii{ts1p΁WKZ9ZْZ]v>)wgys&p߷W7z0	D{satD]3jA%<A:'b*CS?s2"7;UQ_|fڂ(JZ7<S^枮l_Ε Cw0D_	f
+ėq.40:z89zAы.с p&M[Ԇ4M @A0e2e;qee#駄()	ܭe'h:]9D.PNުRO:(̺KW׽#gwjk7
'7^#~MG]iׁVfPm-~rr85-rx5*lYlg֯^@=qMx$eqRd$p r~cӪO
K\3LsS
+lɾɷ?o[^
+ cRdYqEh?z?	M-P>SVW-80{WtNBD[|D`-
BU0?1DɠXTFvKR8|dO2iMA<xaC<2FIϑ(
+^?K&p\1mG^^	u498rlPǄBڜ'Ȑ N^;Lh]D5#472uպ'u}O/k[Z5VkֺYs$ԤqL8>9
+6ز4OIwI~y~4=:"`h0* 64`F)br#!f"G#jS1s2_F8tr}]Fsu9bW&Se!n%~g!a?FD[&NתM8!
+!P+:lbmVֶ̯sY[cD󂼊%tH@` u*	za-N2T_⾗+ZR>Y-{=MA<ɭ;S;xށ>\23['4'͝y6dF[Ha,rTH*OQW/JUZ<֋puBL!LHQXPu%!]Dkաm[")\0$R.w`бsZ"ebEVŸ]ӭ(8&t{+s^7{lyENK5c5*.J`sZϙmW'|/w;.Ѯx`m i3._#,9bnVw~6(b#0֟dD0Tپ0)H-^L*KlD?t0̹Ep|e,uO
+=kvg8b#+6B'G|bLzpӓʜ%?ϔO3<?'R@F;
K9m8TȶMbHqS3'_b,lಹ_aR>1d~rQ|ϻ~!*LGZ<C-%<
2ɴxXnW <{;dmKQU&!h9W!sDߣ7#w_@'|Ļ _oPF>K*5D"ђb2x8@
Yx
+">!~S&JZ4O>ˑ!ټ;֗ eMkd#+MO#@
+*)T=/9NW
+ 	1 ńA)_$7">sZ̔ JSrmXē`;o]5'\G] O3`TD.ķҕ'130#nCXoa.&
+aH%
&
 )!i-{`D6P	fӌxI;RRw%cÆŒN^^n[^Y
օ+p[0-XE=J0#,!1@Q8T  <OFz$ܗC5{<=dL.Bl9`iĿI}?ӟ%q9?6Eǌ#zLxC߀;w>#~!?؄~<!vCq_&`f}󆂭t~5d&{ZpNMWd]iV\WBQFID$#N$5L]qPXTMjVDIh>d]2tx9>>]rհ"0|fڜ
+;
۬n-{w*EXP*sǎpj9V8jhJG;H[K·%';VW9hJ
+wTOoϢ1Ҿvire/g}}?\cS[ڲڧѭ5^ sZ18x<wL+J(?
+9ul^OrNp|bZ[z>3N]3L 5i'O݅$#럍8\|Տ,t'
+z"`Հ4,{K};?}͍^ge5r[<4LLuB	Н/8ԭkGV$ʗ͒<pX֢c\?SP{zmZhHZx*RkjJZ;oR%UYOVV*__?M̺vvqRc =80jY3}B-Ӎa{- VTD8h{ }
+e9$![N;#gV[eɲ$WȒle٘blf馛N$@BO@R)0KB
+A84\KliJl}̛7o<Pف*aOiaZ6$H4xڱUQ\֭NEr/ރIKIz'bAhmX*
ĺOHFK$*BS[:7m4m[s,._㸯;K*+}pLv%}-i45c-B{
+
+wÏv_
+ _u|i$Luq(?q5D5Ssr
+@AQQGԓki]!Ll.?1t8Jmv?	:b k
+h"MN'@@g~΋V8&#c xF2i&9 n
{IO^ø:W NL~1e֟e{Rh5plJgO듙s[ }6dւmjܥwo/#nX@WBM?WFgoչ
iT+0HiHEdW{GX ~̺d}{YgftuaK(ǖ=<vG5>DNOŦt^'`HT.MҀF-'
=I$ݨPWشY0V3V"ར4h=sF1\U	l ?|U'EX^*ՓbhV
+|(S16mZy|^v'`K,,,/_>_G_?)egΌ1(;	xϯMϯ}Bh*
!(0zOެGvJJ<{cyK1qA|^t@K9#72e|:?\}c`G0%S	вO?\0=C}%76
+OuL:{gp1`]LKXcr,w'cAL /?d${mX3x9OC&~ϜbϞ/N	W
{C{m߾7[5ƼsO?ӧ,\x]!.gRښY:*doarrs3[{VEy>v[ˡoXM@Z!
++VxV4Fxanwud<,>8d7[1j:pBZ<p	"}C}7~?*LamIFP$~Sjˣ
+)UJST_塈2#<MͧQ˨BoDz;{1"X$G݀L=. 	[qXiԧ"o4y^ȵ>~f3B5S~VrnV
n#~0,/x聞?^ԙ3e/]wuow$3gbj4ר7!*FyjgQ;9?2~~hўtO:)t='݃==CuY4$[:,	tBoEԘLoHMe@-5,Bo;{q^̍,f4&vphȻv)"<
+'*|0Nز0[JnEE.W
:LD.D8ߵ?ODPI1Wes 烏8bavzigk6~[~΍qD>MfU^OM8Ru6.x~jTAkMgzև:j崉aU3iPRtLUxY`(@|R*Eǲgcg@
+'uA`2+,vЋć/	DtUwmKbI"et'&d{bDrRINf$U`>[2ThӌNՅk-z*FO<( :sXv7b2uTt\k.7ǻt(?GC߱7N95Ct%igC̉gS`/@χU0>`;lc(|0v0:Җi#!5a
*:0,O <R|MYJ)lǉ*SnE뇀`ODokͨCb
+z%089fx1ÆiaPp_?=/!Uz2,lOZt9@`~mnCNNPf.l/IMlLX \ܗKj)Eu%u* bN c 7kg1( ;p{1-g1@\2t	7D	P4-oo')%z29L5)2<:B&):O¤T]EݶK~M[uN9\[F_)6TVpHtKu4ӬV<kz^βɎtG2y=<H"Go1oJ($gfwd;Ag`viI!;oEq-EIc
+(!"PGinMv/^;1bMx	q"3&8*^|ҿi3շS^WYbiJn*M-ű]o.e_k=eo:Z
2w//ץyԥyV2s:Qb9?͖VtXJOq{̿;τvyhOÈl,oe'tALAVqҩ1ʳ?ϮZ9eM*L^w©u,m*3qlU02'z>6_WʧU;(+4%ɤfei^oH$S;C!;竭>N5)D{ʎ!K} rљ yVЌw1Hd e;N
\DFChWvπw;ty9rӹp\;>#~`)ahZb izYjq;~\lЛS+rjBkoPl
+)^NA]'ޮh}f"c.!ok岭o<PB{?L'Eԗ
+D	=]*.gJŶ}Bot&&
+e\E^ ׭{/NK޽DX9#^4xC_
+jK"wCjM{.(,ր+MsQDQcTP^/4y5@^+/'w4}
Zsũ"`W%
yGIpC0:E?kݺYɎ+	U"5U@SxW.0pKaX}:]zInN6C̦߾uQ'|䘔UVєN=?v7	9l&mONb{#pG^]<MbHd|r!q؍1a+na|)SZ6>/	SJVN\*T-@vfVO!h4RhtLaH\d,Ӏ"F'aKDPo(z
p=cwd7b]Z8p`"2X:"ŋ׃'H-2s֯{/Ǿh{ThrĐ!CT0b/b
	Ԝ[9>(^0atvav؀ńQ1So4VxE
+Nln=zxϒŒ;ؼѤ$.	)_$1(}5$ӊEP۔&~F̩8ޫ`(1E(ѻ&G"T¹|b,i((18W0w#BSGXK{_gS.ф6g?{i֛뷛⥶v=vlTRadځӖȔ
+\v힁UU7V͋ *5}$2uC0w҇AåήCvELSY>{4&<zqDADhB>~MjF	%ۇt_O\',}%l)hz%ۺZyIF]݂Շ_'7~U)<2N(;h-Pq]aV%?yyNM	َy[{[h1r#}B+:>̮ׅN "
+	ܖ7Aq0t#I$O*}~TwDE	7^  ٝ#D(%M*6X>$@p^ 
")	zAG%b>>T^};
OǘQ;c-/
+^#7wVt	s&G'*-#צ Q% ^M'pc"-W+*m9zLԎp힒{ɑ]}}(b0};ax]t[)Q@]gД vÉ7g㮆'fToJfȬ"Rۚ˫Ǆ*
+S?u=95jU!9F9j.4p|P{wΔ"Nz(mW`yخ`ŰKf?~Fm(ȑX0sr6D#P2	='HBL"-0j0dNG̏rF=/tu ?"Ju*/^]2Q.Uԩ\|OYw/^p9ߡ%Ԟv%(-FʋkBeNk=vuP37g,	}QįKLZ>:MN⏆/"[I}II}{Rwu
+R_KnxRFmX`HS]}Gŝ-g(KqAM"qpn8o|5Rg1:?M
+N
+</@U=xoZN?䞧mYqo~Z7Z\Cѝ-:O4uy	=QW\AF[%2|	BbE6RM|uB)~]T u:L*| <YR-fgg}Lbu}aLWWЈR<v3A/VK	"gԤ7vDȉonGC# &}?Gp.cFx
vnKp_w}^Ь
+8
D PX@j%CH+O58}ރ,ψ!Bp=zxZmh3@|ُĉ7F^Qef^XǄ7J|6ީo.94O˲|!,
E(4
a+[Kp
+^Ŋ&^jDth)b!72Ayc!$y D#4joHVp	ٖO'GoZPT1;!*7
9t/Wȩ
+ZenꪞvMOLv:{\~Knjj")|ox\Wa4I3rXڍ=1] 	f"!
V@7cۙ.⃴ #❍B8xq;[/6P.]ĞC>1a%O0<;,A[w*
X'!(=i}&?#^$	^2)m4sDE|gPb2D q>n.*?W̸x(Ļ8sDSD<\"53PsA907@RFq1xodYХ&]bnʁdbzya(rj~ }@8
	>>4J.]RRŨ2*F
+A6r]eH}KK۔JҡObƆL
+GhN'%+Sx̒jU,V/}2D5NwY8G,JeAh*c幔wޡ.0{DxSfѢ2w$F-:WY\D,oIyךnNI	,i)m#YǪjU-3Y$v%%3ZpV򒲗.#cNf.5d$C},KSצIX$fX͊DM^uVJ0Rs0=t@kToRZ$bX*eVEWϕ5T0Tnkޑ
+7&$2iyThF7ubqey #lR*[)IMk\a#u[N^3VqאnL(v\fTGQI7p=3?קw(snYISMg''gaFmL*1JJ2U,O}}]&k9-Di-%}jS*0XXWb%cRLR)$MNK,NcإUdfI$DĢ*$R fLMMuLձK7)lJehZ%V1՛
+ڒS.u4elJ=RSj>rlڮb4%ǎ-Y]#,EJ؈]?Sgz-K=:b+4A|hFCR("F'ch)=
+EjjR7﫧W*JoJL2lXBaar:ZcůM?'-V<C	^%y/ϻvYYL AiˤI[&mijS:{=ܠ?3)?gՠN%r |^E$$ZoIIMCͩ<4ƻxijV[{
rTZjBuT4+v4{YX;	Xڸͳ 	 ׈_lXl|ن
b q(:fjM+g:R?1TlJ@׿+&9s>xn]mPQY5eS0 Ư_?^:w.rMP	ToܞL"ʛ_b^GS7eZUd<Zi׈<Olk}VMPŇ&jY
+VjdI|Q2=`H7ER("*Ez!ԽQ-m*8Н1QKOJ"R0,cW"a!(赺LnbޖN&N3:\)hVw&@ѵ6il
,>
+lX>ͧAGM1	0Bǖc(B0lEguKPpl
+G»vh[!A9v
qo9b\#}v@04>
+B4ZQ)?ݘ:>uX vn(zHE~Jńs(7PzXx@?n;E)҃4EJACuJyc>,FuUiZ:^{P?cYոOBk3Xt5PTErׁn*~)pDM0;bMA폨p[인ւ	4]Lvky4a .YB\UE/5 lbK2#M%PJvWθnpk'`@ɴ`iʌPW8Ġl%t	%ʌSQ~Vpj*$w^#G1i6}"vw"b<nc?ͦNi&t~ؤ֭:f~Ygm-Y` ΔisV3mJAŲɹ_3YUjB$,8;DQqܓE,X6P+բR`_P̋'4Y{[*e7-nwr'PŠuw
?u:0S*{?E<yN!7PղA&16l'o5=CoJ2x
+^~	[Acb-~6?u!X燚GcDqn-&hˀHp:EG+n!.<zMh9lb젮@ȑp,.Ui7eQj.`)Ƒt;hyAPIظLKq!"zFZc
+Jg4F7eV(`1L^5 B+ڽa]-jlԅ:[Ų!}!b(8z)	_J|}dR*jqlϽKϽMvDg5Z5q.\jmEk6md|v4MVlqdvԵ_<r&Mל`OyE~vҙL:|Ư0g͂aG:vp	(MS<ӆ
?=&g<2jzNn߿V[0?Hlnۂ&U>zrMZښ]].?+;z##Jz~:vvۻ$31~eݹ+tJG;I	mWyؤqk*dƜ^VX_<:7''wtq}aYa#TH3:#CyVZWjU֕?;AY|.d7R]&ODh<*z@	i݉AwNA%L
+@vI0c*T.39R[VJЩ,՜bM1WR
߫>EƉN,`õ>U8z/{23Yh확b^āpQ{/RX_߲d8Ȭ6e;зk	}B
+rfq  HˠfŬD	ζ%,Ĭm
+?sx\j\WWUqCS~mlY3M>qs3`ػoSL4.\剶jlu[I77쵥S4m323ȧꑳlg@͢؏1W%`T;ω
+ExCt#8*g30Gx{!w>滢xi$plɣ`
;f7kAfyh 3>>GU4VO-HM֌oK<')m?%{[2p;>κK>e}}ڸ0D2`TIHnP(A!6Ƣ2hk}U3Yެșt#d}s|'s|\P_ ξGփ$į8;BhQ",Ƙ{5k'ZUָߚ8~)A^R--.fGWԋZGE*.FzӘP.$-J}&\VTTnv?a/'n-{4yʐ`ʡ5e9<4eU斕dT	U6?AX&튨Řf5?MA6eb$d`t%Qp3`sb3NnMSpU5G
[6CnqҀ 0y"U(tK\SR*1S$AW~gSvtQR[ 
%ZԛgXo3c(|:c(sVl`nHz*_~uz<J9L,,3XӧX 
+,tRYP%$S׭)]dK nBd&n&|)ò{
+K*/~4YkN_Juqh@kߟm84@
+"b -M/g.,@hL`H.	}kopy\#4T 3qЎYcvh/a_INO+Ui
+SV1O!Dt%CԯP4`@|&8CP_ºOV*^wvY7~EUzD4:
fbʃHBks*DT6tFYe-}e#t5}CŹΟzBZs	#C83k؁0!\M z`E!hЛ=U~VФUƤҾ=Wi0tնş4<}K񬗱āa)*[k9'nJG'Pٔ	0u
+VYTJ&YcD$ϫbr<oVH%.T(O$
+-ӶD\ jKZ4RI5rcѧTɜktkI)CBuPT`8M.o 0$T	0aW>P5X"ݫ~P]#jDy%K j$-v!F~32ܪQ5`.| ap>nw/y#?X##Jw5(
+Nx4슩qV^=~R'Ҫe,ҧXM}jJ-)T:אw3rT'x}scFy7k
+V0\SM(2@u:-YzǮS8W[4;0qƷr6SBIXqLt&t&#M
G#&t
ڠ470݆IpX2M LuwDo2`
+%\ 7߳g
+^mlmW)sX7ao`BfbnQ1J)?FT7ѣ;C6XV}EBq:ٗzhW*S/'W
+I~F,앀 Ud
A:ɫ+z:b4'Ŵ؉szkܮ .08q/8 kYHE>QvŋgO~aժbx.쨽'T Y&7(w ^;[Ս$\0w/6p'">@'w.X HZɋ(jXyc\X{'Dy>z-zxy>xm˔ۜS^O]Ђ{E&``w) +ySL>cua=$+h)V,7RH֯a=U<35@fF9Ni@6݅LDQs-cr졂z	
+W^׏~чS25$Z}݊#q~d{VF^ުԚYl&'Jk~O V{W|G&$d]8/vDj&7xҤU떦ʐ3{W(1O-T}2k@NH:e i|},Nj$}^\X,_+Vr{-sv7d/zkuxC499/%V<S[ƅٷ_:<}3^;[lzA)d }-U}sQH:z3
+\D_+B3F	xh &>ϕ 4]j3=/#TQcϱͫHBw_Ee^f [џ376 N3w\"R1v/}}"O{<Z@!g (E=
+5uW n&iK$j!jw%P<T<N=QZUAnŀ82+^Ra>?1	E>9|.mV
+40
l<kO6ҋP$K6m
&w63dVk'Ո!o=t
+4HJe\r.mOaz
*ZҩW[.sߟV"k>K҇k|2A?g`f.}W<wպ+~8U)-l}Pժ*R379~>F\[XQ:J1D~NN*(|C^&@Gj1:;kN\	0ƅfӨp?$0oGG߽0C は/zF4X~dIE[.9љwI` 샧'ab$~+/m`.- Qb'͛"+6XJ̓n+fA0H+l_sʴ!-TdؿOdɜiLjNqJɘeO;;%G'o; "),=K
+][ g<Fh.~[?
u}rf2h^3sjƾ5q0f 8uĔ,'5Dk)@?\a^=MZ_1&cMͲk׏>|Mo<<
+4/c遷<lٛ,v߾={{5Y{~ '=	,\k^&'0tXDl}FG*QT?.ZۂK
+u-ZRhu0!$7@d~XɢŎxx+x4V^VuPif
wz9i{V<їKw#=`~ёޏ_ф3,1&W->xj~ܱja>txkla^3qniiЗ1MɎH͌ و
KQj1$ag2g#K|!yeDQLxX{i4{{VNl	Ѩr|_IG$iu,N?TW߂bt*xAutAՏ7Ѐ\84dه&I~Xsul0eZ~rsUJkG
+)2S~mVyn#~chVA+c%YY Z!W1tA1y51+AE8ICo.V3['1;Sv2Q:pؽ{/fb/vܽ1<I$U
PUahTRIԴV\Uj"RkMoyӇ
9* ).:{f=ϿoQj%k1yT}[ghn44\5rd]qۇC<i̬𳦅l\EOC&Z*ZZvi-w *1t)S*%/RjJ5ey3֏WlS4j˔j04ܮղ"aDwϘ֯F8Oͦ&}6_:-HŜIE?2̓uqCgbZafJj4TL
JcXh:p{[`:N684J& nFٗ,-P2d_
'1@2'rdD*Qe?<sljI\x
+ӽĐvs.b	'YEUpCӥT)sN'Smٱ9XxmSDŽ1ONhSVe湕ET:0OapY§Ff~]8,K)7BTpK/UedmAzkT`co_ek*m>l^:fy%6?a2Gy8rmngô0.ׂ~XǌcpD1N70%p{UWܥ҄oS(آ	v-6=C=s"n"^D͐8'ݿ
ڊEBTPAEU!DwUIOep$FZo|놪'܈s!}q"TPd(le+
+VW^DlYs:ahI`X kUq&HIR&
+5R		
r#F <oj 25O		jvIS2_'z"el+]f(:xt䊬!^G@<~$;%"#?xmC}\x64+֢}+B6ԡ{vddN?&sTcaxiRvKf;7CU*iUवfZ4j[o`@H2,Wi PrU)L	{<\\c@sND:_Zh8))zo^RA4f[Ghml[Yoom
J&NsKŁ/e(ilXJ7x$*1p<piJ@/F'ƳvxD,)N!At!f=ΣCs^pgs ߯xcb{xTNS@`%	ISO?©7q^.3lTUf>-M>/?}D LeJ{L':y!=lgwKsC83jwV˩}.'v
+cUQ)I{W-Ly}0W_훰S%YIV١gD7;;ZX4vhH;n}5>J13U!P3xd}?1mډwER`*A 36?M~hIxY=	28Lq,6h=΅Pt{k0f7?rFR8`vG<ؔkTzgL+VaLwp
+#
+&ɼS,Y~>o~3b!wcE. k,)O>e 1z<gT%5"<O0;J7Քc vZubo9 
|DIϧ\,.M^<{vrZ|l	GՀRE
h+h N,#Oyߛ~l}MMGm@Sa1\q r`}X$bSRReߎDK!F.ӌޥВBݧ{b/Xϐlb01v.LQ-cdX BGAWZSXw^yZ$)퀜`cQfqوa1X ^je9r$Kfd9Lhpqը`#tdOAxm~ ><aIŽRZP3Cy(Q0SrO
yI#lYeRivffT*MI$EF"}
Z2j,}2x
+k:ح~(a
+/P {7w3߮lgJ-8h|Wyw?Wmx@_~>	V*1 '_nFBQX
+!I'P!q`3QltStb	/<;ɖ? &%yD,eOp8jb>
+@Tﾶcη歿Zyw~?zE gZsq	snݴŖ'2;͹Gz,>#QQ?_ bNɆӍivǌj~w`GS^`=O3cM#!ȧtxۄ~.k:D!,茮?:At$6p9*> bi([nϠA#鰺Ih*~[Dqt珓j`my. 7e5/6u_T
BXa
?-t:Ufr4RJJoE--j#髳,*v>&$Q?㰗.;Q<aU (bt%աG1*l%:ӣ֤l&ĩd,cqku&Kn^xg#Vi؜k1n'609+l|4jcS]VjeA[)V٤OYҚs]7gxzM/]KҿTaf8gzYw b;I6@^ԲzHI4Z!Dћol}!
+0'\Fō2j5 vMxKUMܻ-~Cg&
<~LvU3
+ [|V\fV|r9ܐv&qoG<7kZ})+Igkʋ+ ɔeҙ9s
+9hO0Rk+_6`S(X:Gi|Ko_vfs0Ca&<7(
+هH2*2b64OR֍}qrdK,WS+c+YW:Ē7lVCnd\O0ƢZ|׌Z1.k?WCtEjt:dK]իG> ]'׬=f͚S'
3rxW˯f8{)VLo0床|`;&ޱ~Riqì^OMNTuG: I.AR(_Mo=pNtMj7#~s&#K(=<kwrMXwZS P{D_i5ݦvK~eh*9p=ĮΧw+zB=Ԓ\s V7ӣ}im5Uk	zG9rkA3W'Z܂|ȈC'<FBo3>q0:]pN8DG^>HY4׻]F#
+÷,FhLuO'zܴ%*cvvd Elg:1hr35kgFatu~m>џz9qLI)U<gx
+_ifmљ`.l8sdg鶍yXWx6ݴ
e}ư_("/[0:ӻއ6:l6%P,4
+P8u,:N/6Ƿ7.Aߎgd
6{r0x؋LF"\b6(%D"`Fvpg!b`	_J*eK83|q(ԦJ>WR!&)A|r*2H8%ݠJe[|MojP?C[8ra93{cbqo5&0
+4%eٳw<<` [S7߇?C Ӟ̶{"yPn) hAcWzZ*yb.urܚ[%XqᏣ605n'Ny'ND~^%s%藂]MLcBuJDO_D~_8;U\W#'soMgC=P9NWǐu0-ת׶Nnk9tz9MF̍("QIS?E@!&O">H@!}Z%?
?	qx6rD.L0"*r8"GO5E79?Е)Aֆu)~Q}@l Lrz\'I,\zӷyMڞ0`V+έxFGO_C?ҭm2h0~ |lClq槇L?dnOuD`mptGDVf롷G3H	>F`h㖋mpM6\.f/ђE8	:|12ؑ92^
+ԍ5k F?pA
Иwd<	w=6J@l^}SCGmrf%[ϧgi\	[x ,ރ
u*Ժ0:
|WlrJi6}w
,i2ִi&׈y|[I0C^ymr򑯎i&"Hm$ۖOvyxt)^F(  
+buroQ i7c#RsMav))fDjL(sb&[sdTb1s_7牀:U_UX/ϭXqX@	Й[FAQJq#?)ߺ|V}+-H6aGtSxYq~ㅰVjhW#r#1!w48Q{n/ i=(
+U-zFnU5˖gRqw`c4gej+6C9ein33Ѭ1[wc⭽ҿˏ^.L\xK1ms\rGU5^4Z!Oѷzh3Φwyeƹ;R=}&z(6It}	|ZieݲNˇdKۊ8'sǉ	9I!R jp%p%HZ޶(hʎҾ~ߗX;;<<4kA`6KTV2^4"?K/AnyܵE!JbG*/JZX?3ҹO;OCBp`D8or[Lf5~V;>QqJD>C\K7]A-aoy@]
"
;vsHH'&!zXX5gԞNpCMN14^4xF~Fe21)^p?#fJZRԙ1]顕j3R%i5!̐?B{WJ-sva{>Z i9O?W'+ӼQJ0]zLBVQ=>J}FS*)ƉFZ5˨Vj	p4 ]!n
s Ds43Q:pӞ#
+'N%;g_ = .2I_Y-,VH>{LBg6ep;kJ W"u.#|
+]H(PڰFtoQ,VXSTfAápuN\[;olBMEhZة>g6	%ؑY$h0ggyX$^TDVÅ b$RrIh;,J>`i9  P*NJ}׌.GBei:㳙CB01Z[-OL|9uG̘1G\~;]kLCSYbz	ɪ:QRnNH_X> ҇BB),l}U1ƙ[	jV]Ҥ]/?ϝ8i	~%I7モl4Ub5˨5Q7Sߣ;{ȅ0N|v4-]$eq2\Ni%bd.3] @8m@n|7\9+إ29e9?G-n@@RHTlI[RV
w=bCA9MVꐗ#bPƝ&bf.A@c5Iؚ=>,/eM|ဌb7dI~ЌӦ^@5p|n`LZ AŦ*C}d.y<5PU=kR,5D«2+g/
G32
+S}r.qnƬ(^*pٍ9=\<,Q?"|p)+Fkrxo>.|4߅Ad
+)S:ƦI|*Έ qGs6;^O~+r.uD 뻐%WCAQTیuրW3egչ+HD))0:&pLNt~NmyFyOs[
+`\ky;h_e0@.ӿx9?f`/Z^}WBHRo7z`@Q4ΆбLwl_7^=t=SUZ7HGqgEGJ}9R cjB<TMB>=)Ĝl
+#=v~xqvwoDk(k.	@@ºk!}!HZ;wg_8}Vܯpt>׵>x4G;r>p<8"d4\:~FB/PGbfUޓJi8ۆݹuM5|35.axnoX0f1K 4?szRG|{GgjCB*:m6H}Wu{ˁ6֒B-yC=Jۼ;&[8ի4|rq^9pH/U`mP<=cxOAX^kC]MIh'P?LqAC`S6ħR_h fA
tL2jXBZ`͘piDlJALxfˮ ѺԘUА13CO9Ka|{۾Tz%E"˫T*7Cxvi2Vd9'a=zˣVIx F:x-
i
+!p;m/Yp|x(~B%W~FA)1S~?E4=KR0j*^FR0*9GHgPR
ArX㲁xkҽ쯎 [q-E%C!PL4"zڲ\̛_L #e"քDWTSҁP)ǥ
`Uo~گ9,O`g 
^O&WK50<0Ħ]oGp
+
+*HEL b5pdL_RӥJ`wDcCl <lVs'`abpH؃Y"⺽~p.|T0?(CҌYdTcؙkMC ba2xGMxؚ6HF""v Gh]~lK$n(Lbn$E-ѐpoaT3'frIal4;%ՆWEQj+i"\6u2O,G>n%-u'w8_iJqXl0kD>%K>gg^Қ(a
󬬔H΂l#*~)e,3L],.p`v:W62|]ţ^J+qXrJŰ/ab
+`ݰZ<TVb;oßv	^Ї@IoCeW\c7
/-dǶ.}.GKweO?}pr60lzov>|tyֵB׭Tupm_%mzcNE(OD}˹8%ٛ	/VaMr8Ǌ
,3R,w_V^Xk a'VZ,CL{TpU"2vh{^scS*1b#OQCmxf.{@(*Fz孷A6/Vfp'wG`)gI	%[?hN}Do.ۇ̡cܴm}J'cy 
+*2u=/6uX8hklleTŏP7h:xXhxQƯKh
:a׈~RF%
+6.x0Fsu.VltOa.`Epv:VvqdE&;HpYs`Pk3$7LXʎ&x9ݾJR35\zMphg>0[Ġ[JNMyFYԏO
fNȼ믨Zwb!;;kԜ9_]Բ?RpD,V]Zn6yA;SkWi` @]!teKm&N̈ tpTڄ?D!~mR+u&
Z9"O
+ "FBM&AJ&PDzP_ N"ce`:PK'`.
+c YDDg:1JjrQU	yH"6_zH7caO2is+szDm^uK~
+I\JlذSG8ӧQW}{Jޠ9Q-ry!pF}F  KA
P}%#2mW2cMK~??X͈gf63F{/CxU~hx_D0	D/(g[~=jGօFtZ.;NX8)˞93DkkpHα6A#}w{{Nޚ@gDvYv,[a%ģ5	;nPs;sZ(xpѐ+uG4߇s>=%s8Vo~Q:Ot?5'f=tgt%_4-9\GpOϒE7s0HuL cW@B T]n yKfm-1V|u+fÏ'76g#wv7
/F)ˇ/Nw'gH\Ǩ^_9]>3OPh4\Jnx IA4]:2p97i4TzYSFMa,qXKAJ9%+dDFرDBFt(LF_2du"ၝE9*D\5A5ЌoaZwmۛF^wLꛆScX6K+5gffgUߛvKsn1Qδƚ*L'S]+ ~)WOK%W'-3YP-
+VhU<įV-"aO_*}3nȽ]\g=tr	?|[s*Z9	7ݶwͥp|xbhd}-P*vsӋ+I4dʢ|ciS;<|ʊ}帤F9}4d^v
dy֨ A2
+-d8ߒS80DeDo[Ā=9io4gpìi5߾L^d)LX&s7tsX5KIՃ<7seajEo9'F^1#L9>kGYܝf^LMR_gSduvmySgOOgr[SFL8JFQx
+u6ʆez>z7Ʊ 1ɰ]5CքяҡLؤMf)7&\
Cʓ'kyD=X!. MXuutpsر^oS*qT8l{%zT
+TOmػj:D.[>*VRnBU~Q{ڞy&W(Z
ɮvk:	(R,P(
5\T:%E5k2U::fgR޳!Гd8m/St=Z
`I;BVUafte	0)/p!cUJƧ7ŀ=d!]3iu+*4ƀ3s$\(RgEmpX7yLCZQgin^Rvzi{U{|*͖::+wiEHaWq9UuOQQ =>mLi\@WicUu`̶V^eL?UITch|58rTVRmSTQ+Ř~cՎ%p"覫!VS`D/\d߄[Vy!UEd[ [Fص¨ACV<4m,i)C;wf\Nr+K\ ֊lmN}W͠޸0Ӯra#2uSǼT!z؊?n+ks~WV_Ww>ҁɅRSI?;|Tɢqj5"#kU++A14rFty+INy0MYcXpdW>q++Zbmbilˊ]m`AZ^Lޒ|Xb"ku~pt8Bfx>[&cf0{
+] 3̟y~&H3P|m][`7TGYrfn,kfx/oK_
*{t@2#g=/{Lg5S?(lK?òc!_03	γ%

ɰRO׎-Smr;<ɪ)1Xɫl̊%"a 	ΘG՞v'bXZȝ܉l fm"&}GPX9{ΰ&ߐRasfW1^|q4t؍Dӻ'w'wTREdji}GU7c..}!.zsEmj1ݐ=0Z,SqK+J,q& ʹV
+)A{07Ы.B,=1ydq޼΅mIƣ*?	2|*0VB'G!$hBVa{( HeRzq#.O b{o2E+RGqaaalZRJ-[~[ٗV-Tl"C",zw0gѬJƩ7+fg<ǅo*p RGoҟ&%c^~[$[⑩.wػ<Gwąu	aDZ.n&EuFC~L_3ϐv5䙾/\!̫zBkhy8! GJR^ό*_4>Sk6A\6nLz#UCر-Wwa
HII? 2Pj&%vsh1[M	ћr%݈$wHd~A7ś? WaºG~*|M^nYRo^zzj=#[ۀC^WbHRo0
sdy46~ZC7{Ɨsݳǟn8d]IU֝{6NJgnys]7,m9F7	|s湟3i/峹7fe6ʏz&1>+aK ;i
+c*kپm۞Ρѕs0HzBτ	=gWVOR>#9~Vs#ynIUMR<}H$ո6K.^P}M̓XO__,!0rI]^H@Ld\LӤ)5mb<OJDF:ya/,%׿v#!oS 
؋KnbiBq}c׈丣&v龖V^p%BڹLYLLH|FN
F	;9d3Y	o#Ab玲I$^9J ^oZ*E_|D$_k562ƩLmȟxm n_ɱ;'.6~ģJ%Eg/E5E.Ìsn8ڗv	tDxr礟/j;QRnʋ$;O6^G EzYg&UuBWY{o3Ac5YY"q.SF/MegH4N^3\ m:.z69lPPi}ViDTy7 `k(\fs9H&RvPi*@h^߼N5kpWV>IV-ZP+B35p%oNਟqoD
6q+uVhYᔅёBVӊ*bKh.8̲6_^ddyԠԘ]B"ђ),i37ܿM:_i~X@,-Ѭ,}pa<28<|{ޝʰ~Ő;,j^-@d.=4cj
+u
+V%]8 })Ϸ$'*K	X1l8HH̛J41E!gy,U=U=M5账zGV!=G?l^3B_nevMIYdkۖg5:ñlfpl\Cl;>mJ_$\?7wj=zŊq
}Lx	{oFQ.j.ZM]ImnvQ{eW`el|cΑJJbLsIR0)-
+;UM*C*.T]<
z]ʗu@VޗSޕ53J'Grd),ꁪaWwiְ]"Fs-aאbJ:Dr1I'.J	]-[|:j6"yFvju/cYx|P/Aޡ\(.]VH!O6qrqGvX?$K
q3̘&丣߹|d:dnI&.BZzb@&[1㹞~_OG>բh^Q|w4]`]w`増s^toǿLψu)VBlNux$V6}y qc<$^GVM)$Ue_y[ń$`xK)J_Sn@6zD霘1-=F]` P{7>0!Mzm)?7?yi
+XyUUêVl9U5Qy,4(/5\}?o&,{w)3]:~@}.m@k&^I'%ŏqi%O(5LA١zjq ~q
+U@JXg[_REJrbrֿ|v e4LECލf?_^r9 -R7~'rfna@S4S`@4z9Me`(x$[vrQ
+p
+AW_v.L1@!Cd/;)̡X?x{;T?Vvavՠ8mrqFߦt>_A?P5(~N{'\:o_\zʬc<%}[J5<<_yR6$kj~FLt ɦqNDrÄ{ x!E :0r D8ҡhWaY[pq.pQrFv:
+:&!=QΊPXǠ&e":آ}0hԺA
+oU{6:+D޷32-my,ͿH[>`PPtQZ8f	:gAQV*)Bȃ&1 ^o)*kVy,Z/XV˸EJ?mN+gjGlч|}kC_s&`4l-B!W;ZmH5ƿ+qJ(l9@gQY9O2]:jXڠUPRbTyq[T|,1%g2WZBbhuaI,{bA1٪DP놜z|$X>tBwʞNjaNn6~,
KڠuXh}y=HЂh$ATgwLa엪͏1axr
Jt<&5Q)`6/4M%gooj,
+Z
cMZpLh֩gGdW a75Ł"֨VFm:jYhڴi6͛q4eMݰn1Bt\T1Ux;$1HkhbĄЏH1S[.sKګ d:I J,
~~=8pӬٻddx
&%b(Ns
+ZFsE=Xx-9FTx
ʡ6usJnԬxO* (^Ffа4JH۷}wI@-mR硢',(1&^D
++1/J_i^F"5<MҍKѾ05J@c "f
jW.Z1m Ҵm^d
oJ)m[_sE
+}/of+~`P]q)H׾xEgo륾ᝁ Fi <]4d+>P0c#ۜzw/]=s@+ܳ<4-#Hw4fEEixk!+T-
m5_Vq&[A)fӆ5,(>,_mW`
+Ђv9t͛Eos84*O{lӧo	LjF/x^ý^&SP8>A&::ف V7C3!D6d !X|y:E_%7gk]&TmcVO#P_3k*"_/o>|1r'X>ҧ/%Hyӳ>Zj4һT@hnu/~LyCaaU4Wi@~dyGZqi$ݥ9pC@&sr<>K1ѿK; JD,~t&<gOvL;^ICJ=^FmB}dC,~PxG2?XVD~h"^?]n(52?(8wL31[HEl7?+G(6}[0)ư4
+Ak߄b؝kŊuXU#)V7ŃDet[ٙ>@84 -9Z.n}:Εz #dh!
ǥkO[:!]Y)
+tdOr rvP2+2*TEڄUjPBwKΘ
+=|Ǥ<3n魠*ڿfMhsX>WgON'$u7tAұA qh͌̇D0'*&40<BXFFV}oq|߻Gg^äkשGNrJws`ϏUL:J^	ck@ }ߓM$?t^"YSN[yļ +]p}LFY>HCAqpyM?x	MzA
>Dm7r)y蒾V͍l1ύ"wm_\s	ɬ?=OMfR5UCԫ{GeHa[y
+=sD RUW%Rd1'=uR(/_  9ܺַI
+"%;0ݎb+MG`p\{?sX΁RKV7M3y>
+sh)wdcyt\̌m7x5~ngl4mpѨ!k	ԣIdBG4CBs5COYbjo۰8=vMa./lnMqfJ,ias2`0:{Y),fs~vAtT12?+E1VhcO=B@U
Xy$c9h
hׂU
+ׇL_CAkHq>yJ--?I'<TJ#2v$d1h0Y!}=nbJ0dN݊Tl_9V9Jkm{\n.ӡ&GTAB0fsfX
+|,c:k;u>CvFގsZLW T   xc`d```a<=|Ed<Wnvb|F
``b   d# xc`d``c8"Ȁi+ {
+ xVKkAy<,5VIL,E"E"'sjJU3U=ߴK>Փg_(ETu=O'{?<c|u>Law]+tw^nD.}kzՇ쯍U}ɩo9:΋;FШO;XSB[xe#2UoاC??✼	9Xz{w>	O3E*De[=픖wE:seI5oÞR݇G=SBPs|W+Ⱥ	}[0l]1V~ٴFoMr;'O^gLyhol7/ӌrq3}=vCCHF=ǡv@ilr.r4CүVldV¬L[eN0WԿoϓiosWwz:zQYY3RyK >?+#B|Jzj6]@UD-Pv>n໌u;WOMeFYг\l@*!u?'m
'18>wCÚ\fMc}~5lmo,.}Yr[Kf\yBGyoC[
|EE@
+\}d<z/
+|x{TgN.iBdb!3iMe$׹4M='4ri!e}Nҿ1H6dHAT8T*
+HGJ%K^
2	RYHYRyr*УBTq"(*ѯTDSTuT-Iz
jpE/ N:R]ɕWgKnl 7wSGG{oxDJ=é	=Ż7,5w0@N386C&9^5;J-H~i	>j^+zO Pu//wR+=q v@GSLLgr<IRB]<1ugfO|E_P;apK\?Gǁ\ Ti5s܇}8Ap	O?ϿR KrQ's?YOw1IN 0EQ
+S9?'0iOdo911ٜXŲXb9s?84Q+q>_:KຈLzK[w˘Y<r4/G
+f+*$pV{"r
krZu1	nIxc7lFzmdfL-ڂ[9[L6i{[G
+wo:wSo3܇j?R镊 :g&
>u:sGXK˟Qt8;<O$'|
+ON2Ltgkuo\G|؋輄]書竬_×hιȆ
o2[ݢw qLg<D#r='|J~>Sg9^гo //
+ͯX{]\Fel)HXLeJdJ98+eJ{Ȕ*.-ox2|@6tL%7@l^@(ceETq>%SIN-bυ!.ꎔqeϕʸȸxP!F ލ4I2^	2ެ7%wi$<_L+8;гuLX-@2A<;@c'83tAC.3=P&p(ۓ 1oO)2	yee0ڇdeNdgF{uBpoqD>*3	s3=6(T~G77L4YCٜ9񜋮z]%q	ϖ1TeWe}(=drwsoWse
\迎$H}nEc2pϘoKS
+}woZ{/o?9w*z %
އaa/G|<lO0!rQ&</P3\wDpˆ
n܂-?3u>wywᘋɀu}є<m󐼇O~p)>kyg{ü,Ǜuβ<d-rJXl	Kl<ٲNXs̖'[JlOY'٪բe&ٚ ]%R6$ʺ˾C| ĺ=m0C֝5,wd=x6V\YO(J?(m,!~Sr~n S%Z@6 meюp@~et  xc`d``:$ɠ L@`> (M xjAƿݤMk`RADݴ7?MhbW6;I&avk_@+@Uo'cBMH7g<dE	,p?-QvZ^SJr	/gp}oyw/xGY:wLƜle>[.1[.bq-	uyזK輵mwfyx~bbЇ1BL IvQK^Ik&LŽD0fb`0(JfRMdDI/DK1Z`*tMƬ d.do<UڨUڴMr;gzpXmk'F}FUF]=j;௲Ki"bD.xB$dy&_jQ>º\ՒO-9"ZmWj\DI滎SidIΩ+Щ})dG»2']ZJZrl$;2VznM"L4R+_
ek=~^^8D9yWy1E&ϋx}WtȲuUb'X̔ؖ,O`ݶ5- 0̏1}̰Ls~N$ݾ}oW))L?nJ].ucԭRn4d 90
+X	ư	l
+l	[ְ
	`{v`gv`w`o1P	`8 `8VL¡pGp
p'ppgp
Pzj4Fj-hClX
]p}p5C !D0 ·B.KR.+J
+kZF	n[V
n;N{^AxGQx'Ix
+gYxEx	^WUx3
+o;.x7!0	$|
+>
"_/W5:|	߂ow=> ~?O39~	_o~?+
¿/0bpXaQ\qčpc7psĭpk߄v=;N3n;{^7c	XAMN~?Ax0p
+qgP<#H<
+cX<D<):xgxX:6
+[ڸ`袇k Cpqq-x^x^Wx^x^7xތxގwxލxޏ>>O>>/f|߆ow;]n|߇Ca|
?ŏI~?E|_ƯWku~w{}?ƟOgso
?/W?_JQ2i
+TaQZFihcڄ6hsڂhkچDv=@;N3Bn;A{^7CST!LM~?@At0BhifP:#H:cX:D:NST:N3L:Φs\ydQ$E-jSlZM]rG}rɣ5S@!E4G@ΧB.KR.+JkZFn[Vn;N{^AzGQz'IzgYzEz^WcAv#(ot?StZ~Ayb:
+nN/vj DUϝS۫|\QHn
vr3ot<ϦjCҾk5|lIuw9ba
G10竖N^O踍nXouܾ
 
-/x	t,LetpW3hp^#il"yA˃s0o AKzb>K$~	ei'ME{ƼLZv2Lt
o7ѴG{B̧ {kʊ$+
ЌPqLWjZꛩ՚5| Lk_foٲfpu%Br|ҩʦmv#H̄-=~KJz=nDRđ r  1SAf1.I:r'^"Қ:D3w
 pɅ4ãŊfʋ] 0'h_C!"f1h<ġ~ĤCbu"QoZ4PnOˡ	+ ӴH3ϫ/MMg]V9{8(&Ľ}jįŷ/;
-D_ks+Sw鮯+mtHc>TߧLD2}zl:uٴf1);/;ljku9u~fz!- H.-M4%>,Z
'ui*جGii&L;`*+-]2~}]3y9-Ps1٘L(+P!oԀCpCu܄	ӘcHChQl~q{y[,70}[:8ÁG@]@?{QteWVn(Z~ډO])"QC
_\^BB jܭFޖŘ$ʋGq;q:R7m;Τ,&$w!*>#qN$*X!Bµ$AD HA|\[lˎHLN(@ǂ0@8,$x@<sƖH~'gY"黔JuK_w{JBxcq')}LQ5miǏ[\³s7Wm@R0,!a3	1ֵwj}t΃k[%'ɡg=I?߿v;'q߿X321x<&wQ4@oٓsd 'c3ItIl)&"DK"f)Gf>w/O 2p8cLLƱh9h: 0:P&ZL#knZw}F#c(k,5+LTc>Эa
-hJ߼GL聼jdj};V}ʪtϞ:/)åT<	[&"mXbe+!E.iz#ۍP+&9Zа?eZE T=Bj$w
v땃4#-`I-4nUB#ihƂG{쵻G8jQ|E/ffxOJP5n)ftbp@<VVUY@7Wn%
xW'7B5d&J|DuNuRyաPE?|	Nzz,/ǿ
-gMK:|lD
~ʼ+ H50>୉~E"	>xu0{:HxiaqԲ0TO`#р	>pg4A6V/Љ5l2Ja4z:oXs]G`yPp,z{~ {|64y*84
o/_Xwݝwsɢ*C@j)4	,yKE)l@<KQiQhvjqU
--#7,ֵ~}$\M?Ƒu
_fУ噏4< P{zJ'~݊=Fx)5{@N9>׸g:`O1ÉMf؀(;#dF`#9AΞ9oScmXҺH+ALovSz*w2;̙x'pHDi!S	.Z{Zkѡ =Igq&O'kH=iڝMMsxga8~~>&y oO(Ŗ֜&$!a丙9!&~Xk4hnyWxMRc~-Z׼VƑJp{CJQޏL
0<P{`\dJr{ME
T/91G[vF,$^A@26>Od9-liI
Cu˅0~YFPhH?#>6>4 cN4n1]́55{r
0
3iAW㻪t@?ns>@7=cEZSUrzJ*.ՊI4
-Ja%Q'd>**B*]I˧]jjB VQwOE)he
-=Hx$&=%卺
-&HbM'NHڄ&>i
"!+Uw)P1e7W)j@Ps[DIW0 (y 1!3>#`hCWn[9:n|S	?m 'Dok
{ |q \YPpSAGJ800{j4ߒN@7@}S=+79Yaڌ%'se@R L&OkxZ{ ZDuuk%9G G+N!jYIE  &@}zGpvj5J'3e}(R08EףHBͫ{[jZakvWWXSY?D_Ć&o6Cυ7pH<	N L鿌PhEqLMɣN<!uT
GĜ[Ĕ")o(ɢ2'WH|{#k\"3H>Ot[,"e~\ p	',|cp<%}һo׸̫Jg4y"'o4"Y2r>/ʉx.C82*HIh&RL360үhe4Ձ>xWj\A-nřZ
-ܰRѥY0:}
-W(i+4
^!	
-yg~WIϰoG&L_#cY}OlSxv-:,$ha_nj]J ͠d9.Q}4zҎK.C0
6d5906-/hXK_<u-6*4%[STW.!WAMBA_˿mU *x~ ^Ek$n=1ؓe]t(,ƹ	gapB=k/-wXn#)}@@Gu,T>8l3<sTnnmeu\ЖxӒJњ=C6RG]*!TvUbIeŵ|g?,zJ2xXh%
--e!O`ԥoy2pr
-9&óߥl֙}>?Jz2?pY\DtjZ5O*`-cG[<[_Th.x-:M\E<3B7G8)/Cp&57Ih*4W#ffmpF\ j$._JW-!,~!7 T߾EܟWڢYvFXk{5l$ĺ ZCiAӫ	Z^Fl^!ku1L~rqRҨp$Wؚ~N||G7kڪ9zs	p＆܀K2)5vlh='X<@ 逴FI}ĲMr;:lS8p>; DGzķws֣V݋*x!Uxs2V38^++슭k1c(Eg3=L&h)-vСcɤMV+EZ%%YKuU	Z_F'ޗ okF(kTj&2cB-Ù|Qo3xQ7#)	)RFLqtuѪ&ASi1W7ک"v^uKG-L9*^FsKW-m|Y6ai|.V95\f
US9RVts
-\>c
-332Dv7 9W5~ZU0X2 ė Z\a	Idb$]JqyS2C&6}_Mt`!h9V+j,ʃs{n73qZ<?6.hN_>~=Ydֶg'Ƨ֌~f4*έ̀v$?L{dOP]DLd$ItȪ`ffw H0fn
-'3՘"I#ĥ
-vuiK?	LN|Wt*U?]13FU9Ozş,^o_yp7}Q_5#>_j\hٓ+}z}L鄓Bh'T_Qg𺬖jǸqS|?܇qkR?IrEPdLV<H&)MwF?S|q3c
- '
80cjcܹl*W i˙6ߊO,'o&,qI0_c&	w ZdpyZؖMmUw_k:vMk
-[N.\βK9b rr+u}ω-gvU6Zb)zOÊÜի5|۩	eѲzW<T=j~~}`2d_L62i}d"=W6X,h̄cMa<f@茉٘bV(,
rXD@a"=ut`Ѕus--{۬mޮPp`Wxt
- <34o;ڠgBG.h.n.sii
O]{) ;p{boUUyeVv;O2G{1ƯfY
Cv!ƘJΙ*QOcn9OV`<\K(t]08{*{6;Zs'!lM&ۮ5ZeAe
e@Ya/ (;\pδ@-9n<e(jDz{XKpj$0Qexf|%X|Z1˞DZ|&#:Vp`F&t}7A$ ^I;C= LS_-$.I;a×ލPdKKَYOZCBh͜imuՎhuXakDeKeg痕MUʩa`)J5gGnΧ<ʈdrD*MV
-=|*o$tqw^ڢ}xZ[WJ;JL?Uj|QQQ#,35bj-:MdAY=ӱeK=J׿l}u`a8vo.= (:\;x7#m+ u+YcdBY$TW"CLY/ZG|@GL#LqEUI0UI=&Glۓn{IZ(Bb6[BkseNOeruxJSbU˖Ok:BmдhWڥuOO-Q	I7N[(~Z,(N+Ua|yjpHww[s+g5wқ?mH$0DקM{}zzɧ;;d&FM:q::CDM)`Ch.{>Dd
-:.Tf6e2 AH#ɨLpZ|YdW_Ri*!a⬰sOӕuzrhЕóU壼xlOF6lA02rً -/{M'y9'B!?8gSף$0Y1JjU
oZOw}=>{eqj(	ϜKPc͛oHE=hk Nry=ΨtBN7{<c^}z_f,Hy>Ny$3}fkzϖ_%K};PfLhݏM
-5Zt!H4e-ׁ %NXa%ZcWĿf-|`K(Lp_WV񗠐+R'Bp)v/rÞl8')=
 M>p.=06Li]Pzqp6r
^z#HP~G`ҩGן8Ri/Xg~aObLl9
-$عӓǗ8)KS]{VxΔ⇏'/|ൢ:Թsg'svγem{߼ Rms>xۇ!x=>|g^̌~(\i6P+I-r\0|l1|AcY6 g;,b*xԁ˃P9Y|"9$HVj#ֱB8f':K#eP$g&$h^hHp #tg0Db
-B+*,[Y<f[3*K	޹2ѕ:M+nJmn>dزRϰx˷u&
AdWЅsqp>(A=s܆.7l^VpI&xçWTrJ
-r0o_nRAFo^q2o
佢Y]`tՊpԩ|`Ix`JJNF:%lAB}p.R-ꑤ+Tǂ!4P LI^.)(
-%_zW*`I:_UbuwwY:u*o8,0r_2^Q@?nu)hҰٸ[Rl\jtu:]2fYΖ듩ot
-So渧١SmW<g^U`47md/Ջlx(HD<&D5H?ayxYyfnobd+>qN& kVsNte_jrO8N cmH擅abG	r$hw5	6zM	u\X[t}۾%v)+f?abW`lqb=bwξLa*lYTvc|kĻR]#W3{h1J%H!!WchY6A3V0{I`! =\L<QCŰYD,E(qc߱FKJ2ϔc1CM
-ga\~TwhE@s߆3H"3$,4fX,I
-\hf^\xjcggM5fzHZٳ4zm9qݰes1uOzshe@X?Yrxv|zW7,>FӻoN*	+{0 	o.Z[PTUOLfJԸ%XH؈d"7ֱkLǨ2fex~qC3?Q>aqáҒ0+?ޜ^2SkX=Ө9po()m`
--9WJĮ҆R!!+[
gwz6_JJe&}Cz41͞4N(/A%$$>LTe9T('w H0nX)BXNbtXFMy4ѲY0jlP#E*)c? Y"(hAZ	b.ZɐhƗ2I%7;)&4^IL<~iBr<ΏldhIKH3UM2elx)Ӣez?*g A2$U~>"pGIӜ4g,
-DJf2ךKhXTCR3Գ7++*[i1@ ( 1
-zxT!&^Z0FUHW/̶@R#`37@QlQ)e3 ` аJY0Wa*T,Pev[M
-z[!8e2̦3
2_Lnr3Pư?1z唗h!F#Q>2J
+e&u~:/}') i
~ `e֖
-cJ5 2VC
-@	FƍfY-{P\]`-Jl0X6)(;!$VV 
Jbj#^j^/YMҼQyr>,>4ktHP)w
--4yQP,/olNQZ]`PQVidbXV@sCު9J/WN9hlkgd\4u9fTvPU
,2)h^f j]2U
-P(jYE 
-B+C9e.F`0: jS0
-Ȳ怶V54gkV( \`W˥
-]Wmr
-Z¶VK!vM[E*X3Jq U9 2 ~erѰ2U`N<YfQ3,fԌG*p hРf6,KT)B(ycdiDfUU6A!en--+2W,ª7b
6Y~~	:J޽mSK*gA
JB6]gS鳡bTY3Ԯӡe̱HSUT{1W1<C[$a4a9</c܎v!w	T9KlW~^=F[x, o<C)7%[3ih}H
-c=lTNy`~|4wUsUGuM8,[vkwV?yeˏf>k~}Z$z?~mĥ
9>7apD8
-y#U7a=8=E&(X??&|Kjz`[:YP)m++jiKnm
Zpx15YYRUX/6pt_š;2;;2qz0ZeaW
߬5"rwC黮9A~Ӏ}n>iG;DU6ć4Sm$)kc*B̳2%v N `HS줭e5`9H7̎*B.v9]9;̼_Y^У=v]n_	[Rp|.k0FBt8y/oS2	ޏ
-Ŷ^"/47 fbC	:$Qb#s,Eɲ}&L|ƐTǅΰxj$ghX(RoA{%<nIكoZ)}#Hnl^jJzo_[Z@:pҚB+Hn,&taW5@[3$[r8gTMGMeeCIn(*N[`偁~h>:/ioj,;D"W[o((Zh7Å=t )x<eGJQQ]=WM2Fvv7%gh@j4رP-6nXƌ-'%έ3Zq뛟y
-i2z]N+ҭ|L|WӈVc
-?:	)ǀI}Dul^u|-S*~ѣJ:VKgŗYoՙu/ً(P*5<+ᶌL1w9EndMn0Ugs,^qgUr~A[>`~_
-nX^#ŮyIaTN\
-$N	"<D
-!3'G
b?Ų XYZEx8HQaE°d! dvzWa5SZ І$ȌcBZ8F9&Tcvqz:s9\^|`kB ϲb9B!} ,((=F#.ϱcddi.!~x2ig  Z豲 i4[L+}"4Hj$uU& 2n+hMc$*XC.K<-XY
.CWVE$8BYFvVZqd*M{eft%WYV/7VҢ
-%֠
ϺFL/3h強)P ʌJUo\EFY]icXZmZ<BXoZ&c)j* +fV& yU
K+X h^4*;jU/.d+zUh)$qzv=$^D]zdnMgdDPK;Uk h-;c<u/q*vЉu]NߌcP/n%:63ΝrF[Zٺ⵾*q@9'b  κbZH7],5iu2CVT׮l۹&K-(cƥ[%*f\R0E*8:vܪqJҲ
=~SWt>st檶6~b$dVZ5XؼCUU	>塹Gn-f5{;vX۴(/sT픂0:Ekm'yBC̙<~Z5?}{ɷ\-(:3־?.?~k-8:n2ŞdXBcqUFq=Z uN8ͺ@,fʟѢenD'K{voG_v(ٽt]sm'e/\11ZQS
Fl2#/I[[6jhzR%ؽ*𓎝nZ){<嚲Y{T} 4
5vL/0͕:y2Yۮlw,_`zLcW9Ks-.jt]YAXD_RCH█$_x`_e7bVNٹPIoG'=sp,-hv/jG0\ںp<YӆLͤM1)hR"TTIA8U 8ױ̦ĦI?qGiM1+)3;"h,8rN%h6"h¹FzYRg±|8+}h|;L8{ɩ03Q}J(*$$"<R,ZhDK\qBԉ-
QT=N|緉ڏS{u#F_dR,(.t&=mCG|+P8(i{gߞ|=VigpɤO#'
-ql-5r"<aOS+β"s4q;orlqTQVtm=c羷er_BO~[eV?SQpqJ52R,lx]
-ǚ	CʜdO1ߢeJIvkA[g3!Gay-\dJ}"*:WdxUلh aјj_ٔ	ߑ
-rVg-J Y H=p=yҩ3r"-*-@ƾ먵xq]͂#h=2΋TT>'a=A;Ksusq&,fYEe畗LQ,lkZDΗqоgU	/7j;@"Qڠj6"̴.R/h37;\?ECdՊ-`=/fHd"~UdEBdУP=2G8TB<4~ٴ`Ճ5|\b.~s3^vۦ憮xQDbE]&sâ7mM3<cmFto?`?3{{.u*H ]4{lc#qƎ\;8NILvOpӶyqrArt<gn)Ȼ5!iJ\P1lO:"@q
-_2nC߁38H5TJ$IblZ]ݴ*sa:.MdKh[!(|5뚜9	
!CfIRB./
ڭYl0۩~YDRK)+X
-H 	j}
=Iޠ/NޛEIL,BJ,/Րrq8nXoVjv}Zëy:	Qv+e炑/]sfQJ7 ٰi\)o=YEm`hjǎQ%!0tc<:'!}o? R>TRr'Py5'N<5{DBi?^+a=?eN=~ǠwD_OP
'h`:P13諏5?շkgp(v?\lA떍ltY߯-pRRAX}.36;t/ݛv;S IS8B?ငB)Y,>a>wTL	'o:JgMDwUX
ѝĹd'>$3?C1zXm*113=I-ԔCLӫayyb,zdbq6
G9joxo6$
-yitzpM׋:-'B
->HA"l\M'H TչIU}hRy$f9]k
-rG&U
-|~xh߬_V_|gSN	("	٪i⺅l%E6'0kL{8A&u_L3ӄNd&k<?5!Czb>3Z>Bbz^2g[5$0[nr!ɮ	&Y֏㛷 ]X`Кw^"I+umv<3f,Kq5t
]Tw&t[>b舫
-:ٵ|ݝ7xNE\T )1EѠ4O"(sP¦	x3-b:p3>0ш?VTZ&IFj%zI5=:Q5ĚKpLGk^&}^2&_I1 ˋ/Y'RZH%> ,,nwI=?PkEY#z
-45vW^ّeՔ=u
q|+౉B;y3D)L&v 'J>h*Ѻ>s}*^*yLbl9d>q/1~/wPiSybW^ne{X z>|S|O$'G]P \97TۘoCYy9}'iͪqETV_gG\xLDll@]F
-l,@St7uY-nʽU`ą|1{ucnXsyp_bs\ұlBn̝s)vҢIz9ӟcNYLrTeG΀8~`#myХN?9tnEE.\p7wE#gN=U蛜|ĕ"t;ۛNI[`/89iKr'aI(+8W$MJ1=ZNY<Vh'X_@wBc30=AnӄKec8o)iǀ:o<$&/ZDQv f9]r@!#? 0r펜>cן]z×6?y"Qu)m>O!եF@b|n+"Io~sqo_9}Vƽq
=?O/(Qwј1!WsED5a &i/o$A8!26q愚6'
-P!U05hƫFԥ"xA
	g:T
xhL>ScF
Kï>63rHJ{`0I87%  N}[BHÊ}U֙K#rC0v1K46vΪ<
-\:/c0-*Vǩ%rNpPa6Pl*LJӏyVڧȕr0墨4OG:ٝf+\{IU*Z8Jʢglu!y?gk$Ѕ-r%j32
pN0yl5-OȵfmIn00%&LSTr@t){iEٲZw'p*4dR3f@c+ @S!sobcx)e|Sl+.Boi QH9U\aezH "cߔӊ6٥!zD XW
-(T8I8h#H$ED/Mu]4Cf~'tDoceyײMIVp@?-=6Ss,e:3eZ5R9+7.9Imۇ[X~g}cUlmM_a[Tsxg!nUyMeyG&B^mc r4sʭj\g1H9T1rFBCZ0JPhwa nĠmMP5zނ5oB͂w_:<K1~MAg]e2tՆ{X[.JvQk|jM1o$LNд
-^Ms $
-D <Mhl'̄ +n"q L0bСXM}LA>WK^3~VO\n}F_pw>WCkQҳ׌n^TbPƵs&-3[Ag42nbby5͞dkKcUW ԓ'6%O\jl(<gMȜ]G+3яg7Uo>k3%bdQ)lju%u;g
-
-Bi(;PbL?Ș(@UKJS)tkf:]3`uG0~p-a%:A*	͛L f!/k`GX7-i1nRt46E/g$(/u
-a mu֒RQIsʠe3@{E~^Ot3GgyV	T [ͻ=ڿʥiu5;Np*(jk
- ^9dcpv
d 3uxBJt,1:Jh}-@i262!)Ԩ%m0dJ9H?Ip;/Z	NS7Ҫl+dx@0:$ߪ d2 !jEh`_܏@l'.QwRS;P`!	@7/Buy^@gM{q＾ɥavwY< .Mso\'¥a3ˀbA ; UAMt%TFTC9`1Q MCL";vq\
-4gD
snC<w C*@OPA)aMh7<GQ >	ɳZ?Jv ;hGT{B)Aq㣏pE)HF`$@2'a|>/ bJ@$c*K ZWղ[/Djm(U	oM]n×5uǗZ5.XyI+93ZG5ni!&\9maxSDǪ;V/y*k1'Xum~eMq؁sVw4X&,oț2w˦CS{W;_*h/L}{ߞ鷅r:6T\acS,)Jtc=w:G:a){$!|:jAJW飩pPRYJ]'KE%-Yl@xdΡ8y/BczUd^0 [
-/>@aPFA<1|5&TЃ֤%YL#kA/tCKК;В~:]ړjIY[=Ip>d-yR<HJ[=HPcC (x1C=LO$V<Oyī7}pkY{:4`߸0h8[{`mCαWoيR雙ףz>x2^?+>RZ6rg^'G	vf^;Q7tџk$`%䅝'@6h_S̉e<9$CDG><pΝ@=5j}S=MC\zUaKijгKξ//%dIY{=DdKd>|֕yk?cڇaܯ"T9F0P> !x\	*=\ʵ׾޾k>b4djCȆ<q#{ps[>i>Ye"X&_{晷vIrZZnGZ9p##G6>~@n:DpE{
-Hy|קj [	
-&qs`ULG NMj[ۄ0YֳtiҮ,l-)\cD:MNO2F9ĉ*W?/o>cv:gˋ|5!\3Ğ'ލzflYwR~yB0fLv-@x"͓ :≦$K$a8%ADcD7h Ǿȼ-5S4rR_5qe1o-	CA5t-ž"K^aRUFlФ}!:+!]gre{i"hġ;2L[N_sf8Xݯ5#5蚧`@)G/=6k2P/F
c8^]HR*y[	EHn e1ߨin?=Du䭛C,M,$Ww/YGCZeci456\Ǥ-`)43</M[(0"5Sr)\7NFR2F
-÷1=Wfߖ{&˚墯RN;cPS[&J$'J`*(Kh&Yl(0rR'ՏG6QL#{2hC [Q/(b`ErLv`WWIP=h ν~y/<\A $|4<AYB*S^@iFpv=ݘc7Y[^^;}_ݰg\6շ y;ۭpn{ ȟm䝹_5ߘ/r
N}yظ=G*
/.w4P̞p j7	%L|q4%`Fl:
--pA>vI7B_@!lr.sᱧÿkdRxRitj)Fc~f^̏ H/[V2c(nFҶm0;
-Ao!8NrP,(=m>!=	s29@6%.V&d	<䪉犅c> ,u$S*LVrJT+UB"S+d3P
u:gAlIժCfT*e7%2A&QMCQi!f|2+8R4fqD%)/i4fZ5iR	&zH$J()2J<pbe+*j<rU	جT+I?
>rN!T`AjL!%k|U7ex`~
-+پTTOʸ>Ȑ	.D[z}'U߁wxE|c4~NT~rZ%@
-څ+ZsVTe+zZ#X>{P^ttoAҧUf hO੆Wc j1Z<8
tF1ƌGgT=" gPçA{<e|d<vVR)
-<'|<] Nķ@
\	g9(#Vج+ W0e@bƓ\BGƂ!G!r	AYwВSnVFDU.MAV_Ҫ!]V7ר,3ɣ2Xh[T*J+^2::lҨJ=ĶD.ڲH0[~尣]T2i=CKasq&]{,4/@8z:o5B	Y%C!8z]N# kp,_8fq `p?ш_mx#/ƭuh]N·[~6:hЀS5wc%eA0fwSVj2d{Gfɠ'-1m䯫?1KN"n#qZlN9@/٬_,Go'ͳ%;#QkA4<ܯhOͻ㥌ḓ͟GyWA/m`NR)|:2b/94M%]7הKݿwj̩k(nCE~匣f*R_zɦGGL\ZB.!ڿC7A5H1# : X,q>%a|)H~tXT
-Qp|vJS&q~ƩFۭ#.i׀TʆlAߪj4~`9!'`ڐf
-0Y HAHΉ)TB-ਛߴI7Y݌:֨n;VBLRS$qyW|&d94Jt%ƘV0o1C2CLHqzje4+i	Gzid_|ѩk>B\^R rEN~Uͪ%+ U08ZM=1-&x,Q-}1)6Ըj.LGTx4j2_"A|ow;|%4cE1Y$9vL6B3%^  jHwgNmڹ3wmuwq[G<SY+jH,۪/@j/Ŗ]WEoC_}CAX'zn25{خSFω󚄒c.J9R+*.&B2h<
`Dg8#:N@GУ>KGq[thՠ-}QJAG}}{tpX7m{:e=ؤl}	@Qݐ ۜ@^s6f0Y.O
-u>O.$"@34
~LpÌ+Β.;
}	@MTZ9u8=rXn_k5Dkk,oDmKky%NS򺖒ںak
-~'@;=.㷢oXWvL7Sc
9

9׮^c֟LEˆiϷ@OBy!?34$B-ϊ~dY39ss؋\=ϝ9.X֋	d3z!.%"Kgx{ۉ6H)9&?P7!l07Y)za;W`y壞l}n(	5nH1L"bO66Ĭ$.hd
-`/0󉚊]R8/@NzaC#sZڐCcW9j՜P!OfLNw{
#La&+8[Rsp~{qCnhcgw:<ZY9	i:mt˲.cHmY-XtNgMǒnG_~U:vz"ͳlnBi4"
$7%uT5Z@n 5~)ǌAm,5bD(0iIwD0DI$7fX((^PPth<5xz[yμjiMV;}|Z{k}V]dbIQWٱzO<u*-+WqԖA_<hM#NUf*CJk@uGt*A葋Yu7G:Ge(񨧴1cB/}oJrL]e8#gLN__ok($MjA\19wz{3}/uSR阽pGi'wQ@h7|j18K-'ڍG#tlJ$~{#A'}BXp#8Vuؘ1Ec>F8j"_)l4,sk?x,R9fUE^0{i%dwKh+ipڅ|O6Z994D/
-4b$ѣKec"s4!f}I5I5-jO-fsZ5v4X܅+i 
+"#/P
x:.U
-r%h: t55j=^A59FXFo ѪE}( ntјW@'p8'j$t淸wr߾ʊW?Wk}84fLS>3dݢkNyiNj]qJ!gݒKՔGJVV^Qn1g&=sW썏;lt,CoY7Qd^`,wXa3^τM~!W0PLKܗ]Q;bPˀƓ=|CMk 7<tw8}fRo7r
-8F"pLU1%I
-\pk<L+f(W`n^^F1j.>%Yo4-z$Ғ:>Ulyrҁ?CR_};ڎ,&6|G7Wv
t,-j6̨2esad?x zF3	yB,%nN10f(,YDʸmqoɐ=u+FiZjRإW۶2u ֱ!̨3* [#RȰǖHj4N_êQ!,Zb~X6`{ZSj[Y0w#%J`.n9E2UoY 5x rBҊiCv=#^՘|N/`zym{,O8Ȑ zG4X" VZM![WM[a{~=XLHJݍ>؊흲PŇ@	ʕm no{yg$EG^ݑ0Ft@[3MWn}'隕oۿY -70@P	GYu
-FVx3}ZW{K4Jc]3y`~:;ӽ2?\iyOO<Mwe	4퓤|O=?cF/<^i5pcϛwJ9ˉ|mԔQX;L$=߁+ ֽ>:pze!W5Zn;<}ՈW==g+i! p>ݯwRPBes*JSwi
-]B{؏	oZ6>YY
-g.|?9mh	$AN J4pxKpDd	0#ZF<d.KB%Jv=P+z Pғ* d$l+Ƚ'lug5J2Meb)8Vsw-6_ӏZZrV-)˶]\n\
.7FnDwt8.rryMO#ސE"gB^ejkTдW9t VnojN-Ou,gSmO)hBD^_gD[XllmKv1~~3	$VEL[T3JYXvkVeA5G	 oO,3MaO7bL_w.GRnwZ̹'%T:D:u.'OA wAJ9/Qcb;㋞hTh%Y
	 : 3ىŜgz=)O܀6Ls #AB0g"H)MGǐ1GMJ2jQ_cR4I?3cKǍ¯F҇6G_
KJ6Ѫk7<p5e>ti-7R`u[WS-8j(@t#	F@f8E	{
xa#9X"DLx}W?CA.bΔm8Pd]p8On9zQVx>9`X[|o8#Wd2M%OaQt2l,K YzRT2ƈAwxHΆGm*6&o}g p	)O	<J|FҶe _X/qb̛!3HHO	LD
{f}Us/c诱/^^լ=.x?\q5hozI]=33^F׷DOOyukqH(4)W]tM0	a:B'CM>JXF f
-bt
8
-WH5 L^49#a7WThs*P
GwDu(e<77QbMq	J%LJW2<(oRƞ+1
-B\S'xD~	X!bs@mA)Ew(p}&ECLo秅R\s:	{R((E2sN*;;G4TP_̀%9r<@܎*yoK>;Lw ZJ/";񥟂\'3R傧kb1e)f׋w	:F$̙ߨKM܍G6
]7nߵ3wȝ4!:16%-fk
谪֞5n圶1z8mv3k9!ZKOg>lЎWjըo;abzk+CB[m?-Qhn˞G
-KA#RX)/;
-JPNǆΚ54ݬp^dK*F> Gİ<	;wόb
=hB
#䗖"~ӧ@m|w}&*XmL2KA%rhH`qQ _(HBp'_P('l+b4Xe(~֧b Tbž.^x%+TO72[2hP|E`իmRG(/EI٠<,&کA/[@rK#2Ghݍ=UT69GcT͏4
-<QBHˣ
թr
j[c	eЍc|IO~AޢBL{$~`/sR>)Y
-O'@OU ypC!"O,0t	`IP:M)W1=Tc	Eg1eGSuԀ\^%^I_L2/͡T7F`,3j3*+QL.#k!gΥ3K;/[6n8}
-?ލ3ʡn|+XR`V^P<6RBOd
2O7deG^J:n\\ҹvm+qFv7H'_{IRh	v3`T
5IMSy:<JiO76O;H{0}RÉ~xU8!Dh"=eN7cQHz Ag16O
-'E)pNϊY\k;4:MrrWHaz|@FPdS>y	([nf i Roy $ 1ZhO-f?dV̢ 4ôPҫfH@|'X4)nqKO.4 ͡S5Hh@W<2'a@4cbCsng(*pOT.^pEW>#K`+x'X0%aosO/gC
U_Vq0!:6Wf	Wh\;ƛ]8%tV~4Ė9saqѐ>*O*3ͯ
gww֜;}CGc͚mn]$ٷeO9Ե6|VW{ϓ[[ZU {7$۽hKFJY0ER-8\&,GI|Q
-V*T('s0HGQ9zJ]B3JZyzs" 4l^ `t\r ]EИFy5yq
M՚~x1RЕ2y<y|j'pSzܬ<koteyy^қݦf3Xa\hچST;LnQ>N@2x 0>//6kڗ|!G2x|\BYDn f7TBoAQGd z._
I"- ygq{kĹ
$ɂQ`CQpB:qhP8f5o,o%C,)T ;]\|@j2]x9MY2](2JF>JiSEn1m2}J"Ǘ}JRLFi5ۭFaʏ5^dTL0̎h!-äAjάӕҼјo.͍f;M<7E-Ç?N!mM~`޼HQ'd\40ߌÑ;'|?:߽2^*TlYP.YL)uR)gX(9ʔ
-]r<ÆfɤK$rB,<cԉ\WU!*iToifIӖ Qϙ4|:͛±6+&yъΞDTEojʔnXh<dDYQci<j)u)uu 
-
B%~glFKY_
-'$t*A֛銱:5PBsnMDh?b?2Rr%_%yCͩ3ڧLiίtւdviovY^  "sN^S4	L⚚`8<{VscAxl7o/5uo/_cnKuZ&~&Z[OVcc{V\<	=
-zh$¾lJ4ydUvk6RTl5538ԄtMQ@:O
-Ɯ<v6GѶGAei[[)>@? ՘Wt`99vj7`A
FQ|4!昹$x≍u<}!x]Ԝ 5
pqs_fȍoJs4f&0i'|O%ĸ>T?n;!|-iFr
΅gr5ȫDV{!Lvm&AX;0A+ѨwQҟ'<új
"!Nl|XxjQ#'sD.Lu&o^nm\ѽhV_sXBlنg)ttwfbk~:r`6'Gˬֿ{;j=f>5$|8}MnKn&z8aF/K67|D	c2]|ɪxXT>mZK1yC1}w/6lz#ޒ~_qKKK=@noZ/o=qVeᛶp9R'. }Y{{q"޶Jϐ
-|.(D_*+'\.?hu?N'᪪@=ƬTXUU^?:5/p9)2eeU3ұsX&:tq,8qd>IMLO-Ow&bLU+PNU+zܪRVpD#uW_vU\?I?NƧb`|*0gr$F22{9K8BT(GK&7X,YX3.A	5 $@k3W ^J G ~F#|
8}#@0C
-fS~@*i1@=P&z4&)j0trGQ
sRUcuYi(tp:6V47T2?m	^MW5+u<<53	Ta?e}U8z|c;*b<#rN`%rOxFA)\&?W+cᲭJf.Q%@Z!+3Ǚ-dd`-Pj(^'`uu5u5F}qa̲e& ihQTbO(}\D
el!C>$UBџafJǬw:c$Y:}}gkAQm}]tv(b{@WUWjTYrRm޽pQ~)nByuuCE݋kfVh˚r
f'x>7vH';3퓊ZʤydCYfoegߥXE^^MgJQ6уO++)-L_bݧ(/'ϖ$.KU&³<_hJ}⾑P8'Gz3i gb#%X&0('~/^f/1U}R{ VΚD@Crt<G:U>}FZQ*]L܆s}%-`
-vlIRnG
-ݸYޜ
D7MqѶ\=Lh#;7/[G-]zcĪKH/ytۤZ\GbET|fڂ(JXMOTtV| M
ȡD=PKqC#~ H{-n!RQNE=/zuAX-6M#=PKCJ=82rʑc4 DI('o`m~O:"̆aז W#gwjWiw4\#~I0Җ͛̞=4Vۘ[}/4r2KZ&jUay(xř-= kD/f^1IYܩ+ԕ̑B;TuE6rͺiUv%͗\3\sS
-lɷ>o^
- cWRaYquEz_Y6i@3o?0O-XW%ViQbHݸ<p3ԔK%JHhl@ZՆMt*Jld%(7֡qq"Y4ۉ'6:!!`49r6ثgd* '|8EMJIeSI@
-is:tR(ۛ׃9avƷGq=&G4ap7GGM]щpCEߓG}KY^5VkYs$Ԥƚq/plcjeII~y\l¨Q!"a
-!ؕ0.!lQQՉ<QÕۘww]Fsu9]B+D}Bd
-"?Bŗ,HO
-dǒ3pu.#)"rq-vn9V+UpܑI!261r6۱do	m9<̳d˃[cD,%HF`vO u*zaO/qKR?-^)L^l=owyhv͂Cim<,X?m4'nd #0Y*娐vmr<@>Aݽp	juFZ/$j5R2!}?G1nBA<aF啄G@vYPTS&NSDl J$>4s@@JU!'TmkYtv?07?<>J[뿿b{9+G,t\\6(M.fan.n3ۮOz׳9F^|)5^? 澲obzڌ˖<#2mίۨ-:=^lƺր<J|&LBDH< h`I✟8~O}I!gHc=NG`dFsYhH{j̤>9ɠY6~Cs(LDiKs/urUU
-/hMqӰvsJ5l[x]Y/ybXEv{)B"[(zjQO^ A{3L*_*hA[mX}ի9O_6YTFԅCF\.dG	(O̀=fy3k̑P^F>I4
--ђbx8M?Yx
-">!|~S&ʄZ4O>ڡ[ߺ۟ԗ eMkd[+MO@
-*)joE}wC wl+G@TXbc ՘u}t|痣kv{^ g.Q+yq i5P{ x<XL-l	='`Qz~(Z"iy}bOJTq~-#UCYoe.&
-aH>R8MC:[01l(fN\pQ;wbÇRNXԶrU*%W^
-?%yaYĘzBI=&(ʍไ}<O#?|răf$o87#--7͟4݊h1:f̨;g?5ꋌ}'z-@n/@[F,|vW
-XߴYOdN=s92;	-8&{d]mX
-F"T8'FI|Wm3ea1͛լMm(Cزw5.:UnME}Vڜ
-9
[nMw*E[P*sƎtj9V84sL#w{JJѓ몜ٷwmyN%큦΃UA{/^/e	#xoI4
-96
`{-mYӒqtsvC
`nQ8`]0RprR	o@Nv`דT)O\okvUӀ7vL?h7.9saPz^̢2:6*.S :x1eV?cN<@6`("$~7L'WMݛo;5RVEjxh
-_c#$=*N|ǤoN_;$.WDoe-:<쁞dڕECW_؛/WIzXShT߾m(羏dL̄c23	d $@ 9n!(`VDw]/z +.B2SgI`LwWWWwWUWz{\V{VžAVb\pd0DM8p'$C$'`m([ѷ4'mb#lb3*$HK|Iy<nwլ8ygZf6Kͨ5LoU^Đ@8.qFg@
AdJIOǻ4d
-lIOi	TBun
-Sb>dCJ3+li|i˖&ibC@|]:.
-[L_T}woIuL4iAeBBXZ
/?th9۶xz`}cHsta%eF33yL3~f3<<i!i95sV!f&_tH&5²"BD$
ax
-AHaqNbxc1 @0>. B^[L2x,`5@ԃXRj<æOT-j֕"NSٳ4ysZzp6X+ԨlDEl}NtA^'`R\Xg3GG`
-CfA[9WvѻNxҧl>}Ɲ9.aWhc>@_5;j3#^A0v q-ٿSp)CdF|xF*8Fё"U\Q&3L#Ndi<4aJq3`گe9GB
&.ImMf Ggh{:'9
NTՠO^=*e (P);@߯>+Cށsћk/>[:!
-1p~]މ9r#YQ^B	.CAW<IYhza}/p=t_*8zkm%x#oHw~w#<cX`/>Mg	OLLH"Яshzo$1iZ{sᤊfD@FQx,7'l޻ 9mjކ2ЉǾj	jxv3qY+QX\u
iAs	E7^x
-I.01ۉMĳdy@7YakN}j~o; ۺV?fo>zmώ?uw϶.^}nٹOq+;eoBweܹUa۶
yVQ["?}!&rλAPPQ(8h;8]qcY}fgnr^?KAf3\$!4}kO=Esix7?W_=bw]KgF#sB"ڶ~LԓRg SƔ3UL-SLof&1S~Y¬z-` DD,EHވˠ
u)OZ>INpZfu	Ԇ<gG7[!%LJL?qtNUjh2fٚs4sV1Z `\Lp%vؒc[ֽ⺖^@k{ZS2BPPlN,Mm5+3B؎U41;%KK,p>'TsL9}dTqz×Y2<3B[pGV"eܜ+hJ-}U('| ,oc5\,a8<Ҿ;?H;h̿Q~ee>x&/g+rm?Iؼh?Wq,2!h6_`	`"{}R	7$5"GB\!}Ϟx僣Gf|4Kզ3k7~]7uSltL;X1{vqĕ/~ss+7nX91C^/2&uJ`n:c>ֱfNmF0#&!m@]kM%~ˉ.3z32PU~<??BU82c_"i vIսߵv~>}$2V
'T wa{>blbRBF\[Hj
ǆpP4O7<)3?Jlm;Pfo3.]4 W3]u
;\@iOyمk0
(Oe*-d![\27<\΃`RlQjgc8i
\ƣvn5FhX wpfQ>1 ܂}.+CYB
-_㱨yi4^
-ӻhOwD:,
u?
-;z%0 fȑFQpH>#?)U}v4".Eڌ
Oׁ0 f8Ց#
a} o˭-{=8'YExDV0a5i wj,`,Z*.w=6B+[jhPLAT ]5~pSH` 8UH#'~RX%RU W)
-RY:W
-
-<v2|#?4flϷٳju.}8-hS89(5@hBN/csHRT35J8`đNXYmwu[;oj+٥e9s9e#Xz/7;d2L0L,RԐXx	.m8D"kǅU5'ku*vdҘY?Z>|PӭkLm8!ed+2l,s8p!m&%{%Z[.^ oñc|Hg (h]y_y[1K+0Gm[ZpeBsL{&b">·cw8	F5wa&J6jNq!M53dEUI^^|#:~8zA<ϴm* pZ[@]ךsyA+V͐p@$PDQU,,YY4<RGR,ZNL%Npv8""	s+FbOě:OG@d%dUs
-P96C_m`|M4z蝅](uސRt,^nacVVu2ŞxO3Ljlv;~3B	i&Tw+uᬬp]Q5H4#V% a9}Y3A.w_Tl|!s$ʈ-mp[JJ*q#@wӥNgCJ^%z=}6Rot!@5~1oozP˚	{?{'òwkP'ZJd
]Fڒ{ebjr>#].]rѾMoUh*xq)QٱA) IdqW@_+/Gwt&i^WmyҌrARyw!7<NjyCҭ4!q`tTf2ט=y1H=бB֞
-bpQ>D!nҿbӞknTޢ/cmRc
n,&wn\@܈t{O\z ҫ;G=o
-]R`B{V+5%3eVy,W0玉___i,i4Mym|͛0t͚jr)e*zf$]1CɍHBif hbʐxtD&8L,["AuߝD1Ӌ٧:{x0Ҷd֞=Б^sŊ;a%R{7G=H,7,1ocփףЏexX!4ÇkPiC8XkWeL#36g	#H>6$.=̞P2*
-6-֘Yt!|ۀGKk4g^x]R]ؼ7W;i$bG?ƿhӃ,Pd3H
W @)M&+f||\2+6~ɩL-qIxZ2lJʝjT\N\ou8u̿EK*iۣ^ȣ%iqB;󟽼lu}v;,@r;L,ge/eb㣧=)_hs0Up>
-d8WOOfW8h{,P:D({)t)K
-=GP?G?[&a"tb~z\n'ms|vX?k?q\43&#>
-tdA](gw=><
-BY"hD1\XⅫݥaW>yyAҦ@D+~{14 ٣4Fpw%B\'K	CDnlXT,M/>GyI.ǉ;Ep⅗D*ǡ# ~ȗķDn\߆ȇD!3v]9/TA=Lug*Jbz'&O83t5gŠ]|֊ īx|`pҲa!QB u=*.v޶%[<s8>R8*Fֺ/cOc\L]<o
d%83uxb_uE]p
-M)zc7~k~=M,͜SV4qáɕEi?{}j3Cx}j{flDM/Z74\ݕ;=wd]1/ߗ9`j#*;**GlN'Pf	6DAaD>T+Q, &
-!>FT	=m}:emoA)JkygM\Ӽ3f<qdXN\y
-]~ׇД-Wdܑ
Tl7V:aU[S\օ>}塳[CYtɛ!d%&b؋kXBC.SQe&66v$2Dl
- !(ى2uG=K,gGKp@M&I	u@nJxbC4S)	>&BUʀZ	h'1{C	`jfѐ`,7?Í
?+i8?zJ)e3֕?]SCIB7Z-T>5@D%4T*!{^y	jbR櫻_ɶTjի2
-IWL=dQ=`!=#*o{]oI|;I?VD` eDU'L4=GF
`$x|t`BN@01?STS,2d&Ww#]`j.&u#gjmmC3^?ԅ7mm` b$aP-mcpp5.B9B1OC?U:˯OxZsgY/:\OƴHˋ)MvbJG#L=}B7~?Lz?/ѯh8"hX0[;V:V,'m$ԯsETX9~kYLl&	ztsR)/T[?|2O;-N;wΫgEe{^]oL9wHrKaqC.`jLH7 0L
-8>_TCv<<i6HB4LAN$b`4Sx˕%<*
 397uM!/篖@|X#kM#CY oI6B@<9q,uW0L`"ڦ8$B2
-A&3h	#ٓIO^=R?V\1EnE@bd#ِ/! 1oހ%qKi^"p`VyRīfĉbϛ E:T/܇y 3E|r,Y8%^BqݤTB0 "/Q|Pf5J= #pJ!5 4L5֙?dsavAb1>4gS7olnniX>~'5`B$X8{2h+ $U&6%eB`B&NO:Y(#h,5bQ$eY	|ZQaqӘSPQ 0,kq!}aA)j"G8mO8pL-j5M!,HnsT<[s&v5HÐQJu5'{Yϐﳦ:U@
-jǾ|,8w2e<9D܄)YV׾κ7 cieuk?9T+5ps8M!~yJN7`u5>]-ANX`L'7 FC#44JUkRj49jY&*O-ď[ձ1`V[<7%ǥUT.oϏv&j4?Uk139/пN"Ӣ+]4>;ʬTe\mTgHi꠼6ɭpT=g9$pБ\&d 6Eͪ/TRJfנtS4juzdMYr؇W?1E+`Qt,]W6}&#>ý*-WeW39XT4Þfn̑h3tUr.oz=zAj\.;xpR-1m9U
-vqpok~+RbQm{+TC* (9CJUET@f,JԧRed:mPk-W(F_,]T^e*',
-b iW̲P8xRz礯Mwwp^@X1P.yo _\w?O:8L$BÇ,ߴe-%S45m/_^P>054ЗffL4У}]j˒GA.i*u*_zE-#fί7޿t-#3,JCDKʤ,I% *H6x st"(t
-b
s=$Ӊ ӘOyX\tlÆ@		JH(zZ]ֻ2=5BZNAO׿Ϣg&5Im>C{`2ǆiyW6\p-&ź [}#&_?I<{6z&7a3&1-g#, ]4V*6ϳ+T]Wڪ'OՓCXhފ"V[^yJS\+Tp]V13 %WqvV蕅XS<E~X<m)?sg]^'9t.G"3~:	ԛ'z-7ZޑS*RT6o62x_u9|{7, vAxoJὮ-A|
Hams36H᣶h|5Eb푝;#4(Vgv!i!"ZRQBtc3.2̆h\Rq{tr&)( d63`qo(NFnpzWc@Om	ڂ""rC)K۳T=˦s%JK2ݎ/vpEfv2ZVRf¥1_E}B-,%GwKti#&^'yKDbqV+pLR*ܡ)~x$&14;T:x$04ߘ!*AНlMZy%C}인a/7eGīsEScq R_kHSJ`coZ̠]`o橣'M:W$<Z9DkTޜIx$"?\jQ,rVV,sh0>9`0<5}o?sz/L˛ڙlݘjVϣ2!Szyx7)vr`A	:ݷ_FcQ 4oVj d76-mj̖pkyV:fulUO
-ԘuG]g9@åYFaa\0aMڇqP/}=3G@qɥ^|W*
Ρw	V<?<(|+VaޒEۯo6w*bPu%V";)pNZkk"$GsCO+x\ߪn`ʙ"!8vItܻ$p	yBa\%ϫ+!:+DGfKIڰIϘv27A,F#;~4T6hP
hSV;Kw˂!sw+n,gVYPgvՇ<P@O/
-6}b#VujMIuBu΋6w
ݾd`dPb g\⌏Np\u&!/`; ?csmsk3GCy,7ͧV\0Z<z]|XQF~#Ytwå%(ףk33kKO/{.,n.fǌ.0Ҭ~>\T흜wlOwI"8<]cs<6]CPw0eěߋ*!PKbuo4[Xrs^nn%E}V(vZ]aZ]84{̸p}~-=V_7fvFqD&qS\]Jnܵ+p-d
x!zbꑛKXbhɑ=\諦;z=Vr[U𡪘TUVo3>nIsc,r|tat/:7"
-T(arl/pdڛ'2Ϗ$~GvV" R	_R
-ni
Li1v4o\-R-.#$ \-+UA2EX%ENcOWO	ꉚm>
-
|o%ms6k E+6b#վX3طט3@1<'ߞ6&sۦ$wA\4PdjMƕwu\E0ӈa̯D1K!wHqU$!2m2OwIT`	i	G^rfDsEGTZ*x9wL=ח{{eUF0I}j+zd2<wCuHou`TnOAOo"^VRSmE޶#}~.}}ݺ1ni=h:U18A%ⰬUbuWjpoUey@GW1{#9uۺfQ;ܒ@rbVGa+M\? qd$jLg[vk	r\,ys#46?>ml~ryNl]ҪFIۤدhjur&tp>L.LT[="
-dqGEIx\9zos}œӇϲ76_meU%3fzk:oiFӖ\mz*_ڛT%ޮYJi.&0V\ wYHIXWRHITF,GKX[BHf+֥roAcgnI})t_9J3.TȦ[7BOlڟؐ5/.='YhW	+'7<8keIj6>RSVǶ?x
-k
-z}%k]ɀ\vؖOj_ߍfCZ]P]=y
-F`b}
-M+@ƕ2.%F揖odKC.s>$tI)tucjW.:v1{<?
뉟!lD~@!"<kvSJKabHC7˧)(Y4(-crKDXH3?ہx<& ENJ(!L3i/.'cAx|hx}	

w֚
-'_X mI\5wwGLܒֽԋTNKr:6	D,Uk

TqJq(`""6kqxŹuN4LximѦb3n:LL^vC1}~6Y
jn;Wnɭ|SIuuvKϫU6l
	
|=
-ȱ>f<ptD10$o!ƨe,#V_f6W>%,h+,sJlyBeh!7jw~}_`T	W[RFF-tExcTCnSl
fzˉԹ0(m_n6ЇzfNeЫTS2jR|JM+c@ܬˆ=FEUqȌTz}J=OoӫyR따5S:\͞P+)iK]TW˘hg4-xYWOHQYL0^%L"	Y47zzpLjx(}}^-9{"7-{hA7X`9OC.:VGsMJ÷Lܕ%gDz J.w>5(.Ls./uUk
	NzhZ/k1܆iMCܵZBTVJT/|{}e~~(׏TqPrJF)0=]V f4pT;Tj_nPtoHQZ۩N	#,WB2Ȁa;!t&D`d'gƚ9hGф":DgDdϛ@!;"$8MA,!yC2z7]xhqmM2d]y-
Xp,cنWdqTÏ;oޠQyEg|ZfnU>>N|/Px/ѫZM%0kp9<=0@f8xC!'ĵBâE[qEK\ˁKgo8z;O!>:h;B\&5XW!uw㗍#퍗7EW*ׇ y{p2yE桍 ۥ(t|S,u˖{prL 3rFWj^|{3563=L颁SPF3s
%܎gq:ô( mA?9X	h׿8Uvw:ٔc2D?dLbo~6N"*;xc	=pa\O+`Iׯ8)xZ~VGji0}f9<S]OV~Ѧ[9jZj[N
-XNO
#2bGT|HxW%Z:#6LY2-2eF뿧l{|dM5'C<iRGc
-*MSc~4|D@y'(x[O0DAyx\;]$j?<N\21O}"<f|dBU골͗@Y('v~ @Et
-E~'Z>i,x@Li<C0K<I
-fB!nm$jpQ`Ip.B*
-FcL8;Dkwg~l6|9 A&|)5S@]ŎTKA4 [+b9fb6 NSKi1L>/@o_k>?T,	 E
tĐ)RLUm$l9,\$GfjN (k\tVI\	
E*D>!=O
-;yuFtJ1E-h>Hze6m¢
wOwfS9U!b@4H1p'g|ztqTqh
TtA*e\z$eчk~@g7`zd1
-Jn n]~BwAF%w6́nf?ߠa䵃}JAlcjՂR*\i"|mrGꈚ'Adu+%f.zHuS7Bo~2fmEWpk0b00t=䍾쌳^B߃)fҎG;Jxow'y͏͹T
-^nt}Q
%GM8S׮w节z
-">RO(X1!Xj^ f?>sՀc7?}P,V|4^Hje|fo\./铹w9z\34;ppe=	ԂIOjV7b1M)f ?%X
-Z&^͂^%ePfgԠC`¡hzs5qʋ]QDfH]˒6oEY|A
/ѐpx8"W3f
-x_~N\skz ],AWϢODA5h=3_B3"fDHc.<TRp}΃CC	p@yrKV;~=|wHo7k'8BMֶԮX8a؅:>M@?jp}wYr?c#G_'2_cVk3:?$XؙoorM_~BO3n%&{~ao]Bagn}$YL|lD!ĦόAuHJʘЅ(]h M1;Y';KFz%{&*$"qq>kcޟq,de'ke3ObΞ.qq{zs`iOͦ
ʦokj/A	>>w^r1ghhU=2]:pG.8oߔ
o&<5O!7v|YX>>3":N	
-KA}3Iz[\]vDlzh*˕Pw	PH/>K'؀QMV 2"[\., B񎙙_8ЮVw
-m[aʐ|w;뫖5C|x$\6tcx/;O[x4 Mͥz&]c)Eo~l O2x1y`{
-s&S0[8m0h j\2v`!+I`iQffaUEU&4gӈE@qZ#lʹۯOŉmMT>v\
-f)6f@uTO<&*[\j6`.A3dp&3g5KPuv6T1?XԬD1kTlo~ypSI*m>TNN/3xÚgTKX bj!Q'{P{Vlپ~vE;V=+1/G_sNJ5
ɦ7{AU$à
PT1a٤>2ܲgdW4Zn,XHBOfV(FolpԽn{R]t\[e@{d(#&
w)3N/}0ɲPDci^cI+7x|sQ',IetQ5&kΆ\#2ׁLCI>G!WMhw-j%;{?{ԏ"F)ٿƽD4&Q?HxDEg}1EnXk8&csLuen\Q
=ۄ	m
s]~v6cD{W_-ǎɢjQxfJ	.LR2xbV9j~elGLbWq:
s4SmVLY{*0kt#xZ")(c󕸶vKflNXA$
-jX<y4)γtM[D^pa:O4gwt+v{:FN
-t?A%JdA
-e˷gwPJ-01 c-;}M	qr_}[:?Wk8"ym"NNҴ9SH-ˌQ^7 Lwysf},{0\mSOl8ޙÝMε.\cFON=U_~Tu/p?vĸ/tʓ:@bDԝq &0L6dTR| e'x7vRxxl7J	a1rCfjY<qk^E$q^BCBG(:<|f|̧QGSidޭvhj
oK0O~.<TBcjpw|#SLo|(zi/[đ#I˂1Z0vlQCqF7*e4;woش߃rjO΁BEU&cy J(/wdWw6;itW@zWj)3`Pg$[><swq%Q*?
-n;;>bWĎln?	2$zJ$q9YҊ":
-H=o<-G_iy/SZ̡*Re`T'F Or%
Ld%ۊ>sg?
-TH6,Smx
Xt0\'6}	(]N_&0sS~K!/q*aNnD b$ #giDr9:y99d[Y:o^jfrJ@zp
M
F/! =HYe\x(I6ǨũeeG9Lzz#RԢVa5 'mLKPD=FXV)ҙfQˠlO  xc`d```ad+`I ={&r00DC  xc`d``c@d yy   xڍTjAݝEW%EQ"sQr	^^骙8Q=]Oxh=0&t: %P hiѲ/mWx0swcņ>x,!U&M{4ҩ"/Tr'}Wr;w^lhόrscƇ)ѽ^őrDȷAOפ[S-U1>{qC˼ty8TllW3=͝;fy^Ul|8qtg_ծ91\5w-j<-_ިx^l޿-{5"kxf_$pJNyD8/i&	cеzs^.o|?~E}|mL>N9"z;V0ocP=l8vgSYFnARџ!
-ՁYf5>ٟ&}j?[)kmzRuwcĦfmf|-?)kvh娀SD?|]PɯC{"8[Sn՝ÁJ2l~Za=׹.|({>gSʓv]
-?ɺ~4dsG6s=Q_h;"  xڝS  `22*3rJHTqĈ)PX"23GD#2S\9"cDD52FY)GhdfdD:m`K"j9QIY@QK׀s3H33YS❕38+29~{n6&;:17k.wn[lvq0/oZ@c0q/(f] [ ψw8^XІ"8	J ':F ,A^G-^ZLIIJOI'M2QbO&%&ےY1oqqdjIRє[jJ*#UP0	Mhi45 8222g:.]^^X>A[_!Gx3޿Rs+Yٷ*kvU0u5{u\Z#^c%FYkk;P2$O~)@)dJ:.*Q}#ٍ_i `r鹢\Un[-7Litk#x#{c(O׷IIollf1Ζ-^&Yja3ւBI!PTY*EƢ ̑qɭ̭n"Up#(Ly*7!>?ډY'	>jo"YUL-)K2K8%ҘRqiGi_v,P*kb'֋{(8$0I$jooEF|z_>Gefe~~Sx 倹:[ K]12@Fir\+iŇ5###JR<ZytLETU,jzqLụk䚮qqG-psUsğ,;W7 

#&?rOOn;HUkgxg[\gIggZZu?yussMz^wg(D`md_h2LKKKfYupYzgIT^A_Q+W㮚z;4_Dκkk_sn6y3XW~V-M]wމtuڄ6,;s/^뽾==:CÚjzC7>D4橮79u<G<o~z\&cLU?
ei_"^^*pppkןGoooo}8]؍aC] <15AR_PTH;g׍aMxtB<<ᚘoKKH  xc`d```dPg & fB0 ? xڍQ=KA}w(	buXXK	6JT,Kr Ebkiim/BXvn%'Ȳowf޼wD`D θl WM$8n5bOOaO3[<ǰd<kǢxkƗ	l1_4"cjG̼
}?#X6.qMѠrEظCKJ2bY(eErx;Ut%p-.:$M <?<_Ǣ§:maZΌδOjeѳ+gC,a}S1Aoo,39l:F,.oʠL*ZC84 =LLCW*NgytU(5{2-e#ujyPAWzJCC\IHV׍; x}Wݪ^Nff[,Yff\vvf4p0Iv;̉3U̞N/E]ӿf?\2;3enܑ;sBP"B
`]̽`=v`w`o`8 `8p8h8x8
hB$]ppLgpp\p	\
-p\	Wp
\p}	0(`VSpe2dj@İK+cqxx<Ox
-<mp;w]p7>x<φx<y|x^/Kerx^kuzxo[mvx{}~ |>Gcq|>gsy<_/+U|߄o;]|~ ?'S~_7~?Og?_ofQ`se`k8p=wpw#s0{޸x xxGxx.`Jlc$<OS4<7	7㙸³<//
-«xhfFp#[qNE}܆a˸Qh|>'IdoSix+ކx'ޅw=x/>g3YlsA|Eb|	_/W+Uj|
_7Mf|߆ow;]n|߇Ca~?O'Si~?/E~_ůM~C?şKow{ƿ_ow
-
YyQEQeQUQsbX/U&v{=^boW'A`q8T&G#Qhq8V''Q
-!E[tDWĉ$q8E*NIlg-,q8G+ą"qD\*.+ĕ*qF\+׋č/n0%BaBn,,zZ7Һ֭iNNZwӺ%eR-r#4m+*#E.*UnL(FFP梯~Cd3-Fc#ѸFMz}-ڋ#
#,o#gTi67(S
<cPxKCwg|s][ҷr+#*jp\	Ϛd1*asUX^xJjԎ`10kzޤ&9?(oS١Fpl?VhdqܾQ51-F*${kFp%g%c熆kE{o[Q\vS^U7<!yvFrXZ)odA.3#NpU5Li#*+:6k#|',vSHoڶXKǭZRn8Z
-KTQ"`bMÝFxKzԻ(&vߵ"XGޮqN
Y-ǘʎ!NC#*QbrPU+UEp;0|`oZ8O_G=ZR*}VB$Uoa]ED68^`o'N߷<IdG,2nUi-hO͐ʎ[x.@26aEG$x^
-5v'$ĕ?tPgBl7OȦDIter逜%,47I$.ΚOf.ǐ
-I.
;x 0]
-R9͚q*uHTyL4&Oz!";a=bgOC13U~);?EF8	Q0%32BUf&$7
-ϲ/sx7ABXqDTlh,2oP'8/ =aP쉊4h\).4=ʑxm|lMJD#퇮ܪݾ~y#:jjL>W>i11&ĉ}EBfC/ Qme6TfZҾ=̈?dzq%3Τ3
-)Ev@)Dda).#5]ܟejLZTڟ*^HW0#fȢ%*(x9StG0cۡ9)nO`bG!oV٪h8	SÅxRrZ;$۩SUށg򎡅
-'6sUҷ[뭼-tLxӺ.&ﬔP@Y60&r}	D˅SHnHWS5.(ƠHaNo	9
ZH̓"dPaκx 
-&I7kQ+1儃
2otz5t#>:6uU?޾}g+KQ	ٍs;̾~xmf&<>4<PSx4ۄGˆz ڶPhȬ<iBf9)2Qv܅nIH}7%Ir:	(,ЊMgJF9I:#еk͙-tytG8#q8bSL%aF?Uiήqdacäo6zV{#
-fpcf:ұlʦ$md:YXQM!^zEo,jcқvc@ީϙvdNPI*ݵhYk֯i'W|RXkx G#^m&pSR c x!eGeپc.{Q	3$lӣ.рNcN?;<vK4˹NsS{nEk>p_HOqz=QOwd6E+hs˅ٶq|mԩǠ^1ǠzւFl5hrJf;΍6.\03Πz#ꌨ3mBZ3k0kJM^Ɉ&#hۜNzC钛eZӚ'o-^ūxՖV
-=i%$$$$$$o͈6#ڌh3nuƠv=u^t<b0ˈ.#X-Eub]X-Eu2ǈ#X#z찡i$Q?0E!ITԹhpŅE.ܢI&KB\%!Y%!Y%!Y΋4x#X Y Y Y Y Y 9|&#h25 h1ň#zK^2Ll1B2y̻d%.wɼK]2y̻d%.wfDLl3"}  b.taDLd%.tɤK&]2ILd%.tɤK&]2I=Fp$	$GIe.5L}oѕi].h6k6߮UD U`  
\ No newline at end of file
+sTSM!ˮnSV\ShKѳn~mX=[ڡ؍bZGNXv3Y_sT+N
_L:>WGAhӲo{	NwG[VCɩrs#_e=oNgy5YVS&ufLD T^n5iY|^~Hˡg<Mp\e|8~}ЉgҝZ0nA'DAMQ},&&9#k"G8
T?ሆ%b`*ԭi;4Uv##r{"g9rpnYb)wWyFc5p@
~;~=W~o\XljUXW;GY=W*{L;b*?!+,a^CW~l_b$Cerb2}N_crߥZLmzH؉z*LdIrZ8$1%'rq~͙e΋oko9lqB~ɽbm3C=A&pc'D˛t	p~l2s6K)74RrbCBe\܊dDdEzG`$`C!HUv;ɄV
Qy3CuV87'F^Z2ٺ8BP#
+YJOb^:TAΧVgvq~A]vxvg(PwTk78G;y7b@q@5T>s;'MI#I3>+7A:p}=[|y-N*y.orJqQYX;(Ck8>koqDWpd5E=qunk6t$z"cÎ|١(S	cJ)0.Geɔq:-#$Y=f
f-YVtyXKhQ]ԗH
e_`~(5TAFֱ<b=.ow
I3љwfw3ł|0˗8-	/Ona.%e/$է<0"/h܈C3e9ibį9;8$"G!HJaWkdqIf)HǶI_({ڵrvj(N2f-iMj&Pd>Qĳhr&|`DC 	{nA9YH61G&Ύm/%	iźAJcO wtCŗ^l4b&ψ8WV/g|%%Y]%Ԯ{M>ɏ63Y
8Tcx7V.M\7r8G
+6CpWlЋcS\Ha/r6z#^`ޑ5,Q!^ߴ]&h#*ZL>K,GҧK\w>5]-2䖠qRs#?Xb9Vq-ˎJK!	<=
+"4sύ=qWv/TKkXedI$9GM7\@&SJ5H⁚+C%)RVU)&E}Uc|8L
+h,]M
+hR@dVui(KQIf)EU	)4>&<и+RRb\kӵJ+	$J+	$0, ʂ(	gu!в1tmZ&akEX+V4tV
!6dZC@2dȐ0a
+zhL@fϻ?PUTTPUT*4US^nHKhĄ EE|Q_TEE|QĤ &!L
+bnb܊BLa)$EYU)&)K2!0XKb	C,aIIHJ3bC`1!f03bC`	_FYeA!0ʂ" DzC7DzC7DzC7*0!!!!!!! LA)S,z.sK"!UAT!"!"!"!"!"!"!"!"1)DC"JU۴41kƙ")қ:&]2XbB
+3Kooooooooof)Uzu]uYzRWzB׃VzJӺlROi);y4ҼSwJNi);y4ҼSWҴּӚwZNki;y5ּӚwZNkiͫckIҌѼ3WGؒ;yg4Ѽ3wFhY;yg5ռwVΊS&5&դtVj	   
\ No newline at end of file
--- a/assets/fonts/fontawesome-webfont.woff2
+++ b/assets/fonts/fontawesome-webfont.woff2
@@ -1,277 +1,288 @@
-wOF2           q                     ?FFTM` j
-\X6$Dr  7?webf[f!84DإUa fGELn @UU_A{{))4c2i|IN/ljĨ:orAh$W<@3ƣc+VNtЇtz8h::
W6¼e'[T,d47na6nlsmcбliKwcf3&ۖڰ&Æm^ރO{-r蛲]~CkSMUfH>FGܧZ1XaY[(Xe_oS8s@՗깩oy5#dx*LTUwdT.W	:9@(	EBL0TP@{f=usF/tsn.\v]W_]3Ojۭ"H&~?ݜABs0֓?5;8(w1 @X%A\8[R`ԈFFԎQ5hѣBJNP~D`$3Wg,Wg{*Ȫ!ӌSHߏtץ? +ɖKdSL7Ol#&>щ@K<6u'﯑ Wrq*TuF8	ǰ1f㘗T}UֶI<>"pxxy?`ByZm?*.XVnjS^ςjx39@7
t	:gS[Y>&,8. 5)weeII
-9^wjߌd;Ɍd')<$0[v	ڲ~fz;NvJ]F *S=bIڗΟ7ukϙ)L\wknvq
=#S=Lkx#k䃪!d̪ /U+@6NDy֤t8ڜop_@ U H % %T AT3I
QG'ݯ)ٻvO*P@(&ىR'iѽiz՛buͩ}qiv{=鸇cۚ6Gt'8[z;Xзtv']Ex1;sԥ&|,EYPo9ڗe7[veEh^YRu$cAC5dNV:ȹDmH+2"rlI?i_L5*$յmmb-ڨ((`"XD"@ {BW>J<@[@D#ػϔavpixd0ȕ<]mr+r{B0_;c%`uC]lc9<4ό̿Zs>݂r'YǓg~G} .r{ JC'ީk @@b줂#ĝ\a6'Db)-g_?[͓NID`&	bd*$
-<[~k+xݴ$S*(?o]$iaRJO p~#|rKQ/ؿJńaIvۂ8?^meRӑW,9M)bP.${i.4Vƙ2P{{7ܐ$#➨D-yF<p-([ [T
"n$Z(Td$JX9:%v쀬aȓg*~*R-rIRC_V+ 
,Z]yrLB0]&9څbD-sdKjN!!Sde,~zybɐ
-4BFJ 9]tf\مd}Opb"=\ 0IX@>
Ѱ	i.Z-puLOǌWz=gSf!aoVEH쪞3"Yu:)?q!7;~OWkG7_}V9f(oujg;\ՂFj((
-/T-AvwH!#L&v5{G<-w>̐e4c}>?_xwۖyxLa&&ZszG{||̖U%+i^jpśZq0CP1Npm9%*V#[5fc挧Ӷ4?0a8ݤ!,fߐoѓgx}IPRmL: L+ۢݜ:Bt~]7]_1'm,uaU3+_s~<<< c@d)doe*27,!I8": v#>QkaS~#b=B=|9ee!d႖p פ4hhP<b/of罈WőBaǰZw(_|$W!l$8nr-(cy^>P(1$[^d9;zY)Jn}!ܲ;qi+헄H"1$),&0,7z(٘5^7Vk2)AHDk?(Zqhю~f#Md0*
-ߢ)Α*UV(_jMKe͛s=i劈bp\Dk_VE,fNbSY1!Xvy	Y57I,4
zcY=X0\K,M6GmiE6LH!HK]ZD˂kJ&G]]1`,#4Ǭ5iXi1+ID*-*^qgRr	X߆o}[But_~D"2C2}7sS PxΩt8 D,hcbP#w:7Q}sü~D`kn|/|&*y0I(rlUaRWuTLi)$aCE.Nt_%tĥҀlE
@pT0u0Ln\U:56q{cHj2~pImjh`pGbx0r,6juZ/ٱAxOahkhd&ܠ 7`NҵftS#vLU	ͣѭkbn
-751c
Z2%HJGY!JR@0t_|fcjMkhc}++w&Ƕs8J{oAK&Q
m~+LYjao2ܩz
-U'*"Mqs^ٙEZiȓʹhSiΖ3VVYkR <NF:(yPuue*Y:YcL579X{kTx1 .^&WeU+^JcʚwQM)?)/)qHQT̑Ո5>%ͥF]Ϳ5n99/8REGkw ͦ<ԎK p֫g2Es%f
%<bFYʐG3_%[9mݷ"|
&-Ja-ռ'ku^Vł4Uf[I>U>1^鲊O[MEO_C9ѝƓv,P/t]*>F7U<*n&WM*'<%PXUl&Vq 6EDʌWjWApD4jjg>}k8\)-yO}
,%n?)/C}*PC%T.A"]{9\3Byfbd>Tm}ɴ}T+񊷶0TSYԽm |]DGF_$rňIW\q{I
dzW`w4Ug<d"UPIIUIԭC_GC+}%R!yC9Ηհ 냥},US馠mB~cH'SKYSy 0ZƨYʛ~V+F<7<z)=#[WM>Kh&mV=)kxqӇc4p_sfM8l.0qW	k,幹l	?1#14N/?E.;Үt^oH 8X^6uCLdY;̀HCY`x8xca`0t@@|}RoVm%Yw?ėw:	.^eZ̖-GeûϪ,7aý幩bU@ѪQӚ۹gm~bNkc,z/\M5,.&Z|pU=<5uL_[p&4vL9%Dr9Ζ'o`ҋKFXcm
抜:SsnݏOj{4	D
--VB/&8~w\޳FGL1墒;5uf(loN8hKbZByCN@@~06.;TSNg-vWy 	AއU8F;kȇ;?uW[}u,:r4QHE`SpAiǡGeͬÕ[d}6ZZj1qtfiPm!,k6r
GԹsm${,C])4`jKT/-Y&C{	['ٲ6LG1Ly[hr؛:)hXT:æ"PPR<ś
azoTQ+a-o 9+f֞PćցMlͣS,}F D$sKm6tG$
~?W
-p6<3#.NS\5И#  |T\o0Cq$7EP"vI@֐RNiȯ=
7ܤpMkpFQ5--s@WC~Y	
Kk
<7IF/{",D|,KsX2Z>
-0F1g "'T 6*V<r̈́vyDN ) W	s
RȲBs+a
te}_;/YPGфЪ#a|b-Ud TX
CNUTtq/W[5ia2U&SC:
VI?uD/y*G_%IBo}ZY$$[rQKM	vo{>GV{ ٹd2Ry<H dS1)x¤2av0Ğ+B	"
-~VQJCLJNVR,Kc$ֳȄY8RpMG=|S
-'Q`~	y4<JNܴi#f~#*
-uͥ򶆯
-;cL]tAGy|󡣃:W?7*D3ߔ*\)J)J[	@xӵ
tv u18+
-x9{,	"t۷ܩ*\R	ĈP:4̛2׉ۜBd{cՆZquEKD<PE?dݏTfJ&n~A_4@\`%?0C(S+yЯb5:ǖpC()chٵ?$֟m0:r_,`~AӎhPI8jQbg3BL{P	nqLڋB1Z>\Ru<:>[7ղԺڠjM\Ri<P6vefcb@?WKuÚ.}z9 h)<xYaQ-ΘXvϘYCcgJls$cbbu;pe.O߯Gv*{kMԞd-e]c"!E:~K<\=NDy.w{A=	_xXDP&"TpMG6a%q
C!*4?/*YbUƕRL ;sX݋9*V,BQ`Ԫ4z`{EzO0mp&{Nj'd
-Z#{|A3<C'@"J
څл(>{K!d3_ǳ#(J𱔒@ g odեw܆ķow.Fсp5	&cC#JX29[*]k_@\]C%A:dJ/CeG߮w[ZI4R]_IggæceM,y8<lml2G6CW!dn~G(OK	śYT`ᱽp#Qe9Cb`ӜtB9BAmZ3!x,K"u
-*cc
//O#`5Oe(G$c4iM 4Hbd@uu۔2)W2r%aW%1]
OƃsӛTW6*$ê
-25pw)-)/}:nFde#]OHרieCT*w|dH ;sqE6%.B^s|o=eiPOgFG:2.n W#C(eWG9ljwMǖdWE|8\fAo XrФG~[Nl?R2qmH|Z\[+>(	yйd;V(y\RB¢,z!+\FeSBU^8O\Lm{Zd4zZL%[+m8ќ.c8-8M[=M`±佯l8 ,K8LpPDd ^Ps.`KTq'dQ(Y=LhNӴ-lEh1Ц!Sn`[@wZ-VehpO#%$8a'>d<=N-I
-ϼ
-,$
-#D]J	ħ0`wXk?;Hܻy  #nxw#RZ.
-TS+XzϨHw,ӏtWj]ep)"7Dk(6
hh{+akUMeC:8S8ad8jsOzn)ś	_ڂ1PlYղO
6^j=
-~տ`iETgb+Ƅ
-s/kn
be#-~r?	(+ko99B\ut!VIҦrtV7ڢxAHp6C iֱ[l6|kϧsz [:hz{p/Je;P/p޳1}ﮇ],r'^k~U6-mpK"W\L	)b+Lȥ_;/Mq r
f'[wwѬ<t8OMl
-ttn
-8H1@6k]޳.WDOz=P?pUJTRN4`f(L
-"vbj!<#<,U`ocZP_X&3*1L~z. sxN;zO)άN,W.d5ӭ5^kU	5Q0'=x_ݱ	].w=&oXnw|sid |lU֧>
-"V"D~L$C!jB	K(*MDp<
Es)RKn	[@,؇VYy*A1e:a%rB~JHnbG\Ͻ*J]>! P¶'ԅqz*DJxPwnC<5yF%X4R1
-)-ڧAzSO60U_lr
&MJ
-.((\v# d@Tdw2~}^
-m(Q@لR`iP
-f}j4z"	kLBZKoDEvH<$GL3%FS>)B
-N EAbSŴma?	:bz]IT3eϪ p	
HR9K,>#g	uL2ÐiZF%U#WYa@1nil-(	5nmH''MPj9V Cڀ4rl+Z#4E\־Yl8	btdXa?\u8g@<V Fqp@GpܵzQ#
f
ei1⑻"[l8Ɔ<dNuj24&ub(ԓ5Ҿ_Dp
bSzwȮ`}L&s0;Ȯvy9<6B$iTY7O)RjTQtPE~>d_WNCɀ>+xH*/Ll<$ǔF0CK	@0p6"mokw88JZadnUnrmY9T
]&U4Q	8JKd:1LN`@,%78r,*gm>i]ZN;ٛ\X%ɪvEc	xP_.OG\QyI)3]0e]UطxweӢgKzpG`ӫjid,ߛTU[ni8o@-_Mgg'?/m,mz;:ޝJgؘ-TydITV,C	askam'VG%̰HbI
DDj8CYZU>8#COR<A c8WKΰWw8ZI )FJIhOIW8,~zaB+{AT!7lM<]\M7(Um{pka `"ޗYR(giĽ	fq_:dGVzuh>(0ZZ3
 XC?<$z&
->^Bl;MR!y2cnD'gǭoGY$di0EK'{_MaTTq_uW}` 'Eg"z^;ṙX2F5zEоizzãK4I+(/woɥ})B"	VO\(R_rQTIS ̄"D*孅b,`nlOOi#v<yWc>
vǵ.Ża:@K(SX3U)s)1;Q{@ӛdVbv?%6-{,܇B,Ϙߚ@Q::?b|m
-uςyK3>Z"|-4V¬i!<@l񉆔Sny\Lֻΐ!/HKZc
-$(Kږaf,O>K%.҄`)\	suBcSk*\k kmxfMq3]-:Ď{[iaY XpTerv9+-sr#Rˏz^HI?J76 I	^1P..>`FغPqq X.}b?Ec#(UmqW_/E&xdsIS Oĺؽw0U YLKa@ēp4ۢ˖ۜ*{johM wkٖ2QWQ:51|^T0z/;3y%Fҩ䭫tm!^Tn+6bUup &턆AAV=]]0zfQ[M,⧞ܴYu:S+3ձ#1bQdC$SL baaZ5#MU\c9gH+@-hN~rwVמ)Cn[ZFpq(_oD	_ ,J
-9	7>	%X!*RW>'XJb@Ͱ{haۋI,a\4<Q
L3
-q)6 ]@,<"A_42CJ};"
-B>K|/L20Kck^W/A±qklGXsJe4UHKS!at)CX̆!=VU{
B}{
Ċ\j
f®oD3_-9<QN'UH[eaʌ=&޹8Pd1h
-SmoّSN@/v5\Gaan{S}7N} $n5i<I}#|8|o>]zcs!3$2;[>bb])QE>>`Hq]esE]Y0Xq.Bt@y#-77~Rq}}EYk	O"o?-gQtۿ1us(O(TljOe֬N<Qɐ!l5߽km[mT	옶4#Ie-ٮ	Ql% 䌎z1 NӦytR:٢ڲ~3ڎhQcbJ
-ՍfnTy!
ICqȖX>+~eK؏mФӋ](:tǟ[MzxWob%tzKiMt?1w>(]1 4S&@Rڧat,yٹ"7Զ0;]FsfB)Ym	sĳ_t@>ec.q]ϝ7`R
-!Ǝ8A%q Nu δ2@\pՎ&?я*;أ$н!̀ҳUg
*B7!.;kA?DDJwF:5eȁg<̰!K&bX'%B',:sߘ3,vkEm̪VwK)&:RogˡZڽ*Zs,RFy*&om4|6>>\N:X4=3'ᣓ|5TbXγ>pULRU+;GDyk5/*{1,Jmͤu?:$́;&CΌjRY>=%	`Tۋ|kMNt@n`1D{wGrSZ#/25H9
+}>ac5֑玙d-Q/']f׹?z?}!A>z34idq}O7x,/.Yd3pP"ktvk
J8=F Mߵ>&ji7+9\p&qGrGOnב,l{`>؎fo8kff7(V
6kf+TvbD-ySMW~q,-;oCj=յ[<B㬡AdR7r$5W<⛅>f)̎Ǉɉ9cI$UPR
Y+E8;+,T=2&z~;	4Q_V|>~j:=&6쁌ӼIQ
-jA?ns(NP3'(]SIsK88-y+.+l`0*!j%[M8w06;Q#cˢlurf)\΁ҊN`ŁթAwP XݝWtH֜
-R	H,Oђ0t@û-,7+8%NT|!Z<to_/)Dbb*KZ*{gE*TpZc X {<[Qi b^O~t?c'{8<0.a2^pr{
-)TSE@b&]%B%t>efaUp¾y`nQYhh}qI5$(oZU]kB?~ߜ/D/5AzvN P,Cky"\=Y>
4T,mp/C>w
2M,=ddV?ALZftgXϘqM3]Ċ;g7^qDX
-eHC:U
 &	@~;Qcpk+ضbQk,0mJ @@`9dn~ncb([[`uz|3ٓ2>C=n\AlZ6LWu҇G#ܮ$a)h
-
3LoT9&yܗ}(2>k!AH

C|
-n&hd 5F?G{bs9-_WK˝hii<>B/7R|Apۄp5k-29>4j*۳aeiv=JK|mkgC.CFh%|_#P,w}]2ްA&=67)V&gE t2o[
-wXzQr;<I, diY\7:Zɏo'+WdFFA5h`^`"C"z_Q pI.&ofbNwh)tųt`0
	MK=Cʔ:7<wf#:%J'N;$Y)N
-7GVC-Nz(hVTGR0}ƻ21՟?_*}i87`SgXf##[z`2CF{0y^rl/l#{
c/Gnƕt115 hv)PLL\HXGʩX
Lމ4}c&LH7e[׎dur;*K50MM<6Y[$GϵxLlfآ*z:
-!p
-=i8A"Jޡ槤OSp8al2I(ca^!J.qmJCWlz谧mvRAn2Lh#6](F%[nhvi()
ϲ2)`<F|F'(%4MM.m6` Fgw؜."(2CNI,ŻRe}$Jt'~FQ(iXmI'xd
+a4ĎTSP;LIrQMb:?&g̬\l:dIqzzz\za.MBi1l֫}G9Z;vML<,ra!-J $ x`䖰PJd8A~|
-*!9WkNQ̥ޜ%u)=x/ޙ]Bc	lt#(?~D:r&Fc0x_,^`gOMO#^$=S*ƒ"`RgƜ1 ޠ.rrh΄vjd/wb\B/eR\_Zdo]L^Z;k=.(ڌz\e[FNw{,zH%3[4jËiv>3ߛb!vLL3>8C+E1ن(;tҌW>Au.%nRR@.Է/jy31zb^5BRa8|;ONsWKKBS|<a/wYѡ+DsyY[Et&	^Ic{ˤ6f!jJ^VwY+NM#OפjMƱH1n)j
-X+>ӻV~Ëg*KGcB)wsY
n_w ww)Y0jv~vNln5Q5Gҧ¡
-uTɐ(bL	q:CPWdIa"fT1A3<pJn&=Dz4=`&<Ņ>ë-,b3$✓];-I+5QF$dc٣ޓ+vs *Z^AX0g"YJz:V<
U#<t|lQC3ZS=jI3^'H{4F^4"5G&NXĕ:e81҄$K|Ӂ.P=&E9
41KZ:i2J vu&e?8 k<IbJ_=)yab>xNOFuAy1^&y݅
-g0S\6*Lh63S/Ym5aѡ,[^-Zv,ϔ~嵾DqHGJZ9v΍{FB5->g^ٹ-߲̑$oPׁ#Z֨Mstb[@j_1ˑ˥>fyIۚrbVeݳ!z:SD_C%f^kvOtnyCjP?* t.{o88|p)깣EOPUs>1U0%X{5f#cmM&:%8?`v8q*+.g6+O[=6!7_ɋFIWY˜/hLVLKDv
-=L2a"&c6+.JZk"]SnhFd=jfx&a"H8L1t.-y8GeYQẇ`40g`K%Oۀ|f40%*ꥼ-6]
ӑ
-VsH۟2T	rfȝ0g=0un~ӯrG#JIjSL|;)Hevqt1Q'[]zObȁC=^U@mg*nqCwX`z85RF#Dͫ*,z*$fZ,{4+ʄq8etp>K:rHR|*NRA5w#ZxR zrNeF"b;<LĩWYDċgz *{ڧ|,T@lQ&rF#fVݦ`E9OՍ>ScN	c%S:tI,TnZ,A]2qJ?B)	74uaLzEߏ5UB>ffҹ"*xR|w蠗L_$#2)I~ٯsJ&n~ꨐ=OcڇGtMPN;aWpW@!c	{Zx?CT,>sEO^)O[?37R`ZSY˯
-_8J,~'@vJ^'ʱf+QiWJjAt%jLb?"u:u-\?QQ5@C#n{'ZQp<{>tΉ[ym^zѾh+ɚ>j3ɜM,ۯ<(74Fk;FWY+10.39<J	B\Ζ<n*ThKS]/=3ryM2y?Xd\VDѽ	R4OE:"A.μpT}lgZr;,k9)aP3$~W$MͳW/?xMn+radv{v+Zo<\?uBq6=5?}_L1^剽TwuT>tzhLxe[g#
-rO%=U¨ytg<7(^BlR2!&\õ72O΅I%)KJ\6U\k%=[z]kvt|Ԍ/?l?:_|tT@'ǱDv'
-PHbj7=aԬUUGsnʱ65cmҲUf6PC8U"	e.o MÌ]9Ⱥz:D^}<xqAFAK)*LkǥD,0WJ༳G}g$j]k^ևj S?2bPR{)U$;CoQk/i
-Qzk{3zkQ(gopQ0J5`Bl
R)W%$$q':CT/ښuI[t|2Z<8*a /(vc<R+ K 
 ?T4K|q
-V6,}It~bbւO=]\먤ĩ~wb.V~r߹g+=pYWaa%?z+8 BuLc*ڌs9R)v)(Ž\dUGc3c32i
q2Diiq	4#q&DY1SyVY_-ȼ$Pip܀JkbbIY	M^z~61ubE}a.+'Ш9xV
{ԇs##*&݉4]wNVeLyFknr=/{@ӫ#+:ԫKXErស'iM4bu|YtFHf#O4#\`ήE7X1=e7e;t
-~y^rɟ?rE0.P
-^nܚkh"H|rv0Xi^>d]qm$"*!:&4#HHs^.%"S-YXnw	&=ˊ5uDw,7PbE{[@l~=)pk떔f5Qqa$
Ī[YE!Zx\ãrx^ }jGJ2em#x<0BdC}0545S@	-p <3-~B\׶#7\ܖlgP.uL;_uOǗM]F\+#Soֵ*W~09Y4v߬u/?T:}Nc/?zo}H491l/ %gs'oa Cdؓbl2ЇAip_Db6,qY̶Nh, A|`rۺBq%(@%-<\q
-@Tǽ)_9F95H>А2fz![5-J'
-QLJ^v8Wp%Ϻ"kcq_WIHJ"j
<3tK8^lC	]߬U FX&xl|Z"qR|7p
-@̣Bx|
6Kh5?@P>4</\쓎<F}ĵwrc)uf҅6 Oh)NBO@V
-1&W}B/oO:k:o{F
QLteL*xJ٣K(hJՇd\E$6wru hT
-?V&JT)A]zD_6_Y;zL';Xpe}{OzoGUzL0Ѣ
-|eh&yȚGŵ~=rBP!8,lv0Kf_ N;L쐫Pƅ0YM>󭯾,#@!gAM_#{y_]Ĕ*Hˢ^R50
^)qw<rDj
-?q&qk˂@G;t%N'm\G{(P1[WI/۶u^'
K%qv=(gЈt	'xiAeh%N	<HmV'e"ޣ4q^eW
&0=;'οTxД1v'ŐD\p'."N#iMEem
-De2	װw/oPahnYpoAwnW*eշ/"n&uyE-[1u#zSeٻ]lmfD!(lmxWݪ*^MdSh\q2ԏMK
-_VXGUY}f< 7zu&V|.RoRu$p?BvKjoP-..T"[ǧ0ajcv30@F!hU҆YGC gѧQtL	gPd!Fݤ=TX>f9??7)	.:'on0Ga\/c
>
ʂ 
- U}CAq@rMdZQӐ~"Qb<8q''';Q-FdENr
gSS;[XbC*_lsSuJ!ܭZ4hKUDlLuCLZ
-!lÜ"laj̏ʇڟ
-SD,L-,QpJ7`__-ݟWf0J(j>yi+SM
-i{IqƻG|J׫ <HZR/'xހgq
-*LSB7dRJ|cCu/QBr*2ڰ|Yt}sMt]Ɯ
uE7"<lWOcPʙ\R\lȘg{ˍ,Kw|yWĐ*jn 'Yi;&Q.a^nIѸn75IN͔<W=fuM.n$]=]GM4Mb8ݳ|
-rF`uƳ"OcG3ML+J.BɂaG{N,񹑸]Q	ifKs~GDPElXi򋃔\uDfquꐉ%K5&PHŤ1Sf
wH
-$qIU](KaNIZ%vܑg?}m7T&;eJ0PdoiX_zER@XI[&pHdu+ZUO&adgR͂Pk#.:}i0Cϸm'+JG"4*&ǆۤ1!ɉ*q~Nb3kydʇA`Z1E:bG&';Ůˉ@ba+|aN?Qu1J',.m:-e_՞8G&ڂp'%gkohf(e$ySG+G7IjjJ6@˟WFk|޼VzrMja?V2lb=X<qA໸ˮo-m[>#r'gZYjLfhM9d#]ELKI-fzS	5,9
-
-2aV0nD;}'QUu=lx`2xm
-;pvM CMl?&c;5<n51uܤӻw4V&XQ!PT-OZe{oX~Q?j7AץDGbP?.{:W7v)v"'jͦ,F>9`%Zy;b2>/y:J AE_w >;(XquXKwcٛ/?tcnUlAUJ(vdmOXf˕B]3B=B-9, |!ߙ,ݹ;¼i-uubYŨ-S(G͆Qz]6&~9
-<ŏ)WU;~uX}FFEc>G
-PBPal4!r,clH,BNQ-po
`V^CI6/B8!\EpM>;{b:E	w|*݌PTp^qЉN.+*=PETb:Ut}O3U( Wpd^PPSvUi2,0՜2ٻ8pT/4g]S;**6O6:h#ZGhB~iY:,lbܑp^u1 फHp>h$fSR|<8?M:+2Q@"RNr~D7ivG;m,O*э5!M(_)6Hs)Y; F8u=:`'ʙrý]JI!t/&GiWoԂꗿt<%j3\_kziⰞM!$%K
s(UC~]1g}g "'E}(ޘFJ<?l#Wx.^S2je(oѵhdꝻ5*_fdhuu?scEcI8cՋzExLG$'RE8SS	
:nFg!
-8Wef?|x F
-"-lOdau`
WIa|sQxgkwFc@ͽ6G.4=*fj]dߤͷӚ%6UB=
-6v
- 4RTӛwDARi8=%pUf-!C{Rݖhkp0/%Q@Z	s*k,Xj5
ıiӫMꢝPPcX9WwKNQ2
<lW{i%\e*Oֲ1f)g#E&(SWf$|-nEhs@_أNd㊹Ӝv!:%Z]ᑮZ=鍙S\W9c%-O@&;qaywU5.0)j
́x"3&}N&A4JbY)BW.l3jr1W=A͝x U
g&&
g=)Q8](lvK[ $"Ew
PS B_`Tوde
-Er%-$vs5ʯ"	)&H(bO!|')9,h/12ʁcA-n>Sdf γpKD㾀Oqf&A
-gfÌ+ S8w3003R[TW/{/]#c.K?tmt3ɒT8-%dLNJځ腥Sd|DUO\sNv&I°4hJ%$PhMQjݸ{Ŝk0rNm6g(ӫ &/:s9ԱtJ
WhL9kNGKr:4|?#\ҫXB	4H=nAQ~d[}Ϡ1
-M\#G,
Bl,ܻ͞Npa~`GNk{ƸiN!N#2
-*,<l8ڤx2
n{S Vw<։WKi)ml@.C)ŝcwP(c҆ƫ/ܚ=[e[ٵ;N׻XV{ߞ^9Ûxf`ĵMca2D
Aռ쨯	]fc`(y܅,1SMnOe8Hi!1
-d=qрو0PA_Wz֕%=.k\G5X;Mu`&:JNh1O;bn:\qX9?pdv $2kL{
nSn%&[,~:mSjo V>u7aKPVNBHX= b^U,
UiITc9֜Q9\FѯgGXsCʟF[JqG1Jʼ7墊&7ձdYX0D}O]f:F{y:9.@T1pPxn u.O9>	8x*8P七R`bؗ$poOf%eݦ'<1%-ȓ=;-x6G==gI򘧄R%v9`;P
-h'K
GCݮ>Ի_'[skCZqxhqopVp2nտI>7]y!%+4TI(?4q܅H3AE¢JT^1v<F苙4!ydD-7Q65?-jU;W#DcoMhbO/ԒxS{َ3'>EhXElzNP2XTu}5ۅDc5`ߤ2)=!%.h[C;
ifi}N2k3gzꬡ+s#l'%0rI.qs*z{@hhE1S_/4QcH4?@y $0uV`AL=ֽϓTX*?z4&}W7k=5%H{$%n\4󌌃߿|WC9"g<AxֳVAoE'_pmt,ʍ#cFIVN|^?[o>]XсOpL~EqZ
JЕͭ0NX
a
菺-VTbȖ`DS.ɀWWHth7yL,֋S}C	l4]lOݯC?c=5\JK)UpW»Dàbf~~Bkw'<	jc64] F<'Cj0>i=MټDM>Ͷ/dU#yضD@7:_Ema#]=gON޷H1Wǘ-*HŴKQdR8Ims-"
-	n?:\m߼[o|b1zCon~bU082,;w|CX~BQ`)a͹V	UP+9!hDf́E29pp	9<b.,GpxϸIO-%_h<0&.R\5%g
-᮳W	1
-I=,hnX3Sd#;k}t衿ܝ|r2UHThC:T%_WvJ>'b̨b_L&QKI&a2bx a'a6]Qe8AP	U[DwYx `P!.QvyT $YޝܸׂPURGu:U`0)҉RYA.5뭢II@Di]b*vr"[e+Q_ GO`(d+GAUxߵ-	F9Sl=cԙluRX.&BjJ}َCٕƈ\]ucv~s>{Vd^03֍ߚ{N֡G5MRJϪ[<߇`Ձ3D	Cԟ;oR ]lZV{uBj-j	٭X4ͱ	3jK?r4i* L|ܬ0yrB$CF el/F@~X D*
8KV:j#d?yG)KAd|zu<{
+wOF2    -h 
    -                     ?FFTM ` r
+(X6$p  u[R	rGa*
'=:&=r*
+]tEn1F@|fm`$ؑ@d[BQ$([U<+(@P5`>P;(1lhԨ)YyJi|%ہ^G3nڕ
+͐Dp\Yr LPt)6R^"SL~YRCXR	4Fy\[7n|s໌qM%K.ۺ,Lt'M,c+bׇOs^$z.mŠh&gbv'6:smb1بm0"ǂ*Vc$,0ATPT1<;`'H?sΩ:NDI$T[b4,μ｣bl6ILi}ی&4m,'#ץRwbu,Kvm_-\HHH?m9P)9J$ƽ8~;rn=$Nddn!';8'N!-Jʶ.X=,"`:		 {K!' -FH	#$~Z_N5VU8Fȯ%PݫCp$Qrʽkk3ٷ:R%2{ީh%)8 
+ILK6v#,;Ц6N2hvOOt#xTBfq^#?{5bI%-WZbA^1n5צNQY'S!t" `b3%35fv;lά9:jgf?grpx | $ eZ($w(ZrSv+ZqMݙm?&s[tSSj9?|
>G,bDշ^^:l3NA`526LpS	Aߧ/U
+֘'9\Նt!l  PMR9n
+`(@ Hy)MdM
5ԤH'ґmS<q&k)\{;1m8{X1-3ǚ)B(,%wo~tHW8lZ	r=e1+/Ɏ1W?ְr89PL>uo9 1 tØuc@]KRbNv("y뽻{cscz&p5,jn kN!.n^Uu @|?v>rUaHR Ց I
DˋQ~p
+܍;;nL$t	:	hFCYTOFNN~}1"`a(?H \u0LԵ'͔PbnmOJl?s0,8xBBF_RiZ~e#jwhOc*&F6Yq{}?>u.4h%g`& )R5H}ˤkܩ'JO I_qOb'Hǟ BYEM6v5NJ
ONFNx(1:\߫Ckcb8Q	d[L(el+2u-a֘d5;N$"HSFo2i"\h7I<SCOȐHEw!.!BSCgĝcs*էs(5m=qʊeY$\>fN8qx#v
+6um	`NM-J \FrDZ0#'ꥈnGjLچXʌAgYs*Y^ٵ;"$hb=ϛ0vH<Vvc_ \Yw;dBN3!$I|P ~&d.԰-aa	++9.mR4cy#UFWu
	i/𜯔f~4lXS9Ä1E3@k@'#cn S_;%I+.LCxꆱw	VۂExf~H`0!d@Q{Oh1HFëzs7݉ƜtrvkheS3ۇv9q|OK)U\A%o{l<K͎iHGIz=6WWo0|%AjdD)!
pw_;cD#ˁMNzp^CDxxj)5O9
`EDXx ݒGU˯ęډ.%
Έ~=Co)
F7$Z(goB
Ɯ@&e{厣lf_RxN[]8`-3s{PjWuc9[>-.D܎Yd+^{Cm,@N<.VMS+\D+R|6'q\T9DX<$p"酦$ҷ,psTbNkI_`
+FWV%w~DԐ*xiy[rZ [S%Gs`F<ㅣ V+!+؍9ykfb82s}l;[)e$Tk)v9{uut޳@E>|C<\4%Rv@׺C8\~)#k|.ao00Gq0%hp
L"+>%^MˊNsq=䦆K4r-*%h#%;pP馔hC=
&)baKL@t!~2S]rYlZ63ўJoOV;h&gO5RT/}{AZ&StͯPC0D,pbpзz) ]I> Q\Bl"^3R>r*C>xPUz}Y=̕}ж
+
6-`/"H
+o&DI0E2Xa-{5<
,}``6jiim<UujYZjB\@g3Ejfp:WǮ߳pĳ3ao1da ݫJײ? jq7MffYfs$	Hl(%.rw?m=~ycYbg)<W /Vxk$Br~960&_vM Y%ҝ{E6<%%4ߠO@N"ZOD{u3SWMR3s<س
\I0.-2ݭㄭ;	0}N/bN{I|b_re_pSi>'w5RF,ч%SYWh6L_i샣=i13YI7NCpIĔ(r0{jrKТo)l3naT1\IE(m߃Dle$ÅwXU(@Ma"n,*vG̨x>GSg̉"Qvb0*zPEyɉ?7$%GpdY&f!a6|);u7#34mJĳ
+oOpȁv8jx(K/ZdxŃm7V_\fL7pXzH7-,(1KHbe,r-pL3=T2t2ټXk:Z5spSsT:.]D"@-Ȇ!A2ɶ-F}˒2BǃQ)tç|#4|\㨀`fc,#g1:-ty ]2Z~ .)ǌ%RK(y`8C֍zK-N`^+n3ϴT3tQأ4<>:J0È%ݑZab`vͬaT/ZaޝГIi	W1_>)H"p|7mF^Z~f0J^ I3V!{<e/=p`q 8^K8O9w0Z|v?n	3f!߷~T  Jӛ5pV	3˫.=-}[gR5nB83.8	Yg#0&S/.fg\
+Ef},kg$?XY*1pE(RSQt6,Qj\</]Ns;'HX]E29dkY
jR6Q!  V
+%"^`N3O[v:ʄ:^ڜr׿@
+F_NcB8p\i7g*,C[6T?%z@jApBN5"4T"}0uJ􇏞Ȝ~3{}uWMj9-]'lS /R><+OeB#BcjL\-Zh[I<qv~k]GTD?S/-%ݒ7wi|CIqwcWx /7xHO/o]G]y߃#7b$tR$ ]a7FѮ,n!rI|28x6gSh	R^^D.xMMS?漞'G#~+v4d!FyT9-fVa7hB4,2Ɖ&vTHMqp4?R\Xa<4@MiHD_	EgRyMlTؠJݮ
yc"HJ, 6u/ڴy VnJn۟H\PRBd|4_$k.wIpS$|}j9m|1ߘn9395qS|xW9BVZ!mK/Ln;iu$*t3Ͷ@} B{Yԑz2Ju@a\MR7odze7/$4]^2kh$=% 1IB؃ H|N.[M\Lb1Mg:NV._0 ,+,ht7l8s~IV^
N˼Mؑjك-	oܮůQo[mj=rm>~z4$M}z s h""u7V{Rûݦ O-D9V٥gIʎKLg۶BTP'K̦
+qW֒3ep&ےLhpNaSw
+&;e(,-7vx-w$WnXUt8Y?KMctY؃p*Շ-БfL|[nL
}4{5頠3᧌n$$,+DNԄ-HV>HOs\-;W6 NM8Fi;7k26%֒a],:!ʲڽE,{UnawNg.I9r:j<IE1`$`Lbrǒם]x9=Rv&*Q50zy<`M|ԙdO٥iZ$+#KHF
+ 	)-	:M$ycE%Ai2]l嶨8IyZGJ\2֙XbLIA-GrR !0L+QhSYS5_(poFT#kN۾l|rndHyۊ&ۆxp[8Gdtz찃٦	8BKP"@2eeyxjJKhXŬB}6â`?i*[9e+bVLaL͙dBYp.ψ
+n\4糅Ƥd<wW"? 'O%a2N9,ߟ!.yZ%4U^uφg)M% CVM!z&|D,i~R,%|O"h\3+ai8\$!1La6s
z+MRb_
+kvjU裒-jXGtb~˚ꖺwt͝SkP2(=cvt"[3&hDN=򈎋PɛAG'_R#M:.3	tJ~3zwx ;7O8Y)
+DSE/7i!wy6$8E0Taތ|@
g.;m99sHrL7&3Bs|[o&ouSgխ+{AEkZ	"Nd5:IVڊ>FbKΨf)*cG5<C .g]k
+ A0-٣vT d4K(Yq`(u{,:0*$|2/I,`ExP#q` /:';ىVD)˴r89w}[Fޜη+hKH\ǚU䬂JV$pUj|c0{LA?V=4SŴt`dodbUPJxgJRrOs	4Mw
""42`MD/N!v3չ.f+@xOVqj^CߪKm,8H9Z<&o(@kM5]MU2=vpB6DXj`r<w1Y: o< 9;F$;2֜j޺x,ʁCRĉt$VJff9) a9P&6Ool<ds=#3sP-bD"[:wɺ^jӁQej`Tq=H&okĉLDWO*J3s[6j1@nr<ξۇ#@	0c	?ﵝ<2DӦ	}TsS"R
+.}oZFo*ݗ:7H䍚x]a6v5R̾e1$XL
+Jaa݆,섐"3-G!˥88
+|T:SPpMRYb{+Oeۛ2guV=U>-kb6UЩpZMO`$WDyA߻[4aJ?fD?=d(KD䴱:D/[#$A#KH.:x?%Vr@[B$}coS6`LPfM&ɔA<:vÚ
+Q~Pw[+`+j V+R*ul!|+'KY66_ud}_[yuۘj o$Y=yjRi)bԋLaD(XUwIڻZ$7ڻ9&4Z'DF[N]~dD?VQWͲ}vS>Nm+SqHaU!ΒWb_+UO]^l59	@1'A^mo:9ףs- N:tD-zkSja4rczFۻ ޿xv7[ äC8#7p5+ ~*bJJYzֳw+-p/LL[cgnlcaPHF$}9`\
+83Ym1b>~ƽJ؂ϏyBs="f(zKM"H`wcEd:b86(9<clݘ/kgG^ESE)5G_^k߇v̚}T3;6 WvTCP_k._eєNJL {T!6j>h0#[㗚Kz,!32:6d>himE\=HZ+{6@Wʯ&lC',rX !8(\̭2-P8h@C4<~Z7j%)eeFpZ'15^6B3nco#~²qR@!ա z^Ks]T@TNT ,S*@7CīɅLiQN,	#:RѪj91-YPN¿ \&yL8ӹ&0cvƉ\JA;Q;]IM8	sMf?԰Irr!K9я8p}Q콍g-*sm~XP0dM^?DdIm<p;y,"ۦ6vpT\^n3m>8eCN}cà٭$s7ۼ#յ<SF-Az≱
+B	*{6cgTzGX2+a0; EEaGdΘ ׿[M 
+ig:B[	U3J9
0I2'	o\e%4^5}5 0=
J}my&".cւ	V}eJ:42q`GO--BJFY۾3||)IGa+*ttPbADo?Cgt;I]G2RE<^mK3+;
[3[1yv
+#p<jiCaf~\GC4dubt BKбQm=aTq<^zء(޹G~QۼZoOcr>R{b4vMql)<V{ě晐2P T'D
+VtoPaU6`"Qe]ka-^<xj<G.~5۹ۯ]V`8Ϧ%ryv;pc` ٘uҙ9qqEҹB6ǑaeEثOYǑ#:yp/!/5sU'! "|B㡪
+t\T#ҝM$+2n_ b^&eicI=u%Eȭ֓
+fjaظ֐Eӝ_e(r}mo9UP6zH$g4ٺ6P@@X
(1Θ x_	Jy{3',M1n>vOճjְr1f4cs_%v%lKZNi+V3'~NMG@HBb+vVFq@ݱuKZhp@E0uaSXdUK}ԯ8GXKiI% uR)EI-ږ8|1GΞf6Ȁ=!KF6Qf[X~_j\^͋^k`DsG]~㤛yo};+i%N}Q0ԥUu)M[Z`"7
?/[C{l)$Mr|^	a:"֊a	l>h ya{2>CPL j?ntg]S{UӇ('b'fg0ӃLPAMtd)2úY!v &`o2P[aޔ5S|#+7J
+#ȸ_dU6#VDB"K|)otkl,lU)ݹe5<A\0_7^~{$
qRΰfP
+a!fXUhXl۽^:(m?@=bhgO͖{-i:'A8?gzHFz0[D#A.%'w=23ɸZ'Hx&I41IJiez͏oٴ{iß8	0[K/n*a5ᰉ,c+ABDrlDo"$ThT9$岣'0V'|"
+SAJ!Տߑ6F6R\6\9-_=Q"9IW.\.zmkzF͵Ux<9ɑ$7iFSʧb߂@ۨ}uoϾѪj4=oeUKxdW뻸1nDXy"5倘ʂK-o7B"ě)uWEh9b)P%.$G(@(uRfLT ϪJ6
)H*y=Q/uI.<,r#y|l<`Q=F$At阍2d6cWǥ䇣4~%vbaЕ_CծYl̨vqs$m:G\W[C	l}R^2JI6Xl9=`tӑ/Pjes"_
Lwm~XNM1xٛ#NmzS%b,Ž~B	`9Vu6U}ֺGunwOfsC\gVΦ@:_`c+}L<[#U*|歺[[姙ԧoɼ\=GRK,![<H?;9:Iͣ+a!*?#'G=Q6,gm&;X故0
+;qWq'4ICg΃Y`~`6ix0OGg`[~?NCQ@Ȅ6N΁A}jBa3ť)˴:qI gZ2vlf,УYѮbԩXoIė˜X_'5]J2P92C͉@C6Ee B@A9߇Ǵy] H	- b9
O0uwI7Jxū2\Vf=nVV"#9v8x
+mpAhy3pQ	%t^ |]YB8jC׬n#&ɇʴv˒P>OyUAt2_n53e*1v(K_HvVʉ3},ACUƍ؂Cuti-]`7]R
!zsNt&̉̄k)SL̹y7$ϥDJNd"9
+31 IZ(^(
lw6
/@YB^}OT~9cc]{)}D8${yc,ʤ{tAW3zHImD4ܤUT3dID)
I۬.d~[-K^2Zc
+8u,Y^\_ԁ_+cJ$\2:ZWbBw=[1'NYVz4;(fzNUf(p֙!x#L=#ŋThnba˳",T\o!@@sN%|
+tXj	j	Qo5oeF)o 9˷:h*'cJ孏[{ȄNfnz]8F/|1vg@J:YնNu:dhHo
+tM`R̍Ri:|N_P"B@ m`a:M	c2Ũ<ؓUOS\ %a\Apꄯe\A.̰{wǿ~<dXIhRNgkvo{nԜ}H|eiVW?#(K:m`&Lx^F+'؜Z慉ŏ1?^E(ݝDu6TLS6Oamdʙy2|^SK}*2L/Ř) h~\1 
D̅$1G/Εo0^_|q,|`ܷ*z|'usvj(qRzL>6	;s2ŋ`W`TyPgee000}/ǔ;h[tGD5^E#hȍ:f?	u3z0ڎ$T^TAhz	x
+I{5'rK
+zo l֢<NlfM*~UʏW_?v;(AͺR^ 3=66=2n~}cO7XdJ|LPޝ~ͅ8+QD\ҭíS\=Uv
M䅚c"aK;A=ԨĚkJNpM%AR`و;(5W=Y g-^v4XىJ@=c3}*)ubTF'|N3E 9ڪ)1!Gk86D
+~HGp%Fz32MJaZ?cn0)?hNum3H~1rD'1KrtsJJsָU2r^+hNzgl0'\/etXԐvl jcm}!Qϼt#z#]ϕOׇjE:#	6n:<Nui{z1ʞUVl+aNWh)O2ymEl٤A7YQpfB<8;'gKR5nT@	n*!=a5Z~CWP^DX-XfjNűq4OI@S}Xh/>,b89-:G|W)bA5G<*ٕ:ğ!]gj~O&UN뢹8 g]-WW(WNI3Ngr3|m
m'=[n힬M,?$HDD-O?5uX]˓37>*wg?*!JyT@UgzI_7&\tH.YZ(4Y'dT
Fs-qya7
[67K&J/$c/x[ᶏ;Īz1Fv]G'ڏQBSOІ$y(TS-;hűzT%Dts"=gwUuD?b$Zr9G<&Ña<v50]f%San*؊oмb8pJ9⠚'-s@r넅TAXI\8m]{Of`#XT^f5''W2Ϸ vsE\Qs(ː@AjR*Za̳SlіR[ܜd*)ɩP¢ĽHto58.]h\sІ؋?Vsh-U'#Egm]2NjWlrmZ#2BE75^^a4wUK'g?ge213Ǹo`lKzP6^ $$9NWvg2HϏCRߜa7F/3\8F\/zP/?{xӼ] /^9@7cޥG<Ho~F!6:j*NblNyCcGd2[d7W4]
+54i2*hp*9mYmطkh"ɋŊW!AanJ|VNc|uj+'7('tcnVdUc)I╵8()KΖ9U'պj?Vפ@BOEG
,cC"Q[b$9td҆=X dLM͋h~lc.жtq?Y'{'ވAcSVM%kD
{ƦX=:*|ͼe"~Ov	;G_RϞ\G$4<ief3PhHb06ĎUsLӨQ|_P30DCH,A1^'M4]%EJ53蕂
+ͪBP^$RR
+DB+M-	sbRVFeP;7Iom^Mk++_[9KWRvۧ?fq2s}X@yfH/=֯A~ 0̜xra GDvl QZ\\D,hiJ]&(A/"Fbaƚ
m2l]x$E5xÐ1x{A1>^2_Be;b~փ)Ό2j r8]'7
 bChTd)+mD).51- |Yy*oڤL 4A她=
+T@|X$in.KI|R@P@P*ak@۟=I	=l[ג"hX0QҜf˒펖c<#9`|cO}$o>eX<`,o_K3p{YAn[9M
T(!"?Z]iEmĞ>'{Gt *~y`'A?٘#)o($ȉەLvYO1o_</ǐM(W藑Q'^#0M|3}x7t<a@̻ Hl1>& .mv!*)$zmrt(:GGbeVwi$CO1 cZZ<Gc<z@:J-_`8~چM	)
uEsY1B74w0G5zA0|Р[@VܟQq^@Wr-UO$9'IBjf`5
"ѦYxZ UO/&83,8k2& '?eEv$L`B%=TftF5対8.<1=>0G 7z@Jy~p)g,gYL.$, -<k{yc*02/q1gKM&R<7xCy[Mʛ
#ͺ Dya3\wfwrF<GW>ĸM]\NsWݍd<ӡ W 064tȴvȻ0>ԯ; )f#*	2<h ~'BwmH/wqMogC)̵67#BS>_-[L|RRlQ}\TH)
+9Fa"^bA:ݳQ4' =sO	'@.Y&8z
+,i73y;U}p/IxVxilFZfhXc.bB*|&|ge/kuv\_HbdpG/A}㬬'xȜՋ;E
+!Wj{ZI$z{Op;x=׺q{5l23O=@jj#GYTn>&ެ#CBϩzLuylSaa0LTv3,2
+sdTrU}El 1z`Xa*h{qiuU\"Lд@TXRUFg]sE5V0X/ukzB'كJx	Iz7YΕ1tyΚ_}|xm[xJ}zlDVrcsdsqv[&`oUl?<jC!	OeqB=J\`Lr孈d1MhowѹKiģd*;^ҋ$xHUU`]GkCꆂOQSCwog~yG8P{{H.$6!}d4,q>`llUMBRPe2A1RHqlBQ$W%bhBÚV@(?FAQ}<GD2:e@f$"8ȍFf5`{Kuv\X+vj^4=03O(0-IfKRoOi2)؆GǞ
+X<ǘelmS\P!!ox$+>dl+bNIMdT"+ƌo0`89\|5 ޣئ(yjqm(<\G	2dTP0$n@
+Ē!X㺕Nkճxikiݝͨћ"0?^2XF,{sr_e@VygN_iwq;XED\b1G(RsT<\ډQ2tT	;`[,AkKbDl#b8,]i\|kCxLq~r
+Ά>|žBab?aag30(	j"FA*{ߣd]ř+XHzsZSLu:˅)ҲnJEBnS>Ħ	mh,RT~}9,	/.H~!`ExOۖ mwIl꧴ёUzzk**|m*.?~
chp?eY]*H|̛1e?V;	ا	2PQVlW6m5O3'^x,ҹa)TeUs10ft9T{!L@OLtǽ!^L!ti ^:CR	K
?2TYx۩Fq#0
+<hѭ)kesaTl
x9d%+b8XZ ;gv8n7ϻa&^ob{w	OO7jϯزΞ,~WYػqÎzVoλg'5("ե
+AӃ[:P|Ӓ+>#2?$MndueSJ%e؞~Uq
+޳҈zRnп,7˱>`
+/uFgOg)PJ\)Xk VF"\tr#wE]s:Y#n8Lm"6D
+V ġH`Q ௢үQkG]<2N?U
&|a_G܏}di!:`Ⱦ[\,Y]JϹߐì~OA%>]2Pl5pOѐ[ʀ4O@¡,  Ҭ-,4X7-#?3{M·C18aY)M"ka_=4JqM?nh6kɜP 	2;3g4ՍZЦөGZk(mpvriZF}i:/czPuVQ9E&'/v<2ۊYQ)j.HN11sʗ؋{
'|klT%1ꪋCgQUJ['Uֶ̝ؔ{81 rnҹ}
+: ,й6X7fe'
NM2p|4p6Vn듁p&S=[- ߞ~NjIY/c`YAq6-Y30#V~hsEPT;ub6WD#N1o>)ΘCx4$/jl1
+y./,Rr[YE*GЕKm/|7SISƗqF㍹6:cVs@w+k1caíw0:Y5Q"
++g"%*2t`Gݴ
f:hN33^~<PMZ *wҐI0p!"`PSL6
+6O{&`(ۅMqaP=PZ_]pvW{mh:
Uu,
+Aj9^*7#Cf]gr{NY 5$Oe
Gns$\i`D?߾; w5Uxj~̦ܵ֝>yө)o)l*H-;+|+[-ZGXf~<F_̝rf^R
߂4/)+1La1PEv~:+L>Meb75[	Ho}pi8;`$7~Yw4RypJs}!*Yf~W]TKV0Fyl$"\AE?W
,[b0q.|xZ/ˁ]P*4$*(R7L&`goTܑ.$V̇hULHnei_"o߁ e*mbD2u{ݹш
߶\ؿZDܚ
+vz1UlRl-wk2VxՑ;؀400=ԑx~޽ګo2RmԔ=_rZ&ן/߸([C{%b[f.<Nc0G2ڼj~HiDPce|:P7i/q-ڏ\b7R>\l$}VچU*B3lRPf	d'<jEx}6fs(İSe~4U)C1is%CrH"3؃)	L[ө)mjUٜ"IR6W3nPHߛ5Q7s\@SwRhƄeq܍G0?޽~ؑZ>GLc[dN
+%C9X<Q^ip,U ȑTÉ~U2('w|/B3 J,t
+WgLN$ [V|޾vh0XX<jhj0{rLNm[[L3S$Yʈ~
߇K!QE(؋P:&{ƼӬ4sœWL3A6R
iv-7S:L3e=^Ŧ4˳4OCR~ܐNK0+c$&3Mu<:"Z ,n2NEG%Wթ!`4ى_`}.Kq~JktkSy*
)Ik$Qrq3T)A
+Rs=[D
+j9qvCnoKR2v)1dc}D2k<9?];8BR)xˣ;Hi}{744Ϗ[:gV-}@ ݡ_׀JPzX;)aDJ?\#XrwmAЎ2\
=69jRLm.IeGR'v$	P>5h_
+cҠW?+ `ރχ#CBW'B~cb
 5~}`AE((r{2me5
+t>`vd,p*=ϕƼ' o$ݥ;f`̢tɟJ$HZ KԊk+LmR21,qFp̹-J%b=gV^y~׼0~-Pת{ƛB2XZ?oG!xn.}%}Oo	_?bJNv$bl;z`&Kx^]"d+geI2 B#(ijNN>SwFW |b	WoW^\q?1>B L/=iR,cykWZ)BUkjy4XK,
3
+F 9pKuշq@OAvyG4.,m#D"^ѣ8lQZ1C\4oJܨ힊dD6h[|L]V~.:0z*HX,Ͽ7zUQNe.7$:.0֣Mj9g{2ڬCO墸N٘@.W1Dz[[M%V5r!4&Ur
s7%y NJ(?nYm"TCMmr.ݴ{bSNT]*}v`1^HvNoUۆAS6WOىe[(B͝to1bϫZH{~N}Vˋٹ o<>#oTFD"%73.(?f]`!1%UqL:蜧ϸ|@8'+VWu۠0} +T/Qnl~c{pa=V:#vm~1t	0SPH]/jg/!{/c jh[=U@ʍqIg6Mmq%Y8dc`"Xt>"{riPO?0=/9FnV}OY[՜"I
+{GEz	`)ӇrOoKY꺧S4;L'>cN@8 ʋ{삕zb8_xV(X"]ΔěM6w,fgf+͜)TJUt>
-]z}o*mGŶ1S<۵&:QzHjljL
F,aY"'LˬɴbJp{6իh]m
E=~fFvE`EWinux8!GVY??7K^+[2%_mwsZMZ?vl9fO{,'9/} 
T}6VzôvU[dT,_uVE+B:xaY.L4rP1"nj[)Xs54 4sS6{(,kW
+:Dm3/
+T*z'1o'3ow|Ћ=Y<
+aDm?F_Y3f^Lff'@&M7F0{GTB/fzqc].L.In^Wk(hc!Ȝ|%?%\6Qn*0''Whĩ= ŝLCgR񛙌9V玫؛AӚTQyč&i٣hQJ,#|d驺z|yYH{FI%ORD&k'	(kͷ_uXT4JotǠ`Xl/-ԩ
+TBIjԛ/
+Jn0,ħXBUHhFe%6%/:&zLldKT
+^Gv͊SA4:DIʯ<!.1?nTzhԓ尵ZBCnI ~+sm8T=f!c(KHSH7!LS.D4$~]ٴaGsiK7"dϸ}|{ܰQ7r-ŷzRaV]v4t2-讨YDیS@%_B(FHke%&5='jF,GoW9;(ڤX3z`fM<~1bR6t0luFIj˯JoIqĴ(cǘU@Ѣ#e&Vy(	{̧KuWKeZ
+^>(wDI߹}x
+ƺ5gYG22&sσ!q\	CP%U
fbS'HLbi,sF67߼D
+g̣oGa)jS-&>7yCCΖi] MRA0
KfF=zggtf7Kx [L^.[ԭ>Zc736c͗qw*CCV<])E9)ϛ0lSM.$bASHib%zqݓV޷ʀ7+8{
+\HAZ #[80*r[-swnxP+HElY./k6wKb?88GI.ur޼l9Eiޜ`"ƃȇ˺&vIբu*J\[^enQ%j	?{nW+1ZC	$3!6/SG @4ΌE!Rd8hg?J~u?ZiD4K{j%)'xMaYvkEt,lc:wXk||2$.Ey=x*-LM_xC{t4.<Pr͙s1/N8uu.ӿS_rj]\av^sQZŜ-D uSg6{${r2 5>,	hcbJ֊?${ouo>ͨvCl(</0x(D'aԧR0"o@>N9ߖQ]} 3( z^)(Үe}E1\pB(yf̷HY/HI ;,q«=d<zlhi f|Afg]y\:e}կFM.M-LCEf麬u\Q(KۄRjRǏ/[uTObD;CطcEETSqh3d-{fXp6h]VHa3< vJ@XMzdRLb3/dz"?Ԁg:D_P7_٠Sc}ߨʕ0$0sMG%^X5Tn;>&T<)3SfV1ړ'vhDn$4n'r}b0DxoVUJgIN}4/|ߥ\$My"j}j ib!NӽSBvC9wp7}5q2ѪҴ UÍ,鼁I};Y͜ȝDJm[Osޥ$FlX~=/_SLJ&^(
qwv#	꒎.P:bBfV2qgnٙl8VӅb0aG-OTlO=AfWO׭OJ{̑Ͳg k:I3*zA$̊kP
`nFGx)GRPE%5\}3۵RuuW-2G%voMk xBuFN7ׂkV)12dB!4
.
+N8O,f2TiV
udLzyug;Ks'^y+7UUOBж+$%O9elե*c@Fc6ggMU_~1fvV5
-V
0 )_D{Գb1#Q|k9=?Pocs$&}BoWT"M=Dy$,IN,چ	wIxE6xnCC-,ϕ̲Y
:y~ʝ،=Yc,TxeqUk*OTq\E*/ ؒ/NSUf:b?īHt$ٶUfudH"$2kQ/WiXNx
r6_y{?2ڽC~{u8|܁Sf+{30`wbcCQ+zƪ\T-{]ξ6Ѯc?8Z~|&eD9qW2R,Y+y<`OwAbz6|]:qZOVgM̥ickJ0=,4,am"RC#,cfZ6RcGŢ:)e		eIr6.Z;P+O)$\wIV(h`z{%fpxl	}onr
7%ӧ{
xm1oВiq JO'V!"=$
+
ї4KS+&Zۙ'憥Y^e~},x'"so߮d߽}{.kTJY;ffjKVB+jqMWL"e/׶߻YfxwI:kIq.ǲdLWim] ɗ]
f)B{lֻ`j~ކ;ā;~7-zAX'tbWO.$ GS0Ra#QPO|P[%`C)c"ͽdD1xp_s*5ac<vPcq`{D8Shvi W	wpkR|O2/n@6M RիB|\Un^ls=[{A?zJ_R6SA	own~GK+(uhK7,H⺔Q/,Zy(NZy
+ɧe+uhC</,s	wy#jI诵{Ҏ,ٿ%`S"[;_~`!>]܎*t]8Ju׷uO
աH>hLkq7gR2,ʪZ]|$CZm
qX	LrSKb홞%H/w>G9(|vvNnNvX
N
+Ѐ`p+{(u\ sQpݨ3q\͟$ﵧ;QSřz[jl	6n 8DT}㔨PE	%BWحYw.!/^mdSZ~j=*Qgd⨎0t]q-.PJBp1	ثatl/ypq{~TOH6	uNwY|
+AVrwDh4Kk+
/@
@OJZB1[?l{JՊq9Pvo Y6CJ$H`7Ei)*eK؂Y8{V)bpNv/A%;uh(w̃l}*4y|uV:&*P;LQg*}OW;xT!F[o
l*KKUvܼƌ٫NY4$Gd+3$KVZF&FuRj.GNۖ5ƴrevvvȬ2MC[)|eGyb{)ڻ.I{l1CesZthɻRæGp7?(dW^=

+&fV͞iϟ\G6$$uP=ou87[%>`<.$MtӗB)GjSQUd`S"3ɽ}MױTth?7]iEHzş|-tdۑ,:Dj7lD 6٧-+}ZU4^xOݼfQHU;"I{)1Z.@2󄖩b+qzVs^>V[ŵ-5v]蚮c""f\߬<ۋcy#Qj6dr#ȑJ4lO(yN}$m[-|Ԉ*S\ќ臉@@
+ie'm'q$s'B੻Ad).*	_y#z_Ы_{_a_=+䊒ӌϞ'Pܺw
GJl.rqZvD(DCG&Cر!=ǣz4v($;{2 @iǘupcE
+	hh 	s>
L^fڻw
TWޟR
/_IĦM'B.,P-Hj)%PDp2^^w`K֫KPa>ξ﫥jϨg)KSټdGFYG$X`7%ҀcKQO"BաB'^.`";GleԒO^l:Q>45e=[7$ziF\*B'ǝAkoMFc3|Ӭ%v>!]'!	}:xi/xcR^WICz_`~cVFvf]5OnC?ҷ79']/g}փiUIȃOt̒?k:[>TSiE<7E-N	ؐw;mDu[z+9g_PO$UYN[#jI&3\e4n)Rvcx/VC?Kg{GX"b(6ʛ|	RrI&-Nձ*?2BpEYP[ .r?gOh/%lROE
f N=d&u_qb?X°f:J/}?(u6P"L~iV-g1YBg	}HK24鵖r)ۡ#|ti@@JR[k
xcE^I2߸dVoqPkZa2H/=(c[lW%icX chPq6cM?}iShRm]6;?'B}gMmǞCj,vԱ>G+zYl?Gܦ*{.m7AT^1D";RUr"bhlqw$/gyRmZp%0Bϝ#4b\q0n	N]M<qN{Ԉh@1?~t6͜Tk̆ҙ҇\M |t 5O<4> J},QrQ*ͯA\')yz'KdخDWdi@gzu'1\}^qI<>e^h)Q*lzBl?gGZ0`~9<!:+xۣ""p[W}"Y|ʒ>/ie+UrWWs6
+g*D}zyn+ህwUӋ։fG%!L[#"h2fmh|Fqb}*H#znV˴]xA 1mk
+	ׂV|=@=OBzPd5Vrl$ ZՄ88^Ϗqp(:A6J5PY2		èV'Gpe᝭\hjp1awʓSA$|HE#7ч|p*
+`D]ZB-\6iWẍGGG׮~YJT7Mq^#0õqb0KVot[
Ֆm^k k-dpݟ^Jd3ݕFFTϺۗ9o\S8qk"σxL_:PLh0!iˌ{8:zE
 Oy/Иl
,)GqQR`\J>[ ip&Հ@
 $:Q8Bt:@`{>'aޝu99'LcиđHhd͞YGf/	N=Sf0T;WJ& I231 kÉr`}A̶d@\q-9(B,vѣALXqH[!f-t|nPΤR^bGOf =+hWD;Kfx1^U]3@jK8{V. "k5hG¾pC鹒*6iS+пu4495dj+KkNqBM++?{2MNJVu90$#dV/,)
Ak0Ƃ^Fߛn<%Jvq $d	@ww?Rs
+D1F-_E1}zcƝZh[$& DWx&fe% ~)	~XLt˛҅JK//(F[KY=;ؕb~$Vd]8|bJ):v 3RRQ}˺O	kUP}SVxs Qro3z2F'֯nN?{"]1B+յ
;*
+eO]-N~2̜u%l(Zb9Mh]Z3')9#>*<c;Ԛ}l>%)V`leY.5*D~-d5JZ!QӦ^fP/fjTXX&(f!Ý^g/j<	/륃S'J֓5V^	ߟ^m{2;
0i7$&⩵ӵXEOSx5Ǳيt"hv_CS~A$<@f\;Sa)6C_Ίg0(4i-k<
+#5t\CCh>;!` 3- 6htD]SeN
}}"#Qn`F:>79$lVe~̈Ja%q~ܣ˴^lC
f+/eBa<' \* FC;|c
ڀNf!L2i~<[
p&ѕAknnr틧n&fvnjn-25(!rC~D"`\T'j	P`0iO͚Fkrfuəکj\'3!BIElQ?m12<TR礥|X}vf*?_K|IY{%m`*5D`N9$#czKt؀dk؁7[3zܐ,b<|S<~غ-VEl̤iA@O[.5>pQe>RwتD.ۋ
XN#'Njjо4!tK_fR!@棼CJ-jaH*Np@wV[;
➄sqHlڜA?y	"j!<U?hk1oa޻e8S1Н䋄!9hI
B
+9Ko_( [f0o!31C;XIh$ɀ禹@@0Wl
]&)s64wY3c.Mg^1Oqs#Ms3ZNLMi}
9U~x~{$6FɬQEi2WvYFAVlVDXer(ZeͰ3)\t 5\^"rШs
+wP5f7NK$f^q{"L]z`@DQh6f~hG5uU7G~
+.#3PTV!nژPf6Չ>l6	9@Җ5Ϛ62t@7
+L2	 t'ԯbHԼwWfɊ7=.=bx
%d?
a 9epHҩK\ۏ$C%0
ntv:M`᳑Basp&)"-qc	@Ibk3ePF8ZmUL((qP05n'CVijɿX?qg^:ӛ[[PV86 =Iɉ(cG@Lb!ll8߬MvvVbq~/%Ii҂ϡ֣T=!BPS:muvPsϥ;Z|s,G:pHgVuZR>f@ e⋮@F<6Ͳ.L
/)X3"LN>^mw'>\C<CKb`(.uְT' oMG{x$
+v9
+|Fxʀa@QI֧'=z|Qo^Bf,ZfW4#4yI9#5ZڭE2p'B~Uj}ۣWwE`	
m'?!@  C 2C pclݻOš{(C2kCk'U"C?TQ^ڝkKm3m$۝ ͮ]<i( Q&wldmY1 s3hOJ:NI7N$zڸ##ot4zϊp驚0kxȬUÜF~:(|Bnm	`N-dl9/\T&19V<vn:};B+ׇdS\Hl5 jfe_Ńa8||gxWFi%CF#Mk1wJ%"\Ӿ7R
6;{<UK9`;$Ѿ<{ba*MwfԱO_g2Ej]V4X*gS0KcATPݏ`~e?F[njXnرU5Z "pss41@Gi<J<{zޢM}a!Be:܍o`-C\.yk$exǳNH(_!KFotvWw-sL >]9b	Jn)snt__xEKD B	$gYAV>g$%L0L#{&ΝFtd\P=a4
8"<ܝsL^^NEcvH-_>֋;|+c!8O/.规Jn8&,%st]6(kH6Fq#(ۉ[y{0(^ֿbףŬ &fzCqI<Μ$((h\EDCc_x/E.:i^+Ο1צ҂Ji4@`lxNL$搘6T.?4]X1h|}g8<1Ȥ<@K//5pלotpa jtbEEy&Ц4`د$L"Jvil jZ%=')8e`8T*M8.w~\(Htvr"jDoGG
ilHe%ia&9dd>-i
lMܰTA$VHG|
+$:1Rs\Z $Pjۇ]ًg8`簆 zߒVXݕxrtX/Ap2^[1~R{뚬ɇ:kCU'5n%'CXP06Gۮl[<NscOFeQ-gi$RNo7Wz
_t"?z<Ql&B,5"}\i^|}Rl;$ѻ'dxwA*ͺ1_wf$orwV$
+THiLlVc\7O슚ŹRD)]B=3qFMMȓBg
+OM[԰`W[pBΉti\`{X/)ƩcDRPvzx49H_ه#1&P/֡&Uu)l9Э:!}ɑ=[*;u{.p"!,|vnNK63u d>6y/H}ё{qL$
+-a[stnSn2ğ@ѷxHNp2&3	fx)WP'h7f> s!;p&QcN>OgdHE1u	{^گV}2@JHS>!~L^d	r5/GyNW-`ɚLJ=(RV2ȏM;:-A0<Ȥ	L1L<F(JLClYN_7 :*\8͏w
d5'LHs5M 2ID%WP\pyr~ҍ)qN0E|)(@(";JGZ!U,WL#E׬EO5.KSlsozd7ӳ;%n<5*iu?omI"m.XLFrs
8!{NcyٗNf2!n"5hUFJ'dB 2sv5	Cr>~.ܤkgLinNdu'f]BsLA5ShKvvn-_e9eV"mB:GΫxcZX
+oy HKgT~cN¸ OZK:bA%9C	]oʗw1)(t^?uƦ-A9 9NلL#A2Yu5/_=fqljއˡ?uArZ]AX _vM1V&P\6X2m7䥱[lҏ'AQ6RSQ}딭SeS\D-wLrTC]ӎorly݂XJ^fo-˰(X3R>\#	9VP饘QՐۑ,aeX#*gVTnqGL(Z)oMi!#ZH.$ɀW\p*ȶ/.gy 9L2p(#Z-)ijjԭ=0b`n0a]k2I)XE8fnDη%8CS.oěNg'dp-J=aY<lǠOYdbHl_LC
+^]o>ɹبNkY	Ե=fNH^f<(|E(SL\>u4vdN~HN [nDeh/ڈ(21he_ʔQnV=CHEgi~%B15czŕv
>aY%e&c!pIB
8г]~A-l641/[\\ZI
+T4Waa8'lxRYNe j3:-:G6vad$$`M,ܔCz3!q1]Ӌn#xBl]K^t_@YugSk]OƤ&v:NaLewɋ-hY}:xi O x|+^ñCq%]{[[q"	x@LupՔj-[=ئ\ejq[%^W'Hjyc%J8Imx=C/].&w4D,Ƙ3"z`U
|M:3Qc!_ǣW(WjqS#f(G4GޗI>nڄE٩^˗<D$>nHG[M'C&Ǹ'orUmNݾwJ?6\A<NZK5D)Hi=iqlS:B2&yY^bخu}Y+lcZmL%9s̪YO1ߺYD2L
+ʢ%c+7V_.rsIq
pש >bGNzŽ2qXDIa'HVT으Et|G3(
oOtrJls<;3)YQ`gw8"o&7>cѭ^@&tT}g$}0hh)GT sy4r 
  o
MH;Φw~| !(ad"	-sQg#,1M|/uhR-.k$GK,݅1a=aYPA,q%!
+ONzvN6^>ƬAvJFӽ)
+/ުl̒B3GM'[,n\\kѣ
m1hmo>!jM0C <埵ߎ\`K|_xN`ǀpWJjHLM<_=CM@Wޅ%ꉷǆf%MnpZ 3@>'Md
Y,BTuJ:o>b^չȑދGx_W`H"=ϟz&=@%ӌHqixDHXxjꄯK |@ QTP+:uc}ОTB5ڨ81hȩaFuXLc[nNרxtNDX*N8s7|2
R{>}78.GyՂOg#Qq'g
+fKY`9h26$} (T?}A`78LHFRG
+EFJXw!SKr @EKa2'ʌ%v[؟[7SFjj[5hMt,^i#Coq§ZeteWip_t^*>VlhZQjXB㨪9q7@'[=eH+^їa/G6z<6)yжDHwFv2nF)%d.)ەP6^÷r	{h<L?Ih.dht[$]	fŘ9&4.; s;B
+k~>j)ϰy"T㝼jMUd΂Mݱ[Dg4{+ݝ:<9qAw	L}A=£6۠evAu+U_Q3f?R\0R 
R^ ,VwW2`A	vG<94nX;??*uV0{[4"΂,qӼ<RK+k5WxcFPO=*;ED~:	m\Ap\XXd+Hk6ZbWsX/$_QZ_hhLu|8
	Z}IH:ƋoK}
+a/-kxVq0rLC_D6h&軓Sq}pߨ=~38^xSߡc8Ume~7VUZ:vƯ[m>?
p}_gKB_
+%_g=Ih|.ݥąV^1䓺0	"{7ms9ꛦBNIpi{
+]J :My%u GVցkk<o){<OGJץxCNj3-˪W-739Bƒ(T
+`PXiwQ:6)"S #-,"v	\d~n2rr2Ob6[T
+RKcY犋4c]>pyjp:G]Z$0
+_N+M7Y2l
+@x6q	459OТ}Trf52k t߲}pU\ursVlתa޲
}Vm~3gm,\7m}-*,EHq$Yx=E_V'CRiND9/ Cbx@8`2I̪,!f݄nE8b+Q2쪘CZ^?GVf砱(BIe+9:
A
+v4RBH zѳy|x֣W?EtFOܔc=1E$V(T}rY!HhQ!.F/
dիG0;j86t	8yQG/Za3=
+O_ؤJPגIRsZ=|ڼA##su曻;..tש:KIT'6m7":sbqyL@Z,Y	bg,n{O;]ɪ!_"=cӺdij2GBX$|i!*nT%;*^3/cEs4CwLj})<(YpHwW^HL-vpđ@wПp̹UK>1뷀L˾f0pΎ=_!	9q[ƭt-c\
	@q]CAJpPao|ylN{F*3FxLTv0ԛV,jHA(\xxtP
R^ Sh"HJn#_p.$s2iB{TuZKt\LI%*P={b"UQ"VR}	>ZŊNVݮ-Jhσ
^;FQ,*+""00):;:VP8*e(7Jl0oHe^Ɗy%`4Y[eX}6KJ˩  ^#<ɝI_/23-@l4`P=K&=.)՜XvLfoBG]ޮ+؂PyInV`k-~SddcU.gƗ' 1N0P! ίH]Hf[Zx\. +\_4bOv#v!l,x<DxIN-Fe,/\mdPyIrǐ&$GKKև1qzG!A38̍97U;ȴVeg ݌LΐotpR<sk0U-=CCWjAOiퟌil0Gtc=T	u5<ل'M>#
AD䶅)m"ǛX!-ΜaR_});;6П(o:֔qC^Ǖ۵A=zOb	d~hzn/J~ǪŤzS,JJ#2ŭiZ~_{c]obR:v:?e?	tZ]ָՠgժMk&zzq%UCW\Yڻes7ivZdTVQC$mČkiwƿ#;̋	%yG8@5:yq)|⌬N=Bց^\S8]]?{rW[-+Wq)^2-KK0g4LҼ&OSPdŞ-m>nxQyY崎 byCQA )BD`<`7%f"Y>ШG]T}_T,a^&xԠ,v4EpW¶SANⅭgj)&d 54($sDBݦxOhXQLw`qnPsTs'@Tz,2J*njވ4_}3יjҫ-%i
+POF?kjS#G'p1Jmba[2?kKq!@-^Y97*o0iMl=ߺ(7g_ǙWأ..
+pk#c]@qos]vKi]C+K6-/'S{VF#pƦuO&gzutxeL.vsMfџ@/)uA)0!۽ )/Y_$mU?S^	GqVċj.vUH0mǕ*3bt3($F#PhzZo\d沠pmL~LjbmmK	qsN"Q_Qh9	-㳟CUџO=ކy5YkN.eui#uڒࠠp*!C_߻3Qpazmg-	- k
+8Z莧YPdM`TGhѤ]:dVNvcW:w|kҁ.:ӫOڑsw p T%z΁ه*0)A&3PPQ_i.-Z!%Ttf3k״+f66mPяH4ׇ2
+umMCͥpm*Y˭9_J[.9&,rHi߃8Ʌa[Nn<CrxLrJ2vc>x	J#u:nY}lzӮ^Y;zӉ1`7zv/_眓{='T `Jټ]ȇU)K{v[՝y`-0-?^[mSƐ=O#_DqqmR0)
+ibJ}<woa6[^DZz`̶.DK=b	b l޲w헂M7dֆ#wQ]!˘g1}BJ9ԎI=CVR%LMU]C(+#O1Qdj2~&B'٩pcQ41#qʸL̮L➒GZt*jI`Q/HJel豎x[0D֌1STKaf;3`L}{اJ&5J^G&x%nq##G7p(/8ʶJGy8?+>I克WTm
+Aj/bYFNGuc\:i%fU,pIp ^yBcx2
Vb6NdٍәTlW{tĈT{S/QYK7#pQcGogQG?e<tJ83YިF^:̊|ʚ8`r}QhF4뢺j":k2;k.,&zTIFTy=K;pr$Ѳ8f_TIV[[ź`.N0U8I Y
D57o-
+!mv9\/KR!6b\+'Ie/aFzͷ{P|w4ej-t۠^\SK+'JRS f4Ԗ+e"Ӄj\ʌE.>p!\B}vچN!"fR0rG߻* /J6Mn~}}<olϸpf%n~WXUlA!ˍ!ӫ8iD*z3@EYoJNC8f,R	ƏmwE(iwLe7xЬ2Lz  B,'\n@Oޤlo<iYUʣ:8puZ8&>s4PcXY}tp-	yC&z
+Z`7)<i6Oggtx
+hTIw1ar3;e0tYsmvYE{)KYh&ۑǶX>T)0jJׯ$7
+۷oUckwY;8>+g6w&$>ނu>
+VZJg˿=>Oi]@QYOƽAIN%F(Y99JC4Q@J9u3p=0A1
+,^>(HRBxLԇj-ap37ubNV4|u砋alezJ@5yCQ@RRqO</&IG&-p@_S/mncZ5;<y	/骞Pe P.WkYD4<ANǬiDN$7 . +gIg:#?ḤPuGq+5<(ڮ-HJDU1&gξ#Y#}ă-s<Iʹ`{6pSuAmmGp<sOic0ʶuf5o#.o]l<(IՖ+ [D-dqꝻ)<UPqyoQ^49K#	*%^"Vv*-sy1"N!4\U$џʋ[M}ߑOr=K-
+82I+(YdmhŐLa$UT
+C(' H(x
+=<XUQL)FM^>¼p1Bj*O|O,0߰ʹн,u
+Hs5ĲR(+FL?Fh#~J1p)O"-Jq
Ƀ7u6(ۄ!P@>Á1
+ &'s3هX,9Y|sACEvp|̺%37_*xC8
+<"'"G!£V볩s&<6D-mttzq5"mJ}_(^m'Vs۴F>}*sVӇ"m9oq{o!<]w@a#aYY}i|#r\I_ߙW+"푎Nܞ0|98ֽ
+.yfnsˡ b~p*5E#s
+vN9>cQG!Ú8Њy6&-2~Q [aṖо)5_[z_itb(߭O=C/P4?9T,1 լ9"fP]SԜ(0v4sJsbnQ{}#@ɏU^R+/6'
+Kh-Fs5XޖXyXQ3
WKb"&â{[mpZֶ/ʲZ[Z-l$NeWHWM_
+Vӧxs䀱X
)oC&6lktIp] .@?wShs-$9nP[pYӲG:Etb&<
E_p0JtzXB.R
+.EĎu-0OSBþm	Ǣ]vd`ÝXP[
VC4O0&zu4&Eʙ'tAB%+DˎG~AxCPKZ nRgx+i|oʜ8oqJ`G~ɕo P
+8yuq뢵𐠵Ռ=ƶT·n2paA/F[
]+p^F(?ɬ3ggQ)ĊDLm4G;?81[ѫT> =Q8)ʒ5ck+gdR A|vakBcz[C8^'դOS0* )5r|Ȥ^?z}[SWUT}?LU^}L	6h8
bǎEڰn/MA66Mk<u9o5)?q	#019uA.mXiȪfgQWog@u;	o#&o4O:onM^;>r0.'})X"9O~.7@3_~I*`֣q^Q(Tߠ1``w2uՓأ0F(zc<mLhc-p:|m.ǢVfhJM~ [е}r2~wzJ:Ս{s	3xԺ,G MKdv%bo|l6z	^aCG;zVl |_m௷EZQlZ>gsSolP8C4>@e1bς	 zF]5Qƃ/Y
vAfGWJ;=yw@Rq\kK0{2tv0="w
0Nr
DnJ`37%/-*R.U+[lQ7H0x/{ǆq8>6F'0*G\Qa$;hf EBC-`0)y[hʑV
+H2pCxQP¥9>&zgိ*+kɼ'W_~IPg_CO{b̖aշN 
+~A'/I팟o"ܬ*0wKOLxi1M*ˀzܗ{ meJ!,O'Z2Nm:ܢ*G`x]sҶ#fD\FIHw] I?7#ȂU.5w5ɮR?70:3np&9&VupAFsUc;I}!\Uv}bz:9y! Rξ
+N@)0ߗDd;(AXr[BNa+{?X/Jڽ՜vݶ6lҤgO%P
+(/V j>MTc74bɤ^~^()yIЄe7a'xU$u8/NΨ'nh贑51;^n48ߖSqF; Jx]]Y MG-WM_	KVgGg>W&i&
əۣκ5XnF>gla⧲0x){8}>;|9	i 7?kNW APEjpYrҊJp7~V8o? 3#JF	;Sl6QAiCfT0YwI+~[kB41L[*;/jLAM0X}>.tغutjiZ6)udn?
+|n4oZ8H/h!}I>d	_Y3rDwc6ZKجA;T GXKb4p :I9m{#?{X%CKM; E({vT6LaY}jOѭTв`u  Jۃ2f1D/MR1Cb @#^$yH"c%߀.MtBl7 ^]]]*eg^1:	v"t2=M@f]M̟D_w`tјmuJw"BhO;ֽ.w3,eJVKmC2LCyӝOLU{/\"K	h	bxZLRiO(=|V})׾[[P[n26YK	UL}W0$ڃR:O 3Ij(ΒRօJ)HInS(gKp2\oNya軚8'p%KEEgO[:*׸ pⳇWFt!Woڧ"˲"CրooBJd;'K͒__hv+dލ 'VmI.^˅	8BsfG08ռ*ʮ ꩐Tҕc6s~JimxY~V)Iƛ+hΜ;]EBAАQl"U,C)'fC{KD]p#(^ys==UjonlVeuiJ+$dU#;O
+	?92<;q>o	Trx&
+['-xp0j[;3Iw6N?;<m'*xD?$Aʂ8f""0ZI; _ߢUcGk"#+QE	pXd|ĭ̧!x3f2[FKoa K~۷R6	Ycj<L]%TS˶ROWöbc£eP}S\
+Tu hЫk.x{zZ	JTo;8HP^EsT
+'K@
+tB%FjdCת
o@XV+z.T"!"BÞF.~_aca; 
;%#	O6L=B
dXo
+ߡsL!.A2R  4
+:g_*[tS*]6,O935ؖ#^lm[eПW
+=68uPݤ_
Mp"K}qfnV}[[!qe*`g if|T/\wG3	zCUlrQH$q}r`og՚gO3=+ƻ{ Nb-pg[r:􏃽~Df,!>K9YR2vrD3'
+KgՂ?h?r_K&`t͡񟞉y7&.>tu4ߛG
+:^MpvwڴYz~ڇձM٪!RWd;#	^zʈQt\Wy\OJ14:5\SXT ݓgvV9UkX,miM\(n>EI aIi_,(
;.s)=5AI(wXg}4YDp4{jq(Q
+̷ZJUZfK*x C~p"2r#$!JzZY.^|h}zXaIEXgt^4R{fLypᚚ 1ި|O
25"tUAޗ@uRPNX1ZN/ܨxIQ×_y6EK / cuDo7դ	|2VCf+H
+:`wiy~wkt@4OE],<ͦ?sb1-
JAA2-=t칙Cõ̍:
+Ba;WCEΞr{`&,'t[8qu
+-(J]4
ʹ5ay
+hhY.4j&4aq'(5sXGjWB~cm۶/.6a_A5+=d>Ĺ_.h8tBs0HJll[UH4v.	>](
+k9. UA:,A-wyʰ҉VjVU^}|wTHӘ,Aq0;,ZD*#{lH7bRX0CduBѢ5d=V\T=Q3 7oqA̐AOlܿ!{_uDG_rkߘT^}Wo).8|gWPCeJx6N(~v_;ΞS?W#M˿^SmG
θJQ50 i<&+;V=KrU
+e#,tFjëΓU|N'uLx&)
+6wrroG4
LR	gnZa#t+2>if!ϥ)Ǿ>0$&qqJY\IS(ˤ7^+'wٚze!e-ݙ{awτ K"Jd
Ly"FջP n)жw-YU6L8"!ѡ|Fj=cȠERz!<nU<Qco+-`(|ɍ O,tcR҇ӆ/jn@<Qg46W=Zڒ94cK&{}8#ZXWUU+QGQ3,/%Eoއռd7z}
#Ot{yD"3Kd {Cu7'
C)n0{4k(|	u(5u)"|V WrennXWO{BuWU,2L!(K}=	[MP)s2l6%j
#\Jg1a^9Q.F/
+
+y|x&>z|%%N{9c׉S'I#ܳ&QFn๕!JƄeeo},XM0cs9]e08ux޾B䦂@h~T$%
+?-&=EsnϨf'$Є`9wvȒߖ$sNy7zԯ3.ɉA>c,vA?p-?#Gv˧hm,QvG=KԾ	nk@p*;rQwZ*ړǤ 3νեwR-`Qz\ӧv c<s *)%mgNܦIy~#+U`~U獫l'-q'֣h&ɚ,BL<gMIM	 ٧ @nf \}do[6[B$9-R]ՂT}uA$+eҢ4k v'^K6
a;8d-x+J_u_2΢Gre=?(w//(_`5w//+:X}ZX.ruȐQW&eUs?zN|jj_Mw31#qJ[uWFxԎ}y}Mr.)r1+)	Qn"|DU)^8s6c#A;}/
+	?KθĻGMgi9^#0;؎Jbꘙ#<Mz}tumkpaS 2p.A^S1_.wGao%7,SUWՕ
+7md%E=,P[Ұ劚lK=3>h:pZ7ןg~#;xDtO|tҺ}&Y9ƮpbuU[]Tι#UFo~yեj`a~.;&\UBD<j5yуo)],+]*D89żmSTI9⺹"_KKgh&\^a=X(u`mgO,Ӊh}y$ے$E[b\ڊxl~[ l:鈼,g\jgY	'&f)GL|ƭ*Qpr~;ZI]
!<aPBIbCUxЏEgC(<gdРrM{LWҮGh79WFɜ,sRߕzH7zϙFrcHKoSFa0zhC:+/ҭ[-W p3v\uqGG+ԛDX)'&MuƗÛ~EވWp5JpGՠ0_ԍ qWĘ
+]5x 1yu&8Hȏ';@<Qv8uV<ɦEY)+tn|߲K3*"ޫ##
ЎNi"MCFZuT
+7y\=цёcXY$*^INhqh<쇢[ 筆%UYAG8m^su¶$6	y7YVP߾tF(j:ڸ$j{w%phBL\=@"04)Uw' Ow4#N>q٘>0S|_Aeg<28@+5	3gKp:ELBvKj:*&z0V >GXCJIOErWb$W+^jɒϖ6HX#18ˌ5ԋ`֩wGU,03	̵1Q&g;!]vX~0a	\MF4C&h VӾӗ|怙w9}9/HY1˚W(u2igo}9~!V7;:H	xǗ~㲿vWزj
w$kʪe1Z^W$S+ļњ,-3!cmh9% Q*;%_ 8FV(s߷f8dشgm5@@7V։!)^`#m܊Gk!yu訦(+q:­D݉5/bwb+bᎁ6}HЛm$te1-ě
+G]iܘ$Q:npysǩBq8Hr-;-cN*rJ]cGYucyUkuDQ):4^K<|XEޚ.Hxr亞jΚơ-]eU6xbk_loⰯuvoLzA+$^ҕ\w%>[PG<2<Uw+=ܧT2bwݠwx
+ay#Gts+s[UY1n,,(4c$US9B%ZH\R׮mYZ,]KH[Eÿ/l;f
+$6![aBrdZVzoْnHKVU%)GB$E7\fYֵT
+Kgɷ;7 wBh)k4\r<zutSo?(#"*G<K?'<iT?Zm
lױkưCd	@PJuU 7"C* leAI̮BZ|G~ۙQec)XH#k3KV =[X_ߐWCoFx#)ȁt86]Hw3,kyѡx,A׷	e#/tsu#8;g̗][d`oAlg# o@^vICkrkMpԀKmnJ6!	{zQIVNrrEZpWw([y
*
+NCS!!أc-qUwJ=j,l [^sMu;כΧ:}Ҝ		qgcNhTv)Wd]]*InM:2ұuxv>FnD!$Sx8;;( ~
Wou\Ht*GĞv:[Lr-yGm
+k-6K=9D>GkaDl9<jUr 7j*Nl)8j2bS-as4d ,`8j0_FC*6*[$_\ q';C2lDI=#:Vp-(_Ha̹$$=w#mC*A1JP%sd*:%	}4AR8zø=?Eu,q-أ÷,!pN:Ő5VI4?>*K2J8OsP"偙bN%
pxcN&ay{Mlƪ3#LmN̕&>4wՙި|3}+e}_,,ALu[ϲQJ5'z@NԝZ̉ED@(PVdl\8N&,)I]dNY8+ʞ_wu⥊8#+1d8s6Ǭ}壯Uyfc+!)Ȧ1[N}3ǮIGu]x~^ʔ4
+qd[>,{1#^3ID=q$%ɥ:A*Cg
+R@BH@!Tnwl˭a]ɬz5{z1R&l\Wџg EIّt)8RTp*YMڋFfR8VYbJir5Fč	N4egH%<ټ
njc*v<᧼ /Ujao.lGvAvPؠZj9IdAvƉ<jO3j5KhiMt|en*=-A BQ׍.|"?Ïs\Z%gt2^L#;K0>;!SSI!!H>S|BϵŵQN,$,J,ya>A"TSMK"I쫈+;;Ӽ[5*^1!; m--?wb^eCiO{*NC/.Ms'f+vS'̘
+TkOHLTpRs#2Y@2N6^T)u[>4(n#*w²Jb$ȤFTxM3,"&
ܴyWmk!o 	,˒e6GG\r]U2%8WH
+CQo娣)*[zb2nʹ.CL?gl2\#.WY`WG>r8e1jB
Uq8`{l_d<Chjh|voL9g䇄b%&h xL){(foPH~l8 -s3(!Ckber
+AEHЊmqؠ̮x+9&VHLajK##0ce[abh@/9Jy1MK:5boNKThwQ	)坁(
+iǶ&p9FdISzԢuqgݴVDZ&`W::*^!V p}a,?8晛K_7g?rW.U[c>9)\<r.-^
BtR@͓f8w<_IaƟ̢(CU/)\R~?~ۨ
+ÿdZZەGƐrgJp_"}Ieg̒6-G;K>$n+L[o"N>eYfC-\Qz%seg@% I^؄*ӬD<!0O!
w!ޞ{DSr.~Bz+BmA*+y(k w_3dVy4/ܺYhsvzJ0ap67X6	yno}lknr7
+yyhDbKSOR5p8.Ta[YhKHCJ]c@/s-`ϼEaGkYrʇK<EeWVRPtG+$д Rb͇PTE[j҅
*NUZ{V<Qw*?Ӄ7NsO	j$0`۱/NK]ϫ]
iZ?;:w<7҆҇ߦ٨nVwl}DA%yv+w$,Xl>/j1'$YF\(AЃ]xiZk$5U܈?ZN:5ZC'Zܤ}w~HEVN'O:R|J%ءC.^ڎ`g͐(3!a
[0ɘ» #c]j)`rsJ!*jcf`o+
;mxx 2<s5@HT}^P:u{P'/>=
}JKo
a
+XN-K;xL@@a,u]ϺU,Y;Ia˯%y\	#2"daE޵>P~?nŠv]wZY׬a)33t2T۷MN6=?Cݹސd}1y"9gV˚!Z1qz&Ww-fRC|K>'cw A?`6$,|Ckٝ0->\#˽5KLiTom\[کNJXu}ꕵۡx[@4u	g @+"R.AST+8S3r
+P,qݕV^f bڝ]d|k
+xtQä=:qC/ѾK69@̦8ۃ)6mkϋz{vCGv̠d
lCȇ`hr .SFmإ>2푈n\y
+3k43b?sNjT%a)2}7
+ I
+}A6m"o'iLII5y? |Ue-Ңhb=Ϫ۱_*'{h3ry":U@>q|J!׎72ZΝ	]p%},r	Tāeu1't̖Xm٩X$:Dl>OKX[;4Eh!BAjZ<|:f^Oh5a Ku/bztw~8i$oot^3Q?rLˊfoInHiqUgg)Ӈi-aui4,a{ nY$HkJcJ8@t1Ay8RQ)(
qr<'T2QUETԫ
+*D<!⥘`]0^ߢ+=ǫI|	^Oax'DTSR<=O+_.㨊d'	tl9e5,ƙOv'zz{S]xj
+D]âKqo"
+M~7* 5ׯSpEB>WV-J(YWZ~]^oP6{
+[=<ozQ%gfx> ʤƔڗ>!C/9kyyrL+>;ʒ[/	fn>O<1#ryw 70"aYM0Ib8H^-ri
a޴B 7N9!gI 2iOB*{Ȫ!&FsSmt*Vch|ʢ&E=E+BJ&Q"/qd"8Yn$:W|8a%	F~\\ =w帙"i4}BW3߬[o4Yf"31Doڔr]CpϼAylk7S Lj
@>s%0)uA 9-^{#x/ަL[`0/(?¨Y)؛a
+wI{ddC1ڐGdj<R0*eYCNsI(~.D<ouwϪ/۟EPq{cۉX$6iE <-ompVtXbKͻ/mjho2,;ẂxIgƭ،90sQNO HP1'gK,-"z2טmq
+Z(EzQNesD=Ն;,cP_"bpyIk<Ɖt,_B-q ܐ._h"{gGjy;!X;C
+H*gr-;2I;dTX%\fTǚRsm-/,;UUv-{=nO	9 kU땐(ndzIiP_
ka6d>*;	ڻ{VqS[BOl]yWMRZ$.%qj"̙.9*H*:HfcEpRoQ#"htL\V	Of}=Q]LH|<l%C6h%`t45{)D$CW2MFDpVI4e@ G"S]}ۅMbF)KtݸMq9%qc+9sf
+Ѷb!tOe
^7u|P^g-jъ(B	q
7~?V\x]oFog&w5Oo,3۪lLTõNnU`z\TdS\k+](PXx%2_垘2g@EgHjtMM6FN
c^ٲc-JD_.+LQlOd `u;֦Ubh+}O]ډõ!bh	y2/$}-4-}|~\/mڈϱ ^$2͔5#\P\kXtxM)ƕOl)^V9f+tsj˗##x?gBP|Cv
޶q?/&ytg"g']OIiWvd/n)0P#X2?Bǆ)5sbb{tczc7UAԒ1)!(S,4HC$np?$=i[~׉YXA#_0j%#J8_f.-Ί^.'
+dux,=r#e*AZ݅[S*k촀HNT%EvAcRY6 d̻Yܲ G&c<o&lwu?LHZnM)D/Uqֲ;;
쏌g)ݢyw|^~dl&ɾ@S
+lև΍rSZ.b~
+~eyyefiSԑDTM O%,%d,L=B-1;,{},Ҝ=sn=ǺOI;$p'i&k7G.t 0r
'b\9r
lgjO-rlc7icm+!D]a1=Ѥ5qllգ%ґj	GdT
+v/	#N޾^xB:WڼɏEvR4qU=zjUdARK]hl!WuB
m(c'
+Heto{R}$oEb?ˬAyfC/Ο{ֳu7z䒏XGv-W>_~kϣ񏈔vrți&!*)rIb@쪖%M5Нs!N=3h%`U3yV|pk,6խ]+{EΗ\^yn۔.*QzMOտD'TS\0WU'5:#h΅A%EZʜ5bҜ6M.^qӶX(1]l(4AҢۋVXkv)^ۚn6eQ~q`a4ElZ{!eٹRfmwš|Nw da{%Q	cygRA9zXBN|5ّO49_w9.fo(D\EPl~PˢA'Ǐm |)]ˍ1<|`){y?J;|Ɠ=J7MMA~weHb^;+4T1纲ѳ'ZNWRfZx
R}Eڢu^}
=ּ3CAlC\'EΩ).b.-GB؄HA|ZEy˭yH:$'Xv3&yVQJ/I^	'4ZY[}>ēnѭţvTow(kxǂ Կ^gWzۼr1k
}Pc.fŝL@^-7pjorͤDⶴppKtrU}$gmJtAPvh*ٲ͛-Zv&dHj|4P9?]]zw  wLz zЩ!.+',zb8*߮$jΆ,7bCo/]Eh+#PN:
<DS_S4;LGV_!G8ʜ%gq]wX\z]BWλzTSvlV+#ᡜL Wϛ=u5f]Y:5tgq8hĢ)+<5dP:9?tun${`Y?!&]ܳpaR<ұnk}DpzawY$z:ߓHzdYGjar>q͸E@G4+5|"E@8xy>XqI3%4&Ueѣxޜ+V[
+W?$U7H2ܘm
+&{}3}`RU=}ii*"Q:, !86ܤP'TsrvwM DKOxinM'\W	mFfPOV
	\`%~JJvCm8kv9EgfvG١w20$-\IMD7OۺrU:Qڃ1<;	-:z^%qBZKQD{җxoe%*p7|-t<^xأbT*n}ۙo˞(ﴲ\^(Zn3fZ,2:"n@{8,-^wQRE~'>@^U>W5%3#X5"߶縵mw#,,C8閅WO=ĻH7=ζ:+
ᓞ(N<n"];٬D
 
- a+Nc4: X0GW*S/cDax7[C7rŸރ VWo<pDU_F!+Y/L\9!8Ʉ2Cٯ7b?	퉕OC
-͊~6 (vyڵ#G3\q^[:V,:AT#f|T{Y{:mƮƊ:YH#S_.8fpuXӹF~ieB6}qgmxx @$uZ:(ݴ(6?$I;r8>Z%s4EFN˽ mϢ\0ϲ)
-)9)	]%<}N5}tT]=[=jү__9Zwp,|nٸk	 (w*Ɨڌ
{x?) gc=HJ|NeR_MW&pU	@DsjVoq
MW2!;mٕic΢oD$E0]O$l$}VV;\~]S+ZZ[k&'ut<靺OWwm"*}YQf<gY1p}뮈㡘N߇hKxIX:Iį:_~\+V	W4enF}relOV;QCUEعg{.:УSZ! 㠒iEt3K
-s1'`q'/B2W\Tͮ4B:ra(]
2ZwSzB}pB{e8]ãR'Gb"D
-Й.!)@C_E{jp~u&'z5vh̳+ŭ65ΖI2]ͻ'/LN-PȢ` -hpfUpt_'E^wrַ܀D=Z$QoRi*qZY1ØEb7dMa0Fq#Ӏ{%D7|Y=gDWi RC2\z"/\aҳ3g<f)P1ɦS߻jeXbf˨;}X D" f|3P oZC|!8HA`
ur
氄5(9f'kn9h*K[{ÙW8Tz;_L5mDR`H/_J4pKl~̮`e(vWY`7Ne+L&M`}aqYJ7'[Y	'qcVpM+wbꡋ0 8_Xd1VrvvힰԬ%%ڜyk,vڋHEj儚猶r 3XflAܨΟɡSp\9SKVYRɧ(FGύ"$ԏ#9KF+ %V'%SpP܆WxvzDggt"ѢOϱmtRg&??eRȢְG;PNR2xJs
-|
-4iCn
-!ژߠB pFD
-<%)*s;3B
PKik	i!r4 7#NȊb^by&L(EmHN]8˂݊uCi6 .PΡD_
-x&]=6S"kx.c7#41ugVZvب
-J4kzgBWzQvBeOq@Fi(
\ -7Y] 1
-XTL@ƀ@TPO˩<vC<轀)>7PV8cje%btLb	߈Be}32#2d.ش3)B>6U	0c;΍Rm=HU[ 5Xe$eZp	hLR@~@t([SY9xW'bif
-8snߌ`uKG˷#4 .<n3:v((8YVs
-܎̉}˖(nO2QެM<Vt/PZJAH}.!a !i?0$]#jr.Wn"0v^G	3t҃Hᳪ*`;$,:jwKm1E TC0 .

z7G;,7W@Ѫ7o%0&[gjU^`"RuNܺto^'5i5U	es4n½I#y?2jDyG$o˔W5ʠ.ҔM)Jf	$Ь#iK@դ
-."q:`p^Qʋ8x'i1HoUPenmGtdB.w[0N<	HQ?j>Hj9xKhOe>nk+*k1օdX<[)ÙϖbRϕ֣z
-|ͫ<	BG_OO'ž[OƹvyX+ݻW\RKXar]/T<A"ğ|WXws! (<6VPB1s}rýs_Z+ׂ3OITl[~p0Y8(!jVg;Wm+Ȅc4 8ciY35'6zZGd֭˟?G;AȞ~IMD* Dv{+!QF0<1o12WV53y&<ǏUpװLY.~Iff?{D7t/̖\Mf p
-w5nVV`B!~t~0C}ZVוx#z
 fj.7b%]-R( -r*}:,o(,;
-KEA K]]~]bn&ZYɛss=;2E/֡Ֆ?Se+"uʟMqѳ?Ԓ^Ӂ?AۣqS
-\Nf>L鋜aam53¬qrn
-C`K'a<HH6o巄ArDH	`DŜ"rrZ|X|GWXܜߍ@^kY037N5Ic&mˇ/)ۛs8UaG
T"yu)__3$[iw(*٘ǹ1DEǱl9m$7%$C҆tB.1,c1a|7i-gZIm6o?DqƵT|Kon>θ"Ht)~=`w82[ADp&)$ 	&Ey>\x`ik=a8J"X>DCEny
ǫ
-!
9gg{r.!	Vr Lv E;DI!!Nu˫`n~PE Sj}X}
-}.w(܃?n<x=7T_v;qG_jO˜,bpmy:V|P7)pJҡ05rHuoi2Ȑe~m㳥&[˂$kw:(e%{_7^yp[_Yh 3|8ZmBoZ.`^%r #N16C 
Ӣѧ P!CɈb記JsidI0Qp
-"ǫ&ƥm"ryJ@$ݞ݅x)`h8 `BD'{8ǅ6)Ɏx7;iF#'4҆!74^9v%n⠌ˆ*KL"E¡PA7y@OQネ+6/$%B놔Ǵv}
W;"jҠ	VFӐ)W;"إu
-9Uq8Vonwv<{8`QP0--[xBByWG 	W.2lB"Y1`檡Bt-wr.r(3I4*#'.D;<nGB?õ~`k_JcOR|>(𴖖4	!p`ѡPM0/̸$Oq%'DDPWM@ȝʽR)
E%2(d
 ul#a@ZrCC>FNyT(Cա PSٓLp[Mz	:l	EN0ӓ`yzpU|P.ƳxЄDK__g|6VmC Pg}+/OD8m͕>"t
oH#=$vf;r`ef4X{yR|(;/_ެ8|B2=Ѽ?+K*c}7nĘؔC6*qz/yiP(	Mr0*oEU8aE#cleߚ6;
-ݴLͭ+[P;ueUVtx(
-98g.RYD]$3	j*B ^rDc2KR\A9
-zpG߉WwAۃ(Vh)-<+U8ɫY}^6*;'WDh'q^<ܥ>&:bF򨆄O*\Q:|Xު
-xK7UJVj`e^zhRm%;WѬjMCRx孵3D3<,>'FIHe@jzR:rcw/% Zqjݖֵ%]I^󹣣 l]5v	9&"41r眏;2+V&R.TJOhWzRMDuLKVOl)џPp.qF^ɪ9ѝ*[p(J 3˪%и)	ֹլLLX
jVx
-#G^rGMiv'sa|mo-TB_^^D˅>$rG^~IT\=	!=^YߵNZM}I^.|2Pqgp؄ġX{]8<Y)F0}q
-,yV<oH`vFy
-%>Wrԛ:6<RMlt
-vvwavͪ%a^
R+%c}E /^@F*׮Sp&$:Tsr6G0=iŐ3}`h!z;S?][{	|IK$6_2b!ԧxT.?µE_{,$/2_#K=.2JZkshd*7޶LOwa&̌94JDe;\t8e@)$0mb} b{Wm?hks6Ua^{8mJ.;Ec+~рçb	KwA}g\xnO'(2xl+~ʭသ
-:z7h:[Lv?u@
-=+Kb%9-ԒFSz"JENKd%ebv,,MIKOP3gHOmj|ĕu5'w	MH) |aCy' 9:@( ?o8/[T5!"uW
-YHSt^ts	p9b-԰~x[rW4/iinU0 R.Rn`0-Yo	O|wĳpR#\ЖT=c70_	9juT,#f(~9JzǱcR
-1)ܐDs۟fy2q'ga_ȍ{3?}{isb?_ftk%[S܀%$ Mplӫ"K5Ӄ2 ` "^)?hMAWel6m5r2{Lo)ɨp(C4+,hW]X]ցfhFKgD)GƎ9|)҄?}Lr
zR?{T'۴ D=>$hA٤/B0bk򾘊 0Uҥ>sćFe^K)N3҃#]:7  S<ي./
0g`^qic!G 2(A͏6'hb9{=nWỴbT/Ab4	$x4P{ԋsx={L܎.kxÜq]d8nzG,|%Tjoy!i ^] SK2gC5ǉ$(f䍌m6si?&HXsOm
-.ҧ_7׉r0^#vO
M
HL$b~Ê1~}^sCs`:o(lEbC	
n""P 'SYg¦,ׂA|6Evм~ٻ?䴰/; RiI-An!?j_Ppz]|,pUW@8DUӕ[3[K䍎mcⲔn@1ЅbͲ[ݨUH-'>%4ŊZhuJoH0_&ߥAPd[Nܭtoi\
->Ї#P
-NYc	9_<yH긬hӛGys`nwwJyҩYKj"qOofeQtn+piXd$6Q_V,?Cb]L:2PuSHn[N2h%TT	vN@?ۜ>7uf)uߛAX7kr9ؕQ'5:x0
-yv%8-IxscHRYlF:[e}_TGƮ{;9
-<2?4dX>39zO(j'
-=,rc_u+MP
}
F\t&ґhuѦ2.!-` fC95ǄZ*jx=a<0QP{60̘)E|apNS-ґNku^롖Mh4*NmR9jEcJ6 m~ќ_hbC|<(?LRB^l&
-!uNy2ۺZ\;r++}\(BqOjCC=(
-0F]2(^8]alo(:&v  E1jl@P`

-LPb$h{, NFd,qbq辶S<zyh94y
+$љKᶵvm9!*FN\fLqޔ	3~dFIV5%m޵v%hx A`k|Ys2%2?v+WwǺOܸko7k.g{t#uw%\''&]2 5
)C^^X;I :1[3~HqO	l*
-]*X
-xC7@{EϪ^Yإ{-~>d!EE癬Kq.ybԂxjDX4;>b}/o6+\MmK^{#EםJ4f1ϣYšpXsЧUJp=ϪY32KdJ%vsLb?BwNtDgq_l5ﲙ
-FO%ELqWE.AvyL7eR*jGp4HG+ׯ4+)[7ІĤq+U$?)9B?jQˏk?ţ4D cbqF`{~8?vBO'հ>fjG+ߺ!Tr*#qL+9`FY/N5l;Xȋ]hW&h {~hП
-bS&1x
-Pd~
%`.nd@EVi5b_34(ych~
-Qɪ2"3
-܀V!ixgSP(+(""b Xmн^	
mMPVq"^d7
-vgH_W&
-*B7btZٻbBg/Sz\ּFp
-#x)s=;}wFTԩ f.(,[Mhp9-8?Z܄
-ma=T1̸hҩ?u&i>*Lenj+n~%UnH4Nc
-0|r!e`³
-VYGW3kg5Wr`yhZζ\:}@c-7򸧎Z aGv2AͲsXi$#>m]9gٴx CT#0_ykΊ9<S!,`\d!UփF^}]j[E.I~*'&H=}k4RVuycoށvQnz%w
`t
-яX2+`K
-cF-G[B#%:/:ɺ
)qum숵JYEZ~4;rg;)+d'XW%/I[o? {*DY!׸EȜ"HM"
#AW*A7RG+ꃸ8Zq޵P֘$c]2NxQRzfGU$sPC^ GhxsฃaSy7~=ߐDe8^jjemjSe.g7tyW+-Ӫ	{@`Hʄ<;Ґừe1AX6$;/0M
-!<{Q؋́9j<$$w_=ۈG}X ,Xqlp2rb\~mQ5" @>ݳu<iFU;9'is	vq {!Q?/(RT8-&eyb~K\NqqI[N
-$UyuwIluwm=pG	#|3[@sf9op@h6G2 gaϒ} y^HSenH诰SWEl7vX8tR:wCios;n_akYʮ1/y;9v{O'VvՉLAP44|cۗUO\D%^i;$Pq=r3aBhqY2g|)`4bwjfcy?I
wD(ML\NzzCaO<c UM)bu!A\? >kKneIfE16S=RW]l|5ءJΛQ<4L{DCkdۓMKEP^?<DGߩ6ܨf2MR$_FP϶_$A"xLo32R=2~'JF-2]w~l03"ڊ"?v&\Re[p\k(V剸S()(oJKlPשZ!Yyp
-L]UV6B-O{PM϶%^`/o׾sQHa+?&.H;p\al(ã @ʳD=1_4V)0d.Yuv\=o|E``k=|xe%k3b 䯒 ggJ8BKZ N{Ȍ_MLΦȒ|^<%e䵆;WlyTKuk)w+W7;l-SPlRajcm+q-e9"Dʠ$#CO,hۚ#]p'Qv6Z 0=^&Bч-1;7FSoKh4gdlF?	p&]}xfxNGMh@?6{e~e|2l/iP ߬(q [֡P͆QQ'"3NnL"\nI~Cd
̕4COvi鎺Z*{+I(~v ŲвexM$0f?UEs\IsxLJ	f%A$ ':YHD6m X ,I*@{.8%nl0c-S5-EFEA~!8Ӯ9ңg^cZ;d'Dy\_8.
-Vv()m&
-qR)DCB19p'
0ƫc>"C"ARxeM"ĦuB	8褐[Es'U0MD|GdM	')`9J]{8~N\`ؘJ@.MM(`P@4~F@4ro?JP!k%&шRd+[LW^u$	J+b!XCiC*}P0	Dګ@q MS!utk]j=:vI \PGA#ES1eK @ZELpe ѠPQ=(@{V:L~?L1D[,Sg̍!'b:檖NoiNMOknIG-)Ocb[13S!̄r:ZY6;E>U.
wt0'  ׭^cܣ}l_"jrXN`37nVbe8ozZ4J٦[

߷rbS]r7Gw6pemu2G:fL8'R7ܰlQ
Z>U-ל^d(߉U^Zn
-3c!w[HbYwЫkk}Yo"k mv_@}k׻\2<s=ť_5qd<𲵯Oyt5a8wGq86tib.
-{?l#L#UNѬda"  h8?vx?%d `$L_[َԕqe}ޔ|adY
-Oscm-ncbU})ALˌ43<_ܖie]fSenq
e}|p9cۭ6ĭRT:(|s78oH7oԳPNt:S<{SsS׮;
- xKsD-CϜYͫ/ }>X !A?Cj3:i8P1:	k6JFLY}_z;p/-0ApfW/R'ڛQUp-B3eY]ȃd/wt〘iW ?tp|>}ml<x
NZmLZS'@Vè#ue ma;$;vInpKX (>/2Rpx2I-V;B:*?rgVL(ԗTEQHv
]NoA}##IY|Uz:\U#U*-F~L!)_;E@5!?[=T/`WY

T
9 Em>oe3[2wGwݲy@5ׯ'J ̿ke'#n7-Xwb_%_=Z8xۭ<>;O%QyS?0:2c(oԬ[= }F$D(Mf(D|0F ~\:s(X82OO؂H79TB5O4!s̙Q 'hMYUkH#:eضY|
- 'Vn4*) MzE)jqOjh$$mPN`큭IO0\p#5P> #"3-N͕8iSRRYMLĨjǏqF#Th{ma!b7Wb"^Q(4fj/m
~
-8xGnF
-PjEfSMʧ
-Q]c5424)wvw	TdGi]N3waY`Jq*'VsZ W၃
-n.:Aۡ⟠kh Qrq~AWZ#?p%-GkY&"fup$8h~ϚWyrH{Giʩ$ݑ8O3u\/K7Y`b3/
-pvcyPP^
uۈlP1x# r+%(v7-S/Dڅ N' 8R(|]bbUo֫2a%ZᇋΏ+/!aݙ[f`_R!j[46sg0>#$Pȟ/o'>l`ӰASfht(皓Բ ny?Fz)Ɇcp>nv?a͛qͮqCj͛MX~^,kweF~=6ģ})?$
'ܑ<M߷J\ nld}݊Aʖ
-[`hNTYRNjν/ڼͯ.C0AH18"l?Fx]CWZw{"c n+f=\=cjO;!"Rjc|ǐ&fDҎCO/H `kSe&7uH*%GHu.5r|o{A[-.>fzc®|Ʊ}Rw4L2s!XT#)]T4i'3-!1~_	ls3Irf"CPm Pś&E/̡3_LVsD&*װ/xnjH?9TNC
y%BO,eevnSO3޿[6=G4]0E-UؽXa,[*.4ذ^-8{ :BL|WgR6~gs?<yx_Խxjxm>'Iynhlع~
b6O?xBZ߼:F)`7dN:}-AA7R} ie+iϧ
-)z>uK8jhWXf8' bn͝}[8f=/ŞAn`iR6j(Udɝ~0FZ'H3wb8E&VZoäitONQטeؓ%@-CP<=
4;xu5bs}>_4E]w,d*|×$e$km| a 
-Us4l
c3ܨy.LoN'9[rnmIpɜػbQn-(I&|NZΊv]D|L[wհ71Wؕ[uHY*I9	,&~YG/:,f
 d e; \߰bAM|6u	JNO?cEE`(ljA6L!C;CH Iz2:^29mγCByB!}Al]J[VGJ e'tkCV !T7o+/AY9c6ok^ŕboj[
wlΧ3OΗt^X?pQ8m| _gN~Ei)[
މ %̳@,1gv~g1y<NL.fIioʯ0RS-	yVs.yYYa
<{>Fb+750E
Ʌ^ 2L͗Ǌˎ&ϻn;	cb;n2}"P)Pa 1UYq84
DWkJB;OGl&pKsJE jC[WQ6Ȕc>^6`lDi)$mowa,*/wآxxkG9IewE$fԹ+	ĵB
-
g2}  o׳Hev!-dgf""B'jO3Mv2>hyRAKÙ_HN{fsaf^-vYY῎g1h
-7w"0Q}??p-:z<:jۼ|D]:9QENȦeoFn	TaoQHna1CIB_Z9@#r{m]4"f<S:R쟜IWΆ
-:}3w$St<>kJ'	T$f_Nt8}ȳ9w-->CW:x862yփ藠GLDvMu5<E϶ʗJDZD?BG<[N(l~n>g$P.hcT6Pdt'
-2ݻp6u%
AgVn@&;5 #e4vsgjB(ÚA^ 6#|pgGGl8l`d[o6D{ʾ- 
p Eo mV} ބDc˛ĭ7Q 8TL)kYؓ|E\(쿺Z^	,F Pq-l8dJ"I`wt W`9žTcT-<497[uH"L׏7t'RE{a&LZ|s[*#S5v2	/<WxVC	񦵣/jeS{/G	܃/ٽm$,c-"JȐ^יgR'B>:lP2~UZoӘbXvSG3]%5yUGwBzƓ;
Ȇ Sy	`!7ġWs #$d@ϢDݢB~M_Lm;NT#7݆Guom-ApZ-^KQ(Ƚh/^6>;7"ߧr;TՔ@}4ZUVBΪJt8YB@<o1^i@:afsr2"Myt"ҽ寪o7pDFY&km*#JKKnH~[qc %pnj01ēdAǆ-/^CK!<ӨYTYu!JΡ#}k0poX"+x>vwXW۹.a}EĞ=FSd=Vp?꾋1}H=\8j_tkn;1;}
g+W~Yk]\p`p.Z wlZ|+l!@]SNo?>$ɶ	u4N*V8#7Rg^{;N]OQ\1痝MQh' =ÇLb7E5Z-f6D@[
-2VgC7lW?OEz}^ܡu`[t?G{f뢶%Ov=AgEԠj!v	,>Ǒn`tM7E~7b@t;m,k LOؑȧd.(69*&,pl4c(Ml;Q.I4lmܸe!,$N XrܨB0\V2 9XϋeUiʵɊ#Y&|0|4:=/u_}w;W6B=ÇJi9ͪpȓ.d><}˜#Ws ũY?/YZ=K$bcY9cEg
-y]
P4VE-I͏.Im7oܜD<PQ%6
|?id/swWH>B> ti nPݹomA&%1K>]Iu$7&^]_#OS?,
-  Dt.LaӲ쎘P+r!u_ ۵a;%D*l_{aSﯱY"(UCd[sӯ8v3Ulp(
-)<=xc6WH&[
I,g-""MHޱGfZӂ{!"觤{mcTzZJS'cmUK3IOr'H6ėreK^Mkd!K	Z5)y<8`e0yW+PL6hpT$Fy5Մ%jW_<^kc]D2"n^Qy̦J%s"9R)RbveHuS]g:?9Iޤ3~Ox/>V>22þakz&uf72gPG﫣ԅyMC?׷HBn{6=gl8@WS<\_sNٚ;
VnS6w/Ýj1#Uˇwj|@LZx7@]7vnw&Q-	nڜ;F6+eg[8rc!~,Z
-#uyGϡK	u#G,Yw42N~joe59/C*F|f5eq96r)dص(w)X3
-[sqGĊ_+|_L۟EƠsr[aB),8\qSOSgKSPA)00kNYH-q6}GK$AEd5|ݿOMzROU/07E-xfA GGNŊ:|/GK<SHq*ؑ<,9t.zփ&Qz-] ʈO7lٚ,}Wz"!:IsY7A_gq,
-qQ?@K N۞tH>u
mͬ~+*v'.
-^  C)O
-!4_ cL`*4*Wh)RtTi!Lj 8*<`]2FzDZ+*b?^ⴊ%H8hL^S)y	ɞf!@e`ϊ Dn֤py5VUN AcqbeM'FgŮDqTfj6[	N$5>0bǮ[Uj,<|Zo5)t;ܭƃ$yB}@vHlsR??P_^}u۝zaף台4ȳBg1m$-nD?7{!(	ZB۱>m<P?۬q{党v:QSvz9EӉZdiۋ]Z_x{p>W4|r" `bRxoCT嗘AtD]~pMճs.}<8	{橔I
-IU|>I+xL87n֍1bEԲЯxXF웨D&d5a{y-k<䙚x~3RܔTf8~d(/DS
-$U%RfyQzw37w3+|8`/k9k :m:gCmP;;8S}% ]ϓ'?˛pssUC>!a6da'>]77k[`~X|C?V3¯dG4k
k|8JT]7b+FuFh#Z#1j!Z`]O{4dRM0;xiQ_VPKe\Ѹg!rlQd'|"88#FR}Z=kI%9=~ys#ѧUo~{;F{Xv<m
-(Siq5A
-=lJTĭqH`a* 7& C#@p(fM
-ܽH&NtS16(x4'ZF2cTo+k&`/yDu)9,Q,F)sb蠢pNlq"vIb!E/z}o2#n\ϡrLLwDR'FmŭqRSeŲ+cioHZ=T'/5ZLׁ	?yrsm
5<DN΢qN"NNG"d7퇅/x8Ķ:'to1aI$>^KΏK}ud'Tx`bBJƯ?$	rUC?_WtXplfUcnPge?H̃q:mݧ۶[GYzq 78bHdyTyQvLhT)+Qsf}W>il7^8zuy馲R:
-܏ꎺgcޯZMGtGs?eSr|o?Z">HSK23;
-5>{٫ه14pUkcI]iV.ƙc002L\
 㸌]yw_Eu14*/:p:Mظ5jH0Ӄ}Jď GfW2%UTwi|AqЏߵ!yk;z*8+u߇\u0@Τb(.\rl!ԍ3Ll,x^LFV"7^4v(7MR7Y(kʓ.[LП#E6s
-b:#}}h(ޥ;T?DDp9X[z^;>yÛr1s]s،RjGނs+:15_or)/&Hͱۥ;_a7?RV]Bn%dX XB{԰fo |4Mk4e{QF+3U{rNI}ֿnP-;$qLܺ+T9>%w	(vI-'@p!R0̯Tֆ~S`o՜k7N`
-	ewϣvSq[5%aantjD9vN,i+}7&GFCwx0Aq
-}u^[,=wGGFs%?<z#SP䉯d\W	h	"TYfBogVK&z#hn2C~罶܁х[dtUVyAyP(<J4e$,˲"?՗~vd8>lJ#3.Z/ɢGP7
-4A&?e]tKtV;x/^u,<a i qo9@'k6ڙmvPr69q#M8d4pyB̧5'	Ρ{B&	/k0w'ͩ95z$AaJ
-lM@`b(. Tдh#nB)L)]
-
-&/I)xMQ!Stb梗g>`yXXyT]>E9}u
rʏQ+xk?-N=Q*eKdm:{7bVN3,qaooyRv;8Fƛ+S
-UT:LH	k%Ɓl%qZh$	gxF|쿡TAItR<Jo>JvHn4zt,*.BM^:6J(,ӵ'gWëןh'Y*?0֩MNH֝#UU-QN-Qc*Z$>v	d.<\2.Tlx(:54$}+.Y:*!	4-uڨ Aq!zT9YV-]pB*S#?<PkN%k1mC鹖ׂOtox(O"3Uȗ{{Gp7s)#PLCV)Cfm2H[pq!ة=mG/vJkF@G,LǏYXnS%S%%;J'eZ5;YY4Fzz|62>'F'Tg~}{mr
ݺI\w]Rf^uqը}ufV'	 /FcYܞPRp*KFYjWCs<.УfRAELvl~maURFH]y)[_#w1Q3s&U*6GX͸8'ğt_1m,x+KgTj JK}S`1I Ap,X1mOnYO/*]6=e0eHre/O'
R@?ӯvk##XrX~6Cuib99Y |0rǩcG+#)\W}gh۵fۛ
WU\6ulykC&^oty-vۉ'^Li6[Ըpes↥yYq	,੓ԍwB݈G"<"YBNpW5ԍ}zg<׾V:oKC?*M:\̷*_?֗3QmKm*|pfchVɨٲ}vfʏ1s=C:	2,-,ZOOw_ peEUXC:,r酕[6WڜB[l먩gH&̓-[ kUQ%*SlG$sa7n;I=	v`qQ@gRA/
--u:6j&N͐ ^,
-L15X}]"Zř 9G vz_!"R-
-zUv',C4H&
f6`׬orzHZQ~@D@-RJ~G8P6A~  z^ó2$DKs^S|y *-cw\e@|1BfVwmIA"jPmUy^{OU(a,͡8mw'2)
b~3?W(B]D25G82?̉u5fg~8Jѐ[Y-q|14.D*t86hǎN>fh0Cw]|VEN]QCS`PԺ6{q6YA`}ޮN41j|-|F IFzhҌ޲v15s)W6^uR[Es|gC&& 
MO8rM!0EjcHn}sw'~+o0GClo
fєJe&
hJz<_ݛ%aݫE+'p2ʧ7V(Ɲj;	=mb/@ͬnN#D~\W)\vF-*qnY]&-ًkJN0"hFTZm
۪3	owTvhvcvZ76%<A~ꎀhQ]?S3gy5/.,2`/ק@jF@ ՖfUQFC-2)*Yirqq:se*IuQdp.C3j>F:^dFK)z*H=-[`ɩHʲ˱ik_.6
ހ]ϛ_y@$.aژo7xEcG(Ynͥ]A-G7qH*6P^,/\(T:$v2ob(-O*|Pg~q.Ƽ>荝N9f(eh\F8#7ބ\ZN]{»# @{pZ(y*L*g;Tx]ި,f最NH	=E([3RBUi$"nE$~\u9{dgVי}177_u\G
-dHD]'	e3!o9̉2k^
Y;F!y^CgC۾㪳\8=FOzxh$-xP~;6yVs|aUn!|;!+.q9'$>4U`'R
s'[1T(Zȋn\:?-a¯8˳;`zDт<^æ0hx#w8i5j.|Ei{
=	$zїVz :ڵ6X˨0^p{/4{GE8#C}"ڊ`EF_,d8ͣ!' (p\.fk+j~ԏ2w>7v\"p%":߸څ|>vM-˅ 幃.@Тeog]"w@){]x;_ld.Q? 7R/_{Ƒ΍xxU/T'/^kӸ}g39<T@ou;I
-fi={쳵>b鍫:2&l٦t	m<omA,uMo2y+H/HUImCV@KO~˃&M<c2iZk~i9([#/d؃Z0a2v>Ž515Yo1ydb=>~Bс-Y&%mtL!b̙0
cqs7Az HAĳcݹFP(]kNDG4fc&wkLuLekR=Q)8~l\
-
-!B`0% T#I2v+lξ})A4
keGq?Fcu>W\oi


 *@zn(Gt:2~珮Ɩ-Ю(1kE"85LYsp*vv"WƸ?>5F{q~VuuY&أH5;IЈ8>-ĸL9, tXCArc?=[_w 0vvX?=ˍ|Ljt+& '[BW;v5?j
]pdi,Kxd* +K}yFap6.hbiM!pNlEȇ?l8f-U8b&㺁T"_ҷfxxrrӦ̅F\Mg5}|@|sj˻tM{X>S+LƄ#cESxs,`  sz֘Ij$Uhar
-s5C_	J*h9dSςBi*!FD0s}Z욡|,[F{RZ?N3n'ݻk:
-)p<ueT O1(beΈZg 0
GwQJ(jn7_5{Q5p+Y_UY}~1
-Tgzՠ;>cЃn5l
-hEl1Cy.@So+qD-R pSiiiU| :#6~]̫DVc팦`UkkuQTڱwqE g-QL\!
-̕ <.UF}4=\̶ؙ+>Ya%_\E9ȿz_PQO=j7AJmwҞv[@ٸ]ŹYɜ[.͛8IlK7dRlZ6E'shZ|גijN|:a4=+=bsVvvq֍a5Tؒ(%=iUӹ=u(AxwKj	{F{~6x+-:L>%Ɨ%t`u&QinM\*c*ѱJZ]j׀ncj}#	 c	*}ǏP#yk?FDuJ 	du:tPqkf`#2ۃ  	@W.Z]	B1a9]UIKp 6ý(8*!խhE>nj=3^3HmbZXz<mo]J"餇ЂxRZHm2k5)sGE8
-Tn:"9@3H^6hV~gsm	ۥJwhֹf1r7
-}qᰑ1qHĳ%6~V>LIu9$:XB{'s,cÄl9ҕr"']rwЁMc4|3M+}>cٕ@wx1bZ})|$s,LhͲUJعXJڵ' ܌%ٵxtud0Gp'eXW'2zUkXv@Vf{d!m|JGD.H^膀L;gd7ê:ܞp;i*A9O`ܣ߸iytGV!
RxxGuI(.$wmY\vcLyY&	z:{ (_wHyh	9V7'4Ei khL&
-7||^/ q[3ӳ4ċgH-fԁW$sأ?I%nҧ=Nw#ajo5{=~Y K[,oq;qX]fffɨ٠_mcWHOjM!^w 3:m#M[GYk=MM4]\[+ gxsXµ9NFW	onnv-2:I	w
-A8zxUDq"y;8}5=>#:Y:N
-ů_o)9!Sh(DA0=l@R9]̈
-Xh3gЧ0u0e^Zp$*V֥MяK'1$U
$
-+~<B-ID)(E]u]}g^ƍZF/]3	8/i<_qPPBVuoi /]
-I&iQ%2T͟4N#UzH/IAo+;ֹ_OG[6#'ue|YS[0~4ĿsFdBHrrjQk]v~֌uvJdӲveP1醆>dUDZJэQ)z򢁴zq#'qc>l{_IZ]#A֥AlHc=BL7=4ȇm\U^
fqE,qy@"GRF|уg{=^Rӕ&&cgUNW_ZV%7д6y6X1W
-@_l'vo5>)M`ubbuEqyUF-:cXk\{.;3G/=M(?dHL(n?*Y?RE񁄃A`CrD$i-oohZG(fFiÞ8Liia^PV/ԣ/}3㎸b뽣xjq="܂=qD=/I(GS]0,lҐQ!q~L0?=ikmG',Y] d$a/ås^P-77/(n*OWQ XsVNVCTu"\C^
k]SQKed`݃ 8ŵ\Dn#scb];NqKmQπQ;K}#b8eGd\Ҕ>iq1@\htD1eH@_wU􀃈`K/(2)Zanӈ$kU2wTցC(ΒGW
-"Keq;+grK=*hqp{hwίEfov2	pǅܖnKAH-֭7<BHh/4Е&1
-;B\iMt%dRzkn6fH>kta'`oXG$&Pw-+qE쐄Rpe<{,hܧ3<?[m:-CR[Ҫ^3~emN0=`cB	(jȋ&=*_Hm'6Jib4.':Q;}UL=v1`,klsWVGϴx?z2wy$mwe9]Q*l>-w"]=#hv{hMr#o42{Kk
QU7"$t71mt c}J|9NG;ЦEv61
_GEs픐eXnnvCr_Z

]­hR,]}NR[LYGZzJƦx6׿ɒ94i
G;%#Imǿ
?u7glZx}ofvZM^Bj*C({g(jhJox&ۃ҇dBDV1WHo]Wx5B7AFGEp#9+?(B\LO%%4"
-ӹA^Vyѹ&	0i,/$p[f폯\>.޷O~8+!1
-E4/ f8?r+sdqz;uީ\-3'#) obնmU`c܌je/]@/}BEͼ#ؽsN}>!X:03D1tCV8xco ]O\{`=DC}#,"O8r癓m/]/{	!#mXs Vɽp,>||fޏLfy~c\{E_]ko
ѹ
zz燯t@	]/+倾?DpDݲ\Řؖ'Z_dmZUm*6fQzA5O~	Aܼ\ѕȗƵ%ʂ㊛ػg+3JxcSUlxg̢N~G"
-hd+PPcߖF~ܿڂ&n	v<yF|̏sKkW59:5ݴsrݾP!U=!#O';Y7}*omΚ˿-OO0Ik-,蝦vikܺݻmV4w)*V	==>{Z{A ĻY&nQ!9s]/7ڭܩ>lH\҇|d{e;R.:רwU'2xޢ1r:V0FˈuNH?EFgqմC[jn9x:7sDtOI -W 3"M"|6Kc_ARBZ~VcEʓZ+6lXZ?_
-]Tްt Lѳaw{aű,qwJu{ÛqڄꜶVզ:a7j7Of5C"3c,
-K:܍^ݷm{st|v[]VѐMGa>`l*O7W0fځ@nyO8r>pu\Pܭ--~I%@".
-NPy]V5'hSa07eZu_gC֛&T.*6*]vꔢ\>KWl
-Ucb+q"T85ZJtzk\ Ve5sw pc%Ɣ#&Y9xEE(&hUiMH߳.Z8r9,;<#h]-iZ'>ӳsm˶muխWD>D-K
-tOxxN;<zk@OzzUT4iS_N.m=GUh{=U}>:8PS8,EFp4ӣ19<yIDo'--eUVc_\Kb/҃ӰR@2#Ui]SB2`B W#(VӤC'SU њI'w۔?#8>NpbHjYM+
-"jRY411=e&o>"4rΟ~	(Kկy?{q#q癝QnDqCI%BG?BiDYh~Նfֿl%"L?\jcS+UjtW^YQyL-7U{]3>攐w[; "`UY:cxFF/D	o_U	b$MF*.5du~-+*pm`y^>9..s} GUքjoɂ
übpY
-{W	6s6zUy[(=0,gDۀA{%"{Il=^5;L'12I+>YM׽)Z\ut}ہ,]*llFfԆ'6<nC.9Տ;%@~)%Ǭdo}fQS
-U7b֚@@mB?#џtBP6Wf:	bGa`Yo3z+$RE_*X{Pp%-ً.ֿͦ
Ң}qSlIH.]qhNW-38ՍY?:wwvg6D[U(ߵ׶UJWx%d\Y
-3<;8 (G L#^g}\a؉s99۶P:l4)sF4>r.:rqq+ܨ~uH"/$4NK	{+rv8r|mnOÁ0#4[O
q6F0汦?XDSJ{JSrNSXnaBB+ZXdd @3\r})tR@MlKj*sg|@@19Ó(OoDsm"luϬ	CCs~"O4u}9H	N!VeAϟh00.Nlj{}8
tMhRTKPr:^WJD \''q\

7ã
xNtq x{pz|9!̥C?Tњc8E
-*u&SDO9PT-e_ts[8SAzGt*ti!;8;>6K]W*4A_CQ(>XRjkz?r45fvY..y	An{;G3V!ĳY{
Ju2M-1H4_bq<|n(|d0VQr3OL/Ci*
- ߽C2_6!MPN.nTpG<@dv嵨r9}V~L6r2x]:sHρMQOQXHA5w-p,2fDoc-x`oݵcvݤ2)C;CUo$zv-/[E=Vk-"gR|HJ
wX}]os$|3 |a>>143R\E7-gX[l\Q	>*+@ &u5#"
-14
-i6;r.|uZK2QApycNMY]Af,j^I
-01{KPf{}	%D8ľ>~uH]i"K͑gut٠4Ԩ\0u BXH]Ec21?vz"ee|̷/ +o}}9tޤs)=jxqRȴHM|dBN mV"\r沾5݃|ƈ>½jc,)Y\	Yp:*-C$v7z`}tuKeXW@<Qķq-Ȝ<ϼ8P)Q[LVvnD"mS$H;}%H6EZ< ѷ+vNAʻYT!NOWwA6&T@BoCl\0`!o<RkJNr5]N0g[u >4c `һ)ae]F+!{+ ##jq	P@Dq?`xftQj#S 
-h( YfTN/dZ9Ȉe=ʊeϟƏ@o-į5iQ6qh	êA
-~͊>lֶ d+^+"4Ϋ<UUdP3Y.4QdK?
nkɤV=ߟHbR.6<#TDppe⍲r{O7@IHS;8ƇJ:'m7b=;[5ҷz-`t=|2Du2 F'LqexF@:eZBLoo}oC3pZHCaiUed0هܘL7 IM*HqestRtm4h<yX`DX#|wT('>5E :v_O8DRϜ<
ħ}]
-;'^R.d=c}Rw? |bµ=[j
u o-3
$;8۹=d|&OogdStC&5)\H6&KB6(mMw׋Ň9%U'D)۳`JƪRLH |UP냘Օhr<[BUqoafDoSx蔼2ud
-
=%@3TbXvED\{@4Yʅ=WHմ
-5eX__ɺ؂n=FKnR<. ͸yH$+tY1?XX|_DZ"!P/MПLPn;W챎~Ng+S(0oRnJ{j* ;[x^bF
ܡ=^R2Lov30MGP0&Mwz@4ȠSWgg,ӘГ0C}}7\;`l
-"F.&?o*tZ^09GT~ok?a VSv[(托*vg~oA_7<GH[2LJ0'E5gsڄ	** K4Lr/,d_	I\)qR8s'ۦ?tWWRw_-杻S)P04QXc)Fo%%7w$?+L(^ΗoK꼡<&mc7bHZ2'b붠hr+nSXj
6c%þԌ'M	?VdH߸f
-:pWZi'S1ÿd=6~W5.8s6rm*.,ӝ/HL 1Xt4vrVUܞJ8nׁ©7.BFp:}=BZ?6[DZǻЧ>L#	M[0H@`!	2T䛄t:~k}CD݀1|újk]h!D[=4/;sq}~ndfvT4+*<P՝{>uSGIvy.d_eYT}ۥҐه4(|ON<J{FIIMs.N{ˋ&NZF}<kac	yhΌ
-EVɡL'hR47XiS~5&)RQZy	lS_+Ad~E+*ďߩ,94z-IoAbaopSˊ#MM׭m]ZSEWڀ7%kMMY1ܴwPڒ_Vӕ5TcG&@Z[Ĉtf1L~#YX<~rCMُ!˘Ryb͙˃?h2B16 aKkG0ѵ`m~3SRq~uBw\Z_)qDi2q*xGȨN}ŭzM .^`:K~^)?!q
-Y>bE5U>C HBr- x"vFI_VQCXij'lxd>ދVM  xz(dъ{!CU"d	| tof/JH{g
-
-"Z0#|,K&;+
-뻛E+ZzZxrQBtaEu-dk9
-!.Uxڨi96%a7UmH~(Fm[I1NI"VWwc5Z1EacOޫ2+i˽{6MR2g0G؁w]KI3m~aÊA;8n4ǖ|a0?v{e%("$);QO@*J"uN,/ߗ[tY8 %Z[q^cB"FIpMbɝgZAη;xɳEмÐ<?k{esNZ/neij-?Mhhf@\2_p?-[V@Cs/AL
-{iGw3jӆ*MVAT5K4BI{T)۴ɣY$0*ٴ}B'xD1E1Hf'pS@q.e/nϯQt+3<κ
y!XEc8s*2(:촐C[-V[sA"yˈeYHۓs"7 ëp4wni,8u$J:B૛(8um悹
-=vEiXOgvI; <[-q'b {s=3/ T1ekd1VdBräX"N
-TxKffdwHV'arUEuNI4=dIw'nB
9&R֧oOT.++ddY<O/gȧz/7na1S7Wd$kBbE'+
-v돻ڍj]F-JL*N7K0"H?[ϒAϗVWEwxh{t~=1
jמgBcTX}+E#Ny9H(fL
-rՋ74|i8_ fJ%)EJ b@%z'rQk%W=_tOBa4>}PD|rC^o8|Iբ'/6C7вaTEjR\uh{TM\[G\+{@p{HqAeKn/& k_{;\dzocKQUCC7;a/CWszFc뿋;ߣ)$U fUnLNRov/
::Ε졸{-
-2]MD_Rns @u"*dP$So#=_IJ$GDfVo	jU*{3D<EB-W<N) (أ8A~3Z,>gV!/0}#R|`v[НT6"X$[It	KҠLZ/$.lߤDL2+Ǧ<2ī؝ߓ&Ak-}_1o6cBF2%)S+d10H)f'E]t|YB+(wt$_@:X݈? ,n,=>ݒ2*OӘf	9\K:G;{EltHP`PqlV2IR~g҈
-*_\pd<z Ԍ嘢9'04آ{]hת{L0Q<Ku@eyQ(΅Qe,|Sa)K KueKq۸8_hCs30B]Zi3J>u1DY%,P/=p=b-tBhI )>Nxi<k5-3/{f8S
-ccAKjiev>B knKkKZЉ~}s@Z[CyZJ`pנ nC9hS&2=+ b-fʾ99}m8a}@)9Kҳ´sv %uq-
-%`B]:h_ [<,,`}LHhcR10fkrEbHkRZyM|}dCe}uY68jB)a 9'(c~l*ۭ;O@S,Ng5vlNk<ظE
-*'ZN{PT3` `/m/fR6P.f`-omжʶŶ*5n{:kU^!ꕯzTo|nblq~xH_0cΚh)=Lu7ፗx.}?đ_z d Xb8 rW㤡l:t%C]Hw
-g44tw@5OH N)99܏n3=^r	%]|qs?(K,ɼ,ߐYZcdFfԩ?՘_Ep BoO>I\dM2=i8 B*m $ae08Bc8<H"S4:%./LPNo0kfނN? B0b8AR4r JjaZz~FqfyQVuv0N/v<_A(B*mAIEYM8˺y4CL -Vt=^ !AIH,
-Jl08Bc8<H"S4:bs<@(KBRk:h2[6rsDz? B0b8AR4r JjaZz~FqfyQVuv0N/v<_o &q!6 $,ϋquۏi·r).! 2.:(N,/ʪnڮi^m?~
-#(4$2J3,6"D*+punڿ.6Oi+[mٶֵ͇`_IeAvEM ry"傶j@y~̮(JȎ__gW~bg|!17;uݺC=LPcԸ^ho/
s8P=_B<󂠽a0<ٚ&i`Oˑڅ0x[w{{\v96xT.0 Rt0;L^JQ)>lgOfp@VMƯV5mcJDi;$`1mDӒiFQ\&kȸ% h58z2B8_ qT9
k|9{IhrAq2n6à7dΥ׌ϊi)·z[xDGQ =1:]?7n}a3年Po[#u}s7E75h>q
-+޺0'^BępW.duKvFjkEBDmޠ/D]s)-@RD90YD~G+-"91AįIua-3%J>FavշCsE-;P!M|bL˸zK)
-c0sETe@l=lKo$:䦣ԉ_9vYc}jj	#ѬM[
-8Uhlnگb?fG?<q;K+@S\[,^GuguPRQ<dZDxnؘU-:(e#:'itJgoikic%Sb.+]`[8KYQ}>;/v3*K~k%2Ր#ſ\lհCa*.1ۉhLR5Yp;uN#$a K49_CxuzN))]y+̆zramhNmqؕ >4K1#tL:Q/T#@qD?Ok,{9
-?ES⹑s`.	\ܔBM
Lwd:`9&fǖl
>8H?L H C%h9_-}a#war%(\2nD[G(jz.c߲&,t{ΌR#c:+\7/	NK;Cװ~S9!Ż&_{K@qpwO,)!ðZY&JU?FT'8q=+8D4`WM{L4I?Uh~	V
-TF	G(u8	rHW5vHOgv_`T5+mU([XQMXYVJZb
s)wO
-ۥPX!H~lֳO4_}>wثѕL<56V.K.vl0מյ]wk%7$juIk"ejk*7D)ک<կ67tHYMc	KHO$/ҚO&,o./2qXodIe濜ʣf?z(6ǷW?rՊjH[~BS .{>t"p0=gg90uymΦzo P	TD2G}y(J#v:&/f:C
 qsTzk9n
4kǾ\%Zkޣ1葤b!f)"  *)QgTiH"RJ)Zkc1  @5  g@LOQ"AŁ33Zkmw~Dq.G`чStpӻW
\ No newline at end of file
+
++M}Y`*Lvl  qZfu&-A8M6u
+t2i{5k
	v@Jgv;1phPu2[pCUm
+^Hn|:}Jt82El=U-ӭ}0s	.>QxTa7$m};aÿmk.47Kt݋B{Z=+IwoN.R"kO5haCK0OP$/{qu[_f_".wy$8)"oX;34Z'G&o5gȬ	[푂px$~VlYy?A:O0O.?Iv{~lz]%xդ1G2
ͯ4`1w^"B~<׎kh:&9Dɗ@	I4<lC"`67Ћ콀{=V+
`TU0딎s*Oʏtjy2Ϡ|*(TwldbnQ/7Z[i}hím^WLm?,/okkXFt+-{VX7NFd39ȑV{\oo7*:^.f=g
+;:uP[u+ZPϸu~({Rʑг%?L'mO# 8x
+$N>|ߖ^y~r׮ۙ|,y-nQߖBN"n%;TsB֭f =3EXX7W
s	i*(*+"AC.ڥ+:WR^mSQMz+. sS!F]bZxL}NN
+$pgvEmA~DPh#.0k㲧on?֭l/Ox$]L`.\(P +:rj{x}cO#V ̥):f(ýQ ǀ*[յ~-`h1):ҙn@-݁'>c(>,U0.Q/sU*kޑR1&&;{=<	QdÅR%R	F@"zEG1M}<*:Q5	zW՟DKj~_[#Z/9XMFۇ{7șک+hsDf!!/y{ܸ=g0<)84TMʦzj^K"$L+܏!^\*d%\%Ns$Z:˼&,t'U}~#
+\ɝ/!-mYVB-Ei8ɷ92<S~N	K۩p'Â*֜wcWFcK?ZAJƺp7Էb iKL`]gɎp$l)qҍVBC*cKirz!3ڇ|0F
`ZBQ^z}"!թMr"[RM? 7	dLdH+XTp;߻W3k>jW][тQT~79E<rjO>3SѧB0n+\q\Xh;edIx6> XCVrpNFK|99QPba-~
+$GnX?:a.pf.!®Cf ߄Z$
+ݞ\؉jrvb1F4
+%B B
k"r,$$\7K5sn_+v P$ϩ3/x>Jaw/TiXFN)@ԅAK$r>Gnc	QR]
]e\C w^ʺ 𑞯W6ު}LB|ұ61R
pn=b>@kDRƌB<dDOKgzJ2mozMnE}EKGW䷔HC	i3<I>MQnh50qb9jC_~Poaʀ1>bשiv63u_;fj/1'y9D8a n+.Zfq>ZTΟάs6
wV@)w1`h	|ZwUia{]"5X MDXfl|6b3Z=cdǆ/bWOgL Á^~Їo;Lx0e_Z,Cõݷ%"({>96?C`/}G(? Zi	6m	v{L3Z[ax'96!12'pͥ[˔))L@ƙV~+r2ʑkk9Z	0NG25raQJ#+Z,OhO
:X=`O0ߋW<N;{[e0^Gݬ-{:&ܖVO=t]4ƏKF}1QWPy@O~k[+cD@k,UB#ű&rCe,/at[XOdԚ{-@ai` Q/
BXIHU,}Ȥ]Oy,tGd.@뾄 }ۀ9SUW !Oҕ`h?/=
+ o":8A6VK#XIqqKy,Ѹ:^PAu~[5<`dl2uv
65bǭKvo
o
+Iѐ80M	SN&Q%x[":vEbJړ0K"`G^!ܾ3#GWTbAý'4IIo5K@d)ƻH9eW`p[':q\}4=@D7ZwY506ӘВ *)zGS<.F9"Ca!z[~P>ݴcZBb4lٟsԳܻYj(J՜:qZo%9" ]c,:ZrPA<@p/"
g][uoW(AǸ3aIL/)^j_s;_"KY		mĄ"oj=1HfΤ;F 
U\V>{9Yc6J?x̀W0M-7ؙHrV2
+I<(
5uywjBtA֏o\e3YL\ʺkl#ss˯Gb/kBZ0rDhDq9WzC8 @ C4.7U{_\_}#!|z(12Od@C?x7N.?yjvGCҌ"ʚYlC`2'%b[iܫ6hLF
+HO]
M"U1P
+[9X
|UB S~z|.4TP{.b9py-~ ^z
+\@JX`nbDWpk9_c,:2YaFμҦ׭b1DLcau"ҝTT7+ovzӀƣ<nsiDw١/ţ3mW.{2+اtbJc"9ʓ8lɭ@Ѥ̤%>iO~}$f}e]Է99y26WLuSMvq9t)iG׉06G	-0I #u1}ŭ[cz6WŁ!-pi?K8'`PCrrp\B;ki~8߯I{'DʪJ"am@!BS҂ ?{łk}MqWW,/R+OC[Yw3|ck=}Qc;Y4ed6nگlc`,ɩߤ@7iM=Gs4g%rGpHC5p#S/ڝ*	ϓ]6}NxErP?SrbO{Qph*LbYSn
/BZ;}m~9a4-h[͎ϭJ$1 N&|'c䬥/ʺ&᧥,/94
+g)^D/P"܈Edӽ&S#pKDD
+ȚM9B4Ge@f~޻;a~WOk
+CL T|;v)␳aHz=lyNS^xG0fx!eƸ.9\(
+(noAiO@ut:)SPU6&*BvpF~[@]Ja0dTx͊ZСq0.W2v1hd-CZVA@Gñ|g;=E4'K<@|4^q	|\V1p%[#S#F#-CI̥+\),Wyy:#sQP^<E/PNyߞ?)eSb:	jwna\T]n>,JzF "穼ƹ0-h q(B?Z{)6{oݔ2WCtˋg5T8,+Oe0HUܺvRrAD
6ř!D)n:nc	a=2ݫws9OYV@^XI{+#bWy+@%
0.{'~{dzr/ێlL*bd_Ecfa"sص-	v$95]&,̋PLY$8>=[w<*	C~$\YY7W$Y^qF%EAWQ7{EH2C)Cu͔.w9AYȓKcd
+Ị<wTPNwbԡ"~H66_0wnDKAANe9iFVg?#|ּ^2|Ś{A&X|[QhY^oG|#W*fe`-ޣ\ 6i˺.tu/^ykA/˙5nnמz]1Z[ϝomV95˅_6	e^^!MMHчVx]m$ՏKJM4F-oQC23q/T])<6.jxo/|CA^[cB2|A	{o1K{2A`OF8;' 9ƀ@bR]ʷq,Vo<*l^ܫQcT_5?$U0_9׊ f)Cץ)יP["q,6
+<sZmNv.
.'
Ԝ}9P̂$
h?˃2=+.#G=wOG>#a  cd$\ـݻgyZgvbԷaz8{ț}BhA{mD.'*KOik;D #/ h;@±
!+ګ-ckn.v$?:ܗb{azKޣdGkyVֶZͥ:'Zsg.O\/+i.5j>(=>v
+w=7\4߈y~)qNKss~9<k
{doÞ;Z荄AR4vríḾѲʀ&_>p<a\&R_qo
@X"P]TU0yvvwt]U՗i<Cix=c1v79(f
+Mkڄ:'ڪ
+I`|y9D5nU:C+/>9UF(#eI|K!Вl036nLGe*6Ne
/ˌԎŪjj՚we7r|т֔讞
AZSCr
+֔BInt~-#ZVvLBr"9ŗ598Vxh_d^:|xmW(~
My+)#%ʂu~ޯщ*KX<g7 |`zH0ikY=2n
_uXGWVҹY]/K<JTdnYJM6@rݍNbjD8| '+^jt}΁bFAGĊ̃/cD;'f{s)y'	K17Em蘷Ҕk<#ꨏSIV:	e8Z(t i@>8[4XL{J..
+5|E^]sҝcC~L@!=Iuzmʐ^IU:d݌a?a2h/iy;nQo (&=X;-?vkC)fm9ҟEf^-MזJ=4o,q˒i^X\lX޳ۓ{-:V{??&*_i]Ţ@T~9{UpMXאjS雩W::@VVپ=-}_ey{Ď^gifhjrԮ0(w90{T,OT<~
>ϷXVX8^tΪ/y
+F&$ZLȏ!DHn˃8mL:dJ'!c\?<ƶ}@} ݁
+"'||2_}W	3:}6)X.邈Iemś [:ޝrmL#hd c^o ;6a!mLS
+>nN- j'9BPB"7%"J<Z)
+}B	[Sgԓd%7
OMmfZdQ?8k
8VjW{z 
+5zՄff2!]J73Cƅ2P,Mwǹ*)5H% s9ҏtITH'~icK"~X=~KH^!O q&
+"^S9c*l`t122Qd@Z1N[
+:H\t܆CeSSR|DXECydhp9@ <(+$̙4;.9댋)5des׷z$Uf{<&v$b)KWTR8Yj'?K^GW{o%8dwJgMz	3.7S[^n?ԣlC9XdC?5{/{/{ 2D{D
uwo̧
CjcT#Țy+L@w1c@]?|K9dXe,r755뼼ِ\\5A	7	[B~bs^wE)`sOrя)eަlCZ@Kgߝz/miM)|DRѿ=/|pzWPC<xu=(9m8m؊-LW.n:Z}w杠6
+w$"O5t5Nց;&̢ '|^0R.T(|$pȲ!M:
toTĦKMH'O|26N5k 1J-1YYsViU8ofYps*l	/Evs2J/?|ŸFb-VAcF:ll{类.KM(6MYW,3wEc©Q<
+CT?l7UZ*{EipCT4c)f(1/Z,O,TeECkؖK,KH:&#H D5mrH?3QF"DЉ6ŷP>	!Uqu.fc^tX\ZZJ9 V]бو+|fq,ҏA_/儘(# :ΓkQn~C
+<ϳMfɥ$<;eڤ1%iEUgq*;R1=XhW`VUr7.Y"qyW(M&qψb)cAnjIW4ytҝ1Q܃j	6W!hd77"N˴:CM\ ti1r[?Ѓo{TEzr	6k?ZQ[7/V{.=ծ"+9= KLe,`Sw9oW͡ɓl
+_G׆aR0e_ǁu5X2k>[:kї/7:YÒ+W.1Ade;f4Y.H:^θ`"<HWG!uM,Z@LT7cCގ
+>7%1$E5:DkP2r@5ݕ+Zf}G
7R=4GObT˷
+ώ#_wTaҳjt[H	-ysGdhAu.Z54N^RӲG2Qё\I>]zP=>';r?8Dx[k5j4ITU	W0*hڬFgLRgX,cA!*}%sY|{F+u]$_oIr+sźv8sR?,%_'N,8+ kħFgd/$[5'Zǡ)A{P
{2dfܥC(QUg1r\;Hbbτe+lI""Ӝ
.?>ikV2Yr.6ы<OF}Klc+$#˧{ɘ
+6S9Ґud`*ٕX5=eou7~4-xf&|ۼc;¼,Z_ݥ&k㯩\&cwFc렮7ؔWK]}QY:HA=r/KuWT7Voi;Ս+ݖO?em+9W*3Mu=-ZR)Qv!EQa(9P+Bv{@E5*q]?vS!W㐸7g!N£IrWOԇdmbWBM!*I>t3<Zo30Xܧ ?yI=5`ռ4jM,Cy=o݉TpGXFo~Uo+ZmGz-V-;ziʁ@5~c8{nPLT{+<T4B-ܾ[@Ad/y@eA*mhɛ03N>9 3D˓ʬy*{+IfD$5w[EGeLeurH1T~ΧtWyw$vsjf2(dFg]kSz!~']:4`lyi1Yʸ7yT)IJu ^ճķ'^DvIwN{+$>|ؿzFdaObDL{̬o<5|ʐ-DIߚkyBoW+o^'^N? =8\|7rp0~IqX3
+Xdyzl0Ep)KdBĔ,DKΞkm?^$fRd9M"Q%ƨѣfHç]9_RUAq}<=^F-ڋV욽Vq*ĝ/s ru!`D[Iw=)	EkvkȿgouS,`*糣:g<NϾ${֩ڗmߕ˻:7mL̝VP	Zox\b'CL}zq!=Ew
+h8t[F3XcXru.$K|3b8rҋ?MzbިAԧ?k+Q=JZ;Tgr]M{C}BK&0F~~Y:P]\
+BT*&,FuUy`Hn
n
F|Klnx\.H|Im,i]&+C9DZ7+gDs>mb|{{qOuyeڬ(+7oʈz0'#2VQǗME}
+LK4~I:ֲǌ5'Je9wse>{hPg,f!k土^Ɔl|wu|Ñ߬<e͛ԝ|wZ@OiP	lnsS֔L|Br%IРu֡;ER,Mj7l}-[`pɮ0ف.uI"uCC6L N-Jb;B! ~)4dndNj7s'E	o9J	n0p3;̝07*]R݇ƉC ܙ<?4?{tqbXݰem7		wvClWjm'|[d>DQx3Ckp)eC>Ԟ$2f=:Hh5ڢhFL,@:E~7BV?Q#3QA.јڬxWujTa7`N"*kKbYJD:
+,T3sq%̓!LooPMZ~8_BUh2|H@mEj]<m	wFɇ|![$Q#z T֞N6		讎HNb!b'rV!Rn&>ww)rR`><\|a  	+Q۹o=b$Jhܒ"A丄uu?\hG!7˽&K>p50E*~#>ĤR>p8%q{}#pqͿfOG[pVarNv
+@`HrrUHkέ|zg,tQͭNb)Y0G}ws=?1]Ο.:Xӻ$Vލځsw/@@{W,}v✥"ԸzEIIKU ŏIeP `fq4ꒀ<Et\|4:C(zm;n	ih071(XXb>y]%] -"Փ9szRi 
٪Ӎ럤1!Sj3
^-S`Y9 %̥ʒ>2.-}pѷ7^-R2U[KV^j]N牅a"}-| k2a^!b)-D*57hoѠJ?\ζn<oQ0^06%g>)fU*7U'M$+6_7	ԤY|jipUzǵA[.`{f"[ꨃH170u eeɲHk.a0<bGQJi%_+!}Wjۑu(GkfEsF/ryy#X5FHƮ5Ye8<1g휨}fP},-^_JϷ&}$6vƸeo0?
+{d" +=*cyxyZ%=vS#C9
+p"8*^Zx7S͊;s_"̯i#'+*q2Iyl%E^[Ɖ78A-4㋲.AuFEOZa;R3GF~#T]\{jgWX~<pDmEݭQGC=p$sCT"YuG?1zˠxiv5:h`亟#*,f#>3eTuu+(l:*owQʑGwE8wU՛nK- ͎KMr9]ay+2p+ҹx?_Q{(Ƕ;
+-!1FR9nf!К?n
+  cD$=Kn,PYgxqͩ'C 
+}G%3CgQӜc$n%lcfUˌN^ޤM-'KVϚ9yezbQȵƏxTRQ5~
^u9g3f {&#TuH8%2t):N#s??%?05љT*Rg)Sאy"҇SAܻ錪)qRK=WH=.(<>L},7汫ƎP s+fIX\h;sb).V Ħ,|pUYY
}0ӐTzqMeRp-NS\ .]HdvidK9}dqzK5nX e5bF6ʍmC@;?{R,l=pe(FM-c<:GНn喊&RaRVz*/ҴT#H6v#I(V!QҠG߄+xm2k3zU35հ2o~Gqrv *
[ՒC[~:m&$4ijB84|؍pHr+ƺQ)؂I
+<Dmh	lH7IyCjAG@^rUe5ôcG#[!C"JTܻr7+LUʻ|%#NM6t?&BDo;<>gHSba-ui-l/о0\M}K?FdD{={<ԍ^Ѡ;|x݋	]94jFaf|l\Q!r53Lc6?aa5cG|-ls^8%6uO9QǟnXIx4paܽfζK~?+2yIb);(JΕFH+*1&"ɰɍPa%'of?cOOK8VzMécg֧6Y_}	om+zgT|VQ?'"xR;gO^L8;qaߘlLbL\Ww>k~[gwk:>2}ZB{W
+,w&S ka@Ը?6>3n=)?{2H2,)qH`ޕ3jkTĞB?Qm$%)}bUq_cqY	-_1Ӂ)j?E=7>-96l. sx"hc[y7?N
- TK79|ѰxzjgmhInHog)v~
C;LJqupmW<˗=l+(lCPm-[IHHK(|LQkgª?CEBx}QN";FNUcE\k5EG
+н^Jv<+DkrKCN
w¹*{Ϛ>jhÉW~{|kÿ$a=g1izf҆Mm z`0X*+Gn ?J> [Std>)`zdM+9,Z', į>cu}nmĐN=z8$Rգ3c1MEKY$
5
+]Y<z(:ObNAE5إ,/ -DʰsU2
+bC=(FsU;ˏ(.&@÷?K*ؕ1E<
+|g<%u"
+kCD%ʫpzE]h?*dPg\R
+Dć U$F&i橇Z>^=xܠKHUNyxUqYd*ggmnL%r䰼!@Z"["(͘pfk"v$ρ9&LIQV:WIZk7TT!X52QIe(ZP
+b}LLϰ:.'T/kS->lT5}Tr#e(SG:'WmP  8oVV7S*6⋫-7kI5P|-wSX-g`(TzI(jaZc^w.8g-fV]hl3.yOu2&8EAD|L|Z3ɡ2]ۑ5KqO[شܵ,Մ>k*jsέ	*Ѯ|\A[
+TO=5@'z=]Z(CGEfM8GWP+qNEmF068Z:b7-Ь%{Ch1^tm,R\HTZ#x㮽`Y'}?}iou8KP1㥙夆C Z"8@x
+µ-``Pj}6LlRU\6[CZN"*Y=3CȾ3ڣx~,ceG;,5R>Uw6ԼSAR7|aqu^ځ;V`ۼ<VVHɪE-3t9ɅhG;~Vn<r-˥V?%asR1>:{~۔x9:7N+m1f75dGrzZFݬ(:%P
+9GaxLIrl2}>Mn?KwE/:T@Y_a^O ME^3	O\s
+
_^9$-Q5y'msс
cvV I߇!?I$7ܡ\ód[#mH܁F&8$* pw,意hiḩt-,6 i0I^,`Ś7{~5QR<?OȊc%S(D<Cɓά*rW/<5IT,yP	4M^V˿׏e?1MBOP<qBT}6Z	|.<3pG2qZoݹp|UNbUqkw~m9`LEE@Ka}!,/p7b ]G{O1R1
;čA&u³F ?m	]1ϛGg돾IYƃ#JjaZz "L(Bz~FqieU7m4/u? @H	DBL0}*X"JZ
FbN@FP'HfXDIVTM7Lv\(N,/ʪnڮi^m?~(N,/ʪnڮaBRic0Nnq^~?yd=#?jߴl| `pBXB+JZ
FbNq  $
+") Pitpy|P$HerRhuzdXmvz@H	DBY`./LPNo0p?_ %R\T5Z !A1 )a9dXmvx}~	e\HuӲ]n) &q!=?8Q4ˋquۏs I(ɊiَAIEYM8˺yݟ #($E3,$+e;a'ieU7m/!m)hrYzb33SH`]AMx1A>]5j^FiT\?8E|ӕ_eoH{UĠT&L-3QWnԤuM*
+ۥD+%j;bͮ' Y>
(؟4w]|/JW#Ȥ Zca7B'8:{} N$8oQ|W mOnL)Q^!WCM8}:Nhۑc&4ٝqo_@xމɐ5
Q+t*\]w	C!W^"ywne/R=`*5bJzMwZN	hPQ7޴-␜EgC29*XYKUk&D\4]aw-5&_kD@;I1fͫ{C[ŏY}ExdS9ɇ@~$`KPK}=wvZR
+?Ph{%Zdϙ'biys-KhOü . [4/%0y]|(珫DBˀ(D뺹"cfw8NgPmzdo*Ģj6hni[}iY
+LٱEf9eF8dǣOk@p#B\'Mo=)
uĐEB>:6Qlo6]Z* )
˸kֿ /d?6
Q7Dx'ey:KCaM۽T&ufTx_WD){5PJ7A2wWqo-Cg*te
j^"~4{;fo-W?*wW1{|k.QZ"
+X-J/~۵dp; <W4MS/+Enش0;=N{3!Q)9]=$}޵2KPg(۫PY)k揚f,}eKfh#*3WA+xvfe++,fTr~j)	[Tn*4p]W1ǳ%f5*yW		@Y9~ËɄT5Xٳi_q# ;K(569LFQ /RLEE&RzOEK-Q}Ykv
qsOLcG2hn⪻ :`֥$ǘ7UѬr_JQ!wJ:6m纏h%b4	TM_3\jzFs1g.cbGd?2RY`o;2u%{^r)`+v۳7Fs=CuC{C.=Z8kVYe`Ԯ_YꓣUu@iR|:^y%}.ӀT4O.]qqZ-v.weio:f/1I|FbDXCE?{U-Nx0w6~U~}.xcf!6x>}   WAD<i3״)>|Qķ~XC}<A>6c T;k#7.{7c8T_4X;B*bm#"""*RJ)EDDDD̛?97t3Zkgсhzt&ޯw.YNˋվgH@E!6~brݴz]DDDDDDDfffffffVUUUUUUUi{z6Nd 
\ No newline at end of file
--- a/assets/javascript/core.js
+++ b/assets/javascript/core.js
@@ -36,21 +36,28 @@ phpbb.loadingIndicator = function() {
 
 	if (!$loadingIndicator.is(':visible')) {
 		$loadingIndicator.fadeIn(phpbb.alertTime);
-		// Wait fifteen seconds and display an error if nothing has been returned by then.
+		// Wait 60 seconds and display an error if nothing has been returned by then.
 		phpbb.clearLoadingTimeout();
 		phpbbAlertTimer = setTimeout(function() {
-			var $alert = $('#phpbb_alert');
-
-			if ($loadingIndicator.is(':visible')) {
-				phpbb.alert($alert.attr('data-l-err'), $alert.attr('data-l-timeout-processing-req'));
-			}
-		}, 15000);
+			phpbb.showTimeoutMessage();
+		}, 60000);
 	}
 
 	return $loadingIndicator;
 };
 
 /**
+ * Show timeout message
+ */
+phpbb.showTimeoutMessage = function () {
+	var $alert = $('#phpbb_alert');
+
+	if ($loadingIndicator.is(':visible')) {
+		phpbb.alert($alert.attr('data-l-err'), $alert.attr('data-l-timeout-processing-req'));
+	}
+};
+
+/**
  * Clear loading alert timeout
 */
 phpbb.clearLoadingTimeout = function() {
--- a/common.php
+++ b/common.php
@@ -12,7 +12,7 @@
 */
 
 /**
-* Minimum Requirement: PHP 5.3.9
+* Minimum Requirement: PHP 5.4.0
 */
 
 if (!defined('IN_PHPBB'))
--- a/composer.json
+++ b/composer.json
@@ -33,7 +33,7 @@
 		"marc1706/fast-image-size": "^1.1",
 		"paragonie/random_compat": "^1.4",
 		"patchwork/utf8": "^1.1",
-		"s9e/text-formatter": "~0.8.0",
+		"s9e/text-formatter": "~0.10.0",
 		"symfony/config": "^2.8",
 		"symfony/console": "^2.8",
 		"symfony/debug": "^2.8",
@@ -47,7 +47,7 @@
 		"symfony/routing": "^2.8",
 		"symfony/twig-bridge": "^2.8",
 		"symfony/yaml": "^2.8",
-		"twig/twig": "^1.0,<1.25"
+		"twig/twig": "^1.0"
 	},
 	"require-dev": {
 		"fabpot/goutte": "~2.0",
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,8 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "8d03337c5b9f6ae7cc1a26f84ba0270b",
-    "content-hash": "be4cb6437adc268d96f99bcbaad66d03",
+    "hash": "3b947e5d38012be6ef86609c709c7b4b",
+    "content-hash": "447fa8ed870502dc3089b0a0ffa08ef0",
     "packages": [
         {
             "name": "bantu/ini-get-wrapper",
@@ -279,16 +279,16 @@
         },
         {
             "name": "lusitanian/oauth",
-            "version": "v0.8.9",
+            "version": "v0.8.10",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Lusitanian/PHPoAuthLib.git",
-                "reference": "29bda6e176df6c292a9b1c43ae8a44d56a87c30b"
+                "reference": "09f4af38f17db6938253f4d1b171d537913ac1ed"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/29bda6e176df6c292a9b1c43ae8a44d56a87c30b",
-                "reference": "29bda6e176df6c292a9b1c43ae8a44d56a87c30b",
+                "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/09f4af38f17db6938253f4d1b171d537913ac1ed",
+                "reference": "09f4af38f17db6938253f4d1b171d537913ac1ed",
                 "shasum": ""
             },
             "require": {
@@ -342,20 +342,20 @@
                 "oauth",
                 "security"
             ],
-            "time": "2016-02-24 00:20:18"
+            "time": "2016-07-12 22:15:00"
         },
         {
             "name": "marc1706/fast-image-size",
-            "version": "v1.1.2",
+            "version": "v1.1.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/marc1706/fast-image-size.git",
-                "reference": "8bb644f8f767c5763acd61140045a78d10e1eb06"
+                "reference": "5f7e8377746524e2b8a49a631c1fc9afeb9d8bee"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/marc1706/fast-image-size/zipball/8bb644f8f767c5763acd61140045a78d10e1eb06",
-                "reference": "8bb644f8f767c5763acd61140045a78d10e1eb06",
+                "url": "https://api.github.com/repos/marc1706/fast-image-size/zipball/5f7e8377746524e2b8a49a631c1fc9afeb9d8bee",
+                "reference": "5f7e8377746524e2b8a49a631c1fc9afeb9d8bee",
                 "shasum": ""
             },
             "require": {
@@ -393,7 +393,7 @@
                 "php",
                 "size"
             ],
-            "time": "2016-10-30 19:00:39"
+            "time": "2017-03-26 12:48:28"
         },
         {
             "name": "ocramius/proxy-manager",
@@ -460,16 +460,16 @@
         },
         {
             "name": "paragonie/random_compat",
-            "version": "v1.4.1",
+            "version": "v1.4.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/paragonie/random_compat.git",
-                "reference": "c7e26a21ba357863de030f0b9e701c7d04593774"
+                "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/c7e26a21ba357863de030f0b9e701c7d04593774",
-                "reference": "c7e26a21ba357863de030f0b9e701c7d04593774",
+                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/965cdeb01fdcab7653253aa81d40441d261f1e66",
+                "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66",
                 "shasum": ""
             },
             "require": {
@@ -504,7 +504,7 @@
                 "pseudorandom",
                 "random"
             ],
-            "time": "2016-03-18 20:34:03"
+            "time": "2017-03-13 16:22:52"
         },
         {
             "name": "patchwork/utf8",
@@ -614,27 +614,25 @@
         },
         {
             "name": "react/promise",
-            "version": "v2.4.1",
+            "version": "v2.5.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/reactphp/promise.git",
-                "reference": "8025426794f1944de806618671d4fa476dc7626f"
+                "reference": "62785ae604c8d69725d693eb370e1d67e94c4053"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/reactphp/promise/zipball/8025426794f1944de806618671d4fa476dc7626f",
-                "reference": "8025426794f1944de806618671d4fa476dc7626f",
+                "url": "https://api.github.com/repos/reactphp/promise/zipball/62785ae604c8d69725d693eb370e1d67e94c4053",
+                "reference": "62785ae604c8d69725d693eb370e1d67e94c4053",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.4.0"
             },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0-dev"
-                }
+            "require-dev": {
+                "phpunit/phpunit": "~4.8"
             },
+            "type": "library",
             "autoload": {
                 "psr-4": {
                     "React\\Promise\\": "src/"
@@ -654,20 +652,24 @@
                 }
             ],
             "description": "A lightweight implementation of CommonJS Promises/A for PHP",
-            "time": "2016-05-03 17:50:52"
+            "keywords": [
+                "promise",
+                "promises"
+            ],
+            "time": "2017-03-25 12:08:31"
         },
         {
             "name": "s9e/text-formatter",
-            "version": "0.8.4",
+            "version": "0.10.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/s9e/TextFormatter.git",
-                "reference": "919fd772aae4dd889618da1cb18ae746f2a14bb6"
+                "reference": "9380fd3d3e3289d7e966bab7769ca2aae5d23f67"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/s9e/TextFormatter/zipball/919fd772aae4dd889618da1cb18ae746f2a14bb6",
-                "reference": "919fd772aae4dd889618da1cb18ae746f2a14bb6",
+                "url": "https://api.github.com/repos/s9e/TextFormatter/zipball/9380fd3d3e3289d7e966bab7769ca2aae5d23f67",
+                "reference": "9380fd3d3e3289d7e966bab7769ca2aae5d23f67",
                 "shasum": ""
             },
             "require": {
@@ -676,6 +678,11 @@
                 "lib-pcre": ">=7.2",
                 "php": ">=5.3.3"
             },
+            "require-dev": {
+                "matthiasmullie/minify": "*",
+                "php": ">=5.3.3",
+                "s9e/regexp-builder": ">=1.3.0"
+            },
             "suggest": {
                 "ext-curl": "Improves the performance of the MediaEmbed plugin and some JavaScript minifiers",
                 "ext-intl": "Allows international URLs to be accepted by the URL filter",
@@ -714,26 +721,29 @@
                 "parser",
                 "shortcodes"
             ],
-            "time": "2016-11-22 20:10:24"
+            "time": "2017-07-03 13:55:54"
         },
         {
             "name": "symfony/config",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/config.git",
-                "reference": "1361bc4e66f97b6202ae83f4190e962c624b5e61"
+                "reference": "0b8541d18507d10204a08384640ff6df3c739ebe"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/config/zipball/1361bc4e66f97b6202ae83f4190e962c624b5e61",
-                "reference": "1361bc4e66f97b6202ae83f4190e962c624b5e61",
+                "url": "https://api.github.com/repos/symfony/config/zipball/0b8541d18507d10204a08384640ff6df3c739ebe",
+                "reference": "0b8541d18507d10204a08384640ff6df3c739ebe",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.9",
                 "symfony/filesystem": "~2.3|~3.0.0"
             },
+            "require-dev": {
+                "symfony/yaml": "~2.7|~3.0.0"
+            },
             "suggest": {
                 "symfony/yaml": "To use the yaml reference dumper"
             },
@@ -767,25 +777,25 @@
             ],
             "description": "Symfony Config Component",
             "homepage": "https://symfony.com",
-            "time": "2016-11-03 07:52:58"
+            "time": "2017-04-12 14:07:15"
         },
         {
             "name": "symfony/console",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/console.git",
-                "reference": "a871ba00e0f604dceac64c56c27f99fbeaf4854e"
+                "reference": "efa4d466b67c2fc9bf9419a981e683e1f99fa029"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/console/zipball/a871ba00e0f604dceac64c56c27f99fbeaf4854e",
-                "reference": "a871ba00e0f604dceac64c56c27f99fbeaf4854e",
+                "url": "https://api.github.com/repos/symfony/console/zipball/efa4d466b67c2fc9bf9419a981e683e1f99fa029",
+                "reference": "efa4d466b67c2fc9bf9419a981e683e1f99fa029",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.9",
-                "symfony/debug": "~2.7,>=2.7.2|~3.0.0",
+                "symfony/debug": "^2.7.2|~3.0.0",
                 "symfony/polyfill-mbstring": "~1.0"
             },
             "require-dev": {
@@ -828,20 +838,20 @@
             ],
             "description": "Symfony Console Component",
             "homepage": "https://symfony.com",
-            "time": "2016-11-15 23:02:12"
+            "time": "2017-05-28 14:07:33"
         },
         {
             "name": "symfony/debug",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/debug.git",
-                "reference": "62a68f640456f6761d752c62d81631428ef0d8a1"
+                "reference": "344f50ce827413b3640bfcb1e37386a67d06ea1f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/debug/zipball/62a68f640456f6761d752c62d81631428ef0d8a1",
-                "reference": "62a68f640456f6761d752c62d81631428ef0d8a1",
+                "url": "https://api.github.com/repos/symfony/debug/zipball/344f50ce827413b3640bfcb1e37386a67d06ea1f",
+                "reference": "344f50ce827413b3640bfcb1e37386a67d06ea1f",
                 "shasum": ""
             },
             "require": {
@@ -853,7 +863,7 @@
             },
             "require-dev": {
                 "symfony/class-loader": "~2.2|~3.0.0",
-                "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2|~3.0.0"
+                "symfony/http-kernel": "~2.3.24|~2.5.9|^2.6.2|~3.0.0"
             },
             "type": "library",
             "extra": {
@@ -885,20 +895,20 @@
             ],
             "description": "Symfony Debug Component",
             "homepage": "https://symfony.com",
-            "time": "2016-11-15 12:53:17"
+            "time": "2017-04-19 19:56:30"
         },
         {
             "name": "symfony/dependency-injection",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/dependency-injection.git",
-                "reference": "9d2c5033ca70ceade8d7584f997a9d3943f0fe5f"
+                "reference": "155b770e68150139779295864d6b6cb3172cd821"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/9d2c5033ca70ceade8d7584f997a9d3943f0fe5f",
-                "reference": "9d2c5033ca70ceade8d7584f997a9d3943f0fe5f",
+                "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/155b770e68150139779295864d6b6cb3172cd821",
+                "reference": "155b770e68150139779295864d6b6cb3172cd821",
                 "shasum": ""
             },
             "require": {
@@ -948,20 +958,20 @@
             ],
             "description": "Symfony DependencyInjection Component",
             "homepage": "https://symfony.com",
-            "time": "2016-11-18 21:10:01"
+            "time": "2017-05-25 22:57:22"
         },
         {
             "name": "symfony/event-dispatcher",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/event-dispatcher.git",
-                "reference": "25c576abd4e0f212e678fe8b2bd9a9a98c7ea934"
+                "reference": "7fc8e2b4118ff316550596357325dfd92a51f531"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/25c576abd4e0f212e678fe8b2bd9a9a98c7ea934",
-                "reference": "25c576abd4e0f212e678fe8b2bd9a9a98c7ea934",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7fc8e2b4118ff316550596357325dfd92a51f531",
+                "reference": "7fc8e2b4118ff316550596357325dfd92a51f531",
                 "shasum": ""
             },
             "require": {
@@ -969,7 +979,7 @@
             },
             "require-dev": {
                 "psr/log": "~1.0",
-                "symfony/config": "~2.0,>=2.0.5|~3.0.0",
+                "symfony/config": "^2.0.5|~3.0.0",
                 "symfony/dependency-injection": "~2.6|~3.0.0",
                 "symfony/expression-language": "~2.6|~3.0.0",
                 "symfony/stopwatch": "~2.3|~3.0.0"
@@ -1008,20 +1018,20 @@
             ],
             "description": "Symfony EventDispatcher Component",
             "homepage": "https://symfony.com",
-            "time": "2016-10-13 01:43:15"
+            "time": "2017-04-26 16:56:54"
         },
         {
             "name": "symfony/filesystem",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/filesystem.git",
-                "reference": "a3784111af9f95f102b6411548376e1ae7c93898"
+                "reference": "19c11158da8d110cc5289c063bf2ec4cc1ce9e7c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/filesystem/zipball/a3784111af9f95f102b6411548376e1ae7c93898",
-                "reference": "a3784111af9f95f102b6411548376e1ae7c93898",
+                "url": "https://api.github.com/repos/symfony/filesystem/zipball/19c11158da8d110cc5289c063bf2ec4cc1ce9e7c",
+                "reference": "19c11158da8d110cc5289c063bf2ec4cc1ce9e7c",
                 "shasum": ""
             },
             "require": {
@@ -1057,20 +1067,20 @@
             ],
             "description": "Symfony Filesystem Component",
             "homepage": "https://symfony.com",
-            "time": "2016-10-18 04:28:30"
+            "time": "2017-05-28 14:07:33"
         },
         {
             "name": "symfony/finder",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/finder.git",
-                "reference": "0023b024363dfc0cd21262e556f25a291fe8d7fd"
+                "reference": "b058a6f0cb6ee9b6b727aae03d5a62474a308528"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/finder/zipball/0023b024363dfc0cd21262e556f25a291fe8d7fd",
-                "reference": "0023b024363dfc0cd21262e556f25a291fe8d7fd",
+                "url": "https://api.github.com/repos/symfony/finder/zipball/b058a6f0cb6ee9b6b727aae03d5a62474a308528",
+                "reference": "b058a6f0cb6ee9b6b727aae03d5a62474a308528",
                 "shasum": ""
             },
             "require": {
@@ -1106,20 +1116,20 @@
             ],
             "description": "Symfony Finder Component",
             "homepage": "https://symfony.com",
-            "time": "2016-11-03 07:52:58"
+            "time": "2017-05-25 22:57:22"
         },
         {
             "name": "symfony/http-foundation",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/http-foundation.git",
-                "reference": "4f8c167732bbf3ba4284c0915f57b332091f6b68"
+                "reference": "03bf5ded5a4b54473e7551df5cfab854f7434ed4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/4f8c167732bbf3ba4284c0915f57b332091f6b68",
-                "reference": "4f8c167732bbf3ba4284c0915f57b332091f6b68",
+                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/03bf5ded5a4b54473e7551df5cfab854f7434ed4",
+                "reference": "03bf5ded5a4b54473e7551df5cfab854f7434ed4",
                 "shasum": ""
             },
             "require": {
@@ -1161,27 +1171,27 @@
             ],
             "description": "Symfony HttpFoundation Component",
             "homepage": "https://symfony.com",
-            "time": "2016-11-15 23:02:12"
+            "time": "2017-05-19 11:49:58"
         },
         {
             "name": "symfony/http-kernel",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/http-kernel.git",
-                "reference": "29d9bb59c6d895e65d8fea3859c96c3b6e9368ba"
+                "reference": "ae9dd4cfde4a3efa94475863fc330825715fe549"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/http-kernel/zipball/29d9bb59c6d895e65d8fea3859c96c3b6e9368ba",
-                "reference": "29d9bb59c6d895e65d8fea3859c96c3b6e9368ba",
+                "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ae9dd4cfde4a3efa94475863fc330825715fe549",
+                "reference": "ae9dd4cfde4a3efa94475863fc330825715fe549",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.9",
                 "psr/log": "~1.0",
-                "symfony/debug": "~2.6,>=2.6.2",
-                "symfony/event-dispatcher": "~2.6,>=2.6.7|~3.0.0",
+                "symfony/debug": "^2.6.2",
+                "symfony/event-dispatcher": "^2.6.7|~3.0.0",
                 "symfony/http-foundation": "~2.7.20|~2.8.13|~3.1.6"
             },
             "conflict": {
@@ -1192,16 +1202,16 @@
                 "symfony/class-loader": "~2.1|~3.0.0",
                 "symfony/config": "~2.8",
                 "symfony/console": "~2.3|~3.0.0",
-                "symfony/css-selector": "~2.0,>=2.0.5|~3.0.0",
+                "symfony/css-selector": "^2.0.5|~3.0.0",
                 "symfony/dependency-injection": "~2.8|~3.0.0",
-                "symfony/dom-crawler": "~2.0,>=2.0.5|~3.0.0",
+                "symfony/dom-crawler": "^2.0.5|~3.0.0",
                 "symfony/expression-language": "~2.4|~3.0.0",
-                "symfony/finder": "~2.0,>=2.0.5|~3.0.0",
-                "symfony/process": "~2.0,>=2.0.5|~3.0.0",
+                "symfony/finder": "^2.0.5|~3.0.0",
+                "symfony/process": "^2.0.5|~3.0.0",
                 "symfony/routing": "~2.8|~3.0.0",
                 "symfony/stopwatch": "~2.3|~3.0.0",
                 "symfony/templating": "~2.2|~3.0.0",
-                "symfony/translation": "~2.0,>=2.0.5|~3.0.0",
+                "symfony/translation": "^2.0.5|~3.0.0",
                 "symfony/var-dumper": "~2.6|~3.0.0"
             },
             "suggest": {
@@ -1243,7 +1253,7 @@
             ],
             "description": "Symfony HttpKernel Component",
             "homepage": "https://symfony.com",
-            "time": "2016-11-21 02:24:42"
+            "time": "2017-05-29 19:14:58"
         },
         {
             "name": "symfony/polyfill-mbstring",
@@ -1420,16 +1430,16 @@
         },
         {
             "name": "symfony/proxy-manager-bridge",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/proxy-manager-bridge.git",
-                "reference": "69922100cdfe37bc9c0429cab5bd523e861e562e"
+                "reference": "991c0fcd1d461ee9c7cde7d2c44d1ed7f4cc36ae"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/69922100cdfe37bc9c0429cab5bd523e861e562e",
-                "reference": "69922100cdfe37bc9c0429cab5bd523e861e562e",
+                "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/991c0fcd1d461ee9c7cde7d2c44d1ed7f4cc36ae",
+                "reference": "991c0fcd1d461ee9c7cde7d2c44d1ed7f4cc36ae",
                 "shasum": ""
             },
             "require": {
@@ -1470,20 +1480,20 @@
             ],
             "description": "Symfony ProxyManager Bridge",
             "homepage": "https://symfony.com",
-            "time": "2016-10-03 15:49:46"
+            "time": "2017-04-12 14:07:15"
         },
         {
             "name": "symfony/routing",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/routing.git",
-                "reference": "6cee3ed22c778a7410119a3d51a20f60252a156c"
+                "reference": "a8f328c7e701b7bb05a93fca62a5ab2b6b3e500e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/routing/zipball/6cee3ed22c778a7410119a3d51a20f60252a156c",
-                "reference": "6cee3ed22c778a7410119a3d51a20f60252a156c",
+                "url": "https://api.github.com/repos/symfony/routing/zipball/a8f328c7e701b7bb05a93fca62a5ab2b6b3e500e",
+                "reference": "a8f328c7e701b7bb05a93fca62a5ab2b6b3e500e",
                 "shasum": ""
             },
             "require": {
@@ -1499,7 +1509,7 @@
                 "symfony/config": "~2.7|~3.0.0",
                 "symfony/expression-language": "~2.4|~3.0.0",
                 "symfony/http-foundation": "~2.3|~3.0.0",
-                "symfony/yaml": "~2.0,>=2.0.5|~3.0.0"
+                "symfony/yaml": "^2.0.5|~3.0.0"
             },
             "suggest": {
                 "doctrine/annotations": "For using the annotation loader",
@@ -1545,32 +1555,32 @@
                 "uri",
                 "url"
             ],
-            "time": "2016-08-16 14:56:08"
+            "time": "2017-04-12 14:07:15"
         },
         {
             "name": "symfony/twig-bridge",
-            "version": "v2.8.11",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/twig-bridge.git",
-                "reference": "5e9679f7085e99adb5248e07b4677494b8f884b5"
+                "reference": "362aa855b5819355811b58f8b5f15679196a181e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/5e9679f7085e99adb5248e07b4677494b8f884b5",
-                "reference": "5e9679f7085e99adb5248e07b4677494b8f884b5",
+                "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/362aa855b5819355811b58f8b5f15679196a181e",
+                "reference": "362aa855b5819355811b58f8b5f15679196a181e",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.9",
-                "twig/twig": "~1.23|~2.0"
+                "twig/twig": "~1.28|~2.0"
             },
             "require-dev": {
                 "symfony/asset": "~2.7|~3.0.0",
                 "symfony/console": "~2.8|~3.0.0",
                 "symfony/expression-language": "~2.4|~3.0.0",
                 "symfony/finder": "~2.3|~3.0.0",
-                "symfony/form": "~2.8.4",
+                "symfony/form": "^2.8.19",
                 "symfony/http-kernel": "~2.8|~3.0.0",
                 "symfony/polyfill-intl-icu": "~1.0",
                 "symfony/routing": "~2.2|~3.0.0",
@@ -1580,7 +1590,7 @@
                 "symfony/templating": "~2.1|~3.0.0",
                 "symfony/translation": "~2.7|~3.0.0",
                 "symfony/var-dumper": "~2.7.16|~2.8.9|~3.0.9",
-                "symfony/yaml": "~2.0,>=2.0.5|~3.0.0"
+                "symfony/yaml": "^2.0.5|~3.0.0"
             },
             "suggest": {
                 "symfony/asset": "For using the AssetExtension",
@@ -1626,20 +1636,20 @@
             ],
             "description": "Symfony Twig Bridge",
             "homepage": "https://symfony.com",
-            "time": "2016-09-06 10:55:00"
+            "time": "2017-04-12 14:07:15"
         },
         {
             "name": "symfony/yaml",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/yaml.git",
-                "reference": "befb26a3713c97af90d25dd12e75621ef14d91ff"
+                "reference": "93ccdde79f4b079c7558da4656a3cb1c50c68e02"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/yaml/zipball/befb26a3713c97af90d25dd12e75621ef14d91ff",
-                "reference": "befb26a3713c97af90d25dd12e75621ef14d91ff",
+                "url": "https://api.github.com/repos/symfony/yaml/zipball/93ccdde79f4b079c7558da4656a3cb1c50c68e02",
+                "reference": "93ccdde79f4b079c7558da4656a3cb1c50c68e02",
                 "shasum": ""
             },
             "require": {
@@ -1675,33 +1685,34 @@
             ],
             "description": "Symfony Yaml Component",
             "homepage": "https://symfony.com",
-            "time": "2016-11-14 16:15:57"
+            "time": "2017-05-01 14:31:55"
         },
         {
             "name": "twig/twig",
-            "version": "v1.24.2",
+            "version": "v1.33.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/twigphp/Twig.git",
-                "reference": "33093f6e310e6976baeac7b14f3a6ec02f2d79b7"
+                "reference": "dd6ca96227917e1e85b41c7c3cc6507b411e0927"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/twigphp/Twig/zipball/33093f6e310e6976baeac7b14f3a6ec02f2d79b7",
-                "reference": "33093f6e310e6976baeac7b14f3a6ec02f2d79b7",
+                "url": "https://api.github.com/repos/twigphp/Twig/zipball/dd6ca96227917e1e85b41c7c3cc6507b411e0927",
+                "reference": "dd6ca96227917e1e85b41c7c3cc6507b411e0927",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.2.7"
             },
             "require-dev": {
+                "psr/container": "^1.0",
                 "symfony/debug": "~2.7",
-                "symfony/phpunit-bridge": "~2.7"
+                "symfony/phpunit-bridge": "~3.3@dev"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.24-dev"
+                    "dev-master": "1.33-dev"
                 }
             },
             "autoload": {
@@ -1736,7 +1747,7 @@
             "keywords": [
                 "templating"
             ],
-            "time": "2016-09-01 17:50:53"
+            "time": "2017-04-20 17:39:48"
         },
         {
             "name": "zendframework/zend-code",
@@ -2234,16 +2245,16 @@
         },
         {
             "name": "phpdocumentor/reflection-docblock",
-            "version": "2.0.4",
+            "version": "2.0.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
-                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
+                "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
-                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
+                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
+                "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
                 "shasum": ""
             },
             "require": {
@@ -2279,31 +2290,31 @@
                     "email": "mike.vanriel@naenius.com"
                 }
             ],
-            "time": "2015-02-03 12:10:50"
+            "time": "2016-01-25 08:17:30"
         },
         {
             "name": "phpspec/prophecy",
-            "version": "v1.6.2",
+            "version": "v1.7.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpspec/prophecy.git",
-                "reference": "6c52c2722f8460122f96f86346600e1077ce22cb"
+                "reference": "93d39f1f7f9326d746203c7c056f300f7f126073"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/6c52c2722f8460122f96f86346600e1077ce22cb",
-                "reference": "6c52c2722f8460122f96f86346600e1077ce22cb",
+                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073",
+                "reference": "93d39f1f7f9326d746203c7c056f300f7f126073",
                 "shasum": ""
             },
             "require": {
                 "doctrine/instantiator": "^1.0.2",
                 "php": "^5.3|^7.0",
                 "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
-                "sebastian/comparator": "^1.1",
-                "sebastian/recursion-context": "^1.0|^2.0"
+                "sebastian/comparator": "^1.1|^2.0",
+                "sebastian/recursion-context": "^1.0|^2.0|^3.0"
             },
             "require-dev": {
-                "phpspec/phpspec": "^2.0",
+                "phpspec/phpspec": "^2.5|^3.2",
                 "phpunit/phpunit": "^4.8 || ^5.6.5"
             },
             "type": "library",
@@ -2342,7 +2353,7 @@
                 "spy",
                 "stub"
             ],
-            "time": "2016-11-21 14:58:47"
+            "time": "2017-03-02 20:05:34"
         },
         {
             "name": "phpunit/dbunit",
@@ -2555,25 +2566,30 @@
         },
         {
             "name": "phpunit/php-timer",
-            "version": "1.0.8",
+            "version": "1.0.9",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
+                "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
-                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
+                "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.3"
+                "php": "^5.3.3 || ^7.0"
             },
             "require-dev": {
-                "phpunit/phpunit": "~4|~5"
+                "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
             },
             "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
             "autoload": {
                 "classmap": [
                     "src/"
@@ -2595,20 +2611,20 @@
             "keywords": [
                 "timer"
             ],
-            "time": "2016-05-12 18:03:57"
+            "time": "2017-02-26 11:10:40"
         },
         {
             "name": "phpunit/php-token-stream",
-            "version": "1.4.9",
+            "version": "1.4.11",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-                "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b"
+                "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3b402f65a4cc90abf6e1104e388b896ce209631b",
-                "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7",
+                "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7",
                 "shasum": ""
             },
             "require": {
@@ -2644,20 +2660,20 @@
             "keywords": [
                 "tokenizer"
             ],
-            "time": "2016-11-15 14:06:22"
+            "time": "2017-02-27 10:12:30"
         },
         {
             "name": "phpunit/phpunit",
-            "version": "4.8.31",
+            "version": "4.8.35",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "98b2b39a520766bec663ff5b7ff1b729db9dbfe3"
+                "reference": "791b1a67c25af50e230f841ee7a9c6eba507dc87"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/98b2b39a520766bec663ff5b7ff1b729db9dbfe3",
-                "reference": "98b2b39a520766bec663ff5b7ff1b729db9dbfe3",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/791b1a67c25af50e230f841ee7a9c6eba507dc87",
+                "reference": "791b1a67c25af50e230f841ee7a9c6eba507dc87",
                 "shasum": ""
             },
             "require": {
@@ -2716,7 +2732,7 @@
                 "testing",
                 "xunit"
             ],
-            "time": "2016-12-09 02:45:31"
+            "time": "2017-02-06 05:18:07"
         },
         {
             "name": "phpunit/phpunit-mock-objects",
@@ -2879,16 +2895,16 @@
         },
         {
             "name": "sebastian/comparator",
-            "version": "1.2.2",
+            "version": "1.2.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/comparator.git",
-                "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f"
+                "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a1ed12e8b2409076ab22e3897126211ff8b1f7f",
-                "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f",
+                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
+                "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
                 "shasum": ""
             },
             "require": {
@@ -2939,27 +2955,27 @@
                 "compare",
                 "equality"
             ],
-            "time": "2016-11-19 09:18:40"
+            "time": "2017-01-29 09:50:25"
         },
         {
             "name": "sebastian/diff",
-            "version": "1.4.1",
+            "version": "1.4.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
+                "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
-                "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
+                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
+                "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.3"
+                "php": "^5.3.3 || ^7.0"
             },
             "require-dev": {
-                "phpunit/phpunit": "~4.8"
+                "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
             },
             "type": "library",
             "extra": {
@@ -2991,7 +3007,7 @@
             "keywords": [
                 "diff"
             ],
-            "time": "2015-12-08 07:14:41"
+            "time": "2017-05-22 07:24:03"
         },
         {
             "name": "sebastian/environment",
@@ -3163,16 +3179,16 @@
         },
         {
             "name": "sebastian/recursion-context",
-            "version": "1.0.4",
+            "version": "1.0.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/recursion-context.git",
-                "reference": "938df7a6478e72795e5f8266cff24d06e3136f2e"
+                "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/938df7a6478e72795e5f8266cff24d06e3136f2e",
-                "reference": "938df7a6478e72795e5f8266cff24d06e3136f2e",
+                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
+                "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
                 "shasum": ""
             },
             "require": {
@@ -3212,7 +3228,7 @@
             ],
             "description": "Provides functionality to recursively process PHP variables",
             "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
-            "time": "2016-11-15 06:55:36"
+            "time": "2016-10-03 07:41:43"
         },
         {
             "name": "sebastian/version",
@@ -3251,16 +3267,16 @@
         },
         {
             "name": "squizlabs/php_codesniffer",
-            "version": "2.7.1",
+            "version": "2.9.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
-                "reference": "9b324f3a1132459a7274a0ace2e1b766ba80930f"
+                "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9b324f3a1132459a7274a0ace2e1b766ba80930f",
-                "reference": "9b324f3a1132459a7274a0ace2e1b766ba80930f",
+                "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62",
+                "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62",
                 "shasum": ""
             },
             "require": {
@@ -3325,20 +3341,20 @@
                 "phpcs",
                 "standards"
             ],
-            "time": "2016-11-30 04:02:31"
+            "time": "2017-05-22 02:43:20"
         },
         {
             "name": "symfony/browser-kit",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/browser-kit.git",
-                "reference": "165bf6d1e72cd72f2fe170a070aa2a1f17f2d744"
+                "reference": "4386755566fc8d29bddf89694663b0e96cb01e61"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/browser-kit/zipball/165bf6d1e72cd72f2fe170a070aa2a1f17f2d744",
-                "reference": "165bf6d1e72cd72f2fe170a070aa2a1f17f2d744",
+                "url": "https://api.github.com/repos/symfony/browser-kit/zipball/4386755566fc8d29bddf89694663b0e96cb01e61",
+                "reference": "4386755566fc8d29bddf89694663b0e96cb01e61",
                 "shasum": ""
             },
             "require": {
@@ -3346,8 +3362,8 @@
                 "symfony/dom-crawler": "~2.1|~3.0.0"
             },
             "require-dev": {
-                "symfony/css-selector": "~2.0,>=2.0.5|~3.0.0",
-                "symfony/process": "~2.3.34|~2.7,>=2.7.6|~3.0.0"
+                "symfony/css-selector": "^2.0.5|~3.0.0",
+                "symfony/process": "~2.3.34|^2.7.6|~3.0.0"
             },
             "suggest": {
                 "symfony/process": ""
@@ -3382,20 +3398,20 @@
             ],
             "description": "Symfony BrowserKit Component",
             "homepage": "https://symfony.com",
-            "time": "2016-09-06 10:55:00"
+            "time": "2017-04-12 14:07:15"
         },
         {
             "name": "symfony/css-selector",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/css-selector.git",
-                "reference": "981abbbd6ba49af338a98490cbe29e7f39ca9fa9"
+                "reference": "ba3204654efa779691fac9e948a96b4a7067e4ab"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/css-selector/zipball/981abbbd6ba49af338a98490cbe29e7f39ca9fa9",
-                "reference": "981abbbd6ba49af338a98490cbe29e7f39ca9fa9",
+                "url": "https://api.github.com/repos/symfony/css-selector/zipball/ba3204654efa779691fac9e948a96b4a7067e4ab",
+                "reference": "ba3204654efa779691fac9e948a96b4a7067e4ab",
                 "shasum": ""
             },
             "require": {
@@ -3435,20 +3451,20 @@
             ],
             "description": "Symfony CssSelector Component",
             "homepage": "https://symfony.com",
-            "time": "2016-11-03 07:52:58"
+            "time": "2017-05-01 14:31:55"
         },
         {
             "name": "symfony/dom-crawler",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/dom-crawler.git",
-                "reference": "7f565fe00e580c1edf732234a6d26e9b796bd105"
+                "reference": "b19d01ec41c704497b0bee78bce8bf97619c0649"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/7f565fe00e580c1edf732234a6d26e9b796bd105",
-                "reference": "7f565fe00e580c1edf732234a6d26e9b796bd105",
+                "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b19d01ec41c704497b0bee78bce8bf97619c0649",
+                "reference": "b19d01ec41c704497b0bee78bce8bf97619c0649",
                 "shasum": ""
             },
             "require": {
@@ -3491,20 +3507,20 @@
             ],
             "description": "Symfony DomCrawler Component",
             "homepage": "https://symfony.com",
-            "time": "2016-11-14 16:15:57"
+            "time": "2017-05-25 22:57:22"
         },
         {
             "name": "symfony/process",
-            "version": "v2.8.14",
+            "version": "v2.8.21",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/process.git",
-                "reference": "024de37f8a6b9e5e8244d9eb3fcf3e467dd2a93f"
+                "reference": "d54232f5682fda2f8bbebff7c81b864646867ab9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/process/zipball/024de37f8a6b9e5e8244d9eb3fcf3e467dd2a93f",
-                "reference": "024de37f8a6b9e5e8244d9eb3fcf3e467dd2a93f",
+                "url": "https://api.github.com/repos/symfony/process/zipball/d54232f5682fda2f8bbebff7c81b864646867ab9",
+                "reference": "d54232f5682fda2f8bbebff7c81b864646867ab9",
                 "shasum": ""
             },
             "require": {
@@ -3540,7 +3556,7 @@
             ],
             "description": "Symfony Process Component",
             "homepage": "https://symfony.com",
-            "time": "2016-09-29 14:03:54"
+            "time": "2017-05-08 01:19:21"
         }
     ],
     "aliases": [],
--- a/config/default/container/services_console.yml
+++ b/config/default/container/services_console.yml
@@ -167,6 +167,27 @@ services:
         tags:
             - { name: console.command }
 
+    console.command.fixup.update_hashes:
+        class: phpbb\console\command\fixup\update_hashes
+        arguments:
+            - '@config'
+            - '@user'
+            - '@dbal.conn'
+            - '@passwords.manager'
+            - '@passwords.driver_collection'
+            - '%passwords.algorithms%'
+        tags:
+            - { name: console.command }
+
+    console.command.fixup.fix_left_right_ids:
+        class: phpbb\console\command\fixup\fix_left_right_ids
+        arguments:
+            - '@user'
+            - '@dbal.conn'
+            - '@cache.driver'
+        tags:
+            - { name: console.command }
+
     console.command.reparser.list:
         class: phpbb\console\command\reparser\list_all
         arguments:
--- a/config/default/container/services_cron.yml
+++ b/config/default/container/services_cron.yml
@@ -219,3 +219,17 @@ services:
             - [set_reparser, [text_reparser.user_signature]]
         tags:
             - { name: cron.task }
+
+    cron.task.core.update_hashes:
+        class: phpbb\cron\task\core\update_hashes
+        arguments:
+            - '@config'
+            - '@dbal.conn'
+            - '@passwords.update.lock'
+            - '@passwords.manager'
+            - '@passwords.driver_collection'
+            - '%passwords.algorithms%'
+        calls:
+            - [set_name, [cron.task.core.update_hashes]]
+        tags:
+            - { name: cron.task }
--- a/config/default/container/services_password.yml
+++ b/config/default/container/services_password.yml
@@ -127,3 +127,10 @@ services:
             - '@passwords.driver_helper'
         tags:
             - { name: passwords.driver }
+
+    passwords.update.lock:
+        class: phpbb\lock\db
+        arguments:
+            - update_hashes_lock
+            - '@config'
+            - '@dbal.conn'
--- a/config/default/container/services_twig.yml
+++ b/config/default/container/services_twig.yml
@@ -11,6 +11,7 @@ services:
             - '%core.template.cache_path%'
             - '@ext.manager'
             - '@template.twig.loader'
+            - '@dispatcher'
             - []
         calls:
             - [setLexer, ['@template.twig.lexer']]
--- a/config/installer/container/services.yml
+++ b/config/installer/container/services.yml
@@ -84,6 +84,7 @@ services:
             - '%core.template.cache_path%'
             - null
             - '@template.twig.loader'
+            - null
             - []
         calls:
             - [setLexer, ['@template.twig.lexer']]
--- a/config/installer/container/services_install_data.yml
+++ b/config/installer/container/services_install_data.yml
@@ -29,6 +29,16 @@ services:
         tags:
             - { name: install_data_install, order: 30 }
 
+    installer.install_data.create_search_index:
+        class: phpbb\install\module\install_data\task\create_search_index
+        arguments:
+            - '@config'
+            - '@installer.helper.container_factory'
+            - '%core.root_path%'
+            - '%core.php_ext%'
+        tags:
+            - { name: install_data_install, order: 40 }
+
     installer.module.data_install_collection:
         class: phpbb\di\ordered_service_collection
         arguments:
--- a/docs/CHANGELOG.html
+++ b/docs/CHANGELOG.html
@@ -50,12 +50,14 @@
 <ol>
 	<li><a href="#changelog">Changelog</a>
 	<ul>
+		<li><a href="#v320">Changes since 3.2.0</a></li>
 		<li><a href="#v320rc1">Changes since 3.2.0-RC1</a></li>
 		<li><a href="#v320b2">Changes since 3.2.0-b2</a></li>
 		<li><a href="#v320b1">Changes since 3.2.0-b1</a></li>
 		<li><a href="#v320a2">Changes since 3.2.0-a2</a></li>
 		<li><a href="#v320a1">Changes since 3.2.0-a1</a></li>
 		<li><a href="#v31x">Changes since 3.1.x</a></li>
+		<li><a href="#v3110">Changes since 3.1.10</a></li>
 		<li><a href="#v319">Changes since 3.1.9</a></li>
 		<li><a href="#v318">Changes since 3.1.8</a></li>
 		<li><a href="#v317pl1">Changes since 3.1.7-PL1</a></li>
@@ -124,6 +126,113 @@
 		<div class="inner">
 
 		<div class="content">
+			<a name="v320"></a><h3>Changes since 3.2.0</h3>
+			<h4>Bug</h4>
+			<ul>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-7336">PHPBB3-7336</a>] - Words in new topic title aren't found by search after topic is split</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11076">PHPBB3-11076</a>] - Update notification in ACP for minimum PHP version missing essential information</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11611">PHPBB3-11611</a>] - setup_github_network.php no longer creates a repository</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13250">PHPBB3-13250</a>] - File cache does not write entries starting with _ and containing a slash</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14732">PHPBB3-14732</a>] - Update/remove PHP Code syntax highlighting references</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14790">PHPBB3-14790</a>] - Nested color/list BBCode is not parsed correctly</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14938">PHPBB3-14938</a>] - Inconsistent data results from ext_mgr-&gt;all_available() vs ext_mgr-&gt;is_available()</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14967">PHPBB3-14967</a>] - Cookie Notice</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14971">PHPBB3-14971</a>] - PHP 7.1 warning on pagination</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14975">PHPBB3-14975</a>] - incorrect RTL style appearance </li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14984">PHPBB3-14984</a>] - wrong arrow direction in PM inbox</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14985">PHPBB3-14985</a>] - Plain text is stored as HTML and not decoded before usage</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14989">PHPBB3-14989</a>] - url bbcode does not support irc protocol</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14992">PHPBB3-14992</a>] - User notifications table allowing duplicate entries</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14999">PHPBB3-14999</a>] - Next PM icon pointing in wrong direction</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15002">PHPBB3-15002</a>] - Topic icons not showing in search results</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15003">PHPBB3-15003</a>] - When using mark all, disabled check boxes should not become checked</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15006">PHPBB3-15006</a>] - Permission inheritance with checkbox not working</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15008">PHPBB3-15008</a>] - Disable emoji when smilies are disabled</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15010">PHPBB3-15010</a>] - Crash on user profile custom field</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15011">PHPBB3-15011</a>] - Error not checked on metadata load failure</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15012">PHPBB3-15012</a>] - Invalid constructor in FTP file updater</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15015">PHPBB3-15015</a>] - phpbb 3.2.0 install error in the board-wide emails description...</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15016">PHPBB3-15016</a>] - Smilies that contain some characters cause an exception to be thrown</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15023">PHPBB3-15023</a>] - Undo and properly fix post row paging</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15025">PHPBB3-15025</a>] - Use SSL in version check for extension</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15035">PHPBB3-15035</a>] - Add phpinfo.php to 3.2.x install directory</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15036">PHPBB3-15036</a>] - Failure at board setup in functional tests with install_config present</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15044">PHPBB3-15044</a>] - Installation does not create search index</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15047">PHPBB3-15047</a>] - Error migrating from 3.0.12 to 3.2. MS SQL Server</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15050">PHPBB3-15050</a>] - Updater incorrectly adds files when new file already exists</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15056">PHPBB3-15056</a>] - Mark forums read does not update subforum icons</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15058">PHPBB3-15058</a>] - At new feature release phpBB's CSS files should carry information for cache busting</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15062">PHPBB3-15062</a>] - Update to Rhea version number the CSS files</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15079">PHPBB3-15079</a>] - MySql Error when saving draft with Emoji</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15083">PHPBB3-15083</a>] - emoji's not always size constrained</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15084">PHPBB3-15084</a>] - Wrong order of breadcrumbs in module management</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15090">PHPBB3-15090</a>] - Missing acp_send_statistics -&gt; Upgrading to 3.2.0 fails for phpBBs &lt; 3.0.6-rc1</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15102">PHPBB3-15102</a>] - Missing parameter calling version_check</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15103">PHPBB3-15103</a>] - JPEG dimensions undetectable when JFIF header is missing</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15118">PHPBB3-15118</a>] - HTML error/typo in jumpbox.html </li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15124">PHPBB3-15124</a>] - Navbar icon titles don't get hidden in responsive view</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15126">PHPBB3-15126</a>] - Incorrect links with clever quotes</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15135">PHPBB3-15135</a>] - Undefined $user in metadata manager</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15137">PHPBB3-15137</a>] - Global Announcements shouldn't always be never ending</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15150">PHPBB3-15150</a>] - Yabber SSL/TLS certification</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15152">PHPBB3-15152</a>] - Update Font Awesome</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15158">PHPBB3-15158</a>] - Facebook OAuth login results in fatal error</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15163">PHPBB3-15163</a>] - Braces in smilies &quot;emotion&quot; are not treated as literals</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15173">PHPBB3-15173</a>] - Resizing the posting editor's text area lags</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15180">PHPBB3-15180</a>] - Container broken because of template.twig.environment changes</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15186">PHPBB3-15186</a>] - The force_delete_allowed flag does not affect actual posts deletion ability</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15187">PHPBB3-15187</a>] - ACP Template files not purged during Extension Enable</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15198">PHPBB3-15198</a>] - Fix phpBB and PHP version info displayed in the ACP</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15202">PHPBB3-15202</a>] - Should not be possible to disable available extensions</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15212">PHPBB3-15212</a>] - Code box has double horizontal scrollbars</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15217">PHPBB3-15217</a>] - Allow extension to overwrite user::format_date()</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15221">PHPBB3-15221</a>] - missing commas in language/en/install.php</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15222">PHPBB3-15222</a>] - Typo in generate_text_for_display_test.php</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15243">PHPBB3-15243</a>] - Check permissions before installing with SQLite</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15246">PHPBB3-15246</a>] - Memcache driver incorrectly handles Unix sockets</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15248">PHPBB3-15248</a>] - Event core.modify_posting_auth does not honor its parameters</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15252">PHPBB3-15252</a>] - Wrapping poll title and options text by extra &lt;t&gt; tags if edited a topic by user having no f_poll permission</li>
+			</ul>
+			<h4>Improvement</h4>
+			<ul>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13603">PHPBB3-13603</a>] - New event upon index_body_online_block_after</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14557">PHPBB3-14557</a>] - Simplify updating overloaded events for extensions</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14849">PHPBB3-14849</a>] - Add ACP extension event</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14928">PHPBB3-14928</a>] - Users will not understand the phrase '&quot;%s&quot; is not a valid stability.'</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14973">PHPBB3-14973</a>] - BC break with the rename of db/tools.php</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14974">PHPBB3-14974</a>] - Cookie notice link not configurable but links to english website</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15037">PHPBB3-15037</a>] - Make imageset retina capable</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15068">PHPBB3-15068</a>] - Add ability to retrieve template vars from the template object</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15097">PHPBB3-15097</a>] - Board statistics page should show PHP version</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15123">PHPBB3-15123</a>] - Check if extension was enabled/disabled before enable or disable</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15142">PHPBB3-15142</a>] - Extension Version Check Should Support Branches</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15157">PHPBB3-15157</a>] - Fix lack of proper font support</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15176">PHPBB3-15176</a>] - Add setting for the maximum number of posts a user must have to have his activity shown in profile</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15199">PHPBB3-15199</a>] - Add core event to the function send() in the messenger</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15200">PHPBB3-15200</a>] - Allow extensions using custom templates for help/faq controllers </li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15205">PHPBB3-15205</a>] - Add template events to forumlist_body.html</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15219">PHPBB3-15219</a>] - Add cron to update passwords hashes to bcrypt</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15226">PHPBB3-15226</a>] - Add index for latest topics query in feeds</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15227">PHPBB3-15227</a>] - Remove unused code in startup</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15237">PHPBB3-15237</a>] - Unguarded includes functions_user</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15238">PHPBB3-15238</a>] - Add console command to fix left/right IDs for the forums and modules</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15241">PHPBB3-15241</a>] - Add ACP template event acp_profile_contact_last</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15250">PHPBB3-15250</a>] - Add core event to MCP at the end of merge_posts</li>
+			</ul>
+			<h4>New Feature</h4>
+			<ul>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13730">PHPBB3-13730</a>] - [PHP] - core.delete_post_end</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14498">PHPBB3-14498</a>] - Not possible to deactivate display of &quot;who is online&quot; and birthdays for guests</li>
+			</ul>
+			<h4>Task</h4>
+			<ul>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15040">PHPBB3-15040</a>] - Update s9e\TextFormatter to 0.9.1</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15045">PHPBB3-15045</a>] - Fix missing incorrect constructor for user object in version_test</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15086">PHPBB3-15086</a>] - Replace quote.gif with fontawesome icon</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15125">PHPBB3-15125</a>] - Remove the function play_qt_file in forum_fn.js</li>
+				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15144">PHPBB3-15144</a>] - Bug - MCP Multiple attachments icon display</li>
+			</ul>
+
 			<a name="v320rc1"></a><h3>Changes since 3.2.0-RC1</h3>
 			<h4>Bug</h4>
 			<ul>
@@ -609,6 +718,150 @@
 				<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14265">PHPBB3-14265</a>] - Make all tables available in the container</li>
 			</ul>
 
+	<a name="v3110"></a><h3>Changes since 3.1.10</h3>
+
+	<h4>Bug</h4>
+	<ul>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-7336">PHPBB3-7336</a>] - Words in new topic title aren't found by search after topic is split</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8116">PHPBB3-8116</a>] - Server timeout or browsercrash after viewing postdetails</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8301">PHPBB3-8301</a>] - admin log generate slow queries</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9590">PHPBB3-9590</a>] - Unable to update permissions for more than 6 forums at a time</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11076">PHPBB3-11076</a>] - Update notification in ACP for minimum PHP version missing essential information</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11483">PHPBB3-11483</a>] - Forced Activation needs looking at.</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11611">PHPBB3-11611</a>] - setup_github_network.php no longer creates a repository</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13247">PHPBB3-13247</a>] - Online indicator in post profile hides behind certain avatars</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13250">PHPBB3-13250</a>] - File cache does not write entries starting with _ and containing a slash</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13429">PHPBB3-13429</a>] - Changes tag in docblock of events should be unified</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13558">PHPBB3-13558</a>] -  Error - stream_socket_enable_crypto()</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13757">PHPBB3-13757</a>] - Negative PM count</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14468">PHPBB3-14468</a>] - [php] - 'core.viewforum_modify_topics_data' add parameter forum_id</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14549">PHPBB3-14549</a>] - Correctly redirect back after topic merge in MCP</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14770">PHPBB3-14770</a>] - Plupload: WRONG_FILESIZE is used wrong</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14795">PHPBB3-14795</a>] - Topic merge bug</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14801">PHPBB3-14801</a>] - Search highlight option doesn't always highlight unicode strings</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14802">PHPBB3-14802</a>] - Empty/blank lines should not be additional poll options</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14806">PHPBB3-14806</a>] - Authentication for e-mail is not working</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14819">PHPBB3-14819</a>] - Soft deleted posts visible in topic review</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14821">PHPBB3-14821</a>] - Do not expect parsed HTML in kernel subscriber output</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14830">PHPBB3-14830</a>] - FORM_INVALID error on ACP search and CPF settings</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14831">PHPBB3-14831</a>] - Extension migration file fails</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14838">PHPBB3-14838</a>] - feeds.attachments_base - server 500 error for large attachment tables</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14844">PHPBB3-14844</a>] - BBcodes B and I return &lt;strong&gt; and &lt;em&gt; tags instead of CSS under inherited styles</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14859">PHPBB3-14859</a>] - PM report notifications only sent out to full Global Moderators</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14860">PHPBB3-14860</a>] - Broken link on subscriptions page on mobile devices</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14863">PHPBB3-14863</a>] - &quot;Array&quot; in message title when permanently deleting posts</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14864">PHPBB3-14864</a>] - ACP datefromat text input  still has 30 max length while dateformat field had been expanded to 64</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14876">PHPBB3-14876</a>] - Multibyte message is not displayed properly on exception</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14877">PHPBB3-14877</a>] - CSS error in &quot;.codebox code&quot; definition</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14881">PHPBB3-14881</a>] - Problems using EVENT (overall_footer_content_after)</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14888">PHPBB3-14888</a>] - Missing check for disabled profile field types</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14889">PHPBB3-14889</a>] - Missing method declaration in profile fields type interface</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14890">PHPBB3-14890</a>] - Wrong validation of input field in profile field type string</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14906">PHPBB3-14906</a>] - Duplicated sig key in user_cache_data array</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14923">PHPBB3-14923</a>] - SQL PostgreSQL blocking errors during DB update installation</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14938">PHPBB3-14938</a>] - Inconsistent data results from ext_mgr-&gt;all_available() vs ext_mgr-&gt;is_available()</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14941">PHPBB3-14941</a>] - MySQL Fulltext search index creating still fails on InnoDB</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14943">PHPBB3-14943</a>] - Template loop access gives PHP error</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14953">PHPBB3-14953</a>] - Incorrect &quot;order by&quot; definition in ucp_pm_viewfolder</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14968">PHPBB3-14968</a>] - Version check marks 3.1.10 boards as outdated </li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14997">PHPBB3-14997</a>] - Bad Position for topiclist_row_topic_title_after</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14998">PHPBB3-14998</a>] - ACP Update link is incorrect!</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15003">PHPBB3-15003</a>] - When using mark all, disabled check boxes should not become checked</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15006">PHPBB3-15006</a>] - Permission inheritance with checkbox not working</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15011">PHPBB3-15011</a>] - Error not checked on metadata load failure</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15108">PHPBB3-15108</a>] - Duplicate code in request-&gt;overwrite</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15143">PHPBB3-15143</a>] - version check on branch is broken</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15146">PHPBB3-15146</a>] - Date profile field validation incorrect</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15150">PHPBB3-15150</a>] - Yabber SSL/TLS certification</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15186">PHPBB3-15186</a>] - The force_delete_allowed flag does not affect actual posts deletion ability</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15187">PHPBB3-15187</a>] - ACP Template files not purged during Extension Enable</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15246">PHPBB3-15246</a>] - Memcache driver incorrectly handles Unix sockets</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15248">PHPBB3-15248</a>] - Event core.modify_posting_auth does not honor its parameters</li>
+	</ul>
+	<h4>Improvement</h4>
+	<ul>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9211">PHPBB3-9211</a>] - List subforums-links separately in parent-forums' legend</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12749">PHPBB3-12749</a>] - core.submit_post_end add subject to the event data</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13457">PHPBB3-13457</a>] - New Hooks for ucp_main</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13459">PHPBB3-13459</a>] - New Template-Event in overall_header.html</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13479">PHPBB3-13479</a>] - Add hook for modifying highlighting on viewtopic</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13601">PHPBB3-13601</a>] - New event upon acl_clear_prefetch</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13603">PHPBB3-13603</a>] - New event upon index_body_online_block_after</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13605">PHPBB3-13605</a>] - New event upon ucp_pm_compose_predefined_message</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13608">PHPBB3-13608</a>] - New event upon ucp_restore_permissions</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13609">PHPBB3-13609</a>] - New event upon ucp_switch_permissions</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13845">PHPBB3-13845</a>] - Add event when user changes or delete avatar</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14119">PHPBB3-14119</a>] - [PHP] - (User) unban event request</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14239">PHPBB3-14239</a>] - [PHP] - Add event ucp_remind_modify_select_sql</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14331">PHPBB3-14331</a>] - Add rank calculation or result event access</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14520">PHPBB3-14520</a>] - [Template] - ucp_pm_viewmessage_message_body_after</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14522">PHPBB3-14522</a>] - [Template] - ucp_register_buttons_before</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14524">PHPBB3-14524</a>] - [PHP] - core.ucp_register_requests_after</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14733">PHPBB3-14733</a>] - Support increasing hashing cost factor</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14750">PHPBB3-14750</a>] - Fileupload form should not set invalid attributes for file input</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14758">PHPBB3-14758</a>] - ACP-Parameter &quot;Maximum thumbnail width in pixel&quot; should be &quot;Maximum thumbnail width/heigth in pixel:&quot;</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14759">PHPBB3-14759</a>] - Event core.mcp_main_modify_shadow_sql</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14760">PHPBB3-14760</a>] - Event core.mcp_main_modify_fork_sql</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14786">PHPBB3-14786</a>] - Add mcp_forum_actions_before/after events</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14804">PHPBB3-14804</a>] - Add core event to MCP after merging topics</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14805">PHPBB3-14805</a>] - Allow building package for previous versions on PHP 7</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14808">PHPBB3-14808</a>] - Add template event overall_header_searchbox_after</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14817">PHPBB3-14817</a>] - Add core event on includes/functions_download.php</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14825">PHPBB3-14825</a>] - Add OAuth events</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14827">PHPBB3-14827</a>] - Possibility to add multiple form keys</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14842">PHPBB3-14842</a>] - Avatar size 0 - unlimited</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14847">PHPBB3-14847</a>] - Add php event to add options in ACP Attachments</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14848">PHPBB3-14848</a>] - Add ACP template events after extensions list titles</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14849">PHPBB3-14849</a>] - Add ACP extension event</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14850">PHPBB3-14850</a>] - Add core events for smilies</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14852">PHPBB3-14852</a>] - Add core event to the function build_header()</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14853">PHPBB3-14853</a>] - Add core event to allow modifying PM attachments download auth</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14855">PHPBB3-14855</a>] - Update notifications and PM alert bubbles</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14870">PHPBB3-14870</a>] - Add php events to modify list of PMs</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14872">PHPBB3-14872</a>] - Remove count versus sizeof restriction in coding guidelines</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14874">PHPBB3-14874</a>] - Error on sending a .pak smiley</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14882">PHPBB3-14882</a>] - Add core event to MCP after move posts sync</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14887">PHPBB3-14887</a>] - ACP profile step 1 lang specific event</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14918">PHPBB3-14918</a>] - Provide quick access to extension version metadata</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14940">PHPBB3-14940</a>] - Add ACP template event acp_ext_details_end</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14957">PHPBB3-14957</a>] - Do not cache database config</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14958">PHPBB3-14958</a>] - Twig extension function lang() performs redundant template data copying</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15020">PHPBB3-15020</a>] - Add Events for mcp_topic_postrow_post_subject</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15059">PHPBB3-15059</a>] - Do not wrap content in code box</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15081">PHPBB3-15081</a>] - Add ACP template event acp_ext_details_notice</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15107">PHPBB3-15107</a>] - Add additional vars to event</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15131">PHPBB3-15131</a>] - Add variable to the 'core.mcp_main_modify_fork_sql' event</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15142">PHPBB3-15142</a>] - Extension Version Check Should Support Branches</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15151">PHPBB3-15151</a>] - ACP Cookie settings should contain explanatory text for all fields</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15199">PHPBB3-15199</a>] - Add core event to the function send() in the messenger</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15200">PHPBB3-15200</a>] - Allow extensions using custom templates for help/faq controllers </li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15205">PHPBB3-15205</a>] - Add template events to forumlist_body.html</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15219">PHPBB3-15219</a>] - Add cron to update passwords hashes to bcrypt</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15226">PHPBB3-15226</a>] - Add index for latest topics query in feeds</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15237">PHPBB3-15237</a>] - Unguarded includes functions_user</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15238">PHPBB3-15238</a>] - Add console command to fix left/right IDs for the forums and modules</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15241">PHPBB3-15241</a>] - Add ACP template event acp_profile_contact_last</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15250">PHPBB3-15250</a>] - Add core event to MCP at the end of merge_posts</li>
+	</ul>
+	<h4>New Feature</h4>
+	<ul>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12545">PHPBB3-12545</a>] - new pre-posting event</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13730">PHPBB3-13730</a>] - [PHP] - core.delete_post_end</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14390">PHPBB3-14390</a>] - [prosilver] - ucp_main_front_user_details_after</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14498">PHPBB3-14498</a>] - Not possible to deactivate display of &quot;who is online&quot; and birthdays for guests</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14662">PHPBB3-14662</a>] - [Template] - memberlist_team_username_prepend &amp; append</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14868">PHPBB3-14868</a>] - [Template] - mcp_forum_modify_select_after</li>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14996">PHPBB3-14996</a>] - [event] - Add Event search_results_topictitle_after</li>
+	</ul>
+	<h4>Sub-task</h4>
+	<ul>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13149">PHPBB3-13149</a>] - [Event] - core.phpbb_log_get_topic_auth_sql_before</li>
+	</ul>
+	<h4>Task</h4>
+	<ul>
+		<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15178">PHPBB3-15178</a>] - Update 3.1.x dependencies</li>
+	</ul>
+
 	<a name="v319"></a><h3>Changes since 3.1.9</h3>
 
 	<h4>Bug</h4>
--- a/docs/INSTALL.html
+++ b/docs/INSTALL.html
@@ -265,7 +265,7 @@
 
 <p>If you are currently using a stable release of phpBB, updating to this version is straightforward. You would have downloaded one of four packages and your choice determines what you need to do. <strong>Note</strong>: Before updating, we heavily recommend you do a <em>full backup of your database and existing phpBB files</em>! If you are unsure how to achieve this please ask your hosting provider for advice.</p>
 
-<p><strong>Please make sure you update your phpBB source files too, even if you run the <code>database_update.php</code> file.</strong> If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
+<p><strong>Please make sure you update your phpBB source files too, even if you just run the database updater.</strong> If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
 
 <a name="update_full"></a><h3>4.i. Full package</h3>
 
@@ -285,7 +285,7 @@
 
 	<p>The directory structure has been preserved, enabling you (if you wish) to simply upload the uncompressed contents of the archive to the appropriate location on your server, i.e. simply overwrite the existing files with the new versions. Do not forget that if you have installed any modifications (MODs) these files will overwrite the originals, possibly destroying them in the process. You will need to re-add MODs to any affected file before uploading.</p>
 
-	<p>As for the other update procedures, you should run <code>install/database_update.php</code> after you have finished updating the files. This will update your database schema and increment the version number. If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
+	<p>As for the other update procedures, you should go to <code>/install/app.php/update</code>, select "Update database only" and submit the page after you have finished updating the files. This will update your database schema and increment the version number. If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
 
 <a name="update_patch"></a><h3>4.iii. Patch file</h3>
 
@@ -297,7 +297,7 @@
 
 	<p>If you do get failures, you should look at using the <a href="#update_files">Changed Files</a> package to replace the files which failed to patch. Please note that you will need to manually re-add any MODs to these particular files. Alternatively, if you know how, you can examine the .rej files to determine what failed where and make manual adjustments to the relevant source.</p>
 
-	<p>You should, of course, delete the patch file (or files) after use. As for the other update procedures, you should run <code>install/database_update.php</code> after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number. If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
+	<p>You should, of course, delete the patch file (or files) after use. As for the other update procedures, you should navigate to <code>/install/app.php/update</code>, select "Update database only" and submit the page after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number. If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
 
 <a name="update_auto"></a><h3>4.iv. Automatic update package</h3>
 
@@ -456,9 +456,21 @@
 
 <a name="webserver_configuration"></a><h3>6.ii. Webserver configuration</h3>
 
-	<p>Depending on your web server, you may have to configure your server to deny web access to the <code>cache/</code>, <code>files/</code>, <code>store/</code> and other directories. This is to prevent users from accessing sensitive files.</p>
+	<p>Depending on your web server, you may have to configure your server to deny web access to the <code>cache/</code>, <code>files/</code>, <code>includes</code>, <code>phpbb</code>, <code>store/</code>, and <code>vendor</code> directories. This is to prevent users from accessing sensitive files.</p>
 
-	<p>For <strong>Apache</strong> there are <code>.htaccess</code> files already in place to do this for you. Similarly, for <strong>Windows</strong> based servers using <strong>IIS</strong> there are <code>web.config</code> files already in place to do this for you. For other webservers, you will have to adjust the configuration yourself. Sample files for <strong>nginx</strong> and <strong>lighttpd</strong> to help you get started may be found in <code>docs/</code> directory.</p>
+	<p>
+		For <strong>Apache</strong> there are <code>.htaccess</code> files already in place to do this for the most sensitive files and folders. We do however recommend to completely deny all access to the aforementioned folders and their respective subfolders in your Apache configuration.<br />
+		On Apache 2.4, denying access to the <code>phpbb</code> folder in a phpBB instance located at <code>/var/www/html/</code> would be accomplished by adding the following access rules to the Apache configuration file (typically apache.conf):
+		<pre>
+&lt;Directory /var/www/html/phpbb/*&gt;
+	Require all denied
+&lt;/Directory&gt;
+&lt;Directory /var/www/html/phpbb>
+	Require all denied
+&lt;/Directory&gt;</pre>
+		<br />
+	<p>The same settings can be applied to the other mentioned directories by replacing <code>phpbb</code> by the respective directory name. Please note that there are differences in syntax between Apache version <a href="https://httpd.apache.org/docs/2.2/howto/access.html">2.2</a> and <a href="https://httpd.apache.org/docs/2.4/howto/access.html">2.4</a>.</p>
+	<p>For <strong>Windows</strong> based servers using <strong>IIS</strong> there are <code>web.config</code> files already in place to do this for you. For other webservers, you will have to adjust the configuration yourself. Sample files for <strong>nginx</strong> and <strong>lighttpd</strong> to help you get started may be found in the <code>docs/</code> directory.</p>
 
 		</div>
 
--- a/docs/assets/css/stylesheet.css
+++ b/docs/assets/css/stylesheet.css
@@ -115,6 +115,17 @@ code {
 	padding: 0 4px;
 }
 
+pre {
+	color: #006600;
+	font-weight: normal;
+	font-family: 'Courier New', monospace;
+	border-color: #D1D7DC;
+	border-width: 1px;
+	border-style: solid;
+	background-color: #FAFAFA;
+	padding: 0 4px
+}
+
 #wrap {
 	padding: 0 20px;
 	min-width: 650px;
--- a/docs/events.md
+++ b/docs/events.md
@@ -64,12 +64,30 @@ acp_ext_details_end
 * Since: 3.1.11-RC1
 * Purpose: Add more detailed information on extension after the available information.
 
+acp_ext_details_notice
+===
+* Location: adm/style/acp_ext_details.html
+* Since: 3.1.11-RC1
+* Purpose: Add extension detail notices after version check information.
+
+acp_ext_list_disabled_name_after
+===
+* Location: adm/style/acp_ext_list.html
+* Since: 3.1.11-RC1
+* Purpose: Add content after the name of disabled extensions in the list
+
 acp_ext_list_disabled_title_after
 ===
 * Location: adm/style/acp_ext_list.html
 * Since: 3.1.11-RC1
 * Purpose: Add text after disabled extensions section title.
 
+acp_ext_list_enabled_name_after
+===
+* Location: adm/style/acp_ext_list.html
+* Since: 3.1.11-RC1
+* Purpose: Add content after the name of enabled extensions in the list
+
 acp_ext_list_enabled_title_after
 ===
 * Location: adm/style/acp_ext_list.html
@@ -387,6 +405,13 @@ acp_profile_contact_before
 * Since: 3.1.6-RC1
 * Purpose: Add extra options to custom profile field configuration in the ACP
 
+acp_profile_contact_last
+===
+* Locations:
+    + adm/style/acp_profile.html
+* Since: 3.1.11-RC1
+* Purpose: Add contact specific options to custom profile fields in the ACP
+
 acp_profile_step_one_lang_after
 ===
 * Locations:
@@ -676,6 +701,20 @@ forumlist_body_last_post_title_prepend
 * Since: 3.1.0-a1
 * Purpose: Add content before the post title of the latest post in a forum on the forum list.
 
+forumlist_body_subforum_link_append
+===
+* Locations:
+    + styles/prosilver/template/forumlist_body.html
+* Since: 3.1.11-RC1
+* Purpose: Add content at the end of subforum link item.
+
+forumlist_body_subforum_link_prepend
+===
+* Locations:
+    + styles/prosilver/template/forumlist_body.html
+* Since: 3.1.11-RC1
+* Purpose: Add content at the start of subforum link item.
+
 forumlist_body_subforums_after
 ===
 * Locations:
@@ -697,6 +736,13 @@ forumlist_body_last_row_after
 * Since: 3.1.0-b2
 * Purpose: Add content after the very last row of the forum list.
 
+index_body_birthday_block_before
+===
+* Locations:
+    + styles/prosilver/template/index_body.html
+* Since: 3.1.11-RC1
+* Purpose: Add new statistic blocks before the Birthday block
+
 index_body_block_birthday_append
 ===
 * Locations:
@@ -914,6 +960,20 @@ mcp_topic_postrow_post_details_before
 * Since: 3.1.10-RC1
 * Purpose: Add content before post details in topic moderation
 
+mcp_topic_postrow_post_subject_after
+===
+* Locations:
+    + styles/prosilver/template/mcp_topic.html
+* Since: 3.1.11-RC1
+* Purpose: Add content after post subject in topic moderation
+
+mcp_topic_postrow_post_subject_before
+===
+* Locations:
+    + styles/prosilver/template/mcp_topic.html
+* Since: 3.1.11-RC1
+* Purpose: Add content before post subject in topic moderation
+
 mcp_topic_topic_title_after
 ===
 * Locations:
@@ -1801,6 +1861,13 @@ search_results_topic_before
 * Since: 3.1.0-b4
 * Purpose: Add data before search result topics
 
+search_results_topic_title_after
+===
+* Locations:
+    + styles/prosilver/template/search_results.html
+* Since: 3.1.11-RC1
+* Purpose: Add data after search results topic title
+
 simple_footer_after
 ===
 * Locations:
--- a/docs/lighttpd.sample.conf
+++ b/docs/lighttpd.sample.conf
@@ -37,7 +37,7 @@ $HTTP["host"] == "www.myforums.com" {
 	accesslog.filename		= "/var/log/lighttpd/access-www.myforums.com.log"
 	
 	# Deny access to internal phpbb files.	
-	$HTTP["url"] =~ "^/(config\.php|common\.php|includes|cache|files|store|images/avatars/upload)" {
+	$HTTP["url"] =~ "^/(config\.php|common\.php|cache|files|images/avatars/upload|includes|phpbb|store|vendor)" {
 		url.access-deny = ( "" )
 	}
 
--- a/docs/nginx.sample.conf
+++ b/docs/nginx.sample.conf
@@ -72,7 +72,7 @@ http {
         }
 
         # Deny access to internal phpbb files.
-        location ~ /(config\.php|common\.php|includes|cache|files|store|images/avatars/upload) {
+        location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|phpbb|store|vendor) {
             deny all;
             # deny was ignored before 0.8.40 for connections over IPv6.
             # Use internal directive to prohibit access on older versions.
--- a/download/file.php
+++ b/download/file.php
@@ -272,7 +272,7 @@ else
 	* @var	string	mode				Download mode
 	* @var	bool	thumbnail			Flag indicating if the file is a thumbnail
 	* @since 3.1.6-RC1
-	* @change 3.1.7-RC1	Fixing wrong name of a variable (replacing "extension" by "extensions")
+	* @changed 3.1.7-RC1	Fixing wrong name of a variable (replacing "extension" by "extensions")
 	*/
 	$vars = array(
 		'attach_id',
--- a/ext/phpbb/viglink/acp/viglink_helper.php
+++ b/ext/phpbb/viglink/acp/viglink_helper.php
@@ -15,6 +15,15 @@ namespace phpbb\viglink\acp;
  */
 class viglink_helper
 {
+	/** @var \phpbb\cache\driver\driver_interface $cache */
+	protected $cache;
+
+	/** @var \phpbb\config\config $config */
+	protected $config;
+
+	/** @var \phpbb\file_downloader $file_downloader */
+	protected $file_downloader;
+
 	/** @var \phpbb\language\language $language */
 	protected $language;
 
@@ -30,14 +39,14 @@ class viglink_helper
 	/**
 	 * Constructor
 	 *
-	 * @param \phpbb\cache\service     $cache
-	 * @param \phpbb\config\config     $config
-	 * @param \phpbb\file_downloader   $file_downloader
-	 * @param \phpbb\language\language $language
-	 * @param \phpbb\log\log           $log
-	 * @param \phpbb\user              $user
+	 * @param \phpbb\cache\driver\driver_interface $cache
+	 * @param \phpbb\config\config                 $config
+	 * @param \phpbb\file_downloader               $file_downloader
+	 * @param \phpbb\language\language             $language
+	 * @param \phpbb\log\log                       $log
+	 * @param \phpbb\user                          $user
 	 */
-	public function __construct(\phpbb\cache\service $cache, \phpbb\config\config $config, \phpbb\file_downloader $file_downloader, \phpbb\language\language $language, \phpbb\log\log $log, \phpbb\user $user)
+	public function __construct(\phpbb\cache\driver\driver_interface $cache, \phpbb\config\config $config, \phpbb\file_downloader $file_downloader, \phpbb\language\language $language, \phpbb\log\log $log, \phpbb\user $user)
 	{
 		$this->cache = $cache;
 		$this->config = $config;
--- a/ext/phpbb/viglink/composer.json
+++ b/ext/phpbb/viglink/composer.json
@@ -1,9 +1,9 @@
 {
 	"name": "phpbb/viglink",
 	"type": "phpbb-extension",
-	"description": "VigLink can convert your existing links into links that earn revenue.",
+	"description": "The VigLink extension for phpBB makes it possible to earn revenue, without any change to the user experience, when users post and follow links to commercial sites.",
 	"homepage": "https://www.phpbb.com",
-	"version": "1.0.0",
+	"version": "1.0.2",
 	"keywords": ["phpbb", "extension", "viglink"],
 	"license": "GPL-2.0",
 	"authors": [
--- a/ext/phpbb/viglink/config/services.yml
+++ b/ext/phpbb/viglink/config/services.yml
@@ -27,7 +27,7 @@ services:
     phpbb.viglink.helper:
         class: phpbb\viglink\acp\viglink_helper
         arguments:
-            - '@cache'
+            - '@cache.driver'
             - '@config'
             - '@file_downloader'
             - '@language'
--- a/ext/phpbb/viglink/event/acp_listener.php
+++ b/ext/phpbb/viglink/event/acp_listener.php
@@ -70,7 +70,7 @@ class acp_listener implements EventSubscriberInterface
 	/**
 	 * {@inheritDoc}
 	 */
-	static public function getSubscribedEvents()
+	public static function getSubscribedEvents()
 	{
 		return array(
 			'core.acp_main_notice'				=> 'set_viglink_services',
@@ -96,8 +96,10 @@ class acp_listener implements EventSubscriberInterface
 			$this->helper->log_viglink_error($e->getMessage());
 		}
 
-		if (empty($this->config['viglink_ask_admin']) && $this->user->data['user_type'] == USER_FOUNDER)
+		// Only redirect once every 24 hours
+		if (empty($this->config['viglink_ask_admin']) && $this->user->data['user_type'] == USER_FOUNDER && (time() - intval($this->config['viglink_ask_admin_last']) > 86400))
 		{
+			$this->config->set('viglink_ask_admin_last', time());
 			redirect(append_sid($this->phpbb_root_path . 'adm/index.' . $this->php_ext, 'i=acp_help_phpbb&mode=help_phpbb'));
 		}
 	}
@@ -126,6 +128,7 @@ class acp_listener implements EventSubscriberInterface
 
 		$this->template->assign_vars(array(
 			'S_ENABLE_VIGLINK'				=> !empty($this->config['viglink_enabled']) || !$this->config['help_send_statistics_time'],
+			'S_VIGLINK_ASK_ADMIN'			=> empty($this->config['viglink_ask_admin']) && $this->user->data['user_type'] == USER_FOUNDER,
 			'ACP_VIGLINK_SETTINGS_CHANGE'	=> $this->language->lang('ACP_VIGLINK_SETTINGS_CHANGE', append_sid($this->phpbb_root_path . 'adm/index.' . $this->php_ext, 'i=-phpbb-viglink-acp-viglink_module&mode=settings')),
 		));
 	}
--- a/ext/phpbb/viglink/event/listener.php
+++ b/ext/phpbb/viglink/event/listener.php
@@ -36,9 +36,9 @@ class listener implements EventSubscriberInterface
 	}
 
 	/**
-	* {@inheritDoc}
-	*/
-	static public function getSubscribedEvents()
+	 * {@inheritDoc}
+	 */
+	public static function getSubscribedEvents()
 	{
 		return array(
 			'core.viewtopic_post_row_after'		=> 'display_viglink',
--- a/ext/phpbb/viglink/ext.php
+++ b/ext/phpbb/viglink/ext.php
@@ -44,7 +44,7 @@ class ext extends \phpbb\extension\base
 		if ($old_state === false)
 		{
 			$viglink_helper = new \phpbb\viglink\acp\viglink_helper(
-				$this->container->get('cache'),
+				$this->container->get('cache.driver'),
 				$this->container->get('config'),
 				$this->container->get('file_downloader'),
 				$this->container->get('language'),
--- a/ext/phpbb/viglink/language/en/viglink_module_acp.php
+++ b/ext/phpbb/viglink/language/en/viglink_module_acp.php
@@ -41,6 +41,7 @@ $lang = array_merge($lang, array(
 	'ACP_VIGLINK_SETTINGS'			=> 'VigLink settings',
 	'ACP_VIGLINK_SETTINGS_EXPLAIN'	=> 'VigLink is third-party service that discretely monetises links posted by users of your forum without any change to the user experience. When users click on your outbound links to products or services and buy something, the merchants pay VigLink a commission, of which a share is donated to the phpBB project. By choosing to enable VigLink and donating proceeds to the phpBB project, you are supporting our open source organisation and ensuring our continued financial security.',
 	'ACP_VIGLINK_SETTINGS_CHANGE'	=> 'You can change these settings at any time in the “<a href="%1$s">VigLink settings</a>” panel.',
+	'ACP_VIGLINK_SUPPORT_EXPLAIN'	=> 'You will no longer be redirected to this page once you submit your preferred options below, by clicking the Submit button.',
 	'ACP_VIGLINK_ENABLE'			=> 'Enable VigLink',
 	'ACP_VIGLINK_ENABLE_EXPLAIN'	=> 'Enables use of VigLink services.',
 	'ACP_VIGLINK_EARNINGS'			=> 'Claim your own earnings (optional)',
--- a/ext/phpbb/viglink/migrations/viglink_ask_admin.php
+++ b/ext/phpbb/viglink/migrations/viglink_ask_admin.php
@@ -11,7 +11,7 @@
 namespace phpbb\viglink\migrations;
 
 /**
- * Migration to remove VigLink data
+ * Migration to ask admin about viglink
  */
 class viglink_ask_admin extends \phpbb\db\migration\migration
 {
--- /dev/null
+++ b/ext/phpbb/viglink/migrations/viglink_ask_admin_wait.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ *
+ * VigLink extension for the phpBB Forum Software package.
+ *
+ * @copyright (c) 2014 phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ */
+
+namespace phpbb\viglink\migrations;
+
+/**
+ * Migration to only ask admin once per day
+ */
+class viglink_ask_admin_wait extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array('\phpbb\viglink\migrations\viglink_ask_admin');
+	}
+
+	public function effectively_installed()
+	{
+		return isset($this->config['viglink_ask_admin_last']);
+	}
+
+	public function update_data()
+	{
+		return array(
+			array('if', array(
+				(!$this->config->offsetExists('viglink_ask_admin_last')),
+				array('config.add', array('viglink_ask_admin_last', '0')),
+			)),
+		);
+	}
+}
--- /dev/null
+++ b/ext/phpbb/viglink/styles/all/template/event/acp_help_phpbb_stats_before.html
@@ -0,0 +1,3 @@
+<!-- IF S_VIGLINK_ASK_ADMIN -->
+	<p>{L_ACP_VIGLINK_SUPPORT_EXPLAIN}</p>
+<!-- ENDIF -->
--- a/ext/phpbb/viglink/styles/all/theme/viglink.css
+++ b/ext/phpbb/viglink/styles/all/theme/viglink.css
@@ -9,10 +9,10 @@
 
 .viglink-header {
 	background: url('images/VigLink_logo.png') no-repeat 0 0;
-	padding-left: 142px;
 	padding-bottom: 18px;
+	padding-left: 142px;
 }
 
-.send-stats-tile > h2.viglink-header-h2 {
+.send-stats-tile > .viglink-header-h2 {
 	margin-bottom: 10px;
 }
--- a/images/icons/misc/fire.gif
+++ b/images/icons/misc/fire.gif
@@ -1,3 +1,9 @@
-GIF89a   궰Ӗkϵֆn9ϊջDbht^x0Qѣsu|So|<\l⟧!   ,       'ydJWdAHH+)MČbJ0*.RCFaphah!iHA($H
4$  zF&		
-^#
-'$
 /#! ;
\ No newline at end of file
+GIF89a" "   s<I]oMlQuVyVy\^tqgwc{c{mrs{uszx{y},):'!-*7)2:KEQR_Yރaފ}omzrdbw|yupBKKS\emws{v~jvy}|~فكׁمۋ鬕ۏޔߙᝣ㥬篫㦴䪷殺쿶赿҄ۇސלߘˮӧ                        !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  !  x ,    " "  xjhtjgvbeeM@gwgKr@cNoRbvOfnnCjh?mBjJ\lph£jQGaaBiiJhJG``]LtxvLve?W_jD_HspdY^Fل&A3E-<ɇ-#P9Rd (C
H*D/qrB%;eHBD";cJ谒h 6tQf2<r訒^rhՊ"ɏ.)VE(]
(S_)~9T3ˏ%DǀPӨh,4@Ra 5گsN{΂)%Lp E)?l^DFj\/S`w6/MР!O00aBh\@2 2\@Z"T@BA@8"t1@cD,He1bpHca!wq],ı04
+ ;
\ No newline at end of file
--- a/images/icons/misc/heart.gif
+++ b/images/icons/misc/heart.gif
@@ -1,4 +1,10 @@
-GIF89a   Ҩԇ㧵\v՘l}uHf;[/Qwe~׀!   ,       'b$R"S]PT&6yHSd@G  _"xz	٘f \ȝ<~ ES:'D@,
-,
-
-a;	G'
H
+#
&! ;
\ No newline at end of file
+GIF89a" "   *M+N,N,N-O/Q0R0R1R2T4U5V6W7X8Y9Y:Z<\@_@`CbFeHfJhNkRnRnRoTpWr[vZu[v\w^xa{b|mmnptuvxzqy}z|}~Έւ׃؄шىڈ׎ґݒܔԘԙי֛ߛݛڝ۠ݠޢծتܰ߳䨶䫸Ჾ籾粿׼ڻ                                                                                                                                                                                          !   ,    " "   	H*\ȰC	+&3
+2)دPrJGS "@VX]BB
<isͭ ʧK>Mq0t37X#E"4ɚ6VZ a֝> @
.[ZZD@+W Ee  Ƨ]	Oy:` C">ؐHV'.ջJթBMHm1"C` QG ) Lv#x H	52̤K B0$ >sDM7!. H 0 5~ @g  	gJ~Q p@jfm2_u^0 @ j@T
+	  -vo6 @)#	D6AAx" }=:H! 0C'- @Ö,6b"+ P-|D	 `Ċx $ǔ n& `0	BI . DA,	J.:{P`JCRQ  (pҧ$ @TP)pȆ 8@ <$P-vr 
<
 p v"@ABP.2DG,P( PBG}G%#PPR7 !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/images/icons/misc/radioactive.gif
+++ b/images/icons/misc/radioactive.gif
@@ -1,3 +1,15 @@
-GIF89a   t<qkWʀc\ԭդςR!   ,       '~8S	8)Dx@)zKg)`HqP< M%<8Cp4		Ky^WLjSW\
-ICQ"4O
-- 
6*-#ɂ*-! ;
\ No newline at end of file
+GIF89a" "  mnoopp q!r"r#s$t%t'v+x2|3~4}4~5~6~656789:<<@=>ADEMNNPR[U^cektysr}ҁӅЇ҂֋ӌԍԅ؆ؒ֗אْٓؓڔؔٔڗޚؘޞܤקؤ۠ܫڬ۩ܫܪݨެܭݯܰ޴ݭ                                                                                                                                                                                                                                       !   ,    " "   g	HzS+YX3SЉgG
+XHN,:0\% bʜ 	8T
+TLflO*/$ĬPR }N  P>itҤH ǩ>	@PDekEl S*  Rqr!CO Q)gA9e0
+&6ѥ$D/	9LXҪ f@C PA"A:F PU[,q}4Af3t @O`qUL C8O"% Ĳ8k ^ws@H4 1@u 
C@- P@  yUͤJ BJ%p
p^$ ta*{͔hR'v ,F"$ydAD@4hC8`VbYO8br)Wj"9d8bs&V p {)H1ȠyX\Zciȡ@v)'A"|vj 
+
+x"D1Ъ{G,)\
+@w
l"($;\q4f]*J,8+\j`Fbu5
+dYVZl5JbZ-f^zWBQMUU2XeO>%QF!qMKQ,oxH$q:PCE4QE1s@ !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/images/icons/misc/star.gif
+++ b/images/icons/misc/star.gif
@@ -1,3 +1,11 @@
-GIF89a   vسiޫƞGBٸ䂫YRד\!   ,       '@() ҙ T/i4
- @z:$Iv C,*xH4p8']XX  2$2
-9;)yzq((t# "(#"! ;
\ No newline at end of file
+GIF89a" "   mnooppq q"r"s+x,y/{4}5}5~5789MKNNOSWZSbfggfhhiijkopqqrrsluwwxyzz{|ՇҎԌڑ֓אٖؔؕڗޛߨ۫                                                                                                                                                                                                                                                                                                      !   ,    " "   =	HdsRqCNċ*P`  @E5 GGQ$L*dM"0TD͟7 C4JOYB*@#I "C@VZI$PP!hӢR`@@)D$j@_ %߿4	r6jИ1#\@qт
+)6pI+H$I ag<wY  +Q;5lكkͤDx:l¶q;qp#9~]9'O>ѫ{Ф rm{a  sPRE { ET&   &%( @C}( 
+pb	F^ ǑqIH]zbx;  $  0  <
+ F8vt#@M"HO>, 1"H,dQa_!0&aE~ Dn@қq4g$ Blbb\zP%] &"H,B_,{*pFp S@ !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/images/icons/misc/thinking.gif
+++ b/images/icons/misc/thinking.gif
@@ -1 +1,10 @@
-GIF89a   X|Թf׼tҶ܌ޝۮvp!   ,       'RSmWeLRP$H Ӗ(&ix8	g2g@$v'z;BB":4F<탶8;w|K	 @OC.A."  	"
|J.LA. "L-<! ;
\ No newline at end of file
+GIF89a" "   ZDZFgN^T;_T;^T=_U=]WK^XL^YN`ZOndMmeQnfVohV|r\ddeeefrndqmgrog|{x|{y^mbw j<qN|[ϒ ݞ ܧ.#,5>_epV߸g޼wGQZblwu~̏ևՏؑڙ                                                         !  m ,    " "  mB  BA  A00A0#gAAgicaacieQIIQekU!$$!UkmkS"&"S8'Tئ*"JnhXGpJs$(SLqD!#vC͛8s0FWGmP*LH*]JAVCJXjZ
QyhӪ]kcRS$ƍxQD
'*pLp* Ǎe0
+;2kޜmXQ0CӦg$!+=<p={W؀&4B߿ К#.^(aIqC`8
+z4`I"?	cq$H !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/images/icons/smile/alert.gif
+++ b/images/icons/smile/alert.gif
@@ -1,3 +1,8 @@
-GIF89a   t8e@nSɌXb\̱昺ol!   ,       'C
c^u0-	y-ʌg1A
-An	cH0ECX<
-Q ǆQq,G`h<OAh
k"p~hbU! ;
\ No newline at end of file
+GIF89a" " l mnnoppq q%t%u&u'v/{1|:TZ[[iipqqrsttvppstvwwwxyҎ֐ؘ֖٭ް                                                         !  m ,    " "  m4l4DMMDH HD] H$  ^-^ ` $D<`;ę!a`_Ƴ?_:̹ļ"bZ@Z9ৼ#cVSXֺꄌ,85'uC4
*QFcĉU0.IIT/f^nر+[dL5j*y(L2Dc[ħ_(1ItD	4Z2#RTvu =Fc-#fKS]Cw	0iv+&?yabBAT'~dAvh'.JncD ȓ+W У6|Mسk^A2ְOpƾ@ !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/images/icons/smile/info.gif
+++ b/images/icons/smile/info.gif
@@ -1 +1,15 @@
-GIF89a   /ruW냮ӗVcͺ㊱㚿ޞ{!   ,       '~,2(x^AA+H`@ m!X<S3j3c2BPC(JzhSh4  j u^l
thQl4*	t#E?>N-	*-#*#! ;
\ No newline at end of file
+GIF89a" " | mnoo!r"r'v3~4}5~5678<@@ADEUttuyr}҂҅Ї҂ֈԌՅ؆ْؐڗޚٝڝڞژޤקثڬ۪ݪެܭݭ߱         !  } ,    " "  }iEGRv||vRGEi}QF{A!!A{FRuCv* *vBu}Sc;
+4IZN?2	
+;cSOq" 5kkjgedba^\1 "qOSq #lnm][W qφuƈ P 7q^,. 1&W!;!`B5M@ coC+-!P;HP.<Y )``'+U< Ƞ4{`3 Xp
+
+ XSy䃉/dPQ @" Aܤ
+54T
+ B$~ac*KV  d+O'z; f5b5bm	 |r}+pč#t:o_̓m}*_1veC.-0C,۸C_}`Us퇞^gVC5G~TRQe /sP
Ff/@VJ+@gNE4QEÎ;Fb?D3M5$>P8s&0LX8+2˗1Ed	"
+)E,#LR	x !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/images/icons/smile/mrgreen.gif
+++ b/images/icons/smile/mrgreen.gif
@@ -1,5 +1,16 @@
-GIF89a   S7VCdQ\iLo2t[}}rjkX|byorj`BSN9[ZDLL2HC/C=*NV5mwYL_-]H*@4#TB)   !   ,       '="ȥL?/C' aHP"#L#·Gs$fw  st
-  js "
-
-#w C-
- 7,#*,! ;
\ No newline at end of file
+GIF89a" "   	
+	
+#"%))#79$=)*(&(%<=<B7&B8'D<*%A&H-L&D!(F"'M ,K%.M(1O*)Q!,Z#0U 2Q*2b%1b(7j,=}/>c2>t2M]-ML3JE2QN:QK4O]3NU8PS2P\6ZS9P_8YU;Kb,Ly.Nd1Kj2P`9Un>Kq5P|0HIH_[H^\@VVVZ[Ya\@a^K]}D`aEakEgiPmlYegQnqUquYoootsay|eL/L1D7M4K:Q2S3U>L;M7U5U7T8T:N>U=U?X@VE[CXGaGeJgKnPqRwVyVUA\KVEXG[J_M`NfSwWfShUlXy]bOdQjUkWnY~[r]vZt^v`v`{d~f_`jcnoruy{t}½                                                                                                                                                                                                                                                         !   ,    " "   [	Hp*R4eDJUfrbESď/	QIR5B$hK zH(U.BDH2KVH)=J>Z2Y4RRK9y ?|輑q6MFh?}ȉPk<iA3q"*q`QSV(s@B2p
+
+ $EKM`g  9r0fIq3!Ŝn˙e7on"(eP۶\#ۢb%
+Gt ?Wz0dXxq!%֠o."P(iB	"p(B!x0xLЁ؁qC(u 0@%<(=9 AbBb@ @ʔSB!%T
+ 
+@cI}B\ZZrY	`(yr5@)XfT2`@c+ y%|NY`Q@
+	(&+A	`tqAQ\aiB\ E?<A(=X(ZA]аA0LxRY	 XtE		%lnJkCi1>ķDĶDD \PRTtEwAJa	/La0S0v ExRJ*tR C2t4   Yd,%P0HD$tA
-T݂ԉ&00d !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/images/icons/smile/question.gif
+++ b/images/icons/smile/question.gif
@@ -1,2 +1,14 @@
-GIF89a   tWcߺZz޼ڙTdȜߞJ!   ,       '~N "9pxޡ ,AkHH aaL"QxFsXD8ph@YLu4b4m	]nmj	QJZ	
xmN# ?>
-
-6*-#	Ń*#! ;
\ No newline at end of file
+GIF89a" "  mnnoo q!r"r'v,x-y.y.z3~4}5~56788<@@ADETZU]cehmtstuuxyr}҂҅Ї҃Ԃֈԋ֌Ռօ؆ؔ֐ْڕٗޚٟژޤקثڬ۪ݪެܭݱ߳ު                                                                                                                                                                                                                                                                  !   ,    " "   U	HZ2FϨTFAcRA%FDPC3z0Ef bʜǨ1TV4a3#)Ąw<  L.MD` ;	xR` L4e}GDq1 
+OO
rd*8@(H 6,HK W>%ޤC̘
+'Ȁ X3gR9%9=3}Z   4݉dtAfn, qf%T0bD]E@O>@ 4@eQ0 (/EZq2E{n8 fF
 p
+ZU!2!q o @
hG P1!sɥa#GȴŇo @)2J bnqe^ p f@
+ Th.pto 8	q@^)Ў=Ni%h$ 	FLeIgLph#B(a.W("ݗ~,
+
+CxA)*Ƞ@߅iVu""|r\rt*$dBf]wf!S'q9gQ$JPB&J؜t"ZfŖ[p]y_TU]%_5VYgaēO@	EQHe˔S:LT(dlSFH"dyllB
=D !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/images/icons/smile/redface.gif
+++ b/images/icons/smile/redface.gif
@@ -1,12 +1,18 @@
-GIF89a    (Իտ!,:Bε-Z!˥PƘ{
F3T)!|ּNr3qҷ>,4γRӲzJ0hlJ:Ů_Ӱ`fߣcҭ)?㞄ΩRݦ1נx3|ť_E~ߠ)[ѠBќXҡ)Ң?(RZڑpՔVݔBHXq׌TΒ&R:ω:8)ހfׄJӈ1xFqqTVG{C$o6oXqVff4wG|2f3gJVUi6DDJ:                                                                                                                                                                                                                                                                                                                                                                                                !NETSCAPE2.0   !	  ,        	4@.]b0.mrM
D-P\M	? R]TIӏ6۠X駧J$w^)g%n$JKw0aEWqTV񒔀ίURbG
mN
oˆw ٻċ1͝63L`#	 !	  ,        	4@.]b0+o M
!*i? RVnTI.ɰҏO>3ϟ)(M? "	?~TٺՉDbuµR* ; YVk3m*xS׉nY}.o`rN$ !  ,        	H`++\HA2OrxBƊJ,T@F (S1a"$9NG@J3e
;He11:i,]lPU,thuЪWn4GOP@R?0u?1];7+۶x,dnO`T`Θ,Y4@` !  ,        	8"I
-,L0IP`0РA8
-(H<RX"2
V,hD2=Y$\4FHN!Do2Pi.vtRNC=Y4٥a_ pA8"qxEē
-S8.e!B2  !  ,        	&҃\xP 0`ƚ(I؃@.V
-d  	:9Hc(E$7
 *)#*.8* 5H II"p
-p26pఁ
-X#Ě()&P@ !  ,         !  ,        	8"I&,$(e(PL
-
DH
-(DSXĊ2
V
-tqD2]Y$^4FNӡ+n*]ԩ(e@4"DUٲhL'.Q$qDi&$T0  !  ,        	
-T̓9P $TQd$TX$9F20JW<RVdTyD +9*t
*HѢGRr,J4$PYu؊&!5X=BE<RTbgL1hLȀ !  ,        	4 P.]bA6WҦAQD(iئƁL\eIfl@$#c\1i7FZ%LhѢiӢmt@S5^IuU@^FW)M٤Vx
-K3isѦ,_ !	  ,       t 	ȊD0-v@Ⱒ@-Z܈GjXΛLK{LL>u&9|Yǧ;;y#pf -R=O+Dn\D`@ ;
\ No newline at end of file
+GIF89a     <F̎ؤy(*U+nZPkndQ)zxǓfTWVWzjrc3rWHz"Vhf窔ǮƐ3?>>kge"ZYŜ(rV9VL9s-g8E<,LB	x)bqD,h?1JG	f;l~wąS=-	&
w'<o/o?>Un|p:Pr9担0c+:AnhEd5qnwtߦ+	NA
`^_8?qm(Tں,   !NETSCAPE2.0   !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop CC 2017 (Macintosh)" xmpMM:InstanceID="xmp.iid:F1A29C79DA9F11E6BAC6E7B2CFBE6F6F" xmpMM:DocumentID="xmp.did:F1A29C7ADA9F11E6BAC6E7B2CFBE6F6F"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:F1A29C77DA9F11E6BAC6E7B2CFBE6F6F" stRef:documentID="xmp.did:F1A29C78DA9F11E6BAC6E7B2CFBE6F6F"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  !	  ,         5))57!!73K..MM,35!vm!GǺ\ƹGKg 0,\!7}e~e}t!3ajV$Q%z$XDCTh@M	2K}`X  <²%<j	6ARnP4`>@9G
7$OBgT
Rpps`îPA
+)ISpË;+A-[ ,˷#G+թÈ)Rەl?Lw"NYVGC`SdRjA#)\yqP`Լ)H";ո-
+!;]}?44`aHACڦM(M{Y0Γ٤Zج?T*J,b	&T'%("<R !	  ,         5))57!HH6!736L<Ls35!i2ĺ<HźèL@:::@>s!U7}e~e}tѼ3iUUj+	=%I
+XGLQh
}HxG]>g7mx I(xS%i;<}rҝz7Mw8wg4`XP)9)IPおhC"A,Y5ȝKW.mg*Dn7.50Ԙ7nTK,xs_7G:4 2lf @p'CjA9YC593w8iVd&ͪ95S"5w|tCƜMsd|RKТF"߿? !  ,         5))57 T``6 736(ffS(635 hSS^2`ƩHлSˉŨ(?]"?6 q}e~e}N23Y7	=I 
+L#
&(4,}$.E*
+x I(xE I;<}r]K7 ͝:{YoTS*1BllR%5	^۷p~1fТz&3TL3
6tPGĉuEKL@>/\j,4Ҧ| SVAK1N8/yMӉK$ &s"^н,ءaH7'L%Z2puJL,K7d@ĆOe
ZQ$  !  ,     44T1|oo 44|T1ą(|o?61Ͻ|ͺJ؄ ߰4鏇#
+
+XNT$* HT.XnL$V,im7G4`6I2f*O_N$YK"S:-I!"ڪASL=WCy !  ,     ;[[;'
'Tn9
n[
[O9'&##&V9nddT1'p#ׅ#
 ;[b,HpW"Ç)"sB(bI qÎ%	$C-^Nh	r Ljlv$(]
+4Mi2Ix-
^u]aSI*	XKv#
:Z  !  ,     OOTVAAWVzWzWW;

C;
CWÅ?CɃфكTO߾BBFppFY&_ܮA(PCmdeBD?ħ&]8KT̘87
+DJPVʤ͔'AD3GJ9:eKO<EsDj[5x
 !  ,     ހ;'
+
+(6w|o|4OJ"?T
+II=(YJʚ](ё؄ڟ2|4#_줝<'cEC#-EH7BTxjbL$IKA `ُ*4KJ̜zz%6:BG
+
 !  ,     26ccs26(DDQshSSk`fc`__("]]U/Q_hY=%I%L6ю@YQUw	0G[8.2j<0itZN )EbϤ7e\)(̟;3󂞠9?EJtݠ5:^Zt
!R1ؚ2jd@Y#R*ڱmX#Ք9XjxuNE !  ,     !!,MM,!v.mGKg 0,!7taj+%ڃ+KjΌgK ,*~΂Ç#:<b.r1VEeB1GEI̚+`Tf͒&+ԉkPUHA
+nP\
+cq ճtj
+/=rMJA:iD !	  ,     882ll$rE8u\\$r8!MM.,0GG.XEǗGό70֌ދ{E M8 DOPcNm)Z8as1-OC	4brí۟^my9&ORL*$Ki&HV&ȧXT6ZN*{HBºTذ֝$D ;
\ No newline at end of file
--- a/includes/acp/acp_board.php
+++ b/includes/acp/acp_board.php
@@ -26,7 +26,7 @@ if (!defined('IN_PHPBB'))
 class acp_board
 {
 	var $u_action;
-	var $new_config = array();
+	var $new_config;
 
 	function main($id, $mode)
 	{
@@ -196,6 +196,7 @@ class acp_board
 						'allow_post_flash'		=> array('lang' => 'ALLOW_POST_FLASH',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
 						'allow_smilies'			=> array('lang' => 'ALLOW_SMILIES',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false),
 						'allow_post_links'		=> array('lang' => 'ALLOW_POST_LINKS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
+						'allowed_schemes_links'	=> array('lang' => 'ALLOWED_SCHEMES_LINKS',	'validate' => 'string',	'type' => 'text:0:255', 'explain' => true),
 						'allow_nocensors'		=> array('lang' => 'ALLOW_NO_CENSORS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
 						'allow_bookmarks'		=> array('lang' => 'ALLOW_BOOKMARKS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
 						'enable_post_confirm'	=> array('lang' => 'VISUAL_CONFIRM_POST',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
@@ -319,10 +320,10 @@ class acp_board
 					'title'	=> 'ACP_COOKIE_SETTINGS',
 					'vars'	=> array(
 						'legend1'		=> 'ACP_COOKIE_SETTINGS',
-						'cookie_domain'	=> array('lang' => 'COOKIE_DOMAIN',	'validate' => 'string',	'type' => 'text::255', 'explain' => false),
-						'cookie_name'	=> array('lang' => 'COOKIE_NAME',	'validate' => 'string',	'type' => 'text::16', 'explain' => false),
-						'cookie_path'	=> array('lang'	=> 'COOKIE_PATH',	'validate' => 'string',	'type' => 'text::255', 'explain' => false),
-						'cookie_secure'	=> array('lang' => 'COOKIE_SECURE',	'validate' => 'bool',	'type' => 'radio:disabled_enabled', 'explain' => true),
+						'cookie_domain'	=> array('lang' => 'COOKIE_DOMAIN',	'validate' => 'string',	'type' => 'text::255', 'explain' => true),
+						'cookie_name'	=> array('lang' => 'COOKIE_NAME',	'validate' => 'string',	'type' => 'text::16', 'explain' => true),
+						'cookie_path'	=> array('lang'	=> 'COOKIE_PATH',	'validate' => 'string',	'type' => 'text::255', 'explain' => true),
+						'cookie_secure'	=> array('lang' => 'COOKIE_SECURE',	'validate' => 'bool',	'type' => 'radio:enabled_disabled', 'explain' => true),
 						'cookie_notice'	=> array('lang' => 'COOKIE_NOTICE',	'validate' => 'bool',	'type' => 'radio:enabled_disabled', 'explain' => true),
 					)
 				);
@@ -352,6 +353,7 @@ class acp_board
 						'load_moderators'		=> array('lang' => 'YES_MODERATORS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false),
 						'load_jumpbox'			=> array('lang' => 'YES_JUMPBOX',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false),
 						'load_user_activity'	=> array('lang' => 'LOAD_USER_ACTIVITY',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
+						'load_user_activity_limit'		=> array('lang' => 'LOAD_USER_ACTIVITY_LIMIT',		'validate' => 'int:0:99999999',	'type' => 'number:0:99999999', 'explain' => true),
 						'load_tplcompile'		=> array('lang' => 'RECOMPILE_STYLES',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
 						'allow_cdn'				=> array('lang' => 'ALLOW_CDN',				'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
 						'allow_live_searches'	=> array('lang' => 'ALLOW_LIVE_SEARCHES',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
@@ -458,6 +460,9 @@ class acp_board
 						'smtp_auth_method'		=> array('lang' => 'SMTP_AUTH_METHOD',		'validate' => 'string',	'type' => 'select', 'method' => 'mail_auth_select', 'explain' => true),
 						'smtp_username'			=> array('lang' => 'SMTP_USERNAME',			'validate' => 'string',	'type' => 'text:25:255', 'explain' => true),
 						'smtp_password'			=> array('lang' => 'SMTP_PASSWORD',			'validate' => 'string',	'type' => 'password:25:255', 'explain' => true),
+						'smtp_verify_peer'		=> array('lang' => 'SMTP_VERIFY_PEER',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
+						'smtp_verify_peer_name'	=> array('lang' => 'SMTP_VERIFY_PEER_NAME',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
+						'smtp_allow_self_signed'=> array('lang' => 'SMTP_ALLOW_SELF_SIGNED','validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),
 
 						'legend3'					=> 'ACP_SUBMIT_CHANGES',
 					)
@@ -486,7 +491,7 @@ class acp_board
 			$user->add_lang($display_vars['lang']);
 		}
 
-		$this->new_config = $config;
+		$this->new_config = clone $config;
 		$cfg_array = (isset($_REQUEST['config'])) ? $request->variable('config', array('' => ''), true) : $this->new_config;
 		$error = array();
 
@@ -552,6 +557,12 @@ class acp_board
 			}
 		}
 
+		// Invalidate the text_formatter cache when posting options are changed
+		if ($mode == 'post' && $submit)
+		{
+			$phpbb_container->get('text_formatter.cache')->invalidate();
+		}
+
 		// Store news and exclude ids
 		if ($mode == 'feed' && $submit)
 		{
--- a/includes/acp/acp_extensions.php
+++ b/includes/acp/acp_extensions.php
@@ -25,71 +25,79 @@ if (!defined('IN_PHPBB'))
 class acp_extensions
 {
 	var $u_action;
+	var $tpl_name;
+	var $page_title;
 
-	private $db;
 	private $config;
 	private $template;
 	private $user;
-	private $cache;
 	private $log;
 	private $request;
+	private $phpbb_dispatcher;
+	private $ext_manager;
 
 	function main()
 	{
 		// Start the page
-		global $config, $user, $template, $request, $phpbb_extension_manager, $db, $phpbb_root_path, $phpbb_log, $cache, $phpbb_dispatcher;
+		global $config, $user, $template, $request, $phpbb_extension_manager, $phpbb_root_path, $phpbb_log, $phpbb_dispatcher;
 
-		$this->db = $db;
 		$this->config = $config;
 		$this->template = $template;
 		$this->user = $user;
-		$this->cache = $cache;
 		$this->request = $request;
 		$this->log = $phpbb_log;
 		$this->phpbb_dispatcher = $phpbb_dispatcher;
+		$this->ext_manager = $phpbb_extension_manager;
 
-		$user->add_lang(array('install', 'acp/extensions', 'migrator'));
+		$this->user->add_lang(array('install', 'acp/extensions', 'migrator'));
 
 		$this->page_title = 'ACP_EXTENSIONS';
 
-		$action = $request->variable('action', 'list');
-		$ext_name = $request->variable('ext_name', '');
+		$action = $this->request->variable('action', 'list');
+		$ext_name = $this->request->variable('ext_name', '');
 
 		// What is a safe limit of execution time? Half the max execution time should be safe.
 		$safe_time_limit = (ini_get('max_execution_time') / 2);
 		$start_time = time();
 
+		// Cancel action
+		if ($this->request->is_set_post('cancel'))
+		{
+			$action = 'list';
+			$ext_name = '';
+		}
+
+		if (in_array($action, array('enable', 'disable', 'delete_data')) && !check_link_hash($this->request->variable('hash', ''), $action . '.' . $ext_name))
+		{
+			trigger_error('FORM_INVALID', E_USER_WARNING);
+		}
+
 		/**
 		* Event to run a specific action on extension
 		*
-		* @event core.acp_extensions_run_action
-		* @var	string	action			Action to run
+		* @event core.acp_extensions_run_action_before
+		* @var	string	action			Action to run; if the event completes execution of the action, should be set to 'none'
 		* @var	string	u_action		Url we are at
 		* @var	string	ext_name		Extension name from request
 		* @var	int		safe_time_limit	Safe limit of execution time
 		* @var	int		start_time		Start time
+		* @var	string	tpl_name		Template file to load
 		* @since 3.1.11-RC1
+		* @changed 3.2.1-RC1			Renamed to core.acp_extensions_run_action_before, added tpl_name, added action 'none'
 		*/
 		$u_action = $this->u_action;
-		$vars = array('action', 'u_action', 'ext_name', 'safe_time_limit', 'start_time');
-		extract($this->phpbb_dispatcher->trigger_event('core.acp_extensions_run_action', compact($vars)));
-
-		// Cancel action
-		if ($request->is_set_post('cancel'))
-		{
-			$action = 'list';
-			$ext_name = '';
-		}
+		$tpl_name = '';
+		$vars = array('action', 'u_action', 'ext_name', 'safe_time_limit', 'start_time', 'tpl_name');
+		extract($this->phpbb_dispatcher->trigger_event('core.acp_extensions_run_action_before', compact($vars)));
 
-		if (in_array($action, array('enable', 'disable', 'delete_data')) && !check_link_hash($request->variable('hash', ''), $action . '.' . $ext_name))
-		{
-			trigger_error('FORM_INVALID', E_USER_WARNING);
-		}
+		// In case they have been updated by the event
+		$this->u_action = $u_action;
+		$this->tpl_name = $tpl_name;
 
 		// If they've specified an extension, let's load the metadata manager and validate it.
 		if ($ext_name)
 		{
-			$md_manager = new \phpbb\extension\metadata_manager($ext_name, $config, $phpbb_extension_manager, $phpbb_root_path);
+			$md_manager = $this->ext_manager->create_extension_metadata_manager($ext_name);
 
 			try
 			{
@@ -98,13 +106,17 @@ class acp_extensions
 			catch (exception_interface $e)
 			{
 				$message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
-				trigger_error($message, E_USER_WARNING);
+				trigger_error($message . adm_back_link($this->u_action), E_USER_WARNING);
 			}
 		}
 
 		// What are we doing?
 		switch ($action)
 		{
+			case 'none':
+				// Intentionally empty, used by extensions that execute additional actions in the prior event
+				break;
+
 			case 'set_config_version_check_force_unstable':
 				$force_unstable = $this->request->variable('force_unstable', false);
 
@@ -114,12 +126,12 @@ class acp_extensions
 						'force_unstable'	=> $force_unstable,
 					));
 
-					confirm_box(false, $user->lang('EXTENSION_FORCE_UNSTABLE_CONFIRM'), $s_hidden_fields);
+					confirm_box(false, $this->user->lang('EXTENSION_FORCE_UNSTABLE_CONFIRM'), $s_hidden_fields);
 				}
 				else
 				{
-					$config->set('extension_force_unstable', false);
-					trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
+					$this->config->set('extension_force_unstable', false);
+					trigger_error($this->user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
 				}
 				break;
 
@@ -127,17 +139,17 @@ class acp_extensions
 			default:
 				if (confirm_box(true))
 				{
-					$config->set('extension_force_unstable', true);
-					trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
+					$this->config->set('extension_force_unstable', true);
+					trigger_error($this->user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
 				}
 
-				$this->list_enabled_exts($phpbb_extension_manager);
-				$this->list_disabled_exts($phpbb_extension_manager);
-				$this->list_available_exts($phpbb_extension_manager);
+				$this->list_enabled_exts();
+				$this->list_disabled_exts();
+				$this->list_available_exts();
 
 				$this->template->assign_vars(array(
 					'U_VERSIONCHECK_FORCE' 	=> $this->u_action . '&amp;action=list&amp;versioncheck_force=1',
-					'FORCE_UNSTABLE'		=> $config['extension_force_unstable'],
+					'FORCE_UNSTABLE'		=> $this->config['extension_force_unstable'],
 					'U_ACTION' 				=> $this->u_action,
 				));
 
@@ -145,30 +157,30 @@ class acp_extensions
 			break;
 
 			case 'enable_pre':
-				if (!$md_manager->validate_dir())
+				try
 				{
-					trigger_error($user->lang['EXTENSION_DIR_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
+					$md_manager->validate_enable();
 				}
-
-				if (!$md_manager->validate_enable())
+				catch (exception_interface $e)
 				{
-					trigger_error($user->lang['EXTENSION_NOT_AVAILABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
+					$message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
+					trigger_error($message . adm_back_link($this->u_action), E_USER_WARNING);
 				}
 
-				$extension = $phpbb_extension_manager->get_extension($ext_name);
+				$extension = $this->ext_manager->get_extension($ext_name);
 				if (!$extension->is_enableable())
 				{
-					trigger_error($user->lang['EXTENSION_NOT_ENABLEABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
+					trigger_error($this->user->lang['EXTENSION_NOT_ENABLEABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
 				}
 
-				if ($phpbb_extension_manager->is_enabled($ext_name))
+				if ($this->ext_manager->is_enabled($ext_name))
 				{
 					redirect($this->u_action);
 				}
 
 				$this->tpl_name = 'acp_ext_enable';
 
-				$template->assign_vars(array(
+				$this->template->assign_vars(array(
 					'PRE'				=> true,
 					'L_CONFIRM_MESSAGE'	=> $this->user->lang('EXTENSION_ENABLE_CONFIRM', $md_manager->get_metadata('display-name')),
 					'U_ENABLE'			=> $this->u_action . '&amp;action=enable&amp;ext_name=' . urlencode($ext_name) . '&amp;hash=' . generate_link_hash('enable.' . $ext_name),
@@ -176,57 +188,66 @@ class acp_extensions
 			break;
 
 			case 'enable':
-				if (!$md_manager->validate_dir())
+				try
 				{
-					trigger_error($user->lang['EXTENSION_DIR_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
+					$md_manager->validate_enable();
 				}
-
-				if (!$md_manager->validate_enable())
+				catch (exception_interface $e)
 				{
-					trigger_error($user->lang['EXTENSION_NOT_AVAILABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
+					$message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
+					trigger_error($message . adm_back_link($this->u_action), E_USER_WARNING);
 				}
 
-				$extension = $phpbb_extension_manager->get_extension($ext_name);
+				$extension = $this->ext_manager->get_extension($ext_name);
 				if (!$extension->is_enableable())
 				{
-					trigger_error($user->lang['EXTENSION_NOT_ENABLEABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
+					trigger_error($this->user->lang['EXTENSION_NOT_ENABLEABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
 				}
 
 				try
 				{
-					while ($phpbb_extension_manager->enable_step($ext_name))
+					while ($this->ext_manager->enable_step($ext_name))
 					{
 						// Are we approaching the time limit? If so we want to pause the update and continue after refreshing
 						if ((time() - $start_time) >= $safe_time_limit)
 						{
-							$template->assign_var('S_NEXT_STEP', true);
+							$this->template->assign_var('S_NEXT_STEP', true);
 
 							meta_refresh(0, $this->u_action . '&amp;action=enable&amp;ext_name=' . urlencode($ext_name) . '&amp;hash=' . generate_link_hash('enable.' . $ext_name));
 						}
 					}
-					$this->log->add('admin', $user->data['user_id'], $user->ip, 'LOG_EXT_ENABLE', time(), array($ext_name));
+
+					// Update custom style for admin area
+					$this->template->set_custom_style(array(
+						array(
+							'name' 		=> 'adm',
+							'ext_path' 	=> 'adm/style/',
+						),
+					), array($phpbb_root_path . 'adm/style'));
+
+					$this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_EXT_ENABLE', time(), array($ext_name));
 				}
 				catch (\phpbb\db\migration\exception $e)
 				{
-					$template->assign_var('MIGRATOR_ERROR', $e->getLocalisedMessage($user));
+					$this->template->assign_var('MIGRATOR_ERROR', $e->getLocalisedMessage($this->user));
 				}
 
 				$this->tpl_name = 'acp_ext_enable';
 
-				$template->assign_vars(array(
+				$this->template->assign_vars(array(
 					'U_RETURN'		=> $this->u_action . '&amp;action=list',
 				));
 			break;
 
 			case 'disable_pre':
-				if (!$phpbb_extension_manager->is_enabled($ext_name))
+				if (!$this->ext_manager->is_enabled($ext_name))
 				{
 					redirect($this->u_action);
 				}
 
 				$this->tpl_name = 'acp_ext_disable';
 
-				$template->assign_vars(array(
+				$this->template->assign_vars(array(
 					'PRE'				=> true,
 					'L_CONFIRM_MESSAGE'	=> $this->user->lang('EXTENSION_DISABLE_CONFIRM', $md_manager->get_metadata('display-name')),
 					'U_DISABLE'			=> $this->u_action . '&amp;action=disable&amp;ext_name=' . urlencode($ext_name) . '&amp;hash=' . generate_link_hash('disable.' . $ext_name),
@@ -234,38 +255,38 @@ class acp_extensions
 			break;
 
 			case 'disable':
-				if (!$phpbb_extension_manager->is_enabled($ext_name))
+				if (!$this->ext_manager->is_enabled($ext_name))
 				{
 					redirect($this->u_action);
 				}
 
-				while ($phpbb_extension_manager->disable_step($ext_name))
+				while ($this->ext_manager->disable_step($ext_name))
 				{
 					// Are we approaching the time limit? If so we want to pause the update and continue after refreshing
 					if ((time() - $start_time) >= $safe_time_limit)
 					{
-						$template->assign_var('S_NEXT_STEP', true);
+						$this->template->assign_var('S_NEXT_STEP', true);
 
 						meta_refresh(0, $this->u_action . '&amp;action=disable&amp;ext_name=' . urlencode($ext_name) . '&amp;hash=' . generate_link_hash('disable.' . $ext_name));
 					}
 				}
-				$this->log->add('admin', $user->data['user_id'], $user->ip, 'LOG_EXT_DISABLE', time(), array($ext_name));
+				$this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_EXT_DISABLE', time(), array($ext_name));
 
 				$this->tpl_name = 'acp_ext_disable';
 
-				$template->assign_vars(array(
+				$this->template->assign_vars(array(
 					'U_RETURN'	=> $this->u_action . '&amp;action=list',
 				));
 			break;
 
 			case 'delete_data_pre':
-				if ($phpbb_extension_manager->is_enabled($ext_name))
+				if ($this->ext_manager->is_enabled($ext_name))
 				{
 					redirect($this->u_action);
 				}
 				$this->tpl_name = 'acp_ext_delete_data';
 
-				$template->assign_vars(array(
+				$this->template->assign_vars(array(
 					'PRE'				=> true,
 					'L_CONFIRM_MESSAGE'	=> $this->user->lang('EXTENSION_DELETE_DATA_CONFIRM', $md_manager->get_metadata('display-name')),
 					'U_PURGE'			=> $this->u_action . '&amp;action=delete_data&amp;ext_name=' . urlencode($ext_name) . '&amp;hash=' . generate_link_hash('delete_data.' . $ext_name),
@@ -273,75 +294,72 @@ class acp_extensions
 			break;
 
 			case 'delete_data':
-				if ($phpbb_extension_manager->is_enabled($ext_name))
+				if ($this->ext_manager->is_enabled($ext_name))
 				{
 					redirect($this->u_action);
 				}
 
 				try
 				{
-					while ($phpbb_extension_manager->purge_step($ext_name))
+					while ($this->ext_manager->purge_step($ext_name))
 					{
 						// Are we approaching the time limit? If so we want to pause the update and continue after refreshing
 						if ((time() - $start_time) >= $safe_time_limit)
 						{
-							$template->assign_var('S_NEXT_STEP', true);
+							$this->template->assign_var('S_NEXT_STEP', true);
 
 							meta_refresh(0, $this->u_action . '&amp;action=delete_data&amp;ext_name=' . urlencode($ext_name) . '&amp;hash=' . generate_link_hash('delete_data.' . $ext_name));
 						}
 					}
-					$this->log->add('admin', $user->data['user_id'], $user->ip, 'LOG_EXT_PURGE', time(), array($ext_name));
+					$this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_EXT_PURGE', time(), array($ext_name));
 				}
 				catch (\phpbb\db\migration\exception $e)
 				{
-					$template->assign_var('MIGRATOR_ERROR', $e->getLocalisedMessage($user));
+					$this->template->assign_var('MIGRATOR_ERROR', $e->getLocalisedMessage($this->user));
 				}
 
 				$this->tpl_name = 'acp_ext_delete_data';
 
-				$template->assign_vars(array(
+				$this->template->assign_vars(array(
 					'U_RETURN'	=> $this->u_action . '&amp;action=list',
 				));
 			break;
 
 			case 'details':
 				// Output it to the template
-				$md_manager->output_template_data($template);
-
 				$meta = $md_manager->get_metadata('all');
+				$this->output_metadata_to_template($meta);
+
 				if (isset($meta['extra']['version-check']))
 				{
 					try
 					{
-						$updates_available = $phpbb_extension_manager->version_check($md_manager, $request->variable('versioncheck_force', false), $this->config['extension_force_unstable'] ? 'unstable' : null);
+						$updates_available = $this->ext_manager->version_check($md_manager, $this->request->variable('versioncheck_force', false), false, $this->config['extension_force_unstable'] ? 'unstable' : null);
 
-						$template->assign_vars(array(
+						$this->template->assign_vars(array(
 							'S_UP_TO_DATE' => empty($updates_available),
 							'UP_TO_DATE_MSG' => $this->user->lang(empty($updates_available) ? 'UP_TO_DATE' : 'NOT_UP_TO_DATE', $md_manager->get_metadata('display-name')),
 						));
 
-						foreach ($updates_available as $branch => $version_data)
-						{
-							$template->assign_block_vars('updates_available', $version_data);
-						}
+						$this->template->assign_block_vars('updates_available', $updates_available);
 					}
 					catch (exception_interface $e)
 					{
 						$message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
 
-						$template->assign_vars(array(
+						$this->template->assign_vars(array(
 							'S_VERSIONCHECK_FAIL' => true,
 							'VERSIONCHECK_FAIL_REASON' => ($e->getMessage() !== 'VERSIONCHECK_FAIL') ? $message : '',
 						));
 					}
-					$template->assign_var('S_VERSIONCHECK', true);
+					$this->template->assign_var('S_VERSIONCHECK', true);
 				}
 				else
 				{
-					$template->assign_var('S_VERSIONCHECK', false);
+					$this->template->assign_var('S_VERSIONCHECK', false);
 				}
 
-				$template->assign_vars(array(
+				$this->template->assign_vars(array(
 					'U_BACK'				=> $this->u_action . '&amp;action=list',
 					'U_VERSIONCHECK_FORCE'	=> $this->u_action . '&amp;action=details&amp;versioncheck_force=1&amp;ext_name=' . urlencode($md_manager->get_metadata('name')),
 				));
@@ -349,21 +367,41 @@ class acp_extensions
 				$this->tpl_name = 'acp_ext_details';
 			break;
 		}
+
+		/**
+		* Event to run after a specific action on extension has completed
+		*
+		* @event core.acp_extensions_run_action_after
+		* @var	string	action			Action that has run
+		* @var	string	u_action		Url we are at
+		* @var	string	ext_name		Extension name from request
+		* @var	int		safe_time_limit	Safe limit of execution time
+		* @var	int		start_time		Start time
+		* @var	string	tpl_name		Template file to load
+		* @since 3.1.11-RC1
+		*/
+		$u_action = $this->u_action;
+		$tpl_name = $this->tpl_name;
+		$vars = array('action', 'u_action', 'ext_name', 'safe_time_limit', 'start_time', 'tpl_name');
+		extract($this->phpbb_dispatcher->trigger_event('core.acp_extensions_run_action_after', compact($vars)));
+
+		// In case they have been updated by the event
+		$this->u_action = $u_action;
+		$this->tpl_name = $tpl_name;
 	}
 
 	/**
 	* Lists all the enabled extensions and dumps to the template
 	*
-	* @param  $phpbb_extension_manager     An instance of the extension manager
 	* @return null
 	*/
-	public function list_enabled_exts(\phpbb\extension\manager $phpbb_extension_manager)
+	public function list_enabled_exts()
 	{
 		$enabled_extension_meta_data = array();
 
-		foreach ($phpbb_extension_manager->all_enabled() as $name => $location)
+		foreach ($this->ext_manager->all_enabled() as $name => $location)
 		{
-			$md_manager = $phpbb_extension_manager->create_extension_metadata_manager($name);
+			$md_manager = $this->ext_manager->create_extension_metadata_manager($name);
 
 			try
 			{
@@ -378,7 +416,7 @@ class acp_extensions
 					try
 					{
 						$force_update = $this->request->variable('versioncheck_force', false);
-						$updates = $phpbb_extension_manager->version_check($md_manager, $force_update, !$force_update);
+						$updates = $this->ext_manager->version_check($md_manager, $force_update, !$force_update);
 
 						$enabled_extension_meta_data[$name]['S_UP_TO_DATE'] = empty($updates);
 						$enabled_extension_meta_data[$name]['S_VERSIONCHECK'] = true;
@@ -426,16 +464,15 @@ class acp_extensions
 	/**
 	* Lists all the disabled extensions and dumps to the template
 	*
-	* @param  $phpbb_extension_manager     An instance of the extension manager
 	* @return null
 	*/
-	public function list_disabled_exts(\phpbb\extension\manager $phpbb_extension_manager)
+	public function list_disabled_exts()
 	{
 		$disabled_extension_meta_data = array();
 
-		foreach ($phpbb_extension_manager->all_disabled() as $name => $location)
+		foreach ($this->ext_manager->all_disabled() as $name => $location)
 		{
-			$md_manager = $phpbb_extension_manager->create_extension_metadata_manager($name);
+			$md_manager = $this->ext_manager->create_extension_metadata_manager($name);
 
 			try
 			{
@@ -448,7 +485,7 @@ class acp_extensions
 				if (isset($meta['extra']['version-check']))
 				{
 					$force_update = $this->request->variable('versioncheck_force', false);
-					$updates = $phpbb_extension_manager->version_check($md_manager, $force_update, !$force_update);
+					$updates = $this->ext_manager->version_check($md_manager, $force_update, !$force_update);
 
 					$disabled_extension_meta_data[$name]['S_UP_TO_DATE'] = empty($updates);
 					$disabled_extension_meta_data[$name]['S_VERSIONCHECK'] = true;
@@ -496,18 +533,17 @@ class acp_extensions
 	/**
 	* Lists all the available extensions and dumps to the template
 	*
-	* @param  $phpbb_extension_manager     An instance of the extension manager
 	* @return null
 	*/
-	public function list_available_exts(\phpbb\extension\manager $phpbb_extension_manager)
+	public function list_available_exts()
 	{
-		$uninstalled = array_diff_key($phpbb_extension_manager->all_available(), $phpbb_extension_manager->all_configured());
+		$uninstalled = array_diff_key($this->ext_manager->all_available(), $this->ext_manager->all_configured());
 
 		$available_extension_meta_data = array();
 
 		foreach ($uninstalled as $name => $location)
 		{
-			$md_manager = $phpbb_extension_manager->create_extension_metadata_manager($name);
+			$md_manager = $this->ext_manager->create_extension_metadata_manager($name);
 
 			try
 			{
@@ -520,7 +556,7 @@ class acp_extensions
 				if (isset($meta['extra']['version-check']))
 				{
 					$force_update = $this->request->variable('versioncheck_force', false);
-					$updates = $phpbb_extension_manager->version_check($md_manager, $force_update, !$force_update);
+					$updates = $this->ext_manager->version_check($md_manager, $force_update, !$force_update);
 
 					$available_extension_meta_data[$name]['S_UP_TO_DATE'] = empty($updates);
 					$available_extension_meta_data[$name]['S_VERSIONCHECK'] = true;
@@ -585,4 +621,41 @@ class acp_extensions
 	{
 		return strnatcasecmp($val1['META_DISPLAY_NAME'], $val2['META_DISPLAY_NAME']);
 	}
+
+	/**
+	* Outputs extension metadata into the template
+	*
+	* @param array $metadata Array with all metadata for the extension
+	* @return null
+	*/
+	public function output_metadata_to_template($metadata)
+	{
+		$this->template->assign_vars(array(
+			'META_NAME'			=> $metadata['name'],
+			'META_TYPE'			=> $metadata['type'],
+			'META_DESCRIPTION'	=> (isset($metadata['description'])) ? $metadata['description'] : '',
+			'META_HOMEPAGE'		=> (isset($metadata['homepage'])) ? $metadata['homepage'] : '',
+			'META_VERSION'		=> $metadata['version'],
+			'META_TIME'			=> (isset($metadata['time'])) ? $metadata['time'] : '',
+			'META_LICENSE'		=> $metadata['license'],
+
+			'META_REQUIRE_PHP'		=> (isset($metadata['require']['php'])) ? $metadata['require']['php'] : '',
+			'META_REQUIRE_PHP_FAIL'	=> (isset($metadata['require']['php'])) ? false : true,
+
+			'META_REQUIRE_PHPBB'		=> (isset($metadata['extra']['soft-require']['phpbb/phpbb'])) ? $metadata['extra']['soft-require']['phpbb/phpbb'] : '',
+			'META_REQUIRE_PHPBB_FAIL'	=> (isset($metadata['extra']['soft-require']['phpbb/phpbb'])) ? false : true,
+
+			'META_DISPLAY_NAME'	=> (isset($metadata['extra']['display-name'])) ? $metadata['extra']['display-name'] : '',
+		));
+
+		foreach ($metadata['authors'] as $author)
+		{
+			$this->template->assign_block_vars('meta_authors', array(
+				'AUTHOR_NAME'		=> $author['name'],
+				'AUTHOR_EMAIL'		=> (isset($author['email'])) ? $author['email'] : '',
+				'AUTHOR_HOMEPAGE'	=> (isset($author['homepage'])) ? $author['homepage'] : '',
+				'AUTHOR_ROLE'		=> (isset($author['role'])) ? $author['role'] : '',
+			));
+		}
+	}
 }
--- a/includes/acp/acp_jabber.php
+++ b/includes/acp/acp_jabber.php
@@ -49,13 +49,16 @@ class acp_jabber
 		$this->tpl_name = 'acp_jabber';
 		$this->page_title = 'ACP_JABBER_SETTINGS';
 
-		$jab_enable			= $request->variable('jab_enable',			(bool) $config['jab_enable']);
-		$jab_host			= $request->variable('jab_host',			(string) $config['jab_host']);
-		$jab_port			= $request->variable('jab_port',			(int) $config['jab_port']);
-		$jab_username		= $request->variable('jab_username',		(string) $config['jab_username']);
-		$jab_password		= $request->variable('jab_password',		(string) $config['jab_password']);
-		$jab_package_size	= $request->variable('jab_package_size',	(int) $config['jab_package_size']);
-		$jab_use_ssl		= $request->variable('jab_use_ssl',		(bool) $config['jab_use_ssl']);
+		$jab_enable				= $request->variable('jab_enable',			(bool) $config['jab_enable']);
+		$jab_host				= $request->variable('jab_host',			(string) $config['jab_host']);
+		$jab_port				= $request->variable('jab_port',			(int) $config['jab_port']);
+		$jab_username			= $request->variable('jab_username',		(string) $config['jab_username']);
+		$jab_password			= $request->variable('jab_password',		(string) $config['jab_password']);
+		$jab_package_size		= $request->variable('jab_package_size',	(int) $config['jab_package_size']);
+		$jab_use_ssl			= $request->variable('jab_use_ssl',		(bool) $config['jab_use_ssl']);
+		$jab_verify_peer		= $request->variable('jab_verify_peer',		(bool) $config['jab_verify_peer']);
+		$jab_verify_peer_name	= $request->variable('jab_verify_peer_name',	(bool) $config['jab_verify_peer_name']);
+		$jab_allow_self_signed	= $request->variable('jab_allow_self_signed',	(bool) $config['jab_allow_self_signed']);
 
 		$form_name = 'acp_jabber';
 		add_form_key($form_name);
@@ -73,7 +76,7 @@ class acp_jabber
 			// Is this feature enabled? Then try to establish a connection
 			if ($jab_enable)
 			{
-				$jabber = new jabber($jab_host, $jab_port, $jab_username, $jab_password, $jab_use_ssl);
+				$jabber = new jabber($jab_host, $jab_port, $jab_username, $jab_password, $jab_use_ssl, $jab_verify_peer, $jab_verify_peer_name, $jab_allow_self_signed);
 
 				if (!$jabber->connect())
 				{
@@ -113,6 +116,9 @@ class acp_jabber
 			}
 			$config->set('jab_package_size', $jab_package_size);
 			$config->set('jab_use_ssl', $jab_use_ssl);
+			$config->set('jab_verify_peer', $jab_verify_peer);
+			$config->set('jab_verify_peer_name', $jab_verify_peer_name);
+			$config->set('jab_allow_self_signed', $jab_allow_self_signed);
 
 			$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_' . $log);
 			trigger_error($message . adm_back_link($this->u_action));
@@ -128,6 +134,9 @@ class acp_jabber
 			'JAB_PASSWORD'			=> $jab_password !== '' ? '********' : '',
 			'JAB_PACKAGE_SIZE'		=> $jab_package_size,
 			'JAB_USE_SSL'			=> $jab_use_ssl,
+			'JAB_VERIFY_PEER'		=> $jab_verify_peer,
+			'JAB_VERIFY_PEER_NAME'	=> $jab_verify_peer_name,
+			'JAB_ALLOW_SELF_SIGNED'	=> $jab_allow_self_signed,
 			'S_CAN_USE_SSL'			=> jabber::can_use_ssl(),
 			'S_GTALK_NOTE'			=> (!@function_exists('dns_get_record')) ? true : false,
 		));
--- a/includes/acp/acp_main.php
+++ b/includes/acp/acp_main.php
@@ -429,24 +429,32 @@ class acp_main
 		// Version check
 		$user->add_lang('install');
 
-		if ($auth->acl_get('a_server') && version_compare(PHP_VERSION, '5.4', '<'))
+		if ($auth->acl_get('a_server') && version_compare(PHP_VERSION, '5.4.0', '<'))
 		{
 			$template->assign_vars(array(
 				'S_PHP_VERSION_OLD'	=> true,
-				'L_PHP_VERSION_OLD'	=> sprintf($user->lang['PHP_VERSION_OLD'], '<a href="https://www.phpbb.com/community/viewtopic.php?f=14&amp;t=2152375">', '</a>'),
+				'L_PHP_VERSION_OLD'	=> sprintf($user->lang['PHP_VERSION_OLD'], PHP_VERSION, '5.4.0', '<a href="https://www.phpbb.com/support/docs/en/3.2/ug/quickstart/requirements">', '</a>'),
 			));
 		}
 
 		if ($auth->acl_get('a_board'))
 		{
-			/* @var $version_helper \phpbb\version_helper */
 			$version_helper = $phpbb_container->get('version_helper');
 			try
 			{
 				$recheck = $request->variable('versioncheck_force', false);
-				$updates_available = $version_helper->get_suggested_updates($recheck);
+				$updates_available = $version_helper->get_update_on_branch($recheck);
+				$upgrades_available = $version_helper->get_suggested_updates();
+				if (!empty($upgrades_available))
+				{
+					$upgrades_available = array_pop($upgrades_available);
+				}
 
-				$template->assign_var('S_VERSION_UP_TO_DATE', empty($updates_available));
+				$template->assign_vars(array(
+					'S_VERSION_UP_TO_DATE'		=> empty($updates_available),
+					'S_VERSION_UPGRADEABLE'		=> !empty($upgrades_available),
+					'UPGRADE_INSTRUCTIONS'		=> !empty($upgrades_available) ? $user->lang('UPGRADE_INSTRUCTIONS', $upgrades_available['current'], $upgrades_available['announcement']) : false,
+				));
 			}
 			catch (\RuntimeException $e)
 			{
@@ -569,6 +577,7 @@ class acp_main
 			'S_TOTAL_ORPHAN'	=> ($total_orphan === false) ? false : true,
 			'GZIP_COMPRESSION'	=> ($config['gzip_compress'] && @extension_loaded('zlib')) ? $user->lang['ON'] : $user->lang['OFF'],
 			'DATABASE_INFO'		=> $db->sql_server_info(),
+			'PHP_VERSION_INFO'	=> PHP_VERSION,
 			'BOARD_VERSION'		=> $config['version'],
 
 			'U_ACTION'			=> $this->u_action,
--- a/includes/acp/acp_styles.php
+++ b/includes/acp/acp_styles.php
@@ -448,6 +448,9 @@ class acp_styles
 			trigger_error($this->user->lang['NO_MATCHING_STYLES_FOUND'] . adm_back_link($this->u_action), E_USER_WARNING);
 		}
 
+		// Read style configuration file
+		$style_cfg = $this->read_style_cfg($style['style_path']);
+
 		// Find all available parent styles
 		$list = $this->find_possible_parents($styles, $id);
 
@@ -595,6 +598,7 @@ class acp_styles
 			'STYLE_ID'			=> $style['style_id'],
 			'STYLE_NAME'		=> htmlspecialchars($style['style_name']),
 			'STYLE_PATH'		=> htmlspecialchars($style['style_path']),
+			'STYLE_VERSION'		=> htmlspecialchars($style_cfg['style_version']),
 			'STYLE_COPYRIGHT'	=> strip_tags($style['style_copyright']),
 			'STYLE_PARENT'		=> $style['style_parent_id'],
 			'S_STYLE_ACTIVE'	=> $style['style_active'],
--- a/includes/acp/acp_update.php
+++ b/includes/acp/acp_update.php
@@ -38,7 +38,12 @@ class acp_update
 		try
 		{
 			$recheck = $request->variable('versioncheck_force', false);
-			$updates_available = $version_helper->get_suggested_updates($recheck);
+			$updates_available = $version_helper->get_update_on_branch($recheck);
+			$upgrades_available = $version_helper->get_suggested_updates();
+			if (!empty($upgrades_available))
+			{
+				$upgrades_available = array_pop($upgrades_available);
+			}
 		}
 		catch (\RuntimeException $e)
 		{
@@ -47,10 +52,7 @@ class acp_update
 			$updates_available = array();
 		}
 
-		foreach ($updates_available as $branch => $version_data)
-		{
-			$template->assign_block_vars('updates_available', $version_data);
-		}
+		$template->assign_block_vars('updates_available', $updates_available);
 
 		$update_link = $phpbb_root_path . 'install/app.' . $phpEx;
 
@@ -62,6 +64,8 @@ class acp_update
 			'CURRENT_VERSION'		=> $config['version'],
 
 			'UPDATE_INSTRUCTIONS'	=> sprintf($user->lang['UPDATE_INSTRUCTIONS'], $update_link),
+			'S_VERSION_UPGRADEABLE'		=> !empty($upgrades_available),
+			'UPGRADE_INSTRUCTIONS'		=> !empty($upgrades_available) ? $user->lang('UPGRADE_INSTRUCTIONS', $upgrades_available['current'], $upgrades_available['announcement']) : false,
 		));
 
 		// Incomplete update?
--- a/includes/acp/info/acp_logs.php
+++ b/includes/acp/info/acp_logs.php
@@ -15,15 +15,30 @@ class acp_logs_info
 {
 	function module()
 	{
+		global $phpbb_dispatcher;
+
+		$modes = array(
+			'admin'		=> array('title' => 'ACP_ADMIN_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
+			'mod'		=> array('title' => 'ACP_MOD_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
+			'users'		=> array('title' => 'ACP_USERS_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
+			'critical'	=> array('title' => 'ACP_CRITICAL_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
+		);
+
+		/**
+		* Event to add or modify ACP log modulemodes
+		*
+		* @event core.acp_logs_info_modify_modes
+		* @var	array	modes	Array with modes info
+		* @since 3.1.11-RC1
+		* @since 3.2.1-RC1
+		*/
+		$vars = array('modes');
+		extract($phpbb_dispatcher->trigger_event('core.acp_logs_info_modify_modes', compact($vars)));
+
 		return array(
 			'filename'	=> 'acp_logs',
 			'title'		=> 'ACP_LOGGING',
-			'modes'		=> array(
-				'admin'		=> array('title' => 'ACP_ADMIN_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
-				'mod'		=> array('title' => 'ACP_MOD_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
-				'users'		=> array('title' => 'ACP_USERS_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
-				'critical'	=> array('title' => 'ACP_CRITICAL_LOGS', 'auth' => 'acl_a_viewlogs', 'cat' => array('ACP_FORUM_LOGS')),
-			),
+			'modes'		=> $modes,
 		);
 	}
 
--- a/includes/constants.php
+++ b/includes/constants.php
@@ -28,7 +28,7 @@ if (!defined('IN_PHPBB'))
 */
 
 // phpBB Version
-@define('PHPBB_VERSION', '3.2.0');
+@define('PHPBB_VERSION', '3.2.1');
 
 // QA-related
 // define('PHPBB_QA', 1);
--- a/includes/functions.php
+++ b/includes/functions.php
@@ -2815,6 +2815,11 @@ function get_preg_expression($mode)
 		case 'path_remove_dot_trailing_slash':
 			return '#^(?:(\.)?)+(?:(.+)?)+(?:([\\/\\\])$)#';
 		break;
+
+		case 'semantic_version':
+			// Regular expression to match semantic versions by http://rgxdb.com/
+			return '/(?<=^[Vv]|^)(?:(?<major>(?:0|[1-9](?:(?:0|[1-9])+)*))[.](?<minor>(?:0|[1-9](?:(?:0|[1-9])+)*))[.](?<patch>(?:0|[1-9](?:(?:0|[1-9])+)*))(?:-(?<prerelease>(?:(?:(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?|(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?)|(?:0|[1-9](?:(?:0|[1-9])+)*))(?:[.](?:(?:(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?|(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?)|(?:0|[1-9](?:(?:0|[1-9])+)*)))*))?(?:[+](?<build>(?:(?:(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?|(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?)|(?:(?:0|[1-9])+))(?:[.](?:(?:(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?|(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?)|(?:(?:0|[1-9])+)))*))?)$/';
+		break;
 	}
 
 	return '';
--- a/includes/functions_content.php
+++ b/includes/functions_content.php
@@ -686,7 +686,7 @@ function generate_text_for_storage(&$text, &$uid, &$bitfield, &$flags, $allow_bb
 	* @var bool		allow_url_bbcode	Whether or not to parse the [url] BBCode
 	* @var string	mode				Mode to parse text as, e.g. post or sig
 	* @since 3.1.0-a1
-	* @changed 3.2.0-a1
+	* @changed 3.2.0-a1 Added mode
 	*/
 	$vars = array(
 		'text',
@@ -734,9 +734,11 @@ function generate_text_for_storage(&$text, &$uid, &$bitfield, &$flags, $allow_bb
 	* @var string	uid				The BBCode UID
 	* @var string	bitfield		The BBCode Bitfield
 	* @var int		flags			The BBCode Flags
+	* @var string	message_parser	The message_parser object
 	* @since 3.1.0-a1
+	* @changed 3.1.11-RC1			Added message_parser to vars
 	*/
-	$vars = array('text', 'uid', 'bitfield', 'flags');
+	$vars = array('text', 'uid', 'bitfield', 'flags', 'message_parser');
 	extract($phpbb_dispatcher->trigger_event('core.modify_text_for_storage_after', compact($vars)));
 
 	return $message_parser->warn_msg;
--- a/includes/functions_display.php
+++ b/includes/functions_display.php
@@ -442,7 +442,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
 			* @var	array	root_data		Array with the root forum data
 			* @var	array	row				The data of the 'category'
 			* @since 3.1.0-RC4
-			* @change 3.1.7-RC1 Removed undefined catless variable
+			* @changed 3.1.7-RC1 Removed undefined catless variable
 			*/
 			$vars = array(
 				'cat_row',
@@ -648,7 +648,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
 		* @var	array	row				The data of the forum
 		* @var	array	subforums_row	Template data of subforums
 		* @since 3.1.0-a1
-		* @change 3.1.0-b5 Added var subforums_row
+		* @changed 3.1.0-b5 Added var subforums_row
 		*/
 		$vars = array('forum_row', 'row', 'subforums_row');
 		extract($phpbb_dispatcher->trigger_event('core.display_forums_modify_template_vars', compact($vars)));
@@ -1165,12 +1165,13 @@ function display_reasons($reason_id = 0)
 */
 function display_user_activity(&$userdata_ary)
 {
-	global $auth, $template, $db, $user;
+	global $auth, $template, $db, $user, $config;
 	global $phpbb_root_path, $phpEx;
 	global $phpbb_container, $phpbb_dispatcher;
 
-	// Do not display user activity for users having more than 5000 posts...
-	if ($userdata_ary['user_posts'] > 5000)
+	// Do not display user activity for users having too many posts...
+	$limit = $config['load_user_activity_limit'];
+	if ($userdata_ary['user_posts'] > $limit && $limit != 0)
 	{
 		return;
 	}
--- a/includes/functions_jabber.php
+++ b/includes/functions_jabber.php
@@ -41,6 +41,9 @@ class jabber
 	var $username;
 	var $password;
 	var $use_ssl;
+	var $verify_peer;
+	var $verify_peer_name;
+	var $allow_self_signed;
 	var $resource = 'functions_jabber.phpbb.php';
 
 	var $enable_logging;
@@ -49,8 +52,18 @@ class jabber
 	var $features = array();
 
 	/**
+	* Constructor
+	*
+	* @param string $server Jabber server
+	* @param int $port Jabber server port
+	* @param string $username Jabber username or JID
+	* @param string $password Jabber password
+	* @param boold $use_ssl Use ssl
+	* @param bool $verify_peer Verify SSL certificate
+	* @param bool $verify_peer_name Verify Jabber peer name
+	* @param bool $allow_self_signed Allow self signed certificates
 	*/
-	function jabber($server, $port, $username, $password, $use_ssl = false)
+	function __construct($server, $port, $username, $password, $use_ssl = false, $verify_peer = true, $verify_peer_name = true, $allow_self_signed = false)
 	{
 		$this->connect_server		= ($server) ? $server : 'localhost';
 		$this->port					= ($port) ? $port : 5222;
@@ -71,6 +84,9 @@ class jabber
 
 		$this->password				= $password;
 		$this->use_ssl				= ($use_ssl && self::can_use_ssl()) ? true : false;
+		$this->verify_peer			= $verify_peer;
+		$this->verify_peer_name		= $verify_peer_name;
+		$this->allow_self_signed	= $allow_self_signed;
 
 		// Change port if we use SSL
 		if ($this->port == 5222 && $this->use_ssl)
@@ -95,7 +111,7 @@ class jabber
 	*/
 	static public function can_use_tls()
 	{
-		if (!@extension_loaded('openssl') || !function_exists('stream_socket_enable_crypto') || !function_exists('stream_get_meta_data') || !function_exists('socket_set_blocking') || !function_exists('stream_get_wrappers'))
+		if (!@extension_loaded('openssl') || !function_exists('stream_socket_enable_crypto') || !function_exists('stream_get_meta_data') || !function_exists('stream_set_blocking') || !function_exists('stream_get_wrappers'))
 		{
 			return false;
 		}
@@ -138,7 +154,7 @@ class jabber
 
 		$this->session['ssl'] = $this->use_ssl;
 
-		if ($this->open_socket($this->connect_server, $this->port, $this->use_ssl))
+		if ($this->open_socket($this->connect_server, $this->port, $this->use_ssl, $this->verify_peer, $this->verify_peer_name, $this->allow_self_signed))
 		{
 			$this->send("<?xml version='1.0' encoding='UTF-8' ?" . ">\n");
 			$this->send("<stream:stream to='{$this->server}' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>\n");
@@ -226,10 +242,13 @@ class jabber
 	* @param string $server host to connect to
 	* @param int $port port number
 	* @param bool $use_ssl use ssl or not
+	* @param bool $verify_peer verify ssl certificate
+	* @param bool $verify_peer_name verify peer name
+	* @param bool $allow_self_signed allow self-signed ssl certificates
 	* @access public
 	* @return bool
 	*/
-	function open_socket($server, $port, $use_ssl = false)
+	function open_socket($server, $port, $use_ssl, $verify_peer, $verify_peer_name, $allow_self_signed)
 	{
 		if (@function_exists('dns_get_record'))
 		{
@@ -240,12 +259,26 @@ class jabber
 			}
 		}
 
-		$server = $use_ssl ? 'ssl://' . $server : $server;
+		$options = array();
 
-		if ($this->connection = @fsockopen($server, $port, $errorno, $errorstr, $this->timeout))
+		if ($use_ssl)
 		{
-			socket_set_blocking($this->connection, 0);
-			socket_set_timeout($this->connection, 60);
+			$remote_socket = 'ssl://' . $server . ':' . $port;
+
+			// Set ssl context options, see http://php.net/manual/en/context.ssl.php
+			$options['ssl'] = array('verify_peer' => $verify_peer, 'verify_peer_name' => $verify_peer_name, 'allow_self_signed' => $allow_self_signed);
+		}
+		else
+		{
+			$remote_socket = $server . ':' . $port;
+		}
+
+		$socket_context = stream_context_create($options);
+
+		if ($this->connection = @stream_socket_client($remote_socket, $errorno, $errorstr, $this->timeout, STREAM_CLIENT_CONNECT, $socket_context))
+		{
+			stream_set_blocking($this->connection, 0);
+			stream_set_timeout($this->connection, 60);
 
 			return true;
 		}
@@ -562,7 +595,7 @@ class jabber
 			case 'proceed':
 				// continue switching to TLS
 				$meta = stream_get_meta_data($this->connection);
-				socket_set_blocking($this->connection, 1);
+				stream_set_blocking($this->connection, 1);
 
 				if (!stream_socket_enable_crypto($this->connection, true, STREAM_CRYPTO_METHOD_TLS_CLIENT))
 				{
@@ -570,7 +603,7 @@ class jabber
 					return false;
 				}
 
-				socket_set_blocking($this->connection, $meta['blocked']);
+				stream_set_blocking($this->connection, $meta['blocked']);
 				$this->session['tls'] = true;
 
 				// new stream
--- a/includes/functions_messenger.php
+++ b/includes/functions_messenger.php
@@ -306,10 +306,16 @@ class messenger
 
 	/**
 	* Send the mail out to the recipients set previously in var $this->addresses
+	*
+	* @param int	$method	User notification method NOTIFY_EMAIL|NOTIFY_IM|NOTIFY_BOTH
+	* @param bool	$break	Flag indicating if the function only formats the subject
+	*						and the message without sending it
+	*
+	* @return bool
 	*/
 	function send($method = NOTIFY_EMAIL, $break = false)
 	{
-		global $config, $user;
+		global $config, $user, $phpbb_dispatcher;
 
 		// We add some standard variables we always use, no need to specify them always
 		$this->assign_vars(array(
@@ -318,6 +324,30 @@ class messenger
 			'SITENAME'	=> htmlspecialchars_decode($config['sitename']),
 		));
 
+		$subject = $this->subject;
+		$message = $this->msg;
+		/**
+		* Event to modify notification message text before parsing
+		*
+		* @event core.modify_notification_message
+		* @var	int		method	User notification method NOTIFY_EMAIL|NOTIFY_IM|NOTIFY_BOTH
+		* @var	bool	break	Flag indicating if the function only formats the subject
+		*						and the message without sending it
+		* @var	string	subject	The message subject
+		* @var	string	message	The message text
+		* @since 3.1.11-RC1
+		*/
+		$vars = array(
+			'method',
+			'break',
+			'subject',
+			'message',
+		);
+		extract($phpbb_dispatcher->trigger_event('core.modify_notification_message', compact($vars)));
+		$this->subject = $subject;
+		$this->msg = $message;
+		unset($subject, $message);
+
 		// Parse message through template
 		$this->msg = trim($this->template->assign_display('body'));
 
@@ -618,7 +648,7 @@ class messenger
 		if (!$use_queue)
 		{
 			include_once($phpbb_root_path . 'includes/functions_jabber.' . $phpEx);
-			$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], htmlspecialchars_decode($config['jab_password']), $config['jab_use_ssl']);
+			$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], htmlspecialchars_decode($config['jab_password']), $config['jab_use_ssl'], $config['jab_verify_peer'], $config['jab_verify_peer_name'], $config['jab_allow_self_signed']);
 
 			if (!$this->jabber->connect())
 			{
@@ -656,7 +686,7 @@ class messenger
 	*/
 	protected function setup_template()
 	{
-		global $phpbb_container;
+		global $phpbb_container, $phpbb_dispatcher;
 
 		if ($this->template instanceof \phpbb\template\template)
 		{
@@ -671,7 +701,9 @@ class messenger
 			$phpbb_container->get('ext.manager'),
 			new \phpbb\template\twig\loader(
 				$phpbb_container->get('filesystem')
-			)
+			),
+			$phpbb_dispatcher,
+			array()
 		);
 		$template_environment->setLexer($phpbb_container->get('template.twig.lexer'));
 
@@ -816,7 +848,7 @@ class queue
 					}
 
 					include_once($phpbb_root_path . 'includes/functions_jabber.' . $phpEx);
-					$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], htmlspecialchars_decode($config['jab_password']), $config['jab_use_ssl']);
+					$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], htmlspecialchars_decode($config['jab_password']), $config['jab_use_ssl'], $config['jab_verify_peer'], $config['jab_verify_peer_name'], $config['jab_allow_self_signed']);
 
 					if (!$this->jabber->connect())
 					{
@@ -1076,7 +1108,18 @@ function smtpmail($addresses, $subject, $message, &$err_msg, $headers = false)
 	}
 	$collector = new \phpbb\error_collector;
 	$collector->install();
-	$smtp->socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 20);
+
+	$options = array();
+	$verify_peer = (bool) $config['smtp_verify_peer'];
+	$verify_peer_name = (bool) $config['smtp_verify_peer_name'];
+	$allow_self_signed = (bool) $config['smtp_allow_self_signed'];
+	$remote_socket = $config['smtp_host'] . ':' . $config['smtp_port'];
+
+	// Set ssl context options, see http://php.net/manual/en/context.ssl.php
+	$options['ssl'] = array('verify_peer' => $verify_peer, 'verify_peer_name' => $verify_peer_name, 'allow_self_signed' => $allow_self_signed);
+	$socket_context = stream_context_create($options);
+
+	$smtp->socket = @stream_socket_client($remote_socket, $errno, $errstr, 20, STREAM_CLIENT_CONNECT, $socket_context);
 	$collector->uninstall();
 	$error_contents = $collector->format_errors();
 
--- a/includes/functions_posting.php
+++ b/includes/functions_posting.php
@@ -1165,7 +1165,7 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
 */
 function delete_post($forum_id, $topic_id, $post_id, &$data, $is_soft = false, $softdelete_reason = '')
 {
-	global $db, $user, $phpbb_container;
+	global $db, $user, $phpbb_container, $phpbb_dispatcher;
 	global $config, $phpEx, $phpbb_root_path;
 
 	// Specify our post mode
@@ -1416,6 +1416,34 @@ function delete_post($forum_id, $topic_id, $post_id, &$data, $is_soft = false, $
 		sync('topic_reported', 'topic_id', array($topic_id));
 	}
 
+	/**
+	* This event is used for performing actions directly after a post or topic
+	* has been deleted.
+	*
+	* @event core.delete_post_after
+	* @var	int		forum_id			Post forum ID
+	* @var	int		topic_id			Post topic ID
+	* @var	int		post_id				Post ID
+	* @var	array	data				Post data
+	* @var	bool	is_soft				Soft delete flag
+	* @var	string	softdelete_reason	Soft delete reason
+	* @var	string	post_mode			delete_topic, delete_first_post, delete_last_post or delete
+	* @var	mixed	next_post_id		Next post ID in the topic (post ID or false)
+	*
+	* @since 3.1.11-RC1
+	*/
+	$vars = array(
+		'forum_id',
+		'topic_id',
+		'post_id',
+		'data',
+		'is_soft',
+		'softdelete_reason',
+		'post_mode',
+		'next_post_id',
+	);
+	extract($phpbb_dispatcher->trigger_event('core.delete_post_after', compact($vars)));
+
 	return $next_post_id;
 }
 
@@ -1676,7 +1704,7 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll_ary, &$data
 				'topic_first_poster_name'	=> (!$user->data['is_registered'] && $username) ? $username : (($user->data['user_id'] != ANONYMOUS) ? $user->data['username'] : ''),
 				'topic_first_poster_colour'	=> $user->data['user_colour'],
 				'topic_type'				=> $topic_type,
-				'topic_time_limit'			=> ($topic_type == POST_STICKY || $topic_type == POST_ANNOUNCE) ? ($data_ary['topic_time_limit'] * 86400) : 0,
+				'topic_time_limit'			=> $topic_type != POST_NORMAL ? ($data_ary['topic_time_limit'] * 86400) : 0,
 				'topic_attachment'			=> (!empty($data_ary['attachment_data'])) ? 1 : 0,
 				'topic_status'				=> (isset($data_ary['topic_status'])) ? $data_ary['topic_status'] : ITEM_UNLOCKED,
 			);
@@ -1771,7 +1799,7 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll_ary, &$data
 				'topic_title'				=> $subject,
 				'topic_first_poster_name'	=> $username,
 				'topic_type'				=> $topic_type,
-				'topic_time_limit'			=> ($topic_type == POST_STICKY || $topic_type == POST_ANNOUNCE) ? ($data_ary['topic_time_limit'] * 86400) : 0,
+				'topic_time_limit'			=> $topic_type != POST_NORMAL ? ($data_ary['topic_time_limit'] * 86400) : 0,
 				'poll_title'				=> (isset($poll_ary['poll_options'])) ? $poll_ary['poll_title'] : '',
 				'poll_start'				=> (isset($poll_ary['poll_options'])) ? $poll_start : 0,
 				'poll_max_options'			=> (isset($poll_ary['poll_options'])) ? $poll_ary['poll_max_options'] : 1,
@@ -2386,7 +2414,7 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll_ary, &$data
 	* @var	string	url					The "Return to topic" URL
 	*
 	* @since 3.1.0-a3
-	* @change 3.1.0-RC3 Added vars mode, subject, username, topic_type,
+	* @changed 3.1.0-RC3 Added vars mode, subject, username, topic_type,
 	*		poll, update_message, update_search_index
 	*/
 	$vars = array(
@@ -2543,16 +2571,54 @@ function phpbb_upload_popup($forum_style = 0)
 
 /**
 * Do the various checks required for removing posts as well as removing it
+*
+* @param int		$forum_id		The id of the forum
+* @param int		$topic_id		The id of the topic
+* @param int		$post_id		The id of the post
+* @param array		$post_data		Array with the post data
+* @param bool		$is_soft		The flag indicating whether it is the soft delete mode
+* @param string		$delete_reason	Description for the post deletion reason
+*
+* @return null
 */
 function phpbb_handle_post_delete($forum_id, $topic_id, $post_id, &$post_data, $is_soft = false, $delete_reason = '')
 {
 	global $user, $auth, $config, $request;
-	global $phpbb_root_path, $phpEx, $phpbb_log;
+	global $phpbb_root_path, $phpEx, $phpbb_log, $phpbb_dispatcher;
 
+	$force_delete_allowed = $force_softdelete_allowed = false;
 	$perm_check = ($is_soft) ? 'softdelete' : 'delete';
 
+	/**
+	* This event allows to modify the conditions for the post deletion
+	*
+	* @event core.handle_post_delete_conditions
+	* @var	int		forum_id		The id of the forum
+	* @var	int		topic_id		The id of the topic
+	* @var	int		post_id			The id of the post
+	* @var	array	post_data		Array with the post data
+	* @var	bool	is_soft			The flag indicating whether it is the soft delete mode
+	* @var	string	delete_reason	Description for the post deletion reason
+	* @var	bool	force_delete_allowed		Allow the user to delete the post (all permissions and conditions are ignored)
+	* @var	bool	force_softdelete_allowed	Allow the user to softdelete the post (all permissions and conditions are ignored)
+	* @var	string	perm_check		The deletion mode softdelete|delete
+	* @since 3.1.11-RC1
+	*/
+	$vars = array(
+		'forum_id',
+		'topic_id',
+		'post_id',
+		'post_data',
+		'is_soft',
+		'delete_reason',
+		'force_delete_allowed',
+		'force_softdelete_allowed',
+		'perm_check',
+	);
+	extract($phpbb_dispatcher->trigger_event('core.handle_post_delete_conditions', compact($vars)));
+
 	// If moderator removing post or user itself removing post, present a confirmation screen
-	if ($auth->acl_get("m_$perm_check", $forum_id) || ($post_data['poster_id'] == $user->data['user_id'] && $user->data['is_registered'] && $auth->acl_get("f_$perm_check", $forum_id) && $post_id == $post_data['topic_last_post_id'] && !$post_data['post_edit_locked'] && ($post_data['post_time'] > time() - ($config['delete_time'] * 60) || !$config['delete_time'])))
+	if ($force_delete_allowed || ($is_soft && $force_softdelete_allowed) || $auth->acl_get("m_$perm_check", $forum_id) || ($post_data['poster_id'] == $user->data['user_id'] && $user->data['is_registered'] && $auth->acl_get("f_$perm_check", $forum_id) && $post_id == $post_data['topic_last_post_id'] && !$post_data['post_edit_locked'] && ($post_data['post_time'] > time() - ($config['delete_time'] * 60) || !$config['delete_time'])))
 	{
 		$s_hidden_fields = array(
 			'p'		=> $post_id,
@@ -2622,10 +2688,10 @@ function phpbb_handle_post_delete($forum_id, $topic_id, $post_id, &$post_data, $
 		}
 		else
 		{
-			global $user, $template, $request;
+			global $template;
 
-			$can_delete = $auth->acl_get('m_delete', $forum_id) || ($post_data['poster_id'] == $user->data['user_id'] && $user->data['is_registered'] && $auth->acl_get('f_delete', $forum_id));
-			$can_softdelete = $auth->acl_get('m_softdelete', $forum_id) || ($post_data['poster_id'] == $user->data['user_id'] && $user->data['is_registered'] && $auth->acl_get('f_softdelete', $forum_id));
+			$can_delete = $force_delete_allowed || ($auth->acl_get('m_delete', $forum_id) || ($post_data['poster_id'] == $user->data['user_id'] && $user->data['is_registered'] && $auth->acl_get('f_delete', $forum_id)));
+			$can_softdelete = $force_softdelete_allowed || ($auth->acl_get('m_softdelete', $forum_id) || ($post_data['poster_id'] == $user->data['user_id'] && $user->data['is_registered'] && $auth->acl_get('f_softdelete', $forum_id)));
 
 			$template->assign_vars(array(
 				'S_SOFTDELETED'			=> $post_data['post_visibility'] == ITEM_DELETED,
--- a/includes/functions_user.php
+++ b/includes/functions_user.php
@@ -272,13 +272,15 @@ function user_add($user_row, $cp_data = false, $notifications_data = null)
 	* Use this event to modify the values to be inserted when a user is added
 	*
 	* @event core.user_add_modify_data
-	* @var array	user_row		Array of user details submited to user_add
-	* @var array	cp_data			Array of Custom profile fields submited to user_add
-	* @var array	sql_ary		Array of data to be inserted when a user is added
+	* @var array	user_row			Array of user details submited to user_add
+	* @var array	cp_data				Array of Custom profile fields submited to user_add
+	* @var array	sql_ary				Array of data to be inserted when a user is added
+	* @var array	notifications_data	Array of notification data to be inserted when a user is added
 	* @since 3.1.0-a1
-	* @change 3.1.0-b5
+	* @changed 3.1.0-b5 Added user_row and cp_data
+	* @changed 3.1.11-RC1 Added notifications_data
 	*/
-	$vars = array('user_row', 'cp_data', 'sql_ary');
+	$vars = array('user_row', 'cp_data', 'sql_ary', 'notifications_data');
 	extract($phpbb_dispatcher->trigger_event('core.user_add_modify_data', compact($vars)));
 
 	$sql = 'INSERT INTO ' . USERS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
--- a/includes/mcp/mcp_ban.php
+++ b/includes/mcp/mcp_ban.php
@@ -28,7 +28,10 @@ class mcp_ban
 		global $db, $user, $auth, $template, $request, $phpbb_dispatcher;
 		global $phpbb_root_path, $phpEx;
 
-		include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+		if (!function_exists('user_ban'))
+		{
+			include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+		}
 
 		// Include the admin banning interface...
 		include($phpbb_root_path . 'includes/acp/acp_ban.' . $phpEx);
--- a/includes/mcp/mcp_main.php
+++ b/includes/mcp/mcp_main.php
@@ -164,7 +164,7 @@ class mcp_main
 				* @var	string	action		Topic quick moderation action name
 				* @var	bool	quickmod	Flag indicating whether MCP is in quick moderation mode
 				* @since 3.1.0-a4
-				* @change 3.1.0-RC4 Added variables: action, quickmod
+				* @changed 3.1.0-RC4 Added variables: action, quickmod
 				*/
 				$vars = array('action', 'quickmod');
 				extract($phpbb_dispatcher->trigger_event('core.modify_quickmod_actions', compact($vars)));
@@ -637,10 +637,13 @@ function mcp_move_topic($topic_ids)
 				*
 				* @event core.mcp_main_modify_shadow_sql
 				* @var	array	shadow	SQL array to be used by $db->sql_build_array
+				* @var	array	row		Topic data
 				* @since 3.1.11-RC1
+				* @changed 3.1.11-RC1 Added variable: row
 				*/
 				$vars = array(
 					'shadow',
+					'row',
 				);
 				extract($phpbb_dispatcher->trigger_event('core.mcp_main_modify_shadow_sql', compact($vars)));
 
@@ -1343,11 +1346,14 @@ function mcp_fork_topic($topic_ids)
 			* Perform actions before forked topic is created.
 			*
 			* @event core.mcp_main_modify_fork_sql
-			* @var	array	sql_ary	SQL array to be used by $db->sql_build_array
+			* @var	array	sql_ary		SQL array to be used by $db->sql_build_array
+			* @var	array	topic_row	Topic data
 			* @since 3.1.11-RC1
+			* @changed 3.1.11-RC1 Added variable: topic_row
 			*/
 			$vars = array(
 				'sql_ary',
+				'topic_row',
 			);
 			extract($phpbb_dispatcher->trigger_event('core.mcp_main_modify_fork_sql', compact($vars)));
 
--- a/includes/mcp/mcp_post.php
+++ b/includes/mcp/mcp_post.php
@@ -26,7 +26,7 @@ function mcp_post_details($id, $mode, $action)
 {
 	global $phpEx, $phpbb_root_path, $config, $request;
 	global $template, $db, $user, $auth;
-	global $phpbb_dispatcher;
+	global $phpbb_container, $phpbb_dispatcher;
 
 	$user->add_lang('posting');
 
@@ -53,7 +53,10 @@ function mcp_post_details($id, $mode, $action)
 			if ($auth->acl_get('m_info', $post_info['forum_id']))
 			{
 				$ip = $request->variable('ip', '');
-				include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+				if (!function_exists('user_ipwhois'))
+				{
+					include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+				}
 
 				$template->assign_vars(array(
 					'RETURN_POST'	=> sprintf($user->lang['RETURN_POST'], '<a href="' . append_sid("{$phpbb_root_path}mcp.$phpEx", "i=$id&amp;mode=$mode&amp;p=$post_id") . '">', '</a>'),
@@ -352,7 +355,11 @@ function mcp_post_details($id, $mode, $action)
 	// Get IP
 	if ($auth->acl_get('m_info', $post_info['forum_id']))
 	{
+		/** @var \phpbb\pagination $pagination */
+		$pagination = $phpbb_container->get('pagination');
+
 		$rdns_ip_num = $request->variable('rdns', '');
+		$start_users = $request->variable('start_users', 0);
 
 		if ($rdns_ip_num != 'all')
 		{
@@ -361,23 +368,46 @@ function mcp_post_details($id, $mode, $action)
 			);
 		}
 
+		$num_users = false;
+		if ($start_users)
+		{
+			$num_users = phpbb_get_num_posters_for_ip($db, $post_info['poster_ip']);
+			$start_users = $pagination->validate_start($start_users, $config['posts_per_page'], $num_users);
+		}
+
 		// Get other users who've posted under this IP
 		$sql = 'SELECT poster_id, COUNT(poster_id) as postings
 			FROM ' . POSTS_TABLE . "
 			WHERE poster_ip = '" . $db->sql_escape($post_info['poster_ip']) . "'
+				AND poster_id <> " . (int) $post_info['poster_id'] . "
 			GROUP BY poster_id
-			ORDER BY postings DESC";
-		$result = $db->sql_query($sql);
+			ORDER BY postings DESC, poster_id ASC";
+		$result = $db->sql_query_limit($sql, $config['posts_per_page'], $start_users);
 
+		$page_users = 0;
 		while ($row = $db->sql_fetchrow($result))
 		{
-			// Fill the user select list with users who have posted under this IP
-			if ($row['poster_id'] != $post_info['poster_id'])
+			$page_users++;
+			$users_ary[$row['poster_id']] = $row;
+		}
+		$db->sql_freeresult($result);
+
+		if ($page_users == $config['posts_per_page'] || $start_users)
+		{
+			if ($num_users === false)
 			{
-				$users_ary[$row['poster_id']] = $row;
+				$num_users = phpbb_get_num_posters_for_ip($db, $post_info['poster_ip']);
 			}
+
+			$pagination->generate_template_pagination(
+				$url . '&amp;i=main&amp;mode=post_details',
+				'pagination',
+				'start_users',
+				$num_users,
+				$config['posts_per_page'],
+				$start_users
+			);
 		}
-		$db->sql_freeresult($result);
 
 		if (sizeof($users_ary))
 		{
@@ -412,16 +442,26 @@ function mcp_post_details($id, $mode, $action)
 		// A compound index on poster_id, poster_ip (posts table) would help speed up this query a lot,
 		// but the extra size is only valuable if there are persons having more than a thousands posts.
 		// This is better left to the really really big forums.
+		$start_ips = $request->variable('start_ips', 0);
+
+		$num_ips = false;
+		if ($start_ips)
+		{
+			$num_ips = phpbb_get_num_ips_for_poster($db, $post_info['poster_id']);
+			$start_ips = $pagination->validate_start($start_ips, $config['posts_per_page'], $num_ips);
+		}
 
 		$sql = 'SELECT poster_ip, COUNT(poster_ip) AS postings
 			FROM ' . POSTS_TABLE . '
 			WHERE poster_id = ' . $post_info['poster_id'] . "
 			GROUP BY poster_ip
-			ORDER BY postings DESC";
-		$result = $db->sql_query($sql);
+			ORDER BY postings DESC, poster_ip ASC";
+		$result = $db->sql_query_limit($sql, $config['posts_per_page'], $start_ips);
 
+		$page_ips = 0;
 		while ($row = $db->sql_fetchrow($result))
 		{
+			$page_ips++;
 			$hostname = (($rdns_ip_num == $row['poster_ip'] || $rdns_ip_num == 'all') && $row['poster_ip']) ? @gethostbyaddr($row['poster_ip']) : '';
 
 			$template->assign_block_vars('iprow', array(
@@ -436,6 +476,23 @@ function mcp_post_details($id, $mode, $action)
 		}
 		$db->sql_freeresult($result);
 
+		if ($page_ips == $config['posts_per_page'] || $start_ips)
+		{
+			if ($num_ips === false)
+			{
+				$num_ips = phpbb_get_num_ips_for_poster($db, $post_info['poster_id']);
+			}
+
+			$pagination->generate_template_pagination(
+				$url . '&amp;i=main&amp;mode=post_details',
+				'pagination_ips',
+				'start_ips',
+				$num_ips,
+				$config['posts_per_page'],
+				$start_ips
+			);
+		}
+
 		$user_select = '';
 
 		if (sizeof($usernames_ary))
@@ -454,6 +511,44 @@ function mcp_post_details($id, $mode, $action)
 }
 
 /**
+ * Get the number of posters for a given ip
+ *
+ * @param \phpbb\db\driver\driver_interface $db DBAL interface
+ * @param string $poster_ip IP
+ * @return int Number of posters
+ */
+function phpbb_get_num_posters_for_ip(\phpbb\db\driver\driver_interface $db, $poster_ip)
+{
+	$sql = 'SELECT COUNT(DISTINCT poster_id) as num_users
+		FROM ' . POSTS_TABLE . "
+		WHERE poster_ip = '" . $db->sql_escape($poster_ip) . "'";
+	$result = $db->sql_query($sql);
+	$num_users = (int) $db->sql_fetchfield('num_users');
+	$db->sql_freeresult($result);
+
+	return $num_users;
+}
+
+/**
+ * Get the number of ips for a given poster
+ *
+ * @param \phpbb\db\driver\driver_interface $db
+ * @param int $poster_id Poster user ID
+ * @return int Number of IPs for given poster
+ */
+function phpbb_get_num_ips_for_poster(\phpbb\db\driver\driver_interface $db, $poster_id)
+{
+	$sql = 'SELECT COUNT(DISTINCT poster_ip) as num_ips
+		FROM ' . POSTS_TABLE . '
+		WHERE poster_id = ' . (int) $poster_id;
+	$result = $db->sql_query($sql);
+	$num_ips = (int) $db->sql_fetchfield('num_ips');
+	$db->sql_freeresult($result);
+
+	return $num_ips;
+}
+
+/**
 * Change a post's poster
 */
 function change_poster(&$post_info, $userdata)
--- a/includes/mcp/mcp_topic.php
+++ b/includes/mcp/mcp_topic.php
@@ -402,7 +402,7 @@ function mcp_topic_view($id, $mode, $action)
 */
 function split_topic($action, $topic_id, $to_forum_id, $subject)
 {
-	global $db, $template, $user, $phpEx, $phpbb_root_path, $auth, $config, $phpbb_log, $request;
+	global $db, $template, $user, $phpEx, $phpbb_root_path, $auth, $config, $phpbb_log, $request, $phpbb_dispatcher;
 
 	$post_id_list	= $request->variable('post_id_list', array(0));
 	$forum_id		= $request->variable('forum_id', 0);
@@ -570,6 +570,47 @@ function split_topic($action, $topic_id, $to_forum_id, $subject)
 			WHERE post_id = {$post_id_list[0]}";
 		$db->sql_query($sql);
 
+		// Grab data for first post in split topic
+		$sql_array = array(
+			'SELECT'  => 'p.post_id, p.forum_id, p.poster_id, p.post_text, f.enable_indexing',
+			'FROM' => array(
+				POSTS_TABLE => 'p',
+			),
+			'LEFT_JOIN' => array(
+				array(
+					'FROM' => array(FORUMS_TABLE => 'f'),
+					'ON' => 'p.forum_id = f.forum_id',
+				)
+			),
+			'WHERE' => "post_id = {$post_id_list[0]}",
+		);
+		$sql = $db->sql_build_query('SELECT', $sql_array);
+		$result = $db->sql_query($sql);
+		$first_post_data = $db->sql_fetchrow($result);
+		$db->sql_freeresult($result);
+
+		// Index first post as if it were edited
+		if ($first_post_data['enable_indexing'])
+		{
+			// Select the search method and do some additional checks to ensure it can actually be utilised
+			$search_type = $config['search_type'];
+
+			if (!class_exists($search_type))
+			{
+				trigger_error('NO_SUCH_SEARCH_MODULE');
+			}
+
+			$error = false;
+			$search = new $search_type($error, $phpbb_root_path, $phpEx, $auth, $config, $db, $user, $phpbb_dispatcher);
+
+			if ($error)
+			{
+				trigger_error($error);
+			}
+
+			$search->index('edit', $first_post_data['post_id'], $first_post_data['post_text'], $subject, $first_post_data['poster_id'], $first_post_data['forum_id']);
+		}
+
 		// Copy topic subscriptions to new topic
 		$sql = 'SELECT user_id, notify_status
 			FROM ' . TOPICS_WATCH_TABLE . '
@@ -637,7 +678,7 @@ function split_topic($action, $topic_id, $to_forum_id, $subject)
 */
 function merge_posts($topic_id, $to_topic_id)
 {
-	global $db, $template, $user, $phpEx, $phpbb_root_path, $phpbb_log, $request;
+	global $db, $template, $user, $phpEx, $phpbb_root_path, $phpbb_log, $request, $phpbb_dispatcher;
 
 	if (!$to_topic_id)
 	{
@@ -743,6 +784,20 @@ function merge_posts($topic_id, $to_topic_id)
 		$redirect = $request->variable('redirect', "{$phpbb_root_path}viewtopic.$phpEx?f=$to_forum_id&amp;t=$to_topic_id");
 		$redirect = reapply_sid($redirect);
 
+		/**
+		 * Perform additional actions after merging posts.
+		 *
+		 * @event core.mcp_topics_merge_posts_after
+		 * @var	int		topic_id		The topic ID from which posts are being moved
+		 * @var	int		to_topic_id		The topic ID to which posts are being moved
+		 * @since 3.1.11-RC1
+		 */
+		$vars = array(
+			'topic_id',
+			'to_topic_id',
+		);
+		extract($phpbb_dispatcher->trigger_event('core.mcp_topics_merge_posts_after', compact($vars)));
+
 		meta_refresh(3, $redirect);
 		trigger_error($user->lang[$success_msg] . '<br /><br />' . $return_link);
 	}
--- a/includes/message_parser.php
+++ b/includes/message_parser.php
@@ -1219,7 +1219,7 @@ class parse_message extends bbcode_firstpass
 		* @var bool		return					Do we return after the event is triggered if $warn_msg is not empty
 		* @var array	warn_msg				Array of the warning messages
 		* @since 3.1.2-RC1
-		* @change 3.1.3-RC1 Added vars $bbcode_bitfield and $bbcode_uid
+		* @changed 3.1.3-RC1 Added vars $bbcode_bitfield and $bbcode_uid
 		*/
 		$message = $this->message;
 		$warn_msg = $this->warn_msg;
--- a/includes/startup.php
+++ b/includes/startup.php
@@ -22,88 +22,15 @@ if (!defined('IN_PHPBB'))
 $level = E_ALL & ~E_NOTICE & ~E_DEPRECATED;
 error_reporting($level);
 
-/*
-* Remove variables created by register_globals from the global scope
-* Thanks to Matt Kavanagh
+/**
+* Minimum Requirement: PHP 5.4.0
 */
-function deregister_globals()
+if (version_compare(PHP_VERSION, '5.4') < 0)
 {
-	$not_unset = array(
-		'GLOBALS'	=> true,
-		'_GET'		=> true,
-		'_POST'		=> true,
-		'_COOKIE'	=> true,
-		'_REQUEST'	=> true,
-		'_SERVER'	=> true,
-		'_SESSION'	=> true,
-		'_ENV'		=> true,
-		'_FILES'	=> true,
-		'phpEx'		=> true,
-		'phpbb_root_path'	=> true
-	);
-
-	// Not only will array_merge and array_keys give a warning if
-	// a parameter is not an array, array_merge will actually fail.
-	// So we check if _SESSION has been initialised.
-	if (!isset($_SESSION) || !is_array($_SESSION))
-	{
-		$_SESSION = array();
-	}
-
-	// Merge all into one extremely huge array; unset this later
-	$input = array_merge(
-		array_keys($_GET),
-		array_keys($_POST),
-		array_keys($_COOKIE),
-		array_keys($_SERVER),
-		array_keys($_SESSION),
-		array_keys($_ENV),
-		array_keys($_FILES)
-	);
-
-	foreach ($input as $varname)
-	{
-		if (isset($not_unset[$varname]))
-		{
-			// Hacking attempt. No point in continuing.
-			if (isset($_COOKIE[$varname]))
-			{
-				echo "Clear your cookies. ";
-			}
-			echo "Malicious variable name detected. Contact the administrator and ask them to disable register_globals.";
-			exit;
-		}
-
-		unset($GLOBALS[$varname]);
-	}
-
-	unset($input);
+	die('You are running an unsupported PHP version. Please upgrade to PHP 5.4.0 or higher before trying to install or update to phpBB 3.2');
 }
+// Register globals and magic quotes have been dropped in PHP 5.4 so no need for extra checks
 
-// Register globals and magic quotes have been dropped in PHP 5.4
-if (version_compare(PHP_VERSION, '5.4.0-dev', '>='))
-{
-	/**
-	* @ignore
-	*/
-	define('STRIP', false);
-}
-else
-{
-	if (get_magic_quotes_runtime())
-	{
-		// Deactivate
-		@set_magic_quotes_runtime(0);
-	}
-
-	// Be paranoid with passed vars
-	if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on' || !function_exists('ini_get'))
-	{
-		deregister_globals();
-	}
-
-	define('STRIP', (get_magic_quotes_gpc()) ? true : false);
-}
 
 // In PHP 5.3.0 the error level has been raised to E_WARNING which causes problems
 // because we show E_WARNING errors and do not set a default timezone.
--- a/includes/ucp/ucp_pm_compose.php
+++ b/includes/ucp/ucp_pm_compose.php
@@ -280,7 +280,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
 		* @var	bool	delete					Whether the user is deleting the PM
 		* @var	int		reply_to_all			Value of reply_to_all request variable.
 		* @since 3.1.0-RC5
-		* @change 3.2.0-a1 Removed undefined variables
+		* @changed 3.2.0-a1 Removed undefined variables
 		*/
 		$vars = array(
 			'sql',
@@ -345,7 +345,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
 			* @var	bool	delete				If deleting message
 			* @var	int		reply_to_all		Value of reply_to_all request variable.
 			* @since 3.1.0-RC5
-			* @change 3.2.0-a1 Removed undefined variables
+			* @changed 3.2.0-a1 Removed undefined variables
 			*/
 			$vars = array(
 				'sql',
@@ -449,6 +449,17 @@ function compose_pm($id, $mode, $action, $user_folders = array())
 		$message_attachment = 0;
 		$message_text = $message_subject = '';
 
+		/**
+		* Predefine message text and subject
+		*
+		* @event core.ucp_pm_compose_predefined_message
+		* @var	string	message_text	Message text
+		* @var	string	message_subject	Messate subject
+		* @since 3.1.11-RC1
+		*/
+		$vars = array('message_text', 'message_subject');
+		extract($phpbb_dispatcher->trigger_event('core.ucp_pm_compose_predefined_message', compact($vars)));
+
 		if ($to_user_id && $to_user_id != ANONYMOUS && $action == 'post')
 		{
 			$address_list['u'][$to_user_id] = 'to';
--- a/includes/ucp/ucp_profile.php
+++ b/includes/ucp/ucp_profile.php
@@ -508,7 +508,7 @@ class ucp_profile
 				* @var	bool	submit				Whether or not the form has been sumitted
 				* @var	bool	preview				Whether or not the signature is being previewed
 				* @since 3.1.10-RC1
-				* @change 3.2.0-RC2 Removed message parser
+				* @changed 3.2.0-RC2 Removed message parser
 				*/
 				$vars = array(
 					'enable_bbcode',
--- a/includes/ucp/ucp_remind.php
+++ b/includes/ucp/ucp_remind.php
@@ -41,8 +41,15 @@ class ucp_remind
 		$email		= strtolower($request->variable('email', ''));
 		$submit		= (isset($_POST['submit'])) ? true : false;
 
+		add_form_key('ucp_remind');
+
 		if ($submit)
 		{
+			if (!check_form_key('ucp_remind'))
+			{
+				trigger_error('FORM_INVALID');
+			}
+
 			$sql_array = array(
 				'SELECT'	=> 'user_id, username, user_permissions, user_email, user_jabber, user_notify_type, user_type, user_lang, user_inactive_reason',
 				'FROM'		=> array(USERS_TABLE => 'u'),
--- a/language/en/acp/attachments.php
+++ b/language/en/acp/attachments.php
@@ -119,7 +119,7 @@ $lang = array_merge($lang, array(
 	'MAX_EXTGROUP_FILESIZE'			=> 'Maximum file size',
 	'MAX_IMAGE_SIZE'				=> 'Maximum image dimensions',
 	'MAX_IMAGE_SIZE_EXPLAIN'		=> 'Maximum size of image attachments. Set both values to 0px by 0px to disable dimension checking.',
-	'MAX_THUMB_WIDTH'				=> 'Maximum thumbnail width in pixel',
+	'MAX_THUMB_WIDTH'				=> 'Maximum thumbnail width/height in pixel',
 	'MAX_THUMB_WIDTH_EXPLAIN'		=> 'A generated thumbnail will not exceed the width set here.',
 	'MIN_THUMB_FILESIZE'			=> 'Minimum thumbnail file size',
 	'MIN_THUMB_FILESIZE_EXPLAIN'	=> 'Do not create a thumbnail for images smaller than this.',
--- a/language/en/acp/board.php
+++ b/language/en/acp/board.php
@@ -161,6 +161,8 @@ $lang = array_merge($lang, array(
 	'ACP_POST_SETTINGS_EXPLAIN'			=> 'Here you can set all default settings for posting.',
 	'ALLOW_POST_LINKS'					=> 'Allow links in posts/private messages',
 	'ALLOW_POST_LINKS_EXPLAIN'			=> 'If disallowed the <code>[URL]</code> BBCode tag and automatic/magic URLs are disabled.',
+	'ALLOWED_SCHEMES_LINKS'				=> 'Allowed schemes in links',
+	'ALLOWED_SCHEMES_LINKS_EXPLAIN'		=> 'Users can only post schemeless URLs or one of the comma-separated list of allowed schemes.',
 	'ALLOW_POST_FLASH'					=> 'Allow use of <code>[FLASH]</code> BBCode tag in posts',
 	'ALLOW_POST_FLASH_EXPLAIN'			=> 'If disallowed the <code>[FLASH]</code> BBCode tag is disabled in posts. Otherwise the permission system controls which users can use the <code>[FLASH]</code> BBCode tag.',
 
@@ -346,13 +348,16 @@ $lang = array_merge($lang, array(
 
 // Cookie Settings
 $lang = array_merge($lang, array(
-	'ACP_COOKIE_SETTINGS_EXPLAIN'		=> 'These details define the data used to send cookies to your users browsers. In most cases the default values for the cookie settings should be sufficient. If you do need to change any do so with care, incorrect settings can prevent users logging in.',
+	'ACP_COOKIE_SETTINGS_EXPLAIN'		=> 'These details define the data used to send cookies to your users browsers. In most cases the default values for the cookie settings should be sufficient. If you do need to change any do so with care, incorrect settings can prevent users logging in. If you have problems with users staying logging in to your board, visit the <b><a href="https://www.phpbb.com/support/go/cookie-settings/">phpBB.com Knowledge Base - Fixing incorrect cookie settings</a></b>.',
 
 	'COOKIE_DOMAIN'				=> 'Cookie domain',
+	'COOKIE_DOMAIN_EXPLAIN'		=> 'In most cases the cookie domain is optional. Leave it blank if you are unsure.<br /><br /> In the case where you have a board integrated with other software or have multiple domains, then to determine the cookie domain you need to do the following. If you have something like <i>example.com</i> and <i>forums.example.com</i>, or perhaps <i>forums.example.com</i> and <i>blog.example.com</i>. Remove the subdomains until you find the common domain, <i>example.com</i>. Now add a dot in front of the common domain and you would enter .example.com (note the dot at the beginning).',
 	'COOKIE_NAME'				=> 'Cookie name',
+	'COOKIE_NAME_EXPLAIN'		=> 'This can be anything what you want, make it original. Whenever the cookie settings are changed the name of the cookie should be changed.',
 	'COOKIE_NOTICE'				=> 'Cookie notice',
 	'COOKIE_NOTICE_EXPLAIN'		=> 'If enabled a cookie notice will be displayed to users when visiting your board. This might be required by law depending on the content of your board and enabled extensions.',
 	'COOKIE_PATH'				=> 'Cookie path',
+	'COOKIE_PATH_EXPLAIN'		=> 'Note that this is always a slash, it does not matter what your board URL is.',
 	'COOKIE_SECURE'				=> 'Cookie secure',
 	'COOKIE_SECURE_EXPLAIN'		=> 'If your server is running via SSL set this to enabled else leave as disabled. Having this enabled and not running via SSL will result in server errors during redirects.',
 	'ONLINE_LENGTH'				=> 'View online time span',
@@ -393,6 +398,8 @@ $lang = array_merge($lang, array(
 	'LOAD_CPF_VIEWTOPIC'			=> 'Display custom profile fields on topic pages',
 	'LOAD_USER_ACTIVITY'			=> 'Show user’s activity',
 	'LOAD_USER_ACTIVITY_EXPLAIN'	=> 'Displays active topic/forum in user profiles and user control panel. It is recommended to disable this on boards with more than one million posts.',
+	'LOAD_USER_ACTIVITY_LIMIT'		=> 'User’s activity post limit',
+	'LOAD_USER_ACTIVITY_LIMIT_EXPLAIN'	=> 'The active topic/forum won’t be shown for users having more than this number of posts. Set to 0 to disable the limit.',
 	'READ_NOTIFICATION_EXPIRE_DAYS'	=> 'Read Notification Expiration',
 	'READ_NOTIFICATION_EXPIRE_DAYS_EXPLAIN' => 'Number of days that will elapse before a read notification will automatically be deleted. Set this value to 0 to make notifications permanent.',
 	'RECOMPILE_STYLES'				=> 'Recompile stale style components',
@@ -565,6 +572,8 @@ $lang = array_merge($lang, array(
 	'ENABLE_EMAIL_EXPLAIN'			=> 'If this is set to disabled no emails will be sent by the board at all. <em>Note the user and admin account activation settings require this setting to be enabled. If currently using “user” or “admin” activation in the activation settings, disabling this setting will disable registration.</em>',
 	'SEND_TEST_EMAIL'				=> 'Send a test email',
 	'SEND_TEST_EMAIL_EXPLAIN'		=> 'This will send a test email to the address defined in your account.',
+	'SMTP_ALLOW_SELF_SIGNED'		=> 'Allow self-signed SSL certificates',
+	'SMTP_ALLOW_SELF_SIGNED_EXPLAIN'=> 'Allow connections to SMTP server with self-signed SSL certificate.<em><strong>Warning:</strong> Allowing self-signed SSL certificates may cause security implications.</em>',
 	'SMTP_AUTH_METHOD'				=> 'Authentication method for SMTP',
 	'SMTP_AUTH_METHOD_EXPLAIN'		=> 'Only used if a username/password is set, ask your provider if you are unsure which method to use.',
 	'SMTP_CRAM_MD5'					=> 'CRAM-MD5',
@@ -581,7 +590,12 @@ $lang = array_merge($lang, array(
 	'SMTP_SETTINGS'					=> 'SMTP settings',
 	'SMTP_USERNAME'					=> 'SMTP username',
 	'SMTP_USERNAME_EXPLAIN'			=> 'Only enter a username if your SMTP server requires it.',
+	'SMTP_VERIFY_PEER'				=> 'Verify SSL certificate',
+	'SMTP_VERIFY_PEER_EXPLAIN'		=> 'Require verification of SSL certificate used by SMTP server.<em><strong>Warning:</strong> Connecting peers with unverified SSL certificates may cause security implications.</em>',
+	'SMTP_VERIFY_PEER_NAME'			=> 'Verify SMTP peer name',
+	'SMTP_VERIFY_PEER_NAME_EXPLAIN'	=> 'Require verification of peer name for SMTP servers using SSL / TLS connections.<em><strong>Warning:</strong> Connecting to unverified peers may cause security implications.</em>',
 	'TEST_EMAIL_SENT'				=> 'The test email has been sent.<br />If you don’t receive it, please check your emails configuration.<br /><br />If you require assistance, please visit the <a href="https://www.phpbb.com/community/">phpBB support forums</a>.',
+
 	'USE_SMTP'						=> 'Use SMTP server for email',
 	'USE_SMTP_EXPLAIN'				=> 'Select “Yes” if you want or have to send email via a named server instead of the local mail function.',
 ));
@@ -590,20 +604,26 @@ $lang = array_merge($lang, array(
 $lang = array_merge($lang, array(
 	'ACP_JABBER_SETTINGS_EXPLAIN'	=> 'Here you can enable and control the use of Jabber for instant messaging and board notifications. Jabber is an open source protocol and therefore available for use by anyone. Some Jabber servers include gateways or transports which allow you to contact users on other networks. Not all servers offer all transports and changes in protocols can prevent transports from operating. Please be sure to enter already registered account details - phpBB will use the details you enter here as is.',
 
-	'JAB_ENABLE'				=> 'Enable Jabber',
-	'JAB_ENABLE_EXPLAIN'		=> 'Enables use of Jabber messaging and notifications.',
-	'JAB_GTALK_NOTE'			=> 'Please note that GTalk will not work because the <samp>dns_get_record</samp> function could not be found. This function is not available in PHP4, and is not implemented on Windows platforms. It currently does not work on BSD-based systems, including Mac OS.',
-	'JAB_PACKAGE_SIZE'			=> 'Jabber package size',
-	'JAB_PACKAGE_SIZE_EXPLAIN'	=> 'This is the number of messages sent in one package. If set to 0 the message is sent immediately and will not be queued for later sending.',
-	'JAB_PASSWORD'				=> 'Jabber password',
-	'JAB_PASSWORD_EXPLAIN'		=> '<em><strong>Warning:</strong> This password will be stored as plain text in the database, visible to everybody who can access your database or who can view this configuration page.</em>',
-	'JAB_PORT'					=> 'Jabber port',
-	'JAB_PORT_EXPLAIN'			=> 'Leave blank unless you know it is not port 5222.',
-	'JAB_SERVER'				=> 'Jabber server',
-	'JAB_SERVER_EXPLAIN'		=> 'See %sjabber.org%s for a list of servers.',
-	'JAB_SETTINGS_CHANGED'		=> 'Jabber settings changed successfully.',
-	'JAB_USE_SSL'				=> 'Use SSL to connect',
-	'JAB_USE_SSL_EXPLAIN'		=> 'If enabled a secure connection is tried to be established. The Jabber port will be modified to 5223 if port 5222 is specified.',
-	'JAB_USERNAME'				=> 'Jabber username or JID',
-	'JAB_USERNAME_EXPLAIN'		=> 'Specify a registered username or a valid JID. The username will not be checked for validity. If you only specify a username, then your JID will be the username and the server you specified above. Else, specify a valid JID, for example user@jabber.org.',
+	'JAB_ALLOW_SELF_SIGNED'			=> 'Allow self-signed SSL certificates',
+	'JAB_ALLOW_SELF_SIGNED_EXPLAIN'	=> 'Allow connections to Jabber server with self-signed SSL certificate.<em><strong>Warning:</strong> Allowing self-signed SSL certificates may cause security implications.</em>',
+	'JAB_ENABLE'					=> 'Enable Jabber',
+	'JAB_ENABLE_EXPLAIN'			=> 'Enables use of Jabber messaging and notifications.',
+	'JAB_GTALK_NOTE'				=> 'Please note that GTalk will not work because the <samp>dns_get_record</samp> function could not be found. This function is not available in PHP4, and is not implemented on Windows platforms. It currently does not work on BSD-based systems, including Mac OS.',
+	'JAB_PACKAGE_SIZE'				=> 'Jabber package size',
+	'JAB_PACKAGE_SIZE_EXPLAIN'		=> 'This is the number of messages sent in one package. If set to 0 the message is sent immediately and will not be queued for later sending.',
+	'JAB_PASSWORD'					=> 'Jabber password',
+	'JAB_PASSWORD_EXPLAIN'			=> '<em><strong>Warning:</strong> This password will be stored as plain text in the database, visible to everybody who can access your database or who can view this configuration page.</em>',
+	'JAB_PORT'						=> 'Jabber port',
+	'JAB_PORT_EXPLAIN'				=> 'Leave blank unless you know it is not port 5222.',
+	'JAB_SERVER'					=> 'Jabber server',
+	'JAB_SERVER_EXPLAIN'			=> 'See %sjabber.org%s for a list of servers.',
+	'JAB_SETTINGS_CHANGED'			=> 'Jabber settings changed successfully.',
+	'JAB_USE_SSL'					=> 'Use SSL to connect',
+	'JAB_USE_SSL_EXPLAIN'			=> 'If enabled a secure connection is tried to be established. The Jabber port will be modified to 5223 if port 5222 is specified.',
+	'JAB_USERNAME'					=> 'Jabber username or JID',
+	'JAB_USERNAME_EXPLAIN'			=> 'Specify a registered username or a valid JID. The username will not be checked for validity. If you only specify a username, then your JID will be the username and the server you specified above. Else, specify a valid JID, for example user@jabber.org.',
+	'JAB_VERIFY_PEER'				=> 'Verify SSL certificate',
+	'JAB_VERIFY_PEER_EXPLAIN'		=> 'Require verification of SSL certificate used by Jabber server.<em><strong>Warning:</strong> Connecting peers with unverified SSL certificates may cause security implications.</em>',
+	'JAB_VERIFY_PEER_NAME'			=> 'Verify Jabber peer name',
+	'JAB_VERIFY_PEER_NAME_EXPLAIN'	=> 'Require verification of peer name for Jabber servers using SSL / TLS connections.<em><strong>Warning:</strong> Connecting to unverified peers may cause security implications.</em>',
 ));
--- a/language/en/acp/common.php
+++ b/language/en/acp/common.php
@@ -395,7 +395,8 @@ $lang = array_merge($lang, array(
 	'NUMBER_USERS'		=> 'Number of users',
 	'NUMBER_ORPHAN'		=> 'Orphan attachments',
 
-	'PHP_VERSION_OLD'	=> 'The version of PHP on this server will no longer be supported by future versions of phpBB. %sDetails%s',
+	'PHP_VERSION'		=> 'PHP version',
+	'PHP_VERSION_OLD'	=> 'The version of PHP on this server (%1$s) will no longer be supported by future versions of phpBB. The minimum required version will be PHP %2$s. %3$sDetails%4$s',
 
 	'POSTS_PER_DAY'		=> 'Posts per day',
 
@@ -439,16 +440,19 @@ $lang = array_merge($lang, array(
 	'UPLOAD_DIR_SIZE'	=> 'Size of posted attachments',
 	'USERS_PER_DAY'		=> 'Users per day',
 
-	'VALUE'						=> 'Value',
-	'VERSIONCHECK_FAIL'			=> 'Failed to obtain latest version information.',
-	'VERSIONCHECK_FORCE_UPDATE'	=> 'Re-Check version',
-	'VERSION_CHECK'				=> 'Version check',
-	'VERSION_CHECK_EXPLAIN'		=> 'Checks to see if your phpBB installation is up to date.',
+	'VALUE'							=> 'Value',
+	'VERSIONCHECK_FAIL'				=> 'Failed to obtain latest version information.',
+	'VERSIONCHECK_FORCE_UPDATE'		=> 'Re-Check version',
+	'VERSION_CHECK'					=> 'Version check',
+	'VERSION_CHECK_EXPLAIN'			=> 'Checks to see if your phpBB installation is up to date.',
+	'VERSIONCHECK_INVALID_ENTRY'	=> 'Latest version information contains an unsupported entry.',
+	'VERSIONCHECK_INVALID_URL'		=> 'Latest version information contains invalid URL.',
+	'VERSIONCHECK_INVALID_VERSION'	=> 'Latest version information contains an invalid version.',
 	'VERSION_NOT_UP_TO_DATE_ACP'	=> 'Your phpBB installation is not up to date.<br />Below is a link to the release announcement, which contains more information as well as instructions on updating.',
 	'VERSION_NOT_UP_TO_DATE_TITLE'	=> 'Your phpBB installation is not up to date.',
-	'VERSION_UP_TO_DATE_ACP'	=> 'Your phpBB installation is up to date. There are no updates available at this time.',
-	'VIEW_ADMIN_LOG'			=> 'View administrator log',
-	'VIEW_INACTIVE_USERS'		=> 'View inactive users',
+	'VERSION_UP_TO_DATE_ACP'		=> 'Your phpBB installation is up to date. There are no updates available at this time.',
+	'VIEW_ADMIN_LOG'				=> 'View administrator log',
+	'VIEW_INACTIVE_USERS'			=> 'View inactive users',
 
 	'WELCOME_PHPBB'			=> 'Welcome to phpBB',
 	'WRITABLE_CONFIG'		=> 'Your config file (config.php) is currently world-writable. We strongly encourage you to change the permissions to 640 or at least to 644 (for example: <a href="http://en.wikipedia.org/wiki/Chmod" rel="external">chmod</a> 640 config.php).',
--- a/language/en/acp/styles.php
+++ b/language/en/acp/styles.php
@@ -81,6 +81,7 @@ $lang = array_merge($lang, array(
 	'STYLE_UNINSTALL_DEPENDENT'	=> 'Style "%s" cannot be uninstalled because it has one or more child styles.',
 	'STYLE_UNINSTALLED'			=> 'Style "%s" uninstalled successfully.',
 	'STYLE_USED_BY'				=> 'Used by (including robots)',
+	'STYLE_VERSION'				=> 'Style version',
 
 	'UNINSTALL_DEFAULT'		=> 'You cannot uninstall the default style.',
 
--- a/language/en/cli.php
+++ b/language/en/cli.php
@@ -57,6 +57,7 @@ $lang = array_merge($lang, array(
 	'CLI_DESCRIPTION_DISABLE_EXTENSION'			=> 'Disables the specified extension.',
 	'CLI_DESCRIPTION_ENABLE_EXTENSION'			=> 'Enables the specified extension.',
 	'CLI_DESCRIPTION_FIND_MIGRATIONS'			=> 'Finds migrations that are not depended upon.',
+	'CLI_DESCRIPTION_FIX_LEFT_RIGHT_IDS'		=> 'Repairs the tree structure of the forums and modules.',
 	'CLI_DESCRIPTION_GET_CONFIG'				=> 'Gets a configuration option’s value',
 	'CLI_DESCRIPTION_INCREMENT_CONFIG'			=> 'Increments a configuration option’s integer value',
 	'CLI_DESCRIPTION_LIST_EXTENSIONS'			=> 'Lists all extensions in the database and on the filesystem.',
@@ -91,7 +92,9 @@ $lang = array_merge($lang, array(
 	'CLI_DESCRIPTION_UPDATE_CHECK_OPTION_CACHE'		=> 'Run check command with cache.',
 	'CLI_DESCRIPTION_UPDATE_CHECK_OPTION_STABILITY'	=> 'Run command choosing to check only stable or unstable versions.',
 
-	'CLI_ERROR_INVALID_STABILITY' => '"%s" is not a valid stability.',
+	'CLI_DESCRIPTION_UPDATE_HASH_BCRYPT'		=> 'Updates outdated password hashes to be hashed with bcrypt.',
+
+	'CLI_ERROR_INVALID_STABILITY' => '"%s" needs to be set to "stable" or "unstable".',
 
 	'CLI_DESCRIPTION_USER_ACTIVATE'				=> 'Activate (or deactivate) a user account.',
 	'CLI_DESCRIPTION_USER_ACTIVATE_USERNAME'	=> 'Username of the account to activate.',
@@ -110,8 +113,10 @@ $lang = array_merge($lang, array(
 
 	'CLI_EXTENSION_DISABLE_FAILURE'		=> 'Could not disable extension %s',
 	'CLI_EXTENSION_DISABLE_SUCCESS'		=> 'Successfully disabled extension %s',
+	'CLI_EXTENSION_DISABLED'			=> 'Extension %s is not enabled',
 	'CLI_EXTENSION_ENABLE_FAILURE'		=> 'Could not enable extension %s',
 	'CLI_EXTENSION_ENABLE_SUCCESS'		=> 'Successfully enabled extension %s',
+	'CLI_EXTENSION_ENABLED'				=> 'Extension %s is already enabled',
 	'CLI_EXTENSION_NAME'				=> 'Name of the extension',
 	'CLI_EXTENSION_PURGE_FAILURE'		=> 'Could not purge extension %s',
 	'CLI_EXTENSION_PURGE_SUCCESS'		=> 'Successfully purged extension %s',
@@ -122,7 +127,9 @@ $lang = array_merge($lang, array(
 	'CLI_EXTENSIONS_DISABLED'			=> 'Disabled',
 	'CLI_EXTENSIONS_ENABLED'			=> 'Enabled',
 
+	'CLI_FIXUP_FIX_LEFT_RIGHT_IDS_SUCCESS'		=> 'Successfully repaired the tree structure of the forums and modules.',
 	'CLI_FIXUP_RECALCULATE_EMAIL_HASH_SUCCESS'	=> 'Successfully recalculated all email hashes.',
+	'CLI_FIXUP_UPDATE_HASH_BCRYPT_SUCCESS'		=> 'Successfully updated outdated password hashes to bcrypt.',
 
 	'CLI_MIGRATION_NAME'					=> 'Migration name, including the namespace (use forward slashes instead of backslashes to avoid problems).',
 	'CLI_MIGRATIONS_AVAILABLE'				=> 'Available migrations',
--- a/language/en/common.php
+++ b/language/en/common.php
@@ -181,6 +181,7 @@ $lang = array_merge($lang, array(
 	'COOKIE_CONSENT_INFO'	=> 'Learn more',
 	'COOKIE_CONSENT_MSG'	=> 'This website uses cookies to ensure you get the best experience on our website.',
 	'COOKIE_CONSENT_OK'		=> 'Got it!',
+	'COOKIE_CONSENT_HREF'	=> 'http://cookiesandyou.com',
 	'COOKIES_DELETED'		=> 'All board cookies successfully deleted.',
 	'CURRENT_TIME'			=> 'It is currently %s',
 
--- a/language/en/help/bbcode.php
+++ b/language/en/help/bbcode.php
@@ -52,7 +52,7 @@ $lang = array_merge($lang, array(
 	'HELP_BBCODE_OTHERS_CUSTOM_ANSWER'	=> 'If you are an administrator on this board and have the proper permissions, you can add further BBCodes through the Custom BBCodes section.',
 	'HELP_BBCODE_OTHERS_CUSTOM_QUESTION'	=> 'Can I add my own tags?',
 
-	'HELP_BBCODE_QUOTES_CODE_ANSWER'	=> 'If you want to output a piece of code or in fact anything that requires a fixed width, e.g. Courier type font you should enclose the text in <strong>[code][/code]</strong> tags, e.g.<br /><br /><strong>[code]</strong>echo &quot;This is some code&quot;;<strong>[/code]</strong><br /><br />All formatting used within <strong>[code][/code]</strong> tags is retained when you later view it. PHP syntax highlighting can be enabled using <strong>[code=php][/code]</strong> and is recommended when posting PHP code samples as it improves readability.',
+	'HELP_BBCODE_QUOTES_CODE_ANSWER'	=> 'If you want to output a piece of code or in fact anything that requires a fixed width, e.g. Courier type font you should enclose the text in <strong>[code][/code]</strong> tags, e.g.<br /><br /><strong>[code]</strong>echo &quot;This is some code&quot;;<strong>[/code]</strong><br /><br />All formatting used within <strong>[code][/code]</strong> tags is retained when you later view it.',
 	'HELP_BBCODE_QUOTES_CODE_QUESTION'	=> 'Outputting code or fixed width data',
 	'HELP_BBCODE_QUOTES_TEXT_ANSWER'	=> 'There are two ways you can quote text, with a reference or without.<ul><li>When you utilise the Quote function to reply to a post on the board you should notice that the post text is added to the message window enclosed in a <strong>[quote=&quot;&quot;][/quote]</strong> block. This method allows you to quote with a reference to a person or whatever else you choose to put! For example to quote a piece of text Mr. Blobby wrote you would enter:<br /><br /><strong>[quote=&quot;Mr. Blobby&quot;]</strong>The text Mr. Blobby wrote would go here<strong>[/quote]</strong><br /><br />The resulting output will automatically add &quot;Mr. Blobby wrote:&quot; before the actual text. Remember you <strong>must</strong> include the quotation marks &quot;&quot; around the name you are quoting, they are not optional.</li><li>The second method allows you to blindly quote something. To utilise this enclose the text in <strong>[quote][/quote]</strong> tags. When you view the message it will simply show the text within a quotation block.</li></ul>',
 	'HELP_BBCODE_QUOTES_TEXT_QUESTION'	=> 'Quoting text in replies',
--- a/language/en/install.php
+++ b/language/en/install.php
@@ -83,7 +83,7 @@ $lang = array_merge($lang, array(
 	'ACP_LINK'	=> 'Take me to <a href="%1$s">the ACP</a>',
 
 	'INSTALL_PHPBB_INSTALLED'		=> 'phpBB is already installed.',
-	'INSTALL_PHPBB_NOT_INSTALLED'	=> 'phpBB is not installed yet.'
+	'INSTALL_PHPBB_NOT_INSTALLED'	=> 'phpBB is not installed yet.',
 ));
 
 // Requirements translation
@@ -119,7 +119,7 @@ $lang = array_merge($lang, array(
 
 	'RETEST_REQUIREMENTS'	=> 'Retest requirements',
 
-	'STAGE_REQUIREMENTS'	=> 'Check requirements'
+	'STAGE_REQUIREMENTS'	=> 'Check requirements',
 ));
 
 // General error messages
@@ -199,6 +199,7 @@ $lang = array_merge($lang, array(
 	'INST_ERR_DB_NO_NAME'			=> 'No database name specified.',
 	'INST_ERR_DB_FORUM_PATH'		=> 'The database file specified is within your board directory tree. You should put this file in a non web-accessible location.',
 	'INST_ERR_DB_CONNECT'			=> 'Could not connect to the database, see error message below.',
+	'INST_ERR_DB_NO_WRITABLE'		=> 'Both the database and the directory containing it must be writable.',
 	'INST_ERR_DB_NO_ERROR'			=> 'No error message given.',
 	'INST_ERR_PREFIX'				=> 'Tables with the specified prefix already exist, please choose an alternative.',
 	'INST_ERR_DB_NO_MYSQLI'			=> 'The version of MySQL installed on this machine is incompatible with the “MySQL with MySQLi Extension” option you have selected. Please try the “MySQL” option instead.',
@@ -224,6 +225,7 @@ $lang = array_merge($lang, array(
 	// Server data
 	//
 	// Form labels
+	'UPGRADE_INSTRUCTIONS'			=> 'A new feature release <strong>%1$s</strong> is available. Please read <a href="%2$s" title="%2$s"><strong>the release announcement</strong></a> to learn about what it has to offer, and how to upgrade.',
 	'SERVER_CONFIG'				=> 'Server configuration',
 	'SCRIPT_PATH'				=> 'Script path',
 	'SCRIPT_PATH_EXPLAIN'		=> 'The path where phpBB is located relative to the domain name, e.g. <samp>/phpBB3</samp>.',
@@ -296,9 +298,10 @@ $lang = array_merge($lang, array(
 	'TASK_CREATE_TABLES'				=> 'Creating tables',
 
 	// Install data
-	'TASK_ADD_BOTS'			=> 'Registering bots',
-	'TASK_ADD_LANGUAGES'	=> 'Installing available languages',
-	'TASK_ADD_MODULES'		=> 'Installing modules',
+	'TASK_ADD_BOTS'				=> 'Registering bots',
+	'TASK_ADD_LANGUAGES'		=> 'Installing available languages',
+	'TASK_ADD_MODULES'			=> 'Installing modules',
+	'TASK_CREATE_SEARCH_INDEX'	=> 'Creating search index',
 
 	// Install finish tasks
 	'TASK_INSTALL_EXTENSIONS'	=> 'Installing packaged extensions',
--- a/language/en/posting.php
+++ b/language/en/posting.php
@@ -241,9 +241,9 @@ $lang = array_merge($lang, array(
 	'SMILIES'					=> 'Smilies',
 	'SMILIES_ARE_OFF'			=> 'Smilies are <em>OFF</em>',
 	'SMILIES_ARE_ON'			=> 'Smilies are <em>ON</em>',
-	'STICKY_ANNOUNCE_TIME_LIMIT'=> 'Sticky/Announcement time limit',
+	'STICKY_ANNOUNCE_TIME_LIMIT'=> 'Sticky/Announcement/Global time limit',
 	'STICK_TOPIC_FOR'			=> 'Stick topic for',
-	'STICK_TOPIC_FOR_EXPLAIN'	=> 'Enter 0 for a never ending Sticky/Announcement. Please note that this number is relative to the date of the post.',
+	'STICK_TOPIC_FOR_EXPLAIN'	=> 'Enter 0 for a never ending Sticky/Announcement/Global. Please note that this number is relative to the date of the post.',
 	'STYLES_TIP'				=> 'Tip: Styles can be applied quickly to selected text.',
 
 	'TOO_FEW_CHARS'				=> 'Your message contains too few characters.',
--- a/memberlist.php
+++ b/memberlist.php
@@ -105,7 +105,10 @@ switch ($mode)
 {
 	case 'team':
 		// Display a listing of board admins, moderators
-		include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+		if (!function_exists('user_get_id_name'))
+		{
+			include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+		}
 
 		$page_title = $user->lang['THE_TEAM'];
 		$template_html = 'memberlist_team.html';
--- a/phpbb/auth/auth.php
+++ b/phpbb/auth/auth.php
@@ -514,7 +514,7 @@ class auth
 	*/
 	function acl_clear_prefetch($user_id = false)
 	{
-		global $db, $cache;
+		global $db, $cache, $phpbb_dispatcher;
 
 		// Rebuild options cache
 		$cache->destroy('_role_cache');
@@ -553,6 +553,16 @@ class auth
 			$where_sql";
 		$db->sql_query($sql);
 
+		/**
+		* Event is triggered after user(s) permission settings cache has been cleared
+		*
+		* @event core.acl_clear_prefetch_after
+		* @var	mixed	user_id	User ID(s)
+		* @since 3.1.11-RC1
+		*/
+		$vars = array('user_id');
+		extract($phpbb_dispatcher->trigger_event('core.acl_clear_prefetch_after', compact($vars)));
+
 		return;
 	}
 
--- a/phpbb/avatar/driver/remote.php
+++ b/phpbb/avatar/driver/remote.php
@@ -85,8 +85,11 @@ class remote extends \phpbb\avatar\driver\driver
 		}
 
 		// Check if this url looks alright
-		// This isn't perfect, but it's what phpBB 3.0 did, and might as well make sure everything is compatible
-		if (!preg_match('#^(http|https|ftp)://(?:(.*?\.)*?[a-z0-9\-]+?\.[a-z]{2,4}|(?:\d{1,3}\.){3,5}\d{1,3}):?([0-9]*?).*?\.('. implode('|', $this->allowed_extensions) . ')$#i', $url))
+		// Do not allow specifying the port (see RFC 3986) or IP addresses
+		if (!preg_match('#^(http|https|ftp)://(?:(.*?\.)*?[a-z0-9\-]+?\.[a-z]{2,4}|(?:\d{1,3}\.){3,5}\d{1,3}):?([0-9]*?).*?\.('. implode('|', $this->allowed_extensions) . ')$#i', $url) ||
+			preg_match('@^(http|https|ftp)://[^/:?#]+:[0-9]+[/:?#]@i', $url) ||
+			preg_match('#^(http|https|ftp)://(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])#i', $url) ||
+			preg_match('#^(http|https|ftp)://(?:(?:(?:[\dA-F]{1,4}:){6}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:::(?:[\dA-F]{1,4}:){0,5}(?:[\dA-F]{1,4}(?::[\dA-F]{1,4})?|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:):(?:[\dA-F]{1,4}:){4}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,2}:(?:[\dA-F]{1,4}:){3}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,3}:(?:[\dA-F]{1,4}:){2}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,4}:(?:[\dA-F]{1,4}:)(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,5}:(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,6}:[\dA-F]{1,4})|(?:(?:[\dA-F]{1,4}:){1,7}:)|(?:::))#i', $url))
 		{
 			$error[] = 'AVATAR_URL_INVALID';
 			return false;
--- a/phpbb/avatar/driver/upload.php
+++ b/phpbb/avatar/driver/upload.php
@@ -146,6 +146,16 @@ class upload extends \phpbb\avatar\driver\driver
 				return false;
 			}
 
+			// Do not allow specifying the port (see RFC 3986) or IP addresses
+			// remote_upload() will do its own check for allowed filetypes
+			if (preg_match('@^(http|https|ftp)://[^/:?#]+:[0-9]+[/:?#]@i', $url) ||
+				preg_match('#^(http|https|ftp)://(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])#i', $url) ||
+				preg_match('#^(http|https|ftp)://(?:(?:(?:[\dA-F]{1,4}:){6}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:::(?:[\dA-F]{1,4}:){0,5}(?:[\dA-F]{1,4}(?::[\dA-F]{1,4})?|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:):(?:[\dA-F]{1,4}:){4}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,2}:(?:[\dA-F]{1,4}:){3}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,3}:(?:[\dA-F]{1,4}:){2}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,4}:(?:[\dA-F]{1,4}:)(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,5}:(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,6}:[\dA-F]{1,4})|(?:(?:[\dA-F]{1,4}:){1,7}:)|(?:::))#i', $url))
+			{
+				$error[] = 'AVATAR_URL_INVALID';
+				return false;
+			}
+
 			$file = $upload->handle_upload('files.types.remote', $url);
 		}
 		else
@@ -281,12 +291,20 @@ class upload extends \phpbb\avatar\driver\driver
 		);
 		extract($this->dispatcher->trigger_event('core.avatar_driver_upload_delete_before', compact($vars)));
 
-		if (!sizeof($error) && file_exists($filename))
+		if (!sizeof($error) && $this->filesystem->exists($filename))
 		{
-			@unlink($filename);
+			try
+			{
+				$this->filesystem->remove($filename);
+				return true;
+			}
+			catch (\phpbb\filesystem\exception\filesystem_exception $e)
+			{
+				// Fail is covered by return statement below
+			}
 		}
 
-		return true;
+		return false;
 	}
 
 	/**
@@ -304,6 +322,6 @@ class upload extends \phpbb\avatar\driver\driver
 	*/
 	protected function can_upload()
 	{
-		return (file_exists($this->phpbb_root_path . $this->config['avatar_path']) && $this->filesystem->is_writable($this->phpbb_root_path . $this->config['avatar_path']) && (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on'));
+		return ($this->filesystem->exists($this->phpbb_root_path . $this->config['avatar_path']) && $this->filesystem->is_writable($this->phpbb_root_path . $this->config['avatar_path']) && (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on'));
 	}
 }
--- a/phpbb/cache/driver/file.php
+++ b/phpbb/cache/driver/file.php
@@ -608,6 +608,6 @@ class file extends \phpbb\cache\driver\base
 	*/
 	protected function clean_varname($varname)
 	{
-		return str_replace('/', '-', $varname);
+		return str_replace(array('/', '\\'), '-', $varname);
 	}
 }
--- a/phpbb/cache/driver/memcache.php
+++ b/phpbb/cache/driver/memcache.php
@@ -52,8 +52,8 @@ class memcache extends \phpbb\cache\driver\memory
 		$this->memcache = new \Memcache;
 		foreach (explode(',', PHPBB_ACM_MEMCACHE) as $u)
 		{
-			$parts = explode('/', $u);
-			$this->memcache->addServer(trim($parts[0]), trim($parts[1]));
+			preg_match('#(.*)/(\d+)#', $u, $parts);
+			$this->memcache->addServer(trim($parts[1]), (int) trim($parts[2]));
 		}
 		$this->flags = (PHPBB_ACM_MEMCACHE_COMPRESS) ? MEMCACHE_COMPRESSED : 0;
 	}
--- /dev/null
+++ b/phpbb/cache/driver/memcached.php
@@ -0,0 +1,134 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\cache\driver;
+
+if (!defined('PHPBB_ACM_MEMCACHED_PORT'))
+{
+	define('PHPBB_ACM_MEMCACHED_PORT', 11211);
+}
+
+if (!defined('PHPBB_ACM_MEMCACHED_COMPRESS'))
+{
+	define('PHPBB_ACM_MEMCACHED_COMPRESS', true);
+}
+
+if (!defined('PHPBB_ACM_MEMCACHED_HOST'))
+{
+	define('PHPBB_ACM_MEMCACHED_HOST', 'localhost');
+}
+
+if (!defined('PHPBB_ACM_MEMCACHED'))
+{
+	//can define multiple servers with host1/port1,host2/port2 format
+	define('PHPBB_ACM_MEMCACHED', PHPBB_ACM_MEMCACHED_HOST . '/' . PHPBB_ACM_MEMCACHED_PORT);
+}
+
+/**
+* ACM for Memcached
+*/
+class memcached extends \phpbb\cache\driver\memory
+{
+	/** @var string Extension to use */
+	protected $extension = 'memcached';
+
+	/** @var \Memcached Memcached class */
+	protected $memcached;
+
+	/** @var int Flags */
+	protected $flags = 0;
+
+	/**
+	 * Memcached constructor
+	 */
+	public function __construct()
+	{
+		// Call the parent constructor
+		parent::__construct();
+
+		$this->memcached = new \Memcached();
+		$this->memcached->setOption(\Memcached::OPT_BINARY_PROTOCOL, true);
+		// Memcached defaults to using compression, disable if we don't want
+		// to use it
+		if (!PHPBB_ACM_MEMCACHED_COMPRESS)
+		{
+			$this->memcached->setOption(\Memcached::OPT_COMPRESSION, false);
+		}
+
+		foreach (explode(',', PHPBB_ACM_MEMCACHE) as $u)
+		{
+			preg_match('#(.*)/(\d+)#', $u, $parts);
+			$this->memcache->addServer(trim($parts[1]), (int) trim($parts[2]));
+		}
+	}
+
+	/**
+	* {@inheritDoc}
+	*/
+	public function unload()
+	{
+		parent::unload();
+
+		unset($this->memcached);
+	}
+
+	/**
+	* {@inheritDoc}
+	*/
+	public function purge()
+	{
+		$this->memcached->flush();
+
+		parent::purge();
+	}
+
+	/**
+	* Fetch an item from the cache
+	*
+	* @param string $var Cache key
+	*
+	* @return mixed Cached data
+	*/
+	protected function _read($var)
+	{
+		return $this->memcached->get($this->key_prefix . $var);
+	}
+
+	/**
+	* Store data in the cache
+	*
+	* @param string $var Cache key
+	* @param mixed $data Data to store
+	* @param int $ttl Time-to-live of cached data
+	* @return bool True if the operation succeeded
+	*/
+	protected function _write($var, $data, $ttl = 2592000)
+	{
+		if (!$this->memcached->replace($this->key_prefix . $var, $data, $ttl))
+		{
+			return $this->memcached->set($this->key_prefix . $var, $data, $ttl);
+		}
+		return true;
+	}
+
+	/**
+	* Remove an item from the cache
+	*
+	* @param string $var Cache key
+	* @return bool True if the operation succeeded
+	*/
+	protected function _delete($var)
+	{
+		return $this->memcached->delete($this->key_prefix . $var);
+	}
+}
--- a/phpbb/console/command/extension/disable.php
+++ b/phpbb/console/command/extension/disable.php
@@ -37,6 +37,13 @@ class disable extends command
 		$io = new SymfonyStyle($input, $output);
 
 		$name = $input->getArgument('extension-name');
+
+		if (!$this->manager->is_enabled($name))
+		{
+			$io->error($this->user->lang('CLI_EXTENSION_DISABLED', $name));
+			return 2;
+		}
+
 		$this->manager->disable($name);
 		$this->manager->load_extensions();
 
--- a/phpbb/console/command/extension/enable.php
+++ b/phpbb/console/command/extension/enable.php
@@ -37,6 +37,13 @@ class enable extends command
 		$io = new SymfonyStyle($input, $output);
 
 		$name = $input->getArgument('extension-name');
+
+		if ($this->manager->is_enabled($name))
+		{
+			$io->error($this->user->lang('CLI_EXTENSION_ENABLED', $name));
+			return 2;
+		}
+
 		$this->manager->enable($name);
 		$this->manager->load_extensions();
 
--- /dev/null
+++ b/phpbb/console/command/fixup/fix_left_right_ids.php
@@ -0,0 +1,137 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\console\command\fixup;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+
+class fix_left_right_ids extends \phpbb\console\command\command
+{
+	/** @var \phpbb\user */
+	protected $user;
+
+	/** @var \phpbb\db\driver\driver_interface */
+	protected $db;
+
+	/** @var \phpbb\cache\driver\driver_interface */
+	protected $cache;
+
+	/**
+	* Constructor
+	*
+	* @param \phpbb\user							$user	User instance
+	* @param \phpbb\db\driver\driver_interface		$db		Database connection
+	* @param \phpbb\cache\driver\driver_interface	$cache	Cache instance
+	*/
+	public function __construct(\phpbb\user $user, \phpbb\db\driver\driver_interface $db, \phpbb\cache\driver\driver_interface $cache)
+	{
+		$this->user = $user;
+		$this->db = $db;
+		$this->cache = $cache;
+
+		parent::__construct($user);
+	}
+
+	/**
+	* {@inheritdoc}
+	*/
+	protected function configure()
+	{
+		$this
+			->setName('fixup:fix-left-right-ids')
+			->setDescription($this->user->lang('CLI_DESCRIPTION_FIX_LEFT_RIGHT_IDS'))
+		;
+	}
+
+	/**
+	* Executes the command fixup:fix-left-right-ids.
+	*
+	* Repairs the tree structure of the forums and modules.
+	* The code is mainly borrowed from Support toolkit for phpBB Olympus
+	*
+	* @param InputInterface  $input  An InputInterface instance
+	* @param OutputInterface $output An OutputInterface instance
+	*
+	* @return void
+	*/
+	protected function execute(InputInterface $input, OutputInterface $output)
+	{
+		$io = new SymfonyStyle($input, $output);
+
+		// Fix Left/Right IDs for the modules table
+		$result = $this->db->sql_query('SELECT DISTINCT(module_class) FROM ' . MODULES_TABLE);
+		while ($row = $this->db->sql_fetchrow($result))
+		{
+			$i = 1;
+			$where = array("module_class = '" . $this->db->sql_escape($row['module_class']) . "'");
+			$this->fix_ids_tree($i, 'module_id', MODULES_TABLE, 0, $where);
+		}
+		$this->db->sql_freeresult($result);
+
+		// Fix the Left/Right IDs for the forums table
+		$i = 1;
+		$this->fix_ids_tree($i, 'forum_id', FORUMS_TABLE);
+
+		$this->cache->purge();
+
+		$io->success($this->user->lang('CLI_FIXUP_FIX_LEFT_RIGHT_IDS_SUCCESS'));
+	}
+
+	/**
+	 * Item's tree structure rebuild helper
+	 * The item is either forum or ACP/MCP/UCP module
+	 *
+	 * @param int		$i			Item id offset index
+	 * @param string	$field		The key field to fix, forum_id|module_id
+	 * @param string	$table		The table name to perform, FORUMS_TABLE|MODULES_TABLE
+	 * @param int		$parent_id	Parent item id
+	 * @param array		$where		Additional WHERE clause condition
+	 *
+	 * @return bool	True on rebuild success, false otherwise
+	 */
+	protected function fix_ids_tree(&$i, $field, $table, $parent_id = 0, $where = array())
+	{
+		$changes_made = false;
+		$sql = 'SELECT * FROM ' . $table . '
+			WHERE parent_id = ' . (int) $parent_id .
+			((!empty($where)) ? ' AND ' . implode(' AND ', $where) : '') . '
+			ORDER BY left_id ASC';
+		$result = $this->db->sql_query($sql);
+		while ($row = $this->db->sql_fetchrow($result))
+		{
+			// Update the left_id for the item
+			if ($row['left_id'] != $i)
+			{
+				$this->db->sql_query('UPDATE ' . $table . ' SET ' . $this->db->sql_build_array('UPDATE', array('left_id' => $i)) . " WHERE $field = " . (int) $row[$field]);
+				$changes_made = true;
+			}
+			$i++;
+
+			// Go through children and update their left/right IDs
+			$changes_made = (($this->fix_ids_tree($i, $field, $table, $row[$field], $where)) || $changes_made) ? true : false;
+
+			// Update the right_id for the item
+			if ($row['right_id'] != $i)
+			{
+				$this->db->sql_query('UPDATE ' . $table . ' SET ' . $this->db->sql_build_array('UPDATE', array('right_id' => $i)) . " WHERE $field = " . (int) $row[$field]);
+				$changes_made = true;
+			}
+			$i++;
+		}
+		$this->db->sql_freeresult($result);
+
+		return $changes_made;
+	}
+}
--- /dev/null
+++ b/phpbb/console/command/fixup/update_hashes.php
@@ -0,0 +1,117 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+namespace phpbb\console\command\fixup;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Helper\ProgressBar;
+
+class update_hashes extends \phpbb\console\command\command
+{
+	/** @var \phpbb\config\config */
+	protected $config;
+
+	/** @var \phpbb\db\driver\driver_interface */
+	protected $db;
+
+	/** @var \phpbb\passwords\manager */
+	protected $passwords_manager;
+
+	/** @var string Default hashing type */
+	protected $default_type;
+
+	/**
+	 * Update_hashes constructor
+	 *
+	 * @param \phpbb\config\config $config
+	 * @param \phpbb\user $user
+	 * @param \phpbb\db\driver\driver_interface $db
+	 * @param \phpbb\passwords\manager $passwords_manager
+	 * @param array $hashing_algorithms Hashing driver
+	 *			service collection
+	 * @param array $defaults Default password types
+	 */
+	public function __construct(\phpbb\config\config $config, \phpbb\user $user,
+								\phpbb\db\driver\driver_interface $db, \phpbb\passwords\manager $passwords_manager,
+								$hashing_algorithms, $defaults)
+	{
+		$this->config = $config;
+		$this->db = $db;
+
+		$this->passwords_manager = $passwords_manager;
+
+		foreach ($defaults as $type)
+		{
+			if ($hashing_algorithms[$type]->is_supported())
+			{
+				$this->default_type = $type;
+				break;
+			}
+		}
+
+		parent::__construct($user);
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	protected function configure()
+	{
+		$this
+			->setName('fixup:update-hashes')
+			->setDescription($this->user->lang('CLI_DESCRIPTION_UPDATE_HASH_BCRYPT'))
+		;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	protected function execute(InputInterface $input, OutputInterface $output)
+	{
+		// Get count to be able to display progress
+		$sql = 'SELECT COUNT(user_id) AS count
+				FROM ' . USERS_TABLE . '
+				WHERE user_password ' . $this->db->sql_like_expression('$H$' . $this->db->get_any_char()) . '
+					OR user_password ' . $this->db->sql_like_expression('$CP$' . $this->db->get_any_char());
+		$result = $this->db->sql_query($sql);
+		$total_update_passwords = $this->db->sql_fetchfield('count');
+		$this->db->sql_freeresult($result);
+
+		// Create progress bar
+		$progress_bar = new ProgressBar($output, $total_update_passwords);
+		$progress_bar->start();
+
+		$sql = 'SELECT user_id, user_password
+				FROM ' . USERS_TABLE . '
+				WHERE user_password ' . $this->db->sql_like_expression('$H$' . $this->db->get_any_char()) . '
+					OR user_password ' . $this->db->sql_like_expression('$CP$' . $this->db->get_any_char());
+		$result = $this->db->sql_query($sql);
+
+		while ($row = $this->db->sql_fetchrow($result))
+		{
+			$new_hash = $this->passwords_manager->hash($row['user_password'], array($this->default_type));
+
+			$sql = 'UPDATE ' . USERS_TABLE . '
+					SET user_password = "' . $this->db->sql_escape($new_hash) . '"
+					WHERE user_id = ' . (int) $row['user_id'];
+			$this->db->sql_query($sql);
+			$progress_bar->advance();
+		}
+
+		$this->config->set('update_hashes_last_cron', time());
+
+		$progress_bar->finish();
+
+		$output->writeln('<info>' . $this->user->lang('CLI_FIXUP_UPDATE_HASH_BCRYPT_SUCCESS') . '</info>');
+	}
+}
--- a/phpbb/console/command/update/check.php
+++ b/phpbb/console/command/update/check.php
@@ -134,7 +134,7 @@ class check extends \phpbb\console\command\command
 		try
 		{
 			$ext_manager = $this->phpbb_container->get('ext.manager');
-			$md_manager = $ext_manager->create_extension_metadata_manager($ext_name, null);
+			$md_manager = $ext_manager->create_extension_metadata_manager($ext_name);
 			$updates_available = $ext_manager->version_check($md_manager, $recheck, false, $stability);
 
 			$metadata = $md_manager->get_metadata('all');
@@ -325,7 +325,7 @@ class check extends \phpbb\console\command\command
 		$io->table([
 			$this->language->lang('VERSION'),
 			$this->language->lang('ANNOUNCEMENT_TOPIC'),
-		    $this->language->lang('DOWNLOAD_LATEST'),
+			$this->language->lang('DOWNLOAD_LATEST'),
 		], $rows);
 	}
 }
--- /dev/null
+++ b/phpbb/cron/task/core/update_hashes.php
@@ -0,0 +1,130 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\cron\task\core;
+
+/**
+ * Update old hashes to the current default hashing algorithm
+ *
+ * It is intended to gradually update all "old" style hashes to the
+ * current default hashing algorithm.
+ */
+class update_hashes extends \phpbb\cron\task\base
+{
+	/** @var \phpbb\config\config */
+	protected $config;
+
+	/** @var \phpbb\db\driver\driver_interface */
+	protected $db;
+
+	/** @var \phpbb\lock\db */
+	protected $update_lock;
+
+	/** @var \phpbb\passwords\manager */
+	protected $passwords_manager;
+
+	/** @var string Default hashing type */
+	protected $default_type;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param \phpbb\config\config $config
+	 * @param \phpbb\db\driver\driver_interface $db
+	 * @param \phpbb\lock\db $update_lock
+	 * @param \phpbb\passwords\manager $passwords_manager
+	 * @param array $hashing_algorithms Hashing driver
+	 *			service collection
+	 * @param array $defaults Default password types
+	 */
+	public function __construct(\phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\lock\db $update_lock, \phpbb\passwords\manager $passwords_manager, $hashing_algorithms, $defaults)
+	{
+		$this->config = $config;
+		$this->db = $db;
+		$this->passwords_manager = $passwords_manager;
+		$this->update_lock = $update_lock;
+
+		foreach ($defaults as $type)
+		{
+			if ($hashing_algorithms[$type]->is_supported())
+			{
+				$this->default_type = $type;
+				break;
+			}
+		}
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function is_runnable()
+	{
+		return !$this->config['use_system_cron'];
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function should_run()
+	{
+		if (!empty($this->config['update_hashes_lock']))
+		{
+			$last_run = explode(' ', $this->config['update_hashes_lock']);
+			if ($last_run[0] + 60 >= time())
+			{
+				return false;
+			}
+		}
+
+		return $this->config['enable_update_hashes'] && $this->config['update_hashes_last_cron'] < (time() - 60);
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function run()
+	{
+		if ($this->update_lock->acquire())
+		{
+			$sql = 'SELECT user_id, user_password
+				FROM ' . USERS_TABLE . '
+				WHERE user_password ' . $this->db->sql_like_expression('$H$' . $this->db->get_any_char()) . '
+				OR user_password ' . $this->db->sql_like_expression('$CP$' . $this->db->get_any_char());
+			$result = $this->db->sql_query_limit($sql, 20);
+
+			$affected_rows = 0;
+
+			while ($row = $this->db->sql_fetchrow($result))
+			{
+				$new_hash = $this->passwords_manager->hash($row['user_password'], array($this->default_type));
+
+				// Increase number so we know that users were selected from the database
+				$affected_rows++;
+
+				$sql = 'UPDATE ' . USERS_TABLE . '
+					SET user_password = "' . $this->db->sql_escape($new_hash) . '"
+					WHERE user_id = ' . (int) $row['user_id'];
+				$this->db->sql_query($sql);
+			}
+
+			$this->config->set('update_hashes_last_cron', time());
+			$this->update_lock->release();
+
+			// Stop cron for good once all hashes are converted
+			if ($affected_rows === 0)
+			{
+				$this->config->set('enable_update_hashes', '0');
+			}
+		}
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v30x/.htaccess
@@ -0,0 +1,33 @@
+# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
+# module mod_authz_host to a new module called mod_access_compat (which may be
+# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
+# We could just conditionally provide both versions, but unfortunately Apache
+# does not explicitly tell us its version if the module mod_version is not
+# available. In this case, we check for the availability of module
+# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
+<IfModule mod_version.c>
+	<IfVersion < 2.4>
+		<Files "*">
+			Order Allow,Deny
+			Deny from All
+		</Files>
+	</IfVersion>
+	<IfVersion >= 2.4>
+		<Files "*">
+			Require all denied
+		</Files>
+	</IfVersion>
+</IfModule>
+<IfModule !mod_version.c>
+	<IfModule !mod_authz_core.c>
+		<Files "*">
+			Order Allow,Deny
+			Deny from All
+		</Files>
+	</IfModule>
+	<IfModule mod_authz_core.c>
+		<Files "*">
+			Require all denied
+		</Files>
+	</IfModule>
+</IfModule>
--- /dev/null
+++ b/phpbb/db/migration/data/v310/.htaccess
@@ -0,0 +1,33 @@
+# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
+# module mod_authz_host to a new module called mod_access_compat (which may be
+# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
+# We could just conditionally provide both versions, but unfortunately Apache
+# does not explicitly tell us its version if the module mod_version is not
+# available. In this case, we check for the availability of module
+# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
+<IfModule mod_version.c>
+	<IfVersion < 2.4>
+		<Files "*">
+			Order Allow,Deny
+			Deny from All
+		</Files>
+	</IfVersion>
+	<IfVersion >= 2.4>
+		<Files "*">
+			Require all denied
+		</Files>
+	</IfVersion>
+</IfModule>
+<IfModule !mod_version.c>
+	<IfModule !mod_authz_core.c>
+		<Files "*">
+			Order Allow,Deny
+			Deny from All
+		</Files>
+	</IfModule>
+	<IfModule mod_authz_core.c>
+		<Files "*">
+			Require all denied
+		</Files>
+	</IfModule>
+</IfModule>
--- /dev/null
+++ b/phpbb/db/migration/data/v31x/.htaccess
@@ -0,0 +1,33 @@
+# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
+# module mod_authz_host to a new module called mod_access_compat (which may be
+# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
+# We could just conditionally provide both versions, but unfortunately Apache
+# does not explicitly tell us its version if the module mod_version is not
+# available. In this case, we check for the availability of module
+# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
+<IfModule mod_version.c>
+	<IfVersion < 2.4>
+		<Files "*">
+			Order Allow,Deny
+			Deny from All
+		</Files>
+	</IfVersion>
+	<IfVersion >= 2.4>
+		<Files "*">
+			Require all denied
+		</Files>
+	</IfVersion>
+</IfModule>
+<IfModule !mod_version.c>
+	<IfModule !mod_authz_core.c>
+		<Files "*">
+			Order Allow,Deny
+			Deny from All
+		</Files>
+	</IfModule>
+	<IfModule mod_authz_core.c>
+		<Files "*">
+			Require all denied
+		</Files>
+	</IfModule>
+</IfModule>
--- /dev/null
+++ b/phpbb/db/migration/data/v31x/add_jabber_ssl_context_config_options.php
@@ -0,0 +1,32 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\db\migration\data\v31x;
+
+class add_jabber_ssl_context_config_options extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array('\phpbb\db\migration\data\v31x\v3110');
+	}
+
+	public function update_data()
+	{
+		return array(
+			// See http://php.net/manual/en/context.ssl.php
+			array('config.add', array('jab_verify_peer', 1)),
+			array('config.add', array('jab_verify_peer_name', 1)),
+			array('config.add', array('jab_allow_self_signed', 0)),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v31x/add_latest_topics_index.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\db\migration\data\v31x;
+
+class add_latest_topics_index extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v31x\v3110',
+		);
+	}
+
+	public function update_schema()
+	{
+		return array(
+			'add_index' => array(
+				$this->table_prefix . 'topics' => array(
+					'latest_topics'	=> array(
+						'forum_id',
+						'topic_last_post_time',
+						'topic_last_post_id',
+						'topic_moved_id',
+					),
+				),
+			),
+		);
+	}
+
+	public function revert_schema()
+	{
+		return array(
+			'drop_keys' => array(
+				$this->table_prefix . 'topics' => array(
+					'latest_topics',
+				),
+			),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v31x/add_smtp_ssl_context_config_options.php
@@ -0,0 +1,32 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\db\migration\data\v31x;
+
+class add_smtp_ssl_context_config_options extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array('\phpbb\db\migration\data\v31x\v3110');
+	}
+
+	public function update_data()
+	{
+		return array(
+			// See http://php.net/manual/en/context.ssl.php
+			array('config.add', array('smtp_verify_peer', 1)),
+			array('config.add', array('smtp_verify_peer_name', 1)),
+			array('config.add', array('smtp_allow_self_signed', 0)),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v31x/update_hashes.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\db\migration\data\v31x;
+
+class update_hashes extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v31x\v3110',
+		);
+	}
+
+	public function update_data()
+	{
+		return array(
+			array('config.add', array('enable_update_hashes', '1')),
+			array('config.add', array('update_hashes_lock', '')),
+			array('config.add', array('update_hashes_last_cron', '0'))
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v31x/v3111.php
@@ -0,0 +1,36 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\db\migration\data\v31x;
+
+class v3111 extends \phpbb\db\migration\migration
+{
+	public function effectively_installed()
+	{
+		return phpbb_version_compare($this->config['version'], '3.1.11', '>=');
+	}
+
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v31x\v3111rc1',
+		);
+	}
+
+	public function update_data()
+	{
+		return array(
+			array('config.update', array('version', '3.1.11')),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v31x/v3111rc1.php
@@ -0,0 +1,43 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\db\migration\data\v31x;
+
+class v3111rc1 extends \phpbb\db\migration\migration
+{
+	public function effectively_installed()
+	{
+		return phpbb_version_compare($this->config['version'], '3.1.11-RC1', '>=');
+	}
+
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v31x\v3110',
+			'\phpbb\db\migration\data\v31x\add_log_time_index',
+			'\phpbb\db\migration\data\v31x\increase_size_of_emotion',
+			'\phpbb\db\migration\data\v31x\add_jabber_ssl_context_config_options',
+			'\phpbb\db\migration\data\v31x\add_smtp_ssl_context_config_options',
+			'\phpbb\db\migration\data\v31x\update_hashes',
+			'\phpbb\db\migration\data\v31x\remove_duplicate_migrations',
+			'\phpbb\db\migration\data\v31x\add_latest_topics_index',
+		);
+	}
+
+	public function update_data()
+	{
+		return array(
+			array('config.update', array('version', '3.1.11-RC1')),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v320/.htaccess
@@ -0,0 +1,33 @@
+# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
+# module mod_authz_host to a new module called mod_access_compat (which may be
+# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
+# We could just conditionally provide both versions, but unfortunately Apache
+# does not explicitly tell us its version if the module mod_version is not
+# available. In this case, we check for the availability of module
+# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
+<IfModule mod_version.c>
+	<IfVersion < 2.4>
+		<Files "*">
+			Order Allow,Deny
+			Deny from All
+		</Files>
+	</IfVersion>
+	<IfVersion >= 2.4>
+		<Files "*">
+			Require all denied
+		</Files>
+	</IfVersion>
+</IfModule>
+<IfModule !mod_version.c>
+	<IfModule !mod_authz_core.c>
+		<Files "*">
+			Order Allow,Deny
+			Deny from All
+		</Files>
+	</IfModule>
+	<IfModule mod_authz_core.c>
+		<Files "*">
+			Require all denied
+		</Files>
+	</IfModule>
+</IfModule>
--- a/phpbb/db/migration/data/v320/add_help_phpbb.php
+++ b/phpbb/db/migration/data/v320/add_help_phpbb.php
@@ -32,10 +32,9 @@ class add_help_phpbb extends \phpbb\db\migration\migration
 		return array(
 			array('config.add', array('help_send_statistics', true)),
 			array('config.add', array('help_send_statistics_time', 0)),
-			array('module.remove', array(
-				'acp',
-				false,
-				'ACP_SEND_STATISTICS',
+			array('if', array(
+				array('module.exists', array('acp', false, 'ACP_SEND_STATISTICS')),
+				array('module.remove', array('acp', false, 'ACP_SEND_STATISTICS')),
 			)),
 			array('module.add', array(
 				'acp',
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/.htaccess
@@ -0,0 +1,33 @@
+# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
+# module mod_authz_host to a new module called mod_access_compat (which may be
+# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
+# We could just conditionally provide both versions, but unfortunately Apache
+# does not explicitly tell us its version if the module mod_version is not
+# available. In this case, we check for the availability of module
+# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
+<IfModule mod_version.c>
+	<IfVersion < 2.4>
+		<Files "*">
+			Order Allow,Deny
+			Deny from All
+		</Files>
+	</IfVersion>
+	<IfVersion >= 2.4>
+		<Files "*">
+			Require all denied
+		</Files>
+	</IfVersion>
+</IfModule>
+<IfModule !mod_version.c>
+	<IfModule !mod_authz_core.c>
+		<Files "*">
+			Order Allow,Deny
+			Deny from All
+		</Files>
+	</IfModule>
+	<IfModule mod_authz_core.c>
+		<Files "*">
+			Require all denied
+		</Files>
+	</IfModule>
+</IfModule>
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/cookie_notice_p2.php
@@ -0,0 +1,36 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\db\migration\data\v32x;
+
+class cookie_notice_p2 extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v320\v320',
+		);
+	}
+
+	public function effectively_installed()
+	{
+		return isset($this->config['cookie_notice']);
+	}
+
+	public function update_data()
+	{
+		return array(
+			array('config.add', array('cookie_notice', '0')),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/load_user_activity_limit.php
@@ -0,0 +1,36 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\db\migration\data\v32x;
+
+class load_user_activity_limit extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v320\v320',
+		);
+	}
+
+	public function effectively_installed()
+	{
+		return isset($this->config['load_user_activity_limit']);
+	}
+
+	public function update_data()
+	{
+		return array(
+			array('config.add', array('load_user_activity_limit', '5000')),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/user_notifications_table_index_p1.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\db\migration\data\v32x;
+
+class user_notifications_table_index_p1 extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v32x\cookie_notice_p2',
+		);
+	}
+
+	public function update_schema()
+	{
+		return array(
+			'add_index' => array(
+				$this->table_prefix . 'user_notifications' => array(
+					'user_id'							=> array('user_id'),
+				),
+			),
+		);
+	}
+
+	public function revert_schema()
+	{
+		return array(
+			'drop_keys' => array(
+				$this->table_prefix . 'user_notifications' => array(
+					'user_id',
+				),
+			),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/user_notifications_table_index_p2.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\db\migration\data\v32x;
+
+class user_notifications_table_index_p2 extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v32x\user_notifications_table_index_p1',
+		);
+	}
+
+	public function update_schema()
+	{
+		return array(
+			'add_index' => array(
+				$this->table_prefix . 'user_notifications' => array(
+					'uid_itm_id'					=> array('user_id', 'item_id'),
+				),
+			),
+		);
+	}
+
+	public function revert_schema()
+	{
+		return array(
+			'drop_keys' => array(
+				$this->table_prefix . 'user_notifications' => array(
+					'uid_itm_id',
+				),
+			),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/user_notifications_table_index_p3.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\db\migration\data\v32x;
+
+class user_notifications_table_index_p3 extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v32x\user_notifications_table_index_p2',
+		);
+	}
+
+	public function update_schema()
+	{
+		return array(
+			'add_index' => array(
+				$this->table_prefix . 'user_notifications' => array(
+					'usr_itm_tpe'					=> array('user_id', 'item_type', 'item_id'),
+				),
+			),
+		);
+	}
+
+	public function revert_schema()
+	{
+		return array(
+			'drop_keys' => array(
+				$this->table_prefix . 'user_notifications' => array(
+					'usr_itm_tpe',
+				),
+			),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/user_notifications_table_reduce_column_sizes.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\db\migration\data\v32x;
+
+class user_notifications_table_reduce_column_sizes extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v32x\user_notifications_table_index_p3',
+		);
+	}
+
+	public function update_schema()
+	{
+		return array(
+			'change_columns'	=> array(
+				$this->table_prefix . 'user_notifications'			=> array(
+					'item_type'		=> array('VCHAR:165', ''),
+					'method'		=> array('VCHAR:165', ''),
+				),
+			),
+		);
+	}
+
+	public function revert_schema()
+	{
+		return array(
+			'change_columns'	=> array(
+				$this->table_prefix . 'user_notifications'			=> array(
+					'item_type'		=> array('VCHAR:255', ''),
+					'method'		=> array('VCHAR:255', ''),
+				),
+			),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/user_notifications_table_remove_duplicates.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\db\migration\data\v32x;
+
+class user_notifications_table_remove_duplicates extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v32x\user_notifications_table_temp_index',
+		);
+	}
+
+	public function update_data()
+	{
+		return array(
+			array('custom', array(array($this, 'remove_duplicates'))),
+		);
+	}
+
+	public function remove_duplicates()
+	{
+		$insert_buffer = new \phpbb\db\sql_insert_buffer($this->db, $this->table_prefix . 'user_notifications');
+
+		$sql = "SELECT item_type, item_id, user_id, method, MAX(notify) AS notify
+				FROM {$this->table_prefix}user_notifications
+				GROUP BY item_type, item_id, user_id, method
+				HAVING COUNT(item_type) > 1";
+
+		$result = $this->sql_query($sql);
+		while ($row = $this->db->sql_fetchrow($result))
+		{
+			// Delete the duplicate entries
+			$this->sql_query("DELETE FROM {$this->table_prefix}user_notifications
+								WHERE user_id = {$row['user_id']}
+								  AND item_type = '{$row['item_type']}'
+								  AND method = '{$row['method']}'");
+
+			// And re-insert as a single one
+			$insert_buffer->insert($row);
+		}
+		$this->db->sql_freeresult($result);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/user_notifications_table_temp_index.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\db\migration\data\v32x;
+
+class user_notifications_table_temp_index extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v32x\user_notifications_table_reduce_column_sizes',
+		);
+	}
+
+	public function update_schema()
+	{
+		return array(
+			'add_index' => array(
+				$this->table_prefix . 'user_notifications' => array(
+					'itm_usr_mthd'	=> array('item_type', 'item_id', 'user_id', 'method'),
+				),
+			),
+		);
+	}
+
+	public function revert_schema()
+	{
+		return array(
+			'drop_keys' => array(
+				$this->table_prefix . 'user_notifications' => array(
+					'itm_usr_mthd',
+				),
+			),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/user_notifications_table_unique_index.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\db\migration\data\v32x;
+
+class user_notifications_table_unique_index extends \phpbb\db\migration\migration
+{
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v32x\user_notifications_table_remove_duplicates',
+		);
+	}
+
+	public function update_schema()
+	{
+		return array(
+			'drop_keys'			=> array(
+				$this->table_prefix . 'user_notifications' => array(
+					'itm_usr_mthd',
+				),
+			),
+			'add_unique_index'  => array(
+				$this->table_prefix . 'user_notifications' => array(
+					'itm_usr_mthd'	=> array('item_type', 'item_id', 'user_id', 'method'),
+				),
+			),
+		);
+	}
+
+	public function revert_schema()
+	{
+		return array(
+			'drop_keys' => array(
+				$this->table_prefix . 'user_notifications' => array(
+					'itm_usr_mthd',
+				),
+			),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/v321.php
@@ -0,0 +1,37 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\db\migration\data\v32x;
+
+class v321 extends \phpbb\db\migration\migration
+{
+	public function effectively_installed()
+	{
+		return phpbb_version_compare($this->config['version'], '3.2.1', '>=');
+	}
+
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v32x\v321rc1',
+		);
+
+	}
+
+	public function update_data()
+	{
+		return array(
+			array('config.update', array('version', '3.2.1')),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/migration/data/v32x/v321rc1.php
@@ -0,0 +1,39 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\db\migration\data\v32x;
+
+class v321rc1 extends \phpbb\db\migration\migration
+{
+	public function effectively_installed()
+	{
+		return phpbb_version_compare($this->config['version'], '3.2.1-RC1', '>=');
+	}
+
+	static public function depends_on()
+	{
+		return array(
+			'\phpbb\db\migration\data\v320\v320',
+			'\phpbb\db\migration\data\v31x\v3111rc1',
+			'\phpbb\db\migration\data\v32x\load_user_activity_limit',
+			'\phpbb\db\migration\data\v32x\user_notifications_table_unique_index',
+		);
+	}
+
+	public function update_data()
+	{
+		return array(
+			array('config.update', array('version', '3.2.1-RC1')),
+		);
+	}
+}
--- /dev/null
+++ b/phpbb/db/tools.php
@@ -0,0 +1,21 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\db;
+
+/**
+ * @deprecated	3.2.0-dev	(To be removed 3.3.0) use \phpbb\db\tools\tools instead
+ */
+class tools extends \phpbb\db\tools\tools
+{
+}
--- a/phpbb/db/tools/mssql.php
+++ b/phpbb/db/tools/mssql.php
@@ -477,7 +477,7 @@ class mssql extends tools
 	{
 		$statements = array();
 
-		$statements[] = 'DROP INDEX ' . $table_name . '.' . $index_name;
+		$statements[] = 'DROP INDEX [' . $table_name . '].[' . $index_name . ']';
 
 		return $this->_sql_run_sql($statements);
 	}
@@ -524,7 +524,10 @@ class mssql extends tools
 	{
 		$statements = array();
 
-		$this->check_index_name_length($table_name, $index_name);
+		if ($this->is_sql_server_2000())
+		{
+			$this->check_index_name_length($table_name, $index_name);
+		}
 
 		$statements[] = 'CREATE UNIQUE INDEX [' . $index_name . '] ON [' . $table_name . ']([' . implode('], [', $column) . '])';
 
@@ -538,7 +541,10 @@ class mssql extends tools
 	{
 		$statements = array();
 
-		$this->check_index_name_length($table_name, $index_name);
+		if ($this->is_sql_server_2000())
+		{
+			$this->check_index_name_length($table_name, $index_name);
+		}
 
 		// remove index length
 		$column = preg_replace('#:.*$#', '', $column);
@@ -601,7 +607,7 @@ class mssql extends tools
 		// Change the column
 		$statements[] = 'ALTER TABLE [' . $table_name . '] ALTER COLUMN [' . $column_name . '] ' . $column_data['column_type_sql'];
 
-		if (!empty($column_data['default']))
+		if (!empty($column_data['default']) && !$this->mssql_is_column_identity($table_name, $column_name))
 		{
 			// Add new default value constraint
 			$statements[] = 'ALTER TABLE [' . $table_name . '] ADD CONSTRAINT [DF_' . $table_name . '_' . $column_name . '_1] ' . $column_data['default'] . ' FOR [' . $column_name . ']';
@@ -679,6 +685,37 @@ class mssql extends tools
 	}
 
 	/**
+	 * Checks to see if column is an identity column
+	 *
+	 * Identity columns cannot have defaults set for them.
+	 *
+	 * @param string $table_name
+	 * @param string $column_name
+	 * @return bool		true if identity, false if not
+	 */
+	protected function mssql_is_column_identity($table_name, $column_name)
+	{
+		if ($this->mssql_is_sql_server_2000())
+		{
+			// http://msdn.microsoft.com/en-us/library/aa175912%28v=sql.80%29.aspx
+			// Deprecated in SQL Server 2005
+			$sql = "SELECT COLUMNPROPERTY(object_id('{$table_name}'), '{$column_name}', 'IsIdentity') AS is_identity";
+		}
+		else
+		{
+			$sql = "SELECT is_identity FROM sys.columns
+					WHERE object_id = object_id('{$table_name}')
+					AND name = '{$column_name}'";
+		}
+
+		$result = $this->db->sql_query($sql);
+		$is_identity = $this->db->sql_fetchfield('is_identity');
+		$this->db->sql_freeresult($result);
+
+		return (bool) $is_identity;
+	}
+
+	/**
 	* Get a list with existing indexes for the column
 	*
 	* @param string $table_name
@@ -717,6 +754,7 @@ class mssql extends tools
 						AND cols.object_id = ix.object_id
 				WHERE ix.object_id = object_id('{$table_name}')
 					AND cols.name = '{$column_name}'
+					AND ix.is_primary_key = 0
 					AND ix.is_unique = " . ($unique ? '1' : '0');
 		}
 
--- a/phpbb/db/tools/tools.php
+++ b/phpbb/db/tools/tools.php
@@ -941,16 +941,19 @@ class tools implements tools_interface
 				continue;
 			}
 
-			// These DBMS prefix index name with the table name
 			switch ($this->sql_layer)
 			{
+				// These DBMS prefix index name with the table name
 				case 'oracle':
 				case 'sqlite3':
-					$row[$col] = substr($row[$col], strlen($table_name) + 1);
+					$new_index_name = $this->check_index_name_length($table_name, $table_name . '_' . $index_name, false);
+				break;
+				default:
+					$new_index_name = $this->check_index_name_length($table_name, $index_name, false);
 				break;
 			}
 
-			if (strtolower($row[$col]) == strtolower($index_name))
+			if (strtolower($row[$col]) == strtolower($new_index_name))
 			{
 				$this->db->sql_freeresult($result);
 				return true;
@@ -1359,12 +1362,14 @@ class tools implements tools_interface
 		{
 			case 'mysql_40':
 			case 'mysql_41':
+				$index_name = $this->check_index_name_length($table_name, $index_name, false);
 				$statements[] = 'DROP INDEX ' . $index_name . ' ON ' . $table_name;
 			break;
 
 			case 'oracle':
 			case 'sqlite3':
-				$statements[] = 'DROP INDEX ' . $table_name . '_' . $index_name;
+				$index_name = $this->check_index_name_length($table_name, $table_name . '_' . $index_name, false);
+				$statements[] = 'DROP INDEX ' . $index_name;
 			break;
 		}
 
@@ -1487,17 +1492,17 @@ class tools implements tools_interface
 	{
 		$statements = array();
 
-		$this->check_index_name_length($table_name, $index_name);
-
 		switch ($this->sql_layer)
 		{
 			case 'oracle':
 			case 'sqlite3':
-				$statements[] = 'CREATE UNIQUE INDEX ' . $table_name . '_' . $index_name . ' ON ' . $table_name . '(' . implode(', ', $column) . ')';
+				$index_name = $this->check_index_name_length($table_name, $table_name . '_' . $index_name);
+				$statements[] = 'CREATE UNIQUE INDEX ' . $index_name . ' ON ' . $table_name . '(' . implode(', ', $column) . ')';
 			break;
 
 			case 'mysql_40':
 			case 'mysql_41':
+				$index_name = $this->check_index_name_length($table_name, $index_name);
 				$statements[] = 'ALTER TABLE ' . $table_name . ' ADD UNIQUE INDEX ' . $index_name . '(' . implode(', ', $column) . ')';
 			break;
 		}
@@ -1512,8 +1517,6 @@ class tools implements tools_interface
 	{
 		$statements = array();
 
-		$this->check_index_name_length($table_name, $index_name);
-
 		// remove index length unless MySQL4
 		if ('mysql_40' != $this->sql_layer)
 		{
@@ -1524,7 +1527,8 @@ class tools implements tools_interface
 		{
 			case 'oracle':
 			case 'sqlite3':
-				$statements[] = 'CREATE INDEX ' . $table_name . '_' . $index_name . ' ON ' . $table_name . '(' . implode(', ', $column) . ')';
+				$index_name = $this->check_index_name_length($table_name, $table_name . '_' . $index_name);
+				$statements[] = 'CREATE INDEX ' . $index_name . ' ON ' . $table_name . '(' . implode(', ', $column) . ')';
 			break;
 
 			case 'mysql_40':
@@ -1539,6 +1543,7 @@ class tools implements tools_interface
 				}
 			// no break
 			case 'mysql_41':
+				$index_name = $this->check_index_name_length($table_name, $index_name);
 				$statements[] = 'ALTER TABLE ' . $table_name . ' ADD INDEX ' . $index_name . ' (' . implode(', ', $column) . ')';
 			break;
 		}
@@ -1551,15 +1556,37 @@ class tools implements tools_interface
 	 *
 	 * @param string $table_name
 	 * @param string $index_name
+	 * @param bool $throw_error
+	 * @return string	The index name, shortened if too long
 	 */
-	protected function check_index_name_length($table_name, $index_name)
+	protected function check_index_name_length($table_name, $index_name, $throw_error = true)
 	{
-		$table_prefix = substr(CONFIG_TABLE, 0, -6); // strlen(config)
-		if (strlen($table_name . $index_name) - strlen($table_prefix) > 24)
+		if (strlen($index_name) > 30)
 		{
-			$max_length = strlen($table_prefix) + 24;
-			trigger_error("Index name '{$table_name}_$index_name' on table '$table_name' is too long. The maximum is $max_length characters.", E_USER_ERROR);
+			// Try removing the table prefix if it's at the beginning
+			$table_prefix = substr(CONFIG_TABLE, 0, -6); // strlen(config)
+			if (strpos($index_name, $table_prefix) === 0)
+			{
+				$index_name = substr($index_name, strlen($table_prefix));
+				return $this->check_index_name_length($table_name, $index_name, $throw_error);
+			}
+
+			// Try removing the remaining suffix part of table name then
+			$table_suffix = substr($table_name, strlen($table_prefix));
+			if (strpos($index_name, $table_suffix) === 0)
+			{
+				// Remove the suffix and underscore separator between table_name and index_name
+				$index_name = substr($index_name, strlen($table_suffix) + 1);
+				return $this->check_index_name_length($table_name, $index_name, $throw_error);
+			}
+
+			if ($throw_error)
+			{
+				trigger_error("Index name '$index_name' on table '$table_name' is too long. The maximum is 30 characters.", E_USER_ERROR);
+			}
 		}
+
+		return $index_name;
 	}
 
 	/**
--- a/phpbb/di/extension/core.php
+++ b/phpbb/di/extension/core.php
@@ -24,7 +24,7 @@ use Symfony\Component\HttpKernel\DependencyInjection\Extension;
 */
 class core extends Extension
 {
-	const TWIG_OPTIONS_POSITION = 6;
+	const TWIG_OPTIONS_POSITION = 7;
 
 	/**
 	 * Config path
--- a/phpbb/event/data.php
+++ b/phpbb/event/data.php
@@ -63,4 +63,16 @@ class data extends Event implements \ArrayAccess
 	{
 		unset($this->data[$offset]);
 	}
+
+	/**
+	 * Returns data with updated key in specified offset.
+	 *
+	 * @param	string	$subarray	Data array subarray
+	 * @param	string	$key		Subarray key
+	 * @param	mixed	$value		Value to update
+	 */
+	public function update_subarray($subarray, $key, $value)
+	{
+		$this->data[$subarray][$key] = $value;
+	}
 }
--- a/phpbb/event/php_exporter.php
+++ b/phpbb/event/php_exporter.php
@@ -510,7 +510,7 @@ class php_exporter
 	/**
 	* Find the "@changed" Information lines
 	*
-	* @param string $tag_name Should be 'changed' or 'change'
+	* @param string $tag_name Should be 'change', not 'changed'
 	* @return array Absolute line numbers
 	* @throws \LogicException
 	*/
@@ -658,7 +658,7 @@ class php_exporter
 	{
 		$match = array();
 		$line = str_replace("\t", ' ', ltrim($line, "\t "));
-		preg_match('#^\* @change(d)? (\d+\.\d+\.\d+(?:-(?:a|b|RC|pl)\d+)?)( (?:.*))?$#', $line, $match);
+		preg_match('#^\* @changed (\d+\.\d+\.\d+(?:-(?:a|b|RC|pl)\d+)?)( (?:.*))?$#', $line, $match);
 		if (!isset($match[2]))
 		{
 			throw new \LogicException("Invalid '@changed' information for event "
--- a/phpbb/extension/manager.php
+++ b/phpbb/extension/manager.php
@@ -152,7 +152,12 @@ class manager
 	*/
 	public function create_extension_metadata_manager($name)
 	{
-		return new \phpbb\extension\metadata_manager($name, $this->config, $this, $this->phpbb_root_path);
+		if (!isset($this->extensions[$name]['metadata']))
+		{
+			$metadata = new \phpbb\extension\metadata_manager($name, $this->get_extension_path($name, true));
+			$this->extensions[$name]['metadata'] = $metadata;
+		}
+		return $this->extensions[$name]['metadata'];
 	}
 
 	/**
@@ -168,7 +173,7 @@ class manager
 	public function enable_step($name)
 	{
 		// ignore extensions that are already enabled
-		if (isset($this->extensions[$name]) && $this->extensions[$name]['ext_active'])
+		if ($this->is_enabled($name))
 		{
 			return false;
 		}
@@ -257,8 +262,8 @@ class manager
 	*/
 	public function disable_step($name)
 	{
-		// ignore extensions that are already disabled
-		if (!isset($this->extensions[$name]) || !$this->extensions[$name]['ext_active'])
+		// ignore extensions that are not enabled
+		if (!$this->is_enabled($name))
 		{
 			return false;
 		}
@@ -336,8 +341,8 @@ class manager
 	*/
 	public function purge_step($name)
 	{
-		// ignore extensions that do not exist
-		if (!isset($this->extensions[$name]))
+		// ignore extensions that are not configured
+		if (!$this->is_configured($name))
 		{
 			return false;
 		}
@@ -431,25 +436,11 @@ class manager
 			if ($file_info->isFile() && $file_info->getFilename() == 'composer.json')
 			{
 				$ext_name = $iterator->getInnerIterator()->getSubPath();
-				$composer_file = $iterator->getPath() . '/composer.json';
-
-				// Ignore the extension if there is no composer.json.
-				if (!is_readable($composer_file) || !($ext_info = file_get_contents($composer_file)))
-				{
-					continue;
-				}
-
-				$ext_info = json_decode($ext_info, true);
 				$ext_name = str_replace(DIRECTORY_SEPARATOR, '/', $ext_name);
-
-				// Ignore the extension if directory depth is not correct or if the directory structure
-				// does not match the name value specified in composer.json.
-				if (substr_count($ext_name, '/') !== 1 || !isset($ext_info['name']) || $ext_name != $ext_info['name'])
+				if ($this->is_available($ext_name))
 				{
-					continue;
+					$available[$ext_name] = $this->get_extension_path($ext_name, true);
 				}
-
-				$available[$ext_name] = $this->phpbb_root_path . 'ext/' . $ext_name . '/';
 			}
 		}
 		ksort($available);
@@ -472,8 +463,12 @@ class manager
 		$configured = array();
 		foreach ($this->extensions as $name => $data)
 		{
-			$data['ext_path'] = ($phpbb_relative ? $this->phpbb_root_path : '') . $data['ext_path'];
-			$configured[$name] = $data;
+			if ($this->is_configured($name))
+			{
+				unset($data['metadata']);
+				$data['ext_path'] = ($phpbb_relative ? $this->phpbb_root_path : '') . $data['ext_path'];
+				$configured[$name] = $data;
+			}
 		}
 		return $configured;
 	}
@@ -490,7 +485,7 @@ class manager
 		$enabled = array();
 		foreach ($this->extensions as $name => $data)
 		{
-			if ($data['ext_active'])
+			if ($this->is_enabled($name))
 			{
 				$enabled[$name] = ($phpbb_relative ? $this->phpbb_root_path : '') . $data['ext_path'];
 			}
@@ -511,7 +506,7 @@ class manager
 		$disabled = array();
 		foreach ($this->extensions as $name => $data)
 		{
-			if (!$data['ext_active'])
+			if ($this->is_disabled($name))
 			{
 				$disabled[$name] = ($phpbb_relative ? $this->phpbb_root_path : '') . $data['ext_path'];
 			}
@@ -527,7 +522,15 @@ class manager
 	*/
 	public function is_available($name)
 	{
-		return file_exists($this->get_extension_path($name, true));
+		$md_manager = $this->create_extension_metadata_manager($name);
+		try
+		{
+			return $md_manager->get_metadata('all') && $md_manager->validate_enable();
+		}
+		catch (\phpbb\extension\exception $e)
+		{
+			return false;
+		}
 	}
 
 	/**
@@ -538,7 +541,7 @@ class manager
 	*/
 	public function is_enabled($name)
 	{
-		return isset($this->extensions[$name]) && $this->extensions[$name]['ext_active'];
+		return isset($this->extensions[$name]['ext_active']) && $this->extensions[$name]['ext_active'];
 	}
 
 	/**
@@ -549,7 +552,7 @@ class manager
 	*/
 	public function is_disabled($name)
 	{
-		return isset($this->extensions[$name]) && !$this->extensions[$name]['ext_active'];
+		return isset($this->extensions[$name]['ext_active']) && !$this->extensions[$name]['ext_active'];
 	}
 
 	/**
@@ -563,7 +566,7 @@ class manager
 	*/
 	public function is_configured($name)
 	{
-		return isset($this->extensions[$name]);
+		return isset($this->extensions[$name]['ext_active']);
 	}
 
 	/**
@@ -573,7 +576,7 @@ class manager
 	* @param bool $force_update Ignores cached data. Defaults to false.
 	* @param bool $force_cache Force the use of the cache. Override $force_update.
 	* @param string $stability Force the stability (null by default).
-	* @return string
+	* @return array
 	* @throws runtime_exception
 	*/
 	public function version_check(\phpbb\extension\metadata_manager $md_manager, $force_update = false, $force_cache = false, $stability = null)
@@ -589,10 +592,10 @@ class manager
 
 		$version_helper = new \phpbb\version_helper($this->cache, $this->config, new file_downloader());
 		$version_helper->set_current_version($meta['version']);
-		$version_helper->set_file_location($version_check['host'], $version_check['directory'], $version_check['filename']);
+		$version_helper->set_file_location($version_check['host'], $version_check['directory'], $version_check['filename'], isset($version_check['ssl']) ? $version_check['ssl'] : false);
 		$version_helper->force_stability($stability);
 
-		return $updates = $version_helper->get_suggested_updates($force_update, $force_cache);
+		return $version_helper->get_ext_update_on_branch($force_update, $force_cache);
 	}
 
 	/**
--- a/phpbb/extension/metadata_manager.php
+++ b/phpbb/extension/metadata_manager.php
@@ -19,24 +19,6 @@ namespace phpbb\extension;
 class metadata_manager
 {
 	/**
-	* phpBB Config instance
-	* @var \phpbb\config\config
-	*/
-	protected $config;
-
-	/**
-	* phpBB Extension Manager
-	* @var \phpbb\extension\manager
-	*/
-	protected $extension_manager;
-
-	/**
-	* phpBB root path
-	* @var string
-	*/
-	protected $phpbb_root_path;
-
-	/**
 	* Name (including vendor) of the extension
 	* @var string
 	*/
@@ -58,19 +40,13 @@ class metadata_manager
 	* Creates the metadata manager
 	*
 	* @param string				$ext_name			Name (including vendor) of the extension
-	* @param \phpbb\config\config		$config				phpBB Config instance
-	* @param \phpbb\extension\manager	$extension_manager	An instance of the phpBB extension manager
-	* @param string				$phpbb_root_path	Path to the phpbb includes directory.
+	* @param string				$ext_path			Path to the extension directory including root path
 	*/
-	public function __construct($ext_name, \phpbb\config\config $config, \phpbb\extension\manager $extension_manager, $phpbb_root_path)
+	public function __construct($ext_name, $ext_path)
 	{
-		$this->config = $config;
-		$this->extension_manager = $extension_manager;
-		$this->phpbb_root_path = $phpbb_root_path;
-
 		$this->ext_name = $ext_name;
 		$this->metadata = array();
-		$this->metadata_file = '';
+		$this->metadata_file = $ext_path . 'composer.json';
 	}
 
 	/**
@@ -81,92 +57,56 @@ class metadata_manager
 	*/
 	public function get_metadata($element = 'all')
 	{
-		$this->set_metadata_file();
-
-		// Fetch the metadata
-		$this->fetch_metadata();
-
-		// Clean the metadata
-		$this->clean_metadata_array();
+		// Fetch and clean the metadata if not done yet
+		if ($this->metadata === array())
+		{
+			$this->fetch_metadata_from_file();
+		}
 
 		switch ($element)
 		{
 			case 'all':
 			default:
-				// Validate the metadata
-				if (!$this->validate())
-				{
-					return false;
-				}
-
+				$this->validate();
 				return $this->metadata;
 			break;
 
 			case 'version':
 			case 'name':
-				return ($this->validate($element)) ? $this->metadata[$element] : false;
+				$this->validate($element);
+				return $this->metadata[$element];
 			break;
 
 			case 'display-name':
-				if (isset($this->metadata['extra']['display-name']))
-				{
-					return $this->metadata['extra']['display-name'];
-				}
-				else
-				{
-					return ($this->validate('name')) ? $this->metadata['name'] : false;
-				}
+				return (isset($this->metadata['extra']['display-name'])) ? $this->metadata['extra']['display-name'] : $this->get_metadata('name');
 			break;
 		}
 	}
 
 	/**
-	* Sets the filepath of the metadata file
+	* Gets the metadata file contents and cleans loaded file
 	*
 	* @throws \phpbb\extension\exception
 	*/
-	private function set_metadata_file()
+	private function fetch_metadata_from_file()
 	{
-		$ext_filepath = $this->extension_manager->get_extension_path($this->ext_name);
-		$metadata_filepath = $this->phpbb_root_path . $ext_filepath . 'composer.json';
-
-		$this->metadata_file = $metadata_filepath;
-
 		if (!file_exists($this->metadata_file))
 		{
 			throw new \phpbb\extension\exception('FILE_NOT_FOUND', array($this->metadata_file));
 		}
-	}
 
-	/**
-	* Gets the contents of the composer.json file
-	*
-	* @return bool True if success, throws an exception on failure
-	* @throws \phpbb\extension\exception
-	*/
-	private function fetch_metadata()
-	{
-		if (!file_exists($this->metadata_file))
+		if (!($file_contents = file_get_contents($this->metadata_file)))
 		{
-			throw new \phpbb\extension\exception('FILE_NOT_FOUND', array($this->metadata_file));
+			throw new \phpbb\extension\exception('FILE_CONTENT_ERR', array($this->metadata_file));
 		}
-		else
-		{
-			if (!($file_contents = file_get_contents($this->metadata_file)))
-			{
-				throw new \phpbb\extension\exception('FILE_CONTENT_ERR', array($this->metadata_file));
-			}
-
-			if (($metadata = json_decode($file_contents, true)) === null)
-			{
-				throw new \phpbb\extension\exception('FILE_JSON_DECODE_ERR', array($this->metadata_file));
-			}
-
-			array_walk_recursive($metadata, array($this, 'sanitize_json'));
-			$this->metadata = $metadata;
 
-			return true;
+		if (($metadata = json_decode($file_contents, true)) === null)
+		{
+			throw new \phpbb\extension\exception('FILE_JSON_DECODE_ERR', array($this->metadata_file));
 		}
+
+		array_walk_recursive($metadata, array($this, 'sanitize_json'));
+		$this->metadata = $metadata;
 	}
 
 	/**
@@ -181,16 +121,6 @@ class metadata_manager
 	}
 
 	/**
-	* This array handles the cleaning of the array
-	*
-	* @return array Contains the cleaned metadata array
-	*/
-	private function clean_metadata_array()
-	{
-		return $this->metadata;
-	}
-
-	/**
 	* Validate fields
 	*
 	* @param string $name  ("all" for display and enable validation
@@ -212,10 +142,8 @@ class metadata_manager
 		switch ($name)
 		{
 			case 'all':
-				$this->validate('display');
-
 				$this->validate_enable();
-			break;
+			// no break
 
 			case 'display':
 				foreach ($fields as $field => $data)
@@ -272,40 +200,43 @@ class metadata_manager
 	/**
 	* This array handles the verification that this extension can be enabled on this board
 	*
-	* @return bool True if validation succeeded, False if failed
+	* @return bool True if validation succeeded, throws an exception if invalid
+	* @throws \phpbb\extension\exception
 	*/
 	public function validate_enable()
 	{
 		// Check for valid directory & phpBB, PHP versions
-		if (!$this->validate_dir() || !$this->validate_require_phpbb() || !$this->validate_require_php())
-		{
-			return false;
-		}
-
-		return true;
+		return $this->validate_dir() && $this->validate_require_phpbb() && $this->validate_require_php();
 	}
 
 	/**
 	* Validates the most basic directory structure to ensure it follows <vendor>/<ext> convention.
 	*
-	* @return boolean True when passes validation
+	* @return boolean True when passes validation, throws an exception if invalid
+	* @throws \phpbb\extension\exception
 	*/
 	public function validate_dir()
 	{
-		return (substr_count($this->ext_name, '/') === 1 && $this->ext_name == $this->get_metadata('name'));
+		if (substr_count($this->ext_name, '/') !== 1 || $this->ext_name != $this->get_metadata('name'))
+		{
+			throw new \phpbb\extension\exception('EXTENSION_DIR_INVALID');
+		}
+
+		return true;
 	}
 
 
 	/**
 	* Validates the contents of the phpbb requirement field
 	*
-	* @return boolean True when passes validation
+	* @return boolean True when passes validation, throws an exception if invalid
+	* @throws \phpbb\extension\exception
 	*/
 	public function validate_require_phpbb()
 	{
 		if (!isset($this->metadata['extra']['soft-require']['phpbb/phpbb']))
 		{
-			return false;
+			throw new \phpbb\extension\exception('META_FIELD_NOT_SET', array('soft-require'));
 		}
 
 		return true;
@@ -314,51 +245,16 @@ class metadata_manager
 	/**
 	* Validates the contents of the php requirement field
 	*
-	* @return boolean True when passes validation
+	* @return boolean True when passes validation, throws an exception if invalid
+	* @throws \phpbb\extension\exception
 	*/
 	public function validate_require_php()
 	{
 		if (!isset($this->metadata['require']['php']))
 		{
-			return false;
+			throw new \phpbb\extension\exception('META_FIELD_NOT_SET', array('require php'));
 		}
 
 		return true;
 	}
-
-	/**
-	* Outputs the metadata into the template
-	*
-	* @param \phpbb\template\template	$template	phpBB Template instance
-	*/
-	public function output_template_data(\phpbb\template\template $template)
-	{
-		$template->assign_vars(array(
-			'META_NAME'			=> $this->metadata['name'],
-			'META_TYPE'			=> $this->metadata['type'],
-			'META_DESCRIPTION'	=> (isset($this->metadata['description'])) ? $this->metadata['description'] : '',
-			'META_HOMEPAGE'		=> (isset($this->metadata['homepage'])) ? $this->metadata['homepage'] : '',
-			'META_VERSION'		=> (isset($this->metadata['version'])) ? $this->metadata['version'] : '',
-			'META_TIME'			=> (isset($this->metadata['time'])) ? $this->metadata['time'] : '',
-			'META_LICENSE'		=> $this->metadata['license'],
-
-			'META_REQUIRE_PHP'		=> (isset($this->metadata['require']['php'])) ? $this->metadata['require']['php'] : '',
-			'META_REQUIRE_PHP_FAIL'	=> !$this->validate_require_php(),
-
-			'META_REQUIRE_PHPBB'		=> (isset($this->metadata['extra']['soft-require']['phpbb/phpbb'])) ? $this->metadata['extra']['soft-require']['phpbb/phpbb'] : '',
-			'META_REQUIRE_PHPBB_FAIL'	=> !$this->validate_require_phpbb(),
-
-			'META_DISPLAY_NAME'	=> (isset($this->metadata['extra']['display-name'])) ? $this->metadata['extra']['display-name'] : '',
-		));
-
-		foreach ($this->metadata['authors'] as $author)
-		{
-			$template->assign_block_vars('meta_authors', array(
-				'AUTHOR_NAME'		=> $author['name'],
-				'AUTHOR_EMAIL'		=> (isset($author['email'])) ? $author['email'] : '',
-				'AUTHOR_HOMEPAGE'	=> (isset($author['homepage'])) ? $author['homepage'] : '',
-				'AUTHOR_ROLE'		=> (isset($author['role'])) ? $author['role'] : '',
-			));
-		}
-	}
 }
--- a/phpbb/files/filespec.php
+++ b/phpbb/files/filespec.php
@@ -129,7 +129,7 @@ class filespec
 		$this->class_initialized = true;
 		$this->filename = $upload_ary['tmp_name'];
 		$this->filesize = $upload_ary['size'];
-		$name = (STRIP) ? stripslashes($upload_ary['name']) : $upload_ary['name'];
+		$name = $upload_ary['name'];
 		$name = trim(utf8_basename($name));
 		$this->realname = $this->uploadname = $name;
 		$this->mimetype = $upload_ary['type'];
--- a/phpbb/help/controller/help.php
+++ b/phpbb/help/controller/help.php
@@ -64,6 +64,7 @@ class help
 	 */
 	public function handle($mode)
 	{
+		$template_file = 'faq_body.html';
 		switch ($mode)
 		{
 			case 'faq':
@@ -85,13 +86,16 @@ class help
 				 * @var	string	lang_file		Language file containing the help data
 				 * @var	string	ext_name		Vendor and extension name where the help
 				 *								language file can be loaded from
+				 * @var	string	template_file	Template file name
 				 * @since 3.1.4-RC1
+				 * @changed 3.1.11-RC1 Added template_file var
 				 */
 				$vars = array(
 					'page_title',
 					'mode',
 					'lang_file',
 					'ext_name',
+					'template_file',
 				);
 				extract($this->dispatcher->trigger_event('core.faq_mode_validation', compact($vars)));
 
@@ -113,7 +117,7 @@ class help
 		$this->assign_to_template($this->user->help);
 
 		make_jumpbox(append_sid("{$this->root_path}viewforum.{$this->php_ext}"));
-		return $this->helper->render('faq_body.html', $page_title);
+		return $this->helper->render($template_file, $page_title);
 	}
 
 	/**
--- a/phpbb/help/manager.php
+++ b/phpbb/help/manager.php
@@ -18,7 +18,7 @@ namespace phpbb\help;
  */
 class manager
 {
-	/** @var \phpbb\event\dispatcher */
+	/** @var \phpbb\event\dispatcher_interface */
 	protected $dispatcher;
 
 	/** @var \phpbb\language\language */
@@ -33,11 +33,11 @@ class manager
 	/**
 	 * Constructor
 	 *
-	 * @param \phpbb\event\dispatcher $dispatcher
+	 * @param \phpbb\event\dispatcher_interface $dispatcher
 	 * @param \phpbb\language\language $language
 	 * @param \phpbb\template\template $template
 	 */
-	public function __construct(\phpbb\event\dispatcher $dispatcher, \phpbb\language\language $language, \phpbb\template\template $template)
+	public function __construct(\phpbb\event\dispatcher_interface $dispatcher, \phpbb\language\language $language, \phpbb\template\template $template)
 	{
 		$this->dispatcher = $dispatcher;
 		$this->language = $language;
--- a/phpbb/install/helper/database.php
+++ b/phpbb/install/helper/database.php
@@ -336,6 +336,15 @@ class database
 			);
 		}
 
+		// Check if SQLite database is writable
+		if ($dbms_info['SCHEMA'] === 'sqlite'
+			&& (!$this->filesystem->is_writable($dbhost) || !$this->filesystem->is_writable(pathinfo($dbhost, PATHINFO_DIRNAME))))
+		{
+			$errors[] = array(
+				'title' =>'INST_ERR_DB_NO_WRITABLE',
+			);
+		}
+
 		// Try to connect to db
 		if (is_array($db->sql_connect($dbhost, $dbuser, $dbpass, $dbname, $dbport, false, true)))
 		{
--- a/phpbb/install/helper/file_updater/ftp_file_updater.php
+++ b/phpbb/install/helper/file_updater/ftp_file_updater.php
@@ -47,7 +47,7 @@ class ftp_file_updater implements file_updater_interface
 	 * @param string		$phpbb_root_path
 	 * @param string		$php_ext
 	 */
-	public function __constructor(update_helper $update_helper, $phpbb_root_path, $php_ext)
+	public function __construct(update_helper $update_helper, $phpbb_root_path, $php_ext)
 	{
 		$this->transfer			= null;
 		$this->update_helper	= $update_helper;
--- /dev/null
+++ b/phpbb/install/module/install_data/task/create_search_index.php
@@ -0,0 +1,134 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\install\module\install_data\task;
+
+use phpbb\auth\auth;
+use phpbb\db\driver\driver_interface;
+use phpbb\event\dispatcher;
+use phpbb\config\config;
+use phpbb\install\helper\container_factory;
+use phpbb\language\language;
+use phpbb\search\fulltext_native;
+use phpbb\user;
+
+class create_search_index extends \phpbb\install\task_base
+{
+	/**
+	 * @var auth
+	 */
+	protected $auth;
+
+	/**
+	 * @var config
+	 */
+	protected $config;
+
+	/**
+	 * @var driver_interface
+	 */
+	protected $db;
+
+	/**
+	 * @var dispatcher
+	 */
+	protected $phpbb_dispatcher;
+
+	/**
+	 * @var language
+	 */
+	protected $language;
+
+	/**
+	 * @var user
+	 */
+	protected $user;
+
+	/**
+	 * @var string phpBB root path
+	 */
+	protected $phpbb_root_path;
+
+	/**
+	 * @var string PHP file extension
+	 */
+	protected $php_ext;
+
+	/**
+	 * Constructor
+	 *
+	 * @param config				$config				phpBB config
+	 * @param container_factory		$container			Installer's DI container
+	 * @param string				$phpbb_root_path	phpBB root path
+	 * @param string				$php_ext			PHP file extension
+	 */
+	public function __construct(config $config, container_factory $container,
+								$phpbb_root_path, $php_ext)
+	{
+		$this->auth				= $container->get('auth');
+		$this->config			= $config;
+		$this->db				= $container->get('dbal.conn');
+		$this->language			= $container->get('language');
+		$this->phpbb_dispatcher = $container->get('dispatcher');
+		$this->user 			= $container->get('user');
+
+		parent::__construct(true);
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function run()
+	{
+		// Make sure fulltext native load update is set
+		$this->config->set('fulltext_native_load_upd', 1);
+
+		$error = false;
+		$search = new fulltext_native(
+			$error,
+			$this->phpbb_root_path,
+			$this->php_ext,
+			$this->auth,
+			$this->config,
+			$this->db,
+			$this->user,
+			$this->phpbb_dispatcher
+		);
+
+		$sql = 'SELECT post_id, post_subject, post_text, poster_id, forum_id
+			FROM ' . POSTS_TABLE;
+		$result = $this->db->sql_query($sql);
+
+		while ($row = $this->db->sql_fetchrow($result))
+		{
+			$search->index('post', $row['post_id'], $row['post_text'], $row['post_subject'], $row['poster_id'], $row['forum_id']);
+		}
+		$this->db->sql_freeresult($result);
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	static public function get_step_count()
+	{
+		return 1;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function get_task_lang_name()
+	{
+		return 'TASK_CREATE_SEARCH_INDEX';
+	}
+}
--- a/phpbb/install/module/obtain_data/task/obtain_email_data.php
+++ b/phpbb/install/module/obtain_data/task/obtain_email_data.php
@@ -84,7 +84,7 @@ class obtain_email_data extends \phpbb\install\task_base implements \phpbb\insta
 			$email_form = array(
 				'email_enable' => array(
 					'label'			=> 'ENABLE_EMAIL',
-					'description'	=> 'COOKIE_SECURE_EXPLAIN',
+					'description'	=> 'ENABLE_EMAIL_EXPLAIN',
 					'type'			=> 'radio',
 					'options'		=> array(
 						array(
--- a/phpbb/install/module/update_filesystem/task/diff_files.php
+++ b/phpbb/install/module/update_filesystem/task/diff_files.php
@@ -132,41 +132,62 @@ class diff_files extends task_base
 			$file_contents = array();
 
 			// Handle the special case when user created a file with the filename that is now new in the core
-			$file_contents[0] = (file_exists($old_path . $filename)) ? file_get_contents($old_path . $filename) : '';
+			if (file_exists($old_path . $filename))
+			{
+				$file_contents[0] = file_get_contents($old_path . $filename);
 
-			$filenames = array(
-				$this->phpbb_root_path . $filename,
-				$new_path . $filename
-			);
+				$filenames = array(
+					$this->phpbb_root_path . $filename,
+					$new_path . $filename
+				);
 
-			foreach ($filenames as $file_to_diff)
-			{
-				$file_contents[] = file_get_contents($file_to_diff);
+				foreach ($filenames as $file_to_diff)
+				{
+					$file_contents[] = file_get_contents($file_to_diff);
+
+					if ($file_contents[sizeof($file_contents) - 1] === false)
+					{
+						$this->iohandler->add_error_message(array('FILE_DIFFER_ERROR_FILE_CANNOT_BE_READ', $files_to_diff));
+						unset($file_contents);
+						throw new user_interaction_required_exception();
+					}
+				}
 
-				if ($file_contents[sizeof($file_contents) - 1] === false)
+				$diff = new \diff3($file_contents[0], $file_contents[1], $file_contents[2]);
+				unset($file_contents);
+
+				// Handle conflicts
+				if ($diff->get_num_conflicts() !== 0)
 				{
-					$this->iohandler->add_error_message(array('FILE_DIFFER_ERROR_FILE_CANNOT_BE_READ', $files_to_diff));
-					unset($file_contents);
-					throw new user_interaction_required_exception();
+					$merge_conflicts[] = $filename;
 				}
-			}
 
-			$diff = new \diff3($file_contents[0], $file_contents[1], $file_contents[2]);
-			unset($file_contents);
+				// Save merged output
+				$this->cache->put(
+					'_file_' . md5($filename),
+					base64_encode(implode("\n", $diff->merged_output()))
+				);
 
-			// Handle conflicts
-			if ($diff->get_num_conflicts() !== 0)
-			{
-				$merge_conflicts[] = $filename;
+				unset($diff);
 			}
+			else
+			{
+				$new_file_content = file_get_contents($new_path . $filename);
 
-			// Save merged output
-			$this->cache->put(
-				'_file_' . md5($filename),
-				base64_encode(implode("\n", $diff->merged_output()))
-			);
+				if ($new_file_content === false)
+				{
+					$this->iohandler->add_error_message(array('FILE_DIFFER_ERROR_FILE_CANNOT_BE_READ', $files_to_diff));
+					unset($new_file_content );
+					throw new user_interaction_required_exception();
+				}
 
-			unset($diff);
+				// Save new file content to cache
+				$this->cache->put(
+					'_file_' . md5($filename),
+					base64_encode($new_file_content)
+				);
+				unset($new_file_content);
+			}
 
 			$progress_count++;
 			$this->iohandler->set_progress('UPDATE_FILE_DIFF', $progress_count);
--- a/phpbb/module/module_manager.php
+++ b/phpbb/module/module_manager.php
@@ -208,7 +208,7 @@ class module_manager
 			WHERE m1.module_class = '" . $this->db->sql_escape($module_class) . "'
 				AND m2.module_class = '" . $this->db->sql_escape($module_class) . "'
 				AND m1.module_id = $module_id
-			ORDER BY m2.left_id DESC";
+			ORDER BY m2.left_id";
 		$result = $this->db->sql_query($sql);
 
 		while ($row = $this->db->sql_fetchrow($result))
--- a/phpbb/pagination.php
+++ b/phpbb/pagination.php
@@ -284,7 +284,7 @@ class pagination
 	*/
 	public function get_on_page($per_page, $start)
 	{
-		return floor($start / $per_page) + 1;
+		return floor((int) $start / (int) $per_page) + 1;
 	}
 
 	/**
--- a/phpbb/passwords/driver/md5_phpbb2.php
+++ b/phpbb/passwords/driver/md5_phpbb2.php
@@ -95,7 +95,7 @@ class md5_phpbb2 extends base
 
 		// in phpBB2 passwords were used exactly as they were sent, with addslashes applied
 		$password_old_format = isset($_REQUEST['password']) ? (string) $_REQUEST['password'] : '';
-		$password_old_format = (!STRIP) ? addslashes($password_old_format) : $password_old_format;
+		$password_old_format = addslashes($password_old_format);
 		$password_new_format = $this->request->variable('password', '', true);
 
 		if ($super_globals_disabled)
--- a/phpbb/profilefields/type/type_date.php
+++ b/phpbb/profilefields/type/type_date.php
@@ -72,7 +72,7 @@ class type_date extends type_base
 			'lang_options'			=> $field_data['lang_options'],
 		);
 
-		$always_now = $request->variable('always_now', -1);
+		$always_now = $this->request->variable('always_now', -1);
 		if ($always_now == -1)
 		{
 			$s_checked = ($field_data['field_default_value'] == 'now') ? true : false;
@@ -264,7 +264,7 @@ class type_date extends type_base
 		}
 
 		$profile_row['s_year_options'] = '<option value="0"' . ((!$year) ? ' selected="selected"' : '') . '>--</option>';
-		for ($i = $now['year'] - 100; $i <= $now['year'] + 100; $i++)
+		for ($i = 1901; $i <= $now['year'] + 50; $i++)
 		{
 			$profile_row['s_year_options'] .= '<option value="' . $i . '"' . (($i == $year) ? ' selected="selected"' : '') . ">$i</option>";
 		}
--- a/phpbb/request/request.php
+++ b/phpbb/request/request.php
@@ -169,12 +169,6 @@ class request implements \phpbb\request\request_interface
 				$GLOBALS[$this->super_globals[$super_global]][$var_name] = $value;
 			}
 		}
-
-		if (!$this->super_globals_disabled())
-		{
-			unset($GLOBALS[$this->super_globals[$super_global]][$var_name]);
-			$GLOBALS[$this->super_globals[$super_global]][$var_name] = $value;
-		}
 	}
 
 	/**
--- a/phpbb/search/fulltext_mysql.php
+++ b/phpbb/search/fulltext_mysql.php
@@ -272,6 +272,27 @@ class fulltext_mysql extends \phpbb\search\base
 
 		foreach ($this->split_words as $i => $word)
 		{
+			// Check for not allowed search queries for InnoDB.
+			// We assume similar restrictions for MyISAM, which is usually even
+			// slower but not as restrictive as InnoDB.
+			// InnoDB full-text search does not support the use of a leading
+			// plus sign with wildcard ('+*'), a plus and minus sign
+			// combination ('+-'), or leading a plus and minus sign combination.
+			// InnoDB full-text search only supports leading plus or minus signs.
+			// For example, InnoDB supports '+apple' but does not support 'apple+'.
+			// Specifying a trailing plus or minus sign causes InnoDB to report
+			// a syntax error. InnoDB full-text search does not support the use
+			// of multiple operators on a single search word, as in this example:
+			// '++apple'. Use of multiple operators on a single search word
+			// returns a syntax error to standard out.
+			// Also, ensure that the wildcard character is only used at the
+			// end of the line as it's intended by MySQL.
+			if (preg_match('#^(\+[+-]|\+\*|.+[+-]$|.+\*(?!$))#', $word))
+			{
+				unset($this->split_words[$i]);
+				continue;
+			}
+
 			$clean_word = preg_replace('#^[+\-|"]#', '', $word);
 
 			// check word length
--- a/phpbb/search/fulltext_native.php
+++ b/phpbb/search/fulltext_native.php
@@ -120,7 +120,7 @@ class fulltext_native extends \phpbb\search\base
 		$this->phpbb_dispatcher = $phpbb_dispatcher;
 		$this->user = $user;
 
-		$this->word_length = array('min' => $this->config['fulltext_native_min_chars'], 'max' => $this->config['fulltext_native_max_chars']);
+		$this->word_length = array('min' => (int) $this->config['fulltext_native_min_chars'], 'max' => (int) $this->config['fulltext_native_max_chars']);
 
 		/**
 		* Load the UTF tools
--- a/phpbb/session.php
+++ b/phpbb/session.php
@@ -461,6 +461,9 @@ class session
 						$this->data['is_bot'] = (!$this->data['is_registered'] && $this->data['user_id'] != ANONYMOUS) ? true : false;
 						$this->data['user_lang'] = basename($this->data['user_lang']);
 
+						// Is user banned? Are they excluded? Won't return on ban, exists within method
+						$this->check_ban_for_current_session($config);
+
 						return true;
 					}
 				}
@@ -675,19 +678,7 @@ class session
 		// session exists in which case session_id will also be set
 
 		// Is user banned? Are they excluded? Won't return on ban, exists within method
-		if ($this->data['user_type'] != USER_FOUNDER)
-		{
-			if (!$config['forwarded_for_check'])
-			{
-				$this->check_ban($this->data['user_id'], $this->ip);
-			}
-			else
-			{
-				$ips = explode(' ', $this->forwarded_for);
-				$ips[] = $this->ip;
-				$this->check_ban($this->data['user_id'], $ips);
-			}
-		}
+		$this->check_ban_for_current_session($config);
 
 		$this->data['is_registered'] = (!$bot && $this->data['user_id'] != ANONYMOUS && ($this->data['user_type'] == USER_NORMAL || $this->data['user_type'] == USER_FOUNDER)) ? true : false;
 		$this->data['is_bot'] = ($bot) ? true : false;
@@ -1285,9 +1276,6 @@ class session
 			$message .= ($ban_row['ban_give_reason']) ? '<br /><br />' . sprintf($this->lang['BOARD_BAN_REASON'], $ban_row['ban_give_reason']) : '';
 			$message .= '<br /><br /><em>' . $this->lang['BAN_TRIGGERED_BY_' . strtoupper($ban_triggered_by)] . '</em>';
 
-			// To circumvent session_begin returning a valid value and the check_ban() not called on second page view, we kill the session again
-			$this->session_kill(false);
-
 			// A very special case... we are within the cron script which is not supposed to print out the ban message... show blank page
 			if (defined('IN_CRON'))
 			{
@@ -1296,6 +1284,9 @@ class session
 				exit;
 			}
 
+			// To circumvent session_begin returning a valid value and the check_ban() not called on second page view, we kill the session again
+			$this->session_kill(false);
+
 			trigger_error($message);
 		}
 
@@ -1303,6 +1294,28 @@ class session
 	}
 
 	/**
+	 * Check the current session for bans
+	 *
+	 * @return true if session user is banned.
+	 */
+	protected function check_ban_for_current_session($config)
+	{
+		if (!defined('SKIP_CHECK_BAN') && $this->data['user_type'] != USER_FOUNDER)
+		{
+			if (!$config['forwarded_for_check'])
+			{
+				$this->check_ban($this->data['user_id'], $this->ip);
+			}
+			else
+			{
+				$ips = explode(' ', $this->forwarded_for);
+				$ips[] = $this->ip;
+				$this->check_ban($this->data['user_id'], $ips);
+			}
+		}
+	}
+
+	/**
 	* Check if ip is blacklisted
 	* This should be called only where absolutely necessary
 	*
@@ -1593,7 +1606,7 @@ class session
 		}
 
 		// Only update session DB a minute or so after last update or if page changes
-		if ($this->time_now - $this->data['session_time'] > 60 || ($this->update_session_page && $this->data['session_page'] != $this->page['page']))
+		if ($this->time_now - ((isset($this->data['session_time'])) ? $this->data['session_time'] : 0) > 60 || ($this->update_session_page && $this->data['session_page'] != $this->page['page']))
 		{
 			$sql_ary = array('session_time' => $this->time_now);
 
--- a/phpbb/template/base.php
+++ b/phpbb/template/base.php
@@ -107,6 +107,27 @@ abstract class base implements template
 	/**
 	* {@inheritdoc}
 	*/
+	public function retrieve_vars(array $vararray)
+	{
+		$result = array();
+		foreach ($vararray as $varname)
+		{
+			$result[$varname] = $this->retrieve_var($varname);
+		}
+		return $result;
+	}
+
+	/**
+	* {@inheritdoc}
+	*/
+	public function retrieve_var($varname)
+	{
+		return $this->context->retrieve_var($varname);
+	}
+
+	/**
+	* {@inheritdoc}
+	*/
 	public function assign_block_vars($blockname, array $vararray)
 	{
 		$this->context->assign_block_vars($blockname, $vararray);
@@ -127,12 +148,28 @@ abstract class base implements template
 	/**
 	* {@inheritdoc}
 	*/
+	public function retrieve_block_vars($blockname, array $vararray)
+	{
+		return $this->context->retrieve_block_vars($blockname, $vararray);
+	}
+
+	/**
+	* {@inheritdoc}
+	*/
 	public function alter_block_array($blockname, array $vararray, $key = false, $mode = 'insert')
 	{
 		return $this->context->alter_block_array($blockname, $vararray, $key, $mode);
 	}
 
 	/**
+	* {@inheritdoc}
+	*/
+	public function find_key_index($blockname, $key)
+	{
+		return $this->context->find_key_index($blockname, $key);
+	}
+
+	/**
 	* Calls hook if any is defined.
 	*
 	* @param string $handle Template handle being displayed.
--- a/phpbb/template/context.php
+++ b/phpbb/template/context.php
@@ -87,6 +87,17 @@ class context
 	}
 
 	/**
+	* Retreive a single scalar value from a single key.
+	*
+	* @param string $varname Variable name
+	* @return mixed Variable value, or null if not set
+	*/
+	public function retrieve_var($varname)
+	{
+		return isset($this->rootref[$varname]) ? $this->rootref[$varname] : null;
+	}
+
+	/**
 	* Returns a reference to template data array.
 	*
 	* This function is public so that template renderer may invoke it.
@@ -264,6 +275,151 @@ class context
 	}
 
 	/**
+	* Retrieve key variable pairs from the specified block
+	*
+	* @param string $blockname Name of block to retrieve $vararray from
+	* @param array $vararray An array of variable names, empty array retrieves all vars
+	* @return array of hashes with variable name as key and retrieved value or null as value
+	*/
+	public function retrieve_block_vars($blockname, array $vararray)
+	{
+		// For nested block, $blockcount > 0, for top-level block, $blockcount == 0
+		$blocks = explode('.', $blockname);
+		$blockcount = sizeof($blocks) - 1;
+
+		$block = $this->tpldata;
+		for ($i = 0; $i <= $blockcount; $i++)
+		{
+			if (($pos = strpos($blocks[$i], '[')) !== false)
+			{
+				$name = substr($blocks[$i], 0, $pos);
+
+				if (strpos($blocks[$i], '[]') === $pos)
+				{
+					$index = sizeof($block[$name]) - 1;
+				}
+				else
+				{
+					$index = min((int) substr($blocks[$i], $pos + 1, -1), sizeof($block[$name]) - 1);
+				}
+			}
+			else
+			{
+				$name = $blocks[$i];
+				$index = sizeof($block[$name]) - 1;
+			}
+			$block = $block[$name];
+			$block = $block[$index];
+		}
+
+		$result = array();
+		if ($vararray === array())
+		{
+			// The calculated vars that depend on the block position are excluded from the complete block returned results
+			$excluded_vars = array('S_FIRST_ROW', 'S_LAST_ROW', 'S_BLOCK_NAME', 'S_NUM_ROWS', 'S_ROW_COUNT', 'S_ROW_NUM');
+
+			foreach ($block as $varname => $varvalue)
+			{
+				if ($varname === strtoupper($varname) && !is_array($varvalue) && !in_array($varname, $excluded_vars))
+				{
+					$result[$varname] = $varvalue;
+				}
+			}
+		}
+		else
+		{
+			foreach ($vararray as $varname)
+			{
+				$result[$varname] = isset($block[$varname]) ? $block[$varname] : null;
+			}
+		}
+		return $result;
+	}
+
+	/**
+	* Find the index for a specified key in the innermost specified block
+	*
+	* @param	string	$blockname	the blockname, for example 'loop'
+	* @param	mixed	$key		Key to search for
+	*
+	* array: KEY => VALUE [the key/value pair to search for within the loop to determine the correct position]
+	*
+	* int: Position [the position to search for]
+	*
+	* If key is false the position is set to 0
+	* If key is true the position is set to the last entry
+	*
+	* @return mixed false if not found, index position otherwise; be sure to test with ===
+	*/
+	public function find_key_index($blockname, $key)
+	{
+		// For nested block, $blockcount > 0, for top-level block, $blockcount == 0
+		$blocks = explode('.', $blockname);
+		$blockcount = sizeof($blocks) - 1;
+
+		$block = $this->tpldata;
+		for ($i = 0; $i < $blockcount; $i++)
+		{
+			if (($pos = strpos($blocks[$i], '[')) !== false)
+			{
+				$name = substr($blocks[$i], 0, $pos);
+
+				if (strpos($blocks[$i], '[]') === $pos)
+				{
+					$index = sizeof($block[$name]) - 1;
+				}
+				else
+				{
+					$index = min((int) substr($blocks[$i], $pos + 1, -1), sizeof($block[$name]) - 1);
+				}
+			}
+			else
+			{
+				$name = $blocks[$i];
+				$index = sizeof($block[$name]) - 1;
+			}
+			if (!isset($block[$name]))
+			{
+				return false;
+			}
+			$block = $block[$name];
+			if (!isset($block[$index]))
+			{
+				return false;
+			}
+			$block = $block[$index];
+		}
+
+		if (!isset($block[$blocks[$i]]))
+		{
+			return false;
+		}
+		$block = $block[$blocks[$i]]; // Traverse the last block
+
+		// Change key to zero (change first position) if false and to last position if true
+		if ($key === false || $key === true)
+		{
+			return ($key === false) ? 0 : sizeof($block) - 1;
+		}
+
+		// Get correct position if array given
+		if (is_array($key))
+		{
+			// Search array to get correct position
+			list($search_key, $search_value) = @each($key);
+			foreach ($block as $i => $val_ary)
+			{
+				if ($val_ary[$search_key] === $search_value)
+				{
+					return $i;
+				}
+			}
+		}
+
+		return (is_int($key) && ((0 <= $key) && ($key < sizeof($block)))) ? $key : false;
+	}
+
+	/**
 	* Change already assigned key variable pair (one-dimensional - single loop entry)
 	*
 	* An example of how to use this function:
@@ -280,10 +436,11 @@ class context
 	* If key is false the position is set to 0
 	* If key is true the position is set to the last entry
 	*
-	* @param	string	$mode		Mode to execute (valid modes are 'insert' and 'change')
+	* @param	string	$mode		Mode to execute (valid modes are 'insert', 'change' and 'delete')
 	*
 	*	If insert, the vararray is inserted at the given position (position counting from zero).
 	*	If change, the current block gets merged with the vararray (resulting in new key/value pairs be added and existing keys be replaced by the new \value).
+	*	If delete, the vararray is ignored, and the block at the given position (counting from zero) is removed.
 	*
 	* Since counting begins by zero, inserting at the last position will result in this array: array(vararray, last positioned array)
 	* and inserting at position 1 will result in this array: array(first positioned array, vararray, following vars)
@@ -293,45 +450,49 @@ class context
 	public function alter_block_array($blockname, array $vararray, $key = false, $mode = 'insert')
 	{
 		$this->num_rows_is_set = false;
-		if (strpos($blockname, '.') !== false)
-		{
-			// Nested block.
-			$blocks = explode('.', $blockname);
-			$blockcount = sizeof($blocks) - 1;
 
-			$block = &$this->tpldata;
-			for ($i = 0; $i < $blockcount; $i++)
+		// For nested block, $blockcount > 0, for top-level block, $blockcount == 0
+		$blocks = explode('.', $blockname);
+		$blockcount = sizeof($blocks) - 1;
+
+		$block = &$this->tpldata;
+		for ($i = 0; $i < $blockcount; $i++)
+		{
+			if (($pos = strpos($blocks[$i], '[')) !== false)
 			{
-				if (($pos = strpos($blocks[$i], '[')) !== false)
+				$name = substr($blocks[$i], 0, $pos);
+
+				if (strpos($blocks[$i], '[]') === $pos)
 				{
-					$name = substr($blocks[$i], 0, $pos);
-
-					if (strpos($blocks[$i], '[]') === $pos)
-					{
-						$index = sizeof($block[$name]) - 1;
-					}
-					else
-					{
-						$index = min((int) substr($blocks[$i], $pos + 1, -1), sizeof($block[$name]) - 1);
-					}
+					$index = sizeof($block[$name]) - 1;
 				}
 				else
 				{
-					$name = $blocks[$i];
-					$index = sizeof($block[$name]) - 1;
+					$index = min((int) substr($blocks[$i], $pos + 1, -1), sizeof($block[$name]) - 1);
 				}
-				$block = &$block[$name];
-				$block = &$block[$index];
 			}
-
-			$block = &$block[$blocks[$i]]; // Traverse the last block
+			else
+			{
+				$name = $blocks[$i];
+				$index = sizeof($block[$name]) - 1;
+			}
+			$block = &$block[$name];
+			$block = &$block[$index];
 		}
-		else
+		$name = $blocks[$i];
+
+		// If last block does not exist and we are inserting, and not searching for key, we create it empty; otherwise, nothing to do
+		if (!isset($block[$name]))
 		{
-			// Top-level block.
-			$block = &$this->tpldata[$blockname];
+			if ($mode != 'insert' || is_array($key))
+			{
+				return false;
+			}
+			$block[$name] = array();
 		}
 
+		$block = &$block[$name]; // Now we can traverse the last block
+
 		// Change key to zero (change first position) if false and to last position if true
 		if ($key === false || $key === true)
 		{
@@ -371,14 +532,15 @@ class context
 				unset($block[($key - 1)]['S_LAST_ROW']);
 				$vararray['S_LAST_ROW'] = true;
 			}
-			else if ($key === 0)
+			if ($key <= 0)
 			{
+				$key = 0;
 				unset($block[0]['S_FIRST_ROW']);
 				$vararray['S_FIRST_ROW'] = true;
 			}
 
 			// Assign S_BLOCK_NAME
-			$vararray['S_BLOCK_NAME'] = $blockname;
+			$vararray['S_BLOCK_NAME'] = $name;
 
 			// Re-position template blocks
 			for ($i = sizeof($block); $i > $key; $i--)
@@ -398,6 +560,12 @@ class context
 		// Which block to change?
 		if ($mode == 'change')
 		{
+			// If key is out of bounds, do not change anything
+			if ($key > sizeof($block) || $key < 0)
+			{
+				return false;
+			}
+
 			if ($key == sizeof($block))
 			{
 				$key--;
@@ -408,6 +576,45 @@ class context
 			return true;
 		}
 
+		// Delete Block
+		if ($mode == 'delete')
+		{
+			// If we are exceeding last iteration, do not delete anything
+			if ($key > sizeof($block) || $key < 0)
+			{
+				return false;
+			}
+
+			// If we are positioned at the end, we remove the last element
+			if ($key == sizeof($block))
+			{
+				$key--;
+			}
+
+			// We are deleting the last element in the block, so remove the block
+			if (sizeof($block) === 1)
+			{
+				$block = null; // unset($block); does not work on references
+				return true;
+			}
+
+			// Re-position template blocks
+			for ($i = $key; $i < sizeof($block)-1; $i++)
+			{
+				$block[$i] = $block[$i+1];
+				$block[$i]['S_ROW_COUNT'] = $block[$i]['S_ROW_NUM'] = $i;
+			}
+
+			// Remove the last element
+			unset($block[$i]);
+
+			// Set first and last elements again, in case they were removed
+			$block[0]['S_FIRST_ROW'] = true;
+			$block[sizeof($block)-1]['S_LAST_ROW'] = true;
+
+			return true;
+		}
+
 		return false;
 	}
 
--- a/phpbb/template/template.php
+++ b/phpbb/template/template.php
@@ -128,6 +128,22 @@ interface template
 	public function append_var($varname, $varval);
 
 	/**
+	* Retrieve multiple template values
+	*
+	* @param array $vararray An array with variable names
+	* @return array A hash of variable name => value pairs (value is null if not set)
+	*/
+	public function retrieve_vars(array $vararray);
+
+	/**
+	* Retreive a single scalar value from a single key.
+	*
+	* @param string $varname Variable name
+	* @return mixed Variable value, or null if not set
+	*/
+	public function retrieve_var($varname);
+
+	/**
 	* Assign key variable pairs from an array to a specified block
 	* @param string $blockname Name of block to assign $vararray to
 	* @param array $vararray A hash of variable name => value pairs
@@ -144,6 +160,14 @@ interface template
 	public function assign_block_vars_array($blockname, array $block_vars_array);
 
 	/**
+	* Retrieve variable values from an specified block
+	* @param string $blockname Name of block to retrieve $vararray from
+	* @param array $vararray An array with variable names, empty array gets all vars
+	* @return array A hash of variable name => value pairs (value is null if not set)
+	*/
+	public function retrieve_block_vars($blockname, array $vararray);
+
+	/**
 	* Change already assigned key variable pair (one-dimensional - single loop entry)
 	*
 	* An example of how to use this function:
@@ -160,10 +184,11 @@ interface template
 	* If key is false the position is set to 0
 	* If key is true the position is set to the last entry
 	*
-	* @param	string	$mode		Mode to execute (valid modes are 'insert' and 'change')
+	* @param	string	$mode		Mode to execute (valid modes are 'insert', 'change' and 'delete')
 	*
 	*	If insert, the vararray is inserted at the given position (position counting from zero).
 	*	If change, the current block gets merged with the vararray (resulting in new \key/value pairs be added and existing keys be replaced by the new \value).
+	*	If delete, the vararray is ignored, and the block at the given position (counting from zero) is removed.
 	*
 	* Since counting begins by zero, inserting at the last position will result in this array: array(vararray, last positioned array)
 	* and inserting at position 1 will result in this array: array(first positioned array, vararray, following vars)
@@ -173,6 +198,23 @@ interface template
 	public function alter_block_array($blockname, array $vararray, $key = false, $mode = 'insert');
 
 	/**
+	* Find the index for a specified key in the innermost specified block
+	*
+	* @param	string	$blockname	the blockname, for example 'loop'
+	* @param	mixed	$key		Key to search for
+	*
+	* array: KEY => VALUE [the key/value pair to search for within the loop to determine the correct position]
+	*
+	* int: Position [the position to search for]
+	*
+	* If key is false the position is set to 0
+	* If key is true the position is set to the last entry
+	*
+	* @return mixed false if not found, index position otherwise; be sure to test with ===
+	*/
+	public function find_key_index($blockname, $key);
+
+	/**
 	* Get path to template for handle (required for BBCode parser)
 	*
 	* @param string $handle Handle to retrieve the source file
--- a/phpbb/template/twig/environment.php
+++ b/phpbb/template/twig/environment.php
@@ -32,6 +32,9 @@ class environment extends \Twig_Environment
 	/** @var \phpbb\extension\manager */
 	protected $extension_manager;
 
+	/** @var \phpbb\event\dispatcher_interface */
+	protected $phpbb_dispatcher;
+
 	/** @var string */
 	protected $phpbb_root_path;
 
@@ -53,15 +56,17 @@ class environment extends \Twig_Environment
 	* @param string $cache_path The path to the cache directory
 	* @param \phpbb\extension\manager $extension_manager phpBB extension manager
 	* @param \Twig_LoaderInterface $loader Twig loader interface
+	* @param \phpbb\event\dispatcher_interface	$phpbb_dispatcher	Event dispatcher object
 	* @param array $options Array of options to pass to Twig
 	*/
-	public function __construct(\phpbb\config\config $phpbb_config, \phpbb\filesystem\filesystem $filesystem, \phpbb\path_helper $path_helper, $cache_path, \phpbb\extension\manager $extension_manager = null, \Twig_LoaderInterface $loader = null, $options = array())
+	public function __construct(\phpbb\config\config $phpbb_config, \phpbb\filesystem\filesystem $filesystem, \phpbb\path_helper $path_helper, $cache_path, \phpbb\extension\manager $extension_manager = null, \Twig_LoaderInterface $loader = null, \phpbb\event\dispatcher_interface $phpbb_dispatcher = null, $options = array())
 	{
 		$this->phpbb_config = $phpbb_config;
 
 		$this->filesystem = $filesystem;
 		$this->phpbb_path_helper = $path_helper;
 		$this->extension_manager = $extension_manager;
+		$this->phpbb_dispatcher = $phpbb_dispatcher;
 
 		$this->phpbb_root_path = $this->phpbb_path_helper->get_phpbb_root_path();
 		$this->web_root_path = $this->phpbb_path_helper->get_web_root_path();
@@ -202,8 +207,37 @@ class environment extends \Twig_Environment
 			$context['definition']->set('STYLESHEETS', '__STYLESHEETS_' . $placeholder_salt . '__');
 		}
 
+		/**
+		* Allow changing the template output stream before rendering
+		*
+		* @event core.twig_environment_render_template_before
+		* @var	array	context		Array with template variables
+		* @var	string  name		The template name
+		* @since 3.2.1-RC1
+		*/
+		if ($this->phpbb_dispatcher)
+		{
+			$vars = array('context', 'name');
+			extract($this->phpbb_dispatcher->trigger_event('core.twig_environment_render_template_before', compact($vars)));
+		}
+
 		$output = parent::render($name, $context);
 
+		/**
+		* Allow changing the template output stream after rendering
+		*
+		* @event core.twig_environment_render_template_after
+		* @var	array	context		Array with template variables
+		* @var	string  name		The template name
+		* @var	string	output		Rendered template output stream
+		* @since 3.2.1-RC1
+		*/
+		if ($this->phpbb_dispatcher)
+		{
+			$vars = array('context', 'name', 'output');
+			extract($this->phpbb_dispatcher->trigger_event('core.twig_environment_render_template_after', compact($vars)));
+		}
+
 		return $this->inject_assets($output, $placeholder_salt);
 	}
 
--- a/phpbb/template/twig/lexer.php
+++ b/phpbb/template/twig/lexer.php
@@ -22,6 +22,14 @@ class lexer extends \Twig_Lexer
 
 	public function tokenize($code, $filename = null)
 	{
+		// Handle \Twig_Source format input
+		if ($code instanceof \Twig_Source)
+		{
+			$source = $code;
+			$code = $source->getCode();
+			$filename = $source->getName();
+		}
+
 		// Our phpBB tags
 		// Commented out tokens are handled separately from the main replace
 		$phpbb_tags = array(
@@ -125,7 +133,8 @@ class lexer extends \Twig_Lexer
 		// Appends any filters
 		$code = preg_replace('#{([a-zA-Z0-9_\.]+)(\|[^}]+?)?}#', '{{ $1$2 }}', $code);
 
-		return parent::tokenize($code, $filename);
+		// Tokenize \Twig_Source instance
+		return parent::tokenize(new \Twig_Source($code, $filename));
 	}
 
 	/**
--- a/phpbb/template/twig/loader.php
+++ b/phpbb/template/twig/loader.php
@@ -35,7 +35,7 @@ class loader extends \Twig_Loader_Filesystem
 	{
 		$this->filesystem = $filesystem;
 
-		parent::__construct($paths);
+		parent::__construct($paths, $this->filesystem->realpath(dirname(__FILE__)));
 	}
 
 	/**
--- a/phpbb/textformatter/data_access.php
+++ b/phpbb/textformatter/data_access.php
@@ -81,11 +81,8 @@ class data_access
 	public function get_bbcodes()
 	{
 		$sql = 'SELECT bbcode_match, bbcode_tpl FROM ' . $this->bbcodes_table;
-		$result = $this->db->sql_query($sql);
-		$rows = $this->db->sql_fetchrowset($result);
-		$this->db->sql_freeresult($result);
 
-		return $rows;
+		return $this->fetch_decoded_rowset($sql, ['bbcode_match']);
 	}
 
 	/**
@@ -101,11 +98,8 @@ class data_access
 		$sql = 'SELECT code, emotion, smiley_url, smiley_width, smiley_height
 			FROM ' . $this->smilies_table . '
 			ORDER BY display_on_posting DESC';
-		$result = $this->db->sql_query($sql);
-		$rows = $this->db->sql_fetchrowset($result);
-		$this->db->sql_freeresult($result);
 
-		return $rows;
+		return $this->fetch_decoded_rowset($sql, ['code', 'emotion', 'smiley_url']);
 	}
 
 	/**
@@ -116,11 +110,8 @@ class data_access
 	protected function get_styles()
 	{
 		$sql = 'SELECT style_id, style_path, style_parent_id, bbcode_bitfield FROM ' . $this->styles_table;
-		$result = $this->db->sql_query($sql);
-		$rows = $this->db->sql_fetchrowset($result);
-		$this->db->sql_freeresult($result);
 
-		return $rows;
+		return $this->fetch_decoded_rowset($sql);
 	}
 
 	/**
@@ -219,10 +210,43 @@ class data_access
 	public function get_censored_words()
 	{
 		$sql = 'SELECT word, replacement FROM ' . $this->words_table;
+
+		return $this->fetch_decoded_rowset($sql, ['word', 'replacement']);
+	}
+
+	/**
+	* Decode HTML special chars in given rowset
+	*
+	* @param  array $rows    Original rowset
+	* @param  array $columns List of columns to decode
+	* @return array          Decoded rowset
+	*/
+	protected function decode_rowset(array $rows, array $columns)
+	{
+		foreach ($rows as &$row)
+		{
+			foreach ($columns as $column)
+			{
+				$row[$column] = htmlspecialchars_decode($row[$column]);
+			}
+		}
+
+		return $rows;
+	}
+
+	/**
+	* Fetch all rows for given query and decode plain text columns
+	*
+	* @param  string $sql     SELECT query
+	* @param  array  $columns List of columns to decode
+	* @return array
+	*/
+	protected function fetch_decoded_rowset($sql, array $columns = [])
+	{
 		$result = $this->db->sql_query($sql);
 		$rows = $this->db->sql_fetchrowset($result);
 		$this->db->sql_freeresult($result);
 
-		return $rows;
+		return $this->decode_rowset($rows, $columns);
 	}
 }
--- a/phpbb/textformatter/s9e/factory.php
+++ b/phpbb/textformatter/s9e/factory.php
@@ -311,7 +311,7 @@ class factory implements \phpbb\textformatter\cache_interface
 		{
 			$configurator->Emoticons->set(
 				$row['code'],
-				'<img class="smilies" src="{$T_SMILIES_PATH}/' . htmlspecialchars($row['smiley_url']) . '" width="' . $row['smiley_width'] . '" height="' . $row['smiley_height'] . '" alt="{.}" title="' . htmlspecialchars($row['emotion']) . '"/>'
+				'<img class="smilies" src="{$T_SMILIES_PATH}/' . $this->escape_html_attribute($row['smiley_url']) . '" width="' . $row['smiley_width'] . '" height="' . $row['smiley_height'] . '" alt="{.}" title="' . $this->escape_html_attribute($row['emotion']) . '"/>'
 			);
 		}
 
@@ -333,8 +333,7 @@ class factory implements \phpbb\textformatter\cache_interface
 			$configurator->plugins->load('Censor', array('tagName' => 'censor:tag'));
 			foreach ($censor as $row)
 			{
-				// NOTE: words are stored as HTML, we need to decode them to plain text
-				$configurator->Censor->add(htmlspecialchars_decode($row['word']),  htmlspecialchars_decode($row['replacement']));
+				$configurator->Censor->add($row['word'], $row['replacement']);
 			}
 		}
 
@@ -443,6 +442,20 @@ class factory implements \phpbb\textformatter\cache_interface
 	}
 
 	/**
+	* Escape a literal to be used in an HTML attribute in an XSL template
+	*
+	* Escapes "HTML special chars" for obvious reasons and curly braces to avoid them
+	* being interpreted as an attribute value template
+	*
+	* @param  string $value Original string
+	* @return string        Escaped string
+	*/
+	protected function escape_html_attribute($value)
+	{
+		return htmlspecialchars(strtr($value, ['{' => '{{', '}' => '}}']), ENT_COMPAT | ENT_XML1, 'UTF-8');
+	}
+
+	/**
 	* Return the default BBCodes configuration
 	*
 	* @return array 2D array. Each element has a 'usage' key, a 'template' key, and an optional 'options' key
--- a/phpbb/textformatter/s9e/parser.php
+++ b/phpbb/textformatter/s9e/parser.php
@@ -142,6 +142,7 @@ class parser implements \phpbb\textformatter\parser_interface
 	public function disable_smilies()
 	{
 		$this->parser->disablePlugin('Emoticons');
+		$this->parser->disablePlugin('Emoji');
 	}
 
 	/**
@@ -183,6 +184,7 @@ class parser implements \phpbb\textformatter\parser_interface
 	public function enable_smilies()
 	{
 		$this->parser->enablePlugin('Emoticons');
+		$this->parser->enablePlugin('Emoji');
 	}
 
 	/**
--- a/phpbb/textformatter/s9e/quote_helper.php
+++ b/phpbb/textformatter/s9e/quote_helper.php
@@ -39,8 +39,8 @@ class quote_helper
 	*/
 	public function __construct(\phpbb\user $user, $root_path, $php_ext)
 	{
-		$this->post_url = append_sid($root_path . 'viewtopic.' . $php_ext, 'p={POST_ID}#p{POST_ID}');
-		$this->profile_url = append_sid($root_path . 'memberlist.' . $php_ext, 'mode=viewprofile&u={USER_ID}');
+		$this->post_url = append_sid($root_path . 'viewtopic.' . $php_ext, 'p={POST_ID}#p{POST_ID}', false);
+		$this->profile_url = append_sid($root_path . 'memberlist.' . $php_ext, 'mode=viewprofile&u={USER_ID}', false);
 		$this->user = $user;
 	}
 
--- a/phpbb/textformatter/s9e/renderer.php
+++ b/phpbb/textformatter/s9e/renderer.php
@@ -247,14 +247,12 @@ class renderer implements \phpbb\textformatter\renderer_interface
 		$vars = array('renderer', 'xml');
 		extract($this->dispatcher->trigger_event('core.text_formatter_s9e_render_before', compact($vars)));
 
+		$html = $this->renderer->render($xml);
 		if (isset($this->censor) && $this->viewcensors)
 		{
-			// NOTE: censorHtml() is XML-safe
-			$xml = $this->censor->censorHtml($xml, true);
+			$html = $this->censor->censorHtml($html, true);
 		}
 
-		$html = $this->renderer->render($xml);
-
 		/**
 		* Modify a rendered text
 		*
--- a/phpbb/user.php
+++ b/phpbb/user.php
@@ -588,6 +588,7 @@ class user extends \phpbb\session
 	*/
 	function format_date($gmepoch, $format = false, $forcedate = false)
 	{
+		global $phpbb_dispatcher;
 		static $utc;
 
 		if (!isset($utc))
@@ -595,10 +596,34 @@ class user extends \phpbb\session
 			$utc = new \DateTimeZone('UTC');
 		}
 
-		$time = new $this->datetime($this, '@' . (int) $gmepoch, $utc);
-		$time->setTimezone($this->timezone);
+		$format_date_override = false;
+		$function_arguments = func_get_args();
+		/**
+		* Execute code and/or override format_date()
+		*
+		* To override the format_date() function generated value
+		* set $format_date_override to new return value
+		*
+		* @event core.user_format_date_override
+		* @var DateTimeZone	utc Is DateTimeZone in UTC
+		* @var array function_arguments is array comprising a function's argument list
+		* @var string format_date_override Shall we return custom format (string) or not (false)
+		* @since 3.2.1-RC1
+		*/
+		$vars = array('utc', 'function_arguments', 'format_date_override');
+		extract($phpbb_dispatcher->trigger_event('core.user_format_date_override', compact($vars)));
 
-		return $time->format($format, $forcedate);
+		if (!$format_date_override)
+		{
+			$time = new $this->datetime($this, '@' . (int) $gmepoch, $utc);
+			$time->setTimezone($this->timezone);
+
+			return $time->format($format, $forcedate);
+		}
+		else
+		{
+			return $format_date_override;
+		}
 	}
 
 	/**
--- a/phpbb/version_helper.php
+++ b/phpbb/version_helper.php
@@ -60,6 +60,23 @@ class version_helper
 	/** @var \phpbb\file_downloader */
 	protected $file_downloader;
 
+	protected $version_schema = array(
+		'stable' => array(
+			'current'		=> 'version',
+			'download'		=> 'url',
+			'announcement'	=> 'url',
+			'eol'			=> 'url',
+			'security'		=> 'bool',
+		),
+		'unstable' => array(
+			'current'		=> 'version',
+			'download'		=> 'url',
+			'announcement'	=> 'url',
+			'eol'			=> 'url',
+			'security'		=> 'bool',
+		),
+	);
+
 	/**
 	 * Constructor
 	 *
@@ -181,7 +198,7 @@ class version_helper
 		$self = $this;
 		$current_version = $this->current_version;
 
-		// Filter out any versions less than to the current version
+		// Filter out any versions less than the current version
 		$versions = array_filter($versions, function($data) use ($self, $current_version) {
 			return $self->compare($data['current'], $current_version, '>=');
 		});
@@ -198,11 +215,117 @@ class version_helper
 	}
 
 	/**
+	 * Gets the latest update for the current branch the user is on
+	 * Will suggest versions from newer branches when EoL has been reached
+	 * and/or version from newer branch is needed for having all known security
+	 * issues fixed.
+	 *
+	 * @param bool $force_update Ignores cached data. Defaults to false.
+	 * @param bool $force_cache Force the use of the cache. Override $force_update.
+	 * @return array Version info or empty array if there are no updates
+	 * @throws \RuntimeException
+	 */
+	public function get_update_on_branch($force_update = false, $force_cache = false)
+	{
+		$versions = $this->get_versions_matching_stability($force_update, $force_cache);
+
+		$self = $this;
+		$current_version = $this->current_version;
+
+		// Filter out any versions less than the current version
+		$versions = array_filter($versions, function($data) use ($self, $current_version) {
+			return $self->compare($data['current'], $current_version, '>=');
+		});
+
+		// Get the lowest version from the previous list.
+		$update_info = array_reduce($versions, function($value, $data) use ($self, $current_version) {
+			if ($value === null && $self->compare($data['current'], $current_version, '>='))
+			{
+				if (!$data['eol'] && (!$data['security'] || $self->compare($data['security'], $data['current'], '<=')))
+				{
+					return ($self->compare($data['current'], $current_version, '>')) ? $data : array();
+				}
+				else
+				{
+					return null;
+				}
+			}
+
+			return $value;
+		});
+
+		return $update_info === null ? array() : $update_info;
+	}
+
+	/**
+	 * Gets the latest extension update for the current phpBB branch the user is on
+	 * Will suggest versions from newer branches when EoL has been reached
+	 * and/or version from newer branch is needed for having all known security
+	 * issues fixed.
+	 *
+	 * @param bool $force_update Ignores cached data. Defaults to false.
+	 * @param bool $force_cache Force the use of the cache. Override $force_update.
+	 * @return array Version info or empty array if there are no updates
+	 * @throws \RuntimeException
+	 */
+	public function get_ext_update_on_branch($force_update = false, $force_cache = false)
+	{
+		$versions = $this->get_versions_matching_stability($force_update, $force_cache);
+
+		$self = $this;
+		$current_version = $this->current_version;
+
+		// Get current phpBB branch from version, e.g.: 3.2
+		preg_match('/^(\d+\.\d+).*$/', $this->config['version'], $matches);
+		$current_branch = $matches[1];
+
+		// Filter out any versions less than the current version
+		$versions = array_filter($versions, function($data) use ($self, $current_version) {
+			return $self->compare($data['current'], $current_version, '>=');
+		});
+
+		// Filter out any phpbb branches less than the current version
+		$branches = array_filter(array_keys($versions), function($branch) use ($self, $current_branch) {
+			return $self->compare($branch, $current_branch, '>=');
+		});
+		if (!empty($branches))
+		{
+			$versions = array_intersect_key($versions, array_flip($branches));
+		}
+		else
+		{
+			// If branches are empty, it means the current phpBB branch is newer than any branch the
+			// extension was validated against. Reverse sort the versions array so we get the newest
+			// validated release available.
+			krsort($versions);
+		}
+
+		// Get the first available version from the previous list.
+		$update_info = array_reduce($versions, function($value, $data) use ($self, $current_version) {
+			if ($value === null && $self->compare($data['current'], $current_version, '>='))
+			{
+				if (!$data['eol'] && (!$data['security'] || $self->compare($data['security'], $data['current'], '<=')))
+				{
+					return $self->compare($data['current'], $current_version, '>') ? $data : array();
+				}
+				else
+				{
+					return null;
+				}
+			}
+
+			return $value;
+		});
+
+		return $update_info === null ? array() : $update_info;
+	}
+
+	/**
 	* Obtains the latest version information
 	*
 	* @param bool $force_update Ignores cached data. Defaults to false.
 	* @param bool $force_cache Force the use of the cache. Override $force_update.
-	* @return string
+	* @return array
 	* @throws version_check_exception
 	*/
 	public function get_suggested_updates($force_update = false, $force_cache = false)
@@ -223,7 +346,7 @@ class version_helper
 	*
 	* @param bool $force_update Ignores cached data. Defaults to false.
 	* @param bool $force_cache Force the use of the cache. Override $force_update.
-	* @return string Version info
+	* @return array Version info
 	* @throws version_check_exception
 	*/
 	public function get_versions_matching_stability($force_update = false, $force_cache = false)
@@ -243,7 +366,7 @@ class version_helper
 	*
 	* @param bool $force_update Ignores cached data. Defaults to false.
 	* @param bool $force_cache Force the use of the cache. Override $force_update.
-	* @return string Version info, includes stable and unstable data
+	* @return array Version info, includes stable and unstable data
 	* @throws version_check_exception
 	*/
 	public function get_versions($force_update = false, $force_cache = false)
@@ -286,9 +409,101 @@ class version_helper
 			$info['stable'] = (empty($info['stable'])) ? array() : $info['stable'];
 			$info['unstable'] = (empty($info['unstable'])) ? $info['stable'] : $info['unstable'];
 
+			$info = $this->validate_versions($info);
+
 			$this->cache->put($cache_file, $info, 86400); // 24 hours
 		}
 
 		return $info;
 	}
+
+	/**
+	 * Validate versions info input
+	 *
+	 * @param array $versions_info Decoded json data array. Will be modified
+	 *		and cleaned by this method
+	 *
+	 * @return array Versions info array
+	 * @throws version_check_exception
+	 */
+	public function validate_versions($versions_info)
+	{
+		$array_diff = array_diff_key($versions_info, array($this->version_schema));
+
+		// Remove excessive data
+		if (count($array_diff) > 0)
+		{
+			$old_versions_info = $versions_info;
+			$versions_info = array(
+				'stable'	=> !empty($old_versions_info['stable']) ? $old_versions_info['stable'] : array(),
+				'unstable'	=> !empty($old_versions_info['unstable']) ? $old_versions_info['unstable'] : array(),
+			);
+			unset($old_versions_info);
+		}
+
+		foreach ($versions_info as $stability_type => &$versions_data)
+		{
+			foreach ($versions_data as $branch => &$version_data)
+			{
+				if (!preg_match('/^[0-9a-z\-\.]+$/i', $branch))
+				{
+					unset($versions_data[$branch]);
+					continue;
+				}
+
+				$stability_diff = array_diff_key($version_data, $this->version_schema[$stability_type]);
+
+				if (count($stability_diff) > 0)
+				{
+					$old_version_data = $version_data;
+					$version_data = array();
+					foreach ($this->version_schema[$stability_type] as $key => $value)
+					{
+						if (isset($old_version_data[$key]))
+						{
+							$version_data[$key] = $old_version_data[$key];
+						}
+					}
+					unset($old_version_data);
+				}
+
+				foreach ($version_data as $key => &$value)
+				{
+					if (!isset($this->version_schema[$stability_type][$key]))
+					{
+						unset($version_data[$key]);
+						throw new version_check_exception('VERSIONCHECK_INVALID_ENTRY');
+					}
+
+					switch ($this->version_schema[$stability_type][$key])
+					{
+						case 'bool':
+							$value = (bool) $value;
+						break;
+
+						case 'url':
+							if (!empty($value) && !preg_match('#^' . get_preg_expression('url') . '$#iu', $value) &&
+								!preg_match('#^' . get_preg_expression('www_url') . '$#iu', $value))
+							{
+								throw new version_check_exception('VERSIONCHECK_INVALID_URL');
+							}
+						break;
+
+						case 'version':
+							if (!empty($value) && !preg_match(get_preg_expression('semantic_version'), $value))
+							{
+								throw new version_check_exception('VERSIONCHECK_INVALID_VERSION');
+							}
+						break;
+
+						default:
+							// Shouldn't be possible to trigger this
+							throw new version_check_exception('VERSIONCHECK_INVALID_ENTRY');
+					}
+				}
+			}
+		}
+
+		return $versions_info;
+	}
 }
--- a/posting.php
+++ b/posting.php
@@ -84,7 +84,7 @@ $current_time = time();
 *							NOTE: Should be actual language strings, NOT
 *							language keys.
 * @since 3.1.0-a1
-* @change 3.1.2-RC1			Removed 'delete' var as it does not exist
+* @changed 3.1.2-RC1			Removed 'delete' var as it does not exist
 */
 $vars = array(
 	'post_id',
@@ -341,11 +341,6 @@ switch ($mode)
 			$is_authed = true;
 			$mode = 'soft_delete';
 		}
-		else if (!$is_authed)
-		{
-			// Display the same error message for softdelete we use for delete
-			$mode = 'delete';
-		}
 	break;
 }
 /**
@@ -394,13 +389,13 @@ $vars = array(
 );
 extract($phpbb_dispatcher->trigger_event('core.modify_posting_auth', compact($vars)));
 
-if (!$is_authed)
+if (!$is_authed || !empty($error))
 {
-	$check_auth = ($mode == 'quote') ? 'reply' : $mode;
+	$check_auth = ($mode == 'quote') ? 'reply' : (($mode == 'soft_delete') ? 'delete' : $mode);
 
 	if ($user->data['is_registered'])
 	{
-		trigger_error('USER_CANNOT_' . strtoupper($check_auth));
+		trigger_error(empty($error) ? 'USER_CANNOT_' . strtoupper($check_auth) : implode('<br/>', $error));
 	}
 	$message = $user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)];
 
@@ -694,13 +689,16 @@ if ($save && $user->data['is_registered'] && $auth->acl_get('u_savedrafts') && (
 	{
 		if (confirm_box(true))
 		{
+			$message_parser->message = $message;
+			$message_parser->parse($post_data['enable_bbcode'], ($config['allow_post_links']) ? $post_data['enable_urls'] : false, $post_data['enable_smilies'], $img_status, $flash_status, $quote_status, $config['allow_post_links']);
+
 			$sql = 'INSERT INTO ' . DRAFTS_TABLE . ' ' . $db->sql_build_array('INSERT', array(
 				'user_id'		=> (int) $user->data['user_id'],
 				'topic_id'		=> (int) $topic_id,
 				'forum_id'		=> (int) $forum_id,
 				'save_time'		=> (int) $current_time,
 				'draft_subject'	=> (string) $subject,
-				'draft_message'	=> (string) $message)
+				'draft_message'	=> (string) $message_parser->message)
 			);
 			$db->sql_query($sql);
 
@@ -945,7 +943,9 @@ if ($submit || $preview || $refresh)
 	*				is posting a new topic or editing a post)
 	* @var	bool	refresh		Whether or not to retain previously submitted data
 	* @var	object	message_parser	The message parser object
+	* @var	array	error		Array of errors
 	* @since 3.1.2-RC1
+	* @changed 3.1.11-RC1 Added error
 	*/
 	$vars = array(
 		'post_data',
@@ -960,6 +960,7 @@ if ($submit || $preview || $refresh)
 		'cancel',
 		'refresh',
 		'message_parser',
+		'error',
 	);
 	extract($phpbb_dispatcher->trigger_event('core.posting_modify_message_text', compact($vars)));
 
@@ -1067,7 +1068,10 @@ if ($submit || $preview || $refresh)
 	// Validate username
 	if (($post_data['username'] && !$user->data['is_registered']) || ($mode == 'edit' && $post_data['poster_id'] == ANONYMOUS && $post_data['username'] && $post_data['post_username'] && $post_data['post_username'] != $post_data['username']))
 	{
-		include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+		if (!function_exists('validate_username'))
+		{
+			include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+		}
 
 		$user->add_lang('ucp');
 
@@ -1183,6 +1187,11 @@ if ($submit || $preview || $refresh)
 	{
 		// We have a poll but the editing user is not permitted to create/edit it.
 		// So we just keep the original poll-data.
+		// Decode the poll title and options text fisrt.
+		$original_poll_data['poll_title'] = $bbcode_utils->unparse($original_poll_data['poll_title']);
+		$original_poll_data['poll_option_text'] = $bbcode_utils->unparse($original_poll_data['poll_option_text']);
+		$original_poll_data['poll_options'] = explode("\n", $original_poll_data['poll_option_text']);
+
 		$poll = array_merge($original_poll_data, array(
 			'enable_bbcode'		=> $post_data['enable_bbcode'],
 			'enable_urls'		=> $post_data['enable_urls'],
@@ -1267,8 +1276,8 @@ if ($submit || $preview || $refresh)
 	* @var	array	error		Any error strings; a non-empty array aborts form submission.
 	*				NOTE: Should be actual language strings, NOT language keys.
 	* @since 3.1.0-RC5
-	* @change 3.1.5-RC1 Added poll array to the event
-	* @change 3.2.0-a1 Removed undefined page_title
+	* @changed 3.1.5-RC1 Added poll array to the event
+	* @changed 3.2.0-a1 Removed undefined page_title
 	*/
 	$vars = array(
 		'post_data',
@@ -1885,13 +1894,13 @@ if (($mode == 'post' || ($mode == 'edit' && $post_id == $post_data['topic_first_
 *				posting page via $template->assign_vars()
 * @var	object	message_parser	The message parser object
 * @since 3.1.0-a1
-* @change 3.1.0-b3 Added vars post_data, moderators, mode, page_title,
+* @changed 3.1.0-b3 Added vars post_data, moderators, mode, page_title,
 *		s_topic_icons, form_enctype, s_action, s_hidden_fields,
 *		post_id, topic_id, forum_id, submit, preview, save, load,
 *		delete, cancel, refresh, error, page_data, message_parser
-* @change 3.1.2-RC1 Removed 'delete' var as it does not exist
-* @change 3.1.5-RC1 Added poll variables to the page_data array
-* @change 3.1.6-RC1 Added 'draft_id' var
+* @changed 3.1.2-RC1 Removed 'delete' var as it does not exist
+* @changed 3.1.5-RC1 Added poll variables to the page_data array
+* @changed 3.1.6-RC1 Added 'draft_id' var
 */
 $vars = array(
 	'post_data',
--- a/styles/prosilver/style.cfg
+++ b/styles/prosilver/style.cfg
@@ -21,8 +21,8 @@
 # General Information about this style
 name = prosilver
 copyright = © phpBB Limited, 2007
-style_version = 3.2.0
-phpbb_version = 3.2.0
+style_version = 3.2.1
+phpbb_version = 3.2.1
 
 # Defining a different template bitfield
 # template_bitfield = lNg=
--- a/styles/prosilver/template/ajax.js
+++ b/styles/prosilver/template/ajax.js
@@ -26,7 +26,7 @@ phpbb.addAjaxCallback('mark_forums_read', function(res) {
 	});
 
 	// Mark subforums read
-	$('a.subforum[class*="unread"]').removeClass('unread').addClass('read');
+	$('a.subforum[class*="unread"]').removeClass('unread').addClass('read').children('.icon.icon-red').removeClass('icon-red').addClass('icon-blue');
 
 	// Mark topics read if we are watching a category and showing active topics
 	if ($('#active_topics').length) {
--- a/styles/prosilver/template/bbcode.html
+++ b/styles/prosilver/template/bbcode.html
@@ -53,13 +53,13 @@
 <!-- BEGIN inline_attachment_open --><div class="inline-attachment"><!-- END inline_attachment_open -->
 <!-- BEGIN inline_attachment_close --></div><!-- END inline_attachment_close -->
 
-<!-- BEGIN b_open --><strong><!-- END b_open -->
+<!-- BEGIN b_open --><strong class="text-strong"><!-- END b_open -->
 <!-- BEGIN b_close --></strong><!-- END b_close -->
 
 <!-- BEGIN u_open --><span style="text-decoration: underline"><!-- END u_open -->
 <!-- BEGIN u_close --></span><!-- END u_close -->
 
-<!-- BEGIN i_open --><em><!-- END i_open -->
+<!-- BEGIN i_open --><em class="text-italics"><!-- END i_open -->
 <!-- BEGIN i_close --></em><!-- END i_close -->
 
 <!-- BEGIN color --><span style="color: {COLOR}">{TEXT}</span><!-- END color -->
--- a/styles/prosilver/template/display_options.html
+++ b/styles/prosilver/template/display_options.html
@@ -1,4 +1,4 @@
-<div class="dropdown-container dropdown-container-{S_CONTENT_FLOW_BEGIN} dropdown-button-control sort-tools">
+<div class="dropdown-container dropdown-container-left dropdown-button-control sort-tools">
 	<span title="{L_SORT_OPTIONS}" class="button button-secondary dropdown-trigger dropdown-select">
 		<i class="icon fa-sort-amount-asc fa-fw" aria-hidden="true"></i>
 		<span class="caret"><i class="icon fa-sort-down fa-fw" aria-hidden="true"></i></span>
--- a/styles/prosilver/template/forum_fn.js
+++ b/styles/prosilver/template/forum_fn.js
@@ -57,7 +57,7 @@ function marklist(id, name, state) {
 
 	jQuery('#' + id + ' input[type=checkbox][name]').each(function() {
 		var $this = jQuery(this);
-		if ($this.attr('name').substr(0, name.length) === name) {
+		if ($this.attr('name').substr(0, name.length) === name && !$this.prop('disabled')) {
 			$this.prop('checked', state);
 		}
 	});
@@ -194,37 +194,6 @@ function selectCode(a) {
 	}
 }
 
-/**
-* Play quicktime file by determining it's width/height
-* from the displayed rectangle area
-*/
-function play_qt_file(obj) {
-	'use strict';
-
-	var rectangle = obj.GetRectangle();
-	var width, height;
-
-	if (rectangle) {
-		rectangle = rectangle.split(',');
-		var x1 = parseInt(rectangle[0], 10);
-		var x2 = parseInt(rectangle[2], 10);
-		var y1 = parseInt(rectangle[1], 10);
-		var y2 = parseInt(rectangle[3], 10);
-
-		width = (x1 < 0) ? (x1 * -1) + x2 : x2 - x1;
-		height = (y1 < 0) ? (y1 * -1) + y2 : y2 - y1;
-	} else {
-		width = 200;
-		height = 0;
-	}
-
-	obj.width = width;
-	obj.height = height + 16;
-
-	obj.SetControllerVisible(true);
-	obj.Play();
-}
-
 var inAutocomplete = false;
 var lastKeyEntered = '';
 
--- a/styles/prosilver/template/forumlist_body.html
+++ b/styles/prosilver/template/forumlist_body.html
@@ -52,10 +52,8 @@
 							<!-- EVENT forumlist_body_subforums_before -->
 							<br /><strong>{forumrow.L_SUBFORUM_STR}{L_COLON}</strong>
 							<!-- BEGIN subforum -->
-								<a href="{forumrow.subforum.U_SUBFORUM}" class="subforum<!-- IF forumrow.subforum.S_UNREAD --> unread<!-- ELSE --> read<!-- ENDIF -->" title="<!-- IF forumrow.subforum.S_UNREAD -->{L_UNREAD_POSTS}<!-- ELSE -->{L_NO_UNREAD_POSTS}<!-- ENDIF -->">
-									<i class="icon <!-- IF forumrow.subforum.IS_LINK -->fa-external-link<!-- ELSE -->fa-file-o<!-- ENDIF --> fa-fw <!-- IF forumrow.subforum.S_UNREAD --> icon-red<!-- ELSE --> icon-blue<!-- ENDIF --> icon-md" aria-hidden="true"></i>{forumrow.subforum.SUBFORUM_NAME}
-								</a>
-								<!-- IF not forumrow.subforum.S_LAST_ROW -->{L_COMMA_SEPARATOR}<!-- ENDIF -->
+								<!-- EVENT forumlist_body_subforum_link_prepend --><a href="{forumrow.subforum.U_SUBFORUM}" class="subforum<!-- IF forumrow.subforum.S_UNREAD --> unread<!-- ELSE --> read<!-- ENDIF -->" title="<!-- IF forumrow.subforum.S_UNREAD -->{L_UNREAD_POSTS}<!-- ELSE -->{L_NO_UNREAD_POSTS}<!-- ENDIF -->">
+									<i class="icon <!-- IF forumrow.subforum.IS_LINK -->fa-external-link<!-- ELSE -->fa-file-o<!-- ENDIF --> fa-fw <!-- IF forumrow.subforum.S_UNREAD --> icon-red<!-- ELSE --> icon-blue<!-- ENDIF --> icon-md" aria-hidden="true"></i>{forumrow.subforum.SUBFORUM_NAME}</a><!-- IF not forumrow.subforum.S_LAST_ROW -->{L_COMMA_SEPARATOR}<!-- ENDIF --><!-- EVENT forumlist_body_subforum_link_append -->
 							<!-- END subforum -->
 							<!-- EVENT forumlist_body_subforums_after -->
 						<!-- ENDIF -->
--- a/styles/prosilver/template/index_body.html
+++ b/styles/prosilver/template/index_body.html
@@ -40,13 +40,18 @@
 		<!-- IF U_VIEWONLINE --><h3><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a></h3><!-- ELSE --><h3>{L_WHO_IS_ONLINE}</h3><!-- ENDIF -->
 		<p>
 			<!-- EVENT index_body_block_online_prepend -->
-			{TOTAL_USERS_ONLINE} ({L_ONLINE_EXPLAIN})<br />{RECORD_USERS}<br /> <br />{LOGGED_IN_USER_LIST}
-			<!-- IF LEGEND --><br /><em>{L_LEGEND}{L_COLON} {LEGEND}</em><!-- ENDIF -->
+			{TOTAL_USERS_ONLINE} ({L_ONLINE_EXPLAIN})<br />{RECORD_USERS}<br /> 
+			<!-- IF U_VIEWONLINE -->
+				<br />{LOGGED_IN_USER_LIST}
+				<!-- IF LEGEND --><br /><em>{L_LEGEND}{L_COLON} {LEGEND}</em><!-- ENDIF -->
+			<!-- ENDIF -->
 			<!-- EVENT index_body_block_online_append -->
 		</p>
 	</div>
 <!-- ENDIF -->
 
+<!-- EVENT index_body_birthday_block_before -->
+
 <!-- IF S_DISPLAY_BIRTHDAY_LIST -->
 	<div class="stat-block birthday-list">
 		<h3>{L_BIRTHDAYS}</h3>
--- a/styles/prosilver/template/jumpbox.html
+++ b/styles/prosilver/template/jumpbox.html
@@ -37,7 +37,7 @@
 			<ul class="dropdown-contents">
 				<!-- BEGIN jumpbox_forums -->
 				<!-- IF jumpbox_forums.FORUM_ID neq -1 -->
-				<li><a href="{jumpbox_forums.LINK}" class="<!-- IF jumpbox_forums.level -->jumpbox-sub-link<!-- ELSEIF jumpbox_forums.S_IS_CAT -->jumpbox-cat-link<!-- ELSE -->jumpbox-forum-link<!-- ENDIF -->"><!-- BEGIN level --><span class="spacer"></span><!-- END level --> <span><!-- IF jumpbox_forums.level --> &#8627; &nbsp;<!-- ENDIF --> {jumpbox_forums.FORUM_NAME}</span></a></li>
+				<li><a href="{jumpbox_forums.LINK}" class="<!-- IF jumpbox_forums.level -->jumpbox-sub-link<!-- ELSEIF jumpbox_forums.S_IS_CAT -->jumpbox-cat-link<!-- ELSE -->jumpbox-forum-link<!-- ENDIF -->"><!-- BEGIN level --><span class="spacer"></span><!-- END level --> <span><!-- IF jumpbox_forums.level --><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->&#8626;<!-- ELSE -->&#8627;<!-- ENDIF --> &nbsp;<!-- ENDIF --> {jumpbox_forums.FORUM_NAME}</span></a></li>
 				<!-- ENDIF -->
 				<!-- END jumpbox_forums -->
 			</ul>
@@ -45,6 +45,6 @@
 	</div>
 
 	<!-- ELSE -->
-	</br></br>
+	<br /><br />
 	<!-- ENDIF -->
 </div>
--- a/styles/prosilver/template/mcp_front.html
+++ b/styles/prosilver/template/mcp_front.html
@@ -30,7 +30,7 @@
 				<dl>
 					<dt>
 						<div class="list-inner">
-							<a href="{unapproved.U_POST_DETAILS}" class="topictitle">{unapproved.SUBJECT}</a> <i class="icon fa-paperclip fa-fw" aria-hidden="true"></i> <br />
+							<a href="{unapproved.U_POST_DETAILS}" class="topictitle">{unapproved.SUBJECT}</a> <!-- IF unapproved.ATTACH_ICON_IMG --><i class="icon fa-paperclip fa-fw" aria-hidden="true"></i><!-- ENDIF --> <br />
 							{L_POSTED} {L_POST_BY_AUTHOR} {unapproved.AUTHOR_FULL} &raquo; {unapproved.POST_TIME}
 						</div>
 					</dt>
@@ -86,12 +86,12 @@
 				<dl>
 					<dt>
 						<div class="list-inner">
-							<a href="{report.U_POST_DETAILS}#reports" class="topictitle">{report.SUBJECT}</a> <i class="icon fa-paperclip fa-fw" aria-hidden="true"></i> <br />
+							<a href="{report.U_POST_DETAILS}#reports" class="topictitle">{report.SUBJECT}</a> <!-- IF report.ATTACH_ICON_IMG --><i class="icon fa-paperclip fa-fw" aria-hidden="true"></i><!-- ENDIF --> <br />
 							<span>{L_POSTED} {L_POST_BY_AUTHOR} {report.AUTHOR_FULL} &raquo; {report.POST_TIME}</span>
 						</div>
 					</dt>
 					<dd class="moderation">
-						<span>{L_REPORTED} {L_POST_BY_AUTHOR} {report.REPORTER_FULL} {L_REPORTED_ON_DATE} <i class="icon fa-paperclip fa-fw" aria-hidden="true"></i> <br />
+						<span>{L_REPORTED} {L_POST_BY_AUTHOR} {report.REPORTER_FULL} {L_REPORTED_ON_DATE} <br />
 						{L_FORUM}{L_COLON} <a href="{report.U_FORUM}">{report.FORUM_NAME}</a></span>
 					</dd>
 				</dl>
@@ -129,7 +129,7 @@
 				<dl>
 					<dt>
 						<div class="list-inner">
-							<a href="{pm_report.U_PM_DETAILS}" class="topictitle">{pm_report.PM_SUBJECT}</a> <i class="icon fa-paperclip fa-fw" aria-hidden="true"></i> <br />
+							<a href="{pm_report.U_PM_DETAILS}" class="topictitle">{pm_report.PM_SUBJECT}</a> <!-- IF pm_report.ATTACH_ICON_IMG --><i class="icon fa-paperclip fa-fw" aria-hidden="true"></i><!-- ENDIF --> <br />
 							<span>{L_MESSAGE_BY_AUTHOR} {pm_report.PM_AUTHOR_FULL} &raquo; {pm_report.PM_TIME}</span><br />
 							<span>{L_MESSAGE_TO} {pm_report.RECIPIENTS}</span>
 						</div>
--- a/styles/prosilver/template/mcp_post.html
+++ b/styles/prosilver/template/mcp_post.html
@@ -294,6 +294,14 @@
 			</tbody>
 			</table>
 
+			<div class="pagination">
+				<!-- INCLUDE pagination.html -->
+			</div>
+			</div>
+		</div>
+
+		<div class="panel">
+			<div class="inner">
 			<table class="table1">
 			<thead>
 			<tr>
@@ -315,7 +323,27 @@
 			</tbody>
 			</table>
 
-			<p><a href="{U_LOOKUP_ALL}#ip">{L_LOOKUP_ALL}</a></p>
+			<div class="buttons">
+				<p><a href="{U_LOOKUP_ALL}#ip">{L_LOOKUP_ALL}</a></p>
+			</div>
+
+			<div class="pagination">
+				<ul>
+				<!-- BEGIN pagination_ips -->
+					<!-- IF pagination_ips.S_IS_PREV -->
+					<li class="arrow previous"><a class="button button-icon-only" href="{pagination_ips.PAGE_URL}" rel="prev" role="button"><i class="icon fa-chevron-{S_CONTENT_FLOW_BEGIN} fa-fw" aria-hidden="true"></i><span class="sr-only">{L_PREVIOUS}</span></a></li>
+					<!-- ELSEIF pagination_ips.S_IS_CURRENT -->
+					<li class="active"><span>{pagination_ips.PAGE_NUMBER}</span></li>
+					<!-- ELSEIF pagination_ips.S_IS_ELLIPSIS -->
+					<li class="ellipsis" role="separator"><span>{L_ELLIPSIS}</span></li>
+					<!-- ELSEIF pagination_ips.S_IS_NEXT -->
+					<li class="arrow next"><a class="button button-icon-only" href="{pagination_ips.PAGE_URL}" rel="next" role="button"><i class="icon fa-chevron-{S_CONTENT_FLOW_END} fa-fw" aria-hidden="true"></i><span class="sr-only">{L_NEXT}</span></a></li>
+					<!-- ELSE -->
+					<li><a class="button" href="{pagination_ips.PAGE_URL}" role="button">{pagination_ips.PAGE_NUMBER}</a></li>
+					<!-- ENDIF -->
+				<!-- END pagination_ips -->
+				</ul>
+			</div>
 
 			</div>
 		</div>
--- a/styles/prosilver/template/mcp_topic.html
+++ b/styles/prosilver/template/mcp_topic.html
@@ -111,7 +111,9 @@
 					</li>
 				</ul>
 
+				<!-- EVENT mcp_topic_postrow_post_subject_before -->
 				<h3><a href="{postrow.U_POST_DETAILS}">{postrow.POST_SUBJECT}</a></h3>
+				<!-- EVENT mcp_topic_postrow_post_subject_after -->
 
 				<!-- EVENT mcp_topic_postrow_post_details_before -->
 				<p class="author">
--- a/styles/prosilver/template/overall_footer.html
+++ b/styles/prosilver/template/overall_footer.html
@@ -76,7 +76,8 @@
 				"content": {
 					"message": "{LA_COOKIE_CONSENT_MSG}",
 					"dismiss": "{LA_COOKIE_CONSENT_OK}",
-					"link": "{LA_COOKIE_CONSENT_INFO}"
+					"link": "{LA_COOKIE_CONSENT_INFO}",
+					"href": "{LA_COOKIE_CONSENT_HREF}"
 				}
 			})});
 	</script>
--- a/styles/prosilver/template/overall_header.html
+++ b/styles/prosilver/template/overall_header.html
@@ -33,7 +33,7 @@
 <script>
 	WebFontConfig = {
 		google: {
-			families: ['Open+Sans:600:cyrillic-ext,latin,greek-ext,greek,vietnamese,latin-ext,cyrillic']
+			families: ['Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese']
 		}
 	};
 
--- a/styles/prosilver/template/pagination.html
+++ b/styles/prosilver/template/pagination.html
@@ -16,13 +16,13 @@
 <!-- ENDIF -->
 <!-- BEGIN pagination -->
 	<!-- IF pagination.S_IS_PREV -->
-		<li class="arrow previous"><a class="button button-icon-only" href="{pagination.PAGE_URL}" rel="prev" role="button"><i class="icon fa-chevron-left fa-fw" aria-hidden="true"></i><span class="sr-only">{L_PREVIOUS}</span></a></li>
+		<li class="arrow previous"><a class="button button-icon-only" href="{pagination.PAGE_URL}" rel="prev" role="button"><i class="icon fa-chevron-{S_CONTENT_FLOW_BEGIN} fa-fw" aria-hidden="true"></i><span class="sr-only">{L_PREVIOUS}</span></a></li>
 	<!-- ELSEIF pagination.S_IS_CURRENT -->
 	<li class="active"><span>{pagination.PAGE_NUMBER}</span></li>
 	<!-- ELSEIF pagination.S_IS_ELLIPSIS -->
 	<li class="ellipsis" role="separator"><span>{L_ELLIPSIS}</span></li>
 	<!-- ELSEIF pagination.S_IS_NEXT -->
-		<li class="arrow next"><a class="button button-icon-only" href="{pagination.PAGE_URL}" rel="next" role="button"><i class="icon fa-chevron-right fa-fw" aria-hidden="true"></i><span class="sr-only">{L_NEXT}</span></a></li>
+		<li class="arrow next"><a class="button button-icon-only" href="{pagination.PAGE_URL}" rel="next" role="button"><i class="icon fa-chevron-{S_CONTENT_FLOW_END} fa-fw" aria-hidden="true"></i><span class="sr-only">{L_NEXT}</span></a></li>
 	<!-- ELSE -->
 		<li><a class="button" href="{pagination.PAGE_URL}" role="button">{pagination.PAGE_NUMBER}</a></li>
 	<!-- ENDIF -->
--- a/styles/prosilver/template/search_results.html
+++ b/styles/prosilver/template/search_results.html
@@ -78,7 +78,7 @@
 			<!-- EVENT search_results_topic_before -->
 			<li class="row<!-- IF searchresults.S_ROW_COUNT is even --> bg1<!-- ELSE --> bg2<!-- ENDIF -->">
 				<dl class="row-item {searchresults.TOPIC_IMG_STYLE}">
-					<dt<!-- IF searchresults.TOPIC_ICON_IMG and S_TOPIC_ICONS --> style="background-image: url({T_ICONS_PATH}{searchresults.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF --> title="{searchresults.TOPIC_FOLDER_IMG_ALT}">
+					<dt<!-- IF searchresults.TOPIC_ICON_IMG --> style="background-image: url({T_ICONS_PATH}{searchresults.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF --> title="{searchresults.TOPIC_FOLDER_IMG_ALT}">
 						<!-- IF searchresults.S_UNREAD_TOPIC and not S_IS_BOT --><a href="{searchresults.U_NEWEST_POST}" class="row-item-link"></a><!-- ENDIF -->
 						<div class="list-inner">
 							<!-- EVENT topiclist_row_prepend -->
@@ -104,6 +104,7 @@
 								</a>
 							<!-- ENDIF -->
 							<br />
+							<!-- EVENT topiclist_row_topic_title_after -->
 
 							<!-- IF not S_IS_BOT -->
 								<div class="responsive-show" style="display: none;">
@@ -134,7 +135,6 @@
 								</ul>
 							</div>
 							<!-- ENDIF -->
-							<!-- EVENT topiclist_row_topic_title_after -->
 
 							<!-- EVENT topiclist_row_append -->
 						</div>
@@ -185,6 +185,7 @@
 			<dd class="search-result-date">{searchresults.POST_DATE}</dd>
 			<dd>{L_FORUM}{L_COLON} <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a></dd>
 			<dd>{L_TOPIC}{L_COLON} <a href="{searchresults.U_VIEW_TOPIC}">{searchresults.TOPIC_TITLE}</a></dd>
+			<!-- EVENT search_results_topic_title_after -->
 			<dd>{L_REPLIES}{L_COLON} <strong>{searchresults.TOPIC_REPLIES}</strong></dd>
 			<dd>{L_VIEWS}{L_COLON} <strong>{searchresults.TOPIC_VIEWS}</strong></dd>
 			<!-- EVENT search_results_postprofile_after -->
--- a/styles/prosilver/template/simple_header.html
+++ b/styles/prosilver/template/simple_header.html
@@ -11,7 +11,7 @@
 <script>
 	WebFontConfig = {
 		google: {
-			families: ['Open+Sans:600:cyrillic-ext,latin,greek-ext,greek,vietnamese,latin-ext,cyrillic']
+			families: ['Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese']
 		}
 	};
 
--- a/styles/prosilver/template/ucp_pm_viewmessage.html
+++ b/styles/prosilver/template/ucp_pm_viewmessage.html
@@ -15,7 +15,7 @@
 		<!-- ENDIF -->
 		<!-- IF U_VIEW_NEXT_HISTORY -->
 			<a href="{U_VIEW_NEXT_HISTORY}" class="right-box arrow-{S_CONTENT_FLOW_END}">
-				<i class="icon fa-angle-{S_CONTENT_FLOW_BEGIN} fa-fw icon-black" aria-hidden="true"></i><span>{L_VIEW_NEXT_HISTORY}</span>
+				<i class="icon fa-angle-{S_CONTENT_FLOW_END} fa-fw icon-black" aria-hidden="true"></i><span>{L_VIEW_NEXT_HISTORY}</span>
 			</a>
 		<!-- ENDIF -->
 	</fieldset>
@@ -179,7 +179,7 @@
 	<!-- ENDIF -->
 	<!-- IF U_NEXT_PM -->
 		<a href="{U_NEXT_PM}" class="right-box arrow-{S_CONTENT_FLOW_END}">
-			<i class="icon fa-angle-{S_CONTENT_FLOW_BEGIN} fa-fw icon-black" aria-hidden="true"></i><span>{L_VIEW_NEXT_PM}</span>
+			<i class="icon fa-angle-{S_CONTENT_FLOW_END} fa-fw icon-black" aria-hidden="true"></i><span>{L_VIEW_NEXT_PM}</span>
 		</a>
 	<!-- ENDIF -->
 	<!-- IF not S_UNREAD and not S_SPECIAL_FOLDER --><label for="dest_folder"><!-- IF S_VIEW_MESSAGE -->{L_MOVE_TO_FOLDER}{L_COLON} <!-- ELSE -->{L_MOVE_MARKED_TO_FOLDER}<!-- ENDIF --> <select name="dest_folder" id="dest_folder">{S_TO_FOLDER_OPTIONS}</select></label> <input class="button2" type="submit" name="move_pm" value="{L_GO}" /><!-- ENDIF -->
--- a/styles/prosilver/template/viewforum_body.html
+++ b/styles/prosilver/template/viewforum_body.html
@@ -189,7 +189,9 @@
 							{L_LAST_POST} {L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL} &laquo; <a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">{topicrow.LAST_POST_TIME}</a>
 							<!-- IF topicrow.S_POST_GLOBAL and FORUM_ID != topicrow.FORUM_ID --><br />{L_POSTED} {L_IN} <a href="{topicrow.U_VIEW_FORUM}">{topicrow.FORUM_NAME}</a><!-- ENDIF -->
 						</div>
-						<!-- IF topicrow.REPLIES --><span class="responsive-show left-box" style="display: none;">{L_REPLIES}{L_COLON} <strong>{topicrow.REPLIES}</strong></span><!-- ENDIF -->
+							<!-- IF topicrow.REPLIES -->
+							<span class="responsive-show" style="display: none;">{L_REPLIES}{L_COLON} <strong>{topicrow.REPLIES}</strong></span>
+							<!-- ENDIF -->
 						<!-- ENDIF -->
 
 						<div class="topic-poster responsive-hide">
@@ -287,9 +289,9 @@
 
 <!-- INCLUDE jumpbox.html -->
 
-<!-- IF S_DISPLAY_ONLINE_LIST -->
+<!-- IF S_DISPLAY_ONLINE_LIST and U_VIEWONLINE -->
 	<div class="stat-block online-list">
-		<h3><!-- IF U_VIEWONLINE --><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a><!-- ELSE -->{L_WHO_IS_ONLINE}<!-- ENDIF --></h3>
+		<h3><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a></h3>
 		<p>{LOGGED_IN_USER_LIST}</p>
 	</div>
 <!-- ENDIF -->
--- a/styles/prosilver/template/viewtopic_body.html
+++ b/styles/prosilver/template/viewtopic_body.html
@@ -439,9 +439,9 @@
 <!-- EVENT viewtopic_body_footer_before -->
 <!-- INCLUDE jumpbox.html -->
 
-<!-- IF S_DISPLAY_ONLINE_LIST -->
+<!-- IF S_DISPLAY_ONLINE_LIST and U_VIEWONLINE -->
 	<div class="stat-block online-list">
-		<h3><!-- IF U_VIEWONLINE --><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a><!-- ELSE -->{L_WHO_IS_ONLINE}<!-- ENDIF --></h3>
+		<h3><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a></h3>
 		<p>{LOGGED_IN_USER_LIST}</p>
 	</div>
 <!-- ENDIF -->
--- a/styles/prosilver/theme/bidi.css
+++ b/styles/prosilver/theme/bidi.css
@@ -13,6 +13,10 @@
 	text-align: left;
 }
 
+.rtl p.jumpbox-return {
+	float: right;
+}
+
 .rtl div.rules ul {
 	margin-left: 0;
 	margin-right: 20px;
@@ -118,6 +122,11 @@
 	float: left;
 }
 
+.rtl .jumpbox .dropdown-contents a {
+	margin-right: 0;
+	margin-left: 20px;
+}
+
 /* Notifications
 -----------------------------------------*/
 .rtl .notification_list ul li img {
@@ -261,11 +270,6 @@
 	margin-right: 0;
 }
 
-.rtl .topic-poster {
-	float: right;
-	padding-left: 0.5em;
-}
-
 /* Action Bar styles
 ---------------------------------------- */
 .rtl .action-bar .button {
@@ -497,7 +501,6 @@ li.breadcrumbs span:first-child > a {
 /* Quote block */
 .rtl blockquote {
 	margin: 0.5em 25px 0 1px;
-	background-position: 99% 8px;
 }
 
 .rtl blockquote blockquote {
@@ -507,10 +510,13 @@ li.breadcrumbs span:first-child > a {
 
 .rtl blockquote cite {
 	/* Username/source of quoter */
-	margin-right: 20px;
 	margin-left: 0;
 }
 
+.rtl blockquote cite:before, .rtl .uncited:before {
+	padding-left: 5px;
+}
+
 .rtl blockquote .codebox {
 	margin-right: 0;
 }
@@ -600,11 +606,12 @@ li.breadcrumbs span:first-child > a {
 */
 
 .rtl .caret {
-	float: right;
+	border-right: 1px solid;
+	border-right-color: inherit;
+	border-left: none;
+	right: 6px;
 }
 
-
-
 /* Post control buttons
 --------------------------------------------- */
 .rtl .post-buttons {
@@ -919,7 +926,8 @@ li.breadcrumbs span:first-child > a {
 	float: right;
 }
 
-.button-search-end {
+.rtl .button-search-end {
+	border-radius: 4px 0 0 4px;
 	border-left-width: 1px;
 	border-right-width: 0;
 }
--- a/styles/prosilver/theme/colours.css
+++ b/styles/prosilver/theme/colours.css
@@ -409,14 +409,9 @@ dl.faq dt {
 /* Quote block */
 blockquote {
 	background-color: #EBEADD;
-	background-image: url("./images/quote.gif");
 	border-color:#DBDBCE;
 }
 
-.rtl blockquote {
-	background-image: url("./images/quote_rtl.gif");
-}
-
 blockquote blockquote {
 	/* Nested quotes */
 	background-color:#EFEED9;
@@ -441,13 +436,6 @@ blockquote blockquote blockquote {
 	color: #2E8B57;
 }
 
-.syntaxbg		{ color: #FFFFFF; }
-.syntaxcomment	{ color: #FF8000; }
-.syntaxdefault	{ color: #0000BB; }
-.syntaxhtml		{ color: #000000; }
-.syntaxkeyword	{ color: #007700; }
-.syntaxstring	{ color: #DD0000; }
-
 /* Attachments
 ----------------------------------------*/
 .attachbox {
--- a/styles/prosilver/theme/common.css
+++ b/styles/prosilver/theme/common.css
@@ -97,10 +97,18 @@ b, strong {
 	font-weight: bold;
 }
 
+.text-strong {
+	font-weight: bold;
+}
+
 i, em {
 	font-style: italic;
 }
 
+.text-italics {
+	font-style: italic;
+}
+
 u {
 	text-decoration: underline;
 }
@@ -878,7 +886,7 @@ fieldset.fields1 dl.pmlist dd.recipients {
 /* Pagination in viewforum for multipage topics */
 .row .pagination {
 	display: block;
-	margin-top: 0.3em;
+	margin-top: -12px;
 }
 
 .row .pagination > ul {
@@ -891,12 +899,6 @@ fieldset.fields1 dl.pmlist dd.recipients {
 	font-size: 9px;
 }
 
-.topic-poster {
-	float: left;
-	padding-right: 0.5em;
-	margin-top: 0.3em;
-}
-
 /* jQuery popups
 ---------------------------------------- */
 .phpbb_alert {
@@ -1248,7 +1250,7 @@ ul.linklist:after,
 	margin: 0 7px 0 0;
 }
 
-.linklist.compact .rightside > a > span span {
+.linklist.compact .rightside > a > span {
 	display: none;
 }
 
--- a/styles/prosilver/theme/content.css
+++ b/styles/prosilver/theme/content.css
@@ -134,15 +134,17 @@ li.header dl.row-item dt .list-inner {
 dl.row-item {
 	background-position: 10px 50%;		/* Position of folder icon */
 	background-repeat: no-repeat;
+	background-size: 32px;
 }
 
 dl.row-item dt {
 	background-repeat: no-repeat;
 	background-position: 5px 95%;		/* Position of topic icon */
+	background-size: 17px;
 }
 
 dl.row-item dt .list-inner {
-	padding-left: 45px;					/* Space for folder icon */
+	padding-left: 52px;					/* Space for folder icon */
 }
 
 dl.row-item dt, dl.row-item dd {
@@ -446,7 +448,6 @@ ul.searchresults {
 ----------------------------------------*/
 /* Quote block */
 blockquote {
-	background: transparent none 6px 8px no-repeat;
 	border: 1px solid transparent;
 	font-size: 0.95em;
 	margin: 1em 1px 1em 25px;
@@ -464,7 +465,6 @@ blockquote cite {
 	/* Username/source of quoter */
 	font-style: normal;
 	font-weight: bold;
-	margin-left: 20px;
 	display: block;
 	font-size: 0.9em;
 }
@@ -473,8 +473,8 @@ blockquote cite cite {
 	font-size: 1em;
 }
 
-blockquote.uncited {
-	padding-top: 25px;
+blockquote cite:before, .uncited:before {
+	padding-right: 5px;
 }
 
 blockquote cite > div {
@@ -489,16 +489,17 @@ blockquote cite > div {
 
 /* Code block */
 .codebox {
-	padding: 3px;
 	border: 1px solid transparent;
 	font-size: 1em;
 	margin: 1em 0 1.2em 0;
+	word-wrap: normal;
 }
 
 .codebox p {
 	text-transform: uppercase;
 	border-bottom: 1px solid transparent;
-	margin-bottom: 3px;
+	margin-bottom: 0;
+	padding: 3px;
 	font-size: 0.8em !important;
 	font-weight: bold;
 	display: block;
@@ -513,10 +514,9 @@ blockquote .codebox {
 	display: block;
 	height: auto;
 	max-height: 200px;
-	padding-top: 5px;
+	padding: 5px 3px;
 	font: 0.9em Monaco, "Andale Mono","Courier New", Courier, monospace;
 	line-height: 1.3em;
-	margin: 2px 0;
 }
 
 /* Attachments
--- a/styles/prosilver/theme/forms.css
+++ b/styles/prosilver/theme/forms.css
@@ -267,11 +267,11 @@ fieldset.submit-buttons input {
 	resize: vertical;
 	outline: 3px dashed transparent;
 	outline-offset: -4px;
-	-webkit-transition: all .5s ease;
-	-moz-transition: all .5s ease;
-	-ms-transition: all .5s ease;
-	-o-transition: all .5s ease;
-	transition: all .5s ease;
+	-webkit-transition: all .5s ease, height 1ms linear;
+	-moz-transition: all .5s ease, height 1ms linear;
+	-ms-transition: all .5s ease, height 1ms linear;
+	-o-transition: all .5s ease, height 1ms linear;
+	transition: all .5s ease, height 1ms linear;
 }
 
 /* Emoticons panel */
@@ -310,7 +310,7 @@ textarea.inputbox {
 }
 
 input[type="number"] {
-	-moz-padding-end: inherit;
+	-moz-padding-end: 0;
 }
 
 input[type="search"] {
--- a/styles/prosilver/theme/icons.css
+++ b/styles/prosilver/theme/icons.css
@@ -9,7 +9,7 @@
  * Just change the name of the font after the 14/1 to the name of
  * the font you wish to use.
  */
-.icon, .button .icon  {
+.icon, .button .icon, blockquote cite:before, .uncited:before {
 	display: inline-block;
   	font-weight: normal;
   	font-style: normal;
@@ -54,6 +54,10 @@
 	font-size: 16px;
 }
 
+.arrow-left .icon {
+	float: left;
+}
+
 .arrow-left:hover .icon {
 	margin-left: -5px;
 	margin-right: 5px;
@@ -81,3 +85,12 @@
     line-height: .9;
     height: 12px;
 }
+
+blockquote cite:before, .uncited:before {
+	content: '\f10d'; /* Font Awesome quote-left */
+}
+
+.rtl blockquote cite:before, .rtl .uncited:before {
+	content: '\f10e'; /* Font Awesome quote-right */
+}
+
--- a/styles/prosilver/theme/images/announce_read.gif
+++ b/styles/prosilver/theme/images/announce_read.gif
@@ -1,5 +1,12 @@
-GIF89a    vvvju˩㳳슊eeeWȿG4}撒:-y*w>&t!rQ蟿w!  ? ,       p8lvh:1O" hBp|2@^_P>*939=*2.E$<9*59 >/oC4><9	9 &!C *%)(%& /=+>'?:7%< =% ;>=0b<̀@.
|$Cp">ҝ I&6pQ'AHR(A78qbAxH &ެc&>np $2V$X
-pq
-!PQn01 EqG"P BVD FsRXtR(zEjBP)0awB ¡+V #&NP̅ >.܈{	 Q!~
-g 4Q>̘
- ɾ	p0pB
lApDa-` ;
\ No newline at end of file
+GIF89a2 2  fffgggiiilllnnnooopppqrrsssvvvvvwyyzyzzzzzzz{z{{mnnopp r#s)w0{<>?Q[]eltuӁ؆؊ّܔܕݙ޼߿                                                                                                                                                                                             !   ,    2 2   	H*\(2\ B#<b!"(ICN;!A"AD2e(K|@7)RGq/`xM# &@0UЂn6@JHO]W0PBDWO,@',sf̘3vYb& XxET AՅɎϠCITHTDP4Ҳ!_Z󥉍۸sVF/` 5'$sX,>kKN:Xn!BB7zT6ӫ_ϾMR~".BWbE|i.j (`djxu{Q!)vD(Vh)QQAMh6yh( IT TA$@	ǎ<@(o` 	qBP
+PF)P&  
+ A 	P@E@ Bl~d  t L @PA!	0a衈&j(t9t0#`PS駠 HTUQ0N@2ȭk\0K0h|  AWȳF+iXwLm!9#Kt&bt2	0,e A C"lpz`@L	0DAM$S, {L*qCK	4P1b8 @,,4PMA,0%L74[0B
pX;]h&-c#sLBbcr00\bxC=7ޟPl1[ny$7@×.+t3Qu7靿
+N{
+
(4`BO7JU	xª:h,/ Qu& 쇏ݤT晳2_CؐI )~'?DIL-L:P( NB8֗4FPQ*FH(*R#C .RA8!
ͨ ꀃUHLm>_A*ZXboq ( xȳXhLϨ'IrÜBx̣ZF;܁w&MH"HE	8!q8b`F3P-6NvjAjT//|\Xec%aKYΒ-p]x(IYJS"X+Zo)$S0	Ml>!5e.%98H"FIOz !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/announce_read_locked.gif
+++ b/styles/prosilver/theme/images/announce_read_locked.gif
@@ -1,4 +1,11 @@
-GIF89a  ? (+xtvxì늊ㆳeee鄄zԝYM7mrwz}>AhF^ly߷蒺薞333!  ? ,       p8d8%By߄hZm"LO K	3!F'./>$9	9$*_D%6>mC%4>969-"%C<3<i>֌->?4#
-7<
-	-.> à .$`aC6D0a
1<BG6)R#$9!,8M!G=, 3!=F}9bH`BwGk+`
ha!0A\m0WC ( C ?` @8 @=,4pB^eZ(XMR: Ň7f|]uƘ- 7Z]c7ۃݐAO0q;/"rD?b:j aF	 UTA
-5 [P$n<)P` ;
\ No newline at end of file
+GIF89a2 2  fffgggiiijjjkkklllnnnooopppqqqqrrsssvvvvvwwwwxxxyyyyyzyzzzzzzz{z{{{{{mnnopp r#s%t)w0{<>?Q[]eltuӀυ؆؊٘ёܔܕݙ޼ߝ߿                                                                           !   ,    2 2   	H*\('D|჈,Ƽb!,&(ID^;:jbTIFM3`ACG)JÆ[rK8sI-)6``EZЂH`ȠXO]U\,?fTd@We<`(!/ldH C@zW1%0x(Uk`ARϠCTXkVPԒҲ*|#kQ۸sNH9sTр524`ܵMKNkBFz)g%Fӫ_Ϟc".BibWi>L (`dǇj$xu{!2D(Vh29Abh&h(&٘t TA-`BɎ<@o}Af%&PF)Pv 
pAp@Y`I'l曝  t c)`A!m9xb衈&jtY0+S駠 JTl9c`!h#ʭkv!9GʳF+L-)B,t`b.쾑ÜtJ	9	ҘCK*lpyL9ҜMS {<7\bDLU	4Pb8\|@:,4PA,0-L74sB
X;]h.-csBbr9bx
EM}.Tݠq{.7x0<L8x@@@G/ {̚C
0zaT
ꭤ^MV(_z<

 I0C <9^АPC0g0T.?(L t9z0o0QTC/<R?2hFM e:lA:DZ&#tZ
+H+DIL6A03@dQ  4 4ьe@*6dEA<"̈́PHEoxÈl 8pH2RpB, 6B
+9ߠ>$<ᰆ"F.tAfȤ&7Il@Np(-06I6VV ́R2Q8^4 IL$Kᰢ4g2ZHXReki@r
+Q0)mJU`)2;YIK2&8	,H'C>d`.#6mws8"E0V eH@  !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/announce_read_locked_mine.gif
+++ b/styles/prosilver/theme/images/announce_read_locked_mine.gif
@@ -1,9 +1,17 @@
-GIF89a  ? K(tvxVrì,x7MyԸeeeǖ󟟟ӅtYʷey✭-Rmrwz}@6hΉ8^ly״ݖ333!  ? ,       p8t]F+jtq
}PqJ.5E@Qc "Ne@$`	naU}  4>6-$

-z).s1236!&
%8B+3"%f?+
->3-%
&x?#<2 6$w
8R>1 >?
-4<L㍁ .@d(PX\0G@ ?DxD Aa 
-<b< bt)S$* 
- F4:@Q@(ѡr@pcFW?L(41z\` ѡW>ہ, 0o1<8qބV 0bD~o:x =:x"fl} !+TiRH} 4ys{<
-p`iTGaz `3gp
!A
-#^oԖXbup3VP
-hE
-+P0?1RćA  ;
\ No newline at end of file
+GIF89a2 2   fffllltttzzz*M/Q3T8YEcQnfmp r#s)w0{ghjt~>Q[]eltׁ҃مڊ܏ݓޗߛ㦵䨶嬺υ؋ژєݙ޼ȝ߿ݞ                                                   !  o ,    2 2  odE

Fd.nh::hY4]7@FHIIHF@7om8;IZdhnmhdZI;
DX5˂\FUdheffFTY#ό/W\˼,?dXgR(ACxnAp-iP\ɲ"nPir͛8sqO
+
+/9Le)%e
nxɹUiW;c@% PQj=8fW#e ±Bkl"`
+򥌛P"3H>7g%0

+YΧb:
+]CxKhY3`?I
+eZٷ}  xvÜ1n8@U8j`u6@ `Ƞ Z|7j^HEBh``
	clT;e I8 B}Qd'h%Āi5UpvC<:b
+<t`H7,Ё ,0PBƗGx XFj` q
bƚ s lcn  q]~Yƞ^^ `y|I("Q dJ "(@qh]BzM
+*P  Jiz0ʀ",7D(js.p5i0,
+J	)A`s%n({znDQx 
D,1jİ$H	k@1Lq,HRJ<	E&x~p@a!'<^D!7jYpYTW	A/SF{B{6x'[]sk@euZi,|^͞ZkFܔG^8p ( t1 U]q䨧zH5 z!|a<9_ B!g-6%F;嗢a,W1O~
2E3?}?|/Q"$AWA^7 @P-!}!Xk|6[: wT2*@FxaD3iT%xFl1\C 
+f3La*`c#"1J\"dxe !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/announce_read_mine.gif
+++ b/styles/prosilver/theme/images/announce_read_mine.gif
@@ -1,6 +1,15 @@
-GIF89a    Ӻv)w퉉xxxj0N㴴eeeQeG9\W3}#>߳:܎>QXw!  ? ,       p8,@h);q3^ AZ@^2蓘$cÑ[7he2>!<%C	>="::"36..0{?$ %3:)-C >% !;<8U*g(ڕ56>)0$B""=
-,P	?92*%" 0
-9ÿL0 @@"𥂏Bv(!AA
-d]UȔ '%9$ȓ@
:e=3zH 
-(M:
9|D*UbX<;w
-xEAnit70XAN (Z` ebx
kX" j,|L`@ qK3
@`weQo/LW'% Qn&^?]vPO88a]>+,@Bxqyg~@N ;
\ No newline at end of file
+GIF89a2 2   fffmmmsstzzz*M/Q3T8YEcQnfmp r#s)w0{ghjt~>Q[]eluׁ҄مڊ܏ݓޗߛ㦵䨶嬺؊ڔݙ޼ȝ߿ݞ                                                               !  k ,    2 2  k`C

D`-jd88dU4Y6ADFGGFDA6Yi79GXYdjid`VG8
B5˂XDR`gbDBR`K#)WLٲE^2,GP(AxlAPaBWҠȲeD؈暘+8sYF͋@9D)ض\eO@)RPV$VB*eS8<Z*48 USFۯ_n
+8ƂGjE.qlEL0jDr,!b)E6]Wf'Y&
+u`V,24|8RٲՐ#p}535{ БG9_Ԡq 2qкy X h.j`Tr-5f^LPcШkh	쵧d%@ `,X`X`	䠆٨ C@>6QB	MXFaV`f<ea2)@L(6,Ё ,q\(	p42d @ 5cb* %ĆaV)&d*.  Q_Yh]Z  ZDi^cD%P*aD r$A<~AIꯞ:#
+&Ek4jSr+{@*Gvi
+ʣE-F>WraijrҹYqƎA 	;kpqe[!x.\	 	De!وh/<^1n"(l¤9d+G+DpH}
9E_њfl-R!1@2|` owOM;Qc7aK<do!Y\R؏+~8aoe3P!~VSH=܀ZH_i$bLk	`7!Y6"E1p<ll<RD'UDӼEJLe!ë:ְ!
+G)a
8 נJC
+Ԥ@zD3fh
+`<# `
BBE.vы N1j8Q(*FE%21&Z1  !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/announce_unread.gif
+++ b/styles/prosilver/theme/images/announce_unread.gif
@@ -1,6 +1,14 @@
-GIF89a    ԨZm䪸ev\w{vշ6IȘʁ5V~Cbc}Miܿ<\DWTprߚOcׁ@_Ge!  ? ,       p8@ІП 	iOƣxhգp`; A= Q,9>5717=50
-D :>%7((.53#>
-oC 73
	7#0 C&͉&
->."+>!?4%3+=,8>f7`D@h˗ F@	$qDŊQ` 5Ĉ6qM2 `F7oSE2`.I 3| c!1AXi4 @	`	Ҧ++fUBuT$BjX Wm"548PAg$xqnafV$m=zj D:¶5T AM'V8aOHɅ
-`p/P% 9T5<0
-<ЎfGpEl
X<8F ;
\ No newline at end of file
+GIF89a2 2  *M+N,N,N-O.P/Q1S3T3U5V6W8Y9Z:[<\<\?^A`BaFdGeHfKhLiMjMkOkQmRoVqWrWs^xa{b{fghsspw|~ԅҊҎ؏ۏ܎אՒӕؒݒؕږט՛מޙٝڟܡת׫ڪޫᠰ⠰⤲䩷殻氽粿ܳ޶޽                                                                                                                                                                                          !   ,    2 2   	H*\(!"$   A,8ba (I2CH;2jQb3HB)Jfh@@F)a  HYU`zڴ$& 0UЂl. HO]$/NR pWM ',sL3sXzS% hUEUA݅iϠCiGUTP \TM۸snӯ` 5& +<nKNzYp}AB6ze|8ӫ_R}!.BWbUpi.* (`dǅjxu{U!)sD(Vh)U1b@ KhFwh(" TA- Bǎ<@o] @ER NJPF)PA AÉ@A `l{X1E&	 APHI@(|j衈jH$h @9@Z<Uv駜^X<i!QiF0@	dSK j뭶bXk-Q L 3,R 6̢DF  P (I0bTk'l ! R%,qLI0H@M4S k"QHK	4P%"4l
+H#3PQA/%H'4Y(B$AJ=0?I%\w׆@0R|mvטܲ0'-sAt='KL0['nxH0~ً*'gyGl.:m
+k0밿H
+
+
 Į;lXSbȇ"I9ha$/}(@
+*(w(CDBcIT晳2IܐIOo{AĤL :h'HA`})LcHnU GH*E:A<""0gH0O/ь
+ 
8(`H"І PH)& <H2qy}` G9̙-fA:wo xg!ldB4d## f4_⒘d&}Ԩ8_ 4З@E.VJ^1d",gI[ȅ.mPr$()NiT$de+]eAV2d&5INvғH# !X4d	qD$B`D#g< !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/announce_unread_locked.gif
+++ b/styles/prosilver/theme/images/announce_unread_locked.gif
@@ -1,6 +1,11 @@
-GIF89a  ? Fd)Zmߚevs;[؄}㨶zciZuե4GȘe~CVػvx܏OcPlǩ333!  ? ,       p85@  Qk ZBQcO@IyӖƧbDpDoR5$>.!616!.5_D"&6)),368>mC->&63#6%p <!!<i >,!!#	+>?-*<.&+.<2

>.<'`A 
-Ԙ,4$1"M`AE(Q )Sk84̉\>fX@
bڣjU(^`TE:[PXh 
-pp ր3EY @]aE	"`p |XÚ2?LC+2'
-B`(:Jr` Y !
-&T|Ȱp˦P[TX"p/T$GQYpp(c(|<޾6!, a`UUD1E
- lQ 	GtQN ;
\ No newline at end of file
+GIF89a2 2  fffgggiiijjjkkknnnqqqvvvwwwxxxyyy{{{*M+N,N,N-O.P/Q1S3T3U5V6W8Y9Z:[<\<\?^A`BaFdGeHfKhLiMjMkOkQmRoVqWrWs^xa{b{fghsspw|~ԅҊҎ؏ۏ܎אՒӕؒݒؕږҙט՛Ӟמޙٝڟܡת׫ڪޫᠰ⠰⣲⤲䩷殻毽氽粿ܳ޶޽                                                            !   ,    2 2   	H*\(PV.<Xh9ba,&(IDZ;!Iưq6c@QX)Zs2A`zڹuU03"4ZЂH4p`ZO]?hl8h@Wg(4(AO0v"ED62%P8UpfA-RϠCԫYpnPԒ2$}K'L۸s$IXu Ѐ53
 X$n7NKN:'nBGz RnYIӫ_~ReB".Bkboi~ (`dׇj$xu{!3D(Vh32dh&h(&ެ3L TA:4`Ɏ<@8o~Ѐ"Ahe'PF)PvB pAƬH@Y40'l曞1E'
dAPHaв1j衈H$hр	Ҁz<(v駜XS)*QFр
)j뭶Qt7"CeCIR^)6.F^\J
 
:Øb覻$B'k0 3F.AlTN.,gBC":հрMSk
+/`H0	4P"4<B
H03PAo.H'4y$J=4;?Ջ.\wשt0|mv׽2;1-scAt268mLm.3'*A(c> C\/;&N6ĔnAb6v!8ﾷ0D #
]:c3IOX6[~#I1B!3?`0LI2$h/،].k@%1/`GHBGXbAB>Â Z4 BF8Z4@|4`(Cа4ch8P1"
+sH,Nu`8uA[ָ`.C(~#x̣u03x cL"H?Ar3pt㒘̤&\@ &MH*WN~[FIdF-.w] @0` ZFR/'_t9G aKYΒXev8ǉ\ C)Q 8-S+aYbN%,8q	LdBD'@J
+HHH9]H"F"ʼz! !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/announce_unread_locked_mine.gif
+++ b/styles/prosilver/theme/images/announce_unread_locked_mine.gif
@@ -1,5 +1,14 @@
-GIF89a  ? 2FꬫewFe)rZmޖ؃Ϻy<[䪸Yuzciȗ郄e~եAUܽŀvx-RPl8܏״OcXv333!  ? ,       p8=B	"
}PqZ&Ne8pzpa 
-4>5. ,.z,:s0#727#35$+(B">%7--/37(f?73d.(;+x?1!<  #
-5w!?
>/##' 
-%>?4<` b <hd 
 bPPF)^H,*$8qFɒ|T0H8q b	rY 	9	
-*D6l@@4ijkRDe`+h Rٮ4"0``H<xFD18/N6<Ma	L8 {x, qhX1&R*qfvǋVo2D	 Lġἄh|7a0 >|x	4ʛO㺊
*3 9ǜzSp%ZьdA]@!| ;
\ No newline at end of file
+GIF89a2 2   fffkkkuuuyyy*M.Q3T8Y<\EcHfLjRnQnWr^xc}ghist~ׁԅمҊڊҎێՒܓҙޗ֜ݛܡ׫ܫ⣲䩷宻籾ݵ޽                                                                                                   !  _ ,    2 2  _S..R ^T)	)TJ.Q .056653."Q	\$-=FQW^TQF=-.F0ʂJ0ASWSJSZ^	..@md#G<yF
+&aD*hgʓ \ŋR(IU@  \a1H%YH2C0(r͚#
lɓd  -Gi5H9M4}z
+VhjI_.B0R,ڹ=KjV!M,^Сle(,}R %
LdSA 
NZU,ua`Twk˪W(8B,TBb+a`	˙c7)K,%R(Tƌ};K*@^DYI^STR5G %'PyQf=3hIaZ}=q]A9EPFЋ P|
6h!	+ މHY" P

Z# %(_BYqLCG=$_mz\P S-腛m. M
zTE1*5! %=thT^ŢU$@N@2Jebj6P2)~rPl(PJy*ij)w#b(yAfbJϪP	b
+;zJEeŷn-VĢV  `D""aToV1о g
:WU^\qhAT*zEY$QJU69<~!J
++K
+0P];[!AR7l~#8`{!R|hEc$8bo/p V7ONޕwAx_8 P+;]EZlAW[tnah _ hpC!!`6Żþ/g!ELR5t}GO)X_%o %U@5 vs_hF |X&H@,{"u@v y `3dAB|qm_(T@ 	\0\ xJƐFŌC	h
+)Bc@$h	LLV !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/announce_unread_mine.gif
+++ b/styles/prosilver/theme/images/announce_unread_mine.gif
@@ -1,3 +1,19 @@
-GIF89a    ZmEd2T΁;\Ԩ䪸ev\w{҈2FvշȘݚBW"?d~Pmr܎Nb!  ? ,       p8T"B RgqbO3bOH҄2Q4ׅؑ';h|,37>:   ' :(C"1>9=!<+<!
44&{?&>*<--398<
%C<<
! W;+U';6%>&B3!!
-0P?n @*pa ;b@G
 A- h`CF	|0 r
->|P%K>&H(ӑO8(PA|=.8`@8>9!	O=@U .ĪC)Jjސ  @q{40cA] q^4X rX0ypXFӟE(PO0Ϛا]TPdapB6rP% p`NFJ 7rxN2
XԘO>^<@%9p``9qAjDzJrA^qRaDKN< ;
\ No newline at end of file
+GIF89a2 2   *M/Q3T8Y<\EcHfLjRnQnWr^xc}ghistׁԅمҊڊҎۏՒܓޗ֛ݛܡ׫ܫ⢱䩷孻籾ݵ޽                                                                                                                                                !  P ,    2 2  PC%  %COEE;$B
#)+,,+)#
B M 
07BHOEC70#
%7%ʂ; &3EKCKO%$3֜$GA=|⃄R>DJXćA 
ɓ ZE` L͚<ٰr%MTa57m~bY1)'$0iӧ H%@Jz@p5 (I<^ZkD
+؇Z#OЭ$gH,A$A y`ixmBvK VaրPFJ9ךcG H[F"q7a@OLPII #wc6C֌\Dh2Wl" RI<ф5IPIO3 CTB|_y/8@%b+hE	x4nx)@hC4ȡQ^'t BXc>1D	rdQr
+bF<F(- $)0x㟀b fF eF D
+	
+*f8 @ &񧨈6j
+BAɅO4gDYh4
+DȨ5,P"Ȫ%jDÅD	"j&
+PLB6
+kzmq* Hj5J-aAۨN:f;'m*aa	DJ+B)bIl<Z#Oc2Jܯ%+@
+957xX o(']r
d`n5ܫ4$.BFXUu  [S3wh]5j ^A@ ) 6, p"yGHB%;bW9q"Vh/ Acdז/Dǝs. 	67r |Do\
,!
+8`WO53 s@PUKdyWذ	l ~K/~S<q opJF6C`A]X i`0@ l|Gf`c   1 <,""a#x,6P l]D $@#%
++2$,yF !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/forum_link.gif
+++ b/styles/prosilver/theme/images/forum_link.gif
@@ -1,6 +1,17 @@
-GIF89a    IvˍZɓuuu)wo%tW_ReChfc q   &`6fff!  ? ,       p(4$JLRJPQ,8 PtH(3M t,MLL0X:ֱ|̣_{ '(b(#{7| #c' ""7| 'rB ""
;;
"B*$7"<"7$*? <
 $/9/$66""8@`|!8t1F/2Q@
-`<r`c̖,ZP 8
-}x (QA-сB=JJuR
-཰ kW4}൬/!P@P|Ԙ;]	 P!C:L8p*\E"A2>8V&
-8tM4i8rP5=̠Qvz j=+t8D$(u(X82=Xp"ŜdHd`ฅ.d {F$! 
-	H K(s ;
\ No newline at end of file
+GIF89a2 2  fffwwxmnnopp q r#s)w0{<>?KLMMQ[]celtuӐ҆҆҇ӇӈԈԅ؆؊ّܔܕݙޝߢ                                                                                                                                                                                                                                                                                                                                                                  !   ,    2 2   	H*\(P
( @
+^haa(I2;`
+&ZȘA-LTX@")Aq@@,lbND
+1

+8NЂD!.O]10ЀW0p"u<AHL$u5@$IϠCF"f-52P\28$:4F۸s"d̡Dvp  5C(%AKN= HAB"zO@͑!ӫ_~78!.;b3hƈ (`kdj
xu
+{ HD(Vh!
+q .hƇIh(|$ TAAAĎ;#@#倁 TKD)$IiR1` J :$BM&lHj)NA!E"k8!蠄
+I&Zh\ i!6<Uf  iQF @?$G*k!Bͪ}$C EyR$"$
+&_&@ЂAŸ,E"m;.т Ā 2ܑUo#4kz2@TVTlqPDPt WET3T$X4@,\%lP@@tBmE缳"?%PG

TWm
WH_AɊܛo"haflp7"~[|7.8Smd'/{,hD.Wnx$j"!w`騧:+*")O;lz@}'7+<v>Jdw}'AK6Wo~ /~\z	@5q` {G	0sdH3'H
+ZӋb40J @(L 2g?"ăgHڰ+ā袠G !!@"H,C'!Qsf=XXbpG Yk`#3hLh'8e@ȣGC5)W*8!F"yLd&sEe,e9KZE.ty]R$e)MITbh+=@VҒID&4	NtTH|4$dC "X#I4 !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/forum_read.gif
+++ b/styles/prosilver/theme/images/forum_read.gif
@@ -1,3 +1,12 @@
-GIF89a    ۽vFV4}bʤ;۠m,xPð)wu&t!ruuuԧ?   fff!  ? ,       p8d:΢!_!4TU1O"A@X0R<3B3"u  v3~C&  (oC'<<..'C	 >= 	~(7? 7><7 2#;)
3)4<=)ȁ#"Â Aŋi@	9tI$
 Kش G`qgO\zZ<h%v ӧL(!
-tP5>\Ё3)`|P۷p/S O_{ W?PǏ_(AN$0hA a@ Flq 

Vă	uhAf88HhÁ1H'
-#%0q& ;
\ No newline at end of file
+GIF89a2 2 z fffmnnopp r#s)w0{<>?Q[]eltuӅ؆؊ّܔܕݙޝߢ               !  { ,    2 2  {K
+
+KV

V5	!"##"!	5h%.JWhvzzvhWJ.%h4 (MvM( 4߂'XfbŊ9D1ˉM%	$@3% C~14&$$PҐ &CEƋ8s|!
+=gLX%`HG1JJ*5z@",ȣhӪ]v/z "4$h߿%	09"KL0@IDp4١ SFmm0  BD81SȎ߿W B~B!+*kߞַ@T2BO=˟O>A!@BlЄ\`>jXX K@	Ć tє&{x.0#4h7(z@ 2A (QH&
L6O*$\JT8 WQE`	&)fz\A @ !Gigd*xOF( $"<&袌6шP  Mf馜v)Ќ@	X:ꪬjzP뮼SD:oƩGR$ld.Rd'%eUڒVl
+IidfU^),! 0l,=^L[Tlyw]x $E\2VJHzE4l8笳5OGtH'L74䙇 
bd5ʫi5,ל!Qc6ת~v[!5s|sd]yw'/xѣ!` YuwEv%RL믿V\".${oPBe'FGꠤRQ#a?@du!u|CMtS9Î;COS1,L:Ҡ5
nLn}XE+,Y/!9 8QS\$(a	Lh(Da   !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/forum_read_locked.gif
+++ b/styles/prosilver/theme/images/forum_read_locked.gif
@@ -1,5 +1,20 @@
-GIF89a    h̻uuuu̔۲)w퓷5}XXXErVL___PCDD=?񙙙fff   !  ? ,       p8TD%߁a;@
-D`cOd`I RF,93k.v..vUO##.oC'2>>2C=<_?9Ī?4,25&&=>&52
-#:2\
-2&%><&2r2tH:dXbÇIxP%:,c CR;Ȕb< 1ܙ9AH p
5AՊZak&0+`D hk6hp-<#䀊T%fዓ;fXqpj@Hfج PHɁ/ܛ7 
e)f(
EM٦aC  `@ѳ
-8B Q"
AhAH ;
\ No newline at end of file
+GIF89a2 2  fffghhkkklllnnnppqqqqvwwwwwmnnopp r#s)w0{<>?Q[]eltuӈ؆؊ّܔܕݙޝߢ                                                                                                                                                                                                                                                                                                                                 !   ,    2 2   +	H*\(
$@H la!(IB8;JЀb-hбc4Z`@A))
+z 3z0!G$J 	CI$pBPЂQ($P3O]#84(H@!W7$Pp$I%UVN<U
<@uԦϠCT3<6PDQI۸snč$JX5	8R,NKNzBA(z]D)(ӫ_
+<&q!.BAb7ing (`vdGjxu{ UD(VhI5hvWh("PbF
+8 TA$AuŎ<@oEh@ 8UGPF)# X@RvEȁ
4P	d`%lśp)tb)Bxj#A1gPb&(Yg H(*1CTFT\*A`90A*aDOUbC0A	"^^%
+&%L`
q@dŵfXm
+XBtA4A`+` ^	AI4$p@$ 7Xа
+X
+iP"H	H D:<$lC`+`90	4P<A X
+@ 4T;Pd8'TWXVL;]	OdM'6tm\s%Lltw%sẖǕnyo4t䔇@㘿G;m!c51%+ЭRn;it0¬ViOQ3O	/74hӉ䗏 ৏qo׏o~JL"@~2%&2i 5T
+Z̠+H4>(L
+WhB>(F3*, J48̡w6"CO~cAHLE.
+:x <X̢,I>y}0g6061w6aS">|pcX&T"F:򑏌ZP|%/_"	I<#:٘Df2wDXR-lq\B1e(E9JRҔH*VVT
+d%-LdBD'<IObh$$cKINRM8"E0nӜ !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/forum_read_subforum.gif
+++ b/styles/prosilver/theme/images/forum_read_subforum.gif
@@ -1,3 +1,14 @@
-GIF89a    i飼Z߼H}㸺yѯ2|GsuwvZ,y)wP"qƅ8~>&t4w   fff!  ? ,       p8 Z_5$5C0eeC1h֊Rѣt6sAB3&7))7v$3~C)!!)$4oC*<<*1C >= ~45*:*)"?%88><8:*  !; \*8<=8*	*0bq 9@jP' P˗
88b6h@G
-	X<ʂ(H@sҀptGE4skc L[! 2N@PJ-!"p\H*D" |**]& 0BH,qt ظpB
-eL=P ˡ Ța _X#ՇPFӮ,,v @ W[A{&`a{d@t`ц6,@.PB (0D ;
\ No newline at end of file
+GIF89a2 2  ffflllnnntttmnnopqp r#s%t&u'v)w.{/{0{<=>?BDKQ[]ehltutyԅօ؅؆؊ّܔܕݙޝ߿â                                                                                                                                                                                             !   ,    2 2   	H*\(Ў&0 @
!v ba(IBF;"0p R 8`p@3)7l/`xgˑP0TЂe((GAO]*>< @W=$a-l*V,EFAՕMϠCfH@F@PҲRL۸sF/`0@5аrX7_KNVnYA2zeXlӚ0ӫ_>̚M~Y!.SbAHi~I (`d'jxu{!['lD(Vha'@:hm ("& ( TA"Ə?($ @iuFPP#_aWdY^VZ$> J@@U Kp)tiqLPA! 0aq芈Z 7p@ OAǦұ tQF@ [ 
+j뭷*+,l;0Q&,6*,|@@m@  H.*g/y,L$8@ )ǿ K. 
+[l!4O
gƘK/h EhB	4VP!4\*P%I$eZHPr0[H'4ҼEC5P)<ҒPL"mh#@G,PIG 8/ b+0]d؂0TC|sMBv"|1(0gk0!,Ʀ2.	0Ià?G/wQ*B?/;@0!Od@@S4d)db T'H+؆B G 0@
Ƞ/!$& A8(Da
+2 /HӚMd8ԃw(`h`[ $6e	@T $ꥁ@IJ'H*N<# .'_T`"x Ar#p2x̣ "m fvBr#0H?Ap0r1NzX$QD$ZB"*aF4 !~TqDQ
+M0IBL4x Ќ&4MBnrf.B9albr<Tavrg`Mȧ>㓾c(VO!efZ8KZ(-" 	ɋub
+T.Bohg;|#aKYΒ4 h9aJQ4%-l#&7nys 񕕴R0=̀RZ6	w	GBB$9ۙH
+0,qD$B`QB64lW !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/forum_unread.gif
+++ b/styles/prosilver/theme/images/forum_unread.gif
@@ -1,3 +1,16 @@
-GIF89a    ٖ\v̀5V|CbLiܟnwc}<\ܮܨԶRo޶Geo	(KjӮҨ<[!  ? ,       p8]N#p0DNOFC@hbi0Lh3bcB#	u3,,3-3	~C
-
3,,	oC
'-00**//
C,0>)0~	090?402>*2#1= 6*/#豣Ç16thȱ#G& (S\r
FDMY`*0@h_)*$zAիT x8@6g@d5)<pݻx1p,(0`4te5ӓ4QbӧWX$"S> ](! &8 '
- @ P@#'`  ;
\ No newline at end of file
+GIF89a2 2 { *M+N,N-O.P/Q1S3U9Z?^KhLiMjMk^xghpw~ۏ܎ݒޙᠰ⠰⤲䩷殻氽粿            !  | ,    2 2  |K	  	KNNI"#$$#"Ih &,HUgw{{wgUH,& h2
+ !)MwM)! 
+2߂  (Vi E9HI
+
+  M%	%@C% C~A4&%$PҐʢ
+'sƌ8sQJ=dNT %# `P!g4JJ*6{@"*гhӪ]/{ "4$h߿%	
+09"KL0@KDp(I 4١R^z=L<(  PwԤ|#O P(N}حS}=VB jP R㣇˟߇=)  @(&{pÀ ܁H`aMl  , &<Sfjaј&|| ,,"0(3{  2  QDIdH&Ki$\HX 8 @U\v%z%{T   "E)g`7Pq $ $#<j衈&ьP  Vj饘f)А@	H&jꩨj{x
+ Qj뭸T4(kGSkl`Sd'~a%eaaւbhjda쪋fQN)(1o Α=!!toQgjCE#lp\Lcr^z3y0+!4\30{S~sDmHcx7mASTS-2)US]4)ggidd}(e}_lVc
8fmx7mvW^{ͭn-a(vX EkTngn}re] S3騧pW xK0ɴPDŉE `4xġ3:(T7 @?@Gv_vlCMtS9Î;CS1(Ì3LS	6qB,ha\ 
+P& ()(G@B&40 !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/forum_unread_locked.gif
+++ b/styles/prosilver/theme/images/forum_unread_locked.gif
@@ -1,3 +1,15 @@
-GIF89a  ? 5QKiի؛UUUnyyy\vπԵEEEc}wn]]]<\Rn弾	(sCb˽<[fff   !  ? ,       p8| 3Пh b0̬cEhљeRg,./u(_D63/u;oC311--13C"/1;1/;88Ż
&?(0  ;- 0(91#9,- 1r1rH9R@#Jt @`
:&J@ņ*p C
- +ʴm>rt#ʬHւxTiwRx7كG
-p?p0!Y; b{pbٻ	.l@<|Ta}˖iND2h@z	Ui|<	Mm쁁G(p*4`@Xqfyp0S@%tj G$;(|' ;
\ No newline at end of file
+GIF89a2 2  *M+N,N,O-O.P/Q1S2T3U5W6W9Z:Z9Z?^BaBaKhLiMjMkOk[v\w^xe~gghpw{~φЈՌ֎ۏ܎ݒޙססעآ٣ܥᠰ⠰⤲䩷殻氽粿ܹݹݺܻ޻                                                                                                                                                                                                                                                                                                                              !   ,    2 2   -	H*\(̍$   !na!(I
+4;Q(j $5Ppp@2)
+Ja  3$&PJ"z3&ɐ 0BPЂM$ !3O]5#9<  W8 `lD&TN B@}ʒϠCT3B>PdҲDT۸sv%ΤJ~ 5C 8¨!,OKN:CQA&zOT)ϔ(ӫ_>ʔ<(9!.BAb?inG (`vdGjxuP
+{	!TD(Vh	Y
+a@ 6hVh(Tb
 TA" AqqŎ<@oEx Q 9UPF)e#0@ 
P\bQG%p@@(
 Q	$ZdppH igZ@R A!pF%vha衈"1"
jQ3 @@e OŧڃHh`CnFTC%7 A$Ůڅ"k"뱉T  P 0Fy^Tk^ ׺ ؆( @ PŻ"" rTF
 d  H%jH00H>4l 4O$PrrQQ@c8笳
+  
+^!HCE4`3jD-Ԍ2:Q+ʹ%?`-H@`$k̖lp%saxTv0|ϑ[ɡ⌏GHW.|l2砇^>!k@ZI#t.#]`_0ш:kI>uG'H&(	#9:Pbs?R/~#uo>vg`)Ag9w/_9xƧ)_Ѓ (LVTFP&H
+ZR#C $@(L!	ͨ *@8̡wm>
	A"H<bq ( xBXX̢' IrÜ(hL׸FEF;wfMȣG=	8!q8b `F3P"F6RjAj }T&1	H4ⓠ'L.Xr-n\ƻ(GR┶L*CAVTd%-LdBD'<O^h$JKINRM8"E0nӜ !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/forum_unread_subforum.gif
+++ b/styles/prosilver/theme/images/forum_unread_subforum.gif
@@ -1,5 +1,21 @@
-GIF89a    Hg׭ΌΜ5V۲Ti\w˨gyjӶ|d}w<\Ca^`aˀRnޟoֻo<[   !  ? ,       p8xOП逪W.3Es$f	]lPf11v(}C)!2oC! 2**>> !C&'1*;0*1}<º?('*3  ;> 3(F5=*9* >0 */(*=
-C
-CE8t(H.\P`4<8 G(SLࢄT&8@T(^T@&2D1a 'XP` &b@s Jaf,zHEX8cALg	|
-%JC;RHi0D	Za=fꡁFB@
-B`Bł=hL( D:d|ԬpyU+(Ʊ` :&a)FL\Qlb" b(4 `u(&( A{|1#j2B	 !0@p@'D ;
\ No newline at end of file
+GIF89a2 2  *M+N,N-O.P/Q/Q1S2T3U5V5V6W7W9Z=]>]?^KhLiMjMkPlRoXtYtXsZu[v^xa{ghpstw|~؃ڊێۏ܎ݒޙڮ۲ޱᠯᠰ⠰⤲㥳䩷嬺殻毼೿氽粿޽                                                                                                                                                                                          !   ,    2 2   	H*\(O"$   A(zaa(IB@;IA.r1$!9\|p@@
+>)za  7\è`xb
+  0TЂa$ "@O] *AB  !W@ cJ#Qe˖.j :є  UEJ@եH
ϠCVH?JHPҲQD娌۸sSƑ` 5C  b+6dKNzVlUA0z[TLS3ӫ_LM~Ui!.BSbIDi^	 (`djxu{)!'jD(Vh!')a@ ;h
+kI(`,J0@ !L1lc$(l! BA0@QƔTZaXZI\NII01 (
  P.op)pK0T @ TƠ"Jh  L<uf*jQ1F W
+ʪ*묳+\ = .Q^K&k,|{  
+u @v-#! Y/v<#9 Ё@ 0D)rǾ. 
+[l	"2 4OWlŗ&
+4@Q0lQQ@c%,/ zj5A!@-A
+A`BDDD&<@Ғ @"t`w   Nh,PɲN  L	k/$~B0-AYB0TdXBf#gy|h0ܑgiX0!`+¢aI0O1G/1Pd*"_qK,dL/ra|, p
MZi0Pb(B0U  3CN  0?+"c 0
+7  "-  +0L`0g8`h  :XD0"DD0/
IO+6&:ǈ6=pK3bi-;!  @*Ո*xHG<@%	;@]xl/BH"C1aP\⒘dȶI(B8T
1	0 Ӝ\╰on`vK.wK0DbC lH2ijf4s QsfVx T<񜛐X6Y,IO|PE&I
+U@}SeVǀAD#Z y xB
+/.pЉ\#E,p߰u G2%-k)]5qtEGR@)Lq
+T Mml 	++iɤ`"#4aCL%:0c*Ի#!!I 
+L$HnV8"HT(HCξ:+ !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/sticky_read.gif
+++ b/styles/prosilver/theme/images/sticky_read.gif
@@ -1,3 +1,13 @@
-GIF89a    Iu'vXeeee͑92|lllkǪؽo蘘uuu   cȣP^^^A!  ? ,       p8< jJMt :Bբ<GdЄ>@c+V@%""!S
-2n j.	>00->8;l^->^$;7>11//+2N3s.&>P>)> (P( >֧
N7]D	=>,vv%66.)>
	*O|Й#:RH@)0x8>b#S0
BHad,)1ς1ud0A|(xc5L #IϏ`P7",puH0ИZ"n @	2и+ \@X\ Ă /w||HYd
-TX:;fl ;
\ No newline at end of file
+GIF89a2 2  fffgggiiijkkllmmmmppqmmnooq"s#s$t%u%t&u(w)w*x,y0|0|1|4~59;==>@ACCDEEFHLPQX_`aacdgfghhk{Ո؆؇؇ٌڐۑےܕݕݖݗޘޙޡ                                                                           !   ,    2 2   	H*\80Ҕ8C)jT
+ C$qƓlXF,eڴ)	
+7Aɰ Q
+7s![m4㉰Utׯ&Q@VTZ	bnHTϟB\9CЦ=j3Ǚ!mu&٩is qqMqp#$۸s\-mG7ü9sCK	#%6<8pO!Bwƫ_\78`AYIQ| H2L%$q'D(Vh'IAlD5,b4I(X4,RUlMb.I@燏=b*MF2昢ɔ$ TNi9dqIdQlbhzcEMRiuVR	|rTř|b衈ֱC PbhlicN)tip|i)戓
lZ$cN,jkF iĭbN2ZF/Ǌ92+9FRp֜dkM7 F`΂ʼ"rK,a$QbN5$+p ,p5"d#q0,2,="O#`J`p C/μc$L6<yq]/Du(G@(RGjt1au	kb31v&(91 uM0GyxK0 e,1JE$L/08|@hpgj
03sn2g\p>$ !@+И5d/h=5Uq
+!G1 A>1b#'R_L牃@ B2!G\F+U>	Q46HaрQ6p 	Op-̱
iPD(@BilpT?@6HD!
+M38@@0G8A*Z1x  pmfDM9xEQ7hr,"		X@80`	|W
>,RuF	8&I((21@AT HYETo"p (D,@:0c !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/sticky_read_locked.gif
+++ b/styles/prosilver/theme/images/sticky_read_locked.gif
@@ -1,7 +1,12 @@
-GIF89a  ? 鹹+xr٘eeeGĦ⩪؋fιlll=-/0ǌ_pZ6any
-&Wuuu   P^^^fq{333!  ? ,       p8)V":DuY06B*+%*4"s rn"> 
>
-m6>,^"9> 4422  	1O3 8>6P,>*P*#>ҥ  N'!=!0!O>.vv::3<Nsuv agc&xp ņ.H`
<7|4pa Jtc xtrc8\T@!,X؃Ǔnnc
-56ㅽ{3pنDh;z)A *6,Pj`0
-QJs="G^Cf@l
-	mQa3		"|D^Z4d8$H!o'	
-DP   ;
\ No newline at end of file
+GIF89a2 2   fffkklsss|||mq$t)w+x4~9=ADIPX_chj{Յ،ړܚݞ                                                                                                                                                                           !  G ,    2 2  G9%%9F'

'F,	#',--)'	,E%-7?EFFE99-%E?"-9"?҅?(@<6646<@9(	GE
,?Dxn`;<Q d=i讝FFAJ(@fܨ#QH҅*2sua!@SNPa; PB%; Z8;&dUB
 %;9"TZ˸n˳<!4  ]^6&>HayĿ yw9;,ab>axȔ.4snj=2ޝ7w|b5rIr #ww@GI	$7^xA9h`a?v*Fs=['N4~ pB~qDlmdq'6&l29{AgÈ0~. [$7w,rg.h! @,WF<%#hDFR0eOHuAFt%TI&R*#3DcYdT!heB/AT;,J}Ig;N'Qmh̉PHd
CĠ l'	FP
+0@Þc*4:_z*k	 gQŰ÷;l*RrVn	&H`ѩT܂B1Ϊ& tZD1^Uv<D?JDܮ Sj1TTcxk"	
+$K*ǒ8T*k )!$4!3R7p9pڀ&o0-@ݬTk7D06${|LU 8i0t egoSEsɳ2.L"9$j9 
+(L#pI
+$}u$&5TP$0P
B !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/sticky_read_locked_mine.gif
+++ b/styles/prosilver/theme/images/sticky_read_locked_mine.gif
@@ -1,5 +1,13 @@
-GIF89a  ? "sggg󗗘󻻼WVr7Mrǖަ∳٩HdӅtey-/0<✭-R85~boz
-&sss   ״```䁑333!  ? ,       p8,\ס>t8:PsJ."'DO%_N /`0 4.#.nS9> 
4+)7uD%%!)cR >%3322
-.)+6Cɕ#(6S/$>
-nd>

"/"R(&=&1&S ~@	x`؁Pʧ=} C, #@PРdt G=1AMXT#ĔRpC &>|كǔ0 @ Ch8p ֎a}D]d~@p'A$L,ByOp!1JN+	8`a|=BHDlf者d,LŞ `Q
-= "'92\n'@j<o2@0< ;
\ No newline at end of file
+GIF89a2 2   fffkklsss|||*M.P1S6W7X@_FeQnfmq$t)w+x3~e|gjt|9=ADJPX_chj{Յ׀مڊ܎ݒޗߛ㦵䨶嬺،ڔܚȞ                                                         !  m ,    2 2  mZ?!

!?Z3llDDkU9I"=DIJJGDH
+i#?IXbkllk[ZI?"`;ńb<J[kbZRJbbEZc]WWTtu`4֌됄4]hQ#
+C$fyǲ%gIWK1qTh"6xcӧN[PEi!
+1 +T1<`4QҰ@l݀FP4Ԟ>{%恡Oh0br쨷U`7E!Y+dcǾ͎1°IC᱌ENڋ캲t0Ф)E|WW
$
$hRaݿ><eMɤVA|}D	P5vF?__'	ŀ' Y\!^!=Jpϔ! +7`~klA+4Ng`H_X+ yaLd",5тl. 9"0)D[{eaKȶf~5xpcY^	@ ^!(AN)	Z59&e£gla(FRKiy9z	c-("FgxjXHBカƁQg
+ 
+Xi3X.b6(a~:!*ͯ T͵ d=n`e<sX*a\D:.sB +eXϰ{ilxN*qR4'B+(|Fǒ`|rac}a^4j8+况SH[@V+̆kAXKm+?I:Z$5-$G{|ϝ\RLmz<":NЊ`/Lm-Y%ث	=I 0ԕ6ȏ;ڼҌN֧;^dM1y:kL'_-¾+[	pBcF5!LC=%GbM}=Z,OA&C	L$`QaF !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/sticky_read_mine.gif
+++ b/styles/prosilver/theme/images/sticky_read_mine.gif
@@ -1,4 +1,11 @@
-GIF89a    gggu̖e0N'vIXQesss<_8ޔ#>3|˰o܎   ```Pf@!  ? ,       p8nm |.t@PB1%	=f9G-ʿA/%	;e>
-""	3-
-/wS5.(*R=>"11!
:8&S]!c
-.23(/5e '>,c	>+e+>	؂ R MRP%66[jO @%qDH`-lcA2I` :,YHa&0ZFi$
-BlQ£n| S' z( ၅!#B<` ,<A	4>R b!_q8VAbhuc1wR
@ =$ޕ
 ;
\ No newline at end of file
+GIF89a2 2   fffkklppq*M.P1S6W7X@_FeQnfmq$t)w+y3}e|gjt|9=AEKPX_chi{Ջ׀مڊ܎ݒޗߛ㦵䨶嬺،ڔܙȥ                                                                           !  g ,    2 2  gT:  :T.ff>>O4C"8>CDDA>C	c!:CP\effc\SD:!egZ5ń\7D\eMD\^?S]WQQN\Iy0c1d`ahe8ٸGh4ia,)˗/Ø11(%̟.eΨCf`g呧PŊP.r	. +O+V,i(P:HsIVl  bFQ0x@>aq&Y)S"3@yQ )@/ԝ=V3<bF̄-Mc,ur%@[㇘Ib,G^wbaAD
+7%>4涙_OG$EFA`+Ac_ba_xלsfAI+!؅
+PbW\e @g]dEX YL\TB+Tz(EHr!4SC+S&GReEVDTbLQD}Dڥa]<MiWx%͚&8	\~ӅC8eSa)i+r74[ Ef|!h:
?D=%U2LD$g1QCectb!k4`J`P+l\t(	$0PC(p 69FE|4ￃ(lc+I7@LȹylqEex<'	,ȀЈrc%-sX'-4&$*J-@Ugp_WQ
+2`5fQ`K|:equZ: JlcD`eMMrS4R;>
d5pC㙯E}>|:10TF%@2#;!S+OҁX@Dtǁ  !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/sticky_unread.gif
+++ b/styles/prosilver/theme/images/sticky_unread.gif
@@ -1,6 +1,19 @@
-GIF89a    0Rѫ⥴؈5Ifx̃YtoԼǛ}Dcd}\nKhߙrBVv<[Qmko   Kj@_{[l!  ? ,       p8,Q.E!:BA <. G:KpMBH4sh>
-//
-#>
l9w3]&>0011
-(O$.'>P>)	 P !>	Ҥ$	g$\D*	:D >-tt6
-)>5 O>rs	ɋ
-^XБ"C18L=O51"	@BQЁ@"	, 𡥆
'2  C	LCgdLh
&D#,q܅[cE42`@\!8`+.L.@a/cx،G.4vi`
c! |0 ӧa|  ;
\ No newline at end of file
+GIF89a2 2  *M+M+N-O-P0R2T3U4U5V6W7X6W8Y9Z:Z;\<\?_@_A`CbDcHfJhJhKhKiLiNkOlQmQnRoSoSoUpWsYuZu\w^y]xd~jjllmoopxrrstvم׉ۍۏِܐؓޔ֗ߘߙߚឮ៯٫ᠯᠰᡰ䨶䫸嬺宻宼精                                                                                                            !   ,    2 2   	H*\80P  p`$jT	 CƓXƐ(]Ȑe-|A׍Ӊm۠DLoS 	~T
ׯ۪iR#Ô;G+ňP<"ڝ)P-UU`@!HǐB
+
+S m(
MtiJض50 LQ<۸s&h6PS w@;2dI.Q;? X0y
+ 
jb:tH$H3ӫǔT PP PD6`x& &E I @]EȃF(ᄉDV  FK PȈa(#
5 F0 0D'۸Ȏ<6 m @lsI#P6y{D	% l$]AȘdidZXm4H="tuRdL pnɠ-DZM ldp]Y"ɥ^ʆ !	FZll R4$ફd) l}lSK%	 lI.l 7Ա2Tkm,µ*M?! D5۰ɺf"yB.+XF q 6ɘ"a^6(9ktU)g|
+!AqV 83  dK*0LCH43,lH LOW @&+H#GH~$,RE `V"J˸L^*bp$a\ 
+c2b7Qa+,(c 
' 0\0D@"Rb PmR x˴>@>x! l@< -8 	' sϷ
+#'L@f}oK	`KL
+n͛H".;  T0 
+B C PfAH| bU  w !ۈ1FhL$$4F4
+" ˎ@
d8a  }x~
j(HL"5-E_[ ZmX"S6  +p@@ V,4(%nCu 1
+$	 (0xenA ;D{@
+tՋv8C b`-!
[0B &   QPy8<8r!.q  !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/sticky_unread_locked.gif
+++ b/styles/prosilver/theme/images/sticky_unread_locked.gif
@@ -1,3 +1,14 @@
-GIF89a  ? 5Ifxߙ[wЪև:Y\n=]kĜe~BVDcrLi߽-O嬺SoHfo܏Kjᢱ{{[lfff   !  ? ,       p8t8$G!:ƣB_&+n%Hr JbAa26="22*	#=%$l^3*

=^+=>>00	N4 .5=3P=-&P&=զN7	O=)  8;;<N=s" ;@  >s<v8yᄎ" }3ǈ 7t d;it5ZE
-D:*x!D	)
&ؐh:u|B[(!R|[  B	"`J	
-@x + E'wE
HǇ;!=l,
2y"-(d+V8 ;
\ No newline at end of file
+GIF89a2 2   fffuuu|||*M-P7X6W:[@_CbHfLiOlRnVrYu]xd~jmopxsم׉ێۑ֗ߙܦ٫ᠯ⢱䨶孺籾                                                                                                                                                         !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  !  M ,    2 2  M<&&<L,

,L0	,0030,&	0I
+&07CILLIB70&ID#3BB3#D҅D-7A?==99?A8-	CI0DƔxG <%Ɔp0Aq0bȻvݵ(.1@Lq1F.{0F$]	2
+
v?f21b@SXX0bDM̢Ep'٘|ͪU!큄1 cq΍+̤G㉽ISz&MjCP:نIbӄ&0)+M
+(z2(u6T
+ IG\:tI4j'|yu硙}1 AC/$'IɹZxAV4`fG&QkATUHitDExZ=`umS&x]SE0x!h%A, U"8` sHE	SQ t饗HnTD%:hCL]f
+8gRY p	bp)N"KyZ g֥1D]%yl2A) 1し.rZ0Äq?SqZ^"t̪0Zv)j"1Jl{Ɯ**#B◬";k>d+." 6Ƌn	RҺppnrKӊ<n,1w!@Ge{-!, zفF
+ &`KB"3]n	(	)4$1 xlc4#MQГu-t]|]kCN̈́A'ϛD0@5h-r^%06l5*xBC'򱴊DHBI1F,3-p3b&7|@p 1 ԏL1 ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/sticky_unread_locked_mine.gif
+++ b/styles/prosilver/theme/images/sticky_unread_locked_mine.gif
@@ -1,6 +1,18 @@
-GIF89a  ? Ұ6W3G.TfxԈHg嬺ޖZv]pŚle~z᝭To?Sr8oܐ|Ykfff   !  ? ,       p8>>tX:!  D@Z#sJ	7+4%/05)")nS4>&//
!uD!>5&+C
-">&	==II)!tS1$		.̕:6S>(	*>,$d>

R-(CPc? qp
-!Ԟ>~F(C}<va F:P4Xc#=x!d:@xC?Ta+T8
<pA
B:x#
-#N`ӡ۬?8Cr9dXG̭[ir!% 
VXZC[r j,0\R C
-H8ϟH`` aA<E@У}(G	
-z/ly>hMj< :u3$ 0 w%b  ;
\ No newline at end of file
+GIF89a2 2   fffuuu|||*M.P3U7X6W7X:[@_DcHfKiOlRnVrYu[v]xe~gjlopxs|׀م׉ڊێۑ֗ޗߚܦ٫ᠯ⤳䨶孺汽                                                                                                                  !  Z ,    2 2  ZH3

/H)YY55H4959::95/9U
/:COUYYUOC:/
UZN6ńP+>NPHA:H/OP
6CMKEIYD/&ǐm`
+4+jm6,
+ hM $T C9(ٰ,_7
e4&KxH*$JX(E5% MX,V
뒳K]DI,hBL
+؞{.YbD{ǔ"!^,ϟ=b$+(@TEeb.ɂcV.H:[g-4,/.qImL$wFYO`DO߼#,:L$:<U^}`$āLPA?(`'mX^?|ÃvXaNb3S|4_a9Jl/XDx5>GDLJQhDM@	e|dAXT	\	;$e_RFfL%  s
+"0|iGG<f=i,B FE|$	
+"YSY<jj0sફ ̩"!OS+pS:'А +#=3YX%,4ʩ^F:jQ0
Q{m 02@XAEp/f.Yn+NIH
++*aJx0g}%B2M&X(p$ЊB3baVlh+ULT S xD@r(B?Ya:ΉtKΓL`Y=B]vpt' ˡ$
+
+,̝(EY rPmu'3a`e0u4`?x F[Έ[;鋤u@
+Ag_TTA='LrADx]`
2ؓ$\'> AioO
+Qv e]aCk!3k !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/sticky_unread_mine.gif
+++ b/styles/prosilver/theme/images/sticky_unread_mine.gif
@@ -1,5 +1,18 @@
-GIF89a    ѫEc<_5Iشfx]ož:Z⦵Yt΂oԼǛk}DYd}!=ߙqPl,Ouیo   {YkKj!  ? ,       p8@Cc|.80bD"AL 0%BT#@)h6FE"
- 	  =e>.4/*/vS
-;.&*+e) >33<6 <6(S$}c2%&1&
e>+>'*e*'> R0=9SP(p`> ՠ@Z Xe `c6:"rжb,
-:@rEnhE:t*D
!\p9HǁmqAՄR,* 
-BBA\cG;xw9|H 2# Å?'1dɠ)XH@a
KbѠD/h= )* ;
\ No newline at end of file
+GIF89a2 2   *M.P3U7X6W7X:[@_CbHfKiOlRnVrYu[v]xe~gjlopxs|׀م׉ڊێۑ֗ޗߚ٫ᠯ⢲䨶孺籾                                                                                                                                                               !  K ,    2 2  K9#
+  
+#9JJ((9 ',#(,--,(#, H 
+"-4@FJJF@4/#
+FK?)ƄA/?@92/@A
+)5>=6:zPWFQEF5`$62j0,Őh>nl`KE| 1BC,(GK;vh|4EQiH	ᢪժ/qDKP"4]бvmˮ@@(h/m떈P &RUlO=|DOq[{L2"hUō]-:%&	kE  DII@$' 
'PaQ6*=Fb%!0cr	 "Z+ir["$Q>_%D*i1դށw$0 $wD~> HT
gXꗓ \~gGtH~16BEEh[bB8@(b1Uv fR	яLp")()%  @aԨL
+G $1)B/5c:&pPB 0Q!gxBf  U^0Df3#+lO
+J<éf)L=K (qE$
+zjB I@OJ*
+jWôW:EQ@49@Zk,DA GV)­	Ejq Q D\`qcj"_ɮ(䋭o12sI$(av+HL|JJKp+OArGgTJT%+VYXkIjݶ $mb2S2ւڂKCdHЁ6ll0	, CBl  #$T%+ABCʓ (!4l
+l`LḾ  !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_moved.gif
+++ b/styles/prosilver/theme/images/topic_moved.gif
@@ -1,6 +1,13 @@
-GIF89a    G4}lɲ:SǬ٠-ygY*w>&tq!r&`uw˷QÒwӝ6fff!  ? ,       p8,\VKɠHh@K0@*Q!
->;#2-2#;&
-D+2
2>
- oC+>%%C(38$1	_? :#$<#:> ?368##1	4>9LhXAxT#p
O		t! 82⨖Ə8]'yTyaz|`ގ8s̙%5V¥QDS<Aq0tHJ*UcѯSslY9Ҫ]6	oP0vڅч*&6K8/
6@ R,`HLD>8A	)P
-`
g<TJ x 
-6A჆T!Co8E@ E'`  ;
\ No newline at end of file
+GIF89a2 2  fffmnnnoopp r"r#s%t)w)w*w0{0{2|9=<>?Q[]`cemlqtu{ЌӋՅ؆؊֑ٔܔܕݙޝߤ۲ߢ                                                                                                                                                                                                                                                                                                            !   ,    2 2   9	H*\(p͌",`A!fa(I;;Bq'^ظC
/Ndp@()&J @
.x$Q'ѥM.%£&	
+@"QЂO*СƐ6O]R!5:PW4 CH|rH#U96$;@DϠCBT6;>Pl2AmT۸sV¤NM 5C "i#-KKNF$YA'zQѴ	&ӫ_Ͼ	@4A!.Db?ig (`}djxuP
+{  UD(Vh Y
+A 2hHXh(bl  TA"ЁŎ<@oBtq@5ŇPFIҔ=DiPI5p JClbI\#pم%A ,mlG 衈Z`.p@k Oť~A(v)gDOq2C $#ajlr ƫ#$A 3B 'Q^K,*§	 &vڲ9 Fr˭B A 6$	gko#I 1+{/$bC 4
O?,N 8<|wqoDuCETiAD#+lsP@Q</@
t  DW <P3'?EGXg5>hHC[8
Y!2ɜ&z!rAox!|G'	֖g'7
+a喛c&F+Щn2欓kD:S~|<!*'#}4G/}1(Ab9~t}z/x$= >\z	@5U! H0JdH3 'H
+ZӋb40%A(L!%2g?"TgHڰ+ā袠' !%A"H,"C'!QsfFXXb!p' Yk`#3AhLH'8e@ȣGL5)W⨾*Ȅ%&FZ"yLd&sNe,e9KZE.ty]R$e)MITbh+=@VID&4	Nt LH$$dC "X#I4 !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_read.gif
+++ b/styles/prosilver/theme/images/topic_read.gif
@@ -1,4 +1,16 @@
-GIF89a    G4}lɲ:SǬ-ygY*w>&tq!ruuuuw撺Q蠼՝wfff!  ? ,       p80^Ũ㱹Z+O`PhR0RL˼.S4>*Q =;83,38;$D-33=oC-=!##9
C(
-<'2
-_?:8&8:= ?41<82
-	6=79$$Ё(h[
 Aŋ]`G Xɲ˖7z\PcU)D*ęB2ѣH 
7Lhw	*qׯ`M30 @Z}j@BCZxA" Èa@Jĩ!*<, ѣ3XQЂ!
Rkp0@h1<dpA! -0ĆSH^p& ;
\ No newline at end of file
+GIF89a2 2 } fffmnnopp r#s)w0{<>?Q[]eltuӜ؆؊ّܔܕݙޝߢ      !  ~ ,    2 2  ~N 
+
+ NY

Y6	#$%%$#	6k'0MZky}}ykZM0'k5"*PyP*"5߂!)[i<PInK%	&@c C~a'&$P (seF8s1ʞ>jP`%hXA 2JJ*7}@0GhӪ]˖1} 5$h%߿%+
+ʰτL2<"KLe2@MDpȆ4ᣴӨSϓ +D!@3ͻw"B 
+   УN
+ѳGgP
 >xY޺g?Ol >_!C`&
+X N	(AĆv ~D4'  }aċ0(4G0< LMĐDiH&	W0 }`ĕX^ޖe%}hA @ #чJf\	oJ# LK*h=j衈":QDCB%S4LTj饘f馕BS%
+0RjjrryꪞGX1ŬΚꖵjqf}pQŰı&ŝyGSŵfvdclpaN
+}Žޫ{[:G>'7+0$8Hw By3,y0Ǽr?!1Oc쳜8,=x
RmМQPG-T?}4ggi`-d
}6[!5Xv!tmvd]y7.7ѣ!` Yx!WnEv%RL$nV\".$zrnnPBe'F1'ꠤRQ#a?@xԡx\CYMtS9Î;COS1,L:Pc
6pXE+,Y/09 8QS<$(a	Lh a   !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_read_hot.gif
+++ b/styles/prosilver/theme/images/topic_read_hot.gif
@@ -1,14 +1,17 @@
-GIF89a  ? eG詩eeev˙]*wouuu&tԍ[ʊqh_eVQfff!NETSCAPE2.0   !
- ? ,       p($vO3P()BY:`2(q"00!0 Xh >36b47>-	>74P8>..>8rB#23	..>32#t '		  !++! 5""59>}>9!xp
z(\ 2Ǎ0-ZXB0Txq@C ɳ':1ԊH]&T)TԻǋX^͊5?rT0@Rd
;DE*ȝKK:aC؁0mp*"_ xfx &'s1b(zgXAA(1ӧ1ɴ)J;>A @6l0hJ*W^D@DI ף !
- ? ,     dP8
-#E}BR.fbmpQkyYȊP?F/<lqB}C}B?11C
-QP??
-
->BA !
- ? ,     pgPp$Z^6%sar|~"*UKoea++<S?KbRRFS1SR?%
-)=)
-%?A !
- ? ,     h9!D^GZ'lXذXjmx+kT+B+X/B<?WWW?[SQRkbA !
- ? ,     oH}zb+zXl#h\,ܬ7hv+D .,,VB*}-??*?B?+B/}<?/~=[jthZ=M1>jXB?A !
- ? ,     W
	+&ƐIZ`mC.,znT8d%_	*=~=E=
EVBGQGFbaCV1CA !
- ? ,     y9!'EH5=d tIϕV	/A.Գzn!GOcEXB?P=
OkgB?<<O
?NCOO1jlgA ;
\ No newline at end of file
+GIF89a2 2  fffggghhhiiikkklllnnnnoooooppppqqsssvvvwxxyyz}}~mnnopp r#s)w0{<>?Q[]eltuӂ؆؊ّܔܕݙޝ߿¢                                                                                                                                                                                 !   ,    2 2   	H*\(2\ B#Tb!($(IP;!A"DD2e(K|@	<)2RJJ0bĀ
+E	N% &@`DVЂw6@KO]%5PBDWO,@$(6!
7}mVT& Xx5	ET,AթϠCTKTDPLҲ"hbN۸sCǓ0b 5'$YXAsKNZv9B;zF,;ӫ_TĆ)".BYbEinj (`djxu{Q!*}D(Vh*QQAMhv h( cIT TA$@B%"Ȏ<@oi 	BPU PF)dǔXJY
+1@1(
 A/l 
+u)皇B @A!)q	1"蠄z
+ `袂xt0P%`PS 馜v  0"HTUQ1N@Ȭj"`j:+.N4DPR#6m<* ?0E
+a<-|y #覫e80- Z 'ĄQBL&l3Q+< ȁę#Kd DR<	$ ,2>z@E92&QIQ@cMU$83@	8j _l4TSPDs6PG} >PLC\?pT'm7@աpۚt01p|30-/*߄s2k\G.@,2	D'˯*;(n 0YW鰏21~+P)	]HbCORc?D<d}#0ٟg- @	o  R=)Ac*lPqЀ pSxA 7DIOQUx TtJ
+y
+U.})Lэ
+V8̡whCW@HG2@_HL#E1QAȢ.z}+hLרF0@tQAȣ>N(9Ʌ-F:ґv,5͙rNz򓝴pCp2f]򕰄e0Ԃ+yT_a0<&2K12%-la[".C)QE*T
+V9*S +iI`"':	|"s&	$$\Jr{2!E,
 !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_read_hot_mine.gif
+++ b/styles/prosilver/theme/images/topic_read_hot_mine.gif
@@ -1,14 +1,15 @@
-GIF89a  ? dZޯ0NGQeeee9\#>v晙ttu*wo&tˍ܎qQXwfff!NETSCAPE2.0   !
- ? ,       p(Tr#RrcPJ`Ma
-Q"ft|	f0U|@bO ,>4a>(>b7>1	55>!qB)3411 6:-863)s	  ;%&6..0&%||+->
 g0$&P`=2j$
-<(P`bƀ<\  != A!
-!ǍfE#L|ɴS
*͈ȉU
-B1f*$ٳd48kv-:T࠶P#Pa#=@ÄTQ,Te
-*VC
Da[ VP%̀6߿+)w; Qqf͚6oZ1ʕ,[T}H	(Aq  !
- ? ,     o#h\&tyجa}ۋhB)c[	PeGqCCwwfG=?<<G</G
kVwv]GnnHML?V>OA !
- ? ,     !l6p\4X_/v7l%~Ó:Ȗ ]6A9B<D?< K2  ?Zf\aB/Q<L
yMmMB KGBLBL'" = "'QA !
- ? ,     jHL	Ri^wZ.5˘FX)ӳz/
- ?]kK<|?
?}B KBbbKKRQOS[?KA !
- ? ,     Dz $l><1trXVъDXalLmCx랐N$&vvB:XB2<BB 2gMg?B vvB
hyjk]Nojlj?WBX>jhaA !
- ? ,     T
H$ yt:Zob&hL+:}Bӥbo/_xBNB{?yC~I?SQRA !
- ? ,     yHL	EmzhOi2cf$pA.gzo7Y=|IJ{Q ?2sVV<<
B<~QVLKPVKMRBLhaA ;
\ No newline at end of file
+GIF89a2 2   fffkkkrsswxx||}*M/Q3T8YEcQnfmp r#s)w0{ghjt~>Q[]eluׁ҃مڊ܏ݓޗߛ㦵䨶嬺؊ڔݙȝ߿²ݞ                                                      !  n ,    2 2  ncEFc1mg;<gX7\
9@FHIIHF@9\	l:<IYcgmlgcYI<DX8˂[FUcgdceFTQM/]hbŋyX~Ը\=QR$b%!Ch!x˗ud
+keTܹp'62^
+]J;`҅NOU!bLʑEdS<ejWAi4djKvnܻ^~.z@
"0$F/UzT1c2mTrh,",)b\83qm:TC;|>%Ό;tإ
+s.$#I2X6Yޟa.i/Ψq`껿Q!52Ƞ	Q{_Xl^ uV dk Am I\8$~!  HQOo(_7i"HtƇ_<" ,/fEZ
>L 4Fx H 	bRT#] d)[1Fܧ$* E(vx5GE $H\3hdQd( 8'<
+釪B_%Pa*)u~!O@)%20k2+šP
+ B^s,2ib[	
+;$!!c	"b AYr `P2oɧ4qc1В@#z:5_)Ql1*Lƿe`|M H%Ͽil<$!L,&!kn q|`ƇJ 8! Wl0V;r
A!Qk	OJVzjt"F4@C5O:]S*e!	Oo޹mA`|޺ЖK?%1@˧cC=HmOaUthE[HDd[XQG~[=0#|Bn4	=lЃ
T 1df G
cBH3Tpӡv
+da\h&4d3iTc؂78/-l1\C 0G(&0%Q
+t^d !	JX2J@  !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_read_locked.gif
+++ b/styles/prosilver/theme/images/topic_read_locked.gif
@@ -1,6 +1,17 @@
-GIF89a    )vyzz홙풺jupppWȿH3}󠠡000:>Q⟿wB!  ? ,       p8 h@"f
-,O@fbH]2 \xKQ=>*&99&*2/_D3191>oC3>1
--!C	* 
-
- -	"#9>?85 %%,7 	F:>x%(v @A & >')[ 
->*%G`PRls.E` J.Xa	
˕P@ za|lȁZD` Y<JX Q 01[q5kF艠d>DXlb@
`0AmRn%P
`X
Q!bD@mNP#	" ˨CWTV!ԓ/cL	a
U0  $&PH0M54H!P$F 	4,A  ;
\ No newline at end of file
+GIF89a2 2  fffgggiiijjjkkknnnqqqvvvwwwxxxyyy{{{mnnopp r#s%t)w0{<>?Q[]eltuӀυ؆؊٘ёܔܕݙޜߝߢ                                                                                                                                                                                                                                                            !   ,    2 2   Y	H*\(.PhЀ
 ta! (IR
@;j	/p $8^p@1B-)^!6P#ҩUN]D 4RЂY04p;O]&=<8h!W<&4Ȑc 3
+)`졤vВLB@-ϠCӧT;B>PJ,JJ۸srOUxЀ5C
h"j'2VKN:ND5A,za4Q,ӫ_FT5!.Kb?(i (`djxuP{	!#`D(Vh#	Yi!9hbh(bGH TA!41Ǝ<@oKx@=uPF	TVi%
+Qf!4

t*aƚlZf))'g
+4@A!p*!gDa衈&
+Z64@u4`OƦv駠~
+GTC+:4|ƫ*무*TpЀtưk&/4 @4 Ƶ^VfCtA>\Jpn%>4p@q,pal#<xDDETrTlgCE;0ylrr{JO4Ϝ5܇rnD]H'thh[PJK-#d\w5!QV@BTP.+J&-w7[ɂK
Ϣ*"Me 0 /А!W~g昿	( dOĩ''z#Pi['PAd9"/[#OyZO)AJ2'To\X_=$Z6⸊$$Us!EpGAp*H1:*Z*-Ġ?
OsH(<*7%!)6A5\!0g6H"vBS:@*!5
@A*ZH
+8ɌZP2fbN6 _DH^$՗@%0E 8
+S17[HXRkF"aq
+Q0)mJUEyJ*aK`"':ɢ V&` dGBBe$N`! 
+@D"F4K^! !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_read_locked_mine.gif
+++ b/styles/prosilver/theme/images/topic_read_locked_mine.gif
@@ -1,6 +1,11 @@
-GIF89a    *w訨vuuuj0NԤQeG<_W#>0005~܎>Qf!  ? ,       p84<dI0=>qC`G!r<``	TCdGÑ[6ڈh-k5><=C	>(   +4..1{?!&=  '-?&>=  +"8U#gЫӫ34>'1!B$%99P	?75# ,9l0AC8@b8(#2f@b C) j^ \4n$A !%<P 
-rB1$d>VXbDG|4 hpM;l@ꅫ(0P
-:mH]fGx0x1T#YVQ!k?`23x! 	>
-[f)/"%!a!8h mjbp
-+>N0LO>	5'0an&^?G
-Sq"|>W<@	P7H\ ;
\ No newline at end of file
+GIF89a2 2  fffgggiiijjjkkknnnqqqvvvwwwxxxyyy{{{*M+N,N-O.P/Q2S4V8YA`FdGeQnfmnnopp r"r#s%t)w0{ghiijrtu~~<>?Q[]eltuӀׁمڊ܏ݒޕޗߛ㦵䨶䪸毼υ؆؊َۘёܔܕݙȜߝ߲ݞ            !   ,    2 2   	H*\(֙4Lذa	9BÅ̠H[D Gt|XF1kĉf*5JP#@
.{Ip<2Gawo0Wta3 4h0@H16p,[݊//Y;iBlQOrTHB@'/"n=rCNv]"DmFAy0wWwGܾ|-Zμ9sG-Mi6t'>tOfP£AHѷG߯Z
w8qwP6 %i@ tbr7%v rx>7AAI&0(4¸=W+
}'&DiHYN"M IGA|%ɖ\`| G7OT C>xɞ|'B>M>>(>o4R쳌'f v駕`Z>N.F>d%̡*j뭸z1샏6?glP"3ʳF+6)Ԯ"Xq@9lP+b覫J 
1>o>È
c*G Ķ3 DnhEK*$L2&(+l2-\Q@rű*8<3[A-H't*tCVbV3/X(>bfsl'W^/|߀mL=x@@`0$ OS1WNaqG *ˬ<ǔnz 2T@8h40'C 
+_^q,?V2G/G3__R1gw3_$/
^j^fAPW>N4_$O
 p_^@G@
+7:7 (pIъ^Sjx !
+nK,ȅf^u0e#K0u/
!yHLy=A*ZUlx'HH2C^:׸ 0G;1A:h 涏CtM^BcF DHb60<f+G=HIy#yB"/|V2<dBP*XKW,0qn~Kb2X':OG$L dɐ$I D UD*rL[ !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_read_mine.gif
+++ b/styles/prosilver/theme/images/topic_read_mine.gif
@@ -1,9 +1,16 @@
-GIF89a    蒺j0Nu˩WȿQeG<_4}#>:-y*w>ۀ&t!ruuuQwӟ򼼼fff!  ? ,       p8\\UXB4Z0 ω!0蔡LRN,a.xN3dJ_P= <
-,
- g#E=
-//=%oC-
-<14!71C9++$2%0
-**81$$'=
?629
-
-:!:5=:4'"D E.	z0xƆLǡ C #9vh01D0&DtǣϺ@X)
L~9S LĎXjja,ӈeM Ag= Kݹ	e@ 4
- 3TR;`  fd@d2 h=8k=(dB4P"D3@P
	P3h^q4F A-b
L	 ;
\ No newline at end of file
+GIF89a2 2  fff*M+N,N-O.P/Q2S4V8YA`FdGeQnfmnnopp r"r#s)w0{ghiijrtu~~<>?Q[]eltuӜׁمڊ܏ݒޕޗߛ㦵䨶䪸毼؆؊َۑܔܕݙȝ߲ݞ                                                                                                                                                   !   ,    2 2   	H*\(PQ'2\xB,(B(#ÅHIB4,#@GnZLE$PX2
+(0P${I
+$ "N9s'DgI!&c6$@PK#[ݺ%F9Ӱ6 N*<(&#1t"
+СF-ʢ*	C40woWG3f֠Yμ95M}ND⅘]xORnP6}xi6߯Tw.qwġ6`9@ bW
+v r3
AnP r0(48J2E"
+\DiH0PEAL ǖ\` 0L-8$@lBЅ3Ǟ|'/ه36|`3H"33T483fvr`38#$F3J` |j뭸z+(	8,D3M<ǳF+Җ" @Hф@,<"b覫H 	 3o3 	e 8 G Đ8d DSh!$Lr(+l#\MQ@rYU!8<3[YA0$H't*tC?VHbV3/XW(̰3Pbfl6h1?Ca|߀WKn.$xZ8n%3ŀ7'-
+|̫jEJ(
+ .쳻:)\a!ԱLZ./o|5B&Y̘BWg?)8E
+APW>*_1>zD@n%*  .-0HVd'H"X(`\,FH(43nq<!c8̡wCc+x 	p<@>A.&:L`3T
vs_`A8xH:+܂8f2ABҐ"11Acf0Ȥ&aɼxKpa薷e.u^VɕFt	*Xʁ8*RU|%,c)~@Z$&3Mp(By Q:h̃d$&,Oj~!E,xH@  !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_unread.gif
+++ b/styles/prosilver/theme/images/topic_unread.gif
@@ -1,2 +1,16 @@
-GIF89a    ⥴~Cbӫ5Vc}Miո=]wXtSoroKjˁߚ^xׁ籽VqGe<[!  ? ,       p8|DR!y pIÀaRh
- RH@3B9b	#Q5>(;80%08;($D600>$	oC>91C(<!
/	4>:8

 8:> ?-<8/.>79Ȉ'O( DAŋ E4 (r	"˗.oؘA +8ETSD#hBѣH"]/8_7Lxw~<ׯ`z
|Pa$۷lWi6F(v
1l)&V(^x	N=L|>6аairi83*dS *.	&Tp0p" [^䈍8 ;
\ No newline at end of file
+GIF89a2 2  *M+N,N-O.P/Q1S3U9Z?^KhLiMjMk^xghpw{|~ۏ܎ݒޙᠰ⠰⤲䩷殻氽粿                                                                                                                                                                                                                                                                                                                                                                                                !   ,    2 2   	H*\(I
+  @B<a
(I);:@">(aD	0<@@')P  Phe͞?Ҥ (MЂ4 aĊ(O]uO#" W" X BmÅ;XiV
+ E	'@̓eǋϠCށ%T('$PҲ)F۸sqcK?hR\ 5C h`a 6KNz8@Bz/gӫ_1 .B6b%h& (``dj
+xuP{ [;D(VhaY9Q@  h&?h("r TA 
+Ď<@ho*D IA #EPFIҔ#MQ~#@ Jm  +B&lRj+@ A1ğàj(&gQt  = (<Df馜vʩQF -1*  !T 4Q+k,|M` @9 YEVK-؊d\ 8 P T(f-R$ @Ko=,SDUBEeTLD,WlCeE
0T,rb;sHOaQ0\21ǌBtq@DmAżЖTWmXg
߷ʫnt!bL%dG
+d*tmu}G
+>'^x:|go]<Jd&F:bV)_sΰN+^9P7B7G|PyAgt/~s1؀/_n   gEA C='9ɇ>OB̆qGHB7 F6fgHpNq  3
+@"ш|PjTS 
_҇>X̢ؘDf2wDXR-lq\B
e(E9e*UA +iɤ`"':	 |?&	$S
+\JrG2!E,X !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_unread_hot.gif
+++ b/styles/prosilver/theme/images/topic_unread_hot.gif
@@ -1,15 +1,14 @@
-GIF89a  ? 5Vo:Yc}㘪Kj۔́ZuᡰsjqRnϕi,O9Z/Rom<[!NETSCAPE2.0   !
- ? ,       p(&V71P(hh8.V(1DNt.;FX)d>	 >20%b
>>
c%
-/%rB740>//>047B683<<386?5
-5}}>>>(ȣǂ.8H
h@AB
-1^1E
-(Јa *TJbH͛8oXD(TI遦P o;:تr­AGE:]˶@blF	]o^	9fի+^Ď]-|		ɇ$$؜f"RH,^M2w܆=Мd̠a
s`,xYQ7GhoR]L !
- ? ,     bcH~_a\
-^Gt*=ج``xͽ>V/?{j}_>){]z]V]$G?$?3EDG,GL2]3A !
- ? ,     rfqR1x9_Z_oz\Xݖ?S^k.ǫＷ*.*o\abcJRGc$B(;?B6%=%8J'A !
- ? ,     WS2k:{ERZrambX5T|ׅVcʊp*k݀VVV]jOPj?,n;A !
- ? ,     tŴ*J+|ЏҫVBz	\Òz={o
-^$~q	q**r..rr{?qodeXzg=$V?("";,,;"(?A !
- ? ,     _PCq6_?@P"
-@
nJaN<~HNL=L?jMYNjF=ZY$B?KC9C;;"?A !
- ? ,     qSy /[4{WyaX+F//7,(t~@Q<:Q+	?O=Nzi)NO$?$;,,;?(h,hA ;
\ No newline at end of file
+GIF89a2 2  *M+N,N,N,O-O-P.P/Q1S3U3U5V6W7X8Y9Z9Z<\?^A`DcFdKiKhLiLiMjMkOkRoTpXsZuZu\w]x_z^xb|fghkmhqqqupwwxy|~~҂ԀՇ֎ۏ܎Քݒ՗י՛לޙܤۭᠰ⠰⤲䩷૸殻Ჾ氽粿޻޽޽                                                                                                                                                            !   ,    2 2   	H*\(В&&,  `:Xb!$(IrCN;VqbAh-O@J) @M4ֱeˎE	Θ&-
+ @0WЂx0  
+MO]&6Ud WT  e
)@14'N9ʥ( $U	E].A-&
+ϠC$K]hPT  jh-KVjO۸sγTe  5C*  i#lCzKN!^˄ABB<zQ>ӫ_ϞϟW˔".B\biiʏ (`djxu{u![,D(Vha,uU@ Ph!h(!,s	  TA;  5bȎ<@ok qr@U!PF)_ǔXJ2TQ(
 -1 lYAv)皉- A!92$"蠄 `袂I l0% D0S0馜vH騌D<mČ  28"무Hs`2p  @Ȳ6,D#X`GI  	 <12@b袋#]+/$,3   hq2D"̄# PG{-Z 0@mT'tAuHbE9r'QmQ@cq$4l3E 4A a,4T\Ps 2L7FK:^Km43?%'`-
#IH
'23)m
+gtߡ2q3噢@Q7 0n)ݛo&). p
+T댂謟2v+.3L*`"#e2COSE>T?"PT*Wʩ矼r > \@c4fqE+H@jb B[! \+~'=DIL/`zi:((ů0
F7J-dA8!
k" f1"HLhhFabX̢EbdhC~2hL#(EA Ccx̣G;ɇ>	OBH"HF7 F6g&7NnNq  3
+2VҕPjTS _dc1z٘Df2waFXR-lq\BAe(E9e*U$ +Kb2$';O, I\Hτ8"E0~Ԡ !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_unread_hot_mine.gif
+++ b/styles/prosilver/theme/images/topic_unread_hot_mine.gif
@@ -1,15 +1,13 @@
-GIF89a  ? <_j6Wo㣲́Kjd}㘪9XQeۖZuk!=qqRnϖ+Mڍ៮/R-D<[!NETSCAPE2.0   !
- ? ,       p(6VQP(HFCf$ 
-(43V![LX(Jj>7 >5)"b">(%%>D')!11(
66>)rE3>47#843O?"$
59
-
-4/-/9|}}~	3#	$>	נ#P`/ʰ1"Ā!x`8\r<R^0.p  Ͼ*yYH*U@.HIãׯ<\xuk HmՌmбA5E,B˷^#D?+>BG
 ˘3g1אMt,`A4,
-
-"E`X@k.ermeбfP9?ȘAÆ8R@FȠ!9,Q$  !
- ? ,     cUYF!d\&Tx?fbϥf0j*ؾOwB<F<VF	0B	]H~]?I/MLkR\]xA !
- ? ,     n_!Q%柳9(zўv{EQ咻.5h
=HA?$p`K<?```QFb,_00_#)=)#K+KA !
- ? ,     DHߩl6G(
-Zج61n*g|X?N-hBӣ!~&U UNLA !
- ? ,     vUHR|Phz,6"bƾf3f\Onh{#''	}|cii
-|.Ld<?WqZV?,,?=L::00:LA !
- ? ,     Ap8İl?0V&+mBPA.9?`^/8|ث_B~N:CA !
- ? ,     VHk6(CVMr?w션fb^8gN\|y<.~z!!y  ~^00A ;
\ No newline at end of file
+GIF89a2 2   *M.Q3T7X<\DcLiRoQnTpZu^xe~gjirty~ԁՇمڊ֎܎Քݓ՗ޗ֛ޚܤۭ⢱䩷孻汾޼޽                                                                                                                                          !  R ,    2 2  RE&  &EQH!!H<%D%*,--,*%D O !18DJQHD8-!&<&ʂ< '5HME<EMQ&%5֠,#G@"D,RBDQJZD" @CkI@ʜ)3A&Q8,EC'(x
+4k&큓N ZՒhǥK"eɨ@gՇY 2	4˶NJRHn!h{l(N3DD M`_h%FCѰ8sB	Gp(`"F!$NT:_~_T Lw.Sa%]|toCrH)[a$$:NH({X=<`!$EQO+Ty'v9/'E
$!<Q&<S]58!3H$J(58bi@DQB4cv$Cb$3b FQ P =%TDc/5J
+:Hrq&- $' clf7c(0D
+谦S&qX	Q$KQhv2BRBZ %-7
4e'əD0a
+15-Pr) :z
;A@ 8ɪRL٩2IzZSi7k&1
< 2'NQeP":3<5 &Nd`5įL,o- 8C	ZCM
+!ud`-pSV 1XS7̄X0qB-|3-L|8Go\}3?Db.#A rVIƜ 2A:[55!=V
f]81
K@ľ[Ez%HB!A@LPW~y[~td!DR87QyPyy[ÃI p]r$
݇ QECM !7Lwӭ$7,80
I/|@	
 _sM4P<;?@)&0$A)+h
$,@:(f8(Bdڑ
Ġ*BB"=-r^` zh"B\0 *G@B %2A.v1 !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_unread_locked.gif
+++ b/styles/prosilver/theme/images/topic_unread_locked.gif
@@ -1,5 +1,14 @@
-GIF89a    䪸mupJS΁\w~Dcӫ5Vc}Lizո<\wWaTprڪߚ@_   !  ? ,       p8<҅Q
-ПE)l!YO̅h@
¹`RRMFa}Q*:> 992 >UO!-90oC>-4
-0 C& #4994# _?>=."
>$?*&6#''"*%>1 
xP: (Ay"Fa `=P1*H@x8$=NX<
%r#0Rlg

-#lztA7 n=@ G-%*ci;/@ZV	UX Ap @SH8]R#,J"a͞%@yk	`q@Bop0
-;^Qʘ8m7pؽk@
-6|YJ
)$	kO`㺃̡%! 1 Pf
X al\N ;
\ No newline at end of file
+GIF89a2 2  fffgggiiijjjkkknnnqqqvvvwwwxxxyyy{{{*M+N,N-O.P/Q1S3U5V9Z?^KhLiMjMk^xghpw{|~ۏ܎ݒҙӞޙᠰ⠰⣲⤲䩷殻毽氽粿                                                                                                                                                                                                                                                      !   ,    2 2   ]	H*\(Ύ.PhЀ#vaa(IR<;!/r"DH9^t@1	:)b!6D#RVR]4'J 4 SЂX04pG<O]5&>>8hW=&4Ƞ BE*_ɤvLEC@=˔ϠCT;C@PK(ZEhK۸sβЪVxЀ5
pB2ZKNzOH9AB,z]8aժ.ӫ_ϞFX9q!.BLbA,i (`djxu{
!$_D(Vh!$
!:h
+ch("bH TA$4AƎ<@oL| 	>HPFIҔ#Q" >@JЀMf&ljJ+Mx 
t$rƟQŠj(&gxЀрI<f馜vQ%F@Q
+*k(DA;4B/Q^+k,|sq@RVK-؊d"H
p 
pI+|f-%?4p@poa,{DDE%TqD,WlC%E
;0|,rb;sJO0\21B@,Dmthp[P>m#TmXg!  'G⺲klbp=3I5xM̖zj"-0LCCVڊ"Tn9"idg~&b裃'$.0"v
+l vIl("Z16k)_8b^q( j94ڈc+D~$x>TQ j$ ,E);ٯ ڀZa
+K8`[m-`K  i~cM(L!
+[ ixȃN8
YB9alD"Hv 
:q/<k`#3X̢ 0)/bhLpTCl/*V
+#{Hǃe,e9KZ- 	$LPȃ(GR┶L*\"(6%0	MlpQ 	,0J*#!!2(wqC "X#L !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_unread_locked_mine.gif
+++ b/styles/prosilver/theme/images/topic_unread_locked_mine.gif
@@ -1,4 +1,12 @@
-GIF89a    Hf2T;\ݖ䪸mupJS𶊔΁\wӫ$?[nաzd~ԶwWaQmrڪBaG^Jk   !  ? ,       p8D&nB
1>q\P\E  )pC)G36hM|55>:"':C!.>34
-a&{?8&>0 dC8	g<6U' *) >&	B =1) >? 5*,, T 
-	>.@AX ^pGB pǀ @ *b  ,LIUXr A u+38Ō3 ̗	) \]	cBYGA-X3.t⅁-*Vh!x.X["BE9#ݠi)s
Ȗ!
;|8"Wwa\qCW7f  
#/0a]S&Q.=S  J	XNڻ1	%G	L@ xIr
-$^Co	RaWL ;
\ No newline at end of file
+GIF89a2 2  fffgggiiijjjkkknnnqqqvvvwwwxxxyyy{{{*M+N,N-O.P/Q1S2S2T3U5V8Y9Z?^A`FdGeKhLiMjMkQn]x^xfghhiijprtuw{|~~ׁمڊۏ܎܏ݒޕҙޗޗӞޙߛᠰ⠰⣲⤲㤴㦵䨶䩷䩸䪸殻毼毽氽粿                                                !   ,    2 2   	H*\(T$4Xh4BDÅHIMTGjD)_Ɯ93拔!&2PPC
8{IZ	
 xN([Խ{Pw<AA+6T
2֭xn],)Sލ ١-	
>Xs5Yɓg"KdɌ$UǙB'a)Ezb˞];*L&!BD{!Bȓ+O~ػ"uvKK{-$Wx4:S3^Akpv$b&`"Ε iw"fb;"DǖAHy#,0K:P( r	$@)D $Q@$aqFAD AɕX[XCFT?5N` BP
0;L"ɜtjis^-N7H3DN*2ɣNǤVj)#4#m@ohŉ%;*'ﬣ;alO
p;db&lɲ߼sGbd!

|t+2D4DBRN.+ov7Ｙc
 
|Q;pbN5_4@U+dqƍt ƭp5FEuV0,-ouE);2s
+6OZL/nM7M(2\o`-vؔhӎ^x.1-tM.贑  8d/4INߔF?~]-Tn:lЩL/K%n(|
((7$7|1^;}Ěmَ0t｝}x߽1=}^AQN7/~?2p>^PGA:VL 2m(HNt$̠7Xr4z~`A
+j(L
+Ww~[f8C>( #@(wc{m8PD$V:N;э.z`v qI<o38p:HSc I܁XĄ`1J;ځZ$ȃ%.s]-
Ln<%*(BUt+âіG$&Mrt@
+	HL <b[JL")im- !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/images/topic_unread_mine.gif
+++ b/styles/prosilver/theme/images/topic_unread_mine.gif
@@ -1,5 +1,17 @@
-GIF89a    ޖ΁ӫ<\\wѤQe4U⤳Cb"?c}MiԶwTprKjo籽<_Jkf@_Ge-D<[!  ? ,       p8|6_đ!1DωhfLRC{<gmQ$
->,<	 + 	 >!
-UO> ">oC	<.00.C,9((
5&_?-	))3.22?$9		':$>:0p@ *J|ǎ<yzH(:DPq8Aɒ-Zh1"$Hs衦8%QÐxJ(Q0%i9q>#%T 8ׯ` !88:X+ x݋78! !'Ä#mx*
-K> 7LϠCxTCdPGϢGWaB
hO8`
-Y8!P`X5kd@
'%`cK9rG	 ;
\ No newline at end of file
+GIF89a2 2  *M+N,N-O.P/Q1S2S2T3U8Y9Z?^A`FdGeKhLiMjMkQn]x^xfghhiijprtuw{|~~ׁمڊۏ܎܏ݒޕޗޗޙߛᠰ⠰⤲㤴㦵䨶䩷䩸䪸殻毼氽粿                                                                                                                                                                                          !   ,    2 2   	H*\($   &~AÅhHHI	4`G|N D,YrP$p zIP hdʞFx+U=S0  \ T x%֭xnJ @U m "*Eq\Rʙ8ꢤF$9BeE453Vb˞S0L&	!j+
+0ȓ+O>fS0ug@u0 2
+檍)،$;x4
+)i2Ck2^AUpva&`][ ]MfbH0DǖA| ,0h.PD P7@)D$`B$DA0QƕXXDT(*5( @
+B
 hE0Ɯtji	s+L(-lLtC XƣŤVj))ԢmLNhuG:I0DI0El$ `0E0a&lTbǲ3EF 	 |ut+ &d 84$v+ov7０ X  J0aL*D @U!xdqit ƅpuDEŵVy0,-oE)2s
+6,LZ1L/nM7͈(H\o`-]w-O,̺p-t׽߾^H~?m
+2?.xIG~ `0%.:%pn騣>pP
+(Xbg
 Hfo%'og7<L @AQNX,t｝Zx/GA:)/o @('H. F1t&P!Z̠7A\M  \ @@+V.-  @@	i ]@C
++ `G;đ+H*Zъ- #	p$2h4?LA	W_xc}?4 a34f+.nF"xqx B|-n\bx+< 2q
+Tr\%+[Wr  .!*&9IO~e		HLR$%C "X#6)  !XMP DataXMP<?xpacket begin="﻿" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01        ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <rdf:Description rdf:about=""/>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="r"?>~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

+	  ;
\ No newline at end of file
--- a/styles/prosilver/theme/links.css
+++ b/styles/prosilver/theme/links.css
@@ -89,6 +89,17 @@ a.lastsubject:hover {
 	text-decoration: underline;
 }
 
+.row-item a:hover {
+	text-decoration: none
+}
+
+.row-item .topictitle:hover,
+.row-item .subforum:hover,
+.row-item .username:hover,
+.row-item .username-coloured:hover {
+	text-decoration: underline;
+}
+
 /* Post body links */
 .postlink {
 	text-decoration: none;
--- a/styles/prosilver/theme/print.css
+++ b/styles/prosilver/theme/print.css
@@ -137,3 +137,12 @@ div.spacer { clear: both; }
 .skip_link { display: none; }
 
 .codebox p { display: none; }
+
+/* stylelint-disable declaration-property-unit-whitelist */
+.emoji {
+	min-height: 18px;
+	min-width: 18px;
+	height: 1em;
+	width: 1em;
+}
+/* stylelint-enable declaration-property-unit-whitelist */
--- a/styles/prosilver/theme/responsive.css
+++ b/styles/prosilver/theme/responsive.css
@@ -280,11 +280,6 @@
 		margin: 5px 0 0;
 	}
 
-	.row .pagination {
-		margin-top: 2px;
-		margin-bottom: 2px;
-	}
-
 	.row .pagination .ellipsis + li {
 		display: none !important;
 	}
@@ -567,13 +562,11 @@
 
 @media (max-width: 850px) {
 	.postprofile { width: 28%; }
+
+
 }
 
 @media (min-width: 701px) and (max-width: 950px) {
-	.row .pagination {
-		margin-top: 2px;
-		margin-bottom: 2px;
-	}
 
 	ul.topiclist dt {
     	margin-right: -410px;
@@ -588,3 +581,11 @@
 	}
 }
 
+@media (max-width: 992px) {
+	.row .pagination {
+		text-align: left;
+		float: left;
+		margin-top: 4px;
+		margin-bottom: 4px;
+	}
+}
--- a/styles/prosilver/theme/stylesheet.css
+++ b/styles/prosilver/theme/stylesheet.css
@@ -1,21 +1,21 @@
 /*  phpBB3 Style Sheet
     --------------------------------------------------------------
-	Style name:			prosilver (the default phpBB 3.1.x style)
+	Style name:			prosilver (the default phpBB 3.2.x style)
 	Based on style:
 	Original author:	Tom Beddard ( http://www.subblue.com/ )
 	Modified by:		phpBB Limited ( https://www.phpbb.com/ )
     --------------------------------------------------------------
 */
 
-@import url("normalize.css");
-@import url("base.css");
-@import url("utilities.css");
-@import url("common.css");
-@import url("links.css");
-@import url("content.css");
-@import url("buttons.css");
-@import url("cp.css");
-@import url("forms.css");
-@import url("icons.css");
-@import url("colours.css");
-@import url("responsive.css");
+@import url("normalize.css?v=3.2");
+@import url("base.css?v=3.2");
+@import url("utilities.css?v=3.2");
+@import url("common.css?v=3.2");
+@import url("links.css?v=3.2");
+@import url("content.css?v=3.2");
+@import url("buttons.css?v=3.2");
+@import url("cp.css?v=3.2");
+@import url("forms.css?v=3.2");
+@import url("icons.css?v=3.2");
+@import url("colours.css?v=3.2");
+@import url("responsive.css?v=3.2");
--- a/ucp.php
+++ b/ucp.php
@@ -237,6 +237,19 @@ switch ($mode)
 		$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_ACL_TRANSFER_PERMISSIONS', false, array($user_row['username']));
 
 		$message = sprintf($user->lang['PERMISSIONS_TRANSFERRED'], $user_row['username']) . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
+
+		/**
+		* Event to run code after permissions are switched
+		*
+		* @event core.ucp_switch_permissions
+		* @var	int		user_id		User ID to switch permission to
+		* @var	array	user_row	User data
+		* @var	string	message		Success message
+		* @since 3.1.11-RC1
+		*/
+		$vars = array('user_id', 'user_row', 'message');
+		extract($phpbb_dispatcher->trigger_event('core.ucp_switch_permissions', compact($vars)));
+
 		trigger_error($message);
 
 	break;
@@ -260,6 +273,18 @@ switch ($mode)
 		$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_ACL_RESTORE_PERMISSIONS', false, array($username));
 
 		$message = $user->lang['PERMISSIONS_RESTORED'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
+
+		/**
+		* Event to run code after permissions are restored
+		*
+		* @event core.ucp_restore_permissions
+		* @var	string	username	User name
+		* @var	string	message		Success message
+		* @since 3.1.11-RC1
+		*/
+		$vars = array('username', 'message');
+		extract($phpbb_dispatcher->trigger_event('core.ucp_restore_permissions', compact($vars)));
+
 		trigger_error($message);
 
 	break;
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer' . '/autoload_real.php';
 
-return ComposerAutoloaderInit38fb9e12d1bb4904a885b1eeaa7a0598::getLoader();
+return ComposerAutoloaderInit4bd4e7054c34cf3fee5cb753339be372::getLoader();
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -179,6 +179,7 @@ return array(
     'OAuth\\OAuth1\\Token\\TokenInterface' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth1/Token/TokenInterface.php',
     'OAuth\\OAuth2\\Service\\AbstractService' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/AbstractService.php',
     'OAuth\\OAuth2\\Service\\Amazon' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/Amazon.php',
+    'OAuth\\OAuth2\\Service\\BattleNet' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/BattleNet.php',
     'OAuth\\OAuth2\\Service\\Bitly' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/Bitly.php',
     'OAuth\\OAuth2\\Service\\Bitrix24' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/Bitrix24.php',
     'OAuth\\OAuth2\\Service\\Box' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/Box.php',
@@ -205,6 +206,7 @@ return array(
     'OAuth\\OAuth2\\Service\\Linkedin' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/Linkedin.php',
     'OAuth\\OAuth2\\Service\\Mailchimp' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/Mailchimp.php',
     'OAuth\\OAuth2\\Service\\Microsoft' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/Microsoft.php',
+    'OAuth\\OAuth2\\Service\\Mondo' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/Mondo.php',
     'OAuth\\OAuth2\\Service\\Nest' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/Nest.php',
     'OAuth\\OAuth2\\Service\\Netatmo' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/Netatmo.php',
     'OAuth\\OAuth2\\Service\\ParrotFlowerPower' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Service/ParrotFlowerPower.php',
@@ -226,12 +228,6 @@ return array(
     'OAuth\\OAuth2\\Token\\StdOAuth2Token' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Token/StdOAuth2Token.php',
     'OAuth\\OAuth2\\Token\\TokenInterface' => $vendorDir . '/lusitanian/oauth/src/OAuth/OAuth2/Token/TokenInterface.php',
     'OAuth\\ServiceFactory' => $vendorDir . '/lusitanian/oauth/src/OAuth/ServiceFactory.php',
-    'OAuth\\Unit\\Common\\Consumer\\CredentialsTest' => $vendorDir . '/lusitanian/oauth/tests/Unit/Common/Consumer/CredentialsTest.php',
-    'OAuth\\Unit\\Common\\Http\\HttpClientsTest' => $vendorDir . '/lusitanian/oauth/tests/Unit/Common/Http/HttpClientsTest.php',
-    'OAuth\\Unit\\Common\\Storage\\RedisTest' => $vendorDir . '/lusitanian/oauth/tests/Unit/Common/Storage/RedisTest.php',
-    'OAuth\\Unit\\Common\\Storage\\StorageTest' => $vendorDir . '/lusitanian/oauth/tests/Unit/Common/Storage/StorageTest.php',
-    'OAuth\\Unit\\Common\\Storage\\SymfonySessionTest' => $vendorDir . '/lusitanian/oauth/tests/Unit/Common/Storage/SymfonySessionTest.php',
-    'OAuth\\Unit\\ServiceFactoryTest' => $vendorDir . '/lusitanian/oauth/tests/Unit/ServiceFactoryTest.php',
     'Patchwork\\PHP\\Shim\\Iconv' => $vendorDir . '/patchwork/utf8/src/Patchwork/PHP/Shim/Iconv.php',
     'Patchwork\\PHP\\Shim\\Intl' => $vendorDir . '/patchwork/utf8/src/Patchwork/PHP/Shim/Intl.php',
     'Patchwork\\PHP\\Shim\\Mbstring' => $vendorDir . '/patchwork/utf8/src/Patchwork/PHP/Shim/Mbstring.php',
@@ -953,6 +949,7 @@ return array(
     'Symfony\\Component\\Routing\\Loader\\DirectoryLoader' => $vendorDir . '/symfony/routing/Loader/DirectoryLoader.php',
     'Symfony\\Component\\Routing\\Loader\\ObjectRouteLoader' => $vendorDir . '/symfony/routing/Loader/ObjectRouteLoader.php',
     'Symfony\\Component\\Routing\\Loader\\PhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php',
+    'Symfony\\Component\\Routing\\Loader\\RecursiveCallbackFilterIterator' => $vendorDir . '/symfony/routing/Loader/AnnotationDirectoryLoader.php',
     'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => $vendorDir . '/symfony/routing/Loader/XmlFileLoader.php',
     'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/routing/Loader/YamlFileLoader.php',
     'Symfony\\Component\\Routing\\Matcher\\ApacheUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/ApacheUrlMatcher.php',
@@ -999,6 +996,7 @@ return array(
     'Twig_Cache_Null' => $vendorDir . '/twig/twig/lib/Twig/Cache/Null.php',
     'Twig_Compiler' => $vendorDir . '/twig/twig/lib/Twig/Compiler.php',
     'Twig_CompilerInterface' => $vendorDir . '/twig/twig/lib/Twig/CompilerInterface.php',
+    'Twig_ContainerRuntimeLoader' => $vendorDir . '/twig/twig/lib/Twig/ContainerRuntimeLoader.php',
     'Twig_Environment' => $vendorDir . '/twig/twig/lib/Twig/Environment.php',
     'Twig_Error' => $vendorDir . '/twig/twig/lib/Twig/Error.php',
     'Twig_Error_Loader' => $vendorDir . '/twig/twig/lib/Twig/Error/Loader.php',
@@ -1018,6 +1016,7 @@ return array(
     'Twig_Extension_Sandbox' => $vendorDir . '/twig/twig/lib/Twig/Extension/Sandbox.php',
     'Twig_Extension_Staging' => $vendorDir . '/twig/twig/lib/Twig/Extension/Staging.php',
     'Twig_Extension_StringLoader' => $vendorDir . '/twig/twig/lib/Twig/Extension/StringLoader.php',
+    'Twig_FactoryRuntimeLoader' => $vendorDir . '/twig/twig/lib/Twig/FactoryRuntimeLoader.php',
     'Twig_FileExtensionEscapingStrategy' => $vendorDir . '/twig/twig/lib/Twig/FileExtensionEscapingStrategy.php',
     'Twig_Filter' => $vendorDir . '/twig/twig/lib/Twig/Filter.php',
     'Twig_FilterCallableInterface' => $vendorDir . '/twig/twig/lib/Twig/FilterCallableInterface.php',
@@ -1040,6 +1039,7 @@ return array(
     'Twig_Loader_String' => $vendorDir . '/twig/twig/lib/Twig/Loader/String.php',
     'Twig_Markup' => $vendorDir . '/twig/twig/lib/Twig/Markup.php',
     'Twig_Node' => $vendorDir . '/twig/twig/lib/Twig/Node.php',
+    'Twig_NodeCaptureInterface' => $vendorDir . '/twig/twig/lib/Twig/NodeCaptureInterface.php',
     'Twig_NodeInterface' => $vendorDir . '/twig/twig/lib/Twig/NodeInterface.php',
     'Twig_NodeOutputInterface' => $vendorDir . '/twig/twig/lib/Twig/NodeOutputInterface.php',
     'Twig_NodeTraverser' => $vendorDir . '/twig/twig/lib/Twig/NodeTraverser.php',
@@ -1125,6 +1125,7 @@ return array(
     'Twig_Node_SetTemp' => $vendorDir . '/twig/twig/lib/Twig/Node/SetTemp.php',
     'Twig_Node_Spaceless' => $vendorDir . '/twig/twig/lib/Twig/Node/Spaceless.php',
     'Twig_Node_Text' => $vendorDir . '/twig/twig/lib/Twig/Node/Text.php',
+    'Twig_Node_With' => $vendorDir . '/twig/twig/lib/Twig/Node/With.php',
     'Twig_Parser' => $vendorDir . '/twig/twig/lib/Twig/Parser.php',
     'Twig_ParserInterface' => $vendorDir . '/twig/twig/lib/Twig/ParserInterface.php',
     'Twig_Profiler_Dumper_Blackfire' => $vendorDir . '/twig/twig/lib/Twig/Profiler/Dumper/Blackfire.php',
@@ -1134,17 +1135,23 @@ return array(
     'Twig_Profiler_Node_EnterProfile' => $vendorDir . '/twig/twig/lib/Twig/Profiler/Node/EnterProfile.php',
     'Twig_Profiler_Node_LeaveProfile' => $vendorDir . '/twig/twig/lib/Twig/Profiler/Node/LeaveProfile.php',
     'Twig_Profiler_Profile' => $vendorDir . '/twig/twig/lib/Twig/Profiler/Profile.php',
+    'Twig_RuntimeLoaderInterface' => $vendorDir . '/twig/twig/lib/Twig/RuntimeLoaderInterface.php',
     'Twig_Sandbox_SecurityError' => $vendorDir . '/twig/twig/lib/Twig/Sandbox/SecurityError.php',
     'Twig_Sandbox_SecurityNotAllowedFilterError' => $vendorDir . '/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFilterError.php',
     'Twig_Sandbox_SecurityNotAllowedFunctionError' => $vendorDir . '/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFunctionError.php',
+    'Twig_Sandbox_SecurityNotAllowedMethodError' => $vendorDir . '/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedMethodError.php',
+    'Twig_Sandbox_SecurityNotAllowedPropertyError' => $vendorDir . '/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedPropertyError.php',
     'Twig_Sandbox_SecurityNotAllowedTagError' => $vendorDir . '/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedTagError.php',
     'Twig_Sandbox_SecurityPolicy' => $vendorDir . '/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php',
     'Twig_Sandbox_SecurityPolicyInterface' => $vendorDir . '/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php',
     'Twig_SimpleFilter' => $vendorDir . '/twig/twig/lib/Twig/SimpleFilter.php',
     'Twig_SimpleFunction' => $vendorDir . '/twig/twig/lib/Twig/SimpleFunction.php',
     'Twig_SimpleTest' => $vendorDir . '/twig/twig/lib/Twig/SimpleTest.php',
+    'Twig_Source' => $vendorDir . '/twig/twig/lib/Twig/Source.php',
+    'Twig_SourceContextLoaderInterface' => $vendorDir . '/twig/twig/lib/Twig/SourceContextLoaderInterface.php',
     'Twig_Template' => $vendorDir . '/twig/twig/lib/Twig/Template.php',
     'Twig_TemplateInterface' => $vendorDir . '/twig/twig/lib/Twig/TemplateInterface.php',
+    'Twig_TemplateWrapper' => $vendorDir . '/twig/twig/lib/Twig/TemplateWrapper.php',
     'Twig_Test' => $vendorDir . '/twig/twig/lib/Twig/Test.php',
     'Twig_TestCallableInterface' => $vendorDir . '/twig/twig/lib/Twig/TestCallableInterface.php',
     'Twig_TestInterface' => $vendorDir . '/twig/twig/lib/Twig/TestInterface.php',
@@ -1175,6 +1182,7 @@ return array(
     'Twig_TokenParser_Set' => $vendorDir . '/twig/twig/lib/Twig/TokenParser/Set.php',
     'Twig_TokenParser_Spaceless' => $vendorDir . '/twig/twig/lib/Twig/TokenParser/Spaceless.php',
     'Twig_TokenParser_Use' => $vendorDir . '/twig/twig/lib/Twig/TokenParser/Use.php',
+    'Twig_TokenParser_With' => $vendorDir . '/twig/twig/lib/Twig/TokenParser/With.php',
     'Twig_TokenStream' => $vendorDir . '/twig/twig/lib/Twig/TokenStream.php',
     'Twig_Util_DeprecationCollector' => $vendorDir . '/twig/twig/lib/Twig/Util/DeprecationCollector.php',
     'Twig_Util_TemplateDirIterator' => $vendorDir . '/twig/twig/lib/Twig/Util/TemplateDirIterator.php',
@@ -1432,8 +1440,8 @@ return array(
     's9e\\TextFormatter\\Configurator\\Helpers\\RegexpBuilder' => $vendorDir . '/s9e/text-formatter/src/Configurator.php',
     's9e\\TextFormatter\\Configurator\\Helpers\\RegexpParser' => $vendorDir . '/s9e/text-formatter/src/Configurator/Helpers/RegexpParser.php',
     's9e\\TextFormatter\\Configurator\\Helpers\\RulesHelper' => $vendorDir . '/s9e/text-formatter/src/Configurator.php',
-    's9e\\TextFormatter\\Configurator\\Helpers\\TemplateForensics' => $vendorDir . '/s9e/text-formatter/src/Configurator.php',
     's9e\\TextFormatter\\Configurator\\Helpers\\TemplateHelper' => $vendorDir . '/s9e/text-formatter/src/Configurator.php',
+    's9e\\TextFormatter\\Configurator\\Helpers\\TemplateInspector' => $vendorDir . '/s9e/text-formatter/src/Configurator.php',
     's9e\\TextFormatter\\Configurator\\Helpers\\TemplateParser' => $vendorDir . '/s9e/text-formatter/src/Configurator.php',
     's9e\\TextFormatter\\Configurator\\Helpers\\XPathHelper' => $vendorDir . '/s9e/text-formatter/src/Configurator.php',
     's9e\\TextFormatter\\Configurator\\Items\\Attribute' => $vendorDir . '/s9e/text-formatter/src/Configurator.php',
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInit38fb9e12d1bb4904a885b1eeaa7a0598
+class ComposerAutoloaderInit4bd4e7054c34cf3fee5cb753339be372
 {
     private static $loader;
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit38fb9e12d1bb4904a885b1eeaa7a0598
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInit38fb9e12d1bb4904a885b1eeaa7a0598', 'loadClassLoader'), true, true);
+        spl_autoload_register(array('ComposerAutoloaderInit4bd4e7054c34cf3fee5cb753339be372', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit38fb9e12d1bb4904a885b1eeaa7a0598', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInit4bd4e7054c34cf3fee5cb753339be372', 'loadClassLoader'));
 
         $map = require __DIR__ . '/autoload_namespaces.php';
         foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInit38fb9e12d1bb4904a885b1eeaa7a0598
 
         $includeFiles = require __DIR__ . '/autoload_files.php';
         foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequire38fb9e12d1bb4904a885b1eeaa7a0598($fileIdentifier, $file);
+            composerRequire4bd4e7054c34cf3fee5cb753339be372($fileIdentifier, $file);
         }
 
         return $loader;
     }
 }
 
-function composerRequire38fb9e12d1bb4904a885b1eeaa7a0598($fileIdentifier, $file)
+function composerRequire4bd4e7054c34cf3fee5cb753339be372($fileIdentifier, $file)
 {
     if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
         require $file;
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -80,29 +80,27 @@
     },
     {
         "name": "react/promise",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
+        "version": "v2.5.1",
+        "version_normalized": "2.5.1.0",
         "source": {
             "type": "git",
             "url": "https://github.com/reactphp/promise.git",
-            "reference": "8025426794f1944de806618671d4fa476dc7626f"
+            "reference": "62785ae604c8d69725d693eb370e1d67e94c4053"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/reactphp/promise/zipball/8025426794f1944de806618671d4fa476dc7626f",
-            "reference": "8025426794f1944de806618671d4fa476dc7626f",
+            "url": "https://api.github.com/repos/reactphp/promise/zipball/62785ae604c8d69725d693eb370e1d67e94c4053",
+            "reference": "62785ae604c8d69725d693eb370e1d67e94c4053",
             "shasum": ""
         },
         "require": {
             "php": ">=5.4.0"
         },
-        "time": "2016-05-03 17:50:52",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.0-dev"
-            }
+        "require-dev": {
+            "phpunit/phpunit": "~4.8"
         },
+        "time": "2017-03-25 12:08:31",
+        "type": "library",
         "installation-source": "dist",
         "autoload": {
             "psr-4": {
@@ -122,7 +120,11 @@
                 "email": "jsorgalla@gmail.com"
             }
         ],
-        "description": "A lightweight implementation of CommonJS Promises/A for PHP"
+        "description": "A lightweight implementation of CommonJS Promises/A for PHP",
+        "keywords": [
+            "promise",
+            "promises"
+        ]
     },
     {
         "name": "guzzlehttp/streams",
@@ -285,17 +287,17 @@
     },
     {
         "name": "lusitanian/oauth",
-        "version": "v0.8.9",
-        "version_normalized": "0.8.9.0",
+        "version": "v0.8.10",
+        "version_normalized": "0.8.10.0",
         "source": {
             "type": "git",
             "url": "https://github.com/Lusitanian/PHPoAuthLib.git",
-            "reference": "29bda6e176df6c292a9b1c43ae8a44d56a87c30b"
+            "reference": "09f4af38f17db6938253f4d1b171d537913ac1ed"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/29bda6e176df6c292a9b1c43ae8a44d56a87c30b",
-            "reference": "29bda6e176df6c292a9b1c43ae8a44d56a87c30b",
+            "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/09f4af38f17db6938253f4d1b171d537913ac1ed",
+            "reference": "09f4af38f17db6938253f4d1b171d537913ac1ed",
             "shasum": ""
         },
         "require": {
@@ -312,7 +314,7 @@
             "predis/predis": "Allows using the Redis storage backend.",
             "symfony/http-foundation": "Allows using the Symfony Session storage backend."
         },
-        "time": "2016-02-24 00:20:18",
+        "time": "2016-07-12 22:15:00",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -354,17 +356,17 @@
     },
     {
         "name": "marc1706/fast-image-size",
-        "version": "v1.1.2",
-        "version_normalized": "1.1.2.0",
+        "version": "v1.1.3",
+        "version_normalized": "1.1.3.0",
         "source": {
             "type": "git",
             "url": "https://github.com/marc1706/fast-image-size.git",
-            "reference": "8bb644f8f767c5763acd61140045a78d10e1eb06"
+            "reference": "5f7e8377746524e2b8a49a631c1fc9afeb9d8bee"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/marc1706/fast-image-size/zipball/8bb644f8f767c5763acd61140045a78d10e1eb06",
-            "reference": "8bb644f8f767c5763acd61140045a78d10e1eb06",
+            "url": "https://api.github.com/repos/marc1706/fast-image-size/zipball/5f7e8377746524e2b8a49a631c1fc9afeb9d8bee",
+            "reference": "5f7e8377746524e2b8a49a631c1fc9afeb9d8bee",
             "shasum": ""
         },
         "require": {
@@ -373,7 +375,7 @@
         "require-dev": {
             "phpunit/phpunit": "4.*"
         },
-        "time": "2016-10-30 19:00:39",
+        "time": "2017-03-26 12:48:28",
         "type": "library",
         "installation-source": "dist",
         "autoload": {
@@ -407,17 +409,17 @@
     },
     {
         "name": "paragonie/random_compat",
-        "version": "v1.4.1",
-        "version_normalized": "1.4.1.0",
+        "version": "v1.4.2",
+        "version_normalized": "1.4.2.0",
         "source": {
             "type": "git",
             "url": "https://github.com/paragonie/random_compat.git",
-            "reference": "c7e26a21ba357863de030f0b9e701c7d04593774"
+            "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/paragonie/random_compat/zipball/c7e26a21ba357863de030f0b9e701c7d04593774",
-            "reference": "c7e26a21ba357863de030f0b9e701c7d04593774",
+            "url": "https://api.github.com/repos/paragonie/random_compat/zipball/965cdeb01fdcab7653253aa81d40441d261f1e66",
+            "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66",
             "shasum": ""
         },
         "require": {
@@ -429,7 +431,7 @@
         "suggest": {
             "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
         },
-        "time": "2016-03-18 20:34:03",
+        "time": "2017-03-13 16:22:52",
         "type": "library",
         "installation-source": "dist",
         "autoload": {
@@ -518,17 +520,17 @@
     },
     {
         "name": "s9e/text-formatter",
-        "version": "0.8.4",
-        "version_normalized": "0.8.4.0",
+        "version": "0.10.1",
+        "version_normalized": "0.10.1.0",
         "source": {
             "type": "git",
             "url": "https://github.com/s9e/TextFormatter.git",
-            "reference": "919fd772aae4dd889618da1cb18ae746f2a14bb6"
+            "reference": "9380fd3d3e3289d7e966bab7769ca2aae5d23f67"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/s9e/TextFormatter/zipball/919fd772aae4dd889618da1cb18ae746f2a14bb6",
-            "reference": "919fd772aae4dd889618da1cb18ae746f2a14bb6",
+            "url": "https://api.github.com/repos/s9e/TextFormatter/zipball/9380fd3d3e3289d7e966bab7769ca2aae5d23f67",
+            "reference": "9380fd3d3e3289d7e966bab7769ca2aae5d23f67",
             "shasum": ""
         },
         "require": {
@@ -537,6 +539,11 @@
             "lib-pcre": ">=7.2",
             "php": ">=5.3.3"
         },
+        "require-dev": {
+            "matthiasmullie/minify": "*",
+            "php": ">=5.3.3",
+            "s9e/regexp-builder": ">=1.3.0"
+        },
         "suggest": {
             "ext-curl": "Improves the performance of the MediaEmbed plugin and some JavaScript minifiers",
             "ext-intl": "Allows international URLs to be accepted by the URL filter",
@@ -546,7 +553,7 @@
             "ext-xsl": "Enables the XSLT renderer",
             "ext-zlib": "Enables gzip compression when scraping content via the MediaEmbed plugin"
         },
-        "time": "2016-11-22 20:10:24",
+        "time": "2017-07-03 13:55:54",
         "type": "library",
         "installation-source": "dist",
         "autoload": {
@@ -580,23 +587,23 @@
     },
     {
         "name": "symfony/filesystem",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/filesystem.git",
-            "reference": "a3784111af9f95f102b6411548376e1ae7c93898"
+            "reference": "19c11158da8d110cc5289c063bf2ec4cc1ce9e7c"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/filesystem/zipball/a3784111af9f95f102b6411548376e1ae7c93898",
-            "reference": "a3784111af9f95f102b6411548376e1ae7c93898",
+            "url": "https://api.github.com/repos/symfony/filesystem/zipball/19c11158da8d110cc5289c063bf2ec4cc1ce9e7c",
+            "reference": "19c11158da8d110cc5289c063bf2ec4cc1ce9e7c",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.9"
         },
-        "time": "2016-10-18 04:28:30",
+        "time": "2017-05-28 14:07:33",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -631,27 +638,30 @@
     },
     {
         "name": "symfony/config",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/config.git",
-            "reference": "1361bc4e66f97b6202ae83f4190e962c624b5e61"
+            "reference": "0b8541d18507d10204a08384640ff6df3c739ebe"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/config/zipball/1361bc4e66f97b6202ae83f4190e962c624b5e61",
-            "reference": "1361bc4e66f97b6202ae83f4190e962c624b5e61",
+            "url": "https://api.github.com/repos/symfony/config/zipball/0b8541d18507d10204a08384640ff6df3c739ebe",
+            "reference": "0b8541d18507d10204a08384640ff6df3c739ebe",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.9",
             "symfony/filesystem": "~2.3|~3.0.0"
         },
+        "require-dev": {
+            "symfony/yaml": "~2.7|~3.0.0"
+        },
         "suggest": {
             "symfony/yaml": "To use the yaml reference dumper"
         },
-        "time": "2016-11-03 07:52:58",
+        "time": "2017-04-12 14:07:15",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -796,17 +806,17 @@
     },
     {
         "name": "symfony/debug",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/debug.git",
-            "reference": "62a68f640456f6761d752c62d81631428ef0d8a1"
+            "reference": "344f50ce827413b3640bfcb1e37386a67d06ea1f"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/debug/zipball/62a68f640456f6761d752c62d81631428ef0d8a1",
-            "reference": "62a68f640456f6761d752c62d81631428ef0d8a1",
+            "url": "https://api.github.com/repos/symfony/debug/zipball/344f50ce827413b3640bfcb1e37386a67d06ea1f",
+            "reference": "344f50ce827413b3640bfcb1e37386a67d06ea1f",
             "shasum": ""
         },
         "require": {
@@ -818,9 +828,9 @@
         },
         "require-dev": {
             "symfony/class-loader": "~2.2|~3.0.0",
-            "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2|~3.0.0"
+            "symfony/http-kernel": "~2.3.24|~2.5.9|^2.6.2|~3.0.0"
         },
-        "time": "2016-11-15 12:53:17",
+        "time": "2017-04-19 19:56:30",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -855,22 +865,22 @@
     },
     {
         "name": "symfony/console",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/console.git",
-            "reference": "a871ba00e0f604dceac64c56c27f99fbeaf4854e"
+            "reference": "efa4d466b67c2fc9bf9419a981e683e1f99fa029"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/console/zipball/a871ba00e0f604dceac64c56c27f99fbeaf4854e",
-            "reference": "a871ba00e0f604dceac64c56c27f99fbeaf4854e",
+            "url": "https://api.github.com/repos/symfony/console/zipball/efa4d466b67c2fc9bf9419a981e683e1f99fa029",
+            "reference": "efa4d466b67c2fc9bf9419a981e683e1f99fa029",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.9",
-            "symfony/debug": "~2.7,>=2.7.2|~3.0.0",
+            "symfony/debug": "^2.7.2|~3.0.0",
             "symfony/polyfill-mbstring": "~1.0"
         },
         "require-dev": {
@@ -883,7 +893,7 @@
             "symfony/event-dispatcher": "",
             "symfony/process": ""
         },
-        "time": "2016-11-15 23:02:12",
+        "time": "2017-05-28 14:07:33",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -918,23 +928,23 @@
     },
     {
         "name": "symfony/finder",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/finder.git",
-            "reference": "0023b024363dfc0cd21262e556f25a291fe8d7fd"
+            "reference": "b058a6f0cb6ee9b6b727aae03d5a62474a308528"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/finder/zipball/0023b024363dfc0cd21262e556f25a291fe8d7fd",
-            "reference": "0023b024363dfc0cd21262e556f25a291fe8d7fd",
+            "url": "https://api.github.com/repos/symfony/finder/zipball/b058a6f0cb6ee9b6b727aae03d5a62474a308528",
+            "reference": "b058a6f0cb6ee9b6b727aae03d5a62474a308528",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.9"
         },
-        "time": "2016-11-03 07:52:58",
+        "time": "2017-05-25 22:57:22",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1131,17 +1141,17 @@
     },
     {
         "name": "symfony/http-foundation",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/http-foundation.git",
-            "reference": "4f8c167732bbf3ba4284c0915f57b332091f6b68"
+            "reference": "03bf5ded5a4b54473e7551df5cfab854f7434ed4"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/http-foundation/zipball/4f8c167732bbf3ba4284c0915f57b332091f6b68",
-            "reference": "4f8c167732bbf3ba4284c0915f57b332091f6b68",
+            "url": "https://api.github.com/repos/symfony/http-foundation/zipball/03bf5ded5a4b54473e7551df5cfab854f7434ed4",
+            "reference": "03bf5ded5a4b54473e7551df5cfab854f7434ed4",
             "shasum": ""
         },
         "require": {
@@ -1153,7 +1163,7 @@
         "require-dev": {
             "symfony/expression-language": "~2.4|~3.0.0"
         },
-        "time": "2016-11-15 23:02:12",
+        "time": "2017-05-19 11:49:58",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1188,17 +1198,17 @@
     },
     {
         "name": "symfony/event-dispatcher",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/event-dispatcher.git",
-            "reference": "25c576abd4e0f212e678fe8b2bd9a9a98c7ea934"
+            "reference": "7fc8e2b4118ff316550596357325dfd92a51f531"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/25c576abd4e0f212e678fe8b2bd9a9a98c7ea934",
-            "reference": "25c576abd4e0f212e678fe8b2bd9a9a98c7ea934",
+            "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7fc8e2b4118ff316550596357325dfd92a51f531",
+            "reference": "7fc8e2b4118ff316550596357325dfd92a51f531",
             "shasum": ""
         },
         "require": {
@@ -1206,7 +1216,7 @@
         },
         "require-dev": {
             "psr/log": "~1.0",
-            "symfony/config": "~2.0,>=2.0.5|~3.0.0",
+            "symfony/config": "^2.0.5|~3.0.0",
             "symfony/dependency-injection": "~2.6|~3.0.0",
             "symfony/expression-language": "~2.6|~3.0.0",
             "symfony/stopwatch": "~2.3|~3.0.0"
@@ -1215,7 +1225,7 @@
             "symfony/dependency-injection": "",
             "symfony/http-kernel": ""
         },
-        "time": "2016-10-13 01:43:15",
+        "time": "2017-04-26 16:56:54",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1250,24 +1260,24 @@
     },
     {
         "name": "symfony/http-kernel",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/http-kernel.git",
-            "reference": "29d9bb59c6d895e65d8fea3859c96c3b6e9368ba"
+            "reference": "ae9dd4cfde4a3efa94475863fc330825715fe549"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/http-kernel/zipball/29d9bb59c6d895e65d8fea3859c96c3b6e9368ba",
-            "reference": "29d9bb59c6d895e65d8fea3859c96c3b6e9368ba",
+            "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ae9dd4cfde4a3efa94475863fc330825715fe549",
+            "reference": "ae9dd4cfde4a3efa94475863fc330825715fe549",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.9",
             "psr/log": "~1.0",
-            "symfony/debug": "~2.6,>=2.6.2",
-            "symfony/event-dispatcher": "~2.6,>=2.6.7|~3.0.0",
+            "symfony/debug": "^2.6.2",
+            "symfony/event-dispatcher": "^2.6.7|~3.0.0",
             "symfony/http-foundation": "~2.7.20|~2.8.13|~3.1.6"
         },
         "conflict": {
@@ -1278,16 +1288,16 @@
             "symfony/class-loader": "~2.1|~3.0.0",
             "symfony/config": "~2.8",
             "symfony/console": "~2.3|~3.0.0",
-            "symfony/css-selector": "~2.0,>=2.0.5|~3.0.0",
+            "symfony/css-selector": "^2.0.5|~3.0.0",
             "symfony/dependency-injection": "~2.8|~3.0.0",
-            "symfony/dom-crawler": "~2.0,>=2.0.5|~3.0.0",
+            "symfony/dom-crawler": "^2.0.5|~3.0.0",
             "symfony/expression-language": "~2.4|~3.0.0",
-            "symfony/finder": "~2.0,>=2.0.5|~3.0.0",
-            "symfony/process": "~2.0,>=2.0.5|~3.0.0",
+            "symfony/finder": "^2.0.5|~3.0.0",
+            "symfony/process": "^2.0.5|~3.0.0",
             "symfony/routing": "~2.8|~3.0.0",
             "symfony/stopwatch": "~2.3|~3.0.0",
             "symfony/templating": "~2.2|~3.0.0",
-            "symfony/translation": "~2.0,>=2.0.5|~3.0.0",
+            "symfony/translation": "^2.0.5|~3.0.0",
             "symfony/var-dumper": "~2.6|~3.0.0"
         },
         "suggest": {
@@ -1299,7 +1309,7 @@
             "symfony/finder": "",
             "symfony/var-dumper": ""
         },
-        "time": "2016-11-21 02:24:42",
+        "time": "2017-05-29 19:14:58",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1334,17 +1344,17 @@
     },
     {
         "name": "symfony/dependency-injection",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/dependency-injection.git",
-            "reference": "9d2c5033ca70ceade8d7584f997a9d3943f0fe5f"
+            "reference": "155b770e68150139779295864d6b6cb3172cd821"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/9d2c5033ca70ceade8d7584f997a9d3943f0fe5f",
-            "reference": "9d2c5033ca70ceade8d7584f997a9d3943f0fe5f",
+            "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/155b770e68150139779295864d6b6cb3172cd821",
+            "reference": "155b770e68150139779295864d6b6cb3172cd821",
             "shasum": ""
         },
         "require": {
@@ -1364,7 +1374,7 @@
             "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
             "symfony/yaml": ""
         },
-        "time": "2016-11-18 21:10:01",
+        "time": "2017-05-25 22:57:22",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1624,17 +1634,17 @@
     },
     {
         "name": "symfony/proxy-manager-bridge",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/proxy-manager-bridge.git",
-            "reference": "69922100cdfe37bc9c0429cab5bd523e861e562e"
+            "reference": "991c0fcd1d461ee9c7cde7d2c44d1ed7f4cc36ae"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/69922100cdfe37bc9c0429cab5bd523e861e562e",
-            "reference": "69922100cdfe37bc9c0429cab5bd523e861e562e",
+            "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/991c0fcd1d461ee9c7cde7d2c44d1ed7f4cc36ae",
+            "reference": "991c0fcd1d461ee9c7cde7d2c44d1ed7f4cc36ae",
             "shasum": ""
         },
         "require": {
@@ -1645,7 +1655,7 @@
         "require-dev": {
             "symfony/config": "~2.3|~3.0.0"
         },
-        "time": "2016-10-03 15:49:46",
+        "time": "2017-04-12 14:07:15",
         "type": "symfony-bridge",
         "extra": {
             "branch-alias": {
@@ -1680,17 +1690,17 @@
     },
     {
         "name": "symfony/routing",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/routing.git",
-            "reference": "6cee3ed22c778a7410119a3d51a20f60252a156c"
+            "reference": "a8f328c7e701b7bb05a93fca62a5ab2b6b3e500e"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/routing/zipball/6cee3ed22c778a7410119a3d51a20f60252a156c",
-            "reference": "6cee3ed22c778a7410119a3d51a20f60252a156c",
+            "url": "https://api.github.com/repos/symfony/routing/zipball/a8f328c7e701b7bb05a93fca62a5ab2b6b3e500e",
+            "reference": "a8f328c7e701b7bb05a93fca62a5ab2b6b3e500e",
             "shasum": ""
         },
         "require": {
@@ -1706,7 +1716,7 @@
             "symfony/config": "~2.7|~3.0.0",
             "symfony/expression-language": "~2.4|~3.0.0",
             "symfony/http-foundation": "~2.3|~3.0.0",
-            "symfony/yaml": "~2.0,>=2.0.5|~3.0.0"
+            "symfony/yaml": "^2.0.5|~3.0.0"
         },
         "suggest": {
             "doctrine/annotations": "For using the annotation loader",
@@ -1716,7 +1726,7 @@
             "symfony/http-foundation": "For using a Symfony Request object",
             "symfony/yaml": "For using the YAML loader"
         },
-        "time": "2016-08-16 14:56:08",
+        "time": "2017-04-12 14:07:15",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1757,31 +1767,32 @@
     },
     {
         "name": "twig/twig",
-        "version": "v1.24.2",
-        "version_normalized": "1.24.2.0",
+        "version": "v1.33.2",
+        "version_normalized": "1.33.2.0",
         "source": {
             "type": "git",
             "url": "https://github.com/twigphp/Twig.git",
-            "reference": "33093f6e310e6976baeac7b14f3a6ec02f2d79b7"
+            "reference": "dd6ca96227917e1e85b41c7c3cc6507b411e0927"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/twigphp/Twig/zipball/33093f6e310e6976baeac7b14f3a6ec02f2d79b7",
-            "reference": "33093f6e310e6976baeac7b14f3a6ec02f2d79b7",
+            "url": "https://api.github.com/repos/twigphp/Twig/zipball/dd6ca96227917e1e85b41c7c3cc6507b411e0927",
+            "reference": "dd6ca96227917e1e85b41c7c3cc6507b411e0927",
             "shasum": ""
         },
         "require": {
             "php": ">=5.2.7"
         },
         "require-dev": {
+            "psr/container": "^1.0",
             "symfony/debug": "~2.7",
-            "symfony/phpunit-bridge": "~2.7"
+            "symfony/phpunit-bridge": "~3.3@dev"
         },
-        "time": "2016-09-01 17:50:53",
+        "time": "2017-04-20 17:39:48",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.24-dev"
+                "dev-master": "1.33-dev"
             }
         },
         "installation-source": "dist",
@@ -1820,29 +1831,29 @@
     },
     {
         "name": "symfony/twig-bridge",
-        "version": "v2.8.11",
-        "version_normalized": "2.8.11.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/twig-bridge.git",
-            "reference": "5e9679f7085e99adb5248e07b4677494b8f884b5"
+            "reference": "362aa855b5819355811b58f8b5f15679196a181e"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/5e9679f7085e99adb5248e07b4677494b8f884b5",
-            "reference": "5e9679f7085e99adb5248e07b4677494b8f884b5",
+            "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/362aa855b5819355811b58f8b5f15679196a181e",
+            "reference": "362aa855b5819355811b58f8b5f15679196a181e",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.9",
-            "twig/twig": "~1.23|~2.0"
+            "twig/twig": "~1.28|~2.0"
         },
         "require-dev": {
             "symfony/asset": "~2.7|~3.0.0",
             "symfony/console": "~2.8|~3.0.0",
             "symfony/expression-language": "~2.4|~3.0.0",
             "symfony/finder": "~2.3|~3.0.0",
-            "symfony/form": "~2.8.4",
+            "symfony/form": "^2.8.19",
             "symfony/http-kernel": "~2.8|~3.0.0",
             "symfony/polyfill-intl-icu": "~1.0",
             "symfony/routing": "~2.2|~3.0.0",
@@ -1852,7 +1863,7 @@
             "symfony/templating": "~2.1|~3.0.0",
             "symfony/translation": "~2.7|~3.0.0",
             "symfony/var-dumper": "~2.7.16|~2.8.9|~3.0.9",
-            "symfony/yaml": "~2.0,>=2.0.5|~3.0.0"
+            "symfony/yaml": "^2.0.5|~3.0.0"
         },
         "suggest": {
             "symfony/asset": "For using the AssetExtension",
@@ -1868,7 +1879,7 @@
             "symfony/var-dumper": "For using the DumpExtension",
             "symfony/yaml": "For using the YamlExtension"
         },
-        "time": "2016-09-06 10:55:00",
+        "time": "2017-04-12 14:07:15",
         "type": "symfony-bridge",
         "extra": {
             "branch-alias": {
@@ -1903,23 +1914,23 @@
     },
     {
         "name": "symfony/yaml",
-        "version": "v2.8.14",
-        "version_normalized": "2.8.14.0",
+        "version": "v2.8.21",
+        "version_normalized": "2.8.21.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/yaml.git",
-            "reference": "befb26a3713c97af90d25dd12e75621ef14d91ff"
+            "reference": "93ccdde79f4b079c7558da4656a3cb1c50c68e02"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/yaml/zipball/befb26a3713c97af90d25dd12e75621ef14d91ff",
-            "reference": "befb26a3713c97af90d25dd12e75621ef14d91ff",
+            "url": "https://api.github.com/repos/symfony/yaml/zipball/93ccdde79f4b079c7558da4656a3cb1c50c68e02",
+            "reference": "93ccdde79f4b079c7558da4656a3cb1c50c68e02",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.9"
         },
-        "time": "2016-11-14 16:15:57",
+        "time": "2017-05-01 14:31:55",
         "type": "library",
         "extra": {
             "branch-alias": {
--- /dev/null
+++ b/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/BattleNet.php
@@ -0,0 +1,116 @@
+<?php
+
+namespace OAuth\OAuth2\Service;
+
+//-----------------------------------------------------------------------------
+use OAuth\OAuth2\Token\StdOAuth2Token;
+use OAuth\Common\Http\Exception\TokenResponseException;
+use OAuth\Common\Http\Uri\Uri;
+use OAuth\Common\Consumer\CredentialsInterface;
+use OAuth\Common\Http\Client\ClientInterface;
+use OAuth\Common\Storage\TokenStorageInterface;
+use OAuth\Common\Http\Uri\UriInterface;
+
+//-----------------------------------------------------------------------------
+class BattleNet extends AbstractService { 
+    
+    /** -----------------------------------------------------------------------
+     * Defined scopes.
+     *
+     * @link https://dev.battle.net/docs
+     */
+    const SCOPE_WOW_PROFILE = "wow.profile";
+    const SCOPE_SC2_PROFILE = "sc2.profile";
+    
+    /** -----------------------------------------------------------------------
+     * Defined API URIs.
+     *
+     * @link https://dev.battle.net/docs
+     */
+    const API_URI_US  = 'https://us.api.battle.net/';
+    const API_URI_EU  = 'https://eu.api.battle.net/';
+    const API_URI_KR  = 'https://kr.api.battle.net/';
+    const API_URI_TW  = 'https://tw.api.battle.net/';
+    const API_URI_CN  = 'https://api.battlenet.com.cn/';
+    const API_URI_SEA = 'https://sea.api.battle.net/';
+    
+    public function __construct( CredentialsInterface $credentials,
+                                 ClientInterface $httpClient,
+                                 TokenStorageInterface $storage,
+                                 $scopes = array(),
+                                 UriInterface $baseApiUri = null ) {
+                                 
+        parent::__construct( $credentials, $httpClient, $storage, 
+                             $scopes, $baseApiUri );
+        
+        if( $baseApiUri === null ) {
+            $this->baseApiUri = new Uri( self::API_URI_US );
+        }
+    }
+    
+    /** -----------------------------------------------------------------------
+     * Translates the current base API URI into an OAuth base URI. 
+     *
+     * @returns string Base URI of oauth services.
+     */
+    private function GetOAuthBaseUri() {
+    
+        // i love china
+        switch( $this->baseApiUri ) {
+            case self::API_URI_US:  return 'https://us.battle.net/oauth/';
+            case self::API_URI_EU:  return 'https://eu.battle.net/oauth/';
+            case self::API_URI_KR:  return 'https://kr.battle.net/oauth/';
+            case self::API_URI_TW:  return 'https://tw.battle.net/oauth/';
+            case self::API_URI_CN:  return 'https://www.battlenet.com.cn/oauth/';
+            case self::API_URI_SEA: return 'https://sea.battle.net/oauth/'; 
+        }
+        
+    }
+    
+    /** -----------------------------------------------------------------------
+     * {@inheritdoc}
+     */
+    public function getAuthorizationEndpoint() {
+        return new Uri( $this->GetOAuthBaseUri() . 'authorize' );
+    }
+    
+    /** -----------------------------------------------------------------------
+     * {@inheritdoc}
+     */
+    public function getAccessTokenEndpoint() {
+        return new Uri( $this->GetOAuthBaseUri() . 'token' );
+    }
+    
+    /** -----------------------------------------------------------------------
+     * {@inheritdoc}
+     */
+    protected function getAuthorizationMethod()
+    {
+        return static::AUTHORIZATION_METHOD_QUERY_STRING;
+    }
+    
+    /** -----------------------------------------------------------------------
+     * {@inheritdoc}
+     */
+    protected function parseAccessTokenResponse( $responseBody )
+    {
+        $data = json_decode($responseBody, true);
+        if( $data === null || !is_array($data) ) {
+            throw new TokenResponseException( 'Unable to parse response.' );
+        } elseif( isset($data['error']) ) {
+            $err = $data['error'];
+            throw new TokenResponseException( 
+                                "Error in retrieving token: \"$err\"" );
+        }
+        
+        $token = new StdOAuth2Token( $data['access_token'], null, 
+                                     $data['expires_in'] );
+        
+        unset( $data['access_token'] );
+        unset( $data['expires_in'] );
+        
+        $token->setExtraParams( $data );
+        
+        return $token;
+    }
+}
--- a/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Bitrix24.php
+++ b/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Bitrix24.php
@@ -42,6 +42,14 @@ class Bitrix24 extends AbstractService
     /**
      * {@inheritdoc}
      */
+    protected function getAuthorizationMethod()
+    {
+        return static::AUTHORIZATION_METHOD_QUERY_STRING_V4;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
     public function requestAccessToken($code, $state = null)
     {
         if (null !== $state) {
--- a/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Facebook.php
+++ b/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Facebook.php
@@ -158,8 +158,12 @@ class Facebook extends AbstractService
      */
     protected function parseAccessTokenResponse($responseBody)
     {
-        // Facebook gives us a query string ... Oh wait. JSON is too simple, understand ?
-        parse_str($responseBody, $data);
+        $data = @json_decode($responseBody, true);
+
+        // Facebook gives us a query string on old api (v2.0)
+        if (!$data) {
+            parse_str($responseBody, $data);
+        }
 
         if (null === $data || !is_array($data)) {
             throw new TokenResponseException('Unable to parse response.');
--- a/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Google.php
+++ b/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Google.php
@@ -35,6 +35,7 @@ class Google extends AbstractService
     const SCOPE_GPLUS_STREAM_READ           = 'https://www.googleapis.com/auth/plus.stream.read';
     const SCOPE_GPLUS_STREAM_WRITE          = 'https://www.googleapis.com/auth/plus.stream.write';
     const SCOPE_GPLUS_MEDIA                 = 'https://www.googleapis.com/auth/plus.media.upload';
+    const SCOPE_EMAIL_PLUS                  = 'https://www.googleapis.com/auth/plus.profile.emails.read';
 
     // Google Drive
     const SCOPE_DOCUMENTSLIST               = 'https://docs.google.com/feeds/';
@@ -49,7 +50,8 @@ class Google extends AbstractService
 
     // Adwords
     const SCOPE_ADSENSE                     = 'https://www.googleapis.com/auth/adsense';
-    const SCOPE_ADWORDS                     = 'https://www.googleapis.com/auth/adwords/';
+    const SCOPE_ADWORDS                     = 'https://www.googleapis.com/auth/adwords';
+    const SCOPE_ADWORDS_DEPRECATED          = 'https://www.googleapis.com/auth/adwords/'; //deprecated in v201406 API version
     const SCOPE_GAN                         = 'https://www.googleapis.com/auth/gan'; // google affiliate network...?
 
     //Doubleclick for Publishers
--- /dev/null
+++ b/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Mondo.php
@@ -0,0 +1,86 @@
+<?php
+
+namespace OAuth\OAuth2\Service;
+
+use OAuth\OAuth2\Token\StdOAuth2Token;
+use OAuth\Common\Http\Exception\TokenResponseException;
+use OAuth\Common\Http\Uri\Uri;
+use OAuth\Common\Consumer\CredentialsInterface;
+use OAuth\Common\Http\Client\ClientInterface;
+use OAuth\Common\Storage\TokenStorageInterface;
+use OAuth\Common\Http\Uri\UriInterface;
+
+class Mondo extends AbstractService
+{
+    public function __construct(
+        CredentialsInterface $credentials,
+        ClientInterface $httpClient,
+        TokenStorageInterface $storage,
+        $scopes = array(),
+        UriInterface $baseApiUri = null
+    ) {
+        parent::__construct($credentials, $httpClient, $storage, $scopes, $baseApiUri, true);
+
+        if (null === $baseApiUri) {
+            $this->baseApiUri = new Uri('https://api.getmondo.co.uk');
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getAuthorizationEndpoint()
+    {
+        return new Uri('https://auth.getmondo.co.uk');
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getAccessTokenEndpoint()
+    {
+        return new Uri('https://api.getmondo.co.uk/oauth2/token');
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getAuthorizationMethod()
+    {
+        return static::AUTHORIZATION_METHOD_HEADER_BEARER;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function parseAccessTokenResponse($responseBody)
+    {
+        $data = json_decode($responseBody, true);
+
+        if (null === $data || !is_array($data)) {
+            throw new TokenResponseException('Unable to parse response.');
+        } elseif (isset($data['error'])) {
+            throw new TokenResponseException('Error in retrieving token: "' . $data['error'] . '"');
+        }
+
+
+        $token = new StdOAuth2Token();
+        $token->setAccessToken($data['access_token']);
+
+        if (isset($data['expires_in'])) {
+            $token->setLifetime($data['expires_in']);
+            unset($data['expires_in']);
+        }
+
+        if (isset($data['refresh_token'])) {
+            $token->setRefreshToken($data['refresh_token']);
+            unset($data['refresh_token']);
+        }
+
+        unset($data['access_token']);
+
+        $token->setExtraParams($data);
+
+        return $token;
+    }
+}
--- a/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Salesforce.php
+++ b/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Salesforce.php
@@ -34,7 +34,7 @@ class Salesforce extends AbstractService
      */
     public function getAccessTokenEndpoint()
     {
-        return new Uri('https://na1.salesforce.com/services/oauth2/token');
+        return new Uri('https://login.salesforce.com/services/oauth2/token');
     }
 
     /**
--- a/vendor/marc1706/fast-image-size/lib/Type/TypeJpeg.php
+++ b/vendor/marc1706/fast-image-size/lib/Type/TypeJpeg.php
@@ -20,6 +20,9 @@ class TypeJpeg extends TypeBase
 	/** @var string JPEG header */
 	const JPEG_HEADER = "\xFF\xD8";
 
+	/** @var string JPEG EXIF header */
+	const JPEG_EXIF_HEADER = "\x45\x78\x69\x66\x00\x00";
+
 	/** @var string Start of frame marker */
 	const SOF_START_MARKER = "\xFF";
 
@@ -143,6 +146,13 @@ class TypeJpeg extends TypeBase
 				break;
 			}
 
+			$size = $this->checkExifData($i);
+
+			if (count($size) > 0)
+			{
+				break;
+			}
+
 			if ($this->isSofMarker($this->data[$i], $this->data[$i + 1]))
 			{
 				// Extract size info from SOF marker
@@ -181,7 +191,10 @@ class TypeJpeg extends TypeBase
 			$this->setApp1Flags($this->data[$index + 1]);
 
 			// Skip over length of APP header
-			$index += (int) $length;
+			if (!$this->isApp1Marker($this->data[$index], $this->data[$index + 1]))
+			{
+				$index += (int)$length;
+			}
 
 			// Make sure we don't exceed the data length
 			if ($index >= $dataLength)
@@ -209,4 +222,90 @@ class TypeJpeg extends TypeBase
 			$this->foundXmp = $data === $this->appMarkers[1];
 		}
 	}
+
+	/**
+	 * Check EXIF data for valid image dimensions
+	 *
+	 * @param int $index Current search index
+	 *
+	 * @return array Array with size info or empty array if no size info was found
+	 */
+	protected function checkExifData(&$index)
+	{
+		if ($this->foundExif && substr($this->data, $index + self::SHORT_SIZE, self::LONG_SIZE + self::SHORT_SIZE) == self::JPEG_EXIF_HEADER)
+		{
+			$typeTif = new TypeTif($this->fastImageSize);
+
+			$data = substr($this->data, $index + self::SHORT_SIZE * 2 + self::LONG_SIZE);
+
+			$signature = substr($data, 0, self::SHORT_SIZE);
+
+			$typeTif->setByteType($signature);
+
+			$size = array();
+
+			// Get offset of IFD
+			list(, $offset) = unpack($typeTif->typeLong, substr($data, self::LONG_SIZE, self::LONG_SIZE));
+
+			// Get size of IFD
+			list(, $sizeIfd) = unpack($typeTif->typeShort, substr($data, $offset, self::SHORT_SIZE));
+
+			// Skip 2 bytes that define the IFD size
+			$offset += self::SHORT_SIZE;
+
+			// Filter through IFD
+			for ($i = 0; $i <= $sizeIfd; $i++)
+			{
+				// Get IFD tag
+				$type = unpack($typeTif->typeShort, substr($data, $offset, self::SHORT_SIZE));
+
+				// Get field type of tag
+				$fieldType = unpack($typeTif->typeShort . 'type', substr($data, $offset + self::SHORT_SIZE, self::SHORT_SIZE));
+
+				// Get IFD entry
+				$ifdValue = substr($data, $offset + 2 * self::LONG_SIZE, self::LONG_SIZE);
+
+				// Set size of field
+				$fieldSize = $fieldType['type'] === TypeTif::TIF_TAG_TYPE_SHORT ? $typeTif->typeShort : $typeTif->typeLong;
+
+				if ($type[1] === TypeTif::TIF_TAG_EXIF_IMAGE_WIDTH)
+				{
+					$size = array_merge($size, (unpack($fieldSize . 'width', $ifdValue)));
+				}
+				else if ($type[1] === TypeTif::TIF_TAG_EXIF_IMAGE_HEIGHT)
+				{
+					$size = array_merge($size, (unpack($fieldSize . 'height', $ifdValue)));
+				}
+
+				// See if we can find the EXIF IFD data offset
+				if ($type[1] === TypeTif::TIF_TAG_EXIF_OFFSET)
+				{
+					list(, $newOffset) = unpack($fieldSize, $ifdValue);
+					list(, $newSizeIfd) = unpack($typeTif->typeShort, substr($data, $newOffset, self::SHORT_SIZE));
+					$i = 0;
+					$sizeIfd = $newSizeIfd;
+					$offset = $newOffset + self::SHORT_SIZE;
+					continue;
+				}
+
+				$offset += TypeTif::TIF_IFD_ENTRY_SIZE;
+			}
+
+			if (count($size) > 0 && !empty($size['width']) && !empty($size['height']))
+			{
+				return $size;
+			}
+			else if ($index >= 2 && $this->isApp1Marker($this->data[$index - 2], $this->data[$index - 1]))
+			{
+				// Extract length from APP marker and skip over it if it didn't
+				// contain the actual image dimensions
+				list(, $unpacked) = unpack("H*", substr($this->data, $index, 2));
+
+				$length = hexdec(substr($unpacked, 0, 4));
+				$index += $length - self::SHORT_SIZE;
+			}
+		}
+
+		return array();
+	}
 }
--- a/vendor/marc1706/fast-image-size/lib/Type/TypeTif.php
+++ b/vendor/marc1706/fast-image-size/lib/Type/TypeTif.php
@@ -23,6 +23,15 @@ class TypeTif extends TypeBase
 	/** @var int TIF tag for image width */
 	const TIF_TAG_IMAGE_WIDTH = 256;
 
+	/** @var int TIF tag for exif IFD offset */
+	const TIF_TAG_EXIF_OFFSET = 34665;
+
+	/** @var int TIF tag for Image X resolution in pixels */
+	const TIF_TAG_EXIF_IMAGE_WIDTH = 0xA002;
+
+	/** @var int TIF tag for Image Y resolution in pixels */
+	const TIF_TAG_EXIF_IMAGE_HEIGHT = 0xA003;
+
 	/** @var int TIF tag type for short */
 	const TIF_TAG_TYPE_SHORT = 3;
 
@@ -39,10 +48,10 @@ class TypeTif extends TypeBase
 	protected $size;
 
 	/** @var string Bit type of long field */
-	protected $typeLong;
+	public $typeLong;
 
 	/** @var string Bit type of short field */
-	protected $typeShort;
+	public $typeShort;
 
 	/**
 	 * {@inheritdoc}
@@ -99,7 +108,7 @@ class TypeTif extends TypeBase
 	 *
 	 * @param string $signature Header signature
 	 */
-	protected function setByteType($signature)
+	public function setByteType($signature)
 	{
 		if ($signature === self::TIF_SIGNATURE_INTEL)
 		{
--- /dev/null
+++ b/vendor/paragonie/random_compat/RATIONALE.md
@@ -0,0 +1,42 @@
+## Rationale (Design Decisions)
+
+### Reasoning Behind the Order of Preferred Random Data Sources
+
+The order is:
+
+ 1. `libsodium if available`
+ 2. `fread() /dev/urandom if available`
+ 3. `mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM)`
+ 4. `COM('CAPICOM.Utilities.1')->GetRandom()`
+ 5. `openssl_random_pseudo_bytes()`
+
+If libsodium is available, we get random data from it. This is the preferred
+method on all OSes, but libsodium is not very widely installed, so other
+fallbacks are available.
+
+Next, we read `/dev/urandom` (if it exists). This is the preferred file to read
+for random data for cryptographic purposes for BSD and Linux. This step
+is skipped on Windows, because someone could create a `C:\dev\urandom`
+file and PHP would helpfully (but insecurely) return bytes from it.
+
+Despite [strongly urging people not to use mcrypt in their projects](https://paragonie.com/blog/2015/05/if-you-re-typing-word-mcrypt-into-your-code-you-re-doing-it-wrong)
+(because libmcrypt is abandonware and the API puts too much responsibility on the
+implementor) we prioritize `mcrypt_create_iv()` with `MCRYPT_DEV_URANDOM` above
+the remaining implementations.
+
+The reason is simple: `mcrypt_create_iv()` is part of PHP's `ext/mcrypt` code,
+and is not part `libmcrypt`. It actually does the right thing:
+
+ * On Unix-based operating systems, it reads from `/dev/urandom` which
+   (unlike `/dev/random`) is the sane and correct thing to do.
+ * On Windows, it reads from `CryptGenRandom`, which is an exclusively Windows
+   way to get random bytes.
+
+If we're on Windows and don't have access to `mcrypt`, we use `CAPICOM.Utilities.1`.
+
+Finally, we use `openssl_random_pseudo_bytes()` **as a last resort**, due to
+[PHP bug #70014](https://bugs.php.net/bug.php?id=70014). Internally, this 
+function calls `RAND_pseudo_bytes()`, which has been [deprecated](https://github.com/paragonie/random_compat/issues/5)
+by the OpenSSL team. Furthermore, [it might silently return weak random data](https://github.com/paragonie/random_compat/issues/6#issuecomment-119564973)
+if it is called before OpenSSL's **userspace** CSPRNG is seeded. Also, 
+[you want the OS CSPRNG, not a userspace CSPRNG](http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers/).
--- /dev/null
+++ b/vendor/paragonie/random_compat/build-phar.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+basedir=$( dirname $( readlink -f ${BASH_SOURCE[0]} ) )
+
+php -dphar.readonly=0 "$basedir/other/build_phar.php" $*
\ No newline at end of file
--- a/vendor/paragonie/random_compat/lib/byte_safe_strings.php
+++ b/vendor/paragonie/random_compat/lib/byte_safe_strings.php
@@ -5,7 +5,7 @@
  *
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -26,7 +26,7 @@
  * SOFTWARE.
  */
 
-if (!function_exists('RandomCompat_strlen')) {
+if (!is_callable('RandomCompat_strlen')) {
     if (
         defined('MB_OVERLOAD_STRING') &&
         ini_get('mbstring.func_overload') & MB_OVERLOAD_STRING
@@ -51,7 +51,7 @@ if (!function_exists('RandomCompat_strlen')) {
                 );
             }
 
-            return mb_strlen($binary_string, '8bit');
+            return (int) mb_strlen($binary_string, '8bit');
         }
 
     } else {
@@ -73,12 +73,12 @@ if (!function_exists('RandomCompat_strlen')) {
                     'RandomCompat_strlen() expects a string'
                 );
             }
-            return strlen($binary_string);
+            return (int) strlen($binary_string);
         }
     }
 }
 
-if (!function_exists('RandomCompat_substr')) {
+if (!is_callable('RandomCompat_substr')) {
 
     if (
         defined('MB_OVERLOAD_STRING')
@@ -118,14 +118,22 @@ if (!function_exists('RandomCompat_substr')) {
                  * mb_substr($str, 0, NULL, '8bit') returns an empty string on
                  * PHP 5.3, so we have to find the length ourselves.
                  */
-                $length = RandomCompat_strlen($length) - $start;
+                $length = RandomCompat_strlen($binary_string) - $start;
             } elseif (!is_int($length)) {
                 throw new TypeError(
                     'RandomCompat_substr(): Third argument should be an integer, or omitted'
                 );
             }
 
-            return mb_substr($binary_string, $start, $length, '8bit');
+            // Consistency with PHP's behavior
+            if ($start === RandomCompat_strlen($binary_string) && $length === 0) {
+                return '';
+            }
+            if ($start > RandomCompat_strlen($binary_string)) {
+                return '';
+            }
+
+            return (string) mb_substr($binary_string, $start, $length, '8bit');
         }
 
     } else {
@@ -164,10 +172,10 @@ if (!function_exists('RandomCompat_substr')) {
                     );
                 }
 
-                return substr($binary_string, $start, $length);
+                return (string) substr($binary_string, $start, $length);
             }
 
-            return substr($binary_string, $start);
+            return (string) substr($binary_string, $start);
         }
     }
 }
--- a/vendor/paragonie/random_compat/lib/cast_to_int.php
+++ b/vendor/paragonie/random_compat/lib/cast_to_int.php
@@ -5,7 +5,7 @@
  *
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -26,27 +26,29 @@
  * SOFTWARE.
  */
 
-if (!function_exists('RandomCompat_intval')) {
-    
+if (!is_callable('RandomCompat_intval')) {
+
     /**
      * Cast to an integer if we can, safely.
-     * 
+     *
      * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX)
      * (non-inclusive), it will sanely cast it to an int. If you it's equal to
-     * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats 
+     * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats
      * lose precision, so the <= and => operators might accidentally let a float
      * through.
-     * 
+     *
      * @param int|float $number    The number we want to convert to an int
      * @param boolean   $fail_open Set to true to not throw an exception
-     * 
-     * @return int (or float if $fail_open)
+     *
+     * @return float|int
      *
      * @throws TypeError
      */
     function RandomCompat_intval($number, $fail_open = false)
     {
-        if (is_numeric($number)) {
+        if (is_int($number) || is_float($number)) {
+            $number += 0;
+        } elseif (is_numeric($number)) {
             $number += 0;
         }
 
@@ -60,12 +62,13 @@ if (!function_exists('RandomCompat_intval')) {
             $number = (int) $number;
         }
 
-        if (is_int($number) || $fail_open) {
-            return $number;
+        if (is_int($number)) {
+            return (int) $number;
+        } elseif (!$fail_open) {
+            throw new TypeError(
+                'Expected an integer.'
+            );
         }
-
-        throw new TypeError(
-            'Expected an integer.'
-        );
+        return $number;
     }
 }
--- a/vendor/paragonie/random_compat/lib/error_polyfill.php
+++ b/vendor/paragonie/random_compat/lib/error_polyfill.php
@@ -1,22 +1,22 @@
 <?php
 /**
- * Random_* Compatibility Library 
+ * Random_* Compatibility Library
  * for using the new PHP 7 random_* API in PHP 5 projects
- * 
+ *
  * The MIT License (MIT)
- * 
- * Copyright (c) 2015 Paragon Initiative Enterprises
- * 
+ *
+ * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -30,13 +30,20 @@ if (!class_exists('Error', false)) {
     // We can't really avoid making this extend Exception in PHP 5.
     class Error extends Exception
     {
-        
+
     }
 }
 
 if (!class_exists('TypeError', false)) {
-    class TypeError extends Error
-    {
-        
+    if (is_subclass_of('Error', 'Exception')) {
+        class TypeError extends Error
+        {
+
+        }
+    } else {
+        class TypeError extends Exception
+        {
+
+        }
     }
 }
--- a/vendor/paragonie/random_compat/lib/random.php
+++ b/vendor/paragonie/random_compat/lib/random.php
@@ -2,13 +2,13 @@
 /**
  * Random_* Compatibility Library
  * for using the new PHP 7 random_* API in PHP 5 projects
- * 
- * @version 1.4.1
- * @released 2016-03-18
+ *
+ * @version 2.0.4
+ * @released 2016-11-07
  *
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -31,7 +31,7 @@
 
 if (!defined('PHP_VERSION_ID')) {
     // This constant was introduced in PHP 5.2.7
-    $RandomCompatversion = explode('.', PHP_VERSION);
+    $RandomCompatversion = array_map('intval', explode('.', PHP_VERSION));
     define(
         'PHP_VERSION_ID',
         $RandomCompatversion[0] * 10000
@@ -41,181 +41,207 @@ if (!defined('PHP_VERSION_ID')) {
     $RandomCompatversion = null;
 }
 
-if (PHP_VERSION_ID < 70000) {
-
-    if (!defined('RANDOM_COMPAT_READ_BUFFER')) {
-        define('RANDOM_COMPAT_READ_BUFFER', 8);
-    }
-
-    $RandomCompatDIR = dirname(__FILE__);
+/**
+ * PHP 7.0.0 and newer have these functions natively.
+ */
+if (PHP_VERSION_ID >= 70000) {
+    return;
+}
 
-    require_once $RandomCompatDIR.'/byte_safe_strings.php';
-    require_once $RandomCompatDIR.'/cast_to_int.php';
-    require_once $RandomCompatDIR.'/error_polyfill.php';
+if (!defined('RANDOM_COMPAT_READ_BUFFER')) {
+    define('RANDOM_COMPAT_READ_BUFFER', 8);
+}
 
-    if (!function_exists('random_bytes')) {
-        /**
-         * PHP 5.2.0 - 5.6.x way to implement random_bytes()
-         *
-         * We use conditional statements here to define the function in accordance
-         * to the operating environment. It's a micro-optimization.
-         *
-         * In order of preference:
-         *   1. Use libsodium if available.
-         *   2. fread() /dev/urandom if available (never on Windows)
-         *   3. mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM)
-         *   4. COM('CAPICOM.Utilities.1')->GetRandom()
-         *   5. openssl_random_pseudo_bytes() (absolute last resort)
-         *
-         * See ERRATA.md for our reasoning behind this particular order
-         */
-        if (extension_loaded('libsodium')) {
-            // See random_bytes_libsodium.php
-            if (PHP_VERSION_ID >= 50300 && function_exists('\\Sodium\\randombytes_buf')) {
-                require_once $RandomCompatDIR.'/random_bytes_libsodium.php';
-            } elseif (method_exists('Sodium', 'randombytes_buf')) {
-                require_once $RandomCompatDIR.'/random_bytes_libsodium_legacy.php';
-            }
+$RandomCompatDIR = dirname(__FILE__);
+
+require_once $RandomCompatDIR . '/byte_safe_strings.php';
+require_once $RandomCompatDIR . '/cast_to_int.php';
+require_once $RandomCompatDIR . '/error_polyfill.php';
+
+if (!is_callable('random_bytes')) {
+    /**
+     * PHP 5.2.0 - 5.6.x way to implement random_bytes()
+     *
+     * We use conditional statements here to define the function in accordance
+     * to the operating environment. It's a micro-optimization.
+     *
+     * In order of preference:
+     *   1. Use libsodium if available.
+     *   2. fread() /dev/urandom if available (never on Windows)
+     *   3. mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM)
+     *   4. COM('CAPICOM.Utilities.1')->GetRandom()
+     *
+     * See RATIONALE.md for our reasoning behind this particular order
+     */
+    if (extension_loaded('libsodium')) {
+        // See random_bytes_libsodium.php
+        if (PHP_VERSION_ID >= 50300 && is_callable('\\Sodium\\randombytes_buf')) {
+            require_once $RandomCompatDIR . '/random_bytes_libsodium.php';
+        } elseif (method_exists('Sodium', 'randombytes_buf')) {
+            require_once $RandomCompatDIR . '/random_bytes_libsodium_legacy.php';
         }
+    }
 
-        /**
-         * Reading directly from /dev/urandom:
-         */
-        if (DIRECTORY_SEPARATOR === '/') {
-            // DIRECTORY_SEPARATOR === '/' on Unix-like OSes -- this is a fast
-            // way to exclude Windows.
-            $RandomCompatUrandom = true;
-            $RandomCompat_basedir = ini_get('open_basedir');
-
-            if (!empty($RandomCompat_basedir)) {
-                $RandomCompat_open_basedir = explode(
-                    PATH_SEPARATOR,
-                    strtolower($RandomCompat_basedir)
-                );
-                $RandomCompatUrandom = (array() !== array_intersect(
+    /**
+     * Reading directly from /dev/urandom:
+     */
+    if (DIRECTORY_SEPARATOR === '/') {
+        // DIRECTORY_SEPARATOR === '/' on Unix-like OSes -- this is a fast
+        // way to exclude Windows.
+        $RandomCompatUrandom = true;
+        $RandomCompat_basedir = ini_get('open_basedir');
+
+        if (!empty($RandomCompat_basedir)) {
+            $RandomCompat_open_basedir = explode(
+                PATH_SEPARATOR,
+                strtolower($RandomCompat_basedir)
+            );
+            $RandomCompatUrandom = (array() !== array_intersect(
                     array('/dev', '/dev/', '/dev/urandom'),
                     $RandomCompat_open_basedir
                 ));
-                $RandomCompat_open_basedir = null;
-            }
-
-            if (
-                !function_exists('random_bytes')
-                &&
-                $RandomCompatUrandom
-                &&
-                @is_readable('/dev/urandom')
-            ) {
-                // Error suppression on is_readable() in case of an open_basedir
-                // or safe_mode failure. All we care about is whether or not we
-                // can read it at this point. If the PHP environment is going to
-                // panic over trying to see if the file can be read in the first
-                // place, that is not helpful to us here.
-
-                // See random_bytes_dev_urandom.php
-                require_once $RandomCompatDIR.'/random_bytes_dev_urandom.php';
-            }
-            // Unset variables after use
-            $RandomCompat_basedir = null;
-        } else {
-            $RandomCompatUrandom = false;
+            $RandomCompat_open_basedir = null;
         }
 
-        /**
-         * mcrypt_create_iv()
-         */
         if (
-            !function_exists('random_bytes')
-            &&
-            PHP_VERSION_ID >= 50307
+            !is_callable('random_bytes')
             &&
-            extension_loaded('mcrypt')
+            $RandomCompatUrandom
             &&
-            (DIRECTORY_SEPARATOR !== '/' || $RandomCompatUrandom)
+            @is_readable('/dev/urandom')
         ) {
-            // Prevent this code from hanging indefinitely on non-Windows;
-            // see https://bugs.php.net/bug.php?id=69833
-            if (
-                DIRECTORY_SEPARATOR !== '/' || 
-                (PHP_VERSION_ID <= 50609 || PHP_VERSION_ID >= 50613)
-            ) {
-                // See random_bytes_mcrypt.php
-                require_once $RandomCompatDIR.'/random_bytes_mcrypt.php';
-            }
+            // Error suppression on is_readable() in case of an open_basedir
+            // or safe_mode failure. All we care about is whether or not we
+            // can read it at this point. If the PHP environment is going to
+            // panic over trying to see if the file can be read in the first
+            // place, that is not helpful to us here.
+
+            // See random_bytes_dev_urandom.php
+            require_once $RandomCompatDIR . '/random_bytes_dev_urandom.php';
         }
-        $RandomCompatUrandom = null;
-
-        if (
-            !function_exists('random_bytes')
-            &&
-            extension_loaded('com_dotnet')
-            &&
-            class_exists('COM')
-        ) {
-            $RandomCompat_disabled_classes = preg_split(
-                '#\s*,\s*#',
-                strtolower(ini_get('disable_classes'))
-            );
+        // Unset variables after use
+        $RandomCompat_basedir = null;
+    } else {
+        $RandomCompatUrandom = false;
+    }
 
-            if (!in_array('com', $RandomCompat_disabled_classes)) {
-                try {
-                    $RandomCompatCOMtest = new COM('CAPICOM.Utilities.1');
-                    if (method_exists($RandomCompatCOMtest, 'GetRandom')) {
-                        // See random_bytes_com_dotnet.php
-                        require_once $RandomCompatDIR.'/random_bytes_com_dotnet.php';
-                    }
-                } catch (com_exception $e) {
-                    // Don't try to use it.
+    /**
+     * mcrypt_create_iv()
+     *
+     * We only want to use mcypt_create_iv() if:
+     *
+     * - random_bytes() hasn't already been defined
+     * - the mcrypt extensions is loaded
+     * - One of these two conditions is true:
+     *   - We're on Windows (DIRECTORY_SEPARATOR !== '/')
+     *   - We're not on Windows and /dev/urandom is readabale
+     *     (i.e. we're not in a chroot jail)
+     * - Special case:
+     *   - If we're not on Windows, but the PHP version is between
+     *     5.6.10 and 5.6.12, we don't want to use mcrypt. It will
+     *     hang indefinitely. This is bad.
+     *   - If we're on Windows, we want to use PHP >= 5.3.7 or else
+     *     we get insufficient entropy errors.
+     */
+    if (
+        !is_callable('random_bytes')
+        &&
+        // Windows on PHP < 5.3.7 is broken, but non-Windows is not known to be.
+        (DIRECTORY_SEPARATOR === '/' || PHP_VERSION_ID >= 50307)
+        &&
+        // Prevent this code from hanging indefinitely on non-Windows;
+        // see https://bugs.php.net/bug.php?id=69833
+        (
+            DIRECTORY_SEPARATOR !== '/' ||
+            (PHP_VERSION_ID <= 50609 || PHP_VERSION_ID >= 50613)
+        )
+        &&
+        extension_loaded('mcrypt')
+    ) {
+        // See random_bytes_mcrypt.php
+        require_once $RandomCompatDIR . '/random_bytes_mcrypt.php';
+    }
+    $RandomCompatUrandom = null;
+
+    /**
+     * This is a Windows-specific fallback, for when the mcrypt extension
+     * isn't loaded.
+     */
+    if (
+        !is_callable('random_bytes')
+        &&
+        extension_loaded('com_dotnet')
+        &&
+        class_exists('COM')
+    ) {
+        $RandomCompat_disabled_classes = preg_split(
+            '#\s*,\s*#',
+            strtolower(ini_get('disable_classes'))
+        );
+
+        if (!in_array('com', $RandomCompat_disabled_classes)) {
+            try {
+                $RandomCompatCOMtest = new COM('CAPICOM.Utilities.1');
+                if (method_exists($RandomCompatCOMtest, 'GetRandom')) {
+                    // See random_bytes_com_dotnet.php
+                    require_once $RandomCompatDIR . '/random_bytes_com_dotnet.php';
                 }
+            } catch (com_exception $e) {
+                // Don't try to use it.
             }
-            $RandomCompat_disabled_classes = null;
-            $RandomCompatCOMtest = null;
         }
+        $RandomCompat_disabled_classes = null;
+        $RandomCompatCOMtest = null;
+    }
 
-        /**
-         * openssl_random_pseudo_bytes()
-         */
-        if (
+    /**
+     * openssl_random_pseudo_bytes()
+     */
+    if (
+        (
+            // Unix-like with PHP >= 5.3.0 or
             (
-                // Unix-like with PHP >= 5.3.0 or
-                (
-                    DIRECTORY_SEPARATOR === '/'
-                    &&
-                    PHP_VERSION_ID >= 50300
-                )
-                ||
-                // Windows with PHP >= 5.4.1
-                PHP_VERSION_ID >= 50401
+                DIRECTORY_SEPARATOR === '/'
+                &&
+                PHP_VERSION_ID >= 50300
             )
-            &&
-            !function_exists('random_bytes')
-            &&
-            extension_loaded('openssl')
-        ) {
-            // See random_bytes_openssl.php
-            require_once $RandomCompatDIR.'/random_bytes_openssl.php';
-        }
+            ||
+            // Windows with PHP >= 5.4.1
+            PHP_VERSION_ID >= 50401
+        )
+        &&
+        !function_exists('random_bytes')
+        &&
+        extension_loaded('openssl')
+    ) {
+        // See random_bytes_openssl.php
+        require_once $RandomCompatDIR . '/random_bytes_openssl.php';
+    }
 
+    /**
+     * throw new Exception
+     */
+    if (!is_callable('random_bytes')) {
         /**
-         * throw new Exception
+         * We don't have any more options, so let's throw an exception right now
+         * and hope the developer won't let it fail silently.
+         *
+         * @param mixed $length
+         * @return void
+         * @throws Exception
          */
-        if (!function_exists('random_bytes')) {
-            /**
-             * We don't have any more options, so let's throw an exception right now
-             * and hope the developer won't let it fail silently.
-             */
-            function random_bytes($length)
-            {
-                throw new Exception(
-                    'There is no suitable CSPRNG installed on your system'
-                );
-            }
+        function random_bytes($length)
+        {
+            unset($length); // Suppress "variable not used" warnings.
+            throw new Exception(
+                'There is no suitable CSPRNG installed on your system'
+            );
         }
     }
+}
 
-    if (!function_exists('random_int')) {
-        require_once $RandomCompatDIR.'/random_int.php';
-    }
-
-    $RandomCompatDIR = null;
+if (!is_callable('random_int')) {
+    require_once $RandomCompatDIR . '/random_int.php';
 }
+
+$RandomCompatDIR = null;
--- a/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php
@@ -1,22 +1,22 @@
 <?php
 /**
- * Random_* Compatibility Library 
+ * Random_* Compatibility Library
  * for using the new PHP 7 random_* API in PHP 5 projects
- * 
+ *
  * The MIT License (MIT)
- * 
- * Copyright (c) 2015 Paragon Initiative Enterprises
- * 
+ *
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -26,56 +26,63 @@
  * SOFTWARE.
  */
 
-/**
- * Windows with PHP < 5.3.0 will not have the function
- * openssl_random_pseudo_bytes() available, so let's use
- * CAPICOM to work around this deficiency.
- * 
- * @param int $bytes
- * 
- * @throws Exception
- * 
- * @return string
- */
-function random_bytes($bytes)
-{
-    try {
-        $bytes = RandomCompat_intval($bytes);
-    } catch (TypeError $ex) {
-        throw new TypeError(
-            'random_bytes(): $bytes must be an integer'
-        );
-    }
-
-    if ($bytes < 1) {
-        throw new Error(
-            'Length must be greater than 0'
-        );
-    }
-
-    $buf = '';
-    $util = new COM('CAPICOM.Utilities.1');
-    $execCount = 0;
-
+if (!is_callable('random_bytes')) {
     /**
-     * Let's not let it loop forever. If we run N times and fail to
-     * get N bytes of random data, then CAPICOM has failed us.
+     * Windows with PHP < 5.3.0 will not have the function
+     * openssl_random_pseudo_bytes() available, so let's use
+     * CAPICOM to work around this deficiency.
+     *
+     * @param int $bytes
+     *
+     * @throws Exception
+     *
+     * @return string
      */
-    do {
-        $buf .= base64_decode($util->GetRandom($bytes, 0));
-        if (RandomCompat_strlen($buf) >= $bytes) {
-            /**
-             * Return our random entropy buffer here:
-             */
-            return RandomCompat_substr($buf, 0, $bytes);
+    function random_bytes($bytes)
+    {
+        try {
+            $bytes = RandomCompat_intval($bytes);
+        } catch (TypeError $ex) {
+            throw new TypeError(
+                'random_bytes(): $bytes must be an integer'
+            );
         }
-        ++$execCount; 
-    } while ($execCount < $bytes);
 
-    /**
-     * If we reach here, PHP has failed us.
-     */
-    throw new Exception(
-        'Could not gather sufficient random data'
-    );
+        if ($bytes < 1) {
+            throw new Error(
+                'Length must be greater than 0'
+            );
+        }
+
+        $buf = '';
+        if (!class_exists('COM')) {
+            throw new Error(
+                'COM does not exist'
+            );
+        }
+        $util = new COM('CAPICOM.Utilities.1');
+        $execCount = 0;
+
+        /**
+         * Let's not let it loop forever. If we run N times and fail to
+         * get N bytes of random data, then CAPICOM has failed us.
+         */
+        do {
+            $buf .= base64_decode($util->GetRandom($bytes, 0));
+            if (RandomCompat_strlen($buf) >= $bytes) {
+                /**
+                 * Return our random entropy buffer here:
+                 */
+                return RandomCompat_substr($buf, 0, $bytes);
+            }
+            ++$execCount;
+        } while ($execCount < $bytes);
+
+        /**
+         * If we reach here, PHP has failed us.
+         */
+        throw new Exception(
+            'Could not gather sufficient random data'
+        );
+    }
 }
--- a/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php
@@ -30,119 +30,121 @@ if (!defined('RANDOM_COMPAT_READ_BUFFER')) {
     define('RANDOM_COMPAT_READ_BUFFER', 8);
 }
 
-/**
- * Unless open_basedir is enabled, use /dev/urandom for
- * random numbers in accordance with best practices
- * 
- * Why we use /dev/urandom and not /dev/random
- * @ref http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers
- * 
- * @param int $bytes
- * 
- * @throws Exception
- * 
- * @return string
- */
-function random_bytes($bytes)
-{
-    static $fp = null;
+if (!is_callable('random_bytes')) {
     /**
-     * This block should only be run once
+     * Unless open_basedir is enabled, use /dev/urandom for
+     * random numbers in accordance with best practices
+     *
+     * Why we use /dev/urandom and not /dev/random
+     * @ref http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers
+     *
+     * @param int $bytes
+     *
+     * @throws Exception
+     *
+     * @return string
      */
-    if (empty($fp)) {
+    function random_bytes($bytes)
+    {
+        static $fp = null;
         /**
-         * We use /dev/urandom if it is a char device.
-         * We never fall back to /dev/random
+         * This block should only be run once
          */
-        $fp = fopen('/dev/urandom', 'rb');
-        if (!empty($fp)) {
-            $st = fstat($fp);
-            if (($st['mode'] & 0170000) !== 020000) {
-                fclose($fp);
-                $fp = false;
-            }
-        }
-
-        if (!empty($fp)) {
+        if (empty($fp)) {
             /**
-             * stream_set_read_buffer() does not exist in HHVM
-             * 
-             * If we don't set the stream's read buffer to 0, PHP will
-             * internally buffer 8192 bytes, which can waste entropy
-             * 
-             * stream_set_read_buffer returns 0 on success
+             * We use /dev/urandom if it is a char device.
+             * We never fall back to /dev/random
              */
-            if (function_exists('stream_set_read_buffer')) {
-                stream_set_read_buffer($fp, RANDOM_COMPAT_READ_BUFFER);
+            $fp = fopen('/dev/urandom', 'rb');
+            if (!empty($fp)) {
+                $st = fstat($fp);
+                if (($st['mode'] & 0170000) !== 020000) {
+                    fclose($fp);
+                    $fp = false;
+                }
             }
-            if (function_exists('stream_set_chunk_size')) {
-                stream_set_chunk_size($fp, RANDOM_COMPAT_READ_BUFFER);
+
+            if (!empty($fp)) {
+                /**
+                 * stream_set_read_buffer() does not exist in HHVM
+                 * 
+                 * If we don't set the stream's read buffer to 0, PHP will
+                 * internally buffer 8192 bytes, which can waste entropy
+                 * 
+                 * stream_set_read_buffer returns 0 on success
+                 */
+                if (function_exists('stream_set_read_buffer')) {
+                    stream_set_read_buffer($fp, RANDOM_COMPAT_READ_BUFFER);
+                }
+                if (function_exists('stream_set_chunk_size')) {
+                    stream_set_chunk_size($fp, RANDOM_COMPAT_READ_BUFFER);
+                }
             }
         }
-    }
-
-    try {
-        $bytes = RandomCompat_intval($bytes);
-    } catch (TypeError $ex) {
-        throw new TypeError(
-            'random_bytes(): $bytes must be an integer'
-        );
-    }
 
-    if ($bytes < 1) {
-        throw new Error(
-            'Length must be greater than 0'
-        );
-    }
+        try {
+            $bytes = RandomCompat_intval($bytes);
+        } catch (TypeError $ex) {
+            throw new TypeError(
+                'random_bytes(): $bytes must be an integer'
+            );
+        }
 
-    /**
-     * This if() block only runs if we managed to open a file handle
-     * 
-     * It does not belong in an else {} block, because the above 
-     * if (empty($fp)) line is logic that should only be run once per
-     * page load.
-     */
-    if (!empty($fp)) {
-        $remaining = $bytes;
-        $buf = '';
+        if ($bytes < 1) {
+            throw new Error(
+                'Length must be greater than 0'
+            );
+        }
 
         /**
-         * We use fread() in a loop to protect against partial reads
+         * This if() block only runs if we managed to open a file handle
+         *
+         * It does not belong in an else {} block, because the above
+         * if (empty($fp)) line is logic that should only be run once per
+         * page load.
          */
-        do {
-            $read = fread($fp, $remaining); 
-            if ($read === false) {
-                /**
-                 * We cannot safely read from the file. Exit the
-                 * do-while loop and trigger the exception condition
-                 */
-                $buf = false;
-                break;
-            }
+        if (!empty($fp)) {
+            $remaining = $bytes;
+            $buf = '';
+
             /**
-             * Decrease the number of bytes returned from remaining
+             * We use fread() in a loop to protect against partial reads
              */
-            $remaining -= RandomCompat_strlen($read);
-            $buf .= $read;
-        } while ($remaining > 0);
-        
-        /**
-         * Is our result valid?
-         */
-        if ($buf !== false) {
-            if (RandomCompat_strlen($buf) === $bytes) {
+            do {
+                $read = fread($fp, $remaining);
+                if ($read === false) {
+                    /**
+                     * We cannot safely read from the file. Exit the
+                     * do-while loop and trigger the exception condition
+                     */
+                    $buf = false;
+                    break;
+                }
                 /**
-                 * Return our random entropy buffer here:
+                 * Decrease the number of bytes returned from remaining
                  */
-                return $buf;
+                $remaining -= RandomCompat_strlen($read);
+                $buf .= $read;
+            } while ($remaining > 0);
+
+            /**
+             * Is our result valid?
+             */
+            if ($buf !== false) {
+                if (RandomCompat_strlen($buf) === $bytes) {
+                    /**
+                     * Return our random entropy buffer here:
+                     */
+                    return $buf;
+                }
             }
         }
-    }
 
-    /**
-     * If we reach here, PHP has failed us.
-     */
-    throw new Exception(
-        'Error reading from source device'
-    );
+        /**
+         * If we reach here, PHP has failed us.
+         */
+        throw new Exception(
+            'Error reading from source device'
+        );
+    }
 }
--- a/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php
@@ -1,22 +1,22 @@
 <?php
 /**
- * Random_* Compatibility Library 
+ * Random_* Compatibility Library
  * for using the new PHP 7 random_* API in PHP 5 projects
- * 
+ *
  * The MIT License (MIT)
- * 
- * Copyright (c) 2015 Paragon Initiative Enterprises
- * 
+ *
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -26,61 +26,63 @@
  * SOFTWARE.
  */
 
-/**
- * If the libsodium PHP extension is loaded, we'll use it above any other
- * solution.
- *
- * libsodium-php project:
- * @ref https://github.com/jedisct1/libsodium-php
- *
- * @param int $bytes
- *
- * @throws Exception
- *
- * @return string
- */
-function random_bytes($bytes)
-{
-    try {
-        $bytes = RandomCompat_intval($bytes);
-    } catch (TypeError $ex) {
-        throw new TypeError(
-            'random_bytes(): $bytes must be an integer'
-        );
-    }
-
-    if ($bytes < 1) {
-        throw new Error(
-            'Length must be greater than 0'
-        );
-    }
-
+if (!is_callable('random_bytes')) {
     /**
-     * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be
-     * generated in one invocation.
+     * If the libsodium PHP extension is loaded, we'll use it above any other
+     * solution.
+     *
+     * libsodium-php project:
+     * @ref https://github.com/jedisct1/libsodium-php
+     *
+     * @param int $bytes
+     *
+     * @throws Exception
+     *
+     * @return string
      */
-    if ($bytes > 2147483647) {
-        $buf = '';
-        for ($i = 0; $i < $bytes; $i += 1073741824) {
-            $n = ($bytes - $i) > 1073741824
-                ? 1073741824
-                : $bytes - $i;
-            $buf .= \Sodium\randombytes_buf($n);
+    function random_bytes($bytes)
+    {
+        try {
+            $bytes = RandomCompat_intval($bytes);
+        } catch (TypeError $ex) {
+            throw new TypeError(
+                'random_bytes(): $bytes must be an integer'
+            );
         }
-    } else {
-        $buf = \Sodium\randombytes_buf($bytes);
-    }
 
-    if ($buf !== false) {
-        if (RandomCompat_strlen($buf) === $bytes) {
-            return $buf;
+        if ($bytes < 1) {
+            throw new Error(
+                'Length must be greater than 0'
+            );
         }
-    }
 
-    /**
-     * If we reach here, PHP has failed us.
-     */
-    throw new Exception(
-        'Could not gather sufficient random data'
-    );
+        /**
+         * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be
+         * generated in one invocation.
+         */
+        if ($bytes > 2147483647) {
+            $buf = '';
+            for ($i = 0; $i < $bytes; $i += 1073741824) {
+                $n = ($bytes - $i) > 1073741824
+                    ? 1073741824
+                    : $bytes - $i;
+                $buf .= \Sodium\randombytes_buf($n);
+            }
+        } else {
+            $buf = \Sodium\randombytes_buf($bytes);
+        }
+
+        if ($buf !== false) {
+            if (RandomCompat_strlen($buf) === $bytes) {
+                return $buf;
+            }
+        }
+
+        /**
+         * If we reach here, PHP has failed us.
+         */
+        throw new Exception(
+            'Could not gather sufficient random data'
+        );
+    }
 }
--- a/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php
@@ -1,22 +1,22 @@
 <?php
 /**
- * Random_* Compatibility Library 
+ * Random_* Compatibility Library
  * for using the new PHP 7 random_* API in PHP 5 projects
- * 
+ *
  * The MIT License (MIT)
- * 
- * Copyright (c) 2015 Paragon Initiative Enterprises
- * 
+ *
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -26,61 +26,67 @@
  * SOFTWARE.
  */
 
-/**
- * If the libsodium PHP extension is loaded, we'll use it above any other
- * solution.
- *
- * libsodium-php project:
- * @ref https://github.com/jedisct1/libsodium-php
- *
- * @param int $bytes
- *
- * @throws Exception
- *
- * @return string
- */
-function random_bytes($bytes)
-{
-    try {
-        $bytes = RandomCompat_intval($bytes);
-    } catch (TypeError $ex) {
-        throw new TypeError(
-            'random_bytes(): $bytes must be an integer'
-        );
-    }
-
-    if ($bytes < 1) {
-        throw new Error(
-            'Length must be greater than 0'
-        );
-    }
-
+if (!is_callable('random_bytes')) {
     /**
-     * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be
-     * generated in one invocation.
+     * If the libsodium PHP extension is loaded, we'll use it above any other
+     * solution.
+     *
+     * libsodium-php project:
+     * @ref https://github.com/jedisct1/libsodium-php
+     *
+     * @param int $bytes
+     *
+     * @throws Exception
+     *
+     * @return string
      */
-    if ($bytes > 2147483647) {
+    function random_bytes($bytes)
+    {
+        try {
+            $bytes = RandomCompat_intval($bytes);
+        } catch (TypeError $ex) {
+            throw new TypeError(
+                'random_bytes(): $bytes must be an integer'
+            );
+        }
+
+        if ($bytes < 1) {
+            throw new Error(
+                'Length must be greater than 0'
+            );
+        }
+
+        /**
+         * @var string
+         */
         $buf = '';
-        for ($i = 0; $i < $bytes; $i += 1073741824) {
-            $n = ($bytes - $i) > 1073741824
-                ? 1073741824
-                : $bytes - $i;
-            $buf .= Sodium::randombytes_buf($n);
+
+        /**
+         * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be
+         * generated in one invocation.
+         */
+        if ($bytes > 2147483647) {
+            for ($i = 0; $i < $bytes; $i += 1073741824) {
+                $n = ($bytes - $i) > 1073741824
+                    ? 1073741824
+                    : $bytes - $i;
+                $buf .= Sodium::randombytes_buf($n);
+            }
+        } else {
+            $buf .= Sodium::randombytes_buf($bytes);
         }
-    } else {
-        $buf = Sodium::randombytes_buf($bytes);
-    }
 
-    if ($buf !== false) {
-        if (RandomCompat_strlen($buf) === $bytes) {
-            return $buf;
+        if (is_string($buf)) {
+            if (RandomCompat_strlen($buf) === $bytes) {
+                return $buf;
+            }
         }
-    }
 
-    /**
-     * If we reach here, PHP has failed us.
-     */
-    throw new Exception(
-        'Could not gather sufficient random data'
-    );
+        /**
+         * If we reach here, PHP has failed us.
+         */
+        throw new Exception(
+            'Could not gather sufficient random data'
+        );
+    }
 }
--- a/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php
@@ -1,22 +1,22 @@
 <?php
 /**
- * Random_* Compatibility Library 
+ * Random_* Compatibility Library
  * for using the new PHP 7 random_* API in PHP 5 projects
- * 
+ *
  * The MIT License (MIT)
- * 
- * Copyright (c) 2015 Paragon Initiative Enterprises
- * 
+ *
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -26,51 +26,52 @@
  * SOFTWARE.
  */
 
+if (!is_callable('random_bytes')) {
+    /**
+     * Powered by ext/mcrypt (and thankfully NOT libmcrypt)
+     *
+     * @ref https://bugs.php.net/bug.php?id=55169
+     * @ref https://github.com/php/php-src/blob/c568ffe5171d942161fc8dda066bce844bdef676/ext/mcrypt/mcrypt.c#L1321-L1386
+     *
+     * @param int $bytes
+     *
+     * @throws Exception
+     *
+     * @return string
+     */
+    function random_bytes($bytes)
+    {
+        try {
+            $bytes = RandomCompat_intval($bytes);
+        } catch (TypeError $ex) {
+            throw new TypeError(
+                'random_bytes(): $bytes must be an integer'
+            );
+        }
 
-/**
- * Powered by ext/mcrypt (and thankfully NOT libmcrypt)
- * 
- * @ref https://bugs.php.net/bug.php?id=55169
- * @ref https://github.com/php/php-src/blob/c568ffe5171d942161fc8dda066bce844bdef676/ext/mcrypt/mcrypt.c#L1321-L1386
- * 
- * @param int $bytes
- * 
- * @throws Exception
- * 
- * @return string
- */
-function random_bytes($bytes)
-{
-    try {
-        $bytes = RandomCompat_intval($bytes);
-    } catch (TypeError $ex) {
-        throw new TypeError(
-            'random_bytes(): $bytes must be an integer'
-        );
-    }
+        if ($bytes < 1) {
+            throw new Error(
+                'Length must be greater than 0'
+            );
+        }
 
-    if ($bytes < 1) {
-        throw new Error(
-            'Length must be greater than 0'
-        );
-    }
+        $buf = @mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM);
+        if (
+            $buf !== false
+            &&
+            RandomCompat_strlen($buf) === $bytes
+        ) {
+            /**
+             * Return our random entropy buffer here:
+             */
+            return $buf;
+        }
 
-    $buf = @mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM);
-    if (
-        $buf !== false
-        &&
-        RandomCompat_strlen($buf) === $bytes
-    ) {
         /**
-         * Return our random entropy buffer here:
+         * If we reach here, PHP has failed us.
          */
-        return $buf;
+        throw new Exception(
+            'Could not gather sufficient random data'
+        );
     }
-
-    /**
-     * If we reach here, PHP has failed us.
-     */
-    throw new Exception(
-        'Could not gather sufficient random data'
-    );
 }
--- a/vendor/paragonie/random_compat/lib/random_bytes_openssl.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_openssl.php
@@ -63,9 +63,12 @@ function random_bytes($bytes)
      * @ref https://github.com/paragonie/random_compat/issues/6#issuecomment-119564973
      */
     $secure = true;
+    /**
+     * @var string
+     */
     $buf = openssl_random_pseudo_bytes($bytes, $secure);
     if (
-        $buf !== false
+        is_string($buf)
         &&
         $secure
         &&
--- a/vendor/paragonie/random_compat/lib/random_int.php
+++ b/vendor/paragonie/random_compat/lib/random_int.php
@@ -1,191 +1,190 @@
 <?php
-/**
- * Random_* Compatibility Library 
- * for using the new PHP 7 random_* API in PHP 5 projects
- * 
- * The MIT License (MIT)
- * 
- * Copyright (c) 2015 Paragon Initiative Enterprises
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/**
- * Fetch a random integer between $min and $max inclusive
- * 
- * @param int $min
- * @param int $max
- * 
- * @throws Exception
- * 
- * @return int
- */
-function random_int($min, $max)
-{
-    /**
-     * Type and input logic checks
-     * 
-     * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX)
-     * (non-inclusive), it will sanely cast it to an int. If you it's equal to
-     * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats 
-     * lose precision, so the <= and => operators might accidentally let a float
-     * through.
-     */
-    
-    try {
-        $min = RandomCompat_intval($min);
-    } catch (TypeError $ex) {
-        throw new TypeError(
-            'random_int(): $min must be an integer'
-        );
-    }
 
-    try {
-        $max = RandomCompat_intval($max);
-    } catch (TypeError $ex) {
-        throw new TypeError(
-            'random_int(): $max must be an integer'
-        );
-    }
-    
+if (!is_callable('random_int')) {
     /**
-     * Now that we've verified our weak typing system has given us an integer,
-     * let's validate the logic then we can move forward with generating random
-     * integers along a given range.
+     * Random_* Compatibility Library
+     * for using the new PHP 7 random_* API in PHP 5 projects
+     *
+     * The MIT License (MIT)
+     *
+     * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
+     *
+     * Permission is hereby granted, free of charge, to any person obtaining a copy
+     * of this software and associated documentation files (the "Software"), to deal
+     * in the Software without restriction, including without limitation the rights
+     * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+     * copies of the Software, and to permit persons to whom the Software is
+     * furnished to do so, subject to the following conditions:
+     *
+     * The above copyright notice and this permission notice shall be included in
+     * all copies or substantial portions of the Software.
+     *
+     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+     * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+     * SOFTWARE.
      */
-    if ($min > $max) {
-        throw new Error(
-            'Minimum value must be less than or equal to the maximum value'
-        );
-    }
-
-    if ($max === $min) {
-        return $min;
-    }
 
     /**
-     * Initialize variables to 0
-     * 
-     * We want to store:
-     * $bytes => the number of random bytes we need
-     * $mask => an integer bitmask (for use with the &) operator
-     *          so we can minimize the number of discards
+     * Fetch a random integer between $min and $max inclusive
+     *
+     * @param int $min
+     * @param int $max
+     *
+     * @throws Exception
+     *
+     * @return int
      */
-    $attempts = $bits = $bytes = $mask = $valueShift = 0;
-
-    /**
-     * At this point, $range is a positive number greater than 0. It might
-     * overflow, however, if $max - $min > PHP_INT_MAX. PHP will cast it to
-     * a float and we will lose some precision.
-     */
-    $range = $max - $min;
-
-    /**
-     * Test for integer overflow:
-     */
-    if (!is_int($range)) {
-
+    function random_int($min, $max)
+    {
         /**
-         * Still safely calculate wider ranges.
-         * Provided by @CodesInChaos, @oittaa
-         * 
-         * @ref https://gist.github.com/CodesInChaos/03f9ea0b58e8b2b8d435
-         * 
-         * We use ~0 as a mask in this case because it generates all 1s
-         * 
-         * @ref https://eval.in/400356 (32-bit)
-         * @ref http://3v4l.org/XX9r5  (64-bit)
+         * Type and input logic checks
+         *
+         * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX)
+         * (non-inclusive), it will sanely cast it to an int. If you it's equal to
+         * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats
+         * lose precision, so the <= and => operators might accidentally let a float
+         * through.
          */
-        $bytes = PHP_INT_SIZE;
-        $mask = ~0;
 
-    } else {
+        try {
+            $min = RandomCompat_intval($min);
+        } catch (TypeError $ex) {
+            throw new TypeError(
+                'random_int(): $min must be an integer'
+            );
+        }
 
-        /**
-         * $bits is effectively ceil(log($range, 2)) without dealing with 
-         * type juggling
-         */
-        while ($range > 0) {
-            if ($bits % 8 === 0) {
-               ++$bytes;
-            }
-            ++$bits;
-            $range >>= 1;
-            $mask = $mask << 1 | 1;
+        try {
+            $max = RandomCompat_intval($max);
+        } catch (TypeError $ex) {
+            throw new TypeError(
+                'random_int(): $max must be an integer'
+            );
         }
-        $valueShift = $min;
-    }
 
-    /**
-     * Now that we have our parameters set up, let's begin generating
-     * random integers until one falls between $min and $max
-     */
-    do {
         /**
-         * The rejection probability is at most 0.5, so this corresponds
-         * to a failure probability of 2^-128 for a working RNG
+         * Now that we've verified our weak typing system has given us an integer,
+         * let's validate the logic then we can move forward with generating random
+         * integers along a given range.
          */
-        if ($attempts > 128) {
-            throw new Exception(
-                'random_int: RNG is broken - too many rejections'
+        if ($min > $max) {
+            throw new Error(
+                'Minimum value must be less than or equal to the maximum value'
             );
         }
 
+        if ($max === $min) {
+            return $min;
+        }
+
         /**
-         * Let's grab the necessary number of random bytes
+         * Initialize variables to 0
+         *
+         * We want to store:
+         * $bytes => the number of random bytes we need
+         * $mask => an integer bitmask (for use with the &) operator
+         *          so we can minimize the number of discards
          */
-        $randomByteString = random_bytes($bytes);
-        if ($randomByteString === false) {
-            throw new Exception(
-                'Random number generator failure'
-            );
-        }
+        $attempts = $bits = $bytes = $mask = $valueShift = 0;
 
         /**
-         * Let's turn $randomByteString into an integer
-         * 
-         * This uses bitwise operators (<< and |) to build an integer
-         * out of the values extracted from ord()
-         * 
-         * Example: [9F] | [6D] | [32] | [0C] =>
-         *   159 + 27904 + 3276800 + 201326592 =>
-         *   204631455
+         * At this point, $range is a positive number greater than 0. It might
+         * overflow, however, if $max - $min > PHP_INT_MAX. PHP will cast it to
+         * a float and we will lose some precision.
          */
-        $val = 0;
-        for ($i = 0; $i < $bytes; ++$i) {
-            $val |= ord($randomByteString[$i]) << ($i * 8);
-        }
+        $range = $max - $min;
 
         /**
-         * Apply mask
+         * Test for integer overflow:
          */
-        $val &= $mask;
-        $val += $valueShift;
+        if (!is_int($range)) {
+
+            /**
+             * Still safely calculate wider ranges.
+             * Provided by @CodesInChaos, @oittaa
+             *
+             * @ref https://gist.github.com/CodesInChaos/03f9ea0b58e8b2b8d435
+             *
+             * We use ~0 as a mask in this case because it generates all 1s
+             *
+             * @ref https://eval.in/400356 (32-bit)
+             * @ref http://3v4l.org/XX9r5  (64-bit)
+             */
+            $bytes = PHP_INT_SIZE;
+            $mask = ~0;
 
-        ++$attempts;
+        } else {
+
+            /**
+             * $bits is effectively ceil(log($range, 2)) without dealing with
+             * type juggling
+             */
+            while ($range > 0) {
+                if ($bits % 8 === 0) {
+                    ++$bytes;
+                }
+                ++$bits;
+                $range >>= 1;
+                $mask = $mask << 1 | 1;
+            }
+            $valueShift = $min;
+        }
+
+        $val = 0;
         /**
-         * If $val overflows to a floating point number,
-         * ... or is larger than $max,
-         * ... or smaller than $min,
-         * then try again.
+         * Now that we have our parameters set up, let's begin generating
+         * random integers until one falls between $min and $max
          */
-    } while (!is_int($val) || $val > $max || $val < $min);
+        do {
+            /**
+             * The rejection probability is at most 0.5, so this corresponds
+             * to a failure probability of 2^-128 for a working RNG
+             */
+            if ($attempts > 128) {
+                throw new Exception(
+                    'random_int: RNG is broken - too many rejections'
+                );
+            }
+
+            /**
+             * Let's grab the necessary number of random bytes
+             */
+            $randomByteString = random_bytes($bytes);
 
-    return (int) $val;
+            /**
+             * Let's turn $randomByteString into an integer
+             *
+             * This uses bitwise operators (<< and |) to build an integer
+             * out of the values extracted from ord()
+             *
+             * Example: [9F] | [6D] | [32] | [0C] =>
+             *   159 + 27904 + 3276800 + 201326592 =>
+             *   204631455
+             */
+            $val &= 0;
+            for ($i = 0; $i < $bytes; ++$i) {
+                $val |= ord($randomByteString[$i]) << ($i * 8);
+            }
+
+            /**
+             * Apply mask
+             */
+            $val &= $mask;
+            $val += $valueShift;
+
+            ++$attempts;
+            /**
+             * If $val overflows to a floating point number,
+             * ... or is larger than $max,
+             * ... or smaller than $min,
+             * then try again.
+             */
+        } while (!is_int($val) || $val > $max || $val < $min);
+
+        return (int)$val;
+    }
 }
--- /dev/null
+++ b/vendor/paragonie/random_compat/psalm-autoload.php
@@ -0,0 +1,9 @@
+<?php
+
+require_once 'lib/byte_safe_strings.php';
+require_once 'lib/cast_to_int.php';
+require_once 'lib/error_polyfill.php';
+require_once 'other/ide_stubs/libsodium.php';
+require_once 'lib/random.php';
+
+$int = random_int(0, 65536);
--- /dev/null
+++ b/vendor/paragonie/random_compat/psalm.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<psalm
+    autoloader="psalm-autoload.php"
+    stopOnFirstError="false"
+    useDocblockTypes="true"
+>
+    <projectFiles>
+        <directory name="lib" />
+    </projectFiles>
+    <issueHandlers>
+        <InvalidOperand errorLevel="info" />
+        <UndefinedConstant errorLevel="info" />
+        <MissingReturnType errorLevel="info" />
+    </issueHandlers>
+</psalm>
--- a/vendor/react/promise/composer.json
+++ b/vendor/react/promise/composer.json
@@ -8,6 +8,9 @@
     "require": {
         "php": ">=5.4.0"
     },
+    "require-dev": {
+        "phpunit/phpunit": "~4.8"
+    },
     "autoload": {
         "psr-4": {
             "React\\Promise\\": "src/"
@@ -19,9 +22,8 @@
             "React\\Promise\\": "tests/fixtures"
         }
     },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.0-dev"
-        }
-    }
+    "keywords": [
+        "promise",
+        "promises"
+    ]
 }
--- a/vendor/react/promise/src/LazyPromise.php
+++ b/vendor/react/promise/src/LazyPromise.php
@@ -42,7 +42,11 @@ class LazyPromise implements ExtendedPromiseInterface, CancellablePromiseInterfa
         return $this->promise()->cancel();
     }
 
-    private function promise()
+    /**
+     * @internal
+     * @see Promise::settle()
+     */
+    public function promise()
     {
         if (null === $this->promise) {
             try {
--- a/vendor/react/promise/src/Promise.php
+++ b/vendor/react/promise/src/Promise.php
@@ -22,7 +22,7 @@ class Promise implements ExtendedPromiseInterface, CancellablePromiseInterface
     public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
     {
         if (null !== $this->result) {
-            return $this->result()->then($onFulfilled, $onRejected, $onProgress);
+            return $this->result->then($onFulfilled, $onRejected, $onProgress);
         }
 
         if (null === $this->canceller) {
@@ -43,7 +43,7 @@ class Promise implements ExtendedPromiseInterface, CancellablePromiseInterface
     public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
     {
         if (null !== $this->result) {
-            return $this->result()->done($onFulfilled, $onRejected, $onProgress);
+            return $this->result->done($onFulfilled, $onRejected, $onProgress);
         }
 
         $this->handlers[] = function (ExtendedPromiseInterface $promise) use ($onFulfilled, $onRejected) {
@@ -155,6 +155,8 @@ class Promise implements ExtendedPromiseInterface, CancellablePromiseInterface
 
     private function settle(ExtendedPromiseInterface $promise)
     {
+        $promise = $this->unwrap($promise);
+
         $handlers = $this->handlers;
 
         $this->progressHandlers = $this->handlers = [];
@@ -165,13 +167,30 @@ class Promise implements ExtendedPromiseInterface, CancellablePromiseInterface
         }
     }
 
-    private function result()
+    private function unwrap($promise)
+    {
+        $promise = $this->extract($promise);
+
+        while ($promise instanceof self && null !== $promise->result) {
+            $promise = $this->extract($promise->result);
+        }
+
+        return $promise;
+    }
+
+    private function extract($promise)
     {
-        while ($this->result instanceof self && null !== $this->result->result) {
-            $this->result = $this->result->result;
+        if ($promise instanceof LazyPromise) {
+            $promise = $promise->promise();
+        }
+
+        if ($promise === $this) {
+            return new RejectedPromise(
+                new \LogicException('Cannot resolve a promise with itself.')
+            );
         }
 
-        return $this->result;
+        return $promise;
     }
 
     private function call(callable $callback)
--- a/vendor/react/promise/src/functions.php
+++ b/vendor/react/promise/src/functions.php
@@ -54,21 +54,11 @@ function race($promisesOrValues)
                     return;
                 }
 
-                $fulfiller = function ($value) use ($cancellationQueue, $resolve) {
-                    $cancellationQueue();
-                    $resolve($value);
-                };
-
-                $rejecter = function ($reason) use ($cancellationQueue, $reject) {
-                    $cancellationQueue();
-                    $reject($reason);
-                };
-
                 foreach ($array as $promiseOrValue) {
                     $cancellationQueue->enqueue($promiseOrValue);
 
                     resolve($promiseOrValue)
-                        ->done($fulfiller, $rejecter, $notify);
+                        ->done($resolve, $reject, $notify);
                 }
             }, $reject, $notify);
     }, $cancellationQueue);
@@ -115,7 +105,7 @@ function some($promisesOrValues, $howMany)
                 $reasons   = [];
 
                 foreach ($array as $i => $promiseOrValue) {
-                    $fulfiller = function ($val) use ($i, &$values, &$toResolve, $toReject, $resolve, $cancellationQueue) {
+                    $fulfiller = function ($val) use ($i, &$values, &$toResolve, $toReject, $resolve) {
                         if ($toResolve < 1 || $toReject < 1) {
                             return;
                         }
@@ -123,12 +113,11 @@ function some($promisesOrValues, $howMany)
                         $values[$i] = $val;
 
                         if (0 === --$toResolve) {
-                            $cancellationQueue();
                             $resolve($values);
                         }
                     };
 
-                    $rejecter = function ($reason) use ($i, &$reasons, &$toReject, $toResolve, $reject, $cancellationQueue) {
+                    $rejecter = function ($reason) use ($i, &$reasons, &$toReject, $toResolve, $reject) {
                         if ($toResolve < 1 || $toReject < 1) {
                             return;
                         }
@@ -136,7 +125,6 @@ function some($promisesOrValues, $howMany)
                         $reasons[$i] = $reason;
 
                         if (0 === --$toReject) {
-                            $cancellationQueue();
                             $reject($reasons);
                         }
                     };
@@ -168,6 +156,7 @@ function map($promisesOrValues, callable $mapFunc)
 
                 foreach ($array as $i => $promiseOrValue) {
                     $cancellationQueue->enqueue($promiseOrValue);
+                    $values[$i] = null;
 
                     resolve($promiseOrValue)
                         ->then($mapFunc)
--- a/vendor/s9e/text-formatter/LICENSE
+++ b/vendor/s9e/text-formatter/LICENSE
@@ -1,6 +1,6 @@
 The MIT License (MIT)
 
-Copyright (c) 2010-2016 The s9e Authors
+Copyright (c) 2010-2017 The s9e Authors
 
 Permission is hereby granted, free of charge, to any person obtaining a copy of
 this software and associated documentation files (the "Software"), to deal in
--- a/vendor/s9e/text-formatter/composer.json
+++ b/vendor/s9e/text-formatter/composer.json
@@ -1,6 +1,6 @@
 {
 	"name": "s9e/text-formatter",
-	"version": "0.8.4",
+	"version": "0.10.1",
 	"type": "library",
 	"description": "Multi-purpose text formatting and markup library. Plugins offer support for BBCodes, Markdown, emoticons, HTML, embedding media (YouTube, etc...), enhanced typography and more.",
 	"homepage": "https://github.com/s9e/TextFormatter/",
@@ -12,6 +12,11 @@
 		"ext-filter": "*",
 		"lib-pcre":   ">=7.2"
 	},
+	"require-dev": {
+		"php":                   ">=5.3.3",
+		"matthiasmullie/minify": "*",
+		"s9e/regexp-builder":    ">=1.3.0"
+	},
 	"suggest": {
 		"ext-curl":      "Improves the performance of the MediaEmbed plugin and some JavaScript minifiers",
 		"ext-intl":      "Allows international URLs to be accepted by the URL filter",
@@ -25,5 +30,10 @@
 		"psr-4": {
 			"s9e\\TextFormatter\\": "src"
 		}
+	},
+	"autoload-dev": {
+		"psr-4": {
+			"s9e\\TextFormatter\\Tests\\": "tests"
+		}
 	}
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Bundle.php
+++ b/vendor/s9e/text-formatter/src/Bundle.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter;
--- a/vendor/s9e/text-formatter/src/Bundles/Fatdown.php
+++ b/vendor/s9e/text-formatter/src/Bundles/Fatdown.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Bundles;
@@ -12,7 +12,7 @@ abstract class Fatdown extends \s9e\TextFormatter\Bundle
 	protected static $renderer;
 	public static function getParser()
 	{
-		return \unserialize('O:24:"s9e\\TextFormatter\\Parser":4:{s:16:"' . "\0" . '*' . "\0" . 'pluginsConfig";a:10:{s:9:"Autoemail";a:5:{s:8:"attrName";s:5:"email";s:10:"quickMatch";s:1:"@";s:6:"regexp";s:39:"/\\b[-a-z0-9_+.]+@[-a-z0-9.]*[a-z0-9]/Si";s:7:"tagName";s:5:"EMAIL";s:11:"regexpLimit";i:10000;}s:8:"Autolink";a:5:{s:8:"attrName";s:3:"url";s:6:"regexp";s:117:"#\\b(?:ftp|https?)://\\S(?>[^\\s\\[\\]\\x{FF01}-\\x{FF0F}\\x{FF1A}-\\x{FF20}\\x{FF3B}-\\x{FF40}\\x{FF5B}-\\x{FF65}]|\\[\\w*\\])++#Siu";s:7:"tagName";s:3:"URL";s:10:"quickMatch";s:3:"://";s:11:"regexpLimit";i:10000;}s:7:"Escaper";a:4:{s:10:"quickMatch";s:1:"\\";s:6:"regexp";s:29:"/\\\\[-!#()*+.:<>@[\\\\\\]^_`{|}]/";s:7:"tagName";s:3:"ESC";s:11:"regexpLimit";i:10000;}s:10:"FancyPants";a:2:{s:8:"attrName";s:4:"char";s:7:"tagName";s:2:"FP";}s:12:"HTMLComments";a:5:{s:8:"attrName";s:7:"content";s:10:"quickMatch";s:4:"<!--";s:6:"regexp";s:22:"/<!--(?!\\[if).*?-->/is";s:7:"tagName";s:2:"HC";s:11:"regexpLimit";i:10000;}s:12:"HTMLElements";a:5:{s:10:"quickMatch";s:1:"<";s:6:"prefix";s:4:"html";s:6:"regexp";s:393:"#<(?>/((?:a(?>bbr)?|br?|code|d(?>[dlt]|el|iv)|em|hr|i(?>mg|ns)?|li|ol|pre|r(?:[bp]|tc?|uby)|s(?>(?>pan|trong|u[bp]))?|t(?:[dr]|able|body|foot|h(?>ead)?)|ul?))|((?:a(?>bbr)?|br?|code|d(?>[dlt]|el|iv)|em|hr|i(?>mg|ns)?|li|ol|pre|r(?:[bp]|tc?|uby)|s(?>(?>pan|trong|u[bp]))?|t(?:[dr]|able|body|foot|h(?>ead)?)|ul?))((?>\\s+[a-z][-a-z0-9]*(?>\\s*=\\s*(?>"[^"]*"|\'[^\']*\'|[^\\s"\'=<>`]+))?)*+)\\s*/?)\\s*>#i";s:7:"aliases";a:6:{s:1:"a";a:2:{s:0:"";s:3:"URL";s:4:"href";s:3:"url";}s:2:"hr";a:1:{s:0:"";s:2:"HR";}s:2:"em";a:1:{s:0:"";s:2:"EM";}s:1:"s";a:1:{s:0:"";s:1:"S";}s:6:"strong";a:1:{s:0:"";s:6:"STRONG";}s:3:"sup";a:1:{s:0:"";s:3:"SUP";}}s:11:"regexpLimit";i:10000;}s:12:"HTMLEntities";a:5:{s:8:"attrName";s:4:"char";s:10:"quickMatch";s:1:"&";s:6:"regexp";s:38:"/&(?>[a-z]+|#(?>[0-9]+|x[0-9a-f]+));/i";s:7:"tagName";s:2:"HE";s:11:"regexpLimit";i:10000;}s:8:"Litedown";a:1:{s:18:"decodeHtmlEntities";b:1;}s:10:"MediaEmbed";a:4:{s:10:"quickMatch";s:1:":";s:6:"regexp";s:39:"/\\b(?>spotify:|https?:\\/\\/)[^["\'\\s]+/Si";s:7:"tagName";s:5:"MEDIA";s:11:"regexpLimit";i:10000;}s:10:"PipeTables";a:3:{s:16:"overwriteEscapes";b:1;s:17:"overwriteMarkdown";b:1;s:10:"quickMatch";s:1:"|";}}s:14:"registeredVars";a:2:{s:9:"urlConfig";a:1:{s:14:"allowedSchemes";s:20:"/^(?:ftp|https?)$/Di";}s:10:"mediasites";a:13:{s:12:"bandcamp.com";s:8:"bandcamp";s:15:"dailymotion.com";s:11:"dailymotion";s:12:"facebook.com";s:8:"facebook";s:12:"liveleak.com";s:8:"liveleak";s:14:"soundcloud.com";s:10:"soundcloud";s:16:"open.spotify.com";s:7:"spotify";s:16:"play.spotify.com";s:7:"spotify";s:8:"spotify:";s:7:"spotify";s:9:"twitch.tv";s:6:"twitch";s:9:"vimeo.com";s:5:"vimeo";s:7:"vine.co";s:4:"vine";s:11:"youtube.com";s:7:"youtube";s:8:"youtu.be";s:7:"youtube";}}s:14:"' . "\0" . '*' . "\0" . 'rootContext";a:2:{s:7:"allowed";a:2:{i:0;i:65335;i:1;i:65520;}s:5:"flags";i:8;}s:13:"' . "\0" . '*' . "\0" . 'tagsConfig";a:73:{s:8:"BANDCAMP";a:7:{s:10:"attributes";a:4:{s:8:"album_id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"!^\\d+$!D";}}}s:8:"required";b:0;}s:8:"track_id";R:90;s:9:"track_num";R:90;s:3:"url";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:50:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterUrl";s:6:"params";a:3:{s:9:"attrValue";N;s:9:"urlConfig";N;s:6:"logger";N;}}}s:8:"required";b:0;}}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:23:"!bandcamp\\.com/album/.!";i:1;s:25:"!/album=(?\'album_id\'\\d+)!";i:2;a:1:{i:0;s:8:"album_id";}}i:1;a:3:{i:0;s:23:"!bandcamp\\.com/track/.!";i:1;a:3:{i:0;s:29:"!"album_id":(?\'album_id\'\\d+)!";i:1;s:31:"!"track_num":(?\'track_num\'\\d+)!";i:2;s:25:"!/track=(?\'track_id\'\\d+)!";}i:2;a:3:{i:0;s:8:"album_id";i:1;s:8:"track_id";i:2;s:9:"track_num";}}}s:8:"cacheDir";N;}}i:1;a:2:{s:8:"callback";s:42:"s9e\\TextFormatter\\Parser::filterAttributes";s:6:"params";a:4:{s:3:"tag";N;s:9:"tagConfig";N;s:14:"registeredVars";N;s:6:"logger";N;}}i:2;a:2:{s:8:"callback";s:67:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::hasNonDefaultAttribute";s:6:"params";a:1:{s:3:"tag";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3093;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";a:2:{i:0;i:65329;i:1;i:65472;}}s:1:"C";a:6:{s:11:"filterChain";a:1:{i:0;R:129;}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:66;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:2:{i:0;i:0;i:1;i:0;}}s:4:"CODE";a:7:{s:10:"attributes";a:1:{s:4:"lang";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:57:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterSimpletext";s:6:"params";a:1:{s:9:"attrValue";N;}}}s:8:"required";b:0;}}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";a:10:{s:1:"C";i:1;s:2:"EM";i:1;s:6:"STRONG";i:1;s:3:"URL";i:1;s:5:"EMAIL";i:1;s:6:"html:b";i:1;s:9:"html:code";i:1;s:6:"html:i";i:1;s:11:"html:strong";i:1;s:6:"html:u";i:1;}s:5:"flags";i:4436;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:155;}s:11:"DAILYMOTION";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^[A-Za-z0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:98;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:94:"!dailymotion\\.com/(?:live/|swf/|user/[^#]+#video=|(?:related/\\d+/)?video/)(?\'id\'[A-Za-z0-9]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'[A-Za-z0-9]+)$!D";i:2;R:197;}}s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:55:"s9e\\TextFormatter\\Parser::executeAttributePreprocessors";s:6:"params";a:2:{s:3:"tag";N;s:9:"tagConfig";N;}}i:1;R:129;}s:12:"nestingLimit";i:10;s:5:"rules";R:141;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";R:145;}s:3:"DEL";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:512;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:83;}s:2:"EM";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:2;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:2:{i:0;i:65329;i:1;i:65488;}}s:5:"EMAIL";a:7:{s:10:"attributes";a:1:{s:5:"email";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:52:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterEmail";s:6:"params";R:164;}}s:8:"required";b:1;}}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:514;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";a:2:{i:0;i:61223;i:1;i:7952;}}s:3:"ESC";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:1616;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:5;s:7:"allowed";R:155;}s:8:"FACEBOOK";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"@^\\d+$@D";}}}s:8:"required";b:1;}s:4:"type";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"#^video$#D";}}}s:8:"required";b:0;}s:3:"url";R:98;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:135:"@/(?!(?:apps|developers|graph)\\.)[-\\w.]*facebook\\.com/(?:[/\\w]+/permalink|(?!pages/|groups/).*?)(?:/|fbid=|\\?v=)(?\'id\'\\d+)(?=$|[/?&#])@";i:2;R:197;}i:1;a:3:{i:0;s:3:"url";i:1;s:20:"#/(?\'type\'video)s?/#";i:2;a:2:{i:0;s:0:"";i:1;s:4:"type";}}i:2;a:3:{i:0;s:3:"url";i:1;s:15:"@^(?\'id\'\\d+)$@D";i:2;R:197;}}s:11:"filterChain";R:203;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3089;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";a:2:{i:0;i:65329;i:1;i:65408;}}s:2:"FP";a:7:{s:10:"attributes";a:1:{s:4:"char";a:1:{s:8:"required";b:1;}}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:280;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:224;}s:2:"H1";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:169;s:5:"flags";i:260;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:2;s:7:"allowed";R:224;}s:2:"H2";R:294;s:2:"H3";R:294;s:2:"H4";R:294;s:2:"H5";R:294;s:2:"H6";R:294;s:2:"HC";a:7:{s:10:"attributes";a:1:{s:7:"content";R:289;}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3153;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:5;s:7:"allowed";R:155;}s:2:"HE";R:287;s:2:"HR";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3349;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:224;}s:3:"IMG";a:7:{s:10:"attributes";a:3:{s:3:"alt";a:1:{s:8:"required";b:0;}s:3:"src";a:2:{s:11:"filterChain";R:99;s:8:"required";b:1;}s:5:"title";R:315;}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:280;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:224;}s:2:"LI";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:169;s:11:"closeParent";a:2:{s:2:"LI";i:1;s:7:"html:li";i:1;}s:5:"flags";i:264;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:3;s:7:"allowed";R:83;}s:4:"LIST";a:7:{s:10:"attributes";a:2:{s:5:"start";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterUint";s:6:"params";R:164;}}s:8:"required";b:0;}s:4:"type";R:160;}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:169;s:5:"flags";i:3460;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:2:{i:0;i:65320;i:1;i:65296;}}s:8:"LIVELEAK";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"!^[a-f_0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:98;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!liveleak\\.com/view\\?i=(?\'id\'[a-f_0-9]+)!";i:2;R:197;}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"!^(?\'id\'[a-f_0-9]+)$!D";i:2;R:197;}}s:11:"filterChain";R:203;s:12:"nestingLimit";i:10;s:5:"rules";R:141;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";R:145;}s:5:"MEDIA";a:6:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:54:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::filterTag";s:6:"params";a:3:{s:3:"tag";N;s:6:"parser";N;s:10:"mediasites";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:513;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:12;s:7:"allowed";a:2:{i:0;i:65335;i:1;i:65504;}}s:5:"QUOTE";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:169;s:5:"flags";i:268;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:83;}s:10:"SOUNDCLOUD";a:8:{s:10:"attributes";a:5:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:83:"@^(?:https?://(?:api\\.)?soundcloud\\.com/(?!pages/)[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)$@D";}}}s:8:"required";b:1;}s:11:"playlist_id";a:2:{s:11:"filterChain";R:251;s:8:"required";b:0;}s:12:"secret_token";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"@^[-\\w]+$@D";}}}s:8:"required";b:0;}s:8:"track_id";R:398;s:3:"url";R:98;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:83:"@(?\'id\'https?://(?:api\\.)?soundcloud\\.com/(?!pages/)[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)@";i:2;R:197;}i:1;a:3:{i:0;s:3:"url";i:1;s:52:"@api\\.soundcloud\\.com/playlists/(?\'playlist_id\'\\d+)@";i:2;a:2:{i:0;s:0:"";i:1;s:11:"playlist_id";}}i:2;a:3:{i:0;s:3:"url";i:1;s:89:"@api\\.soundcloud\\.com/tracks/(?\'track_id\'\\d+)(?:\\?secret_token=(?\'secret_token\'[-\\w]+))?@";i:2;a:3:{i:0;s:0:"";i:1;s:8:"track_id";i:2;s:12:"secret_token";}}i:3;a:3:{i:0;s:3:"url";i:1;s:81:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/(?=s-)(?\'secret_token\'[-\\w]+)@";i:2;a:2:{i:0;s:0:"";i:1;s:12:"secret_token";}}i:4;a:3:{i:0;s:3:"url";i:1;s:90:"@^(?\'id\'(?:https?://(?:api\\.)?soundcloud\\.com/(?!pages/)[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$))$@D";i:2;R:197;}}s:11:"filterChain";a:3:{i:0;R:204;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:54:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/s-@";i:1;s:36:"@soundcloud:tracks:(?\'track_id\'\\d+)@";i:2;a:1:{i:0;s:8:"track_id";}}i:1;a:3:{i:0;s:27:"@soundcloud\\.com/\\w+/sets/@";i:1;s:44:"@soundcloud://playlists:(?\'playlist_id\'\\d+)@";i:2;a:1:{i:0;s:11:"playlist_id";}}}s:8:"cacheDir";N;}}i:2;R:129;}s:12:"nestingLimit";i:10;s:5:"rules";R:280;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:15;s:7:"allowed";a:2:{i:0;i:65329;i:1;i:65344;}}s:7:"SPOTIFY";a:8:{s:10:"attributes";a:3:{s:4:"path";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:44:"!^(?:(?:album|artist|track|user)/[-/\\w]+)$!D";}}}s:8:"required";b:0;}s:3:"uri";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:61:"!^(?:spotify:(?:album|artist|user|track(?:set)?):[-,:\\w]+)$!D";}}}s:8:"required";b:0;}s:3:"url";R:98;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:62:"!(?\'uri\'spotify:(?:album|artist|user|track(?:set)?):[-,:\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:3:"uri";}}i:1;a:3:{i:0;s:3:"url";i:1;s:74:"!(?:open|play)\\.spotify\\.com/(?\'path\'(?:album|artist|track|user)/[-/\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:4:"path";}}}s:11:"filterChain";a:3:{i:0;R:204;i:1;R:129;i:2;R:136;}s:12:"nestingLimit";i:10;s:5:"rules";R:141;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";R:145;}s:6:"STRONG";R:218;s:3:"SUP";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:0;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:224;}s:5:"TABLE";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:339;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:2:{i:0;i:65376;i:1;i:65297;}}s:5:"TBODY";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:169;s:11:"closeParent";a:11:{s:5:"TBODY";i:1;s:2:"TD";i:1;s:2:"TH";i:1;s:5:"THEAD";i:1;s:2:"TR";i:1;s:10:"html:tbody";i:1;s:7:"html:td";i:1;s:10:"html:tfoot";i:1;s:7:"html:th";i:1;s:10:"html:thead";i:1;s:7:"html:tr";i:1;}s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:6;s:7:"allowed";a:2:{i:0;i:65312;i:1;i:65297;}}s:2:"TD";a:7:{s:10:"attributes";a:1:{s:5:"align";a:2:{s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:10:"strtolower";s:6:"params";R:164;}i:1;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:34:"/^(?>center|justify|left|right)$/D";}}}s:8:"required";b:0;}}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:169;s:11:"closeParent";a:4:{s:2:"TD";i:1;s:2:"TH";i:1;s:7:"html:td";i:1;s:7:"html:th";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";R:83;}s:2:"TH";a:7:{s:10:"attributes";R:527;s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:539;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";a:2:{i:0;i:64307;i:1;i:65520;}}s:5:"THEAD";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:169;s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:6;s:7:"allowed";R:523;}s:2:"TR";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:169;s:11:"closeParent";a:6:{s:2:"TD";i:1;s:2:"TH";i:1;s:2:"TR";i:1;s:7:"html:td";i:1;s:7:"html:th";i:1;s:7:"html:tr";i:1;}s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:8;s:7:"allowed";a:2:{i:0;i:65440;i:1;i:65296;}}s:6:"TWITCH";a:8:{s:10:"attributes";a:7:{s:10:"archive_id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\d+$#D";}}}s:8:"required";b:0;}s:7:"channel";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\w+$#D";}}}s:8:"required";b:0;}s:10:"chapter_id";R:579;s:7:"clip_id";R:587;s:1:"t";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:27:"#^(?:(?:\\d+h)?\\d+m)?\\d+s$#D";}}}s:8:"required";b:0;}s:3:"url";R:98;s:8:"video_id";R:579;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:96:"#twitch\\.tv/(?\'channel\'\\w+)(?:/b/(?\'archive_id\'\\d+)|/c/(?\'chapter_id\'\\d+)|/v/(?\'video_id\'\\d+))?#";i:2;a:5:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:10:"archive_id";i:3;s:10:"chapter_id";i:4;s:8:"video_id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:32:"#t=(?\'t\'(?:(?:\\d+h)?\\d+m)?\\d+s)#";i:2;a:2:{i:0;s:0:"";i:1;s:1:"t";}}i:2;a:3:{i:0;s:3:"url";i:1;s:51:"#clips\\.twitch\\.tv/(?\'channel\'\\w+)/(?\'clip_id\'\\w+)#";i:2;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:7:"clip_id";}}}s:11:"filterChain";R:488;s:12:"nestingLimit";i:10;s:5:"rules";R:141;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";R:145;}s:3:"URL";a:7:{s:10:"attributes";a:2:{s:5:"title";R:315;s:3:"url";R:317;}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:235;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:239;}s:5:"VIMEO";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";R:91;s:8:"required";b:1;}s:3:"url";R:98;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!vimeo\\.com/(?:channels/[^/]+/|video/)?(?\'id\'\\d+)!";i:2;R:197;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"!^(?\'id\'\\d+)$!D";i:2;R:197;}}s:11:"filterChain";R:203;s:12:"nestingLimit";i:10;s:5:"rules";R:141;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";R:145;}s:4:"VINE";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^[^/]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:98;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:25:"!vine\\.co/v/(?\'id\'[^/]+)!";i:2;R:197;}i:1;a:3:{i:0;s:3:"url";i:1;s:17:"!^(?\'id\'[^/]+)$!D";i:2;R:197;}}s:11:"filterChain";R:203;s:12:"nestingLimit";i:10;s:5:"rules";R:141;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";R:145;}s:7:"YOUTUBE";a:8:{s:10:"attributes";a:7:{s:1:"h";R:90;s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^[-\\w]+$!D";}}}s:8:"required";b:1;}s:4:"list";a:2:{s:11:"filterChain";R:671;s:8:"required";b:0;}s:1:"m";R:90;s:1:"s";R:90;s:1:"t";R:90;s:3:"url";R:98;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:45:"!youtube\\.com/(?:watch.*?v=|v/)(?\'id\'[-\\w]+)!";i:2;R:197;}i:1;a:3:{i:0;s:3:"url";i:1;s:25:"!youtu\\.be/(?\'id\'[-\\w]+)!";i:2;R:197;}i:2;a:3:{i:0;s:3:"url";i:1;s:57:"![#&?]t=(?:(?:(?\'h\'\\d+)h)?(?\'m\'\\d+)m(?\'s\'\\d+)|(?\'t\'\\d+))!";i:2;a:5:{i:0;s:0:"";i:1;s:1:"h";i:2;s:1:"m";i:3;s:1:"s";i:4;s:1:"t";}}i:3;a:3:{i:0;s:3:"url";i:1;s:23:"!&list=(?\'list\'[-\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:4:"list";}}i:4;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'[-\\w]+)$!D";i:2;R:197;}}s:11:"filterChain";R:203;s:12:"nestingLimit";i:10;s:5:"rules";R:141;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";R:145;}s:9:"html:abbr";a:7:{s:10:"attributes";a:1:{s:5:"title";R:315;}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:494;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:224;}s:6:"html:b";R:218;s:7:"html:br";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3201;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:2:{i:0;i:65312;i:1;i:65296;}}s:9:"html:code";R:148;s:7:"html:dd";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:169;s:11:"closeParent";a:2:{s:7:"html:dd";i:1;s:7:"html:dt";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:9;s:7:"allowed";R:83;}s:8:"html:del";R:212;s:8:"html:div";a:7:{s:10:"attributes";a:1:{s:5:"class";R:315;}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:384;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:83;}s:7:"html:dl";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:339;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:2:{i:0;i:65312;i:1;i:65298;}}s:7:"html:dt";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:724;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:9;s:7:"allowed";R:552;}s:6:"html:i";R:218;s:8:"html:img";a:7:{s:10:"attributes";a:5:{s:3:"alt";R:315;s:6:"height";R:315;s:3:"src";R:98;s:5:"title";R:315;s:5:"width";R:315;}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:715;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:719;}s:8:"html:ins";R:212;s:7:"html:li";R:322;s:7:"html:ol";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:339;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:343;}s:8:"html:pre";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:169;s:5:"flags";i:276;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:224;}s:7:"html:rb";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:169;s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:10;s:7:"allowed";R:224;}s:7:"html:rp";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:169;s:11:"closeParent";a:2:{s:7:"html:rp";i:1;s:7:"html:rt";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:11;s:7:"allowed";R:224;}s:7:"html:rt";R:768;s:8:"html:rtc";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:764;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:10;s:7:"allowed";a:2:{i:0;i:65329;i:1;i:65496;}}s:9:"html:ruby";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:494;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:2:{i:0;i:65329;i:1;i:65500;}}s:9:"html:span";a:7:{s:10:"attributes";R:732;s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:494;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:224;}s:11:"html:strong";R:218;s:8:"html:sub";R:492;s:8:"html:sup";R:492;s:10:"html:table";R:498;s:10:"html:tbody";R:505;s:7:"html:td";a:7:{s:10:"attributes";a:2:{s:7:"colspan";R:315;s:7:"rowspan";R:315;}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:539;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";R:83;}s:10:"html:tfoot";a:6:{s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:169;s:11:"closeParent";a:10:{s:5:"TBODY";i:1;s:2:"TD";i:1;s:2:"TH";i:1;s:5:"THEAD";i:1;s:2:"TR";i:1;s:10:"html:tbody";i:1;s:7:"html:td";i:1;s:7:"html:th";i:1;s:10:"html:thead";i:1;s:7:"html:tr";i:1;}s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:6;s:7:"allowed";R:523;}s:7:"html:th";a:7:{s:10:"attributes";a:3:{s:7:"colspan";R:315;s:7:"rowspan";R:315;s:5:"scope";R:315;}s:11:"filterChain";R:149;s:12:"nestingLimit";i:10;s:5:"rules";R:539;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";R:552;}s:10:"html:thead";R:555;s:7:"html:tr";R:561;s:6:"html:u";R:218;s:7:"html:ul";R:752;}}');
+		return \unserialize('O:24:"s9e\\TextFormatter\\Parser":4:{s:16:"' . "\0" . '*' . "\0" . 'pluginsConfig";a:10:{s:9:"Autoemail";a:5:{s:8:"attrName";s:5:"email";s:10:"quickMatch";s:1:"@";s:6:"regexp";s:39:"/\\b[-a-z0-9_+.]+@[-a-z0-9.]*[a-z0-9]/Si";s:7:"tagName";s:5:"EMAIL";s:11:"regexpLimit";i:10000;}s:8:"Autolink";a:5:{s:8:"attrName";s:3:"url";s:6:"regexp";s:132:"#\\b(?:ftp|https?)://\\S(?>[^\\s()\\[\\]\\x{FF01}-\\x{FF0F}\\x{FF1A}-\\x{FF20}\\x{FF3B}-\\x{FF40}\\x{FF5B}-\\x{FF65}]|\\([^\\s()]*\\)|\\[\\w*\\])++#Siu";s:7:"tagName";s:3:"URL";s:10:"quickMatch";s:3:"://";s:11:"regexpLimit";i:10000;}s:7:"Escaper";a:4:{s:10:"quickMatch";s:1:"\\";s:6:"regexp";s:29:"/\\\\[-!#()*+.:<>@[\\\\\\]^_`{|}]/";s:7:"tagName";s:3:"ESC";s:11:"regexpLimit";i:10000;}s:10:"FancyPants";a:2:{s:8:"attrName";s:4:"char";s:7:"tagName";s:2:"FP";}s:12:"HTMLComments";a:5:{s:8:"attrName";s:7:"content";s:10:"quickMatch";s:4:"<!--";s:6:"regexp";s:22:"/<!--(?!\\[if).*?-->/is";s:7:"tagName";s:2:"HC";s:11:"regexpLimit";i:10000;}s:12:"HTMLElements";a:5:{s:10:"quickMatch";s:1:"<";s:6:"prefix";s:4:"html";s:6:"regexp";s:393:"#<(?>/((?:a(?>bbr)?|br?|code|d(?>[dlt]|el|iv)|em|hr|i(?>mg|ns)?|li|ol|pre|r(?:[bp]|tc?|uby)|s(?>(?>pan|trong|u[bp]))?|t(?:[dr]|able|body|foot|h(?>ead)?)|ul?))|((?:a(?>bbr)?|br?|code|d(?>[dlt]|el|iv)|em|hr|i(?>mg|ns)?|li|ol|pre|r(?:[bp]|tc?|uby)|s(?>(?>pan|trong|u[bp]))?|t(?:[dr]|able|body|foot|h(?>ead)?)|ul?))((?>\\s+[a-z][-a-z0-9]*(?>\\s*=\\s*(?>"[^"]*"|\'[^\']*\'|[^\\s"\'=<>`]+))?)*+)\\s*/?)\\s*>#i";s:7:"aliases";a:6:{s:1:"a";a:2:{s:0:"";s:3:"URL";s:4:"href";s:3:"url";}s:2:"hr";a:1:{s:0:"";s:2:"HR";}s:2:"em";a:1:{s:0:"";s:2:"EM";}s:1:"s";a:1:{s:0:"";s:1:"S";}s:6:"strong";a:1:{s:0:"";s:6:"STRONG";}s:3:"sup";a:1:{s:0:"";s:3:"SUP";}}s:11:"regexpLimit";i:10000;}s:12:"HTMLEntities";a:5:{s:8:"attrName";s:4:"char";s:10:"quickMatch";s:1:"&";s:6:"regexp";s:38:"/&(?>[a-z]+|#(?>[0-9]+|x[0-9a-f]+));/i";s:7:"tagName";s:2:"HE";s:11:"regexpLimit";i:10000;}s:8:"Litedown";a:1:{s:18:"decodeHtmlEntities";b:1;}s:10:"MediaEmbed";a:4:{s:10:"quickMatch";s:1:":";s:6:"regexp";s:39:"/\\b(?>spotify:|https?:\\/\\/)[^["\'\\s]+/Si";s:7:"tagName";s:5:"MEDIA";s:11:"regexpLimit";i:10000;}s:10:"PipeTables";a:3:{s:16:"overwriteEscapes";b:1;s:17:"overwriteMarkdown";b:1;s:10:"quickMatch";s:1:"|";}}s:14:"registeredVars";a:2:{s:9:"urlConfig";a:1:{s:14:"allowedSchemes";s:20:"/^(?:ftp|https?)$/Di";}s:10:"mediasites";a:13:{s:12:"bandcamp.com";s:8:"bandcamp";s:15:"dailymotion.com";s:11:"dailymotion";s:12:"facebook.com";s:8:"facebook";s:12:"liveleak.com";s:8:"liveleak";s:14:"soundcloud.com";s:10:"soundcloud";s:16:"open.spotify.com";s:7:"spotify";s:16:"play.spotify.com";s:7:"spotify";s:8:"spotify:";s:7:"spotify";s:9:"twitch.tv";s:6:"twitch";s:9:"vimeo.com";s:5:"vimeo";s:7:"vine.co";s:4:"vine";s:11:"youtube.com";s:7:"youtube";s:8:"youtu.be";s:7:"youtube";}}s:14:"' . "\0" . '*' . "\0" . 'rootContext";a:2:{s:7:"allowed";a:3:{i:0;i:65399;i:1;i:65504;i:2;i:257;}s:5:"flags";i:8;}s:13:"' . "\0" . '*' . "\0" . 'tagsConfig";a:73:{s:8:"BANDCAMP";a:7:{s:10:"attributes";a:4:{s:8:"album_id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"!^\\d+$!D";}}}s:8:"required";b:0;}s:8:"track_id";R:91;s:9:"track_num";R:91;s:3:"url";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:50:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterUrl";s:6:"params";a:3:{s:9:"attrValue";N;s:9:"urlConfig";N;s:6:"logger";N;}}}s:8:"required";b:0;}}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:23:"!bandcamp\\.com/album/.!";i:1;s:25:"!/album=(?\'album_id\'\\d+)!";i:2;a:1:{i:0;s:8:"album_id";}}i:1;a:3:{i:0;s:23:"!bandcamp\\.com/track/.!";i:1;a:3:{i:0;s:29:"!"album_id":(?\'album_id\'\\d+)!";i:1;s:31:"!"track_num":(?\'track_num\'\\d+)!";i:2;s:25:"!/track=(?\'track_id\'\\d+)!";}i:2;a:3:{i:0;s:8:"album_id";i:1;s:8:"track_id";i:2;s:9:"track_num";}}}s:8:"cacheDir";N;}}i:1;a:2:{s:8:"callback";s:42:"s9e\\TextFormatter\\Parser::filterAttributes";s:6:"params";a:4:{s:3:"tag";N;s:9:"tagConfig";N;s:14:"registeredVars";N;s:6:"logger";N;}}i:2;a:2:{s:8:"callback";s:67:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::hasNonDefaultAttribute";s:6:"params";a:1:{s:3:"tag";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3093;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";a:3:{i:0;i:24672;i:1;i:8192;i:2;i:0;}}s:1:"C";a:6:{s:11:"filterChain";a:1:{i:0;R:130;}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:66;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:3:{i:0;i:0;i:1;i:0;i:2;i:0;}}s:4:"CODE";a:7:{s:10:"attributes";a:1:{s:4:"lang";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:57:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterSimpletext";s:6:"params";a:1:{s:9:"attrValue";N;}}}s:8:"required";b:0;}}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";a:10:{s:1:"C";i:1;s:2:"EM";i:1;s:6:"STRONG";i:1;s:3:"URL";i:1;s:5:"EMAIL";i:1;s:6:"html:b";i:1;s:9:"html:code";i:1;s:6:"html:i";i:1;s:11:"html:strong";i:1;s:6:"html:u";i:1;}s:5:"flags";i:4436;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:157;}s:11:"DAILYMOTION";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^[A-Za-z0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:99;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:94:"!dailymotion\\.com/(?:live/|swf/|user/[^#]+#video=|(?:related/\\d+/)?video/)(?\'id\'[A-Za-z0-9]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'[A-Za-z0-9]+)$!D";i:2;R:200;}}s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:55:"s9e\\TextFormatter\\Parser::executeAttributePreprocessors";s:6:"params";a:2:{s:3:"tag";N;s:9:"tagConfig";N;}}i:1;R:130;}s:12:"nestingLimit";i:10;s:5:"rules";R:142;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";R:146;}s:3:"DEL";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:512;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:83;}s:2:"EM";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:2;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:3:{i:0;i:65393;i:1;i:65440;i:2;i:257;}}s:5:"EMAIL";a:7:{s:10:"attributes";a:1:{s:5:"email";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:52:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterEmail";s:6:"params";R:167;}}s:8:"required";b:1;}}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:514;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";a:3:{i:0;i:61287;i:1;i:16160;i:2;i:0;}}s:3:"ESC";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:1616;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:5;s:7:"allowed";R:157;}s:8:"FACEBOOK";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"@^\\d+$@D";}}}s:8:"required";b:1;}s:4:"type";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"#^video$#D";}}}s:8:"required";b:0;}s:3:"url";R:99;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:135:"@/(?!(?:apps|developers|graph)\\.)[-\\w.]*facebook\\.com/(?:[/\\w]+/permalink|(?!pages/|groups/).*?)(?:/|fbid=|\\?v=)(?\'id\'\\d+)(?=$|[/?&#])@";i:2;R:200;}i:1;a:3:{i:0;s:3:"url";i:1;s:20:"#/(?\'type\'video)s?/#";i:2;a:2:{i:0;s:0:"";i:1;s:4:"type";}}i:2;a:3:{i:0;s:3:"url";i:1;s:15:"@^(?\'id\'\\d+)$@D";i:2;R:200;}}s:11:"filterChain";R:206;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3089;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:15;s:7:"allowed";a:3:{i:0;i:65393;i:1;i:65280;i:2;i:257;}}s:2:"FP";a:7:{s:10:"attributes";a:1:{s:4:"char";a:1:{s:8:"required";b:1;}}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:285;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:6;s:7:"allowed";a:3:{i:0;i:24672;i:1;i:8224;i:2;i:0;}}s:2:"H1";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:172;s:5:"flags";i:260;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:2;s:7:"allowed";R:227;}s:2:"H2";R:304;s:2:"H3";R:304;s:2:"H4";R:304;s:2:"H5";R:304;s:2:"H6";R:304;s:2:"HC";a:7:{s:10:"attributes";a:1:{s:7:"content";R:295;}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3153;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:5;s:7:"allowed";R:157;}s:2:"HE";R:293;s:2:"HR";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3349;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:300;}s:3:"IMG";a:7:{s:10:"attributes";a:3:{s:3:"alt";a:1:{s:8:"required";b:0;}s:3:"src";a:2:{s:11:"filterChain";R:100;s:8:"required";b:1;}s:5:"title";R:325;}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:285;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:300;}s:2:"LI";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:172;s:11:"closeParent";a:2:{s:2:"LI";i:1;s:7:"html:li";i:1;}s:5:"flags";i:264;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:3;s:7:"allowed";R:83;}s:4:"LIST";a:7:{s:10:"attributes";a:2:{s:5:"start";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterUint";s:6:"params";R:167;}}s:8:"required";b:0;}s:4:"type";R:163;}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:172;s:5:"flags";i:3460;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:3:{i:0;i:65320;i:1;i:65312;i:2;i:256;}}s:8:"LIVELEAK";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"!^[a-f_0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:99;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!liveleak\\.com/view\\?i=(?\'id\'[a-f_0-9]+)!";i:2;R:200;}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"!^(?\'id\'[a-f_0-9]+)$!D";i:2;R:200;}}s:11:"filterChain";R:206;s:12:"nestingLimit";i:10;s:5:"rules";R:142;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";R:146;}s:5:"MEDIA";a:6:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:54:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::filterTag";s:6:"params";a:3:{s:3:"tag";N;s:6:"parser";N;s:10:"mediasites";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:513;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";a:3:{i:0;i:65399;i:1;i:65472;i:2;i:257;}}s:5:"QUOTE";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:172;s:5:"flags";i:268;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:83;}s:10:"SOUNDCLOUD";a:8:{s:10:"attributes";a:5:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:39:"@^(?:[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)$@iD";}}}s:8:"required";b:1;}s:11:"playlist_id";a:2:{s:11:"filterChain";R:256;s:8:"required";b:0;}s:12:"secret_token";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"@^[-\\w]+$@D";}}}s:8:"required";b:0;}s:8:"track_id";R:410;s:3:"url";R:99;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:84:"@https?://(?:api\\.)?soundcloud\\.com/(?!pages/)(?\'id\'[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)@i";i:2;R:200;}i:1;a:3:{i:0;s:3:"url";i:1;s:52:"@api\\.soundcloud\\.com/playlists/(?\'playlist_id\'\\d+)@";i:2;a:2:{i:0;s:0:"";i:1;s:11:"playlist_id";}}i:2;a:3:{i:0;s:3:"url";i:1;s:89:"@api\\.soundcloud\\.com/tracks/(?\'track_id\'\\d+)(?:\\?secret_token=(?\'secret_token\'[-\\w]+))?@";i:2;a:3:{i:0;s:0:"";i:1;s:8:"track_id";i:2;s:12:"secret_token";}}i:3;a:3:{i:0;s:3:"url";i:1;s:81:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/(?=s-)(?\'secret_token\'[-\\w]+)@";i:2;a:2:{i:0;s:0:"";i:1;s:12:"secret_token";}}i:4;a:3:{i:0;s:3:"url";i:1;s:46:"@^(?\'id\'(?:[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$))$@iD";i:2;R:200;}}s:11:"filterChain";a:3:{i:0;R:207;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:56:"@soundcloud\\.com/(?!playlists/\\d|tracks/\\d)[-\\w]+/[-\\w]@";i:1;s:36:"@soundcloud:tracks:(?\'track_id\'\\d+)@";i:2;a:1:{i:0;s:8:"track_id";}}i:1;a:3:{i:0;s:27:"@soundcloud\\.com/\\w+/sets/@";i:1;s:44:"@soundcloud://playlists:(?\'playlist_id\'\\d+)@";i:2;a:1:{i:0;s:11:"playlist_id";}}}s:8:"cacheDir";N;}}i:2;R:130;}s:12:"nestingLimit";i:10;s:5:"rules";R:285;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:16;s:7:"allowed";a:3:{i:0;i:65393;i:1;i:65408;i:2;i:256;}}s:7:"SPOTIFY";a:8:{s:10:"attributes";a:3:{s:4:"path";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:44:"!^(?:(?:album|artist|track|user)/[-/\\w]+)$!D";}}}s:8:"required";b:0;}s:3:"uri";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:61:"!^(?:spotify:(?:album|artist|user|track(?:set)?):[-,:\\w]+)$!D";}}}s:8:"required";b:0;}s:3:"url";R:99;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:62:"!(?\'uri\'spotify:(?:album|artist|user|track(?:set)?):[-,:\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:3:"uri";}}i:1;a:3:{i:0;s:3:"url";i:1;s:74:"!(?:open|play)\\.spotify\\.com/(?\'path\'(?:album|artist|track|user)/[-/\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:4:"path";}}}s:11:"filterChain";a:3:{i:0;R:207;i:1;R:130;i:2;R:137;}s:12:"nestingLimit";i:10;s:5:"rules";R:142;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";R:146;}s:6:"STRONG";R:221;s:3:"SUP";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:0;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:227;}s:5:"TABLE";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:349;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:3:{i:0;i:65440;i:1;i:65314;i:2;i:256;}}s:5:"TBODY";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:172;s:11:"closeParent";a:11:{s:5:"TBODY";i:1;s:2:"TD";i:1;s:2:"TH";i:1;s:5:"THEAD";i:1;s:2:"TR";i:1;s:10:"html:tbody";i:1;s:7:"html:td";i:1;s:10:"html:tfoot";i:1;s:7:"html:th";i:1;s:10:"html:thead";i:1;s:7:"html:tr";i:1;}s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";a:3:{i:0;i:65312;i:1;i:65314;i:2;i:256;}}s:2:"TD";a:7:{s:10:"attributes";a:1:{s:5:"align";a:2:{s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:10:"strtolower";s:6:"params";R:167;}i:1;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:34:"/^(?>center|justify|left|right)$/D";}}}s:8:"required";b:0;}}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:172;s:11:"closeParent";a:4:{s:2:"TD";i:1;s:2:"TH";i:1;s:7:"html:td";i:1;s:7:"html:th";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:8;s:7:"allowed";R:83;}s:2:"TH";a:7:{s:10:"attributes";R:542;s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:554;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:8;s:7:"allowed";a:3:{i:0;i:64371;i:1;i:65504;i:2;i:257;}}s:5:"THEAD";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:172;s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";R:537;}s:2:"TR";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:172;s:11:"closeParent";a:6:{s:2:"TD";i:1;s:2:"TH";i:1;s:2:"TR";i:1;s:7:"html:td";i:1;s:7:"html:th";i:1;s:7:"html:tr";i:1;}s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:9;s:7:"allowed";a:3:{i:0;i:65312;i:1;i:65313;i:2;i:256;}}s:6:"TWITCH";a:8:{s:10:"attributes";a:5:{s:7:"channel";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\w+$#D";}}}s:8:"required";b:0;}s:7:"clip_id";R:596;s:1:"t";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:27:"#^(?:(?:\\d+h)?\\d+m)?\\d+s$#D";}}}s:8:"required";b:0;}s:3:"url";R:99;s:8:"video_id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\d+$#D";}}}s:8:"required";b:0;}}s:22:"attributePreprocessors";a:4:{i:0;a:3:{i:0;s:3:"url";i:1;s:47:"#twitch\\.tv/(?:videos|\\w+/v)/(?\'video_id\'\\d+)?#";i:2;a:2:{i:0;s:0:"";i:1;s:8:"video_id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:44:"#www\\.twitch\\.tv/(?!videos/)(?\'channel\'\\w+)#";i:2;a:2:{i:0;s:0:"";i:1;s:7:"channel";}}i:2;a:3:{i:0;s:3:"url";i:1;s:32:"#t=(?\'t\'(?:(?:\\d+h)?\\d+m)?\\d+s)#";i:2;a:2:{i:0;s:0:"";i:1;s:1:"t";}}i:3;a:3:{i:0;s:3:"url";i:1;s:56:"#clips\\.twitch\\.tv/(?:(?\'channel\'\\w+)/)?(?\'clip_id\'\\w+)#";i:2;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:7:"clip_id";}}}s:11:"filterChain";R:501;s:12:"nestingLimit";i:10;s:5:"rules";R:142;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";R:146;}s:3:"URL";a:7:{s:10:"attributes";a:2:{s:5:"title";R:325;s:3:"url";R:327;}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:239;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:243;}s:5:"VIMEO";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";R:92;s:8:"required";b:1;}s:3:"url";R:99;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!vimeo\\.com/(?:channels/[^/]+/|video/)?(?\'id\'\\d+)!";i:2;R:200;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"!^(?\'id\'\\d+)$!D";i:2;R:200;}}s:11:"filterChain";R:206;s:12:"nestingLimit";i:10;s:5:"rules";R:142;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";R:146;}s:4:"VINE";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^[^/]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:99;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:25:"!vine\\.co/v/(?\'id\'[^/]+)!";i:2;R:200;}i:1;a:3:{i:0;s:3:"url";i:1;s:17:"!^(?\'id\'[^/]+)$!D";i:2;R:200;}}s:11:"filterChain";R:206;s:12:"nestingLimit";i:10;s:5:"rules";R:142;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";R:146;}s:7:"YOUTUBE";a:8:{s:10:"attributes";a:7:{s:1:"h";R:91;s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^[-\\w]+$!D";}}}s:8:"required";b:1;}s:4:"list";a:2:{s:11:"filterChain";R:691;s:8:"required";b:0;}s:1:"m";R:91;s:1:"s";R:91;s:1:"t";R:91;s:3:"url";R:99;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:69:"!youtube\\.com/(?:watch.*?v=|v/|attribution_link.*?v%3D)(?\'id\'[-\\w]+)!";i:2;R:200;}i:1;a:3:{i:0;s:3:"url";i:1;s:25:"!youtu\\.be/(?\'id\'[-\\w]+)!";i:2;R:200;}i:2;a:3:{i:0;s:3:"url";i:1;s:57:"![#&?]t=(?:(?:(?\'h\'\\d+)h)?(?\'m\'\\d+)m(?\'s\'\\d+)|(?\'t\'\\d+))!";i:2;a:5:{i:0;s:0:"";i:1;s:1:"h";i:2;s:1:"m";i:3;s:1:"s";i:4;s:1:"t";}}i:3;a:3:{i:0;s:3:"url";i:1;s:23:"!&list=(?\'list\'[-\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:4:"list";}}i:4;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'[-\\w]+)$!D";i:2;R:200;}}s:11:"filterChain";a:3:{i:0;R:207;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:14:"!/shared\\?ci=!";i:1;s:19:"!/vi/(?\'id\'[-\\w]+)!";i:2;a:1:{i:0;s:2:"id";}}}s:8:"cacheDir";N;}}i:2;R:130;}s:12:"nestingLimit";i:10;s:5:"rules";R:142;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";R:146;}s:9:"html:abbr";a:7:{s:10:"attributes";a:1:{s:5:"title";R:325;}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:507;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:227;}s:6:"html:b";R:221;s:7:"html:br";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3201;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:3:{i:0;i:65312;i:1;i:65312;i:2;i:256;}}s:9:"html:code";R:150;s:7:"html:dd";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:172;s:11:"closeParent";a:2:{s:7:"html:dd";i:1;s:7:"html:dt";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:10;s:7:"allowed";R:83;}s:8:"html:del";R:215;s:8:"html:div";a:7:{s:10:"attributes";a:1:{s:5:"class";R:325;}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:396;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:83;}s:7:"html:dl";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:349;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:3:{i:0;i:65312;i:1;i:65316;i:2;i:256;}}s:7:"html:dt";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:757;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:10;s:7:"allowed";R:567;}s:6:"html:i";R:221;s:8:"html:img";a:7:{s:10:"attributes";a:5:{s:3:"alt";R:325;s:6:"height";R:325;s:3:"src";R:99;s:5:"title";R:325;s:5:"width";R:325;}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:747;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:751;}s:8:"html:ins";R:215;s:7:"html:li";R:332;s:7:"html:ol";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:349;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:353;}s:8:"html:pre";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:172;s:5:"flags";i:276;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:227;}s:7:"html:rb";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:172;s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:11;s:7:"allowed";R:227;}s:7:"html:rp";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:172;s:11:"closeParent";a:2:{s:7:"html:rp";i:1;s:7:"html:rt";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:12;s:7:"allowed";R:227;}s:7:"html:rt";R:802;s:8:"html:rtc";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:798;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:11;s:7:"allowed";a:3:{i:0;i:65393;i:1;i:65456;i:2;i:257;}}s:9:"html:ruby";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:507;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:3:{i:0;i:65393;i:1;i:65464;i:2;i:257;}}s:9:"html:span";a:7:{s:10:"attributes";R:765;s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:507;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:227;}s:11:"html:strong";R:221;s:8:"html:sub";R:505;s:8:"html:sup";R:505;s:10:"html:table";R:511;s:10:"html:tbody";R:519;s:7:"html:td";a:7:{s:10:"attributes";a:2:{s:7:"colspan";R:325;s:7:"rowspan";R:325;}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:554;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:8;s:7:"allowed";R:83;}s:10:"html:tfoot";a:6:{s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:172;s:11:"closeParent";a:10:{s:5:"TBODY";i:1;s:2:"TD";i:1;s:2:"TH";i:1;s:5:"THEAD";i:1;s:2:"TR";i:1;s:10:"html:tbody";i:1;s:7:"html:td";i:1;s:7:"html:th";i:1;s:10:"html:thead";i:1;s:7:"html:tr";i:1;}s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";R:537;}s:7:"html:th";a:7:{s:10:"attributes";a:3:{s:7:"colspan";R:325;s:7:"rowspan";R:325;s:5:"scope";R:325;}s:11:"filterChain";R:151;s:12:"nestingLimit";i:10;s:5:"rules";R:554;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:8;s:7:"allowed";R:567;}s:10:"html:thead";R:571;s:7:"html:tr";R:577;s:6:"html:u";R:221;s:7:"html:ul";R:786;}}');
 	}
 	public static function getRenderer()
 	{
--- a/vendor/s9e/text-formatter/src/Bundles/Fatdown/Renderer.php
+++ b/vendor/s9e/text-formatter/src/Bundles/Fatdown/Renderer.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Bundles\Fatdown;
@@ -42,7 +42,7 @@ class Renderer extends \s9e\TextFormatter\Renderer
 				else
 				{
 					$tb = self::$tagBranches[$node->nodeName];
-					if($tb<33)if($tb<17)if($tb<9)if($tb<5)if($tb<3)if($tb===0){$this->out.='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if($node->hasAttribute('album_id')){$this->out.='album='.\htmlspecialchars($node->getAttribute('album_id'),2);if($node->hasAttribute('track_num'))$this->out.='/t='.\htmlspecialchars($node->getAttribute('track_num'),2);}else$this->out.='track='.\htmlspecialchars($node->getAttribute('track_id'),2);$this->out.='"></iframe></div></div>';}elseif($tb===1){$this->out.='<code>';$this->at($node);$this->out.='</code>';}else{$this->out.='<pre><code';if($node->hasAttribute('lang'))$this->out.=' class="language-'.\htmlspecialchars($node->getAttribute('lang'),2).'"';$this->out.='>';$this->at($node);$this->out.='</code></pre>';}elseif($tb===3)$this->out.='<div data-s9e-mediaembed="dailymotion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dailymotion.com/embed/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else{$this->out.='<del>';$this->at($node);$this->out.='</del>';}elseif($tb===5){$this->out.='<em>';$this->at($node);$this->out.='</em>';}elseif($tb===6){$this->out.='<a href="mailto:'.\htmlspecialchars($node->getAttribute('email'),2).'">';$this->at($node);$this->out.='</a>';}elseif($tb===7)$this->at($node);else$this->out.='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars($node->getAttribute('type').$node->getAttribute('id'),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';elseif($tb<13)if($tb===9)$this->out.=\htmlspecialchars($node->getAttribute('char'),0);elseif($tb===10){$this->out.='<h1>';$this->at($node);$this->out.='</h1>';}elseif($tb===11){$this->out.='<h2>';$this->at($node);$this->out.='</h2>';}else{$this->out.='<h3>';$this->at($node);$this->out.='</h3>';}elseif($tb===13){$this->out.='<h4>';$this->at($node);$this->out.='</h4>';}elseif($tb===14){$this->out.='<h5>';$this->at($node);$this->out.='</h5>';}elseif($tb===15){$this->out.='<h6>';$this->at($node);$this->out.='</h6>';}else$this->out.='<!--'.\htmlspecialchars($node->getAttribute('content'),0).'-->';elseif($tb<25)if($tb<21){if($tb===17)$this->out.='<hr>';elseif($tb===18){$this->out.='<img src="'.\htmlspecialchars($node->getAttribute('src'),2).'"';if($node->hasAttribute('alt'))$this->out.=' alt="'.\htmlspecialchars($node->getAttribute('alt'),2).'"';if($node->hasAttribute('title'))$this->out.=' title="'.\htmlspecialchars($node->getAttribute('title'),2).'"';$this->out.='>';}elseif($tb===19){$this->out.='<li>';$this->at($node);$this->out.='</li>';}elseif(!$node->hasAttribute('type')){$this->out.='<ul>';$this->at($node);$this->out.='</ul>';}else{$this->out.='<ol';if($node->hasAttribute('start'))$this->out.=' start="'.\htmlspecialchars($node->getAttribute('start'),2).'"';$this->out.='>';$this->at($node);$this->out.='</ol>';}}elseif($tb===21)$this->out.='<div data-s9e-mediaembed="liveleak" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.liveleak.com/ll_embed?i='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===22){$this->out.='<blockquote>';$this->at($node);$this->out.='</blockquote>';}elseif($tb===23){$this->out.='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if($node->hasAttribute('playlist_id'))$this->out.='https%3A//api.soundcloud.com/playlists/'.\htmlspecialchars($node->getAttribute('playlist_id'),2);elseif($node->hasAttribute('track_id'))$this->out.='https%3A//api.soundcloud.com/tracks/'.\htmlspecialchars($node->getAttribute('track_id'),2).'&amp;secret_token='.\htmlspecialchars($node->getAttribute('secret_token'),2);else{if((\strpos($node->getAttribute('id'),'://')===\false))$this->out.='https%3A//soundcloud.com/';$this->out.=\htmlspecialchars($node->getAttribute('id'),2);}$this->out.='" style="border:0;height:';if($node->hasAttribute('playlist_id')||(\strpos($node->getAttribute('id'),'/sets/')!==\false))$this->out.='450';else$this->out.='166';$this->out.='px;max-width:900px;width:100%"></iframe>';}else{$this->out.='<div data-s9e-mediaembed="spotify" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:120%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="https://embed.spotify.com/?view=coverart&amp;uri=';if($node->hasAttribute('uri'))$this->out.=\htmlspecialchars($node->getAttribute('uri'),2);else$this->out.='spotify:'.\htmlspecialchars(\strtr($node->getAttribute('path'),'/',':'),2);$this->out.='"></iframe></div></div>';}elseif($tb<29)if($tb===25){$this->out.='<strong>';$this->at($node);$this->out.='</strong>';}elseif($tb===26){$this->out.='<sup>';$this->at($node);$this->out.='</sup>';}elseif($tb===27){$this->out.='<table>';$this->at($node);$this->out.='</table>';}else{$this->out.='<tbody>';$this->at($node);$this->out.='</tbody>';}elseif($tb===29){$this->out.='<td';if($node->hasAttribute('align'))$this->out.=' style="text-align:'.\htmlspecialchars($node->getAttribute('align'),2).'"';$this->out.='>';$this->at($node);$this->out.='</td>';}elseif($tb===30){$this->out.='<th';if($node->hasAttribute('align'))$this->out.=' style="text-align:'.\htmlspecialchars($node->getAttribute('align'),2).'"';$this->out.='>';$this->at($node);$this->out.='</th>';}elseif($tb===31){$this->out.='<thead>';$this->at($node);$this->out.='</thead>';}else{$this->out.='<tr>';$this->at($node);$this->out.='</tr>';}elseif($tb<49)if($tb<41){if($tb<37)if($tb===33){$this->out.='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if($node->hasAttribute('clip_id'))$this->out.='//clips.twitch.tv/embed?autoplay=false&amp;clip='.\htmlspecialchars($node->getAttribute('channel'),2).'/'.\htmlspecialchars($node->getAttribute('clip_id'),2);else{$this->out.='//player.twitch.tv/?autoplay=false&amp;';if($node->hasAttribute('archive_id'))$this->out.='video=a'.\htmlspecialchars($node->getAttribute('archive_id'),2);elseif($node->hasAttribute('chapter_id'))$this->out.='video=c'.\htmlspecialchars($node->getAttribute('chapter_id'),2);elseif($node->hasAttribute('video_id'))$this->out.='video=v'.\htmlspecialchars($node->getAttribute('video_id'),2);else$this->out.='channel='.\htmlspecialchars($node->getAttribute('channel'),2);if($node->hasAttribute('t'))$this->out.='&amp;time='.\htmlspecialchars($node->getAttribute('t'),2);}$this->out.='"></iframe></div></div>';}elseif($tb===34){$this->out.='<a href="'.\htmlspecialchars($node->getAttribute('url'),2).'"';if($node->hasAttribute('title'))$this->out.=' title="'.\htmlspecialchars($node->getAttribute('title'),2).'"';$this->out.='>';$this->at($node);$this->out.='</a>';}elseif($tb===35)$this->out.='<div data-s9e-mediaembed="vimeo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.vimeo.com/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="vine" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://vine.co/v/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed/simple?audio=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===37){$this->out.='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.\htmlspecialchars($node->getAttribute('id'),2).'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2);if($node->hasAttribute('list'))$this->out.='?list='.\htmlspecialchars($node->getAttribute('list'),2);if($node->hasAttribute('t')||$node->hasAttribute('m')){if($node->hasAttribute('list'))$this->out.='&amp;';else$this->out.='?';$this->out.='start=';if($node->hasAttribute('t'))$this->out.=\htmlspecialchars($node->getAttribute('t'),2);elseif($node->hasAttribute('h'))$this->out.=\htmlspecialchars($node->getAttribute('h')*3600+$node->getAttribute('m')*60+$node->getAttribute('s'),2);else$this->out.=\htmlspecialchars($node->getAttribute('m')*60+$node->getAttribute('s'),2);}$this->out.='"></iframe></div></div>';}elseif($tb===38)$this->out.='<br>';elseif($tb===39);else{$this->out.='<abbr';if($node->hasAttribute('title'))$this->out.=' title="'.\htmlspecialchars($node->getAttribute('title'),2).'"';$this->out.='>';$this->at($node);$this->out.='</abbr>';}}elseif($tb<45){if($tb===41){$this->out.='<b>';$this->at($node);$this->out.='</b>';}elseif($tb===42)$this->out.='<br>';elseif($tb===43){$this->out.='<dd>';$this->at($node);$this->out.='</dd>';}else{$this->out.='<div';if($node->hasAttribute('class'))$this->out.=' class="'.\htmlspecialchars($node->getAttribute('class'),2).'"';$this->out.='>';$this->at($node);$this->out.='</div>';}}elseif($tb===45){$this->out.='<dl>';$this->at($node);$this->out.='</dl>';}elseif($tb===46){$this->out.='<dt>';$this->at($node);$this->out.='</dt>';}elseif($tb===47){$this->out.='<i>';$this->at($node);$this->out.='</i>';}else{$this->out.='<img';if($node->hasAttribute('alt'))$this->out.=' alt="'.\htmlspecialchars($node->getAttribute('alt'),2).'"';if($node->hasAttribute('height'))$this->out.=' height="'.\htmlspecialchars($node->getAttribute('height'),2).'"';if($node->hasAttribute('src'))$this->out.=' src="'.\htmlspecialchars($node->getAttribute('src'),2).'"';if($node->hasAttribute('title'))$this->out.=' title="'.\htmlspecialchars($node->getAttribute('title'),2).'"';if($node->hasAttribute('width'))$this->out.=' width="'.\htmlspecialchars($node->getAttribute('width'),2).'"';$this->out.='>';}elseif($tb<57)if($tb<53)if($tb===49){$this->out.='<ins>';$this->at($node);$this->out.='</ins>';}elseif($tb===50){$this->out.='<ol>';$this->at($node);$this->out.='</ol>';}elseif($tb===51){$this->out.='<pre>';$this->at($node);$this->out.='</pre>';}else{$this->out.='<rb>';$this->at($node);$this->out.='</rb>';}elseif($tb===53){$this->out.='<rp>';$this->at($node);$this->out.='</rp>';}elseif($tb===54){$this->out.='<rt>';$this->at($node);$this->out.='</rt>';}elseif($tb===55){$this->out.='<rtc>';$this->at($node);$this->out.='</rtc>';}else{$this->out.='<ruby>';$this->at($node);$this->out.='</ruby>';}elseif($tb<61)if($tb===57){$this->out.='<span';if($node->hasAttribute('class'))$this->out.=' class="'.\htmlspecialchars($node->getAttribute('class'),2).'"';$this->out.='>';$this->at($node);$this->out.='</span>';}elseif($tb===58){$this->out.='<sub>';$this->at($node);$this->out.='</sub>';}elseif($tb===59){$this->out.='<td';if($node->hasAttribute('colspan'))$this->out.=' colspan="'.\htmlspecialchars($node->getAttribute('colspan'),2).'"';if($node->hasAttribute('rowspan'))$this->out.=' rowspan="'.\htmlspecialchars($node->getAttribute('rowspan'),2).'"';$this->out.='>';$this->at($node);$this->out.='</td>';}else{$this->out.='<tfoot>';$this->at($node);$this->out.='</tfoot>';}elseif($tb===61){$this->out.='<th';if($node->hasAttribute('colspan'))$this->out.=' colspan="'.\htmlspecialchars($node->getAttribute('colspan'),2).'"';if($node->hasAttribute('rowspan'))$this->out.=' rowspan="'.\htmlspecialchars($node->getAttribute('rowspan'),2).'"';if($node->hasAttribute('scope'))$this->out.=' scope="'.\htmlspecialchars($node->getAttribute('scope'),2).'"';$this->out.='>';$this->at($node);$this->out.='</th>';}elseif($tb===62){$this->out.='<u>';$this->at($node);$this->out.='</u>';}elseif($tb===63){$this->out.='<ul>';$this->at($node);$this->out.='</ul>';}else{$this->out.='<p>';$this->at($node);$this->out.='</p>';}
+					if($tb<33)if($tb<17)if($tb<9)if($tb<5)if($tb<3)if($tb===0){$this->out.='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if($node->hasAttribute('album_id')){$this->out.='album='.\htmlspecialchars($node->getAttribute('album_id'),2);if($node->hasAttribute('track_num'))$this->out.='/t='.\htmlspecialchars($node->getAttribute('track_num'),2);}else$this->out.='track='.\htmlspecialchars($node->getAttribute('track_id'),2);$this->out.='"></iframe></div></div>';}elseif($tb===1){$this->out.='<code>';$this->at($node);$this->out.='</code>';}else{$this->out.='<pre><code';if($node->hasAttribute('lang'))$this->out.=' class="language-'.\htmlspecialchars($node->getAttribute('lang'),2).'"';$this->out.='>';$this->at($node);$this->out.='</code></pre>';}elseif($tb===3)$this->out.='<div data-s9e-mediaembed="dailymotion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dailymotion.com/embed/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else{$this->out.='<del>';$this->at($node);$this->out.='</del>';}elseif($tb===5){$this->out.='<em>';$this->at($node);$this->out.='</em>';}elseif($tb===6){$this->out.='<a href="mailto:'.\htmlspecialchars($node->getAttribute('email'),2).'">';$this->at($node);$this->out.='</a>';}elseif($tb===7)$this->at($node);else$this->out.='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars($node->getAttribute('type').$node->getAttribute('id'),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';elseif($tb<13)if($tb===9)$this->out.=\htmlspecialchars($node->getAttribute('char'),0);elseif($tb===10){$this->out.='<h1>';$this->at($node);$this->out.='</h1>';}elseif($tb===11){$this->out.='<h2>';$this->at($node);$this->out.='</h2>';}else{$this->out.='<h3>';$this->at($node);$this->out.='</h3>';}elseif($tb===13){$this->out.='<h4>';$this->at($node);$this->out.='</h4>';}elseif($tb===14){$this->out.='<h5>';$this->at($node);$this->out.='</h5>';}elseif($tb===15){$this->out.='<h6>';$this->at($node);$this->out.='</h6>';}else$this->out.='<!--'.\htmlspecialchars($node->getAttribute('content'),0).'-->';elseif($tb<25)if($tb<21){if($tb===17)$this->out.='<hr>';elseif($tb===18){$this->out.='<img src="'.\htmlspecialchars($node->getAttribute('src'),2).'"';if($node->hasAttribute('alt'))$this->out.=' alt="'.\htmlspecialchars($node->getAttribute('alt'),2).'"';if($node->hasAttribute('title'))$this->out.=' title="'.\htmlspecialchars($node->getAttribute('title'),2).'"';$this->out.='>';}elseif($tb===19){$this->out.='<li>';$this->at($node);$this->out.='</li>';}elseif(!$node->hasAttribute('type')){$this->out.='<ul>';$this->at($node);$this->out.='</ul>';}else{$this->out.='<ol';if($node->hasAttribute('start'))$this->out.=' start="'.\htmlspecialchars($node->getAttribute('start'),2).'"';$this->out.='>';$this->at($node);$this->out.='</ol>';}}elseif($tb===21)$this->out.='<div data-s9e-mediaembed="liveleak" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.liveleak.com/ll_embed?i='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===22){$this->out.='<blockquote>';$this->at($node);$this->out.='</blockquote>';}elseif($tb===23){$this->out.='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if($node->hasAttribute('playlist_id'))$this->out.='https%3A//api.soundcloud.com/playlists/'.\htmlspecialchars($node->getAttribute('playlist_id'),2);elseif($node->hasAttribute('track_id'))$this->out.='https%3A//api.soundcloud.com/tracks/'.\htmlspecialchars($node->getAttribute('track_id'),2).'&amp;secret_token='.\htmlspecialchars($node->getAttribute('secret_token'),2);else{if((\strpos($node->getAttribute('id'),'://')===\false))$this->out.='https%3A//soundcloud.com/';$this->out.=\htmlspecialchars($node->getAttribute('id'),2);}$this->out.='" style="border:0;height:';if($node->hasAttribute('playlist_id')||(\strpos($node->getAttribute('id'),'/sets/')!==\false))$this->out.='450';else$this->out.='166';$this->out.='px;max-width:900px;width:100%"></iframe>';}else{$this->out.='<div data-s9e-mediaembed="spotify" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:120%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="https://embed.spotify.com/?view=coverart&amp;uri=';if($node->hasAttribute('uri'))$this->out.=\htmlspecialchars($node->getAttribute('uri'),2);else$this->out.='spotify:'.\htmlspecialchars(\strtr($node->getAttribute('path'),'/',':'),2);$this->out.='"></iframe></div></div>';}elseif($tb<29)if($tb===25){$this->out.='<strong>';$this->at($node);$this->out.='</strong>';}elseif($tb===26){$this->out.='<sup>';$this->at($node);$this->out.='</sup>';}elseif($tb===27){$this->out.='<table>';$this->at($node);$this->out.='</table>';}else{$this->out.='<tbody>';$this->at($node);$this->out.='</tbody>';}elseif($tb===29){$this->out.='<td';if($node->hasAttribute('align'))$this->out.=' style="text-align:'.\htmlspecialchars($node->getAttribute('align'),2).'"';$this->out.='>';$this->at($node);$this->out.='</td>';}elseif($tb===30){$this->out.='<th';if($node->hasAttribute('align'))$this->out.=' style="text-align:'.\htmlspecialchars($node->getAttribute('align'),2).'"';$this->out.='>';$this->at($node);$this->out.='</th>';}elseif($tb===31){$this->out.='<thead>';$this->at($node);$this->out.='</thead>';}else{$this->out.='<tr>';$this->at($node);$this->out.='</tr>';}elseif($tb<49)if($tb<41){if($tb<37)if($tb===33){$this->out.='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if($node->hasAttribute('clip_id')){$this->out.='//clips.twitch.tv/embed?autoplay=false&amp;clip=';if($node->hasAttribute('channel'))$this->out.=\htmlspecialchars($node->getAttribute('channel'),2).'/';$this->out.=\htmlspecialchars($node->getAttribute('clip_id'),2);}else{$this->out.='//player.twitch.tv/?autoplay=false&amp;';if($node->hasAttribute('video_id'))$this->out.='video=v'.\htmlspecialchars($node->getAttribute('video_id'),2);else$this->out.='channel='.\htmlspecialchars($node->getAttribute('channel'),2);if($node->hasAttribute('t'))$this->out.='&amp;time='.\htmlspecialchars($node->getAttribute('t'),2);}$this->out.='"></iframe></div></div>';}elseif($tb===34){$this->out.='<a href="'.\htmlspecialchars($node->getAttribute('url'),2).'"';if($node->hasAttribute('title'))$this->out.=' title="'.\htmlspecialchars($node->getAttribute('title'),2).'"';$this->out.='>';$this->at($node);$this->out.='</a>';}elseif($tb===35)$this->out.='<div data-s9e-mediaembed="vimeo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.vimeo.com/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="vine" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://vine.co/v/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed/simple?audio=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===37){$this->out.='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.\htmlspecialchars($node->getAttribute('id'),2).'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2);if($node->hasAttribute('list'))$this->out.='?list='.\htmlspecialchars($node->getAttribute('list'),2);if($node->hasAttribute('t')||$node->hasAttribute('m')){if($node->hasAttribute('list'))$this->out.='&amp;';else$this->out.='?';$this->out.='start=';if($node->hasAttribute('t'))$this->out.=\htmlspecialchars($node->getAttribute('t'),2);elseif($node->hasAttribute('h'))$this->out.=\htmlspecialchars($node->getAttribute('h')*3600+$node->getAttribute('m')*60+$node->getAttribute('s'),2);else$this->out.=\htmlspecialchars($node->getAttribute('m')*60+$node->getAttribute('s'),2);}$this->out.='"></iframe></div></div>';}elseif($tb===38)$this->out.='<br>';elseif($tb===39);else{$this->out.='<abbr';if($node->hasAttribute('title'))$this->out.=' title="'.\htmlspecialchars($node->getAttribute('title'),2).'"';$this->out.='>';$this->at($node);$this->out.='</abbr>';}}elseif($tb<45){if($tb===41){$this->out.='<b>';$this->at($node);$this->out.='</b>';}elseif($tb===42)$this->out.='<br>';elseif($tb===43){$this->out.='<dd>';$this->at($node);$this->out.='</dd>';}else{$this->out.='<div';if($node->hasAttribute('class'))$this->out.=' class="'.\htmlspecialchars($node->getAttribute('class'),2).'"';$this->out.='>';$this->at($node);$this->out.='</div>';}}elseif($tb===45){$this->out.='<dl>';$this->at($node);$this->out.='</dl>';}elseif($tb===46){$this->out.='<dt>';$this->at($node);$this->out.='</dt>';}elseif($tb===47){$this->out.='<i>';$this->at($node);$this->out.='</i>';}else{$this->out.='<img';if($node->hasAttribute('alt'))$this->out.=' alt="'.\htmlspecialchars($node->getAttribute('alt'),2).'"';if($node->hasAttribute('height'))$this->out.=' height="'.\htmlspecialchars($node->getAttribute('height'),2).'"';if($node->hasAttribute('src'))$this->out.=' src="'.\htmlspecialchars($node->getAttribute('src'),2).'"';if($node->hasAttribute('title'))$this->out.=' title="'.\htmlspecialchars($node->getAttribute('title'),2).'"';if($node->hasAttribute('width'))$this->out.=' width="'.\htmlspecialchars($node->getAttribute('width'),2).'"';$this->out.='>';}elseif($tb<57)if($tb<53)if($tb===49){$this->out.='<ins>';$this->at($node);$this->out.='</ins>';}elseif($tb===50){$this->out.='<ol>';$this->at($node);$this->out.='</ol>';}elseif($tb===51){$this->out.='<pre>';$this->at($node);$this->out.='</pre>';}else{$this->out.='<rb>';$this->at($node);$this->out.='</rb>';}elseif($tb===53){$this->out.='<rp>';$this->at($node);$this->out.='</rp>';}elseif($tb===54){$this->out.='<rt>';$this->at($node);$this->out.='</rt>';}elseif($tb===55){$this->out.='<rtc>';$this->at($node);$this->out.='</rtc>';}else{$this->out.='<ruby>';$this->at($node);$this->out.='</ruby>';}elseif($tb<61)if($tb===57){$this->out.='<span';if($node->hasAttribute('class'))$this->out.=' class="'.\htmlspecialchars($node->getAttribute('class'),2).'"';$this->out.='>';$this->at($node);$this->out.='</span>';}elseif($tb===58){$this->out.='<sub>';$this->at($node);$this->out.='</sub>';}elseif($tb===59){$this->out.='<td';if($node->hasAttribute('colspan'))$this->out.=' colspan="'.\htmlspecialchars($node->getAttribute('colspan'),2).'"';if($node->hasAttribute('rowspan'))$this->out.=' rowspan="'.\htmlspecialchars($node->getAttribute('rowspan'),2).'"';$this->out.='>';$this->at($node);$this->out.='</td>';}else{$this->out.='<tfoot>';$this->at($node);$this->out.='</tfoot>';}elseif($tb===61){$this->out.='<th';if($node->hasAttribute('colspan'))$this->out.=' colspan="'.\htmlspecialchars($node->getAttribute('colspan'),2).'"';if($node->hasAttribute('rowspan'))$this->out.=' rowspan="'.\htmlspecialchars($node->getAttribute('rowspan'),2).'"';if($node->hasAttribute('scope'))$this->out.=' scope="'.\htmlspecialchars($node->getAttribute('scope'),2).'"';$this->out.='>';$this->at($node);$this->out.='</th>';}elseif($tb===62){$this->out.='<u>';$this->at($node);$this->out.='</u>';}elseif($tb===63){$this->out.='<ul>';$this->at($node);$this->out.='</ul>';}else{$this->out.='<p>';$this->at($node);$this->out.='</p>';}
 				}
 	}
 	private static $static=array('/C'=>'</code>','/CODE'=>'</code></pre>','/DEL'=>'</del>','/EM'=>'</em>','/EMAIL'=>'</a>','/ESC'=>'','/H1'=>'</h1>','/H2'=>'</h2>','/H3'=>'</h3>','/H4'=>'</h4>','/H5'=>'</h5>','/H6'=>'</h6>','/LI'=>'</li>','/QUOTE'=>'</blockquote>','/STRONG'=>'</strong>','/SUP'=>'</sup>','/TABLE'=>'</table>','/TBODY'=>'</tbody>','/TD'=>'</td>','/TH'=>'</th>','/THEAD'=>'</thead>','/TR'=>'</tr>','/URL'=>'</a>','/html:abbr'=>'</abbr>','/html:b'=>'</b>','/html:code'=>'</code>','/html:dd'=>'</dd>','/html:del'=>'</del>','/html:div'=>'</div>','/html:dl'=>'</dl>','/html:dt'=>'</dt>','/html:i'=>'</i>','/html:ins'=>'</ins>','/html:li'=>'</li>','/html:ol'=>'</ol>','/html:pre'=>'</pre>','/html:rb'=>'</rb>','/html:rp'=>'</rp>','/html:rt'=>'</rt>','/html:rtc'=>'</rtc>','/html:ruby'=>'</ruby>','/html:span'=>'</span>','/html:strong'=>'</strong>','/html:sub'=>'</sub>','/html:sup'=>'</sup>','/html:table'=>'</table>','/html:tbody'=>'</tbody>','/html:td'=>'</td>','/html:tfoot'=>'</tfoot>','/html:th'=>'</th>','/html:thead'=>'</thead>','/html:tr'=>'</tr>','/html:u'=>'</u>','/html:ul'=>'</ul>','C'=>'<code>','DEL'=>'<del>','EM'=>'<em>','ESC'=>'','H1'=>'<h1>','H2'=>'<h2>','H3'=>'<h3>','H4'=>'<h4>','H5'=>'<h5>','H6'=>'<h6>','HR'=>'<hr>','LI'=>'<li>','QUOTE'=>'<blockquote>','STRONG'=>'<strong>','SUP'=>'<sup>','TABLE'=>'<table>','TBODY'=>'<tbody>','THEAD'=>'<thead>','TR'=>'<tr>','html:b'=>'<b>','html:br'=>'<br>','html:code'=>'<code>','html:dd'=>'<dd>','html:del'=>'<del>','html:dl'=>'<dl>','html:dt'=>'<dt>','html:i'=>'<i>','html:ins'=>'<ins>','html:li'=>'<li>','html:ol'=>'<ol>','html:pre'=>'<pre>','html:rb'=>'<rb>','html:rp'=>'<rp>','html:rt'=>'<rt>','html:rtc'=>'<rtc>','html:ruby'=>'<ruby>','html:strong'=>'<strong>','html:sub'=>'<sub>','html:sup'=>'<sup>','html:table'=>'<table>','html:tbody'=>'<tbody>','html:tfoot'=>'<tfoot>','html:thead'=>'<thead>','html:tr'=>'<tr>','html:u'=>'<u>','html:ul'=>'<ul>');
@@ -111,7 +111,7 @@ class Renderer extends \s9e\TextFormatter\Renderer
 				$attributes[$attrName] = $matches[2][$i];
 		}
 		$qb = self::$quickBranches[$id];
-		if($qb<7){if($qb<4)if($qb===0){$attributes=\array_pop(self::$attributes);$html='';if(!isset($attributes['type']))$html.='</ul>';else$html.='</ol>';}elseif($qb===1){$attributes+=array('track_num'=>\null,'track_id'=>\null);$html='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if(isset($attributes['album_id'])){$html.='album='.$attributes['album_id'];if(isset($attributes['track_num']))$html.='/t='.$attributes['track_num'];}else$html.='track='.$attributes['track_id'];$html.='"></iframe></div></div>';}elseif($qb===2){$html='<pre><code';if(isset($attributes['lang']))$html.=' class="language-'.$attributes['lang'].'"';$html.='>';}else{$attributes+=array('type'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars(\htmlspecialchars_decode($attributes['type']).\htmlspecialchars_decode($attributes['id']),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';}elseif($qb===4){$attributes+=array('char'=>\null);$html=\str_replace('&quot;','"',$attributes['char']);}elseif($qb===5){$attributes+=array('content'=>\null);$html='<!--'.\str_replace('&quot;','"',$attributes['content']).'-->';}else{$html='';if(!isset($attributes['type']))$html.='<ul>';else{$html.='<ol';if(isset($attributes['start']))$html.=' start="'.$attributes['start'].'"';$html.='>';}self::$attributes[]=$attributes;}}elseif($qb<10)if($qb===7){$attributes+=array('secret_token'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if(isset($attributes['playlist_id']))$html.='https%3A//api.soundcloud.com/playlists/'.$attributes['playlist_id'];elseif(isset($attributes['track_id']))$html.='https%3A//api.soundcloud.com/tracks/'.$attributes['track_id'].'&amp;secret_token='.$attributes['secret_token'];else{if((\strpos($attributes['id'],'://')===\false))$html.='https%3A//soundcloud.com/';$html.=$attributes['id'];}$html.='" style="border:0;height:';if(isset($attributes['playlist_id'])||(\strpos($attributes['id'],'/sets/')!==\false))$html.='450';else$html.='166';$html.='px;max-width:900px;width:100%"></iframe>';}elseif($qb===8){$attributes+=array('path'=>\null);$html='<div data-s9e-mediaembed="spotify" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:120%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="https://embed.spotify.com/?view=coverart&amp;uri=';if(isset($attributes['uri']))$html.=$attributes['uri'];else$html.='spotify:'.\strtr($attributes['path'],'/',':');$html.='"></iframe></div></div>';}else{$html='<td';if(isset($attributes['align']))$html.=' style="text-align:'.$attributes['align'].'"';$html.='>';}elseif($qb===10){$html='<th';if(isset($attributes['align']))$html.=' style="text-align:'.$attributes['align'].'"';$html.='>';}elseif($qb===11){$attributes+=array('channel'=>\null);$html='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if(isset($attributes['clip_id']))$html.='//clips.twitch.tv/embed?autoplay=false&amp;clip='.$attributes['channel'].'/'.$attributes['clip_id'];else{$html.='//player.twitch.tv/?autoplay=false&amp;';if(isset($attributes['archive_id']))$html.='video=a'.$attributes['archive_id'];elseif(isset($attributes['chapter_id']))$html.='video=c'.$attributes['chapter_id'];elseif(isset($attributes['video_id']))$html.='video=v'.$attributes['video_id'];else$html.='channel='.$attributes['channel'];if(isset($attributes['t']))$html.='&amp;time='.$attributes['t'];}$html.='"></iframe></div></div>';}else{$attributes+=array('id'=>\null,'m'=>\null,'s'=>\null);$html='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.$attributes['id'].'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.$attributes['id'];if(isset($attributes['list']))$html.='?list='.$attributes['list'];if(isset($attributes['t'])||isset($attributes['m'])){if(isset($attributes['list']))$html.='&amp;';else$html.='?';$html.='start=';if(isset($attributes['t']))$html.=$attributes['t'];elseif(isset($attributes['h']))$html.=\htmlspecialchars($attributes['h']*3600+$attributes['m']*60+$attributes['s'],2);else$html.=\htmlspecialchars($attributes['m']*60+$attributes['s'],2);}$html.='"></iframe></div></div>';}
+		if($qb<7){if($qb<4)if($qb===0){$attributes=\array_pop(self::$attributes);$html='';if(!isset($attributes['type']))$html.='</ul>';else$html.='</ol>';}elseif($qb===1){$attributes+=array('track_num'=>\null,'track_id'=>\null);$html='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if(isset($attributes['album_id'])){$html.='album='.$attributes['album_id'];if(isset($attributes['track_num']))$html.='/t='.$attributes['track_num'];}else$html.='track='.$attributes['track_id'];$html.='"></iframe></div></div>';}elseif($qb===2){$html='<pre><code';if(isset($attributes['lang']))$html.=' class="language-'.$attributes['lang'].'"';$html.='>';}else{$attributes+=array('type'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars(\htmlspecialchars_decode($attributes['type']).\htmlspecialchars_decode($attributes['id']),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';}elseif($qb===4){$attributes+=array('char'=>\null);$html=\str_replace('&quot;','"',$attributes['char']);}elseif($qb===5){$attributes+=array('content'=>\null);$html='<!--'.\str_replace('&quot;','"',$attributes['content']).'-->';}else{$html='';if(!isset($attributes['type']))$html.='<ul>';else{$html.='<ol';if(isset($attributes['start']))$html.=' start="'.$attributes['start'].'"';$html.='>';}self::$attributes[]=$attributes;}}elseif($qb<10)if($qb===7){$attributes+=array('secret_token'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if(isset($attributes['playlist_id']))$html.='https%3A//api.soundcloud.com/playlists/'.$attributes['playlist_id'];elseif(isset($attributes['track_id']))$html.='https%3A//api.soundcloud.com/tracks/'.$attributes['track_id'].'&amp;secret_token='.$attributes['secret_token'];else{if((\strpos($attributes['id'],'://')===\false))$html.='https%3A//soundcloud.com/';$html.=$attributes['id'];}$html.='" style="border:0;height:';if(isset($attributes['playlist_id'])||(\strpos($attributes['id'],'/sets/')!==\false))$html.='450';else$html.='166';$html.='px;max-width:900px;width:100%"></iframe>';}elseif($qb===8){$attributes+=array('path'=>\null);$html='<div data-s9e-mediaembed="spotify" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:120%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="https://embed.spotify.com/?view=coverart&amp;uri=';if(isset($attributes['uri']))$html.=$attributes['uri'];else$html.='spotify:'.\strtr($attributes['path'],'/',':');$html.='"></iframe></div></div>';}else{$html='<td';if(isset($attributes['align']))$html.=' style="text-align:'.$attributes['align'].'"';$html.='>';}elseif($qb===10){$html='<th';if(isset($attributes['align']))$html.=' style="text-align:'.$attributes['align'].'"';$html.='>';}elseif($qb===11){$attributes+=array('channel'=>\null,'clip_id'=>\null);$html='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if(isset($attributes['clip_id'])){$html.='//clips.twitch.tv/embed?autoplay=false&amp;clip=';if(isset($attributes['channel']))$html.=$attributes['channel'].'/';$html.=$attributes['clip_id'];}else{$html.='//player.twitch.tv/?autoplay=false&amp;';if(isset($attributes['video_id']))$html.='video=v'.$attributes['video_id'];else$html.='channel='.$attributes['channel'];if(isset($attributes['t']))$html.='&amp;time='.$attributes['t'];}$html.='"></iframe></div></div>';}else{$attributes+=array('id'=>\null,'m'=>\null,'s'=>\null);$html='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.$attributes['id'].'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.$attributes['id'];if(isset($attributes['list']))$html.='?list='.$attributes['list'];if(isset($attributes['t'])||isset($attributes['m'])){if(isset($attributes['list']))$html.='&amp;';else$html.='?';$html.='start=';if(isset($attributes['t']))$html.=$attributes['t'];elseif(isset($attributes['h']))$html.=\htmlspecialchars($attributes['h']*3600+$attributes['m']*60+$attributes['s'],2);else$html.=\htmlspecialchars($attributes['m']*60+$attributes['s'],2);}$html.='"></iframe></div></div>';}
 		return $html;
 	}
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Bundles/Forum.php
+++ b/vendor/s9e/text-formatter/src/Bundles/Forum.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Bundles;
@@ -12,7 +12,7 @@ abstract class Forum extends \s9e\TextFormatter\Bundle
 	protected static $renderer;
 	public static function getParser()
 	{
-		return \unserialize('O:24:"s9e\\TextFormatter\\Parser":4:{s:16:"' . "\0" . '*' . "\0" . 'pluginsConfig";a:5:{s:9:"Autoemail";a:5:{s:8:"attrName";s:5:"email";s:10:"quickMatch";s:1:"@";s:6:"regexp";s:39:"/\\b[-a-z0-9_+.]+@[-a-z0-9.]*[a-z0-9]/Si";s:7:"tagName";s:5:"EMAIL";s:11:"regexpLimit";i:10000;}s:8:"Autolink";a:5:{s:8:"attrName";s:3:"url";s:6:"regexp";s:109:"#\\bhttps?://\\S(?>[^\\s\\[\\]\\x{FF01}-\\x{FF0F}\\x{FF1A}-\\x{FF20}\\x{FF3B}-\\x{FF40}\\x{FF5B}-\\x{FF65}]|\\[\\w*\\])++#Siu";s:7:"tagName";s:3:"URL";s:10:"quickMatch";s:3:"://";s:11:"regexpLimit";i:10000;}s:7:"BBCodes";a:4:{s:7:"bbcodes";a:38:{s:1:"*";a:1:{s:7:"tagName";s:2:"LI";}s:1:"B";a:0:{}s:8:"BANDCAMP";a:2:{s:17:"contentAttributes";a:1:{i:0;s:3:"url";}s:16:"defaultAttribute";s:3:"url";}s:6:"CENTER";R:19;s:4:"CODE";a:1:{s:16:"defaultAttribute";s:4:"lang";}s:5:"COLOR";R:19;s:11:"DAILYMOTION";R:20;s:5:"EMAIL";a:1:{s:17:"contentAttributes";a:1:{i:0;s:5:"email";}}s:8:"FACEBOOK";R:20;s:4:"FONT";R:19;s:1:"I";R:19;s:3:"IMG";a:2:{s:17:"contentAttributes";a:1:{i:0;s:3:"src";}s:16:"defaultAttribute";s:3:"src";}s:9:"INDIEGOGO";R:20;s:9:"INSTAGRAM";R:20;s:11:"KICKSTARTER";R:20;s:2:"LI";R:19;s:4:"LIST";a:1:{s:16:"defaultAttribute";s:4:"type";}s:8:"LIVELEAK";R:20;s:5:"MEDIA";a:2:{s:17:"contentAttributes";R:21;s:16:"defaultAttribute";s:4:"site";}s:2:"OL";R:19;s:5:"QUOTE";a:1:{s:16:"defaultAttribute";s:6:"author";}s:1:"S";R:19;s:4:"SIZE";R:19;s:10:"SOUNDCLOUD";R:20;s:7:"SPOILER";a:1:{s:16:"defaultAttribute";s:5:"title";}s:5:"TABLE";R:19;s:2:"TD";a:1:{s:16:"defaultAttribute";s:5:"align";}s:2:"TH";R:41;s:2:"TR";R:19;s:6:"TWITCH";R:20;s:7:"TWITTER";R:20;s:1:"U";R:19;s:2:"UL";R:19;s:3:"URL";a:1:{s:17:"contentAttributes";R:21;}s:5:"VIMEO";R:20;s:4:"VINE";R:20;s:4:"WSHH";R:20;s:7:"YOUTUBE";R:20;}s:10:"quickMatch";s:1:"[";s:6:"regexp";s:30:"#\\[/?(\\*|[-\\w]+)(?=[\\]\\s=:/])#";s:11:"regexpLimit";i:10000;}s:5:"Emoji";a:4:{s:8:"attrName";s:3:"seq";s:7:"tagName";s:5:"EMOJI";s:7:"aliases";a:23:{s:2:":)";s:4:"🙂";s:3:":-)";s:4:"🙂";s:2:";)";s:4:"😉";s:3:";-)";s:4:"😉";s:2:":D";s:4:"😀";s:3:":-D";s:4:"😀";s:2:":(";s:3:"☹";s:3:":-(";s:3:"☹";s:3:":-*";s:4:"😘";s:2:":P";s:4:"😛";s:3:":-P";s:4:"😛";s:2:":p";s:4:"😛";s:3:":-p";s:4:"😛";s:2:";P";s:4:"😜";s:3:";-P";s:4:"😜";s:2:";p";s:4:"😜";s:3:";-p";s:4:"😜";s:2:":?";s:4:"😕";s:3:":-?";s:4:"😕";s:2:":|";s:4:"😐";s:3:":-|";s:4:"😐";s:2:":o";s:4:"😮";s:5:":lol:";s:4:"😂";}s:13:"aliasesRegexp";s:47:"/(?::(?:[()?DPop|]|-[()*?DPp|]|lol:)|;-?[)Pp])/";}s:10:"MediaEmbed";a:4:{s:10:"quickMatch";s:3:"://";s:6:"regexp";s:26:"/\\bhttps?:\\/\\/[^["\'\\s]+/Si";s:7:"tagName";s:5:"MEDIA";s:11:"regexpLimit";i:10000;}}s:14:"registeredVars";a:2:{s:9:"urlConfig";a:1:{s:14:"allowedSchemes";s:12:"/^https?$/Di";}s:10:"mediasites";a:15:{s:12:"bandcamp.com";s:8:"bandcamp";s:15:"dailymotion.com";s:11:"dailymotion";s:12:"facebook.com";s:8:"facebook";s:13:"indiegogo.com";s:9:"indiegogo";s:13:"instagram.com";s:9:"instagram";s:15:"kickstarter.com";s:11:"kickstarter";s:12:"liveleak.com";s:8:"liveleak";s:14:"soundcloud.com";s:10:"soundcloud";s:9:"twitch.tv";s:6:"twitch";s:11:"twitter.com";s:7:"twitter";s:9:"vimeo.com";s:5:"vimeo";s:7:"vine.co";s:4:"vine";s:19:"worldstarhiphop.com";s:4:"wshh";s:11:"youtube.com";s:7:"youtube";s:8:"youtu.be";s:7:"youtube";}}s:14:"' . "\0" . '*' . "\0" . 'rootContext";a:2:{s:7:"allowed";a:2:{i:0;i:65431;i:1;i:3855;}s:5:"flags";i:32;}s:13:"' . "\0" . '*' . "\0" . 'tagsConfig";a:38:{s:1:"B";a:6:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:42:"s9e\\TextFormatter\\Parser::filterAttributes";s:6:"params";a:4:{s:3:"tag";N;s:9:"tagConfig";N;s:14:"registeredVars";N;s:6:"logger";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:2;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:2:{i:0;i:65413;i:1;i:3855;}}s:8:"BANDCAMP";a:7:{s:10:"attributes";a:4:{s:8:"album_id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"!^\\d+$!D";}}}s:8:"required";b:0;}s:8:"track_id";R:124;s:9:"track_num";R:124;s:3:"url";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:50:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterUrl";s:6:"params";a:3:{s:9:"attrValue";N;s:9:"urlConfig";N;s:6:"logger";N;}}}s:8:"required";b:0;}}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:23:"!bandcamp\\.com/album/.!";i:1;s:25:"!/album=(?\'album_id\'\\d+)!";i:2;a:1:{i:0;s:8:"album_id";}}i:1;a:3:{i:0;s:23:"!bandcamp\\.com/track/.!";i:1;a:3:{i:0;s:29:"!"album_id":(?\'album_id\'\\d+)!";i:1;s:31:"!"track_num":(?\'track_num\'\\d+)!";i:2;s:25:"!/track=(?\'track_id\'\\d+)!";}i:2;a:3:{i:0;s:8:"album_id";i:1;s:8:"track_id";i:2;s:9:"track_num";}}}s:8:"cacheDir";N;}}i:1;R:107;i:2;a:2:{s:8:"callback";s:67:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::hasNonDefaultAttribute";s:6:"params";a:1:{s:3:"tag";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3089;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";a:2:{i:0;i:65285;i:1;i:3855;}}s:6:"CENTER";a:6:{s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";a:9:{s:1:"B";i:1;s:5:"COLOR";i:1;s:5:"EMAIL";i:1;s:4:"FONT";i:1;s:1:"I";i:1;s:1:"S";i:1;s:4:"SIZE";i:1;s:1:"U";i:1;s:3:"URL";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:100;}s:4:"CODE";a:7:{s:10:"attributes";a:1:{s:4:"lang";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:57:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterIdentifier";s:6:"params";a:1:{s:9:"attrValue";N;}}}s:8:"required";b:0;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:178;s:5:"flags";i:4432;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:2:{i:0;i:0;i:1;i:0;}}s:5:"COLOR";a:7:{s:10:"attributes";a:1:{s:5:"color";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:52:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterColor";s:6:"params";R:197;}}s:8:"required";b:1;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:115;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:119;}s:11:"DAILYMOTION";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^[A-Za-z0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:94:"!dailymotion\\.com/(?:live/|swf/|user/[^#]+#video=|(?:related/\\d+/)?video/)(?\'id\'[A-Za-z0-9]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'[A-Za-z0-9]+)$!D";i:2;R:232;}}s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:55:"s9e\\TextFormatter\\Parser::executeAttributePreprocessors";s:6:"params";a:2:{s:3:"tag";N;s:9:"tagConfig";N;}}i:1;R:107;}s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:5:"EMAIL";a:7:{s:10:"attributes";a:1:{s:5:"email";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:52:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterEmail";s:6:"params";R:197;}}s:8:"required";b:1;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:514;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:2;s:7:"allowed";a:2:{i:0;i:60291;i:1;i:0;}}s:5:"EMOJI";a:7:{s:10:"attributes";a:1:{s:3:"seq";a:2:{s:11:"filterChain";R:194;s:8:"required";b:1;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:119;}s:8:"FACEBOOK";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"@^\\d+$@D";}}}s:8:"required";b:1;}s:4:"type";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"#^video$#D";}}}s:8:"required";b:0;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:135:"@/(?!(?:apps|developers|graph)\\.)[-\\w.]*facebook\\.com/(?:[/\\w]+/permalink|(?!pages/|groups/).*?)(?:/|fbid=|\\?v=)(?\'id\'\\d+)(?=$|[/?&#])@";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:20:"#/(?\'type\'video)s?/#";i:2;a:2:{i:0;s:0:"";i:1;s:4:"type";}}i:2;a:3:{i:0;s:3:"url";i:1;s:15:"@^(?\'id\'\\d+)$@D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:8;s:7:"allowed";a:2:{i:0;i:65285;i:1;i:3854;}}s:4:"FONT";a:7:{s:10:"attributes";a:1:{s:4:"font";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:74:"/^(?:\'[- \\w]+\'|"[- \\w]+"|[- \\w]+)(?:, *(?:\'[- \\w]+\'|"[- \\w]+"|[- \\w]+))*$/";}}}s:8:"required";b:1;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:115;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:119;}s:1:"I";R:105;s:3:"IMG";a:7:{s:10:"attributes";a:3:{s:3:"alt";a:1:{s:8:"required";b:0;}s:3:"src";a:2:{s:11:"filterChain";R:133;s:8:"required";b:1;}s:5:"title";R:321;}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:119;}s:9:"INDIEGOGO";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^[-\\w]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!indiegogo\\.com/projects/(?\'id\'[-\\w]+)!";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'[-\\w]+)$!D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:9:"INSTAGRAM";a:8:{s:10:"attributes";R:329;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:32:"!instagram\\.com/p/(?\'id\'[-\\w]+)!";i:2;R:232;}i:1;R:342;}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:9;s:7:"allowed";a:2:{i:0;i:65285;i:1;i:3853;}}s:11:"KICKSTARTER";a:8:{s:10:"attributes";a:4:{s:4:"card";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:9:"!^card$!D";}}}s:8:"required";b:0;}s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^[^/]+/[^/?]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:132;s:5:"video";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^video$!D";}}}s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:93:"!kickstarter\\.com/projects/(?\'id\'[^/]+/[^/?]+)(?:/widget/(?:(?\'card\'card)|(?\'video\'video)))?!";i:2;a:4:{i:0;s:0:"";i:1;s:2:"id";i:2;s:4:"card";i:3;s:5:"video";}}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'[^/]+/[^/?]+)$!D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:2:"LI";a:6:{s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:178;s:11:"closeParent";a:1:{s:2:"LI";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:3;s:7:"allowed";R:100;}s:4:"LIST";a:7:{s:10:"attributes";a:2:{s:5:"start";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterUint";s:6:"params";R:197;}}s:8:"required";b:0;}s:4:"type";a:2:{s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:54:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterHashmap";s:6:"params";a:3:{s:9:"attrValue";N;i:0;a:5:{s:1:"A";s:11:"upper-alpha";s:1:"I";s:11:"upper-roman";s:1:"a";s:11:"lower-alpha";s:1:"i";s:11:"lower-roman";i:1;s:7:"decimal";}i:1;b:0;}}i:1;a:2:{s:8:"callback";s:57:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterSimpletext";s:6:"params";R:197;}}s:8:"required";b:0;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:11:"createChild";a:1:{i:0;s:2:"LI";}s:12:"fosterParent";R:178;s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:2:{i:0;i:65416;i:1;i:3840;}}s:8:"LIVELEAK";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"!^[a-f_0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!liveleak\\.com/view\\?i=(?\'id\'[a-f_0-9]+)!";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"!^(?\'id\'[a-f_0-9]+)$!D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:5:"MEDIA";a:6:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:54:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::filterTag";s:6:"params";a:3:{s:3:"tag";N;s:6:"parser";N;s:10:"mediasites";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:513;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";a:2:{i:0;i:65303;i:1;i:3855;}}s:2:"OL";a:6:{s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:178;s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:438;}s:5:"QUOTE";a:7:{s:10:"attributes";a:1:{s:6:"author";R:321;}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:177;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:100;}s:1:"S";R:105;s:4:"SIZE";a:7:{s:10:"attributes";a:1:{s:4:"size";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:52:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRange";s:6:"params";a:4:{s:9:"attrValue";N;i:0;i:8;i:1;i:36;s:6:"logger";N;}}}s:8:"required";b:1;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:115;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:119;}s:10:"SOUNDCLOUD";a:8:{s:10:"attributes";a:5:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:83:"@^(?:https?://(?:api\\.)?soundcloud\\.com/(?!pages/)[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)$@D";}}}s:8:"required";b:1;}s:11:"playlist_id";a:2:{s:11:"filterChain";R:272;s:8:"required";b:0;}s:12:"secret_token";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"@^[-\\w]+$@D";}}}s:8:"required";b:0;}s:8:"track_id";R:513;s:3:"url";R:132;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:83:"@(?\'id\'https?://(?:api\\.)?soundcloud\\.com/(?!pages/)[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)@";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:52:"@api\\.soundcloud\\.com/playlists/(?\'playlist_id\'\\d+)@";i:2;a:2:{i:0;s:0:"";i:1;s:11:"playlist_id";}}i:2;a:3:{i:0;s:3:"url";i:1;s:89:"@api\\.soundcloud\\.com/tracks/(?\'track_id\'\\d+)(?:\\?secret_token=(?\'secret_token\'[-\\w]+))?@";i:2;a:3:{i:0;s:0:"";i:1;s:8:"track_id";i:2;s:12:"secret_token";}}i:3;a:3:{i:0;s:3:"url";i:1;s:81:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/(?=s-)(?\'secret_token\'[-\\w]+)@";i:2;a:2:{i:0;s:0:"";i:1;s:12:"secret_token";}}i:4;a:3:{i:0;s:3:"url";i:1;s:90:"@^(?\'id\'(?:https?://(?:api\\.)?soundcloud\\.com/(?!pages/)[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$))$@D";i:2;R:232;}}s:11:"filterChain";a:3:{i:0;R:239;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:54:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/s-@";i:1;s:36:"@soundcloud:tracks:(?\'track_id\'\\d+)@";i:2;a:1:{i:0;s:8:"track_id";}}i:1;a:3:{i:0;s:27:"@soundcloud\\.com/\\w+/sets/@";i:1;s:44:"@soundcloud://playlists:(?\'playlist_id\'\\d+)@";i:2;a:1:{i:0;s:11:"playlist_id";}}}s:8:"cacheDir";N;}}i:2;R:107;}s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:10;s:7:"allowed";a:2:{i:0;i:65285;i:1;i:3851;}}s:7:"SPOILER";a:7:{s:10:"attributes";a:1:{s:5:"title";R:321;}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:177;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:100;}s:5:"TABLE";a:6:{s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:479;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:2:{i:0;i:65472;i:1;i:3840;}}s:2:"TD";a:7:{s:10:"attributes";a:1:{s:5:"align";a:2:{s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:10:"strtolower";s:6:"params";R:197;}i:1;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:34:"/^(?>center|justify|left|right)$/D";}}}s:8:"required";b:0;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:178;s:11:"closeParent";a:2:{s:2:"TD";i:1;s:2:"TH";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:5;s:7:"allowed";R:100;}s:2:"TH";R:584;s:2:"TR";a:6:{s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:178;s:11:"closeParent";a:3:{s:2:"TD";i:1;s:2:"TH";i:1;s:2:"TR";i:1;}s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:6;s:7:"allowed";a:2:{i:0;i:65440;i:1;i:3840;}}s:6:"TWITCH";a:8:{s:10:"attributes";a:7:{s:10:"archive_id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\d+$#D";}}}s:8:"required";b:0;}s:7:"channel";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\w+$#D";}}}s:8:"required";b:0;}s:10:"chapter_id";R:619;s:7:"clip_id";R:627;s:1:"t";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:27:"#^(?:(?:\\d+h)?\\d+m)?\\d+s$#D";}}}s:8:"required";b:0;}s:3:"url";R:132;s:8:"video_id";R:619;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:96:"#twitch\\.tv/(?\'channel\'\\w+)(?:/b/(?\'archive_id\'\\d+)|/c/(?\'chapter_id\'\\d+)|/v/(?\'video_id\'\\d+))?#";i:2;a:5:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:10:"archive_id";i:3;s:10:"chapter_id";i:4;s:8:"video_id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:32:"#t=(?\'t\'(?:(?:\\d+h)?\\d+m)?\\d+s)#";i:2;a:2:{i:0;s:0:"";i:1;s:1:"t";}}i:2;a:3:{i:0;s:3:"url";i:1;s:51:"#clips\\.twitch\\.tv/(?\'channel\'\\w+)/(?\'clip_id\'\\w+)#";i:2;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:7:"clip_id";}}}s:11:"filterChain";a:3:{i:0;R:239;i:1;R:107;i:2;R:163;}s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:7:"TWITTER";a:8:{s:10:"attributes";a:2:{s:2:"id";R:271;s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:51:"@twitter\\.com/(?:#!/)?\\w+/status(?:es)?/(?\'id\'\\d+)@";i:2;R:232;}i:1;R:297;}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:11;s:7:"allowed";a:2:{i:0;i:65285;i:1;i:3847;}}s:1:"U";R:105;s:2:"UL";R:477;s:3:"URL";a:7:{s:10:"attributes";a:2:{s:5:"title";R:321;s:3:"url";R:323;}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:255;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:2;s:7:"allowed";R:259;}s:5:"VIMEO";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";R:125;s:8:"required";b:1;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!vimeo\\.com/(?:channels/[^/]+/|video/)?(?\'id\'\\d+)!";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"!^(?\'id\'\\d+)$!D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:4:"VINE";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^[^/]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:25:"!vine\\.co/v/(?\'id\'[^/]+)!";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:17:"!^(?\'id\'[^/]+)$!D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:4:"WSHH";a:8:{s:10:"attributes";R:688;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:42:"!worldstarhiphop\\.com/featured/(?\'id\'\\d+)!";i:2;R:232;}i:1;R:695;}s:11:"filterChain";a:3:{i:0;R:239;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:49:"!worldstarhiphop\\.com/(?:\\w+/)?video\\.php\\?v=\\w+!";i:1;s:35:"!disqus_identifier[ =\']+(?\'id\'\\d+)!";i:2;a:1:{i:0;s:2:"id";}}}s:8:"cacheDir";N;}}i:2;R:107;}s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:7:"YOUTUBE";a:8:{s:10:"attributes";a:7:{s:1:"h";R:124;s:2:"id";R:330;s:4:"list";a:2:{s:11:"filterChain";R:331;s:8:"required";b:0;}s:1:"m";R:124;s:1:"s";R:124;s:1:"t";R:124;s:3:"url";R:132;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:45:"!youtube\\.com/(?:watch.*?v=|v/)(?\'id\'[-\\w]+)!";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:25:"!youtu\\.be/(?\'id\'[-\\w]+)!";i:2;R:232;}i:2;a:3:{i:0;s:3:"url";i:1;s:57:"![#&?]t=(?:(?:(?\'h\'\\d+)h)?(?\'m\'\\d+)m(?\'s\'\\d+)|(?\'t\'\\d+))!";i:2;a:5:{i:0;s:0:"";i:1;s:1:"h";i:2;s:1:"m";i:3;s:1:"s";i:4;s:1:"t";}}i:3;a:3:{i:0;s:3:"url";i:1;s:23:"!&list=(?\'list\'[-\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:4:"list";}}i:4;R:342;}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}}}');
+		return \unserialize('O:24:"s9e\\TextFormatter\\Parser":4:{s:16:"' . "\0" . '*' . "\0" . 'pluginsConfig";a:5:{s:9:"Autoemail";a:5:{s:8:"attrName";s:5:"email";s:10:"quickMatch";s:1:"@";s:6:"regexp";s:39:"/\\b[-a-z0-9_+.]+@[-a-z0-9.]*[a-z0-9]/Si";s:7:"tagName";s:5:"EMAIL";s:11:"regexpLimit";i:10000;}s:8:"Autolink";a:5:{s:8:"attrName";s:3:"url";s:6:"regexp";s:124:"#\\bhttps?://\\S(?>[^\\s()\\[\\]\\x{FF01}-\\x{FF0F}\\x{FF1A}-\\x{FF20}\\x{FF3B}-\\x{FF40}\\x{FF5B}-\\x{FF65}]|\\([^\\s()]*\\)|\\[\\w*\\])++#Siu";s:7:"tagName";s:3:"URL";s:10:"quickMatch";s:3:"://";s:11:"regexpLimit";i:10000;}s:7:"BBCodes";a:4:{s:7:"bbcodes";a:38:{s:1:"*";a:1:{s:7:"tagName";s:2:"LI";}s:1:"B";a:0:{}s:8:"BANDCAMP";a:2:{s:17:"contentAttributes";a:1:{i:0;s:3:"url";}s:16:"defaultAttribute";s:3:"url";}s:6:"CENTER";R:19;s:4:"CODE";a:1:{s:16:"defaultAttribute";s:4:"lang";}s:5:"COLOR";R:19;s:11:"DAILYMOTION";R:20;s:5:"EMAIL";a:1:{s:17:"contentAttributes";a:1:{i:0;s:5:"email";}}s:8:"FACEBOOK";R:20;s:4:"FONT";R:19;s:1:"I";R:19;s:3:"IMG";a:2:{s:17:"contentAttributes";a:1:{i:0;s:3:"src";}s:16:"defaultAttribute";s:3:"src";}s:9:"INDIEGOGO";R:20;s:9:"INSTAGRAM";R:20;s:11:"KICKSTARTER";R:20;s:2:"LI";R:19;s:4:"LIST";a:1:{s:16:"defaultAttribute";s:4:"type";}s:8:"LIVELEAK";R:20;s:5:"MEDIA";a:2:{s:17:"contentAttributes";R:21;s:16:"defaultAttribute";s:4:"site";}s:2:"OL";R:19;s:5:"QUOTE";a:1:{s:16:"defaultAttribute";s:6:"author";}s:1:"S";R:19;s:4:"SIZE";R:19;s:10:"SOUNDCLOUD";R:20;s:7:"SPOILER";a:1:{s:16:"defaultAttribute";s:5:"title";}s:5:"TABLE";R:19;s:2:"TD";a:1:{s:16:"defaultAttribute";s:5:"align";}s:2:"TH";R:41;s:2:"TR";R:19;s:6:"TWITCH";R:20;s:7:"TWITTER";R:20;s:1:"U";R:19;s:2:"UL";R:19;s:3:"URL";a:1:{s:17:"contentAttributes";R:21;}s:5:"VIMEO";R:20;s:4:"VINE";R:20;s:4:"WSHH";R:20;s:7:"YOUTUBE";R:20;}s:10:"quickMatch";s:1:"[";s:6:"regexp";s:30:"#\\[/?(\\*|[-\\w]+)(?=[\\]\\s=:/])#";s:11:"regexpLimit";i:10000;}s:5:"Emoji";a:4:{s:8:"attrName";s:3:"seq";s:7:"tagName";s:5:"EMOJI";s:7:"aliases";a:23:{s:2:":)";s:4:"🙂";s:3:":-)";s:4:"🙂";s:2:";)";s:4:"😉";s:3:";-)";s:4:"😉";s:2:":D";s:4:"😀";s:3:":-D";s:4:"😀";s:2:":(";s:3:"☹";s:3:":-(";s:3:"☹";s:3:":-*";s:4:"😘";s:2:":P";s:4:"😛";s:3:":-P";s:4:"😛";s:2:":p";s:4:"😛";s:3:":-p";s:4:"😛";s:2:";P";s:4:"😜";s:3:";-P";s:4:"😜";s:2:";p";s:4:"😜";s:3:";-p";s:4:"😜";s:2:":?";s:4:"😕";s:3:":-?";s:4:"😕";s:2:":|";s:4:"😐";s:3:":-|";s:4:"😐";s:2:":o";s:4:"😮";s:5:":lol:";s:4:"😂";}s:13:"aliasesRegexp";s:47:"/(?::(?:[()?DPop|]|-[()*?DPp|]|lol:)|;-?[)Pp])/";}s:10:"MediaEmbed";a:4:{s:10:"quickMatch";s:3:"://";s:6:"regexp";s:26:"/\\bhttps?:\\/\\/[^["\'\\s]+/Si";s:7:"tagName";s:5:"MEDIA";s:11:"regexpLimit";i:10000;}}s:14:"registeredVars";a:2:{s:9:"urlConfig";a:1:{s:14:"allowedSchemes";s:12:"/^https?$/Di";}s:10:"mediasites";a:15:{s:12:"bandcamp.com";s:8:"bandcamp";s:15:"dailymotion.com";s:11:"dailymotion";s:12:"facebook.com";s:8:"facebook";s:13:"indiegogo.com";s:9:"indiegogo";s:13:"instagram.com";s:9:"instagram";s:15:"kickstarter.com";s:11:"kickstarter";s:12:"liveleak.com";s:8:"liveleak";s:14:"soundcloud.com";s:10:"soundcloud";s:9:"twitch.tv";s:6:"twitch";s:11:"twitter.com";s:7:"twitter";s:9:"vimeo.com";s:5:"vimeo";s:7:"vine.co";s:4:"vine";s:19:"worldstarhiphop.com";s:4:"wshh";s:11:"youtube.com";s:7:"youtube";s:8:"youtu.be";s:7:"youtube";}}s:14:"' . "\0" . '*' . "\0" . 'rootContext";a:2:{s:7:"allowed";a:2:{i:0;i:65431;i:1;i:3855;}s:5:"flags";i:32;}s:13:"' . "\0" . '*' . "\0" . 'tagsConfig";a:38:{s:1:"B";a:6:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:42:"s9e\\TextFormatter\\Parser::filterAttributes";s:6:"params";a:4:{s:3:"tag";N;s:9:"tagConfig";N;s:14:"registeredVars";N;s:6:"logger";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:2;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:2:{i:0;i:65413;i:1;i:3855;}}s:8:"BANDCAMP";a:7:{s:10:"attributes";a:4:{s:8:"album_id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"!^\\d+$!D";}}}s:8:"required";b:0;}s:8:"track_id";R:124;s:9:"track_num";R:124;s:3:"url";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:50:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterUrl";s:6:"params";a:3:{s:9:"attrValue";N;s:9:"urlConfig";N;s:6:"logger";N;}}}s:8:"required";b:0;}}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:23:"!bandcamp\\.com/album/.!";i:1;s:25:"!/album=(?\'album_id\'\\d+)!";i:2;a:1:{i:0;s:8:"album_id";}}i:1;a:3:{i:0;s:23:"!bandcamp\\.com/track/.!";i:1;a:3:{i:0;s:29:"!"album_id":(?\'album_id\'\\d+)!";i:1;s:31:"!"track_num":(?\'track_num\'\\d+)!";i:2;s:25:"!/track=(?\'track_id\'\\d+)!";}i:2;a:3:{i:0;s:8:"album_id";i:1;s:8:"track_id";i:2;s:9:"track_num";}}}s:8:"cacheDir";N;}}i:1;R:107;i:2;a:2:{s:8:"callback";s:67:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::hasNonDefaultAttribute";s:6:"params";a:1:{s:3:"tag";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3089;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";a:2:{i:0;i:32768;i:1;i:0;}}s:6:"CENTER";a:6:{s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";a:9:{s:1:"B";i:1;s:5:"COLOR";i:1;s:5:"EMAIL";i:1;s:4:"FONT";i:1;s:1:"I";i:1;s:1:"S";i:1;s:4:"SIZE";i:1;s:1:"U";i:1;s:3:"URL";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:100;}s:4:"CODE";a:7:{s:10:"attributes";a:1:{s:4:"lang";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:57:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterIdentifier";s:6:"params";a:1:{s:9:"attrValue";N;}}}s:8:"required";b:0;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:178;s:5:"flags";i:4432;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:2:{i:0;i:0;i:1;i:0;}}s:5:"COLOR";a:7:{s:10:"attributes";a:1:{s:5:"color";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:52:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterColor";s:6:"params";R:197;}}s:8:"required";b:1;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:115;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:119;}s:11:"DAILYMOTION";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^[A-Za-z0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:94:"!dailymotion\\.com/(?:live/|swf/|user/[^#]+#video=|(?:related/\\d+/)?video/)(?\'id\'[A-Za-z0-9]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'[A-Za-z0-9]+)$!D";i:2;R:232;}}s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:55:"s9e\\TextFormatter\\Parser::executeAttributePreprocessors";s:6:"params";a:2:{s:3:"tag";N;s:9:"tagConfig";N;}}i:1;R:107;}s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:5:"EMAIL";a:7:{s:10:"attributes";a:1:{s:5:"email";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:52:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterEmail";s:6:"params";R:197;}}s:8:"required";b:1;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:514;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:2;s:7:"allowed";a:2:{i:0;i:60291;i:1;i:0;}}s:5:"EMOJI";a:7:{s:10:"attributes";a:1:{s:3:"seq";a:2:{s:11:"filterChain";R:194;s:8:"required";b:1;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:2:{i:0;i:32896;i:1;i:0;}}s:8:"FACEBOOK";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"@^\\d+$@D";}}}s:8:"required";b:1;}s:4:"type";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"#^video$#D";}}}s:8:"required";b:0;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:135:"@/(?!(?:apps|developers|graph)\\.)[-\\w.]*facebook\\.com/(?:[/\\w]+/permalink|(?!pages/|groups/).*?)(?:/|fbid=|\\?v=)(?\'id\'\\d+)(?=$|[/?&#])@";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:20:"#/(?\'type\'video)s?/#";i:2;a:2:{i:0;s:0:"";i:1;s:4:"type";}}i:2;a:3:{i:0;s:3:"url";i:1;s:15:"@^(?\'id\'\\d+)$@D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:8;s:7:"allowed";a:2:{i:0;i:65285;i:1;i:3854;}}s:4:"FONT";a:7:{s:10:"attributes";a:1:{s:4:"font";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:74:"/^(?:\'[- \\w]+\'|"[- \\w]+"|[- \\w]+)(?:, *(?:\'[- \\w]+\'|"[- \\w]+"|[- \\w]+))*$/";}}}s:8:"required";b:1;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:115;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:119;}s:1:"I";R:105;s:3:"IMG";a:7:{s:10:"attributes";a:3:{s:3:"alt";a:1:{s:8:"required";b:0;}s:3:"src";a:2:{s:11:"filterChain";R:133;s:8:"required";b:1;}s:5:"title";R:324;}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:269;}s:9:"INDIEGOGO";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^[-\\w]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!indiegogo\\.com/projects/(?\'id\'[-\\w]+)!";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'[-\\w]+)$!D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:9:"INSTAGRAM";a:8:{s:10:"attributes";R:332;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:32:"!instagram\\.com/p/(?\'id\'[-\\w]+)!";i:2;R:232;}i:1;R:345;}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:9;s:7:"allowed";a:2:{i:0;i:65285;i:1;i:3853;}}s:11:"KICKSTARTER";a:8:{s:10:"attributes";a:4:{s:4:"card";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:9:"!^card$!D";}}}s:8:"required";b:0;}s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^[^/]+/[^/?]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:132;s:5:"video";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^video$!D";}}}s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:93:"!kickstarter\\.com/projects/(?\'id\'[^/]+/[^/?]+)(?:/widget/(?:(?\'card\'card)|(?\'video\'video)))?!";i:2;a:4:{i:0;s:0:"";i:1;s:2:"id";i:2;s:4:"card";i:3;s:5:"video";}}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'[^/]+/[^/?]+)$!D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:2:"LI";a:6:{s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:178;s:11:"closeParent";a:1:{s:2:"LI";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:3;s:7:"allowed";R:100;}s:4:"LIST";a:7:{s:10:"attributes";a:2:{s:5:"start";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterUint";s:6:"params";R:197;}}s:8:"required";b:0;}s:4:"type";a:2:{s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:54:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterHashmap";s:6:"params";a:3:{s:9:"attrValue";N;i:0;a:5:{s:1:"A";s:11:"upper-alpha";s:1:"I";s:11:"upper-roman";s:1:"a";s:11:"lower-alpha";s:1:"i";s:11:"lower-roman";i:1;s:7:"decimal";}i:1;b:0;}}i:1;a:2:{s:8:"callback";s:57:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterSimpletext";s:6:"params";R:197;}}s:8:"required";b:0;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:11:"createChild";a:1:{i:0;s:2:"LI";}s:12:"fosterParent";R:178;s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:2:{i:0;i:65416;i:1;i:3840;}}s:8:"LIVELEAK";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"!^[a-f_0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!liveleak\\.com/view\\?i=(?\'id\'[a-f_0-9]+)!";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"!^(?\'id\'[a-f_0-9]+)$!D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:5:"MEDIA";a:6:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:54:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::filterTag";s:6:"params";a:3:{s:3:"tag";N;s:6:"parser";N;s:10:"mediasites";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:513;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";a:2:{i:0;i:65303;i:1;i:3855;}}s:2:"OL";a:6:{s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:2:{s:12:"fosterParent";R:178;s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:441;}s:5:"QUOTE";a:7:{s:10:"attributes";a:1:{s:6:"author";R:324;}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:177;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:100;}s:1:"S";R:105;s:4:"SIZE";a:7:{s:10:"attributes";a:1:{s:4:"size";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:52:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRange";s:6:"params";a:4:{s:9:"attrValue";N;i:0;i:8;i:1;i:36;s:6:"logger";N;}}}s:8:"required";b:1;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:115;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";R:119;}s:10:"SOUNDCLOUD";a:8:{s:10:"attributes";a:5:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:39:"@^(?:[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)$@iD";}}}s:8:"required";b:1;}s:11:"playlist_id";a:2:{s:11:"filterChain";R:275;s:8:"required";b:0;}s:12:"secret_token";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"@^[-\\w]+$@D";}}}s:8:"required";b:0;}s:8:"track_id";R:516;s:3:"url";R:132;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:84:"@https?://(?:api\\.)?soundcloud\\.com/(?!pages/)(?\'id\'[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)@i";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:52:"@api\\.soundcloud\\.com/playlists/(?\'playlist_id\'\\d+)@";i:2;a:2:{i:0;s:0:"";i:1;s:11:"playlist_id";}}i:2;a:3:{i:0;s:3:"url";i:1;s:89:"@api\\.soundcloud\\.com/tracks/(?\'track_id\'\\d+)(?:\\?secret_token=(?\'secret_token\'[-\\w]+))?@";i:2;a:3:{i:0;s:0:"";i:1;s:8:"track_id";i:2;s:12:"secret_token";}}i:3;a:3:{i:0;s:3:"url";i:1;s:81:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/(?=s-)(?\'secret_token\'[-\\w]+)@";i:2;a:2:{i:0;s:0:"";i:1;s:12:"secret_token";}}i:4;a:3:{i:0;s:3:"url";i:1;s:46:"@^(?\'id\'(?:[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$))$@iD";i:2;R:232;}}s:11:"filterChain";a:3:{i:0;R:239;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:56:"@soundcloud\\.com/(?!playlists/\\d|tracks/\\d)[-\\w]+/[-\\w]@";i:1;s:36:"@soundcloud:tracks:(?\'track_id\'\\d+)@";i:2;a:1:{i:0;s:8:"track_id";}}i:1;a:3:{i:0;s:27:"@soundcloud\\.com/\\w+/sets/@";i:1;s:44:"@soundcloud://playlists:(?\'playlist_id\'\\d+)@";i:2;a:1:{i:0;s:11:"playlist_id";}}}s:8:"cacheDir";N;}}i:2;R:107;}s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:10;s:7:"allowed";a:2:{i:0;i:65285;i:1;i:3851;}}s:7:"SPOILER";a:7:{s:10:"attributes";a:1:{s:5:"title";R:324;}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:177;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:100;}s:5:"TABLE";a:6:{s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:482;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:2:{i:0;i:65472;i:1;i:3840;}}s:2:"TD";a:7:{s:10:"attributes";a:1:{s:5:"align";a:2:{s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:10:"strtolower";s:6:"params";R:197;}i:1;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:34:"/^(?>center|justify|left|right)$/D";}}}s:8:"required";b:0;}}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:178;s:11:"closeParent";a:2:{s:2:"TD";i:1;s:2:"TH";i:1;}s:5:"flags";i:256;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:5;s:7:"allowed";R:100;}s:2:"TH";R:587;s:2:"TR";a:6:{s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";a:3:{s:12:"fosterParent";R:178;s:11:"closeParent";a:3:{s:2:"TD";i:1;s:2:"TH";i:1;s:2:"TR";i:1;}s:5:"flags";i:3456;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:6;s:7:"allowed";a:2:{i:0;i:65440;i:1;i:3840;}}s:6:"TWITCH";a:8:{s:10:"attributes";a:5:{s:7:"channel";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\w+$#D";}}}s:8:"required";b:0;}s:7:"clip_id";R:622;s:1:"t";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:27:"#^(?:(?:\\d+h)?\\d+m)?\\d+s$#D";}}}s:8:"required";b:0;}s:3:"url";R:132;s:8:"video_id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\d+$#D";}}}s:8:"required";b:0;}}s:22:"attributePreprocessors";a:4:{i:0;a:3:{i:0;s:3:"url";i:1;s:47:"#twitch\\.tv/(?:videos|\\w+/v)/(?\'video_id\'\\d+)?#";i:2;a:2:{i:0;s:0:"";i:1;s:8:"video_id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:44:"#www\\.twitch\\.tv/(?!videos/)(?\'channel\'\\w+)#";i:2;a:2:{i:0;s:0:"";i:1;s:7:"channel";}}i:2;a:3:{i:0;s:3:"url";i:1;s:32:"#t=(?\'t\'(?:(?:\\d+h)?\\d+m)?\\d+s)#";i:2;a:2:{i:0;s:0:"";i:1;s:1:"t";}}i:3;a:3:{i:0;s:3:"url";i:1;s:56:"#clips\\.twitch\\.tv/(?:(?\'channel\'\\w+)/)?(?\'clip_id\'\\w+)#";i:2;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:7:"clip_id";}}}s:11:"filterChain";a:3:{i:0;R:239;i:1;R:107;i:2;R:163;}s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:7:"TWITTER";a:8:{s:10:"attributes";a:2:{s:2:"id";R:274;s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:51:"@twitter\\.com/(?:#!/)?\\w+/status(?:es)?/(?\'id\'\\d+)@";i:2;R:232;}i:1;R:300;}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:11;s:7:"allowed";a:2:{i:0;i:65285;i:1;i:3847;}}s:1:"U";R:105;s:2:"UL";R:480;s:3:"URL";a:7:{s:10:"attributes";a:2:{s:5:"title";R:324;s:3:"url";R:326;}s:11:"filterChain";R:106;s:12:"nestingLimit";i:10;s:5:"rules";R:255;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:2;s:7:"allowed";R:259;}s:5:"VIMEO";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";R:125;s:8:"required";b:1;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!vimeo\\.com/(?:channels/[^/]+/|video/)?(?\'id\'\\d+)!";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"!^(?\'id\'\\d+)$!D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:4:"VINE";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^[^/]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:132;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:25:"!vine\\.co/v/(?\'id\'[^/]+)!";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:17:"!^(?\'id\'[^/]+)$!D";i:2;R:232;}}s:11:"filterChain";R:238;s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:4:"WSHH";a:8:{s:10:"attributes";R:694;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:42:"!worldstarhiphop\\.com/featured/(?\'id\'\\d+)!";i:2;R:232;}i:1;R:701;}s:11:"filterChain";a:3:{i:0;R:239;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:49:"!worldstarhiphop\\.com/(?:\\w+/)?video\\.php\\?v=\\w+!";i:1;s:18:"!v: ?"?(?\'id\'\\d+)!";i:2;a:1:{i:0;s:2:"id";}}}s:8:"cacheDir";N;}}i:2;R:107;}s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}s:7:"YOUTUBE";a:8:{s:10:"attributes";a:7:{s:1:"h";R:124;s:2:"id";R:333;s:4:"list";a:2:{s:11:"filterChain";R:334;s:8:"required";b:0;}s:1:"m";R:124;s:1:"s";R:124;s:1:"t";R:124;s:3:"url";R:132;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:69:"!youtube\\.com/(?:watch.*?v=|v/|attribution_link.*?v%3D)(?\'id\'[-\\w]+)!";i:2;R:232;}i:1;a:3:{i:0;s:3:"url";i:1;s:25:"!youtu\\.be/(?\'id\'[-\\w]+)!";i:2;R:232;}i:2;a:3:{i:0;s:3:"url";i:1;s:57:"![#&?]t=(?:(?:(?\'h\'\\d+)h)?(?\'m\'\\d+)m(?\'s\'\\d+)|(?\'t\'\\d+))!";i:2;a:5:{i:0;s:0:"";i:1;s:1:"h";i:2;s:1:"m";i:3;s:1:"s";i:4;s:1:"t";}}i:3;a:3:{i:0;s:3:"url";i:1;s:23:"!&list=(?\'list\'[-\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:4:"list";}}i:4;R:345;}s:11:"filterChain";a:3:{i:0;R:239;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:14:"!/shared\\?ci=!";i:1;s:19:"!/vi/(?\'id\'[-\\w]+)!";i:2;R:741;}}s:8:"cacheDir";N;}}i:2;R:107;}s:12:"nestingLimit";i:10;s:5:"rules";R:168;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";R:172;}}}');
 	}
 	public static function getRenderer()
 	{
--- a/vendor/s9e/text-formatter/src/Bundles/Forum/Renderer.php
+++ b/vendor/s9e/text-formatter/src/Bundles/Forum/Renderer.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Bundles\Forum;
@@ -42,11 +42,11 @@ class Renderer extends \s9e\TextFormatter\Renderer
 				else
 				{
 					$tb = self::$tagBranches[$node->nodeName];
-					if($tb<20){if($tb<10)if($tb<5)if($tb<3)if($tb===0){$this->out.='<b>';$this->at($node);$this->out.='</b>';}elseif($tb===1){$this->out.='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if($node->hasAttribute('album_id')){$this->out.='album='.\htmlspecialchars($node->getAttribute('album_id'),2);if($node->hasAttribute('track_num'))$this->out.='/t='.\htmlspecialchars($node->getAttribute('track_num'),2);}else$this->out.='track='.\htmlspecialchars($node->getAttribute('track_id'),2);$this->out.='"></iframe></div></div>';}else{$this->out.='<div style="text-align:center">';$this->at($node);$this->out.='</div>';}elseif($tb===3){$this->out.='<pre data-hljs="" data-s9e-livepreview-postprocess="if(\'undefined\'!==typeof hljs)hljs._hb(this)"><code';if($node->hasAttribute('lang'))$this->out.=' class="language-'.\htmlspecialchars($node->getAttribute('lang'),2).'"';$this->out.='>';$this->at($node);$this->out.='</code></pre><script>if("undefined"!==typeof hljs)hljs._ha();else if("undefined"===typeof hljsLoading){hljsLoading=1;var a=document.getElementsByTagName("head")[0],e=document.createElement("link");e.type="text/css";e.rel="stylesheet";e.href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/styles/default.min.css";a.appendChild(e);e=document.createElement("script");e.type="text/javascript";e.onload=function(){var d={},f=0;hljs._hb=function(b){b.removeAttribute("data-hljs");var c=b.innerHTML;c in d?b.innerHTML=d[c]:(7<++f&&(d={},f=0),hljs.highlightBlock(b.firstChild),d[c]=b.innerHTML)};hljs._ha=function(){for(var b=document.querySelectorAll("pre[data-hljs]"),c=b.length;0<c;)hljs._hb(b.item(--c))};hljs._ha()};e.async=!0;e.src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js";a.appendChild(e)}</script>';}else{$this->out.='<span style="color:'.\htmlspecialchars($node->getAttribute('color'),2).'">';$this->at($node);$this->out.='</span>';}elseif($tb<8)if($tb===5)$this->out.='<div data-s9e-mediaembed="dailymotion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dailymotion.com/embed/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===6){$this->out.='<a href="mailto:'.\htmlspecialchars($node->getAttribute('email'),2).'">';$this->at($node);$this->out.='</a>';}else$this->out.='<img alt="'.\htmlspecialchars($node->textContent,2).'" class="emoji" draggable="false" width="16" height="16" src="//cdn.jsdelivr.net/emojione/assets/png/'.\htmlspecialchars($node->getAttribute('seq'),2).'.png">';elseif($tb===8)$this->out.='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars($node->getAttribute('type').$node->getAttribute('id'),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';else{$this->out.='<span style="font-family:'.\htmlspecialchars($node->getAttribute('font'),2).'">';$this->at($node);$this->out.='</span>';}elseif($tb<15)if($tb<13)if($tb===10){$this->out.='<i>';$this->at($node);$this->out.='</i>';}elseif($tb===11)$this->out.='<img src="'.\htmlspecialchars($node->getAttribute('src'),2).'" title="'.\htmlspecialchars($node->getAttribute('title'),2).'" alt="'.\htmlspecialchars($node->getAttribute('alt'),2).'">';else$this->out.='<div data-s9e-mediaembed="indiegogo" style="display:inline-block;width:100%;max-width:222px"><div style="overflow:hidden;position:relative;padding-bottom:200.45045045045%"><iframe allowfullscreen="" scrolling="no" src="//www.indiegogo.com/project/'.\htmlspecialchars($node->getAttribute('id'),2).'/embedded" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===13)$this->out.='<iframe data-s9e-mediaembed="instagram" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/instagram.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:640px;max-width:640px;width:100%"></iframe>';elseif($node->hasAttribute('video'))$this->out.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.\htmlspecialchars($node->getAttribute('id'),2).'/widget/video.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:220px"><div style="overflow:hidden;position:relative;padding-bottom:190.90909090909%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.\htmlspecialchars($node->getAttribute('id'),2).'/widget/card.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<18)if($tb===15){$this->out.='<li>';$this->at($node);$this->out.='</li>';}elseif($tb===16)if(!$node->hasAttribute('type')){$this->out.='<ul>';$this->at($node);$this->out.='</ul>';}elseif((\strpos($node->getAttribute('type'),'decimal')===0)||(\strpos($node->getAttribute('type'),'lower')===0)||(\strpos($node->getAttribute('type'),'upper')===0)){$this->out.='<ol style="list-style-type:'.\htmlspecialchars($node->getAttribute('type'),2).'"';if($node->hasAttribute('start'))$this->out.=' start="'.\htmlspecialchars($node->getAttribute('start'),2).'"';$this->out.='>';$this->at($node);$this->out.='</ol>';}else{$this->out.='<ul style="list-style-type:'.\htmlspecialchars($node->getAttribute('type'),2).'">';$this->at($node);$this->out.='</ul>';}else$this->out.='<div data-s9e-mediaembed="liveleak" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.liveleak.com/ll_embed?i='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===18){$this->out.='<ol>';$this->at($node);$this->out.='</ol>';}else{$this->out.='<blockquote';if(!$node->hasAttribute('author'))$this->out.=' class="uncited"';$this->out.='><div>';if($node->hasAttribute('author'))$this->out.='<cite>'.\htmlspecialchars($node->getAttribute('author'),0).' '.\htmlspecialchars($this->params['L_WROTE'],0).'</cite>';$this->at($node);$this->out.='</div></blockquote>';}}elseif($tb<30)if($tb<25)if($tb<23)if($tb===20){$this->out.='<s>';$this->at($node);$this->out.='</s>';}elseif($tb===21){$this->out.='<span style="font-size:'.\htmlspecialchars($node->getAttribute('size'),2).'px">';$this->at($node);$this->out.='</span>';}else{$this->out.='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if($node->hasAttribute('playlist_id'))$this->out.='https%3A//api.soundcloud.com/playlists/'.\htmlspecialchars($node->getAttribute('playlist_id'),2);elseif($node->hasAttribute('track_id'))$this->out.='https%3A//api.soundcloud.com/tracks/'.\htmlspecialchars($node->getAttribute('track_id'),2).'&amp;secret_token='.\htmlspecialchars($node->getAttribute('secret_token'),2);else{if((\strpos($node->getAttribute('id'),'://')===\false))$this->out.='https%3A//soundcloud.com/';$this->out.=\htmlspecialchars($node->getAttribute('id'),2);}$this->out.='" style="border:0;height:';if($node->hasAttribute('playlist_id')||(\strpos($node->getAttribute('id'),'/sets/')!==\false))$this->out.='450';else$this->out.='166';$this->out.='px;max-width:900px;width:100%"></iframe>';}elseif($tb===23){$this->out.='<div class="spoiler"><div class="spoiler-header"><button onclick="var a=parentNode.nextSibling.style,b=firstChild.style,c=lastChild.style;\'\'!==a.display?(a.display=c.display=\'\',b.display=\'none\'):(a.display=c.display=\'none\',b.display=\'\')"><span>'.\htmlspecialchars($this->params['L_SHOW'],0).'</span><span style="display:none">'.\htmlspecialchars($this->params['L_HIDE'],0).'</span></button><span class="spoiler-title">'.\htmlspecialchars($this->params['L_SPOILER'],0).' '.\htmlspecialchars($node->getAttribute('title'),0).'</span></div><div class="spoiler-content" style="display:none">';$this->at($node);$this->out.='</div></div>';}else{$this->out.='<table>';$this->at($node);$this->out.='</table>';}elseif($tb<28)if($tb===25){$this->out.='<td';if($node->hasAttribute('align'))$this->out.=' style="text-align:'.\htmlspecialchars($node->getAttribute('align'),2).'"';$this->out.='>';$this->at($node);$this->out.='</td>';}elseif($tb===26){$this->out.='<th';if($node->hasAttribute('align'))$this->out.=' style="text-align:'.\htmlspecialchars($node->getAttribute('align'),2).'"';$this->out.='>';$this->at($node);$this->out.='</th>';}else{$this->out.='<tr>';$this->at($node);$this->out.='</tr>';}elseif($tb===28){$this->out.='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if($node->hasAttribute('clip_id'))$this->out.='//clips.twitch.tv/embed?autoplay=false&amp;clip='.\htmlspecialchars($node->getAttribute('channel'),2).'/'.\htmlspecialchars($node->getAttribute('clip_id'),2);else{$this->out.='//player.twitch.tv/?autoplay=false&amp;';if($node->hasAttribute('archive_id'))$this->out.='video=a'.\htmlspecialchars($node->getAttribute('archive_id'),2);elseif($node->hasAttribute('chapter_id'))$this->out.='video=c'.\htmlspecialchars($node->getAttribute('chapter_id'),2);elseif($node->hasAttribute('video_id'))$this->out.='video=v'.\htmlspecialchars($node->getAttribute('video_id'),2);else$this->out.='channel='.\htmlspecialchars($node->getAttribute('channel'),2);if($node->hasAttribute('t'))$this->out.='&amp;time='.\htmlspecialchars($node->getAttribute('t'),2);}$this->out.='"></iframe></div></div>';}else$this->out.='<iframe data-s9e-mediaembed="twitter" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/twitter.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="background:url(https://abs.twimg.com/favicons/favicon.ico) no-repeat 50% 50%;border:0;height:186px;max-width:500px;width:100%"></iframe>';elseif($tb<35)if($tb<33)if($tb===30){$this->out.='<u>';$this->at($node);$this->out.='</u>';}elseif($tb===31){$this->out.='<ul>';$this->at($node);$this->out.='</ul>';}else{$this->out.='<a href="'.\htmlspecialchars($node->getAttribute('url'),2).'"';if($node->hasAttribute('title'))$this->out.=' title="'.\htmlspecialchars($node->getAttribute('title'),2).'"';$this->out.='>';$this->at($node);$this->out.='</a>';}elseif($tb===33)$this->out.='<div data-s9e-mediaembed="vimeo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.vimeo.com/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="vine" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://vine.co/v/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed/simple?audio=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<38)if($tb===35)$this->out.='<div data-s9e-mediaembed="wshh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.worldstarhiphop.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===36){$this->out.='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.\htmlspecialchars($node->getAttribute('id'),2).'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2);if($node->hasAttribute('list'))$this->out.='?list='.\htmlspecialchars($node->getAttribute('list'),2);if($node->hasAttribute('t')||$node->hasAttribute('m')){if($node->hasAttribute('list'))$this->out.='&amp;';else$this->out.='?';$this->out.='start=';if($node->hasAttribute('t'))$this->out.=\htmlspecialchars($node->getAttribute('t'),2);elseif($node->hasAttribute('h'))$this->out.=\htmlspecialchars($node->getAttribute('h')*3600+$node->getAttribute('m')*60+$node->getAttribute('s'),2);else$this->out.=\htmlspecialchars($node->getAttribute('m')*60+$node->getAttribute('s'),2);}$this->out.='"></iframe></div></div>';}else$this->out.='<br>';elseif($tb===38);else{$this->out.='<p>';$this->at($node);$this->out.='</p>';}
+					if($tb<20){if($tb<10)if($tb<5)if($tb<3)if($tb===0){$this->out.='<b>';$this->at($node);$this->out.='</b>';}elseif($tb===1){$this->out.='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if($node->hasAttribute('album_id')){$this->out.='album='.\htmlspecialchars($node->getAttribute('album_id'),2);if($node->hasAttribute('track_num'))$this->out.='/t='.\htmlspecialchars($node->getAttribute('track_num'),2);}else$this->out.='track='.\htmlspecialchars($node->getAttribute('track_id'),2);$this->out.='"></iframe></div></div>';}else{$this->out.='<div style="text-align:center">';$this->at($node);$this->out.='</div>';}elseif($tb===3){$this->out.='<pre data-hljs="" data-s9e-livepreview-postprocess="if(\'undefined\'!==typeof hljs)hljs._hb(this)"><code';if($node->hasAttribute('lang'))$this->out.=' class="language-'.\htmlspecialchars($node->getAttribute('lang'),2).'"';$this->out.='>';$this->at($node);$this->out.='</code></pre><script>if("undefined"!==typeof hljs)hljs._ha();else if("undefined"===typeof hljsLoading){hljsLoading=1;var a=document.getElementsByTagName("head")[0],e=document.createElement("link");e.type="text/css";e.rel="stylesheet";e.href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/styles/default.min.css";a.appendChild(e);e=document.createElement("script");e.type="text/javascript";e.onload=function(){var d={},f=0;hljs._hb=function(b){b.removeAttribute("data-hljs");var c=b.innerHTML;c in d?b.innerHTML=d[c]:(7<++f&&(d={},f=0),hljs.highlightBlock(b.firstChild),d[c]=b.innerHTML)};hljs._ha=function(){for(var b=document.querySelectorAll("pre[data-hljs]"),c=b.length;0<c;)hljs._hb(b.item(--c))};hljs._ha()};e.async=!0;e.src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js";a.appendChild(e)}</script>';}else{$this->out.='<span style="color:'.\htmlspecialchars($node->getAttribute('color'),2).'">';$this->at($node);$this->out.='</span>';}elseif($tb<8)if($tb===5)$this->out.='<div data-s9e-mediaembed="dailymotion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dailymotion.com/embed/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===6){$this->out.='<a href="mailto:'.\htmlspecialchars($node->getAttribute('email'),2).'">';$this->at($node);$this->out.='</a>';}else$this->out.='<img alt="'.\htmlspecialchars($node->textContent,2).'" class="emoji" draggable="false" width="16" height="16" src="//cdn.jsdelivr.net/emojione/assets/png/'.\htmlspecialchars($node->getAttribute('seq'),2).'.png">';elseif($tb===8)$this->out.='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars($node->getAttribute('type').$node->getAttribute('id'),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';else{$this->out.='<span style="font-family:'.\htmlspecialchars($node->getAttribute('font'),2).'">';$this->at($node);$this->out.='</span>';}elseif($tb<15)if($tb<13)if($tb===10){$this->out.='<i>';$this->at($node);$this->out.='</i>';}elseif($tb===11)$this->out.='<img src="'.\htmlspecialchars($node->getAttribute('src'),2).'" title="'.\htmlspecialchars($node->getAttribute('title'),2).'" alt="'.\htmlspecialchars($node->getAttribute('alt'),2).'">';else$this->out.='<div data-s9e-mediaembed="indiegogo" style="display:inline-block;width:100%;max-width:222px"><div style="overflow:hidden;position:relative;padding-bottom:200.45045%"><iframe allowfullscreen="" scrolling="no" src="//www.indiegogo.com/project/'.\htmlspecialchars($node->getAttribute('id'),2).'/embedded" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===13)$this->out.='<iframe data-s9e-mediaembed="instagram" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/instagram.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:640px;max-width:640px;width:100%"></iframe>';elseif($node->hasAttribute('video'))$this->out.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.\htmlspecialchars($node->getAttribute('id'),2).'/widget/video.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:220px"><div style="overflow:hidden;position:relative;padding-bottom:190.909091%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.\htmlspecialchars($node->getAttribute('id'),2).'/widget/card.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<18)if($tb===15){$this->out.='<li>';$this->at($node);$this->out.='</li>';}elseif($tb===16)if(!$node->hasAttribute('type')){$this->out.='<ul>';$this->at($node);$this->out.='</ul>';}elseif((\strpos($node->getAttribute('type'),'decimal')===0)||(\strpos($node->getAttribute('type'),'lower')===0)||(\strpos($node->getAttribute('type'),'upper')===0)){$this->out.='<ol style="list-style-type:'.\htmlspecialchars($node->getAttribute('type'),2).'"';if($node->hasAttribute('start'))$this->out.=' start="'.\htmlspecialchars($node->getAttribute('start'),2).'"';$this->out.='>';$this->at($node);$this->out.='</ol>';}else{$this->out.='<ul style="list-style-type:'.\htmlspecialchars($node->getAttribute('type'),2).'">';$this->at($node);$this->out.='</ul>';}else$this->out.='<div data-s9e-mediaembed="liveleak" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.liveleak.com/ll_embed?i='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===18){$this->out.='<ol>';$this->at($node);$this->out.='</ol>';}else{$this->out.='<blockquote';if(!$node->hasAttribute('author'))$this->out.=' class="uncited"';$this->out.='><div>';if($node->hasAttribute('author'))$this->out.='<cite>'.\htmlspecialchars($node->getAttribute('author'),0).' '.\htmlspecialchars($this->params['L_WROTE'],0).'</cite>';$this->at($node);$this->out.='</div></blockquote>';}}elseif($tb<30)if($tb<25)if($tb<23)if($tb===20){$this->out.='<s>';$this->at($node);$this->out.='</s>';}elseif($tb===21){$this->out.='<span style="font-size:'.\htmlspecialchars($node->getAttribute('size'),2).'px">';$this->at($node);$this->out.='</span>';}else{$this->out.='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if($node->hasAttribute('playlist_id'))$this->out.='https%3A//api.soundcloud.com/playlists/'.\htmlspecialchars($node->getAttribute('playlist_id'),2);elseif($node->hasAttribute('track_id'))$this->out.='https%3A//api.soundcloud.com/tracks/'.\htmlspecialchars($node->getAttribute('track_id'),2).'&amp;secret_token='.\htmlspecialchars($node->getAttribute('secret_token'),2);else{if((\strpos($node->getAttribute('id'),'://')===\false))$this->out.='https%3A//soundcloud.com/';$this->out.=\htmlspecialchars($node->getAttribute('id'),2);}$this->out.='" style="border:0;height:';if($node->hasAttribute('playlist_id')||(\strpos($node->getAttribute('id'),'/sets/')!==\false))$this->out.='450';else$this->out.='166';$this->out.='px;max-width:900px;width:100%"></iframe>';}elseif($tb===23){$this->out.='<div class="spoiler"><div class="spoiler-header"><button onclick="var a=parentNode.nextSibling.style,b=firstChild.style,c=lastChild.style;b.display=a.display;a.display=c.display=(b.display)?\'\':\'none\'"><span>'.\htmlspecialchars($this->params['L_SHOW'],0).'</span><span style="display:none">'.\htmlspecialchars($this->params['L_HIDE'],0).'</span></button><span class="spoiler-title">'.\htmlspecialchars($this->params['L_SPOILER'],0).' '.\htmlspecialchars($node->getAttribute('title'),0).'</span></div><div class="spoiler-content" style="display:none">';$this->at($node);$this->out.='</div></div>';}else{$this->out.='<table>';$this->at($node);$this->out.='</table>';}elseif($tb<28)if($tb===25){$this->out.='<td';if($node->hasAttribute('align'))$this->out.=' style="text-align:'.\htmlspecialchars($node->getAttribute('align'),2).'"';$this->out.='>';$this->at($node);$this->out.='</td>';}elseif($tb===26){$this->out.='<th';if($node->hasAttribute('align'))$this->out.=' style="text-align:'.\htmlspecialchars($node->getAttribute('align'),2).'"';$this->out.='>';$this->at($node);$this->out.='</th>';}else{$this->out.='<tr>';$this->at($node);$this->out.='</tr>';}elseif($tb===28){$this->out.='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if($node->hasAttribute('clip_id')){$this->out.='//clips.twitch.tv/embed?autoplay=false&amp;clip=';if($node->hasAttribute('channel'))$this->out.=\htmlspecialchars($node->getAttribute('channel'),2).'/';$this->out.=\htmlspecialchars($node->getAttribute('clip_id'),2);}else{$this->out.='//player.twitch.tv/?autoplay=false&amp;';if($node->hasAttribute('video_id'))$this->out.='video=v'.\htmlspecialchars($node->getAttribute('video_id'),2);else$this->out.='channel='.\htmlspecialchars($node->getAttribute('channel'),2);if($node->hasAttribute('t'))$this->out.='&amp;time='.\htmlspecialchars($node->getAttribute('t'),2);}$this->out.='"></iframe></div></div>';}else$this->out.='<iframe data-s9e-mediaembed="twitter" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/twitter.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="background:url(https://abs.twimg.com/favicons/favicon.ico) no-repeat 50% 50%;border:0;height:186px;max-width:500px;width:100%"></iframe>';elseif($tb<35)if($tb<33)if($tb===30){$this->out.='<u>';$this->at($node);$this->out.='</u>';}elseif($tb===31){$this->out.='<ul>';$this->at($node);$this->out.='</ul>';}else{$this->out.='<a href="'.\htmlspecialchars($node->getAttribute('url'),2).'"';if($node->hasAttribute('title'))$this->out.=' title="'.\htmlspecialchars($node->getAttribute('title'),2).'"';$this->out.='>';$this->at($node);$this->out.='</a>';}elseif($tb===33)$this->out.='<div data-s9e-mediaembed="vimeo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.vimeo.com/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="vine" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://vine.co/v/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed/simple?audio=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<38)if($tb===35)$this->out.='<div data-s9e-mediaembed="wshh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.worldstarhiphop.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===36){$this->out.='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.\htmlspecialchars($node->getAttribute('id'),2).'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2);if($node->hasAttribute('list'))$this->out.='?list='.\htmlspecialchars($node->getAttribute('list'),2);if($node->hasAttribute('t')||$node->hasAttribute('m')){if($node->hasAttribute('list'))$this->out.='&amp;';else$this->out.='?';$this->out.='start=';if($node->hasAttribute('t'))$this->out.=\htmlspecialchars($node->getAttribute('t'),2);elseif($node->hasAttribute('h'))$this->out.=\htmlspecialchars($node->getAttribute('h')*3600+$node->getAttribute('m')*60+$node->getAttribute('s'),2);else$this->out.=\htmlspecialchars($node->getAttribute('m')*60+$node->getAttribute('s'),2);}$this->out.='"></iframe></div></div>';}else$this->out.='<br>';elseif($tb===38);else{$this->out.='<p>';$this->at($node);$this->out.='</p>';}
 				}
 	}
 	private static $static=array('/B'=>'</b>','/CENTER'=>'</div>','/CODE'=>'</code></pre><script>if("undefined"!==typeof hljs)hljs._ha();else if("undefined"===typeof hljsLoading){hljsLoading=1;var a=document.getElementsByTagName("head")[0],e=document.createElement("link");e.type="text/css";e.rel="stylesheet";e.href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/styles/default.min.css";a.appendChild(e);e=document.createElement("script");e.type="text/javascript";e.onload=function(){var d={},f=0;hljs._hb=function(b){b.removeAttribute("data-hljs");var c=b.innerHTML;c in d?b.innerHTML=d[c]:(7<++f&&(d={},f=0),hljs.highlightBlock(b.firstChild),d[c]=b.innerHTML)};hljs._ha=function(){for(var b=document.querySelectorAll("pre[data-hljs]"),c=b.length;0<c;)hljs._hb(b.item(--c))};hljs._ha()};e.async=!0;e.src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js";a.appendChild(e)}</script>','/COLOR'=>'</span>','/EMAIL'=>'</a>','/FONT'=>'</span>','/I'=>'</i>','/LI'=>'</li>','/OL'=>'</ol>','/QUOTE'=>'</div></blockquote>','/S'=>'</s>','/SIZE'=>'</span>','/SPOILER'=>'</div></div>','/TABLE'=>'</table>','/TD'=>'</td>','/TH'=>'</th>','/TR'=>'</tr>','/U'=>'</u>','/UL'=>'</ul>','/URL'=>'</a>','B'=>'<b>','CENTER'=>'<div style="text-align:center">','I'=>'<i>','LI'=>'<li>','OL'=>'<ol>','S'=>'<s>','TABLE'=>'<table>','TR'=>'<tr>','U'=>'<u>','UL'=>'<ul>');
-	private static $dynamic=array('COLOR'=>array('(^[^ ]+(?> (?!color=)[^=]+="[^"]*")*(?> color="([^"]*)")?.*)s','<span style="color:$1">'),'DAILYMOTION'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="dailymotion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dailymotion.com/embed/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'EMAIL'=>array('(^[^ ]+(?> (?!email=)[^=]+="[^"]*")*(?> email="([^"]*)")?.*)s','<a href="mailto:$1">'),'FONT'=>array('(^[^ ]+(?> (?!font=)[^=]+="[^"]*")*(?> font="([^"]*)")?.*)s','<span style="font-family:$1">'),'IMG'=>array('(^[^ ]+(?> (?!(?>alt|src|title)=)[^=]+="[^"]*")*(?> alt="([^"]*)")?(?> (?!(?>src|title)=)[^=]+="[^"]*")*(?> src="([^"]*)")?(?> (?!title=)[^=]+="[^"]*")*(?> title="([^"]*)")?.*)s','<img src="$2" title="$3" alt="$1">'),'INDIEGOGO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="indiegogo" style="display:inline-block;width:100%;max-width:222px"><div style="overflow:hidden;position:relative;padding-bottom:200.45045045045%"><iframe allowfullscreen="" scrolling="no" src="//www.indiegogo.com/project/$1/embedded" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'INSTAGRAM'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="instagram" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/instagram.min.html#$1" style="border:0;height:640px;max-width:640px;width:100%"></iframe>'),'LIVELEAK'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="liveleak" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.liveleak.com/ll_embed?i=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'SIZE'=>array('(^[^ ]+(?> (?!size=)[^=]+="[^"]*")*(?> size="([^"]*)")?.*)s','<span style="font-size:$1px">'),'TWITTER'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="twitter" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/twitter.min.html#$1" style="background:url(https://abs.twimg.com/favicons/favicon.ico) no-repeat 50% 50%;border:0;height:186px;max-width:500px;width:100%"></iframe>'),'URL'=>array('(^[^ ]+(?> (?!(?>title|url)=)[^=]+="[^"]*")*( title="[^"]*")?(?> (?!url=)[^=]+="[^"]*")*(?> url="([^"]*)")?.*)s','<a href="$2"$1>'),'VIMEO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vimeo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.vimeo.com/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VINE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vine" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://vine.co/v/$1/embed/simple?audio=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'WSHH'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="wshh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.worldstarhiphop.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'));
+	private static $dynamic=array('COLOR'=>array('(^[^ ]+(?> (?!color=)[^=]+="[^"]*")*(?> color="([^"]*)")?.*)s','<span style="color:$1">'),'DAILYMOTION'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="dailymotion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dailymotion.com/embed/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'EMAIL'=>array('(^[^ ]+(?> (?!email=)[^=]+="[^"]*")*(?> email="([^"]*)")?.*)s','<a href="mailto:$1">'),'FONT'=>array('(^[^ ]+(?> (?!font=)[^=]+="[^"]*")*(?> font="([^"]*)")?.*)s','<span style="font-family:$1">'),'IMG'=>array('(^[^ ]+(?> (?!(?>alt|src|title)=)[^=]+="[^"]*")*(?> alt="([^"]*)")?(?> (?!(?>src|title)=)[^=]+="[^"]*")*(?> src="([^"]*)")?(?> (?!title=)[^=]+="[^"]*")*(?> title="([^"]*)")?.*)s','<img src="$2" title="$3" alt="$1">'),'INDIEGOGO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="indiegogo" style="display:inline-block;width:100%;max-width:222px"><div style="overflow:hidden;position:relative;padding-bottom:200.45045%"><iframe allowfullscreen="" scrolling="no" src="//www.indiegogo.com/project/$1/embedded" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'INSTAGRAM'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="instagram" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/instagram.min.html#$1" style="border:0;height:640px;max-width:640px;width:100%"></iframe>'),'LIVELEAK'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="liveleak" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.liveleak.com/ll_embed?i=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'SIZE'=>array('(^[^ ]+(?> (?!size=)[^=]+="[^"]*")*(?> size="([^"]*)")?.*)s','<span style="font-size:$1px">'),'TWITTER'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="twitter" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/twitter.min.html#$1" style="background:url(https://abs.twimg.com/favicons/favicon.ico) no-repeat 50% 50%;border:0;height:186px;max-width:500px;width:100%"></iframe>'),'URL'=>array('(^[^ ]+(?> (?!(?>title|url)=)[^=]+="[^"]*")*( title="[^"]*")?(?> (?!url=)[^=]+="[^"]*")*(?> url="([^"]*)")?.*)s','<a href="$2"$1>'),'VIMEO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vimeo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.vimeo.com/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VINE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vine" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://vine.co/v/$1/embed/simple?audio=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'WSHH'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="wshh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.worldstarhiphop.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'));
 	private static $attributes;
 	private static $quickBranches=array('/LIST'=>0,'BANDCAMP'=>1,'CODE'=>2,'EMOJI'=>3,'FACEBOOK'=>4,'KICKSTARTER'=>5,'LIST'=>6,'QUOTE'=>7,'SOUNDCLOUD'=>8,'SPOILER'=>9,'TD'=>10,'TH'=>11,'TWITCH'=>12,'YOUTUBE'=>13);
 	protected function renderQuick($xml)
@@ -111,7 +111,7 @@ class Renderer extends \s9e\TextFormatter\Renderer
 				$attributes[$attrName] = $matches[2][$i];
 		}
 		$qb = self::$quickBranches[$id];
-		if($qb<7)if($qb<4)if($qb===0){$attributes=\array_pop(self::$attributes);$html='';if(!isset($attributes['type']))$html.='</ul>';elseif((\strpos($attributes['type'],'decimal')===0)||(\strpos($attributes['type'],'lower')===0)||(\strpos($attributes['type'],'upper')===0))$html.='</ol>';else$html.='</ul>';}elseif($qb===1){$attributes+=array('track_num'=>\null,'track_id'=>\null);$html='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if(isset($attributes['album_id'])){$html.='album='.$attributes['album_id'];if(isset($attributes['track_num']))$html.='/t='.$attributes['track_num'];}else$html.='track='.$attributes['track_id'];$html.='"></iframe></div></div>';}elseif($qb===2){$html='<pre data-hljs="" data-s9e-livepreview-postprocess="if(\'undefined\'!==typeof hljs)hljs._hb(this)"><code';if(isset($attributes['lang']))$html.=' class="language-'.$attributes['lang'].'"';$html.='>';}else{$attributes+=array('seq'=>\null);$html='<img alt="'.\htmlspecialchars($textContent,2).'" class="emoji" draggable="false" width="16" height="16" src="//cdn.jsdelivr.net/emojione/assets/png/'.$attributes['seq'].'.png">';}elseif($qb===4){$attributes+=array('type'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars(\htmlspecialchars_decode($attributes['type']).\htmlspecialchars_decode($attributes['id']),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';}elseif($qb===5){$attributes+=array('id'=>\null);$html='';if(isset($attributes['video']))$html.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.$attributes['id'].'/widget/video.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$html.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:220px"><div style="overflow:hidden;position:relative;padding-bottom:190.90909090909%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.$attributes['id'].'/widget/card.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}else{$attributes+=array('type'=>\null);$html='';if(!isset($attributes['type']))$html.='<ul>';elseif((\strpos($attributes['type'],'decimal')===0)||(\strpos($attributes['type'],'lower')===0)||(\strpos($attributes['type'],'upper')===0)){$html.='<ol style="list-style-type:'.$attributes['type'].'"';if(isset($attributes['start']))$html.=' start="'.$attributes['start'].'"';$html.='>';}else$html.='<ul style="list-style-type:'.$attributes['type'].'">';self::$attributes[]=$attributes;}elseif($qb<11)if($qb===7){$html='<blockquote';if(!isset($attributes['author']))$html.=' class="uncited"';$html.='><div>';if(isset($attributes['author']))$html.='<cite>'.\str_replace('&quot;','"',$attributes['author']).' '.\htmlspecialchars($this->params['L_WROTE'],0).'</cite>';}elseif($qb===8){$attributes+=array('secret_token'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if(isset($attributes['playlist_id']))$html.='https%3A//api.soundcloud.com/playlists/'.$attributes['playlist_id'];elseif(isset($attributes['track_id']))$html.='https%3A//api.soundcloud.com/tracks/'.$attributes['track_id'].'&amp;secret_token='.$attributes['secret_token'];else{if((\strpos($attributes['id'],'://')===\false))$html.='https%3A//soundcloud.com/';$html.=$attributes['id'];}$html.='" style="border:0;height:';if(isset($attributes['playlist_id'])||(\strpos($attributes['id'],'/sets/')!==\false))$html.='450';else$html.='166';$html.='px;max-width:900px;width:100%"></iframe>';}elseif($qb===9){$attributes+=array('title'=>\null);$html='<div class="spoiler"><div class="spoiler-header"><button onclick="var a=parentNode.nextSibling.style,b=firstChild.style,c=lastChild.style;\'\'!==a.display?(a.display=c.display=\'\',b.display=\'none\'):(a.display=c.display=\'none\',b.display=\'\')"><span>'.\htmlspecialchars($this->params['L_SHOW'],0).'</span><span style="display:none">'.\htmlspecialchars($this->params['L_HIDE'],0).'</span></button><span class="spoiler-title">'.\htmlspecialchars($this->params['L_SPOILER'],0).' '.\str_replace('&quot;','"',$attributes['title']).'</span></div><div class="spoiler-content" style="display:none">';}else{$html='<td';if(isset($attributes['align']))$html.=' style="text-align:'.$attributes['align'].'"';$html.='>';}elseif($qb===11){$html='<th';if(isset($attributes['align']))$html.=' style="text-align:'.$attributes['align'].'"';$html.='>';}elseif($qb===12){$attributes+=array('channel'=>\null);$html='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if(isset($attributes['clip_id']))$html.='//clips.twitch.tv/embed?autoplay=false&amp;clip='.$attributes['channel'].'/'.$attributes['clip_id'];else{$html.='//player.twitch.tv/?autoplay=false&amp;';if(isset($attributes['archive_id']))$html.='video=a'.$attributes['archive_id'];elseif(isset($attributes['chapter_id']))$html.='video=c'.$attributes['chapter_id'];elseif(isset($attributes['video_id']))$html.='video=v'.$attributes['video_id'];else$html.='channel='.$attributes['channel'];if(isset($attributes['t']))$html.='&amp;time='.$attributes['t'];}$html.='"></iframe></div></div>';}else{$attributes+=array('id'=>\null,'m'=>\null,'s'=>\null);$html='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.$attributes['id'].'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.$attributes['id'];if(isset($attributes['list']))$html.='?list='.$attributes['list'];if(isset($attributes['t'])||isset($attributes['m'])){if(isset($attributes['list']))$html.='&amp;';else$html.='?';$html.='start=';if(isset($attributes['t']))$html.=$attributes['t'];elseif(isset($attributes['h']))$html.=\htmlspecialchars($attributes['h']*3600+$attributes['m']*60+$attributes['s'],2);else$html.=\htmlspecialchars($attributes['m']*60+$attributes['s'],2);}$html.='"></iframe></div></div>';}
+		if($qb<7)if($qb<4)if($qb===0){$attributes=\array_pop(self::$attributes);$html='';if(!isset($attributes['type']))$html.='</ul>';elseif((\strpos($attributes['type'],'decimal')===0)||(\strpos($attributes['type'],'lower')===0)||(\strpos($attributes['type'],'upper')===0))$html.='</ol>';else$html.='</ul>';}elseif($qb===1){$attributes+=array('track_num'=>\null,'track_id'=>\null);$html='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if(isset($attributes['album_id'])){$html.='album='.$attributes['album_id'];if(isset($attributes['track_num']))$html.='/t='.$attributes['track_num'];}else$html.='track='.$attributes['track_id'];$html.='"></iframe></div></div>';}elseif($qb===2){$html='<pre data-hljs="" data-s9e-livepreview-postprocess="if(\'undefined\'!==typeof hljs)hljs._hb(this)"><code';if(isset($attributes['lang']))$html.=' class="language-'.$attributes['lang'].'"';$html.='>';}else{$attributes+=array('seq'=>\null);$html='<img alt="'.\htmlspecialchars($textContent,2).'" class="emoji" draggable="false" width="16" height="16" src="//cdn.jsdelivr.net/emojione/assets/png/'.$attributes['seq'].'.png">';}elseif($qb===4){$attributes+=array('type'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars(\htmlspecialchars_decode($attributes['type']).\htmlspecialchars_decode($attributes['id']),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';}elseif($qb===5){$attributes+=array('id'=>\null);$html='';if(isset($attributes['video']))$html.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.$attributes['id'].'/widget/video.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$html.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:220px"><div style="overflow:hidden;position:relative;padding-bottom:190.909091%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.$attributes['id'].'/widget/card.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}else{$attributes+=array('type'=>\null);$html='';if(!isset($attributes['type']))$html.='<ul>';elseif((\strpos($attributes['type'],'decimal')===0)||(\strpos($attributes['type'],'lower')===0)||(\strpos($attributes['type'],'upper')===0)){$html.='<ol style="list-style-type:'.$attributes['type'].'"';if(isset($attributes['start']))$html.=' start="'.$attributes['start'].'"';$html.='>';}else$html.='<ul style="list-style-type:'.$attributes['type'].'">';self::$attributes[]=$attributes;}elseif($qb<11)if($qb===7){$html='<blockquote';if(!isset($attributes['author']))$html.=' class="uncited"';$html.='><div>';if(isset($attributes['author']))$html.='<cite>'.\str_replace('&quot;','"',$attributes['author']).' '.\htmlspecialchars($this->params['L_WROTE'],0).'</cite>';}elseif($qb===8){$attributes+=array('secret_token'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if(isset($attributes['playlist_id']))$html.='https%3A//api.soundcloud.com/playlists/'.$attributes['playlist_id'];elseif(isset($attributes['track_id']))$html.='https%3A//api.soundcloud.com/tracks/'.$attributes['track_id'].'&amp;secret_token='.$attributes['secret_token'];else{if((\strpos($attributes['id'],'://')===\false))$html.='https%3A//soundcloud.com/';$html.=$attributes['id'];}$html.='" style="border:0;height:';if(isset($attributes['playlist_id'])||(\strpos($attributes['id'],'/sets/')!==\false))$html.='450';else$html.='166';$html.='px;max-width:900px;width:100%"></iframe>';}elseif($qb===9){$attributes+=array('title'=>\null);$html='<div class="spoiler"><div class="spoiler-header"><button onclick="var a=parentNode.nextSibling.style,b=firstChild.style,c=lastChild.style;b.display=a.display;a.display=c.display=(b.display)?\'\':\'none\'"><span>'.\htmlspecialchars($this->params['L_SHOW'],0).'</span><span style="display:none">'.\htmlspecialchars($this->params['L_HIDE'],0).'</span></button><span class="spoiler-title">'.\htmlspecialchars($this->params['L_SPOILER'],0).' '.\str_replace('&quot;','"',$attributes['title']).'</span></div><div class="spoiler-content" style="display:none">';}else{$html='<td';if(isset($attributes['align']))$html.=' style="text-align:'.$attributes['align'].'"';$html.='>';}elseif($qb===11){$html='<th';if(isset($attributes['align']))$html.=' style="text-align:'.$attributes['align'].'"';$html.='>';}elseif($qb===12){$attributes+=array('channel'=>\null,'clip_id'=>\null);$html='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if(isset($attributes['clip_id'])){$html.='//clips.twitch.tv/embed?autoplay=false&amp;clip=';if(isset($attributes['channel']))$html.=$attributes['channel'].'/';$html.=$attributes['clip_id'];}else{$html.='//player.twitch.tv/?autoplay=false&amp;';if(isset($attributes['video_id']))$html.='video=v'.$attributes['video_id'];else$html.='channel='.$attributes['channel'];if(isset($attributes['t']))$html.='&amp;time='.$attributes['t'];}$html.='"></iframe></div></div>';}else{$attributes+=array('id'=>\null,'m'=>\null,'s'=>\null);$html='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.$attributes['id'].'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.$attributes['id'];if(isset($attributes['list']))$html.='?list='.$attributes['list'];if(isset($attributes['t'])||isset($attributes['m'])){if(isset($attributes['list']))$html.='&amp;';else$html.='?';$html.='start=';if(isset($attributes['t']))$html.=$attributes['t'];elseif(isset($attributes['h']))$html.=\htmlspecialchars($attributes['h']*3600+$attributes['m']*60+$attributes['s'],2);else$html.=\htmlspecialchars($attributes['m']*60+$attributes['s'],2);}$html.='"></iframe></div></div>';}
 		return $html;
 	}
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Bundles/MediaPack.php
+++ b/vendor/s9e/text-formatter/src/Bundles/MediaPack.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Bundles;
@@ -12,7 +12,7 @@ abstract class MediaPack extends \s9e\TextFormatter\Bundle
 	protected static $renderer;
 	public static function getParser()
 	{
-		return \unserialize('O:24:"s9e\\TextFormatter\\Parser":4:{s:16:"' . "\0" . '*' . "\0" . 'pluginsConfig";a:1:{s:10:"MediaEmbed";a:4:{s:10:"quickMatch";s:1:":";s:6:"regexp";s:39:"/\\b(?>spotify:|https?:\\/\\/)[^["\'\\s]+/Si";s:7:"tagName";s:5:"MEDIA";s:11:"regexpLimit";i:10000;}}s:14:"registeredVars";a:2:{s:9:"urlConfig";a:1:{s:14:"allowedSchemes";s:12:"/^https?$/Di";}s:10:"mediasites";a:151:{s:14:"abcnews.go.com";s:7:"abcnews";s:9:"amazon.ca";s:6:"amazon";s:12:"amazon.co.uk";s:6:"amazon";s:12:"amazon.co.jp";s:6:"amazon";s:10:"amazon.com";s:6:"amazon";s:9:"amazon.de";s:6:"amazon";s:9:"amazon.es";s:6:"amazon";s:9:"amazon.fr";s:6:"amazon";s:9:"amazon.it";s:6:"amazon";s:11:"audioboo.fm";s:9:"audioboom";s:13:"audioboom.com";s:9:"audioboom";s:13:"audiomack.com";s:9:"audiomack";s:12:"bandcamp.com";s:8:"bandcamp";s:7:"bbc.com";s:7:"bbcnews";s:7:"blab.im";s:4:"blab";s:18:"bleacherreport.com";s:14:"bleacherreport";s:9:"break.com";s:5:"break";s:8:"bcove.me";s:10:"brightcove";s:19:"link.brightcove.com";s:10:"brightcove";s:11:"cbsnews.com";s:7:"cbsnews";s:14:"video.cnbc.com";s:4:"cnbc";s:7:"cnn.com";s:3:"cnn";s:13:"money.cnn.com";s:8:"cnnmoney";s:16:"collegehumor.com";s:12:"collegehumor";s:6:"cc.com";s:13:"comedycentral";s:17:"comedycentral.com";s:13:"comedycentral";s:8:"coub.com";s:4:"coub";s:15:"dailymotion.com";s:11:"dailymotion";s:16:"democracynow.org";s:12:"democracynow";s:10:"dumpert.nl";s:7:"dumpert";s:11:"8tracks.com";s:11:"eighttracks";s:8:"espn.com";s:4:"espn";s:11:"espn.go.com";s:4:"espn";s:12:"facebook.com";s:8:"facebook";s:10:"flickr.com";s:6:"flickr";s:7:"fora.tv";s:6:"foratv";s:17:"video.foxnews.com";s:7:"foxnews";s:14:"funnyordie.com";s:10:"funnyordie";s:12:"gamespot.com";s:8:"gamespot";s:16:"gametrailers.com";s:12:"gametrailers";s:14:"gettyimages.be";s:5:"getty";s:14:"gettyimages.cn";s:5:"getty";s:17:"gettyimages.co.jp";s:5:"getty";s:17:"gettyimages.co.uk";s:5:"getty";s:15:"gettyimages.com";s:5:"getty";s:18:"gettyimages.com.au";s:5:"getty";s:14:"gettyimages.de";s:5:"getty";s:14:"gettyimages.dk";s:5:"getty";s:14:"gettyimages.es";s:5:"getty";s:14:"gettyimages.fr";s:5:"getty";s:14:"gettyimages.ie";s:5:"getty";s:14:"gettyimages.it";s:5:"getty";s:14:"gettyimages.nl";s:5:"getty";s:14:"gettyimages.pt";s:5:"getty";s:14:"gettyimages.se";s:5:"getty";s:6:"gty.im";s:5:"getty";s:10:"gfycat.com";s:6:"gfycat";s:10:"github.com";s:4:"gist";s:13:"globalnews.ca";s:10:"globalnews";s:12:"gofundme.com";s:8:"gofundme";s:16:"drive.google.com";s:11:"googledrive";s:15:"plus.google.com";s:10:"googleplus";s:15:"docs.google.com";s:12:"googlesheets";s:14:"healthguru.com";s:10:"healthguru";s:8:"hudl.com";s:4:"hudl";s:8:"hulu.com";s:4:"hulu";s:15:"humortv.vara.nl";s:9:"humortvnl";s:7:"ign.com";s:3:"ign";s:8:"imdb.com";s:4:"imdb";s:9:"imgur.com";s:5:"imgur";s:13:"indiegogo.com";s:9:"indiegogo";s:13:"instagram.com";s:9:"instagram";s:11:"archive.org";s:15:"internetarchive";s:12:"izlesene.com";s:8:"izlesene";s:14:"jwplatform.com";s:10:"jwplatform";s:12:"video.khl.ru";s:3:"khl";s:15:"kickstarter.com";s:11:"kickstarter";s:15:"kissvideo.click";s:9:"kissvideo";s:10:"libsyn.com";s:6:"libsyn";s:10:"livecap.tv";s:7:"livecap";s:12:"liveleak.com";s:8:"liveleak";s:11:"livestre.am";s:10:"livestream";s:14:"livestream.com";s:10:"livestream";s:10:"my.mail.ru";s:6:"mailru";s:10:"medium.com";s:6:"medium";s:12:"metacafe.com";s:8:"metacafe";s:12:"mixcloud.com";s:8:"mixcloud";s:7:"mlb.com";s:3:"mlb";s:9:"mrctv.org";s:5:"mrctv";s:9:"msnbc.com";s:5:"msnbc";s:30:"channel.nationalgeographic.com";s:13:"natgeochannel";s:28:"video.nationalgeographic.com";s:11:"natgeovideo";s:11:"nbcnews.com";s:7:"nbcnews";s:13:"nbcsports.com";s:9:"nbcsports";s:7:"nhl.com";s:3:"nhl";s:7:"npr.org";s:3:"npr";s:4:"n.pr";s:3:"npr";s:11:"nytimes.com";s:7:"nytimes";s:10:"oddshot.tv";s:7:"oddshot";s:12:"pastebin.com";s:8:"pastebin";s:8:"plays.tv";s:7:"playstv";s:11:"podbean.com";s:7:"podbean";s:9:"prezi.com";s:5:"prezi";s:10:"reddit.com";s:6:"reddit";s:9:"rutube.ru";s:6:"rutube";s:10:"scribd.com";s:6:"scribd";s:14:"slideshare.net";s:10:"slideshare";s:14:"soundcloud.com";s:10:"soundcloud";s:12:"sportsnet.ca";s:9:"sportsnet";s:16:"open.spotify.com";s:7:"spotify";s:16:"play.spotify.com";s:7:"spotify";s:8:"spotify:";s:7:"spotify";s:22:"store.steampowered.com";s:10:"steamstore";s:12:"stitcher.com";s:8:"stitcher";s:12:"strawpoll.me";s:9:"strawpoll";s:14:"streamable.com";s:10:"streamable";s:12:"teamcoco.com";s:8:"teamcoco";s:7:"ted.com";s:3:"ted";s:15:"theatlantic.com";s:11:"theatlantic";s:15:"theguardian.com";s:11:"theguardian";s:12:"theonion.com";s:8:"theonion";s:11:"tinypic.com";s:7:"tinypic";s:7:"tmz.com";s:3:"tmz";s:17:"traileraddict.com";s:13:"traileraddict";s:10:"tumblr.com";s:6:"tumblr";s:9:"twitch.tv";s:6:"twitch";s:11:"twitter.com";s:7:"twitter";s:10:"ustream.tv";s:7:"ustream";s:9:"vbox7.com";s:5:"vbox7";s:8:"veoh.com";s:4:"veoh";s:8:"vevo.com";s:4:"vevo";s:11:"viagame.com";s:7:"viagame";s:18:"videodetective.com";s:14:"videodetective";s:12:"videomega.tv";s:9:"videomega";s:6:"vid.me";s:5:"vidme";s:9:"vimeo.com";s:5:"vimeo";s:7:"vine.co";s:4:"vine";s:6:"vk.com";s:2:"vk";s:12:"vkontakte.ru";s:2:"vk";s:11:"vocaroo.com";s:7:"vocaroo";s:7:"vox.com";s:3:"vox";s:18:"washingtonpost.com";s:14:"washingtonpost";s:19:"worldstarhiphop.com";s:4:"wshh";s:7:"wsj.com";s:3:"wsj";s:13:"xboxclips.com";s:9:"xboxclips";s:11:"xboxdvr.com";s:7:"xboxdvr";s:16:"screen.yahoo.com";s:11:"yahooscreen";s:9:"youku.com";s:5:"youku";s:11:"youtube.com";s:7:"youtube";s:8:"youtu.be";s:7:"youtube";s:14:"zippyshare.com";s:10:"zippyshare";}}s:14:"' . "\0" . '*' . "\0" . 'rootContext";a:2:{s:7:"allowed";a:3:{i:0;i:65535;i:1;i:65535;i:2;i:32639;}s:5:"flags";i:0;}s:13:"' . "\0" . '*' . "\0" . 'tagsConfig";a:120:{s:7:"ABCNEWS";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"!^\\d+$!D";}}}s:8:"required";b:1;}s:3:"url";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:50:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterUrl";s:6:"params";a:3:{s:9:"attrValue";N;s:9:"urlConfig";N;s:6:"logger";N;}}}s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:47:"!abcnews\\.go\\.com/[^/]+/video/[^/]+-(?\'id\'\\d+)!";i:2;a:2:{i:0;s:0:"";i:1;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"!^(?\'id\'\\d+)$!D";i:2;R:193;}}s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:55:"s9e\\TextFormatter\\Parser::executeAttributePreprocessors";s:6:"params";a:2:{s:3:"tag";N;s:9:"tagConfig";N;}}i:1;a:2:{s:8:"callback";s:42:"s9e\\TextFormatter\\Parser::filterAttributes";s:6:"params";a:4:{s:3:"tag";N;s:9:"tagConfig";N;s:14:"registeredVars";N;s:6:"logger";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3089;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32639;}}s:6:"AMAZON";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:14:"#^[A-Z0-9]+$#D";}}}s:8:"required";b:1;}s:3:"tld";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:29:"#^(?:ca|de|es|fr|it|jp|uk)$#D";}}}s:8:"required";b:0;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:37:"#/(?:dp|gp/product)/(?\'id\'[A-Z0-9]+)#";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:47:"#amazon\\.(?:co\\.)?(?\'tld\'ca|de|es|fr|it|jp|uk)#";i:2;a:2:{i:0;s:0:"";i:1;s:3:"tld";}}i:2;a:3:{i:0;s:3:"url";i:1;s:21:"#^(?\'id\'[A-Z0-9]+)$#D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:9:"AUDIOBOOM";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:40:"!audioboo(?:\\.f|m\\.co)m/boos/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:2;s:7:"allowed";a:3:{i:0;i:65528;i:1;i:65535;i:2;i:32639;}}s:9:"AUDIOMACK";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:18:"!^[-\\w]+/[-\\w]+$!D";}}}s:8:"required";b:1;}s:4:"mode";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:19:"!^(?:album|song)$!D";}}}s:8:"required";b:0;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:57:"!audiomack\\.com/(?\'mode\'album|song)/(?\'id\'[-\\w]+/[-\\w]+)!";i:2;a:3:{i:0;s:0:"";i:1;s:4:"mode";i:2;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:25:"!^(?\'id\'[-\\w]+/[-\\w]+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:3;s:7:"allowed";a:3:{i:0;i:65524;i:1;i:65535;i:2;i:32639;}}s:8:"BANDCAMP";a:7:{s:10:"attributes";a:4:{s:8:"album_id";a:2:{s:11:"filterChain";R:173;s:8:"required";b:0;}s:8:"track_id";R:305;s:9:"track_num";R:305;s:3:"url";R:180;}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:23:"!bandcamp\\.com/album/.!";i:1;s:25:"!/album=(?\'album_id\'\\d+)!";i:2;a:1:{i:0;s:8:"album_id";}}i:1;a:3:{i:0;s:23:"!bandcamp\\.com/track/.!";i:1;a:3:{i:0;s:29:"!"album_id":(?\'album_id\'\\d+)!";i:1;s:31:"!"track_num":(?\'track_num\'\\d+)!";i:2;s:25:"!/track=(?\'track_id\'\\d+)!";}i:2;a:3:{i:0;s:8:"album_id";i:1;s:8:"track_id";i:2;s:9:"track_num";}}}s:8:"cacheDir";N;}}i:1;R:205;i:2;a:2:{s:8:"callback";s:67:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::hasNonDefaultAttribute";s:6:"params";a:1:{s:3:"tag";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"BBCNEWS";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^[-\\w]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'[-\\w]+)$!D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:19:"!bbc\\.com/news/\\w+!";i:1;s:41:"!bbc\\.com\\\\/news\\\\/(?\'id\'[-\\w]+)\\\\/embed!";i:2;a:1:{i:0;s:2:"id";}}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"BLAB";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"#^[-\\w]+$#D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:68:"#blab\\.im/(?!about$|live$|replay$|scheduled$|search\\?)(?\'id\'[-\\w]+)#";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:18:"#^(?\'id\'[-\\w]+)$#D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:14:"BLEACHERREPORT";a:8:{s:10:"attributes";R:337;s:22:"attributePreprocessors";R:346;s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:13:"!/articles/.!";i:1;s:25:"!id="video-(?\'id\'[-\\w]+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:5:"BREAK";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:33:"!break\\.com/video/.*-(?\'id\'\\d+)$!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:10:"BRIGHTCOVE";a:7:{s:10:"attributes";a:4:{s:5:"bckey";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:13:"!^[-,~\\w]+$!D";}}}s:8:"required";b:0;}s:5:"bcpid";R:305;s:5:"bctid";R:305;s:3:"url";R:180;}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;a:2:{i:0;s:13:"!bcove\\.me/.!";i:1;s:40:"!link\\.brightcove\\.com/services/player/!";}i:1;s:108:"!meta name="twitter:player" content=".*?bcpid(?\'bcpid\'\\d+).*?bckey=(?\'bckey\'[-,~\\w]+).*?bctid=(?\'bctid\'\\d+)!";i:2;a:3:{i:0;s:5:"bckey";i:1;s:5:"bcpid";i:2;s:5:"bctid";}}}s:8:"cacheDir";N;}}i:1;R:205;i:2;R:329;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"CBSNEWS";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\d+$#D";}}}s:8:"required";b:0;}s:3:"pid";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\w+$#D";}}}s:8:"required";b:0;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:42:"#cbsnews\\.com/video/watch/\\?id=(?\'id\'\\d+)#";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"#^(?\'id\'\\d+)$#D";i:2;R:193;}}s:11:"filterChain";a:4:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:32:"#cbsnews\\.com/videos/(?!watch/)#";i:1;s:21:"#"pid":"(?\'pid\'\\w+)"#";i:2;a:1:{i:0;s:3:"pid";}}}s:8:"cacheDir";N;}}i:2;R:205;i:3;R:329;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"CNBC";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:38:"!cnbc\\.com/gallery/\\?video=(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:3:"CNN";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:12:"!^.*\\.cnn$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:31:"!cnn.com/videos/(?\'id\'.*\\.cnn)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:47:"!cnn\\.com/video/data/2\\.0/video/(?\'id\'.*\\.cnn)!";i:2;R:193;}i:2;a:3:{i:0;s:3:"url";i:1;s:19:"!^(?\'id\'.*\\.cnn)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:8:"CNNMONEY";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^.*\\.cnnmoney$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:43:"!money\\.cnn\\.com/video/(?\'id\'.*\\.cnnmoney)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'.*\\.cnnmoney)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:12:"COLLEGEHUMOR";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:46:"!collegehumor\\.com/(?:video|embed)/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:13:"COMEDYCENTRAL";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:49:"!^(?:mgid:arc:(?:episode|video):[.\\w]+:[-\\w]+)$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:56:"!^(?\'id\'(?:mgid:arc:(?:episode|video):[.\\w]+:[-\\w]+))$!D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:56:"!c(?:c|omedycentral)\\.com/(?:full-episode|video-clip)s/!";i:1;s:49:"!(?\'id\'mgid:arc:(?:episode|video):[.\\w]+:[-\\w]+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"COUB";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"!^\\w+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:27:"!coub\\.com/view/(?\'id\'\\w+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"!^(?\'id\'\\w+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:11:"DAILYMOTION";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^[A-Za-z0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:94:"!dailymotion\\.com/(?:live/|swf/|user/[^#]+#video=|(?:related/\\d+/)?video/)(?\'id\'[A-Za-z0-9]+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'[A-Za-z0-9]+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:12:"DEMOCRACYNOW";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:34:"!^(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:66:"!democracynow.org/(?:embed/)?(?\'id\'(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:41:"!^(?\'id\'(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?)$!D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:33:"!m\\.democracynow\\.org/stories/\\d!";i:1;s:72:"!democracynow\\.org/(?\'id\'(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?)\' rel=\'canonical!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"DUMPERT";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"!^\\d+[/_]\\w+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!dumpert\\.nl/mediabase/(?\'id\'\\d+[/_]\\w+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"!^(?\'id\'\\d+[/_]\\w+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:11:"EIGHTTRACKS";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!8tracks\\.com/[-\\w]+/(?\'id\'\\d+)(?=#|$)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:28:"!8tracks\\.com/[-\\w]+/[-\\w]+!";i:1;s:30:"!eighttracks://mix/(?\'id\'\\d+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"ESPN";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";R:439;s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:43:"#video/(?:clip(?:\\?id=|/_/id/))?(?\'id\'\\d+)#";i:2;R:193;}i:1;R:458;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:8:"FACEBOOK";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"@^\\d+$@D";}}}s:8:"required";b:1;}s:4:"type";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"#^video$#D";}}}s:8:"required";b:0;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:135:"@/(?!(?:apps|developers|graph)\\.)[-\\w.]*facebook\\.com/(?:[/\\w]+/permalink|(?!pages/|groups/).*?)(?:/|fbid=|\\?v=)(?\'id\'\\d+)(?=$|[/?&#])@";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:20:"#/(?\'type\'video)s?/#";i:2;a:2:{i:0;s:0:"";i:1;s:4:"type";}}i:2;a:3:{i:0;s:3:"url";i:1;s:15:"@^(?\'id\'\\d+)$@D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";a:3:{i:0;i:65516;i:1;i:65535;i:2;i:32639;}}s:6:"FLICKR";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:37:"!flickr\\.com/photos/[^/]+/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:6:"FORATV";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:1:{i:0;R:196;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:24:"!fora\\.tv/\\d+/\\d+/\\d+/.!";i:1;s:22:"!embed\\?id=(?\'id\'\\d+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"FOXNEWS";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:34:"!video\\.foxnews\\.com/v/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:10:"FUNNYORDIE";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:14:"!^[0-9a-f]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!funnyordie\\.com/videos/(?\'id\'[0-9a-f]+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:21:"!^(?\'id\'[0-9a-f]+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:8:"GAMESPOT";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:64:"!gamespot\\.com.*?/(?:events|videos)/.*?-(?\'id\'\\d+)/(?:[#?].*)?$!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:12:"GAMETRAILERS";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";R:728;s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:51:"!gametrailers\\.com/(?:full-episode|review|video)s/!";i:1;s:18:"!embed/(?\'id\'\\d+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:5:"GETTY";a:8:{s:10:"attributes";a:6:{s:2:"et";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:12:"!^[-=\\w]+$!D";}}}s:8:"required";b:0;}s:6:"height";a:3:{s:12:"defaultValue";s:3:"360";s:11:"filterChain";R:173;s:8:"required";b:0;}s:2:"id";R:172;s:3:"sig";R:794;s:3:"url";R:180;s:5:"width";a:3:{s:12:"defaultValue";s:3:"640";s:11:"filterChain";R:173;s:8:"required";b:0;}}s:22:"attributePreprocessors";a:4:{i:0;a:3:{i:0;s:3:"url";i:1;s:20:"!gty\\.im/(?\'id\'\\d+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:47:"!gettyimages\\.[.\\w]+/detail(?=/).*?/(?\'id\'\\d+)!";i:2;R:193;}i:2;a:3:{i:0;s:3:"url";i:1;s:30:"!#[-\\w]*picture-id(?\'id\'\\d+)$!";i:2;R:193;}i:3;R:196;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:2:"//";i:1;a:4:{i:0;s:30:"!"height":[ "]*(?\'height\'\\d+)!";i:1;s:28:"!"width":[ "]*(?\'width\'\\d+)!";i:2;s:19:"!et=(?\'et\'[-=\\w]+)!";i:3;s:21:"!sig=(?\'sig\'[-=\\w]+)!";}i:2;a:4:{i:0;s:2:"et";i:1;s:6:"height";i:2;s:3:"sig";i:3;s:5:"width";}i:3;s:42:"http://embed.gettyimages.com/preview/{@id}";}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:6:"GFYCAT";a:8:{s:10:"attributes";a:4:{s:6:"height";a:3:{s:12:"defaultValue";s:3:"315";s:11:"filterChain";R:173;s:8:"required";b:0;}s:2:"id";R:564;s:3:"url";R:180;s:5:"width";a:3:{s:12:"defaultValue";s:3:"560";s:11:"filterChain";R:173;s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:24:"!gfycat\\.com/(?\'id\'\\w+)!";i:2;R:193;}i:1;R:576;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:2:"//";i:1;a:2:{i:0;s:39:"!video:height" content="(?\'height\'\\d+)!";i:1;s:37:"!video:width" content="(?\'width\'\\d+)!";}i:2;a:2:{i:0;s:6:"height";i:1;s:5:"width";}i:3;s:23:"http://gfycat.com/{@id}";}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"GIST";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:36:"!^(?:\\w+/)?[\\da-f]+(?:/[\\da-f]+)?$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:58:"!gist\\.github\\.com/(?\'id\'(?:\\w+/)?[\\da-f]+(?:/[\\da-f]+)?)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:43:"!^(?\'id\'(?:\\w+/)?[\\da-f]+(?:/[\\da-f]+)?)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:5;s:7:"allowed";a:3:{i:0;i:65500;i:1;i:65535;i:2;i:32639;}}s:10:"GLOBALNEWS";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:33:"!globalnews\\.ca/video/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:8:"GOFUNDME";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"@^\\w+$@D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:35:"@gofundme\\.com/(?\'id\'\\w+)(?![^#?])@";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"@^(?\'id\'\\w+)$@D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:11:"GOOGLEDRIVE";a:8:{s:10:"attributes";R:337;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:44:"!drive\\.google\\.com/.*?file/d/(?\'id\'[-\\w]+)!";i:2;R:193;}i:1;R:347;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:10:"GOOGLEPLUS";a:8:{s:10:"attributes";a:4:{s:4:"name";a:2:{s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^[^/]+$!D";}}i:1;a:2:{s:8:"callback";s:9:"urldecode";s:6:"params";a:1:{s:9:"attrValue";N;}}}s:8:"required";b:0;}s:3:"oid";R:305;s:3:"pid";a:2:{s:11:"filterChain";R:565;s:8:"required";b:0;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:83:"!//plus\\.google\\.com/(?:u/\\d+/)?(?:\\+(?\'name\'[^/]+)|(?\'oid\'\\d+))/posts/(?\'pid\'\\w+)!";i:2;a:4:{i:0;s:0:"";i:1;s:4:"name";i:2;s:3:"oid";i:3;s:3:"pid";}}}s:11:"filterChain";a:3:{i:0;R:200;i:1;R:205;i:2;R:329;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:6;s:7:"allowed";a:3:{i:0;i:65468;i:1;i:65535;i:2;i:32639;}}s:12:"GOOGLESHEETS";a:8:{s:10:"attributes";a:3:{s:3:"gid";R:305;s:2:"id";R:338;s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:89:"!docs\\.google\\.com/spreadsheet(?:/ccc\\?key=|s/d/)(?\'id\'[-\\w]+)[^#]*(?:#gid=(?\'gid\'\\d+))?!";i:2;a:3:{i:0;s:0:"";i:1;s:2:"id";i:2;s:3:"gid";}}i:1;R:347;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";a:3:{i:0;i:65404;i:1;i:65535;i:2;i:32639;}}s:10:"HEALTHGURU";a:8:{s:10:"attributes";R:563;s:22:"attributePreprocessors";a:1:{i:0;R:576;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:38:"!healthguru\\.com/(?:content/)?video/.!";i:1;s:34:"!healthguru\\.com/embed/(?\'id\'\\w+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"HUDL";a:8:{s:10:"attributes";a:3:{s:7:"athlete";R:305;s:9:"highlight";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:13:"!^[\\da-f]+$!D";}}}s:8:"required";b:0;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:69:"!hudl\\.com/athlete/(?\'athlete\'\\d+)/highlights/(?\'highlight\'[\\da-f]+)!";i:2;a:3:{i:0;s:0:"";i:1;s:7:"athlete";i:2;s:9:"highlight";}}i:1;a:3:{i:0;s:3:"url";i:1;s:60:"!hudl\\.com/video/\\d+/(?\'athlete\'\\d+)/(?\'highlight\'[\\da-f]+)!";i:2;R:1011;}}s:11:"filterChain";a:4:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:14:"!hudl\\.com/v/!";i:1;s:60:"!hudl\\.com/video/\\d+/(?\'athlete\'\\d+)/(?\'highlight\'[\\da-f]+)!";i:2;a:2:{i:0;s:7:"athlete";i:1;s:9:"highlight";}}}s:8:"cacheDir";N;}}i:2;R:205;i:3;R:329;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"HULU";a:8:{s:10:"attributes";R:337;s:22:"attributePreprocessors";R:346;s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:18:"!hulu\\.com/watch/!";i:1;s:19:"!eid=(?\'id\'[-\\w]+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:9:"HUMORTVNL";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:12:"!^[-.\\w]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:45:"!humortv\\.vara\\.nl/\\w+\\.(?\'id\'[-.\\w]+)\\.html!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:19:"!^(?\'id\'[-.\\w]+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:3:"IGN";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:35:"!^https?://.*?ign\\.com/videos/.+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!(?\'id\'https?://.*?ign\\.com/videos/.+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:42:"!^(?\'id\'https?://.*?ign\\.com/videos/.+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"IMDB";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:31:"!imdb\\.com/[/\\w]+/vi(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:5:"IMGUR";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"@^(?:a/)?\\w+$@D";}}}s:8:"required";b:1;}s:4:"type";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:52:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterAlnum";s:6:"params";R:943;}}s:8:"required";b:0;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:74:"@imgur\\.com/(?!r/|user/)(?:gallery/)?(?\'id\'(?:a/)?\\w+)(?!\\w|\\.(?:pn|jp)g)@";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"@^(?\'id\'(?:a/)?\\w+)$@D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:23:"@imgur\\.com/gallery/\\w@";i:1;a:3:{i:0;s:41:"!image\\s*:\\s*.*?"is_(?\'type\'album)":true!";i:1;s:26:"!<div id="(?\'type\'album)-!";i:2;s:29:"!class="(?\'type\'album)-image!";}i:2;a:1:{i:0;s:4:"type";}}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:8;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65534;i:2;i:32639;}}s:9:"INDIEGOGO";a:8:{s:10:"attributes";R:337;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!indiegogo\\.com/projects/(?\'id\'[-\\w]+)!";i:2;R:193;}i:1;R:347;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:9:"INSTAGRAM";a:8:{s:10:"attributes";R:337;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:32:"!instagram\\.com/p/(?\'id\'[-\\w]+)!";i:2;R:193;}i:1;R:347;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:9;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65533;i:2;i:32639;}}s:15:"INTERNETARCHIVE";a:8:{s:10:"attributes";a:4:{s:6:"height";R:802;s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^[^/"]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;s:5:"width";R:805;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'[^/"]+)$!D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:23:"!archive\\.org/details/!";i:1;a:3:{i:0;s:81:"!meta property="twitter:player" content="https://archive.org/embed/(?\'id\'[^/"]+)!";i:1;s:55:"!meta property="og:video:width" content="(?\'width\'\\d+)!";i:2;s:57:"!meta property="og:video:height" content="(?\'height\'\\d+)!";}i:2;a:3:{i:0;s:6:"height";i:1;s:2:"id";i:2;s:5:"width";}}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:8:"IZLESENE";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!izlesene\\.com/video/[-\\w]+/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:10:"JWPLATFORM";a:8:{s:10:"attributes";R:337;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:35:"!jwplatform\\.com/\\w+/(?\'id\'[-\\w]+)!";i:2;R:193;}i:1;R:347;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:3:"KHL";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^[/\\w]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'[/\\w]+)$!D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:36:"!video\\.khl\\.ru/(?:event|quote)s/\\d!";i:1;s:27:"!/feed/start/(?\'id\'[/\\w]+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:11:"KICKSTARTER";a:8:{s:10:"attributes";a:4:{s:4:"card";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:9:"!^card$!D";}}}s:8:"required";b:0;}s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^[^/]+/[^/?]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;s:5:"video";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^video$!D";}}}s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:93:"!kickstarter\\.com/projects/(?\'id\'[^/]+/[^/?]+)(?:/widget/(?:(?\'card\'card)|(?\'video\'video)))?!";i:2;a:4:{i:0;s:0:"";i:1;s:2:"id";i:2;s:4:"card";i:3;s:5:"video";}}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'[^/]+/[^/?]+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:9:"KISSVIDEO";a:8:{s:10:"attributes";R:751;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!kissvideo\\.click/[^_]*_(?\'id\'[0-9a-f]+)!";i:2;R:193;}i:1;R:764;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:6:"LIBSYN";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";R:728;s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:16:"@(?!\\.mp3)....$@";i:1;s:29:"!embed/episode/id/(?\'id\'\\d+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:10;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65531;i:2;i:32639;}}s:7:"LIVECAP";a:8:{s:10:"attributes";a:3:{s:7:"channel";R:946;s:2:"id";R:564;s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:44:"!livecap.tv/[st]/(?\'channel\'\\w+)/(?\'id\'\\w+)!";i:2;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:2:"id";}}i:1;R:576;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:8:"LIVELEAK";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"!^[a-f_0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!liveleak\\.com/view\\?i=(?\'id\'[a-f_0-9]+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"!^(?\'id\'[a-f_0-9]+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:10:"LIVESTREAM";a:8:{s:10:"attributes";a:6:{s:10:"account_id";R:305;s:7:"channel";R:946;s:7:"clip_id";a:2:{s:11:"filterChain";R:339;s:8:"required";b:0;}s:8:"event_id";R:305;s:3:"url";R:180;s:8:"video_id";R:305;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:69:"!livestream\\.com/accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!";i:2;a:3:{i:0;s:0:"";i:1;s:10:"account_id";i:2;s:8:"event_id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:26:"!/videos/(?\'video_id\'\\d+)!";i:2;a:2:{i:0;s:0:"";i:1;s:8:"video_id";}}i:2;a:3:{i:0;s:3:"url";i:1;s:76:"!original\\.livestream\\.com/(?\'channel\'\\w+)/video\\?clipId=(?\'clip_id\'[-\\w]+)!";i:2;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:7:"clip_id";}}}s:11:"filterChain";a:4:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:2:"//";i:1;s:53:"!accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!";i:2;a:2:{i:0;s:10:"account_id";i:1;s:8:"event_id";}}i:1;a:3:{i:0;s:13:"!livestre.am!";i:1;s:70:"!//original\\.livestream\\.com/(?\'channel\'\\w+)/video/(?\'clip_id\'[-\\w]+)!";i:2;a:2:{i:0;s:7:"channel";i:1;s:7:"clip_id";}}}s:8:"cacheDir";N;}}i:2;R:205;i:3;R:329;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:6:"MAILRU";a:8:{s:10:"attributes";R:1211;s:22:"attributePreprocessors";R:1220;s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:35:"!my\\.mail\\.ru/\\w+/\\w+/video/\\w+/\\d!";i:1;s:36:"!mail\\.ru/video/(?\'id\'[/\\w]+)\\.html!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:5:"MEDIA";a:6:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:54:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::filterTag";s:6:"params";a:3:{s:3:"tag";N;s:6:"parser";N;s:10:"mediasites";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:513;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:3:{i:0;i:65534;i:1;i:65535;i:2;i:32639;}}s:6:"MEDIUM";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";R:1000;s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:47:"!medium\\.com/[^/]*/(?:[-\\w]+-)?(?\'id\'[\\da-f]+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:20:"!^(?\'id\'[\\da-f]+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:11;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65527;i:2;i:32639;}}s:8:"METACAFE";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:32:"!metacafe\\.com/watch/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:8:"MIXCLOUD";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:18:"@^[-\\w]+/[^/&]+$@D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:55:"@mixcloud\\.com/(?!categories|tag)(?\'id\'[-\\w]+/[^/&]+)/@";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:25:"@^(?\'id\'[-\\w]+/[^/&]+)$@D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:3:"MLB";a:8:{s:10:"attributes";R:671;s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:29:"#mlb\\.com/[\\w/]*/v(?\'id\'\\d+)#";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:41:"#mlb\\.com/r/video\\?content_id=(?\'id\'\\d+)#";i:2;R:193;}i:2;R:458;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:5:"MRCTV";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";R:728;s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:21:"!mrctv\\.org/videos/.!";i:1;s:29:"!mrctv\\.org/embed/(?\'id\'\\d+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:5:"MSNBC";a:8:{s:10:"attributes";R:905;s:22:"attributePreprocessors";a:1:{i:0;R:918;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;a:2:{i:0;s:26:"@msnbc\\.com/[-\\w]+/watch/@";i:1;s:18:"@on\\.msnbc\\.com/.@";}i:1;s:19:"@guid="?(?\'id\'\\w+)@";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:13:"NATGEOCHANNEL";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:26:"@^[-/\\w]+/videos/[-\\w]+$@D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:63:"@channel\\.nationalgeographic\\.com/(?\'id\'[-/\\w]+/videos/[-\\w]+)@";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:33:"@^(?\'id\'[-/\\w]+/videos/[-\\w]+)$@D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:11:"NATGEOVIDEO";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"@^[-\\w]+$@D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:18:"@^(?\'id\'[-\\w]+)$@D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:48:"@video\\.nationalgeographic\\.com/(?:tv|video)/\\w@";i:1;s:22:"@guid="(?\'id\'[-\\w]+)"@";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"NBCNEWS";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:63:"!nbcnews\\.com/(?:widget/video-embed/|video/[-\\w]+?-)(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:9:"NBCSPORTS";a:8:{s:10:"attributes";R:563;s:22:"attributePreprocessors";R:983;s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:24:"!nbcsports\\.com/video/.!";i:1;s:25:"!select/media/(?\'id\'\\w+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:3:"NHL";a:8:{s:10:"attributes";a:4:{s:1:"c";R:438;s:2:"id";a:2:{s:11:"filterChain";R:368;s:8:"required";b:0;}s:1:"t";R:438;s:3:"url";R:180;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:44:"#nhl\\.com/videocenter/.*?\\Wid=(?\'id\'[-\\w]+)#";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:80:"#nhl\\.com/(?:\\w+/)?video(?:/(?![ct]-)[-\\w]+)?(?:/t-(?\'t\'\\d+))?(?:/c-(?\'c\'\\d+))?#";i:2;a:3:{i:0;s:0:"";i:1;s:1:"t";i:2;s:1:"c";}}i:2;R:379;}s:11:"filterChain";R:957;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:3:"NPR";a:7:{s:10:"attributes";a:3:{s:1:"i";R:305;s:1:"m";R:305;s:3:"url";R:180;}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;a:2:{i:0;s:21:"!npr\\.org/[/\\w]+/\\d+!";i:1;s:10:"!n\\.pr/\\w!";}i:1;s:34:"!player/embed/(?\'i\'\\d+)/(?\'m\'\\d+)!";i:2;a:2:{i:0;s:1:"i";i:1;s:1:"m";}}}s:8:"cacheDir";N;}}i:1;R:205;i:2;R:329;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:12;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65519;i:2;i:32639;}}s:7:"NYTIMES";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!nytimes\\.com/video/[a-z]+/(?:[a-z]+/)?(?\'id\'\\d+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:50:"!nytimes\\.com/video/\\d+/\\d+/\\d+/[a-z]+/(?\'id\'\\d+)!";i:2;R:193;}i:2;R:196;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:65:"!nytimes\\.com/movie(?:s/movie)?/(?\'playlist\'\\d+)/[-\\w]+/trailers!";i:1;s:26:"!/video/movies/(?\'id\'\\d+)!";i:2;R:359;i:3;s:73:"http://www.nytimes.com/svc/video/api/playlist/{@playlist}?externalId=true";}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"ODDSHOT";a:8:{s:10:"attributes";R:337;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:31:"!oddshot.tv/shot/(?\'id\'[-\\w]+)!";i:2;R:193;}i:1;R:347;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:8:"PASTEBIN";a:8:{s:10:"attributes";R:905;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:55:"@pastebin\\.com/(?!u/)(?:\\w+(?:\\.php\\?i=|/))?(?\'id\'\\w+)@";i:2;R:193;}i:1;R:918;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65503;i:2;i:32639;}}s:7:"PLAYSTV";a:8:{s:10:"attributes";R:563;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:28:"!plays\\.tv/video/(?\'id\'\\w+)!";i:2;R:193;}i:1;R:576;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:14:"!plays\\.tv/s/!";i:1;s:28:"!plays\\.tv/video/(?\'id\'\\w+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"PODBEAN";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:55:"!podbean\\.com/site/player/index/pid/\\d+/eid/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:17:"!podbean\\.com/e/!";i:1;s:25:"!embed/postId/(?\'id\'\\d+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65471;i:2;i:32639;}}s:5:"PREZI";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";R:447;s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:221:"#//prezi\\.com/(?!(?:a(?:bout|mbassadors)|c(?:o(?:llaborate|mmunity|ntact)|reate)|exp(?:erts|lore)|ip(?:ad|hone)|jobs|l(?:ear|ogi)n|m(?:ac|obility)|pr(?:es(?:s|ent)|icing)|recommend|support|user|windows|your)/)(?\'id\'\\w+)/#";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"#^(?\'id\'\\w+)$#D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:6:"REDDIT";a:8:{s:10:"attributes";a:2:{s:4:"path";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:37:"!^/r/\\w+/comments/\\w+/(?:\\w+/\\w+)?$!D";}}}s:8:"required";b:0;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:43:"!(?\'path\'/r/\\w+/comments/\\w+/(?:\\w+/\\w+)?)!";i:2;a:2:{i:0;s:0:"";i:1;s:4:"path";}}}s:11:"filterChain";R:957;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:15;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65407;i:2;i:32639;}}s:6:"RUTUBE";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:30:"!rutube\\.ru/tracks/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:31:"!rutube\\.ru/video/[0-9a-f]{32}!";i:1;s:34:"!rutube\\.ru/play/embed/(?\'id\'\\d+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:6:"SCRIBD";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!scribd\\.com/(?:mobile/)?doc(?:ument)?/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:16;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32638;}}s:10:"SLIDESHARE";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^\\d{6,}$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:45:"!slideshare\\.net/[^/]+/[-\\w]+-(?\'id\'\\d{6,})$!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'\\d{6,})$!D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:26:"!slideshare\\.net/[^/]+/\\w!";i:1;s:29:"!"presentationId":(?\'id\'\\d+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:10:"SOUNDCLOUD";a:8:{s:10:"attributes";a:5:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:83:"@^(?:https?://(?:api\\.)?soundcloud\\.com/(?!pages/)[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)$@D";}}}s:8:"required";b:1;}s:11:"playlist_id";a:2:{s:11:"filterChain";R:684;s:8:"required";b:0;}s:12:"secret_token";a:2:{s:11:"filterChain";R:1526;s:8:"required";b:0;}s:8:"track_id";R:1804;s:3:"url";R:180;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:83:"@(?\'id\'https?://(?:api\\.)?soundcloud\\.com/(?!pages/)[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)@";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:52:"@api\\.soundcloud\\.com/playlists/(?\'playlist_id\'\\d+)@";i:2;a:2:{i:0;s:0:"";i:1;s:11:"playlist_id";}}i:2;a:3:{i:0;s:3:"url";i:1;s:89:"@api\\.soundcloud\\.com/tracks/(?\'track_id\'\\d+)(?:\\?secret_token=(?\'secret_token\'[-\\w]+))?@";i:2;a:3:{i:0;s:0:"";i:1;s:8:"track_id";i:2;s:12:"secret_token";}}i:3;a:3:{i:0;s:3:"url";i:1;s:81:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/(?=s-)(?\'secret_token\'[-\\w]+)@";i:2;a:2:{i:0;s:0:"";i:1;s:12:"secret_token";}}i:4;a:3:{i:0;s:3:"url";i:1;s:90:"@^(?\'id\'(?:https?://(?:api\\.)?soundcloud\\.com/(?!pages/)[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$))$@D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:54:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/s-@";i:1;s:36:"@soundcloud:tracks:(?\'track_id\'\\d+)@";i:2;a:1:{i:0;s:8:"track_id";}}i:1;a:3:{i:0;s:27:"@soundcloud\\.com/\\w+/sets/@";i:1;s:44:"@soundcloud://playlists:(?\'playlist_id\'\\d+)@";i:2;a:1:{i:0;s:11:"playlist_id";}}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:17;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32637;}}s:9:"SPORTSNET";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"/^\\d+$/D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:15:"/^(?\'id\'\\d+)$/D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:2:"//";i:1;a:2:{i:0;s:25:"/vid(?:eoId)?=(?\'id\'\\d+)/";i:1;s:46:"/param name="@videoPlayer" value="(?\'id\'\\d+)"/";}i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"SPOTIFY";a:8:{s:10:"attributes";a:3:{s:4:"path";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:44:"!^(?:(?:album|artist|track|user)/[-/\\w]+)$!D";}}}s:8:"required";b:0;}s:3:"uri";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:61:"!^(?:spotify:(?:album|artist|user|track(?:set)?):[-,:\\w]+)$!D";}}}s:8:"required";b:0;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:62:"!(?\'uri\'spotify:(?:album|artist|user|track(?:set)?):[-,:\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:3:"uri";}}i:1;a:3:{i:0;s:3:"url";i:1;s:74:"!(?:open|play)\\.spotify\\.com/(?\'path\'(?:album|artist|track|user)/[-/\\w]+)!";i:2;R:1724;}}s:11:"filterChain";R:957;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:10:"STEAMSTORE";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!store.steampowered.com/app/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:18;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32635;}}s:8:"STITCHER";a:7:{s:10:"attributes";a:3:{s:3:"eid";R:305;s:3:"fid";R:305;s:3:"url";R:180;}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:11:"!/podcast/!";i:1;a:2:{i:0;s:23:"!data-eid="(?\'eid\'\\d+)!";i:1;s:23:"!data-fid="(?\'fid\'\\d+)!";}i:2;a:2:{i:0;s:3:"eid";i:1;s:3:"fid";}}}s:8:"cacheDir";N;}}i:1;R:205;i:2;R:329;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:19;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32631;}}s:9:"STRAWPOLL";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:26:"!strawpoll\\.me/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:10:"STREAMABLE";a:8:{s:10:"attributes";R:563;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:28:"!streamable\\.com/(?\'id\'\\w+)!";i:2;R:193;}i:1;R:576;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:8:"TEAMCOCO";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:32:"!teamcoco\\.com/video/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:23:"!teamcoco\\.com/video/.!";i:1;s:17:"!"id":(?\'id\'\\d+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:3:"TED";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:46:"#^(?:(?:talk|playlist)s/[-\\w]+(?:\\.html)?)$#iD";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:76:"#ted\\.com/(?\'id\'(?:talk|playlist)s/[-\\w]+(?:\\.html)?)(?![-\\w]|/transcript)#i";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:53:"#^(?\'id\'(?:(?:talk|playlist)s/[-\\w]+(?:\\.html)?))$#iD";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:11:"THEATLANTIC";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!theatlantic\\.com/video/index/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:11:"THEGUARDIAN";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:22:"!^\\w+/video/[-/\\w]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:43:"!theguardian\\.com/(?\'id\'\\w+/video/[-/\\w]+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:29:"!^(?\'id\'\\w+/video/[-/\\w]+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:8:"THEONION";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:42:"!theonion\\.com/video/[-\\w]+[-,](?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"TINYPIC";a:8:{s:10:"attributes";a:3:{s:2:"id";R:564;s:1:"s";R:305;s:3:"url";R:180;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:52:"!tinypic\\.com/player\\.php\\?v=(?\'id\'\\w+)&s=(?\'s\'\\d+)!";i:2;a:3:{i:0;s:0:"";i:1;s:2:"id";i:2;s:1:"s";}}i:1;a:3:{i:0;s:3:"url";i:1;s:37:"!tinypic\\.com/r/(?\'id\'\\w+)/(?\'s\'\\d+)!";i:2;R:2050;}i:2;R:576;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:3:"TMZ";a:8:{s:10:"attributes";R:905;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:28:"@tmz\\.com/videos/(?\'id\'\\w+)@";i:2;R:193;}i:1;R:918;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:13:"TRAILERADDICT";a:8:{s:10:"attributes";a:2:{s:2:"id";R:683;s:3:"url";R:180;}s:22:"attributePreprocessors";a:1:{i:0;R:709;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:37:"@traileraddict\\.com/(?!tags/)[^/]+/.@";i:1;s:34:"@v\\.traileraddict\\.com/(?\'id\'\\d+)@";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:6:"TUMBLR";a:8:{s:10:"attributes";a:5:{s:3:"did";R:1339;s:2:"id";R:172;s:3:"key";R:1339;s:4:"name";R:1339;s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:46:"!(?\'name\'[-\\w]+)\\.tumblr\\.com/post/(?\'id\'\\d+)!";i:2;a:3:{i:0;s:0:"";i:1;s:4:"name";i:2;s:2:"id";}}i:1;R:196;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:25:"!\\w\\.tumblr\\.com/post/\\d!";i:1;a:2:{i:0;s:27:"!did=\\\\u0022(?\'did\'[-\\w]+)!";i:1;s:31:"!embed\\\\/post\\\\/(?\'key\'[-\\w]+)!";}i:2;a:2:{i:0;s:3:"did";i:1;s:3:"key";}i:3;s:73:"http://www.tumblr.com/oembed/1.0?url=http://{@name}.tumblr.com/post/{@id}";}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:20;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32623;}}s:6:"TWITCH";a:8:{s:10:"attributes";a:7:{s:10:"archive_id";R:438;s:7:"channel";R:446;s:10:"chapter_id";R:438;s:7:"clip_id";R:446;s:1:"t";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:27:"#^(?:(?:\\d+h)?\\d+m)?\\d+s$#D";}}}s:8:"required";b:0;}s:3:"url";R:180;s:8:"video_id";R:438;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:96:"#twitch\\.tv/(?\'channel\'\\w+)(?:/b/(?\'archive_id\'\\d+)|/c/(?\'chapter_id\'\\d+)|/v/(?\'video_id\'\\d+))?#";i:2;a:5:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:10:"archive_id";i:3;s:10:"chapter_id";i:4;s:8:"video_id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:32:"#t=(?\'t\'(?:(?:\\d+h)?\\d+m)?\\d+s)#";i:2;a:2:{i:0;s:0:"";i:1;s:1:"t";}}i:2;a:3:{i:0;s:3:"url";i:1;s:51:"#clips\\.twitch\\.tv/(?\'channel\'\\w+)/(?\'clip_id\'\\w+)#";i:2;R:1358;}}s:11:"filterChain";R:957;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"TWITTER";a:8:{s:10:"attributes";R:2069;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:51:"@twitter\\.com/(?:#!/)?\\w+/status(?:es)?/(?\'id\'\\d+)@";i:2;R:193;}i:1;R:709;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:21;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32607;}}s:7:"USTREAM";a:8:{s:10:"attributes";a:3:{s:3:"cid";R:305;s:3:"url";R:180;s:3:"vid";R:305;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:34:"!ustream\\.tv/recorded/(?\'vid\'\\d+)!";i:2;a:2:{i:0;s:0:"";i:1;s:3:"vid";}}}s:11:"filterChain";a:4:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:90:"#ustream\\.tv/(?!explore/|platform/|recorded/|search\\?|upcoming$|user/)(?:channel/)?[-\\w]+#";i:1;s:19:"!embed/(?\'cid\'\\d+)!";i:2;a:1:{i:0;s:3:"cid";}}}s:8:"cacheDir";N;}}i:2;R:205;i:3;R:329;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:5:"VBOX7";a:8:{s:10:"attributes";R:1416;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:33:"!vbox7\\.com/play:(?\'id\'[\\da-f]+)!";i:2;R:193;}i:1;R:1423;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"VEOH";a:8:{s:10:"attributes";R:563;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!veoh\\.com/(?:m/watch\\.php\\?v=|watch/)v(?\'id\'\\w+)!";i:2;R:193;}i:1;R:576;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"VEVO";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:14:"!^[A-Z0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:45:"!vevo\\.com/watch/([-/\\w]+/)?(?\'id\'[A-Z0-9]+)!";i:2;a:3:{i:0;s:0:"";i:1;s:0:"";i:2;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:21:"!^(?\'id\'[A-Z0-9]+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"VIAGAME";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:40:"!viagame\\.com/channels/[^/]+/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:14:"VIDEODETECTIVE";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:59:"!videodetective\\.com/\\w+/[-\\w]+/(?:trailer/P0*)?(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:9:"VIDEOMEGA";a:8:{s:10:"attributes";R:563;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:32:"!videomega\\.tv/\\?ref=(?\'id\'\\w+)!";i:2;R:193;}i:1;R:576;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:5:"VIDME";a:8:{s:10:"attributes";a:4:{s:6:"height";R:802;s:2:"id";R:564;s:3:"url";R:180;s:5:"width";R:805;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:20:"!vid\\.me/(?\'id\'\\w+)!";i:2;R:193;}i:1;R:576;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:2:"//";i:1;s:170:"!meta property="og:video:type" content="video/\\w+">\\s*<meta property="og:video:height" content="(?\'height\'\\d+)">\\s*<meta property="og:video:width" content="(?\'width\'\\d+)!";i:2;R:864;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:5:"VIMEO";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!vimeo\\.com/(?:channels/[^/]+/|video/)?(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"VINE";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;R:936;}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:25:"!vine\\.co/v/(?\'id\'[^/]+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:17:"!^(?\'id\'[^/]+)$!D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:2:"VK";a:8:{s:10:"attributes";a:4:{s:4:"hash";a:2:{s:11:"filterChain";R:753;s:8:"required";b:0;}s:3:"oid";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^-?\\d+$!D";}}}s:8:"required";b:0;}s:3:"url";R:180;s:3:"vid";R:305;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:71:"!vk(?:\\.com|ontakte\\.ru)/(?:[\\w.]+\\?z=)?video(?\'oid\'-?\\d+)_(?\'vid\'\\d+)!";i:2;a:3:{i:0;s:0:"";i:1;s:3:"oid";i:2;s:3:"vid";}}i:1;a:3:{i:0;s:3:"url";i:1;s:98:"!vk(?:\\.com|ontakte\\.ru)/video_ext\\.php\\?oid=(?\'oid\'-?\\d+)&id=(?\'vid\'\\d+)&hash=(?\'hash\'[0-9a-f]+)!";i:2;a:4:{i:0;s:0:"";i:1;s:3:"oid";i:2;s:3:"vid";i:3;s:4:"hash";}}}s:11:"filterChain";a:4:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:21:"!vk.*?video-?\\d+_\\d+!";i:1;s:31:"!embed_hash=(?\'hash\'[0-9a-f]+)!";i:2;a:1:{i:0;s:4:"hash";}i:3;s:32:"http://vk.com/video{@oid}_{@vid}";}}s:8:"cacheDir";N;}}i:2;R:205;i:3;R:329;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"VOCAROO";a:8:{s:10:"attributes";R:563;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:27:"!vocaroo\\.com/i/(?\'id\'\\w+)!";i:2;R:193;}i:1;R:576;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:3:"VOX";a:8:{s:10:"attributes";R:337;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:31:"!vox.com/.*#ooid=(?\'id\'[-\\w]+)!";i:2;R:193;}i:1;R:347;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:14:"WASHINGTONPOST";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"#^[-0-9a-f]+$#D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:51:"#washingtonpost\\.com/video/c/\\w+/(?\'id\'[-0-9a-f]+)#";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:65:"#washingtonpost\\.com/video/[-/\\w]+/(?\'id\'[-0-9a-f]+)_video\\.html#";i:2;R:193;}i:2;a:3:{i:0;s:3:"url";i:1;s:22:"#^(?\'id\'[-0-9a-f]+)$#D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:4:"WSHH";a:8:{s:10:"attributes";R:171;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:42:"!worldstarhiphop\\.com/featured/(?\'id\'\\d+)!";i:2;R:193;}i:1;R:196;}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:49:"!worldstarhiphop\\.com/(?:\\w+/)?video\\.php\\?v=\\w+!";i:1;s:35:"!disqus_identifier[ =\']+(?\'id\'\\d+)!";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:3:"WSJ";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:18:"@^[-0-9A-F]{36}$@D";}}}s:8:"required";b:1;}s:3:"url";R:180;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:38:"@wsj\\.com/[^#]*#!(?\'id\'[-0-9A-F]{36})@";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:43:"@wsj\\.com/video/[^/]+/(?\'id\'[-0-9A-F]{36})@";i:2;R:193;}i:2;a:3:{i:0;s:3:"url";i:1;s:25:"@^(?\'id\'[-0-9A-F]{36})$@D";i:2;R:193;}}s:11:"filterChain";a:3:{i:0;R:200;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:17:"@on\\.wsj\\.com/\\w@";i:1;s:27:"@guid=(?\'id\'[-0-9A-F]{36})@";i:2;R:359;}}s:8:"cacheDir";N;}}i:2;R:205;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:9:"XBOXCLIPS";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"@^[-0-9a-f]+$@D";}}}s:8:"required";b:1;}s:3:"url";R:180;s:4:"user";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"@^[^/]+$@D";}}}s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:65:"@xboxclips\\.com/(?\'user\'[^/]+)/(?!screenshots/)(?\'id\'[-0-9a-f]+)@";i:2;a:3:{i:0;s:0:"";i:1;s:4:"user";i:2;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"@^(?\'id\'[-0-9a-f]+)$@D";i:2;R:193;}}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"XBOXDVR";a:8:{s:10:"attributes";a:3:{s:2:"id";R:172;s:3:"url";R:180;s:4:"user";a:2:{s:11:"filterChain";R:2279;s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:52:"!xboxdvr\\.com/gamer/(?\'user\'[^/]+)/video/(?\'id\'\\d+)!";i:2;R:2447;}i:1;R:196;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:11:"YAHOOSCREEN";a:8:{s:10:"attributes";R:337;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:52:"!screen\\.yahoo\\.com/(?:[-\\w]+/)?(?\'id\'[-\\w]+)\\.html!";i:2;R:193;}i:1;R:347;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:5:"YOUKU";a:8:{s:10:"attributes";R:563;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:33:"!youku\\.com/v_show/id_(?\'id\'\\w+)!";i:2;R:193;}i:1;R:576;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:7:"YOUTUBE";a:8:{s:10:"attributes";a:7:{s:1:"h";R:305;s:2:"id";R:338;s:4:"list";R:1339;s:1:"m";R:305;s:1:"s";R:305;s:1:"t";R:305;s:3:"url";R:180;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:45:"!youtube\\.com/(?:watch.*?v=|v/)(?\'id\'[-\\w]+)!";i:2;R:193;}i:1;a:3:{i:0;s:3:"url";i:1;s:25:"!youtu\\.be/(?\'id\'[-\\w]+)!";i:2;R:193;}i:2;a:3:{i:0;s:3:"url";i:1;s:57:"![#&?]t=(?:(?:(?\'h\'\\d+)h)?(?\'m\'\\d+)m(?\'s\'\\d+)|(?\'t\'\\d+))!";i:2;a:5:{i:0;s:0:"";i:1;s:1:"h";i:2;s:1:"m";i:3;s:1:"s";i:4;s:1:"t";}}i:3;a:3:{i:0;s:3:"url";i:1;s:23:"!&list=(?\'list\'[-\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:4:"list";}}i:4;R:347;}s:11:"filterChain";R:199;s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:217;}s:10:"ZIPPYSHARE";a:7:{s:10:"attributes";a:3:{s:4:"file";R:946;s:6:"server";R:305;s:3:"url";R:180;}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:5:"!/v/!";i:1;s:45:"!file=(?\'file\'\\w+)&amp;server=(?\'server\'\\d+)!";i:2;a:2:{i:0;s:4:"file";i:1;s:6:"server";}}}s:8:"cacheDir";N;}}i:1;R:205;i:2;R:329;}s:12:"nestingLimit";i:10;s:5:"rules";R:213;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:22;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32575;}}}}');
+		return \unserialize('O:24:"s9e\\TextFormatter\\Parser":4:{s:16:"' . "\0" . '*' . "\0" . 'pluginsConfig";a:1:{s:10:"MediaEmbed";a:4:{s:10:"quickMatch";s:1:":";s:6:"regexp";s:39:"/\\b(?>spotify:|https?:\\/\\/)[^["\'\\s]+/Si";s:7:"tagName";s:5:"MEDIA";s:11:"regexpLimit";i:10000;}}s:14:"registeredVars";a:2:{s:9:"urlConfig";a:1:{s:14:"allowedSchemes";s:12:"/^https?$/Di";}s:10:"mediasites";a:153:{s:14:"abcnews.go.com";s:7:"abcnews";s:9:"amazon.ca";s:6:"amazon";s:12:"amazon.co.uk";s:6:"amazon";s:12:"amazon.co.jp";s:6:"amazon";s:10:"amazon.com";s:6:"amazon";s:9:"amazon.de";s:6:"amazon";s:9:"amazon.es";s:6:"amazon";s:9:"amazon.fr";s:6:"amazon";s:9:"amazon.it";s:6:"amazon";s:11:"audioboo.fm";s:9:"audioboom";s:13:"audioboom.com";s:9:"audioboom";s:13:"audiomack.com";s:9:"audiomack";s:12:"bandcamp.com";s:8:"bandcamp";s:7:"bbc.com";s:7:"bbcnews";s:7:"blab.im";s:4:"blab";s:18:"bleacherreport.com";s:14:"bleacherreport";s:9:"break.com";s:5:"break";s:8:"bcove.me";s:10:"brightcove";s:19:"link.brightcove.com";s:10:"brightcove";s:11:"cbsnews.com";s:7:"cbsnews";s:14:"video.cnbc.com";s:4:"cnbc";s:7:"cnn.com";s:3:"cnn";s:13:"money.cnn.com";s:8:"cnnmoney";s:16:"collegehumor.com";s:12:"collegehumor";s:6:"cc.com";s:13:"comedycentral";s:17:"comedycentral.com";s:13:"comedycentral";s:8:"coub.com";s:4:"coub";s:15:"dailymotion.com";s:11:"dailymotion";s:16:"democracynow.org";s:12:"democracynow";s:10:"dumpert.nl";s:7:"dumpert";s:11:"8tracks.com";s:11:"eighttracks";s:8:"espn.com";s:4:"espn";s:11:"espn.go.com";s:4:"espn";s:12:"facebook.com";s:8:"facebook";s:10:"flickr.com";s:6:"flickr";s:7:"fora.tv";s:6:"foratv";s:17:"video.foxnews.com";s:7:"foxnews";s:14:"funnyordie.com";s:10:"funnyordie";s:12:"gamespot.com";s:8:"gamespot";s:16:"gametrailers.com";s:12:"gametrailers";s:14:"gettyimages.be";s:5:"getty";s:14:"gettyimages.cn";s:5:"getty";s:17:"gettyimages.co.jp";s:5:"getty";s:17:"gettyimages.co.uk";s:5:"getty";s:15:"gettyimages.com";s:5:"getty";s:18:"gettyimages.com.au";s:5:"getty";s:14:"gettyimages.de";s:5:"getty";s:14:"gettyimages.dk";s:5:"getty";s:14:"gettyimages.es";s:5:"getty";s:14:"gettyimages.fr";s:5:"getty";s:14:"gettyimages.ie";s:5:"getty";s:14:"gettyimages.it";s:5:"getty";s:14:"gettyimages.nl";s:5:"getty";s:14:"gettyimages.pt";s:5:"getty";s:14:"gettyimages.se";s:5:"getty";s:6:"gty.im";s:5:"getty";s:10:"gfycat.com";s:6:"gfycat";s:8:"gifs.com";s:4:"gifs";s:10:"github.com";s:4:"gist";s:13:"globalnews.ca";s:10:"globalnews";s:12:"gofundme.com";s:8:"gofundme";s:16:"drive.google.com";s:11:"googledrive";s:15:"plus.google.com";s:10:"googleplus";s:15:"docs.google.com";s:12:"googlesheets";s:14:"healthguru.com";s:10:"healthguru";s:8:"hudl.com";s:4:"hudl";s:8:"hulu.com";s:4:"hulu";s:15:"humortv.vara.nl";s:9:"humortvnl";s:7:"ign.com";s:3:"ign";s:8:"imdb.com";s:4:"imdb";s:9:"imgur.com";s:5:"imgur";s:13:"indiegogo.com";s:9:"indiegogo";s:13:"instagram.com";s:9:"instagram";s:11:"archive.org";s:15:"internetarchive";s:12:"izlesene.com";s:8:"izlesene";s:14:"jwplatform.com";s:10:"jwplatform";s:12:"video.khl.ru";s:3:"khl";s:15:"kickstarter.com";s:11:"kickstarter";s:15:"kissvideo.click";s:9:"kissvideo";s:10:"libsyn.com";s:6:"libsyn";s:10:"livecap.tv";s:7:"livecap";s:12:"liveleak.com";s:8:"liveleak";s:11:"livestre.am";s:10:"livestream";s:14:"livestream.com";s:10:"livestream";s:10:"my.mail.ru";s:6:"mailru";s:10:"medium.com";s:6:"medium";s:12:"metacafe.com";s:8:"metacafe";s:12:"mixcloud.com";s:8:"mixcloud";s:7:"mlb.com";s:3:"mlb";s:9:"mrctv.org";s:5:"mrctv";s:9:"msnbc.com";s:5:"msnbc";s:30:"channel.nationalgeographic.com";s:13:"natgeochannel";s:28:"video.nationalgeographic.com";s:11:"natgeovideo";s:11:"nbcnews.com";s:7:"nbcnews";s:13:"nbcsports.com";s:9:"nbcsports";s:7:"nhl.com";s:3:"nhl";s:7:"npr.org";s:3:"npr";s:4:"n.pr";s:3:"npr";s:11:"nytimes.com";s:7:"nytimes";s:10:"oddshot.tv";s:7:"oddshot";s:12:"pastebin.com";s:8:"pastebin";s:13:"pinterest.com";s:9:"pinterest";s:8:"plays.tv";s:7:"playstv";s:11:"podbean.com";s:7:"podbean";s:9:"prezi.com";s:5:"prezi";s:10:"reddit.com";s:6:"reddit";s:9:"rutube.ru";s:6:"rutube";s:10:"scribd.com";s:6:"scribd";s:14:"slideshare.net";s:10:"slideshare";s:14:"soundcloud.com";s:10:"soundcloud";s:12:"sportsnet.ca";s:9:"sportsnet";s:16:"open.spotify.com";s:7:"spotify";s:16:"play.spotify.com";s:7:"spotify";s:8:"spotify:";s:7:"spotify";s:22:"store.steampowered.com";s:10:"steamstore";s:12:"stitcher.com";s:8:"stitcher";s:12:"strawpoll.me";s:9:"strawpoll";s:14:"streamable.com";s:10:"streamable";s:12:"teamcoco.com";s:8:"teamcoco";s:7:"ted.com";s:3:"ted";s:15:"theatlantic.com";s:11:"theatlantic";s:15:"theguardian.com";s:11:"theguardian";s:12:"theonion.com";s:8:"theonion";s:11:"tinypic.com";s:7:"tinypic";s:7:"tmz.com";s:3:"tmz";s:17:"traileraddict.com";s:13:"traileraddict";s:10:"tumblr.com";s:6:"tumblr";s:9:"twitch.tv";s:6:"twitch";s:11:"twitter.com";s:7:"twitter";s:10:"ustream.tv";s:7:"ustream";s:9:"vbox7.com";s:5:"vbox7";s:8:"veoh.com";s:4:"veoh";s:8:"vevo.com";s:4:"vevo";s:11:"viagame.com";s:7:"viagame";s:18:"videodetective.com";s:14:"videodetective";s:12:"videomega.tv";s:9:"videomega";s:6:"vid.me";s:5:"vidme";s:9:"vimeo.com";s:5:"vimeo";s:7:"vine.co";s:4:"vine";s:6:"vk.com";s:2:"vk";s:12:"vkontakte.ru";s:2:"vk";s:11:"vocaroo.com";s:7:"vocaroo";s:7:"vox.com";s:3:"vox";s:18:"washingtonpost.com";s:14:"washingtonpost";s:19:"worldstarhiphop.com";s:4:"wshh";s:7:"wsj.com";s:3:"wsj";s:13:"xboxclips.com";s:9:"xboxclips";s:11:"xboxdvr.com";s:7:"xboxdvr";s:16:"screen.yahoo.com";s:11:"yahooscreen";s:9:"youku.com";s:5:"youku";s:11:"youtube.com";s:7:"youtube";s:8:"youtu.be";s:7:"youtube";s:14:"zippyshare.com";s:10:"zippyshare";}}s:14:"' . "\0" . '*' . "\0" . 'rootContext";a:2:{s:7:"allowed";a:3:{i:0;i:65535;i:1;i:65535;i:2;i:32639;}s:5:"flags";i:0;}s:13:"' . "\0" . '*' . "\0" . 'tagsConfig";a:122:{s:7:"ABCNEWS";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"!^\\d+$!D";}}}s:8:"required";b:1;}s:3:"url";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:50:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterUrl";s:6:"params";a:3:{s:9:"attrValue";N;s:9:"urlConfig";N;s:6:"logger";N;}}}s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:68:"!abcnews\\.go\\.com/(?:video/embed\\?id=|[^/]+/video/[^/]+-)(?\'id\'\\d+)!";i:2;a:2:{i:0;s:0:"";i:1;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"!^(?\'id\'\\d+)$!D";i:2;R:195;}}s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:55:"s9e\\TextFormatter\\Parser::executeAttributePreprocessors";s:6:"params";a:2:{s:3:"tag";N;s:9:"tagConfig";N;}}i:1;a:2:{s:8:"callback";s:42:"s9e\\TextFormatter\\Parser::filterAttributes";s:6:"params";a:4:{s:3:"tag";N;s:9:"tagConfig";N;s:14:"registeredVars";N;s:6:"logger";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3089;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";a:3:{i:0;i:256;i:1;i:0;i:2;i:0;}}s:6:"AMAZON";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:14:"#^[A-Z0-9]+$#D";}}}s:8:"required";b:1;}s:3:"tld";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:29:"#^(?:ca|de|es|fr|it|jp|uk)$#D";}}}s:8:"required";b:0;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:37:"#/(?:dp|gp/product)/(?\'id\'[A-Z0-9]+)#";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:47:"#amazon\\.(?:co\\.)?(?\'tld\'ca|de|es|fr|it|jp|uk)#";i:2;a:2:{i:0;s:0:"";i:1;s:3:"tld";}}i:2;a:3:{i:0;s:3:"url";i:1;s:21:"#^(?\'id\'[A-Z0-9]+)$#D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:9:"AUDIOBOOM";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:49:"!audioboo(?:\\.f|m\\.co)m/(?:boo|post)s/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:2;s:7:"allowed";a:3:{i:0;i:65528;i:1;i:65535;i:2;i:32639;}}s:9:"AUDIOMACK";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:18:"!^[-\\w]+/[-\\w]+$!D";}}}s:8:"required";b:1;}s:4:"mode";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:19:"!^(?:album|song)$!D";}}}s:8:"required";b:0;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:57:"!audiomack\\.com/(?\'mode\'album|song)/(?\'id\'[-\\w]+/[-\\w]+)!";i:2;a:3:{i:0;s:0:"";i:1;s:4:"mode";i:2;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:25:"!^(?\'id\'[-\\w]+/[-\\w]+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:3;s:7:"allowed";R:219;}s:8:"BANDCAMP";a:7:{s:10:"attributes";a:4:{s:8:"album_id";a:2:{s:11:"filterChain";R:175;s:8:"required";b:0;}s:8:"track_id";R:303;s:9:"track_num";R:303;s:3:"url";R:182;}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:23:"!bandcamp\\.com/album/.!";i:1;s:25:"!/album=(?\'album_id\'\\d+)!";i:2;a:1:{i:0;s:8:"album_id";}}i:1;a:3:{i:0;s:23:"!bandcamp\\.com/track/.!";i:1;a:3:{i:0;s:29:"!"album_id":(?\'album_id\'\\d+)!";i:1;s:31:"!"track_num":(?\'track_num\'\\d+)!";i:2;s:25:"!/track=(?\'track_id\'\\d+)!";}i:2;a:3:{i:0;s:8:"album_id";i:1;s:8:"track_id";i:2;s:9:"track_num";}}}s:8:"cacheDir";N;}}i:1;R:207;i:2;a:2:{s:8:"callback";s:67:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::hasNonDefaultAttribute";s:6:"params";a:1:{s:3:"tag";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"BBCNEWS";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:14:"!^[-\\\\\\w/]+$!D";}}i:1;a:2:{s:8:"callback";s:12:"stripslashes";s:6:"params";a:1:{s:9:"attrValue";N;}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:21:"!^(?\'id\'[-\\\\\\w/]+)$!D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:18:"!bbc\\.com/news/\\w!";i:1;s:44:"!bbc\\.com\\\\/news\\\\/(?\'id\'[-\\\\\\w/]+)\\\\/embed!";i:2;a:1:{i:0;s:2:"id";}}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"BLAB";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"#^[-\\w]+$#D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:68:"#blab\\.im/(?!about$|live$|replay$|scheduled$|search\\?)(?\'id\'[-\\w]+)#";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:18:"#^(?\'id\'[-\\w]+)$#D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:14:"BLEACHERREPORT";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^[-\\w]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'[-\\w]+)$!D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:13:"!/articles/.!";i:1;s:25:"!id="video-(?\'id\'[-\\w]+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:5:"BREAK";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:33:"!break\\.com/video/.*-(?\'id\'\\d+)$!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:10:"BRIGHTCOVE";a:7:{s:10:"attributes";a:4:{s:5:"bckey";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:13:"!^[-,~\\w]+$!D";}}}s:8:"required";b:0;}s:5:"bcpid";R:303;s:5:"bctid";R:303;s:3:"url";R:182;}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;a:2:{i:0;s:13:"!bcove\\.me/.!";i:1;s:40:"!link\\.brightcove\\.com/services/player/!";}i:1;s:108:"!meta name="twitter:player" content=".*?bcpid(?\'bcpid\'\\d+).*?bckey=(?\'bckey\'[-,~\\w]+).*?bctid=(?\'bctid\'\\d+)!";i:2;a:3:{i:0;s:5:"bckey";i:1;s:5:"bcpid";i:2;s:5:"bctid";}}}s:8:"cacheDir";N;}}i:1;R:207;i:2;R:327;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"CBSNEWS";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\d+$#D";}}}s:8:"required";b:0;}s:3:"pid";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"#^\\w+$#D";}}}s:8:"required";b:0;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:42:"#cbsnews\\.com/video/watch/\\?id=(?\'id\'\\d+)#";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"#^(?\'id\'\\d+)$#D";i:2;R:195;}}s:11:"filterChain";a:4:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:32:"#cbsnews\\.com/videos/(?!watch/)#";i:1;s:21:"#"pid":"(?\'pid\'\\w+)"#";i:2;a:1:{i:0;s:3:"pid";}}}s:8:"cacheDir";N;}}i:2;R:207;i:3;R:327;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"CNBC";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:38:"!cnbc\\.com/gallery/\\?video=(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:3:"CNN";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:12:"!^.*\\.cnn$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:31:"!cnn.com/videos/(?\'id\'.*\\.cnn)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:47:"!cnn\\.com/video/data/2\\.0/video/(?\'id\'.*\\.cnn)!";i:2;R:195;}i:2;a:3:{i:0;s:3:"url";i:1;s:19:"!^(?\'id\'.*\\.cnn)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:8:"CNNMONEY";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^.*\\.cnnmoney$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:43:"!money\\.cnn\\.com/video/(?\'id\'.*\\.cnnmoney)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'.*\\.cnnmoney)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:12:"COLLEGEHUMOR";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:46:"!collegehumor\\.com/(?:video|embed)/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:13:"COMEDYCENTRAL";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:49:"!^(?:mgid:arc:(?:episode|video):[.\\w]+:[-\\w]+)$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:56:"!^(?\'id\'(?:mgid:arc:(?:episode|video):[.\\w]+:[-\\w]+))$!D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:56:"!c(?:c|omedycentral)\\.com/(?:full-episode|video-clip)s/!";i:1;s:49:"!(?\'id\'mgid:arc:(?:episode|video):[.\\w]+:[-\\w]+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"COUB";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"!^\\w+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:27:"!coub\\.com/view/(?\'id\'\\w+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"!^(?\'id\'\\w+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:11:"DAILYMOTION";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^[A-Za-z0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:94:"!dailymotion\\.com/(?:live/|swf/|user/[^#]+#video=|(?:related/\\d+/)?video/)(?\'id\'[A-Za-z0-9]+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'[A-Za-z0-9]+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:12:"DEMOCRACYNOW";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:34:"!^(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:66:"!democracynow.org/(?:embed/)?(?\'id\'(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:41:"!^(?\'id\'(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?)$!D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:33:"!m\\.democracynow\\.org/stories/\\d!";i:1;s:72:"!democracynow\\.org/(?\'id\'(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?)\' rel=\'canonical!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"DUMPERT";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"!^\\d+[/_]\\w+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!dumpert\\.nl/mediabase/(?\'id\'\\d+[/_]\\w+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"!^(?\'id\'\\d+[/_]\\w+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:11:"EIGHTTRACKS";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!8tracks\\.com/[-\\w]+/(?\'id\'\\d+)(?=#|$)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:28:"!8tracks\\.com/[-\\w]+/[-\\w]+!";i:1;s:30:"!eighttracks://mix/(?\'id\'\\d+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"ESPN";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";R:454;s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:43:"#video/(?:clip(?:\\?id=|/_/id/))?(?\'id\'\\d+)#";i:2;R:195;}i:1;R:473;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:8:"FACEBOOK";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"@^\\d+$@D";}}}s:8:"required";b:1;}s:4:"type";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"#^video$#D";}}}s:8:"required";b:0;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:135:"@/(?!(?:apps|developers|graph)\\.)[-\\w.]*facebook\\.com/(?:[/\\w]+/permalink|(?!pages/|groups/).*?)(?:/|fbid=|\\?v=)(?\'id\'\\d+)(?=$|[/?&#])@";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:20:"#/(?\'type\'video)s?/#";i:2;a:2:{i:0;s:0:"";i:1;s:4:"type";}}i:2;a:3:{i:0;s:3:"url";i:1;s:15:"@^(?\'id\'\\d+)$@D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:4;s:7:"allowed";a:3:{i:0;i:65516;i:1;i:65535;i:2;i:32639;}}s:6:"FLICKR";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:37:"!flickr\\.com/photos/[^/]+/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:6:"FORATV";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:1:{i:0;R:198;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:24:"!fora\\.tv/\\d+/\\d+/\\d+/.!";i:1;s:22:"!embed\\?id=(?\'id\'\\d+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"FOXNEWS";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:34:"!video\\.foxnews\\.com/v/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:10:"FUNNYORDIE";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:14:"!^[0-9a-f]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!funnyordie\\.com/videos/(?\'id\'[0-9a-f]+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:21:"!^(?\'id\'[0-9a-f]+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:8:"GAMESPOT";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:64:"!gamespot\\.com.*?/(?:events|videos)/.*?-(?\'id\'\\d+)/(?:[#?].*)?$!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:12:"GAMETRAILERS";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";R:743;s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:51:"!gametrailers\\.com/(?:full-episode|review|video)s/!";i:1;s:18:"!embed/(?\'id\'\\d+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:5:"GETTY";a:8:{s:10:"attributes";a:6:{s:2:"et";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:12:"!^[-=\\w]+$!D";}}}s:8:"required";b:0;}s:6:"height";a:3:{s:12:"defaultValue";s:3:"360";s:11:"filterChain";R:175;s:8:"required";b:0;}s:2:"id";R:174;s:3:"sig";R:809;s:3:"url";R:182;s:5:"width";a:3:{s:12:"defaultValue";s:3:"640";s:11:"filterChain";R:175;s:8:"required";b:0;}}s:22:"attributePreprocessors";a:4:{i:0;a:3:{i:0;s:3:"url";i:1;s:20:"!gty\\.im/(?\'id\'\\d+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:47:"!gettyimages\\.[.\\w]+/detail(?=/).*?/(?\'id\'\\d+)!";i:2;R:195;}i:2;a:3:{i:0;s:3:"url";i:1;s:30:"!#[-\\w]*picture-id(?\'id\'\\d+)$!";i:2;R:195;}i:3;R:198;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:2:"//";i:1;a:4:{i:0;s:30:"!"height":[ "]*(?\'height\'\\d+)!";i:1;s:28:"!"width":[ "]*(?\'width\'\\d+)!";i:2;s:19:"!et=(?\'et\'[-=\\w]+)!";i:3;s:21:"!sig=(?\'sig\'[-=\\w]+)!";}i:2;a:4:{i:0;s:2:"et";i:1;s:6:"height";i:2;s:3:"sig";i:3;s:5:"width";}i:3;s:42:"http://embed.gettyimages.com/preview/{@id}";}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:6:"GFYCAT";a:8:{s:10:"attributes";a:4:{s:6:"height";a:3:{s:12:"defaultValue";s:3:"315";s:11:"filterChain";R:175;s:8:"required";b:0;}s:2:"id";R:579;s:3:"url";R:182;s:5:"width";a:3:{s:12:"defaultValue";s:3:"560";s:11:"filterChain";R:175;s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:24:"!gfycat\\.com/(?\'id\'\\w+)!";i:2;R:195;}i:1;R:591;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:2:"//";i:1;a:2:{i:0;s:39:"!video:height" content="(?\'height\'\\d+)!";i:1;s:37:"!video:width" content="(?\'width\'\\d+)!";}i:2;a:2:{i:0;s:6:"height";i:1;s:5:"width";}i:3;s:23:"http://gfycat.com/{@id}";}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"GIFS";a:8:{s:10:"attributes";a:4:{s:6:"height";R:817;s:2:"id";R:579;s:3:"url";R:182;s:5:"width";R:820;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:31:"!gifs\\.com/(?:gif/)?(?\'id\'\\w+)!";i:2;R:195;}i:1;R:591;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:2:"//";i:1;a:2:{i:0;s:55:"!meta property="og:image:width" content="(?\'width\'\\d+)!";i:1;s:57:"!meta property="og:image:height" content="(?\'height\'\\d+)!";}i:2;R:879;i:3;s:26:"https://gifs.com/gif/{@id}";}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"GIST";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:36:"!^(?:\\w+/)?[\\da-f]+(?:/[\\da-f]+)?$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:58:"!gist\\.github\\.com/(?\'id\'(?:\\w+/)?[\\da-f]+(?:/[\\da-f]+)?)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:43:"!^(?\'id\'(?:\\w+/)?[\\da-f]+(?:/[\\da-f]+)?)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:5;s:7:"allowed";a:3:{i:0;i:65500;i:1;i:65535;i:2;i:32639;}}s:10:"GLOBALNEWS";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:33:"!globalnews\\.ca/video/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:8:"GOFUNDME";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"@^\\w+$@D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:35:"@gofundme\\.com/(?\'id\'\\w+)(?![^#?])@";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"@^(?\'id\'\\w+)$@D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:11:"GOOGLEDRIVE";a:8:{s:10:"attributes";R:388;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:44:"!drive\\.google\\.com/.*?file/d/(?\'id\'[-\\w]+)!";i:2;R:195;}i:1;R:398;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:10:"GOOGLEPLUS";a:8:{s:10:"attributes";a:4:{s:4:"name";a:2:{s:11:"filterChain";a:2:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^[^/]+$!D";}}i:1;a:2:{s:8:"callback";s:9:"urldecode";s:6:"params";R:345;}}s:8:"required";b:0;}s:3:"oid";R:303;s:3:"pid";a:2:{s:11:"filterChain";R:580;s:8:"required";b:0;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:83:"!//plus\\.google\\.com/(?:u/\\d+/)?(?:\\+(?\'name\'[^/]+)|(?\'oid\'\\d+))/posts/(?\'pid\'\\w+)!";i:2;a:4:{i:0;s:0:"";i:1;s:4:"name";i:2;s:3:"oid";i:3;s:3:"pid";}}}s:11:"filterChain";a:3:{i:0;R:202;i:1;R:207;i:2;R:327;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:6;s:7:"allowed";a:3:{i:0;i:65468;i:1;i:65535;i:2;i:32639;}}s:12:"GOOGLESHEETS";a:8:{s:10:"attributes";a:3:{s:3:"gid";R:303;s:2:"id";R:389;s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:89:"!docs\\.google\\.com/spreadsheet(?:/ccc\\?key=|s/d/)(?\'id\'[-\\w]+)[^#]*(?:#gid=(?\'gid\'\\d+))?!";i:2;a:3:{i:0;s:0:"";i:1;s:2:"id";i:2;s:3:"gid";}}i:1;R:398;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:7;s:7:"allowed";a:3:{i:0;i:65404;i:1;i:65535;i:2;i:32639;}}s:10:"HEALTHGURU";a:8:{s:10:"attributes";R:578;s:22:"attributePreprocessors";a:1:{i:0;R:591;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:38:"!healthguru\\.com/(?:content/)?video/.!";i:1;s:34:"!healthguru\\.com/embed/(?\'id\'\\w+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"HUDL";a:8:{s:10:"attributes";a:3:{s:7:"athlete";R:303;s:9:"highlight";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:13:"!^[\\da-f]+$!D";}}}s:8:"required";b:0;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:69:"!hudl\\.com/athlete/(?\'athlete\'\\d+)/highlights/(?\'highlight\'[\\da-f]+)!";i:2;a:3:{i:0;s:0:"";i:1;s:7:"athlete";i:2;s:9:"highlight";}}i:1;a:3:{i:0;s:3:"url";i:1;s:60:"!hudl\\.com/video/\\d+/(?\'athlete\'\\d+)/(?\'highlight\'[\\da-f]+)!";i:2;R:1046;}}s:11:"filterChain";a:4:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:14:"!hudl\\.com/v/!";i:1;s:60:"!hudl\\.com/video/\\d+/(?\'athlete\'\\d+)/(?\'highlight\'[\\da-f]+)!";i:2;a:2:{i:0;s:7:"athlete";i:1;s:9:"highlight";}}}s:8:"cacheDir";N;}}i:2;R:207;i:3;R:327;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"HULU";a:8:{s:10:"attributes";R:388;s:22:"attributePreprocessors";R:397;s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:18:"!hulu\\.com/watch/!";i:1;s:19:"!eid=(?\'id\'[-\\w]+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:9:"HUMORTVNL";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:12:"!^[-.\\w]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:45:"!humortv\\.vara\\.nl/\\w+\\.(?\'id\'[-.\\w]+)\\.html!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:19:"!^(?\'id\'[-.\\w]+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:3:"IGN";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:36:"!^https?://.*?ign\\.com/videos/.+$!iD";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:40:"!(?\'id\'https?://.*?ign\\.com/videos/.+)!i";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:43:"!^(?\'id\'https?://.*?ign\\.com/videos/.+)$!iD";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"IMDB";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:31:"!imdb\\.com/[/\\w]+/vi(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:5:"IMGUR";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"@^(?:a/)?\\w+$@D";}}}s:8:"required";b:1;}s:4:"type";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:52:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterAlnum";s:6:"params";R:345;}}s:8:"required";b:0;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:74:"@imgur\\.com/(?!r/|user/)(?:gallery/)?(?\'id\'(?:a/)?\\w+)(?!\\w|\\.(?:pn|jp)g)@";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"@^(?\'id\'(?:a/)?\\w+)$@D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:23:"@imgur\\.com/gallery/\\w@";i:1;a:3:{i:0;s:41:"!image\\s*:\\s*.*?"is_(?\'type\'album)":true!";i:1;s:26:"!<div id="(?\'type\'album)-!";i:2;s:29:"!class="(?\'type\'album)-image!";}i:2;a:1:{i:0;s:4:"type";}}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:8;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65534;i:2;i:32639;}}s:9:"INDIEGOGO";a:8:{s:10:"attributes";R:388;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!indiegogo\\.com/projects/(?\'id\'[-\\w]+)!";i:2;R:195;}i:1;R:398;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:9:"INSTAGRAM";a:8:{s:10:"attributes";R:388;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:32:"!instagram\\.com/p/(?\'id\'[-\\w]+)!";i:2;R:195;}i:1;R:398;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:9;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65533;i:2;i:32639;}}s:15:"INTERNETARCHIVE";a:8:{s:10:"attributes";a:4:{s:6:"height";R:817;s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^[^/"]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;s:5:"width";R:820;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'[^/"]+)$!D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:23:"!archive\\.org/details/!";i:1;a:3:{i:0;s:81:"!meta property="twitter:player" content="https://archive.org/embed/(?\'id\'[^/"]+)!";i:1;s:55:"!meta property="og:video:width" content="(?\'width\'\\d+)!";i:2;s:57:"!meta property="og:video:height" content="(?\'height\'\\d+)!";}i:2;a:3:{i:0;s:6:"height";i:1;s:2:"id";i:2;s:5:"width";}}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:8:"IZLESENE";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!izlesene\\.com/video/[-\\w]+/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:10:"JWPLATFORM";a:8:{s:10:"attributes";R:388;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:35:"!jwplatform\\.com/\\w+/(?\'id\'[-\\w]+)!";i:2;R:195;}i:1;R:398;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:3:"KHL";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^[/\\w]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'[/\\w]+)$!D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:36:"!video\\.khl\\.ru/(?:event|quote)s/\\d!";i:1;s:27:"!/feed/start/(?\'id\'[/\\w]+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:11:"KICKSTARTER";a:8:{s:10:"attributes";a:4:{s:4:"card";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:9:"!^card$!D";}}}s:8:"required";b:0;}s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:17:"!^[^/]+/[^/?]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;s:5:"video";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^video$!D";}}}s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:93:"!kickstarter\\.com/projects/(?\'id\'[^/]+/[^/?]+)(?:/widget/(?:(?\'card\'card)|(?\'video\'video)))?!";i:2;a:4:{i:0;s:0:"";i:1;s:2:"id";i:2;s:4:"card";i:3;s:5:"video";}}i:1;a:3:{i:0;s:3:"url";i:1;s:24:"!^(?\'id\'[^/]+/[^/?]+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:9:"KISSVIDEO";a:8:{s:10:"attributes";R:766;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!kissvideo\\.click/[^_]*_(?\'id\'[0-9a-f]+)!";i:2;R:195;}i:1;R:779;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:6:"LIBSYN";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";R:743;s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:16:"@(?!\\.mp3)....$@";i:1;s:29:"!embed/episode/id/(?\'id\'\\d+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:10;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65531;i:2;i:32639;}}s:7:"LIVECAP";a:8:{s:10:"attributes";a:3:{s:7:"channel";R:981;s:2:"id";R:579;s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:44:"!livecap.tv/[st]/(?\'channel\'\\w+)/(?\'id\'\\w+)!";i:2;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:2:"id";}}i:1;R:591;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:8:"LIVELEAK";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"!^[a-f_0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!liveleak\\.com/view\\?i=(?\'id\'[a-f_0-9]+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"!^(?\'id\'[a-f_0-9]+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:10:"LIVESTREAM";a:8:{s:10:"attributes";a:6:{s:10:"account_id";R:303;s:7:"channel";R:981;s:7:"clip_id";a:2:{s:11:"filterChain";R:390;s:8:"required";b:0;}s:8:"event_id";R:303;s:3:"url";R:182;s:8:"video_id";R:303;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:69:"!livestream\\.com/accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!";i:2;a:3:{i:0;s:0:"";i:1;s:10:"account_id";i:2;s:8:"event_id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:26:"!/videos/(?\'video_id\'\\d+)!";i:2;a:2:{i:0;s:0:"";i:1;s:8:"video_id";}}i:2;a:3:{i:0;s:3:"url";i:1;s:76:"!original\\.livestream\\.com/(?\'channel\'\\w+)/video\\?clipId=(?\'clip_id\'[-\\w]+)!";i:2;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:7:"clip_id";}}}s:11:"filterChain";a:4:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:2:"//";i:1;s:53:"!accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!";i:2;a:2:{i:0;s:10:"account_id";i:1;s:8:"event_id";}}i:1;a:3:{i:0;s:13:"!livestre.am!";i:1;s:70:"!//original\\.livestream\\.com/(?\'channel\'\\w+)/video/(?\'clip_id\'[-\\w]+)!";i:2;a:2:{i:0;s:7:"channel";i:1;s:7:"clip_id";}}}s:8:"cacheDir";N;}}i:2;R:207;i:3;R:327;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:6:"MAILRU";a:8:{s:10:"attributes";R:1246;s:22:"attributePreprocessors";R:1255;s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:35:"!my\\.mail\\.ru/\\w+/\\w+/video/\\w+/\\d!";i:1;s:36:"!mail\\.ru/video/(?\'id\'[/\\w]+)\\.html!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:5:"MEDIA";a:6:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:54:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::filterTag";s:6:"params";a:3:{s:3:"tag";N;s:6:"parser";N;s:10:"mediasites";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:513;}s:8:"tagLimit";i:1000;s:9:"bitNumber";i:0;s:7:"allowed";a:3:{i:0;i:65534;i:1;i:65535;i:2;i:32639;}}s:6:"MEDIUM";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";R:1035;s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:47:"!medium\\.com/[^/]*/(?:[-\\w]+-)?(?\'id\'[\\da-f]+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:20:"!^(?\'id\'[\\da-f]+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:11;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65527;i:2;i:32639;}}s:8:"METACAFE";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:32:"!metacafe\\.com/watch/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:8:"MIXCLOUD";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:18:"@^[-\\w]+/[^/&]+$@D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:55:"@mixcloud\\.com/(?!categories|tag)(?\'id\'[-\\w]+/[^/&]+)/@";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:25:"@^(?\'id\'[-\\w]+/[^/&]+)$@D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:3:"MLB";a:8:{s:10:"attributes";R:686;s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:29:"#mlb\\.com/[\\w/]*/v(?\'id\'\\d+)#";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:41:"#mlb\\.com/r/video\\?content_id=(?\'id\'\\d+)#";i:2;R:195;}i:2;R:473;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:5:"MRCTV";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";R:743;s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:21:"!mrctv\\.org/videos/.!";i:1;s:29:"!mrctv\\.org/embed/(?\'id\'\\d+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:5:"MSNBC";a:8:{s:10:"attributes";R:942;s:22:"attributePreprocessors";a:1:{i:0;R:955;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;a:2:{i:0;s:26:"@msnbc\\.com/[-\\w]+/watch/@";i:1;s:18:"@on\\.msnbc\\.com/.@";}i:1;s:19:"@guid="?(?\'id\'\\w+)@";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:13:"NATGEOCHANNEL";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:26:"@^[-/\\w]+/videos/[-\\w]+$@D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:63:"@channel\\.nationalgeographic\\.com/(?\'id\'[-/\\w]+/videos/[-\\w]+)@";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:33:"@^(?\'id\'[-/\\w]+/videos/[-\\w]+)$@D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:11:"NATGEOVIDEO";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"@^[-\\w]+$@D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:18:"@^(?\'id\'[-\\w]+)$@D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:48:"@video\\.nationalgeographic\\.com/(?:tv|video)/\\w@";i:1;s:22:"@guid="(?\'id\'[-\\w]+)"@";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"NBCNEWS";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:63:"!nbcnews\\.com/(?:widget/video-embed/|video/[-\\w]+?-)(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:9:"NBCSPORTS";a:8:{s:10:"attributes";R:578;s:22:"attributePreprocessors";R:1018;s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:24:"!nbcsports\\.com/video/.!";i:1;s:25:"!select/media/(?\'id\'\\w+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:3:"NHL";a:8:{s:10:"attributes";a:4:{s:1:"c";R:453;s:2:"id";a:2:{s:11:"filterChain";R:370;s:8:"required";b:0;}s:1:"t";R:453;s:3:"url";R:182;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:44:"#nhl\\.com/videocenter/.*?\\Wid=(?\'id\'[-\\w]+)#";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:80:"#nhl\\.com/(?:\\w+/)?video(?:/(?![ct]-)[-\\w]+)?(?:/t-(?\'t\'\\d+))?(?:/c-(?\'c\'\\d+))?#";i:2;a:3:{i:0;s:0:"";i:1;s:1:"t";i:2;s:1:"c";}}i:2;R:381;}s:11:"filterChain";R:992;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:3:"NPR";a:7:{s:10:"attributes";a:3:{s:1:"i";R:303;s:1:"m";R:303;s:3:"url";R:182;}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;a:2:{i:0;s:21:"!npr\\.org/[/\\w]+/\\d+!";i:1;s:10:"!n\\.pr/\\w!";}i:1;s:34:"!player/embed/(?\'i\'\\d+)/(?\'m\'\\d+)!";i:2;a:2:{i:0;s:1:"i";i:1;s:1:"m";}}}s:8:"cacheDir";N;}}i:1;R:207;i:2;R:327;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:12;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65519;i:2;i:32639;}}s:7:"NYTIMES";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!nytimes\\.com/video/[a-z]+/(?:[a-z]+/)?(?\'id\'\\d+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:50:"!nytimes\\.com/video/\\d+/\\d+/\\d+/[a-z]+/(?\'id\'\\d+)!";i:2;R:195;}i:2;R:198;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:65:"!nytimes\\.com/movie(?:s/movie)?/(?\'playlist\'\\d+)/[-\\w]+/trailers!";i:1;s:26:"!/video/movies/(?\'id\'\\d+)!";i:2;R:361;i:3;s:73:"http://www.nytimes.com/svc/video/api/playlist/{@playlist}?externalId=true";}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"ODDSHOT";a:8:{s:10:"attributes";R:388;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:28:"!oddshot.tv/s/(?\'id\'[-\\w]+)!";i:2;R:195;}i:1;R:398;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:8:"PASTEBIN";a:8:{s:10:"attributes";R:942;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:55:"@pastebin\\.com/(?!u/)(?:\\w+(?:\\.php\\?i=|/))?(?\'id\'\\w+)@";i:2;R:195;}i:1;R:955;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:13;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65503;i:2;i:32639;}}s:9:"PINTEREST";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:25:"@^(?:\\d+|[-\\w]+/[-\\w]+)$@";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:30:"@pinterest.com/pin/(?\'id\'\\d+)@";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:84:"@pinterest.com/(?!_/|discover/|explore/|news_hub/|pin/|search/)(?\'id\'[-\\w]+/[-\\w]+)@";i:2;R:195;}i:2;a:3:{i:0;s:3:"url";i:1;s:32:"@^(?\'id\'(?:\\d+|[-\\w]+/[-\\w]+))$@";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:14;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65471;i:2;i:32639;}}s:7:"PLAYSTV";a:8:{s:10:"attributes";R:578;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:28:"!plays\\.tv/video/(?\'id\'\\w+)!";i:2;R:195;}i:1;R:591;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:14:"!plays\\.tv/s/!";i:1;s:28:"!plays\\.tv/video/(?\'id\'\\w+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"PODBEAN";a:8:{s:10:"attributes";R:388;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:55:"!podbean\\.com/media/(?:player/|share/pb-)(?\'id\'[-\\w]+)!";i:2;R:195;}i:1;R:398;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:17:"!podbean\\.com/e/!";i:1;s:40:"!podbean.com/media/player/(?\'id\'[-\\w]+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:15;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65407;i:2;i:32639;}}s:5:"PREZI";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";R:462;s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:221:"#//prezi\\.com/(?!(?:a(?:bout|mbassadors)|c(?:o(?:llaborate|mmunity|ntact)|reate)|exp(?:erts|lore)|ip(?:ad|hone)|jobs|l(?:ear|ogi)n|m(?:ac|obility)|pr(?:es(?:s|ent)|icing)|recommend|support|user|windows|your)/)(?\'id\'\\w+)/#";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:15:"#^(?\'id\'\\w+)$#D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:6:"REDDIT";a:8:{s:10:"attributes";a:2:{s:4:"path";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:37:"!^/r/\\w+/comments/\\w+/(?:\\w+/\\w+)?$!D";}}}s:8:"required";b:0;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:43:"!(?\'path\'/r/\\w+/comments/\\w+/(?:\\w+/\\w+)?)!";i:2;a:2:{i:0;s:0:"";i:1;s:4:"path";}}}s:11:"filterChain";R:992;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:16;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32638;}}s:6:"RUTUBE";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:30:"!rutube\\.ru/tracks/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:31:"!rutube\\.ru/video/[0-9a-f]{32}!";i:1;s:34:"!rutube\\.ru/play/embed/(?\'id\'\\d+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:6:"SCRIBD";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!scribd\\.com/(?:mobile/)?doc(?:ument)?/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:17;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32637;}}s:10:"SLIDESHARE";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:11:"!^\\d{6,}$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:45:"!slideshare\\.net/[^/]+/[-\\w]+-(?\'id\'\\d{6,})$!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:18:"!^(?\'id\'\\d{6,})$!D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:26:"!slideshare\\.net/[^/]+/\\w!";i:1;s:29:"!"presentationId":(?\'id\'\\d+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:10:"SOUNDCLOUD";a:8:{s:10:"attributes";a:5:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:39:"@^(?:[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)$@iD";}}}s:8:"required";b:1;}s:11:"playlist_id";a:2:{s:11:"filterChain";R:699;s:8:"required";b:0;}s:12:"secret_token";a:2:{s:11:"filterChain";R:1561;s:8:"required";b:0;}s:8:"track_id";R:1866;s:3:"url";R:182;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:84:"@https?://(?:api\\.)?soundcloud\\.com/(?!pages/)(?\'id\'[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)@i";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:52:"@api\\.soundcloud\\.com/playlists/(?\'playlist_id\'\\d+)@";i:2;a:2:{i:0;s:0:"";i:1;s:11:"playlist_id";}}i:2;a:3:{i:0;s:3:"url";i:1;s:89:"@api\\.soundcloud\\.com/tracks/(?\'track_id\'\\d+)(?:\\?secret_token=(?\'secret_token\'[-\\w]+))?@";i:2;a:3:{i:0;s:0:"";i:1;s:8:"track_id";i:2;s:12:"secret_token";}}i:3;a:3:{i:0;s:3:"url";i:1;s:81:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/(?=s-)(?\'secret_token\'[-\\w]+)@";i:2;a:2:{i:0;s:0:"";i:1;s:12:"secret_token";}}i:4;a:3:{i:0;s:3:"url";i:1;s:46:"@^(?\'id\'(?:[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$))$@iD";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:2:{i:0;a:3:{i:0;s:56:"@soundcloud\\.com/(?!playlists/\\d|tracks/\\d)[-\\w]+/[-\\w]@";i:1;s:36:"@soundcloud:tracks:(?\'track_id\'\\d+)@";i:2;a:1:{i:0;s:8:"track_id";}}i:1;a:3:{i:0;s:27:"@soundcloud\\.com/\\w+/sets/@";i:1;s:44:"@soundcloud://playlists:(?\'playlist_id\'\\d+)@";i:2;a:1:{i:0;s:11:"playlist_id";}}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:18;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32635;}}s:9:"SPORTSNET";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:8:"/^\\d+$/D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:15:"/^(?\'id\'\\d+)$/D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:2:"//";i:1;a:2:{i:0;s:25:"/vid(?:eoId)?=(?\'id\'\\d+)/";i:1;s:46:"/param name="@videoPlayer" value="(?\'id\'\\d+)"/";}i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"SPOTIFY";a:8:{s:10:"attributes";a:3:{s:4:"path";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:44:"!^(?:(?:album|artist|track|user)/[-/\\w]+)$!D";}}}s:8:"required";b:0;}s:3:"uri";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:61:"!^(?:spotify:(?:album|artist|user|track(?:set)?):[-,:\\w]+)$!D";}}}s:8:"required";b:0;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:62:"!(?\'uri\'spotify:(?:album|artist|user|track(?:set)?):[-,:\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:3:"uri";}}i:1;a:3:{i:0;s:3:"url";i:1;s:74:"!(?:open|play)\\.spotify\\.com/(?\'path\'(?:album|artist|track|user)/[-/\\w]+)!";i:2;R:1786;}}s:11:"filterChain";R:992;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:10:"STEAMSTORE";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:39:"!store.steampowered.com/app/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:19;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32631;}}s:8:"STITCHER";a:7:{s:10:"attributes";a:3:{s:3:"eid";R:303;s:3:"fid";R:303;s:3:"url";R:182;}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:11:"!/podcast/!";i:1;a:2:{i:0;s:23:"!data-eid="(?\'eid\'\\d+)!";i:1;s:23:"!data-fid="(?\'fid\'\\d+)!";}i:2;a:2:{i:0;s:3:"eid";i:1;s:3:"fid";}}}s:8:"cacheDir";N;}}i:1;R:207;i:2;R:327;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:20;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32623;}}s:9:"STRAWPOLL";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:26:"!strawpoll\\.me/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:10:"STREAMABLE";a:8:{s:10:"attributes";R:578;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:28:"!streamable\\.com/(?\'id\'\\w+)!";i:2;R:195;}i:1;R:591;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:8:"TEAMCOCO";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:32:"!teamcoco\\.com/video/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:23:"!teamcoco\\.com/video/.!";i:1;s:17:"!"id":(?\'id\'\\d+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:3:"TED";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:46:"#^(?:(?:talk|playlist)s/[-\\w]+(?:\\.html)?)$#iD";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:76:"#ted\\.com/(?\'id\'(?:talk|playlist)s/[-\\w]+(?:\\.html)?)(?![-\\w]|/transcript)#i";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:53:"#^(?\'id\'(?:(?:talk|playlist)s/[-\\w]+(?:\\.html)?))$#iD";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:11:"THEATLANTIC";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:41:"!theatlantic\\.com/video/index/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:11:"THEGUARDIAN";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:22:"!^\\w+/video/[-/\\w]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:43:"!theguardian\\.com/(?\'id\'\\w+/video/[-/\\w]+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:29:"!^(?\'id\'\\w+/video/[-/\\w]+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:8:"THEONION";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:42:"!theonion\\.com/video/[-\\w]+[-,](?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"TINYPIC";a:8:{s:10:"attributes";a:3:{s:2:"id";R:579;s:1:"s";R:303;s:3:"url";R:182;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:52:"!tinypic\\.com/player\\.php\\?v=(?\'id\'\\w+)&s=(?\'s\'\\d+)!";i:2;a:3:{i:0;s:0:"";i:1;s:2:"id";i:2;s:1:"s";}}i:1;a:3:{i:0;s:3:"url";i:1;s:37:"!tinypic\\.com/r/(?\'id\'\\w+)/(?\'s\'\\d+)!";i:2;R:2112;}i:2;R:591;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:31:"!tinypic\\.com/(?:m|usermedia)/!";i:1;s:33:"!file=(?\'id\'\\w+)&amp;s=(?\'s\'\\d+)!";i:2;a:2:{i:0;s:2:"id";i:1;s:1:"s";}}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:3:"TMZ";a:8:{s:10:"attributes";R:942;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:28:"@tmz\\.com/videos/(?\'id\'\\w+)@";i:2;R:195;}i:1;R:955;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:13:"TRAILERADDICT";a:8:{s:10:"attributes";a:2:{s:2:"id";R:698;s:3:"url";R:182;}s:22:"attributePreprocessors";a:1:{i:0;R:724;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:37:"@traileraddict\\.com/(?!tags/)[^/]+/.@";i:1;s:34:"@v\\.traileraddict\\.com/(?\'id\'\\d+)@";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:6:"TUMBLR";a:8:{s:10:"attributes";a:5:{s:3:"did";R:1374;s:2:"id";R:174;s:3:"key";R:1374;s:4:"name";R:1374;s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:46:"!(?\'name\'[-\\w]+)\\.tumblr\\.com/post/(?\'id\'\\d+)!";i:2;a:3:{i:0;s:0:"";i:1;s:4:"name";i:2;s:2:"id";}}i:1;R:198;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:25:"!\\w\\.tumblr\\.com/post/\\d!";i:1;a:2:{i:0;s:27:"!did=\\\\u0022(?\'did\'[-\\w]+)!";i:1;s:31:"!embed\\\\/post\\\\/(?\'key\'[-\\w]+)!";}i:2;a:2:{i:0;s:3:"did";i:1;s:3:"key";}i:3;s:73:"http://www.tumblr.com/oembed/1.0?url=http://{@name}.tumblr.com/post/{@id}";}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:21;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32607;}}s:6:"TWITCH";a:8:{s:10:"attributes";a:5:{s:7:"channel";R:461;s:7:"clip_id";R:461;s:1:"t";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:27:"#^(?:(?:\\d+h)?\\d+m)?\\d+s$#D";}}}s:8:"required";b:0;}s:3:"url";R:182;s:8:"video_id";R:453;}s:22:"attributePreprocessors";a:4:{i:0;a:3:{i:0;s:3:"url";i:1;s:47:"#twitch\\.tv/(?:videos|\\w+/v)/(?\'video_id\'\\d+)?#";i:2;R:1387;}i:1;a:3:{i:0;s:3:"url";i:1;s:44:"#www\\.twitch\\.tv/(?!videos/)(?\'channel\'\\w+)#";i:2;a:2:{i:0;s:0:"";i:1;s:7:"channel";}}i:2;a:3:{i:0;s:3:"url";i:1;s:32:"#t=(?\'t\'(?:(?:\\d+h)?\\d+m)?\\d+s)#";i:2;a:2:{i:0;s:0:"";i:1;s:1:"t";}}i:3;a:3:{i:0;s:3:"url";i:1;s:56:"#clips\\.twitch\\.tv/(?:(?\'channel\'\\w+)/)?(?\'clip_id\'\\w+)#";i:2;R:1393;}}s:11:"filterChain";R:992;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"TWITTER";a:8:{s:10:"attributes";R:2144;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:51:"@twitter\\.com/(?:#!/)?\\w+/status(?:es)?/(?\'id\'\\d+)@";i:2;R:195;}i:1;R:724;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:22;s:7:"allowed";a:3:{i:0;i:65532;i:1;i:65535;i:2;i:32575;}}s:7:"USTREAM";a:8:{s:10:"attributes";a:3:{s:3:"cid";R:303;s:3:"url";R:182;s:3:"vid";R:303;}s:22:"attributePreprocessors";a:1:{i:0;a:3:{i:0;s:3:"url";i:1;s:34:"!ustream\\.tv/recorded/(?\'vid\'\\d+)!";i:2;a:2:{i:0;s:0:"";i:1;s:3:"vid";}}}s:11:"filterChain";a:4:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:90:"#ustream\\.tv/(?!explore/|platform/|recorded/|search\\?|upcoming$|user/)(?:channel/)?[-\\w]+#";i:1;s:19:"!embed/(?\'cid\'\\d+)!";i:2;a:1:{i:0;s:3:"cid";}}}s:8:"cacheDir";N;}}i:2;R:207;i:3;R:327;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:5:"VBOX7";a:8:{s:10:"attributes";R:1451;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:33:"!vbox7\\.com/play:(?\'id\'[\\da-f]+)!";i:2;R:195;}i:1;R:1458;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"VEOH";a:8:{s:10:"attributes";R:578;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!veoh\\.com/(?:m/watch\\.php\\?v=|watch/)v(?\'id\'\\w+)!";i:2;R:195;}i:1;R:591;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"VEVO";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:14:"!^[A-Z0-9]+$!D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:45:"!vevo\\.com/watch/([-/\\w]+/)?(?\'id\'[A-Z0-9]+)!";i:2;a:3:{i:0;s:0:"";i:1;s:0:"";i:2;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:21:"!^(?\'id\'[A-Z0-9]+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"VIAGAME";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:40:"!viagame\\.com/channels/[^/]+/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:14:"VIDEODETECTIVE";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:59:"!videodetective\\.com/\\w+/[-\\w]+/(?:trailer/P0*)?(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:9:"VIDEOMEGA";a:8:{s:10:"attributes";R:578;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:32:"!videomega\\.tv/\\?ref=(?\'id\'\\w+)!";i:2;R:195;}i:1;R:591;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:5:"VIDME";a:8:{s:10:"attributes";R:888;s:22:"attributePreprocessors";R:1018;s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:2:"//";i:1;a:2:{i:0;s:51:"!maxwidth=(?\'width\'\\d+).*?maxheight=(?\'height\'\\d+)!";i:1;s:22:"!vid\\.me/e/(?\'id\'\\w+)!";}i:2;R:1221;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:5:"VIMEO";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:50:"!vimeo\\.com/(?:channels/[^/]+/|video/)?(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"VINE";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;R:973;}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:25:"!vine\\.co/v/(?\'id\'[^/]+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:17:"!^(?\'id\'[^/]+)$!D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:2:"VK";a:8:{s:10:"attributes";a:4:{s:4:"hash";a:2:{s:11:"filterChain";R:768;s:8:"required";b:0;}s:3:"oid";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"!^-?\\d+$!D";}}}s:8:"required";b:0;}s:3:"url";R:182;s:3:"vid";R:303;}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:71:"!vk(?:\\.com|ontakte\\.ru)/(?:[\\w.]+\\?z=)?video(?\'oid\'-?\\d+)_(?\'vid\'\\d+)!";i:2;a:3:{i:0;s:0:"";i:1;s:3:"oid";i:2;s:3:"vid";}}i:1;a:3:{i:0;s:3:"url";i:1;s:98:"!vk(?:\\.com|ontakte\\.ru)/video_ext\\.php\\?oid=(?\'oid\'-?\\d+)&id=(?\'vid\'\\d+)&hash=(?\'hash\'[0-9a-f]+)!";i:2;a:4:{i:0;s:0:"";i:1;s:3:"oid";i:2;s:3:"vid";i:3;s:4:"hash";}}}s:11:"filterChain";a:4:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:4:{i:0;s:21:"!vk.*?video-?\\d+_\\d+!";i:1;s:31:"!embed_hash=(?\'hash\'[0-9a-f]+)!";i:2;a:1:{i:0;s:4:"hash";}i:3;s:32:"http://vk.com/video{@oid}_{@vid}";}}s:8:"cacheDir";N;}}i:2;R:207;i:3;R:327;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"VOCAROO";a:8:{s:10:"attributes";R:578;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:27:"!vocaroo\\.com/i/(?\'id\'\\w+)!";i:2;R:195;}i:1;R:591;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:3:"VOX";a:8:{s:10:"attributes";R:388;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:31:"!vox.com/.*#ooid=(?\'id\'[-\\w]+)!";i:2;R:195;}i:1;R:398;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:14:"WASHINGTONPOST";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"#^[-0-9a-f]+$#D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:51:"#washingtonpost\\.com/video/c/\\w+/(?\'id\'[-0-9a-f]+)#";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:65:"#washingtonpost\\.com/video/[-/\\w]+/(?\'id\'[-0-9a-f]+)_video\\.html#";i:2;R:195;}i:2;a:3:{i:0;s:3:"url";i:1;s:22:"#^(?\'id\'[-0-9a-f]+)$#D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:4:"WSHH";a:8:{s:10:"attributes";R:173;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:42:"!worldstarhiphop\\.com/featured/(?\'id\'\\d+)!";i:2;R:195;}i:1;R:198;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:49:"!worldstarhiphop\\.com/(?:\\w+/)?video\\.php\\?v=\\w+!";i:1;s:18:"!v: ?"?(?\'id\'\\d+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:3:"WSJ";a:8:{s:10:"attributes";a:2:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:18:"@^[-0-9A-F]{36}$@D";}}}s:8:"required";b:1;}s:3:"url";R:182;}s:22:"attributePreprocessors";a:3:{i:0;a:3:{i:0;s:3:"url";i:1;s:38:"@wsj\\.com/[^#]*#!(?\'id\'[-0-9A-F]{36})@";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:43:"@wsj\\.com/video/[^/]+/(?\'id\'[-0-9A-F]{36})@";i:2;R:195;}i:2;a:3:{i:0;s:3:"url";i:1;s:25:"@^(?\'id\'[-0-9A-F]{36})$@D";i:2;R:195;}}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:17:"@on\\.wsj\\.com/\\w@";i:1;s:27:"@guid=(?\'id\'[-0-9A-F]{36})@";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:9:"XBOXCLIPS";a:8:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:15:"@^[-0-9a-f]+$@D";}}}s:8:"required";b:1;}s:3:"url";R:182;s:4:"user";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:53:"s9e\\TextFormatter\\Parser\\BuiltInFilters::filterRegexp";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:10:"@^[^/]+$@D";}}}s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:65:"@xboxclips\\.com/(?\'user\'[^/]+)/(?!screenshots/)(?\'id\'[-0-9a-f]+)@";i:2;a:3:{i:0;s:0:"";i:1;s:4:"user";i:2;s:2:"id";}}i:1;a:3:{i:0;s:3:"url";i:1;s:22:"@^(?\'id\'[-0-9a-f]+)$@D";i:2;R:195;}}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"XBOXDVR";a:8:{s:10:"attributes";a:3:{s:2:"id";R:174;s:3:"url";R:182;s:4:"user";a:2:{s:11:"filterChain";R:2351;s:8:"required";b:0;}}s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:52:"!xboxdvr\\.com/gamer/(?\'user\'[^/]+)/video/(?\'id\'\\d+)!";i:2;R:2519;}i:1;R:198;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:11:"YAHOOSCREEN";a:8:{s:10:"attributes";R:388;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:52:"!screen\\.yahoo\\.com/(?:[-\\w]+/)?(?\'id\'[-\\w]+)\\.html!";i:2;R:195;}i:1;R:398;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:5:"YOUKU";a:8:{s:10:"attributes";R:578;s:22:"attributePreprocessors";a:2:{i:0;a:3:{i:0;s:3:"url";i:1;s:42:"!youku\\.com/v(?:_show|ideo)/id_(?\'id\'\\w+)!";i:2;R:195;}i:1;R:591;}s:11:"filterChain";R:201;s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:7:"YOUTUBE";a:8:{s:10:"attributes";a:7:{s:1:"h";R:303;s:2:"id";R:389;s:4:"list";R:1374;s:1:"m";R:303;s:1:"s";R:303;s:1:"t";R:303;s:3:"url";R:182;}s:22:"attributePreprocessors";a:5:{i:0;a:3:{i:0;s:3:"url";i:1;s:69:"!youtube\\.com/(?:watch.*?v=|v/|attribution_link.*?v%3D)(?\'id\'[-\\w]+)!";i:2;R:195;}i:1;a:3:{i:0;s:3:"url";i:1;s:25:"!youtu\\.be/(?\'id\'[-\\w]+)!";i:2;R:195;}i:2;a:3:{i:0;s:3:"url";i:1;s:57:"![#&?]t=(?:(?:(?\'h\'\\d+)h)?(?\'m\'\\d+)m(?\'s\'\\d+)|(?\'t\'\\d+))!";i:2;a:5:{i:0;s:0:"";i:1;s:1:"h";i:2;s:1:"m";i:3;s:1:"s";i:4;s:1:"t";}}i:3;a:3:{i:0;s:3:"url";i:1;s:23:"!&list=(?\'list\'[-\\w]+)!";i:2;a:2:{i:0;s:0:"";i:1;s:4:"list";}}i:4;R:398;}s:11:"filterChain";a:3:{i:0;R:202;i:1;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:14:"!/shared\\?ci=!";i:1;s:19:"!/vi/(?\'id\'[-\\w]+)!";i:2;R:361;}}s:8:"cacheDir";N;}}i:2;R:207;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:1;s:7:"allowed";R:219;}s:10:"ZIPPYSHARE";a:7:{s:10:"attributes";a:3:{s:4:"file";R:981;s:6:"server";R:303;s:3:"url";R:182;}s:11:"filterChain";a:3:{i:0;a:2:{s:8:"callback";s:51:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::scrape";s:6:"params";a:3:{s:3:"tag";N;i:0;a:1:{i:0;a:3:{i:0;s:5:"!/v/!";i:1;s:45:"!file=(?\'file\'\\w+)&amp;server=(?\'server\'\\d+)!";i:2;a:2:{i:0;s:4:"file";i:1;s:6:"server";}}}s:8:"cacheDir";N;}}i:1;R:207;i:2;R:327;}s:12:"nestingLimit";i:10;s:5:"rules";R:215;s:8:"tagLimit";i:1000;s:9:"bitNumber";i:3;s:7:"allowed";R:219;}}}');
 	}
 	public static function getRenderer()
 	{
--- a/vendor/s9e/text-formatter/src/Bundles/MediaPack/Renderer.php
+++ b/vendor/s9e/text-formatter/src/Bundles/MediaPack/Renderer.php
@@ -2,14 +2,14 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Bundles\MediaPack;
 class Renderer extends \s9e\TextFormatter\Renderer
 {
 	protected $params=array('AMAZON_ASSOCIATE_TAG'=>'','AMAZON_ASSOCIATE_TAG_CA'=>'','AMAZON_ASSOCIATE_TAG_DE'=>'','AMAZON_ASSOCIATE_TAG_ES'=>'','AMAZON_ASSOCIATE_TAG_FR'=>'','AMAZON_ASSOCIATE_TAG_IT'=>'','AMAZON_ASSOCIATE_TAG_JP'=>'','AMAZON_ASSOCIATE_TAG_UK'=>'');
-	protected static $tagBranches=array('ABCNEWS'=>0,'AMAZON'=>1,'AUDIOBOOM'=>2,'AUDIOMACK'=>3,'BANDCAMP'=>4,'BBCNEWS'=>5,'BLAB'=>6,'BLEACHERREPORT'=>7,'BREAK'=>8,'BRIGHTCOVE'=>9,'CBSNEWS'=>10,'CNBC'=>11,'CNN'=>12,'CNNMONEY'=>13,'COLLEGEHUMOR'=>14,'COMEDYCENTRAL'=>15,'COUB'=>16,'DAILYMOTION'=>17,'DEMOCRACYNOW'=>18,'DUMPERT'=>19,'EIGHTTRACKS'=>20,'ESPN'=>21,'FACEBOOK'=>22,'FLICKR'=>23,'FORATV'=>24,'FOXNEWS'=>25,'FUNNYORDIE'=>26,'GAMESPOT'=>27,'GAMETRAILERS'=>28,'GETTY'=>29,'GFYCAT'=>30,'GIST'=>31,'GLOBALNEWS'=>32,'GOFUNDME'=>33,'GOOGLEDRIVE'=>34,'GOOGLEPLUS'=>35,'GOOGLESHEETS'=>36,'HEALTHGURU'=>37,'HUDL'=>38,'HULU'=>39,'HUMORTVNL'=>40,'IGN'=>41,'IMDB'=>42,'IMGUR'=>43,'INDIEGOGO'=>44,'INSTAGRAM'=>45,'INTERNETARCHIVE'=>46,'IZLESENE'=>47,'JWPLATFORM'=>48,'KHL'=>49,'KICKSTARTER'=>50,'KISSVIDEO'=>51,'LIBSYN'=>52,'LIVECAP'=>53,'LIVELEAK'=>54,'LIVESTREAM'=>55,'MAILRU'=>56,'MEDIUM'=>57,'METACAFE'=>58,'MIXCLOUD'=>59,'MLB'=>60,'MRCTV'=>61,'MSNBC'=>62,'NATGEOCHANNEL'=>63,'NATGEOVIDEO'=>64,'NBCNEWS'=>65,'NBCSPORTS'=>66,'NHL'=>67,'NPR'=>68,'NYTIMES'=>69,'ODDSHOT'=>70,'PASTEBIN'=>71,'PLAYSTV'=>72,'PODBEAN'=>73,'PREZI'=>74,'REDDIT'=>75,'RUTUBE'=>76,'SCRIBD'=>77,'SLIDESHARE'=>78,'SOUNDCLOUD'=>79,'SPORTSNET'=>80,'SPOTIFY'=>81,'STEAMSTORE'=>82,'STITCHER'=>83,'STRAWPOLL'=>84,'STREAMABLE'=>85,'TEAMCOCO'=>86,'TED'=>87,'THEATLANTIC'=>88,'THEGUARDIAN'=>89,'THEONION'=>90,'TINYPIC'=>91,'TMZ'=>92,'TRAILERADDICT'=>93,'TUMBLR'=>94,'TWITCH'=>95,'TWITTER'=>96,'USTREAM'=>97,'VBOX7'=>98,'VEOH'=>99,'VEVO'=>100,'VIAGAME'=>101,'VIDEODETECTIVE'=>102,'VIDEOMEGA'=>103,'VIDME'=>104,'VIMEO'=>105,'VINE'=>106,'VK'=>107,'VOCAROO'=>108,'VOX'=>109,'WASHINGTONPOST'=>110,'WSHH'=>111,'WSJ'=>112,'XBOXCLIPS'=>113,'XBOXDVR'=>114,'YAHOOSCREEN'=>115,'YOUKU'=>116,'YOUTUBE'=>117,'ZIPPYSHARE'=>118,'br'=>119,'e'=>120,'i'=>120,'s'=>120,'p'=>121);
+	protected static $tagBranches=array('ABCNEWS'=>0,'AMAZON'=>1,'AUDIOBOOM'=>2,'AUDIOMACK'=>3,'BANDCAMP'=>4,'BBCNEWS'=>5,'BLAB'=>6,'BLEACHERREPORT'=>7,'BREAK'=>8,'BRIGHTCOVE'=>9,'CBSNEWS'=>10,'CNBC'=>11,'CNN'=>12,'CNNMONEY'=>13,'COLLEGEHUMOR'=>14,'COMEDYCENTRAL'=>15,'COUB'=>16,'DAILYMOTION'=>17,'DEMOCRACYNOW'=>18,'DUMPERT'=>19,'EIGHTTRACKS'=>20,'ESPN'=>21,'FACEBOOK'=>22,'FLICKR'=>23,'FORATV'=>24,'FOXNEWS'=>25,'FUNNYORDIE'=>26,'GAMESPOT'=>27,'GAMETRAILERS'=>28,'GETTY'=>29,'GFYCAT'=>30,'GIFS'=>31,'GIST'=>32,'GLOBALNEWS'=>33,'GOFUNDME'=>34,'GOOGLEDRIVE'=>35,'GOOGLEPLUS'=>36,'GOOGLESHEETS'=>37,'HEALTHGURU'=>38,'HUDL'=>39,'HULU'=>40,'HUMORTVNL'=>41,'IGN'=>42,'IMDB'=>43,'IMGUR'=>44,'INDIEGOGO'=>45,'INSTAGRAM'=>46,'INTERNETARCHIVE'=>47,'IZLESENE'=>48,'JWPLATFORM'=>49,'KHL'=>50,'KICKSTARTER'=>51,'KISSVIDEO'=>52,'LIBSYN'=>53,'LIVECAP'=>54,'LIVELEAK'=>55,'LIVESTREAM'=>56,'MAILRU'=>57,'MEDIUM'=>58,'METACAFE'=>59,'MIXCLOUD'=>60,'MLB'=>61,'MRCTV'=>62,'MSNBC'=>63,'NATGEOCHANNEL'=>64,'NATGEOVIDEO'=>65,'NBCNEWS'=>66,'NBCSPORTS'=>67,'NHL'=>68,'NPR'=>69,'NYTIMES'=>70,'ODDSHOT'=>71,'PASTEBIN'=>72,'PINTEREST'=>73,'PLAYSTV'=>74,'PODBEAN'=>75,'PREZI'=>76,'REDDIT'=>77,'RUTUBE'=>78,'SCRIBD'=>79,'SLIDESHARE'=>80,'SOUNDCLOUD'=>81,'SPORTSNET'=>82,'SPOTIFY'=>83,'STEAMSTORE'=>84,'STITCHER'=>85,'STRAWPOLL'=>86,'STREAMABLE'=>87,'TEAMCOCO'=>88,'TED'=>89,'THEATLANTIC'=>90,'THEGUARDIAN'=>91,'THEONION'=>92,'TINYPIC'=>93,'TMZ'=>94,'TRAILERADDICT'=>95,'TUMBLR'=>96,'TWITCH'=>97,'TWITTER'=>98,'USTREAM'=>99,'VBOX7'=>100,'VEOH'=>101,'VEVO'=>102,'VIAGAME'=>103,'VIDEODETECTIVE'=>104,'VIDEOMEGA'=>105,'VIDME'=>106,'VIMEO'=>107,'VINE'=>108,'VK'=>109,'VOCAROO'=>110,'VOX'=>111,'WASHINGTONPOST'=>112,'WSHH'=>113,'WSJ'=>114,'XBOXCLIPS'=>115,'XBOXDVR'=>116,'YAHOOSCREEN'=>117,'YOUKU'=>118,'YOUTUBE'=>119,'ZIPPYSHARE'=>120,'br'=>121,'e'=>122,'i'=>122,'s'=>122,'p'=>123);
 	public function __sleep()
 	{
 		$props = \get_object_vars($this);
@@ -42,18 +42,18 @@ class Renderer extends \s9e\TextFormatter\Renderer
 				else
 				{
 					$tb = self::$tagBranches[$node->nodeName];
-					if($tb<61)if($tb<31){if($tb<16)if($tb<8)if($tb<4)if($tb===0)$this->out.='<div data-s9e-mediaembed="abcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//abcnews.go.com/video/embed?id='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===1){$this->out.='<div data-s9e-mediaembed="amazon" style="display:inline-block;width:100%;max-width:120px"><div style="overflow:hidden;position:relative;padding-bottom:200%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//';if($node->getAttribute('tld')==='es'||$node->getAttribute('tld')==='it'){$this->out.='rcm-eu.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=FFFFFF&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;p=8&amp;l=as1&amp;f=ifr&amp;asins='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;o=';if($node->getAttribute('tld')==='es')$this->out.='30';else$this->out.='29';$this->out.='&amp;t=';if($node->getAttribute('tld')==='es'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_ES']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_ES'],2);elseif($node->getAttribute('tld')==='it'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_IT']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_IT'],2);else$this->out.='_';}else{$this->out.='ws-';if($node->getAttribute('tld')==='jp')$this->out.='fe';elseif($node->hasAttribute('tld')&&(\strpos('desfrituk',$node->getAttribute('tld'))!==\false))$this->out.='eu';else$this->out.='na';$this->out.='.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=';if($node->hasAttribute('tld'))$this->out.=\htmlspecialchars(\strtr($node->getAttribute('tld'),'acdefijkprstu','ACDEFIJBPRSTG'),2);else$this->out.='US';$this->out.='&amp;ad_type=product_link&amp;tracking_id=';if($node->getAttribute('tld')==='ca'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_CA']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_CA'],2);elseif($node->getAttribute('tld')==='de'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_DE']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_DE'],2);elseif($node->getAttribute('tld')==='fr'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_FR']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_FR'],2);elseif($node->getAttribute('tld')==='jp'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_JP']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_JP'],2);elseif($node->getAttribute('tld')==='uk'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_UK']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_UK'],2);elseif(!empty($this->params['AMAZON_ASSOCIATE_TAG']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG'],2);else$this->out.='_';$this->out.='&amp;marketplace=amazon&amp;region=';if($node->hasAttribute('tld'))$this->out.=\htmlspecialchars(\strtr($node->getAttribute('tld'),'acdefijkprstu','ACDEFIJBPRSTG'),2);else$this->out.='US';$this->out.='&amp;asins='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;show_border=true&amp;link_opens_in_new_window=true';}$this->out.='"></iframe></div></div>';}elseif($tb===2)$this->out.='<iframe data-s9e-mediaembed="audioboom" allowfullscreen="" scrolling="no" src="//audioboom.com/boos/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed/v3" style="border:0;height:150px;max-width:700px;width:100%"></iframe>';elseif($node->getAttribute('mode')==='album')$this->out.='<iframe data-s9e-mediaembed="audiomack" allowfullscreen="" scrolling="no" src="//www.audiomack.com/embed4-album/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:340px;max-width:900px;width:100%"></iframe>';else$this->out.='<iframe data-s9e-mediaembed="audiomack" allowfullscreen="" scrolling="no" src="//www.audiomack.com/embed4/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:110px;max-width:900px;width:100%"></iframe>';elseif($tb===4){$this->out.='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if($node->hasAttribute('album_id')){$this->out.='album='.\htmlspecialchars($node->getAttribute('album_id'),2);if($node->hasAttribute('track_num'))$this->out.='/t='.\htmlspecialchars($node->getAttribute('track_num'),2);}else$this->out.='track='.\htmlspecialchars($node->getAttribute('track_id'),2);$this->out.='"></iframe></div></div>';}elseif($tb===5){$this->out.='<div data-s9e-mediaembed="bbcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//www.bbc.com';if((\strpos($node->getAttribute('playlist'),'/news/')===0)&&(\strpos($node->getAttribute('playlist'),'A')!==\false))$this->out.=\htmlspecialchars(\strstr($node->getAttribute('playlist'),'A',\true),2);else$this->out.='/news/'.\htmlspecialchars($node->getAttribute('id'),2);$this->out.='/embed"></iframe></div></div>';}elseif($tb===6)$this->out.='<div data-s9e-mediaembed="blab" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://blab.im/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="bleacherreport" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//bleacherreport.com/video_embed?id='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<12)if($tb===8)$this->out.='<div data-s9e-mediaembed="break" style="display:inline-block;width:100%;max-width:464px"><div style="overflow:hidden;position:relative;padding-bottom:60.344827586207%"><iframe allowfullscreen="" scrolling="no" src="//break.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===9)$this->out.='<div data-s9e-mediaembed="brightcove" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://link.brightcove.com/services/player/bcpid'.\htmlspecialchars($node->getAttribute('bcpid'),2).'?bckey='.\htmlspecialchars($node->getAttribute('bckey'),2).'&amp;bctid='.\htmlspecialchars($node->getAttribute('bctid'),2).'&amp;secureConnections=true&amp;secureHTMLConnections=true&amp;autoStart=false&amp;height=100%25&amp;width=100%25" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===10){$this->out.='<div data-s9e-mediaembed="cbsnews" style="display:inline-block;width:100%;max-width:640px">';if($node->hasAttribute('pid'))$this->out.='<div style="overflow:hidden;position:relative;padding-bottom:62.1875%;padding-bottom:calc(56.25% + 38px)"><object data="//www.cbsnews.com/common/video/cbsnews_player.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="pType=embed&amp;si=254&amp;pid='.\htmlspecialchars($node->getAttribute('pid'),2);else$this->out.='<div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><object data="//i.i.cbsi.com/cnwk.1d/av/video/cbsnews/atlantis2/cbsnews_player_embed.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="si=254&amp;contentValue='.\htmlspecialchars($node->getAttribute('id'),2);$this->out.='"></object></div>';$this->out.='</div>';}else$this->out.='<div data-s9e-mediaembed="cnbc" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:95%"><object data="//plus.cnbc.com/rssvideosearch/action/player/id/'.\htmlspecialchars($node->getAttribute('id'),2).'/code/cnbcplayershare" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>';elseif($tb===12)$this->out.='<div data-s9e-mediaembed="cnn" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//edition.cnn.com/video/api/embed.html#/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===13)$this->out.='<div data-s9e-mediaembed="cnnmoney" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:64.285714285714%"><iframe allowfullscreen="" scrolling="no" src="//money.cnn.com/.element/ssi/video/7.0/players/embed.player.html?videoid=video/'.\htmlspecialchars($node->getAttribute('id'),2).'&amp;width=560&amp;height=360" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===14)$this->out.='<div data-s9e-mediaembed="collegehumor" style="display:inline-block;width:100%;max-width:600px"><div style="overflow:hidden;position:relative;padding-bottom:61.5%"><iframe allowfullscreen="" scrolling="no" src="//www.collegehumor.com/e/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="comedycentral" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//media.mtvnservices.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<24)if($tb<20)if($tb===16)$this->out.='<div data-s9e-mediaembed="coub" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//coub.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===17)$this->out.='<div data-s9e-mediaembed="dailymotion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dailymotion.com/embed/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===18){$this->out.='<div data-s9e-mediaembed="democracynow" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//www.democracynow.org/embed/';if((\strpos($node->getAttribute('id'),'/headlines')!==\false))$this->out.='headlines/'.\htmlspecialchars(\strstr($node->getAttribute('id'),'/headlines',\true),2);elseif((\strpos($node->getAttribute('id'),'2')===0))$this->out.='story/'.\htmlspecialchars($node->getAttribute('id'),2);elseif((\strpos($node->getAttribute('id'),'shows/')===0))$this->out.='show/'.\htmlspecialchars(\substr(\strstr($node->getAttribute('id'),'/'),1),2);else$this->out.=\htmlspecialchars($node->getAttribute('id'),2);$this->out.='"></iframe></div></div>';}else$this->out.='<div data-s9e-mediaembed="dumpert" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dumpert.nl/embed/'.\htmlspecialchars(\strtr($node->getAttribute('id'),'_','/'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===20)$this->out.='<div data-s9e-mediaembed="eighttracks" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="//8tracks.com/mixes/'.\htmlspecialchars($node->getAttribute('id'),2).'/player_v3_universal" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===21)$this->out.='<div data-s9e-mediaembed="espn" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.espn.com/core/video/iframe?id='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===22)$this->out.='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars($node->getAttribute('type').$node->getAttribute('id'),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';else$this->out.='<div data-s9e-mediaembed="flickr" style="display:inline-block;width:100%;max-width:500px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://www.flickr.com/photos/_/'.\htmlspecialchars($node->getAttribute('id'),2).'/player/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<28)if($tb===24)$this->out.='<div data-s9e-mediaembed="foratv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//library.fora.tv/embed?id='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;type=c" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===25)$this->out.='<div data-s9e-mediaembed="foxnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video.foxnews.com/v/video-embed.html?video_id='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===26)$this->out.='<div data-s9e-mediaembed="funnyordie" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.funnyordie.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="gamespot" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%"><iframe allowfullscreen="" scrolling="no" src="//www.gamespot.com/videos/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===28){$this->out.='<div data-s9e-mediaembed="gametrailers" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if((\strpos($node->getAttribute('id'),'mgid:')===0))$this->out.='//media.mtvnservices.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2);else$this->out.='//embed.gametrailers.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'?embed=1&amp;suppressBumper=1';$this->out.='"></iframe></div></div>';}elseif($tb===29){$this->out.='<div data-s9e-mediaembed="getty" style="display:inline-block;width:100%;max-width:'.\htmlspecialchars($node->getAttribute('width'),2).'px"><div style="overflow:hidden;position:relative;';if($node->getAttribute('width')>0)$this->out.='padding-bottom:'.\htmlspecialchars(100*($node->getAttribute('height')+49)/$node->getAttribute('width'),2).'%;padding-bottom:calc('.\htmlspecialchars(100*$node->getAttribute('height')/$node->getAttribute('width'),2).'% + 49px)';$this->out.='"><iframe allowfullscreen="" scrolling="no" src="//embed.gettyimages.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'?et='.\htmlspecialchars($node->getAttribute('et'),2).'&amp;sig='.\htmlspecialchars($node->getAttribute('sig'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}else{$this->out.='<div data-s9e-mediaembed="gfycat" style="display:inline-block;width:100%;max-width:'.\htmlspecialchars($node->getAttribute('width'),2).'px"><div style="overflow:hidden;position:relative;';if($node->getAttribute('width')>0)$this->out.='padding-bottom:'.\htmlspecialchars(100*$node->getAttribute('height')/$node->getAttribute('width'),2).'%';$this->out.='"><iframe allowfullscreen="" scrolling="no" src="//gfycat.com/iframe/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}}elseif($tb<46)if($tb<39)if($tb<35)if($tb===31)$this->out.='<iframe data-s9e-mediaembed="gist" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="" src="https://s9e.github.io/iframe/gist.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:180px;width:100%"></iframe>';elseif($tb===32)$this->out.='<div data-s9e-mediaembed="globalnews" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:67.321428571429%"><iframe allowfullscreen="" scrolling="no" src="//globalnews.ca/video/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===33)$this->out.='<div data-s9e-mediaembed="gofundme" style="display:inline-block;width:100%;max-width:258px"><div style="overflow:hidden;position:relative;padding-bottom:131.00775193798%"><object data="//funds.gofundme.com/Widgetflex.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="page='.\htmlspecialchars($node->getAttribute('id'),2).'"></object></div></div>';else$this->out.='<div data-s9e-mediaembed="googledrive" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//drive.google.com/file/d/'.\htmlspecialchars($node->getAttribute('id'),2).'/preview" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===35){$this->out.='<iframe data-s9e-mediaembed="googleplus" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" style="border:0;height:240px;max-width:450px;width:100%" src="https://s9e.github.io/iframe/googleplus.min.html#';if($node->hasAttribute('oid'))$this->out.=\htmlspecialchars($node->getAttribute('oid'),2);else$this->out.='+'.\htmlspecialchars($node->getAttribute('name'),2);$this->out.='/posts/'.\htmlspecialchars($node->getAttribute('pid'),2).'"></iframe>';}elseif($tb===36)$this->out.='<iframe data-s9e-mediaembed="googlesheets" allowfullscreen="" scrolling="no" src="https://docs.google.com/spreadsheet/ccc?key='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;widget=true&amp;headers=false&amp;rm=minimal#gid='.\htmlspecialchars($node->getAttribute('gid'),2).'" style="border:0;height:500px;resize:vertical;width:100%"></iframe>';elseif($tb===37)$this->out.='<div data-s9e-mediaembed="healthguru" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.healthguru.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="hudl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.hudl.com/embed/athlete/'.\htmlspecialchars($node->getAttribute('athlete'),2).'/highlights/'.\htmlspecialchars($node->getAttribute('highlight'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<43)if($tb===39)$this->out.='<div data-s9e-mediaembed="hulu" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://secure.hulu.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===40)$this->out.='<div data-s9e-mediaembed="humortvnl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//humortv.vara.nl/embed.'.\htmlspecialchars($node->getAttribute('id'),2).'.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===41)$this->out.='<div data-s9e-mediaembed="ign" style="display:inline-block;width:100%;max-width:468px"><div style="overflow:hidden;position:relative;padding-bottom:56.196581196581%"><iframe allowfullscreen="" scrolling="no" src="//widgets.ign.com/video/embed/content.html?url='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="imdb" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.imdb.com/videoembed/vi'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===43){$this->out.='<iframe data-s9e-mediaembed="imgur" allowfullscreen="" onload="var b=Math.random();window.addEventListener(\'message\',function(a){a.data.id==b&amp;&amp;(style.height=a.data.height+\'px\',style.width=a.data.width+\'px\')});contentWindow.postMessage(\'s9e:\'+b,\'https://s9e.github.io\')" scrolling="no" style="border:0;height:450px;width:568px" src="https://s9e.github.io/iframe/imgur.min.html#';if($node->getAttribute('type')==='album'&&!((\strpos($node->getAttribute('id'),'a/')===0)))$this->out.='a/';$this->out.=\htmlspecialchars($node->getAttribute('id'),2).'"></iframe>';}elseif($tb===44)$this->out.='<div data-s9e-mediaembed="indiegogo" style="display:inline-block;width:100%;max-width:222px"><div style="overflow:hidden;position:relative;padding-bottom:200.45045045045%"><iframe allowfullscreen="" scrolling="no" src="//www.indiegogo.com/project/'.\htmlspecialchars($node->getAttribute('id'),2).'/embedded" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<iframe data-s9e-mediaembed="instagram" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/instagram.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:640px;max-width:640px;width:100%"></iframe>';elseif($tb<54)if($tb<50)if($tb===46){$this->out.='<div data-s9e-mediaembed="internetarchive" style="display:inline-block;width:100%;max-width:'.\htmlspecialchars($node->getAttribute('width'),2).'px"><div style="overflow:hidden;position:relative;';if($node->getAttribute('width')>0)$this->out.='padding-bottom:'.\htmlspecialchars(100*$node->getAttribute('height')/$node->getAttribute('width'),2).'%';$this->out.='"><iframe allowfullscreen="" scrolling="no" src="https://archive.org/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($tb===47)$this->out.='<div data-s9e-mediaembed="izlesene" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.izlesene.com/embedplayer/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===48)$this->out.='<div data-s9e-mediaembed="jwplatform" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//content.jwplatform.com/players/'.\htmlspecialchars($node->getAttribute('id'),2).'.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="khl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video.khl.ru/iframe/feed/start/'.\htmlspecialchars($node->getAttribute('id'),2).'?type_id=18&amp;width=560&amp;height=315" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===50)if($node->hasAttribute('video'))$this->out.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.\htmlspecialchars($node->getAttribute('id'),2).'/widget/video.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:220px"><div style="overflow:hidden;position:relative;padding-bottom:190.90909090909%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.\htmlspecialchars($node->getAttribute('id'),2).'/widget/card.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===51)$this->out.='<div data-s9e-mediaembed="kissvideo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.kissvideo.click/embed.php?vid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===52)$this->out.='<iframe data-s9e-mediaembed="libsyn" allowfullscreen="" scrolling="no" src="//html5-player.libsyn.com/embed/episode/id/'.\htmlspecialchars($node->getAttribute('id'),2).'/height/45/width/900/theme/standard/direction/no/autoplay/no/autonext/no/thumbnail/no/preload/no/no_addthis/no/" style="border:0;height:45px;max-width:900px;width:100%"></iframe>';else$this->out.='<div data-s9e-mediaembed="livecap" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://www.livecap.tv/s/embed/'.\htmlspecialchars($node->getAttribute('channel'),2).'/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<58)if($tb===54)$this->out.='<div data-s9e-mediaembed="liveleak" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.liveleak.com/ll_embed?i='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===55){$this->out.='<div data-s9e-mediaembed="livestream" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if($node->hasAttribute('clip_id'))$this->out.='//cdn.livestream.com/embed/'.\htmlspecialchars($node->getAttribute('channel'),2).'?layout=4&amp;autoplay=false&amp;clip='.\htmlspecialchars($node->getAttribute('clip_id'),2);else{$this->out.='//livestream.com/accounts/'.\htmlspecialchars($node->getAttribute('account_id'),2).'/events/'.\htmlspecialchars($node->getAttribute('event_id'),2);if($node->hasAttribute('video_id'))$this->out.='/videos/'.\htmlspecialchars($node->getAttribute('video_id'),2);$this->out.='/player?autoPlay=false';}$this->out.='"></iframe></div></div>';}elseif($tb===56)$this->out.='<div data-s9e-mediaembed="mailru" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:61.071428571429%"><iframe allowfullscreen="" scrolling="no" src="//videoapi.my.mail.ru/videos/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<iframe data-s9e-mediaembed="medium" allowfullscreen="" onload="window.addEventListener(\'message\',function(a){a=a.data.split(\'::\');\'m\'===a[0]&amp;&amp;0&lt;src.indexOf(a[1])&amp;&amp;a[2]&amp;&amp;(style.height=a[2]+\'px\')})" scrolling="no" src="https://api.medium.com/embed?type=story&amp;path=%2F%2F'.\htmlspecialchars($node->getAttribute('id'),2).'&amp;id='.\htmlspecialchars(\strtr($node->getAttribute('id'),'abcdef','111111'),2).'" style="border:1px solid;border-color:#eee #ddd #bbb;border-radius:5px;box-shadow:rgba(0,0,0,.15) 0 1px 3px;height:400px;max-width:400px;width:100%"></iframe>';elseif($tb===58)$this->out.='<div data-s9e-mediaembed="metacafe" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.metacafe.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===59)$this->out.='<div data-s9e-mediaembed="mixcloud" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="//www.mixcloud.com/widget/iframe/?feed=http%3A%2F%2Fwww.mixcloud.com%2F'.\htmlspecialchars($node->getAttribute('id'),2).'%2F&amp;embed_type=widget_standard" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="mlb" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//m.mlb.com/shared/video/embed/embed.html?content_id='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;width=640&amp;height=360" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<92)if($tb<77)if($tb<69)if($tb<65)if($tb===61)$this->out.='<div data-s9e-mediaembed="mrctv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://www.mrctv.org/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===62)$this->out.='<div data-s9e-mediaembed="msnbc" style="display:inline-block;width:100%;max-width:635px"><div style="overflow:hidden;position:relative;padding-bottom:69.291338582677%"><iframe allowfullscreen="" scrolling="no" src="//player.theplatform.com/p/2E2eJC/EmbeddedOffSite?guid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===63)$this->out.='<div data-s9e-mediaembed="natgeochannel" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//channel.nationalgeographic.com/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="natgeovideo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.d.nationalgeographic.com/players/ngsvideo/share/?guid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===65)$this->out.='<div data-s9e-mediaembed="nbcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.nbcnews.com/widget/video-embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===66)$this->out.='<div data-s9e-mediaembed="nbcsports" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//vplayer.nbcsports.com/p/BxmELC/nbcsports_embed/select/media/'.\htmlspecialchars($node->getAttribute('id'),2).'?parentUrl=" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===67){$this->out.='<div data-s9e-mediaembed="nhl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if($node->hasAttribute('c')||$node->hasAttribute('t')){$this->out.='//www.nhl.com/video/embed';if($node->hasAttribute('t'))$this->out.='/t-'.\htmlspecialchars($node->getAttribute('t'),2);if($node->hasAttribute('c'))$this->out.='/c-'.\htmlspecialchars($node->getAttribute('c'),2);$this->out.='?autostart=false';}else$this->out.='//video.nhl.com/videocenter/embed?playlist='.\htmlspecialchars($node->getAttribute('id'),2);$this->out.='"></iframe></div></div>';}else$this->out.='<iframe data-s9e-mediaembed="npr" allowfullscreen="" scrolling="no" src="//www.npr.org/player/embed/'.\htmlspecialchars($node->getAttribute('i'),2).'/'.\htmlspecialchars($node->getAttribute('m'),2).'" style="border:0;height:228px;max-width:800px;width:100%"></iframe>';elseif($tb<73)if($tb===69)$this->out.='<div data-s9e-mediaembed="nytimes" style="display:inline-block;width:100%;max-width:585px"><div style="overflow:hidden;position:relative;padding-bottom:68.376068376068%"><iframe allowfullscreen="" scrolling="no" src="//graphics8.nytimes.com/video/players/offsite/index.html?videoId='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===70)$this->out.='<div data-s9e-mediaembed="oddshot" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//oddshot.tv/shot/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===71)$this->out.='<iframe data-s9e-mediaembed="pastebin" allowfullscreen="" scrolling="" src="//pastebin.com/embed_iframe.php?i='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:300px;resize:vertical;width:100%"></iframe>';else$this->out.='<div data-s9e-mediaembed="playstv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//plays.tv/embeds/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===73)$this->out.='<iframe data-s9e-mediaembed="podbean" allowfullscreen="" scrolling="no" src="//www.podbean.com/media/player/audio/postId/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100px;max-width:900px;width:100%"></iframe>';elseif($tb===74)$this->out.='<div data-s9e-mediaembed="prezi" style="display:inline-block;width:100%;max-width:550px"><div style="overflow:hidden;position:relative;padding-bottom:72.727272727273%"><iframe allowfullscreen="" scrolling="no" src="//prezi.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===75)$this->out.='<iframe data-s9e-mediaembed="reddit" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/reddit.min.html#'.\htmlspecialchars($node->getAttribute('path'),2).'" style="border:0;height:165px;max-width:800px;width:100%"></iframe>';else$this->out.='<div data-s9e-mediaembed="rutube" style="display:inline-block;width:100%;max-width:720px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//rutube.ru/play/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<85)if($tb<81)if($tb===77)$this->out.='<iframe data-s9e-mediaembed="scribd" allowfullscreen="" scrolling="no" src="https://www.scribd.com/embeds/'.\htmlspecialchars($node->getAttribute('id'),2).'/content?view_mode=scroll&amp;show_recommendations=false" style="border:0;height:500px;resize:vertical;width:100%"></iframe>';elseif($tb===78)$this->out.='<div data-s9e-mediaembed="slideshare" style="display:inline-block;width:100%;max-width:427px"><div style="overflow:hidden;position:relative;padding-bottom:83.372365339578%"><iframe allowfullscreen="" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===79){$this->out.='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if($node->hasAttribute('playlist_id'))$this->out.='https%3A//api.soundcloud.com/playlists/'.\htmlspecialchars($node->getAttribute('playlist_id'),2);elseif($node->hasAttribute('track_id'))$this->out.='https%3A//api.soundcloud.com/tracks/'.\htmlspecialchars($node->getAttribute('track_id'),2).'&amp;secret_token='.\htmlspecialchars($node->getAttribute('secret_token'),2);else{if((\strpos($node->getAttribute('id'),'://')===\false))$this->out.='https%3A//soundcloud.com/';$this->out.=\htmlspecialchars($node->getAttribute('id'),2);}$this->out.='" style="border:0;height:';if($node->hasAttribute('playlist_id')||(\strpos($node->getAttribute('id'),'/sets/')!==\false))$this->out.='450';else$this->out.='166';$this->out.='px;max-width:900px;width:100%"></iframe>';}else$this->out.='<div data-s9e-mediaembed="sportsnet" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://images.rogersdigitalmedia.com/video_service.php?videoId='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;playerKey=AQ~~,AAAAAGWRwLc~,cRCmKE8Utf7OFWP38XQcokFZ80fR-u_y&amp;autoStart=false&amp;width=100%25&amp;height=100%25" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===81){$this->out.='<div data-s9e-mediaembed="spotify" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:120%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="https://embed.spotify.com/?view=coverart&amp;uri=';if($node->hasAttribute('uri'))$this->out.=\htmlspecialchars($node->getAttribute('uri'),2);else$this->out.='spotify:'.\htmlspecialchars(\strtr($node->getAttribute('path'),'/',':'),2);$this->out.='"></iframe></div></div>';}elseif($tb===82)$this->out.='<iframe data-s9e-mediaembed="steamstore" allowfullscreen="" scrolling="no" src="//store.steampowered.com/widget/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:190px;max-width:900px;width:100%"></iframe>';elseif($tb===83)$this->out.='<iframe data-s9e-mediaembed="stitcher" allowfullscreen="" scrolling="no" src="//app.stitcher.com/splayer/f/'.\htmlspecialchars($node->getAttribute('fid'),2).'/'.\htmlspecialchars($node->getAttribute('eid'),2).'" style="border:0;height:150px;max-width:900px;width:100%"></iframe>';else$this->out.='<div data-s9e-mediaembed="strawpoll" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="" src="//www.strawpoll.me/embed_1/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<89)if($tb===85)$this->out.='<div data-s9e-mediaembed="streamable" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//streamable.com/e/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===86)$this->out.='<div data-s9e-mediaembed="teamcoco" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:64.84375%"><iframe allowfullscreen="" scrolling="no" src="//teamcoco.com/embed/v/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===87){$this->out.='<div data-s9e-mediaembed="ted" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//embed.ted.com/'.\htmlspecialchars($node->getAttribute('id'),2);if((\strpos($node->getAttribute('id'),'.html')===\false))$this->out.='.html';$this->out.='"></iframe></div></div>';}else$this->out.='<div data-s9e-mediaembed="theatlantic" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.theatlantic.com/video/iframe/'.\htmlspecialchars($node->getAttribute('id'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===89)$this->out.='<div data-s9e-mediaembed="theguardian" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//embed.theguardian.com/embed/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===90)$this->out.='<div data-s9e-mediaembed="theonion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.theonion.com/video_embed/?id='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="tinypic" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:60.9375%;padding-bottom:calc(56.25% + 30px)"><object data="//tinypic.com/player.swf?file='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;s='.\htmlspecialchars($node->getAttribute('s'),2).'" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>';elseif($tb<107)if($tb<100)if($tb<96){if($tb===92)$this->out.='<div data-s9e-mediaembed="tmz" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.kaltura.com/index.php/kwidget/cache_st/133592691/wid/_591531/partner_id/591531/uiconf_id/9071262/entry_id/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===93)$this->out.='<div data-s9e-mediaembed="traileraddict" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//v.traileraddict.com/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===94)$this->out.='<iframe data-s9e-mediaembed="tumblr" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/tumblr.min.html#'.\htmlspecialchars($node->getAttribute('key'),2).'/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:180px;max-width:520px;width:100%"></iframe>';else{$this->out.='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if($node->hasAttribute('clip_id'))$this->out.='//clips.twitch.tv/embed?autoplay=false&amp;clip='.\htmlspecialchars($node->getAttribute('channel'),2).'/'.\htmlspecialchars($node->getAttribute('clip_id'),2);else{$this->out.='//player.twitch.tv/?autoplay=false&amp;';if($node->hasAttribute('archive_id'))$this->out.='video=a'.\htmlspecialchars($node->getAttribute('archive_id'),2);elseif($node->hasAttribute('chapter_id'))$this->out.='video=c'.\htmlspecialchars($node->getAttribute('chapter_id'),2);elseif($node->hasAttribute('video_id'))$this->out.='video=v'.\htmlspecialchars($node->getAttribute('video_id'),2);else$this->out.='channel='.\htmlspecialchars($node->getAttribute('channel'),2);if($node->hasAttribute('t'))$this->out.='&amp;time='.\htmlspecialchars($node->getAttribute('t'),2);}$this->out.='"></iframe></div></div>';}}elseif($tb===96)$this->out.='<iframe data-s9e-mediaembed="twitter" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/twitter.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="background:url(https://abs.twimg.com/favicons/favicon.ico) no-repeat 50% 50%;border:0;height:186px;max-width:500px;width:100%"></iframe>';elseif($tb===97){$this->out.='<div data-s9e-mediaembed="ustream" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%">';if($node->hasAttribute('vid'))$this->out.='<iframe allowfullscreen="" scrolling="no" src="//www.ustream.tv/embed/recorded/'.\htmlspecialchars($node->getAttribute('vid'),2);else$this->out.='<iframe allowfullscreen="" scrolling="no" src="//www.ustream.tv/embed/'.\htmlspecialchars($node->getAttribute('cid'),2);$this->out.='?html5ui" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe>';$this->out.='</div></div>';}elseif($tb===98)$this->out.='<div data-s9e-mediaembed="vbox7" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//vbox7.com/emb/external.php?vid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="veoh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><object data="//www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1509&amp;permalinkId=v'.\htmlspecialchars($node->getAttribute('id'),2).'&amp;player=videodetailsembedded&amp;videoAutoPlay=0&amp;id=anonymous" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>';elseif($tb<104)if($tb===100)$this->out.='<div data-s9e-mediaembed="vevo" style="display:inline-block;width:100%;max-width:575px"><div style="overflow:hidden;position:relative;padding-bottom:56.347826086957%"><iframe allowfullscreen="" scrolling="no" src="//cache.vevo.com/m/html/embed.html?video='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===101)$this->out.='<div data-s9e-mediaembed="viagame" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:61.25%"><iframe allowfullscreen="" scrolling="no" src="//www.viagame.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===102)$this->out.='<div data-s9e-mediaembed="videodetective" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.videodetective.com/embed/video/?options=false&amp;autostart=false&amp;playlist=none&amp;publishedid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="videomega" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//videomega.tv/iframe.php?ref='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===104){$this->out.='<div data-s9e-mediaembed="vidme" style="display:inline-block;width:100%;max-width:'.\htmlspecialchars($node->getAttribute('width'),2).'px"><div style="overflow:hidden;position:relative;';if($node->getAttribute('width')>0)$this->out.='padding-bottom:'.\htmlspecialchars(100*$node->getAttribute('height')/$node->getAttribute('width'),2).'%';$this->out.='"><iframe allowfullscreen="" scrolling="no" src="https://vid.me/e/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($tb===105)$this->out.='<div data-s9e-mediaembed="vimeo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.vimeo.com/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="vine" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://vine.co/v/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed/simple?audio=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<115)if($tb<111)if($tb===107)$this->out.='<div data-s9e-mediaembed="vk" style="display:inline-block;width:100%;max-width:607px"><div style="overflow:hidden;position:relative;padding-bottom:59.308072487644%"><iframe allowfullscreen="" scrolling="no" src="//vk.com/video_ext.php?oid='.\htmlspecialchars($node->getAttribute('oid'),2).'&amp;id='.\htmlspecialchars($node->getAttribute('vid'),2).'&amp;hash='.\htmlspecialchars($node->getAttribute('hash'),2).'&amp;hd=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===108)$this->out.='<div data-s9e-mediaembed="vocaroo" style="display:inline-block;width:100%;max-width:148px"><div style="overflow:hidden;position:relative;padding-bottom:29.72972972973%"><object data="//vocaroo.com/player.swf?playMediaID='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;autoplay=0" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>';elseif($tb===109)$this->out.='<div data-s9e-mediaembed="vox" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.ooyala.com/iframe.html#pbid=a637d53c5c0a43c7bf4e342886b9d8b0&amp;ec='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="washingtonpost" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.washingtonpost.com/video/c/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===111)$this->out.='<div data-s9e-mediaembed="wshh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.worldstarhiphop.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===112)$this->out.='<div data-s9e-mediaembed="wsj" style="display:inline-block;width:100%;max-width:512px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video-api.wsj.com/api-video/player/iframe.html?guid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===113)$this->out.='<div data-s9e-mediaembed="xboxclips" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//xboxclips.com/'.\htmlspecialchars($node->getAttribute('user'),2).'/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="xboxdvr" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//xboxdvr.com/gamer/'.\htmlspecialchars($node->getAttribute('user'),2).'/video/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<119)if($tb===115)$this->out.='<div data-s9e-mediaembed="yahooscreen" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://screen.yahoo.com/'.\htmlspecialchars($node->getAttribute('id'),2).'.html?format=embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===116)$this->out.='<div data-s9e-mediaembed="youku" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><object data="https://players.youku.com/player.php/sid/'.\htmlspecialchars($node->getAttribute('id'),2).'/v.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>';elseif($tb===117){$this->out.='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.\htmlspecialchars($node->getAttribute('id'),2).'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2);if($node->hasAttribute('list'))$this->out.='?list='.\htmlspecialchars($node->getAttribute('list'),2);if($node->hasAttribute('t')||$node->hasAttribute('m')){if($node->hasAttribute('list'))$this->out.='&amp;';else$this->out.='?';$this->out.='start=';if($node->hasAttribute('t'))$this->out.=\htmlspecialchars($node->getAttribute('t'),2);elseif($node->hasAttribute('h'))$this->out.=\htmlspecialchars($node->getAttribute('h')*3600+$node->getAttribute('m')*60+$node->getAttribute('s'),2);else$this->out.=\htmlspecialchars($node->getAttribute('m')*60+$node->getAttribute('s'),2);}$this->out.='"></iframe></div></div>';}else$this->out.='<object data-s9e-mediaembed="zippyshare" data="//api.zippyshare.com/api/player.swf" style="height:80px;max-width:900px;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="file='.\htmlspecialchars($node->getAttribute('file'),2).'&amp;server='.\htmlspecialchars($node->getAttribute('server'),2).'&amp;autostart=false"></object>';elseif($tb===119)$this->out.='<br>';elseif($tb===120);else{$this->out.='<p>';$this->at($node);$this->out.='</p>';}
+					if($tb<62)if($tb<31){if($tb<16)if($tb<8)if($tb<4)if($tb===0)$this->out.='<div data-s9e-mediaembed="abcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//abcnews.go.com/video/embed?id='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===1){$this->out.='<div data-s9e-mediaembed="amazon" style="display:inline-block;width:100%;max-width:120px"><div style="overflow:hidden;position:relative;padding-bottom:200%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//';if($node->getAttribute('tld')==='es'||$node->getAttribute('tld')==='it'){$this->out.='rcm-eu.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=FFFFFF&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;p=8&amp;l=as1&amp;f=ifr&amp;asins='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;o=';if($node->getAttribute('tld')==='es')$this->out.='30';else$this->out.='29';$this->out.='&amp;t=';if($node->getAttribute('tld')==='es'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_ES']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_ES'],2);elseif($node->getAttribute('tld')==='it'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_IT']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_IT'],2);else$this->out.='_';}else{$this->out.='ws-';if($node->getAttribute('tld')==='jp')$this->out.='fe';elseif($node->hasAttribute('tld')&&(\strpos('desfrituk',$node->getAttribute('tld'))!==\false))$this->out.='eu';else$this->out.='na';$this->out.='.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=';if($node->hasAttribute('tld'))$this->out.=\htmlspecialchars(\strtr($node->getAttribute('tld'),'acdefijkprstu','ACDEFIJBPRSTG'),2);else$this->out.='US';$this->out.='&amp;ad_type=product_link&amp;tracking_id=';if($node->getAttribute('tld')==='ca'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_CA']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_CA'],2);elseif($node->getAttribute('tld')==='de'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_DE']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_DE'],2);elseif($node->getAttribute('tld')==='fr'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_FR']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_FR'],2);elseif($node->getAttribute('tld')==='jp'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_JP']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_JP'],2);elseif($node->getAttribute('tld')==='uk'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_UK']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_UK'],2);elseif(!empty($this->params['AMAZON_ASSOCIATE_TAG']))$this->out.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG'],2);else$this->out.='_';$this->out.='&amp;marketplace=amazon&amp;region=';if($node->hasAttribute('tld'))$this->out.=\htmlspecialchars(\strtr($node->getAttribute('tld'),'acdefijkprstu','ACDEFIJBPRSTG'),2);else$this->out.='US';$this->out.='&amp;asins='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;show_border=true&amp;link_opens_in_new_window=true';}$this->out.='"></iframe></div></div>';}elseif($tb===2)$this->out.='<iframe data-s9e-mediaembed="audioboom" allowfullscreen="" scrolling="no" src="//audioboom.com/posts/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed/v3" style="border:0;height:150px;max-width:700px;width:100%"></iframe>';elseif($node->getAttribute('mode')==='album')$this->out.='<iframe data-s9e-mediaembed="audiomack" allowfullscreen="" scrolling="no" src="https://www.audiomack.com/embed/album/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:400px;max-width:900px;width:100%"></iframe>';else$this->out.='<iframe data-s9e-mediaembed="audiomack" allowfullscreen="" scrolling="no" src="https://www.audiomack.com/embed/song/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:252px;max-width:900px;width:100%"></iframe>';elseif($tb===4){$this->out.='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if($node->hasAttribute('album_id')){$this->out.='album='.\htmlspecialchars($node->getAttribute('album_id'),2);if($node->hasAttribute('track_num'))$this->out.='/t='.\htmlspecialchars($node->getAttribute('track_num'),2);}else$this->out.='track='.\htmlspecialchars($node->getAttribute('track_id'),2);$this->out.='"></iframe></div></div>';}elseif($tb===5){$this->out.='<div data-s9e-mediaembed="bbcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//www.bbc.com';if((\strpos($node->getAttribute('playlist'),'/news/')===0)&&(\strpos($node->getAttribute('playlist'),'A')!==\false))$this->out.=\htmlspecialchars(\strstr($node->getAttribute('playlist'),'A',\true),2);else$this->out.='/news/'.\htmlspecialchars($node->getAttribute('id'),2);$this->out.='/embed"></iframe></div></div>';}elseif($tb===6)$this->out.='<div data-s9e-mediaembed="blab" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://blab.im/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="bleacherreport" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//bleacherreport.com/video_embed?id='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<12)if($tb===8)$this->out.='<div data-s9e-mediaembed="break" style="display:inline-block;width:100%;max-width:464px"><div style="overflow:hidden;position:relative;padding-bottom:60.344828%"><iframe allowfullscreen="" scrolling="no" src="//break.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===9)$this->out.='<div data-s9e-mediaembed="brightcove" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://link.brightcove.com/services/player/bcpid'.\htmlspecialchars($node->getAttribute('bcpid'),2).'?bckey='.\htmlspecialchars($node->getAttribute('bckey'),2).'&amp;bctid='.\htmlspecialchars($node->getAttribute('bctid'),2).'&amp;secureConnections=true&amp;secureHTMLConnections=true&amp;autoStart=false&amp;height=100%25&amp;width=100%25" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===10){$this->out.='<div data-s9e-mediaembed="cbsnews" style="display:inline-block;width:100%;max-width:640px">';if($node->hasAttribute('pid'))$this->out.='<div style="overflow:hidden;position:relative;padding-bottom:62.1875%;padding-bottom:calc(56.25% + 38px)"><object data="//www.cbsnews.com/common/video/cbsnews_player.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="pType=embed&amp;si=254&amp;pid='.\htmlspecialchars($node->getAttribute('pid'),2);else$this->out.='<div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><object data="//i.i.cbsi.com/cnwk.1d/av/video/cbsnews/atlantis2/cbsnews_player_embed.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="si=254&amp;contentValue='.\htmlspecialchars($node->getAttribute('id'),2);$this->out.='"></object></div>';$this->out.='</div>';}else$this->out.='<div data-s9e-mediaembed="cnbc" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:95%"><object data="//plus.cnbc.com/rssvideosearch/action/player/id/'.\htmlspecialchars($node->getAttribute('id'),2).'/code/cnbcplayershare" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>';elseif($tb===12)$this->out.='<div data-s9e-mediaembed="cnn" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//edition.cnn.com/video/api/embed.html#/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===13)$this->out.='<div data-s9e-mediaembed="cnnmoney" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:64.285714%"><iframe allowfullscreen="" scrolling="no" src="//money.cnn.com/.element/ssi/video/7.0/players/embed.player.html?videoid=video/'.\htmlspecialchars($node->getAttribute('id'),2).'&amp;width=560&amp;height=360" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===14)$this->out.='<div data-s9e-mediaembed="collegehumor" style="display:inline-block;width:100%;max-width:600px"><div style="overflow:hidden;position:relative;padding-bottom:61.5%"><iframe allowfullscreen="" scrolling="no" src="//www.collegehumor.com/e/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="comedycentral" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//media.mtvnservices.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<24)if($tb<20)if($tb===16)$this->out.='<div data-s9e-mediaembed="coub" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//coub.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===17)$this->out.='<div data-s9e-mediaembed="dailymotion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dailymotion.com/embed/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===18){$this->out.='<div data-s9e-mediaembed="democracynow" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//www.democracynow.org/embed/';if((\strpos($node->getAttribute('id'),'/headlines')!==\false))$this->out.='headlines/'.\htmlspecialchars(\strstr($node->getAttribute('id'),'/headlines',\true),2);elseif((\strpos($node->getAttribute('id'),'2')===0))$this->out.='story/'.\htmlspecialchars($node->getAttribute('id'),2);elseif((\strpos($node->getAttribute('id'),'shows/')===0))$this->out.='show/'.\htmlspecialchars(\substr(\strstr($node->getAttribute('id'),'/'),1),2);else$this->out.=\htmlspecialchars($node->getAttribute('id'),2);$this->out.='"></iframe></div></div>';}else$this->out.='<div data-s9e-mediaembed="dumpert" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dumpert.nl/embed/'.\htmlspecialchars(\strtr($node->getAttribute('id'),'_','/'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===20)$this->out.='<div data-s9e-mediaembed="eighttracks" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="//8tracks.com/mixes/'.\htmlspecialchars($node->getAttribute('id'),2).'/player_v3_universal" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===21)$this->out.='<div data-s9e-mediaembed="espn" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.espn.com/core/video/iframe?id='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===22)$this->out.='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars($node->getAttribute('type').$node->getAttribute('id'),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';else$this->out.='<div data-s9e-mediaembed="flickr" style="display:inline-block;width:100%;max-width:500px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://www.flickr.com/photos/_/'.\htmlspecialchars($node->getAttribute('id'),2).'/player/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<28)if($tb===24)$this->out.='<div data-s9e-mediaembed="foratv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//library.fora.tv/embed?id='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;type=c" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===25)$this->out.='<div data-s9e-mediaembed="foxnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video.foxnews.com/v/video-embed.html?video_id='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===26)$this->out.='<div data-s9e-mediaembed="funnyordie" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.funnyordie.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="gamespot" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%"><iframe allowfullscreen="" scrolling="no" src="//www.gamespot.com/videos/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===28){$this->out.='<div data-s9e-mediaembed="gametrailers" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if((\strpos($node->getAttribute('id'),'mgid:')===0))$this->out.='//media.mtvnservices.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2);else$this->out.='//embed.gametrailers.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'?embed=1&amp;suppressBumper=1';$this->out.='"></iframe></div></div>';}elseif($tb===29){$this->out.='<div data-s9e-mediaembed="getty" style="display:inline-block;width:100%;max-width:'.\htmlspecialchars($node->getAttribute('width'),2).'px"><div style="overflow:hidden;position:relative;';if($node->getAttribute('width')>0)$this->out.='padding-bottom:'.\htmlspecialchars(100*($node->getAttribute('height')+49)/$node->getAttribute('width'),2).'%;padding-bottom:calc('.\htmlspecialchars(100*$node->getAttribute('height')/$node->getAttribute('width'),2).'% + 49px)';$this->out.='"><iframe allowfullscreen="" scrolling="no" src="//embed.gettyimages.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'?et='.\htmlspecialchars($node->getAttribute('et'),2).'&amp;sig='.\htmlspecialchars($node->getAttribute('sig'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}else{$this->out.='<div data-s9e-mediaembed="gfycat" style="display:inline-block;width:100%;max-width:'.\htmlspecialchars($node->getAttribute('width'),2).'px"><div style="overflow:hidden;position:relative;';if($node->getAttribute('width')>0)$this->out.='padding-bottom:'.\htmlspecialchars(100*$node->getAttribute('height')/$node->getAttribute('width'),2).'%';$this->out.='"><iframe allowfullscreen="" scrolling="no" src="//gfycat.com/iframe/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}}elseif($tb<47)if($tb<39)if($tb<35)if($tb===31){$this->out.='<div data-s9e-mediaembed="gifs" style="display:inline-block;width:100%;max-width:'.\htmlspecialchars($node->getAttribute('width'),2).'px"><div style="overflow:hidden;position:relative;';if($node->getAttribute('width')>0)$this->out.='padding-bottom:'.\htmlspecialchars(100*$node->getAttribute('height')/$node->getAttribute('width'),2).'%';$this->out.='"><iframe allowfullscreen="" scrolling="no" src="//gifs.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($tb===32)$this->out.='<iframe data-s9e-mediaembed="gist" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="" src="https://s9e.github.io/iframe/gist.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:180px;width:100%"></iframe>';elseif($tb===33)$this->out.='<div data-s9e-mediaembed="globalnews" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:67.321429%"><iframe allowfullscreen="" scrolling="no" src="//globalnews.ca/video/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="gofundme" style="display:inline-block;width:100%;max-width:258px"><div style="overflow:hidden;position:relative;padding-bottom:131.007752%"><object data="//funds.gofundme.com/Widgetflex.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="page='.\htmlspecialchars($node->getAttribute('id'),2).'"></object></div></div>';elseif($tb===35)$this->out.='<div data-s9e-mediaembed="googledrive" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//drive.google.com/file/d/'.\htmlspecialchars($node->getAttribute('id'),2).'/preview" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===36){$this->out.='<iframe data-s9e-mediaembed="googleplus" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" style="border:0;height:240px;max-width:450px;width:100%" src="https://s9e.github.io/iframe/googleplus.min.html#';if($node->hasAttribute('oid'))$this->out.=\htmlspecialchars($node->getAttribute('oid'),2);else$this->out.='+'.\htmlspecialchars($node->getAttribute('name'),2);$this->out.='/posts/'.\htmlspecialchars($node->getAttribute('pid'),2).'"></iframe>';}elseif($tb===37)$this->out.='<iframe data-s9e-mediaembed="googlesheets" allowfullscreen="" scrolling="no" src="https://docs.google.com/spreadsheets/d/'.\htmlspecialchars($node->getAttribute('id'),2).'/pubhtml?widget=true&amp;headers=false#gid='.\htmlspecialchars($node->getAttribute('gid'),2).'" style="border:0;height:500px;resize:vertical;width:100%"></iframe>';else$this->out.='<div data-s9e-mediaembed="healthguru" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.healthguru.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<43)if($tb===39)$this->out.='<div data-s9e-mediaembed="hudl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.hudl.com/embed/athlete/'.\htmlspecialchars($node->getAttribute('athlete'),2).'/highlights/'.\htmlspecialchars($node->getAttribute('highlight'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===40)$this->out.='<div data-s9e-mediaembed="hulu" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://secure.hulu.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===41)$this->out.='<div data-s9e-mediaembed="humortvnl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//humortv.vara.nl/embed.'.\htmlspecialchars($node->getAttribute('id'),2).'.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="ign" style="display:inline-block;width:100%;max-width:468px"><div style="overflow:hidden;position:relative;padding-bottom:56.196581%"><iframe allowfullscreen="" scrolling="no" src="//widgets.ign.com/video/embed/content.html?url='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===43)$this->out.='<div data-s9e-mediaembed="imdb" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.imdb.com/video/imdb/vi'.\htmlspecialchars($node->getAttribute('id'),2).'/imdb/embed?autoplay=false&amp;width=640" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===44){$this->out.='<iframe data-s9e-mediaembed="imgur" allowfullscreen="" onload="var b=Math.random();window.addEventListener(\'message\',function(a){a.data.id==b&amp;&amp;(style.height=a.data.height+\'px\',style.width=a.data.width+\'px\')});contentWindow.postMessage(\'s9e:\'+b,\'https://s9e.github.io\')" scrolling="no" style="border:0;height:450px;width:568px" src="https://s9e.github.io/iframe/imgur.min.html#';if($node->getAttribute('type')==='album'&&!((\strpos($node->getAttribute('id'),'a/')===0)))$this->out.='a/';$this->out.=\htmlspecialchars($node->getAttribute('id'),2).'"></iframe>';}elseif($tb===45)$this->out.='<div data-s9e-mediaembed="indiegogo" style="display:inline-block;width:100%;max-width:222px"><div style="overflow:hidden;position:relative;padding-bottom:200.45045%"><iframe allowfullscreen="" scrolling="no" src="//www.indiegogo.com/project/'.\htmlspecialchars($node->getAttribute('id'),2).'/embedded" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<iframe data-s9e-mediaembed="instagram" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/instagram.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:640px;max-width:640px;width:100%"></iframe>';elseif($tb<55)if($tb<51)if($tb===47){$this->out.='<div data-s9e-mediaembed="internetarchive" style="display:inline-block;width:100%;max-width:'.\htmlspecialchars($node->getAttribute('width'),2).'px"><div style="overflow:hidden;position:relative;';if($node->getAttribute('width')>0)$this->out.='padding-bottom:'.\htmlspecialchars(100*$node->getAttribute('height')/$node->getAttribute('width'),2).'%';$this->out.='"><iframe allowfullscreen="" scrolling="no" src="https://archive.org/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($tb===48)$this->out.='<div data-s9e-mediaembed="izlesene" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.izlesene.com/embedplayer/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===49)$this->out.='<div data-s9e-mediaembed="jwplatform" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//content.jwplatform.com/players/'.\htmlspecialchars($node->getAttribute('id'),2).'.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="khl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video.khl.ru/iframe/feed/start/'.\htmlspecialchars($node->getAttribute('id'),2).'?type_id=18&amp;width=560&amp;height=315" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===51)if($node->hasAttribute('video'))$this->out.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.\htmlspecialchars($node->getAttribute('id'),2).'/widget/video.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:220px"><div style="overflow:hidden;position:relative;padding-bottom:190.909091%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.\htmlspecialchars($node->getAttribute('id'),2).'/widget/card.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===52)$this->out.='<div data-s9e-mediaembed="kissvideo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.kissvideo.click/embed.php?vid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===53)$this->out.='<iframe data-s9e-mediaembed="libsyn" allowfullscreen="" scrolling="no" src="//html5-player.libsyn.com/embed/episode/id/'.\htmlspecialchars($node->getAttribute('id'),2).'/height/45/width/900/theme/standard/direction/no/autoplay/no/autonext/no/thumbnail/no/preload/no/no_addthis/no/" style="border:0;height:45px;max-width:900px;width:100%"></iframe>';else$this->out.='<div data-s9e-mediaembed="livecap" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://www.livecap.tv/s/embed/'.\htmlspecialchars($node->getAttribute('channel'),2).'/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<59)if($tb===55)$this->out.='<div data-s9e-mediaembed="liveleak" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.liveleak.com/ll_embed?i='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===56){$this->out.='<div data-s9e-mediaembed="livestream" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if($node->hasAttribute('clip_id'))$this->out.='//cdn.livestream.com/embed/'.\htmlspecialchars($node->getAttribute('channel'),2).'?layout=4&amp;autoplay=false&amp;clip='.\htmlspecialchars($node->getAttribute('clip_id'),2);else{$this->out.='//livestream.com/accounts/'.\htmlspecialchars($node->getAttribute('account_id'),2).'/events/'.\htmlspecialchars($node->getAttribute('event_id'),2);if($node->hasAttribute('video_id'))$this->out.='/videos/'.\htmlspecialchars($node->getAttribute('video_id'),2);$this->out.='/player?autoPlay=false';}$this->out.='"></iframe></div></div>';}elseif($tb===57)$this->out.='<div data-s9e-mediaembed="mailru" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:61.071429%"><iframe allowfullscreen="" scrolling="no" src="//videoapi.my.mail.ru/videos/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<iframe data-s9e-mediaembed="medium" allowfullscreen="" onload="window.addEventListener(\'message\',function(a){a=a.data.split(\'::\');\'m\'===a[0]&amp;&amp;0&lt;src.indexOf(a[1])&amp;&amp;a[2]&amp;&amp;(style.height=a[2]+\'px\')})" scrolling="no" src="https://api.medium.com/embed?type=story&amp;path=%2F%2F'.\htmlspecialchars($node->getAttribute('id'),2).'&amp;id='.\htmlspecialchars(\strtr($node->getAttribute('id'),'abcdef','111111'),2).'" style="border:1px solid;border-color:#eee #ddd #bbb;border-radius:5px;box-shadow:rgba(0,0,0,.15) 0 1px 3px;height:400px;max-width:400px;width:100%"></iframe>';elseif($tb===59)$this->out.='<div data-s9e-mediaembed="metacafe" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.metacafe.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===60)$this->out.='<div data-s9e-mediaembed="mixcloud" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="//www.mixcloud.com/widget/iframe/?feed=http%3A%2F%2Fwww.mixcloud.com%2F'.\htmlspecialchars($node->getAttribute('id'),2).'%2F&amp;embed_type=widget_standard" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="mlb" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//m.mlb.com/shared/video/embed/embed.html?content_id='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;width=640&amp;height=360" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<93)if($tb<78)if($tb<70)if($tb<66)if($tb===62)$this->out.='<div data-s9e-mediaembed="mrctv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://www.mrctv.org/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===63)$this->out.='<div data-s9e-mediaembed="msnbc" style="display:inline-block;width:100%;max-width:635px"><div style="overflow:hidden;position:relative;padding-bottom:69.291339%"><iframe allowfullscreen="" scrolling="no" src="//player.theplatform.com/p/2E2eJC/EmbeddedOffSite?guid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===64)$this->out.='<div data-s9e-mediaembed="natgeochannel" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//channel.nationalgeographic.com/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="natgeovideo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.d.nationalgeographic.com/players/ngsvideo/share/?guid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===66)$this->out.='<div data-s9e-mediaembed="nbcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.nbcnews.com/widget/video-embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===67)$this->out.='<div data-s9e-mediaembed="nbcsports" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//vplayer.nbcsports.com/p/BxmELC/nbcsports_embed/select/media/'.\htmlspecialchars($node->getAttribute('id'),2).'?parentUrl=" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===68){$this->out.='<div data-s9e-mediaembed="nhl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if($node->hasAttribute('c')||$node->hasAttribute('t')){$this->out.='//www.nhl.com/video/embed';if($node->hasAttribute('t'))$this->out.='/t-'.\htmlspecialchars($node->getAttribute('t'),2);if($node->hasAttribute('c'))$this->out.='/c-'.\htmlspecialchars($node->getAttribute('c'),2);$this->out.='?autostart=false';}else$this->out.='//video.nhl.com/videocenter/embed?playlist='.\htmlspecialchars($node->getAttribute('id'),2);$this->out.='"></iframe></div></div>';}else$this->out.='<iframe data-s9e-mediaembed="npr" allowfullscreen="" scrolling="no" src="//www.npr.org/player/embed/'.\htmlspecialchars($node->getAttribute('i'),2).'/'.\htmlspecialchars($node->getAttribute('m'),2).'" style="border:0;height:228px;max-width:800px;width:100%"></iframe>';elseif($tb<74)if($tb===70)$this->out.='<div data-s9e-mediaembed="nytimes" style="display:inline-block;width:100%;max-width:585px"><div style="overflow:hidden;position:relative;padding-bottom:68.376068%"><iframe allowfullscreen="" scrolling="no" src="//graphics8.nytimes.com/video/players/offsite/index.html?videoId='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===71)$this->out.='<div data-s9e-mediaembed="oddshot" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://oddshot.tv/s/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===72)$this->out.='<iframe data-s9e-mediaembed="pastebin" allowfullscreen="" scrolling="" src="//pastebin.com/embed_iframe.php?i='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:300px;resize:vertical;width:100%"></iframe>';else{$this->out.='<iframe data-s9e-mediaembed="pinterest" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/pinterest.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:360px;max-width:';if((\strpos($node->getAttribute('id'),'/')!==\false))$this->out.='730';else$this->out.='345';$this->out.='px;width:100%"></iframe>';}elseif($tb===74)$this->out.='<div data-s9e-mediaembed="playstv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//plays.tv/embeds/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===75)$this->out.='<iframe data-s9e-mediaembed="podbean" allowfullscreen="" scrolling="no" src="//www.podbean.com/media/player/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100px;max-width:900px;width:100%"></iframe>';elseif($tb===76)$this->out.='<div data-s9e-mediaembed="prezi" style="display:inline-block;width:100%;max-width:550px"><div style="overflow:hidden;position:relative;padding-bottom:72.727273%"><iframe allowfullscreen="" scrolling="no" src="//prezi.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<iframe data-s9e-mediaembed="reddit" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/reddit.min.html#'.\htmlspecialchars($node->getAttribute('path'),2).'" style="border:0;height:165px;max-width:800px;width:100%"></iframe>';elseif($tb<86)if($tb<82)if($tb===78)$this->out.='<div data-s9e-mediaembed="rutube" style="display:inline-block;width:100%;max-width:720px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//rutube.ru/play/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===79)$this->out.='<iframe data-s9e-mediaembed="scribd" allowfullscreen="" scrolling="no" src="https://www.scribd.com/embeds/'.\htmlspecialchars($node->getAttribute('id'),2).'/content?view_mode=scroll&amp;show_recommendations=false" style="border:0;height:500px;resize:vertical;width:100%"></iframe>';elseif($tb===80)$this->out.='<div data-s9e-mediaembed="slideshare" style="display:inline-block;width:100%;max-width:427px"><div style="overflow:hidden;position:relative;padding-bottom:83.372365%"><iframe allowfullscreen="" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else{$this->out.='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if($node->hasAttribute('playlist_id'))$this->out.='https%3A//api.soundcloud.com/playlists/'.\htmlspecialchars($node->getAttribute('playlist_id'),2);elseif($node->hasAttribute('track_id'))$this->out.='https%3A//api.soundcloud.com/tracks/'.\htmlspecialchars($node->getAttribute('track_id'),2).'&amp;secret_token='.\htmlspecialchars($node->getAttribute('secret_token'),2);else{if((\strpos($node->getAttribute('id'),'://')===\false))$this->out.='https%3A//soundcloud.com/';$this->out.=\htmlspecialchars($node->getAttribute('id'),2);}$this->out.='" style="border:0;height:';if($node->hasAttribute('playlist_id')||(\strpos($node->getAttribute('id'),'/sets/')!==\false))$this->out.='450';else$this->out.='166';$this->out.='px;max-width:900px;width:100%"></iframe>';}elseif($tb===82)$this->out.='<div data-s9e-mediaembed="sportsnet" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://images.rogersdigitalmedia.com/video_service.php?videoId='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;playerKey=AQ~~,AAAAAGWRwLc~,cRCmKE8Utf7OFWP38XQcokFZ80fR-u_y&amp;autoStart=false&amp;width=100%25&amp;height=100%25" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===83){$this->out.='<div data-s9e-mediaembed="spotify" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:120%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="https://embed.spotify.com/?view=coverart&amp;uri=';if($node->hasAttribute('uri'))$this->out.=\htmlspecialchars($node->getAttribute('uri'),2);else$this->out.='spotify:'.\htmlspecialchars(\strtr($node->getAttribute('path'),'/',':'),2);$this->out.='"></iframe></div></div>';}elseif($tb===84)$this->out.='<iframe data-s9e-mediaembed="steamstore" allowfullscreen="" scrolling="no" src="//store.steampowered.com/widget/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:190px;max-width:900px;width:100%"></iframe>';else$this->out.='<iframe data-s9e-mediaembed="stitcher" allowfullscreen="" scrolling="no" src="//app.stitcher.com/splayer/f/'.\htmlspecialchars($node->getAttribute('fid'),2).'/'.\htmlspecialchars($node->getAttribute('eid'),2).'" style="border:0;height:150px;max-width:900px;width:100%"></iframe>';elseif($tb<90){if($tb===86)$this->out.='<div data-s9e-mediaembed="strawpoll" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="" src="//www.strawpoll.me/embed_1/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===87)$this->out.='<div data-s9e-mediaembed="streamable" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//streamable.com/e/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===88)$this->out.='<div data-s9e-mediaembed="teamcoco" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:64.84375%"><iframe allowfullscreen="" scrolling="no" src="//teamcoco.com/embed/v/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else{$this->out.='<div data-s9e-mediaembed="ted" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//embed.ted.com/'.\htmlspecialchars($node->getAttribute('id'),2);if((\strpos($node->getAttribute('id'),'.html')===\false))$this->out.='.html';$this->out.='"></iframe></div></div>';}}elseif($tb===90)$this->out.='<div data-s9e-mediaembed="theatlantic" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.theatlantic.com/video/iframe/'.\htmlspecialchars($node->getAttribute('id'),2).'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===91)$this->out.='<div data-s9e-mediaembed="theguardian" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//embed.theguardian.com/embed/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="theonion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.theonion.com/video_embed/?id='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<109)if($tb<101)if($tb<97)if($tb===93)$this->out.='<div data-s9e-mediaembed="tinypic" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:60.9375%;padding-bottom:calc(56.25% + 30px)"><object data="//tinypic.com/player.swf?file='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;s='.\htmlspecialchars($node->getAttribute('s'),2).'" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>';elseif($tb===94)$this->out.='<div data-s9e-mediaembed="tmz" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.kaltura.com/index.php/kwidget/cache_st/133592691/wid/_591531/partner_id/591531/uiconf_id/9071262/entry_id/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===95)$this->out.='<div data-s9e-mediaembed="traileraddict" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//v.traileraddict.com/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<iframe data-s9e-mediaembed="tumblr" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/tumblr.min.html#'.\htmlspecialchars($node->getAttribute('key'),2).'/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:180px;max-width:520px;width:100%"></iframe>';elseif($tb===97){$this->out.='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if($node->hasAttribute('clip_id')){$this->out.='//clips.twitch.tv/embed?autoplay=false&amp;clip=';if($node->hasAttribute('channel'))$this->out.=\htmlspecialchars($node->getAttribute('channel'),2).'/';$this->out.=\htmlspecialchars($node->getAttribute('clip_id'),2);}else{$this->out.='//player.twitch.tv/?autoplay=false&amp;';if($node->hasAttribute('video_id'))$this->out.='video=v'.\htmlspecialchars($node->getAttribute('video_id'),2);else$this->out.='channel='.\htmlspecialchars($node->getAttribute('channel'),2);if($node->hasAttribute('t'))$this->out.='&amp;time='.\htmlspecialchars($node->getAttribute('t'),2);}$this->out.='"></iframe></div></div>';}elseif($tb===98)$this->out.='<iframe data-s9e-mediaembed="twitter" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/twitter.min.html#'.\htmlspecialchars($node->getAttribute('id'),2).'" style="background:url(https://abs.twimg.com/favicons/favicon.ico) no-repeat 50% 50%;border:0;height:186px;max-width:500px;width:100%"></iframe>';elseif($tb===99){$this->out.='<div data-s9e-mediaembed="ustream" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%">';if($node->hasAttribute('vid'))$this->out.='<iframe allowfullscreen="" scrolling="no" src="//www.ustream.tv/embed/recorded/'.\htmlspecialchars($node->getAttribute('vid'),2);else$this->out.='<iframe allowfullscreen="" scrolling="no" src="//www.ustream.tv/embed/'.\htmlspecialchars($node->getAttribute('cid'),2);$this->out.='?html5ui" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe>';$this->out.='</div></div>';}else$this->out.='<div data-s9e-mediaembed="vbox7" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//vbox7.com/emb/external.php?vid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<105)if($tb===101)$this->out.='<div data-s9e-mediaembed="veoh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><object data="//www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1509&amp;permalinkId=v'.\htmlspecialchars($node->getAttribute('id'),2).'&amp;player=videodetailsembedded&amp;videoAutoPlay=0&amp;id=anonymous" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>';elseif($tb===102)$this->out.='<div data-s9e-mediaembed="vevo" style="display:inline-block;width:100%;max-width:575px"><div style="overflow:hidden;position:relative;padding-bottom:56.347826%"><iframe allowfullscreen="" scrolling="no" src="//cache.vevo.com/m/html/embed.html?video='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===103)$this->out.='<div data-s9e-mediaembed="viagame" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:61.25%"><iframe allowfullscreen="" scrolling="no" src="//www.viagame.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="videodetective" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.videodetective.com/embed/video/?options=false&amp;autostart=false&amp;playlist=none&amp;publishedid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===105)$this->out.='<div data-s9e-mediaembed="videomega" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//videomega.tv/iframe.php?ref='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===106){$this->out.='<div data-s9e-mediaembed="vidme" style="display:inline-block;width:100%;max-width:'.\htmlspecialchars($node->getAttribute('width'),2).'px"><div style="overflow:hidden;position:relative;';if($node->getAttribute('width')>0)$this->out.='padding-bottom:'.\htmlspecialchars(100*$node->getAttribute('height')/$node->getAttribute('width'),2).'%';$this->out.='"><iframe allowfullscreen="" scrolling="no" src="https://vid.me/e/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($tb===107)$this->out.='<div data-s9e-mediaembed="vimeo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.vimeo.com/video/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="vine" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://vine.co/v/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed/simple?audio=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<117)if($tb<113)if($tb===109)$this->out.='<div data-s9e-mediaembed="vk" style="display:inline-block;width:100%;max-width:607px"><div style="overflow:hidden;position:relative;padding-bottom:59.308072%"><iframe allowfullscreen="" scrolling="no" src="//vk.com/video_ext.php?oid='.\htmlspecialchars($node->getAttribute('oid'),2).'&amp;id='.\htmlspecialchars($node->getAttribute('vid'),2).'&amp;hash='.\htmlspecialchars($node->getAttribute('hash'),2).'&amp;hd=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===110)$this->out.='<div data-s9e-mediaembed="vocaroo" style="display:inline-block;width:100%;max-width:148px"><div style="overflow:hidden;position:relative;padding-bottom:29.72973%"><object data="//vocaroo.com/player.swf?playMediaID='.\htmlspecialchars($node->getAttribute('id'),2).'&amp;autoplay=0" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>';elseif($tb===111)$this->out.='<div data-s9e-mediaembed="vox" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.ooyala.com/iframe.html#pbid=a637d53c5c0a43c7bf4e342886b9d8b0&amp;ec='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="washingtonpost" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.washingtonpost.com/video/c/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===113)$this->out.='<div data-s9e-mediaembed="wshh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.worldstarhiphop.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===114)$this->out.='<div data-s9e-mediaembed="wsj" style="display:inline-block;width:100%;max-width:512px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video-api.wsj.com/api-video/player/iframe.html?guid='.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===115)$this->out.='<div data-s9e-mediaembed="xboxclips" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//xboxclips.com/'.\htmlspecialchars($node->getAttribute('user'),2).'/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$this->out.='<div data-s9e-mediaembed="xboxdvr" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//xboxdvr.com/gamer/'.\htmlspecialchars($node->getAttribute('user'),2).'/video/'.\htmlspecialchars($node->getAttribute('id'),2).'/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb<121)if($tb===117)$this->out.='<div data-s9e-mediaembed="yahooscreen" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://screen.yahoo.com/'.\htmlspecialchars($node->getAttribute('id'),2).'.html?format=embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===118)$this->out.='<div data-s9e-mediaembed="youku" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><iframe allowfullscreen="" scrolling="no" src="https://players.youku.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2).'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';elseif($tb===119){$this->out.='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.\htmlspecialchars($node->getAttribute('id'),2).'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.\htmlspecialchars($node->getAttribute('id'),2);if($node->hasAttribute('list'))$this->out.='?list='.\htmlspecialchars($node->getAttribute('list'),2);if($node->hasAttribute('t')||$node->hasAttribute('m')){if($node->hasAttribute('list'))$this->out.='&amp;';else$this->out.='?';$this->out.='start=';if($node->hasAttribute('t'))$this->out.=\htmlspecialchars($node->getAttribute('t'),2);elseif($node->hasAttribute('h'))$this->out.=\htmlspecialchars($node->getAttribute('h')*3600+$node->getAttribute('m')*60+$node->getAttribute('s'),2);else$this->out.=\htmlspecialchars($node->getAttribute('m')*60+$node->getAttribute('s'),2);}$this->out.='"></iframe></div></div>';}else$this->out.='<object data-s9e-mediaembed="zippyshare" data="//api.zippyshare.com/api/player.swf" style="height:80px;max-width:900px;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="file='.\htmlspecialchars($node->getAttribute('file'),2).'&amp;server='.\htmlspecialchars($node->getAttribute('server'),2).'&amp;autostart=false"></object>';elseif($tb===121)$this->out.='<br>';elseif($tb===122);else{$this->out.='<p>';$this->at($node);$this->out.='</p>';}
 				}
 	}
-	private static $dynamic=array('ABCNEWS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="abcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//abcnews.go.com/video/embed?id=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'AUDIOBOOM'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="audioboom" allowfullscreen="" scrolling="no" src="//audioboom.com/boos/$1/embed/v3" style="border:0;height:150px;max-width:700px;width:100%"></iframe>'),'BLAB'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="blab" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://blab.im/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'BLEACHERREPORT'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="bleacherreport" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//bleacherreport.com/video_embed?id=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'BREAK'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="break" style="display:inline-block;width:100%;max-width:464px"><div style="overflow:hidden;position:relative;padding-bottom:60.344827586207%"><iframe allowfullscreen="" scrolling="no" src="//break.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'BRIGHTCOVE'=>array('(^[^ ]+(?> (?!bc(?>key|pid|tid)=)[^=]+="[^"]*")*(?> bckey="([^"]*)")?(?> (?!bc[pt]id=)[^=]+="[^"]*")*(?> bcpid="([^"]*)")?(?> (?!bctid=)[^=]+="[^"]*")*(?> bctid="([^"]*)")?.*)s','<div data-s9e-mediaembed="brightcove" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://link.brightcove.com/services/player/bcpid$2?bckey=$1&amp;bctid=$3&amp;secureConnections=true&amp;secureHTMLConnections=true&amp;autoStart=false&amp;height=100%25&amp;width=100%25" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'CNBC'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="cnbc" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:95%"><object data="//plus.cnbc.com/rssvideosearch/action/player/id/$1/code/cnbcplayershare" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>'),'CNN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="cnn" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//edition.cnn.com/video/api/embed.html#/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'CNNMONEY'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="cnnmoney" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:64.285714285714%"><iframe allowfullscreen="" scrolling="no" src="//money.cnn.com/.element/ssi/video/7.0/players/embed.player.html?videoid=video/$1&amp;width=560&amp;height=360" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'COLLEGEHUMOR'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="collegehumor" style="display:inline-block;width:100%;max-width:600px"><div style="overflow:hidden;position:relative;padding-bottom:61.5%"><iframe allowfullscreen="" scrolling="no" src="//www.collegehumor.com/e/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'COMEDYCENTRAL'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="comedycentral" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//media.mtvnservices.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'COUB'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="coub" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//coub.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'DAILYMOTION'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="dailymotion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dailymotion.com/embed/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'EIGHTTRACKS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="eighttracks" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="//8tracks.com/mixes/$1/player_v3_universal" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'ESPN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="espn" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.espn.com/core/video/iframe?id=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'FLICKR'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="flickr" style="display:inline-block;width:100%;max-width:500px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://www.flickr.com/photos/_/$1/player/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'FORATV'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="foratv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//library.fora.tv/embed?id=$1&amp;type=c" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'FOXNEWS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="foxnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video.foxnews.com/v/video-embed.html?video_id=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'FUNNYORDIE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="funnyordie" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.funnyordie.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'GAMESPOT'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="gamespot" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%"><iframe allowfullscreen="" scrolling="no" src="//www.gamespot.com/videos/embed/$1/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'GIST'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="gist" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="" src="https://s9e.github.io/iframe/gist.min.html#$1" style="border:0;height:180px;width:100%"></iframe>'),'GLOBALNEWS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="globalnews" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:67.321428571429%"><iframe allowfullscreen="" scrolling="no" src="//globalnews.ca/video/embed/$1/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'GOFUNDME'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="gofundme" style="display:inline-block;width:100%;max-width:258px"><div style="overflow:hidden;position:relative;padding-bottom:131.00775193798%"><object data="//funds.gofundme.com/Widgetflex.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="page=$1"></object></div></div>'),'GOOGLEDRIVE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="googledrive" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//drive.google.com/file/d/$1/preview" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'GOOGLESHEETS'=>array('(^[^ ]+(?> (?!g?id=)[^=]+="[^"]*")*(?> gid="([^"]*)")?(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="googlesheets" allowfullscreen="" scrolling="no" src="https://docs.google.com/spreadsheet/ccc?key=$2&amp;widget=true&amp;headers=false&amp;rm=minimal#gid=$1" style="border:0;height:500px;resize:vertical;width:100%"></iframe>'),'HEALTHGURU'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="healthguru" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.healthguru.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'HUDL'=>array('(^[^ ]+(?> (?!(?>athlete|highlight)=)[^=]+="[^"]*")*(?> athlete="([^"]*)")?(?> (?!highlight=)[^=]+="[^"]*")*(?> highlight="([^"]*)")?.*)s','<div data-s9e-mediaembed="hudl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.hudl.com/embed/athlete/$1/highlights/$2" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'HULU'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="hulu" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://secure.hulu.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'HUMORTVNL'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="humortvnl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//humortv.vara.nl/embed.$1.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'IGN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="ign" style="display:inline-block;width:100%;max-width:468px"><div style="overflow:hidden;position:relative;padding-bottom:56.196581196581%"><iframe allowfullscreen="" scrolling="no" src="//widgets.ign.com/video/embed/content.html?url=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'IMDB'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="imdb" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.imdb.com/videoembed/vi$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'INDIEGOGO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="indiegogo" style="display:inline-block;width:100%;max-width:222px"><div style="overflow:hidden;position:relative;padding-bottom:200.45045045045%"><iframe allowfullscreen="" scrolling="no" src="//www.indiegogo.com/project/$1/embedded" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'INSTAGRAM'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="instagram" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/instagram.min.html#$1" style="border:0;height:640px;max-width:640px;width:100%"></iframe>'),'IZLESENE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="izlesene" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.izlesene.com/embedplayer/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'JWPLATFORM'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="jwplatform" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//content.jwplatform.com/players/$1.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'KHL'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="khl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video.khl.ru/iframe/feed/start/$1?type_id=18&amp;width=560&amp;height=315" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'KISSVIDEO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="kissvideo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.kissvideo.click/embed.php?vid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'LIBSYN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="libsyn" allowfullscreen="" scrolling="no" src="//html5-player.libsyn.com/embed/episode/id/$1/height/45/width/900/theme/standard/direction/no/autoplay/no/autonext/no/thumbnail/no/preload/no/no_addthis/no/" style="border:0;height:45px;max-width:900px;width:100%"></iframe>'),'LIVECAP'=>array('(^[^ ]+(?> (?!(?>channel|id)=)[^=]+="[^"]*")*(?> channel="([^"]*)")?(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="livecap" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://www.livecap.tv/s/embed/$1/$2" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'LIVELEAK'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="liveleak" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.liveleak.com/ll_embed?i=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'MAILRU'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="mailru" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:61.071428571429%"><iframe allowfullscreen="" scrolling="no" src="//videoapi.my.mail.ru/videos/embed/$1.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'METACAFE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="metacafe" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.metacafe.com/embed/$1/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'MIXCLOUD'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="mixcloud" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="//www.mixcloud.com/widget/iframe/?feed=http%3A%2F%2Fwww.mixcloud.com%2F$1%2F&amp;embed_type=widget_standard" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'MLB'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="mlb" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//m.mlb.com/shared/video/embed/embed.html?content_id=$1&amp;width=640&amp;height=360" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'MRCTV'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="mrctv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://www.mrctv.org/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'MSNBC'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="msnbc" style="display:inline-block;width:100%;max-width:635px"><div style="overflow:hidden;position:relative;padding-bottom:69.291338582677%"><iframe allowfullscreen="" scrolling="no" src="//player.theplatform.com/p/2E2eJC/EmbeddedOffSite?guid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'NATGEOCHANNEL'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="natgeochannel" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//channel.nationalgeographic.com/$1/embed/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'NATGEOVIDEO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="natgeovideo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.d.nationalgeographic.com/players/ngsvideo/share/?guid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'NBCNEWS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="nbcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.nbcnews.com/widget/video-embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'NBCSPORTS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="nbcsports" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//vplayer.nbcsports.com/p/BxmELC/nbcsports_embed/select/media/$1?parentUrl=" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'NPR'=>array('(^[^ ]+(?> (?![im]=)[^=]+="[^"]*")*(?> i="([^"]*)")?(?> (?!m=)[^=]+="[^"]*")*(?> m="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="npr" allowfullscreen="" scrolling="no" src="//www.npr.org/player/embed/$1/$2" style="border:0;height:228px;max-width:800px;width:100%"></iframe>'),'NYTIMES'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="nytimes" style="display:inline-block;width:100%;max-width:585px"><div style="overflow:hidden;position:relative;padding-bottom:68.376068376068%"><iframe allowfullscreen="" scrolling="no" src="//graphics8.nytimes.com/video/players/offsite/index.html?videoId=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'ODDSHOT'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="oddshot" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//oddshot.tv/shot/$1/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'PASTEBIN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="pastebin" allowfullscreen="" scrolling="" src="//pastebin.com/embed_iframe.php?i=$1" style="border:0;height:300px;resize:vertical;width:100%"></iframe>'),'PLAYSTV'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="playstv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//plays.tv/embeds/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'PODBEAN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="podbean" allowfullscreen="" scrolling="no" src="//www.podbean.com/media/player/audio/postId/$1" style="border:0;height:100px;max-width:900px;width:100%"></iframe>'),'PREZI'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="prezi" style="display:inline-block;width:100%;max-width:550px"><div style="overflow:hidden;position:relative;padding-bottom:72.727272727273%"><iframe allowfullscreen="" scrolling="no" src="//prezi.com/embed/$1/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'REDDIT'=>array('(^[^ ]+(?> (?!path=)[^=]+="[^"]*")*(?> path="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="reddit" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/reddit.min.html#$1" style="border:0;height:165px;max-width:800px;width:100%"></iframe>'),'RUTUBE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="rutube" style="display:inline-block;width:100%;max-width:720px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//rutube.ru/play/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'SCRIBD'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="scribd" allowfullscreen="" scrolling="no" src="https://www.scribd.com/embeds/$1/content?view_mode=scroll&amp;show_recommendations=false" style="border:0;height:500px;resize:vertical;width:100%"></iframe>'),'SLIDESHARE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="slideshare" style="display:inline-block;width:100%;max-width:427px"><div style="overflow:hidden;position:relative;padding-bottom:83.372365339578%"><iframe allowfullscreen="" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'SPORTSNET'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="sportsnet" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://images.rogersdigitalmedia.com/video_service.php?videoId=$1&amp;playerKey=AQ~~,AAAAAGWRwLc~,cRCmKE8Utf7OFWP38XQcokFZ80fR-u_y&amp;autoStart=false&amp;width=100%25&amp;height=100%25" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'STEAMSTORE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="steamstore" allowfullscreen="" scrolling="no" src="//store.steampowered.com/widget/$1" style="border:0;height:190px;max-width:900px;width:100%"></iframe>'),'STITCHER'=>array('(^[^ ]+(?> (?![ef]id=)[^=]+="[^"]*")*(?> eid="([^"]*)")?(?> (?!fid=)[^=]+="[^"]*")*(?> fid="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="stitcher" allowfullscreen="" scrolling="no" src="//app.stitcher.com/splayer/f/$2/$1" style="border:0;height:150px;max-width:900px;width:100%"></iframe>'),'STRAWPOLL'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="strawpoll" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="" src="//www.strawpoll.me/embed_1/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'STREAMABLE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="streamable" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//streamable.com/e/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'TEAMCOCO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="teamcoco" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:64.84375%"><iframe allowfullscreen="" scrolling="no" src="//teamcoco.com/embed/v/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'THEATLANTIC'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="theatlantic" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.theatlantic.com/video/iframe/$1/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'THEGUARDIAN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="theguardian" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//embed.theguardian.com/embed/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'THEONION'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="theonion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.theonion.com/video_embed/?id=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'TINYPIC'=>array('(^[^ ]+(?> (?!(?>s|id)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!s=)[^=]+="[^"]*")*(?> s="([^"]*)")?.*)s','<div data-s9e-mediaembed="tinypic" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:60.9375%;padding-bottom:calc(56.25% + 30px)"><object data="//tinypic.com/player.swf?file=$1&amp;s=$2" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>'),'TMZ'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="tmz" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.kaltura.com/index.php/kwidget/cache_st/133592691/wid/_591531/partner_id/591531/uiconf_id/9071262/entry_id/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'TRAILERADDICT'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="traileraddict" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//v.traileraddict.com/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'TUMBLR'=>array('(^[^ ]+(?> (?!(?>id|key)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!key=)[^=]+="[^"]*")*(?> key="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="tumblr" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/tumblr.min.html#$2/$1" style="border:0;height:180px;max-width:520px;width:100%"></iframe>'),'TWITTER'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="twitter" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/twitter.min.html#$1" style="background:url(https://abs.twimg.com/favicons/favicon.ico) no-repeat 50% 50%;border:0;height:186px;max-width:500px;width:100%"></iframe>'),'VBOX7'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vbox7" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//vbox7.com/emb/external.php?vid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VEOH'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="veoh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><object data="//www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1509&amp;permalinkId=v$1&amp;player=videodetailsembedded&amp;videoAutoPlay=0&amp;id=anonymous" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>'),'VEVO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vevo" style="display:inline-block;width:100%;max-width:575px"><div style="overflow:hidden;position:relative;padding-bottom:56.347826086957%"><iframe allowfullscreen="" scrolling="no" src="//cache.vevo.com/m/html/embed.html?video=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VIAGAME'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="viagame" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:61.25%"><iframe allowfullscreen="" scrolling="no" src="//www.viagame.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VIDEODETECTIVE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="videodetective" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.videodetective.com/embed/video/?options=false&amp;autostart=false&amp;playlist=none&amp;publishedid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VIDEOMEGA'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="videomega" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//videomega.tv/iframe.php?ref=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VIMEO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vimeo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.vimeo.com/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VINE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vine" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://vine.co/v/$1/embed/simple?audio=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VK'=>array('(^[^ ]+(?> (?!(?>hash|oid|vid)=)[^=]+="[^"]*")*(?> hash="([^"]*)")?(?> (?![ov]id=)[^=]+="[^"]*")*(?> oid="([^"]*)")?(?> (?!vid=)[^=]+="[^"]*")*(?> vid="([^"]*)")?.*)s','<div data-s9e-mediaembed="vk" style="display:inline-block;width:100%;max-width:607px"><div style="overflow:hidden;position:relative;padding-bottom:59.308072487644%"><iframe allowfullscreen="" scrolling="no" src="//vk.com/video_ext.php?oid=$2&amp;id=$3&amp;hash=$1&amp;hd=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VOCAROO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vocaroo" style="display:inline-block;width:100%;max-width:148px"><div style="overflow:hidden;position:relative;padding-bottom:29.72972972973%"><object data="//vocaroo.com/player.swf?playMediaID=$1&amp;autoplay=0" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>'),'VOX'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vox" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.ooyala.com/iframe.html#pbid=a637d53c5c0a43c7bf4e342886b9d8b0&amp;ec=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'WASHINGTONPOST'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="washingtonpost" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.washingtonpost.com/video/c/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'WSHH'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="wshh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.worldstarhiphop.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'WSJ'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="wsj" style="display:inline-block;width:100%;max-width:512px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video-api.wsj.com/api-video/player/iframe.html?guid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'XBOXCLIPS'=>array('(^[^ ]+(?> (?!(?>id|user)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!user=)[^=]+="[^"]*")*(?> user="([^"]*)")?.*)s','<div data-s9e-mediaembed="xboxclips" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//xboxclips.com/$2/$1/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'XBOXDVR'=>array('(^[^ ]+(?> (?!(?>id|user)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!user=)[^=]+="[^"]*")*(?> user="([^"]*)")?.*)s','<div data-s9e-mediaembed="xboxdvr" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//xboxdvr.com/gamer/$2/video/$1/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'YAHOOSCREEN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="yahooscreen" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://screen.yahoo.com/$1.html?format=embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'YOUKU'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="youku" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><object data="https://players.youku.com/player.php/sid/$1/v.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>'),'ZIPPYSHARE'=>array('(^[^ ]+(?> (?!(?>file|server)=)[^=]+="[^"]*")*(?> file="([^"]*)")?(?> (?!server=)[^=]+="[^"]*")*(?> server="([^"]*)")?.*)s','<object data-s9e-mediaembed="zippyshare" data="//api.zippyshare.com/api/player.swf" style="height:80px;max-width:900px;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="file=$1&amp;server=$2&amp;autostart=false"></object>'));
+	private static $dynamic=array('ABCNEWS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="abcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//abcnews.go.com/video/embed?id=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'AUDIOBOOM'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="audioboom" allowfullscreen="" scrolling="no" src="//audioboom.com/posts/$1/embed/v3" style="border:0;height:150px;max-width:700px;width:100%"></iframe>'),'BLAB'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="blab" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://blab.im/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'BLEACHERREPORT'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="bleacherreport" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//bleacherreport.com/video_embed?id=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'BREAK'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="break" style="display:inline-block;width:100%;max-width:464px"><div style="overflow:hidden;position:relative;padding-bottom:60.344828%"><iframe allowfullscreen="" scrolling="no" src="//break.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'BRIGHTCOVE'=>array('(^[^ ]+(?> (?!bc(?>key|pid|tid)=)[^=]+="[^"]*")*(?> bckey="([^"]*)")?(?> (?!bc[pt]id=)[^=]+="[^"]*")*(?> bcpid="([^"]*)")?(?> (?!bctid=)[^=]+="[^"]*")*(?> bctid="([^"]*)")?.*)s','<div data-s9e-mediaembed="brightcove" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://link.brightcove.com/services/player/bcpid$2?bckey=$1&amp;bctid=$3&amp;secureConnections=true&amp;secureHTMLConnections=true&amp;autoStart=false&amp;height=100%25&amp;width=100%25" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'CNBC'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="cnbc" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:95%"><object data="//plus.cnbc.com/rssvideosearch/action/player/id/$1/code/cnbcplayershare" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>'),'CNN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="cnn" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//edition.cnn.com/video/api/embed.html#/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'CNNMONEY'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="cnnmoney" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:64.285714%"><iframe allowfullscreen="" scrolling="no" src="//money.cnn.com/.element/ssi/video/7.0/players/embed.player.html?videoid=video/$1&amp;width=560&amp;height=360" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'COLLEGEHUMOR'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="collegehumor" style="display:inline-block;width:100%;max-width:600px"><div style="overflow:hidden;position:relative;padding-bottom:61.5%"><iframe allowfullscreen="" scrolling="no" src="//www.collegehumor.com/e/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'COMEDYCENTRAL'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="comedycentral" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//media.mtvnservices.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'COUB'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="coub" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//coub.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'DAILYMOTION'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="dailymotion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dailymotion.com/embed/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'EIGHTTRACKS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="eighttracks" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="//8tracks.com/mixes/$1/player_v3_universal" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'ESPN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="espn" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.espn.com/core/video/iframe?id=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'FLICKR'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="flickr" style="display:inline-block;width:100%;max-width:500px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://www.flickr.com/photos/_/$1/player/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'FORATV'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="foratv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//library.fora.tv/embed?id=$1&amp;type=c" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'FOXNEWS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="foxnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video.foxnews.com/v/video-embed.html?video_id=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'FUNNYORDIE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="funnyordie" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.funnyordie.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'GAMESPOT'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="gamespot" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%"><iframe allowfullscreen="" scrolling="no" src="//www.gamespot.com/videos/embed/$1/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'GIST'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="gist" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="" src="https://s9e.github.io/iframe/gist.min.html#$1" style="border:0;height:180px;width:100%"></iframe>'),'GLOBALNEWS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="globalnews" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:67.321429%"><iframe allowfullscreen="" scrolling="no" src="//globalnews.ca/video/embed/$1/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'GOFUNDME'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="gofundme" style="display:inline-block;width:100%;max-width:258px"><div style="overflow:hidden;position:relative;padding-bottom:131.007752%"><object data="//funds.gofundme.com/Widgetflex.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="page=$1"></object></div></div>'),'GOOGLEDRIVE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="googledrive" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//drive.google.com/file/d/$1/preview" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'GOOGLESHEETS'=>array('(^[^ ]+(?> (?!g?id=)[^=]+="[^"]*")*(?> gid="([^"]*)")?(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="googlesheets" allowfullscreen="" scrolling="no" src="https://docs.google.com/spreadsheets/d/$2/pubhtml?widget=true&amp;headers=false#gid=$1" style="border:0;height:500px;resize:vertical;width:100%"></iframe>'),'HEALTHGURU'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="healthguru" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.healthguru.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'HUDL'=>array('(^[^ ]+(?> (?!(?>athlete|highlight)=)[^=]+="[^"]*")*(?> athlete="([^"]*)")?(?> (?!highlight=)[^=]+="[^"]*")*(?> highlight="([^"]*)")?.*)s','<div data-s9e-mediaembed="hudl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.hudl.com/embed/athlete/$1/highlights/$2" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'HULU'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="hulu" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://secure.hulu.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'HUMORTVNL'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="humortvnl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//humortv.vara.nl/embed.$1.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'IGN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="ign" style="display:inline-block;width:100%;max-width:468px"><div style="overflow:hidden;position:relative;padding-bottom:56.196581%"><iframe allowfullscreen="" scrolling="no" src="//widgets.ign.com/video/embed/content.html?url=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'IMDB'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="imdb" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.imdb.com/video/imdb/vi$1/imdb/embed?autoplay=false&amp;width=640" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'INDIEGOGO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="indiegogo" style="display:inline-block;width:100%;max-width:222px"><div style="overflow:hidden;position:relative;padding-bottom:200.45045%"><iframe allowfullscreen="" scrolling="no" src="//www.indiegogo.com/project/$1/embedded" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'INSTAGRAM'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="instagram" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/instagram.min.html#$1" style="border:0;height:640px;max-width:640px;width:100%"></iframe>'),'IZLESENE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="izlesene" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.izlesene.com/embedplayer/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'JWPLATFORM'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="jwplatform" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//content.jwplatform.com/players/$1.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'KHL'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="khl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video.khl.ru/iframe/feed/start/$1?type_id=18&amp;width=560&amp;height=315" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'KISSVIDEO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="kissvideo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.kissvideo.click/embed.php?vid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'LIBSYN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="libsyn" allowfullscreen="" scrolling="no" src="//html5-player.libsyn.com/embed/episode/id/$1/height/45/width/900/theme/standard/direction/no/autoplay/no/autonext/no/thumbnail/no/preload/no/no_addthis/no/" style="border:0;height:45px;max-width:900px;width:100%"></iframe>'),'LIVECAP'=>array('(^[^ ]+(?> (?!(?>channel|id)=)[^=]+="[^"]*")*(?> channel="([^"]*)")?(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="livecap" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://www.livecap.tv/s/embed/$1/$2" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'LIVELEAK'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="liveleak" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.liveleak.com/ll_embed?i=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'MAILRU'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="mailru" style="display:inline-block;width:100%;max-width:560px"><div style="overflow:hidden;position:relative;padding-bottom:61.071429%"><iframe allowfullscreen="" scrolling="no" src="//videoapi.my.mail.ru/videos/embed/$1.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'METACAFE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="metacafe" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.metacafe.com/embed/$1/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'MIXCLOUD'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="mixcloud" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="//www.mixcloud.com/widget/iframe/?feed=http%3A%2F%2Fwww.mixcloud.com%2F$1%2F&amp;embed_type=widget_standard" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'MLB'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="mlb" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//m.mlb.com/shared/video/embed/embed.html?content_id=$1&amp;width=640&amp;height=360" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'MRCTV'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="mrctv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://www.mrctv.org/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'MSNBC'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="msnbc" style="display:inline-block;width:100%;max-width:635px"><div style="overflow:hidden;position:relative;padding-bottom:69.291339%"><iframe allowfullscreen="" scrolling="no" src="//player.theplatform.com/p/2E2eJC/EmbeddedOffSite?guid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'NATGEOCHANNEL'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="natgeochannel" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//channel.nationalgeographic.com/$1/embed/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'NATGEOVIDEO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="natgeovideo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.d.nationalgeographic.com/players/ngsvideo/share/?guid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'NBCNEWS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="nbcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.nbcnews.com/widget/video-embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'NBCSPORTS'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="nbcsports" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//vplayer.nbcsports.com/p/BxmELC/nbcsports_embed/select/media/$1?parentUrl=" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'NPR'=>array('(^[^ ]+(?> (?![im]=)[^=]+="[^"]*")*(?> i="([^"]*)")?(?> (?!m=)[^=]+="[^"]*")*(?> m="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="npr" allowfullscreen="" scrolling="no" src="//www.npr.org/player/embed/$1/$2" style="border:0;height:228px;max-width:800px;width:100%"></iframe>'),'NYTIMES'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="nytimes" style="display:inline-block;width:100%;max-width:585px"><div style="overflow:hidden;position:relative;padding-bottom:68.376068%"><iframe allowfullscreen="" scrolling="no" src="//graphics8.nytimes.com/video/players/offsite/index.html?videoId=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'ODDSHOT'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="oddshot" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://oddshot.tv/s/$1/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'PASTEBIN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="pastebin" allowfullscreen="" scrolling="" src="//pastebin.com/embed_iframe.php?i=$1" style="border:0;height:300px;resize:vertical;width:100%"></iframe>'),'PLAYSTV'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="playstv" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//plays.tv/embeds/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'PODBEAN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="podbean" allowfullscreen="" scrolling="no" src="//www.podbean.com/media/player/$1" style="border:0;height:100px;max-width:900px;width:100%"></iframe>'),'PREZI'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="prezi" style="display:inline-block;width:100%;max-width:550px"><div style="overflow:hidden;position:relative;padding-bottom:72.727273%"><iframe allowfullscreen="" scrolling="no" src="//prezi.com/embed/$1/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'REDDIT'=>array('(^[^ ]+(?> (?!path=)[^=]+="[^"]*")*(?> path="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="reddit" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/reddit.min.html#$1" style="border:0;height:165px;max-width:800px;width:100%"></iframe>'),'RUTUBE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="rutube" style="display:inline-block;width:100%;max-width:720px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//rutube.ru/play/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'SCRIBD'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="scribd" allowfullscreen="" scrolling="no" src="https://www.scribd.com/embeds/$1/content?view_mode=scroll&amp;show_recommendations=false" style="border:0;height:500px;resize:vertical;width:100%"></iframe>'),'SLIDESHARE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="slideshare" style="display:inline-block;width:100%;max-width:427px"><div style="overflow:hidden;position:relative;padding-bottom:83.372365%"><iframe allowfullscreen="" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'SPORTSNET'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="sportsnet" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://images.rogersdigitalmedia.com/video_service.php?videoId=$1&amp;playerKey=AQ~~,AAAAAGWRwLc~,cRCmKE8Utf7OFWP38XQcokFZ80fR-u_y&amp;autoStart=false&amp;width=100%25&amp;height=100%25" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'STEAMSTORE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="steamstore" allowfullscreen="" scrolling="no" src="//store.steampowered.com/widget/$1" style="border:0;height:190px;max-width:900px;width:100%"></iframe>'),'STITCHER'=>array('(^[^ ]+(?> (?![ef]id=)[^=]+="[^"]*")*(?> eid="([^"]*)")?(?> (?!fid=)[^=]+="[^"]*")*(?> fid="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="stitcher" allowfullscreen="" scrolling="no" src="//app.stitcher.com/splayer/f/$2/$1" style="border:0;height:150px;max-width:900px;width:100%"></iframe>'),'STRAWPOLL'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="strawpoll" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="" src="//www.strawpoll.me/embed_1/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'STREAMABLE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="streamable" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//streamable.com/e/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'TEAMCOCO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="teamcoco" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:64.84375%"><iframe allowfullscreen="" scrolling="no" src="//teamcoco.com/embed/v/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'THEATLANTIC'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="theatlantic" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.theatlantic.com/video/iframe/$1/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'THEGUARDIAN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="theguardian" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//embed.theguardian.com/embed/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'THEONION'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="theonion" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.theonion.com/video_embed/?id=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'TINYPIC'=>array('(^[^ ]+(?> (?!(?>s|id)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!s=)[^=]+="[^"]*")*(?> s="([^"]*)")?.*)s','<div data-s9e-mediaembed="tinypic" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:60.9375%;padding-bottom:calc(56.25% + 30px)"><object data="//tinypic.com/player.swf?file=$1&amp;s=$2" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>'),'TMZ'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="tmz" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.kaltura.com/index.php/kwidget/cache_st/133592691/wid/_591531/partner_id/591531/uiconf_id/9071262/entry_id/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'TRAILERADDICT'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="traileraddict" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//v.traileraddict.com/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'TUMBLR'=>array('(^[^ ]+(?> (?!(?>id|key)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!key=)[^=]+="[^"]*")*(?> key="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="tumblr" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/tumblr.min.html#$2/$1" style="border:0;height:180px;max-width:520px;width:100%"></iframe>'),'TWITTER'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<iframe data-s9e-mediaembed="twitter" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/twitter.min.html#$1" style="background:url(https://abs.twimg.com/favicons/favicon.ico) no-repeat 50% 50%;border:0;height:186px;max-width:500px;width:100%"></iframe>'),'VBOX7'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vbox7" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//vbox7.com/emb/external.php?vid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VEOH'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="veoh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><object data="//www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1509&amp;permalinkId=v$1&amp;player=videodetailsembedded&amp;videoAutoPlay=0&amp;id=anonymous" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>'),'VEVO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vevo" style="display:inline-block;width:100%;max-width:575px"><div style="overflow:hidden;position:relative;padding-bottom:56.347826%"><iframe allowfullscreen="" scrolling="no" src="//cache.vevo.com/m/html/embed.html?video=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VIAGAME'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="viagame" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:61.25%"><iframe allowfullscreen="" scrolling="no" src="//www.viagame.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VIDEODETECTIVE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="videodetective" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.videodetective.com/embed/video/?options=false&amp;autostart=false&amp;playlist=none&amp;publishedid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VIDEOMEGA'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="videomega" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//videomega.tv/iframe.php?ref=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VIMEO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vimeo" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.vimeo.com/video/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VINE'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vine" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" src="https://vine.co/v/$1/embed/simple?audio=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VK'=>array('(^[^ ]+(?> (?!(?>hash|oid|vid)=)[^=]+="[^"]*")*(?> hash="([^"]*)")?(?> (?![ov]id=)[^=]+="[^"]*")*(?> oid="([^"]*)")?(?> (?!vid=)[^=]+="[^"]*")*(?> vid="([^"]*)")?.*)s','<div data-s9e-mediaembed="vk" style="display:inline-block;width:100%;max-width:607px"><div style="overflow:hidden;position:relative;padding-bottom:59.308072%"><iframe allowfullscreen="" scrolling="no" src="//vk.com/video_ext.php?oid=$2&amp;id=$3&amp;hash=$1&amp;hd=1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'VOCAROO'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vocaroo" style="display:inline-block;width:100%;max-width:148px"><div style="overflow:hidden;position:relative;padding-bottom:29.72973%"><object data="//vocaroo.com/player.swf?playMediaID=$1&amp;autoplay=0" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"></object></div></div>'),'VOX'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="vox" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//player.ooyala.com/iframe.html#pbid=a637d53c5c0a43c7bf4e342886b9d8b0&amp;ec=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'WASHINGTONPOST'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="washingtonpost" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.washingtonpost.com/video/c/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'WSHH'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="wshh" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.worldstarhiphop.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'WSJ'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="wsj" style="display:inline-block;width:100%;max-width:512px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//video-api.wsj.com/api-video/player/iframe.html?guid=$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'XBOXCLIPS'=>array('(^[^ ]+(?> (?!(?>id|user)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!user=)[^=]+="[^"]*")*(?> user="([^"]*)")?.*)s','<div data-s9e-mediaembed="xboxclips" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//xboxclips.com/$2/$1/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'XBOXDVR'=>array('(^[^ ]+(?> (?!(?>id|user)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!user=)[^=]+="[^"]*")*(?> user="([^"]*)")?.*)s','<div data-s9e-mediaembed="xboxdvr" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//xboxdvr.com/gamer/$2/video/$1/embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'YAHOOSCREEN'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="yahooscreen" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="https://screen.yahoo.com/$1.html?format=embed" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'YOUKU'=>array('(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','<div data-s9e-mediaembed="youku" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><iframe allowfullscreen="" scrolling="no" src="https://players.youku.com/embed/$1" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>'),'ZIPPYSHARE'=>array('(^[^ ]+(?> (?!(?>file|server)=)[^=]+="[^"]*")*(?> file="([^"]*)")?(?> (?!server=)[^=]+="[^"]*")*(?> server="([^"]*)")?.*)s','<object data-s9e-mediaembed="zippyshare" data="//api.zippyshare.com/api/player.swf" style="height:80px;max-width:900px;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="file=$1&amp;server=$2&amp;autostart=false"></object>'));
 	private static $attributes;
-	private static $quickBranches=array('AMAZON'=>0,'AUDIOMACK'=>1,'BANDCAMP'=>2,'BBCNEWS'=>3,'CBSNEWS'=>4,'DEMOCRACYNOW'=>5,'DUMPERT'=>6,'FACEBOOK'=>7,'GAMETRAILERS'=>8,'GETTY'=>9,'GFYCAT'=>10,'GOOGLEPLUS'=>11,'IMGUR'=>12,'INTERNETARCHIVE'=>13,'KICKSTARTER'=>14,'LIVESTREAM'=>15,'MEDIUM'=>16,'NHL'=>17,'SOUNDCLOUD'=>18,'SPOTIFY'=>19,'TED'=>20,'TWITCH'=>21,'USTREAM'=>22,'VIDME'=>23,'YOUTUBE'=>24);
+	private static $quickBranches=array('AMAZON'=>0,'AUDIOMACK'=>1,'BANDCAMP'=>2,'BBCNEWS'=>3,'CBSNEWS'=>4,'DEMOCRACYNOW'=>5,'DUMPERT'=>6,'FACEBOOK'=>7,'GAMETRAILERS'=>8,'GETTY'=>9,'GFYCAT'=>10,'GIFS'=>11,'GOOGLEPLUS'=>12,'IMGUR'=>13,'INTERNETARCHIVE'=>14,'KICKSTARTER'=>15,'LIVESTREAM'=>16,'MEDIUM'=>17,'NHL'=>18,'PINTEREST'=>19,'SOUNDCLOUD'=>20,'SPOTIFY'=>21,'TED'=>22,'TWITCH'=>23,'USTREAM'=>24,'VIDME'=>25,'YOUTUBE'=>26);
 	protected function renderQuick($xml)
 	{
 		$xml = $this->decodeSMP($xml);
 		self::$attributes = array();
 		$html = \preg_replace_callback(
-			'(<(?:(?!/)((?:A(?>BCNEWS|MAZON|UDIO(?>BOOM|MACK))|B(?>ANDCAMP|BCNEWS|L(?>AB|EACHERREPORT)|R(?>EAK|IGHTCOVE))|C(?:BSNEWS|N(?:BC|N(?>MONEY)?)|O(?>LLEGEHUMOR|MEDYCENTRAL|UB))|D(?>AILYMOTION|EMOCRACYNOW|UMPERT)|E(?>IGHTTRACKS|SPN)|F(?>ACEBOOK|LICKR|O(?>RATV|XNEWS)|UNNYORDIE)|G(?>AME(?>SPOT|TRAILERS)|ETTY|FYCAT|IST|LOBALNEWS|O(?>FUNDME|OGLE(?>DRIVE|PLUS|SHEETS)))|H(?>EALTHGURU|U(?>DL|LU|MORTVNL))|I(?>GN|M(?>DB|GUR)|N(?>DIEGOGO|STAGRAM|TERNETARCHIVE)|ZLESENE)|JWPLATFORM|K(?>HL|I(?>CKSTARTER|SSVIDEO))|LI(?>BSYN|VE(?>CAP|LEAK|STREAM))|M(?>AILRU|E(?>DIUM|TACAFE)|IXCLOUD|LB|RCTV|SNBC)|N(?>ATGEO(?>CHANNEL|VIDEO)|BC(?>NEW|SPORT)S|HL|PR|YTIMES)|ODDSHOT|P(?>ASTEBIN|LAYSTV|ODBEAN|REZI)|R(?>EDDIT|UTUBE)|S(?>CRIBD|LIDESHARE|OUNDCLOUD|PO(?>RTSNET|TIFY)|T(?>EAMSTORE|ITCHER|R(?>AWPOLL|EAMABLE)))|T(?>E(?>D|AMCOCO)|HE(?>ATLANTIC|GUARDIAN|ONION)|INYPIC|MZ|RAILERADDICT|UMBLR|WIT(?>CH|TER))|USTREAM|V(?>K|BOX7|E(?>OH|VO)|I(?>AGAME|D(?>EO(?>DETECTIVE|MEGA)|ME)|MEO|NE)|O(?>X|CAROO))|W(?>ASHINGTONPOST|S(?>J|HH))|XBOX(?>CLIPS|DVR)|Y(?>AHOOSCREEN|OU(?>KU|TUBE))|ZIPPYSHARE))(?: [^>]*)?>.*?</\\1|(/?(?!br/|p>)[^ />]+)[^>]*?(/)?)>)s',
+			'(<(?:(?!/)((?:A(?>BCNEWS|MAZON|UDIO(?>BOOM|MACK))|B(?>ANDCAMP|BCNEWS|L(?>AB|EACHERREPORT)|R(?>EAK|IGHTCOVE))|C(?:BSNEWS|N(?:BC|N(?>MONEY)?)|O(?>LLEGEHUMOR|MEDYCENTRAL|UB))|D(?>AILYMOTION|EMOCRACYNOW|UMPERT)|E(?>IGHTTRACKS|SPN)|F(?>ACEBOOK|LICKR|O(?>RATV|XNEWS)|UNNYORDIE)|G(?>AME(?>SPOT|TRAILERS)|ETTY|FYCAT|I(?>FS|ST)|LOBALNEWS|O(?>FUNDME|OGLE(?>DRIVE|PLUS|SHEETS)))|H(?>EALTHGURU|U(?>DL|LU|MORTVNL))|I(?>GN|M(?>DB|GUR)|N(?>DIEGOGO|STAGRAM|TERNETARCHIVE)|ZLESENE)|JWPLATFORM|K(?>HL|I(?>CKSTARTER|SSVIDEO))|LI(?>BSYN|VE(?>CAP|LEAK|STREAM))|M(?>AILRU|E(?>DIUM|TACAFE)|IXCLOUD|LB|RCTV|SNBC)|N(?>ATGEO(?>CHANNEL|VIDEO)|BC(?>NEW|SPORT)S|HL|PR|YTIMES)|ODDSHOT|P(?>ASTEBIN|INTEREST|LAYSTV|ODBEAN|REZI)|R(?>EDDIT|UTUBE)|S(?>CRIBD|LIDESHARE|OUNDCLOUD|PO(?>RTSNET|TIFY)|T(?>EAMSTORE|ITCHER|R(?>AWPOLL|EAMABLE)))|T(?>E(?>D|AMCOCO)|HE(?>ATLANTIC|GUARDIAN|ONION)|INYPIC|MZ|RAILERADDICT|UMBLR|WIT(?>CH|TER))|USTREAM|V(?>K|BOX7|E(?>OH|VO)|I(?>AGAME|D(?>EO(?>DETECTIVE|MEGA)|ME)|MEO|NE)|O(?>X|CAROO))|W(?>ASHINGTONPOST|S(?>J|HH))|XBOX(?>CLIPS|DVR)|Y(?>AHOOSCREEN|OU(?>KU|TUBE))|ZIPPYSHARE))(?: [^>]*)?>.*?</\\1|(/?(?!br/|p>)[^ />]+)[^>]*?(/)?)>)s',
 			array($this, 'quick'),
 			\preg_replace(
 				'(<[eis]>[^<]*</[eis]>)',
@@ -108,7 +108,7 @@ class Renderer extends \s9e\TextFormatter\Renderer
 				$attributes[$attrName] = $matches[2][$i];
 		}
 		$qb = self::$quickBranches[$id];
-		if($qb<13){if($qb<7)if($qb<4)if($qb===0){$attributes+=array('tld'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="amazon" style="display:inline-block;width:100%;max-width:120px"><div style="overflow:hidden;position:relative;padding-bottom:200%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//';if($attributes['tld']==='es'||$attributes['tld']==='it'){$html.='rcm-eu.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=FFFFFF&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;p=8&amp;l=as1&amp;f=ifr&amp;asins='.$attributes['id'].'&amp;o=';if($attributes['tld']==='es')$html.='30';else$html.='29';$html.='&amp;t=';if($attributes['tld']==='es'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_ES']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_ES'],2);elseif($attributes['tld']==='it'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_IT']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_IT'],2);else$html.='_';}else{$html.='ws-';if($attributes['tld']==='jp')$html.='fe';elseif(isset($attributes['tld'])&&(\strpos('desfrituk',$attributes['tld'])!==\false))$html.='eu';else$html.='na';$html.='.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=';if(isset($attributes['tld']))$html.=\htmlspecialchars(\strtr(\htmlspecialchars_decode($attributes['tld']),'acdefijkprstu','ACDEFIJBPRSTG'),2);else$html.='US';$html.='&amp;ad_type=product_link&amp;tracking_id=';if($attributes['tld']==='ca'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_CA']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_CA'],2);elseif($attributes['tld']==='de'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_DE']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_DE'],2);elseif($attributes['tld']==='fr'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_FR']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_FR'],2);elseif($attributes['tld']==='jp'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_JP']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_JP'],2);elseif($attributes['tld']==='uk'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_UK']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_UK'],2);elseif(!empty($this->params['AMAZON_ASSOCIATE_TAG']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG'],2);else$html.='_';$html.='&amp;marketplace=amazon&amp;region=';if(isset($attributes['tld']))$html.=\htmlspecialchars(\strtr(\htmlspecialchars_decode($attributes['tld']),'acdefijkprstu','ACDEFIJBPRSTG'),2);else$html.='US';$html.='&amp;asins='.$attributes['id'].'&amp;show_border=true&amp;link_opens_in_new_window=true';}$html.='"></iframe></div></div>';}elseif($qb===1){$attributes+=array('mode'=>\null,'id'=>\null);$html='';if($attributes['mode']==='album')$html.='<iframe data-s9e-mediaembed="audiomack" allowfullscreen="" scrolling="no" src="//www.audiomack.com/embed4-album/'.$attributes['id'].'" style="border:0;height:340px;max-width:900px;width:100%"></iframe>';else$html.='<iframe data-s9e-mediaembed="audiomack" allowfullscreen="" scrolling="no" src="//www.audiomack.com/embed4/'.$attributes['id'].'" style="border:0;height:110px;max-width:900px;width:100%"></iframe>';}elseif($qb===2){$attributes+=array('track_num'=>\null,'track_id'=>\null);$html='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if(isset($attributes['album_id'])){$html.='album='.$attributes['album_id'];if(isset($attributes['track_num']))$html.='/t='.$attributes['track_num'];}else$html.='track='.$attributes['track_id'];$html.='"></iframe></div></div>';}else{$attributes+=array('playlist'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="bbcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//www.bbc.com';if((\strpos($attributes['playlist'],'/news/')===0)&&(\strpos($attributes['playlist'],'A')!==\false))$html.=\htmlspecialchars(\strstr(\htmlspecialchars_decode($attributes['playlist']),'A',\true),2);else$html.='/news/'.$attributes['id'];$html.='/embed"></iframe></div></div>';}elseif($qb===4){$attributes+=array('id'=>\null);$html='<div data-s9e-mediaembed="cbsnews" style="display:inline-block;width:100%;max-width:640px">';if(isset($attributes['pid']))$html.='<div style="overflow:hidden;position:relative;padding-bottom:62.1875%;padding-bottom:calc(56.25% + 38px)"><object data="//www.cbsnews.com/common/video/cbsnews_player.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="pType=embed&amp;si=254&amp;pid='.$attributes['pid'];else$html.='<div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><object data="//i.i.cbsi.com/cnwk.1d/av/video/cbsnews/atlantis2/cbsnews_player_embed.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="si=254&amp;contentValue='.$attributes['id'];$html.='"></object></div>';$html.='</div>';}elseif($qb===5){$attributes+=array('id'=>\null);$html='<div data-s9e-mediaembed="democracynow" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//www.democracynow.org/embed/';if((\strpos($attributes['id'],'/headlines')!==\false))$html.='headlines/'.\htmlspecialchars(\strstr(\htmlspecialchars_decode($attributes['id']),'/headlines',\true),2);elseif((\strpos($attributes['id'],'2')===0))$html.='story/'.$attributes['id'];elseif((\strpos($attributes['id'],'shows/')===0))$html.='show/'.\htmlspecialchars(\substr(\strstr(\htmlspecialchars_decode($attributes['id']),'/'),1),2);else$html.=$attributes['id'];$html.='"></iframe></div></div>';}else{$attributes+=array('id'=>\null);$html='<div data-s9e-mediaembed="dumpert" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dumpert.nl/embed/'.\strtr($attributes['id'],'_','/').'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($qb<10)if($qb===7){$attributes+=array('type'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars(\htmlspecialchars_decode($attributes['type']).\htmlspecialchars_decode($attributes['id']),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';}elseif($qb===8){$attributes+=array('id'=>\null);$html='<div data-s9e-mediaembed="gametrailers" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if((\strpos($attributes['id'],'mgid:')===0))$html.='//media.mtvnservices.com/embed/'.$attributes['id'];else$html.='//embed.gametrailers.com/embed/'.$attributes['id'].'?embed=1&amp;suppressBumper=1';$html.='"></iframe></div></div>';}else{$attributes+=array('width'=>\null,'height'=>\null,'id'=>\null,'et'=>\null,'sig'=>\null);$html='<div data-s9e-mediaembed="getty" style="display:inline-block;width:100%;max-width:'.$attributes['width'].'px"><div style="overflow:hidden;position:relative;';if(\htmlspecialchars_decode($attributes['width'])>0)$html.='padding-bottom:'.\htmlspecialchars(100*($attributes['height']+49)/\htmlspecialchars_decode($attributes['width']),2).'%;padding-bottom:calc('.\htmlspecialchars(100*$attributes['height']/\htmlspecialchars_decode($attributes['width']),2).'% + 49px)';$html.='"><iframe allowfullscreen="" scrolling="no" src="//embed.gettyimages.com/embed/'.$attributes['id'].'?et='.$attributes['et'].'&amp;sig='.$attributes['sig'].'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($qb===10){$attributes+=array('width'=>\null,'height'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="gfycat" style="display:inline-block;width:100%;max-width:'.$attributes['width'].'px"><div style="overflow:hidden;position:relative;';if(\htmlspecialchars_decode($attributes['width'])>0)$html.='padding-bottom:'.\htmlspecialchars(100*$attributes['height']/\htmlspecialchars_decode($attributes['width']),2).'%';$html.='"><iframe allowfullscreen="" scrolling="no" src="//gfycat.com/iframe/'.$attributes['id'].'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($qb===11){$attributes+=array('name'=>\null,'pid'=>\null);$html='<iframe data-s9e-mediaembed="googleplus" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" style="border:0;height:240px;max-width:450px;width:100%" src="https://s9e.github.io/iframe/googleplus.min.html#';if(isset($attributes['oid']))$html.=$attributes['oid'];else$html.='+'.$attributes['name'];$html.='/posts/'.$attributes['pid'].'"></iframe>';}else{$attributes+=array('type'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="imgur" allowfullscreen="" onload="var b=Math.random();window.addEventListener(\'message\',function(a){a.data.id==b&amp;&amp;(style.height=a.data.height+\'px\',style.width=a.data.width+\'px\')});contentWindow.postMessage(\'s9e:\'+b,\'https://s9e.github.io\')" scrolling="no" style="border:0;height:450px;width:568px" src="https://s9e.github.io/iframe/imgur.min.html#';if($attributes['type']==='album'&&!((\strpos($attributes['id'],'a/')===0)))$html.='a/';$html.=$attributes['id'].'"></iframe>';}}elseif($qb<19)if($qb<16)if($qb===13){$attributes+=array('width'=>\null,'height'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="internetarchive" style="display:inline-block;width:100%;max-width:'.$attributes['width'].'px"><div style="overflow:hidden;position:relative;';if(\htmlspecialchars_decode($attributes['width'])>0)$html.='padding-bottom:'.\htmlspecialchars(100*$attributes['height']/\htmlspecialchars_decode($attributes['width']),2).'%';$html.='"><iframe allowfullscreen="" scrolling="no" src="https://archive.org/embed/'.$attributes['id'].'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($qb===14){$attributes+=array('id'=>\null);$html='';if(isset($attributes['video']))$html.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.$attributes['id'].'/widget/video.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$html.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:220px"><div style="overflow:hidden;position:relative;padding-bottom:190.90909090909%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.$attributes['id'].'/widget/card.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}else{$attributes+=array('channel'=>\null,'account_id'=>\null,'event_id'=>\null);$html='<div data-s9e-mediaembed="livestream" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if(isset($attributes['clip_id']))$html.='//cdn.livestream.com/embed/'.$attributes['channel'].'?layout=4&amp;autoplay=false&amp;clip='.$attributes['clip_id'];else{$html.='//livestream.com/accounts/'.$attributes['account_id'].'/events/'.$attributes['event_id'];if(isset($attributes['video_id']))$html.='/videos/'.$attributes['video_id'];$html.='/player?autoPlay=false';}$html.='"></iframe></div></div>';}elseif($qb===16){$attributes+=array('id'=>\null);$html='<iframe data-s9e-mediaembed="medium" allowfullscreen="" onload="window.addEventListener(\'message\',function(a){a=a.data.split(\'::\');\'m\'===a[0]&amp;&amp;0&lt;src.indexOf(a[1])&amp;&amp;a[2]&amp;&amp;(style.height=a[2]+\'px\')})" scrolling="no" src="https://api.medium.com/embed?type=story&amp;path=%2F%2F'.$attributes['id'].'&amp;id='.\htmlspecialchars(\strtr(\htmlspecialchars_decode($attributes['id']),'abcdef','111111'),2).'" style="border:1px solid;border-color:#eee #ddd #bbb;border-radius:5px;box-shadow:rgba(0,0,0,.15) 0 1px 3px;height:400px;max-width:400px;width:100%"></iframe>';}elseif($qb===17){$attributes+=array('t'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="nhl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if(isset($attributes['c'])||isset($attributes['t'])){$html.='//www.nhl.com/video/embed';if(isset($attributes['t']))$html.='/t-'.$attributes['t'];if(isset($attributes['c']))$html.='/c-'.$attributes['c'];$html.='?autostart=false';}else$html.='//video.nhl.com/videocenter/embed?playlist='.$attributes['id'];$html.='"></iframe></div></div>';}else{$attributes+=array('secret_token'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if(isset($attributes['playlist_id']))$html.='https%3A//api.soundcloud.com/playlists/'.$attributes['playlist_id'];elseif(isset($attributes['track_id']))$html.='https%3A//api.soundcloud.com/tracks/'.$attributes['track_id'].'&amp;secret_token='.$attributes['secret_token'];else{if((\strpos($attributes['id'],'://')===\false))$html.='https%3A//soundcloud.com/';$html.=$attributes['id'];}$html.='" style="border:0;height:';if(isset($attributes['playlist_id'])||(\strpos($attributes['id'],'/sets/')!==\false))$html.='450';else$html.='166';$html.='px;max-width:900px;width:100%"></iframe>';}elseif($qb<22)if($qb===19){$attributes+=array('path'=>\null);$html='<div data-s9e-mediaembed="spotify" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:120%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="https://embed.spotify.com/?view=coverart&amp;uri=';if(isset($attributes['uri']))$html.=$attributes['uri'];else$html.='spotify:'.\strtr($attributes['path'],'/',':');$html.='"></iframe></div></div>';}elseif($qb===20){$attributes+=array('id'=>\null);$html='<div data-s9e-mediaembed="ted" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//embed.ted.com/'.$attributes['id'];if((\strpos($attributes['id'],'.html')===\false))$html.='.html';$html.='"></iframe></div></div>';}else{$attributes+=array('channel'=>\null);$html='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if(isset($attributes['clip_id']))$html.='//clips.twitch.tv/embed?autoplay=false&amp;clip='.$attributes['channel'].'/'.$attributes['clip_id'];else{$html.='//player.twitch.tv/?autoplay=false&amp;';if(isset($attributes['archive_id']))$html.='video=a'.$attributes['archive_id'];elseif(isset($attributes['chapter_id']))$html.='video=c'.$attributes['chapter_id'];elseif(isset($attributes['video_id']))$html.='video=v'.$attributes['video_id'];else$html.='channel='.$attributes['channel'];if(isset($attributes['t']))$html.='&amp;time='.$attributes['t'];}$html.='"></iframe></div></div>';}elseif($qb===22){$attributes+=array('cid'=>\null);$html='<div data-s9e-mediaembed="ustream" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%">';if(isset($attributes['vid']))$html.='<iframe allowfullscreen="" scrolling="no" src="//www.ustream.tv/embed/recorded/'.$attributes['vid'];else$html.='<iframe allowfullscreen="" scrolling="no" src="//www.ustream.tv/embed/'.$attributes['cid'];$html.='?html5ui" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe>';$html.='</div></div>';}elseif($qb===23){$attributes+=array('width'=>\null,'height'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="vidme" style="display:inline-block;width:100%;max-width:'.$attributes['width'].'px"><div style="overflow:hidden;position:relative;';if(\htmlspecialchars_decode($attributes['width'])>0)$html.='padding-bottom:'.\htmlspecialchars(100*$attributes['height']/\htmlspecialchars_decode($attributes['width']),2).'%';$html.='"><iframe allowfullscreen="" scrolling="no" src="https://vid.me/e/'.$attributes['id'].'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}else{$attributes+=array('id'=>\null,'m'=>\null,'s'=>\null);$html='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.$attributes['id'].'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.$attributes['id'];if(isset($attributes['list']))$html.='?list='.$attributes['list'];if(isset($attributes['t'])||isset($attributes['m'])){if(isset($attributes['list']))$html.='&amp;';else$html.='?';$html.='start=';if(isset($attributes['t']))$html.=$attributes['t'];elseif(isset($attributes['h']))$html.=\htmlspecialchars($attributes['h']*3600+$attributes['m']*60+$attributes['s'],2);else$html.=\htmlspecialchars($attributes['m']*60+$attributes['s'],2);}$html.='"></iframe></div></div>';}
+		if($qb<14){if($qb<7)if($qb<4)if($qb===0){$attributes+=array('tld'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="amazon" style="display:inline-block;width:100%;max-width:120px"><div style="overflow:hidden;position:relative;padding-bottom:200%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//';if($attributes['tld']==='es'||$attributes['tld']==='it'){$html.='rcm-eu.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=FFFFFF&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;p=8&amp;l=as1&amp;f=ifr&amp;asins='.$attributes['id'].'&amp;o=';if($attributes['tld']==='es')$html.='30';else$html.='29';$html.='&amp;t=';if($attributes['tld']==='es'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_ES']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_ES'],2);elseif($attributes['tld']==='it'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_IT']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_IT'],2);else$html.='_';}else{$html.='ws-';if($attributes['tld']==='jp')$html.='fe';elseif(isset($attributes['tld'])&&(\strpos('desfrituk',$attributes['tld'])!==\false))$html.='eu';else$html.='na';$html.='.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=';if(isset($attributes['tld']))$html.=\htmlspecialchars(\strtr(\htmlspecialchars_decode($attributes['tld']),'acdefijkprstu','ACDEFIJBPRSTG'),2);else$html.='US';$html.='&amp;ad_type=product_link&amp;tracking_id=';if($attributes['tld']==='ca'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_CA']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_CA'],2);elseif($attributes['tld']==='de'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_DE']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_DE'],2);elseif($attributes['tld']==='fr'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_FR']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_FR'],2);elseif($attributes['tld']==='jp'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_JP']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_JP'],2);elseif($attributes['tld']==='uk'&&!empty($this->params['AMAZON_ASSOCIATE_TAG_UK']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG_UK'],2);elseif(!empty($this->params['AMAZON_ASSOCIATE_TAG']))$html.=\htmlspecialchars($this->params['AMAZON_ASSOCIATE_TAG'],2);else$html.='_';$html.='&amp;marketplace=amazon&amp;region=';if(isset($attributes['tld']))$html.=\htmlspecialchars(\strtr(\htmlspecialchars_decode($attributes['tld']),'acdefijkprstu','ACDEFIJBPRSTG'),2);else$html.='US';$html.='&amp;asins='.$attributes['id'].'&amp;show_border=true&amp;link_opens_in_new_window=true';}$html.='"></iframe></div></div>';}elseif($qb===1){$attributes+=array('mode'=>\null,'id'=>\null);$html='';if($attributes['mode']==='album')$html.='<iframe data-s9e-mediaembed="audiomack" allowfullscreen="" scrolling="no" src="https://www.audiomack.com/embed/album/'.$attributes['id'].'" style="border:0;height:400px;max-width:900px;width:100%"></iframe>';else$html.='<iframe data-s9e-mediaembed="audiomack" allowfullscreen="" scrolling="no" src="https://www.audiomack.com/embed/song/'.$attributes['id'].'" style="border:0;height:252px;max-width:900px;width:100%"></iframe>';}elseif($qb===2){$attributes+=array('track_num'=>\null,'track_id'=>\null);$html='<div data-s9e-mediaembed="bandcamp" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:100%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/';if(isset($attributes['album_id'])){$html.='album='.$attributes['album_id'];if(isset($attributes['track_num']))$html.='/t='.$attributes['track_num'];}else$html.='track='.$attributes['track_id'];$html.='"></iframe></div></div>';}else{$attributes+=array('playlist'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="bbcnews" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//www.bbc.com';if((\strpos($attributes['playlist'],'/news/')===0)&&(\strpos($attributes['playlist'],'A')!==\false))$html.=\htmlspecialchars(\strstr(\htmlspecialchars_decode($attributes['playlist']),'A',\true),2);else$html.='/news/'.$attributes['id'];$html.='/embed"></iframe></div></div>';}elseif($qb===4){$attributes+=array('id'=>\null);$html='<div data-s9e-mediaembed="cbsnews" style="display:inline-block;width:100%;max-width:640px">';if(isset($attributes['pid']))$html.='<div style="overflow:hidden;position:relative;padding-bottom:62.1875%;padding-bottom:calc(56.25% + 38px)"><object data="//www.cbsnews.com/common/video/cbsnews_player.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="pType=embed&amp;si=254&amp;pid='.$attributes['pid'];else$html.='<div style="overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)"><object data="//i.i.cbsi.com/cnwk.1d/av/video/cbsnews/atlantis2/cbsnews_player_embed.swf" style="height:100%;left:0;position:absolute;width:100%" type="application/x-shockwave-flash" typemustmatch=""><param name="allowfullscreen" value="true"><param name="flashvars" value="si=254&amp;contentValue='.$attributes['id'];$html.='"></object></div>';$html.='</div>';}elseif($qb===5){$attributes+=array('id'=>\null);$html='<div data-s9e-mediaembed="democracynow" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//www.democracynow.org/embed/';if((\strpos($attributes['id'],'/headlines')!==\false))$html.='headlines/'.\htmlspecialchars(\strstr(\htmlspecialchars_decode($attributes['id']),'/headlines',\true),2);elseif((\strpos($attributes['id'],'2')===0))$html.='story/'.$attributes['id'];elseif((\strpos($attributes['id'],'shows/')===0))$html.='show/'.\htmlspecialchars(\substr(\strstr(\htmlspecialchars_decode($attributes['id']),'/'),1),2);else$html.=$attributes['id'];$html.='"></iframe></div></div>';}else{$attributes+=array('id'=>\null);$html='<div data-s9e-mediaembed="dumpert" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" src="//www.dumpert.nl/embed/'.\strtr($attributes['id'],'_','/').'/" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($qb<11)if($qb===7){$attributes+=array('type'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="facebook" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/facebook.min.html#'.\htmlspecialchars(\htmlspecialchars_decode($attributes['type']).\htmlspecialchars_decode($attributes['id']),2).'" style="border:0;height:360px;max-width:640px;width:100%"></iframe>';}elseif($qb===8){$attributes+=array('id'=>\null);$html='<div data-s9e-mediaembed="gametrailers" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if((\strpos($attributes['id'],'mgid:')===0))$html.='//media.mtvnservices.com/embed/'.$attributes['id'];else$html.='//embed.gametrailers.com/embed/'.$attributes['id'].'?embed=1&amp;suppressBumper=1';$html.='"></iframe></div></div>';}elseif($qb===9){$attributes+=array('width'=>\null,'height'=>\null,'id'=>\null,'et'=>\null,'sig'=>\null);$html='<div data-s9e-mediaembed="getty" style="display:inline-block;width:100%;max-width:'.$attributes['width'].'px"><div style="overflow:hidden;position:relative;';if(\htmlspecialchars_decode($attributes['width'])>0)$html.='padding-bottom:'.\htmlspecialchars(100*($attributes['height']+49)/\htmlspecialchars_decode($attributes['width']),2).'%;padding-bottom:calc('.\htmlspecialchars(100*$attributes['height']/\htmlspecialchars_decode($attributes['width']),2).'% + 49px)';$html.='"><iframe allowfullscreen="" scrolling="no" src="//embed.gettyimages.com/embed/'.$attributes['id'].'?et='.$attributes['et'].'&amp;sig='.$attributes['sig'].'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}else{$attributes+=array('width'=>\null,'height'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="gfycat" style="display:inline-block;width:100%;max-width:'.$attributes['width'].'px"><div style="overflow:hidden;position:relative;';if(\htmlspecialchars_decode($attributes['width'])>0)$html.='padding-bottom:'.\htmlspecialchars(100*$attributes['height']/\htmlspecialchars_decode($attributes['width']),2).'%';$html.='"><iframe allowfullscreen="" scrolling="no" src="//gfycat.com/iframe/'.$attributes['id'].'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($qb===11){$attributes+=array('width'=>\null,'height'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="gifs" style="display:inline-block;width:100%;max-width:'.$attributes['width'].'px"><div style="overflow:hidden;position:relative;';if(\htmlspecialchars_decode($attributes['width'])>0)$html.='padding-bottom:'.\htmlspecialchars(100*$attributes['height']/\htmlspecialchars_decode($attributes['width']),2).'%';$html.='"><iframe allowfullscreen="" scrolling="no" src="//gifs.com/embed/'.$attributes['id'].'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($qb===12){$attributes+=array('name'=>\null,'pid'=>\null);$html='<iframe data-s9e-mediaembed="googleplus" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" style="border:0;height:240px;max-width:450px;width:100%" src="https://s9e.github.io/iframe/googleplus.min.html#';if(isset($attributes['oid']))$html.=$attributes['oid'];else$html.='+'.$attributes['name'];$html.='/posts/'.$attributes['pid'].'"></iframe>';}else{$attributes+=array('type'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="imgur" allowfullscreen="" onload="var b=Math.random();window.addEventListener(\'message\',function(a){a.data.id==b&amp;&amp;(style.height=a.data.height+\'px\',style.width=a.data.width+\'px\')});contentWindow.postMessage(\'s9e:\'+b,\'https://s9e.github.io\')" scrolling="no" style="border:0;height:450px;width:568px" src="https://s9e.github.io/iframe/imgur.min.html#';if($attributes['type']==='album'&&!((\strpos($attributes['id'],'a/')===0)))$html.='a/';$html.=$attributes['id'].'"></iframe>';}}elseif($qb<21)if($qb<18)if($qb===14){$attributes+=array('width'=>\null,'height'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="internetarchive" style="display:inline-block;width:100%;max-width:'.$attributes['width'].'px"><div style="overflow:hidden;position:relative;';if(\htmlspecialchars_decode($attributes['width'])>0)$html.='padding-bottom:'.\htmlspecialchars(100*$attributes['height']/\htmlspecialchars_decode($attributes['width']),2).'%';$html.='"><iframe allowfullscreen="" scrolling="no" src="https://archive.org/embed/'.$attributes['id'].'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($qb===15){$attributes+=array('id'=>\null);$html='';if(isset($attributes['video']))$html.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:480px"><div style="overflow:hidden;position:relative;padding-bottom:75%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.$attributes['id'].'/widget/video.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';else$html.='<div data-s9e-mediaembed="kickstarter" style="display:inline-block;width:100%;max-width:220px"><div style="overflow:hidden;position:relative;padding-bottom:190.909091%"><iframe allowfullscreen="" scrolling="no" src="//www.kickstarter.com/projects/'.$attributes['id'].'/widget/card.html" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}elseif($qb===16){$attributes+=array('channel'=>\null,'account_id'=>\null,'event_id'=>\null);$html='<div data-s9e-mediaembed="livestream" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if(isset($attributes['clip_id']))$html.='//cdn.livestream.com/embed/'.$attributes['channel'].'?layout=4&amp;autoplay=false&amp;clip='.$attributes['clip_id'];else{$html.='//livestream.com/accounts/'.$attributes['account_id'].'/events/'.$attributes['event_id'];if(isset($attributes['video_id']))$html.='/videos/'.$attributes['video_id'];$html.='/player?autoPlay=false';}$html.='"></iframe></div></div>';}else{$attributes+=array('id'=>\null);$html='<iframe data-s9e-mediaembed="medium" allowfullscreen="" onload="window.addEventListener(\'message\',function(a){a=a.data.split(\'::\');\'m\'===a[0]&amp;&amp;0&lt;src.indexOf(a[1])&amp;&amp;a[2]&amp;&amp;(style.height=a[2]+\'px\')})" scrolling="no" src="https://api.medium.com/embed?type=story&amp;path=%2F%2F'.$attributes['id'].'&amp;id='.\htmlspecialchars(\strtr(\htmlspecialchars_decode($attributes['id']),'abcdef','111111'),2).'" style="border:1px solid;border-color:#eee #ddd #bbb;border-radius:5px;box-shadow:rgba(0,0,0,.15) 0 1px 3px;height:400px;max-width:400px;width:100%"></iframe>';}elseif($qb===18){$attributes+=array('t'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="nhl" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if(isset($attributes['c'])||isset($attributes['t'])){$html.='//www.nhl.com/video/embed';if(isset($attributes['t']))$html.='/t-'.$attributes['t'];if(isset($attributes['c']))$html.='/c-'.$attributes['c'];$html.='?autostart=false';}else$html.='//video.nhl.com/videocenter/embed?playlist='.$attributes['id'];$html.='"></iframe></div></div>';}elseif($qb===19){$attributes+=array('id'=>\null);$html='<iframe data-s9e-mediaembed="pinterest" allowfullscreen="" onload="var a=Math.random();window.addEventListener(\'message\',function(b){if(b.data.id==a)style.height=b.data.height+\'px\'});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')" scrolling="no" src="https://s9e.github.io/iframe/pinterest.min.html#'.$attributes['id'].'" style="border:0;height:360px;max-width:';if((\strpos($attributes['id'],'/')!==\false))$html.='730';else$html.='345';$html.='px;width:100%"></iframe>';}else{$attributes+=array('secret_token'=>\null,'id'=>\null);$html='<iframe data-s9e-mediaembed="soundcloud" allowfullscreen="" scrolling="no" src="https://w.soundcloud.com/player/?url=';if(isset($attributes['playlist_id']))$html.='https%3A//api.soundcloud.com/playlists/'.$attributes['playlist_id'];elseif(isset($attributes['track_id']))$html.='https%3A//api.soundcloud.com/tracks/'.$attributes['track_id'].'&amp;secret_token='.$attributes['secret_token'];else{if((\strpos($attributes['id'],'://')===\false))$html.='https%3A//soundcloud.com/';$html.=$attributes['id'];}$html.='" style="border:0;height:';if(isset($attributes['playlist_id'])||(\strpos($attributes['id'],'/sets/')!==\false))$html.='450';else$html.='166';$html.='px;max-width:900px;width:100%"></iframe>';}elseif($qb<24)if($qb===21){$attributes+=array('path'=>\null);$html='<div data-s9e-mediaembed="spotify" style="display:inline-block;width:100%;max-width:400px"><div style="overflow:hidden;position:relative;padding-bottom:120%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="https://embed.spotify.com/?view=coverart&amp;uri=';if(isset($attributes['uri']))$html.=$attributes['uri'];else$html.='spotify:'.\strtr($attributes['path'],'/',':');$html.='"></iframe></div></div>';}elseif($qb===22){$attributes+=array('id'=>\null);$html='<div data-s9e-mediaembed="ted" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="//embed.ted.com/'.$attributes['id'];if((\strpos($attributes['id'],'.html')===\false))$html.='.html';$html.='"></iframe></div></div>';}else{$attributes+=array('channel'=>\null,'clip_id'=>\null);$html='<div data-s9e-mediaembed="twitch" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="border:0;height:100%;left:0;position:absolute;width:100%" src="';if(isset($attributes['clip_id'])){$html.='//clips.twitch.tv/embed?autoplay=false&amp;clip=';if(isset($attributes['channel']))$html.=$attributes['channel'].'/';$html.=$attributes['clip_id'];}else{$html.='//player.twitch.tv/?autoplay=false&amp;';if(isset($attributes['video_id']))$html.='video=v'.$attributes['video_id'];else$html.='channel='.$attributes['channel'];if(isset($attributes['t']))$html.='&amp;time='.$attributes['t'];}$html.='"></iframe></div></div>';}elseif($qb===24){$attributes+=array('cid'=>\null);$html='<div data-s9e-mediaembed="ustream" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%">';if(isset($attributes['vid']))$html.='<iframe allowfullscreen="" scrolling="no" src="//www.ustream.tv/embed/recorded/'.$attributes['vid'];else$html.='<iframe allowfullscreen="" scrolling="no" src="//www.ustream.tv/embed/'.$attributes['cid'];$html.='?html5ui" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe>';$html.='</div></div>';}elseif($qb===25){$attributes+=array('width'=>\null,'height'=>\null,'id'=>\null);$html='<div data-s9e-mediaembed="vidme" style="display:inline-block;width:100%;max-width:'.$attributes['width'].'px"><div style="overflow:hidden;position:relative;';if(\htmlspecialchars_decode($attributes['width'])>0)$html.='padding-bottom:'.\htmlspecialchars(100*$attributes['height']/\htmlspecialchars_decode($attributes['width']),2).'%';$html.='"><iframe allowfullscreen="" scrolling="no" src="https://vid.me/e/'.$attributes['id'].'" style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div></div>';}else{$attributes+=array('id'=>\null,'m'=>\null,'s'=>\null);$html='<div data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px"><div style="overflow:hidden;position:relative;padding-bottom:56.25%"><iframe allowfullscreen="" scrolling="no" style="background:url(https://i.ytimg.com/vi/'.$attributes['id'].'/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/'.$attributes['id'];if(isset($attributes['list']))$html.='?list='.$attributes['list'];if(isset($attributes['t'])||isset($attributes['m'])){if(isset($attributes['list']))$html.='&amp;';else$html.='?';$html.='start=';if(isset($attributes['t']))$html.=$attributes['t'];elseif(isset($attributes['h']))$html.=\htmlspecialchars($attributes['h']*3600+$attributes['m']*60+$attributes['s'],2);else$html.=\htmlspecialchars($attributes['m']*60+$attributes['s'],2);}$html.='"></iframe></div></div>';}
 		return $html;
 	}
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter;
@@ -177,7 +177,7 @@ class Configurator implements ConfigProvider
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -207,7 +207,7 @@ class BundleGenerator
 		$php = array();
 		$php[] = '/**';
 		$php[] = '* @package   s9e\TextFormatter';
-		$php[] = '* @copyright Copyright (c) 2010-2016 The s9e Authors';
+		$php[] = '* @copyright Copyright (c) 2010-2017 The s9e Authors';
 		$php[] = '* @license   http://www.opensource.org/licenses/mit-license.php The MIT License';
 		$php[] = '*/';
 		if ($namespace)
@@ -323,7 +323,7 @@ class BundleGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -334,7 +334,7 @@ interface ConfigProvider
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -345,7 +345,7 @@ interface FilterableConfigValue
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Helpers;
@@ -439,7 +439,7 @@ abstract class AVTHelper
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Helpers;
@@ -544,7 +544,7 @@ class CharacterClassBuilder
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Helpers;
@@ -643,7 +643,7 @@ abstract class ConfigHelper
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Helpers;
@@ -1159,7 +1159,7 @@ abstract class RegexpBuilder
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Helpers;
@@ -1313,16 +1313,393 @@ abstract class RulesHelper
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
+* @license   http://www.opensource.org/licenses/mit-license.php The MIT License
+*/
+namespace s9e\TextFormatter\Configurator\Helpers;
+use DOMAttr;
+use DOMCharacterData;
+use DOMDocument;
+use DOMElement;
+use DOMNode;
+use DOMProcessingInstruction;
+use DOMXPath;
+use RuntimeException;
+use s9e\TextFormatter\Configurator\Exceptions\InvalidXslException;
+use s9e\TextFormatter\Configurator\Helpers\RegexpBuilder;
+abstract class TemplateHelper
+{
+	const XMLNS_XSL = 'http://www.w3.org/1999/XSL/Transform';
+	public static function getAttributesByRegexp(DOMDocument $dom, $regexp)
+	{
+		$xpath = new DOMXPath($dom);
+		$nodes = array();
+		foreach ($xpath->query('//@*') as $attribute)
+			if (\preg_match($regexp, $attribute->name))
+				$nodes[] = $attribute;
+		foreach ($xpath->query('//xsl:attribute') as $attribute)
+			if (\preg_match($regexp, $attribute->getAttribute('name')))
+				$nodes[] = $attribute;
+		foreach ($xpath->query('//xsl:copy-of') as $node)
+		{
+			$expr = $node->getAttribute('select');
+			if (\preg_match('/^@(\\w+)$/', $expr, $m)
+			 && \preg_match($regexp, $m[1]))
+				$nodes[] = $node;
+		}
+		return $nodes;
+	}
+	public static function getCSSNodes(DOMDocument $dom)
+	{
+		$regexp = '/^style$/i';
+		$nodes  = \array_merge(
+			self::getAttributesByRegexp($dom, $regexp),
+			self::getElementsByRegexp($dom, '/^style$/i')
+		);
+		return $nodes;
+	}
+	public static function getElementsByRegexp(DOMDocument $dom, $regexp)
+	{
+		$xpath = new DOMXPath($dom);
+		$nodes = array();
+		foreach ($xpath->query('//*') as $element)
+			if (\preg_match($regexp, $element->localName))
+				$nodes[] = $element;
+		foreach ($xpath->query('//xsl:element') as $element)
+			if (\preg_match($regexp, $element->getAttribute('name')))
+				$nodes[] = $element;
+		foreach ($xpath->query('//xsl:copy-of') as $node)
+		{
+			$expr = $node->getAttribute('select');
+			if (\preg_match('/^\\w+$/', $expr)
+			 && \preg_match($regexp, $expr))
+				$nodes[] = $node;
+		}
+		return $nodes;
+	}
+	public static function getJSNodes(DOMDocument $dom)
+	{
+		$regexp = '/^(?>data-s9e-livepreview-postprocess$|on)/i';
+		$nodes  = \array_merge(
+			self::getAttributesByRegexp($dom, $regexp),
+			self::getElementsByRegexp($dom, '/^script$/i')
+		);
+		return $nodes;
+	}
+	public static function getMetaElementsRegexp(array $templates)
+	{
+		$exprs = array();
+		$xsl = '<xsl:template xmlns:xsl="http://www.w3.org/1999/XSL/Transform">' . \implode('', $templates) . '</xsl:template>';
+		$dom = new DOMDocument;
+		$dom->loadXML($xsl);
+		$xpath = new DOMXPath($dom);
+		$query = '//xsl:*/@*[contains("matchselectest", name())]';
+		foreach ($xpath->query($query) as $attribute)
+			$exprs[] = $attribute->value;
+		$query = '//*[namespace-uri() != "' . self::XMLNS_XSL . '"]/@*';
+		foreach ($xpath->query($query) as $attribute)
+			foreach (AVTHelper::parse($attribute->value) as $token)
+				if ($token[0] === 'expression')
+					$exprs[] = $token[1];
+		$tagNames = array(
+			'e' => \true,
+			'i' => \true,
+			's' => \true
+		);
+		foreach (\array_keys($tagNames) as $tagName)
+			if (isset($templates[$tagName]) && $templates[$tagName] !== '')
+				unset($tagNames[$tagName]);
+		$regexp = '(\\b(?<![$@])(' . \implode('|', \array_keys($tagNames)) . ')(?!-)\\b)';
+		\preg_match_all($regexp, \implode("\n", $exprs), $m);
+		foreach ($m[0] as $tagName)
+			unset($tagNames[$tagName]);
+		if (empty($tagNames))
+			return '((?!))';
+		return '(<' . RegexpBuilder::fromList(\array_keys($tagNames)) . '>[^<]*</[^>]+>)';
+	}
+	public static function getObjectParamsByRegexp(DOMDocument $dom, $regexp)
+	{
+		$xpath = new DOMXPath($dom);
+		$nodes = array();
+		foreach (self::getAttributesByRegexp($dom, $regexp) as $attribute)
+			if ($attribute->nodeType === \XML_ATTRIBUTE_NODE)
+			{
+				if (\strtolower($attribute->parentNode->localName) === 'embed')
+					$nodes[] = $attribute;
+			}
+			elseif ($xpath->evaluate('ancestor::embed', $attribute))
+				$nodes[] = $attribute;
+		foreach ($dom->getElementsByTagName('object') as $object)
+			foreach ($object->getElementsByTagName('param') as $param)
+				if (\preg_match($regexp, $param->getAttribute('name')))
+					$nodes[] = $param;
+		return $nodes;
+	}
+	public static function getParametersFromXSL($xsl)
+	{
+		$paramNames = array();
+		$xsl = '<xsl:stylesheet xmlns:xsl="' . self::XMLNS_XSL . '"><xsl:template>'
+		     . $xsl
+		     . '</xsl:template></xsl:stylesheet>';
+		$dom = new DOMDocument;
+		$dom->loadXML($xsl);
+		$xpath = new DOMXPath($dom);
+		$query = '//xsl:*/@match | //xsl:*/@select | //xsl:*/@test';
+		foreach ($xpath->query($query) as $attribute)
+			foreach (XPathHelper::getVariables($attribute->value) as $varName)
+			{
+				$varQuery = 'ancestor-or-self::*/preceding-sibling::xsl:variable[@name="' . $varName . '"]';
+				if (!$xpath->query($varQuery, $attribute)->length)
+					$paramNames[] = $varName;
+			}
+		$query = '//*[namespace-uri() != "' . self::XMLNS_XSL . '"]/@*[contains(., "{")]';
+		foreach ($xpath->query($query) as $attribute)
+		{
+			$tokens = AVTHelper::parse($attribute->value);
+			foreach ($tokens as $token)
+			{
+				if ($token[0] !== 'expression')
+					continue;
+				foreach (XPathHelper::getVariables($token[1]) as $varName)
+				{
+					$varQuery = 'ancestor-or-self::*/preceding-sibling::xsl:variable[@name="' . $varName . '"]';
+					if (!$xpath->query($varQuery, $attribute)->length)
+						$paramNames[] = $varName;
+				}
+			}
+		}
+		$paramNames = \array_unique($paramNames);
+		\sort($paramNames);
+		return $paramNames;
+	}
+	public static function getURLNodes(DOMDocument $dom)
+	{
+		$regexp = '/(?>^(?>action|background|c(?>ite|lassid|odebase)|data|formaction|href|icon|longdesc|manifest|p(?>luginspage|oster|rofile)|usemap)|src)$/i';
+		$nodes  = self::getAttributesByRegexp($dom, $regexp);
+		foreach (self::getObjectParamsByRegexp($dom, '/^(?:dataurl|movie)$/i') as $param)
+		{
+			$node = $param->getAttributeNode('value');
+			if ($node)
+				$nodes[] = $node;
+		}
+		return $nodes;
+	}
+	public static function highlightNode(DOMNode $node, $prepend, $append)
+	{
+		$uniqid = \uniqid('_');
+		if ($node instanceof DOMAttr)
+			$node->value .= $uniqid;
+		elseif ($node instanceof DOMElement)
+			$node->setAttribute($uniqid, '');
+		elseif ($node instanceof DOMCharacterData
+		     || $node instanceof DOMProcessingInstruction)
+			$node->data .= $uniqid;
+		$dom = $node->ownerDocument;
+		$dom->formatOutput = \true;
+		$docXml = self::innerXML($dom->documentElement);
+		$docXml = \trim(\str_replace("\n  ", "\n", $docXml));
+		$nodeHtml = \htmlspecialchars(\trim($dom->saveXML($node)));
+		$docHtml  = \htmlspecialchars($docXml);
+		$html = \str_replace($nodeHtml, $prepend . $nodeHtml . $append, $docHtml);
+		if ($node instanceof DOMAttr)
+		{
+			$node->value = \substr($node->value, 0, -\strlen($uniqid));
+			$html = \str_replace($uniqid, '', $html);
+		}
+		elseif ($node instanceof DOMElement)
+		{
+			$node->removeAttribute($uniqid);
+			$html = \str_replace(' ' . $uniqid . '=&quot;&quot;', '', $html);
+		}
+		elseif ($node instanceof DOMCharacterData
+		     || $node instanceof DOMProcessingInstruction)
+		{
+			$node->data .= $uniqid;
+			$html = \str_replace($uniqid, '', $html);
+		}
+		return $html;
+	}
+	public static function loadTemplate($template)
+	{
+		$dom = self::loadTemplateAsXML($template);
+		if ($dom)
+			return $dom;
+		$dom = self::loadTemplateAsXML(self::fixEntities($template));
+		if ($dom)
+			return $dom;
+		if (\strpos($template, '<xsl:') !== \false)
+		{
+			$error = \libxml_get_last_error();
+			throw new InvalidXslException($error->message);
+		}
+		return self::loadTemplateAsHTML($template);
+	}
+	public static function replaceHomogeneousTemplates(array &$templates, $minCount = 3)
+	{
+		$tagNames = array();
+		$expr = 'name()';
+		foreach ($templates as $tagName => $template)
+		{
+			$elName = \strtolower(\preg_replace('/^[^:]+:/', '', $tagName));
+			if ($template === '<' . $elName . '><xsl:apply-templates/></' . $elName . '>')
+			{
+				$tagNames[] = $tagName;
+				if (\strpos($tagName, ':') !== \false)
+					$expr = 'local-name()';
+			}
+		}
+		if (\count($tagNames) < $minCount)
+			return;
+		$chars = \preg_replace('/[^A-Z]+/', '', \count_chars(\implode('', $tagNames), 3));
+		if (\is_string($chars) && $chars !== '')
+			$expr = 'translate(' . $expr . ",'" . $chars . "','" . \strtolower($chars) . "')";
+		$template = '<xsl:element name="{' . $expr . '}"><xsl:apply-templates/></xsl:element>';
+		foreach ($tagNames as $tagName)
+			$templates[$tagName] = $template;
+	}
+	public static function replaceTokens($template, $regexp, $fn)
+	{
+		if ($template === '')
+			return $template;
+		$dom   = self::loadTemplate($template);
+		$xpath = new DOMXPath($dom);
+		foreach ($xpath->query('//@*') as $attribute)
+		{
+			$attrValue = \preg_replace_callback(
+				$regexp,
+				function ($m) use ($fn, $attribute)
+				{
+					$replacement = $fn($m, $attribute);
+					if ($replacement[0] === 'expression')
+						return '{' . $replacement[1] . '}';
+					elseif ($replacement[0] === 'passthrough')
+						return '{.}';
+					else
+						return $replacement[1];
+				},
+				$attribute->value
+			);
+			$attribute->value = \htmlspecialchars($attrValue, \ENT_COMPAT, 'UTF-8');
+		}
+		foreach ($xpath->query('//text()') as $node)
+		{
+			\preg_match_all(
+				$regexp,
+				$node->textContent,
+				$matches,
+				\PREG_SET_ORDER | \PREG_OFFSET_CAPTURE
+			);
+			if (empty($matches))
+				continue;
+			$parentNode = $node->parentNode;
+			$lastPos = 0;
+			foreach ($matches as $m)
+			{
+				$pos = $m[0][1];
+				if ($pos > $lastPos)
+					$parentNode->insertBefore(
+						$dom->createTextNode(
+							\substr($node->textContent, $lastPos, $pos - $lastPos)
+						),
+						$node
+					);
+				$lastPos = $pos + \strlen($m[0][0]);
+				$_m = array();
+				foreach ($m as $capture)
+					$_m[] = $capture[0];
+				$replacement = $fn($_m, $node);
+				if ($replacement[0] === 'expression')
+					$parentNode
+						->insertBefore(
+							$dom->createElementNS(self::XMLNS_XSL, 'xsl:value-of'),
+							$node
+						)
+						->setAttribute('select', $replacement[1]);
+				elseif ($replacement[0] === 'passthrough')
+					$parentNode->insertBefore(
+						$dom->createElementNS(self::XMLNS_XSL, 'xsl:apply-templates'),
+						$node
+					);
+				else
+					$parentNode->insertBefore($dom->createTextNode($replacement[1]), $node);
+			}
+			$text = \substr($node->textContent, $lastPos);
+			if ($text > '')
+				$parentNode->insertBefore($dom->createTextNode($text), $node);
+			$parentNode->removeChild($node);
+		}
+		return self::saveTemplate($dom);
+	}
+	public static function saveTemplate(DOMDocument $dom)
+	{
+		return self::innerXML($dom->documentElement);
+	}
+	protected static function fixEntities($template)
+	{
+		return \preg_replace_callback(
+			'(&(?!quot;|amp;|apos;|lt;|gt;)\\w+;)',
+			function ($m)
+			{
+				return \html_entity_decode($m[0], \ENT_NOQUOTES, 'UTF-8');
+			},
+			\preg_replace('(&(?![A-Za-z0-9]+;|#\\d+;|#x[A-Fa-f0-9]+;))', '&amp;', $template)
+		);
+	}
+	protected static function innerXML(DOMElement $element)
+	{
+		$xml = $element->ownerDocument->saveXML($element);
+		$pos = 1 + \strpos($xml, '>');
+		$len = \strrpos($xml, '<') - $pos;
+		if ($len < 1)
+			return '';
+		$xml = \substr($xml, $pos, $len);
+		return $xml;
+	}
+	protected static function loadTemplateAsHTML($template)
+	{
+		$dom  = new DOMDocument;
+		$html = '<?xml version="1.0" encoding="utf-8" ?><html><body><div>' . $template . '</div></body></html>';
+		$useErrors = \libxml_use_internal_errors(\true);
+		$dom->loadHTML($html);
+		self::removeInvalidAttributes($dom);
+		\libxml_use_internal_errors($useErrors);
+		$xml = '<?xml version="1.0" encoding="utf-8" ?><xsl:template xmlns:xsl="' . self::XMLNS_XSL . '">' . self::innerXML($dom->documentElement->firstChild->firstChild) . '</xsl:template>';
+		$useErrors = \libxml_use_internal_errors(\true);
+		$dom->loadXML($xml);
+		\libxml_use_internal_errors($useErrors);
+		return $dom;
+	}
+	protected static function loadTemplateAsXML($template)
+	{
+		$xml = '<?xml version="1.0" encoding="utf-8" ?><xsl:template xmlns:xsl="' . self::XMLNS_XSL . '">' . $template . '</xsl:template>';
+		$useErrors = \libxml_use_internal_errors(\true);
+		$dom       = new DOMDocument;
+		$success   = $dom->loadXML($xml);
+		self::removeInvalidAttributes($dom);
+		\libxml_use_internal_errors($useErrors);
+		return ($success) ? $dom : \false;
+	}
+	protected static function removeInvalidAttributes(DOMDocument $dom)
+	{
+		$xpath = new DOMXPath($dom);
+		foreach ($xpath->query('//@*') as $attribute)
+			if (!\preg_match('(^(?:[-\\w]+:)?(?!\\d)[-\\w]+$)D', $attribute->nodeName))
+				$attribute->parentNode->removeAttributeNode($attribute);
+	}
+}
+
+/*
+* @package   s9e\TextFormatter
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Helpers;
 use DOMDocument;
 use DOMElement;
 use DOMXPath;
-class TemplateForensics
+class TemplateInspector
 {
-	protected $allowChildBitfield = "\0";
+	protected $allowChildBitfields = array();
 	protected $allowsChildElements = \true;
 	protected $allowsText = \true;
 	protected $contentBitfield = "\0";
@@ -1349,18 +1726,19 @@ class TemplateForensics
 		$this->analyseBranches();
 		$this->analyseContent();
 	}
-	public function allowsChild(self $child)
+	public function allowsChild(TemplateInspector $child)
 	{
 		if (!$this->allowsDescendant($child))
 			return \false;
 		foreach ($child->rootBitfields as $rootBitfield)
-			if (!self::match($rootBitfield, $this->allowChildBitfield))
-				return \false;
+			foreach ($this->allowChildBitfields as $allowChildBitfield)
+				if (!self::match($rootBitfield, $allowChildBitfield))
+					return \false;
 		if (!$this->allowsText && $child->hasRootText)
 			return \false;
 		return \true;
 	}
-	public function allowsDescendant(self $descendant)
+	public function allowsDescendant(TemplateInspector $descendant)
 	{
 		if (self::match($descendant->contentBitfield, $this->denyDescendantBitfield))
 			return \false;
@@ -1376,7 +1754,7 @@ class TemplateForensics
 	{
 		return $this->allowsText;
 	}
-	public function closesParent(self $parent)
+	public function closesParent(TemplateInspector $parent)
 	{
 		foreach ($this->rootNodes as $rootName)
 		{
@@ -1404,6 +1782,10 @@ class TemplateForensics
 	{
 		return $this->isEmpty;
 	}
+	public function isIframe()
+	{
+		return ($this->rootNodes === array('iframe'));
+	}
 	public function isPassthrough()
 	{
 		return $this->isPassthrough;
@@ -1522,14 +1904,13 @@ class TemplateForensics
 		}
 		if (empty($branchBitfields))
 		{
+			$this->allowChildBitfields = array("\0");
 			$this->allowsChildElements = \false;
 			$this->isTransparent       = \false;
 		}
 		else
 		{
-			$this->allowChildBitfield = $branchBitfields[0];
-			foreach ($branchBitfields as $branchBitfield)
-				$this->allowChildBitfield &= $branchBitfield;
+			$this->allowChildBitfields = $branchBitfields;
 			if (!empty($this->leafNodes))
 				$this->isFormattingElement = $isFormattingElement;
 		}
@@ -1539,7 +1920,7 @@ class TemplateForensics
 		$style = $this->getStyle($node);
 		if (\preg_match('(\\bdisplay\\s*:\\s*block)i', $style))
 			return \true;
-		if (\preg_match('(\\bdisplay\\s*:\\s*inline)i', $style))
+		if (\preg_match('(\\bdisplay\\s*:\\s*(?:inli|no)ne)i', $style))
 			return \false;
 		return $this->hasProperty($elName, 'b', $node);
 	}
@@ -1729,384 +2110,7 @@ class TemplateForensics
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
-* @license   http://www.opensource.org/licenses/mit-license.php The MIT License
-*/
-namespace s9e\TextFormatter\Configurator\Helpers;
-use DOMAttr;
-use DOMCharacterData;
-use DOMDocument;
-use DOMElement;
-use DOMNode;
-use DOMProcessingInstruction;
-use DOMXPath;
-use RuntimeException;
-use s9e\TextFormatter\Configurator\Exceptions\InvalidXslException;
-use s9e\TextFormatter\Configurator\Helpers\RegexpBuilder;
-abstract class TemplateHelper
-{
-	const XMLNS_XSL = 'http://www.w3.org/1999/XSL/Transform';
-	public static function getAttributesByRegexp(DOMDocument $dom, $regexp)
-	{
-		$xpath = new DOMXPath($dom);
-		$nodes = array();
-		foreach ($xpath->query('//@*') as $attribute)
-			if (\preg_match($regexp, $attribute->name))
-				$nodes[] = $attribute;
-		foreach ($xpath->query('//xsl:attribute') as $attribute)
-			if (\preg_match($regexp, $attribute->getAttribute('name')))
-				$nodes[] = $attribute;
-		foreach ($xpath->query('//xsl:copy-of') as $node)
-		{
-			$expr = $node->getAttribute('select');
-			if (\preg_match('/^@(\\w+)$/', $expr, $m)
-			 && \preg_match($regexp, $m[1]))
-				$nodes[] = $node;
-		}
-		return $nodes;
-	}
-	public static function getCSSNodes(DOMDocument $dom)
-	{
-		$regexp = '/^style$/i';
-		$nodes  = \array_merge(
-			self::getAttributesByRegexp($dom, $regexp),
-			self::getElementsByRegexp($dom, '/^style$/i')
-		);
-		return $nodes;
-	}
-	public static function getElementsByRegexp(DOMDocument $dom, $regexp)
-	{
-		$xpath = new DOMXPath($dom);
-		$nodes = array();
-		foreach ($xpath->query('//*') as $element)
-			if (\preg_match($regexp, $element->localName))
-				$nodes[] = $element;
-		foreach ($xpath->query('//xsl:element') as $element)
-			if (\preg_match($regexp, $element->getAttribute('name')))
-				$nodes[] = $element;
-		foreach ($xpath->query('//xsl:copy-of') as $node)
-		{
-			$expr = $node->getAttribute('select');
-			if (\preg_match('/^\\w+$/', $expr)
-			 && \preg_match($regexp, $expr))
-				$nodes[] = $node;
-		}
-		return $nodes;
-	}
-	public static function getJSNodes(DOMDocument $dom)
-	{
-		$regexp = '/^(?>data-s9e-livepreview-postprocess$|on)/i';
-		$nodes  = \array_merge(
-			self::getAttributesByRegexp($dom, $regexp),
-			self::getElementsByRegexp($dom, '/^script$/i')
-		);
-		return $nodes;
-	}
-	public static function getMetaElementsRegexp(array $templates)
-	{
-		$exprs = array();
-		$xsl = '<xsl:template xmlns:xsl="http://www.w3.org/1999/XSL/Transform">' . \implode('', $templates) . '</xsl:template>';
-		$dom = new DOMDocument;
-		$dom->loadXML($xsl);
-		$xpath = new DOMXPath($dom);
-		$query = '//xsl:*/@*[contains("matchselectest", name())]';
-		foreach ($xpath->query($query) as $attribute)
-			$exprs[] = $attribute->value;
-		$query = '//*[namespace-uri() != "' . self::XMLNS_XSL . '"]/@*';
-		foreach ($xpath->query($query) as $attribute)
-			foreach (AVTHelper::parse($attribute->value) as $token)
-				if ($token[0] === 'expression')
-					$exprs[] = $token[1];
-		$tagNames = array(
-			'e' => \true,
-			'i' => \true,
-			's' => \true
-		);
-		foreach (\array_keys($tagNames) as $tagName)
-			if (isset($templates[$tagName]) && $templates[$tagName] !== '')
-				unset($tagNames[$tagName]);
-		$regexp = '(\\b(?<![$@])(' . \implode('|', \array_keys($tagNames)) . ')(?!-)\\b)';
-		\preg_match_all($regexp, \implode("\n", $exprs), $m);
-		foreach ($m[0] as $tagName)
-			unset($tagNames[$tagName]);
-		if (empty($tagNames))
-			return '((?!))';
-		return '(<' . RegexpBuilder::fromList(\array_keys($tagNames)) . '>[^<]*</[^>]+>)';
-	}
-	public static function getObjectParamsByRegexp(DOMDocument $dom, $regexp)
-	{
-		$xpath = new DOMXPath($dom);
-		$nodes = array();
-		foreach (self::getAttributesByRegexp($dom, $regexp) as $attribute)
-			if ($attribute->nodeType === \XML_ATTRIBUTE_NODE)
-			{
-				if (\strtolower($attribute->parentNode->localName) === 'embed')
-					$nodes[] = $attribute;
-			}
-			elseif ($xpath->evaluate('ancestor::embed', $attribute))
-				$nodes[] = $attribute;
-		foreach ($dom->getElementsByTagName('object') as $object)
-			foreach ($object->getElementsByTagName('param') as $param)
-				if (\preg_match($regexp, $param->getAttribute('name')))
-					$nodes[] = $param;
-		return $nodes;
-	}
-	public static function getParametersFromXSL($xsl)
-	{
-		$paramNames = array();
-		$xsl = '<xsl:stylesheet xmlns:xsl="' . self::XMLNS_XSL . '"><xsl:template>'
-		     . $xsl
-		     . '</xsl:template></xsl:stylesheet>';
-		$dom = new DOMDocument;
-		$dom->loadXML($xsl);
-		$xpath = new DOMXPath($dom);
-		$query = '//xsl:*/@match | //xsl:*/@select | //xsl:*/@test';
-		foreach ($xpath->query($query) as $attribute)
-			foreach (XPathHelper::getVariables($attribute->value) as $varName)
-			{
-				$varQuery = 'ancestor-or-self::*/preceding-sibling::xsl:variable[@name="' . $varName . '"]';
-				if (!$xpath->query($varQuery, $attribute)->length)
-					$paramNames[] = $varName;
-			}
-		$query = '//*[namespace-uri() != "' . self::XMLNS_XSL . '"]/@*[contains(., "{")]';
-		foreach ($xpath->query($query) as $attribute)
-		{
-			$tokens = AVTHelper::parse($attribute->value);
-			foreach ($tokens as $token)
-			{
-				if ($token[0] !== 'expression')
-					continue;
-				foreach (XPathHelper::getVariables($token[1]) as $varName)
-				{
-					$varQuery = 'ancestor-or-self::*/preceding-sibling::xsl:variable[@name="' . $varName . '"]';
-					if (!$xpath->query($varQuery, $attribute)->length)
-						$paramNames[] = $varName;
-				}
-			}
-		}
-		$paramNames = \array_unique($paramNames);
-		\sort($paramNames);
-		return $paramNames;
-	}
-	public static function getURLNodes(DOMDocument $dom)
-	{
-		$regexp = '/(?>^(?>action|background|c(?>ite|lassid|odebase)|data|formaction|href|icon|longdesc|manifest|p(?>luginspage|oster|rofile)|usemap)|src)$/i';
-		$nodes  = self::getAttributesByRegexp($dom, $regexp);
-		foreach (self::getObjectParamsByRegexp($dom, '/^(?:dataurl|movie)$/i') as $param)
-		{
-			$node = $param->getAttributeNode('value');
-			if ($node)
-				$nodes[] = $node;
-		}
-		return $nodes;
-	}
-	public static function highlightNode(DOMNode $node, $prepend, $append)
-	{
-		$uniqid = \uniqid('_');
-		if ($node instanceof DOMAttr)
-			$node->value .= $uniqid;
-		elseif ($node instanceof DOMElement)
-			$node->setAttribute($uniqid, '');
-		elseif ($node instanceof DOMCharacterData
-		     || $node instanceof DOMProcessingInstruction)
-			$node->data .= $uniqid;
-		$dom = $node->ownerDocument;
-		$dom->formatOutput = \true;
-		$docXml = self::innerXML($dom->documentElement);
-		$docXml = \trim(\str_replace("\n  ", "\n", $docXml));
-		$nodeHtml = \htmlspecialchars(\trim($dom->saveXML($node)));
-		$docHtml  = \htmlspecialchars($docXml);
-		$html = \str_replace($nodeHtml, $prepend . $nodeHtml . $append, $docHtml);
-		if ($node instanceof DOMAttr)
-		{
-			$node->value = \substr($node->value, 0, -\strlen($uniqid));
-			$html = \str_replace($uniqid, '', $html);
-		}
-		elseif ($node instanceof DOMElement)
-		{
-			$node->removeAttribute($uniqid);
-			$html = \str_replace(' ' . $uniqid . '=&quot;&quot;', '', $html);
-		}
-		elseif ($node instanceof DOMCharacterData
-		     || $node instanceof DOMProcessingInstruction)
-		{
-			$node->data .= $uniqid;
-			$html = \str_replace($uniqid, '', $html);
-		}
-		return $html;
-	}
-	public static function loadTemplate($template)
-	{
-		$dom = self::loadTemplateAsXML($template);
-		if ($dom)
-			return $dom;
-		$dom = self::loadTemplateAsXML(self::fixEntities($template));
-		if ($dom)
-			return $dom;
-		if (\strpos($template, '<xsl:') !== \false)
-		{
-			$error = \libxml_get_last_error();
-			throw new InvalidXslException($error->message);
-		}
-		return self::loadTemplateAsHTML($template);
-	}
-	public static function replaceHomogeneousTemplates(array &$templates, $minCount = 3)
-	{
-		$tagNames = array();
-		$expr = 'name()';
-		foreach ($templates as $tagName => $template)
-		{
-			$elName = \strtolower(\preg_replace('/^[^:]+:/', '', $tagName));
-			if ($template === '<' . $elName . '><xsl:apply-templates/></' . $elName . '>')
-			{
-				$tagNames[] = $tagName;
-				if (\strpos($tagName, ':') !== \false)
-					$expr = 'local-name()';
-			}
-		}
-		if (\count($tagNames) < $minCount)
-			return;
-		$chars = \preg_replace('/[^A-Z]+/', '', \count_chars(\implode('', $tagNames), 3));
-		if (\is_string($chars) && $chars !== '')
-			$expr = 'translate(' . $expr . ",'" . $chars . "','" . \strtolower($chars) . "')";
-		$template = '<xsl:element name="{' . $expr . '}"><xsl:apply-templates/></xsl:element>';
-		foreach ($tagNames as $tagName)
-			$templates[$tagName] = $template;
-	}
-	public static function replaceTokens($template, $regexp, $fn)
-	{
-		if ($template === '')
-			return $template;
-		$dom   = self::loadTemplate($template);
-		$xpath = new DOMXPath($dom);
-		foreach ($xpath->query('//@*') as $attribute)
-		{
-			$attrValue = \preg_replace_callback(
-				$regexp,
-				function ($m) use ($fn, $attribute)
-				{
-					$replacement = $fn($m, $attribute);
-					if ($replacement[0] === 'expression')
-						return '{' . $replacement[1] . '}';
-					elseif ($replacement[0] === 'passthrough')
-						return '{.}';
-					else
-						return $replacement[1];
-				},
-				$attribute->value
-			);
-			$attribute->value = \htmlspecialchars($attrValue, \ENT_COMPAT, 'UTF-8');
-		}
-		foreach ($xpath->query('//text()') as $node)
-		{
-			\preg_match_all(
-				$regexp,
-				$node->textContent,
-				$matches,
-				\PREG_SET_ORDER | \PREG_OFFSET_CAPTURE
-			);
-			if (empty($matches))
-				continue;
-			$parentNode = $node->parentNode;
-			$lastPos = 0;
-			foreach ($matches as $m)
-			{
-				$pos = $m[0][1];
-				if ($pos > $lastPos)
-					$parentNode->insertBefore(
-						$dom->createTextNode(
-							\substr($node->textContent, $lastPos, $pos - $lastPos)
-						),
-						$node
-					);
-				$lastPos = $pos + \strlen($m[0][0]);
-				$_m = array();
-				foreach ($m as $capture)
-					$_m[] = $capture[0];
-				$replacement = $fn($_m, $node);
-				if ($replacement[0] === 'expression')
-					$parentNode
-						->insertBefore(
-							$dom->createElementNS(self::XMLNS_XSL, 'xsl:value-of'),
-							$node
-						)
-						->setAttribute('select', $replacement[1]);
-				elseif ($replacement[0] === 'passthrough')
-					$parentNode->insertBefore(
-						$dom->createElementNS(self::XMLNS_XSL, 'xsl:apply-templates'),
-						$node
-					);
-				else
-					$parentNode->insertBefore($dom->createTextNode($replacement[1]), $node);
-			}
-			$text = \substr($node->textContent, $lastPos);
-			if ($text > '')
-				$parentNode->insertBefore($dom->createTextNode($text), $node);
-			$parentNode->removeChild($node);
-		}
-		return self::saveTemplate($dom);
-	}
-	public static function saveTemplate(DOMDocument $dom)
-	{
-		return self::innerXML($dom->documentElement);
-	}
-	protected static function fixEntities($template)
-	{
-		return \preg_replace_callback(
-			'(&(?!quot;|amp;|apos;|lt;|gt;)\\w+;)',
-			function ($m)
-			{
-				return \html_entity_decode($m[0], \ENT_NOQUOTES, 'UTF-8');
-			},
-			\preg_replace('(&(?![A-Za-z0-9]+;|#\\d+;|#x[A-Fa-f0-9]+;))', '&amp;', $template)
-		);
-	}
-	protected static function innerXML(DOMElement $element)
-	{
-		$xml = $element->ownerDocument->saveXML($element);
-		$pos = 1 + \strpos($xml, '>');
-		$len = \strrpos($xml, '<') - $pos;
-		if ($len < 1)
-			return '';
-		$xml = \substr($xml, $pos, $len);
-		return $xml;
-	}
-	protected static function loadTemplateAsHTML($template)
-	{
-		$dom  = new DOMDocument;
-		$html = '<?xml version="1.0" encoding="utf-8" ?><html><body><div>' . $template . '</div></body></html>';
-		$useErrors = \libxml_use_internal_errors(\true);
-		$dom->loadHTML($html);
-		self::removeInvalidAttributes($dom);
-		\libxml_use_internal_errors($useErrors);
-		$xml = '<?xml version="1.0" encoding="utf-8" ?><xsl:template xmlns:xsl="' . self::XMLNS_XSL . '">' . self::innerXML($dom->documentElement->firstChild->firstChild) . '</xsl:template>';
-		$useErrors = \libxml_use_internal_errors(\true);
-		$dom->loadXML($xml);
-		\libxml_use_internal_errors($useErrors);
-		return $dom;
-	}
-	protected static function loadTemplateAsXML($template)
-	{
-		$xml = '<?xml version="1.0" encoding="utf-8" ?><xsl:template xmlns:xsl="' . self::XMLNS_XSL . '">' . $template . '</xsl:template>';
-		$useErrors = \libxml_use_internal_errors(\true);
-		$dom       = new DOMDocument;
-		$success   = $dom->loadXML($xml);
-		self::removeInvalidAttributes($dom);
-		\libxml_use_internal_errors($useErrors);
-		return ($success) ? $dom : \false;
-	}
-	protected static function removeInvalidAttributes(DOMDocument $dom)
-	{
-		$xpath = new DOMXPath($dom);
-		foreach ($xpath->query('//@*') as $attribute)
-			if (!\preg_match('(^(?:[-\\w]+:)?(?!\\d)[-\\w]+$)D', $attribute->nodeName))
-				$attribute->parentNode->removeAttributeNode($attribute);
-	}
-}
-
-/*
-* @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Helpers;
@@ -2187,14 +2191,20 @@ class TemplateParser
 				throw new RuntimeException("Element '" . $node->nodeName . "' is not supported");
 			return self::$methodName($ir, $node);
 		}
-		if (!\is_null($node->namespaceURI))
-			throw new RuntimeException("Namespaced element '" . $node->nodeName . "' is not supported");
 		$element = self::appendElement($ir, 'element');
-		$element->setAttribute('name', $node->localName);
+		$element->setAttribute('name', $node->nodeName);
+		$xpath = new DOMXPath($node->ownerDocument);
+		foreach ($xpath->query('namespace::*', $node) as $ns)
+			if ($node->hasAttribute($ns->nodeName))
+			{
+				$irAttribute = self::appendElement($element, 'attribute');
+				$irAttribute->setAttribute('name', $ns->nodeName);
+				self::appendOutput($irAttribute, 'literal', $ns->nodeValue);
+			}
 		foreach ($node->attributes as $attribute)
 		{
 			$irAttribute = self::appendElement($element, 'attribute');
-			$irAttribute->setAttribute('name', $attribute->name);
+			$irAttribute->setAttribute('name', $attribute->nodeName);
 			self::appendOutput($irAttribute, 'avt', $attribute->value);
 		}
 		self::parseChildren($element, $node);
@@ -2570,14 +2580,25 @@ class TemplateParser
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Helpers;
+use InvalidArgumentException;
 use RuntimeException;
 abstract class XPathHelper
 {
-	public static function export($str)
+	public static function export($value)
+	{
+		if (!\is_scalar($value))
+			throw new InvalidArgumentException(__METHOD__ . '() cannot export non-scalar values');
+		if (\is_int($value))
+			return (string) $value;
+		if (\is_float($value))
+			return \preg_replace('(\\.?0+$)', '', \sprintf('%F', $value));
+		return self::exportString($value);
+	}
+	protected static function exportString($str)
 	{
 		if (\strpos($str, "'") === \false)
 			return "'" . $str . "'";
@@ -2610,7 +2631,7 @@ abstract class XPathHelper
 	{
 		$expr = \strrev(\preg_replace('(\\((?!\\s*(?!vid(?!\\w))\\w))', ' ', \strrev($expr)));
 		$expr = \str_replace(')', ' ', $expr);
-		if (\preg_match('(^\\s*([$@][-\\w]++|-?\\d++)(?>\\s*(?>[-+*]|div)\\s*(?1))++\\s*$)', $expr))
+		if (\preg_match('(^\\s*([$@][-\\w]++|-?\\.\\d++|-?\\d++(?:\\.\\d++)?)(?>\\s*(?>[-+*]|div)\\s*(?1))++\\s*$)', $expr))
 			return \true;
 		return \false;
 	}
@@ -2644,17 +2665,17 @@ abstract class XPathHelper
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
 use DOMDocument;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\Helpers\TemplateHelper;
 use s9e\TextFormatter\Configurator\TemplateNormalizer;
 class Template
 {
-	protected $forensics;
+	protected $inspector;
 	protected $isNormalized = \false;
 	protected $template;
 	public function __construct($template)
@@ -2663,7 +2684,7 @@ class Template
 	}
 	public function __call($methodName, $args)
 	{
-		return \call_user_func_array(array($this->getForensics(), $methodName), $args);
+		return \call_user_func_array(array($this->getInspector(), $methodName), $args);
 	}
 	public function __toString()
 	{
@@ -2682,11 +2703,11 @@ class Template
 	{
 		return TemplateHelper::getCSSNodes($this->asDOM());
 	}
-	public function getForensics()
+	public function getInspector()
 	{
-		if (!isset($this->forensics))
-			$this->forensics = new TemplateForensics($this->__toString());
-		return $this->forensics;
+		if (!isset($this->inspector))
+			$this->inspector = new TemplateInspector($this->__toString());
+		return $this->inspector;
 	}
 	public function getJSNodes()
 	{
@@ -2708,19 +2729,19 @@ class Template
 	}
 	public function normalize(TemplateNormalizer $templateNormalizer)
 	{
-		$this->forensics    = \null;
+		$this->inspector    = \null;
 		$this->template     = $templateNormalizer->normalizeTemplate($this->template);
 		$this->isNormalized = \true;
 	}
 	public function replaceTokens($regexp, $fn)
 	{
-		$this->forensics    = \null;
+		$this->inspector    = \null;
 		$this->template     = TemplateHelper::replaceTokens($this->template, $regexp, $fn);
 		$this->isNormalized = \false;
 	}
 	public function setContent($template)
 	{
-		$this->forensics    = \null;
+		$this->inspector    = \null;
 		$this->template     = (string) $template;
 		$this->isNormalized = \false;
 	}
@@ -2728,7 +2749,7 @@ class Template
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
@@ -2856,7 +2877,7 @@ class FunctionProvider
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -2867,7 +2888,7 @@ interface RendererGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators\PHP;
@@ -2924,7 +2945,7 @@ abstract class AbstractOptimizer
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators\PHP;
@@ -3151,7 +3172,7 @@ class BranchOutputOptimizer
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators\PHP;
@@ -3354,7 +3375,7 @@ class Optimizer
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators\PHP;
@@ -3779,6 +3800,11 @@ class Quick
 			'isset($attributes[$1])',
 			$php
 		);
+		$php = \str_replace(
+			'($node->attributes->length)',
+			'(!empty($attributes))',
+			$php
+		);
 		$php = \preg_replace(
 			"(\\\$node->getAttribute\\(('[^']+')\\))",
 			'htmlspecialchars_decode($attributes[$1])',
@@ -3953,7 +3979,7 @@ class Quick
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators\PHP;
@@ -4156,7 +4182,7 @@ class Serializer
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators\PHP;
@@ -4176,6 +4202,8 @@ class XPathConvertor
 		$expr = \trim($expr);
 		if (\preg_match('#^@([-\\w]+)$#', $expr, $m))
 			return '$node->hasAttribute(' . \var_export($m[1], \true) . ')';
+		if ($expr === '@*')
+			return '$node->attributes->length';
 		if (\preg_match('#^not\\(@([-\\w]+)\\)$#', $expr, $m))
 			return '!$node->hasAttribute(' . \var_export($m[1], \true) . ')';
 		if (\preg_match('#^\\$(\\w+)$#', $expr, $m))
@@ -4197,7 +4225,7 @@ class XPathConvertor
 			$methodName = \null;
 			foreach ($m as $k => $v)
 			{
-				if (\is_numeric($k) || $v === '' || !\method_exists($this, $k))
+				if (\is_numeric($k) || $v === '' || $v === \null || !\method_exists($this, $k))
 					continue;
 				$methodName = $k;
 				break;
@@ -4524,7 +4552,7 @@ class XPathConvertor
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -4687,7 +4715,7 @@ class Rendering
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -4696,7 +4724,7 @@ use DOMDocument;
 use Iterator;
 use s9e\TextFormatter\Configurator\Collections\RulesGeneratorList;
 use s9e\TextFormatter\Configurator\Collections\TagCollection;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\BooleanRulesGenerator;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\TargetedRulesGenerator;
 use s9e\TextFormatter\Configurator\Traits\CollectionProxy;
@@ -4764,14 +4792,14 @@ class RulesGenerator implements ArrayAccess, Iterator
 	public function getRules(TagCollection $tags, array $options = array())
 	{
 		$parentHTML = (isset($options['parentHTML'])) ? $options['parentHTML'] : '<div>';
-		$rootForensics = $this->generateRootForensics($parentHTML);
-		$templateForensics = array();
+		$rootInspector = $this->generateRootInspector($parentHTML);
+		$templateInspector = array();
 		foreach ($tags as $tagName => $tag)
 		{
 			$template = (isset($tag->template)) ? $tag->template : '<xsl:apply-templates/>';
-			$templateForensics[$tagName] = new TemplateForensics($template);
+			$templateInspector[$tagName] = new TemplateInspector($template);
 		}
-		$rules = $this->generateRulesets($templateForensics, $rootForensics);
+		$rules = $this->generateRulesets($templateInspector, $rootInspector);
 		unset($rules['root']['autoClose']);
 		unset($rules['root']['autoReopen']);
 		unset($rules['root']['breakParagraph']);
@@ -4784,7 +4812,7 @@ class RulesGenerator implements ArrayAccess, Iterator
 		unset($rules['root']['requireParent']);
 		return $rules;
 	}
-	protected function generateRootForensics($html)
+	protected function generateRootInspector($html)
 	{
 		$dom = new DOMDocument;
 		$dom->loadHTML($html);
@@ -4796,19 +4824,19 @@ class RulesGenerator implements ArrayAccess, Iterator
 			'http://www.w3.org/1999/XSL/Transform',
 			'xsl:apply-templates'
 		));
-		return new TemplateForensics($dom->saveXML($body));
+		return new TemplateInspector($dom->saveXML($body));
 	}
-	protected function generateRulesets(array $templateForensics, TemplateForensics $rootForensics)
+	protected function generateRulesets(array $templateInspector, TemplateInspector $rootInspector)
 	{
 		$rules = array(
-			'root' => $this->generateRuleset($rootForensics, $templateForensics),
+			'root' => $this->generateRuleset($rootInspector, $templateInspector),
 			'tags' => array()
 		);
-		foreach ($templateForensics as $tagName => $src)
-			$rules['tags'][$tagName] = $this->generateRuleset($src, $templateForensics);
+		foreach ($templateInspector as $tagName => $src)
+			$rules['tags'][$tagName] = $this->generateRuleset($src, $templateInspector);
 		return $rules;
 	}
-	protected function generateRuleset(TemplateForensics $src, array $targets)
+	protected function generateRuleset(TemplateInspector $src, array $targets)
 	{
 		$rules = array();
 		foreach ($this->collection as $rulesGenerator)
@@ -4827,31 +4855,31 @@ class RulesGenerator implements ArrayAccess, Iterator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators\Interfaces;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 interface BooleanRulesGenerator
 {
-	public function generateBooleanRules(TemplateForensics $src);
+	public function generateBooleanRules(TemplateInspector $src);
 }
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators\Interfaces;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 interface TargetedRulesGenerator
 {
-	public function generateTargetedRules(TemplateForensics $src, TemplateForensics $trg);
+	public function generateTargetedRules(TemplateInspector $src, TemplateInspector $trg);
 }
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -4865,7 +4893,7 @@ abstract class TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -4975,7 +5003,7 @@ class TemplateChecker implements ArrayAccess, Iterator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -4993,7 +5021,7 @@ abstract class TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license'); The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -5050,6 +5078,7 @@ class TemplateNormalizer implements ArrayAccess, Iterator
 		return $this->collection->valid();
 	}
 	protected $collection;
+	protected $maxIterations = 5;
 	public function __construct()
 	{
 		$this->collection = new TemplateNormalizationList;
@@ -5082,28 +5111,26 @@ class TemplateNormalizer implements ArrayAccess, Iterator
 	public function normalizeTemplate($template)
 	{
 		$dom = TemplateHelper::loadTemplate($template);
-		$applied = array();
-		$loops = 5;
+		$i = 0;
 		do
 		{
 			$old = $template;
 			foreach ($this->collection as $k => $normalization)
 			{
-				if (isset($applied[$k]) && !empty($normalization->onlyOnce))
+				if ($i > 0 && !empty($normalization->onlyOnce))
 					continue;
 				$normalization->normalize($dom->documentElement);
-				$applied[$k] = 1;
 			}
 			$template = TemplateHelper::saveTemplate($dom);
 		}
-		while (--$loops && $template !== $old);
+		while (++$i < $this->maxIterations && $template !== $old);
 		return $template;
 	}
 }
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Validators;
@@ -5124,7 +5151,7 @@ abstract class AttributeName
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Validators;
@@ -5147,7 +5174,7 @@ abstract class TagName
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -5194,7 +5221,7 @@ class Collection implements ConfigProvider, Countable, Iterator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
@@ -5368,7 +5395,7 @@ class Attribute implements ConfigProvider
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
@@ -5473,7 +5500,7 @@ class ProgrammableCallback implements ConfigProvider
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
@@ -5551,7 +5578,7 @@ class Regexp implements ConfigProvider, FilterableConfigValue
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
@@ -5750,7 +5777,7 @@ class Tag implements ConfigProvider
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
@@ -5774,7 +5801,7 @@ class Code implements FilterableConfigValue
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators;
@@ -5985,7 +6012,7 @@ class PHP implements RendererGenerator
 		           ? $this->className
 		           : $this->defaultClassPrefix . \sha1($php);
 		$this->lastClassName = $className;
-		$header = "\n/**\n* @package   s9e\TextFormatter\n* @copyright Copyright (c) 2010-2016 The s9e Authors\n* @license   http://www.opensource.org/licenses/mit-license.php The MIT License\n*/\n";
+		$header = "\n/**\n* @package   s9e\TextFormatter\n* @copyright Copyright (c) 2010-2017 The s9e Authors\n* @license   http://www.opensource.org/licenses/mit-license.php The MIT License\n*/\n";
 		$pos = \strrpos($className, '\\');
 		if ($pos !== \false)
 		{
@@ -6006,7 +6033,7 @@ class PHP implements RendererGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators\PHP;
@@ -6149,15 +6176,15 @@ class ControlStructuresOptimizer extends AbstractOptimizer
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\BooleanRulesGenerator;
 class AutoCloseIfVoid implements BooleanRulesGenerator
 {
-	public function generateBooleanRules(TemplateForensics $src)
+	public function generateBooleanRules(TemplateInspector $src)
 	{
 		return ($src->isVoid()) ? array('autoClose' => \true) : array();
 	}
@@ -6165,15 +6192,15 @@ class AutoCloseIfVoid implements BooleanRulesGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\BooleanRulesGenerator;
 class AutoReopenFormattingElements implements BooleanRulesGenerator
 {
-	public function generateBooleanRules(TemplateForensics $src)
+	public function generateBooleanRules(TemplateInspector $src)
 	{
 		return ($src->isFormattingElement()) ? array('autoReopen' => \true) : array();
 	}
@@ -6181,15 +6208,15 @@ class AutoReopenFormattingElements implements BooleanRulesGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\TargetedRulesGenerator;
 class BlockElementsFosterFormattingElements implements TargetedRulesGenerator
 {
-	public function generateTargetedRules(TemplateForensics $src, TemplateForensics $trg)
+	public function generateTargetedRules(TemplateInspector $src, TemplateInspector $trg)
 	{
 		return ($src->isBlock() && $src->isPassthrough() && $trg->isFormattingElement()) ? array('fosterParent') : array();
 	}
@@ -6197,15 +6224,15 @@ class BlockElementsFosterFormattingElements implements TargetedRulesGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\BooleanRulesGenerator;
 class DisableAutoLineBreaksIfNewLinesArePreserved implements BooleanRulesGenerator
 {
-	public function generateBooleanRules(TemplateForensics $src)
+	public function generateBooleanRules(TemplateInspector $src)
 	{
 		return ($src->preservesNewLines()) ? array('disableAutoLineBreaks' => \true) : array();
 	}
@@ -6213,11 +6240,11 @@ class DisableAutoLineBreaksIfNewLinesArePreserved implements BooleanRulesGenerat
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\BooleanRulesGenerator;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\TargetedRulesGenerator;
 class EnforceContentModels implements BooleanRulesGenerator, TargetedRulesGenerator
@@ -6226,10 +6253,10 @@ class EnforceContentModels implements BooleanRulesGenerator, TargetedRulesGenera
 	protected $span;
 	public function __construct()
 	{
-		$this->br   = new TemplateForensics('<br/>');
-		$this->span = new TemplateForensics('<span><xsl:apply-templates/></span>');
+		$this->br   = new TemplateInspector('<br/>');
+		$this->span = new TemplateInspector('<span><xsl:apply-templates/></span>');
 	}
-	public function generateBooleanRules(TemplateForensics $src)
+	public function generateBooleanRules(TemplateInspector $src)
 	{
 		$rules = array();
 		if ($src->isTransparent())
@@ -6246,9 +6273,9 @@ class EnforceContentModels implements BooleanRulesGenerator, TargetedRulesGenera
 		}
 		return $rules;
 	}
-	public function generateTargetedRules(TemplateForensics $src, TemplateForensics $trg)
+	public function generateTargetedRules(TemplateInspector $src, TemplateInspector $trg)
 	{
-		if (!$src->allowsChildElements())
+		if ($src->isIframe())
 			$src = $this->span;
 		$rules = array();
 		if (!$src->allowsChild($trg))
@@ -6261,15 +6288,15 @@ class EnforceContentModels implements BooleanRulesGenerator, TargetedRulesGenera
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\TargetedRulesGenerator;
 class EnforceOptionalEndTags implements TargetedRulesGenerator
 {
-	public function generateTargetedRules(TemplateForensics $src, TemplateForensics $trg)
+	public function generateTargetedRules(TemplateInspector $src, TemplateInspector $trg)
 	{
 		return ($src->closesParent($trg)) ? array('closeParent') : array();
 	}
@@ -6277,16 +6304,16 @@ class EnforceOptionalEndTags implements TargetedRulesGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
 use DOMXPath;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\BooleanRulesGenerator;
 class IgnoreTagsInCode implements BooleanRulesGenerator
 {
-	public function generateBooleanRules(TemplateForensics $src)
+	public function generateBooleanRules(TemplateInspector $src)
 	{
 		$xpath = new DOMXPath($src->getDOM());
 		if ($xpath->evaluate('count(//code//xsl:apply-templates)'))
@@ -6297,15 +6324,15 @@ class IgnoreTagsInCode implements BooleanRulesGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\BooleanRulesGenerator;
 class IgnoreTextIfDisallowed implements BooleanRulesGenerator
 {
-	public function generateBooleanRules(TemplateForensics $src)
+	public function generateBooleanRules(TemplateInspector $src)
 	{
 		return ($src->allowsText()) ? array() : array('ignoreText' => \true);
 	}
@@ -6313,15 +6340,15 @@ class IgnoreTextIfDisallowed implements BooleanRulesGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\BooleanRulesGenerator;
 class IgnoreWhitespaceAroundBlockElements implements BooleanRulesGenerator
 {
-	public function generateBooleanRules(TemplateForensics $src)
+	public function generateBooleanRules(TemplateInspector $src)
 	{
 		return ($src->isBlock()) ? array('ignoreSurroundingWhitespace' => \true) : array();
 	}
@@ -6329,16 +6356,16 @@ class IgnoreWhitespaceAroundBlockElements implements BooleanRulesGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
 use DOMXPath;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\BooleanRulesGenerator;
 class TrimFirstLineInCodeBlocks implements BooleanRulesGenerator
 {
-	public function generateBooleanRules(TemplateForensics $src)
+	public function generateBooleanRules(TemplateInspector $src)
 	{
 		$rules = array();
 		$xpath = new DOMXPath($src->getDOM());
@@ -6350,7 +6377,7 @@ class TrimFirstLineInCodeBlocks implements BooleanRulesGenerator
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6486,7 +6513,7 @@ abstract class AbstractDynamicContentCheck extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6616,7 +6643,7 @@ abstract class AbstractFlashRestriction extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6638,7 +6665,7 @@ class DisallowAttributeSets extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6659,7 +6686,7 @@ class DisallowCopy extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6681,7 +6708,7 @@ class DisallowDisableOutputEscaping extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6702,7 +6729,7 @@ class DisallowDynamicAttributeNames extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6723,7 +6750,7 @@ class DisallowDynamicElementNames extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6750,7 +6777,7 @@ class DisallowElementNS extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6773,7 +6800,7 @@ class DisallowObjectParamsWithGeneratedName extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6808,7 +6835,7 @@ class DisallowPHPTags extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6832,7 +6859,7 @@ class DisallowUnsafeCopyOf extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -6880,7 +6907,7 @@ class DisallowXPathFunction extends TemplateCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -6932,7 +6959,7 @@ abstract class AbstractConstantFolding extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -6952,24 +6979,26 @@ class FixUnescapedCurlyBracesInHtmlAttributes extends TemplateNormalization
 	}
 	protected function fixAttribute(DOMAttr $attribute)
 	{
-		$parentNode = $attribute->parentNode;
-		if ($parentNode->namespaceURI === self::XMLNS_XSL)
+		if ($attribute->parentNode->namespaceURI === self::XMLNS_XSL)
 			return;
-		$attribute->value = \htmlspecialchars(
-			\preg_replace(
-				'(\\b(?:do|else|(?:if|while)\\s*\\(.*?\\))\\s*\\{(?![{@]))',
-				'$0{',
-				$attribute->value
-			),
-			\ENT_NOQUOTES,
-			'UTF-8'
+		$match = array(
+			'(\\b(?:do|else|(?:if|while)\\s*\\(.*?\\))\\s*\\{(?![{@]))',
+			'((?<!\\{)(?:\\{\\{)*\\{(?!\\{)[^}]*+$)',
+			'((?<!\\{)\\{\\s*(?:"[^"]*"|\'[^\']*\'|[a-z]\\w*(?:\\s|:\\s|:(?:["\']|\\w+\\s*,))))i'
+		);
+		$replace = array(
+			'$0{',
+			'{$0',
+			'{$0'
 		);
+		$attrValue        = \preg_replace($match, $replace, $attribute->value);
+		$attribute->value = \htmlspecialchars($attrValue, \ENT_NOQUOTES, 'UTF-8');
 	}
 }
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7005,7 +7034,7 @@ class InlineAttributes extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7029,7 +7058,7 @@ class InlineCDATA extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7063,7 +7092,7 @@ class InlineElements extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7123,7 +7152,7 @@ class InlineInferredValues extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7155,7 +7184,7 @@ class InlineTextElements extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7213,7 +7242,7 @@ class InlineXPathLiterals extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7251,7 +7280,7 @@ class MinifyXPathExpressions extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7282,7 +7311,7 @@ class NormalizeAttributeNames extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7323,7 +7352,7 @@ class NormalizeElementNames extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7381,7 +7410,7 @@ class NormalizeUrls extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7443,6 +7472,10 @@ class OptimizeChoose extends TemplateNormalization
 	{
 		return ($el1->namespaceURI === $el2->namespaceURI && $el1->nodeName === $el2->nodeName && $this->getAttributes($el1) === $this->getAttributes($el2));
 	}
+	protected function isXslChoose(DOMNode $node)
+	{
+		return ($node->namespaceURI === self::XMLNS_XSL && $node->localName === 'choose');
+	}
 	protected function matchBranches($childType)
 	{
 		$branches = $this->getBranches();
@@ -7460,6 +7493,8 @@ class OptimizeChoose extends TemplateNormalization
 		if (!isset($branches[0]->firstChild))
 			return \false;
 		$firstChild = $branches[0]->firstChild;
+		if ($this->isXslChoose($firstChild))
+			return \false;
 		foreach ($branches as $branch)
 		{
 			if ($branch->childNodes->length !== 1 || !($branch->firstChild instanceof DOMElement))
@@ -7546,7 +7581,7 @@ class OptimizeChoose extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7573,7 +7608,7 @@ class OptimizeConditionalAttributes extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7604,7 +7639,7 @@ class OptimizeConditionalValueOf extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7628,7 +7663,7 @@ class PreserveSingleSpaces extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7647,7 +7682,7 @@ class RemoveComments extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7667,7 +7702,7 @@ class RemoveInterElementWhitespace extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -7707,7 +7742,7 @@ class SetRelNoreferrerOnTargetedLinks extends TemplateNormalization
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -7762,7 +7797,7 @@ class UrlConfig implements ConfigProvider
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -7826,7 +7861,7 @@ class AttributePreprocessorCollection extends Collection
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -7926,7 +7961,7 @@ class NormalizedCollection extends Collection implements ArrayAccess
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8162,7 +8197,7 @@ class Ruleset extends Collection implements ArrayAccess, ConfigProvider
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
@@ -8172,7 +8207,7 @@ abstract class Filter extends ProgrammableCallback
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -8198,7 +8233,7 @@ class DisallowUnsafeDynamicCSS extends AbstractDynamicContentCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -8224,7 +8259,7 @@ class DisallowUnsafeDynamicJS extends AbstractDynamicContentCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -8263,7 +8298,7 @@ class DisallowUnsafeDynamicURL extends AbstractDynamicContentCheck
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
@@ -8280,12 +8315,13 @@ class RestrictFlashScriptAccess extends AbstractFlashRestriction
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
 use DOMDocument;
 use DOMXPath;
+use s9e\TextFormatter\Configurator\Helpers\XPathHelper;
 class FoldArithmeticConstants extends AbstractConstantFolding
 {
 	protected $xpath;
@@ -8295,13 +8331,14 @@ class FoldArithmeticConstants extends AbstractConstantFolding
 	}
 	protected function getOptimizationPasses()
 	{
+		$n = '-?\\.\\d++|-?\\d++(?:\\.\\d++)?';
 		return array(
-			'(^[-+0-9\\s]+$)'                        => 'foldOperation',
-			'( \\+ 0(?! [^+\\)])|(?<![-\\w])0 \\+ )' => 'foldAdditiveIdentity',
-			'(^((?>\\d+ [-+] )*)(\\d+) div (\\d+))'  => 'foldDivision',
-			'(^((?>\\d+ [-+] )*)(\\d+) \\* (\\d+))'  => 'foldMultiplication',
-			'(\\( \\d+ (?>(?>[-+*]|div) \\d+ )+\\))' => 'foldSubExpression',
-			'((?<=[-+*\\(]|\\bdiv|^) \\( ([@$][-\\w]+|\\d+(?>\\.\\d+)?) \\) (?=[-+*\\)]|div|$))' => 'removeParentheses'
+			'(^[-+0-9\\s]+$)'                                            => 'foldOperation',
+			'( \\+ 0(?! [^+\\)])|(?<![-\\w])0 \\+ )'                     => 'foldAdditiveIdentity',
+			'(^((?>' . $n . ' [-+] )*)(' . $n . ') div (' . $n . '))'    => 'foldDivision',
+			'(^((?>' . $n . ' [-+] )*)(' . $n . ') \\* (' . $n . '))'    => 'foldMultiplication',
+			'(\\( (?:' . $n . ') (?>(?>[-+*]|div) (?:' . $n . ') )+\\))' => 'foldSubExpression',
+			'((?<=[-+*\\(]|\\bdiv|^) \\( ([@$][-\\w]+|' . $n . ') \\) (?=[-+*\\)]|div|$))' => 'removeParentheses'
 		);
 	}
 	public function evaluateExpression($expr)
@@ -8331,15 +8368,15 @@ class FoldArithmeticConstants extends AbstractConstantFolding
 	}
 	protected function foldDivision(array $m)
 	{
-		return $m[1] . ($m[2] / $m[3]);
+		return $m[1] . XPathHelper::export($m[2] / $m[3]);
 	}
 	protected function foldMultiplication(array $m)
 	{
-		return $m[1] . ($m[2] * $m[3]);
+		return $m[1] . XPathHelper::export($m[2] * $m[3]);
 	}
 	protected function foldOperation(array $m)
 	{
-		return (string) $this->xpath->evaluate($m[0]);
+		return XPathHelper::export($this->xpath->evaluate($m[0]));
 	}
 	protected function foldSubExpression(array $m)
 	{
@@ -8353,7 +8390,7 @@ class FoldArithmeticConstants extends AbstractConstantFolding
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
@@ -8428,7 +8465,7 @@ class FoldConstantXPathExpressions extends AbstractConstantFolding
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8460,7 +8497,7 @@ class AttributeCollection extends NormalizedCollection
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8508,7 +8545,7 @@ class AttributeFilterCollection extends NormalizedCollection
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8578,7 +8615,7 @@ class NormalizedList extends NormalizedCollection
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8644,7 +8681,7 @@ class PluginCollection extends NormalizedCollection
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8676,7 +8713,7 @@ class TagCollection extends NormalizedCollection
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8695,7 +8732,7 @@ class TemplateParameterCollection extends NormalizedCollection
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
@@ -8757,7 +8794,7 @@ class AttributeFilter extends Filter
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
@@ -8773,7 +8810,7 @@ class TagFilter extends Filter
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8804,7 +8841,7 @@ abstract class FilterChain extends NormalizedList
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8838,7 +8875,10 @@ class HostnameList extends NormalizedList
 	protected function normalizeHostmask($host)
 	{
 		if (\preg_match('#[\\x80-\xff]#', $host) && \function_exists('idn_to_ascii'))
-			$host = \idn_to_ascii($host);
+		{
+			$variant = (\defined('INTL_IDNA_VARIANT_UTS46')) ? \INTL_IDNA_VARIANT_UTS46 : 0;
+			$host = \idn_to_ascii($host, 0);
+		}
 		if (\substr($host, 0, 1) === '*')
 			$host = \ltrim($host, '*');
 		else
@@ -8853,7 +8893,7 @@ class HostnameList extends NormalizedList
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8879,7 +8919,7 @@ class RulesGeneratorList extends NormalizedList
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8902,7 +8942,7 @@ class SchemeList extends NormalizedList
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8922,7 +8962,7 @@ class TemplateCheckList extends NormalizedList
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8943,7 +8983,7 @@ class TemplateNormalizationList extends NormalizedList
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
@@ -8975,7 +9015,7 @@ class UrlFilter extends AttributeFilter
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
@@ -8995,7 +9035,7 @@ class AttributeFilterChain extends FilterChain
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
--- a/vendor/s9e/text-formatter/src/Configurator/Bundle.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Bundle.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
--- a/vendor/s9e/text-formatter/src/Configurator/Bundles/Fatdown.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Bundles/Fatdown.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Bundles;
--- a/vendor/s9e/text-formatter/src/Configurator/Bundles/Forum.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Bundles/Forum.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Bundles;
--- a/vendor/s9e/text-formatter/src/Configurator/Bundles/MediaPack.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Bundles/MediaPack.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Bundles;
--- a/vendor/s9e/text-formatter/src/Configurator/Collections/AttributeList.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Collections/AttributeList.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
--- a/vendor/s9e/text-formatter/src/Configurator/Collections/MinifierList.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Collections/MinifierList.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
--- a/vendor/s9e/text-formatter/src/Configurator/Collections/TagList.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Collections/TagList.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Collections;
--- a/vendor/s9e/text-formatter/src/Configurator/Exceptions/InvalidTemplateException.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Exceptions/InvalidTemplateException.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Exceptions;
--- a/vendor/s9e/text-formatter/src/Configurator/Exceptions/InvalidXslException.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Exceptions/InvalidXslException.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Exceptions;
--- a/vendor/s9e/text-formatter/src/Configurator/Exceptions/UnsafeTemplateException.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Exceptions/UnsafeTemplateException.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Exceptions;
--- a/vendor/s9e/text-formatter/src/Configurator/Helpers/ContextSafeness.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Helpers/ContextSafeness.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Helpers;
--- a/vendor/s9e/text-formatter/src/Configurator/Helpers/RegexpParser.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Helpers/RegexpParser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Helpers;
@@ -117,7 +117,7 @@ abstract class RegexpParser
 					$pos += 2;
 					break;
 				case '[':
-					if (!\preg_match('#\\[(.*?(?<!\\\\)(?:\\\\\\\\)*+)\\]((?:[+*][+?]?|\\?)?)#', $regexp, $m, 0, $pos))
+					if (!\preg_match('#\\[(.*?(?<!\\\\)(?:\\\\\\\\)*+)\\]((?:[+*][+?]?|\\?)?)#A', $regexp, $m, 0, $pos))
 						throw new RuntimeException('Could not find matching bracket from pos ' . $pos);
 					$ret['tokens'][] = array(
 						'pos'         => $pos,
@@ -129,7 +129,7 @@ abstract class RegexpParser
 					$pos += \strlen($m[0]);
 					break;
 				case '(':
-					if (\preg_match('#\\(\\?([a-z]*)\\)#i', $regexp, $m, 0, $pos))
+					if (\preg_match('#\\(\\?([a-z]*)\\)#iA', $regexp, $m, 0, $pos))
 					{
 						$ret['tokens'][] = array(
 							'pos'     => $pos,
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/AlnumFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/AlnumFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/ChoiceFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/ChoiceFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/ColorFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/ColorFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/EmailFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/EmailFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/FalseFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/FalseFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/FloatFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/FloatFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/FontfamilyFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/FontfamilyFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/HashmapFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/HashmapFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/IdentifierFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/IdentifierFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/IntFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/IntFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/IpFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/IpFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/IpportFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/IpportFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/Ipv4Filter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/Ipv4Filter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/Ipv6Filter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/Ipv6Filter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/MapFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/MapFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/NumberFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/NumberFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/RangeFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/RangeFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/RegexpFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/RegexpFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/SimpletextFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/SimpletextFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/UintFilter.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributeFilters/UintFilter.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items\AttributeFilters;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/AttributePreprocessor.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/AttributePreprocessor.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/TemplateDocument.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/TemplateDocument.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
--- a/vendor/s9e/text-formatter/src/Configurator/Items/UnsafeTemplate.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Items/UnsafeTemplate.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Items;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator;
@@ -67,7 +67,7 @@ class JavaScript
 		$this->config = ConfigHelper::filterConfig($this->config, 'JS');
 		$this->config = $this->callbackGenerator->replaceCallbacks($this->config);
 		$src = $this->getHints() . $this->injectConfig($this->getSource());
-		$src .= $this->getExports();
+		$src .= "if (!window['s9e']) window['s9e'] = {};\n" . $this->getExports();
 		$src = $this->getMinifier()->get($src);
 		$src = '(function(){' . $src . '})()';
 		return $src;
@@ -100,7 +100,7 @@ class JavaScript
 		$methods = array();
 		foreach ($this->exportMethods as $method)
 			$methods[] = "'" . $method . "':" . $method;
-		return "window['s9e'] = { 'TextFormatter': {" . \implode(',', $methods) . "} }\n";
+		return "window['s9e']['TextFormatter'] = {" . \implode(',', $methods) . '}';
 	}
 	protected function getHints()
 	{
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/CallbackGenerator.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/CallbackGenerator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/ConfigOptimizer.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/ConfigOptimizer.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
@@ -39,7 +39,9 @@ class ConfigOptimizer
 	}
 	protected function canDeduplicate($value)
 	{
-		return (\is_array($value) || $value instanceof Code || $value instanceof Dictionary);
+		if (\is_array($value) || $value instanceof Dictionary)
+			return (bool) \count($value);
+		return ($value instanceof Code);
 	}
 	protected function deduplicateConfigValues()
 	{
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/ConfigValue.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/ConfigValue.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/Dictionary.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/Dictionary.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/Encoder.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/Encoder.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/HintGenerator.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/HintGenerator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifier.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifier.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/ClosureCompilerApplication.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/ClosureCompilerApplication.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript\Minifiers;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/ClosureCompilerService.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/ClosureCompilerService.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript\Minifiers;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/FirstAvailable.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/FirstAvailable.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript\Minifiers;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/HostedMinifier.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/HostedMinifier.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript\Minifiers;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/MatthiasMullieMinify.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/MatthiasMullieMinify.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript\Minifiers;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/Noop.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/Noop.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript\Minifiers;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/RemoteCache.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/Minifiers/RemoteCache.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript\Minifiers;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/OnlineMinifier.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/OnlineMinifier.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/RegexpConvertor.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/RegexpConvertor.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
--- a/vendor/s9e/text-formatter/src/Configurator/JavaScript/StylesheetCompressor.php
+++ b/vendor/s9e/text-formatter/src/Configurator/JavaScript/StylesheetCompressor.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\JavaScript;
--- a/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/Unformatted.php
+++ b/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/Unformatted.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators;
--- a/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/XSLT.php
+++ b/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/XSLT.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators;
--- a/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/XSLT/Optimizer.php
+++ b/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/XSLT/Optimizer.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RendererGenerators\XSLT;
--- a/vendor/s9e/text-formatter/src/Configurator/RulesGenerators/BlockElementsCloseFormattingElements.php
+++ b/vendor/s9e/text-formatter/src/Configurator/RulesGenerators/BlockElementsCloseFormattingElements.php
@@ -2,15 +2,15 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\TargetedRulesGenerator;
 class BlockElementsCloseFormattingElements implements TargetedRulesGenerator
 {
-	public function generateTargetedRules(TemplateForensics $src, TemplateForensics $trg)
+	public function generateTargetedRules(TemplateInspector $src, TemplateInspector $trg)
 	{
 		return ($src->isBlock() && $trg->isFormattingElement()) ? array('closeParent') : array();
 	}
--- a/vendor/s9e/text-formatter/src/Configurator/RulesGenerators/ManageParagraphs.php
+++ b/vendor/s9e/text-formatter/src/Configurator/RulesGenerators/ManageParagraphs.php
@@ -2,20 +2,20 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\RulesGenerators;
-use s9e\TextFormatter\Configurator\Helpers\TemplateForensics;
+use s9e\TextFormatter\Configurator\Helpers\TemplateInspector;
 use s9e\TextFormatter\Configurator\RulesGenerators\Interfaces\BooleanRulesGenerator;
 class ManageParagraphs implements BooleanRulesGenerator
 {
 	protected $p;
 	public function __construct()
 	{
-		$this->p = new TemplateForensics('<p><xsl:apply-templates/></p>');
+		$this->p = new TemplateInspector('<p><xsl:apply-templates/></p>');
 	}
-	public function generateBooleanRules(TemplateForensics $src)
+	public function generateBooleanRules(TemplateInspector $src)
 	{
 		$rules = array();
 		if ($src->allowsChild($this->p) && $src->isBlock() && !$this->p->closesParent($src))
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateChecks/DisallowElement.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateChecks/DisallowElement.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateChecks/DisallowFlashFullScreen.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateChecks/DisallowFlashFullScreen.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateChecks/DisallowNodeByXPath.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateChecks/DisallowNodeByXPath.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateChecks/RestrictFlashNetworking.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateChecks/RestrictFlashNetworking.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateChecks;
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/ConvertCurlyExpressionsInText.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/ConvertCurlyExpressionsInText.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/Custom.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/Custom.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/MergeConsecutiveCopyOf.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/MergeConsecutiveCopyOf.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/MergeIdenticalConditionalBranches.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/MergeIdenticalConditionalBranches.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/OptimizeNestedConditionals.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/OptimizeNestedConditionals.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/SortAttributesByName.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/SortAttributesByName.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
--- a/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/TransposeComments.php
+++ b/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/TransposeComments.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
--- a/vendor/s9e/text-formatter/src/Configurator/Validators/TemplateParameterName.php
+++ b/vendor/s9e/text-formatter/src/Configurator/Validators/TemplateParameterName.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Configurator\Validators;
--- a/vendor/s9e/text-formatter/src/Parser.js
+++ b/vendor/s9e/text-formatter/src/Parser.js
@@ -578,7 +578,7 @@ function finalizeOutput()
 	do
 	{
 		tmp = output;
-		output = output.replace(/<([^ />]+)><\/\1>/g, '');
+		output = output.replace(/<([^ />]+)[^>]*><\/\1>/g, '');
 	}
 	while (output !== tmp);
 
@@ -1180,11 +1180,13 @@ function closeAncestor(tag)
 
 				if (tagConfig.rules.closeAncestor[ancestorName])
 				{
+					++currentFixingCost;
+
 					// We have to close this ancestor. First we reinsert this tag...
 					tagStack.push(tag);
 
-					// ...then we add a new end tag for it
-					addMagicEndTag(ancestor, tag.getPos());
+					// ...then we add a new end tag for it with a better priority
+					addMagicEndTag(ancestor, tag.getPos(), tag.getSortPriority() - 1);
 
 					return true;
 				}
@@ -1220,11 +1222,13 @@ function closeParent(tag)
 
 			if (tagConfig.rules.closeParent[parentName])
 			{
+				++currentFixingCost;
+
 				// We have to close that parent. First we reinsert the tag...
 				tagStack.push(tag);
 
-				// ...then we add a new end tag for it
-				addMagicEndTag(parent, tag.getPos());
+				// ...then we add a new end tag for it with a better priority
+				addMagicEndTag(parent, tag.getPos(), tag.getSortPriority() - 1);
 
 				return true;
 			}
@@ -1293,10 +1297,7 @@ function fosterParent(tag)
 			{
 				if (parentName !== tagName && currentFixingCost < maxFixingCost)
 				{
-					// Add a 0-width copy of the parent tag right after this tag, with a worse
-					// priority and make it depend on this tag
-					var child = addCopyTag(parent, tag.getPos() + tag.getLen(), 0, tag.getSortPriority() + 1);
-					tag.cascadeInvalidationTo(child);
+					addFosterTag(tag, parent)
 				}
 
 				// Reinsert current tag
@@ -1361,6 +1362,23 @@ function requireAncestor(tag)
 //==========================================================================
 
 /**
+* Create and add a copy of a tag as a child of a given tag
+*
+* @param {!Tag} tag       Current tag
+* @param {!Tag} fosterTag Tag to foster
+*/
+function addFosterTag(tag, fosterTag)
+{
+	var coords    = getMagicStartCoords(tag.getPos() + tag.getLen()),
+		childPos  = coords[0],
+		childPrio = coords[1];
+
+	// Add a 0-width copy of the parent tag after this tag and make it depend on this tag
+	var childTag = addCopyTag(fosterTag, childPos, 0, childPrio);
+	tag.cascadeInvalidationTo(childTag);
+}
+
+/**
 * Create and add an end tag for given start tag at given position
 *
 * @param  {!Tag}    startTag Start tag
@@ -1372,9 +1390,9 @@ function addMagicEndTag(startTag, tagPos)
 	var tagName = startTag.getName();
 
 	// Adjust the end tag's position if whitespace is to be minimized
-	if (HINT.RULE_IGNORE_WHITESPACE && (startTag.getFlags() & RULE_IGNORE_WHITESPACE))
+	if (HINT.RULE_IGNORE_WHITESPACE && ((currentTag.getFlags() | startTag.getFlags()) & RULE_IGNORE_WHITESPACE))
 	{
-		tagPos = getMagicPos(tagPos);
+		tagPos = getMagicEndPos(tagPos);
 	}
 
 	// Add a 0-width end tag that is paired with the given start tag
@@ -1390,7 +1408,7 @@ function addMagicEndTag(startTag, tagPos)
 * @param  {!number} tagPos Rightmost possible position for the tag
 * @return {!number}
 */
-function getMagicPos(tagPos)
+function getMagicEndPos(tagPos)
 {
 	// Back up from given position to the cursor's position until we find a character that
 	// is not whitespace
@@ -1403,6 +1421,40 @@ function getMagicPos(tagPos)
 }
 
 /**
+* Compute the position and priority of a magic start tag, adjusted for whitespace
+*
+* @param  {!number}   tagPos Leftmost possible position for the tag
+* @return {!number[]}        [Tag pos, priority]
+*/
+function getMagicStartCoords(tagPos)
+{
+	var nextPos, nextPrio, nextTag, prio;
+	if (!tagStack.length)
+	{
+		// Set the next position outside the text boundaries
+		nextPos  = textLen + 1;
+		nextPrio = 0;
+	}
+	else
+	{
+		nextTag  = tagStack[tagStack.length - 1];
+		nextPos  = nextTag.getPos();
+		nextPrio = nextTag.getSortPriority();
+	}
+
+	// Find the first non-whitespace position before next tag or the end of text
+	while (tagPos < nextPos && WHITESPACE.indexOf(text[tagPos]) > -1)
+	{
+		++tagPos;
+	}
+
+	// Set a priority that ensures this tag appears before the next tag
+	prio = (tagPos === nextPos) ? nextPrio - 1 : 0;
+
+	return [tagPos, prio];
+}
+
+/**
 * Test whether given start tag is immediately followed by a closing tag
 *
 * @param  {!Tag} tag Start tag (including self-closing)
@@ -1589,10 +1641,13 @@ function processStartTag(tag)
 		return;
 	}
 
-	if (fosterParent(tag) || closeParent(tag) || closeAncestor(tag))
+	if (currentFixingCost < maxFixingCost)
 	{
-		// This tag parent/ancestor needs to be closed, we just return (the tag is still valid)
-		return;
+		if (fosterParent(tag) || closeParent(tag) || closeAncestor(tag))
+		{
+			// This tag parent/ancestor needs to be closed, we just return (the tag is still valid)
+			return;
+		}
 	}
 
 	if (cntOpen[tagName] >= tagConfig.nestingLimit)
@@ -1707,6 +1762,14 @@ function processEndTag(tag)
 		return;
 	}
 
+	// Accumulate flags to determine whether whitespace should be trimmed
+	var flags = tag.getFlags();
+	closeTags.forEach(function(openTag)
+	{
+		flags |= openTag.getFlags();
+	});
+	var ignoreWhitespace = (HINT.RULE_IGNORE_WHITESPACE && (flags & RULE_IGNORE_WHITESPACE));
+
 	// Only reopen tags if we haven't exceeded our "fixing" budget
 	var keepReopening = HINT.RULE_AUTO_REOPEN && (currentFixingCost < maxFixingCost),
 		reopenTags    = [];
@@ -1729,9 +1792,9 @@ function processEndTag(tag)
 
 		// Find the earliest position we can close this open tag
 		var tagPos = tag.getPos();
-		if (HINT.RULE_IGNORE_WHITESPACE && openTag.getFlags() & RULE_IGNORE_WHITESPACE)
+		if (ignoreWhitespace)
 		{
-			tagPos = getMagicPos(tagPos);
+			tagPos = getMagicEndPos(tagPos);
 		}
 
 		// Output an end tag to close this start tag, then update the context
--- a/vendor/s9e/text-formatter/src/Parser.php
+++ b/vendor/s9e/text-formatter/src/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter;
@@ -277,7 +277,7 @@ class Parser
 		$this->outputText($this->textLen, 0, \true);
 		do
 		{
-			$this->output = \preg_replace('(<([^ />]+)></\\1>)', '', $this->output, -1, $cnt);
+			$this->output = \preg_replace('(<([^ />]++)[^>]*></\\1>)', '', $this->output, -1, $cnt);
 		}
 		while ($cnt > 0);
 		if (\strpos($this->output, '</i><i>') !== \false)
@@ -568,8 +568,9 @@ class Parser
 					$ancestorName = $ancestor->getName();
 					if (isset($tagConfig['rules']['closeAncestor'][$ancestorName]))
 					{
+						++$this->currentFixingCost;
 						$this->tagStack[] = $tag;
-						$this->addMagicEndTag($ancestor, $tag->getPos());
+						$this->addMagicEndTag($ancestor, $tag->getPos(), $tag->getSortPriority() - 1);
 						return \true;
 					}
 				}
@@ -589,8 +590,9 @@ class Parser
 				$parentName = $parent->getName();
 				if (isset($tagConfig['rules']['closeParent'][$parentName]))
 				{
+					++$this->currentFixingCost;
 					$this->tagStack[] = $tag;
-					$this->addMagicEndTag($parent, $tag->getPos());
+					$this->addMagicEndTag($parent, $tag->getPos(), $tag->getSortPriority() - 1);
 					return \true;
 				}
 			}
@@ -621,10 +623,7 @@ class Parser
 				if (isset($tagConfig['rules']['fosterParent'][$parentName]))
 				{
 					if ($parentName !== $tagName && $this->currentFixingCost < $this->maxFixingCost)
-					{
-						$child = $this->addCopyTag($parent, $tag->getPos() + $tag->getLen(), 0, $tag->getSortPriority() + 1);
-						$tag->cascadeInvalidationTo($child);
-					}
+						$this->addFosterTag($tag, $parent);
 					$this->tagStack[] = $tag;
 					$this->addMagicEndTag($parent, $tag->getPos(), $tag->getSortPriority() - 1);
 					$this->currentFixingCost += 4;
@@ -651,21 +650,45 @@ class Parser
 		}
 		return \false;
 	}
+	protected function addFosterTag(Tag $tag, Tag $fosterTag)
+	{
+		list($childPos, $childPrio) = $this->getMagicStartCoords($tag->getPos() + $tag->getLen());
+		$childTag = $this->addCopyTag($fosterTag, $childPos, 0, $childPrio);
+		$tag->cascadeInvalidationTo($childTag);
+	}
 	protected function addMagicEndTag(Tag $startTag, $tagPos, $prio = 0)
 	{
 		$tagName = $startTag->getName();
-		if ($startTag->getFlags() & self::RULE_IGNORE_WHITESPACE)
-			$tagPos = $this->getMagicPos($tagPos);
+		if (($this->currentTag->getFlags() | $startTag->getFlags()) & self::RULE_IGNORE_WHITESPACE)
+			$tagPos = $this->getMagicEndPos($tagPos);
 		$endTag = $this->addEndTag($tagName, $tagPos, 0, $prio);
 		$endTag->pairWith($startTag);
 		return $endTag;
 	}
-	protected function getMagicPos($tagPos)
+	protected function getMagicEndPos($tagPos)
 	{
 		while ($tagPos > $this->pos && \strpos(self::WHITESPACE, $this->text[$tagPos - 1]) !== \false)
 			--$tagPos;
 		return $tagPos;
 	}
+	protected function getMagicStartCoords($tagPos)
+	{
+		if (empty($this->tagStack))
+		{
+			$nextPos  = $this->textLen + 1;
+			$nextPrio = 0;
+		}
+		else
+		{
+			$nextTag  = \end($this->tagStack);
+			$nextPos  = $nextTag->getPos();
+			$nextPrio = $nextTag->getSortPriority();
+		}
+		while ($tagPos < $nextPos && \strpos(self::WHITESPACE, $this->text[$tagPos]) !== \false)
+			++$tagPos;
+		$prio = ($tagPos === $nextPos) ? $nextPrio - 1 : 0;
+		return array($tagPos, $prio);
+	}
 	protected function isFollowedByClosingTag(Tag $tag)
 	{
 		return (empty($this->tagStack)) ? \false : \end($this->tagStack)->canClose($tag);
@@ -764,8 +787,9 @@ class Parser
 			$tag->invalidate();
 			return;
 		}
-		if ($this->fosterParent($tag) || $this->closeParent($tag) || $this->closeAncestor($tag))
-			return;
+		if ($this->currentFixingCost < $this->maxFixingCost)
+			if ($this->fosterParent($tag) || $this->closeParent($tag) || $this->closeAncestor($tag))
+				return;
 		if ($this->cntOpen[$tagName] >= $tagConfig['nestingLimit'])
 		{
 			$this->logger->err(
@@ -832,6 +856,10 @@ class Parser
 			$this->logger->debug('Skipping end tag with no start tag', array('tag' => $tag));
 			return;
 		}
+		$flags = $tag->getFlags();
+		foreach ($closeTags as $openTag)
+			$flags |= $openTag->getFlags();
+		$ignoreWhitespace = (bool) ($flags & self::RULE_IGNORE_WHITESPACE);
 		$keepReopening = (bool) ($this->currentFixingCost < $this->maxFixingCost);
 		$reopenTags = array();
 		foreach ($closeTags as $openTag)
@@ -843,8 +871,8 @@ class Parser
 				else
 					$keepReopening = \false;
 			$tagPos = $tag->getPos();
-			if ($openTag->getFlags() & self::RULE_IGNORE_WHITESPACE)
-				$tagPos = $this->getMagicPos($tagPos);
+			if ($ignoreWhitespace)
+				$tagPos = $this->getMagicEndPos($tagPos);
 			$endTag = new Tag(Tag::END_TAG, $openTagName, $tagPos, 0);
 			$endTag->setFlags($openTag->getFlags());
 			$this->outputTag($endTag);
--- a/vendor/s9e/text-formatter/src/Parser/BuiltInFilters.php
+++ b/vendor/s9e/text-formatter/src/Parser/BuiltInFilters.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Parser;
@@ -170,7 +170,10 @@ class BuiltInFilters
 		$parts['scheme'] = \strtolower($parts['scheme']);
 		$parts['host'] = \rtrim(\preg_replace("/\xE3\x80\x82|\xEF(?:\xBC\x8E|\xBD\xA1)/s", '.', $parts['host']), '.');
 		if (\preg_match('#[^[:ascii:]]#', $parts['host']) && \function_exists('idn_to_ascii'))
-			$parts['host'] = \idn_to_ascii($parts['host']);
+		{
+			$variant = (\defined('INTL_IDNA_VARIANT_UTS46')) ? \INTL_IDNA_VARIANT_UTS46 : 0;
+			$parts['host'] = \idn_to_ascii($parts['host'], 0);
+		}
 		return $parts;
 	}
 	protected static function rebuildUrl(array $p)
--- a/vendor/s9e/text-formatter/src/Parser/Logger.php
+++ b/vendor/s9e/text-formatter/src/Parser/Logger.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Parser;
--- a/vendor/s9e/text-formatter/src/Parser/Tag.php
+++ b/vendor/s9e/text-formatter/src/Parser/Tag.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Parser;
@@ -75,11 +75,6 @@ class Tag
 	{
 		$this->flags = $flags;
 	}
-	public function setSortPriority($sortPriority)
-	{
-		$this->sortPriority = $sortPriority;
-		\trigger_error('setSortPriority() is deprecated. Set the priority when calling adding the tag instead. See http://s9etextformatter.readthedocs.io/Internals/API_changes/#070', \E_USER_DEPRECATED);
-	}
 	public function getAttributes()
 	{
 		return $this->attributes;
--- a/vendor/s9e/text-formatter/src/Plugins/Autoemail/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Autoemail/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Autoemail;
--- a/vendor/s9e/text-formatter/src/Plugins/Autoemail/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Autoemail/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Autoemail;
--- a/vendor/s9e/text-formatter/src/Plugins/Autoimage/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Autoimage/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Autoimage;
@@ -11,7 +11,7 @@ class Configurator extends ConfiguratorBase
 {
 	protected $attrName = 'src';
 	protected $quickMatch = '://';
-	protected $regexp = '#\\bhttps?://[-.\\w]+/[-./\\w]+\\.(?:gif|jpe?g|png)(?!\\S)#i';
+	protected $regexp = '#\\bhttps?://[-.\\w]+/(?:[-+.:/\\w]|%[0-9a-f]{2}|\\(\\w+\\))+\\.(?:gif|jpe?g|png)(?!\\S)#i';
 	protected $tagName = 'IMG';
 	protected function setUp()
 	{
--- a/vendor/s9e/text-formatter/src/Plugins/Autoimage/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Autoimage/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Autoimage;
--- a/vendor/s9e/text-formatter/src/Plugins/Autolink/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Autolink/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Autolink;
@@ -38,7 +38,7 @@ class Configurator extends ConfiguratorBase
 		$anchor = RegexpBuilder::fromList($this->configurator->urlConfig->getAllowedSchemes()) . '://';
 		if ($this->matchWww)
 			$anchor = '(?:' . $anchor . '|www\\.)';
-		$regexp = '#\\b' . $anchor . '\\S(?>[^\\s\\[\\]\\x{FF01}-\\x{FF0F}\\x{FF1A}-\\x{FF20}\\x{FF3B}-\\x{FF40}\\x{FF5B}-\\x{FF65}]|\\[\\w*\\])++#Siu';
+		$regexp = '#\\b' . $anchor . '\\S(?>[^\\s()\\[\\]\\x{FF01}-\\x{FF0F}\\x{FF1A}-\\x{FF20}\\x{FF3B}-\\x{FF40}\\x{FF5B}-\\x{FF65}]|\\([^\\s()]*\\)|\\[\\w*\\])++#Siu';
 		return $regexp;
 	}
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Plugins/Autolink/Parser.js
+++ b/vendor/s9e/text-formatter/src/Plugins/Autolink/Parser.js
@@ -51,16 +51,5 @@ function linkifyUrl(tagPos, url)
 */
 function trimUrl(url)
 {
-	while (1)
-	{
-		url = url.replace(/(?![-=\/)])[\s!-.:-@[-`{-~]+$/, '');
-		if (url.substr(-1) === ')' && url.replace(/[^(]+/g, '').length < url.replace(/[^)]+/g, '').length)
-		{
-			url = url.substr(0, url.length - 1);
-			continue;
-		}
-		break;
-	}
-
-	return url;
+	return url.replace(/(?![-=\/)])[\s!-.:-@[-`{-~]+$/, '');
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Plugins/Autolink/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Autolink/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Autolink;
@@ -27,16 +27,6 @@ class Parser extends ParserBase
 	}
 	protected function trimUrl($url)
 	{
-		while (1)
-		{
-			$url = \preg_replace('#(?![-=/)])[\\s!-.:-@[-`{-~\\pP]+$#Du', '', $url);
-			if (\substr($url, -1) === ')' && \substr_count($url, '(') < \substr_count($url, ')'))
-			{
-				$url = \substr($url, 0, -1);
-				continue;
-			}
-			break;
-		}
-		return $url;
+		return \preg_replace('#(?![-=/)])[\\s!-.:-@[-`{-~\\pP]+$#Du', '', $url);
 	}
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Plugins/Autovideo/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Autovideo/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Autovideo;
@@ -12,7 +12,7 @@ class Configurator extends ConfiguratorBase
 {
 	protected $attrName = 'src';
 	protected $quickMatch = '://';
-	protected $regexp = '#\\bhttps?://[-.\\w]+/[-./\\w]+\\.(?:mp4|ogg|webm)(?!\\S)#i';
+	protected $regexp = '#\\bhttps?://[-.\\w]+/(?:[-+.:/\\w]|%[0-9a-f]{2}|\\(\\w+\\))+\\.(?:mp4|ogg|webm)(?!\\S)#i';
 	protected $tagName = 'VIDEO';
 	protected function setUp()
 	{
--- a/vendor/s9e/text-formatter/src/Plugins/Autovideo/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Autovideo/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Autovideo;
--- a/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\BBCodes;
--- a/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/AttributeValueCollection.php
+++ b/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/AttributeValueCollection.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\BBCodes\Configurator;
--- a/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/BBCode.php
+++ b/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/BBCode.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\BBCodes\Configurator;
--- a/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/BBCodeCollection.php
+++ b/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/BBCodeCollection.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\BBCodes\Configurator;
--- a/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/BBCodeMonkey.php
+++ b/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/BBCodeMonkey.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\BBCodes\Configurator;
@@ -41,6 +41,7 @@ class BBCodeMonkey
 	);
 	protected $configurator;
 	public $tokenRegexp = array(
+		'ANYTHING'   => '[\\s\\S]*?',
 		'COLOR'      => '[a-zA-Z]+|#[0-9a-fA-F]+',
 		'EMAIL'      => '[^@]+@.+?',
 		'FLOAT'      => '(?>0|-?[1-9]\\d*)(?>\\.\\d+)?(?>e[1-9]\\d*)?',
@@ -51,6 +52,7 @@ class BBCodeMonkey
 		'NUMBER'     => '\\d+',
 		'RANGE'      => '\\d+',
 		'SIMPLETEXT' => '[-a-zA-Z0-9+.,_ ]+',
+		'TEXT'       => '[\\s\\S]*?',
 		'UINT'       => '0|[1-9]\\d*'
 	);
 	public $unfilteredTokens = array(
@@ -118,7 +120,7 @@ class BBCodeMonkey
 		);
 		$regexp = '(^'
 		        . '\\[(?<bbcodeName>\\S+?)'
-		        . '(?<defaultAttribute>=\\S+?)?'
+		        . '(?<defaultAttribute>=.+?)?'
 		        . '(?<attributes>(?:\\s+[^=]+=\\S+?)*?)?'
 		        . '\\s*(?:/?\\]|\\]\\s*(?<content>.*?)\\s*(?<endTag>\\[/\\1]))$)i';
 		if (!\preg_match($regexp, \trim($usage), $m))
@@ -155,7 +157,8 @@ class BBCodeMonkey
 			if ($name[0] === '$')
 			{
 				$optionName = \substr($name, 1);
-				$bbcode->$optionName = $this->convertValue($value);
+				$object = ($optionName === 'nestingLimit' || $optionName === 'tagLimit') ? $tag : $bbcode;
+				$object->$optionName = $this->convertValue($value);
 			}
 			elseif ($name[0] === '#')
 			{
@@ -248,7 +251,9 @@ class BBCodeMonkey
 					}
 					$table[$tokenId] = $matchName;
 				}
-				$regexp .= \preg_quote(\substr($definition, $lastPos, $token['pos'] - $lastPos), '/');
+				$literal = \preg_quote(\substr($definition, $lastPos, $token['pos'] - $lastPos), '/');
+				$literal = \preg_replace('(\\s+)', '\\s+', $literal);
+				$regexp .= $literal;
 				$expr = (isset($this->tokenRegexp[$tokenType]))
 				      ? $this->tokenRegexp[$tokenType]
 				      : '.+?';
--- a/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/Repository.php
+++ b/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/Repository.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\BBCodes\Configurator;
--- a/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/RepositoryCollection.php
+++ b/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/RepositoryCollection.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\BBCodes\Configurator;
--- a/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/repository.xml
+++ b/vendor/s9e/text-formatter/src/Plugins/BBCodes/Configurator/repository.xml
@@ -380,18 +380,10 @@
 							firstChildStyle  = firstChild.style,
 							lastChildStyle   = lastChild.style;
 
-						if (nextSiblingStyle.display !== '')
-						{
-							nextSiblingStyle.display = lastChildStyle.display = '';
-							firstChildStyle.display  = 'none';
-						}
-						else
-						{
-							nextSiblingStyle.display = lastChildStyle.display = 'none';
-							firstChildStyle.display  = '';
-						}
+						firstChildStyle.display  = nextSiblingStyle.display;
+						nextSiblingStyle.display = lastChildStyle.display = (firstChildStyle.display) ? '' : 'none';
 					-->
-					<button onclick="var a=parentNode.nextSibling.style,b=firstChild.style,c=lastChild.style;''!==a.display?(a.display=c.display='',b.display='none'):(a.display=c.display='none',b.display='')"><span>]]><var name="showStr">Show</var><![CDATA[</span><span style="display:none">]]><var name="hideStr">Hide</var><![CDATA[</span></button>
+					<button onclick="var a=parentNode.nextSibling.style,b=firstChild.style,c=lastChild.style;b.display=a.display;a.display=c.display=(b.display)?'':'none'"><span>]]><var name="showStr">Show</var><![CDATA[</span><span style="display:none">]]><var name="hideStr">Hide</var><![CDATA[</span></button>
 					<span class="spoiler-title">]]><var name="spoilerStr">Spoiler:</var><![CDATA[ {TEXT1}</span>
 				</div>
 				<div class="spoiler-content" style="display:none">{TEXT2}</div>
@@ -427,6 +419,13 @@
 		]]></template>
 	</bbcode>
 
+	<bbcode name="TBODY">
+		<usage>[TBODY]{ANYTHING}[/TBODY]</usage>
+		<template><![CDATA[
+			<tbody>{ANYTHING}</tbody>
+		]]></template>
+	</bbcode>
+
 	<bbcode name="TD">
 		<usage>[TD align={CHOICE=left,center,right,justify;caseSensitive;optional;preFilter=strtolower} #createParagraphs=false]{TEXT}[/TD]</usage>
 		<template><![CDATA[
@@ -451,6 +450,13 @@
 		]]></template>
 	</bbcode>
 
+	<bbcode name="THEAD">
+		<usage>[THEAD]{ANYTHING}[/THEAD]</usage>
+		<template><![CDATA[
+			<thead>{ANYTHING}</thead>
+		]]></template>
+	</bbcode>
+
 	<bbcode name="TR">
 		<usage>[TR]{ANYTHING}[/TR]</usage>
 		<template><![CDATA[
--- a/vendor/s9e/text-formatter/src/Plugins/BBCodes/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/BBCodes/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\BBCodes;
--- a/vendor/s9e/text-formatter/src/Plugins/Censor/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Censor/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Censor;
@@ -116,9 +116,10 @@ class Configurator extends ConfiguratorBase implements ArrayAccess, Countable, I
 		if (empty($words))
 			return;
 		$config = array(
-			'attrName' => $this->attrName,
-			'regexp'   => $this->getWordsRegexp(\array_keys($words)),
-			'tagName'  => $this->tagName
+			'attrName'   => $this->attrName,
+			'regexp'     => $this->getWordsRegexp(\array_keys($words)),
+			'regexpHtml' => $this->getWordsRegexp(\array_map('htmlspecialchars', \array_keys($words))),
+			'tagName'    => $this->tagName
 		);
 		$replacementWords = array();
 		foreach ($words as $word => $replacement)
--- a/vendor/s9e/text-formatter/src/Plugins/Censor/Helper.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Censor/Helper.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Censor;
@@ -12,6 +12,7 @@ class Helper
 	public $attrName = 'with';
 	public $defaultReplacement = '****';
 	public $regexp = '/(?!)/';
+	public $regexpHtml = '/(?!)/';
 	public $replacements = array();
 	public $tagName = 'CENSOR';
 	public function __construct(array $config)
@@ -25,18 +26,18 @@ class Helper
 		$attributesExpr = '';
 		if ($censorAttributes)
 			$attributesExpr = '|[^<">]*+(?=<|$|"(?> [-\\w]+="[^"]*+")*+\\/?>)';
-		$delim  = $this->regexp[0];
-		$pos    = \strrpos($this->regexp, $delim);
+		$delim  = $this->regexpHtml[0];
+		$pos    = \strrpos($this->regexpHtml, $delim);
 		$regexp = $delim
 		        . '(?<!&#)(?<!&)'
-		        . \substr($this->regexp, 1, $pos - 1)
+		        . \substr($this->regexpHtml, 1, $pos - 1)
 		        . '(?=[^<>]*+(?=<|$)' . $attributesExpr . ')'
-		        . \substr($this->regexp, $pos);
+		        . \substr($this->regexpHtml, $pos);
 		return \preg_replace_callback(
 			$regexp,
 			function ($m) use ($_this)
 			{
-				return \htmlspecialchars($_this->getReplacement($m[0]), \ENT_QUOTES);
+				return \htmlspecialchars($_this->getReplacement(\html_entity_decode($m[0], \ENT_QUOTES, 'UTF-8')), \ENT_QUOTES);
 			},
 			$html
 		);
@@ -57,44 +58,6 @@ class Helper
 	{
 		return (\preg_match($this->regexp, $word) && !$this->isAllowed($word));
 	}
-	public function reparse($xml)
-	{
-		$_this = $this;
-		if (\strpos($xml, '</' . $this->tagName . '>') !== \false)
-		{
-			$xml = \preg_replace_callback(
-				'#<' . $this->tagName . '[^>]*>([^<]+)</' . $this->tagName . '>#',
-				function ($m) use ($_this)
-				{
-					return ($_this->isCensored($m[1])) ? $_this->buildTag($m[1]) : $m[1];
-				},
-				$xml
-			);
-		}
-		$delim  = $this->regexp[0];
-		$pos    = \strrpos($this->regexp, $delim);
-		$regexp = $delim
-		        . '(?<!&)'
-		        . \substr($this->regexp, 1, $pos - 1)
-		        . '(?=[^<>]*+<(?!\\/(?-i)' . $this->tagName . '>))'
-		        . \substr($this->regexp, $pos);
-		$xml = \preg_replace_callback(
-			$regexp,
-			function ($m) use ($_this)
-			{
-				return ($_this->isAllowed($m[0])) ? $m[0] : $_this->buildTag($m[0]);
-			},
-			$xml,
-			-1,
-			$cnt
-		);
-		if ($cnt > 0 && $xml[1] === 't')
-		{
-			$xml[1] = 'r';
-			$xml[\strlen($xml) - 2] = 'r';
-		}
-		return $xml;
-	}
 	public function buildTag($word)
 	{
 		$startTag = '<' . $this->tagName;
--- a/vendor/s9e/text-formatter/src/Plugins/Censor/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Censor/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Censor;
--- a/vendor/s9e/text-formatter/src/Plugins/ConfiguratorBase.php
+++ b/vendor/s9e/text-formatter/src/Plugins/ConfiguratorBase.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins;
--- a/vendor/s9e/text-formatter/src/Plugins/Emoji/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Emoji/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Emoji;
--- a/vendor/s9e/text-formatter/src/Plugins/Emoji/Parser.js
+++ b/vendor/s9e/text-formatter/src/Plugins/Emoji/Parser.js
@@ -2,10 +2,10 @@
 var asciiRegexp = /:[-+_a-z0-9]+(?=:)/g;
 
 /** @const */
-var map = {"+1":"1f44d","-1":"1f44e","100":"1f4af","1234":"1f522","8ball":"1f3b1","a":"1f170","ab":"1f18e","abc":"1f524","abcd":"1f521","accept":"1f251","aerial_tramway":"1f6a1","afghanistan":"1f1e6-1f1eb","airplane":"2708","airplane_arriving":"1f6ec","airplane_departure":"1f6eb","airplane_small":"1f6e9","aland_islands":"1f1e6-1f1fd","alarm_clock":"23f0","albania":"1f1e6-1f1f1","alembic":"2697","algeria":"1f1e9-1f1ff","alien":"1f47d","ambulance":"1f691","american_samoa":"1f1e6-1f1f8","amphora":"1f3fa","anchor":"2693","andorra":"1f1e6-1f1e9","angel":"1f47c","angel_tone1":"1f47c-1f3fb","angel_tone2":"1f47c-1f3fc","angel_tone3":"1f47c-1f3fd","angel_tone4":"1f47c-1f3fe","angel_tone5":"1f47c-1f3ff","anger":"1f4a2","anger_right":"1f5ef","angola":"1f1e6-1f1f4","angry":"1f620","anguilla":"1f1e6-1f1ee","anguished":"1f627","ant":"1f41c","antarctica":"1f1e6-1f1f6","antigua_barbuda":"1f1e6-1f1ec","apple":"1f34e","aquarius":"2652","argentina":"1f1e6-1f1f7","aries":"2648","armenia":"1f1e6-1f1f2","arrow_backward":"25c0","arrow_double_down":"23ec","arrow_double_up":"23eb","arrow_down":"2b07","arrow_down_small":"1f53d","arrow_forward":"25b6","arrow_heading_down":"2935","arrow_heading_up":"2934","arrow_left":"2b05","arrow_lower_left":"2199","arrow_lower_right":"2198","arrow_right":"27a1","arrow_right_hook":"21aa","arrow_up":"2b06","arrow_up_down":"2195","arrow_up_small":"1f53c","arrow_upper_left":"2196","arrow_upper_right":"2197","arrows_clockwise":"1f503","arrows_counterclockwise":"1f504","art":"1f3a8","articulated_lorry":"1f69b","artificial_satellite":"1f6f0","aruba":"1f1e6-1f1fc","asterisk":"002a-20e3","astonished":"1f632","athletic_shoe":"1f45f","atm":"1f3e7","atom":"269b","atom_symbol":"269b","australia":"1f1e6-1f1fa","austria":"1f1e6-1f1f9","avocado":"1f951","azerbaijan":"1f1e6-1f1ff","b":"1f171","baby":"1f476","baby_bottle":"1f37c","baby_chick":"1f424","baby_symbol":"1f6bc","baby_tone1":"1f476-1f3fb","baby_tone2":"1f476-1f3fc","baby_tone3":"1f476-1f3fd","baby_tone4":"1f476-1f3fe","baby_tone5":"1f476-1f3ff","back":"1f519","bacon":"1f953","badminton":"1f3f8","baggage_claim":"1f6c4","bahamas":"1f1e7-1f1f8","bahrain":"1f1e7-1f1ed","balance_scale":"2696","balloon":"1f388","ballot_box":"1f5f3","ballot_box_with_check":"2611","bamboo":"1f38d","banana":"1f34c","bangbang":"203c","bangladesh":"1f1e7-1f1e9","bank":"1f3e6","bar_chart":"1f4ca","barbados":"1f1e7-1f1e7","barber":"1f488","baseball":"26be","basketball":"1f3c0","basketball_man":"26f9","basketball_player":"26f9","basketball_player_tone1":"26f9-1f3fb","basketball_player_tone2":"26f9-1f3fc","basketball_player_tone3":"26f9-1f3fd","basketball_player_tone4":"26f9-1f3fe","basketball_player_tone5":"26f9-1f3ff","bat":"1f987","bath":"1f6c0","bath_tone1":"1f6c0-1f3fb","bath_tone2":"1f6c0-1f3fc","bath_tone3":"1f6c0-1f3fd","bath_tone4":"1f6c0-1f3fe","bath_tone5":"1f6c0-1f3ff","bathtub":"1f6c1","battery":"1f50b","beach":"1f3d6","beach_umbrella":"26f1","bear":"1f43b","bed":"1f6cf","bee":"1f41d","beer":"1f37a","beers":"1f37b","beetle":"1f41e","beginner":"1f530","belarus":"1f1e7-1f1fe","belgium":"1f1e7-1f1ea","belize":"1f1e7-1f1ff","bell":"1f514","bellhop":"1f6ce","bellhop_bell":"1f6ce","benin":"1f1e7-1f1ef","bento":"1f371","bermuda":"1f1e7-1f1f2","bhutan":"1f1e7-1f1f9","bicyclist":"1f6b4","bicyclist_tone1":"1f6b4-1f3fb","bicyclist_tone2":"1f6b4-1f3fc","bicyclist_tone3":"1f6b4-1f3fd","bicyclist_tone4":"1f6b4-1f3fe","bicyclist_tone5":"1f6b4-1f3ff","bike":"1f6b2","biking_man":"1f6b4","bikini":"1f459","biohazard":"2623","bird":"1f426","birthday":"1f382","black_circle":"26ab","black_flag":"1f3f4","black_heart":"1f5a4","black_joker":"1f0cf","black_large_square":"2b1b","black_medium_small_square":"25fe","black_medium_square":"25fc","black_nib":"2712","black_small_square":"25aa","black_square_button":"1f532","blonde_man":"1f471","blossom":"1f33c","blowfish":"1f421","blue_book":"1f4d8","blue_car":"1f699","blue_heart":"1f499","blush":"1f60a","boar":"1f417","boat":"26f5","bolivia":"1f1e7-1f1f4","bomb":"1f4a3","book":"1f4d6","bookmark":"1f516","bookmark_tabs":"1f4d1","books":"1f4da","boom":"1f4a5","boot":"1f462","bosnia_herzegovina":"1f1e7-1f1e6","botswana":"1f1e7-1f1fc","bouquet":"1f490","bow":"1f647","bow_and_arrow":"1f3f9","bow_tone1":"1f647-1f3fb","bow_tone2":"1f647-1f3fc","bow_tone3":"1f647-1f3fd","bow_tone4":"1f647-1f3fe","bow_tone5":"1f647-1f3ff","bowing_man":"1f647","bowling":"1f3b3","boxing_glove":"1f94a","boy":"1f466","boy_tone1":"1f466-1f3fb","boy_tone2":"1f466-1f3fc","boy_tone3":"1f466-1f3fd","boy_tone4":"1f466-1f3fe","boy_tone5":"1f466-1f3ff","brazil":"1f1e7-1f1f7","bread":"1f35e","bride_with_veil":"1f470","bride_with_veil_tone1":"1f470-1f3fb","bride_with_veil_tone2":"1f470-1f3fc","bride_with_veil_tone3":"1f470-1f3fd","bride_with_veil_tone4":"1f470-1f3fe","bride_with_veil_tone5":"1f470-1f3ff","bridge_at_night":"1f309","briefcase":"1f4bc","british_indian_ocean_territory":"1f1ee-1f1f4","british_virgin_islands":"1f1fb-1f1ec","broken_heart":"1f494","brunei":"1f1e7-1f1f3","bug":"1f41b","building_construction":"1f3d7","bulb":"1f4a1","bulgaria":"1f1e7-1f1ec","bullettrain_front":"1f685","bullettrain_side":"1f684","burkina_faso":"1f1e7-1f1eb","burrito":"1f32f","burundi":"1f1e7-1f1ee","bus":"1f68c","business_suit_levitating":"1f574","busstop":"1f68f","bust_in_silhouette":"1f464","busts_in_silhouette":"1f465","butterfly":"1f98b","cactus":"1f335","cake":"1f370","calendar":"1f4c6","calendar_spiral":"1f5d3","call_me":"1f919","call_me_tone1":"1f919-1f3fb","call_me_tone2":"1f919-1f3fc","call_me_tone3":"1f919-1f3fd","call_me_tone4":"1f919-1f3fe","call_me_tone5":"1f919-1f3ff","calling":"1f4f2","cambodia":"1f1f0-1f1ed","camel":"1f42b","camera":"1f4f7","camera_flash":"1f4f8","camera_with_flash":"1f4f8","cameroon":"1f1e8-1f1f2","camping":"1f3d5","canada":"1f1e8-1f1e6","canary_islands":"1f1ee-1f1e8","cancer":"264b","candle":"1f56f","candy":"1f36c","canoe":"1f6f6","cape_verde":"1f1e8-1f1fb","capital_abcd":"1f520","capricorn":"2651","car":"1f697","card_box":"1f5c3","card_file_box":"1f5c3","card_index":"1f4c7","card_index_dividers":"1f5c2","caribbean_netherlands":"1f1e7-1f1f6","carousel_horse":"1f3a0","carrot":"1f955","cartwheel":"1f938","cartwheel_tone1":"1f938-1f3fb","cartwheel_tone2":"1f938-1f3fc","cartwheel_tone3":"1f938-1f3fd","cartwheel_tone4":"1f938-1f3fe","cartwheel_tone5":"1f938-1f3ff","cat":"1f431","cat2":"1f408","cayman_islands":"1f1f0-1f1fe","cd":"1f4bf","central_african_republic":"1f1e8-1f1eb","chad":"1f1f9-1f1e9","chains":"26d3","champagne":"1f37e","champagne_glass":"1f942","chart":"1f4b9","chart_with_downwards_trend":"1f4c9","chart_with_upwards_trend":"1f4c8","checkered_flag":"1f3c1","cheese":"1f9c0","cherries":"1f352","cherry_blossom":"1f338","chestnut":"1f330","chicken":"1f414","children_crossing":"1f6b8","chile":"1f1e8-1f1f1","chipmunk":"1f43f","chocolate_bar":"1f36b","christmas_island":"1f1e8-1f1fd","christmas_tree":"1f384","church":"26ea","cinema":"1f3a6","circus_tent":"1f3aa","city_dusk":"1f306","city_sunrise":"1f307","city_sunset":"1f307","cityscape":"1f3d9","cl":"1f191","clamp":"1f5dc","clap":"1f44f","clap_tone1":"1f44f-1f3fb","clap_tone2":"1f44f-1f3fc","clap_tone3":"1f44f-1f3fd","clap_tone4":"1f44f-1f3fe","clap_tone5":"1f44f-1f3ff","clapper":"1f3ac","classical_building":"1f3db","clipboard":"1f4cb","clock":"1f570","clock1":"1f550","clock10":"1f559","clock1030":"1f565","clock11":"1f55a","clock1130":"1f566","clock12":"1f55b","clock1230":"1f567","clock130":"1f55c","clock2":"1f551","clock230":"1f55d","clock3":"1f552","clock330":"1f55e","clock4":"1f553","clock430":"1f55f","clock5":"1f554","clock530":"1f560","clock6":"1f555","clock630":"1f561","clock7":"1f556","clock730":"1f562","clock8":"1f557","clock830":"1f563","clock9":"1f558","clock930":"1f564","closed_book":"1f4d5","closed_lock_with_key":"1f510","closed_umbrella":"1f302","cloud":"2601","cloud_lightning":"1f329","cloud_rain":"1f327","cloud_snow":"1f328","cloud_tornado":"1f32a","cloud_with_lightning":"1f329","cloud_with_lightning_and_rain":"26c8","cloud_with_rain":"1f327","cloud_with_snow":"1f328","clown":"1f921","clubs":"2663","cn":"1f1e8-1f1f3","cocktail":"1f378","cocos_islands":"1f1e8-1f1e8","coffee":"2615","coffin":"26b0","cold_sweat":"1f630","collision":"1f4a5","colombia":"1f1e8-1f1f4","comet":"2604","comoros":"1f1f0-1f1f2","compression":"1f5dc","computer":"1f4bb","computer_mouse":"1f5b1","confetti_ball":"1f38a","confounded":"1f616","confused":"1f615","congo_brazzaville":"1f1e8-1f1ec","congo_kinshasa":"1f1e8-1f1e9","congratulations":"3297","construction":"1f6a7","construction_site":"1f3d7","construction_worker":"1f477","construction_worker_man":"1f477","construction_worker_tone1":"1f477-1f3fb","construction_worker_tone2":"1f477-1f3fc","construction_worker_tone3":"1f477-1f3fd","construction_worker_tone4":"1f477-1f3fe","construction_worker_tone5":"1f477-1f3ff","control_knobs":"1f39b","convenience_store":"1f3ea","cook_islands":"1f1e8-1f1f0","cookie":"1f36a","cooking":"1f373","cool":"1f192","cop":"1f46e","cop_tone1":"1f46e-1f3fb","cop_tone2":"1f46e-1f3fc","cop_tone3":"1f46e-1f3fd","cop_tone4":"1f46e-1f3fe","cop_tone5":"1f46e-1f3ff","copyright":"00a9","corn":"1f33d","costa_rica":"1f1e8-1f1f7","cote_divoire":"1f1e8-1f1ee","couch":"1f6cb","couch_and_lamp":"1f6cb","couple":"1f46b","couple_mm":"1f468-2764-1f468","couple_with_heart":"1f491","couple_with_heart_man_man":"1f468-2764-1f468","couple_with_heart_woman_man":"1f491","couple_with_heart_woman_woman":"1f469-2764-1f469","couple_ww":"1f469-2764-1f469","couplekiss":"1f48f","couplekiss_man_man":"1f468-2764-1f48b-1f468","couplekiss_man_woman":"1f48f","couplekiss_woman_woman":"1f469-2764-1f48b-1f469","cow":"1f42e","cow2":"1f404","cowboy":"1f920","crab":"1f980","crayon":"1f58d","credit_card":"1f4b3","crescent_moon":"1f319","cricket":"1f3cf","croatia":"1f1ed-1f1f7","crocodile":"1f40a","croissant":"1f950","cross":"271d","crossed_flags":"1f38c","crossed_swords":"2694","crown":"1f451","cruise_ship":"1f6f3","cry":"1f622","crying_cat_face":"1f63f","crystal_ball":"1f52e","cuba":"1f1e8-1f1fa","cucumber":"1f952","cupid":"1f498","curacao":"1f1e8-1f1fc","curly_loop":"27b0","currency_exchange":"1f4b1","curry":"1f35b","custard":"1f36e","customs":"1f6c3","cyclone":"1f300","cyprus":"1f1e8-1f1fe","czech_republic":"1f1e8-1f1ff","dagger":"1f5e1","dancer":"1f483","dancer_tone1":"1f483-1f3fb","dancer_tone2":"1f483-1f3fc","dancer_tone3":"1f483-1f3fd","dancer_tone4":"1f483-1f3fe","dancer_tone5":"1f483-1f3ff","dancers":"1f46f","dancing_women":"1f46f","dango":"1f361","dark_sunglasses":"1f576","dart":"1f3af","dash":"1f4a8","date":"1f4c5","de":"1f1e9-1f1ea","deciduous_tree":"1f333","deer":"1f98c","denmark":"1f1e9-1f1f0","department_store":"1f3ec","derelict_house":"1f3da","desert":"1f3dc","desert_island":"1f3dd","desktop":"1f5a5","desktop_computer":"1f5a5","detective":"1f575","diamond_shape_with_a_dot_inside":"1f4a0","diamonds":"2666","disappointed":"1f61e","disappointed_relieved":"1f625","dividers":"1f5c2","dizzy":"1f4ab","dizzy_face":"1f635","djibouti":"1f1e9-1f1ef","do_not_litter":"1f6af","dog":"1f436","dog2":"1f415","dollar":"1f4b5","dolls":"1f38e","dolphin":"1f42c","dominica":"1f1e9-1f1f2","dominican_republic":"1f1e9-1f1f4","door":"1f6aa","doughnut":"1f369","dove":"1f54a","dragon":"1f409","dragon_face":"1f432","dress":"1f457","dromedary_camel":"1f42a","drooling_face":"1f924","droplet":"1f4a7","drum":"1f941","duck":"1f986","dvd":"1f4c0","e-mail":"1f4e7","eagle":"1f985","ear":"1f442","ear_of_rice":"1f33e","ear_tone1":"1f442-1f3fb","ear_tone2":"1f442-1f3fc","ear_tone3":"1f442-1f3fd","ear_tone4":"1f442-1f3fe","ear_tone5":"1f442-1f3ff","earth_africa":"1f30d","earth_americas":"1f30e","earth_asia":"1f30f","ecuador":"1f1ea-1f1e8","egg":"1f95a","eggplant":"1f346","egypt":"1f1ea-1f1ec","eight":"0038-20e3","eight_pointed_black_star":"2734","eight_spoked_asterisk":"2733","eject":"23cf","el_salvador":"1f1f8-1f1fb","electric_plug":"1f50c","elephant":"1f418","email":"2709","end":"1f51a","envelope":"2709","envelope_with_arrow":"1f4e9","equatorial_guinea":"1f1ec-1f1f6","eritrea":"1f1ea-1f1f7","es":"1f1ea-1f1f8","estonia":"1f1ea-1f1ea","ethiopia":"1f1ea-1f1f9","eu":"1f1ea-1f1fa","euro":"1f4b6","european_castle":"1f3f0","european_post_office":"1f3e4","european_union":"1f1ea-1f1fa","evergreen_tree":"1f332","exclamation":"2757","expressionless":"1f611","eye":"1f441","eye_in_speech_bubble":"1f441-1f5e8","eye_speech_bubble":"1f441-1f5e8","eyeglasses":"1f453","eyes":"1f440","face_palm":"1f926","face_palm_tone1":"1f926-1f3fb","face_palm_tone2":"1f926-1f3fc","face_palm_tone3":"1f926-1f3fd","face_palm_tone4":"1f926-1f3fe","face_palm_tone5":"1f926-1f3ff","face_with_head_bandage":"1f915","face_with_thermometer":"1f912","facepunch":"1f44a","factory":"1f3ed","falkland_islands":"1f1eb-1f1f0","fallen_leaf":"1f342","family":"1f46a","family_man_man_boy":"1f468-1f468-1f466","family_man_man_boy_boy":"1f468-1f468-1f466-1f466","family_man_man_girl":"1f468-1f468-1f467","family_man_man_girl_boy":"1f468-1f468-1f467-1f466","family_man_man_girl_girl":"1f468-1f468-1f467-1f467","family_man_woman_boy":"1f46a","family_man_woman_boy_boy":"1f468-1f469-1f466-1f466","family_man_woman_girl":"1f468-1f469-1f467","family_man_woman_girl_boy":"1f468-1f469-1f467-1f466","family_man_woman_girl_girl":"1f468-1f469-1f467-1f467","family_mmb":"1f468-1f468-1f466","family_mmbb":"1f468-1f468-1f466-1f466","family_mmg":"1f468-1f468-1f467","family_mmgb":"1f468-1f468-1f467-1f466","family_mmgg":"1f468-1f468-1f467-1f467","family_mwbb":"1f468-1f469-1f466-1f466","family_mwg":"1f468-1f469-1f467","family_mwgb":"1f468-1f469-1f467-1f466","family_mwgg":"1f468-1f469-1f467-1f467","family_woman_woman_boy":"1f469-1f469-1f466","family_woman_woman_boy_boy":"1f469-1f469-1f466-1f466","family_woman_woman_girl":"1f469-1f469-1f467","family_woman_woman_girl_boy":"1f469-1f469-1f467-1f466","family_woman_woman_girl_girl":"1f469-1f469-1f467-1f467","family_wwb":"1f469-1f469-1f466","family_wwbb":"1f469-1f469-1f466-1f466","family_wwg":"1f469-1f469-1f467","family_wwgb":"1f469-1f469-1f467-1f466","family_wwgg":"1f469-1f469-1f467-1f467","faroe_islands":"1f1eb-1f1f4","fast_forward":"23e9","fax":"1f4e0","fearful":"1f628","feet":"1f43e","fencer":"1f93a","ferris_wheel":"1f3a1","ferry":"26f4","field_hockey":"1f3d1","fiji":"1f1eb-1f1ef","file_cabinet":"1f5c4","file_folder":"1f4c1","film_frames":"1f39e","film_projector":"1f4fd","film_strip":"1f39e","fingers_crossed":"1f91e","fingers_crossed_tone1":"1f91e-1f3fb","fingers_crossed_tone2":"1f91e-1f3fc","fingers_crossed_tone3":"1f91e-1f3fd","fingers_crossed_tone4":"1f91e-1f3fe","fingers_crossed_tone5":"1f91e-1f3ff","finland":"1f1eb-1f1ee","fire":"1f525","fire_engine":"1f692","fireworks":"1f386","first_place":"1f947","first_quarter_moon":"1f313","first_quarter_moon_with_face":"1f31b","fish":"1f41f","fish_cake":"1f365","fishing_pole_and_fish":"1f3a3","fist":"270a","fist_tone1":"270a-1f3fb","fist_tone2":"270a-1f3fc","fist_tone3":"270a-1f3fd","fist_tone4":"270a-1f3fe","fist_tone5":"270a-1f3ff","five":"0035-20e3","flag_ac":"1f1e6-1f1e8","flag_ad":"1f1e6-1f1e9","flag_ae":"1f1e6-1f1ea","flag_af":"1f1e6-1f1eb","flag_ag":"1f1e6-1f1ec","flag_ai":"1f1e6-1f1ee","flag_al":"1f1e6-1f1f1","flag_am":"1f1e6-1f1f2","flag_ao":"1f1e6-1f1f4","flag_aq":"1f1e6-1f1f6","flag_ar":"1f1e6-1f1f7","flag_as":"1f1e6-1f1f8","flag_at":"1f1e6-1f1f9","flag_au":"1f1e6-1f1fa","flag_aw":"1f1e6-1f1fc","flag_ax":"1f1e6-1f1fd","flag_az":"1f1e6-1f1ff","flag_ba":"1f1e7-1f1e6","flag_bb":"1f1e7-1f1e7","flag_bd":"1f1e7-1f1e9","flag_be":"1f1e7-1f1ea","flag_bf":"1f1e7-1f1eb","flag_bg":"1f1e7-1f1ec","flag_bh":"1f1e7-1f1ed","flag_bi":"1f1e7-1f1ee","flag_bj":"1f1e7-1f1ef","flag_bl":"1f1e7-1f1f1","flag_black":"1f3f4","flag_bm":"1f1e7-1f1f2","flag_bn":"1f1e7-1f1f3","flag_bo":"1f1e7-1f1f4","flag_bq":"1f1e7-1f1f6","flag_br":"1f1e7-1f1f7","flag_bs":"1f1e7-1f1f8","flag_bt":"1f1e7-1f1f9","flag_bv":"1f1e7-1f1fb","flag_bw":"1f1e7-1f1fc","flag_by":"1f1e7-1f1fe","flag_bz":"1f1e7-1f1ff","flag_ca":"1f1e8-1f1e6","flag_cc":"1f1e8-1f1e8","flag_cd":"1f1e8-1f1e9","flag_cf":"1f1e8-1f1eb","flag_cg":"1f1e8-1f1ec","flag_ch":"1f1e8-1f1ed","flag_ci":"1f1e8-1f1ee","flag_ck":"1f1e8-1f1f0","flag_cl":"1f1e8-1f1f1","flag_cm":"1f1e8-1f1f2","flag_cn":"1f1e8-1f1f3","flag_co":"1f1e8-1f1f4","flag_cp":"1f1e8-1f1f5","flag_cr":"1f1e8-1f1f7","flag_cu":"1f1e8-1f1fa","flag_cv":"1f1e8-1f1fb","flag_cw":"1f1e8-1f1fc","flag_cx":"1f1e8-1f1fd","flag_cy":"1f1e8-1f1fe","flag_cz":"1f1e8-1f1ff","flag_de":"1f1e9-1f1ea","flag_dg":"1f1e9-1f1ec","flag_dj":"1f1e9-1f1ef","flag_dk":"1f1e9-1f1f0","flag_dm":"1f1e9-1f1f2","flag_do":"1f1e9-1f1f4","flag_dz":"1f1e9-1f1ff","flag_ea":"1f1ea-1f1e6","flag_ec":"1f1ea-1f1e8","flag_ee":"1f1ea-1f1ea","flag_eg":"1f1ea-1f1ec","flag_eh":"1f1ea-1f1ed","flag_er":"1f1ea-1f1f7","flag_es":"1f1ea-1f1f8","flag_et":"1f1ea-1f1f9","flag_eu":"1f1ea-1f1fa","flag_fi":"1f1eb-1f1ee","flag_fj":"1f1eb-1f1ef","flag_fk":"1f1eb-1f1f0","flag_fm":"1f1eb-1f1f2","flag_fo":"1f1eb-1f1f4","flag_fr":"1f1eb-1f1f7","flag_ga":"1f1ec-1f1e6","flag_gb":"1f1ec-1f1e7","flag_gd":"1f1ec-1f1e9","flag_ge":"1f1ec-1f1ea","flag_gf":"1f1ec-1f1eb","flag_gg":"1f1ec-1f1ec","flag_gh":"1f1ec-1f1ed","flag_gi":"1f1ec-1f1ee","flag_gl":"1f1ec-1f1f1","flag_gm":"1f1ec-1f1f2","flag_gn":"1f1ec-1f1f3","flag_gp":"1f1ec-1f1f5","flag_gq":"1f1ec-1f1f6","flag_gr":"1f1ec-1f1f7","flag_gs":"1f1ec-1f1f8","flag_gt":"1f1ec-1f1f9","flag_gu":"1f1ec-1f1fa","flag_gw":"1f1ec-1f1fc","flag_gy":"1f1ec-1f1fe","flag_hk":"1f1ed-1f1f0","flag_hm":"1f1ed-1f1f2","flag_hn":"1f1ed-1f1f3","flag_hr":"1f1ed-1f1f7","flag_ht":"1f1ed-1f1f9","flag_hu":"1f1ed-1f1fa","flag_ic":"1f1ee-1f1e8","flag_id":"1f1ee-1f1e9","flag_ie":"1f1ee-1f1ea","flag_il":"1f1ee-1f1f1","flag_im":"1f1ee-1f1f2","flag_in":"1f1ee-1f1f3","flag_io":"1f1ee-1f1f4","flag_iq":"1f1ee-1f1f6","flag_ir":"1f1ee-1f1f7","flag_is":"1f1ee-1f1f8","flag_it":"1f1ee-1f1f9","flag_je":"1f1ef-1f1ea","flag_jm":"1f1ef-1f1f2","flag_jo":"1f1ef-1f1f4","flag_jp":"1f1ef-1f1f5","flag_ke":"1f1f0-1f1ea","flag_kg":"1f1f0-1f1ec","flag_kh":"1f1f0-1f1ed","flag_ki":"1f1f0-1f1ee","flag_km":"1f1f0-1f1f2","flag_kn":"1f1f0-1f1f3","flag_kp":"1f1f0-1f1f5","flag_kr":"1f1f0-1f1f7","flag_kw":"1f1f0-1f1fc","flag_ky":"1f1f0-1f1fe","flag_kz":"1f1f0-1f1ff","flag_la":"1f1f1-1f1e6","flag_lb":"1f1f1-1f1e7","flag_lc":"1f1f1-1f1e8","flag_li":"1f1f1-1f1ee","flag_lk":"1f1f1-1f1f0","flag_lr":"1f1f1-1f1f7","flag_ls":"1f1f1-1f1f8","flag_lt":"1f1f1-1f1f9","flag_lu":"1f1f1-1f1fa","flag_lv":"1f1f1-1f1fb","flag_ly":"1f1f1-1f1fe","flag_ma":"1f1f2-1f1e6","flag_mc":"1f1f2-1f1e8","flag_md":"1f1f2-1f1e9","flag_me":"1f1f2-1f1ea","flag_mf":"1f1f2-1f1eb","flag_mg":"1f1f2-1f1ec","flag_mh":"1f1f2-1f1ed","flag_mk":"1f1f2-1f1f0","flag_ml":"1f1f2-1f1f1","flag_mm":"1f1f2-1f1f2","flag_mn":"1f1f2-1f1f3","flag_mo":"1f1f2-1f1f4","flag_mp":"1f1f2-1f1f5","flag_mq":"1f1f2-1f1f6","flag_mr":"1f1f2-1f1f7","flag_ms":"1f1f2-1f1f8","flag_mt":"1f1f2-1f1f9","flag_mu":"1f1f2-1f1fa","flag_mv":"1f1f2-1f1fb","flag_mw":"1f1f2-1f1fc","flag_mx":"1f1f2-1f1fd","flag_my":"1f1f2-1f1fe","flag_mz":"1f1f2-1f1ff","flag_na":"1f1f3-1f1e6","flag_nc":"1f1f3-1f1e8","flag_ne":"1f1f3-1f1ea","flag_nf":"1f1f3-1f1eb","flag_ng":"1f1f3-1f1ec","flag_ni":"1f1f3-1f1ee","flag_nl":"1f1f3-1f1f1","flag_no":"1f1f3-1f1f4","flag_np":"1f1f3-1f1f5","flag_nr":"1f1f3-1f1f7","flag_nu":"1f1f3-1f1fa","flag_nz":"1f1f3-1f1ff","flag_om":"1f1f4-1f1f2","flag_pa":"1f1f5-1f1e6","flag_pe":"1f1f5-1f1ea","flag_pf":"1f1f5-1f1eb","flag_pg":"1f1f5-1f1ec","flag_ph":"1f1f5-1f1ed","flag_pk":"1f1f5-1f1f0","flag_pl":"1f1f5-1f1f1","flag_pm":"1f1f5-1f1f2","flag_pn":"1f1f5-1f1f3","flag_pr":"1f1f5-1f1f7","flag_ps":"1f1f5-1f1f8","flag_pt":"1f1f5-1f1f9","flag_pw":"1f1f5-1f1fc","flag_py":"1f1f5-1f1fe","flag_qa":"1f1f6-1f1e6","flag_re":"1f1f7-1f1ea","flag_ro":"1f1f7-1f1f4","flag_rs":"1f1f7-1f1f8","flag_ru":"1f1f7-1f1fa","flag_rw":"1f1f7-1f1fc","flag_sa":"1f1f8-1f1e6","flag_sb":"1f1f8-1f1e7","flag_sc":"1f1f8-1f1e8","flag_sd":"1f1f8-1f1e9","flag_se":"1f1f8-1f1ea","flag_sg":"1f1f8-1f1ec","flag_sh":"1f1f8-1f1ed","flag_si":"1f1f8-1f1ee","flag_sj":"1f1f8-1f1ef","flag_sk":"1f1f8-1f1f0","flag_sl":"1f1f8-1f1f1","flag_sm":"1f1f8-1f1f2","flag_sn":"1f1f8-1f1f3","flag_so":"1f1f8-1f1f4","flag_sr":"1f1f8-1f1f7","flag_ss":"1f1f8-1f1f8","flag_st":"1f1f8-1f1f9","flag_sv":"1f1f8-1f1fb","flag_sx":"1f1f8-1f1fd","flag_sy":"1f1f8-1f1fe","flag_sz":"1f1f8-1f1ff","flag_ta":"1f1f9-1f1e6","flag_tc":"1f1f9-1f1e8","flag_td":"1f1f9-1f1e9","flag_tf":"1f1f9-1f1eb","flag_tg":"1f1f9-1f1ec","flag_th":"1f1f9-1f1ed","flag_tj":"1f1f9-1f1ef","flag_tk":"1f1f9-1f1f0","flag_tl":"1f1f9-1f1f1","flag_tm":"1f1f9-1f1f2","flag_tn":"1f1f9-1f1f3","flag_to":"1f1f9-1f1f4","flag_tr":"1f1f9-1f1f7","flag_tt":"1f1f9-1f1f9","flag_tv":"1f1f9-1f1fb","flag_tw":"1f1f9-1f1fc","flag_tz":"1f1f9-1f1ff","flag_ua":"1f1fa-1f1e6","flag_ug":"1f1fa-1f1ec","flag_um":"1f1fa-1f1f2","flag_us":"1f1fa-1f1f8","flag_uy":"1f1fa-1f1fe","flag_uz":"1f1fa-1f1ff","flag_va":"1f1fb-1f1e6","flag_vc":"1f1fb-1f1e8","flag_ve":"1f1fb-1f1ea","flag_vg":"1f1fb-1f1ec","flag_vi":"1f1fb-1f1ee","flag_vn":"1f1fb-1f1f3","flag_vu":"1f1fb-1f1fa","flag_wf":"1f1fc-1f1eb","flag_white":"1f3f3","flag_ws":"1f1fc-1f1f8","flag_xk":"1f1fd-1f1f0","flag_ye":"1f1fe-1f1ea","flag_yt":"1f1fe-1f1f9","flag_za":"1f1ff-1f1e6","flag_zm":"1f1ff-1f1f2","flag_zw":"1f1ff-1f1fc","flags":"1f38f","flashlight":"1f526","fleur-de-lis":"269c","fleur_de_lis":"269c","flight_arrival":"1f6ec","flight_departure":"1f6eb","flipper":"1f42c","floppy_disk":"1f4be","flower_playing_cards":"1f3b4","flushed":"1f633","fog":"1f32b","foggy":"1f301","football":"1f3c8","footprints":"1f463","fork_and_knife":"1f374","fork_knife_plate":"1f37d","fountain":"26f2","fountain_pen":"1f58b","four":"0034-20e3","four_leaf_clover":"1f340","fox":"1f98a","fr":"1f1eb-1f1f7","frame_photo":"1f5bc","framed_picture":"1f5bc","free":"1f193","french_bread":"1f956","french_guiana":"1f1ec-1f1eb","french_polynesia":"1f1f5-1f1eb","french_southern_territories":"1f1f9-1f1eb","fried_shrimp":"1f364","fries":"1f35f","frog":"1f438","frowning":"1f626","frowning2":"2639","frowning_face":"2639","frowning_woman":"1f64d","fu":"1f595","fuelpump":"26fd","full_moon":"1f315","full_moon_with_face":"1f31d","funeral_urn":"26b1","gabon":"1f1ec-1f1e6","gambia":"1f1ec-1f1f2","game_die":"1f3b2","gay_pride_flag":"1f3f3-1f308","gb":"1f1ec-1f1e7","gear":"2699","gem":"1f48e","gemini":"264a","georgia":"1f1ec-1f1ea","ghana":"1f1ec-1f1ed","ghost":"1f47b","gibraltar":"1f1ec-1f1ee","gift":"1f381","gift_heart":"1f49d","girl":"1f467","girl_tone1":"1f467-1f3fb","girl_tone2":"1f467-1f3fc","girl_tone3":"1f467-1f3fd","girl_tone4":"1f467-1f3fe","girl_tone5":"1f467-1f3ff","globe_with_meridians":"1f310","goal":"1f945","goat":"1f410","golf":"26f3","golfer":"1f3cc","golfing_man":"1f3cc","gorilla":"1f98d","grapes":"1f347","greece":"1f1ec-1f1f7","green_apple":"1f34f","green_book":"1f4d7","green_heart":"1f49a","greenland":"1f1ec-1f1f1","grenada":"1f1ec-1f1e9","grey_exclamation":"2755","grey_question":"2754","grimacing":"1f62c","grin":"1f601","grinning":"1f600","guadeloupe":"1f1ec-1f1f5","guam":"1f1ec-1f1fa","guardsman":"1f482","guardsman_tone1":"1f482-1f3fb","guardsman_tone2":"1f482-1f3fc","guardsman_tone3":"1f482-1f3fd","guardsman_tone4":"1f482-1f3fe","guardsman_tone5":"1f482-1f3ff","guatemala":"1f1ec-1f1f9","guernsey":"1f1ec-1f1ec","guinea":"1f1ec-1f1f3","guinea_bissau":"1f1ec-1f1fc","guitar":"1f3b8","gun":"1f52b","guyana":"1f1ec-1f1fe","haircut":"1f487","haircut_tone1":"1f487-1f3fb","haircut_tone2":"1f487-1f3fc","haircut_tone3":"1f487-1f3fd","haircut_tone4":"1f487-1f3fe","haircut_tone5":"1f487-1f3ff","haircut_woman":"1f487","haiti":"1f1ed-1f1f9","hamburger":"1f354","hammer":"1f528","hammer_and_pick":"2692","hammer_and_wrench":"1f6e0","hammer_pick":"2692","hamster":"1f439","hand":"270b","hand_splayed":"1f590","hand_splayed_tone1":"1f590-1f3fb","hand_splayed_tone2":"1f590-1f3fc","hand_splayed_tone3":"1f590-1f3fd","hand_splayed_tone4":"1f590-1f3fe","hand_splayed_tone5":"1f590-1f3ff","handbag":"1f45c","handball":"1f93e","handball_tone1":"1f93e-1f3fb","handball_tone2":"1f93e-1f3fc","handball_tone3":"1f93e-1f3fd","handball_tone4":"1f93e-1f3fe","handball_tone5":"1f93e-1f3ff","handshake":"1f91d","handshake_tone1":"1f91d-1f3fb","handshake_tone2":"1f91d-1f3fc","handshake_tone3":"1f91d-1f3fd","handshake_tone4":"1f91d-1f3fe","handshake_tone5":"1f91d-1f3ff","hankey":"1f4a9","hash":"0023-20e3","hatched_chick":"1f425","hatching_chick":"1f423","head_bandage":"1f915","headphones":"1f3a7","hear_no_evil":"1f649","heart":"2764","heart_decoration":"1f49f","heart_exclamation":"2763","heart_eyes":"1f60d","heart_eyes_cat":"1f63b","heartbeat":"1f493","heartpulse":"1f497","hearts":"2665","heavy_check_mark":"2714","heavy_division_sign":"2797","heavy_dollar_sign":"1f4b2","heavy_exclamation_mark":"2757","heavy_heart_exclamation":"2763","heavy_minus_sign":"2796","heavy_multiplication_x":"2716","heavy_plus_sign":"2795","helicopter":"1f681","helmet_with_cross":"26d1","herb":"1f33f","hibiscus":"1f33a","high_brightness":"1f506","high_heel":"1f460","hocho":"1f52a","hockey":"1f3d2","hole":"1f573","homes":"1f3d8","honduras":"1f1ed-1f1f3","honey_pot":"1f36f","honeybee":"1f41d","hong_kong":"1f1ed-1f1f0","horse":"1f434","horse_racing":"1f3c7","horse_racing_tone1":"1f3c7-1f3fb","horse_racing_tone2":"1f3c7-1f3fc","horse_racing_tone3":"1f3c7-1f3fd","horse_racing_tone4":"1f3c7-1f3fe","horse_racing_tone5":"1f3c7-1f3ff","hospital":"1f3e5","hot_pepper":"1f336","hotdog":"1f32d","hotel":"1f3e8","hotsprings":"2668","hourglass":"231b","hourglass_flowing_sand":"23f3","house":"1f3e0","house_abandoned":"1f3da","house_with_garden":"1f3e1","houses":"1f3d8","hugging":"1f917","hugs":"1f917","hungary":"1f1ed-1f1fa","hushed":"1f62f","ice_cream":"1f368","ice_hockey":"1f3d2","ice_skate":"26f8","icecream":"1f366","iceland":"1f1ee-1f1f8","id":"1f194","ideograph_advantage":"1f250","imp":"1f47f","inbox_tray":"1f4e5","incoming_envelope":"1f4e8","india":"1f1ee-1f1f3","indonesia":"1f1ee-1f1e9","information_desk_person":"1f481","information_desk_person_tone1":"1f481-1f3fb","information_desk_person_tone2":"1f481-1f3fc","information_desk_person_tone3":"1f481-1f3fd","information_desk_person_tone4":"1f481-1f3fe","information_desk_person_tone5":"1f481-1f3ff","information_source":"2139","innocent":"1f607","interrobang":"2049","iphone":"1f4f1","iran":"1f1ee-1f1f7","iraq":"1f1ee-1f1f6","ireland":"1f1ee-1f1ea","island":"1f3dd","isle_of_man":"1f1ee-1f1f2","israel":"1f1ee-1f1f1","it":"1f1ee-1f1f9","izakaya_lantern":"1f3ee","jack_o_lantern":"1f383","jamaica":"1f1ef-1f1f2","japan":"1f5fe","japanese_castle":"1f3ef","japanese_goblin":"1f47a","japanese_ogre":"1f479","jeans":"1f456","jersey":"1f1ef-1f1ea","jordan":"1f1ef-1f1f4","joy":"1f602","joy_cat":"1f639","joystick":"1f579","jp":"1f1ef-1f1f5","juggling":"1f939","juggling_tone1":"1f939-1f3fb","juggling_tone2":"1f939-1f3fc","juggling_tone3":"1f939-1f3fd","juggling_tone4":"1f939-1f3fe","juggling_tone5":"1f939-1f3ff","kaaba":"1f54b","kazakhstan":"1f1f0-1f1ff","kenya":"1f1f0-1f1ea","key":"1f511","key2":"1f5dd","keyboard":"2328","keycap_ten":"1f51f","kimono":"1f458","kiribati":"1f1f0-1f1ee","kiss":"1f48b","kiss_mm":"1f468-2764-1f48b-1f468","kiss_ww":"1f469-2764-1f48b-1f469","kissing":"1f617","kissing_cat":"1f63d","kissing_closed_eyes":"1f61a","kissing_heart":"1f618","kissing_smiling_eyes":"1f619","kiwi":"1f95d","knife":"1f52a","koala":"1f428","koko":"1f201","kosovo":"1f1fd-1f1f0","kr":"1f1f0-1f1f7","kuwait":"1f1f0-1f1fc","kyrgyzstan":"1f1f0-1f1ec","label":"1f3f7","lantern":"1f3ee","laos":"1f1f1-1f1e6","large_blue_circle":"1f535","large_blue_diamond":"1f537","large_orange_diamond":"1f536","last_quarter_moon":"1f317","last_quarter_moon_with_face":"1f31c","latin_cross":"271d","latvia":"1f1f1-1f1fb","laughing":"1f606","leaves":"1f343","lebanon":"1f1f1-1f1e7","ledger":"1f4d2","left_facing_fist":"1f91b","left_facing_fist_tone1":"1f91b-1f3fb","left_facing_fist_tone2":"1f91b-1f3fc","left_facing_fist_tone3":"1f91b-1f3fd","left_facing_fist_tone4":"1f91b-1f3fe","left_facing_fist_tone5":"1f91b-1f3ff","left_luggage":"1f6c5","left_right_arrow":"2194","leftwards_arrow_with_hook":"21a9","lemon":"1f34b","leo":"264c","leopard":"1f406","lesotho":"1f1f1-1f1f8","level_slider":"1f39a","levitate":"1f574","liberia":"1f1f1-1f1f7","libra":"264e","libya":"1f1f1-1f1fe","liechtenstein":"1f1f1-1f1ee","lifter":"1f3cb","lifter_tone1":"1f3cb-1f3fb","lifter_tone2":"1f3cb-1f3fc","lifter_tone3":"1f3cb-1f3fd","lifter_tone4":"1f3cb-1f3fe","lifter_tone5":"1f3cb-1f3ff","light_rail":"1f688","link":"1f517","lion":"1f981","lion_face":"1f981","lips":"1f444","lipstick":"1f484","lithuania":"1f1f1-1f1f9","lizard":"1f98e","lock":"1f512","lock_with_ink_pen":"1f50f","lollipop":"1f36d","loop":"27bf","loud_sound":"1f50a","loudspeaker":"1f4e2","love_hotel":"1f3e9","love_letter":"1f48c","low_brightness":"1f505","luxembourg":"1f1f1-1f1fa","lying_face":"1f925","m":"24c2","macau":"1f1f2-1f1f4","macedonia":"1f1f2-1f1f0","madagascar":"1f1f2-1f1ec","mag":"1f50d","mag_right":"1f50e","mahjong":"1f004","mailbox":"1f4eb","mailbox_closed":"1f4ea","mailbox_with_mail":"1f4ec","mailbox_with_no_mail":"1f4ed","malawi":"1f1f2-1f1fc","malaysia":"1f1f2-1f1fe","maldives":"1f1f2-1f1fb","male_detective":"1f575","mali":"1f1f2-1f1f1","malta":"1f1f2-1f1f9","man":"1f468","man_dancing":"1f57a","man_dancing_tone1":"1f57a-1f3fb","man_dancing_tone2":"1f57a-1f3fc","man_dancing_tone3":"1f57a-1f3fd","man_dancing_tone4":"1f57a-1f3fe","man_dancing_tone5":"1f57a-1f3ff","man_in_tuxedo":"1f935","man_in_tuxedo_tone1":"1f935-1f3fb","man_in_tuxedo_tone2":"1f935-1f3fc","man_in_tuxedo_tone3":"1f935-1f3fd","man_in_tuxedo_tone4":"1f935-1f3fe","man_in_tuxedo_tone5":"1f935-1f3ff","man_tone1":"1f468-1f3fb","man_tone2":"1f468-1f3fc","man_tone3":"1f468-1f3fd","man_tone4":"1f468-1f3fe","man_tone5":"1f468-1f3ff","man_with_gua_pi_mao":"1f472","man_with_gua_pi_mao_tone1":"1f472-1f3fb","man_with_gua_pi_mao_tone2":"1f472-1f3fc","man_with_gua_pi_mao_tone3":"1f472-1f3fd","man_with_gua_pi_mao_tone4":"1f472-1f3fe","man_with_gua_pi_mao_tone5":"1f472-1f3ff","man_with_turban":"1f473","man_with_turban_tone1":"1f473-1f3fb","man_with_turban_tone2":"1f473-1f3fc","man_with_turban_tone3":"1f473-1f3fd","man_with_turban_tone4":"1f473-1f3fe","man_with_turban_tone5":"1f473-1f3ff","mandarin":"1f34a","mans_shoe":"1f45e","mantelpiece_clock":"1f570","map":"1f5fa","maple_leaf":"1f341","marshall_islands":"1f1f2-1f1ed","martial_arts_uniform":"1f94b","martinique":"1f1f2-1f1f6","mask":"1f637","massage":"1f486","massage_tone1":"1f486-1f3fb","massage_tone2":"1f486-1f3fc","massage_tone3":"1f486-1f3fd","massage_tone4":"1f486-1f3fe","massage_tone5":"1f486-1f3ff","massage_woman":"1f486","mauritania":"1f1f2-1f1f7","mauritius":"1f1f2-1f1fa","mayotte":"1f1fe-1f1f9","meat_on_bone":"1f356","medal":"1f3c5","medal_military":"1f396","medal_sports":"1f3c5","mega":"1f4e3","melon":"1f348","memo":"1f4dd","menorah":"1f54e","mens":"1f6b9","metal":"1f918","metal_tone1":"1f918-1f3fb","metal_tone2":"1f918-1f3fc","metal_tone3":"1f918-1f3fd","metal_tone4":"1f918-1f3fe","metal_tone5":"1f918-1f3ff","metro":"1f687","mexico":"1f1f2-1f1fd","micronesia":"1f1eb-1f1f2","microphone":"1f3a4","microphone2":"1f399","microscope":"1f52c","middle_finger":"1f595","middle_finger_tone1":"1f595-1f3fb","middle_finger_tone2":"1f595-1f3fc","middle_finger_tone3":"1f595-1f3fd","middle_finger_tone4":"1f595-1f3fe","middle_finger_tone5":"1f595-1f3ff","military_medal":"1f396","milk":"1f95b","milky_way":"1f30c","minibus":"1f690","minidisc":"1f4bd","mobile_phone_off":"1f4f4","moldova":"1f1f2-1f1e9","monaco":"1f1f2-1f1e8","money_mouth":"1f911","money_mouth_face":"1f911","money_with_wings":"1f4b8","moneybag":"1f4b0","mongolia":"1f1f2-1f1f3","monkey":"1f412","monkey_face":"1f435","monorail":"1f69d","montenegro":"1f1f2-1f1ea","montserrat":"1f1f2-1f1f8","moon":"1f314","morocco":"1f1f2-1f1e6","mortar_board":"1f393","mosque":"1f54c","motor_boat":"1f6e5","motor_scooter":"1f6f5","motorboat":"1f6e5","motorcycle":"1f3cd","motorway":"1f6e3","mount_fuji":"1f5fb","mountain":"26f0","mountain_bicyclist":"1f6b5","mountain_bicyclist_tone1":"1f6b5-1f3fb","mountain_bicyclist_tone2":"1f6b5-1f3fc","mountain_bicyclist_tone3":"1f6b5-1f3fd","mountain_bicyclist_tone4":"1f6b5-1f3fe","mountain_bicyclist_tone5":"1f6b5-1f3ff","mountain_biking_man":"1f6b5","mountain_cableway":"1f6a0","mountain_railway":"1f69e","mountain_snow":"1f3d4","mouse":"1f42d","mouse2":"1f401","mouse_three_button":"1f5b1","movie_camera":"1f3a5","moyai":"1f5ff","mozambique":"1f1f2-1f1ff","mrs_claus":"1f936","mrs_claus_tone1":"1f936-1f3fb","mrs_claus_tone2":"1f936-1f3fc","mrs_claus_tone3":"1f936-1f3fd","mrs_claus_tone4":"1f936-1f3fe","mrs_claus_tone5":"1f936-1f3ff","muscle":"1f4aa","muscle_tone1":"1f4aa-1f3fb","muscle_tone2":"1f4aa-1f3fc","muscle_tone3":"1f4aa-1f3fd","muscle_tone4":"1f4aa-1f3fe","muscle_tone5":"1f4aa-1f3ff","mushroom":"1f344","musical_keyboard":"1f3b9","musical_note":"1f3b5","musical_score":"1f3bc","mute":"1f507","myanmar":"1f1f2-1f1f2","nail_care":"1f485","nail_care_tone1":"1f485-1f3fb","nail_care_tone2":"1f485-1f3fc","nail_care_tone3":"1f485-1f3fd","nail_care_tone4":"1f485-1f3fe","nail_care_tone5":"1f485-1f3ff","name_badge":"1f4db","namibia":"1f1f3-1f1e6","national_park":"1f3de","nauru":"1f1f3-1f1f7","nauseated_face":"1f922","necktie":"1f454","negative_squared_cross_mark":"274e","nepal":"1f1f3-1f1f5","nerd":"1f913","nerd_face":"1f913","netherlands":"1f1f3-1f1f1","neutral_face":"1f610","new":"1f195","new_caledonia":"1f1f3-1f1e8","new_moon":"1f311","new_moon_with_face":"1f31a","new_zealand":"1f1f3-1f1ff","newspaper":"1f4f0","newspaper2":"1f5de","newspaper_roll":"1f5de","next_track_button":"23ed","ng":"1f196","ng_woman":"1f645","nicaragua":"1f1f3-1f1ee","niger":"1f1f3-1f1ea","nigeria":"1f1f3-1f1ec","night_with_stars":"1f303","nine":"0039-20e3","niue":"1f1f3-1f1fa","no_bell":"1f515","no_bicycles":"1f6b3","no_entry":"26d4","no_entry_sign":"1f6ab","no_good":"1f645","no_good_tone1":"1f645-1f3fb","no_good_tone2":"1f645-1f3fc","no_good_tone3":"1f645-1f3fd","no_good_tone4":"1f645-1f3fe","no_good_tone5":"1f645-1f3ff","no_good_woman":"1f645","no_mobile_phones":"1f4f5","no_mouth":"1f636","no_pedestrians":"1f6b7","no_smoking":"1f6ad","non-potable_water":"1f6b1","norfolk_island":"1f1f3-1f1eb","north_korea":"1f1f0-1f1f5","northern_mariana_islands":"1f1f2-1f1f5","norway":"1f1f3-1f1f4","nose":"1f443","nose_tone1":"1f443-1f3fb","nose_tone2":"1f443-1f3fc","nose_tone3":"1f443-1f3fd","nose_tone4":"1f443-1f3fe","nose_tone5":"1f443-1f3ff","notebook":"1f4d3","notebook_with_decorative_cover":"1f4d4","notepad_spiral":"1f5d2","notes":"1f3b6","nut_and_bolt":"1f529","o":"2b55","o2":"1f17e","ocean":"1f30a","octagonal_sign":"1f6d1","octopus":"1f419","oden":"1f362","office":"1f3e2","oil":"1f6e2","oil_drum":"1f6e2","ok":"1f197","ok_hand":"1f44c","ok_hand_tone1":"1f44c-1f3fb","ok_hand_tone2":"1f44c-1f3fc","ok_hand_tone3":"1f44c-1f3fd","ok_hand_tone4":"1f44c-1f3fe","ok_hand_tone5":"1f44c-1f3ff","ok_woman":"1f646","ok_woman_tone1":"1f646-1f3fb","ok_woman_tone2":"1f646-1f3fc","ok_woman_tone3":"1f646-1f3fd","ok_woman_tone4":"1f646-1f3fe","ok_woman_tone5":"1f646-1f3ff","old_key":"1f5dd","older_man":"1f474","older_man_tone1":"1f474-1f3fb","older_man_tone2":"1f474-1f3fc","older_man_tone3":"1f474-1f3fd","older_man_tone4":"1f474-1f3fe","older_man_tone5":"1f474-1f3ff","older_woman":"1f475","older_woman_tone1":"1f475-1f3fb","older_woman_tone2":"1f475-1f3fc","older_woman_tone3":"1f475-1f3fd","older_woman_tone4":"1f475-1f3fe","older_woman_tone5":"1f475-1f3ff","om":"1f549","om_symbol":"1f549","oman":"1f1f4-1f1f2","on":"1f51b","oncoming_automobile":"1f698","oncoming_bus":"1f68d","oncoming_police_car":"1f694","oncoming_taxi":"1f696","one":"0031-20e3","open_book":"1f4d6","open_file_folder":"1f4c2","open_hands":"1f450","open_hands_tone1":"1f450-1f3fb","open_hands_tone2":"1f450-1f3fc","open_hands_tone3":"1f450-1f3fd","open_hands_tone4":"1f450-1f3fe","open_hands_tone5":"1f450-1f3ff","open_mouth":"1f62e","open_umbrella":"2602","ophiuchus":"26ce","orange":"1f34a","orange_book":"1f4d9","orthodox_cross":"2626","outbox_tray":"1f4e4","owl":"1f989","ox":"1f402","package":"1f4e6","page_facing_up":"1f4c4","page_with_curl":"1f4c3","pager":"1f4df","paintbrush":"1f58c","pakistan":"1f1f5-1f1f0","palau":"1f1f5-1f1fc","palestinian_territories":"1f1f5-1f1f8","palm_tree":"1f334","panama":"1f1f5-1f1e6","pancakes":"1f95e","panda_face":"1f43c","paperclip":"1f4ce","paperclips":"1f587","papua_new_guinea":"1f1f5-1f1ec","paraguay":"1f1f5-1f1fe","parasol_on_ground":"26f1","park":"1f3de","parking":"1f17f","part_alternation_mark":"303d","partly_sunny":"26c5","passenger_ship":"1f6f3","passport_control":"1f6c2","pause_button":"23f8","paw_prints":"1f43e","peace":"262e","peace_symbol":"262e","peach":"1f351","peanuts":"1f95c","pear":"1f350","pen":"1f58a","pen_ballpoint":"1f58a","pen_fountain":"1f58b","pencil":"1f4dd","pencil2":"270f","penguin":"1f427","pensive":"1f614","performing_arts":"1f3ad","persevere":"1f623","person_frowning":"1f64d","person_frowning_tone1":"1f64d-1f3fb","person_frowning_tone2":"1f64d-1f3fc","person_frowning_tone3":"1f64d-1f3fd","person_frowning_tone4":"1f64d-1f3fe","person_frowning_tone5":"1f64d-1f3ff","person_with_blond_hair":"1f471","person_with_blond_hair_tone1":"1f471-1f3fb","person_with_blond_hair_tone2":"1f471-1f3fc","person_with_blond_hair_tone3":"1f471-1f3fd","person_with_blond_hair_tone4":"1f471-1f3fe","person_with_blond_hair_tone5":"1f471-1f3ff","person_with_pouting_face":"1f64e","person_with_pouting_face_tone1":"1f64e-1f3fb","person_with_pouting_face_tone2":"1f64e-1f3fc","person_with_pouting_face_tone3":"1f64e-1f3fd","person_with_pouting_face_tone4":"1f64e-1f3fe","person_with_pouting_face_tone5":"1f64e-1f3ff","peru":"1f1f5-1f1ea","philippines":"1f1f5-1f1ed","phone":"260e","pick":"26cf","pig":"1f437","pig2":"1f416","pig_nose":"1f43d","pill":"1f48a","pineapple":"1f34d","ping_pong":"1f3d3","pisces":"2653","pitcairn_islands":"1f1f5-1f1f3","pizza":"1f355","place_of_worship":"1f6d0","plate_with_cutlery":"1f37d","play_or_pause_button":"23ef","play_pause":"23ef","point_down":"1f447","point_down_tone1":"1f447-1f3fb","point_down_tone2":"1f447-1f3fc","point_down_tone3":"1f447-1f3fd","point_down_tone4":"1f447-1f3fe","point_down_tone5":"1f447-1f3ff","point_left":"1f448","point_left_tone1":"1f448-1f3fb","point_left_tone2":"1f448-1f3fc","point_left_tone3":"1f448-1f3fd","point_left_tone4":"1f448-1f3fe","point_left_tone5":"1f448-1f3ff","point_right":"1f449","point_right_tone1":"1f449-1f3fb","point_right_tone2":"1f449-1f3fc","point_right_tone3":"1f449-1f3fd","point_right_tone4":"1f449-1f3fe","point_right_tone5":"1f449-1f3ff","point_up":"261d","point_up_2":"1f446","point_up_2_tone1":"1f446-1f3fb","point_up_2_tone2":"1f446-1f3fc","point_up_2_tone3":"1f446-1f3fd","point_up_2_tone4":"1f446-1f3fe","point_up_2_tone5":"1f446-1f3ff","point_up_tone1":"261d-1f3fb","point_up_tone2":"261d-1f3fc","point_up_tone3":"261d-1f3fd","point_up_tone4":"261d-1f3fe","point_up_tone5":"261d-1f3ff","poland":"1f1f5-1f1f1","police_car":"1f693","policeman":"1f46e","poodle":"1f429","poop":"1f4a9","popcorn":"1f37f","portugal":"1f1f5-1f1f9","post_office":"1f3e3","postal_horn":"1f4ef","postbox":"1f4ee","potable_water":"1f6b0","potato":"1f954","pouch":"1f45d","poultry_leg":"1f357","pound":"1f4b7","pout":"1f621","pouting_cat":"1f63e","pouting_woman":"1f64e","pray":"1f64f","pray_tone1":"1f64f-1f3fb","pray_tone2":"1f64f-1f3fc","pray_tone3":"1f64f-1f3fd","pray_tone4":"1f64f-1f3fe","pray_tone5":"1f64f-1f3ff","prayer_beads":"1f4ff","pregnant_woman":"1f930","pregnant_woman_tone1":"1f930-1f3fb","pregnant_woman_tone2":"1f930-1f3fc","pregnant_woman_tone3":"1f930-1f3fd","pregnant_woman_tone4":"1f930-1f3fe","pregnant_woman_tone5":"1f930-1f3ff","previous_track_button":"23ee","prince":"1f934","prince_tone1":"1f934-1f3fb","prince_tone2":"1f934-1f3fc","prince_tone3":"1f934-1f3fd","prince_tone4":"1f934-1f3fe","prince_tone5":"1f934-1f3ff","princess":"1f478","princess_tone1":"1f478-1f3fb","princess_tone2":"1f478-1f3fc","princess_tone3":"1f478-1f3fd","princess_tone4":"1f478-1f3fe","princess_tone5":"1f478-1f3ff","printer":"1f5a8","projector":"1f4fd","puerto_rico":"1f1f5-1f1f7","punch":"1f44a","punch_tone1":"1f44a-1f3fb","punch_tone2":"1f44a-1f3fc","punch_tone3":"1f44a-1f3fd","punch_tone4":"1f44a-1f3fe","punch_tone5":"1f44a-1f3ff","purple_heart":"1f49c","purse":"1f45b","pushpin":"1f4cc","put_litter_in_its_place":"1f6ae","qatar":"1f1f6-1f1e6","question":"2753","rabbit":"1f430","rabbit2":"1f407","race_car":"1f3ce","racehorse":"1f40e","racing_car":"1f3ce","radio":"1f4fb","radio_button":"1f518","radioactive":"2622","rage":"1f621","railway_car":"1f683","railway_track":"1f6e4","rainbow":"1f308","rainbow_flag":"1f3f3-1f308","raised_back_of_hand":"1f91a","raised_back_of_hand_tone1":"1f91a-1f3fb","raised_back_of_hand_tone2":"1f91a-1f3fc","raised_back_of_hand_tone3":"1f91a-1f3fd","raised_back_of_hand_tone4":"1f91a-1f3fe","raised_back_of_hand_tone5":"1f91a-1f3ff","raised_hand":"270b","raised_hand_tone1":"270b-1f3fb","raised_hand_tone2":"270b-1f3fc","raised_hand_tone3":"270b-1f3fd","raised_hand_tone4":"270b-1f3fe","raised_hand_tone5":"270b-1f3ff","raised_hand_with_fingers_splayed":"1f590","raised_hands":"1f64c","raised_hands_tone1":"1f64c-1f3fb","raised_hands_tone2":"1f64c-1f3fc","raised_hands_tone3":"1f64c-1f3fd","raised_hands_tone4":"1f64c-1f3fe","raised_hands_tone5":"1f64c-1f3ff","raising_hand":"1f64b","raising_hand_tone1":"1f64b-1f3fb","raising_hand_tone2":"1f64b-1f3fc","raising_hand_tone3":"1f64b-1f3fd","raising_hand_tone4":"1f64b-1f3fe","raising_hand_tone5":"1f64b-1f3ff","raising_hand_woman":"1f64b","ram":"1f40f","ramen":"1f35c","rat":"1f400","record_button":"23fa","recycle":"267b","red_car":"1f697","red_circle":"1f534","regional_indicator_a":"1f1e6","regional_indicator_b":"1f1e7","regional_indicator_c":"1f1e8","regional_indicator_d":"1f1e9","regional_indicator_e":"1f1ea","regional_indicator_f":"1f1eb","regional_indicator_g":"1f1ec","regional_indicator_h":"1f1ed","regional_indicator_i":"1f1ee","regional_indicator_j":"1f1ef","regional_indicator_k":"1f1f0","regional_indicator_l":"1f1f1","regional_indicator_m":"1f1f2","regional_indicator_n":"1f1f3","regional_indicator_o":"1f1f4","regional_indicator_p":"1f1f5","regional_indicator_q":"1f1f6","regional_indicator_r":"1f1f7","regional_indicator_s":"1f1f8","regional_indicator_t":"1f1f9","regional_indicator_u":"1f1fa","regional_indicator_v":"1f1fb","regional_indicator_w":"1f1fc","regional_indicator_x":"1f1fd","regional_indicator_y":"1f1fe","regional_indicator_z":"1f1ff","registered":"00ae","relaxed":"263a","relieved":"1f60c","reminder_ribbon":"1f397","repeat":"1f501","repeat_one":"1f502","rescue_worker_helmet":"26d1","restroom":"1f6bb","reunion":"1f1f7-1f1ea","revolving_hearts":"1f49e","rewind":"23ea","rhino":"1f98f","ribbon":"1f380","rice":"1f35a","rice_ball":"1f359","rice_cracker":"1f358","rice_scene":"1f391","right_anger_bubble":"1f5ef","right_facing_fist":"1f91c","right_facing_fist_tone1":"1f91c-1f3fb","right_facing_fist_tone2":"1f91c-1f3fc","right_facing_fist_tone3":"1f91c-1f3fd","right_facing_fist_tone4":"1f91c-1f3fe","right_facing_fist_tone5":"1f91c-1f3ff","ring":"1f48d","robot":"1f916","rocket":"1f680","rofl":"1f923","roll_eyes":"1f644","roller_coaster":"1f3a2","rolling_eyes":"1f644","romania":"1f1f7-1f1f4","rooster":"1f413","rose":"1f339","rosette":"1f3f5","rotating_light":"1f6a8","round_pushpin":"1f4cd","rowboat":"1f6a3","rowboat_tone1":"1f6a3-1f3fb","rowboat_tone2":"1f6a3-1f3fc","rowboat_tone3":"1f6a3-1f3fd","rowboat_tone4":"1f6a3-1f3fe","rowboat_tone5":"1f6a3-1f3ff","rowing_man":"1f6a3","ru":"1f1f7-1f1fa","rugby_football":"1f3c9","runner":"1f3c3","runner_tone1":"1f3c3-1f3fb","runner_tone2":"1f3c3-1f3fc","runner_tone3":"1f3c3-1f3fd","runner_tone4":"1f3c3-1f3fe","runner_tone5":"1f3c3-1f3ff","running":"1f3c3","running_man":"1f3c3","running_shirt_with_sash":"1f3bd","rwanda":"1f1f7-1f1fc","sa":"1f202","sagittarius":"2650","sailboat":"26f5","sake":"1f376","salad":"1f957","samoa":"1f1fc-1f1f8","san_marino":"1f1f8-1f1f2","sandal":"1f461","santa":"1f385","santa_tone1":"1f385-1f3fb","santa_tone2":"1f385-1f3fc","santa_tone3":"1f385-1f3fd","santa_tone4":"1f385-1f3fe","santa_tone5":"1f385-1f3ff","sao_tome_principe":"1f1f8-1f1f9","satellite":"1f4e1","satellite_orbital":"1f6f0","satisfied":"1f606","saudi_arabia":"1f1f8-1f1e6","saxophone":"1f3b7","scales":"2696","school":"1f3eb","school_satchel":"1f392","scissors":"2702","scooter":"1f6f4","scorpion":"1f982","scorpius":"264f","scream":"1f631","scream_cat":"1f640","scroll":"1f4dc","seat":"1f4ba","second_place":"1f948","secret":"3299","see_no_evil":"1f648","seedling":"1f331","selfie":"1f933","selfie_tone1":"1f933-1f3fb","selfie_tone2":"1f933-1f3fc","selfie_tone3":"1f933-1f3fd","selfie_tone4":"1f933-1f3fe","selfie_tone5":"1f933-1f3ff","senegal":"1f1f8-1f1f3","serbia":"1f1f7-1f1f8","seven":"0037-20e3","seychelles":"1f1f8-1f1e8","shallow_pan_of_food":"1f958","shamrock":"2618","shark":"1f988","shaved_ice":"1f367","sheep":"1f411","shell":"1f41a","shield":"1f6e1","shinto_shrine":"26e9","ship":"1f6a2","shirt":"1f455","shit":"1f4a9","shoe":"1f45e","shopping":"1f6cd","shopping_bags":"1f6cd","shopping_cart":"1f6d2","shower":"1f6bf","shrimp":"1f990","shrug":"1f937","shrug_tone1":"1f937-1f3fb","shrug_tone2":"1f937-1f3fc","shrug_tone3":"1f937-1f3fd","shrug_tone4":"1f937-1f3fe","shrug_tone5":"1f937-1f3ff","sierra_leone":"1f1f8-1f1f1","signal_strength":"1f4f6","singapore":"1f1f8-1f1ec","sint_maarten":"1f1f8-1f1fd","six":"0036-20e3","six_pointed_star":"1f52f","ski":"1f3bf","skier":"26f7","skull":"1f480","skull_and_crossbones":"2620","skull_crossbones":"2620","sleeping":"1f634","sleeping_accommodation":"1f6cc","sleeping_bed":"1f6cc","sleepy":"1f62a","slight_frown":"1f641","slight_smile":"1f642","slightly_frowning_face":"1f641","slightly_smiling_face":"1f642","slot_machine":"1f3b0","slovakia":"1f1f8-1f1f0","slovenia":"1f1f8-1f1ee","small_airplane":"1f6e9","small_blue_diamond":"1f539","small_orange_diamond":"1f538","small_red_triangle":"1f53a","small_red_triangle_down":"1f53b","smile":"1f604","smile_cat":"1f638","smiley":"1f603","smiley_cat":"1f63a","smiling_imp":"1f608","smirk":"1f60f","smirk_cat":"1f63c","smoking":"1f6ac","snail":"1f40c","snake":"1f40d","sneezing_face":"1f927","snowboarder":"1f3c2","snowflake":"2744","snowman":"26c4","snowman2":"2603","snowman_with_snow":"2603","sob":"1f62d","soccer":"26bd","solomon_islands":"1f1f8-1f1e7","somalia":"1f1f8-1f1f4","soon":"1f51c","sos":"1f198","sound":"1f509","south_africa":"1f1ff-1f1e6","south_georgia_south_sandwich_islands":"1f1ec-1f1f8","south_sudan":"1f1f8-1f1f8","space_invader":"1f47e","spades":"2660","spaghetti":"1f35d","sparkle":"2747","sparkler":"1f387","sparkles":"2728","sparkling_heart":"1f496","speak_no_evil":"1f64a","speaker":"1f508","speaking_head":"1f5e3","speech_balloon":"1f4ac","speech_left":"1f5e8","speedboat":"1f6a4","spider":"1f577","spider_web":"1f578","spiral_calendar":"1f5d3","spiral_notepad":"1f5d2","spoon":"1f944","spy":"1f575","spy_tone1":"1f575-1f3fb","spy_tone2":"1f575-1f3fc","spy_tone3":"1f575-1f3fd","spy_tone4":"1f575-1f3fe","spy_tone5":"1f575-1f3ff","squid":"1f991","sri_lanka":"1f1f1-1f1f0","st_barthelemy":"1f1e7-1f1f1","st_helena":"1f1f8-1f1ed","st_kitts_nevis":"1f1f0-1f1f3","st_lucia":"1f1f1-1f1e8","st_pierre_miquelon":"1f1f5-1f1f2","st_vincent_grenadines":"1f1fb-1f1e8","stadium":"1f3df","star":"2b50","star2":"1f31f","star_and_crescent":"262a","star_of_david":"2721","stars":"1f320","station":"1f689","statue_of_liberty":"1f5fd","steam_locomotive":"1f682","stew":"1f372","stop_button":"23f9","stopwatch":"23f1","straight_ruler":"1f4cf","strawberry":"1f353","stuck_out_tongue":"1f61b","stuck_out_tongue_closed_eyes":"1f61d","stuck_out_tongue_winking_eye":"1f61c","studio_microphone":"1f399","stuffed_flatbread":"1f959","sudan":"1f1f8-1f1e9","sun_behind_large_cloud":"1f325","sun_behind_rain_cloud":"1f326","sun_behind_small_cloud":"1f324","sun_with_face":"1f31e","sunflower":"1f33b","sunglasses":"1f60e","sunny":"2600","sunrise":"1f305","sunrise_over_mountains":"1f304","surfer":"1f3c4","surfer_tone1":"1f3c4-1f3fb","surfer_tone2":"1f3c4-1f3fc","surfer_tone3":"1f3c4-1f3fd","surfer_tone4":"1f3c4-1f3fe","surfer_tone5":"1f3c4-1f3ff","surfing_man":"1f3c4","suriname":"1f1f8-1f1f7","sushi":"1f363","suspension_railway":"1f69f","swaziland":"1f1f8-1f1ff","sweat":"1f613","sweat_drops":"1f4a6","sweat_smile":"1f605","sweden":"1f1f8-1f1ea","sweet_potato":"1f360","swimmer":"1f3ca","swimmer_tone1":"1f3ca-1f3fb","swimmer_tone2":"1f3ca-1f3fc","swimmer_tone3":"1f3ca-1f3fd","swimmer_tone4":"1f3ca-1f3fe","swimmer_tone5":"1f3ca-1f3ff","swimming_man":"1f3ca","switzerland":"1f1e8-1f1ed","symbols":"1f523","synagogue":"1f54d","syria":"1f1f8-1f1fe","syringe":"1f489","taco":"1f32e","tada":"1f389","taiwan":"1f1f9-1f1fc","tajikistan":"1f1f9-1f1ef","tanabata_tree":"1f38b","tangerine":"1f34a","tanzania":"1f1f9-1f1ff","taurus":"2649","taxi":"1f695","tea":"1f375","telephone":"260e","telephone_receiver":"1f4de","telescope":"1f52d","tennis":"1f3be","tent":"26fa","thailand":"1f1f9-1f1ed","thermometer":"1f321","thermometer_face":"1f912","thinking":"1f914","third_place":"1f949","thought_balloon":"1f4ad","three":"0033-20e3","thumbsdown":"1f44e","thumbsdown_tone1":"1f44e-1f3fb","thumbsdown_tone2":"1f44e-1f3fc","thumbsdown_tone3":"1f44e-1f3fd","thumbsdown_tone4":"1f44e-1f3fe","thumbsdown_tone5":"1f44e-1f3ff","thumbsup":"1f44d","thumbsup_tone1":"1f44d-1f3fb","thumbsup_tone2":"1f44d-1f3fc","thumbsup_tone3":"1f44d-1f3fd","thumbsup_tone4":"1f44d-1f3fe","thumbsup_tone5":"1f44d-1f3ff","thunder_cloud_rain":"26c8","ticket":"1f3ab","tickets":"1f39f","tiger":"1f42f","tiger2":"1f405","timer":"23f2","timer_clock":"23f2","timor_leste":"1f1f9-1f1f1","tipping_hand_woman":"1f481","tired_face":"1f62b","tm":"2122","togo":"1f1f9-1f1ec","toilet":"1f6bd","tokelau":"1f1f9-1f1f0","tokyo_tower":"1f5fc","tomato":"1f345","tone1":"1f3fb","tone2":"1f3fc","tone3":"1f3fd","tone4":"1f3fe","tone5":"1f3ff","tonga":"1f1f9-1f1f4","tongue":"1f445","tools":"1f6e0","top":"1f51d","tophat":"1f3a9","tornado":"1f32a","tr":"1f1f9-1f1f7","track_next":"23ed","track_previous":"23ee","trackball":"1f5b2","tractor":"1f69c","traffic_light":"1f6a5","train":"1f68b","train2":"1f686","tram":"1f68a","triangular_flag_on_post":"1f6a9","triangular_ruler":"1f4d0","trident":"1f531","trinidad_tobago":"1f1f9-1f1f9","triumph":"1f624","trolleybus":"1f68e","trophy":"1f3c6","tropical_drink":"1f379","tropical_fish":"1f420","truck":"1f69a","trumpet":"1f3ba","tshirt":"1f455","tulip":"1f337","tumbler_glass":"1f943","tunisia":"1f1f9-1f1f3","turkey":"1f983","turkmenistan":"1f1f9-1f1f2","turks_caicos_islands":"1f1f9-1f1e8","turtle":"1f422","tuvalu":"1f1f9-1f1fb","tv":"1f4fa","twisted_rightwards_arrows":"1f500","two":"0032-20e3","two_hearts":"1f495","two_men_holding_hands":"1f46c","two_women_holding_hands":"1f46d","u5272":"1f239","u5408":"1f234","u55b6":"1f23a","u6307":"1f22f","u6708":"1f237","u6709":"1f236","u6e80":"1f235","u7121":"1f21a","u7533":"1f238","u7981":"1f232","u7a7a":"1f233","uganda":"1f1fa-1f1ec","uk":"1f1ec-1f1e7","ukraine":"1f1fa-1f1e6","umbrella":"2614","umbrella2":"2602","unamused":"1f612","underage":"1f51e","unicorn":"1f984","united_arab_emirates":"1f1e6-1f1ea","unlock":"1f513","up":"1f199","upside_down":"1f643","upside_down_face":"1f643","urn":"26b1","uruguay":"1f1fa-1f1fe","us":"1f1fa-1f1f8","us_virgin_islands":"1f1fb-1f1ee","uzbekistan":"1f1fa-1f1ff","v":"270c","v_tone1":"270c-1f3fb","v_tone2":"270c-1f3fc","v_tone3":"270c-1f3fd","v_tone4":"270c-1f3fe","v_tone5":"270c-1f3ff","vanuatu":"1f1fb-1f1fa","vatican_city":"1f1fb-1f1e6","venezuela":"1f1fb-1f1ea","vertical_traffic_light":"1f6a6","vhs":"1f4fc","vibration_mode":"1f4f3","video_camera":"1f4f9","video_game":"1f3ae","vietnam":"1f1fb-1f1f3","violin":"1f3bb","virgo":"264d","volcano":"1f30b","volleyball":"1f3d0","vs":"1f19a","vulcan":"1f596","vulcan_salute":"1f596","vulcan_tone1":"1f596-1f3fb","vulcan_tone2":"1f596-1f3fc","vulcan_tone3":"1f596-1f3fd","vulcan_tone4":"1f596-1f3fe","vulcan_tone5":"1f596-1f3ff","walking":"1f6b6","walking_man":"1f6b6","walking_tone1":"1f6b6-1f3fb","walking_tone2":"1f6b6-1f3fc","walking_tone3":"1f6b6-1f3fd","walking_tone4":"1f6b6-1f3fe","walking_tone5":"1f6b6-1f3ff","wallis_futuna":"1f1fc-1f1eb","waning_crescent_moon":"1f318","waning_gibbous_moon":"1f316","warning":"26a0","wastebasket":"1f5d1","watch":"231a","water_buffalo":"1f403","water_polo":"1f93d","water_polo_tone1":"1f93d-1f3fb","water_polo_tone2":"1f93d-1f3fc","water_polo_tone3":"1f93d-1f3fd","water_polo_tone4":"1f93d-1f3fe","water_polo_tone5":"1f93d-1f3ff","watermelon":"1f349","wave":"1f44b","wave_tone1":"1f44b-1f3fb","wave_tone2":"1f44b-1f3fc","wave_tone3":"1f44b-1f3fd","wave_tone4":"1f44b-1f3fe","wave_tone5":"1f44b-1f3ff","wavy_dash":"3030","waxing_crescent_moon":"1f312","waxing_gibbous_moon":"1f314","wc":"1f6be","weary":"1f629","wedding":"1f492","weight_lifting_man":"1f3cb","western_sahara":"1f1ea-1f1ed","whale":"1f433","whale2":"1f40b","wheel_of_dharma":"2638","wheelchair":"267f","white_check_mark":"2705","white_circle":"26aa","white_flag":"1f3f3","white_flower":"1f4ae","white_large_square":"2b1c","white_medium_small_square":"25fd","white_medium_square":"25fb","white_small_square":"25ab","white_square_button":"1f533","white_sun_cloud":"1f325","white_sun_rain_cloud":"1f326","white_sun_small_cloud":"1f324","wilted_rose":"1f940","wind_blowing_face":"1f32c","wind_chime":"1f390","wind_face":"1f32c","wine_glass":"1f377","wink":"1f609","wolf":"1f43a","woman":"1f469","woman_tone1":"1f469-1f3fb","woman_tone2":"1f469-1f3fc","woman_tone3":"1f469-1f3fd","woman_tone4":"1f469-1f3fe","woman_tone5":"1f469-1f3ff","womans_clothes":"1f45a","womans_hat":"1f452","womens":"1f6ba","world_map":"1f5fa","worried":"1f61f","wrench":"1f527","wrestlers":"1f93c","wrestlers_tone1":"1f93c-1f3fb","wrestlers_tone2":"1f93c-1f3fc","wrestlers_tone3":"1f93c-1f3fd","wrestlers_tone4":"1f93c-1f3fe","wrestlers_tone5":"1f93c-1f3ff","writing_hand":"270d","writing_hand_tone1":"270d-1f3fb","writing_hand_tone2":"270d-1f3fc","writing_hand_tone3":"270d-1f3fd","writing_hand_tone4":"270d-1f3fe","writing_hand_tone5":"270d-1f3ff","x":"274c","yellow_heart":"1f49b","yemen":"1f1fe-1f1ea","yen":"1f4b4","yin_yang":"262f","yum":"1f60b","zambia":"1f1ff-1f1f2","zap":"26a1","zero":"0030-20e3","zimbabwe":"1f1ff-1f1fc","zipper_mouth":"1f910","zipper_mouth_face":"1f910","zzz":"1f4a4"};
+var map = {"+1":"1f44d","-1":"1f44e","100":"1f4af","1234":"1f522","8ball":"1f3b1","a":"1f170","ab":"1f18e","abc":"1f524","abcd":"1f521","accept":"1f251","aerial_tramway":"1f6a1","afghanistan":"1f1e6-1f1eb","airplane":"2708","airplane_arriving":"1f6ec","airplane_departure":"1f6eb","airplane_small":"1f6e9","aland_islands":"1f1e6-1f1fd","alarm_clock":"23f0","albania":"1f1e6-1f1f1","alembic":"2697","algeria":"1f1e9-1f1ff","alien":"1f47d","ambulance":"1f691","american_samoa":"1f1e6-1f1f8","amphora":"1f3fa","anchor":"2693","andorra":"1f1e6-1f1e9","angel":"1f47c","angel_tone1":"1f47c-1f3fb","angel_tone2":"1f47c-1f3fc","angel_tone3":"1f47c-1f3fd","angel_tone4":"1f47c-1f3fe","angel_tone5":"1f47c-1f3ff","anger":"1f4a2","anger_right":"1f5ef","angola":"1f1e6-1f1f4","angry":"1f620","anguilla":"1f1e6-1f1ee","anguished":"1f627","ant":"1f41c","antarctica":"1f1e6-1f1f6","antigua_barbuda":"1f1e6-1f1ec","apple":"1f34e","aquarius":"2652","argentina":"1f1e6-1f1f7","aries":"2648","armenia":"1f1e6-1f1f2","arrow_backward":"25c0","arrow_double_down":"23ec","arrow_double_up":"23eb","arrow_down":"2b07","arrow_down_small":"1f53d","arrow_forward":"25b6","arrow_heading_down":"2935","arrow_heading_up":"2934","arrow_left":"2b05","arrow_lower_left":"2199","arrow_lower_right":"2198","arrow_right":"27a1","arrow_right_hook":"21aa","arrow_up":"2b06","arrow_up_down":"2195","arrow_up_small":"1f53c","arrow_upper_left":"2196","arrow_upper_right":"2197","arrows_clockwise":"1f503","arrows_counterclockwise":"1f504","art":"1f3a8","articulated_lorry":"1f69b","artificial_satellite":"1f6f0","aruba":"1f1e6-1f1fc","asterisk":"002a-20e3","astonished":"1f632","athletic_shoe":"1f45f","atm":"1f3e7","atom":"269b","atom_symbol":"269b","australia":"1f1e6-1f1fa","austria":"1f1e6-1f1f9","avocado":"1f951","azerbaijan":"1f1e6-1f1ff","b":"1f171","baby":"1f476","baby_bottle":"1f37c","baby_chick":"1f424","baby_symbol":"1f6bc","baby_tone1":"1f476-1f3fb","baby_tone2":"1f476-1f3fc","baby_tone3":"1f476-1f3fd","baby_tone4":"1f476-1f3fe","baby_tone5":"1f476-1f3ff","back":"1f519","bacon":"1f953","badminton":"1f3f8","baggage_claim":"1f6c4","bahamas":"1f1e7-1f1f8","bahrain":"1f1e7-1f1ed","balance_scale":"2696","balloon":"1f388","ballot_box":"1f5f3","ballot_box_with_check":"2611","bamboo":"1f38d","banana":"1f34c","bangbang":"203c","bangladesh":"1f1e7-1f1e9","bank":"1f3e6","bar_chart":"1f4ca","barbados":"1f1e7-1f1e7","barber":"1f488","baseball":"26be","basketball":"1f3c0","basketball_man":"26f9","basketball_player":"26f9","basketball_player_tone1":"26f9-1f3fb","basketball_player_tone2":"26f9-1f3fc","basketball_player_tone3":"26f9-1f3fd","basketball_player_tone4":"26f9-1f3fe","basketball_player_tone5":"26f9-1f3ff","bat":"1f987","bath":"1f6c0","bath_tone1":"1f6c0-1f3fb","bath_tone2":"1f6c0-1f3fc","bath_tone3":"1f6c0-1f3fd","bath_tone4":"1f6c0-1f3fe","bath_tone5":"1f6c0-1f3ff","bathtub":"1f6c1","battery":"1f50b","beach":"1f3d6","beach_umbrella":"26f1","bear":"1f43b","bed":"1f6cf","bee":"1f41d","beer":"1f37a","beers":"1f37b","beetle":"1f41e","beginner":"1f530","belarus":"1f1e7-1f1fe","belgium":"1f1e7-1f1ea","belize":"1f1e7-1f1ff","bell":"1f514","bellhop":"1f6ce","bellhop_bell":"1f6ce","benin":"1f1e7-1f1ef","bento":"1f371","bermuda":"1f1e7-1f1f2","bhutan":"1f1e7-1f1f9","bicyclist":"1f6b4","bicyclist_tone1":"1f6b4-1f3fb","bicyclist_tone2":"1f6b4-1f3fc","bicyclist_tone3":"1f6b4-1f3fd","bicyclist_tone4":"1f6b4-1f3fe","bicyclist_tone5":"1f6b4-1f3ff","bike":"1f6b2","biking_man":"1f6b4","bikini":"1f459","biohazard":"2623","bird":"1f426","birthday":"1f382","black_circle":"26ab","black_flag":"1f3f4","black_heart":"1f5a4","black_joker":"1f0cf","black_large_square":"2b1b","black_medium_small_square":"25fe","black_medium_square":"25fc","black_nib":"2712","black_small_square":"25aa","black_square_button":"1f532","blonde_man":"1f471","blossom":"1f33c","blowfish":"1f421","blue_book":"1f4d8","blue_car":"1f699","blue_circle":"1f535","blue_heart":"1f499","blush":"1f60a","boar":"1f417","boat":"26f5","bolivia":"1f1e7-1f1f4","bomb":"1f4a3","book":"1f4d6","bookmark":"1f516","bookmark_tabs":"1f4d1","books":"1f4da","boom":"1f4a5","boot":"1f462","bosnia_herzegovina":"1f1e7-1f1e6","botswana":"1f1e7-1f1fc","bouquet":"1f490","bow":"1f647","bow_and_arrow":"1f3f9","bow_tone1":"1f647-1f3fb","bow_tone2":"1f647-1f3fc","bow_tone3":"1f647-1f3fd","bow_tone4":"1f647-1f3fe","bow_tone5":"1f647-1f3ff","bowing_man":"1f647","bowling":"1f3b3","boxing_glove":"1f94a","boy":"1f466","boy_tone1":"1f466-1f3fb","boy_tone2":"1f466-1f3fc","boy_tone3":"1f466-1f3fd","boy_tone4":"1f466-1f3fe","boy_tone5":"1f466-1f3ff","brazil":"1f1e7-1f1f7","bread":"1f35e","bride_with_veil":"1f470","bride_with_veil_tone1":"1f470-1f3fb","bride_with_veil_tone2":"1f470-1f3fc","bride_with_veil_tone3":"1f470-1f3fd","bride_with_veil_tone4":"1f470-1f3fe","bride_with_veil_tone5":"1f470-1f3ff","bridge_at_night":"1f309","briefcase":"1f4bc","british_indian_ocean_territory":"1f1ee-1f1f4","british_virgin_islands":"1f1fb-1f1ec","broken_heart":"1f494","brunei":"1f1e7-1f1f3","bug":"1f41b","building_construction":"1f3d7","bulb":"1f4a1","bulgaria":"1f1e7-1f1ec","bullettrain_front":"1f685","bullettrain_side":"1f684","burkina_faso":"1f1e7-1f1eb","burrito":"1f32f","burundi":"1f1e7-1f1ee","bus":"1f68c","business_suit_levitating":"1f574","busstop":"1f68f","bust_in_silhouette":"1f464","busts_in_silhouette":"1f465","butterfly":"1f98b","cactus":"1f335","cake":"1f370","calendar":"1f4c6","calendar_spiral":"1f5d3","call_me":"1f919","call_me_tone1":"1f919-1f3fb","call_me_tone2":"1f919-1f3fc","call_me_tone3":"1f919-1f3fd","call_me_tone4":"1f919-1f3fe","call_me_tone5":"1f919-1f3ff","calling":"1f4f2","cambodia":"1f1f0-1f1ed","camel":"1f42b","camera":"1f4f7","camera_flash":"1f4f8","camera_with_flash":"1f4f8","cameroon":"1f1e8-1f1f2","camping":"1f3d5","canada":"1f1e8-1f1e6","canary_islands":"1f1ee-1f1e8","cancer":"264b","candle":"1f56f","candy":"1f36c","canoe":"1f6f6","cape_verde":"1f1e8-1f1fb","capital_abcd":"1f520","capricorn":"2651","car":"1f697","card_box":"1f5c3","card_file_box":"1f5c3","card_index":"1f4c7","card_index_dividers":"1f5c2","caribbean_netherlands":"1f1e7-1f1f6","carousel_horse":"1f3a0","carrot":"1f955","cartwheel":"1f938","cartwheel_tone1":"1f938-1f3fb","cartwheel_tone2":"1f938-1f3fc","cartwheel_tone3":"1f938-1f3fd","cartwheel_tone4":"1f938-1f3fe","cartwheel_tone5":"1f938-1f3ff","cat":"1f431","cat2":"1f408","cayman_islands":"1f1f0-1f1fe","cd":"1f4bf","central_african_republic":"1f1e8-1f1eb","chad":"1f1f9-1f1e9","chains":"26d3","champagne":"1f37e","champagne_glass":"1f942","chart":"1f4b9","chart_with_downwards_trend":"1f4c9","chart_with_upwards_trend":"1f4c8","checkered_flag":"1f3c1","cheese":"1f9c0","cherries":"1f352","cherry_blossom":"1f338","chestnut":"1f330","chicken":"1f414","children_crossing":"1f6b8","chile":"1f1e8-1f1f1","chipmunk":"1f43f","chocolate_bar":"1f36b","christmas_island":"1f1e8-1f1fd","christmas_tree":"1f384","church":"26ea","cinema":"1f3a6","circus_tent":"1f3aa","city_dusk":"1f306","city_sunrise":"1f307","city_sunset":"1f307","cityscape":"1f3d9","cl":"1f191","clamp":"1f5dc","clap":"1f44f","clap_tone1":"1f44f-1f3fb","clap_tone2":"1f44f-1f3fc","clap_tone3":"1f44f-1f3fd","clap_tone4":"1f44f-1f3fe","clap_tone5":"1f44f-1f3ff","clapper":"1f3ac","classical_building":"1f3db","clipboard":"1f4cb","clock":"1f570","clock1":"1f550","clock10":"1f559","clock1030":"1f565","clock11":"1f55a","clock1130":"1f566","clock12":"1f55b","clock1230":"1f567","clock130":"1f55c","clock2":"1f551","clock230":"1f55d","clock3":"1f552","clock330":"1f55e","clock4":"1f553","clock430":"1f55f","clock5":"1f554","clock530":"1f560","clock6":"1f555","clock630":"1f561","clock7":"1f556","clock730":"1f562","clock8":"1f557","clock830":"1f563","clock9":"1f558","clock930":"1f564","closed_book":"1f4d5","closed_lock_with_key":"1f510","closed_umbrella":"1f302","cloud":"2601","cloud_lightning":"1f329","cloud_rain":"1f327","cloud_snow":"1f328","cloud_tornado":"1f32a","cloud_with_lightning":"1f329","cloud_with_lightning_and_rain":"26c8","cloud_with_rain":"1f327","cloud_with_snow":"1f328","clown":"1f921","clubs":"2663","cn":"1f1e8-1f1f3","cocktail":"1f378","cocos_islands":"1f1e8-1f1e8","coffee":"2615","coffin":"26b0","cold_sweat":"1f630","collision":"1f4a5","colombia":"1f1e8-1f1f4","comet":"2604","comoros":"1f1f0-1f1f2","compression":"1f5dc","computer":"1f4bb","computer_mouse":"1f5b1","confetti_ball":"1f38a","confounded":"1f616","confused":"1f615","congo_brazzaville":"1f1e8-1f1ec","congo_kinshasa":"1f1e8-1f1e9","congratulations":"3297","construction":"1f6a7","construction_site":"1f3d7","construction_worker":"1f477","construction_worker_man":"1f477","construction_worker_tone1":"1f477-1f3fb","construction_worker_tone2":"1f477-1f3fc","construction_worker_tone3":"1f477-1f3fd","construction_worker_tone4":"1f477-1f3fe","construction_worker_tone5":"1f477-1f3ff","control_knobs":"1f39b","convenience_store":"1f3ea","cook_islands":"1f1e8-1f1f0","cookie":"1f36a","cooking":"1f373","cool":"1f192","cop":"1f46e","cop_tone1":"1f46e-1f3fb","cop_tone2":"1f46e-1f3fc","cop_tone3":"1f46e-1f3fd","cop_tone4":"1f46e-1f3fe","cop_tone5":"1f46e-1f3ff","copyright":"00a9","corn":"1f33d","costa_rica":"1f1e8-1f1f7","cote_divoire":"1f1e8-1f1ee","couch":"1f6cb","couch_and_lamp":"1f6cb","couple":"1f46b","couple_mm":"1f468-2764-1f468","couple_with_heart":"1f491","couple_with_heart_man_man":"1f468-2764-1f468","couple_with_heart_woman_man":"1f491","couple_with_heart_woman_woman":"1f469-2764-1f469","couple_ww":"1f469-2764-1f469","couplekiss":"1f48f","couplekiss_man_man":"1f468-2764-1f48b-1f468","couplekiss_man_woman":"1f48f","couplekiss_woman_woman":"1f469-2764-1f48b-1f469","cow":"1f42e","cow2":"1f404","cowboy":"1f920","crab":"1f980","crayon":"1f58d","credit_card":"1f4b3","crescent_moon":"1f319","cricket":"1f3cf","croatia":"1f1ed-1f1f7","crocodile":"1f40a","croissant":"1f950","cross":"271d","crossed_flags":"1f38c","crossed_swords":"2694","crown":"1f451","cruise_ship":"1f6f3","cry":"1f622","crying_cat_face":"1f63f","crystal_ball":"1f52e","cuba":"1f1e8-1f1fa","cucumber":"1f952","cupid":"1f498","curacao":"1f1e8-1f1fc","curly_loop":"27b0","currency_exchange":"1f4b1","curry":"1f35b","custard":"1f36e","customs":"1f6c3","cyclone":"1f300","cyprus":"1f1e8-1f1fe","czech_republic":"1f1e8-1f1ff","dagger":"1f5e1","dancer":"1f483","dancer_tone1":"1f483-1f3fb","dancer_tone2":"1f483-1f3fc","dancer_tone3":"1f483-1f3fd","dancer_tone4":"1f483-1f3fe","dancer_tone5":"1f483-1f3ff","dancers":"1f46f","dancing_women":"1f46f","dango":"1f361","dark_sunglasses":"1f576","dart":"1f3af","dash":"1f4a8","date":"1f4c5","de":"1f1e9-1f1ea","deciduous_tree":"1f333","deer":"1f98c","denmark":"1f1e9-1f1f0","department_store":"1f3ec","derelict_house":"1f3da","desert":"1f3dc","desert_island":"1f3dd","desktop":"1f5a5","desktop_computer":"1f5a5","detective":"1f575","diamond_shape_with_a_dot_inside":"1f4a0","diamonds":"2666","disappointed":"1f61e","disappointed_relieved":"1f625","dividers":"1f5c2","dizzy":"1f4ab","dizzy_face":"1f635","djibouti":"1f1e9-1f1ef","do_not_litter":"1f6af","dog":"1f436","dog2":"1f415","dollar":"1f4b5","dolls":"1f38e","dolphin":"1f42c","dominica":"1f1e9-1f1f2","dominican_republic":"1f1e9-1f1f4","door":"1f6aa","doughnut":"1f369","dove":"1f54a","dragon":"1f409","dragon_face":"1f432","dress":"1f457","dromedary_camel":"1f42a","drooling_face":"1f924","droplet":"1f4a7","drum":"1f941","duck":"1f986","dvd":"1f4c0","e-mail":"1f4e7","eagle":"1f985","ear":"1f442","ear_of_rice":"1f33e","ear_tone1":"1f442-1f3fb","ear_tone2":"1f442-1f3fc","ear_tone3":"1f442-1f3fd","ear_tone4":"1f442-1f3fe","ear_tone5":"1f442-1f3ff","earth_africa":"1f30d","earth_americas":"1f30e","earth_asia":"1f30f","ecuador":"1f1ea-1f1e8","egg":"1f95a","eggplant":"1f346","egypt":"1f1ea-1f1ec","eight":"0038-20e3","eight_pointed_black_star":"2734","eight_spoked_asterisk":"2733","eject":"23cf","el_salvador":"1f1f8-1f1fb","electric_plug":"1f50c","elephant":"1f418","email":"2709","end":"1f51a","envelope":"2709","envelope_with_arrow":"1f4e9","equatorial_guinea":"1f1ec-1f1f6","eritrea":"1f1ea-1f1f7","es":"1f1ea-1f1f8","estonia":"1f1ea-1f1ea","ethiopia":"1f1ea-1f1f9","eu":"1f1ea-1f1fa","euro":"1f4b6","european_castle":"1f3f0","european_post_office":"1f3e4","european_union":"1f1ea-1f1fa","evergreen_tree":"1f332","exclamation":"2757","expressionless":"1f611","eye":"1f441","eye_in_speech_bubble":"1f441-1f5e8","eye_speech_bubble":"1f441-1f5e8","eyeglasses":"1f453","eyes":"1f440","face_palm":"1f926","face_palm_tone1":"1f926-1f3fb","face_palm_tone2":"1f926-1f3fc","face_palm_tone3":"1f926-1f3fd","face_palm_tone4":"1f926-1f3fe","face_palm_tone5":"1f926-1f3ff","face_with_head_bandage":"1f915","face_with_thermometer":"1f912","facepunch":"1f44a","factory":"1f3ed","falkland_islands":"1f1eb-1f1f0","fallen_leaf":"1f342","family":"1f46a","family_man_man_boy":"1f468-1f468-1f466","family_man_man_boy_boy":"1f468-1f468-1f466-1f466","family_man_man_girl":"1f468-1f468-1f467","family_man_man_girl_boy":"1f468-1f468-1f467-1f466","family_man_man_girl_girl":"1f468-1f468-1f467-1f467","family_man_woman_boy":"1f46a","family_man_woman_boy_boy":"1f468-1f469-1f466-1f466","family_man_woman_girl":"1f468-1f469-1f467","family_man_woman_girl_boy":"1f468-1f469-1f467-1f466","family_man_woman_girl_girl":"1f468-1f469-1f467-1f467","family_mmb":"1f468-1f468-1f466","family_mmbb":"1f468-1f468-1f466-1f466","family_mmg":"1f468-1f468-1f467","family_mmgb":"1f468-1f468-1f467-1f466","family_mmgg":"1f468-1f468-1f467-1f467","family_mwbb":"1f468-1f469-1f466-1f466","family_mwg":"1f468-1f469-1f467","family_mwgb":"1f468-1f469-1f467-1f466","family_mwgg":"1f468-1f469-1f467-1f467","family_woman_woman_boy":"1f469-1f469-1f466","family_woman_woman_boy_boy":"1f469-1f469-1f466-1f466","family_woman_woman_girl":"1f469-1f469-1f467","family_woman_woman_girl_boy":"1f469-1f469-1f467-1f466","family_woman_woman_girl_girl":"1f469-1f469-1f467-1f467","family_wwb":"1f469-1f469-1f466","family_wwbb":"1f469-1f469-1f466-1f466","family_wwg":"1f469-1f469-1f467","family_wwgb":"1f469-1f469-1f467-1f466","family_wwgg":"1f469-1f469-1f467-1f467","faroe_islands":"1f1eb-1f1f4","fast_forward":"23e9","fax":"1f4e0","fearful":"1f628","feet":"1f43e","fencer":"1f93a","ferris_wheel":"1f3a1","ferry":"26f4","field_hockey":"1f3d1","fiji":"1f1eb-1f1ef","file_cabinet":"1f5c4","file_folder":"1f4c1","film_frames":"1f39e","film_projector":"1f4fd","film_strip":"1f39e","fingers_crossed":"1f91e","fingers_crossed_tone1":"1f91e-1f3fb","fingers_crossed_tone2":"1f91e-1f3fc","fingers_crossed_tone3":"1f91e-1f3fd","fingers_crossed_tone4":"1f91e-1f3fe","fingers_crossed_tone5":"1f91e-1f3ff","finland":"1f1eb-1f1ee","fire":"1f525","fire_engine":"1f692","fireworks":"1f386","first_place":"1f947","first_quarter_moon":"1f313","first_quarter_moon_with_face":"1f31b","fish":"1f41f","fish_cake":"1f365","fishing_pole_and_fish":"1f3a3","fist":"270a","fist_tone1":"270a-1f3fb","fist_tone2":"270a-1f3fc","fist_tone3":"270a-1f3fd","fist_tone4":"270a-1f3fe","fist_tone5":"270a-1f3ff","five":"0035-20e3","flag_ac":"1f1e6-1f1e8","flag_ad":"1f1e6-1f1e9","flag_ae":"1f1e6-1f1ea","flag_af":"1f1e6-1f1eb","flag_ag":"1f1e6-1f1ec","flag_ai":"1f1e6-1f1ee","flag_al":"1f1e6-1f1f1","flag_am":"1f1e6-1f1f2","flag_ao":"1f1e6-1f1f4","flag_aq":"1f1e6-1f1f6","flag_ar":"1f1e6-1f1f7","flag_as":"1f1e6-1f1f8","flag_at":"1f1e6-1f1f9","flag_au":"1f1e6-1f1fa","flag_aw":"1f1e6-1f1fc","flag_ax":"1f1e6-1f1fd","flag_az":"1f1e6-1f1ff","flag_ba":"1f1e7-1f1e6","flag_bb":"1f1e7-1f1e7","flag_bd":"1f1e7-1f1e9","flag_be":"1f1e7-1f1ea","flag_bf":"1f1e7-1f1eb","flag_bg":"1f1e7-1f1ec","flag_bh":"1f1e7-1f1ed","flag_bi":"1f1e7-1f1ee","flag_bj":"1f1e7-1f1ef","flag_bl":"1f1e7-1f1f1","flag_black":"1f3f4","flag_bm":"1f1e7-1f1f2","flag_bn":"1f1e7-1f1f3","flag_bo":"1f1e7-1f1f4","flag_bq":"1f1e7-1f1f6","flag_br":"1f1e7-1f1f7","flag_bs":"1f1e7-1f1f8","flag_bt":"1f1e7-1f1f9","flag_bv":"1f1e7-1f1fb","flag_bw":"1f1e7-1f1fc","flag_by":"1f1e7-1f1fe","flag_bz":"1f1e7-1f1ff","flag_ca":"1f1e8-1f1e6","flag_cc":"1f1e8-1f1e8","flag_cd":"1f1e8-1f1e9","flag_cf":"1f1e8-1f1eb","flag_cg":"1f1e8-1f1ec","flag_ch":"1f1e8-1f1ed","flag_ci":"1f1e8-1f1ee","flag_ck":"1f1e8-1f1f0","flag_cl":"1f1e8-1f1f1","flag_cm":"1f1e8-1f1f2","flag_cn":"1f1e8-1f1f3","flag_co":"1f1e8-1f1f4","flag_cp":"1f1e8-1f1f5","flag_cr":"1f1e8-1f1f7","flag_cu":"1f1e8-1f1fa","flag_cv":"1f1e8-1f1fb","flag_cw":"1f1e8-1f1fc","flag_cx":"1f1e8-1f1fd","flag_cy":"1f1e8-1f1fe","flag_cz":"1f1e8-1f1ff","flag_de":"1f1e9-1f1ea","flag_dg":"1f1e9-1f1ec","flag_dj":"1f1e9-1f1ef","flag_dk":"1f1e9-1f1f0","flag_dm":"1f1e9-1f1f2","flag_do":"1f1e9-1f1f4","flag_dz":"1f1e9-1f1ff","flag_ea":"1f1ea-1f1e6","flag_ec":"1f1ea-1f1e8","flag_ee":"1f1ea-1f1ea","flag_eg":"1f1ea-1f1ec","flag_eh":"1f1ea-1f1ed","flag_er":"1f1ea-1f1f7","flag_es":"1f1ea-1f1f8","flag_et":"1f1ea-1f1f9","flag_eu":"1f1ea-1f1fa","flag_fi":"1f1eb-1f1ee","flag_fj":"1f1eb-1f1ef","flag_fk":"1f1eb-1f1f0","flag_fm":"1f1eb-1f1f2","flag_fo":"1f1eb-1f1f4","flag_fr":"1f1eb-1f1f7","flag_ga":"1f1ec-1f1e6","flag_gb":"1f1ec-1f1e7","flag_gd":"1f1ec-1f1e9","flag_ge":"1f1ec-1f1ea","flag_gf":"1f1ec-1f1eb","flag_gg":"1f1ec-1f1ec","flag_gh":"1f1ec-1f1ed","flag_gi":"1f1ec-1f1ee","flag_gl":"1f1ec-1f1f1","flag_gm":"1f1ec-1f1f2","flag_gn":"1f1ec-1f1f3","flag_gp":"1f1ec-1f1f5","flag_gq":"1f1ec-1f1f6","flag_gr":"1f1ec-1f1f7","flag_gs":"1f1ec-1f1f8","flag_gt":"1f1ec-1f1f9","flag_gu":"1f1ec-1f1fa","flag_gw":"1f1ec-1f1fc","flag_gy":"1f1ec-1f1fe","flag_hk":"1f1ed-1f1f0","flag_hm":"1f1ed-1f1f2","flag_hn":"1f1ed-1f1f3","flag_hr":"1f1ed-1f1f7","flag_ht":"1f1ed-1f1f9","flag_hu":"1f1ed-1f1fa","flag_ic":"1f1ee-1f1e8","flag_id":"1f1ee-1f1e9","flag_ie":"1f1ee-1f1ea","flag_il":"1f1ee-1f1f1","flag_im":"1f1ee-1f1f2","flag_in":"1f1ee-1f1f3","flag_io":"1f1ee-1f1f4","flag_iq":"1f1ee-1f1f6","flag_ir":"1f1ee-1f1f7","flag_is":"1f1ee-1f1f8","flag_it":"1f1ee-1f1f9","flag_je":"1f1ef-1f1ea","flag_jm":"1f1ef-1f1f2","flag_jo":"1f1ef-1f1f4","flag_jp":"1f1ef-1f1f5","flag_ke":"1f1f0-1f1ea","flag_kg":"1f1f0-1f1ec","flag_kh":"1f1f0-1f1ed","flag_ki":"1f1f0-1f1ee","flag_km":"1f1f0-1f1f2","flag_kn":"1f1f0-1f1f3","flag_kp":"1f1f0-1f1f5","flag_kr":"1f1f0-1f1f7","flag_kw":"1f1f0-1f1fc","flag_ky":"1f1f0-1f1fe","flag_kz":"1f1f0-1f1ff","flag_la":"1f1f1-1f1e6","flag_lb":"1f1f1-1f1e7","flag_lc":"1f1f1-1f1e8","flag_li":"1f1f1-1f1ee","flag_lk":"1f1f1-1f1f0","flag_lr":"1f1f1-1f1f7","flag_ls":"1f1f1-1f1f8","flag_lt":"1f1f1-1f1f9","flag_lu":"1f1f1-1f1fa","flag_lv":"1f1f1-1f1fb","flag_ly":"1f1f1-1f1fe","flag_ma":"1f1f2-1f1e6","flag_mc":"1f1f2-1f1e8","flag_md":"1f1f2-1f1e9","flag_me":"1f1f2-1f1ea","flag_mf":"1f1f2-1f1eb","flag_mg":"1f1f2-1f1ec","flag_mh":"1f1f2-1f1ed","flag_mk":"1f1f2-1f1f0","flag_ml":"1f1f2-1f1f1","flag_mm":"1f1f2-1f1f2","flag_mn":"1f1f2-1f1f3","flag_mo":"1f1f2-1f1f4","flag_mp":"1f1f2-1f1f5","flag_mq":"1f1f2-1f1f6","flag_mr":"1f1f2-1f1f7","flag_ms":"1f1f2-1f1f8","flag_mt":"1f1f2-1f1f9","flag_mu":"1f1f2-1f1fa","flag_mv":"1f1f2-1f1fb","flag_mw":"1f1f2-1f1fc","flag_mx":"1f1f2-1f1fd","flag_my":"1f1f2-1f1fe","flag_mz":"1f1f2-1f1ff","flag_na":"1f1f3-1f1e6","flag_nc":"1f1f3-1f1e8","flag_ne":"1f1f3-1f1ea","flag_nf":"1f1f3-1f1eb","flag_ng":"1f1f3-1f1ec","flag_ni":"1f1f3-1f1ee","flag_nl":"1f1f3-1f1f1","flag_no":"1f1f3-1f1f4","flag_np":"1f1f3-1f1f5","flag_nr":"1f1f3-1f1f7","flag_nu":"1f1f3-1f1fa","flag_nz":"1f1f3-1f1ff","flag_om":"1f1f4-1f1f2","flag_pa":"1f1f5-1f1e6","flag_pe":"1f1f5-1f1ea","flag_pf":"1f1f5-1f1eb","flag_pg":"1f1f5-1f1ec","flag_ph":"1f1f5-1f1ed","flag_pk":"1f1f5-1f1f0","flag_pl":"1f1f5-1f1f1","flag_pm":"1f1f5-1f1f2","flag_pn":"1f1f5-1f1f3","flag_pr":"1f1f5-1f1f7","flag_ps":"1f1f5-1f1f8","flag_pt":"1f1f5-1f1f9","flag_pw":"1f1f5-1f1fc","flag_py":"1f1f5-1f1fe","flag_qa":"1f1f6-1f1e6","flag_re":"1f1f7-1f1ea","flag_ro":"1f1f7-1f1f4","flag_rs":"1f1f7-1f1f8","flag_ru":"1f1f7-1f1fa","flag_rw":"1f1f7-1f1fc","flag_sa":"1f1f8-1f1e6","flag_sb":"1f1f8-1f1e7","flag_sc":"1f1f8-1f1e8","flag_sd":"1f1f8-1f1e9","flag_se":"1f1f8-1f1ea","flag_sg":"1f1f8-1f1ec","flag_sh":"1f1f8-1f1ed","flag_si":"1f1f8-1f1ee","flag_sj":"1f1f8-1f1ef","flag_sk":"1f1f8-1f1f0","flag_sl":"1f1f8-1f1f1","flag_sm":"1f1f8-1f1f2","flag_sn":"1f1f8-1f1f3","flag_so":"1f1f8-1f1f4","flag_sr":"1f1f8-1f1f7","flag_ss":"1f1f8-1f1f8","flag_st":"1f1f8-1f1f9","flag_sv":"1f1f8-1f1fb","flag_sx":"1f1f8-1f1fd","flag_sy":"1f1f8-1f1fe","flag_sz":"1f1f8-1f1ff","flag_ta":"1f1f9-1f1e6","flag_tc":"1f1f9-1f1e8","flag_td":"1f1f9-1f1e9","flag_tf":"1f1f9-1f1eb","flag_tg":"1f1f9-1f1ec","flag_th":"1f1f9-1f1ed","flag_tj":"1f1f9-1f1ef","flag_tk":"1f1f9-1f1f0","flag_tl":"1f1f9-1f1f1","flag_tm":"1f1f9-1f1f2","flag_tn":"1f1f9-1f1f3","flag_to":"1f1f9-1f1f4","flag_tr":"1f1f9-1f1f7","flag_tt":"1f1f9-1f1f9","flag_tv":"1f1f9-1f1fb","flag_tw":"1f1f9-1f1fc","flag_tz":"1f1f9-1f1ff","flag_ua":"1f1fa-1f1e6","flag_ug":"1f1fa-1f1ec","flag_um":"1f1fa-1f1f2","flag_us":"1f1fa-1f1f8","flag_uy":"1f1fa-1f1fe","flag_uz":"1f1fa-1f1ff","flag_va":"1f1fb-1f1e6","flag_vc":"1f1fb-1f1e8","flag_ve":"1f1fb-1f1ea","flag_vg":"1f1fb-1f1ec","flag_vi":"1f1fb-1f1ee","flag_vn":"1f1fb-1f1f3","flag_vu":"1f1fb-1f1fa","flag_wf":"1f1fc-1f1eb","flag_white":"1f3f3","flag_ws":"1f1fc-1f1f8","flag_xk":"1f1fd-1f1f0","flag_ye":"1f1fe-1f1ea","flag_yt":"1f1fe-1f1f9","flag_za":"1f1ff-1f1e6","flag_zm":"1f1ff-1f1f2","flag_zw":"1f1ff-1f1fc","flags":"1f38f","flashlight":"1f526","fleur-de-lis":"269c","fleur_de_lis":"269c","flight_arrival":"1f6ec","flight_departure":"1f6eb","flipper":"1f42c","floppy_disk":"1f4be","flower_playing_cards":"1f3b4","flushed":"1f633","fog":"1f32b","foggy":"1f301","football":"1f3c8","footprints":"1f463","fork_and_knife":"1f374","fork_knife_plate":"1f37d","fountain":"26f2","fountain_pen":"1f58b","four":"0034-20e3","four_leaf_clover":"1f340","fox":"1f98a","fr":"1f1eb-1f1f7","frame_photo":"1f5bc","framed_picture":"1f5bc","free":"1f193","french_bread":"1f956","french_guiana":"1f1ec-1f1eb","french_polynesia":"1f1f5-1f1eb","french_southern_territories":"1f1f9-1f1eb","fried_shrimp":"1f364","fries":"1f35f","frog":"1f438","frowning":"1f626","frowning2":"2639","frowning_face":"2639","frowning_woman":"1f64d","fu":"1f595","fuelpump":"26fd","full_moon":"1f315","full_moon_with_face":"1f31d","funeral_urn":"26b1","gabon":"1f1ec-1f1e6","gambia":"1f1ec-1f1f2","game_die":"1f3b2","gb":"1f1ec-1f1e7","gear":"2699","gem":"1f48e","gemini":"264a","georgia":"1f1ec-1f1ea","ghana":"1f1ec-1f1ed","ghost":"1f47b","gibraltar":"1f1ec-1f1ee","gift":"1f381","gift_heart":"1f49d","girl":"1f467","girl_tone1":"1f467-1f3fb","girl_tone2":"1f467-1f3fc","girl_tone3":"1f467-1f3fd","girl_tone4":"1f467-1f3fe","girl_tone5":"1f467-1f3ff","globe_with_meridians":"1f310","goal":"1f945","goat":"1f410","golf":"26f3","golfer":"1f3cc","golfing_man":"1f3cc","gorilla":"1f98d","grapes":"1f347","greece":"1f1ec-1f1f7","green_apple":"1f34f","green_book":"1f4d7","green_heart":"1f49a","greenland":"1f1ec-1f1f1","grenada":"1f1ec-1f1e9","grey_exclamation":"2755","grey_question":"2754","grimacing":"1f62c","grin":"1f601","grinning":"1f600","guadeloupe":"1f1ec-1f1f5","guam":"1f1ec-1f1fa","guardsman":"1f482","guardsman_tone1":"1f482-1f3fb","guardsman_tone2":"1f482-1f3fc","guardsman_tone3":"1f482-1f3fd","guardsman_tone4":"1f482-1f3fe","guardsman_tone5":"1f482-1f3ff","guatemala":"1f1ec-1f1f9","guernsey":"1f1ec-1f1ec","guinea":"1f1ec-1f1f3","guinea_bissau":"1f1ec-1f1fc","guitar":"1f3b8","gun":"1f52b","guyana":"1f1ec-1f1fe","haircut":"1f487","haircut_tone1":"1f487-1f3fb","haircut_tone2":"1f487-1f3fc","haircut_tone3":"1f487-1f3fd","haircut_tone4":"1f487-1f3fe","haircut_tone5":"1f487-1f3ff","haircut_woman":"1f487","haiti":"1f1ed-1f1f9","hamburger":"1f354","hammer":"1f528","hammer_and_pick":"2692","hammer_and_wrench":"1f6e0","hammer_pick":"2692","hamster":"1f439","hand":"270b","hand_splayed":"1f590","hand_splayed_tone1":"1f590-1f3fb","hand_splayed_tone2":"1f590-1f3fc","hand_splayed_tone3":"1f590-1f3fd","hand_splayed_tone4":"1f590-1f3fe","hand_splayed_tone5":"1f590-1f3ff","handbag":"1f45c","handball":"1f93e","handball_tone1":"1f93e-1f3fb","handball_tone2":"1f93e-1f3fc","handball_tone3":"1f93e-1f3fd","handball_tone4":"1f93e-1f3fe","handball_tone5":"1f93e-1f3ff","handshake":"1f91d","handshake_tone1":"1f91d-1f3fb","handshake_tone2":"1f91d-1f3fc","handshake_tone3":"1f91d-1f3fd","handshake_tone4":"1f91d-1f3fe","handshake_tone5":"1f91d-1f3ff","hankey":"1f4a9","hash":"0023-20e3","hatched_chick":"1f425","hatching_chick":"1f423","head_bandage":"1f915","headphones":"1f3a7","hear_no_evil":"1f649","heart":"2764","heart_decoration":"1f49f","heart_exclamation":"2763","heart_eyes":"1f60d","heart_eyes_cat":"1f63b","heartbeat":"1f493","heartpulse":"1f497","hearts":"2665","heavy_check_mark":"2714","heavy_division_sign":"2797","heavy_dollar_sign":"1f4b2","heavy_exclamation_mark":"2757","heavy_heart_exclamation":"2763","heavy_minus_sign":"2796","heavy_multiplication_x":"2716","heavy_plus_sign":"2795","helicopter":"1f681","helmet_with_cross":"26d1","herb":"1f33f","hibiscus":"1f33a","high_brightness":"1f506","high_heel":"1f460","hocho":"1f52a","hockey":"1f3d2","hole":"1f573","homes":"1f3d8","honduras":"1f1ed-1f1f3","honey_pot":"1f36f","honeybee":"1f41d","hong_kong":"1f1ed-1f1f0","horse":"1f434","horse_racing":"1f3c7","horse_racing_tone1":"1f3c7-1f3fb","horse_racing_tone2":"1f3c7-1f3fc","horse_racing_tone3":"1f3c7-1f3fd","horse_racing_tone4":"1f3c7-1f3fe","horse_racing_tone5":"1f3c7-1f3ff","hospital":"1f3e5","hot_pepper":"1f336","hotdog":"1f32d","hotel":"1f3e8","hotsprings":"2668","hourglass":"231b","hourglass_flowing_sand":"23f3","house":"1f3e0","house_abandoned":"1f3da","house_with_garden":"1f3e1","houses":"1f3d8","hugging":"1f917","hugs":"1f917","hungary":"1f1ed-1f1fa","hushed":"1f62f","ice_cream":"1f368","ice_hockey":"1f3d2","ice_skate":"26f8","icecream":"1f366","iceland":"1f1ee-1f1f8","id":"1f194","ideograph_advantage":"1f250","imp":"1f47f","inbox_tray":"1f4e5","incoming_envelope":"1f4e8","india":"1f1ee-1f1f3","indonesia":"1f1ee-1f1e9","information_desk_person":"1f481","information_desk_person_tone1":"1f481-1f3fb","information_desk_person_tone2":"1f481-1f3fc","information_desk_person_tone3":"1f481-1f3fd","information_desk_person_tone4":"1f481-1f3fe","information_desk_person_tone5":"1f481-1f3ff","information_source":"2139","innocent":"1f607","interrobang":"2049","iphone":"1f4f1","iran":"1f1ee-1f1f7","iraq":"1f1ee-1f1f6","ireland":"1f1ee-1f1ea","island":"1f3dd","isle_of_man":"1f1ee-1f1f2","israel":"1f1ee-1f1f1","it":"1f1ee-1f1f9","izakaya_lantern":"1f3ee","jack_o_lantern":"1f383","jamaica":"1f1ef-1f1f2","japan":"1f5fe","japanese_castle":"1f3ef","japanese_goblin":"1f47a","japanese_ogre":"1f479","jeans":"1f456","jersey":"1f1ef-1f1ea","jordan":"1f1ef-1f1f4","joy":"1f602","joy_cat":"1f639","joystick":"1f579","jp":"1f1ef-1f1f5","juggling":"1f939","juggling_tone1":"1f939-1f3fb","juggling_tone2":"1f939-1f3fc","juggling_tone3":"1f939-1f3fd","juggling_tone4":"1f939-1f3fe","juggling_tone5":"1f939-1f3ff","kaaba":"1f54b","kazakhstan":"1f1f0-1f1ff","kenya":"1f1f0-1f1ea","key":"1f511","key2":"1f5dd","keyboard":"2328","keycap_ten":"1f51f","kimono":"1f458","kiribati":"1f1f0-1f1ee","kiss":"1f48b","kiss_mm":"1f468-2764-1f48b-1f468","kiss_ww":"1f469-2764-1f48b-1f469","kissing":"1f617","kissing_cat":"1f63d","kissing_closed_eyes":"1f61a","kissing_heart":"1f618","kissing_smiling_eyes":"1f619","kiwi":"1f95d","knife":"1f52a","koala":"1f428","koko":"1f201","kosovo":"1f1fd-1f1f0","kr":"1f1f0-1f1f7","kuwait":"1f1f0-1f1fc","kyrgyzstan":"1f1f0-1f1ec","label":"1f3f7","lantern":"1f3ee","laos":"1f1f1-1f1e6","large_blue_circle":"1f535","large_blue_diamond":"1f537","large_orange_diamond":"1f536","last_quarter_moon":"1f317","last_quarter_moon_with_face":"1f31c","latin_cross":"271d","latvia":"1f1f1-1f1fb","laughing":"1f606","leaves":"1f343","lebanon":"1f1f1-1f1e7","ledger":"1f4d2","left_facing_fist":"1f91b","left_facing_fist_tone1":"1f91b-1f3fb","left_facing_fist_tone2":"1f91b-1f3fc","left_facing_fist_tone3":"1f91b-1f3fd","left_facing_fist_tone4":"1f91b-1f3fe","left_facing_fist_tone5":"1f91b-1f3ff","left_luggage":"1f6c5","left_right_arrow":"2194","leftwards_arrow_with_hook":"21a9","lemon":"1f34b","leo":"264c","leopard":"1f406","lesotho":"1f1f1-1f1f8","level_slider":"1f39a","levitate":"1f574","liberia":"1f1f1-1f1f7","libra":"264e","libya":"1f1f1-1f1fe","liechtenstein":"1f1f1-1f1ee","lifter":"1f3cb","lifter_tone1":"1f3cb-1f3fb","lifter_tone2":"1f3cb-1f3fc","lifter_tone3":"1f3cb-1f3fd","lifter_tone4":"1f3cb-1f3fe","lifter_tone5":"1f3cb-1f3ff","light_rail":"1f688","link":"1f517","lion":"1f981","lion_face":"1f981","lips":"1f444","lipstick":"1f484","lithuania":"1f1f1-1f1f9","lizard":"1f98e","lock":"1f512","lock_with_ink_pen":"1f50f","lollipop":"1f36d","loop":"27bf","loud_sound":"1f50a","loudspeaker":"1f4e2","love_hotel":"1f3e9","love_letter":"1f48c","low_brightness":"1f505","luxembourg":"1f1f1-1f1fa","lying_face":"1f925","m":"24c2","macau":"1f1f2-1f1f4","macedonia":"1f1f2-1f1f0","madagascar":"1f1f2-1f1ec","mag":"1f50d","mag_right":"1f50e","mahjong":"1f004","mailbox":"1f4eb","mailbox_closed":"1f4ea","mailbox_with_mail":"1f4ec","mailbox_with_no_mail":"1f4ed","malawi":"1f1f2-1f1fc","malaysia":"1f1f2-1f1fe","maldives":"1f1f2-1f1fb","male_detective":"1f575","mali":"1f1f2-1f1f1","malta":"1f1f2-1f1f9","man":"1f468","man_dancing":"1f57a","man_dancing_tone1":"1f57a-1f3fb","man_dancing_tone2":"1f57a-1f3fc","man_dancing_tone3":"1f57a-1f3fd","man_dancing_tone4":"1f57a-1f3fe","man_dancing_tone5":"1f57a-1f3ff","man_in_tuxedo":"1f935","man_in_tuxedo_tone1":"1f935-1f3fb","man_in_tuxedo_tone2":"1f935-1f3fc","man_in_tuxedo_tone3":"1f935-1f3fd","man_in_tuxedo_tone4":"1f935-1f3fe","man_in_tuxedo_tone5":"1f935-1f3ff","man_tone1":"1f468-1f3fb","man_tone2":"1f468-1f3fc","man_tone3":"1f468-1f3fd","man_tone4":"1f468-1f3fe","man_tone5":"1f468-1f3ff","man_with_gua_pi_mao":"1f472","man_with_gua_pi_mao_tone1":"1f472-1f3fb","man_with_gua_pi_mao_tone2":"1f472-1f3fc","man_with_gua_pi_mao_tone3":"1f472-1f3fd","man_with_gua_pi_mao_tone4":"1f472-1f3fe","man_with_gua_pi_mao_tone5":"1f472-1f3ff","man_with_turban":"1f473","man_with_turban_tone1":"1f473-1f3fb","man_with_turban_tone2":"1f473-1f3fc","man_with_turban_tone3":"1f473-1f3fd","man_with_turban_tone4":"1f473-1f3fe","man_with_turban_tone5":"1f473-1f3ff","mandarin":"1f34a","mans_shoe":"1f45e","mantelpiece_clock":"1f570","map":"1f5fa","maple_leaf":"1f341","marshall_islands":"1f1f2-1f1ed","martial_arts_uniform":"1f94b","martinique":"1f1f2-1f1f6","mask":"1f637","massage":"1f486","massage_tone1":"1f486-1f3fb","massage_tone2":"1f486-1f3fc","massage_tone3":"1f486-1f3fd","massage_tone4":"1f486-1f3fe","massage_tone5":"1f486-1f3ff","massage_woman":"1f486","mauritania":"1f1f2-1f1f7","mauritius":"1f1f2-1f1fa","mayotte":"1f1fe-1f1f9","meat_on_bone":"1f356","medal":"1f3c5","medal_military":"1f396","medal_sports":"1f3c5","mega":"1f4e3","melon":"1f348","memo":"1f4dd","menorah":"1f54e","mens":"1f6b9","metal":"1f918","metal_tone1":"1f918-1f3fb","metal_tone2":"1f918-1f3fc","metal_tone3":"1f918-1f3fd","metal_tone4":"1f918-1f3fe","metal_tone5":"1f918-1f3ff","metro":"1f687","mexico":"1f1f2-1f1fd","micronesia":"1f1eb-1f1f2","microphone":"1f3a4","microphone2":"1f399","microscope":"1f52c","middle_finger":"1f595","middle_finger_tone1":"1f595-1f3fb","middle_finger_tone2":"1f595-1f3fc","middle_finger_tone3":"1f595-1f3fd","middle_finger_tone4":"1f595-1f3fe","middle_finger_tone5":"1f595-1f3ff","military_medal":"1f396","milk":"1f95b","milky_way":"1f30c","minibus":"1f690","minidisc":"1f4bd","mobile_phone_off":"1f4f4","moldova":"1f1f2-1f1e9","monaco":"1f1f2-1f1e8","money_mouth":"1f911","money_mouth_face":"1f911","money_with_wings":"1f4b8","moneybag":"1f4b0","mongolia":"1f1f2-1f1f3","monkey":"1f412","monkey_face":"1f435","monorail":"1f69d","montenegro":"1f1f2-1f1ea","montserrat":"1f1f2-1f1f8","moon":"1f314","morocco":"1f1f2-1f1e6","mortar_board":"1f393","mosque":"1f54c","motor_boat":"1f6e5","motor_scooter":"1f6f5","motorboat":"1f6e5","motorcycle":"1f3cd","motorway":"1f6e3","mount_fuji":"1f5fb","mountain":"26f0","mountain_bicyclist":"1f6b5","mountain_bicyclist_tone1":"1f6b5-1f3fb","mountain_bicyclist_tone2":"1f6b5-1f3fc","mountain_bicyclist_tone3":"1f6b5-1f3fd","mountain_bicyclist_tone4":"1f6b5-1f3fe","mountain_bicyclist_tone5":"1f6b5-1f3ff","mountain_biking_man":"1f6b5","mountain_cableway":"1f6a0","mountain_railway":"1f69e","mountain_snow":"1f3d4","mouse":"1f42d","mouse2":"1f401","mouse_three_button":"1f5b1","movie_camera":"1f3a5","moyai":"1f5ff","mozambique":"1f1f2-1f1ff","mrs_claus":"1f936","mrs_claus_tone1":"1f936-1f3fb","mrs_claus_tone2":"1f936-1f3fc","mrs_claus_tone3":"1f936-1f3fd","mrs_claus_tone4":"1f936-1f3fe","mrs_claus_tone5":"1f936-1f3ff","muscle":"1f4aa","muscle_tone1":"1f4aa-1f3fb","muscle_tone2":"1f4aa-1f3fc","muscle_tone3":"1f4aa-1f3fd","muscle_tone4":"1f4aa-1f3fe","muscle_tone5":"1f4aa-1f3ff","mushroom":"1f344","musical_keyboard":"1f3b9","musical_note":"1f3b5","musical_score":"1f3bc","mute":"1f507","myanmar":"1f1f2-1f1f2","nail_care":"1f485","nail_care_tone1":"1f485-1f3fb","nail_care_tone2":"1f485-1f3fc","nail_care_tone3":"1f485-1f3fd","nail_care_tone4":"1f485-1f3fe","nail_care_tone5":"1f485-1f3ff","name_badge":"1f4db","namibia":"1f1f3-1f1e6","national_park":"1f3de","nauru":"1f1f3-1f1f7","nauseated_face":"1f922","necktie":"1f454","negative_squared_cross_mark":"274e","nepal":"1f1f3-1f1f5","nerd":"1f913","nerd_face":"1f913","netherlands":"1f1f3-1f1f1","neutral_face":"1f610","new":"1f195","new_caledonia":"1f1f3-1f1e8","new_moon":"1f311","new_moon_with_face":"1f31a","new_zealand":"1f1f3-1f1ff","newspaper":"1f4f0","newspaper2":"1f5de","newspaper_roll":"1f5de","next_track_button":"23ed","ng":"1f196","ng_woman":"1f645","nicaragua":"1f1f3-1f1ee","niger":"1f1f3-1f1ea","nigeria":"1f1f3-1f1ec","night_with_stars":"1f303","nine":"0039-20e3","niue":"1f1f3-1f1fa","no_bell":"1f515","no_bicycles":"1f6b3","no_entry":"26d4","no_entry_sign":"1f6ab","no_good":"1f645","no_good_tone1":"1f645-1f3fb","no_good_tone2":"1f645-1f3fc","no_good_tone3":"1f645-1f3fd","no_good_tone4":"1f645-1f3fe","no_good_tone5":"1f645-1f3ff","no_good_woman":"1f645","no_mobile_phones":"1f4f5","no_mouth":"1f636","no_pedestrians":"1f6b7","no_smoking":"1f6ad","non-potable_water":"1f6b1","norfolk_island":"1f1f3-1f1eb","north_korea":"1f1f0-1f1f5","northern_mariana_islands":"1f1f2-1f1f5","norway":"1f1f3-1f1f4","nose":"1f443","nose_tone1":"1f443-1f3fb","nose_tone2":"1f443-1f3fc","nose_tone3":"1f443-1f3fd","nose_tone4":"1f443-1f3fe","nose_tone5":"1f443-1f3ff","notebook":"1f4d3","notebook_with_decorative_cover":"1f4d4","notepad_spiral":"1f5d2","notes":"1f3b6","nut_and_bolt":"1f529","o":"2b55","o2":"1f17e","ocean":"1f30a","octagonal_sign":"1f6d1","octopus":"1f419","oden":"1f362","office":"1f3e2","oil":"1f6e2","oil_drum":"1f6e2","ok":"1f197","ok_hand":"1f44c","ok_hand_tone1":"1f44c-1f3fb","ok_hand_tone2":"1f44c-1f3fc","ok_hand_tone3":"1f44c-1f3fd","ok_hand_tone4":"1f44c-1f3fe","ok_hand_tone5":"1f44c-1f3ff","ok_woman":"1f646","ok_woman_tone1":"1f646-1f3fb","ok_woman_tone2":"1f646-1f3fc","ok_woman_tone3":"1f646-1f3fd","ok_woman_tone4":"1f646-1f3fe","ok_woman_tone5":"1f646-1f3ff","old_key":"1f5dd","older_man":"1f474","older_man_tone1":"1f474-1f3fb","older_man_tone2":"1f474-1f3fc","older_man_tone3":"1f474-1f3fd","older_man_tone4":"1f474-1f3fe","older_man_tone5":"1f474-1f3ff","older_woman":"1f475","older_woman_tone1":"1f475-1f3fb","older_woman_tone2":"1f475-1f3fc","older_woman_tone3":"1f475-1f3fd","older_woman_tone4":"1f475-1f3fe","older_woman_tone5":"1f475-1f3ff","om":"1f549","om_symbol":"1f549","oman":"1f1f4-1f1f2","on":"1f51b","oncoming_automobile":"1f698","oncoming_bus":"1f68d","oncoming_police_car":"1f694","oncoming_taxi":"1f696","one":"0031-20e3","open_book":"1f4d6","open_file_folder":"1f4c2","open_hands":"1f450","open_hands_tone1":"1f450-1f3fb","open_hands_tone2":"1f450-1f3fc","open_hands_tone3":"1f450-1f3fd","open_hands_tone4":"1f450-1f3fe","open_hands_tone5":"1f450-1f3ff","open_mouth":"1f62e","open_umbrella":"2602","ophiuchus":"26ce","orange":"1f34a","orange_book":"1f4d9","orthodox_cross":"2626","outbox_tray":"1f4e4","owl":"1f989","ox":"1f402","package":"1f4e6","page_facing_up":"1f4c4","page_with_curl":"1f4c3","pager":"1f4df","paintbrush":"1f58c","pakistan":"1f1f5-1f1f0","palau":"1f1f5-1f1fc","palestinian_territories":"1f1f5-1f1f8","palm_tree":"1f334","panama":"1f1f5-1f1e6","pancakes":"1f95e","panda_face":"1f43c","paperclip":"1f4ce","paperclips":"1f587","papua_new_guinea":"1f1f5-1f1ec","paraguay":"1f1f5-1f1fe","parasol_on_ground":"26f1","park":"1f3de","parking":"1f17f","part_alternation_mark":"303d","partly_sunny":"26c5","passenger_ship":"1f6f3","passport_control":"1f6c2","pause_button":"23f8","paw_prints":"1f43e","peace":"262e","peace_symbol":"262e","peach":"1f351","peanuts":"1f95c","pear":"1f350","pen":"1f58a","pen_ballpoint":"1f58a","pen_fountain":"1f58b","pencil":"1f4dd","pencil2":"270f","penguin":"1f427","pensive":"1f614","performing_arts":"1f3ad","persevere":"1f623","person_frowning":"1f64d","person_frowning_tone1":"1f64d-1f3fb","person_frowning_tone2":"1f64d-1f3fc","person_frowning_tone3":"1f64d-1f3fd","person_frowning_tone4":"1f64d-1f3fe","person_frowning_tone5":"1f64d-1f3ff","person_with_blond_hair":"1f471","person_with_blond_hair_tone1":"1f471-1f3fb","person_with_blond_hair_tone2":"1f471-1f3fc","person_with_blond_hair_tone3":"1f471-1f3fd","person_with_blond_hair_tone4":"1f471-1f3fe","person_with_blond_hair_tone5":"1f471-1f3ff","person_with_pouting_face":"1f64e","person_with_pouting_face_tone1":"1f64e-1f3fb","person_with_pouting_face_tone2":"1f64e-1f3fc","person_with_pouting_face_tone3":"1f64e-1f3fd","person_with_pouting_face_tone4":"1f64e-1f3fe","person_with_pouting_face_tone5":"1f64e-1f3ff","peru":"1f1f5-1f1ea","philippines":"1f1f5-1f1ed","phone":"260e","pick":"26cf","pig":"1f437","pig2":"1f416","pig_nose":"1f43d","pill":"1f48a","pineapple":"1f34d","ping_pong":"1f3d3","pisces":"2653","pitcairn_islands":"1f1f5-1f1f3","pizza":"1f355","place_of_worship":"1f6d0","plate_with_cutlery":"1f37d","play_or_pause_button":"23ef","play_pause":"23ef","point_down":"1f447","point_down_tone1":"1f447-1f3fb","point_down_tone2":"1f447-1f3fc","point_down_tone3":"1f447-1f3fd","point_down_tone4":"1f447-1f3fe","point_down_tone5":"1f447-1f3ff","point_left":"1f448","point_left_tone1":"1f448-1f3fb","point_left_tone2":"1f448-1f3fc","point_left_tone3":"1f448-1f3fd","point_left_tone4":"1f448-1f3fe","point_left_tone5":"1f448-1f3ff","point_right":"1f449","point_right_tone1":"1f449-1f3fb","point_right_tone2":"1f449-1f3fc","point_right_tone3":"1f449-1f3fd","point_right_tone4":"1f449-1f3fe","point_right_tone5":"1f449-1f3ff","point_up":"261d","point_up_2":"1f446","point_up_2_tone1":"1f446-1f3fb","point_up_2_tone2":"1f446-1f3fc","point_up_2_tone3":"1f446-1f3fd","point_up_2_tone4":"1f446-1f3fe","point_up_2_tone5":"1f446-1f3ff","point_up_tone1":"261d-1f3fb","point_up_tone2":"261d-1f3fc","point_up_tone3":"261d-1f3fd","point_up_tone4":"261d-1f3fe","point_up_tone5":"261d-1f3ff","poland":"1f1f5-1f1f1","police_car":"1f693","policeman":"1f46e","poodle":"1f429","poop":"1f4a9","popcorn":"1f37f","portugal":"1f1f5-1f1f9","post_office":"1f3e3","postal_horn":"1f4ef","postbox":"1f4ee","potable_water":"1f6b0","potato":"1f954","pouch":"1f45d","poultry_leg":"1f357","pound":"1f4b7","pout":"1f621","pouting_cat":"1f63e","pouting_woman":"1f64e","pray":"1f64f","pray_tone1":"1f64f-1f3fb","pray_tone2":"1f64f-1f3fc","pray_tone3":"1f64f-1f3fd","pray_tone4":"1f64f-1f3fe","pray_tone5":"1f64f-1f3ff","prayer_beads":"1f4ff","pregnant_woman":"1f930","pregnant_woman_tone1":"1f930-1f3fb","pregnant_woman_tone2":"1f930-1f3fc","pregnant_woman_tone3":"1f930-1f3fd","pregnant_woman_tone4":"1f930-1f3fe","pregnant_woman_tone5":"1f930-1f3ff","previous_track_button":"23ee","prince":"1f934","prince_tone1":"1f934-1f3fb","prince_tone2":"1f934-1f3fc","prince_tone3":"1f934-1f3fd","prince_tone4":"1f934-1f3fe","prince_tone5":"1f934-1f3ff","princess":"1f478","princess_tone1":"1f478-1f3fb","princess_tone2":"1f478-1f3fc","princess_tone3":"1f478-1f3fd","princess_tone4":"1f478-1f3fe","princess_tone5":"1f478-1f3ff","printer":"1f5a8","projector":"1f4fd","puerto_rico":"1f1f5-1f1f7","punch":"1f44a","punch_tone1":"1f44a-1f3fb","punch_tone2":"1f44a-1f3fc","punch_tone3":"1f44a-1f3fd","punch_tone4":"1f44a-1f3fe","punch_tone5":"1f44a-1f3ff","purple_heart":"1f49c","purse":"1f45b","pushpin":"1f4cc","put_litter_in_its_place":"1f6ae","qatar":"1f1f6-1f1e6","question":"2753","rabbit":"1f430","rabbit2":"1f407","race_car":"1f3ce","racehorse":"1f40e","racing_car":"1f3ce","radio":"1f4fb","radio_button":"1f518","radioactive":"2622","rage":"1f621","railway_car":"1f683","railway_track":"1f6e4","rainbow":"1f308","rainbow_flag":"1f3f3-1f308","raised_back_of_hand":"1f91a","raised_back_of_hand_tone1":"1f91a-1f3fb","raised_back_of_hand_tone2":"1f91a-1f3fc","raised_back_of_hand_tone3":"1f91a-1f3fd","raised_back_of_hand_tone4":"1f91a-1f3fe","raised_back_of_hand_tone5":"1f91a-1f3ff","raised_hand":"270b","raised_hand_tone1":"270b-1f3fb","raised_hand_tone2":"270b-1f3fc","raised_hand_tone3":"270b-1f3fd","raised_hand_tone4":"270b-1f3fe","raised_hand_tone5":"270b-1f3ff","raised_hand_with_fingers_splayed":"1f590","raised_hands":"1f64c","raised_hands_tone1":"1f64c-1f3fb","raised_hands_tone2":"1f64c-1f3fc","raised_hands_tone3":"1f64c-1f3fd","raised_hands_tone4":"1f64c-1f3fe","raised_hands_tone5":"1f64c-1f3ff","raising_hand":"1f64b","raising_hand_tone1":"1f64b-1f3fb","raising_hand_tone2":"1f64b-1f3fc","raising_hand_tone3":"1f64b-1f3fd","raising_hand_tone4":"1f64b-1f3fe","raising_hand_tone5":"1f64b-1f3ff","raising_hand_woman":"1f64b","ram":"1f40f","ramen":"1f35c","rat":"1f400","record_button":"23fa","recycle":"267b","red_car":"1f697","red_circle":"1f534","regional_indicator_a":"1f1e6","regional_indicator_b":"1f1e7","regional_indicator_c":"1f1e8","regional_indicator_d":"1f1e9","regional_indicator_e":"1f1ea","regional_indicator_f":"1f1eb","regional_indicator_g":"1f1ec","regional_indicator_h":"1f1ed","regional_indicator_i":"1f1ee","regional_indicator_j":"1f1ef","regional_indicator_k":"1f1f0","regional_indicator_l":"1f1f1","regional_indicator_m":"1f1f2","regional_indicator_n":"1f1f3","regional_indicator_o":"1f1f4","regional_indicator_p":"1f1f5","regional_indicator_q":"1f1f6","regional_indicator_r":"1f1f7","regional_indicator_s":"1f1f8","regional_indicator_t":"1f1f9","regional_indicator_u":"1f1fa","regional_indicator_v":"1f1fb","regional_indicator_w":"1f1fc","regional_indicator_x":"1f1fd","regional_indicator_y":"1f1fe","regional_indicator_z":"1f1ff","registered":"00ae","relaxed":"263a","relieved":"1f60c","reminder_ribbon":"1f397","repeat":"1f501","repeat_one":"1f502","rescue_worker_helmet":"26d1","restroom":"1f6bb","reunion":"1f1f7-1f1ea","revolving_hearts":"1f49e","rewind":"23ea","rhino":"1f98f","ribbon":"1f380","rice":"1f35a","rice_ball":"1f359","rice_cracker":"1f358","rice_scene":"1f391","right_anger_bubble":"1f5ef","right_facing_fist":"1f91c","right_facing_fist_tone1":"1f91c-1f3fb","right_facing_fist_tone2":"1f91c-1f3fc","right_facing_fist_tone3":"1f91c-1f3fd","right_facing_fist_tone4":"1f91c-1f3fe","right_facing_fist_tone5":"1f91c-1f3ff","ring":"1f48d","robot":"1f916","rocket":"1f680","rofl":"1f923","roll_eyes":"1f644","roller_coaster":"1f3a2","rolling_eyes":"1f644","romania":"1f1f7-1f1f4","rooster":"1f413","rose":"1f339","rosette":"1f3f5","rotating_light":"1f6a8","round_pushpin":"1f4cd","rowboat":"1f6a3","rowboat_tone1":"1f6a3-1f3fb","rowboat_tone2":"1f6a3-1f3fc","rowboat_tone3":"1f6a3-1f3fd","rowboat_tone4":"1f6a3-1f3fe","rowboat_tone5":"1f6a3-1f3ff","rowing_man":"1f6a3","ru":"1f1f7-1f1fa","rugby_football":"1f3c9","runner":"1f3c3","runner_tone1":"1f3c3-1f3fb","runner_tone2":"1f3c3-1f3fc","runner_tone3":"1f3c3-1f3fd","runner_tone4":"1f3c3-1f3fe","runner_tone5":"1f3c3-1f3ff","running":"1f3c3","running_man":"1f3c3","running_shirt_with_sash":"1f3bd","rwanda":"1f1f7-1f1fc","sa":"1f202","sagittarius":"2650","sailboat":"26f5","sake":"1f376","salad":"1f957","samoa":"1f1fc-1f1f8","san_marino":"1f1f8-1f1f2","sandal":"1f461","santa":"1f385","santa_tone1":"1f385-1f3fb","santa_tone2":"1f385-1f3fc","santa_tone3":"1f385-1f3fd","santa_tone4":"1f385-1f3fe","santa_tone5":"1f385-1f3ff","sao_tome_principe":"1f1f8-1f1f9","satellite":"1f4e1","satellite_orbital":"1f6f0","satisfied":"1f606","saudi_arabia":"1f1f8-1f1e6","saxophone":"1f3b7","scales":"2696","school":"1f3eb","school_satchel":"1f392","scissors":"2702","scooter":"1f6f4","scorpion":"1f982","scorpius":"264f","scream":"1f631","scream_cat":"1f640","scroll":"1f4dc","seat":"1f4ba","second_place":"1f948","secret":"3299","see_no_evil":"1f648","seedling":"1f331","selfie":"1f933","selfie_tone1":"1f933-1f3fb","selfie_tone2":"1f933-1f3fc","selfie_tone3":"1f933-1f3fd","selfie_tone4":"1f933-1f3fe","selfie_tone5":"1f933-1f3ff","senegal":"1f1f8-1f1f3","serbia":"1f1f7-1f1f8","seven":"0037-20e3","seychelles":"1f1f8-1f1e8","shallow_pan_of_food":"1f958","shamrock":"2618","shark":"1f988","shaved_ice":"1f367","sheep":"1f411","shell":"1f41a","shield":"1f6e1","shinto_shrine":"26e9","ship":"1f6a2","shirt":"1f455","shit":"1f4a9","shoe":"1f45e","shopping":"1f6cd","shopping_bags":"1f6cd","shopping_cart":"1f6d2","shower":"1f6bf","shrimp":"1f990","shrug":"1f937","shrug_tone1":"1f937-1f3fb","shrug_tone2":"1f937-1f3fc","shrug_tone3":"1f937-1f3fd","shrug_tone4":"1f937-1f3fe","shrug_tone5":"1f937-1f3ff","sierra_leone":"1f1f8-1f1f1","signal_strength":"1f4f6","singapore":"1f1f8-1f1ec","sint_maarten":"1f1f8-1f1fd","six":"0036-20e3","six_pointed_star":"1f52f","ski":"1f3bf","skier":"26f7","skull":"1f480","skull_and_crossbones":"2620","skull_crossbones":"2620","sleeping":"1f634","sleeping_accommodation":"1f6cc","sleeping_bed":"1f6cc","sleepy":"1f62a","slight_frown":"1f641","slight_smile":"1f642","slightly_frowning_face":"1f641","slightly_smiling_face":"1f642","slot_machine":"1f3b0","slovakia":"1f1f8-1f1f0","slovenia":"1f1f8-1f1ee","small_airplane":"1f6e9","small_blue_diamond":"1f539","small_orange_diamond":"1f538","small_red_triangle":"1f53a","small_red_triangle_down":"1f53b","smile":"1f604","smile_cat":"1f638","smiley":"1f603","smiley_cat":"1f63a","smiling_imp":"1f608","smirk":"1f60f","smirk_cat":"1f63c","smoking":"1f6ac","snail":"1f40c","snake":"1f40d","sneezing_face":"1f927","snowboarder":"1f3c2","snowflake":"2744","snowman":"26c4","snowman2":"2603","snowman_with_snow":"2603","sob":"1f62d","soccer":"26bd","solomon_islands":"1f1f8-1f1e7","somalia":"1f1f8-1f1f4","soon":"1f51c","sos":"1f198","sound":"1f509","south_africa":"1f1ff-1f1e6","south_georgia_south_sandwich_islands":"1f1ec-1f1f8","south_sudan":"1f1f8-1f1f8","space_invader":"1f47e","spades":"2660","spaghetti":"1f35d","sparkle":"2747","sparkler":"1f387","sparkles":"2728","sparkling_heart":"1f496","speak_no_evil":"1f64a","speaker":"1f508","speaking_head":"1f5e3","speech_balloon":"1f4ac","speech_left":"1f5e8","speedboat":"1f6a4","spider":"1f577","spider_web":"1f578","spiral_calendar":"1f5d3","spiral_notepad":"1f5d2","spoon":"1f944","spy":"1f575","spy_tone1":"1f575-1f3fb","spy_tone2":"1f575-1f3fc","spy_tone3":"1f575-1f3fd","spy_tone4":"1f575-1f3fe","spy_tone5":"1f575-1f3ff","squid":"1f991","sri_lanka":"1f1f1-1f1f0","st_barthelemy":"1f1e7-1f1f1","st_helena":"1f1f8-1f1ed","st_kitts_nevis":"1f1f0-1f1f3","st_lucia":"1f1f1-1f1e8","st_pierre_miquelon":"1f1f5-1f1f2","st_vincent_grenadines":"1f1fb-1f1e8","stadium":"1f3df","star":"2b50","star2":"1f31f","star_and_crescent":"262a","star_of_david":"2721","stars":"1f320","station":"1f689","statue_of_liberty":"1f5fd","steam_locomotive":"1f682","stew":"1f372","stop_button":"23f9","stopwatch":"23f1","straight_ruler":"1f4cf","strawberry":"1f353","stuck_out_tongue":"1f61b","stuck_out_tongue_closed_eyes":"1f61d","stuck_out_tongue_winking_eye":"1f61c","studio_microphone":"1f399","stuffed_flatbread":"1f959","sudan":"1f1f8-1f1e9","sun_behind_large_cloud":"1f325","sun_behind_rain_cloud":"1f326","sun_behind_small_cloud":"1f324","sun_with_face":"1f31e","sunflower":"1f33b","sunglasses":"1f60e","sunny":"2600","sunrise":"1f305","sunrise_over_mountains":"1f304","surfer":"1f3c4","surfer_tone1":"1f3c4-1f3fb","surfer_tone2":"1f3c4-1f3fc","surfer_tone3":"1f3c4-1f3fd","surfer_tone4":"1f3c4-1f3fe","surfer_tone5":"1f3c4-1f3ff","surfing_man":"1f3c4","suriname":"1f1f8-1f1f7","sushi":"1f363","suspension_railway":"1f69f","swaziland":"1f1f8-1f1ff","sweat":"1f613","sweat_drops":"1f4a6","sweat_smile":"1f605","sweden":"1f1f8-1f1ea","sweet_potato":"1f360","swimmer":"1f3ca","swimmer_tone1":"1f3ca-1f3fb","swimmer_tone2":"1f3ca-1f3fc","swimmer_tone3":"1f3ca-1f3fd","swimmer_tone4":"1f3ca-1f3fe","swimmer_tone5":"1f3ca-1f3ff","swimming_man":"1f3ca","switzerland":"1f1e8-1f1ed","symbols":"1f523","synagogue":"1f54d","syria":"1f1f8-1f1fe","syringe":"1f489","taco":"1f32e","tada":"1f389","taiwan":"1f1f9-1f1fc","tajikistan":"1f1f9-1f1ef","tanabata_tree":"1f38b","tangerine":"1f34a","tanzania":"1f1f9-1f1ff","taurus":"2649","taxi":"1f695","tea":"1f375","telephone":"260e","telephone_receiver":"1f4de","telescope":"1f52d","tennis":"1f3be","tent":"26fa","thailand":"1f1f9-1f1ed","thermometer":"1f321","thermometer_face":"1f912","thinking":"1f914","third_place":"1f949","thought_balloon":"1f4ad","three":"0033-20e3","thumbsdown":"1f44e","thumbsdown_tone1":"1f44e-1f3fb","thumbsdown_tone2":"1f44e-1f3fc","thumbsdown_tone3":"1f44e-1f3fd","thumbsdown_tone4":"1f44e-1f3fe","thumbsdown_tone5":"1f44e-1f3ff","thumbsup":"1f44d","thumbsup_tone1":"1f44d-1f3fb","thumbsup_tone2":"1f44d-1f3fc","thumbsup_tone3":"1f44d-1f3fd","thumbsup_tone4":"1f44d-1f3fe","thumbsup_tone5":"1f44d-1f3ff","thunder_cloud_rain":"26c8","ticket":"1f3ab","tickets":"1f39f","tiger":"1f42f","tiger2":"1f405","timer":"23f2","timer_clock":"23f2","timor_leste":"1f1f9-1f1f1","tipping_hand_woman":"1f481","tired_face":"1f62b","tm":"2122","togo":"1f1f9-1f1ec","toilet":"1f6bd","tokelau":"1f1f9-1f1f0","tokyo_tower":"1f5fc","tomato":"1f345","tone1":"1f3fb","tone2":"1f3fc","tone3":"1f3fd","tone4":"1f3fe","tone5":"1f3ff","tonga":"1f1f9-1f1f4","tongue":"1f445","tools":"1f6e0","top":"1f51d","tophat":"1f3a9","tornado":"1f32a","tr":"1f1f9-1f1f7","track_next":"23ed","track_previous":"23ee","trackball":"1f5b2","tractor":"1f69c","traffic_light":"1f6a5","train":"1f68b","train2":"1f686","tram":"1f68a","triangular_flag_on_post":"1f6a9","triangular_ruler":"1f4d0","trident":"1f531","trinidad_tobago":"1f1f9-1f1f9","triumph":"1f624","trolleybus":"1f68e","trophy":"1f3c6","tropical_drink":"1f379","tropical_fish":"1f420","truck":"1f69a","trumpet":"1f3ba","tshirt":"1f455","tulip":"1f337","tumbler_glass":"1f943","tunisia":"1f1f9-1f1f3","turkey":"1f983","turkmenistan":"1f1f9-1f1f2","turks_caicos_islands":"1f1f9-1f1e8","turtle":"1f422","tuvalu":"1f1f9-1f1fb","tv":"1f4fa","twisted_rightwards_arrows":"1f500","two":"0032-20e3","two_hearts":"1f495","two_men_holding_hands":"1f46c","two_women_holding_hands":"1f46d","u5272":"1f239","u5408":"1f234","u55b6":"1f23a","u6307":"1f22f","u6708":"1f237","u6709":"1f236","u6e80":"1f235","u7121":"1f21a","u7533":"1f238","u7981":"1f232","u7a7a":"1f233","uganda":"1f1fa-1f1ec","uk":"1f1ec-1f1e7","ukraine":"1f1fa-1f1e6","umbrella":"2614","umbrella2":"2602","unamused":"1f612","underage":"1f51e","unicorn":"1f984","united_arab_emirates":"1f1e6-1f1ea","unlock":"1f513","up":"1f199","upside_down":"1f643","upside_down_face":"1f643","urn":"26b1","uruguay":"1f1fa-1f1fe","us":"1f1fa-1f1f8","us_virgin_islands":"1f1fb-1f1ee","uzbekistan":"1f1fa-1f1ff","v":"270c","v_tone1":"270c-1f3fb","v_tone2":"270c-1f3fc","v_tone3":"270c-1f3fd","v_tone4":"270c-1f3fe","v_tone5":"270c-1f3ff","vanuatu":"1f1fb-1f1fa","vatican_city":"1f1fb-1f1e6","venezuela":"1f1fb-1f1ea","vertical_traffic_light":"1f6a6","vhs":"1f4fc","vibration_mode":"1f4f3","video_camera":"1f4f9","video_game":"1f3ae","vietnam":"1f1fb-1f1f3","violin":"1f3bb","virgo":"264d","volcano":"1f30b","volleyball":"1f3d0","vs":"1f19a","vulcan":"1f596","vulcan_salute":"1f596","vulcan_tone1":"1f596-1f3fb","vulcan_tone2":"1f596-1f3fc","vulcan_tone3":"1f596-1f3fd","vulcan_tone4":"1f596-1f3fe","vulcan_tone5":"1f596-1f3ff","walking":"1f6b6","walking_man":"1f6b6","walking_tone1":"1f6b6-1f3fb","walking_tone2":"1f6b6-1f3fc","walking_tone3":"1f6b6-1f3fd","walking_tone4":"1f6b6-1f3fe","walking_tone5":"1f6b6-1f3ff","wallis_futuna":"1f1fc-1f1eb","waning_crescent_moon":"1f318","waning_gibbous_moon":"1f316","warning":"26a0","wastebasket":"1f5d1","watch":"231a","water_buffalo":"1f403","water_polo":"1f93d","water_polo_tone1":"1f93d-1f3fb","water_polo_tone2":"1f93d-1f3fc","water_polo_tone3":"1f93d-1f3fd","water_polo_tone4":"1f93d-1f3fe","water_polo_tone5":"1f93d-1f3ff","watermelon":"1f349","wave":"1f44b","wave_tone1":"1f44b-1f3fb","wave_tone2":"1f44b-1f3fc","wave_tone3":"1f44b-1f3fd","wave_tone4":"1f44b-1f3fe","wave_tone5":"1f44b-1f3ff","wavy_dash":"3030","waxing_crescent_moon":"1f312","waxing_gibbous_moon":"1f314","wc":"1f6be","weary":"1f629","wedding":"1f492","weight_lifting_man":"1f3cb","western_sahara":"1f1ea-1f1ed","whale":"1f433","whale2":"1f40b","wheel_of_dharma":"2638","wheelchair":"267f","white_check_mark":"2705","white_circle":"26aa","white_flag":"1f3f3","white_flower":"1f4ae","white_large_square":"2b1c","white_medium_small_square":"25fd","white_medium_square":"25fb","white_small_square":"25ab","white_square_button":"1f533","white_sun_cloud":"1f325","white_sun_rain_cloud":"1f326","white_sun_small_cloud":"1f324","wilted_rose":"1f940","wind_blowing_face":"1f32c","wind_chime":"1f390","wind_face":"1f32c","wine_glass":"1f377","wink":"1f609","wolf":"1f43a","woman":"1f469","woman_tone1":"1f469-1f3fb","woman_tone2":"1f469-1f3fc","woman_tone3":"1f469-1f3fd","woman_tone4":"1f469-1f3fe","woman_tone5":"1f469-1f3ff","womans_clothes":"1f45a","womans_hat":"1f452","womens":"1f6ba","world_map":"1f5fa","worried":"1f61f","wrench":"1f527","wrestlers":"1f93c","wrestlers_tone1":"1f93c-1f3fb","wrestlers_tone2":"1f93c-1f3fc","wrestlers_tone3":"1f93c-1f3fd","wrestlers_tone4":"1f93c-1f3fe","wrestlers_tone5":"1f93c-1f3ff","writing_hand":"270d","writing_hand_tone1":"270d-1f3fb","writing_hand_tone2":"270d-1f3fc","writing_hand_tone3":"270d-1f3fd","writing_hand_tone4":"270d-1f3fe","writing_hand_tone5":"270d-1f3ff","x":"274c","yellow_heart":"1f49b","yemen":"1f1fe-1f1ea","yen":"1f4b4","yin_yang":"262f","yum":"1f60b","zambia":"1f1ff-1f1f2","zap":"26a1","zero":"0030-20e3","zimbabwe":"1f1ff-1f1fc","zipper_mouth":"1f910","zipper_mouth_face":"1f910","zzz":"1f4a4"};
 
 /** @const */
-var unicodeRegexp = /(?:[#*0-9]\uFE0F\u20E3?|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2660\u2663\u2665\u2666\u2668\u267B\u2692\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]\uFE0F|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]\uFE0F?|[\u261D\u26F9\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|\uD83C(?:[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC2\uDFC5-\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]\uFE0F?|[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCC-\uDFCE\uDFD4-\uDFDF\uDFF3\uDFF5\uDFF7]\uFE0F|[\uDDE6-\uDDFF](?:\uD83C[\uDDE6-\uDDFF]|\uFE0F)?|[\uDF85\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|\uDFCB(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F))|\uD83D(?:[\uDC00-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A-\uDC6D\uDC6F\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF6]\uFE0F?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD74\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD7A\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDD75\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)|\uDC41(?:\u200D\uD83D\uDDE8|\uFE0F)|\uDC68(?:\u200D(?:\u2764\uFE0F\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83D[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|\uDC69(?:\u200D(?:\u2764\uFE0F\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83D\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83C[\uDFFB-\uDFFF]|\uFE0F)?)|\uD83E(?:[\uDD10-\uDD17\uDD20-\uDD25\uDD27\uDD3A\uDD40-\uDD45\uDD47-\uDD4B\uDD50-\uDD5E\uDD80-\uDD91\uDDC0]\uFE0F?|[\uDD18-\uDD1E\uDD26\uDD30\uDD33-\uDD39\uDD3C-\uDD3E](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?))(?!\uFE0E)/g;
+var unicodeRegexp = /(?:[#*0-9]\ufe0f\u20e3?|[\xa9\xae\u203c\u2049\u2122\u2139\u2194-\u2199\u21a9\u21aa\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb\u25fc\u2600-\u2604\u260e\u2611\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2660\u2663\u2665\u2666\u2668\u267b\u2692\u2694\u2696\u2697\u2699\u269b\u269c\u26a0\u26b0\u26b1\u26c8\u26cf\u26d1\u26d3\u26e9\u26f0\u26f1\u26f4\u26f7\u26f8\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u3030\u303d\u3297\u3299]\ufe0f|[\u231a\u231b\u23e9-\u23ec\u23f0\u23f3\u25fd\u25fe\u2614\u2615\u2648-\u2653\u267f\u2693\u26a1\u26aa\u26ab\u26bd\u26be\u26c4\u26c5\u26ce\u26d4\u26ea\u26f2\u26f3\u26f5\u26fa\u26fd\u2705\u2728\u274c\u274e\u2753-\u2755\u2757\u2795-\u2797\u27b0\u27bf\u2b1b\u2b1c\u2b50\u2b55]\ufe0f?|[\u261d\u26f9\u270c\u270d](?:\ud83c[\udffb-\udfff]|\ufe0f)|[\u270a\u270b](?:\ud83c[\udffb-\udfff]|\ufe0f)?|\ud83c(?:[\udc04\udccf\udd8e\udd91-\udd9a\ude01\ude1a\ude2f\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc2\udfc5-\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]\ufe0f?|[\udd70\udd71\udd7e\udd7f\ude02\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcc-\udfce\udfd4-\udfdf\udff3\udff5\udff7]\ufe0f|[\udde6-\uddff](?:\ud83c[\udde6-\uddff]|\ufe0f)?|[\udf85\udfc3\udfc4\udfca](?:\ud83c[\udffb-\udfff]|\ufe0f)?|\udfcb(?:\ud83c[\udffb-\udfff]|\ufe0f))|\ud83d(?:[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a-\udc6d\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\udecc\uded0-\uded2\udeeb\udeec\udef4-\udef6]\ufe0f?|[\udc3f\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd74\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]\ufe0f|[\udc42\udc43\udc46-\udc50\udc66\udc67\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0](?:\ud83c[\udffb-\udfff]|\ufe0f)?|[\udd75\udd90](?:\ud83c[\udffb-\udfff]|\ufe0f)|\udc41(?:\u200d\ud83d\udde8|\ufe0f)|\udc68(?:\u200d(?:\u2764\ufe0f\u200d\ud83d(?:\udc8b\u200d\ud83d)?\udc68|\ud83d[\udc68\udc69]\u200d\ud83d(?:\udc66(?:\u200d\ud83d\udc66)?|\udc67(?:\u200d\ud83d[\udc66\udc67])?))|\ud83c[\udffb-\udfff]|\ufe0f)?|\udc69(?:\u200d(?:\u2764\ufe0f\u200d\ud83d(?:\udc8b\u200d\ud83d)?[\udc68\udc69]|\ud83d\udc69\u200d\ud83d(?:\udc66(?:\u200d\ud83d\udc66)?|\udc67(?:\u200d\ud83d[\udc66\udc67])?))|\ud83c[\udffb-\udfff]|\ufe0f)?)|\ud83e(?:[\udd10-\udd17\udd20-\udd25\udd27\udd3a\udd40-\udd45\udd47-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]\ufe0f?|[\udd18-\udd1e\udd26\udd30\udd33-\udd39\udd3c-\udd3e](?:\ud83c[\udffb-\udfff]|\ufe0f)?))(?!\ufe0e)/g;
 
 parseAsciiEmoji(text);
 parseAliases(text);
@@ -28,7 +28,7 @@ function addTag(tagPos, tagLen, seq)
 * Get the sequence of Unicode codepoints that corresponds to given emoji
 *
 * @param  {!string} str UTF-8 emoji
-* @return {!string}     Codepoint sequence, e.g. "23-20e3"
+* @return {!string}     Codepoint sequence, e.g. "0023-20e3"
 */
 function getSequence(str)
 {
--- a/vendor/s9e/text-formatter/src/Plugins/Emoji/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Emoji/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Emoji;
@@ -10,7 +10,7 @@ use s9e\TextFormatter\Plugins\ParserBase;
 class Parser extends ParserBase
 {
 	protected $asciiRegexp = '/:[-+_a-z0-9]+(?=:)/';
-	protected static $map = array('+1'=>'1f44d','-1'=>'1f44e','100'=>'1f4af','1234'=>'1f522','8ball'=>'1f3b1','a'=>'1f170','ab'=>'1f18e','abc'=>'1f524','abcd'=>'1f521','accept'=>'1f251','aerial_tramway'=>'1f6a1','afghanistan'=>'1f1e6-1f1eb','airplane'=>'2708','airplane_arriving'=>'1f6ec','airplane_departure'=>'1f6eb','airplane_small'=>'1f6e9','aland_islands'=>'1f1e6-1f1fd','alarm_clock'=>'23f0','albania'=>'1f1e6-1f1f1','alembic'=>'2697','algeria'=>'1f1e9-1f1ff','alien'=>'1f47d','ambulance'=>'1f691','american_samoa'=>'1f1e6-1f1f8','amphora'=>'1f3fa','anchor'=>'2693','andorra'=>'1f1e6-1f1e9','angel'=>'1f47c','angel_tone1'=>'1f47c-1f3fb','angel_tone2'=>'1f47c-1f3fc','angel_tone3'=>'1f47c-1f3fd','angel_tone4'=>'1f47c-1f3fe','angel_tone5'=>'1f47c-1f3ff','anger'=>'1f4a2','anger_right'=>'1f5ef','angola'=>'1f1e6-1f1f4','angry'=>'1f620','anguilla'=>'1f1e6-1f1ee','anguished'=>'1f627','ant'=>'1f41c','antarctica'=>'1f1e6-1f1f6','antigua_barbuda'=>'1f1e6-1f1ec','apple'=>'1f34e','aquarius'=>'2652','argentina'=>'1f1e6-1f1f7','aries'=>'2648','armenia'=>'1f1e6-1f1f2','arrow_backward'=>'25c0','arrow_double_down'=>'23ec','arrow_double_up'=>'23eb','arrow_down'=>'2b07','arrow_down_small'=>'1f53d','arrow_forward'=>'25b6','arrow_heading_down'=>'2935','arrow_heading_up'=>'2934','arrow_left'=>'2b05','arrow_lower_left'=>'2199','arrow_lower_right'=>'2198','arrow_right'=>'27a1','arrow_right_hook'=>'21aa','arrow_up'=>'2b06','arrow_up_down'=>'2195','arrow_up_small'=>'1f53c','arrow_upper_left'=>'2196','arrow_upper_right'=>'2197','arrows_clockwise'=>'1f503','arrows_counterclockwise'=>'1f504','art'=>'1f3a8','articulated_lorry'=>'1f69b','artificial_satellite'=>'1f6f0','aruba'=>'1f1e6-1f1fc','asterisk'=>'002a-20e3','astonished'=>'1f632','athletic_shoe'=>'1f45f','atm'=>'1f3e7','atom'=>'269b','atom_symbol'=>'269b','australia'=>'1f1e6-1f1fa','austria'=>'1f1e6-1f1f9','avocado'=>'1f951','azerbaijan'=>'1f1e6-1f1ff','b'=>'1f171','baby'=>'1f476','baby_bottle'=>'1f37c','baby_chick'=>'1f424','baby_symbol'=>'1f6bc','baby_tone1'=>'1f476-1f3fb','baby_tone2'=>'1f476-1f3fc','baby_tone3'=>'1f476-1f3fd','baby_tone4'=>'1f476-1f3fe','baby_tone5'=>'1f476-1f3ff','back'=>'1f519','bacon'=>'1f953','badminton'=>'1f3f8','baggage_claim'=>'1f6c4','bahamas'=>'1f1e7-1f1f8','bahrain'=>'1f1e7-1f1ed','balance_scale'=>'2696','balloon'=>'1f388','ballot_box'=>'1f5f3','ballot_box_with_check'=>'2611','bamboo'=>'1f38d','banana'=>'1f34c','bangbang'=>'203c','bangladesh'=>'1f1e7-1f1e9','bank'=>'1f3e6','bar_chart'=>'1f4ca','barbados'=>'1f1e7-1f1e7','barber'=>'1f488','baseball'=>'26be','basketball'=>'1f3c0','basketball_man'=>'26f9','basketball_player'=>'26f9','basketball_player_tone1'=>'26f9-1f3fb','basketball_player_tone2'=>'26f9-1f3fc','basketball_player_tone3'=>'26f9-1f3fd','basketball_player_tone4'=>'26f9-1f3fe','basketball_player_tone5'=>'26f9-1f3ff','bat'=>'1f987','bath'=>'1f6c0','bath_tone1'=>'1f6c0-1f3fb','bath_tone2'=>'1f6c0-1f3fc','bath_tone3'=>'1f6c0-1f3fd','bath_tone4'=>'1f6c0-1f3fe','bath_tone5'=>'1f6c0-1f3ff','bathtub'=>'1f6c1','battery'=>'1f50b','beach'=>'1f3d6','beach_umbrella'=>'26f1','bear'=>'1f43b','bed'=>'1f6cf','bee'=>'1f41d','beer'=>'1f37a','beers'=>'1f37b','beetle'=>'1f41e','beginner'=>'1f530','belarus'=>'1f1e7-1f1fe','belgium'=>'1f1e7-1f1ea','belize'=>'1f1e7-1f1ff','bell'=>'1f514','bellhop'=>'1f6ce','bellhop_bell'=>'1f6ce','benin'=>'1f1e7-1f1ef','bento'=>'1f371','bermuda'=>'1f1e7-1f1f2','bhutan'=>'1f1e7-1f1f9','bicyclist'=>'1f6b4','bicyclist_tone1'=>'1f6b4-1f3fb','bicyclist_tone2'=>'1f6b4-1f3fc','bicyclist_tone3'=>'1f6b4-1f3fd','bicyclist_tone4'=>'1f6b4-1f3fe','bicyclist_tone5'=>'1f6b4-1f3ff','bike'=>'1f6b2','biking_man'=>'1f6b4','bikini'=>'1f459','biohazard'=>'2623','bird'=>'1f426','birthday'=>'1f382','black_circle'=>'26ab','black_flag'=>'1f3f4','black_heart'=>'1f5a4','black_joker'=>'1f0cf','black_large_square'=>'2b1b','black_medium_small_square'=>'25fe','black_medium_square'=>'25fc','black_nib'=>'2712','black_small_square'=>'25aa','black_square_button'=>'1f532','blonde_man'=>'1f471','blossom'=>'1f33c','blowfish'=>'1f421','blue_book'=>'1f4d8','blue_car'=>'1f699','blue_heart'=>'1f499','blush'=>'1f60a','boar'=>'1f417','boat'=>'26f5','bolivia'=>'1f1e7-1f1f4','bomb'=>'1f4a3','book'=>'1f4d6','bookmark'=>'1f516','bookmark_tabs'=>'1f4d1','books'=>'1f4da','boom'=>'1f4a5','boot'=>'1f462','bosnia_herzegovina'=>'1f1e7-1f1e6','botswana'=>'1f1e7-1f1fc','bouquet'=>'1f490','bow'=>'1f647','bow_and_arrow'=>'1f3f9','bow_tone1'=>'1f647-1f3fb','bow_tone2'=>'1f647-1f3fc','bow_tone3'=>'1f647-1f3fd','bow_tone4'=>'1f647-1f3fe','bow_tone5'=>'1f647-1f3ff','bowing_man'=>'1f647','bowling'=>'1f3b3','boxing_glove'=>'1f94a','boy'=>'1f466','boy_tone1'=>'1f466-1f3fb','boy_tone2'=>'1f466-1f3fc','boy_tone3'=>'1f466-1f3fd','boy_tone4'=>'1f466-1f3fe','boy_tone5'=>'1f466-1f3ff','brazil'=>'1f1e7-1f1f7','bread'=>'1f35e','bride_with_veil'=>'1f470','bride_with_veil_tone1'=>'1f470-1f3fb','bride_with_veil_tone2'=>'1f470-1f3fc','bride_with_veil_tone3'=>'1f470-1f3fd','bride_with_veil_tone4'=>'1f470-1f3fe','bride_with_veil_tone5'=>'1f470-1f3ff','bridge_at_night'=>'1f309','briefcase'=>'1f4bc','british_indian_ocean_territory'=>'1f1ee-1f1f4','british_virgin_islands'=>'1f1fb-1f1ec','broken_heart'=>'1f494','brunei'=>'1f1e7-1f1f3','bug'=>'1f41b','building_construction'=>'1f3d7','bulb'=>'1f4a1','bulgaria'=>'1f1e7-1f1ec','bullettrain_front'=>'1f685','bullettrain_side'=>'1f684','burkina_faso'=>'1f1e7-1f1eb','burrito'=>'1f32f','burundi'=>'1f1e7-1f1ee','bus'=>'1f68c','business_suit_levitating'=>'1f574','busstop'=>'1f68f','bust_in_silhouette'=>'1f464','busts_in_silhouette'=>'1f465','butterfly'=>'1f98b','cactus'=>'1f335','cake'=>'1f370','calendar'=>'1f4c6','calendar_spiral'=>'1f5d3','call_me'=>'1f919','call_me_tone1'=>'1f919-1f3fb','call_me_tone2'=>'1f919-1f3fc','call_me_tone3'=>'1f919-1f3fd','call_me_tone4'=>'1f919-1f3fe','call_me_tone5'=>'1f919-1f3ff','calling'=>'1f4f2','cambodia'=>'1f1f0-1f1ed','camel'=>'1f42b','camera'=>'1f4f7','camera_flash'=>'1f4f8','camera_with_flash'=>'1f4f8','cameroon'=>'1f1e8-1f1f2','camping'=>'1f3d5','canada'=>'1f1e8-1f1e6','canary_islands'=>'1f1ee-1f1e8','cancer'=>'264b','candle'=>'1f56f','candy'=>'1f36c','canoe'=>'1f6f6','cape_verde'=>'1f1e8-1f1fb','capital_abcd'=>'1f520','capricorn'=>'2651','car'=>'1f697','card_box'=>'1f5c3','card_file_box'=>'1f5c3','card_index'=>'1f4c7','card_index_dividers'=>'1f5c2','caribbean_netherlands'=>'1f1e7-1f1f6','carousel_horse'=>'1f3a0','carrot'=>'1f955','cartwheel'=>'1f938','cartwheel_tone1'=>'1f938-1f3fb','cartwheel_tone2'=>'1f938-1f3fc','cartwheel_tone3'=>'1f938-1f3fd','cartwheel_tone4'=>'1f938-1f3fe','cartwheel_tone5'=>'1f938-1f3ff','cat'=>'1f431','cat2'=>'1f408','cayman_islands'=>'1f1f0-1f1fe','cd'=>'1f4bf','central_african_republic'=>'1f1e8-1f1eb','chad'=>'1f1f9-1f1e9','chains'=>'26d3','champagne'=>'1f37e','champagne_glass'=>'1f942','chart'=>'1f4b9','chart_with_downwards_trend'=>'1f4c9','chart_with_upwards_trend'=>'1f4c8','checkered_flag'=>'1f3c1','cheese'=>'1f9c0','cherries'=>'1f352','cherry_blossom'=>'1f338','chestnut'=>'1f330','chicken'=>'1f414','children_crossing'=>'1f6b8','chile'=>'1f1e8-1f1f1','chipmunk'=>'1f43f','chocolate_bar'=>'1f36b','christmas_island'=>'1f1e8-1f1fd','christmas_tree'=>'1f384','church'=>'26ea','cinema'=>'1f3a6','circus_tent'=>'1f3aa','city_dusk'=>'1f306','city_sunrise'=>'1f307','city_sunset'=>'1f307','cityscape'=>'1f3d9','cl'=>'1f191','clamp'=>'1f5dc','clap'=>'1f44f','clap_tone1'=>'1f44f-1f3fb','clap_tone2'=>'1f44f-1f3fc','clap_tone3'=>'1f44f-1f3fd','clap_tone4'=>'1f44f-1f3fe','clap_tone5'=>'1f44f-1f3ff','clapper'=>'1f3ac','classical_building'=>'1f3db','clipboard'=>'1f4cb','clock'=>'1f570','clock1'=>'1f550','clock10'=>'1f559','clock1030'=>'1f565','clock11'=>'1f55a','clock1130'=>'1f566','clock12'=>'1f55b','clock1230'=>'1f567','clock130'=>'1f55c','clock2'=>'1f551','clock230'=>'1f55d','clock3'=>'1f552','clock330'=>'1f55e','clock4'=>'1f553','clock430'=>'1f55f','clock5'=>'1f554','clock530'=>'1f560','clock6'=>'1f555','clock630'=>'1f561','clock7'=>'1f556','clock730'=>'1f562','clock8'=>'1f557','clock830'=>'1f563','clock9'=>'1f558','clock930'=>'1f564','closed_book'=>'1f4d5','closed_lock_with_key'=>'1f510','closed_umbrella'=>'1f302','cloud'=>'2601','cloud_lightning'=>'1f329','cloud_rain'=>'1f327','cloud_snow'=>'1f328','cloud_tornado'=>'1f32a','cloud_with_lightning'=>'1f329','cloud_with_lightning_and_rain'=>'26c8','cloud_with_rain'=>'1f327','cloud_with_snow'=>'1f328','clown'=>'1f921','clubs'=>'2663','cn'=>'1f1e8-1f1f3','cocktail'=>'1f378','cocos_islands'=>'1f1e8-1f1e8','coffee'=>'2615','coffin'=>'26b0','cold_sweat'=>'1f630','collision'=>'1f4a5','colombia'=>'1f1e8-1f1f4','comet'=>'2604','comoros'=>'1f1f0-1f1f2','compression'=>'1f5dc','computer'=>'1f4bb','computer_mouse'=>'1f5b1','confetti_ball'=>'1f38a','confounded'=>'1f616','confused'=>'1f615','congo_brazzaville'=>'1f1e8-1f1ec','congo_kinshasa'=>'1f1e8-1f1e9','congratulations'=>'3297','construction'=>'1f6a7','construction_site'=>'1f3d7','construction_worker'=>'1f477','construction_worker_man'=>'1f477','construction_worker_tone1'=>'1f477-1f3fb','construction_worker_tone2'=>'1f477-1f3fc','construction_worker_tone3'=>'1f477-1f3fd','construction_worker_tone4'=>'1f477-1f3fe','construction_worker_tone5'=>'1f477-1f3ff','control_knobs'=>'1f39b','convenience_store'=>'1f3ea','cook_islands'=>'1f1e8-1f1f0','cookie'=>'1f36a','cooking'=>'1f373','cool'=>'1f192','cop'=>'1f46e','cop_tone1'=>'1f46e-1f3fb','cop_tone2'=>'1f46e-1f3fc','cop_tone3'=>'1f46e-1f3fd','cop_tone4'=>'1f46e-1f3fe','cop_tone5'=>'1f46e-1f3ff','copyright'=>'00a9','corn'=>'1f33d','costa_rica'=>'1f1e8-1f1f7','cote_divoire'=>'1f1e8-1f1ee','couch'=>'1f6cb','couch_and_lamp'=>'1f6cb','couple'=>'1f46b','couple_mm'=>'1f468-2764-1f468','couple_with_heart'=>'1f491','couple_with_heart_man_man'=>'1f468-2764-1f468','couple_with_heart_woman_man'=>'1f491','couple_with_heart_woman_woman'=>'1f469-2764-1f469','couple_ww'=>'1f469-2764-1f469','couplekiss'=>'1f48f','couplekiss_man_man'=>'1f468-2764-1f48b-1f468','couplekiss_man_woman'=>'1f48f','couplekiss_woman_woman'=>'1f469-2764-1f48b-1f469','cow'=>'1f42e','cow2'=>'1f404','cowboy'=>'1f920','crab'=>'1f980','crayon'=>'1f58d','credit_card'=>'1f4b3','crescent_moon'=>'1f319','cricket'=>'1f3cf','croatia'=>'1f1ed-1f1f7','crocodile'=>'1f40a','croissant'=>'1f950','cross'=>'271d','crossed_flags'=>'1f38c','crossed_swords'=>'2694','crown'=>'1f451','cruise_ship'=>'1f6f3','cry'=>'1f622','crying_cat_face'=>'1f63f','crystal_ball'=>'1f52e','cuba'=>'1f1e8-1f1fa','cucumber'=>'1f952','cupid'=>'1f498','curacao'=>'1f1e8-1f1fc','curly_loop'=>'27b0','currency_exchange'=>'1f4b1','curry'=>'1f35b','custard'=>'1f36e','customs'=>'1f6c3','cyclone'=>'1f300','cyprus'=>'1f1e8-1f1fe','czech_republic'=>'1f1e8-1f1ff','dagger'=>'1f5e1','dancer'=>'1f483','dancer_tone1'=>'1f483-1f3fb','dancer_tone2'=>'1f483-1f3fc','dancer_tone3'=>'1f483-1f3fd','dancer_tone4'=>'1f483-1f3fe','dancer_tone5'=>'1f483-1f3ff','dancers'=>'1f46f','dancing_women'=>'1f46f','dango'=>'1f361','dark_sunglasses'=>'1f576','dart'=>'1f3af','dash'=>'1f4a8','date'=>'1f4c5','de'=>'1f1e9-1f1ea','deciduous_tree'=>'1f333','deer'=>'1f98c','denmark'=>'1f1e9-1f1f0','department_store'=>'1f3ec','derelict_house'=>'1f3da','desert'=>'1f3dc','desert_island'=>'1f3dd','desktop'=>'1f5a5','desktop_computer'=>'1f5a5','detective'=>'1f575','diamond_shape_with_a_dot_inside'=>'1f4a0','diamonds'=>'2666','disappointed'=>'1f61e','disappointed_relieved'=>'1f625','dividers'=>'1f5c2','dizzy'=>'1f4ab','dizzy_face'=>'1f635','djibouti'=>'1f1e9-1f1ef','do_not_litter'=>'1f6af','dog'=>'1f436','dog2'=>'1f415','dollar'=>'1f4b5','dolls'=>'1f38e','dolphin'=>'1f42c','dominica'=>'1f1e9-1f1f2','dominican_republic'=>'1f1e9-1f1f4','door'=>'1f6aa','doughnut'=>'1f369','dove'=>'1f54a','dragon'=>'1f409','dragon_face'=>'1f432','dress'=>'1f457','dromedary_camel'=>'1f42a','drooling_face'=>'1f924','droplet'=>'1f4a7','drum'=>'1f941','duck'=>'1f986','dvd'=>'1f4c0','e-mail'=>'1f4e7','eagle'=>'1f985','ear'=>'1f442','ear_of_rice'=>'1f33e','ear_tone1'=>'1f442-1f3fb','ear_tone2'=>'1f442-1f3fc','ear_tone3'=>'1f442-1f3fd','ear_tone4'=>'1f442-1f3fe','ear_tone5'=>'1f442-1f3ff','earth_africa'=>'1f30d','earth_americas'=>'1f30e','earth_asia'=>'1f30f','ecuador'=>'1f1ea-1f1e8','egg'=>'1f95a','eggplant'=>'1f346','egypt'=>'1f1ea-1f1ec','eight'=>'0038-20e3','eight_pointed_black_star'=>'2734','eight_spoked_asterisk'=>'2733','eject'=>'23cf','el_salvador'=>'1f1f8-1f1fb','electric_plug'=>'1f50c','elephant'=>'1f418','email'=>'2709','end'=>'1f51a','envelope'=>'2709','envelope_with_arrow'=>'1f4e9','equatorial_guinea'=>'1f1ec-1f1f6','eritrea'=>'1f1ea-1f1f7','es'=>'1f1ea-1f1f8','estonia'=>'1f1ea-1f1ea','ethiopia'=>'1f1ea-1f1f9','eu'=>'1f1ea-1f1fa','euro'=>'1f4b6','european_castle'=>'1f3f0','european_post_office'=>'1f3e4','european_union'=>'1f1ea-1f1fa','evergreen_tree'=>'1f332','exclamation'=>'2757','expressionless'=>'1f611','eye'=>'1f441','eye_in_speech_bubble'=>'1f441-1f5e8','eye_speech_bubble'=>'1f441-1f5e8','eyeglasses'=>'1f453','eyes'=>'1f440','face_palm'=>'1f926','face_palm_tone1'=>'1f926-1f3fb','face_palm_tone2'=>'1f926-1f3fc','face_palm_tone3'=>'1f926-1f3fd','face_palm_tone4'=>'1f926-1f3fe','face_palm_tone5'=>'1f926-1f3ff','face_with_head_bandage'=>'1f915','face_with_thermometer'=>'1f912','facepunch'=>'1f44a','factory'=>'1f3ed','falkland_islands'=>'1f1eb-1f1f0','fallen_leaf'=>'1f342','family'=>'1f46a','family_man_man_boy'=>'1f468-1f468-1f466','family_man_man_boy_boy'=>'1f468-1f468-1f466-1f466','family_man_man_girl'=>'1f468-1f468-1f467','family_man_man_girl_boy'=>'1f468-1f468-1f467-1f466','family_man_man_girl_girl'=>'1f468-1f468-1f467-1f467','family_man_woman_boy'=>'1f46a','family_man_woman_boy_boy'=>'1f468-1f469-1f466-1f466','family_man_woman_girl'=>'1f468-1f469-1f467','family_man_woman_girl_boy'=>'1f468-1f469-1f467-1f466','family_man_woman_girl_girl'=>'1f468-1f469-1f467-1f467','family_mmb'=>'1f468-1f468-1f466','family_mmbb'=>'1f468-1f468-1f466-1f466','family_mmg'=>'1f468-1f468-1f467','family_mmgb'=>'1f468-1f468-1f467-1f466','family_mmgg'=>'1f468-1f468-1f467-1f467','family_mwbb'=>'1f468-1f469-1f466-1f466','family_mwg'=>'1f468-1f469-1f467','family_mwgb'=>'1f468-1f469-1f467-1f466','family_mwgg'=>'1f468-1f469-1f467-1f467','family_woman_woman_boy'=>'1f469-1f469-1f466','family_woman_woman_boy_boy'=>'1f469-1f469-1f466-1f466','family_woman_woman_girl'=>'1f469-1f469-1f467','family_woman_woman_girl_boy'=>'1f469-1f469-1f467-1f466','family_woman_woman_girl_girl'=>'1f469-1f469-1f467-1f467','family_wwb'=>'1f469-1f469-1f466','family_wwbb'=>'1f469-1f469-1f466-1f466','family_wwg'=>'1f469-1f469-1f467','family_wwgb'=>'1f469-1f469-1f467-1f466','family_wwgg'=>'1f469-1f469-1f467-1f467','faroe_islands'=>'1f1eb-1f1f4','fast_forward'=>'23e9','fax'=>'1f4e0','fearful'=>'1f628','feet'=>'1f43e','fencer'=>'1f93a','ferris_wheel'=>'1f3a1','ferry'=>'26f4','field_hockey'=>'1f3d1','fiji'=>'1f1eb-1f1ef','file_cabinet'=>'1f5c4','file_folder'=>'1f4c1','film_frames'=>'1f39e','film_projector'=>'1f4fd','film_strip'=>'1f39e','fingers_crossed'=>'1f91e','fingers_crossed_tone1'=>'1f91e-1f3fb','fingers_crossed_tone2'=>'1f91e-1f3fc','fingers_crossed_tone3'=>'1f91e-1f3fd','fingers_crossed_tone4'=>'1f91e-1f3fe','fingers_crossed_tone5'=>'1f91e-1f3ff','finland'=>'1f1eb-1f1ee','fire'=>'1f525','fire_engine'=>'1f692','fireworks'=>'1f386','first_place'=>'1f947','first_quarter_moon'=>'1f313','first_quarter_moon_with_face'=>'1f31b','fish'=>'1f41f','fish_cake'=>'1f365','fishing_pole_and_fish'=>'1f3a3','fist'=>'270a','fist_tone1'=>'270a-1f3fb','fist_tone2'=>'270a-1f3fc','fist_tone3'=>'270a-1f3fd','fist_tone4'=>'270a-1f3fe','fist_tone5'=>'270a-1f3ff','five'=>'0035-20e3','flag_ac'=>'1f1e6-1f1e8','flag_ad'=>'1f1e6-1f1e9','flag_ae'=>'1f1e6-1f1ea','flag_af'=>'1f1e6-1f1eb','flag_ag'=>'1f1e6-1f1ec','flag_ai'=>'1f1e6-1f1ee','flag_al'=>'1f1e6-1f1f1','flag_am'=>'1f1e6-1f1f2','flag_ao'=>'1f1e6-1f1f4','flag_aq'=>'1f1e6-1f1f6','flag_ar'=>'1f1e6-1f1f7','flag_as'=>'1f1e6-1f1f8','flag_at'=>'1f1e6-1f1f9','flag_au'=>'1f1e6-1f1fa','flag_aw'=>'1f1e6-1f1fc','flag_ax'=>'1f1e6-1f1fd','flag_az'=>'1f1e6-1f1ff','flag_ba'=>'1f1e7-1f1e6','flag_bb'=>'1f1e7-1f1e7','flag_bd'=>'1f1e7-1f1e9','flag_be'=>'1f1e7-1f1ea','flag_bf'=>'1f1e7-1f1eb','flag_bg'=>'1f1e7-1f1ec','flag_bh'=>'1f1e7-1f1ed','flag_bi'=>'1f1e7-1f1ee','flag_bj'=>'1f1e7-1f1ef','flag_bl'=>'1f1e7-1f1f1','flag_black'=>'1f3f4','flag_bm'=>'1f1e7-1f1f2','flag_bn'=>'1f1e7-1f1f3','flag_bo'=>'1f1e7-1f1f4','flag_bq'=>'1f1e7-1f1f6','flag_br'=>'1f1e7-1f1f7','flag_bs'=>'1f1e7-1f1f8','flag_bt'=>'1f1e7-1f1f9','flag_bv'=>'1f1e7-1f1fb','flag_bw'=>'1f1e7-1f1fc','flag_by'=>'1f1e7-1f1fe','flag_bz'=>'1f1e7-1f1ff','flag_ca'=>'1f1e8-1f1e6','flag_cc'=>'1f1e8-1f1e8','flag_cd'=>'1f1e8-1f1e9','flag_cf'=>'1f1e8-1f1eb','flag_cg'=>'1f1e8-1f1ec','flag_ch'=>'1f1e8-1f1ed','flag_ci'=>'1f1e8-1f1ee','flag_ck'=>'1f1e8-1f1f0','flag_cl'=>'1f1e8-1f1f1','flag_cm'=>'1f1e8-1f1f2','flag_cn'=>'1f1e8-1f1f3','flag_co'=>'1f1e8-1f1f4','flag_cp'=>'1f1e8-1f1f5','flag_cr'=>'1f1e8-1f1f7','flag_cu'=>'1f1e8-1f1fa','flag_cv'=>'1f1e8-1f1fb','flag_cw'=>'1f1e8-1f1fc','flag_cx'=>'1f1e8-1f1fd','flag_cy'=>'1f1e8-1f1fe','flag_cz'=>'1f1e8-1f1ff','flag_de'=>'1f1e9-1f1ea','flag_dg'=>'1f1e9-1f1ec','flag_dj'=>'1f1e9-1f1ef','flag_dk'=>'1f1e9-1f1f0','flag_dm'=>'1f1e9-1f1f2','flag_do'=>'1f1e9-1f1f4','flag_dz'=>'1f1e9-1f1ff','flag_ea'=>'1f1ea-1f1e6','flag_ec'=>'1f1ea-1f1e8','flag_ee'=>'1f1ea-1f1ea','flag_eg'=>'1f1ea-1f1ec','flag_eh'=>'1f1ea-1f1ed','flag_er'=>'1f1ea-1f1f7','flag_es'=>'1f1ea-1f1f8','flag_et'=>'1f1ea-1f1f9','flag_eu'=>'1f1ea-1f1fa','flag_fi'=>'1f1eb-1f1ee','flag_fj'=>'1f1eb-1f1ef','flag_fk'=>'1f1eb-1f1f0','flag_fm'=>'1f1eb-1f1f2','flag_fo'=>'1f1eb-1f1f4','flag_fr'=>'1f1eb-1f1f7','flag_ga'=>'1f1ec-1f1e6','flag_gb'=>'1f1ec-1f1e7','flag_gd'=>'1f1ec-1f1e9','flag_ge'=>'1f1ec-1f1ea','flag_gf'=>'1f1ec-1f1eb','flag_gg'=>'1f1ec-1f1ec','flag_gh'=>'1f1ec-1f1ed','flag_gi'=>'1f1ec-1f1ee','flag_gl'=>'1f1ec-1f1f1','flag_gm'=>'1f1ec-1f1f2','flag_gn'=>'1f1ec-1f1f3','flag_gp'=>'1f1ec-1f1f5','flag_gq'=>'1f1ec-1f1f6','flag_gr'=>'1f1ec-1f1f7','flag_gs'=>'1f1ec-1f1f8','flag_gt'=>'1f1ec-1f1f9','flag_gu'=>'1f1ec-1f1fa','flag_gw'=>'1f1ec-1f1fc','flag_gy'=>'1f1ec-1f1fe','flag_hk'=>'1f1ed-1f1f0','flag_hm'=>'1f1ed-1f1f2','flag_hn'=>'1f1ed-1f1f3','flag_hr'=>'1f1ed-1f1f7','flag_ht'=>'1f1ed-1f1f9','flag_hu'=>'1f1ed-1f1fa','flag_ic'=>'1f1ee-1f1e8','flag_id'=>'1f1ee-1f1e9','flag_ie'=>'1f1ee-1f1ea','flag_il'=>'1f1ee-1f1f1','flag_im'=>'1f1ee-1f1f2','flag_in'=>'1f1ee-1f1f3','flag_io'=>'1f1ee-1f1f4','flag_iq'=>'1f1ee-1f1f6','flag_ir'=>'1f1ee-1f1f7','flag_is'=>'1f1ee-1f1f8','flag_it'=>'1f1ee-1f1f9','flag_je'=>'1f1ef-1f1ea','flag_jm'=>'1f1ef-1f1f2','flag_jo'=>'1f1ef-1f1f4','flag_jp'=>'1f1ef-1f1f5','flag_ke'=>'1f1f0-1f1ea','flag_kg'=>'1f1f0-1f1ec','flag_kh'=>'1f1f0-1f1ed','flag_ki'=>'1f1f0-1f1ee','flag_km'=>'1f1f0-1f1f2','flag_kn'=>'1f1f0-1f1f3','flag_kp'=>'1f1f0-1f1f5','flag_kr'=>'1f1f0-1f1f7','flag_kw'=>'1f1f0-1f1fc','flag_ky'=>'1f1f0-1f1fe','flag_kz'=>'1f1f0-1f1ff','flag_la'=>'1f1f1-1f1e6','flag_lb'=>'1f1f1-1f1e7','flag_lc'=>'1f1f1-1f1e8','flag_li'=>'1f1f1-1f1ee','flag_lk'=>'1f1f1-1f1f0','flag_lr'=>'1f1f1-1f1f7','flag_ls'=>'1f1f1-1f1f8','flag_lt'=>'1f1f1-1f1f9','flag_lu'=>'1f1f1-1f1fa','flag_lv'=>'1f1f1-1f1fb','flag_ly'=>'1f1f1-1f1fe','flag_ma'=>'1f1f2-1f1e6','flag_mc'=>'1f1f2-1f1e8','flag_md'=>'1f1f2-1f1e9','flag_me'=>'1f1f2-1f1ea','flag_mf'=>'1f1f2-1f1eb','flag_mg'=>'1f1f2-1f1ec','flag_mh'=>'1f1f2-1f1ed','flag_mk'=>'1f1f2-1f1f0','flag_ml'=>'1f1f2-1f1f1','flag_mm'=>'1f1f2-1f1f2','flag_mn'=>'1f1f2-1f1f3','flag_mo'=>'1f1f2-1f1f4','flag_mp'=>'1f1f2-1f1f5','flag_mq'=>'1f1f2-1f1f6','flag_mr'=>'1f1f2-1f1f7','flag_ms'=>'1f1f2-1f1f8','flag_mt'=>'1f1f2-1f1f9','flag_mu'=>'1f1f2-1f1fa','flag_mv'=>'1f1f2-1f1fb','flag_mw'=>'1f1f2-1f1fc','flag_mx'=>'1f1f2-1f1fd','flag_my'=>'1f1f2-1f1fe','flag_mz'=>'1f1f2-1f1ff','flag_na'=>'1f1f3-1f1e6','flag_nc'=>'1f1f3-1f1e8','flag_ne'=>'1f1f3-1f1ea','flag_nf'=>'1f1f3-1f1eb','flag_ng'=>'1f1f3-1f1ec','flag_ni'=>'1f1f3-1f1ee','flag_nl'=>'1f1f3-1f1f1','flag_no'=>'1f1f3-1f1f4','flag_np'=>'1f1f3-1f1f5','flag_nr'=>'1f1f3-1f1f7','flag_nu'=>'1f1f3-1f1fa','flag_nz'=>'1f1f3-1f1ff','flag_om'=>'1f1f4-1f1f2','flag_pa'=>'1f1f5-1f1e6','flag_pe'=>'1f1f5-1f1ea','flag_pf'=>'1f1f5-1f1eb','flag_pg'=>'1f1f5-1f1ec','flag_ph'=>'1f1f5-1f1ed','flag_pk'=>'1f1f5-1f1f0','flag_pl'=>'1f1f5-1f1f1','flag_pm'=>'1f1f5-1f1f2','flag_pn'=>'1f1f5-1f1f3','flag_pr'=>'1f1f5-1f1f7','flag_ps'=>'1f1f5-1f1f8','flag_pt'=>'1f1f5-1f1f9','flag_pw'=>'1f1f5-1f1fc','flag_py'=>'1f1f5-1f1fe','flag_qa'=>'1f1f6-1f1e6','flag_re'=>'1f1f7-1f1ea','flag_ro'=>'1f1f7-1f1f4','flag_rs'=>'1f1f7-1f1f8','flag_ru'=>'1f1f7-1f1fa','flag_rw'=>'1f1f7-1f1fc','flag_sa'=>'1f1f8-1f1e6','flag_sb'=>'1f1f8-1f1e7','flag_sc'=>'1f1f8-1f1e8','flag_sd'=>'1f1f8-1f1e9','flag_se'=>'1f1f8-1f1ea','flag_sg'=>'1f1f8-1f1ec','flag_sh'=>'1f1f8-1f1ed','flag_si'=>'1f1f8-1f1ee','flag_sj'=>'1f1f8-1f1ef','flag_sk'=>'1f1f8-1f1f0','flag_sl'=>'1f1f8-1f1f1','flag_sm'=>'1f1f8-1f1f2','flag_sn'=>'1f1f8-1f1f3','flag_so'=>'1f1f8-1f1f4','flag_sr'=>'1f1f8-1f1f7','flag_ss'=>'1f1f8-1f1f8','flag_st'=>'1f1f8-1f1f9','flag_sv'=>'1f1f8-1f1fb','flag_sx'=>'1f1f8-1f1fd','flag_sy'=>'1f1f8-1f1fe','flag_sz'=>'1f1f8-1f1ff','flag_ta'=>'1f1f9-1f1e6','flag_tc'=>'1f1f9-1f1e8','flag_td'=>'1f1f9-1f1e9','flag_tf'=>'1f1f9-1f1eb','flag_tg'=>'1f1f9-1f1ec','flag_th'=>'1f1f9-1f1ed','flag_tj'=>'1f1f9-1f1ef','flag_tk'=>'1f1f9-1f1f0','flag_tl'=>'1f1f9-1f1f1','flag_tm'=>'1f1f9-1f1f2','flag_tn'=>'1f1f9-1f1f3','flag_to'=>'1f1f9-1f1f4','flag_tr'=>'1f1f9-1f1f7','flag_tt'=>'1f1f9-1f1f9','flag_tv'=>'1f1f9-1f1fb','flag_tw'=>'1f1f9-1f1fc','flag_tz'=>'1f1f9-1f1ff','flag_ua'=>'1f1fa-1f1e6','flag_ug'=>'1f1fa-1f1ec','flag_um'=>'1f1fa-1f1f2','flag_us'=>'1f1fa-1f1f8','flag_uy'=>'1f1fa-1f1fe','flag_uz'=>'1f1fa-1f1ff','flag_va'=>'1f1fb-1f1e6','flag_vc'=>'1f1fb-1f1e8','flag_ve'=>'1f1fb-1f1ea','flag_vg'=>'1f1fb-1f1ec','flag_vi'=>'1f1fb-1f1ee','flag_vn'=>'1f1fb-1f1f3','flag_vu'=>'1f1fb-1f1fa','flag_wf'=>'1f1fc-1f1eb','flag_white'=>'1f3f3','flag_ws'=>'1f1fc-1f1f8','flag_xk'=>'1f1fd-1f1f0','flag_ye'=>'1f1fe-1f1ea','flag_yt'=>'1f1fe-1f1f9','flag_za'=>'1f1ff-1f1e6','flag_zm'=>'1f1ff-1f1f2','flag_zw'=>'1f1ff-1f1fc','flags'=>'1f38f','flashlight'=>'1f526','fleur-de-lis'=>'269c','fleur_de_lis'=>'269c','flight_arrival'=>'1f6ec','flight_departure'=>'1f6eb','flipper'=>'1f42c','floppy_disk'=>'1f4be','flower_playing_cards'=>'1f3b4','flushed'=>'1f633','fog'=>'1f32b','foggy'=>'1f301','football'=>'1f3c8','footprints'=>'1f463','fork_and_knife'=>'1f374','fork_knife_plate'=>'1f37d','fountain'=>'26f2','fountain_pen'=>'1f58b','four'=>'0034-20e3','four_leaf_clover'=>'1f340','fox'=>'1f98a','fr'=>'1f1eb-1f1f7','frame_photo'=>'1f5bc','framed_picture'=>'1f5bc','free'=>'1f193','french_bread'=>'1f956','french_guiana'=>'1f1ec-1f1eb','french_polynesia'=>'1f1f5-1f1eb','french_southern_territories'=>'1f1f9-1f1eb','fried_shrimp'=>'1f364','fries'=>'1f35f','frog'=>'1f438','frowning'=>'1f626','frowning2'=>'2639','frowning_face'=>'2639','frowning_woman'=>'1f64d','fu'=>'1f595','fuelpump'=>'26fd','full_moon'=>'1f315','full_moon_with_face'=>'1f31d','funeral_urn'=>'26b1','gabon'=>'1f1ec-1f1e6','gambia'=>'1f1ec-1f1f2','game_die'=>'1f3b2','gay_pride_flag'=>'1f3f3-1f308','gb'=>'1f1ec-1f1e7','gear'=>'2699','gem'=>'1f48e','gemini'=>'264a','georgia'=>'1f1ec-1f1ea','ghana'=>'1f1ec-1f1ed','ghost'=>'1f47b','gibraltar'=>'1f1ec-1f1ee','gift'=>'1f381','gift_heart'=>'1f49d','girl'=>'1f467','girl_tone1'=>'1f467-1f3fb','girl_tone2'=>'1f467-1f3fc','girl_tone3'=>'1f467-1f3fd','girl_tone4'=>'1f467-1f3fe','girl_tone5'=>'1f467-1f3ff','globe_with_meridians'=>'1f310','goal'=>'1f945','goat'=>'1f410','golf'=>'26f3','golfer'=>'1f3cc','golfing_man'=>'1f3cc','gorilla'=>'1f98d','grapes'=>'1f347','greece'=>'1f1ec-1f1f7','green_apple'=>'1f34f','green_book'=>'1f4d7','green_heart'=>'1f49a','greenland'=>'1f1ec-1f1f1','grenada'=>'1f1ec-1f1e9','grey_exclamation'=>'2755','grey_question'=>'2754','grimacing'=>'1f62c','grin'=>'1f601','grinning'=>'1f600','guadeloupe'=>'1f1ec-1f1f5','guam'=>'1f1ec-1f1fa','guardsman'=>'1f482','guardsman_tone1'=>'1f482-1f3fb','guardsman_tone2'=>'1f482-1f3fc','guardsman_tone3'=>'1f482-1f3fd','guardsman_tone4'=>'1f482-1f3fe','guardsman_tone5'=>'1f482-1f3ff','guatemala'=>'1f1ec-1f1f9','guernsey'=>'1f1ec-1f1ec','guinea'=>'1f1ec-1f1f3','guinea_bissau'=>'1f1ec-1f1fc','guitar'=>'1f3b8','gun'=>'1f52b','guyana'=>'1f1ec-1f1fe','haircut'=>'1f487','haircut_tone1'=>'1f487-1f3fb','haircut_tone2'=>'1f487-1f3fc','haircut_tone3'=>'1f487-1f3fd','haircut_tone4'=>'1f487-1f3fe','haircut_tone5'=>'1f487-1f3ff','haircut_woman'=>'1f487','haiti'=>'1f1ed-1f1f9','hamburger'=>'1f354','hammer'=>'1f528','hammer_and_pick'=>'2692','hammer_and_wrench'=>'1f6e0','hammer_pick'=>'2692','hamster'=>'1f439','hand'=>'270b','hand_splayed'=>'1f590','hand_splayed_tone1'=>'1f590-1f3fb','hand_splayed_tone2'=>'1f590-1f3fc','hand_splayed_tone3'=>'1f590-1f3fd','hand_splayed_tone4'=>'1f590-1f3fe','hand_splayed_tone5'=>'1f590-1f3ff','handbag'=>'1f45c','handball'=>'1f93e','handball_tone1'=>'1f93e-1f3fb','handball_tone2'=>'1f93e-1f3fc','handball_tone3'=>'1f93e-1f3fd','handball_tone4'=>'1f93e-1f3fe','handball_tone5'=>'1f93e-1f3ff','handshake'=>'1f91d','handshake_tone1'=>'1f91d-1f3fb','handshake_tone2'=>'1f91d-1f3fc','handshake_tone3'=>'1f91d-1f3fd','handshake_tone4'=>'1f91d-1f3fe','handshake_tone5'=>'1f91d-1f3ff','hankey'=>'1f4a9','hash'=>'0023-20e3','hatched_chick'=>'1f425','hatching_chick'=>'1f423','head_bandage'=>'1f915','headphones'=>'1f3a7','hear_no_evil'=>'1f649','heart'=>'2764','heart_decoration'=>'1f49f','heart_exclamation'=>'2763','heart_eyes'=>'1f60d','heart_eyes_cat'=>'1f63b','heartbeat'=>'1f493','heartpulse'=>'1f497','hearts'=>'2665','heavy_check_mark'=>'2714','heavy_division_sign'=>'2797','heavy_dollar_sign'=>'1f4b2','heavy_exclamation_mark'=>'2757','heavy_heart_exclamation'=>'2763','heavy_minus_sign'=>'2796','heavy_multiplication_x'=>'2716','heavy_plus_sign'=>'2795','helicopter'=>'1f681','helmet_with_cross'=>'26d1','herb'=>'1f33f','hibiscus'=>'1f33a','high_brightness'=>'1f506','high_heel'=>'1f460','hocho'=>'1f52a','hockey'=>'1f3d2','hole'=>'1f573','homes'=>'1f3d8','honduras'=>'1f1ed-1f1f3','honey_pot'=>'1f36f','honeybee'=>'1f41d','hong_kong'=>'1f1ed-1f1f0','horse'=>'1f434','horse_racing'=>'1f3c7','horse_racing_tone1'=>'1f3c7-1f3fb','horse_racing_tone2'=>'1f3c7-1f3fc','horse_racing_tone3'=>'1f3c7-1f3fd','horse_racing_tone4'=>'1f3c7-1f3fe','horse_racing_tone5'=>'1f3c7-1f3ff','hospital'=>'1f3e5','hot_pepper'=>'1f336','hotdog'=>'1f32d','hotel'=>'1f3e8','hotsprings'=>'2668','hourglass'=>'231b','hourglass_flowing_sand'=>'23f3','house'=>'1f3e0','house_abandoned'=>'1f3da','house_with_garden'=>'1f3e1','houses'=>'1f3d8','hugging'=>'1f917','hugs'=>'1f917','hungary'=>'1f1ed-1f1fa','hushed'=>'1f62f','ice_cream'=>'1f368','ice_hockey'=>'1f3d2','ice_skate'=>'26f8','icecream'=>'1f366','iceland'=>'1f1ee-1f1f8','id'=>'1f194','ideograph_advantage'=>'1f250','imp'=>'1f47f','inbox_tray'=>'1f4e5','incoming_envelope'=>'1f4e8','india'=>'1f1ee-1f1f3','indonesia'=>'1f1ee-1f1e9','information_desk_person'=>'1f481','information_desk_person_tone1'=>'1f481-1f3fb','information_desk_person_tone2'=>'1f481-1f3fc','information_desk_person_tone3'=>'1f481-1f3fd','information_desk_person_tone4'=>'1f481-1f3fe','information_desk_person_tone5'=>'1f481-1f3ff','information_source'=>'2139','innocent'=>'1f607','interrobang'=>'2049','iphone'=>'1f4f1','iran'=>'1f1ee-1f1f7','iraq'=>'1f1ee-1f1f6','ireland'=>'1f1ee-1f1ea','island'=>'1f3dd','isle_of_man'=>'1f1ee-1f1f2','israel'=>'1f1ee-1f1f1','it'=>'1f1ee-1f1f9','izakaya_lantern'=>'1f3ee','jack_o_lantern'=>'1f383','jamaica'=>'1f1ef-1f1f2','japan'=>'1f5fe','japanese_castle'=>'1f3ef','japanese_goblin'=>'1f47a','japanese_ogre'=>'1f479','jeans'=>'1f456','jersey'=>'1f1ef-1f1ea','jordan'=>'1f1ef-1f1f4','joy'=>'1f602','joy_cat'=>'1f639','joystick'=>'1f579','jp'=>'1f1ef-1f1f5','juggling'=>'1f939','juggling_tone1'=>'1f939-1f3fb','juggling_tone2'=>'1f939-1f3fc','juggling_tone3'=>'1f939-1f3fd','juggling_tone4'=>'1f939-1f3fe','juggling_tone5'=>'1f939-1f3ff','kaaba'=>'1f54b','kazakhstan'=>'1f1f0-1f1ff','kenya'=>'1f1f0-1f1ea','key'=>'1f511','key2'=>'1f5dd','keyboard'=>'2328','keycap_ten'=>'1f51f','kimono'=>'1f458','kiribati'=>'1f1f0-1f1ee','kiss'=>'1f48b','kiss_mm'=>'1f468-2764-1f48b-1f468','kiss_ww'=>'1f469-2764-1f48b-1f469','kissing'=>'1f617','kissing_cat'=>'1f63d','kissing_closed_eyes'=>'1f61a','kissing_heart'=>'1f618','kissing_smiling_eyes'=>'1f619','kiwi'=>'1f95d','knife'=>'1f52a','koala'=>'1f428','koko'=>'1f201','kosovo'=>'1f1fd-1f1f0','kr'=>'1f1f0-1f1f7','kuwait'=>'1f1f0-1f1fc','kyrgyzstan'=>'1f1f0-1f1ec','label'=>'1f3f7','lantern'=>'1f3ee','laos'=>'1f1f1-1f1e6','large_blue_circle'=>'1f535','large_blue_diamond'=>'1f537','large_orange_diamond'=>'1f536','last_quarter_moon'=>'1f317','last_quarter_moon_with_face'=>'1f31c','latin_cross'=>'271d','latvia'=>'1f1f1-1f1fb','laughing'=>'1f606','leaves'=>'1f343','lebanon'=>'1f1f1-1f1e7','ledger'=>'1f4d2','left_facing_fist'=>'1f91b','left_facing_fist_tone1'=>'1f91b-1f3fb','left_facing_fist_tone2'=>'1f91b-1f3fc','left_facing_fist_tone3'=>'1f91b-1f3fd','left_facing_fist_tone4'=>'1f91b-1f3fe','left_facing_fist_tone5'=>'1f91b-1f3ff','left_luggage'=>'1f6c5','left_right_arrow'=>'2194','leftwards_arrow_with_hook'=>'21a9','lemon'=>'1f34b','leo'=>'264c','leopard'=>'1f406','lesotho'=>'1f1f1-1f1f8','level_slider'=>'1f39a','levitate'=>'1f574','liberia'=>'1f1f1-1f1f7','libra'=>'264e','libya'=>'1f1f1-1f1fe','liechtenstein'=>'1f1f1-1f1ee','lifter'=>'1f3cb','lifter_tone1'=>'1f3cb-1f3fb','lifter_tone2'=>'1f3cb-1f3fc','lifter_tone3'=>'1f3cb-1f3fd','lifter_tone4'=>'1f3cb-1f3fe','lifter_tone5'=>'1f3cb-1f3ff','light_rail'=>'1f688','link'=>'1f517','lion'=>'1f981','lion_face'=>'1f981','lips'=>'1f444','lipstick'=>'1f484','lithuania'=>'1f1f1-1f1f9','lizard'=>'1f98e','lock'=>'1f512','lock_with_ink_pen'=>'1f50f','lollipop'=>'1f36d','loop'=>'27bf','loud_sound'=>'1f50a','loudspeaker'=>'1f4e2','love_hotel'=>'1f3e9','love_letter'=>'1f48c','low_brightness'=>'1f505','luxembourg'=>'1f1f1-1f1fa','lying_face'=>'1f925','m'=>'24c2','macau'=>'1f1f2-1f1f4','macedonia'=>'1f1f2-1f1f0','madagascar'=>'1f1f2-1f1ec','mag'=>'1f50d','mag_right'=>'1f50e','mahjong'=>'1f004','mailbox'=>'1f4eb','mailbox_closed'=>'1f4ea','mailbox_with_mail'=>'1f4ec','mailbox_with_no_mail'=>'1f4ed','malawi'=>'1f1f2-1f1fc','malaysia'=>'1f1f2-1f1fe','maldives'=>'1f1f2-1f1fb','male_detective'=>'1f575','mali'=>'1f1f2-1f1f1','malta'=>'1f1f2-1f1f9','man'=>'1f468','man_dancing'=>'1f57a','man_dancing_tone1'=>'1f57a-1f3fb','man_dancing_tone2'=>'1f57a-1f3fc','man_dancing_tone3'=>'1f57a-1f3fd','man_dancing_tone4'=>'1f57a-1f3fe','man_dancing_tone5'=>'1f57a-1f3ff','man_in_tuxedo'=>'1f935','man_in_tuxedo_tone1'=>'1f935-1f3fb','man_in_tuxedo_tone2'=>'1f935-1f3fc','man_in_tuxedo_tone3'=>'1f935-1f3fd','man_in_tuxedo_tone4'=>'1f935-1f3fe','man_in_tuxedo_tone5'=>'1f935-1f3ff','man_tone1'=>'1f468-1f3fb','man_tone2'=>'1f468-1f3fc','man_tone3'=>'1f468-1f3fd','man_tone4'=>'1f468-1f3fe','man_tone5'=>'1f468-1f3ff','man_with_gua_pi_mao'=>'1f472','man_with_gua_pi_mao_tone1'=>'1f472-1f3fb','man_with_gua_pi_mao_tone2'=>'1f472-1f3fc','man_with_gua_pi_mao_tone3'=>'1f472-1f3fd','man_with_gua_pi_mao_tone4'=>'1f472-1f3fe','man_with_gua_pi_mao_tone5'=>'1f472-1f3ff','man_with_turban'=>'1f473','man_with_turban_tone1'=>'1f473-1f3fb','man_with_turban_tone2'=>'1f473-1f3fc','man_with_turban_tone3'=>'1f473-1f3fd','man_with_turban_tone4'=>'1f473-1f3fe','man_with_turban_tone5'=>'1f473-1f3ff','mandarin'=>'1f34a','mans_shoe'=>'1f45e','mantelpiece_clock'=>'1f570','map'=>'1f5fa','maple_leaf'=>'1f341','marshall_islands'=>'1f1f2-1f1ed','martial_arts_uniform'=>'1f94b','martinique'=>'1f1f2-1f1f6','mask'=>'1f637','massage'=>'1f486','massage_tone1'=>'1f486-1f3fb','massage_tone2'=>'1f486-1f3fc','massage_tone3'=>'1f486-1f3fd','massage_tone4'=>'1f486-1f3fe','massage_tone5'=>'1f486-1f3ff','massage_woman'=>'1f486','mauritania'=>'1f1f2-1f1f7','mauritius'=>'1f1f2-1f1fa','mayotte'=>'1f1fe-1f1f9','meat_on_bone'=>'1f356','medal'=>'1f3c5','medal_military'=>'1f396','medal_sports'=>'1f3c5','mega'=>'1f4e3','melon'=>'1f348','memo'=>'1f4dd','menorah'=>'1f54e','mens'=>'1f6b9','metal'=>'1f918','metal_tone1'=>'1f918-1f3fb','metal_tone2'=>'1f918-1f3fc','metal_tone3'=>'1f918-1f3fd','metal_tone4'=>'1f918-1f3fe','metal_tone5'=>'1f918-1f3ff','metro'=>'1f687','mexico'=>'1f1f2-1f1fd','micronesia'=>'1f1eb-1f1f2','microphone'=>'1f3a4','microphone2'=>'1f399','microscope'=>'1f52c','middle_finger'=>'1f595','middle_finger_tone1'=>'1f595-1f3fb','middle_finger_tone2'=>'1f595-1f3fc','middle_finger_tone3'=>'1f595-1f3fd','middle_finger_tone4'=>'1f595-1f3fe','middle_finger_tone5'=>'1f595-1f3ff','military_medal'=>'1f396','milk'=>'1f95b','milky_way'=>'1f30c','minibus'=>'1f690','minidisc'=>'1f4bd','mobile_phone_off'=>'1f4f4','moldova'=>'1f1f2-1f1e9','monaco'=>'1f1f2-1f1e8','money_mouth'=>'1f911','money_mouth_face'=>'1f911','money_with_wings'=>'1f4b8','moneybag'=>'1f4b0','mongolia'=>'1f1f2-1f1f3','monkey'=>'1f412','monkey_face'=>'1f435','monorail'=>'1f69d','montenegro'=>'1f1f2-1f1ea','montserrat'=>'1f1f2-1f1f8','moon'=>'1f314','morocco'=>'1f1f2-1f1e6','mortar_board'=>'1f393','mosque'=>'1f54c','motor_boat'=>'1f6e5','motor_scooter'=>'1f6f5','motorboat'=>'1f6e5','motorcycle'=>'1f3cd','motorway'=>'1f6e3','mount_fuji'=>'1f5fb','mountain'=>'26f0','mountain_bicyclist'=>'1f6b5','mountain_bicyclist_tone1'=>'1f6b5-1f3fb','mountain_bicyclist_tone2'=>'1f6b5-1f3fc','mountain_bicyclist_tone3'=>'1f6b5-1f3fd','mountain_bicyclist_tone4'=>'1f6b5-1f3fe','mountain_bicyclist_tone5'=>'1f6b5-1f3ff','mountain_biking_man'=>'1f6b5','mountain_cableway'=>'1f6a0','mountain_railway'=>'1f69e','mountain_snow'=>'1f3d4','mouse'=>'1f42d','mouse2'=>'1f401','mouse_three_button'=>'1f5b1','movie_camera'=>'1f3a5','moyai'=>'1f5ff','mozambique'=>'1f1f2-1f1ff','mrs_claus'=>'1f936','mrs_claus_tone1'=>'1f936-1f3fb','mrs_claus_tone2'=>'1f936-1f3fc','mrs_claus_tone3'=>'1f936-1f3fd','mrs_claus_tone4'=>'1f936-1f3fe','mrs_claus_tone5'=>'1f936-1f3ff','muscle'=>'1f4aa','muscle_tone1'=>'1f4aa-1f3fb','muscle_tone2'=>'1f4aa-1f3fc','muscle_tone3'=>'1f4aa-1f3fd','muscle_tone4'=>'1f4aa-1f3fe','muscle_tone5'=>'1f4aa-1f3ff','mushroom'=>'1f344','musical_keyboard'=>'1f3b9','musical_note'=>'1f3b5','musical_score'=>'1f3bc','mute'=>'1f507','myanmar'=>'1f1f2-1f1f2','nail_care'=>'1f485','nail_care_tone1'=>'1f485-1f3fb','nail_care_tone2'=>'1f485-1f3fc','nail_care_tone3'=>'1f485-1f3fd','nail_care_tone4'=>'1f485-1f3fe','nail_care_tone5'=>'1f485-1f3ff','name_badge'=>'1f4db','namibia'=>'1f1f3-1f1e6','national_park'=>'1f3de','nauru'=>'1f1f3-1f1f7','nauseated_face'=>'1f922','necktie'=>'1f454','negative_squared_cross_mark'=>'274e','nepal'=>'1f1f3-1f1f5','nerd'=>'1f913','nerd_face'=>'1f913','netherlands'=>'1f1f3-1f1f1','neutral_face'=>'1f610','new'=>'1f195','new_caledonia'=>'1f1f3-1f1e8','new_moon'=>'1f311','new_moon_with_face'=>'1f31a','new_zealand'=>'1f1f3-1f1ff','newspaper'=>'1f4f0','newspaper2'=>'1f5de','newspaper_roll'=>'1f5de','next_track_button'=>'23ed','ng'=>'1f196','ng_woman'=>'1f645','nicaragua'=>'1f1f3-1f1ee','niger'=>'1f1f3-1f1ea','nigeria'=>'1f1f3-1f1ec','night_with_stars'=>'1f303','nine'=>'0039-20e3','niue'=>'1f1f3-1f1fa','no_bell'=>'1f515','no_bicycles'=>'1f6b3','no_entry'=>'26d4','no_entry_sign'=>'1f6ab','no_good'=>'1f645','no_good_tone1'=>'1f645-1f3fb','no_good_tone2'=>'1f645-1f3fc','no_good_tone3'=>'1f645-1f3fd','no_good_tone4'=>'1f645-1f3fe','no_good_tone5'=>'1f645-1f3ff','no_good_woman'=>'1f645','no_mobile_phones'=>'1f4f5','no_mouth'=>'1f636','no_pedestrians'=>'1f6b7','no_smoking'=>'1f6ad','non-potable_water'=>'1f6b1','norfolk_island'=>'1f1f3-1f1eb','north_korea'=>'1f1f0-1f1f5','northern_mariana_islands'=>'1f1f2-1f1f5','norway'=>'1f1f3-1f1f4','nose'=>'1f443','nose_tone1'=>'1f443-1f3fb','nose_tone2'=>'1f443-1f3fc','nose_tone3'=>'1f443-1f3fd','nose_tone4'=>'1f443-1f3fe','nose_tone5'=>'1f443-1f3ff','notebook'=>'1f4d3','notebook_with_decorative_cover'=>'1f4d4','notepad_spiral'=>'1f5d2','notes'=>'1f3b6','nut_and_bolt'=>'1f529','o'=>'2b55','o2'=>'1f17e','ocean'=>'1f30a','octagonal_sign'=>'1f6d1','octopus'=>'1f419','oden'=>'1f362','office'=>'1f3e2','oil'=>'1f6e2','oil_drum'=>'1f6e2','ok'=>'1f197','ok_hand'=>'1f44c','ok_hand_tone1'=>'1f44c-1f3fb','ok_hand_tone2'=>'1f44c-1f3fc','ok_hand_tone3'=>'1f44c-1f3fd','ok_hand_tone4'=>'1f44c-1f3fe','ok_hand_tone5'=>'1f44c-1f3ff','ok_woman'=>'1f646','ok_woman_tone1'=>'1f646-1f3fb','ok_woman_tone2'=>'1f646-1f3fc','ok_woman_tone3'=>'1f646-1f3fd','ok_woman_tone4'=>'1f646-1f3fe','ok_woman_tone5'=>'1f646-1f3ff','old_key'=>'1f5dd','older_man'=>'1f474','older_man_tone1'=>'1f474-1f3fb','older_man_tone2'=>'1f474-1f3fc','older_man_tone3'=>'1f474-1f3fd','older_man_tone4'=>'1f474-1f3fe','older_man_tone5'=>'1f474-1f3ff','older_woman'=>'1f475','older_woman_tone1'=>'1f475-1f3fb','older_woman_tone2'=>'1f475-1f3fc','older_woman_tone3'=>'1f475-1f3fd','older_woman_tone4'=>'1f475-1f3fe','older_woman_tone5'=>'1f475-1f3ff','om'=>'1f549','om_symbol'=>'1f549','oman'=>'1f1f4-1f1f2','on'=>'1f51b','oncoming_automobile'=>'1f698','oncoming_bus'=>'1f68d','oncoming_police_car'=>'1f694','oncoming_taxi'=>'1f696','one'=>'0031-20e3','open_book'=>'1f4d6','open_file_folder'=>'1f4c2','open_hands'=>'1f450','open_hands_tone1'=>'1f450-1f3fb','open_hands_tone2'=>'1f450-1f3fc','open_hands_tone3'=>'1f450-1f3fd','open_hands_tone4'=>'1f450-1f3fe','open_hands_tone5'=>'1f450-1f3ff','open_mouth'=>'1f62e','open_umbrella'=>'2602','ophiuchus'=>'26ce','orange'=>'1f34a','orange_book'=>'1f4d9','orthodox_cross'=>'2626','outbox_tray'=>'1f4e4','owl'=>'1f989','ox'=>'1f402','package'=>'1f4e6','page_facing_up'=>'1f4c4','page_with_curl'=>'1f4c3','pager'=>'1f4df','paintbrush'=>'1f58c','pakistan'=>'1f1f5-1f1f0','palau'=>'1f1f5-1f1fc','palestinian_territories'=>'1f1f5-1f1f8','palm_tree'=>'1f334','panama'=>'1f1f5-1f1e6','pancakes'=>'1f95e','panda_face'=>'1f43c','paperclip'=>'1f4ce','paperclips'=>'1f587','papua_new_guinea'=>'1f1f5-1f1ec','paraguay'=>'1f1f5-1f1fe','parasol_on_ground'=>'26f1','park'=>'1f3de','parking'=>'1f17f','part_alternation_mark'=>'303d','partly_sunny'=>'26c5','passenger_ship'=>'1f6f3','passport_control'=>'1f6c2','pause_button'=>'23f8','paw_prints'=>'1f43e','peace'=>'262e','peace_symbol'=>'262e','peach'=>'1f351','peanuts'=>'1f95c','pear'=>'1f350','pen'=>'1f58a','pen_ballpoint'=>'1f58a','pen_fountain'=>'1f58b','pencil'=>'1f4dd','pencil2'=>'270f','penguin'=>'1f427','pensive'=>'1f614','performing_arts'=>'1f3ad','persevere'=>'1f623','person_frowning'=>'1f64d','person_frowning_tone1'=>'1f64d-1f3fb','person_frowning_tone2'=>'1f64d-1f3fc','person_frowning_tone3'=>'1f64d-1f3fd','person_frowning_tone4'=>'1f64d-1f3fe','person_frowning_tone5'=>'1f64d-1f3ff','person_with_blond_hair'=>'1f471','person_with_blond_hair_tone1'=>'1f471-1f3fb','person_with_blond_hair_tone2'=>'1f471-1f3fc','person_with_blond_hair_tone3'=>'1f471-1f3fd','person_with_blond_hair_tone4'=>'1f471-1f3fe','person_with_blond_hair_tone5'=>'1f471-1f3ff','person_with_pouting_face'=>'1f64e','person_with_pouting_face_tone1'=>'1f64e-1f3fb','person_with_pouting_face_tone2'=>'1f64e-1f3fc','person_with_pouting_face_tone3'=>'1f64e-1f3fd','person_with_pouting_face_tone4'=>'1f64e-1f3fe','person_with_pouting_face_tone5'=>'1f64e-1f3ff','peru'=>'1f1f5-1f1ea','philippines'=>'1f1f5-1f1ed','phone'=>'260e','pick'=>'26cf','pig'=>'1f437','pig2'=>'1f416','pig_nose'=>'1f43d','pill'=>'1f48a','pineapple'=>'1f34d','ping_pong'=>'1f3d3','pisces'=>'2653','pitcairn_islands'=>'1f1f5-1f1f3','pizza'=>'1f355','place_of_worship'=>'1f6d0','plate_with_cutlery'=>'1f37d','play_or_pause_button'=>'23ef','play_pause'=>'23ef','point_down'=>'1f447','point_down_tone1'=>'1f447-1f3fb','point_down_tone2'=>'1f447-1f3fc','point_down_tone3'=>'1f447-1f3fd','point_down_tone4'=>'1f447-1f3fe','point_down_tone5'=>'1f447-1f3ff','point_left'=>'1f448','point_left_tone1'=>'1f448-1f3fb','point_left_tone2'=>'1f448-1f3fc','point_left_tone3'=>'1f448-1f3fd','point_left_tone4'=>'1f448-1f3fe','point_left_tone5'=>'1f448-1f3ff','point_right'=>'1f449','point_right_tone1'=>'1f449-1f3fb','point_right_tone2'=>'1f449-1f3fc','point_right_tone3'=>'1f449-1f3fd','point_right_tone4'=>'1f449-1f3fe','point_right_tone5'=>'1f449-1f3ff','point_up'=>'261d','point_up_2'=>'1f446','point_up_2_tone1'=>'1f446-1f3fb','point_up_2_tone2'=>'1f446-1f3fc','point_up_2_tone3'=>'1f446-1f3fd','point_up_2_tone4'=>'1f446-1f3fe','point_up_2_tone5'=>'1f446-1f3ff','point_up_tone1'=>'261d-1f3fb','point_up_tone2'=>'261d-1f3fc','point_up_tone3'=>'261d-1f3fd','point_up_tone4'=>'261d-1f3fe','point_up_tone5'=>'261d-1f3ff','poland'=>'1f1f5-1f1f1','police_car'=>'1f693','policeman'=>'1f46e','poodle'=>'1f429','poop'=>'1f4a9','popcorn'=>'1f37f','portugal'=>'1f1f5-1f1f9','post_office'=>'1f3e3','postal_horn'=>'1f4ef','postbox'=>'1f4ee','potable_water'=>'1f6b0','potato'=>'1f954','pouch'=>'1f45d','poultry_leg'=>'1f357','pound'=>'1f4b7','pout'=>'1f621','pouting_cat'=>'1f63e','pouting_woman'=>'1f64e','pray'=>'1f64f','pray_tone1'=>'1f64f-1f3fb','pray_tone2'=>'1f64f-1f3fc','pray_tone3'=>'1f64f-1f3fd','pray_tone4'=>'1f64f-1f3fe','pray_tone5'=>'1f64f-1f3ff','prayer_beads'=>'1f4ff','pregnant_woman'=>'1f930','pregnant_woman_tone1'=>'1f930-1f3fb','pregnant_woman_tone2'=>'1f930-1f3fc','pregnant_woman_tone3'=>'1f930-1f3fd','pregnant_woman_tone4'=>'1f930-1f3fe','pregnant_woman_tone5'=>'1f930-1f3ff','previous_track_button'=>'23ee','prince'=>'1f934','prince_tone1'=>'1f934-1f3fb','prince_tone2'=>'1f934-1f3fc','prince_tone3'=>'1f934-1f3fd','prince_tone4'=>'1f934-1f3fe','prince_tone5'=>'1f934-1f3ff','princess'=>'1f478','princess_tone1'=>'1f478-1f3fb','princess_tone2'=>'1f478-1f3fc','princess_tone3'=>'1f478-1f3fd','princess_tone4'=>'1f478-1f3fe','princess_tone5'=>'1f478-1f3ff','printer'=>'1f5a8','projector'=>'1f4fd','puerto_rico'=>'1f1f5-1f1f7','punch'=>'1f44a','punch_tone1'=>'1f44a-1f3fb','punch_tone2'=>'1f44a-1f3fc','punch_tone3'=>'1f44a-1f3fd','punch_tone4'=>'1f44a-1f3fe','punch_tone5'=>'1f44a-1f3ff','purple_heart'=>'1f49c','purse'=>'1f45b','pushpin'=>'1f4cc','put_litter_in_its_place'=>'1f6ae','qatar'=>'1f1f6-1f1e6','question'=>'2753','rabbit'=>'1f430','rabbit2'=>'1f407','race_car'=>'1f3ce','racehorse'=>'1f40e','racing_car'=>'1f3ce','radio'=>'1f4fb','radio_button'=>'1f518','radioactive'=>'2622','rage'=>'1f621','railway_car'=>'1f683','railway_track'=>'1f6e4','rainbow'=>'1f308','rainbow_flag'=>'1f3f3-1f308','raised_back_of_hand'=>'1f91a','raised_back_of_hand_tone1'=>'1f91a-1f3fb','raised_back_of_hand_tone2'=>'1f91a-1f3fc','raised_back_of_hand_tone3'=>'1f91a-1f3fd','raised_back_of_hand_tone4'=>'1f91a-1f3fe','raised_back_of_hand_tone5'=>'1f91a-1f3ff','raised_hand'=>'270b','raised_hand_tone1'=>'270b-1f3fb','raised_hand_tone2'=>'270b-1f3fc','raised_hand_tone3'=>'270b-1f3fd','raised_hand_tone4'=>'270b-1f3fe','raised_hand_tone5'=>'270b-1f3ff','raised_hand_with_fingers_splayed'=>'1f590','raised_hands'=>'1f64c','raised_hands_tone1'=>'1f64c-1f3fb','raised_hands_tone2'=>'1f64c-1f3fc','raised_hands_tone3'=>'1f64c-1f3fd','raised_hands_tone4'=>'1f64c-1f3fe','raised_hands_tone5'=>'1f64c-1f3ff','raising_hand'=>'1f64b','raising_hand_tone1'=>'1f64b-1f3fb','raising_hand_tone2'=>'1f64b-1f3fc','raising_hand_tone3'=>'1f64b-1f3fd','raising_hand_tone4'=>'1f64b-1f3fe','raising_hand_tone5'=>'1f64b-1f3ff','raising_hand_woman'=>'1f64b','ram'=>'1f40f','ramen'=>'1f35c','rat'=>'1f400','record_button'=>'23fa','recycle'=>'267b','red_car'=>'1f697','red_circle'=>'1f534','regional_indicator_a'=>'1f1e6','regional_indicator_b'=>'1f1e7','regional_indicator_c'=>'1f1e8','regional_indicator_d'=>'1f1e9','regional_indicator_e'=>'1f1ea','regional_indicator_f'=>'1f1eb','regional_indicator_g'=>'1f1ec','regional_indicator_h'=>'1f1ed','regional_indicator_i'=>'1f1ee','regional_indicator_j'=>'1f1ef','regional_indicator_k'=>'1f1f0','regional_indicator_l'=>'1f1f1','regional_indicator_m'=>'1f1f2','regional_indicator_n'=>'1f1f3','regional_indicator_o'=>'1f1f4','regional_indicator_p'=>'1f1f5','regional_indicator_q'=>'1f1f6','regional_indicator_r'=>'1f1f7','regional_indicator_s'=>'1f1f8','regional_indicator_t'=>'1f1f9','regional_indicator_u'=>'1f1fa','regional_indicator_v'=>'1f1fb','regional_indicator_w'=>'1f1fc','regional_indicator_x'=>'1f1fd','regional_indicator_y'=>'1f1fe','regional_indicator_z'=>'1f1ff','registered'=>'00ae','relaxed'=>'263a','relieved'=>'1f60c','reminder_ribbon'=>'1f397','repeat'=>'1f501','repeat_one'=>'1f502','rescue_worker_helmet'=>'26d1','restroom'=>'1f6bb','reunion'=>'1f1f7-1f1ea','revolving_hearts'=>'1f49e','rewind'=>'23ea','rhino'=>'1f98f','ribbon'=>'1f380','rice'=>'1f35a','rice_ball'=>'1f359','rice_cracker'=>'1f358','rice_scene'=>'1f391','right_anger_bubble'=>'1f5ef','right_facing_fist'=>'1f91c','right_facing_fist_tone1'=>'1f91c-1f3fb','right_facing_fist_tone2'=>'1f91c-1f3fc','right_facing_fist_tone3'=>'1f91c-1f3fd','right_facing_fist_tone4'=>'1f91c-1f3fe','right_facing_fist_tone5'=>'1f91c-1f3ff','ring'=>'1f48d','robot'=>'1f916','rocket'=>'1f680','rofl'=>'1f923','roll_eyes'=>'1f644','roller_coaster'=>'1f3a2','rolling_eyes'=>'1f644','romania'=>'1f1f7-1f1f4','rooster'=>'1f413','rose'=>'1f339','rosette'=>'1f3f5','rotating_light'=>'1f6a8','round_pushpin'=>'1f4cd','rowboat'=>'1f6a3','rowboat_tone1'=>'1f6a3-1f3fb','rowboat_tone2'=>'1f6a3-1f3fc','rowboat_tone3'=>'1f6a3-1f3fd','rowboat_tone4'=>'1f6a3-1f3fe','rowboat_tone5'=>'1f6a3-1f3ff','rowing_man'=>'1f6a3','ru'=>'1f1f7-1f1fa','rugby_football'=>'1f3c9','runner'=>'1f3c3','runner_tone1'=>'1f3c3-1f3fb','runner_tone2'=>'1f3c3-1f3fc','runner_tone3'=>'1f3c3-1f3fd','runner_tone4'=>'1f3c3-1f3fe','runner_tone5'=>'1f3c3-1f3ff','running'=>'1f3c3','running_man'=>'1f3c3','running_shirt_with_sash'=>'1f3bd','rwanda'=>'1f1f7-1f1fc','sa'=>'1f202','sagittarius'=>'2650','sailboat'=>'26f5','sake'=>'1f376','salad'=>'1f957','samoa'=>'1f1fc-1f1f8','san_marino'=>'1f1f8-1f1f2','sandal'=>'1f461','santa'=>'1f385','santa_tone1'=>'1f385-1f3fb','santa_tone2'=>'1f385-1f3fc','santa_tone3'=>'1f385-1f3fd','santa_tone4'=>'1f385-1f3fe','santa_tone5'=>'1f385-1f3ff','sao_tome_principe'=>'1f1f8-1f1f9','satellite'=>'1f4e1','satellite_orbital'=>'1f6f0','satisfied'=>'1f606','saudi_arabia'=>'1f1f8-1f1e6','saxophone'=>'1f3b7','scales'=>'2696','school'=>'1f3eb','school_satchel'=>'1f392','scissors'=>'2702','scooter'=>'1f6f4','scorpion'=>'1f982','scorpius'=>'264f','scream'=>'1f631','scream_cat'=>'1f640','scroll'=>'1f4dc','seat'=>'1f4ba','second_place'=>'1f948','secret'=>'3299','see_no_evil'=>'1f648','seedling'=>'1f331','selfie'=>'1f933','selfie_tone1'=>'1f933-1f3fb','selfie_tone2'=>'1f933-1f3fc','selfie_tone3'=>'1f933-1f3fd','selfie_tone4'=>'1f933-1f3fe','selfie_tone5'=>'1f933-1f3ff','senegal'=>'1f1f8-1f1f3','serbia'=>'1f1f7-1f1f8','seven'=>'0037-20e3','seychelles'=>'1f1f8-1f1e8','shallow_pan_of_food'=>'1f958','shamrock'=>'2618','shark'=>'1f988','shaved_ice'=>'1f367','sheep'=>'1f411','shell'=>'1f41a','shield'=>'1f6e1','shinto_shrine'=>'26e9','ship'=>'1f6a2','shirt'=>'1f455','shit'=>'1f4a9','shoe'=>'1f45e','shopping'=>'1f6cd','shopping_bags'=>'1f6cd','shopping_cart'=>'1f6d2','shower'=>'1f6bf','shrimp'=>'1f990','shrug'=>'1f937','shrug_tone1'=>'1f937-1f3fb','shrug_tone2'=>'1f937-1f3fc','shrug_tone3'=>'1f937-1f3fd','shrug_tone4'=>'1f937-1f3fe','shrug_tone5'=>'1f937-1f3ff','sierra_leone'=>'1f1f8-1f1f1','signal_strength'=>'1f4f6','singapore'=>'1f1f8-1f1ec','sint_maarten'=>'1f1f8-1f1fd','six'=>'0036-20e3','six_pointed_star'=>'1f52f','ski'=>'1f3bf','skier'=>'26f7','skull'=>'1f480','skull_and_crossbones'=>'2620','skull_crossbones'=>'2620','sleeping'=>'1f634','sleeping_accommodation'=>'1f6cc','sleeping_bed'=>'1f6cc','sleepy'=>'1f62a','slight_frown'=>'1f641','slight_smile'=>'1f642','slightly_frowning_face'=>'1f641','slightly_smiling_face'=>'1f642','slot_machine'=>'1f3b0','slovakia'=>'1f1f8-1f1f0','slovenia'=>'1f1f8-1f1ee','small_airplane'=>'1f6e9','small_blue_diamond'=>'1f539','small_orange_diamond'=>'1f538','small_red_triangle'=>'1f53a','small_red_triangle_down'=>'1f53b','smile'=>'1f604','smile_cat'=>'1f638','smiley'=>'1f603','smiley_cat'=>'1f63a','smiling_imp'=>'1f608','smirk'=>'1f60f','smirk_cat'=>'1f63c','smoking'=>'1f6ac','snail'=>'1f40c','snake'=>'1f40d','sneezing_face'=>'1f927','snowboarder'=>'1f3c2','snowflake'=>'2744','snowman'=>'26c4','snowman2'=>'2603','snowman_with_snow'=>'2603','sob'=>'1f62d','soccer'=>'26bd','solomon_islands'=>'1f1f8-1f1e7','somalia'=>'1f1f8-1f1f4','soon'=>'1f51c','sos'=>'1f198','sound'=>'1f509','south_africa'=>'1f1ff-1f1e6','south_georgia_south_sandwich_islands'=>'1f1ec-1f1f8','south_sudan'=>'1f1f8-1f1f8','space_invader'=>'1f47e','spades'=>'2660','spaghetti'=>'1f35d','sparkle'=>'2747','sparkler'=>'1f387','sparkles'=>'2728','sparkling_heart'=>'1f496','speak_no_evil'=>'1f64a','speaker'=>'1f508','speaking_head'=>'1f5e3','speech_balloon'=>'1f4ac','speech_left'=>'1f5e8','speedboat'=>'1f6a4','spider'=>'1f577','spider_web'=>'1f578','spiral_calendar'=>'1f5d3','spiral_notepad'=>'1f5d2','spoon'=>'1f944','spy'=>'1f575','spy_tone1'=>'1f575-1f3fb','spy_tone2'=>'1f575-1f3fc','spy_tone3'=>'1f575-1f3fd','spy_tone4'=>'1f575-1f3fe','spy_tone5'=>'1f575-1f3ff','squid'=>'1f991','sri_lanka'=>'1f1f1-1f1f0','st_barthelemy'=>'1f1e7-1f1f1','st_helena'=>'1f1f8-1f1ed','st_kitts_nevis'=>'1f1f0-1f1f3','st_lucia'=>'1f1f1-1f1e8','st_pierre_miquelon'=>'1f1f5-1f1f2','st_vincent_grenadines'=>'1f1fb-1f1e8','stadium'=>'1f3df','star'=>'2b50','star2'=>'1f31f','star_and_crescent'=>'262a','star_of_david'=>'2721','stars'=>'1f320','station'=>'1f689','statue_of_liberty'=>'1f5fd','steam_locomotive'=>'1f682','stew'=>'1f372','stop_button'=>'23f9','stopwatch'=>'23f1','straight_ruler'=>'1f4cf','strawberry'=>'1f353','stuck_out_tongue'=>'1f61b','stuck_out_tongue_closed_eyes'=>'1f61d','stuck_out_tongue_winking_eye'=>'1f61c','studio_microphone'=>'1f399','stuffed_flatbread'=>'1f959','sudan'=>'1f1f8-1f1e9','sun_behind_large_cloud'=>'1f325','sun_behind_rain_cloud'=>'1f326','sun_behind_small_cloud'=>'1f324','sun_with_face'=>'1f31e','sunflower'=>'1f33b','sunglasses'=>'1f60e','sunny'=>'2600','sunrise'=>'1f305','sunrise_over_mountains'=>'1f304','surfer'=>'1f3c4','surfer_tone1'=>'1f3c4-1f3fb','surfer_tone2'=>'1f3c4-1f3fc','surfer_tone3'=>'1f3c4-1f3fd','surfer_tone4'=>'1f3c4-1f3fe','surfer_tone5'=>'1f3c4-1f3ff','surfing_man'=>'1f3c4','suriname'=>'1f1f8-1f1f7','sushi'=>'1f363','suspension_railway'=>'1f69f','swaziland'=>'1f1f8-1f1ff','sweat'=>'1f613','sweat_drops'=>'1f4a6','sweat_smile'=>'1f605','sweden'=>'1f1f8-1f1ea','sweet_potato'=>'1f360','swimmer'=>'1f3ca','swimmer_tone1'=>'1f3ca-1f3fb','swimmer_tone2'=>'1f3ca-1f3fc','swimmer_tone3'=>'1f3ca-1f3fd','swimmer_tone4'=>'1f3ca-1f3fe','swimmer_tone5'=>'1f3ca-1f3ff','swimming_man'=>'1f3ca','switzerland'=>'1f1e8-1f1ed','symbols'=>'1f523','synagogue'=>'1f54d','syria'=>'1f1f8-1f1fe','syringe'=>'1f489','taco'=>'1f32e','tada'=>'1f389','taiwan'=>'1f1f9-1f1fc','tajikistan'=>'1f1f9-1f1ef','tanabata_tree'=>'1f38b','tangerine'=>'1f34a','tanzania'=>'1f1f9-1f1ff','taurus'=>'2649','taxi'=>'1f695','tea'=>'1f375','telephone'=>'260e','telephone_receiver'=>'1f4de','telescope'=>'1f52d','tennis'=>'1f3be','tent'=>'26fa','thailand'=>'1f1f9-1f1ed','thermometer'=>'1f321','thermometer_face'=>'1f912','thinking'=>'1f914','third_place'=>'1f949','thought_balloon'=>'1f4ad','three'=>'0033-20e3','thumbsdown'=>'1f44e','thumbsdown_tone1'=>'1f44e-1f3fb','thumbsdown_tone2'=>'1f44e-1f3fc','thumbsdown_tone3'=>'1f44e-1f3fd','thumbsdown_tone4'=>'1f44e-1f3fe','thumbsdown_tone5'=>'1f44e-1f3ff','thumbsup'=>'1f44d','thumbsup_tone1'=>'1f44d-1f3fb','thumbsup_tone2'=>'1f44d-1f3fc','thumbsup_tone3'=>'1f44d-1f3fd','thumbsup_tone4'=>'1f44d-1f3fe','thumbsup_tone5'=>'1f44d-1f3ff','thunder_cloud_rain'=>'26c8','ticket'=>'1f3ab','tickets'=>'1f39f','tiger'=>'1f42f','tiger2'=>'1f405','timer'=>'23f2','timer_clock'=>'23f2','timor_leste'=>'1f1f9-1f1f1','tipping_hand_woman'=>'1f481','tired_face'=>'1f62b','tm'=>'2122','togo'=>'1f1f9-1f1ec','toilet'=>'1f6bd','tokelau'=>'1f1f9-1f1f0','tokyo_tower'=>'1f5fc','tomato'=>'1f345','tone1'=>'1f3fb','tone2'=>'1f3fc','tone3'=>'1f3fd','tone4'=>'1f3fe','tone5'=>'1f3ff','tonga'=>'1f1f9-1f1f4','tongue'=>'1f445','tools'=>'1f6e0','top'=>'1f51d','tophat'=>'1f3a9','tornado'=>'1f32a','tr'=>'1f1f9-1f1f7','track_next'=>'23ed','track_previous'=>'23ee','trackball'=>'1f5b2','tractor'=>'1f69c','traffic_light'=>'1f6a5','train'=>'1f68b','train2'=>'1f686','tram'=>'1f68a','triangular_flag_on_post'=>'1f6a9','triangular_ruler'=>'1f4d0','trident'=>'1f531','trinidad_tobago'=>'1f1f9-1f1f9','triumph'=>'1f624','trolleybus'=>'1f68e','trophy'=>'1f3c6','tropical_drink'=>'1f379','tropical_fish'=>'1f420','truck'=>'1f69a','trumpet'=>'1f3ba','tshirt'=>'1f455','tulip'=>'1f337','tumbler_glass'=>'1f943','tunisia'=>'1f1f9-1f1f3','turkey'=>'1f983','turkmenistan'=>'1f1f9-1f1f2','turks_caicos_islands'=>'1f1f9-1f1e8','turtle'=>'1f422','tuvalu'=>'1f1f9-1f1fb','tv'=>'1f4fa','twisted_rightwards_arrows'=>'1f500','two'=>'0032-20e3','two_hearts'=>'1f495','two_men_holding_hands'=>'1f46c','two_women_holding_hands'=>'1f46d','u5272'=>'1f239','u5408'=>'1f234','u55b6'=>'1f23a','u6307'=>'1f22f','u6708'=>'1f237','u6709'=>'1f236','u6e80'=>'1f235','u7121'=>'1f21a','u7533'=>'1f238','u7981'=>'1f232','u7a7a'=>'1f233','uganda'=>'1f1fa-1f1ec','uk'=>'1f1ec-1f1e7','ukraine'=>'1f1fa-1f1e6','umbrella'=>'2614','umbrella2'=>'2602','unamused'=>'1f612','underage'=>'1f51e','unicorn'=>'1f984','united_arab_emirates'=>'1f1e6-1f1ea','unlock'=>'1f513','up'=>'1f199','upside_down'=>'1f643','upside_down_face'=>'1f643','urn'=>'26b1','uruguay'=>'1f1fa-1f1fe','us'=>'1f1fa-1f1f8','us_virgin_islands'=>'1f1fb-1f1ee','uzbekistan'=>'1f1fa-1f1ff','v'=>'270c','v_tone1'=>'270c-1f3fb','v_tone2'=>'270c-1f3fc','v_tone3'=>'270c-1f3fd','v_tone4'=>'270c-1f3fe','v_tone5'=>'270c-1f3ff','vanuatu'=>'1f1fb-1f1fa','vatican_city'=>'1f1fb-1f1e6','venezuela'=>'1f1fb-1f1ea','vertical_traffic_light'=>'1f6a6','vhs'=>'1f4fc','vibration_mode'=>'1f4f3','video_camera'=>'1f4f9','video_game'=>'1f3ae','vietnam'=>'1f1fb-1f1f3','violin'=>'1f3bb','virgo'=>'264d','volcano'=>'1f30b','volleyball'=>'1f3d0','vs'=>'1f19a','vulcan'=>'1f596','vulcan_salute'=>'1f596','vulcan_tone1'=>'1f596-1f3fb','vulcan_tone2'=>'1f596-1f3fc','vulcan_tone3'=>'1f596-1f3fd','vulcan_tone4'=>'1f596-1f3fe','vulcan_tone5'=>'1f596-1f3ff','walking'=>'1f6b6','walking_man'=>'1f6b6','walking_tone1'=>'1f6b6-1f3fb','walking_tone2'=>'1f6b6-1f3fc','walking_tone3'=>'1f6b6-1f3fd','walking_tone4'=>'1f6b6-1f3fe','walking_tone5'=>'1f6b6-1f3ff','wallis_futuna'=>'1f1fc-1f1eb','waning_crescent_moon'=>'1f318','waning_gibbous_moon'=>'1f316','warning'=>'26a0','wastebasket'=>'1f5d1','watch'=>'231a','water_buffalo'=>'1f403','water_polo'=>'1f93d','water_polo_tone1'=>'1f93d-1f3fb','water_polo_tone2'=>'1f93d-1f3fc','water_polo_tone3'=>'1f93d-1f3fd','water_polo_tone4'=>'1f93d-1f3fe','water_polo_tone5'=>'1f93d-1f3ff','watermelon'=>'1f349','wave'=>'1f44b','wave_tone1'=>'1f44b-1f3fb','wave_tone2'=>'1f44b-1f3fc','wave_tone3'=>'1f44b-1f3fd','wave_tone4'=>'1f44b-1f3fe','wave_tone5'=>'1f44b-1f3ff','wavy_dash'=>'3030','waxing_crescent_moon'=>'1f312','waxing_gibbous_moon'=>'1f314','wc'=>'1f6be','weary'=>'1f629','wedding'=>'1f492','weight_lifting_man'=>'1f3cb','western_sahara'=>'1f1ea-1f1ed','whale'=>'1f433','whale2'=>'1f40b','wheel_of_dharma'=>'2638','wheelchair'=>'267f','white_check_mark'=>'2705','white_circle'=>'26aa','white_flag'=>'1f3f3','white_flower'=>'1f4ae','white_large_square'=>'2b1c','white_medium_small_square'=>'25fd','white_medium_square'=>'25fb','white_small_square'=>'25ab','white_square_button'=>'1f533','white_sun_cloud'=>'1f325','white_sun_rain_cloud'=>'1f326','white_sun_small_cloud'=>'1f324','wilted_rose'=>'1f940','wind_blowing_face'=>'1f32c','wind_chime'=>'1f390','wind_face'=>'1f32c','wine_glass'=>'1f377','wink'=>'1f609','wolf'=>'1f43a','woman'=>'1f469','woman_tone1'=>'1f469-1f3fb','woman_tone2'=>'1f469-1f3fc','woman_tone3'=>'1f469-1f3fd','woman_tone4'=>'1f469-1f3fe','woman_tone5'=>'1f469-1f3ff','womans_clothes'=>'1f45a','womans_hat'=>'1f452','womens'=>'1f6ba','world_map'=>'1f5fa','worried'=>'1f61f','wrench'=>'1f527','wrestlers'=>'1f93c','wrestlers_tone1'=>'1f93c-1f3fb','wrestlers_tone2'=>'1f93c-1f3fc','wrestlers_tone3'=>'1f93c-1f3fd','wrestlers_tone4'=>'1f93c-1f3fe','wrestlers_tone5'=>'1f93c-1f3ff','writing_hand'=>'270d','writing_hand_tone1'=>'270d-1f3fb','writing_hand_tone2'=>'270d-1f3fc','writing_hand_tone3'=>'270d-1f3fd','writing_hand_tone4'=>'270d-1f3fe','writing_hand_tone5'=>'270d-1f3ff','x'=>'274c','yellow_heart'=>'1f49b','yemen'=>'1f1fe-1f1ea','yen'=>'1f4b4','yin_yang'=>'262f','yum'=>'1f60b','zambia'=>'1f1ff-1f1f2','zap'=>'26a1','zero'=>'0030-20e3','zimbabwe'=>'1f1ff-1f1fc','zipper_mouth'=>'1f910','zipper_mouth_face'=>'1f910','zzz'=>'1f4a4');
+	protected static $map = array('+1'=>'1f44d','-1'=>'1f44e','100'=>'1f4af','1234'=>'1f522','8ball'=>'1f3b1','a'=>'1f170','ab'=>'1f18e','abc'=>'1f524','abcd'=>'1f521','accept'=>'1f251','aerial_tramway'=>'1f6a1','afghanistan'=>'1f1e6-1f1eb','airplane'=>'2708','airplane_arriving'=>'1f6ec','airplane_departure'=>'1f6eb','airplane_small'=>'1f6e9','aland_islands'=>'1f1e6-1f1fd','alarm_clock'=>'23f0','albania'=>'1f1e6-1f1f1','alembic'=>'2697','algeria'=>'1f1e9-1f1ff','alien'=>'1f47d','ambulance'=>'1f691','american_samoa'=>'1f1e6-1f1f8','amphora'=>'1f3fa','anchor'=>'2693','andorra'=>'1f1e6-1f1e9','angel'=>'1f47c','angel_tone1'=>'1f47c-1f3fb','angel_tone2'=>'1f47c-1f3fc','angel_tone3'=>'1f47c-1f3fd','angel_tone4'=>'1f47c-1f3fe','angel_tone5'=>'1f47c-1f3ff','anger'=>'1f4a2','anger_right'=>'1f5ef','angola'=>'1f1e6-1f1f4','angry'=>'1f620','anguilla'=>'1f1e6-1f1ee','anguished'=>'1f627','ant'=>'1f41c','antarctica'=>'1f1e6-1f1f6','antigua_barbuda'=>'1f1e6-1f1ec','apple'=>'1f34e','aquarius'=>'2652','argentina'=>'1f1e6-1f1f7','aries'=>'2648','armenia'=>'1f1e6-1f1f2','arrow_backward'=>'25c0','arrow_double_down'=>'23ec','arrow_double_up'=>'23eb','arrow_down'=>'2b07','arrow_down_small'=>'1f53d','arrow_forward'=>'25b6','arrow_heading_down'=>'2935','arrow_heading_up'=>'2934','arrow_left'=>'2b05','arrow_lower_left'=>'2199','arrow_lower_right'=>'2198','arrow_right'=>'27a1','arrow_right_hook'=>'21aa','arrow_up'=>'2b06','arrow_up_down'=>'2195','arrow_up_small'=>'1f53c','arrow_upper_left'=>'2196','arrow_upper_right'=>'2197','arrows_clockwise'=>'1f503','arrows_counterclockwise'=>'1f504','art'=>'1f3a8','articulated_lorry'=>'1f69b','artificial_satellite'=>'1f6f0','aruba'=>'1f1e6-1f1fc','asterisk'=>'002a-20e3','astonished'=>'1f632','athletic_shoe'=>'1f45f','atm'=>'1f3e7','atom'=>'269b','atom_symbol'=>'269b','australia'=>'1f1e6-1f1fa','austria'=>'1f1e6-1f1f9','avocado'=>'1f951','azerbaijan'=>'1f1e6-1f1ff','b'=>'1f171','baby'=>'1f476','baby_bottle'=>'1f37c','baby_chick'=>'1f424','baby_symbol'=>'1f6bc','baby_tone1'=>'1f476-1f3fb','baby_tone2'=>'1f476-1f3fc','baby_tone3'=>'1f476-1f3fd','baby_tone4'=>'1f476-1f3fe','baby_tone5'=>'1f476-1f3ff','back'=>'1f519','bacon'=>'1f953','badminton'=>'1f3f8','baggage_claim'=>'1f6c4','bahamas'=>'1f1e7-1f1f8','bahrain'=>'1f1e7-1f1ed','balance_scale'=>'2696','balloon'=>'1f388','ballot_box'=>'1f5f3','ballot_box_with_check'=>'2611','bamboo'=>'1f38d','banana'=>'1f34c','bangbang'=>'203c','bangladesh'=>'1f1e7-1f1e9','bank'=>'1f3e6','bar_chart'=>'1f4ca','barbados'=>'1f1e7-1f1e7','barber'=>'1f488','baseball'=>'26be','basketball'=>'1f3c0','basketball_man'=>'26f9','basketball_player'=>'26f9','basketball_player_tone1'=>'26f9-1f3fb','basketball_player_tone2'=>'26f9-1f3fc','basketball_player_tone3'=>'26f9-1f3fd','basketball_player_tone4'=>'26f9-1f3fe','basketball_player_tone5'=>'26f9-1f3ff','bat'=>'1f987','bath'=>'1f6c0','bath_tone1'=>'1f6c0-1f3fb','bath_tone2'=>'1f6c0-1f3fc','bath_tone3'=>'1f6c0-1f3fd','bath_tone4'=>'1f6c0-1f3fe','bath_tone5'=>'1f6c0-1f3ff','bathtub'=>'1f6c1','battery'=>'1f50b','beach'=>'1f3d6','beach_umbrella'=>'26f1','bear'=>'1f43b','bed'=>'1f6cf','bee'=>'1f41d','beer'=>'1f37a','beers'=>'1f37b','beetle'=>'1f41e','beginner'=>'1f530','belarus'=>'1f1e7-1f1fe','belgium'=>'1f1e7-1f1ea','belize'=>'1f1e7-1f1ff','bell'=>'1f514','bellhop'=>'1f6ce','bellhop_bell'=>'1f6ce','benin'=>'1f1e7-1f1ef','bento'=>'1f371','bermuda'=>'1f1e7-1f1f2','bhutan'=>'1f1e7-1f1f9','bicyclist'=>'1f6b4','bicyclist_tone1'=>'1f6b4-1f3fb','bicyclist_tone2'=>'1f6b4-1f3fc','bicyclist_tone3'=>'1f6b4-1f3fd','bicyclist_tone4'=>'1f6b4-1f3fe','bicyclist_tone5'=>'1f6b4-1f3ff','bike'=>'1f6b2','biking_man'=>'1f6b4','bikini'=>'1f459','biohazard'=>'2623','bird'=>'1f426','birthday'=>'1f382','black_circle'=>'26ab','black_flag'=>'1f3f4','black_heart'=>'1f5a4','black_joker'=>'1f0cf','black_large_square'=>'2b1b','black_medium_small_square'=>'25fe','black_medium_square'=>'25fc','black_nib'=>'2712','black_small_square'=>'25aa','black_square_button'=>'1f532','blonde_man'=>'1f471','blossom'=>'1f33c','blowfish'=>'1f421','blue_book'=>'1f4d8','blue_car'=>'1f699','blue_circle'=>'1f535','blue_heart'=>'1f499','blush'=>'1f60a','boar'=>'1f417','boat'=>'26f5','bolivia'=>'1f1e7-1f1f4','bomb'=>'1f4a3','book'=>'1f4d6','bookmark'=>'1f516','bookmark_tabs'=>'1f4d1','books'=>'1f4da','boom'=>'1f4a5','boot'=>'1f462','bosnia_herzegovina'=>'1f1e7-1f1e6','botswana'=>'1f1e7-1f1fc','bouquet'=>'1f490','bow'=>'1f647','bow_and_arrow'=>'1f3f9','bow_tone1'=>'1f647-1f3fb','bow_tone2'=>'1f647-1f3fc','bow_tone3'=>'1f647-1f3fd','bow_tone4'=>'1f647-1f3fe','bow_tone5'=>'1f647-1f3ff','bowing_man'=>'1f647','bowling'=>'1f3b3','boxing_glove'=>'1f94a','boy'=>'1f466','boy_tone1'=>'1f466-1f3fb','boy_tone2'=>'1f466-1f3fc','boy_tone3'=>'1f466-1f3fd','boy_tone4'=>'1f466-1f3fe','boy_tone5'=>'1f466-1f3ff','brazil'=>'1f1e7-1f1f7','bread'=>'1f35e','bride_with_veil'=>'1f470','bride_with_veil_tone1'=>'1f470-1f3fb','bride_with_veil_tone2'=>'1f470-1f3fc','bride_with_veil_tone3'=>'1f470-1f3fd','bride_with_veil_tone4'=>'1f470-1f3fe','bride_with_veil_tone5'=>'1f470-1f3ff','bridge_at_night'=>'1f309','briefcase'=>'1f4bc','british_indian_ocean_territory'=>'1f1ee-1f1f4','british_virgin_islands'=>'1f1fb-1f1ec','broken_heart'=>'1f494','brunei'=>'1f1e7-1f1f3','bug'=>'1f41b','building_construction'=>'1f3d7','bulb'=>'1f4a1','bulgaria'=>'1f1e7-1f1ec','bullettrain_front'=>'1f685','bullettrain_side'=>'1f684','burkina_faso'=>'1f1e7-1f1eb','burrito'=>'1f32f','burundi'=>'1f1e7-1f1ee','bus'=>'1f68c','business_suit_levitating'=>'1f574','busstop'=>'1f68f','bust_in_silhouette'=>'1f464','busts_in_silhouette'=>'1f465','butterfly'=>'1f98b','cactus'=>'1f335','cake'=>'1f370','calendar'=>'1f4c6','calendar_spiral'=>'1f5d3','call_me'=>'1f919','call_me_tone1'=>'1f919-1f3fb','call_me_tone2'=>'1f919-1f3fc','call_me_tone3'=>'1f919-1f3fd','call_me_tone4'=>'1f919-1f3fe','call_me_tone5'=>'1f919-1f3ff','calling'=>'1f4f2','cambodia'=>'1f1f0-1f1ed','camel'=>'1f42b','camera'=>'1f4f7','camera_flash'=>'1f4f8','camera_with_flash'=>'1f4f8','cameroon'=>'1f1e8-1f1f2','camping'=>'1f3d5','canada'=>'1f1e8-1f1e6','canary_islands'=>'1f1ee-1f1e8','cancer'=>'264b','candle'=>'1f56f','candy'=>'1f36c','canoe'=>'1f6f6','cape_verde'=>'1f1e8-1f1fb','capital_abcd'=>'1f520','capricorn'=>'2651','car'=>'1f697','card_box'=>'1f5c3','card_file_box'=>'1f5c3','card_index'=>'1f4c7','card_index_dividers'=>'1f5c2','caribbean_netherlands'=>'1f1e7-1f1f6','carousel_horse'=>'1f3a0','carrot'=>'1f955','cartwheel'=>'1f938','cartwheel_tone1'=>'1f938-1f3fb','cartwheel_tone2'=>'1f938-1f3fc','cartwheel_tone3'=>'1f938-1f3fd','cartwheel_tone4'=>'1f938-1f3fe','cartwheel_tone5'=>'1f938-1f3ff','cat'=>'1f431','cat2'=>'1f408','cayman_islands'=>'1f1f0-1f1fe','cd'=>'1f4bf','central_african_republic'=>'1f1e8-1f1eb','chad'=>'1f1f9-1f1e9','chains'=>'26d3','champagne'=>'1f37e','champagne_glass'=>'1f942','chart'=>'1f4b9','chart_with_downwards_trend'=>'1f4c9','chart_with_upwards_trend'=>'1f4c8','checkered_flag'=>'1f3c1','cheese'=>'1f9c0','cherries'=>'1f352','cherry_blossom'=>'1f338','chestnut'=>'1f330','chicken'=>'1f414','children_crossing'=>'1f6b8','chile'=>'1f1e8-1f1f1','chipmunk'=>'1f43f','chocolate_bar'=>'1f36b','christmas_island'=>'1f1e8-1f1fd','christmas_tree'=>'1f384','church'=>'26ea','cinema'=>'1f3a6','circus_tent'=>'1f3aa','city_dusk'=>'1f306','city_sunrise'=>'1f307','city_sunset'=>'1f307','cityscape'=>'1f3d9','cl'=>'1f191','clamp'=>'1f5dc','clap'=>'1f44f','clap_tone1'=>'1f44f-1f3fb','clap_tone2'=>'1f44f-1f3fc','clap_tone3'=>'1f44f-1f3fd','clap_tone4'=>'1f44f-1f3fe','clap_tone5'=>'1f44f-1f3ff','clapper'=>'1f3ac','classical_building'=>'1f3db','clipboard'=>'1f4cb','clock'=>'1f570','clock1'=>'1f550','clock10'=>'1f559','clock1030'=>'1f565','clock11'=>'1f55a','clock1130'=>'1f566','clock12'=>'1f55b','clock1230'=>'1f567','clock130'=>'1f55c','clock2'=>'1f551','clock230'=>'1f55d','clock3'=>'1f552','clock330'=>'1f55e','clock4'=>'1f553','clock430'=>'1f55f','clock5'=>'1f554','clock530'=>'1f560','clock6'=>'1f555','clock630'=>'1f561','clock7'=>'1f556','clock730'=>'1f562','clock8'=>'1f557','clock830'=>'1f563','clock9'=>'1f558','clock930'=>'1f564','closed_book'=>'1f4d5','closed_lock_with_key'=>'1f510','closed_umbrella'=>'1f302','cloud'=>'2601','cloud_lightning'=>'1f329','cloud_rain'=>'1f327','cloud_snow'=>'1f328','cloud_tornado'=>'1f32a','cloud_with_lightning'=>'1f329','cloud_with_lightning_and_rain'=>'26c8','cloud_with_rain'=>'1f327','cloud_with_snow'=>'1f328','clown'=>'1f921','clubs'=>'2663','cn'=>'1f1e8-1f1f3','cocktail'=>'1f378','cocos_islands'=>'1f1e8-1f1e8','coffee'=>'2615','coffin'=>'26b0','cold_sweat'=>'1f630','collision'=>'1f4a5','colombia'=>'1f1e8-1f1f4','comet'=>'2604','comoros'=>'1f1f0-1f1f2','compression'=>'1f5dc','computer'=>'1f4bb','computer_mouse'=>'1f5b1','confetti_ball'=>'1f38a','confounded'=>'1f616','confused'=>'1f615','congo_brazzaville'=>'1f1e8-1f1ec','congo_kinshasa'=>'1f1e8-1f1e9','congratulations'=>'3297','construction'=>'1f6a7','construction_site'=>'1f3d7','construction_worker'=>'1f477','construction_worker_man'=>'1f477','construction_worker_tone1'=>'1f477-1f3fb','construction_worker_tone2'=>'1f477-1f3fc','construction_worker_tone3'=>'1f477-1f3fd','construction_worker_tone4'=>'1f477-1f3fe','construction_worker_tone5'=>'1f477-1f3ff','control_knobs'=>'1f39b','convenience_store'=>'1f3ea','cook_islands'=>'1f1e8-1f1f0','cookie'=>'1f36a','cooking'=>'1f373','cool'=>'1f192','cop'=>'1f46e','cop_tone1'=>'1f46e-1f3fb','cop_tone2'=>'1f46e-1f3fc','cop_tone3'=>'1f46e-1f3fd','cop_tone4'=>'1f46e-1f3fe','cop_tone5'=>'1f46e-1f3ff','copyright'=>'00a9','corn'=>'1f33d','costa_rica'=>'1f1e8-1f1f7','cote_divoire'=>'1f1e8-1f1ee','couch'=>'1f6cb','couch_and_lamp'=>'1f6cb','couple'=>'1f46b','couple_mm'=>'1f468-2764-1f468','couple_with_heart'=>'1f491','couple_with_heart_man_man'=>'1f468-2764-1f468','couple_with_heart_woman_man'=>'1f491','couple_with_heart_woman_woman'=>'1f469-2764-1f469','couple_ww'=>'1f469-2764-1f469','couplekiss'=>'1f48f','couplekiss_man_man'=>'1f468-2764-1f48b-1f468','couplekiss_man_woman'=>'1f48f','couplekiss_woman_woman'=>'1f469-2764-1f48b-1f469','cow'=>'1f42e','cow2'=>'1f404','cowboy'=>'1f920','crab'=>'1f980','crayon'=>'1f58d','credit_card'=>'1f4b3','crescent_moon'=>'1f319','cricket'=>'1f3cf','croatia'=>'1f1ed-1f1f7','crocodile'=>'1f40a','croissant'=>'1f950','cross'=>'271d','crossed_flags'=>'1f38c','crossed_swords'=>'2694','crown'=>'1f451','cruise_ship'=>'1f6f3','cry'=>'1f622','crying_cat_face'=>'1f63f','crystal_ball'=>'1f52e','cuba'=>'1f1e8-1f1fa','cucumber'=>'1f952','cupid'=>'1f498','curacao'=>'1f1e8-1f1fc','curly_loop'=>'27b0','currency_exchange'=>'1f4b1','curry'=>'1f35b','custard'=>'1f36e','customs'=>'1f6c3','cyclone'=>'1f300','cyprus'=>'1f1e8-1f1fe','czech_republic'=>'1f1e8-1f1ff','dagger'=>'1f5e1','dancer'=>'1f483','dancer_tone1'=>'1f483-1f3fb','dancer_tone2'=>'1f483-1f3fc','dancer_tone3'=>'1f483-1f3fd','dancer_tone4'=>'1f483-1f3fe','dancer_tone5'=>'1f483-1f3ff','dancers'=>'1f46f','dancing_women'=>'1f46f','dango'=>'1f361','dark_sunglasses'=>'1f576','dart'=>'1f3af','dash'=>'1f4a8','date'=>'1f4c5','de'=>'1f1e9-1f1ea','deciduous_tree'=>'1f333','deer'=>'1f98c','denmark'=>'1f1e9-1f1f0','department_store'=>'1f3ec','derelict_house'=>'1f3da','desert'=>'1f3dc','desert_island'=>'1f3dd','desktop'=>'1f5a5','desktop_computer'=>'1f5a5','detective'=>'1f575','diamond_shape_with_a_dot_inside'=>'1f4a0','diamonds'=>'2666','disappointed'=>'1f61e','disappointed_relieved'=>'1f625','dividers'=>'1f5c2','dizzy'=>'1f4ab','dizzy_face'=>'1f635','djibouti'=>'1f1e9-1f1ef','do_not_litter'=>'1f6af','dog'=>'1f436','dog2'=>'1f415','dollar'=>'1f4b5','dolls'=>'1f38e','dolphin'=>'1f42c','dominica'=>'1f1e9-1f1f2','dominican_republic'=>'1f1e9-1f1f4','door'=>'1f6aa','doughnut'=>'1f369','dove'=>'1f54a','dragon'=>'1f409','dragon_face'=>'1f432','dress'=>'1f457','dromedary_camel'=>'1f42a','drooling_face'=>'1f924','droplet'=>'1f4a7','drum'=>'1f941','duck'=>'1f986','dvd'=>'1f4c0','e-mail'=>'1f4e7','eagle'=>'1f985','ear'=>'1f442','ear_of_rice'=>'1f33e','ear_tone1'=>'1f442-1f3fb','ear_tone2'=>'1f442-1f3fc','ear_tone3'=>'1f442-1f3fd','ear_tone4'=>'1f442-1f3fe','ear_tone5'=>'1f442-1f3ff','earth_africa'=>'1f30d','earth_americas'=>'1f30e','earth_asia'=>'1f30f','ecuador'=>'1f1ea-1f1e8','egg'=>'1f95a','eggplant'=>'1f346','egypt'=>'1f1ea-1f1ec','eight'=>'0038-20e3','eight_pointed_black_star'=>'2734','eight_spoked_asterisk'=>'2733','eject'=>'23cf','el_salvador'=>'1f1f8-1f1fb','electric_plug'=>'1f50c','elephant'=>'1f418','email'=>'2709','end'=>'1f51a','envelope'=>'2709','envelope_with_arrow'=>'1f4e9','equatorial_guinea'=>'1f1ec-1f1f6','eritrea'=>'1f1ea-1f1f7','es'=>'1f1ea-1f1f8','estonia'=>'1f1ea-1f1ea','ethiopia'=>'1f1ea-1f1f9','eu'=>'1f1ea-1f1fa','euro'=>'1f4b6','european_castle'=>'1f3f0','european_post_office'=>'1f3e4','european_union'=>'1f1ea-1f1fa','evergreen_tree'=>'1f332','exclamation'=>'2757','expressionless'=>'1f611','eye'=>'1f441','eye_in_speech_bubble'=>'1f441-1f5e8','eye_speech_bubble'=>'1f441-1f5e8','eyeglasses'=>'1f453','eyes'=>'1f440','face_palm'=>'1f926','face_palm_tone1'=>'1f926-1f3fb','face_palm_tone2'=>'1f926-1f3fc','face_palm_tone3'=>'1f926-1f3fd','face_palm_tone4'=>'1f926-1f3fe','face_palm_tone5'=>'1f926-1f3ff','face_with_head_bandage'=>'1f915','face_with_thermometer'=>'1f912','facepunch'=>'1f44a','factory'=>'1f3ed','falkland_islands'=>'1f1eb-1f1f0','fallen_leaf'=>'1f342','family'=>'1f46a','family_man_man_boy'=>'1f468-1f468-1f466','family_man_man_boy_boy'=>'1f468-1f468-1f466-1f466','family_man_man_girl'=>'1f468-1f468-1f467','family_man_man_girl_boy'=>'1f468-1f468-1f467-1f466','family_man_man_girl_girl'=>'1f468-1f468-1f467-1f467','family_man_woman_boy'=>'1f46a','family_man_woman_boy_boy'=>'1f468-1f469-1f466-1f466','family_man_woman_girl'=>'1f468-1f469-1f467','family_man_woman_girl_boy'=>'1f468-1f469-1f467-1f466','family_man_woman_girl_girl'=>'1f468-1f469-1f467-1f467','family_mmb'=>'1f468-1f468-1f466','family_mmbb'=>'1f468-1f468-1f466-1f466','family_mmg'=>'1f468-1f468-1f467','family_mmgb'=>'1f468-1f468-1f467-1f466','family_mmgg'=>'1f468-1f468-1f467-1f467','family_mwbb'=>'1f468-1f469-1f466-1f466','family_mwg'=>'1f468-1f469-1f467','family_mwgb'=>'1f468-1f469-1f467-1f466','family_mwgg'=>'1f468-1f469-1f467-1f467','family_woman_woman_boy'=>'1f469-1f469-1f466','family_woman_woman_boy_boy'=>'1f469-1f469-1f466-1f466','family_woman_woman_girl'=>'1f469-1f469-1f467','family_woman_woman_girl_boy'=>'1f469-1f469-1f467-1f466','family_woman_woman_girl_girl'=>'1f469-1f469-1f467-1f467','family_wwb'=>'1f469-1f469-1f466','family_wwbb'=>'1f469-1f469-1f466-1f466','family_wwg'=>'1f469-1f469-1f467','family_wwgb'=>'1f469-1f469-1f467-1f466','family_wwgg'=>'1f469-1f469-1f467-1f467','faroe_islands'=>'1f1eb-1f1f4','fast_forward'=>'23e9','fax'=>'1f4e0','fearful'=>'1f628','feet'=>'1f43e','fencer'=>'1f93a','ferris_wheel'=>'1f3a1','ferry'=>'26f4','field_hockey'=>'1f3d1','fiji'=>'1f1eb-1f1ef','file_cabinet'=>'1f5c4','file_folder'=>'1f4c1','film_frames'=>'1f39e','film_projector'=>'1f4fd','film_strip'=>'1f39e','fingers_crossed'=>'1f91e','fingers_crossed_tone1'=>'1f91e-1f3fb','fingers_crossed_tone2'=>'1f91e-1f3fc','fingers_crossed_tone3'=>'1f91e-1f3fd','fingers_crossed_tone4'=>'1f91e-1f3fe','fingers_crossed_tone5'=>'1f91e-1f3ff','finland'=>'1f1eb-1f1ee','fire'=>'1f525','fire_engine'=>'1f692','fireworks'=>'1f386','first_place'=>'1f947','first_quarter_moon'=>'1f313','first_quarter_moon_with_face'=>'1f31b','fish'=>'1f41f','fish_cake'=>'1f365','fishing_pole_and_fish'=>'1f3a3','fist'=>'270a','fist_tone1'=>'270a-1f3fb','fist_tone2'=>'270a-1f3fc','fist_tone3'=>'270a-1f3fd','fist_tone4'=>'270a-1f3fe','fist_tone5'=>'270a-1f3ff','five'=>'0035-20e3','flag_ac'=>'1f1e6-1f1e8','flag_ad'=>'1f1e6-1f1e9','flag_ae'=>'1f1e6-1f1ea','flag_af'=>'1f1e6-1f1eb','flag_ag'=>'1f1e6-1f1ec','flag_ai'=>'1f1e6-1f1ee','flag_al'=>'1f1e6-1f1f1','flag_am'=>'1f1e6-1f1f2','flag_ao'=>'1f1e6-1f1f4','flag_aq'=>'1f1e6-1f1f6','flag_ar'=>'1f1e6-1f1f7','flag_as'=>'1f1e6-1f1f8','flag_at'=>'1f1e6-1f1f9','flag_au'=>'1f1e6-1f1fa','flag_aw'=>'1f1e6-1f1fc','flag_ax'=>'1f1e6-1f1fd','flag_az'=>'1f1e6-1f1ff','flag_ba'=>'1f1e7-1f1e6','flag_bb'=>'1f1e7-1f1e7','flag_bd'=>'1f1e7-1f1e9','flag_be'=>'1f1e7-1f1ea','flag_bf'=>'1f1e7-1f1eb','flag_bg'=>'1f1e7-1f1ec','flag_bh'=>'1f1e7-1f1ed','flag_bi'=>'1f1e7-1f1ee','flag_bj'=>'1f1e7-1f1ef','flag_bl'=>'1f1e7-1f1f1','flag_black'=>'1f3f4','flag_bm'=>'1f1e7-1f1f2','flag_bn'=>'1f1e7-1f1f3','flag_bo'=>'1f1e7-1f1f4','flag_bq'=>'1f1e7-1f1f6','flag_br'=>'1f1e7-1f1f7','flag_bs'=>'1f1e7-1f1f8','flag_bt'=>'1f1e7-1f1f9','flag_bv'=>'1f1e7-1f1fb','flag_bw'=>'1f1e7-1f1fc','flag_by'=>'1f1e7-1f1fe','flag_bz'=>'1f1e7-1f1ff','flag_ca'=>'1f1e8-1f1e6','flag_cc'=>'1f1e8-1f1e8','flag_cd'=>'1f1e8-1f1e9','flag_cf'=>'1f1e8-1f1eb','flag_cg'=>'1f1e8-1f1ec','flag_ch'=>'1f1e8-1f1ed','flag_ci'=>'1f1e8-1f1ee','flag_ck'=>'1f1e8-1f1f0','flag_cl'=>'1f1e8-1f1f1','flag_cm'=>'1f1e8-1f1f2','flag_cn'=>'1f1e8-1f1f3','flag_co'=>'1f1e8-1f1f4','flag_cp'=>'1f1e8-1f1f5','flag_cr'=>'1f1e8-1f1f7','flag_cu'=>'1f1e8-1f1fa','flag_cv'=>'1f1e8-1f1fb','flag_cw'=>'1f1e8-1f1fc','flag_cx'=>'1f1e8-1f1fd','flag_cy'=>'1f1e8-1f1fe','flag_cz'=>'1f1e8-1f1ff','flag_de'=>'1f1e9-1f1ea','flag_dg'=>'1f1e9-1f1ec','flag_dj'=>'1f1e9-1f1ef','flag_dk'=>'1f1e9-1f1f0','flag_dm'=>'1f1e9-1f1f2','flag_do'=>'1f1e9-1f1f4','flag_dz'=>'1f1e9-1f1ff','flag_ea'=>'1f1ea-1f1e6','flag_ec'=>'1f1ea-1f1e8','flag_ee'=>'1f1ea-1f1ea','flag_eg'=>'1f1ea-1f1ec','flag_eh'=>'1f1ea-1f1ed','flag_er'=>'1f1ea-1f1f7','flag_es'=>'1f1ea-1f1f8','flag_et'=>'1f1ea-1f1f9','flag_eu'=>'1f1ea-1f1fa','flag_fi'=>'1f1eb-1f1ee','flag_fj'=>'1f1eb-1f1ef','flag_fk'=>'1f1eb-1f1f0','flag_fm'=>'1f1eb-1f1f2','flag_fo'=>'1f1eb-1f1f4','flag_fr'=>'1f1eb-1f1f7','flag_ga'=>'1f1ec-1f1e6','flag_gb'=>'1f1ec-1f1e7','flag_gd'=>'1f1ec-1f1e9','flag_ge'=>'1f1ec-1f1ea','flag_gf'=>'1f1ec-1f1eb','flag_gg'=>'1f1ec-1f1ec','flag_gh'=>'1f1ec-1f1ed','flag_gi'=>'1f1ec-1f1ee','flag_gl'=>'1f1ec-1f1f1','flag_gm'=>'1f1ec-1f1f2','flag_gn'=>'1f1ec-1f1f3','flag_gp'=>'1f1ec-1f1f5','flag_gq'=>'1f1ec-1f1f6','flag_gr'=>'1f1ec-1f1f7','flag_gs'=>'1f1ec-1f1f8','flag_gt'=>'1f1ec-1f1f9','flag_gu'=>'1f1ec-1f1fa','flag_gw'=>'1f1ec-1f1fc','flag_gy'=>'1f1ec-1f1fe','flag_hk'=>'1f1ed-1f1f0','flag_hm'=>'1f1ed-1f1f2','flag_hn'=>'1f1ed-1f1f3','flag_hr'=>'1f1ed-1f1f7','flag_ht'=>'1f1ed-1f1f9','flag_hu'=>'1f1ed-1f1fa','flag_ic'=>'1f1ee-1f1e8','flag_id'=>'1f1ee-1f1e9','flag_ie'=>'1f1ee-1f1ea','flag_il'=>'1f1ee-1f1f1','flag_im'=>'1f1ee-1f1f2','flag_in'=>'1f1ee-1f1f3','flag_io'=>'1f1ee-1f1f4','flag_iq'=>'1f1ee-1f1f6','flag_ir'=>'1f1ee-1f1f7','flag_is'=>'1f1ee-1f1f8','flag_it'=>'1f1ee-1f1f9','flag_je'=>'1f1ef-1f1ea','flag_jm'=>'1f1ef-1f1f2','flag_jo'=>'1f1ef-1f1f4','flag_jp'=>'1f1ef-1f1f5','flag_ke'=>'1f1f0-1f1ea','flag_kg'=>'1f1f0-1f1ec','flag_kh'=>'1f1f0-1f1ed','flag_ki'=>'1f1f0-1f1ee','flag_km'=>'1f1f0-1f1f2','flag_kn'=>'1f1f0-1f1f3','flag_kp'=>'1f1f0-1f1f5','flag_kr'=>'1f1f0-1f1f7','flag_kw'=>'1f1f0-1f1fc','flag_ky'=>'1f1f0-1f1fe','flag_kz'=>'1f1f0-1f1ff','flag_la'=>'1f1f1-1f1e6','flag_lb'=>'1f1f1-1f1e7','flag_lc'=>'1f1f1-1f1e8','flag_li'=>'1f1f1-1f1ee','flag_lk'=>'1f1f1-1f1f0','flag_lr'=>'1f1f1-1f1f7','flag_ls'=>'1f1f1-1f1f8','flag_lt'=>'1f1f1-1f1f9','flag_lu'=>'1f1f1-1f1fa','flag_lv'=>'1f1f1-1f1fb','flag_ly'=>'1f1f1-1f1fe','flag_ma'=>'1f1f2-1f1e6','flag_mc'=>'1f1f2-1f1e8','flag_md'=>'1f1f2-1f1e9','flag_me'=>'1f1f2-1f1ea','flag_mf'=>'1f1f2-1f1eb','flag_mg'=>'1f1f2-1f1ec','flag_mh'=>'1f1f2-1f1ed','flag_mk'=>'1f1f2-1f1f0','flag_ml'=>'1f1f2-1f1f1','flag_mm'=>'1f1f2-1f1f2','flag_mn'=>'1f1f2-1f1f3','flag_mo'=>'1f1f2-1f1f4','flag_mp'=>'1f1f2-1f1f5','flag_mq'=>'1f1f2-1f1f6','flag_mr'=>'1f1f2-1f1f7','flag_ms'=>'1f1f2-1f1f8','flag_mt'=>'1f1f2-1f1f9','flag_mu'=>'1f1f2-1f1fa','flag_mv'=>'1f1f2-1f1fb','flag_mw'=>'1f1f2-1f1fc','flag_mx'=>'1f1f2-1f1fd','flag_my'=>'1f1f2-1f1fe','flag_mz'=>'1f1f2-1f1ff','flag_na'=>'1f1f3-1f1e6','flag_nc'=>'1f1f3-1f1e8','flag_ne'=>'1f1f3-1f1ea','flag_nf'=>'1f1f3-1f1eb','flag_ng'=>'1f1f3-1f1ec','flag_ni'=>'1f1f3-1f1ee','flag_nl'=>'1f1f3-1f1f1','flag_no'=>'1f1f3-1f1f4','flag_np'=>'1f1f3-1f1f5','flag_nr'=>'1f1f3-1f1f7','flag_nu'=>'1f1f3-1f1fa','flag_nz'=>'1f1f3-1f1ff','flag_om'=>'1f1f4-1f1f2','flag_pa'=>'1f1f5-1f1e6','flag_pe'=>'1f1f5-1f1ea','flag_pf'=>'1f1f5-1f1eb','flag_pg'=>'1f1f5-1f1ec','flag_ph'=>'1f1f5-1f1ed','flag_pk'=>'1f1f5-1f1f0','flag_pl'=>'1f1f5-1f1f1','flag_pm'=>'1f1f5-1f1f2','flag_pn'=>'1f1f5-1f1f3','flag_pr'=>'1f1f5-1f1f7','flag_ps'=>'1f1f5-1f1f8','flag_pt'=>'1f1f5-1f1f9','flag_pw'=>'1f1f5-1f1fc','flag_py'=>'1f1f5-1f1fe','flag_qa'=>'1f1f6-1f1e6','flag_re'=>'1f1f7-1f1ea','flag_ro'=>'1f1f7-1f1f4','flag_rs'=>'1f1f7-1f1f8','flag_ru'=>'1f1f7-1f1fa','flag_rw'=>'1f1f7-1f1fc','flag_sa'=>'1f1f8-1f1e6','flag_sb'=>'1f1f8-1f1e7','flag_sc'=>'1f1f8-1f1e8','flag_sd'=>'1f1f8-1f1e9','flag_se'=>'1f1f8-1f1ea','flag_sg'=>'1f1f8-1f1ec','flag_sh'=>'1f1f8-1f1ed','flag_si'=>'1f1f8-1f1ee','flag_sj'=>'1f1f8-1f1ef','flag_sk'=>'1f1f8-1f1f0','flag_sl'=>'1f1f8-1f1f1','flag_sm'=>'1f1f8-1f1f2','flag_sn'=>'1f1f8-1f1f3','flag_so'=>'1f1f8-1f1f4','flag_sr'=>'1f1f8-1f1f7','flag_ss'=>'1f1f8-1f1f8','flag_st'=>'1f1f8-1f1f9','flag_sv'=>'1f1f8-1f1fb','flag_sx'=>'1f1f8-1f1fd','flag_sy'=>'1f1f8-1f1fe','flag_sz'=>'1f1f8-1f1ff','flag_ta'=>'1f1f9-1f1e6','flag_tc'=>'1f1f9-1f1e8','flag_td'=>'1f1f9-1f1e9','flag_tf'=>'1f1f9-1f1eb','flag_tg'=>'1f1f9-1f1ec','flag_th'=>'1f1f9-1f1ed','flag_tj'=>'1f1f9-1f1ef','flag_tk'=>'1f1f9-1f1f0','flag_tl'=>'1f1f9-1f1f1','flag_tm'=>'1f1f9-1f1f2','flag_tn'=>'1f1f9-1f1f3','flag_to'=>'1f1f9-1f1f4','flag_tr'=>'1f1f9-1f1f7','flag_tt'=>'1f1f9-1f1f9','flag_tv'=>'1f1f9-1f1fb','flag_tw'=>'1f1f9-1f1fc','flag_tz'=>'1f1f9-1f1ff','flag_ua'=>'1f1fa-1f1e6','flag_ug'=>'1f1fa-1f1ec','flag_um'=>'1f1fa-1f1f2','flag_us'=>'1f1fa-1f1f8','flag_uy'=>'1f1fa-1f1fe','flag_uz'=>'1f1fa-1f1ff','flag_va'=>'1f1fb-1f1e6','flag_vc'=>'1f1fb-1f1e8','flag_ve'=>'1f1fb-1f1ea','flag_vg'=>'1f1fb-1f1ec','flag_vi'=>'1f1fb-1f1ee','flag_vn'=>'1f1fb-1f1f3','flag_vu'=>'1f1fb-1f1fa','flag_wf'=>'1f1fc-1f1eb','flag_white'=>'1f3f3','flag_ws'=>'1f1fc-1f1f8','flag_xk'=>'1f1fd-1f1f0','flag_ye'=>'1f1fe-1f1ea','flag_yt'=>'1f1fe-1f1f9','flag_za'=>'1f1ff-1f1e6','flag_zm'=>'1f1ff-1f1f2','flag_zw'=>'1f1ff-1f1fc','flags'=>'1f38f','flashlight'=>'1f526','fleur-de-lis'=>'269c','fleur_de_lis'=>'269c','flight_arrival'=>'1f6ec','flight_departure'=>'1f6eb','flipper'=>'1f42c','floppy_disk'=>'1f4be','flower_playing_cards'=>'1f3b4','flushed'=>'1f633','fog'=>'1f32b','foggy'=>'1f301','football'=>'1f3c8','footprints'=>'1f463','fork_and_knife'=>'1f374','fork_knife_plate'=>'1f37d','fountain'=>'26f2','fountain_pen'=>'1f58b','four'=>'0034-20e3','four_leaf_clover'=>'1f340','fox'=>'1f98a','fr'=>'1f1eb-1f1f7','frame_photo'=>'1f5bc','framed_picture'=>'1f5bc','free'=>'1f193','french_bread'=>'1f956','french_guiana'=>'1f1ec-1f1eb','french_polynesia'=>'1f1f5-1f1eb','french_southern_territories'=>'1f1f9-1f1eb','fried_shrimp'=>'1f364','fries'=>'1f35f','frog'=>'1f438','frowning'=>'1f626','frowning2'=>'2639','frowning_face'=>'2639','frowning_woman'=>'1f64d','fu'=>'1f595','fuelpump'=>'26fd','full_moon'=>'1f315','full_moon_with_face'=>'1f31d','funeral_urn'=>'26b1','gabon'=>'1f1ec-1f1e6','gambia'=>'1f1ec-1f1f2','game_die'=>'1f3b2','gb'=>'1f1ec-1f1e7','gear'=>'2699','gem'=>'1f48e','gemini'=>'264a','georgia'=>'1f1ec-1f1ea','ghana'=>'1f1ec-1f1ed','ghost'=>'1f47b','gibraltar'=>'1f1ec-1f1ee','gift'=>'1f381','gift_heart'=>'1f49d','girl'=>'1f467','girl_tone1'=>'1f467-1f3fb','girl_tone2'=>'1f467-1f3fc','girl_tone3'=>'1f467-1f3fd','girl_tone4'=>'1f467-1f3fe','girl_tone5'=>'1f467-1f3ff','globe_with_meridians'=>'1f310','goal'=>'1f945','goat'=>'1f410','golf'=>'26f3','golfer'=>'1f3cc','golfing_man'=>'1f3cc','gorilla'=>'1f98d','grapes'=>'1f347','greece'=>'1f1ec-1f1f7','green_apple'=>'1f34f','green_book'=>'1f4d7','green_heart'=>'1f49a','greenland'=>'1f1ec-1f1f1','grenada'=>'1f1ec-1f1e9','grey_exclamation'=>'2755','grey_question'=>'2754','grimacing'=>'1f62c','grin'=>'1f601','grinning'=>'1f600','guadeloupe'=>'1f1ec-1f1f5','guam'=>'1f1ec-1f1fa','guardsman'=>'1f482','guardsman_tone1'=>'1f482-1f3fb','guardsman_tone2'=>'1f482-1f3fc','guardsman_tone3'=>'1f482-1f3fd','guardsman_tone4'=>'1f482-1f3fe','guardsman_tone5'=>'1f482-1f3ff','guatemala'=>'1f1ec-1f1f9','guernsey'=>'1f1ec-1f1ec','guinea'=>'1f1ec-1f1f3','guinea_bissau'=>'1f1ec-1f1fc','guitar'=>'1f3b8','gun'=>'1f52b','guyana'=>'1f1ec-1f1fe','haircut'=>'1f487','haircut_tone1'=>'1f487-1f3fb','haircut_tone2'=>'1f487-1f3fc','haircut_tone3'=>'1f487-1f3fd','haircut_tone4'=>'1f487-1f3fe','haircut_tone5'=>'1f487-1f3ff','haircut_woman'=>'1f487','haiti'=>'1f1ed-1f1f9','hamburger'=>'1f354','hammer'=>'1f528','hammer_and_pick'=>'2692','hammer_and_wrench'=>'1f6e0','hammer_pick'=>'2692','hamster'=>'1f439','hand'=>'270b','hand_splayed'=>'1f590','hand_splayed_tone1'=>'1f590-1f3fb','hand_splayed_tone2'=>'1f590-1f3fc','hand_splayed_tone3'=>'1f590-1f3fd','hand_splayed_tone4'=>'1f590-1f3fe','hand_splayed_tone5'=>'1f590-1f3ff','handbag'=>'1f45c','handball'=>'1f93e','handball_tone1'=>'1f93e-1f3fb','handball_tone2'=>'1f93e-1f3fc','handball_tone3'=>'1f93e-1f3fd','handball_tone4'=>'1f93e-1f3fe','handball_tone5'=>'1f93e-1f3ff','handshake'=>'1f91d','handshake_tone1'=>'1f91d-1f3fb','handshake_tone2'=>'1f91d-1f3fc','handshake_tone3'=>'1f91d-1f3fd','handshake_tone4'=>'1f91d-1f3fe','handshake_tone5'=>'1f91d-1f3ff','hankey'=>'1f4a9','hash'=>'0023-20e3','hatched_chick'=>'1f425','hatching_chick'=>'1f423','head_bandage'=>'1f915','headphones'=>'1f3a7','hear_no_evil'=>'1f649','heart'=>'2764','heart_decoration'=>'1f49f','heart_exclamation'=>'2763','heart_eyes'=>'1f60d','heart_eyes_cat'=>'1f63b','heartbeat'=>'1f493','heartpulse'=>'1f497','hearts'=>'2665','heavy_check_mark'=>'2714','heavy_division_sign'=>'2797','heavy_dollar_sign'=>'1f4b2','heavy_exclamation_mark'=>'2757','heavy_heart_exclamation'=>'2763','heavy_minus_sign'=>'2796','heavy_multiplication_x'=>'2716','heavy_plus_sign'=>'2795','helicopter'=>'1f681','helmet_with_cross'=>'26d1','herb'=>'1f33f','hibiscus'=>'1f33a','high_brightness'=>'1f506','high_heel'=>'1f460','hocho'=>'1f52a','hockey'=>'1f3d2','hole'=>'1f573','homes'=>'1f3d8','honduras'=>'1f1ed-1f1f3','honey_pot'=>'1f36f','honeybee'=>'1f41d','hong_kong'=>'1f1ed-1f1f0','horse'=>'1f434','horse_racing'=>'1f3c7','horse_racing_tone1'=>'1f3c7-1f3fb','horse_racing_tone2'=>'1f3c7-1f3fc','horse_racing_tone3'=>'1f3c7-1f3fd','horse_racing_tone4'=>'1f3c7-1f3fe','horse_racing_tone5'=>'1f3c7-1f3ff','hospital'=>'1f3e5','hot_pepper'=>'1f336','hotdog'=>'1f32d','hotel'=>'1f3e8','hotsprings'=>'2668','hourglass'=>'231b','hourglass_flowing_sand'=>'23f3','house'=>'1f3e0','house_abandoned'=>'1f3da','house_with_garden'=>'1f3e1','houses'=>'1f3d8','hugging'=>'1f917','hugs'=>'1f917','hungary'=>'1f1ed-1f1fa','hushed'=>'1f62f','ice_cream'=>'1f368','ice_hockey'=>'1f3d2','ice_skate'=>'26f8','icecream'=>'1f366','iceland'=>'1f1ee-1f1f8','id'=>'1f194','ideograph_advantage'=>'1f250','imp'=>'1f47f','inbox_tray'=>'1f4e5','incoming_envelope'=>'1f4e8','india'=>'1f1ee-1f1f3','indonesia'=>'1f1ee-1f1e9','information_desk_person'=>'1f481','information_desk_person_tone1'=>'1f481-1f3fb','information_desk_person_tone2'=>'1f481-1f3fc','information_desk_person_tone3'=>'1f481-1f3fd','information_desk_person_tone4'=>'1f481-1f3fe','information_desk_person_tone5'=>'1f481-1f3ff','information_source'=>'2139','innocent'=>'1f607','interrobang'=>'2049','iphone'=>'1f4f1','iran'=>'1f1ee-1f1f7','iraq'=>'1f1ee-1f1f6','ireland'=>'1f1ee-1f1ea','island'=>'1f3dd','isle_of_man'=>'1f1ee-1f1f2','israel'=>'1f1ee-1f1f1','it'=>'1f1ee-1f1f9','izakaya_lantern'=>'1f3ee','jack_o_lantern'=>'1f383','jamaica'=>'1f1ef-1f1f2','japan'=>'1f5fe','japanese_castle'=>'1f3ef','japanese_goblin'=>'1f47a','japanese_ogre'=>'1f479','jeans'=>'1f456','jersey'=>'1f1ef-1f1ea','jordan'=>'1f1ef-1f1f4','joy'=>'1f602','joy_cat'=>'1f639','joystick'=>'1f579','jp'=>'1f1ef-1f1f5','juggling'=>'1f939','juggling_tone1'=>'1f939-1f3fb','juggling_tone2'=>'1f939-1f3fc','juggling_tone3'=>'1f939-1f3fd','juggling_tone4'=>'1f939-1f3fe','juggling_tone5'=>'1f939-1f3ff','kaaba'=>'1f54b','kazakhstan'=>'1f1f0-1f1ff','kenya'=>'1f1f0-1f1ea','key'=>'1f511','key2'=>'1f5dd','keyboard'=>'2328','keycap_ten'=>'1f51f','kimono'=>'1f458','kiribati'=>'1f1f0-1f1ee','kiss'=>'1f48b','kiss_mm'=>'1f468-2764-1f48b-1f468','kiss_ww'=>'1f469-2764-1f48b-1f469','kissing'=>'1f617','kissing_cat'=>'1f63d','kissing_closed_eyes'=>'1f61a','kissing_heart'=>'1f618','kissing_smiling_eyes'=>'1f619','kiwi'=>'1f95d','knife'=>'1f52a','koala'=>'1f428','koko'=>'1f201','kosovo'=>'1f1fd-1f1f0','kr'=>'1f1f0-1f1f7','kuwait'=>'1f1f0-1f1fc','kyrgyzstan'=>'1f1f0-1f1ec','label'=>'1f3f7','lantern'=>'1f3ee','laos'=>'1f1f1-1f1e6','large_blue_circle'=>'1f535','large_blue_diamond'=>'1f537','large_orange_diamond'=>'1f536','last_quarter_moon'=>'1f317','last_quarter_moon_with_face'=>'1f31c','latin_cross'=>'271d','latvia'=>'1f1f1-1f1fb','laughing'=>'1f606','leaves'=>'1f343','lebanon'=>'1f1f1-1f1e7','ledger'=>'1f4d2','left_facing_fist'=>'1f91b','left_facing_fist_tone1'=>'1f91b-1f3fb','left_facing_fist_tone2'=>'1f91b-1f3fc','left_facing_fist_tone3'=>'1f91b-1f3fd','left_facing_fist_tone4'=>'1f91b-1f3fe','left_facing_fist_tone5'=>'1f91b-1f3ff','left_luggage'=>'1f6c5','left_right_arrow'=>'2194','leftwards_arrow_with_hook'=>'21a9','lemon'=>'1f34b','leo'=>'264c','leopard'=>'1f406','lesotho'=>'1f1f1-1f1f8','level_slider'=>'1f39a','levitate'=>'1f574','liberia'=>'1f1f1-1f1f7','libra'=>'264e','libya'=>'1f1f1-1f1fe','liechtenstein'=>'1f1f1-1f1ee','lifter'=>'1f3cb','lifter_tone1'=>'1f3cb-1f3fb','lifter_tone2'=>'1f3cb-1f3fc','lifter_tone3'=>'1f3cb-1f3fd','lifter_tone4'=>'1f3cb-1f3fe','lifter_tone5'=>'1f3cb-1f3ff','light_rail'=>'1f688','link'=>'1f517','lion'=>'1f981','lion_face'=>'1f981','lips'=>'1f444','lipstick'=>'1f484','lithuania'=>'1f1f1-1f1f9','lizard'=>'1f98e','lock'=>'1f512','lock_with_ink_pen'=>'1f50f','lollipop'=>'1f36d','loop'=>'27bf','loud_sound'=>'1f50a','loudspeaker'=>'1f4e2','love_hotel'=>'1f3e9','love_letter'=>'1f48c','low_brightness'=>'1f505','luxembourg'=>'1f1f1-1f1fa','lying_face'=>'1f925','m'=>'24c2','macau'=>'1f1f2-1f1f4','macedonia'=>'1f1f2-1f1f0','madagascar'=>'1f1f2-1f1ec','mag'=>'1f50d','mag_right'=>'1f50e','mahjong'=>'1f004','mailbox'=>'1f4eb','mailbox_closed'=>'1f4ea','mailbox_with_mail'=>'1f4ec','mailbox_with_no_mail'=>'1f4ed','malawi'=>'1f1f2-1f1fc','malaysia'=>'1f1f2-1f1fe','maldives'=>'1f1f2-1f1fb','male_detective'=>'1f575','mali'=>'1f1f2-1f1f1','malta'=>'1f1f2-1f1f9','man'=>'1f468','man_dancing'=>'1f57a','man_dancing_tone1'=>'1f57a-1f3fb','man_dancing_tone2'=>'1f57a-1f3fc','man_dancing_tone3'=>'1f57a-1f3fd','man_dancing_tone4'=>'1f57a-1f3fe','man_dancing_tone5'=>'1f57a-1f3ff','man_in_tuxedo'=>'1f935','man_in_tuxedo_tone1'=>'1f935-1f3fb','man_in_tuxedo_tone2'=>'1f935-1f3fc','man_in_tuxedo_tone3'=>'1f935-1f3fd','man_in_tuxedo_tone4'=>'1f935-1f3fe','man_in_tuxedo_tone5'=>'1f935-1f3ff','man_tone1'=>'1f468-1f3fb','man_tone2'=>'1f468-1f3fc','man_tone3'=>'1f468-1f3fd','man_tone4'=>'1f468-1f3fe','man_tone5'=>'1f468-1f3ff','man_with_gua_pi_mao'=>'1f472','man_with_gua_pi_mao_tone1'=>'1f472-1f3fb','man_with_gua_pi_mao_tone2'=>'1f472-1f3fc','man_with_gua_pi_mao_tone3'=>'1f472-1f3fd','man_with_gua_pi_mao_tone4'=>'1f472-1f3fe','man_with_gua_pi_mao_tone5'=>'1f472-1f3ff','man_with_turban'=>'1f473','man_with_turban_tone1'=>'1f473-1f3fb','man_with_turban_tone2'=>'1f473-1f3fc','man_with_turban_tone3'=>'1f473-1f3fd','man_with_turban_tone4'=>'1f473-1f3fe','man_with_turban_tone5'=>'1f473-1f3ff','mandarin'=>'1f34a','mans_shoe'=>'1f45e','mantelpiece_clock'=>'1f570','map'=>'1f5fa','maple_leaf'=>'1f341','marshall_islands'=>'1f1f2-1f1ed','martial_arts_uniform'=>'1f94b','martinique'=>'1f1f2-1f1f6','mask'=>'1f637','massage'=>'1f486','massage_tone1'=>'1f486-1f3fb','massage_tone2'=>'1f486-1f3fc','massage_tone3'=>'1f486-1f3fd','massage_tone4'=>'1f486-1f3fe','massage_tone5'=>'1f486-1f3ff','massage_woman'=>'1f486','mauritania'=>'1f1f2-1f1f7','mauritius'=>'1f1f2-1f1fa','mayotte'=>'1f1fe-1f1f9','meat_on_bone'=>'1f356','medal'=>'1f3c5','medal_military'=>'1f396','medal_sports'=>'1f3c5','mega'=>'1f4e3','melon'=>'1f348','memo'=>'1f4dd','menorah'=>'1f54e','mens'=>'1f6b9','metal'=>'1f918','metal_tone1'=>'1f918-1f3fb','metal_tone2'=>'1f918-1f3fc','metal_tone3'=>'1f918-1f3fd','metal_tone4'=>'1f918-1f3fe','metal_tone5'=>'1f918-1f3ff','metro'=>'1f687','mexico'=>'1f1f2-1f1fd','micronesia'=>'1f1eb-1f1f2','microphone'=>'1f3a4','microphone2'=>'1f399','microscope'=>'1f52c','middle_finger'=>'1f595','middle_finger_tone1'=>'1f595-1f3fb','middle_finger_tone2'=>'1f595-1f3fc','middle_finger_tone3'=>'1f595-1f3fd','middle_finger_tone4'=>'1f595-1f3fe','middle_finger_tone5'=>'1f595-1f3ff','military_medal'=>'1f396','milk'=>'1f95b','milky_way'=>'1f30c','minibus'=>'1f690','minidisc'=>'1f4bd','mobile_phone_off'=>'1f4f4','moldova'=>'1f1f2-1f1e9','monaco'=>'1f1f2-1f1e8','money_mouth'=>'1f911','money_mouth_face'=>'1f911','money_with_wings'=>'1f4b8','moneybag'=>'1f4b0','mongolia'=>'1f1f2-1f1f3','monkey'=>'1f412','monkey_face'=>'1f435','monorail'=>'1f69d','montenegro'=>'1f1f2-1f1ea','montserrat'=>'1f1f2-1f1f8','moon'=>'1f314','morocco'=>'1f1f2-1f1e6','mortar_board'=>'1f393','mosque'=>'1f54c','motor_boat'=>'1f6e5','motor_scooter'=>'1f6f5','motorboat'=>'1f6e5','motorcycle'=>'1f3cd','motorway'=>'1f6e3','mount_fuji'=>'1f5fb','mountain'=>'26f0','mountain_bicyclist'=>'1f6b5','mountain_bicyclist_tone1'=>'1f6b5-1f3fb','mountain_bicyclist_tone2'=>'1f6b5-1f3fc','mountain_bicyclist_tone3'=>'1f6b5-1f3fd','mountain_bicyclist_tone4'=>'1f6b5-1f3fe','mountain_bicyclist_tone5'=>'1f6b5-1f3ff','mountain_biking_man'=>'1f6b5','mountain_cableway'=>'1f6a0','mountain_railway'=>'1f69e','mountain_snow'=>'1f3d4','mouse'=>'1f42d','mouse2'=>'1f401','mouse_three_button'=>'1f5b1','movie_camera'=>'1f3a5','moyai'=>'1f5ff','mozambique'=>'1f1f2-1f1ff','mrs_claus'=>'1f936','mrs_claus_tone1'=>'1f936-1f3fb','mrs_claus_tone2'=>'1f936-1f3fc','mrs_claus_tone3'=>'1f936-1f3fd','mrs_claus_tone4'=>'1f936-1f3fe','mrs_claus_tone5'=>'1f936-1f3ff','muscle'=>'1f4aa','muscle_tone1'=>'1f4aa-1f3fb','muscle_tone2'=>'1f4aa-1f3fc','muscle_tone3'=>'1f4aa-1f3fd','muscle_tone4'=>'1f4aa-1f3fe','muscle_tone5'=>'1f4aa-1f3ff','mushroom'=>'1f344','musical_keyboard'=>'1f3b9','musical_note'=>'1f3b5','musical_score'=>'1f3bc','mute'=>'1f507','myanmar'=>'1f1f2-1f1f2','nail_care'=>'1f485','nail_care_tone1'=>'1f485-1f3fb','nail_care_tone2'=>'1f485-1f3fc','nail_care_tone3'=>'1f485-1f3fd','nail_care_tone4'=>'1f485-1f3fe','nail_care_tone5'=>'1f485-1f3ff','name_badge'=>'1f4db','namibia'=>'1f1f3-1f1e6','national_park'=>'1f3de','nauru'=>'1f1f3-1f1f7','nauseated_face'=>'1f922','necktie'=>'1f454','negative_squared_cross_mark'=>'274e','nepal'=>'1f1f3-1f1f5','nerd'=>'1f913','nerd_face'=>'1f913','netherlands'=>'1f1f3-1f1f1','neutral_face'=>'1f610','new'=>'1f195','new_caledonia'=>'1f1f3-1f1e8','new_moon'=>'1f311','new_moon_with_face'=>'1f31a','new_zealand'=>'1f1f3-1f1ff','newspaper'=>'1f4f0','newspaper2'=>'1f5de','newspaper_roll'=>'1f5de','next_track_button'=>'23ed','ng'=>'1f196','ng_woman'=>'1f645','nicaragua'=>'1f1f3-1f1ee','niger'=>'1f1f3-1f1ea','nigeria'=>'1f1f3-1f1ec','night_with_stars'=>'1f303','nine'=>'0039-20e3','niue'=>'1f1f3-1f1fa','no_bell'=>'1f515','no_bicycles'=>'1f6b3','no_entry'=>'26d4','no_entry_sign'=>'1f6ab','no_good'=>'1f645','no_good_tone1'=>'1f645-1f3fb','no_good_tone2'=>'1f645-1f3fc','no_good_tone3'=>'1f645-1f3fd','no_good_tone4'=>'1f645-1f3fe','no_good_tone5'=>'1f645-1f3ff','no_good_woman'=>'1f645','no_mobile_phones'=>'1f4f5','no_mouth'=>'1f636','no_pedestrians'=>'1f6b7','no_smoking'=>'1f6ad','non-potable_water'=>'1f6b1','norfolk_island'=>'1f1f3-1f1eb','north_korea'=>'1f1f0-1f1f5','northern_mariana_islands'=>'1f1f2-1f1f5','norway'=>'1f1f3-1f1f4','nose'=>'1f443','nose_tone1'=>'1f443-1f3fb','nose_tone2'=>'1f443-1f3fc','nose_tone3'=>'1f443-1f3fd','nose_tone4'=>'1f443-1f3fe','nose_tone5'=>'1f443-1f3ff','notebook'=>'1f4d3','notebook_with_decorative_cover'=>'1f4d4','notepad_spiral'=>'1f5d2','notes'=>'1f3b6','nut_and_bolt'=>'1f529','o'=>'2b55','o2'=>'1f17e','ocean'=>'1f30a','octagonal_sign'=>'1f6d1','octopus'=>'1f419','oden'=>'1f362','office'=>'1f3e2','oil'=>'1f6e2','oil_drum'=>'1f6e2','ok'=>'1f197','ok_hand'=>'1f44c','ok_hand_tone1'=>'1f44c-1f3fb','ok_hand_tone2'=>'1f44c-1f3fc','ok_hand_tone3'=>'1f44c-1f3fd','ok_hand_tone4'=>'1f44c-1f3fe','ok_hand_tone5'=>'1f44c-1f3ff','ok_woman'=>'1f646','ok_woman_tone1'=>'1f646-1f3fb','ok_woman_tone2'=>'1f646-1f3fc','ok_woman_tone3'=>'1f646-1f3fd','ok_woman_tone4'=>'1f646-1f3fe','ok_woman_tone5'=>'1f646-1f3ff','old_key'=>'1f5dd','older_man'=>'1f474','older_man_tone1'=>'1f474-1f3fb','older_man_tone2'=>'1f474-1f3fc','older_man_tone3'=>'1f474-1f3fd','older_man_tone4'=>'1f474-1f3fe','older_man_tone5'=>'1f474-1f3ff','older_woman'=>'1f475','older_woman_tone1'=>'1f475-1f3fb','older_woman_tone2'=>'1f475-1f3fc','older_woman_tone3'=>'1f475-1f3fd','older_woman_tone4'=>'1f475-1f3fe','older_woman_tone5'=>'1f475-1f3ff','om'=>'1f549','om_symbol'=>'1f549','oman'=>'1f1f4-1f1f2','on'=>'1f51b','oncoming_automobile'=>'1f698','oncoming_bus'=>'1f68d','oncoming_police_car'=>'1f694','oncoming_taxi'=>'1f696','one'=>'0031-20e3','open_book'=>'1f4d6','open_file_folder'=>'1f4c2','open_hands'=>'1f450','open_hands_tone1'=>'1f450-1f3fb','open_hands_tone2'=>'1f450-1f3fc','open_hands_tone3'=>'1f450-1f3fd','open_hands_tone4'=>'1f450-1f3fe','open_hands_tone5'=>'1f450-1f3ff','open_mouth'=>'1f62e','open_umbrella'=>'2602','ophiuchus'=>'26ce','orange'=>'1f34a','orange_book'=>'1f4d9','orthodox_cross'=>'2626','outbox_tray'=>'1f4e4','owl'=>'1f989','ox'=>'1f402','package'=>'1f4e6','page_facing_up'=>'1f4c4','page_with_curl'=>'1f4c3','pager'=>'1f4df','paintbrush'=>'1f58c','pakistan'=>'1f1f5-1f1f0','palau'=>'1f1f5-1f1fc','palestinian_territories'=>'1f1f5-1f1f8','palm_tree'=>'1f334','panama'=>'1f1f5-1f1e6','pancakes'=>'1f95e','panda_face'=>'1f43c','paperclip'=>'1f4ce','paperclips'=>'1f587','papua_new_guinea'=>'1f1f5-1f1ec','paraguay'=>'1f1f5-1f1fe','parasol_on_ground'=>'26f1','park'=>'1f3de','parking'=>'1f17f','part_alternation_mark'=>'303d','partly_sunny'=>'26c5','passenger_ship'=>'1f6f3','passport_control'=>'1f6c2','pause_button'=>'23f8','paw_prints'=>'1f43e','peace'=>'262e','peace_symbol'=>'262e','peach'=>'1f351','peanuts'=>'1f95c','pear'=>'1f350','pen'=>'1f58a','pen_ballpoint'=>'1f58a','pen_fountain'=>'1f58b','pencil'=>'1f4dd','pencil2'=>'270f','penguin'=>'1f427','pensive'=>'1f614','performing_arts'=>'1f3ad','persevere'=>'1f623','person_frowning'=>'1f64d','person_frowning_tone1'=>'1f64d-1f3fb','person_frowning_tone2'=>'1f64d-1f3fc','person_frowning_tone3'=>'1f64d-1f3fd','person_frowning_tone4'=>'1f64d-1f3fe','person_frowning_tone5'=>'1f64d-1f3ff','person_with_blond_hair'=>'1f471','person_with_blond_hair_tone1'=>'1f471-1f3fb','person_with_blond_hair_tone2'=>'1f471-1f3fc','person_with_blond_hair_tone3'=>'1f471-1f3fd','person_with_blond_hair_tone4'=>'1f471-1f3fe','person_with_blond_hair_tone5'=>'1f471-1f3ff','person_with_pouting_face'=>'1f64e','person_with_pouting_face_tone1'=>'1f64e-1f3fb','person_with_pouting_face_tone2'=>'1f64e-1f3fc','person_with_pouting_face_tone3'=>'1f64e-1f3fd','person_with_pouting_face_tone4'=>'1f64e-1f3fe','person_with_pouting_face_tone5'=>'1f64e-1f3ff','peru'=>'1f1f5-1f1ea','philippines'=>'1f1f5-1f1ed','phone'=>'260e','pick'=>'26cf','pig'=>'1f437','pig2'=>'1f416','pig_nose'=>'1f43d','pill'=>'1f48a','pineapple'=>'1f34d','ping_pong'=>'1f3d3','pisces'=>'2653','pitcairn_islands'=>'1f1f5-1f1f3','pizza'=>'1f355','place_of_worship'=>'1f6d0','plate_with_cutlery'=>'1f37d','play_or_pause_button'=>'23ef','play_pause'=>'23ef','point_down'=>'1f447','point_down_tone1'=>'1f447-1f3fb','point_down_tone2'=>'1f447-1f3fc','point_down_tone3'=>'1f447-1f3fd','point_down_tone4'=>'1f447-1f3fe','point_down_tone5'=>'1f447-1f3ff','point_left'=>'1f448','point_left_tone1'=>'1f448-1f3fb','point_left_tone2'=>'1f448-1f3fc','point_left_tone3'=>'1f448-1f3fd','point_left_tone4'=>'1f448-1f3fe','point_left_tone5'=>'1f448-1f3ff','point_right'=>'1f449','point_right_tone1'=>'1f449-1f3fb','point_right_tone2'=>'1f449-1f3fc','point_right_tone3'=>'1f449-1f3fd','point_right_tone4'=>'1f449-1f3fe','point_right_tone5'=>'1f449-1f3ff','point_up'=>'261d','point_up_2'=>'1f446','point_up_2_tone1'=>'1f446-1f3fb','point_up_2_tone2'=>'1f446-1f3fc','point_up_2_tone3'=>'1f446-1f3fd','point_up_2_tone4'=>'1f446-1f3fe','point_up_2_tone5'=>'1f446-1f3ff','point_up_tone1'=>'261d-1f3fb','point_up_tone2'=>'261d-1f3fc','point_up_tone3'=>'261d-1f3fd','point_up_tone4'=>'261d-1f3fe','point_up_tone5'=>'261d-1f3ff','poland'=>'1f1f5-1f1f1','police_car'=>'1f693','policeman'=>'1f46e','poodle'=>'1f429','poop'=>'1f4a9','popcorn'=>'1f37f','portugal'=>'1f1f5-1f1f9','post_office'=>'1f3e3','postal_horn'=>'1f4ef','postbox'=>'1f4ee','potable_water'=>'1f6b0','potato'=>'1f954','pouch'=>'1f45d','poultry_leg'=>'1f357','pound'=>'1f4b7','pout'=>'1f621','pouting_cat'=>'1f63e','pouting_woman'=>'1f64e','pray'=>'1f64f','pray_tone1'=>'1f64f-1f3fb','pray_tone2'=>'1f64f-1f3fc','pray_tone3'=>'1f64f-1f3fd','pray_tone4'=>'1f64f-1f3fe','pray_tone5'=>'1f64f-1f3ff','prayer_beads'=>'1f4ff','pregnant_woman'=>'1f930','pregnant_woman_tone1'=>'1f930-1f3fb','pregnant_woman_tone2'=>'1f930-1f3fc','pregnant_woman_tone3'=>'1f930-1f3fd','pregnant_woman_tone4'=>'1f930-1f3fe','pregnant_woman_tone5'=>'1f930-1f3ff','previous_track_button'=>'23ee','prince'=>'1f934','prince_tone1'=>'1f934-1f3fb','prince_tone2'=>'1f934-1f3fc','prince_tone3'=>'1f934-1f3fd','prince_tone4'=>'1f934-1f3fe','prince_tone5'=>'1f934-1f3ff','princess'=>'1f478','princess_tone1'=>'1f478-1f3fb','princess_tone2'=>'1f478-1f3fc','princess_tone3'=>'1f478-1f3fd','princess_tone4'=>'1f478-1f3fe','princess_tone5'=>'1f478-1f3ff','printer'=>'1f5a8','projector'=>'1f4fd','puerto_rico'=>'1f1f5-1f1f7','punch'=>'1f44a','punch_tone1'=>'1f44a-1f3fb','punch_tone2'=>'1f44a-1f3fc','punch_tone3'=>'1f44a-1f3fd','punch_tone4'=>'1f44a-1f3fe','punch_tone5'=>'1f44a-1f3ff','purple_heart'=>'1f49c','purse'=>'1f45b','pushpin'=>'1f4cc','put_litter_in_its_place'=>'1f6ae','qatar'=>'1f1f6-1f1e6','question'=>'2753','rabbit'=>'1f430','rabbit2'=>'1f407','race_car'=>'1f3ce','racehorse'=>'1f40e','racing_car'=>'1f3ce','radio'=>'1f4fb','radio_button'=>'1f518','radioactive'=>'2622','rage'=>'1f621','railway_car'=>'1f683','railway_track'=>'1f6e4','rainbow'=>'1f308','rainbow_flag'=>'1f3f3-1f308','raised_back_of_hand'=>'1f91a','raised_back_of_hand_tone1'=>'1f91a-1f3fb','raised_back_of_hand_tone2'=>'1f91a-1f3fc','raised_back_of_hand_tone3'=>'1f91a-1f3fd','raised_back_of_hand_tone4'=>'1f91a-1f3fe','raised_back_of_hand_tone5'=>'1f91a-1f3ff','raised_hand'=>'270b','raised_hand_tone1'=>'270b-1f3fb','raised_hand_tone2'=>'270b-1f3fc','raised_hand_tone3'=>'270b-1f3fd','raised_hand_tone4'=>'270b-1f3fe','raised_hand_tone5'=>'270b-1f3ff','raised_hand_with_fingers_splayed'=>'1f590','raised_hands'=>'1f64c','raised_hands_tone1'=>'1f64c-1f3fb','raised_hands_tone2'=>'1f64c-1f3fc','raised_hands_tone3'=>'1f64c-1f3fd','raised_hands_tone4'=>'1f64c-1f3fe','raised_hands_tone5'=>'1f64c-1f3ff','raising_hand'=>'1f64b','raising_hand_tone1'=>'1f64b-1f3fb','raising_hand_tone2'=>'1f64b-1f3fc','raising_hand_tone3'=>'1f64b-1f3fd','raising_hand_tone4'=>'1f64b-1f3fe','raising_hand_tone5'=>'1f64b-1f3ff','raising_hand_woman'=>'1f64b','ram'=>'1f40f','ramen'=>'1f35c','rat'=>'1f400','record_button'=>'23fa','recycle'=>'267b','red_car'=>'1f697','red_circle'=>'1f534','regional_indicator_a'=>'1f1e6','regional_indicator_b'=>'1f1e7','regional_indicator_c'=>'1f1e8','regional_indicator_d'=>'1f1e9','regional_indicator_e'=>'1f1ea','regional_indicator_f'=>'1f1eb','regional_indicator_g'=>'1f1ec','regional_indicator_h'=>'1f1ed','regional_indicator_i'=>'1f1ee','regional_indicator_j'=>'1f1ef','regional_indicator_k'=>'1f1f0','regional_indicator_l'=>'1f1f1','regional_indicator_m'=>'1f1f2','regional_indicator_n'=>'1f1f3','regional_indicator_o'=>'1f1f4','regional_indicator_p'=>'1f1f5','regional_indicator_q'=>'1f1f6','regional_indicator_r'=>'1f1f7','regional_indicator_s'=>'1f1f8','regional_indicator_t'=>'1f1f9','regional_indicator_u'=>'1f1fa','regional_indicator_v'=>'1f1fb','regional_indicator_w'=>'1f1fc','regional_indicator_x'=>'1f1fd','regional_indicator_y'=>'1f1fe','regional_indicator_z'=>'1f1ff','registered'=>'00ae','relaxed'=>'263a','relieved'=>'1f60c','reminder_ribbon'=>'1f397','repeat'=>'1f501','repeat_one'=>'1f502','rescue_worker_helmet'=>'26d1','restroom'=>'1f6bb','reunion'=>'1f1f7-1f1ea','revolving_hearts'=>'1f49e','rewind'=>'23ea','rhino'=>'1f98f','ribbon'=>'1f380','rice'=>'1f35a','rice_ball'=>'1f359','rice_cracker'=>'1f358','rice_scene'=>'1f391','right_anger_bubble'=>'1f5ef','right_facing_fist'=>'1f91c','right_facing_fist_tone1'=>'1f91c-1f3fb','right_facing_fist_tone2'=>'1f91c-1f3fc','right_facing_fist_tone3'=>'1f91c-1f3fd','right_facing_fist_tone4'=>'1f91c-1f3fe','right_facing_fist_tone5'=>'1f91c-1f3ff','ring'=>'1f48d','robot'=>'1f916','rocket'=>'1f680','rofl'=>'1f923','roll_eyes'=>'1f644','roller_coaster'=>'1f3a2','rolling_eyes'=>'1f644','romania'=>'1f1f7-1f1f4','rooster'=>'1f413','rose'=>'1f339','rosette'=>'1f3f5','rotating_light'=>'1f6a8','round_pushpin'=>'1f4cd','rowboat'=>'1f6a3','rowboat_tone1'=>'1f6a3-1f3fb','rowboat_tone2'=>'1f6a3-1f3fc','rowboat_tone3'=>'1f6a3-1f3fd','rowboat_tone4'=>'1f6a3-1f3fe','rowboat_tone5'=>'1f6a3-1f3ff','rowing_man'=>'1f6a3','ru'=>'1f1f7-1f1fa','rugby_football'=>'1f3c9','runner'=>'1f3c3','runner_tone1'=>'1f3c3-1f3fb','runner_tone2'=>'1f3c3-1f3fc','runner_tone3'=>'1f3c3-1f3fd','runner_tone4'=>'1f3c3-1f3fe','runner_tone5'=>'1f3c3-1f3ff','running'=>'1f3c3','running_man'=>'1f3c3','running_shirt_with_sash'=>'1f3bd','rwanda'=>'1f1f7-1f1fc','sa'=>'1f202','sagittarius'=>'2650','sailboat'=>'26f5','sake'=>'1f376','salad'=>'1f957','samoa'=>'1f1fc-1f1f8','san_marino'=>'1f1f8-1f1f2','sandal'=>'1f461','santa'=>'1f385','santa_tone1'=>'1f385-1f3fb','santa_tone2'=>'1f385-1f3fc','santa_tone3'=>'1f385-1f3fd','santa_tone4'=>'1f385-1f3fe','santa_tone5'=>'1f385-1f3ff','sao_tome_principe'=>'1f1f8-1f1f9','satellite'=>'1f4e1','satellite_orbital'=>'1f6f0','satisfied'=>'1f606','saudi_arabia'=>'1f1f8-1f1e6','saxophone'=>'1f3b7','scales'=>'2696','school'=>'1f3eb','school_satchel'=>'1f392','scissors'=>'2702','scooter'=>'1f6f4','scorpion'=>'1f982','scorpius'=>'264f','scream'=>'1f631','scream_cat'=>'1f640','scroll'=>'1f4dc','seat'=>'1f4ba','second_place'=>'1f948','secret'=>'3299','see_no_evil'=>'1f648','seedling'=>'1f331','selfie'=>'1f933','selfie_tone1'=>'1f933-1f3fb','selfie_tone2'=>'1f933-1f3fc','selfie_tone3'=>'1f933-1f3fd','selfie_tone4'=>'1f933-1f3fe','selfie_tone5'=>'1f933-1f3ff','senegal'=>'1f1f8-1f1f3','serbia'=>'1f1f7-1f1f8','seven'=>'0037-20e3','seychelles'=>'1f1f8-1f1e8','shallow_pan_of_food'=>'1f958','shamrock'=>'2618','shark'=>'1f988','shaved_ice'=>'1f367','sheep'=>'1f411','shell'=>'1f41a','shield'=>'1f6e1','shinto_shrine'=>'26e9','ship'=>'1f6a2','shirt'=>'1f455','shit'=>'1f4a9','shoe'=>'1f45e','shopping'=>'1f6cd','shopping_bags'=>'1f6cd','shopping_cart'=>'1f6d2','shower'=>'1f6bf','shrimp'=>'1f990','shrug'=>'1f937','shrug_tone1'=>'1f937-1f3fb','shrug_tone2'=>'1f937-1f3fc','shrug_tone3'=>'1f937-1f3fd','shrug_tone4'=>'1f937-1f3fe','shrug_tone5'=>'1f937-1f3ff','sierra_leone'=>'1f1f8-1f1f1','signal_strength'=>'1f4f6','singapore'=>'1f1f8-1f1ec','sint_maarten'=>'1f1f8-1f1fd','six'=>'0036-20e3','six_pointed_star'=>'1f52f','ski'=>'1f3bf','skier'=>'26f7','skull'=>'1f480','skull_and_crossbones'=>'2620','skull_crossbones'=>'2620','sleeping'=>'1f634','sleeping_accommodation'=>'1f6cc','sleeping_bed'=>'1f6cc','sleepy'=>'1f62a','slight_frown'=>'1f641','slight_smile'=>'1f642','slightly_frowning_face'=>'1f641','slightly_smiling_face'=>'1f642','slot_machine'=>'1f3b0','slovakia'=>'1f1f8-1f1f0','slovenia'=>'1f1f8-1f1ee','small_airplane'=>'1f6e9','small_blue_diamond'=>'1f539','small_orange_diamond'=>'1f538','small_red_triangle'=>'1f53a','small_red_triangle_down'=>'1f53b','smile'=>'1f604','smile_cat'=>'1f638','smiley'=>'1f603','smiley_cat'=>'1f63a','smiling_imp'=>'1f608','smirk'=>'1f60f','smirk_cat'=>'1f63c','smoking'=>'1f6ac','snail'=>'1f40c','snake'=>'1f40d','sneezing_face'=>'1f927','snowboarder'=>'1f3c2','snowflake'=>'2744','snowman'=>'26c4','snowman2'=>'2603','snowman_with_snow'=>'2603','sob'=>'1f62d','soccer'=>'26bd','solomon_islands'=>'1f1f8-1f1e7','somalia'=>'1f1f8-1f1f4','soon'=>'1f51c','sos'=>'1f198','sound'=>'1f509','south_africa'=>'1f1ff-1f1e6','south_georgia_south_sandwich_islands'=>'1f1ec-1f1f8','south_sudan'=>'1f1f8-1f1f8','space_invader'=>'1f47e','spades'=>'2660','spaghetti'=>'1f35d','sparkle'=>'2747','sparkler'=>'1f387','sparkles'=>'2728','sparkling_heart'=>'1f496','speak_no_evil'=>'1f64a','speaker'=>'1f508','speaking_head'=>'1f5e3','speech_balloon'=>'1f4ac','speech_left'=>'1f5e8','speedboat'=>'1f6a4','spider'=>'1f577','spider_web'=>'1f578','spiral_calendar'=>'1f5d3','spiral_notepad'=>'1f5d2','spoon'=>'1f944','spy'=>'1f575','spy_tone1'=>'1f575-1f3fb','spy_tone2'=>'1f575-1f3fc','spy_tone3'=>'1f575-1f3fd','spy_tone4'=>'1f575-1f3fe','spy_tone5'=>'1f575-1f3ff','squid'=>'1f991','sri_lanka'=>'1f1f1-1f1f0','st_barthelemy'=>'1f1e7-1f1f1','st_helena'=>'1f1f8-1f1ed','st_kitts_nevis'=>'1f1f0-1f1f3','st_lucia'=>'1f1f1-1f1e8','st_pierre_miquelon'=>'1f1f5-1f1f2','st_vincent_grenadines'=>'1f1fb-1f1e8','stadium'=>'1f3df','star'=>'2b50','star2'=>'1f31f','star_and_crescent'=>'262a','star_of_david'=>'2721','stars'=>'1f320','station'=>'1f689','statue_of_liberty'=>'1f5fd','steam_locomotive'=>'1f682','stew'=>'1f372','stop_button'=>'23f9','stopwatch'=>'23f1','straight_ruler'=>'1f4cf','strawberry'=>'1f353','stuck_out_tongue'=>'1f61b','stuck_out_tongue_closed_eyes'=>'1f61d','stuck_out_tongue_winking_eye'=>'1f61c','studio_microphone'=>'1f399','stuffed_flatbread'=>'1f959','sudan'=>'1f1f8-1f1e9','sun_behind_large_cloud'=>'1f325','sun_behind_rain_cloud'=>'1f326','sun_behind_small_cloud'=>'1f324','sun_with_face'=>'1f31e','sunflower'=>'1f33b','sunglasses'=>'1f60e','sunny'=>'2600','sunrise'=>'1f305','sunrise_over_mountains'=>'1f304','surfer'=>'1f3c4','surfer_tone1'=>'1f3c4-1f3fb','surfer_tone2'=>'1f3c4-1f3fc','surfer_tone3'=>'1f3c4-1f3fd','surfer_tone4'=>'1f3c4-1f3fe','surfer_tone5'=>'1f3c4-1f3ff','surfing_man'=>'1f3c4','suriname'=>'1f1f8-1f1f7','sushi'=>'1f363','suspension_railway'=>'1f69f','swaziland'=>'1f1f8-1f1ff','sweat'=>'1f613','sweat_drops'=>'1f4a6','sweat_smile'=>'1f605','sweden'=>'1f1f8-1f1ea','sweet_potato'=>'1f360','swimmer'=>'1f3ca','swimmer_tone1'=>'1f3ca-1f3fb','swimmer_tone2'=>'1f3ca-1f3fc','swimmer_tone3'=>'1f3ca-1f3fd','swimmer_tone4'=>'1f3ca-1f3fe','swimmer_tone5'=>'1f3ca-1f3ff','swimming_man'=>'1f3ca','switzerland'=>'1f1e8-1f1ed','symbols'=>'1f523','synagogue'=>'1f54d','syria'=>'1f1f8-1f1fe','syringe'=>'1f489','taco'=>'1f32e','tada'=>'1f389','taiwan'=>'1f1f9-1f1fc','tajikistan'=>'1f1f9-1f1ef','tanabata_tree'=>'1f38b','tangerine'=>'1f34a','tanzania'=>'1f1f9-1f1ff','taurus'=>'2649','taxi'=>'1f695','tea'=>'1f375','telephone'=>'260e','telephone_receiver'=>'1f4de','telescope'=>'1f52d','tennis'=>'1f3be','tent'=>'26fa','thailand'=>'1f1f9-1f1ed','thermometer'=>'1f321','thermometer_face'=>'1f912','thinking'=>'1f914','third_place'=>'1f949','thought_balloon'=>'1f4ad','three'=>'0033-20e3','thumbsdown'=>'1f44e','thumbsdown_tone1'=>'1f44e-1f3fb','thumbsdown_tone2'=>'1f44e-1f3fc','thumbsdown_tone3'=>'1f44e-1f3fd','thumbsdown_tone4'=>'1f44e-1f3fe','thumbsdown_tone5'=>'1f44e-1f3ff','thumbsup'=>'1f44d','thumbsup_tone1'=>'1f44d-1f3fb','thumbsup_tone2'=>'1f44d-1f3fc','thumbsup_tone3'=>'1f44d-1f3fd','thumbsup_tone4'=>'1f44d-1f3fe','thumbsup_tone5'=>'1f44d-1f3ff','thunder_cloud_rain'=>'26c8','ticket'=>'1f3ab','tickets'=>'1f39f','tiger'=>'1f42f','tiger2'=>'1f405','timer'=>'23f2','timer_clock'=>'23f2','timor_leste'=>'1f1f9-1f1f1','tipping_hand_woman'=>'1f481','tired_face'=>'1f62b','tm'=>'2122','togo'=>'1f1f9-1f1ec','toilet'=>'1f6bd','tokelau'=>'1f1f9-1f1f0','tokyo_tower'=>'1f5fc','tomato'=>'1f345','tone1'=>'1f3fb','tone2'=>'1f3fc','tone3'=>'1f3fd','tone4'=>'1f3fe','tone5'=>'1f3ff','tonga'=>'1f1f9-1f1f4','tongue'=>'1f445','tools'=>'1f6e0','top'=>'1f51d','tophat'=>'1f3a9','tornado'=>'1f32a','tr'=>'1f1f9-1f1f7','track_next'=>'23ed','track_previous'=>'23ee','trackball'=>'1f5b2','tractor'=>'1f69c','traffic_light'=>'1f6a5','train'=>'1f68b','train2'=>'1f686','tram'=>'1f68a','triangular_flag_on_post'=>'1f6a9','triangular_ruler'=>'1f4d0','trident'=>'1f531','trinidad_tobago'=>'1f1f9-1f1f9','triumph'=>'1f624','trolleybus'=>'1f68e','trophy'=>'1f3c6','tropical_drink'=>'1f379','tropical_fish'=>'1f420','truck'=>'1f69a','trumpet'=>'1f3ba','tshirt'=>'1f455','tulip'=>'1f337','tumbler_glass'=>'1f943','tunisia'=>'1f1f9-1f1f3','turkey'=>'1f983','turkmenistan'=>'1f1f9-1f1f2','turks_caicos_islands'=>'1f1f9-1f1e8','turtle'=>'1f422','tuvalu'=>'1f1f9-1f1fb','tv'=>'1f4fa','twisted_rightwards_arrows'=>'1f500','two'=>'0032-20e3','two_hearts'=>'1f495','two_men_holding_hands'=>'1f46c','two_women_holding_hands'=>'1f46d','u5272'=>'1f239','u5408'=>'1f234','u55b6'=>'1f23a','u6307'=>'1f22f','u6708'=>'1f237','u6709'=>'1f236','u6e80'=>'1f235','u7121'=>'1f21a','u7533'=>'1f238','u7981'=>'1f232','u7a7a'=>'1f233','uganda'=>'1f1fa-1f1ec','uk'=>'1f1ec-1f1e7','ukraine'=>'1f1fa-1f1e6','umbrella'=>'2614','umbrella2'=>'2602','unamused'=>'1f612','underage'=>'1f51e','unicorn'=>'1f984','united_arab_emirates'=>'1f1e6-1f1ea','unlock'=>'1f513','up'=>'1f199','upside_down'=>'1f643','upside_down_face'=>'1f643','urn'=>'26b1','uruguay'=>'1f1fa-1f1fe','us'=>'1f1fa-1f1f8','us_virgin_islands'=>'1f1fb-1f1ee','uzbekistan'=>'1f1fa-1f1ff','v'=>'270c','v_tone1'=>'270c-1f3fb','v_tone2'=>'270c-1f3fc','v_tone3'=>'270c-1f3fd','v_tone4'=>'270c-1f3fe','v_tone5'=>'270c-1f3ff','vanuatu'=>'1f1fb-1f1fa','vatican_city'=>'1f1fb-1f1e6','venezuela'=>'1f1fb-1f1ea','vertical_traffic_light'=>'1f6a6','vhs'=>'1f4fc','vibration_mode'=>'1f4f3','video_camera'=>'1f4f9','video_game'=>'1f3ae','vietnam'=>'1f1fb-1f1f3','violin'=>'1f3bb','virgo'=>'264d','volcano'=>'1f30b','volleyball'=>'1f3d0','vs'=>'1f19a','vulcan'=>'1f596','vulcan_salute'=>'1f596','vulcan_tone1'=>'1f596-1f3fb','vulcan_tone2'=>'1f596-1f3fc','vulcan_tone3'=>'1f596-1f3fd','vulcan_tone4'=>'1f596-1f3fe','vulcan_tone5'=>'1f596-1f3ff','walking'=>'1f6b6','walking_man'=>'1f6b6','walking_tone1'=>'1f6b6-1f3fb','walking_tone2'=>'1f6b6-1f3fc','walking_tone3'=>'1f6b6-1f3fd','walking_tone4'=>'1f6b6-1f3fe','walking_tone5'=>'1f6b6-1f3ff','wallis_futuna'=>'1f1fc-1f1eb','waning_crescent_moon'=>'1f318','waning_gibbous_moon'=>'1f316','warning'=>'26a0','wastebasket'=>'1f5d1','watch'=>'231a','water_buffalo'=>'1f403','water_polo'=>'1f93d','water_polo_tone1'=>'1f93d-1f3fb','water_polo_tone2'=>'1f93d-1f3fc','water_polo_tone3'=>'1f93d-1f3fd','water_polo_tone4'=>'1f93d-1f3fe','water_polo_tone5'=>'1f93d-1f3ff','watermelon'=>'1f349','wave'=>'1f44b','wave_tone1'=>'1f44b-1f3fb','wave_tone2'=>'1f44b-1f3fc','wave_tone3'=>'1f44b-1f3fd','wave_tone4'=>'1f44b-1f3fe','wave_tone5'=>'1f44b-1f3ff','wavy_dash'=>'3030','waxing_crescent_moon'=>'1f312','waxing_gibbous_moon'=>'1f314','wc'=>'1f6be','weary'=>'1f629','wedding'=>'1f492','weight_lifting_man'=>'1f3cb','western_sahara'=>'1f1ea-1f1ed','whale'=>'1f433','whale2'=>'1f40b','wheel_of_dharma'=>'2638','wheelchair'=>'267f','white_check_mark'=>'2705','white_circle'=>'26aa','white_flag'=>'1f3f3','white_flower'=>'1f4ae','white_large_square'=>'2b1c','white_medium_small_square'=>'25fd','white_medium_square'=>'25fb','white_small_square'=>'25ab','white_square_button'=>'1f533','white_sun_cloud'=>'1f325','white_sun_rain_cloud'=>'1f326','white_sun_small_cloud'=>'1f324','wilted_rose'=>'1f940','wind_blowing_face'=>'1f32c','wind_chime'=>'1f390','wind_face'=>'1f32c','wine_glass'=>'1f377','wink'=>'1f609','wolf'=>'1f43a','woman'=>'1f469','woman_tone1'=>'1f469-1f3fb','woman_tone2'=>'1f469-1f3fc','woman_tone3'=>'1f469-1f3fd','woman_tone4'=>'1f469-1f3fe','woman_tone5'=>'1f469-1f3ff','womans_clothes'=>'1f45a','womans_hat'=>'1f452','womens'=>'1f6ba','world_map'=>'1f5fa','worried'=>'1f61f','wrench'=>'1f527','wrestlers'=>'1f93c','wrestlers_tone1'=>'1f93c-1f3fb','wrestlers_tone2'=>'1f93c-1f3fc','wrestlers_tone3'=>'1f93c-1f3fd','wrestlers_tone4'=>'1f93c-1f3fe','wrestlers_tone5'=>'1f93c-1f3ff','writing_hand'=>'270d','writing_hand_tone1'=>'270d-1f3fb','writing_hand_tone2'=>'270d-1f3fc','writing_hand_tone3'=>'270d-1f3fd','writing_hand_tone4'=>'270d-1f3fe','writing_hand_tone5'=>'270d-1f3ff','x'=>'274c','yellow_heart'=>'1f49b','yemen'=>'1f1fe-1f1ea','yen'=>'1f4b4','yin_yang'=>'262f','yum'=>'1f60b','zambia'=>'1f1ff-1f1f2','zap'=>'26a1','zero'=>'0030-20e3','zimbabwe'=>'1f1ff-1f1fc','zipper_mouth'=>'1f910','zipper_mouth_face'=>'1f910','zzz'=>'1f4a4');
 	protected $unicodeRegexp = '((?:[#*0-9]\\xEF\\xB8\\x8F(?:\\xE2\\x83\\xA3)?|\\xC2[\\xA9\\xAE]\\xEF\\xB8\\x8F|\\xE2(?:\\x80\\xBC\\xEF\\xB8\\x8F|\\x81\\x89\\xEF\\xB8\\x8F|\\x84[\\xA2\\xB9]\\xEF\\xB8\\x8F|\\x86[\\x94-\\x99\\xA9\\xAA]\\xEF\\xB8\\x8F|\\x8C(?:[\\x9A\\x9B](?:\\xEF\\xB8\\x8F)?|\\xA8\\xEF\\xB8\\x8F)|\\x8F(?:[\\x8F\\xAD-\\xAF\\xB1\\xB2\\xB8-\\xBA]\\xEF\\xB8\\x8F|[\\xA9-\\xAC\\xB0\\xB3](?:\\xEF\\xB8\\x8F)?)|\\x93\\x82\\xEF\\xB8\\x8F|\\x96[\\xAA\\xAB\\xB6]\\xEF\\xB8\\x8F|\\x97(?:[\\x80\\xBB\\xBC]\\xEF\\xB8\\x8F|[\\xBD\\xBE](?:\\xEF\\xB8\\x8F)?)|\\x98(?:[\\x80-\\x84\\x8E\\x91\\x98\\xA0\\xA2\\xA3\\xA6\\xAA\\xAE\\xAF\\xB8-\\xBA]\\xEF\\xB8\\x8F|[\\x94\\x95](?:\\xEF\\xB8\\x8F)?|\\x9D(?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF]))|\\x99(?:[\\x88-\\x93\\xBF](?:\\xEF\\xB8\\x8F)?|[\\xA0\\xA3\\xA5\\xA6\\xA8\\xBB]\\xEF\\xB8\\x8F)|\\x9A(?:[\\x92\\x94\\x96\\x97\\x99\\x9B\\x9C\\xA0\\xB0\\xB1]\\xEF\\xB8\\x8F|[\\x93\\xA1\\xAA\\xAB\\xBD\\xBE](?:\\xEF\\xB8\\x8F)?)|\\x9B(?:[\\x84\\x85\\x8E\\x94\\xAA\\xB2\\xB3\\xB5\\xBA\\xBD](?:\\xEF\\xB8\\x8F)?|[\\x88\\x8F\\x91\\x93\\xA9\\xB0\\xB1\\xB4\\xB7\\xB8]\\xEF\\xB8\\x8F|\\xB9(?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF]))|\\x9C(?:[\\x82\\x88\\x89\\x8F\\x92\\x94\\x96\\x9D\\xA1\\xB3\\xB4]\\xEF\\xB8\\x8F|[\\x85\\xA8](?:\\xEF\\xB8\\x8F)?|[\\x8A\\x8B](?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?|[\\x8C\\x8D](?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF]))|\\x9D(?:[\\x84\\x87\\xA3\\xA4]\\xEF\\xB8\\x8F|[\\x8C\\x8E\\x93-\\x95\\x97](?:\\xEF\\xB8\\x8F)?)|\\x9E(?:[\\x95-\\x97\\xB0\\xBF](?:\\xEF\\xB8\\x8F)?|\\xA1\\xEF\\xB8\\x8F)|\\xA4[\\xB4\\xB5]\\xEF\\xB8\\x8F|\\xAC(?:[\\x85-\\x87]\\xEF\\xB8\\x8F|[\\x9B\\x9C](?:\\xEF\\xB8\\x8F)?)|\\xAD[\\x90\\x95](?:\\xEF\\xB8\\x8F)?)|\\xE3(?:\\x80[\\xB0\\xBD]|\\x8A[\\x97\\x99])\\xEF\\xB8\\x8F|\\xF0\\x9F(?:\\x80\\x84(?:\\xEF\\xB8\\x8F)?|\\x83\\x8F(?:\\xEF\\xB8\\x8F)?|\\x85[\\xB0\\xB1\\xBE\\xBF]\\xEF\\xB8\\x8F|\\x86[\\x8E\\x91-\\x9A](?:\\xEF\\xB8\\x8F)?|\\x87[\\xA6-\\xBF](?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x87[\\xA6-\\xBF])?|\\x88(?:[\\x81\\x9A\\xAF\\xB2-\\xB6\\xB8-\\xBA](?:\\xEF\\xB8\\x8F)?|[\\x82\\xB7]\\xEF\\xB8\\x8F)|\\x89[\\x90\\x91](?:\\xEF\\xB8\\x8F)?|\\x8C(?:[\\x80-\\xA0\\xAD-\\xB5\\xB7-\\xBF](?:\\xEF\\xB8\\x8F)?|[\\xA1\\xA4-\\xAC\\xB6]\\xEF\\xB8\\x8F)|\\x8D(?:[\\x80-\\xBC\\xBE\\xBF](?:\\xEF\\xB8\\x8F)?|\\xBD\\xEF\\xB8\\x8F)|\\x8E(?:[\\x80-\\x84\\x86-\\x93\\xA0-\\xBF](?:\\xEF\\xB8\\x8F)?|[\\x96\\x97\\x99-\\x9B\\x9E\\x9F]\\xEF\\xB8\\x8F|\\x85(?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?)|\\x8F(?:[\\x80-\\x82\\x85-\\x89\\x8F-\\x93\\xA0-\\xB0\\xB4\\xB8-\\xBF](?:\\xEF\\xB8\\x8F)?|[\\x83\\x84\\x8A](?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?|[\\x8C-\\x8E\\x94-\\x9F\\xB3\\xB5\\xB7]\\xEF\\xB8\\x8F|\\x8B(?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF]))|\\x90(?:[\\x80-\\xBE](?:\\xEF\\xB8\\x8F)?|\\xBF\\xEF\\xB8\\x8F)|\\x91(?:[\\x80\\x84\\x85\\x91-\\xA5\\xAA-\\xAD\\xAF\\xB9-\\xBB\\xBD-\\xBF](?:\\xEF\\xB8\\x8F)?|[\\x82\\x83\\x86-\\x90\\xA6\\xA7\\xAE\\xB0-\\xB8\\xBC](?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?|\\x81(?:\\xE2\\x80\\x8D\\xF0\\x9F\\x97\\xA8|\\xEF\\xB8\\x8F)|\\xA8(?:\\xE2\\x80\\x8D(?:\\xE2\\x9D\\xA4\\xEF\\xB8\\x8F\\xE2\\x80\\x8D\\xF0\\x9F(?:\\x92\\x8B\\xE2\\x80\\x8D\\xF0\\x9F)?\\x91\\xA8|\\xF0\\x9F\\x91[\\xA8\\xA9]\\xE2\\x80\\x8D\\xF0\\x9F\\x91(?:\\xA6(?:\\xE2\\x80\\x8D\\xF0\\x9F\\x91\\xA6)?|\\xA7(?:\\xE2\\x80\\x8D\\xF0\\x9F\\x91[\\xA6\\xA7])?))|\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?|\\xA9(?:\\xE2\\x80\\x8D(?:\\xE2\\x9D\\xA4\\xEF\\xB8\\x8F\\xE2\\x80\\x8D\\xF0\\x9F(?:\\x92\\x8B\\xE2\\x80\\x8D\\xF0\\x9F)?\\x91[\\xA8\\xA9]|\\xF0\\x9F\\x91\\xA9\\xE2\\x80\\x8D\\xF0\\x9F\\x91(?:\\xA6(?:\\xE2\\x80\\x8D\\xF0\\x9F\\x91\\xA6)?|\\xA7(?:\\xE2\\x80\\x8D\\xF0\\x9F\\x91[\\xA6\\xA7])?))|\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?)|\\x92(?:[\\x80\\x84\\x88-\\xA9\\xAB-\\xBF](?:\\xEF\\xB8\\x8F)?|[\\x81-\\x83\\x85-\\x87\\xAA](?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?)|\\x93(?:[\\x80-\\xBC\\xBF](?:\\xEF\\xB8\\x8F)?|\\xBD\\xEF\\xB8\\x8F)|\\x94[\\x80-\\xBD](?:\\xEF\\xB8\\x8F)?|\\x95(?:[\\x89\\x8A\\xAF\\xB0\\xB3\\xB4\\xB6-\\xB9]\\xEF\\xB8\\x8F|[\\x8B-\\x8E\\x90-\\xA7](?:\\xEF\\xB8\\x8F)?|\\xB5(?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])|\\xBA(?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?)|\\x96(?:[\\x87\\x8A-\\x8D\\xA5\\xA8\\xB1\\xB2\\xBC]\\xEF\\xB8\\x8F|[\\x95\\x96](?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?|\\x90(?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])|\\xA4(?:\\xEF\\xB8\\x8F)?)|\\x97(?:[\\x82-\\x84\\x91-\\x93\\x9C-\\x9E\\xA1\\xA3\\xA8\\xAF\\xB3\\xBA]\\xEF\\xB8\\x8F|[\\xBB-\\xBF](?:\\xEF\\xB8\\x8F)?)|\\x98[\\x80-\\xBF](?:\\xEF\\xB8\\x8F)?|\\x99(?:[\\x80-\\x84\\x88-\\x8A](?:\\xEF\\xB8\\x8F)?|[\\x85-\\x87\\x8B-\\x8F](?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?)|\\x9A(?:[\\x80-\\xA2\\xA4-\\xB3\\xB7-\\xBF](?:\\xEF\\xB8\\x8F)?|[\\xA3\\xB4-\\xB6](?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?)|\\x9B(?:[\\x81-\\x85\\x8C\\x90-\\x92\\xAB\\xAC\\xB4-\\xB6](?:\\xEF\\xB8\\x8F)?|[\\x8B\\x8D-\\x8F\\xA0-\\xA5\\xA9\\xB0\\xB3]\\xEF\\xB8\\x8F|\\x80(?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?)|\\xA4(?:[\\x90-\\x97\\xA0-\\xA5\\xA7\\xBA](?:\\xEF\\xB8\\x8F)?|[\\x98-\\x9E\\xA6\\xB0\\xB3-\\xB9\\xBC-\\xBE](?:\\xEF\\xB8\\x8F|\\xF0\\x9F\\x8F[\\xBB-\\xBF])?)|\\xA5[\\x80-\\x85\\x87-\\x8B\\x90-\\x9E](?:\\xEF\\xB8\\x8F)?|\\xA6[\\x80-\\x91](?:\\xEF\\xB8\\x8F)?|\\xA7\\x80(?:\\xEF\\xB8\\x8F)?))(?!\\xEF\\xB8\\x8E))S';
 
 	public function parse($text, array $matches)
--- a/vendor/s9e/text-formatter/src/Plugins/Emoticons/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Emoticons/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Emoticons;
--- a/vendor/s9e/text-formatter/src/Plugins/Emoticons/Configurator/EmoticonCollection.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Emoticons/Configurator/EmoticonCollection.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Emoticons\Configurator;
--- a/vendor/s9e/text-formatter/src/Plugins/Emoticons/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Emoticons/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Emoticons;
--- a/vendor/s9e/text-formatter/src/Plugins/Escaper/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Escaper/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Escaper;
--- a/vendor/s9e/text-formatter/src/Plugins/Escaper/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Escaper/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Escaper;
--- a/vendor/s9e/text-formatter/src/Plugins/FancyPants/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/FancyPants/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\FancyPants;
@@ -10,6 +10,7 @@ use s9e\TextFormatter\Plugins\ConfiguratorBase;
 class Configurator extends ConfiguratorBase
 {
 	protected $attrName = 'char';
+	protected $disabledPasses = array();
 	protected $tagName = 'FP';
 	protected function setUp()
 	{
@@ -20,11 +21,23 @@ class Configurator extends ConfiguratorBase
 		$tag->template
 			= '<xsl:value-of select="@' . \htmlspecialchars($this->attrName) . '"/>';
 	}
+	public function disablePass($passName)
+	{
+		$this->disabledPasses[] = $passName;
+	}
+	public function enablePass($passName)
+	{
+		foreach (\array_keys($this->disabledPasses, $passName, \true) as $k)
+			unset($this->disabledPasses[$k]);
+	}
 	public function asConfig()
 	{
-		return array(
+		$config = array(
 			'attrName' => $this->attrName,
 			'tagName'  => $this->tagName
 		);
+		foreach ($this->disabledPasses as $passName)
+			$config['disable' . $passName] = \true;
+		return $config;
 	}
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Plugins/FancyPants/Parser.js
+++ b/vendor/s9e/text-formatter/src/Plugins/FancyPants/Parser.js
@@ -3,14 +3,30 @@ var attrName       = config.attrName,
 	hasDoubleQuote = (text.indexOf('"') >= 0),
 	tagName        = config.tagName;
 
-parseSingleQuotes();
-parseSymbolsAfterDigits();
-parseSingleQuotePairs();
-parseDoubleQuotePairs();
-parseDashesAndEllipses();
-parseSymbolsInParentheses();
-parseNotEqualSign();
-parseGuillemets();
+if (!config.disableQuotes)
+{
+	parseSingleQuotes();
+	parseSingleQuotePairs();
+	parseDoubleQuotePairs();
+}
+if (!config.disableGuillemets)
+{
+	parseGuillemets();
+}
+if (!config.disableMathSymbols)
+{
+	parseNotEqualSign();
+	parseSymbolsAfterDigits();
+	parseFractions();
+}
+if (!config.disablePunctuation)
+{
+	parseDashesAndEllipses();
+}
+if (!config.disableSymbols)
+{
+	parseSymbolsInParentheses();
+}
 
 /**
 * Add a fancy replacement tag
@@ -68,6 +84,46 @@ function parseDoubleQuotePairs()
 }
 
 /**
+* Parse vulgar fractions
+*/
+function parseFractions()
+{
+	if (text.indexOf('/') < 0)
+	{
+		return;
+	}
+
+	/** @const */
+	var map = {
+		'0/3'  : "\u2189",
+		'1/10' : "\u2152",
+		'1/2'  : "\u00BD",
+		'1/3'  : "\u2153",
+		'1/4'  : "\u00BC",
+		'1/5'  : "\u2155",
+		'1/6'  : "\u2159",
+		'1/7'  : "\u2150",
+		'1/8'  : "\u215B",
+		'1/9'  : "\u2151",
+		'2/3'  : "\u2154",
+		'2/5'  : "\u2156",
+		'3/4'  : "\u00BE",
+		'3/5'  : "\u2157",
+		'3/8'  : "\u215C",
+		'4/5'  : "\u2158",
+		'5/6'  : "\u215A",
+		'5/8'  : "\u215D",
+		'7/8'  : "\u215E"
+	};
+
+	var m, regexp = /\b(?:0\/3|1\/(?:[2-9]|10)|2\/[35]|3\/[458]|4\/5|5\/[68]|7\/8)\b/g;
+	while (m = regexp.exec(text))
+	{
+		addTag(+m['index'], m[0].length, map[m[0]]);
+	}
+}
+
+/**
 * Parse guillemets-style quotation marks
 */
 function parseGuillemets()
@@ -89,18 +145,20 @@ function parseGuillemets()
 
 /**
 * Parse the not equal sign
+*
+* Supports != and =/=
 */
 function parseNotEqualSign()
 {
-	if (text.indexOf('!=') < 0)
+	if (text.indexOf('!=') < 0 && text.indexOf('=/=') < 0)
 	{
 		return;
 	}
 
-	var m, regexp = /\b !=(?= \b)/g;
+	var m, regexp = /\b (?:!|=\/)=(?= \b)/g;
 	while (m = regexp.exec(text))
 	{
-		addTag(+m['index'] + 1, 2, "\u2260");
+		addTag(+m['index'] + 1, m[0].length - 1, "\u2260");
 	}
 }
 
--- a/vendor/s9e/text-formatter/src/Plugins/FancyPants/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/FancyPants/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\FancyPants;
@@ -17,14 +17,24 @@ class Parser extends ParserBase
 		$this->text           = $text;
 		$this->hasSingleQuote = (\strpos($text, "'") !== \false);
 		$this->hasDoubleQuote = (\strpos($text, '"') !== \false);
-		$this->parseSingleQuotes();
-		$this->parseSymbolsAfterDigits();
-		$this->parseSingleQuotePairs();
-		$this->parseDoubleQuotePairs();
-		$this->parseDashesAndEllipses();
-		$this->parseSymbolsInParentheses();
-		$this->parseNotEqualSign();
-		$this->parseGuillemets();
+		if (empty($this->config['disableQuotes']))
+		{
+			$this->parseSingleQuotes();
+			$this->parseSingleQuotePairs();
+			$this->parseDoubleQuotePairs();
+		}
+		if (empty($this->config['disableGuillemets']))
+			$this->parseGuillemets();
+		if (empty($this->config['disableMathSymbols']))
+		{
+			$this->parseNotEqualSign();
+			$this->parseSymbolsAfterDigits();
+			$this->parseFractions();
+		}
+		if (empty($this->config['disablePunctuation']))
+			$this->parseDashesAndEllipses();
+		if (empty($this->config['disableSymbols']))
+			$this->parseSymbolsInParentheses();
 		unset($this->text);
 	}
 	protected function addTag($tagPos, $tagLen, $chr, $prio = 0)
@@ -56,6 +66,36 @@ class Parser extends ParserBase
 				"\xE2\x80\x9D"
 			);
 	}
+	protected function parseFractions()
+	{
+		if (\strpos($this->text, '/') === \false)
+			return;
+		$map = array(
+			'1/4'  => "\xC2\xBC",
+			'1/2'  => "\xC2\xBD",
+			'3/4'  => "\xC2\xBE",
+			'1/7'  => "\xE2\x85\x90",
+			'1/9'  => "\xE2\x85\x91",
+			'1/10' => "\xE2\x85\x92",
+			'1/3'  => "\xE2\x85\x93",
+			'2/3'  => "\xE2\x85\x94",
+			'1/5'  => "\xE2\x85\x95",
+			'2/5'  => "\xE2\x85\x96",
+			'3/5'  => "\xE2\x85\x97",
+			'4/5'  => "\xE2\x85\x98",
+			'1/6'  => "\xE2\x85\x99",
+			'5/6'  => "\xE2\x85\x9A",
+			'1/8'  => "\xE2\x85\x9B",
+			'3/8'  => "\xE2\x85\x9C",
+			'5/8'  => "\xE2\x85\x9D",
+			'7/8'  => "\xE2\x85\x9E",
+			'0/3'  => "\xE2\x86\x89"
+		);
+		$regexp = '/\\b(?:0\\/3|1\\/(?:[2-9]|10)|2\\/[35]|3\\/[458]|4\\/5|5\\/[68]|7\\/8)\\b/S';
+		\preg_match_all($regexp, $this->text, $matches, \PREG_OFFSET_CAPTURE);
+		foreach ($matches[0] as $m)
+			$this->addTag($m[1], \strlen($m[0]), $map[$m[0]]);
+	}
 	protected function parseGuillemets()
 	{
 		if (\strpos($this->text, '<<') === \false)
@@ -71,12 +111,12 @@ class Parser extends ParserBase
 	}
 	protected function parseNotEqualSign()
 	{
-		if (\strpos($this->text, '!=') === \false)
+		if (\strpos($this->text, '!=') === \false && \strpos($this->text, '=/=') === \false)
 			return;
-		$regexp = '/\\b !=(?= \\b)/';
+		$regexp = '/\\b (?:!|=\\/)=(?= \\b)/';
 		\preg_match_all($regexp, $this->text, $matches, \PREG_OFFSET_CAPTURE);
 		foreach ($matches[0] as $m)
-			$this->addTag($m[1] + 1, 2, "\xE2\x89\xA0");
+			$this->addTag($m[1] + 1, \strlen($m[0]) - 1, "\xE2\x89\xA0");
 	}
 	protected function parseQuotePairs($regexp, $leftQuote, $rightQuote)
 	{
--- a/vendor/s9e/text-formatter/src/Plugins/HTMLComments/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/HTMLComments/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\HTMLComments;
--- a/vendor/s9e/text-formatter/src/Plugins/HTMLComments/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/HTMLComments/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\HTMLComments;
--- a/vendor/s9e/text-formatter/src/Plugins/HTMLElements/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/HTMLElements/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\HTMLElements;
@@ -26,6 +26,7 @@ class Configurator extends ConfiguratorBase
 		'href'       => '#url',
 		'icon'       => '#url',
 		'longdesc'   => '#url',
+		'manifest'   => '#url',
 		'poster'     => '#url',
 		'src'        => '#url'
 	);
--- a/vendor/s9e/text-formatter/src/Plugins/HTMLElements/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/HTMLElements/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\HTMLElements;
--- a/vendor/s9e/text-formatter/src/Plugins/HTMLEntities/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/HTMLEntities/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\HTMLEntities;
--- a/vendor/s9e/text-formatter/src/Plugins/HTMLEntities/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/HTMLEntities/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\HTMLEntities;
--- a/vendor/s9e/text-formatter/src/Plugins/Keywords/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Keywords/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Keywords;
--- a/vendor/s9e/text-formatter/src/Plugins/Keywords/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Keywords/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Keywords;
--- a/vendor/s9e/text-formatter/src/Plugins/Litedown/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Litedown/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Litedown;
--- a/vendor/s9e/text-formatter/src/Plugins/Litedown/Parser.js
+++ b/vendor/s9e/text-formatter/src/Plugins/Litedown/Parser.js
@@ -66,7 +66,7 @@ function addInlineCodeTags(left, right)
 function addLinkTag(startTagPos, endTagPos, endTagLen, linkInfo)
 {
 	// Give the link a slightly worse priority if this is a implicit reference and a slightly
-	// better priority if it's an explicit reference or an inline link or  to give it precedence
+	// better priority if it's an explicit reference or an inline link or to give it precedence
 	// over possible BBCodes such as [b](https://en.wikipedia.org/wiki/B)
 	var priority = (endTagLen === 1) ? 1 : -1;
 
--- a/vendor/s9e/text-formatter/src/Plugins/Litedown/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Litedown/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Litedown;
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed;
@@ -21,6 +21,7 @@ class Configurator extends ConfiguratorBase
 {
 	public $allowedFilters = array(
 		'hexdec',
+		'stripslashes',
 		'urldecode'
 	);
 	protected $appendTemplate = '';
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/Collections/CachedDefinitionCollection.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/Collections/CachedDefinitionCollection.php
@@ -2,19 +2,19 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed\Configurator\Collections;
 class CachedDefinitionCollection extends SiteDefinitionCollection
 {
 	protected $items = array(
-		'abcnews'=>array('extract'=>'!abcnews\\.go\\.com/[^/]+/video/[^/]+-(?\'id\'\\d+)!','host'=>'abcnews.go.com','iframe'=>array('height'=>'360','src'=>'//abcnews.go.com/video/embed?id={@id}','width'=>'640'),'name'=>'ABC News','tags'=>array('news')),
+		'abcnews'=>array('extract'=>'!abcnews\\.go\\.com/(?:video/embed\\?id=|[^/]+/video/[^/]+-)(?\'id\'\\d+)!','host'=>'abcnews.go.com','iframe'=>array('height'=>'360','src'=>'//abcnews.go.com/video/embed?id={@id}','width'=>'640'),'name'=>'ABC News','tags'=>array('news')),
 		'amazon'=>array('extract'=>array('#/(?:dp|gp/product)/(?\'id\'[A-Z0-9]+)#','#amazon\\.(?:co\\.)?(?\'tld\'ca|de|es|fr|it|jp|uk)#'),'host'=>array('amazon.ca','amazon.co.uk','amazon.co.jp','amazon.com','amazon.de','amazon.es','amazon.fr','amazon.it'),'iframe'=>array('height'=>'240','src'=>'//<xsl:choose><xsl:when test="@tld=\'es\'or@tld=\'it\'">rcm-eu.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=FFFFFF&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;p=8&amp;l=as1&amp;f=ifr&amp;asins=<xsl:value-of select="@id"/>&amp;o=<xsl:choose><xsl:when test="@tld=\'es\'">30</xsl:when><xsl:otherwise>29</xsl:otherwise></xsl:choose>&amp;t=<xsl:choose><xsl:when test="@tld=\'es\'and$AMAZON_ASSOCIATE_TAG_ES"><xsl:value-of select="$AMAZON_ASSOCIATE_TAG_ES"/></xsl:when><xsl:when test="@tld=\'it\'and$AMAZON_ASSOCIATE_TAG_IT"><xsl:value-of select="$AMAZON_ASSOCIATE_TAG_IT"/></xsl:when><xsl:otherwise>_</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>ws-<xsl:choose><xsl:when test="@tld=\'jp\'">fe</xsl:when><xsl:when test="@tld and contains(\'desfrituk\',@tld)">eu</xsl:when><xsl:otherwise>na</xsl:otherwise></xsl:choose>.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=<xsl:choose><xsl:when test="@tld"><xsl:value-of select="translate(@tld,\'acdefijkprstu\',\'ACDEFIJBPRSTG\')"/></xsl:when><xsl:otherwise>US</xsl:otherwise></xsl:choose>&amp;ad_type=product_link&amp;tracking_id=<xsl:choose><xsl:when test="@tld=\'ca\'and$AMAZON_ASSOCIATE_TAG_CA"><xsl:value-of select="$AMAZON_ASSOCIATE_TAG_CA"/></xsl:when><xsl:when test="@tld=\'de\'and$AMAZON_ASSOCIATE_TAG_DE"><xsl:value-of select="$AMAZON_ASSOCIATE_TAG_DE"/></xsl:when><xsl:when test="@tld=\'fr\'and$AMAZON_ASSOCIATE_TAG_FR"><xsl:value-of select="$AMAZON_ASSOCIATE_TAG_FR"/></xsl:when><xsl:when test="@tld=\'jp\'and$AMAZON_ASSOCIATE_TAG_JP"><xsl:value-of select="$AMAZON_ASSOCIATE_TAG_JP"/></xsl:when><xsl:when test="@tld=\'uk\'and$AMAZON_ASSOCIATE_TAG_UK"><xsl:value-of select="$AMAZON_ASSOCIATE_TAG_UK"/></xsl:when><xsl:when test="$AMAZON_ASSOCIATE_TAG"><xsl:value-of select="$AMAZON_ASSOCIATE_TAG"/></xsl:when><xsl:otherwise>_</xsl:otherwise></xsl:choose>&amp;marketplace=amazon&amp;region=<xsl:choose><xsl:when test="@tld"><xsl:value-of select="translate(@tld,\'acdefijkprstu\',\'ACDEFIJBPRSTG\')"/></xsl:when><xsl:otherwise>US</xsl:otherwise></xsl:choose>&amp;asins=<xsl:value-of select="@id"/>&amp;show_border=true&amp;link_opens_in_new_window=true</xsl:otherwise></xsl:choose>','width'=>'120'),'name'=>'Amazon Product'),
-		'audioboom'=>array('extract'=>'!audioboo(?:\\.f|m\\.co)m/boos/(?\'id\'\\d+)!','host'=>array('audioboo.fm','audioboom.com'),'iframe'=>array('height'=>'150','max-width'=>'700','src'=>'//audioboom.com/boos/{@id}/embed/v3','width'=>'100%'),'name'=>'audioBoom','tags'=>array('podcasts')),
-		'audiomack'=>array('choose'=>array('otherwise'=>array('iframe'=>array('height'=>'110','max-width'=>'900','src'=>'//www.audiomack.com/embed4/{@id}','width'=>'100%')),'when'=>array('iframe'=>array('height'=>'340','max-width'=>'900','src'=>'//www.audiomack.com/embed4-album/{@id}','width'=>'100%'),'test'=>'@mode=\'album\'')),'extract'=>'!audiomack\\.com/(?\'mode\'album|song)/(?\'id\'[-\\w]+/[-\\w]+)!','host'=>'audiomack.com','name'=>'Audiomack','tags'=>array('music')),
+		'audioboom'=>array('extract'=>'!audioboo(?:\\.f|m\\.co)m/(?:boo|post)s/(?\'id\'\\d+)!','host'=>array('audioboo.fm','audioboom.com'),'iframe'=>array('height'=>'150','max-width'=>'700','src'=>'//audioboom.com/posts/{@id}/embed/v3','width'=>'100%'),'name'=>'audioBoom','tags'=>array('podcasts')),
+		'audiomack'=>array('choose'=>array('otherwise'=>array('iframe'=>array('height'=>'252','max-width'=>'900','src'=>'https://www.audiomack.com/embed/song/{@id}','width'=>'100%')),'when'=>array('iframe'=>array('height'=>'400','max-width'=>'900','src'=>'https://www.audiomack.com/embed/album/{@id}','width'=>'100%'),'test'=>'@mode=\'album\'')),'extract'=>'!audiomack\\.com/(?\'mode\'album|song)/(?\'id\'[-\\w]+/[-\\w]+)!','host'=>'audiomack.com','name'=>'Audiomack','tags'=>array('music')),
 		'bandcamp'=>array('host'=>'bandcamp.com','iframe'=>array('height'=>'400','src'=>'//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/<xsl:choose><xsl:when test="@album_id">album=<xsl:value-of select="@album_id"/><xsl:if test="@track_num">/t=<xsl:value-of select="@track_num"/></xsl:if></xsl:when><xsl:otherwise>track=<xsl:value-of select="@track_id"/></xsl:otherwise></xsl:choose>','width'=>'400'),'name'=>'Bandcamp','scrape'=>array(array('extract'=>'!/album=(?\'album_id\'\\d+)!','match'=>'!bandcamp\\.com/album/.!'),array('extract'=>array('!"album_id":(?\'album_id\'\\d+)!','!"track_num":(?\'track_num\'\\d+)!','!/track=(?\'track_id\'\\d+)!'),'match'=>'!bandcamp\\.com/track/.!')),'tags'=>array('music')),
-		'bbcnews'=>array('host'=>'bbc.com','iframe'=>array('src'=>'//www.bbc.com<xsl:choose><xsl:when test="starts-with(@playlist,\'/news/\')and contains(@playlist,\'A\')"><xsl:value-of select="substring-before(@playlist,\'A\')"/></xsl:when><xsl:otherwise>/news/<xsl:value-of select="@id"/></xsl:otherwise></xsl:choose>/embed'),'name'=>'BBC News','scrape'=>array('extract'=>'!bbc\\.com\\\\/news\\\\/(?\'id\'[-\\w]+)\\\\/embed!','match'=>'!bbc\\.com/news/\\w+!'),'tags'=>array('news')),
+		'bbcnews'=>array('attributes'=>array('id'=>array('postFilter'=>'stripslashes')),'host'=>'bbc.com','iframe'=>array('src'=>'//www.bbc.com<xsl:choose><xsl:when test="starts-with(@playlist,\'/news/\')and contains(@playlist,\'A\')"><xsl:value-of select="substring-before(@playlist,\'A\')"/></xsl:when><xsl:otherwise>/news/<xsl:value-of select="@id"/></xsl:otherwise></xsl:choose>/embed'),'name'=>'BBC News','scrape'=>array('extract'=>'!bbc\\.com\\\\/news\\\\/(?\'id\'[-\\\\\\w/]+)\\\\/embed!','match'=>'!bbc\\.com/news/\\w!'),'tags'=>array('news')),
 		'blab'=>array('extract'=>'#blab\\.im/(?!about$|live$|replay$|scheduled$|search\\?)(?\'id\'[-\\w]+)#','host'=>'blab.im','iframe'=>array('height'=>'400','src'=>'https://blab.im/{@id}','width'=>'400'),'name'=>'Blab','tags'=>array('social')),
 		'bleacherreport'=>array('host'=>'bleacherreport.com','iframe'=>array('height'=>'360','src'=>'//bleacherreport.com/video_embed?id={@id}','width'=>'640'),'name'=>'Bleacher Report videos','scrape'=>array('extract'=>'!id="video-(?\'id\'[-\\w]+)!','match'=>'!/articles/.!'),'tags'=>array('sports')),
 		'break'=>array('extract'=>'!break\\.com/video/.*-(?\'id\'\\d+)$!','host'=>'break.com','iframe'=>array('height'=>'280','src'=>'//break.com/embed/{@id}','width'=>'464'),'name'=>'Break','tags'=>array('entertainment')),
@@ -40,18 +40,19 @@ class CachedDefinitionCollection extends SiteDefinitionCollection
 		'gametrailers'=>array('host'=>'gametrailers.com','iframe'=>array('height'=>'360','src'=>'<xsl:choose><xsl:when test="starts-with(@id,\'mgid:\')">//media.mtvnservices.com/embed/<xsl:value-of select="@id"/></xsl:when><xsl:otherwise>//embed.gametrailers.com/embed/<xsl:value-of select="@id"/>?embed=1&amp;suppressBumper=1</xsl:otherwise></xsl:choose>','width'=>'640'),'name'=>'GameTrailers','scrape'=>array('extract'=>'!embed/(?\'id\'\\d+)!','match'=>'!gametrailers\\.com/(?:full-episode|review|video)s/!'),'tags'=>array('gaming')),
 		'getty'=>array('attributes'=>array('height'=>array('defaultValue'=>'360'),'width'=>array('defaultValue'=>'640')),'extract'=>array('!gty\\.im/(?\'id\'\\d+)!','!gettyimages\\.[.\\w]+/detail(?=/).*?/(?\'id\'\\d+)!','!#[-\\w]*picture-id(?\'id\'\\d+)$!'),'host'=>array('gettyimages.be','gettyimages.cn','gettyimages.co.jp','gettyimages.co.uk','gettyimages.com','gettyimages.com.au','gettyimages.de','gettyimages.dk','gettyimages.es','gettyimages.fr','gettyimages.ie','gettyimages.it','gettyimages.nl','gettyimages.pt','gettyimages.se','gty.im'),'iframe'=>array('height'=>'{@height}','padding-height'=>'49','src'=>'//embed.gettyimages.com/embed/{@id}?et={@et}&sig={@sig}','width'=>'{@width}'),'name'=>'Getty Images','scrape'=>array('extract'=>array('!"height":[ "]*(?\'height\'\\d+)!','!"width":[ "]*(?\'width\'\\d+)!','!et=(?\'et\'[-=\\w]+)!','!sig=(?\'sig\'[-=\\w]+)!'),'url'=>'http://embed.gettyimages.com/preview/{@id}'),'tags'=>array('images')),
 		'gfycat'=>array('attributes'=>array('height'=>array('defaultValue'=>'315'),'width'=>array('defaultValue'=>'560')),'extract'=>'!gfycat\\.com/(?\'id\'\\w+)!','host'=>'gfycat.com','iframe'=>array('height'=>'{@height}','src'=>'//gfycat.com/iframe/{@id}','width'=>'{@width}'),'name'=>'Gfycat','scrape'=>array('extract'=>array('!video:height" content="(?\'height\'\\d+)!','!video:width" content="(?\'width\'\\d+)!'),'url'=>'http://gfycat.com/{@id}'),'tags'=>array('images')),
+		'gifs'=>array('attributes'=>array('height'=>array('defaultValue'=>'360'),'width'=>array('defaultValue'=>'640')),'extract'=>'!gifs\\.com/(?:gif/)?(?\'id\'\\w+)!','host'=>'gifs.com','iframe'=>array('height'=>'{@height}','src'=>'//gifs.com/embed/{@id}','width'=>'{@width}'),'name'=>'Gifs.com','scrape'=>array('extract'=>array('!meta property="og:image:width" content="(?\'width\'\\d+)!','!meta property="og:image:height" content="(?\'height\'\\d+)!'),'url'=>'https://gifs.com/gif/{@id}'),'tags'=>array('images')),
 		'gist'=>array('extract'=>'!gist\\.github\\.com/(?\'id\'(?:\\w+/)?[\\da-f]+(?:/[\\da-f]+)?)!','host'=>'github.com','iframe'=>array('height'=>'180','onload'=>'var a=Math.random();window.addEventListener(\'message\',function(b){{if(b.data.id==a)style.height=b.data.height+\'px\'}});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')','scrolling'=>'','src'=>'https://s9e.github.io/iframe/gist.min.html#{@id}','width'=>'100%'),'name'=>'GitHub Gist (via custom iframe)'),
 		'globalnews'=>array('extract'=>'!globalnews\\.ca/video/(?\'id\'\\d+)!','host'=>'globalnews.ca','iframe'=>array('height'=>'377','src'=>'//globalnews.ca/video/embed/{@id}/','width'=>'560'),'name'=>'Global News','tags'=>array('.ca','news')),
 		'gofundme'=>array('extract'=>'@gofundme\\.com/(?\'id\'\\w+)(?![^#?])@','flash'=>array('flashvars'=>'page={@id}','height'=>'338','src'=>'//funds.gofundme.com/Widgetflex.swf','width'=>'258'),'host'=>'gofundme.com','name'=>'GoFundMe','tags'=>array('fundraising')),
 		'googledrive'=>array('extract'=>'!drive\\.google\\.com/.*?file/d/(?\'id\'[-\\w]+)!','host'=>'drive.google.com','iframe'=>array('height'=>'480','src'=>'//drive.google.com/file/d/{@id}/preview','width'=>'640'),'name'=>'Google Drive','tags'=>array('documents','images','videos')),
 		'googleplus'=>array('attributes'=>array('name'=>array('postFilter'=>'urldecode')),'extract'=>'!//plus\\.google\\.com/(?:u/\\d+/)?(?:\\+(?\'name\'[^/]+)|(?\'oid\'\\d+))/posts/(?\'pid\'\\w+)!','host'=>'plus.google.com','iframe'=>array('height'=>'240','onload'=>'var a=Math.random();window.addEventListener(\'message\',function(b){{if(b.data.id==a)style.height=b.data.height+\'px\'}});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/googleplus.min.html#<xsl:choose><xsl:when test="@oid"><xsl:value-of select="@oid"/></xsl:when><xsl:otherwise>+<xsl:value-of select="@name"/></xsl:otherwise></xsl:choose>/posts/<xsl:value-of select="@pid"/>','width'=>'450'),'name'=>'Google+','tags'=>array('social')),
-		'googlesheets'=>array('extract'=>'!docs\\.google\\.com/spreadsheet(?:/ccc\\?key=|s/d/)(?\'id\'[-\\w]+)[^#]*(?:#gid=(?\'gid\'\\d+))?!','host'=>'docs.google.com','iframe'=>array('height'=>'500','src'=>'https://docs.google.com/spreadsheet/ccc?key={@id}&widget=true&headers=false&rm=minimal#gid={@gid}','style'=>array('resize'=>'vertical'),'width'=>'100%'),'name'=>'Google Sheets','tags'=>array('documents')),
+		'googlesheets'=>array('extract'=>'!docs\\.google\\.com/spreadsheet(?:/ccc\\?key=|s/d/)(?\'id\'[-\\w]+)[^#]*(?:#gid=(?\'gid\'\\d+))?!','host'=>'docs.google.com','iframe'=>array('height'=>'500','src'=>'https://docs.google.com/spreadsheets/d/{@id}/pubhtml?widget=true&headers=false#gid={@gid}','style'=>array('resize'=>'vertical'),'width'=>'100%'),'name'=>'Google Sheets','tags'=>array('documents')),
 		'healthguru'=>array('host'=>'healthguru.com','iframe'=>array('src'=>'//www.healthguru.com/embed/{@id}'),'name'=>'Healthguru','scrape'=>array('extract'=>'!healthguru\\.com/embed/(?\'id\'\\w+)!','match'=>'!healthguru\\.com/(?:content/)?video/.!'),'tags'=>array('health')),
 		'hudl'=>array('extract'=>array('!hudl\\.com/athlete/(?\'athlete\'\\d+)/highlights/(?\'highlight\'[\\da-f]+)!','!hudl\\.com/video/\\d+/(?\'athlete\'\\d+)/(?\'highlight\'[\\da-f]+)!'),'host'=>'hudl.com','iframe'=>array('height'=>'360','src'=>'//www.hudl.com/embed/athlete/{@athlete}/highlights/{@highlight}','width'=>'640'),'name'=>'Hudl','scrape'=>array('extract'=>'!hudl\\.com/video/\\d+/(?\'athlete\'\\d+)/(?\'highlight\'[\\da-f]+)!','match'=>'!hudl\\.com/v/!'),'tags'=>array('sports')),
 		'hulu'=>array('host'=>'hulu.com','iframe'=>array('height'=>'360','src'=>'https://secure.hulu.com/embed/{@id}','width'=>'640'),'name'=>'Hulu','scrape'=>array('extract'=>'!eid=(?\'id\'[-\\w]+)!','match'=>'!hulu\\.com/watch/!')),
 		'humortvnl'=>array('extract'=>'!humortv\\.vara\\.nl/\\w+\\.(?\'id\'[-.\\w]+)\\.html!','host'=>'humortv.vara.nl','iframe'=>array('src'=>'//humortv.vara.nl/embed.{@id}.html'),'name'=>'HumorTV','tags'=>array('.nl','entertainment')),
-		'ign'=>array('extract'=>'!(?\'id\'https?://.*?ign\\.com/videos/.+)!','host'=>'ign.com','iframe'=>array('height'=>'263','src'=>'//widgets.ign.com/video/embed/content.html?url={@id}','width'=>'468'),'name'=>'IGN','tags'=>array('gaming')),
-		'imdb'=>array('extract'=>'!imdb\\.com/[/\\w]+/vi(?\'id\'\\d+)!','host'=>'imdb.com','iframe'=>array('src'=>'//www.imdb.com/videoembed/vi{@id}'),'name'=>'IMDb','tags'=>array('movies')),
+		'ign'=>array('extract'=>'!(?\'id\'https?://.*?ign\\.com/videos/.+)!i','host'=>'ign.com','iframe'=>array('height'=>'263','src'=>'//widgets.ign.com/video/embed/content.html?url={@id}','width'=>'468'),'name'=>'IGN','tags'=>array('gaming')),
+		'imdb'=>array('extract'=>'!imdb\\.com/[/\\w]+/vi(?\'id\'\\d+)!','host'=>'imdb.com','iframe'=>array('src'=>'//www.imdb.com/video/imdb/vi{@id}/imdb/embed?autoplay=false&width=640'),'name'=>'IMDb','tags'=>array('movies')),
 		'imgur'=>array('attributes'=>array('type'=>array('type'=>'alnum')),'extract'=>'@imgur\\.com/(?!r/|user/)(?:gallery/)?(?\'id\'(?:a/)?\\w+)(?!\\w|\\.(?:pn|jp)g)@','host'=>'imgur.com','iframe'=>array('height'=>'450','onload'=>'var b=Math.random();window.addEventListener(\'message\',function(a){{a.data.id==b&&(style.height=a.data.height+\'px\',style.width=a.data.width+\'px\')}});contentWindow.postMessage(\'s9e:\'+b,\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/imgur.min.html#<xsl:if test="@type=\'album\'and not(starts-with(@id,\'a/\'))">a/</xsl:if><xsl:value-of select="@id"/>','width'=>'568'),'name'=>'Imgur','scrape'=>array('extract'=>array('!image\\s*:\\s*.*?"is_(?\'type\'album)":true!','!<div id="(?\'type\'album)-!','!class="(?\'type\'album)-image!'),'match'=>'@imgur\\.com/gallery/\\w@'),'tags'=>array('images')),
 		'indiegogo'=>array('extract'=>'!indiegogo\\.com/projects/(?\'id\'[-\\w]+)!','host'=>'indiegogo.com','iframe'=>array('height'=>'445','src'=>'//www.indiegogo.com/project/{@id}/embedded','width'=>'222'),'name'=>'Indiegogo','tags'=>array('fundraising')),
 		'instagram'=>array('extract'=>'!instagram\\.com/p/(?\'id\'[-\\w]+)!','host'=>'instagram.com','iframe'=>array('height'=>'640','onload'=>'var a=Math.random();window.addEventListener(\'message\',function(b){{if(b.data.id==a)style.height=b.data.height+\'px\'}});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/instagram.min.html#{@id}','width'=>'640'),'name'=>'Instagram','tags'=>array('social')),
@@ -64,7 +65,7 @@ class CachedDefinitionCollection extends SiteDefinitionCollection
 		'libsyn'=>array('host'=>'libsyn.com','iframe'=>array('height'=>'45','max-width'=>'900','src'=>'//html5-player.libsyn.com/embed/episode/id/{@id}/height/45/width/900/theme/standard/direction/no/autoplay/no/autonext/no/thumbnail/no/preload/no/no_addthis/no/','width'=>'100%'),'name'=>'Libsyn','scrape'=>array('extract'=>'!embed/episode/id/(?\'id\'\\d+)!','match'=>'@(?!\\.mp3)....$@'),'tags'=>array('podcasts')),
 		'livecap'=>array('extract'=>'!livecap.tv/[st]/(?\'channel\'\\w+)/(?\'id\'\\w+)!','host'=>'livecap.tv','iframe'=>array('height'=>'360','src'=>'https://www.livecap.tv/s/embed/{@channel}/{@id}','width'=>'640'),'name'=>'LiveCap','tags'=>array('gaming')),
 		'liveleak'=>array('extract'=>'!liveleak\\.com/view\\?i=(?\'id\'[a-f_0-9]+)!','host'=>'liveleak.com','iframe'=>array('height'=>'360','src'=>'//www.liveleak.com/ll_embed?i={@id}','width'=>'640'),'name'=>'LiveLeak','tags'=>array('videos')),
-		'livestream'=>array('extract'=>array('!livestream\\.com/accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!','!/videos/(?\'video_id\'\\d+)!','!original\\.livestream\\.com/(?\'channel\'\\w+)/video\\?clipId=(?\'clip_id\'[-\\w]+)!'),'host'=>array('livestre.am','livestream.com'),'iframe'=>array('height'=>'360','src'=>'<xsl:choose><xsl:when test="@clip_id">//cdn.livestream.com/embed/<xsl:value-of select="@channel"/>?layout=4&amp;autoplay=false&amp;clip=<xsl:value-of select="@clip_id"/></xsl:when><xsl:otherwise>//livestream.com/accounts/<xsl:value-of select="@account_id"/>/events/<xsl:value-of select="@event_id"/><xsl:if test="@video_id">/videos/<xsl:value-of select="@video_id"/></xsl:if>/player?autoPlay=false</xsl:otherwise></xsl:choose>','width'=>'640'),'name'=>'Livestream','scrape'=>array(array('extract'=>'!accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!'),array('extract'=>'!//original\\.livestream\\.com/(?\'channel\'\\w+)/video/(?\'clip_id\'[-\\w]+)!','match'=>'!livestre.am!')),'tags'=>array('videos')),
+		'livestream'=>array('extract'=>array('!livestream\\.com/accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!','!/videos/(?\'video_id\'\\d+)!','!original\\.livestream\\.com/(?\'channel\'\\w+)/video\\?clipId=(?\'clip_id\'[-\\w]+)!'),'host'=>array('livestre.am','livestream.com'),'iframe'=>array('height'=>'360','src'=>'<xsl:choose><xsl:when test="@clip_id">//cdn.livestream.com/embed/<xsl:value-of select="@channel"/>?layout=4&amp;autoplay=false&amp;clip=<xsl:value-of select="@clip_id"/></xsl:when><xsl:otherwise>//livestream.com/accounts/<xsl:value-of select="@account_id"/>/events/<xsl:value-of select="@event_id"/><xsl:if test="@video_id">/videos/<xsl:value-of select="@video_id"/></xsl:if>/player?autoPlay=false</xsl:otherwise></xsl:choose>','width'=>'640'),'name'=>'Livestream','scrape'=>array(array('extract'=>'!accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!'),array('extract'=>'!//original\\.livestream\\.com/(?\'channel\'\\w+)/video/(?\'clip_id\'[-\\w]+)!','match'=>'!livestre.am!')),'tags'=>array('livestreaming','videos')),
 		'mailru'=>array('host'=>'my.mail.ru','iframe'=>array('height'=>'342','src'=>'//videoapi.my.mail.ru/videos/embed/{@id}.html','width'=>'560'),'name'=>'Mail.Ru','scrape'=>array('extract'=>'!mail\\.ru/video/(?\'id\'[/\\w]+)\\.html!','match'=>'!my\\.mail\\.ru/\\w+/\\w+/video/\\w+/\\d!'),'tags'=>array('.ru')),
 		'medium'=>array('extract'=>'!medium\\.com/[^/]*/(?:[-\\w]+-)?(?\'id\'[\\da-f]+)!','host'=>'medium.com','iframe'=>array('height'=>'400','onload'=>'window.addEventListener(\'message\',function(a){{a=a.data.split(\'::\');\'m\'===a[0]&&0<src.indexOf(a[1])&&a[2]&&(style.height=a[2]+\'px\')}})','src'=>'https://api.medium.com/embed?type=story&path=%2F%2F{@id}&id={translate(@id,\'abcdef\',\'111111\')}','style'=>array('border'=>'1px solid','border-color'=>'#eee #ddd #bbb','border-radius'=>'5px','box-shadow'=>'rgba(0,0,0,.15) 0 1px 3px'),'width'=>'400'),'name'=>'Medium','tags'=>array('blogging')),
 		'metacafe'=>array('extract'=>'!metacafe\\.com/watch/(?\'id\'\\d+)!','host'=>'metacafe.com','iframe'=>array('src'=>'//www.metacafe.com/embed/{@id}/'),'name'=>'Metacafe','tags'=>array('videos')),
@@ -79,16 +80,17 @@ class CachedDefinitionCollection extends SiteDefinitionCollection
 		'nhl'=>array('attributes'=>array('id'=>array('required'=>'false')),'extract'=>array('#nhl\\.com/videocenter/.*?\\Wid=(?\'id\'[-\\w]+)#','#nhl\\.com/(?:\\w+/)?video(?:/(?![ct]-)[-\\w]+)?(?:/t-(?\'t\'\\d+))?(?:/c-(?\'c\'\\d+))?#'),'host'=>'nhl.com','iframe'=>array('height'=>'360','src'=>'<xsl:choose><xsl:when test="@c or@t">//www.nhl.com/video/embed<xsl:if test="@t">/t-<xsl:value-of select="@t"/></xsl:if><xsl:if test="@c">/c-<xsl:value-of select="@c"/></xsl:if>?autostart=false</xsl:when><xsl:otherwise>//video.nhl.com/videocenter/embed?playlist=<xsl:value-of select="@id"/></xsl:otherwise></xsl:choose>','width'=>'640'),'name'=>'NHL Videos and Highlights','tags'=>array('sports')),
 		'npr'=>array('host'=>array('npr.org','n.pr'),'iframe'=>array('height'=>'228','max-width'=>'800','src'=>'//www.npr.org/player/embed/{@i}/{@m}','width'=>'100%'),'name'=>'NPR','scrape'=>array('extract'=>'!player/embed/(?\'i\'\\d+)/(?\'m\'\\d+)!','match'=>array('!npr\\.org/[/\\w]+/\\d+!','!n\\.pr/\\w!')),'tags'=>array('podcasts')),
 		'nytimes'=>array('extract'=>array('!nytimes\\.com/video/[a-z]+/(?:[a-z]+/)?(?\'id\'\\d+)!','!nytimes\\.com/video/\\d+/\\d+/\\d+/[a-z]+/(?\'id\'\\d+)!'),'host'=>'nytimes.com','iframe'=>array('height'=>'400','src'=>'//graphics8.nytimes.com/video/players/offsite/index.html?videoId={@id}','width'=>'585'),'name'=>'The New York Times Video','scrape'=>array('extract'=>'!/video/movies/(?\'id\'\\d+)!','match'=>'!nytimes\\.com/movie(?:s/movie)?/(?\'playlist\'\\d+)/[-\\w]+/trailers!','url'=>'http://www.nytimes.com/svc/video/api/playlist/{@playlist}?externalId=true'),'tags'=>array('movies','news')),
-		'oddshot'=>array('extract'=>'!oddshot.tv/shot/(?\'id\'[-\\w]+)!','host'=>'oddshot.tv','iframe'=>array('src'=>'//oddshot.tv/shot/{@id}/embed'),'name'=>'Oddshot','tags'=>array('gaming')),
+		'oddshot'=>array('extract'=>'!oddshot.tv/s/(?\'id\'[-\\w]+)!','host'=>'oddshot.tv','iframe'=>array('src'=>'https://oddshot.tv/s/{@id}/embed'),'name'=>'Oddshot','tags'=>array('gaming')),
 		'pastebin'=>array('extract'=>'@pastebin\\.com/(?!u/)(?:\\w+(?:\\.php\\?i=|/))?(?\'id\'\\w+)@','host'=>'pastebin.com','iframe'=>array('height'=>'300','scrolling'=>'','src'=>'//pastebin.com/embed_iframe.php?i={@id}','style'=>array('resize'=>'vertical'),'width'=>'100%'),'name'=>'Pastebin'),
+		'pinterest'=>array('attributes'=>array('id'=>array('regexp'=>'@^(?:\\d+|[-\\w]+/[-\\w]+)$@')),'extract'=>array('@pinterest.com/pin/(?\'id\'\\d+)@','@pinterest.com/(?!_/|discover/|explore/|news_hub/|pin/|search/)(?\'id\'[-\\w]+/[-\\w]+)@'),'host'=>'pinterest.com','iframe'=>array('height'=>'360','onload'=>'var a=Math.random();window.addEventListener(\'message\',function(b){{if(b.data.id==a)style.height=b.data.height+\'px\'}});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/pinterest.min.html#{@id}','width'=>'<xsl:choose><xsl:when test="contains(@id,\'/\')">730</xsl:when><xsl:otherwise>345</xsl:otherwise></xsl:choose>'),'name'=>'Pinterest','tags'=>array('social')),
 		'playstv'=>array('extract'=>'!plays\\.tv/video/(?\'id\'\\w+)!','host'=>'plays.tv','iframe'=>array('src'=>'//plays.tv/embeds/{@id}'),'name'=>'Plays.tv','scrape'=>array('extract'=>'!plays\\.tv/video/(?\'id\'\\w+)!','match'=>'!plays\\.tv/s/!'),'tags'=>array('gaming')),
-		'podbean'=>array('extract'=>'!podbean\\.com/site/player/index/pid/\\d+/eid/(?\'id\'\\d+)!','host'=>'podbean.com','iframe'=>array('height'=>'100','max-width'=>'900','src'=>'//www.podbean.com/media/player/audio/postId/{@id}','width'=>'100%'),'name'=>'Podbean','scrape'=>array('extract'=>'!embed/postId/(?\'id\'\\d+)!','match'=>'!podbean\\.com/e/!'),'tags'=>array('podcasts')),
+		'podbean'=>array('extract'=>'!podbean\\.com/media/(?:player/|share/pb-)(?\'id\'[-\\w]+)!','host'=>'podbean.com','iframe'=>array('height'=>'100','max-width'=>'900','src'=>'//www.podbean.com/media/player/{@id}','width'=>'100%'),'name'=>'Podbean','scrape'=>array('extract'=>'!podbean.com/media/player/(?\'id\'[-\\w]+)!','match'=>'!podbean\\.com/e/!'),'tags'=>array('podcasts')),
 		'prezi'=>array('extract'=>'#//prezi\\.com/(?!(?:a(?:bout|mbassadors)|c(?:o(?:llaborate|mmunity|ntact)|reate)|exp(?:erts|lore)|ip(?:ad|hone)|jobs|l(?:ear|ogi)n|m(?:ac|obility)|pr(?:es(?:s|ent)|icing)|recommend|support|user|windows|your)/)(?\'id\'\\w+)/#','host'=>'prezi.com','iframe'=>array('height'=>'400','src'=>'//prezi.com/embed/{@id}/','width'=>'550'),'name'=>'Prezi','tags'=>array('presentations')),
 		'reddit'=>array('extract'=>'!(?\'path\'/r/\\w+/comments/\\w+/(?:\\w+/\\w+)?)!','host'=>'reddit.com','iframe'=>array('height'=>'165','onload'=>'var a=Math.random();window.addEventListener(\'message\',function(b){{if(b.data.id==a)style.height=b.data.height+\'px\'}});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/reddit.min.html#{@path}','width'=>'800'),'name'=>'Reddit threads and comments','tags'=>array('social')),
 		'rutube'=>array('extract'=>'!rutube\\.ru/tracks/(?\'id\'\\d+)!','host'=>'rutube.ru','iframe'=>array('height'=>'405','src'=>'//rutube.ru/play/embed/{@id}','width'=>'720'),'name'=>'Rutube','scrape'=>array('extract'=>'!rutube\\.ru/play/embed/(?\'id\'\\d+)!','match'=>'!rutube\\.ru/video/[0-9a-f]{32}!'),'tags'=>array('.ru')),
 		'scribd'=>array('extract'=>'!scribd\\.com/(?:mobile/)?doc(?:ument)?/(?\'id\'\\d+)!','host'=>'scribd.com','iframe'=>array('height'=>'500','src'=>'https://www.scribd.com/embeds/{@id}/content?view_mode=scroll&show_recommendations=false','style'=>array('resize'=>'vertical'),'width'=>'100%'),'name'=>'Scribd','tags'=>array('documents','presentations')),
 		'slideshare'=>array('extract'=>'!slideshare\\.net/[^/]+/[-\\w]+-(?\'id\'\\d{6,})$!','host'=>'slideshare.net','iframe'=>array('height'=>'356','src'=>'//www.slideshare.net/slideshow/embed_code/{@id}','width'=>'427'),'name'=>'SlideShare','scrape'=>array('extract'=>'!"presentationId":(?\'id\'\\d+)!','match'=>'!slideshare\\.net/[^/]+/\\w!'),'tags'=>array('presentations')),
-		'soundcloud'=>array('extract'=>array('@(?\'id\'https?://(?:api\\.)?soundcloud\\.com/(?!pages/)[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)@','@api\\.soundcloud\\.com/playlists/(?\'playlist_id\'\\d+)@','@api\\.soundcloud\\.com/tracks/(?\'track_id\'\\d+)(?:\\?secret_token=(?\'secret_token\'[-\\w]+))?@','@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/(?=s-)(?\'secret_token\'[-\\w]+)@'),'host'=>'soundcloud.com','iframe'=>array('height'=>'<xsl:choose><xsl:when test="@playlist_id or contains(@id,\'/sets/\')">450</xsl:when><xsl:otherwise>166</xsl:otherwise></xsl:choose>','max-width'=>'900','src'=>'https://w.soundcloud.com/player/?url=<xsl:choose><xsl:when test="@playlist_id">https%3A//api.soundcloud.com/playlists/<xsl:value-of select="@playlist_id"/></xsl:when><xsl:when test="@track_id">https%3A//api.soundcloud.com/tracks/<xsl:value-of select="@track_id"/>&amp;secret_token=<xsl:value-of select="@secret_token"/></xsl:when><xsl:otherwise><xsl:if test="not(contains(@id,\'://\'))">https%3A//soundcloud.com/</xsl:if><xsl:value-of select="@id"/></xsl:otherwise></xsl:choose>','width'=>'100%'),'name'=>'SoundCloud','scrape'=>array(array('extract'=>'@soundcloud:tracks:(?\'track_id\'\\d+)@','match'=>'@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/s-@'),array('extract'=>'@soundcloud://playlists:(?\'playlist_id\'\\d+)@','match'=>'@soundcloud\\.com/\\w+/sets/@')),'tags'=>array('music')),
+		'soundcloud'=>array('extract'=>array('@https?://(?:api\\.)?soundcloud\\.com/(?!pages/)(?\'id\'[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)@i','@api\\.soundcloud\\.com/playlists/(?\'playlist_id\'\\d+)@','@api\\.soundcloud\\.com/tracks/(?\'track_id\'\\d+)(?:\\?secret_token=(?\'secret_token\'[-\\w]+))?@','@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/(?=s-)(?\'secret_token\'[-\\w]+)@'),'host'=>'soundcloud.com','iframe'=>array('height'=>'<xsl:choose><xsl:when test="@playlist_id or contains(@id,\'/sets/\')">450</xsl:when><xsl:otherwise>166</xsl:otherwise></xsl:choose>','max-width'=>'900','src'=>'https://w.soundcloud.com/player/?url=<xsl:choose><xsl:when test="@playlist_id">https%3A//api.soundcloud.com/playlists/<xsl:value-of select="@playlist_id"/></xsl:when><xsl:when test="@track_id">https%3A//api.soundcloud.com/tracks/<xsl:value-of select="@track_id"/>&amp;secret_token=<xsl:value-of select="@secret_token"/></xsl:when><xsl:otherwise><xsl:if test="not(contains(@id,\'://\'))">https%3A//soundcloud.com/</xsl:if><xsl:value-of select="@id"/></xsl:otherwise></xsl:choose>','width'=>'100%'),'name'=>'SoundCloud','scrape'=>array(array('extract'=>'@soundcloud:tracks:(?\'track_id\'\\d+)@','match'=>'@soundcloud\\.com/(?!playlists/\\d|tracks/\\d)[-\\w]+/[-\\w]@'),array('extract'=>'@soundcloud://playlists:(?\'playlist_id\'\\d+)@','match'=>'@soundcloud\\.com/\\w+/sets/@')),'tags'=>array('music')),
 		'sportsnet'=>array('host'=>'sportsnet.ca','iframe'=>array('src'=>'https://images.rogersdigitalmedia.com/video_service.php?videoId={@id}&playerKey=AQ~~,AAAAAGWRwLc~,cRCmKE8Utf7OFWP38XQcokFZ80fR-u_y&autoStart=false&width=100%25&height=100%25'),'name'=>'Sportsnet','scrape'=>array('extract'=>array('/vid(?:eoId)?=(?\'id\'\\d+)/','/param name="@videoPlayer" value="(?\'id\'\\d+)"/')),'tags'=>array('.ca','sports')),
 		'spotify'=>array('extract'=>array('!(?\'uri\'spotify:(?:album|artist|user|track(?:set)?):[-,:\\w]+)!','!(?:open|play)\\.spotify\\.com/(?\'path\'(?:album|artist|track|user)/[-/\\w]+)!'),'host'=>array('open.spotify.com','play.spotify.com'),'iframe'=>array('height'=>'480','src'=>'https://embed.spotify.com/?view=coverart&amp;uri=<xsl:choose><xsl:when test="@uri"><xsl:value-of select="@uri"/></xsl:when><xsl:otherwise>spotify:<xsl:value-of select="translate(@path,\'/\',\':\')"/></xsl:otherwise></xsl:choose>','width'=>'400'),'name'=>'Spotify','scheme'=>'spotify','tags'=>array('music')),
 		'steamstore'=>array('extract'=>'!store.steampowered.com/app/(?\'id\'\\d+)!','host'=>'store.steampowered.com','iframe'=>array('height'=>'190','max-width'=>'900','src'=>'//store.steampowered.com/widget/{@id}','width'=>'100%'),'name'=>'Steam store','tags'=>array('gaming')),
@@ -100,11 +102,11 @@ class CachedDefinitionCollection extends SiteDefinitionCollection
 		'theatlantic'=>array('extract'=>'!theatlantic\\.com/video/index/(?\'id\'\\d+)!','host'=>'theatlantic.com','iframe'=>array('height'=>'360','src'=>'//www.theatlantic.com/video/iframe/{@id}/','width'=>'640'),'name'=>'The Atlantic Video','tags'=>array('news')),
 		'theguardian'=>array('extract'=>'!theguardian\\.com/(?\'id\'\\w+/video/[-/\\w]+)!','host'=>'theguardian.com','iframe'=>array('src'=>'//embed.theguardian.com/embed/video/{@id}'),'name'=>'The Guardian','tags'=>array('news')),
 		'theonion'=>array('extract'=>'!theonion\\.com/video/[-\\w]+[-,](?\'id\'\\d+)!','host'=>'theonion.com','iframe'=>array('src'=>'//www.theonion.com/video_embed/?id={@id}'),'name'=>'The Onion','tags'=>array('entertainment')),
-		'tinypic'=>array('extract'=>array('!tinypic\\.com/player\\.php\\?v=(?\'id\'\\w+)&s=(?\'s\'\\d+)!','!tinypic\\.com/r/(?\'id\'\\w+)/(?\'s\'\\d+)!'),'flash'=>array('padding-height'=>'30','src'=>'//tinypic.com/player.swf?file={@id}&s={@s}'),'host'=>'tinypic.com','name'=>'TinyPic videos','tags'=>array('images')),
+		'tinypic'=>array('extract'=>array('!tinypic\\.com/player\\.php\\?v=(?\'id\'\\w+)&s=(?\'s\'\\d+)!','!tinypic\\.com/r/(?\'id\'\\w+)/(?\'s\'\\d+)!'),'flash'=>array('padding-height'=>'30','src'=>'//tinypic.com/player.swf?file={@id}&s={@s}'),'host'=>'tinypic.com','name'=>'TinyPic videos','scrape'=>array('extract'=>'!file=(?\'id\'\\w+)&amp;s=(?\'s\'\\d+)!','match'=>'!tinypic\\.com/(?:m|usermedia)/!'),'tags'=>array('images')),
 		'tmz'=>array('extract'=>'@tmz\\.com/videos/(?\'id\'\\w+)@','host'=>'tmz.com','iframe'=>array('src'=>'//www.kaltura.com/index.php/kwidget/cache_st/133592691/wid/_591531/partner_id/591531/uiconf_id/9071262/entry_id/{@id}'),'name'=>'TMZ','tags'=>array('gossip')),
 		'traileraddict'=>array('host'=>'traileraddict.com','iframe'=>array('src'=>'//v.traileraddict.com/{@id}'),'name'=>'Trailer Addict','scrape'=>array('extract'=>'@v\\.traileraddict\\.com/(?\'id\'\\d+)@','match'=>'@traileraddict\\.com/(?!tags/)[^/]+/.@'),'tags'=>array('movies')),
 		'tumblr'=>array('extract'=>'!(?\'name\'[-\\w]+)\\.tumblr\\.com/post/(?\'id\'\\d+)!','host'=>'tumblr.com','iframe'=>array('height'=>'180','onload'=>'var a=Math.random();window.addEventListener(\'message\',function(b){{if(b.data.id==a)style.height=b.data.height+\'px\'}});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/tumblr.min.html#{@key}/{@id}','width'=>'520'),'name'=>'Tumblr','scrape'=>array('extract'=>array('!did=\\\\u0022(?\'did\'[-\\w]+)!','!embed\\\\/post\\\\/(?\'key\'[-\\w]+)!'),'match'=>'!\\w\\.tumblr\\.com/post/\\d!','url'=>'http://www.tumblr.com/oembed/1.0?url=http://{@name}.tumblr.com/post/{@id}'),'tags'=>array('social')),
-		'twitch'=>array('extract'=>array('#twitch\\.tv/(?\'channel\'\\w+)(?:/b/(?\'archive_id\'\\d+)|/c/(?\'chapter_id\'\\d+)|/v/(?\'video_id\'\\d+))?#','#t=(?\'t\'(?:(?:\\d+h)?\\d+m)?\\d+s)#','#clips\\.twitch\\.tv/(?\'channel\'\\w+)/(?\'clip_id\'\\w+)#'),'host'=>'twitch.tv','iframe'=>array('src'=>'<xsl:choose><xsl:when test="@clip_id">//clips.twitch.tv/embed?autoplay=false&amp;clip=<xsl:value-of select="@channel"/>/<xsl:value-of select="@clip_id"/></xsl:when><xsl:otherwise>//player.twitch.tv/?autoplay=false&amp;<xsl:choose><xsl:when test="@archive_id">video=a<xsl:value-of select="@archive_id"/></xsl:when><xsl:when test="@chapter_id">video=c<xsl:value-of select="@chapter_id"/></xsl:when><xsl:when test="@video_id">video=v<xsl:value-of select="@video_id"/></xsl:when><xsl:otherwise>channel=<xsl:value-of select="@channel"/></xsl:otherwise></xsl:choose><xsl:if test="@t">&amp;time=<xsl:value-of select="@t"/></xsl:if></xsl:otherwise></xsl:choose>'),'name'=>'Twitch','tags'=>array('gaming')),
+		'twitch'=>array('extract'=>array('#twitch\\.tv/(?:videos|\\w+/v)/(?\'video_id\'\\d+)?#','#www\\.twitch\\.tv/(?!videos/)(?\'channel\'\\w+)#','#t=(?\'t\'(?:(?:\\d+h)?\\d+m)?\\d+s)#','#clips\\.twitch\\.tv/(?:(?\'channel\'\\w+)/)?(?\'clip_id\'\\w+)#'),'host'=>'twitch.tv','iframe'=>array('src'=>'<xsl:choose><xsl:when test="@clip_id">//clips.twitch.tv/embed?autoplay=false&amp;clip=<xsl:if test="@channel"><xsl:value-of select="@channel"/>/</xsl:if><xsl:value-of select="@clip_id"/></xsl:when><xsl:otherwise>//player.twitch.tv/?autoplay=false&amp;<xsl:choose><xsl:when test="@video_id">video=v<xsl:value-of select="@video_id"/></xsl:when><xsl:otherwise>channel=<xsl:value-of select="@channel"/></xsl:otherwise></xsl:choose><xsl:if test="@t">&amp;time=<xsl:value-of select="@t"/></xsl:if></xsl:otherwise></xsl:choose>'),'name'=>'Twitch','tags'=>array('gaming','livestreaming')),
 		'twitter'=>array('extract'=>'@twitter\\.com/(?:#!/)?\\w+/status(?:es)?/(?\'id\'\\d+)@','host'=>'twitter.com','iframe'=>array('height'=>'186','onload'=>'var a=Math.random();window.addEventListener(\'message\',function(b){{if(b.data.id==a)style.height=b.data.height+\'px\'}});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/twitter.min.html#{@id}','style'=>array('background'=>'url(https://abs.twimg.com/favicons/favicon.ico) no-repeat 50% 50%'),'width'=>'500'),'name'=>'Twitter','tags'=>array('social')),
 		'ustream'=>array('choose'=>array('otherwise'=>array('iframe'=>array('src'=>'//www.ustream.tv/embed/{@cid}?html5ui')),'when'=>array('iframe'=>array('src'=>'//www.ustream.tv/embed/recorded/{@vid}?html5ui'),'test'=>'@vid')),'extract'=>'!ustream\\.tv/recorded/(?\'vid\'\\d+)!','host'=>'ustream.tv','name'=>'Ustream','scrape'=>array('extract'=>'!embed/(?\'cid\'\\d+)!','match'=>'#ustream\\.tv/(?!explore/|platform/|recorded/|search\\?|upcoming$|user/)(?:channel/)?[-\\w]+#'),'tags'=>array('gaming')),
 		'vbox7'=>array('extract'=>'!vbox7\\.com/play:(?\'id\'[\\da-f]+)!','host'=>'vbox7.com','iframe'=>array('src'=>'//vbox7.com/emb/external.php?vid={@id}'),'name'=>'VBOX7','tags'=>array('.bg')),
@@ -113,20 +115,20 @@ class CachedDefinitionCollection extends SiteDefinitionCollection
 		'viagame'=>array('extract'=>'!viagame\\.com/channels/[^/]+/(?\'id\'\\d+)!','host'=>'viagame.com','iframe'=>array('height'=>'392','src'=>'//www.viagame.com/embed/{@id}','width'=>'640'),'name'=>'Viagame','tags'=>array('gaming')),
 		'videodetective'=>array('extract'=>'!videodetective\\.com/\\w+/[-\\w]+/(?:trailer/P0*)?(?\'id\'\\d+)!','host'=>'videodetective.com','iframe'=>array('src'=>'//www.videodetective.com/embed/video/?options=false&autostart=false&playlist=none&publishedid={@id}'),'name'=>'Video Detective'),
 		'videomega'=>array('extract'=>'!videomega\\.tv/\\?ref=(?\'id\'\\w+)!','host'=>'videomega.tv','iframe'=>array('src'=>'//videomega.tv/iframe.php?ref={@id}'),'name'=>'Videomega','tags'=>array('videos')),
-		'vidme'=>array('attributes'=>array('height'=>array('defaultValue'=>'360'),'width'=>array('defaultValue'=>'640')),'extract'=>'!vid\\.me/(?\'id\'\\w+)!','host'=>'vid.me','iframe'=>array('height'=>'{@height}','src'=>'https://vid.me/e/{@id}','width'=>'{@width}'),'name'=>'vidme','scrape'=>array('extract'=>'!meta property="og:video:type" content="video/\\w+">\\s*<meta property="og:video:height" content="(?\'height\'\\d+)">\\s*<meta property="og:video:width" content="(?\'width\'\\d+)!'),'tags'=>array('videos')),
+		'vidme'=>array('attributes'=>array('height'=>array('defaultValue'=>'360'),'width'=>array('defaultValue'=>'640')),'host'=>'vid.me','iframe'=>array('height'=>'{@height}','src'=>'https://vid.me/e/{@id}','width'=>'{@width}'),'name'=>'vidme','scrape'=>array('extract'=>array('!maxwidth=(?\'width\'\\d+).*?maxheight=(?\'height\'\\d+)!','!vid\\.me/e/(?\'id\'\\w+)!')),'tags'=>array('videos')),
 		'vimeo'=>array('extract'=>'!vimeo\\.com/(?:channels/[^/]+/|video/)?(?\'id\'\\d+)!','host'=>'vimeo.com','iframe'=>array('src'=>'//player.vimeo.com/video/{@id}'),'name'=>'Vimeo','tags'=>array('videos')),
 		'vine'=>array('extract'=>'!vine\\.co/v/(?\'id\'[^/]+)!','host'=>'vine.co','iframe'=>array('height'=>'480','src'=>'https://vine.co/v/{@id}/embed/simple?audio=1','width'=>'480'),'name'=>'Vine','tags'=>array('social','videos')),
 		'vk'=>array('extract'=>array('!vk(?:\\.com|ontakte\\.ru)/(?:[\\w.]+\\?z=)?video(?\'oid\'-?\\d+)_(?\'vid\'\\d+)!','!vk(?:\\.com|ontakte\\.ru)/video_ext\\.php\\?oid=(?\'oid\'-?\\d+)&id=(?\'vid\'\\d+)&hash=(?\'hash\'[0-9a-f]+)!'),'host'=>array('vk.com','vkontakte.ru'),'iframe'=>array('height'=>'360','src'=>'//vk.com/video_ext.php?oid={@oid}&id={@vid}&hash={@hash}&hd=1','width'=>'607'),'name'=>'VK','scrape'=>array('extract'=>'!embed_hash=(?\'hash\'[0-9a-f]+)!','match'=>'!vk.*?video-?\\d+_\\d+!','url'=>'http://vk.com/video{@oid}_{@vid}'),'tags'=>array('.ru')),
 		'vocaroo'=>array('extract'=>'!vocaroo\\.com/i/(?\'id\'\\w+)!','flash'=>array('height'=>'44','src'=>'//vocaroo.com/player.swf?playMediaID={@id}&autoplay=0','width'=>'148'),'host'=>'vocaroo.com','name'=>'Vocaroo'),
 		'vox'=>array('extract'=>'!vox.com/.*#ooid=(?\'id\'[-\\w]+)!','host'=>'vox.com','iframe'=>array('src'=>'//player.ooyala.com/iframe.html#pbid=a637d53c5c0a43c7bf4e342886b9d8b0&ec={@id}'),'name'=>'Vox'),
 		'washingtonpost'=>array('extract'=>array('#washingtonpost\\.com/video/c/\\w+/(?\'id\'[-0-9a-f]+)#','#washingtonpost\\.com/video/[-/\\w]+/(?\'id\'[-0-9a-f]+)_video\\.html#'),'host'=>'washingtonpost.com','iframe'=>array('src'=>'//www.washingtonpost.com/video/c/embed/{@id}'),'name'=>'Washington Post Video','tags'=>array('news')),
-		'wshh'=>array('extract'=>'!worldstarhiphop\\.com/featured/(?\'id\'\\d+)!','host'=>'worldstarhiphop.com','iframe'=>array('height'=>'360','src'=>'//www.worldstarhiphop.com/embed/{@id}','width'=>'640'),'name'=>'WorldStarHipHop','scrape'=>array('extract'=>'!disqus_identifier[ =\']+(?\'id\'\\d+)!','match'=>'!worldstarhiphop\\.com/(?:\\w+/)?video\\.php\\?v=\\w+!'),'tags'=>array('videos')),
+		'wshh'=>array('extract'=>'!worldstarhiphop\\.com/featured/(?\'id\'\\d+)!','host'=>'worldstarhiphop.com','iframe'=>array('height'=>'360','src'=>'//www.worldstarhiphop.com/embed/{@id}','width'=>'640'),'name'=>'WorldStarHipHop','scrape'=>array('extract'=>'!v: ?"?(?\'id\'\\d+)!','match'=>'!worldstarhiphop\\.com/(?:\\w+/)?video\\.php\\?v=\\w+!'),'tags'=>array('videos')),
 		'wsj'=>array('extract'=>array('@wsj\\.com/[^#]*#!(?\'id\'[-0-9A-F]{36})@','@wsj\\.com/video/[^/]+/(?\'id\'[-0-9A-F]{36})@'),'host'=>'wsj.com','iframe'=>array('height'=>'288','src'=>'//video-api.wsj.com/api-video/player/iframe.html?guid={@id}','width'=>'512'),'name'=>'The Wall Street Journal Online','scrape'=>array('extract'=>'@guid=(?\'id\'[-0-9A-F]{36})@','match'=>'@on\\.wsj\\.com/\\w@'),'tags'=>array('news')),
 		'xboxclips'=>array('extract'=>'@xboxclips\\.com/(?\'user\'[^/]+)/(?!screenshots/)(?\'id\'[-0-9a-f]+)@','host'=>'xboxclips.com','iframe'=>array('src'=>'//xboxclips.com/{@user}/{@id}/embed'),'name'=>'XboxClips','tags'=>array('gaming')),
 		'xboxdvr'=>array('extract'=>'!xboxdvr\\.com/gamer/(?\'user\'[^/]+)/video/(?\'id\'\\d+)!','host'=>'xboxdvr.com','iframe'=>array('height'=>'360','src'=>'//xboxdvr.com/gamer/{@user}/video/{@id}/embed','width'=>'640'),'name'=>'Xbox DVR','tags'=>array('gaming')),
 		'yahooscreen'=>array('extract'=>'!screen\\.yahoo\\.com/(?:[-\\w]+/)?(?\'id\'[-\\w]+)\\.html!','host'=>'screen.yahoo.com','iframe'=>array('height'=>'360','src'=>'https://screen.yahoo.com/{@id}.html?format=embed','width'=>'640'),'name'=>'Yahoo! Screen','tags'=>array('movies')),
-		'youku'=>array('extract'=>'!youku\\.com/v_show/id_(?\'id\'\\w+)!','flash'=>array('padding-height'=>'40','src'=>'https://players.youku.com/player.php/sid/{@id}/v.swf'),'host'=>'youku.com','name'=>'Youku','tags'=>array('.cn')),
-		'youtube'=>array('extract'=>array('!youtube\\.com/(?:watch.*?v=|v/)(?\'id\'[-\\w]+)!','!youtu\\.be/(?\'id\'[-\\w]+)!','![#&?]t=(?:(?:(?\'h\'\\d+)h)?(?\'m\'\\d+)m(?\'s\'\\d+)|(?\'t\'\\d+))!','!&list=(?\'list\'[-\\w]+)!'),'host'=>array('youtube.com','youtu.be'),'iframe'=>array('src'=>'https://www.youtube.com/embed/<xsl:value-of select="@id"/><xsl:if test="@list">?list=<xsl:value-of select="@list"/></xsl:if><xsl:if test="@t or@m"><xsl:choose><xsl:when test="@list">&amp;</xsl:when><xsl:otherwise>?</xsl:otherwise></xsl:choose>start=<xsl:choose><xsl:when test="@t"><xsl:value-of select="@t"/></xsl:when><xsl:when test="@h"><xsl:value-of select="@h*3600+@m*60+@s"/></xsl:when><xsl:otherwise><xsl:value-of select="@m*60+@s"/></xsl:otherwise></xsl:choose></xsl:if>','style'=>array('background'=>'url(https://i.ytimg.com/vi/{@id}/hqdefault.jpg) 50% 50% / cover')),'name'=>'YouTube','tags'=>array('videos')),
+		'youku'=>array('extract'=>'!youku\\.com/v(?:_show|ideo)/id_(?\'id\'\\w+)!','host'=>'youku.com','iframe'=>array('padding-height'=>'40','src'=>'https://players.youku.com/embed/{@id}'),'name'=>'Youku','tags'=>array('.cn')),
+		'youtube'=>array('extract'=>array('!youtube\\.com/(?:watch.*?v=|v/|attribution_link.*?v%3D)(?\'id\'[-\\w]+)!','!youtu\\.be/(?\'id\'[-\\w]+)!','![#&?]t=(?:(?:(?\'h\'\\d+)h)?(?\'m\'\\d+)m(?\'s\'\\d+)|(?\'t\'\\d+))!','!&list=(?\'list\'[-\\w]+)!'),'host'=>array('youtube.com','youtu.be'),'iframe'=>array('src'=>'https://www.youtube.com/embed/<xsl:value-of select="@id"/><xsl:if test="@list">?list=<xsl:value-of select="@list"/></xsl:if><xsl:if test="@t or@m"><xsl:choose><xsl:when test="@list">&amp;</xsl:when><xsl:otherwise>?</xsl:otherwise></xsl:choose>start=<xsl:choose><xsl:when test="@t"><xsl:value-of select="@t"/></xsl:when><xsl:when test="@h"><xsl:value-of select="@h*3600+@m*60+@s"/></xsl:when><xsl:otherwise><xsl:value-of select="@m*60+@s"/></xsl:otherwise></xsl:choose></xsl:if>','style'=>array('background'=>'url(https://i.ytimg.com/vi/{@id}/hqdefault.jpg) 50% 50% / cover')),'name'=>'YouTube','scrape'=>array('extract'=>'!/vi/(?\'id\'[-\\w]+)!','match'=>'!/shared\\?ci=!'),'tags'=>array('livestreaming','videos')),
 		'zippyshare'=>array('flash'=>array('flashvars'=>'file={@file}&server={@server}&autostart=false','height'=>'80','max-width'=>'900','src'=>'//api.zippyshare.com/api/player.swf','width'=>'100%'),'host'=>'zippyshare.com','name'=>'Zippyshare audio files','scrape'=>array('extract'=>'!file=(?\'file\'\\w+)&amp;server=(?\'server\'\\d+)!','match'=>'!/v/!'),'tags'=>array('file sharing'))
 	);
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/Collections/SiteCollection.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/Collections/SiteCollection.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed\Configurator\Collections;
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/Collections/SiteDefinitionCollection.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/Collections/SiteDefinitionCollection.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed\Configurator\Collections;
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/Collections/XmlFileDefinitionCollection.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/Collections/XmlFileDefinitionCollection.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed\Configurator\Collections;
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/TemplateBuilder.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/TemplateBuilder.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed\Configurator;
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/TemplateGenerator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/TemplateGenerator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed\Configurator;
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/TemplateGenerators/Choose.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/TemplateGenerators/Choose.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed\Configurator\TemplateGenerators;
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/TemplateGenerators/Flash.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/TemplateGenerators/Flash.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed\Configurator\TemplateGenerators;
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/TemplateGenerators/Iframe.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Configurator/TemplateGenerators/Iframe.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed\Configurator\TemplateGenerators;
--- a/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/MediaEmbed/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\MediaEmbed;
@@ -44,9 +44,12 @@ class Parser extends ParserBase
 		if ($tag->hasAttribute('url'))
 		{
 			$url = $tag->getAttribute('url');
-			if (\preg_match('#^https?://[^<>"\'\\s]+$#D', $url))
+			if (\preg_match('#^https?://[^<>"\'\\s]+$#Di', $url))
+			{
+				$url = \strtolower(\substr($url, 0, 5)) . \substr($url, 5);
 				foreach ($scrapeConfig as $scrape)
 					self::scrapeEntry($url, $tag, $scrape, $cacheDir);
+			}
 		}
 		return \true;
 	}
--- a/vendor/s9e/text-formatter/src/Plugins/ParserBase.php
+++ b/vendor/s9e/text-formatter/src/Plugins/ParserBase.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins;
--- a/vendor/s9e/text-formatter/src/Plugins/PipeTables/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/PipeTables/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\PipeTables;
--- a/vendor/s9e/text-formatter/src/Plugins/PipeTables/Parser.js
+++ b/vendor/s9e/text-formatter/src/Plugins/PipeTables/Parser.js
@@ -146,7 +146,7 @@ function captureTables()
 */
 function createBodyTags(startPos, endPos)
 {
-	addTagPair('TBODY', startPos, 0, endPos, 0, -3);
+	addTagPair('TBODY', startPos, 0, endPos, 0, -103);
 }
 
 /**
@@ -159,7 +159,15 @@ function createBodyTags(startPos, endPos)
 */
 function createCellTags(tagName, startPos, endPos, align)
 {
-	var tag = addTagPair(tagName, startPos, 0, endPos, 0, -1);
+	var tag;
+	if (startPos === endPos)
+	{
+		tag = addSelfClosingTag(tagName, startPos, 0, -101);
+	}
+	else
+	{
+		tag = addTagPair(tagName, startPos, 0, endPos, 0, -101);
+	}
 	if (align)
 	{
 		tag.setAttribute('align', align);
@@ -174,7 +182,7 @@ function createCellTags(tagName, startPos, endPos, align)
 */
 function createHeadTags(startPos, endPos)
 {
-	addTagPair('THEAD', startPos, 0, endPos, 0, -3);
+	addTagPair('THEAD', startPos, 0, endPos, 0, -103);
 }
 
 /**
@@ -196,7 +204,7 @@ function createIgnoreTag(pos, len)
 */
 function createRowTags(startPos, endPos)
 {
-	addTagPair('TR', startPos, 0, endPos, 0, -2);
+	addTagPair('TR', startPos, 0, endPos, 0, -102);
 }
 
 /**
@@ -217,7 +225,7 @@ function createSeparatorTag(row)
 */
 function createTableTags(startPos, endPos)
 {
-	tableTag = addTagPair('TABLE', startPos, 0, endPos, 0, -4);
+	tableTag = addTagPair('TABLE', startPos, 0, endPos, 0, -104);
 }
 
 /**
--- a/vendor/s9e/text-formatter/src/Plugins/PipeTables/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/PipeTables/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\PipeTables;
@@ -105,17 +105,20 @@ class Parser extends ParserBase
 	}
 	protected function createBodyTags($startPos, $endPos)
 	{
-		$this->parser->addTagPair('TBODY', $startPos, 0, $endPos, 0, -3);
+		$this->parser->addTagPair('TBODY', $startPos, 0, $endPos, 0, -103);
 	}
 	protected function createCellTags($tagName, $startPos, $endPos, $align)
 	{
-		$tag = $this->parser->addTagPair($tagName, $startPos, 0, $endPos, 0, -1);
+		if ($startPos === $endPos)
+			$tag = $this->parser->addSelfClosingTag($tagName, $startPos, 0, -101);
+		else
+			$tag = $this->parser->addTagPair($tagName, $startPos, 0, $endPos, 0, -101);
 		if ($align)
 			$tag->setAttribute('align', $align);
 	}
 	protected function createHeadTags($startPos, $endPos)
 	{
-		$this->parser->addTagPair('THEAD', $startPos, 0, $endPos, 0, -3);
+		$this->parser->addTagPair('THEAD', $startPos, 0, $endPos, 0, -103);
 	}
 	protected function createIgnoreTag($pos, $len)
 	{
@@ -123,7 +126,7 @@ class Parser extends ParserBase
 	}
 	protected function createRowTags($startPos, $endPos)
 	{
-		$this->parser->addTagPair('TR', $startPos, 0, $endPos, 0, -2);
+		$this->parser->addTagPair('TR', $startPos, 0, $endPos, 0, -102);
 	}
 	protected function createSeparatorTag(array $row)
 	{
@@ -131,7 +134,7 @@ class Parser extends ParserBase
 	}
 	protected function createTableTags($startPos, $endPos)
 	{
-		$this->tableTag = $this->parser->addTagPair('TABLE', $startPos, 0, $endPos, 0, -4);
+		$this->tableTag = $this->parser->addTagPair('TABLE', $startPos, 0, $endPos, 0, -104);
 	}
 	protected function endTable()
 	{
--- a/vendor/s9e/text-formatter/src/Plugins/Preg/Configurator.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Preg/Configurator.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Preg;
--- a/vendor/s9e/text-formatter/src/Plugins/Preg/Parser.php
+++ b/vendor/s9e/text-formatter/src/Plugins/Preg/Parser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Plugins\Preg;
--- a/vendor/s9e/text-formatter/src/Renderer.php
+++ b/vendor/s9e/text-formatter/src/Renderer.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter;
--- a/vendor/s9e/text-formatter/src/Renderers/Unformatted.php
+++ b/vendor/s9e/text-formatter/src/Renderers/Unformatted.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Renderers;
--- a/vendor/s9e/text-formatter/src/Renderers/XSLT.php
+++ b/vendor/s9e/text-formatter/src/Renderers/XSLT.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Renderers;
@@ -40,8 +40,7 @@ class XSLT extends Renderer
 	}
 	public function setParameter($paramName, $paramValue)
 	{
-		if (\strpos($paramValue, '"') !== \false
-		 && \strpos($paramValue, "'") !== \false)
+		if (\strpos($paramValue, '"') !== \false && \strpos($paramValue, "'") !== \false)
 			$paramValue = \str_replace('"', "\xEF\xBC\x82", $paramValue);
 		else
 			$paramValue = (string) $paramValue;
@@ -61,6 +60,8 @@ class XSLT extends Renderer
 		$output = \str_replace('</embed>', '', $output);
 		if (\substr($output, -1) === "\n")
 			$output = \substr($output, 0, -1);
+		if (\strpos($output, "='") !== \false)
+			$output = $this->normalizeAttributes($output);
 		return $output;
 	}
 	protected function load()
@@ -72,4 +73,20 @@ class XSLT extends Renderer
 			$this->proc->importStylesheet($xsl);
 		}
 	}
+	protected function normalizeAttribute(array $m)
+	{
+		if ($m[0][0] === '"')
+			return $m[0];
+		return '"' . \str_replace('"', '&quot;', \substr($m[0], 1, -1)) . '"';
+	}
+	protected function normalizeAttributes($html)
+	{
+		return \preg_replace_callback('(<\\S++ [^>]++>)', array($this, 'normalizeElement'), $html);
+	}
+	protected function normalizeElement(array $m)
+	{
+		if (\strpos($m[0], "='") === \false)
+			return $m[0];
+		return \preg_replace_callback('((?:"[^"]*"|\'[^\']*\'))S', array($this, 'normalizeAttribute'), $m[0]);
+	}
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Unparser.php
+++ b/vendor/s9e/text-formatter/src/Unparser.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter;
--- a/vendor/s9e/text-formatter/src/Utils.php
+++ b/vendor/s9e/text-formatter/src/Utils.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter;
@@ -96,7 +96,10 @@ abstract class Utils
 		$xml = '';
 		\ksort($attributes);
 		foreach ($attributes as $attrName => $attrValue)
-			$xml .= ' ' . \htmlspecialchars($attrName, \ENT_QUOTES) . '="' . self::encodeUnicodeSupplementaryCharacters(\htmlspecialchars($attrValue, \ENT_COMPAT)) . '"';
-		return $xml;
+			$xml .= ' ' . \htmlspecialchars($attrName, \ENT_QUOTES) . '="' . \htmlspecialchars($attrValue, \ENT_COMPAT) . '"';
+		$xml = \preg_replace('/\\r\\n?/', "\n", $xml);
+		$xml = \preg_replace('/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F]+/S', '', $xml);
+		$xml = \str_replace("\n", '&#10;', $xml);
+		return self::encodeUnicodeSupplementaryCharacters($xml);
 	}
 }
\ No newline at end of file
--- a/vendor/s9e/text-formatter/src/Utils/Http.php
+++ b/vendor/s9e/text-formatter/src/Utils/Http.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Utils;
--- a/vendor/s9e/text-formatter/src/Utils/Http/Client.php
+++ b/vendor/s9e/text-formatter/src/Utils/Http/Client.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Utils\Http;
--- a/vendor/s9e/text-formatter/src/Utils/Http/Clients/Curl.php
+++ b/vendor/s9e/text-formatter/src/Utils/Http/Clients/Curl.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Utils\Http\Clients;
--- a/vendor/s9e/text-formatter/src/Utils/Http/Clients/Native.php
+++ b/vendor/s9e/text-formatter/src/Utils/Http/Clients/Native.php
@@ -2,7 +2,7 @@
 
 /*
 * @package   s9e\TextFormatter
-* @copyright Copyright (c) 2010-2016 The s9e Authors
+* @copyright Copyright (c) 2010-2017 The s9e Authors
 * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 */
 namespace s9e\TextFormatter\Utils\Http\Clients;
--- a/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php
+++ b/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php
@@ -86,7 +86,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      * If this function has been called and the node is not set during the finalization
      * phase, it's default value will be derived from its children default values.
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function addDefaultsIfNotSet()
     {
@@ -102,7 +102,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      *
      * This method is applicable to prototype nodes only.
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function addDefaultChildrenIfNoneSet($children = null)
     {
@@ -116,7 +116,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      *
      * This method is applicable to prototype nodes only.
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function requiresAtLeastOneElement()
     {
@@ -130,7 +130,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      *
      * If used all keys have to be defined in the same configuration file.
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function disallowNewKeysInSubsequentConfigs()
     {
@@ -145,7 +145,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      * @param string $singular The key to remap
      * @param string $plural   The plural of the key for irregular plurals
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function fixXmlConfig($singular, $plural = null)
     {
@@ -180,7 +180,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      * @param string $name          The name of the key
      * @param bool   $removeKeyItem Whether or not the key item should be removed
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function useAttributeAsKey($name, $removeKeyItem = true)
     {
@@ -195,7 +195,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      *
      * @param bool $allow
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function canBeUnset($allow = true)
     {
@@ -217,7 +217,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      * enableableArrayNode: {enabled: false, ...}  # The config is disabled
      * enableableArrayNode: false                  # The config is disabled
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function canBeEnabled()
     {
@@ -247,7 +247,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      *
      * By default, the section is enabled.
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function canBeDisabled()
     {
@@ -267,7 +267,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
     /**
      * Disables the deep merging of the node.
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function performNoDeepMerging()
     {
@@ -287,7 +287,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      *
      * @param bool $remove Whether to remove the extra keys
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function ignoreExtraKeys($remove = true)
     {
@@ -302,7 +302,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      *
      * @param bool $bool Whether to enable key normalization
      *
-     * @return ArrayNodeDefinition
+     * @return $this
      */
     public function normalizeKeys($bool)
     {
@@ -324,7 +324,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
      *
      * @param NodeDefinition $node A NodeDefinition instance
      *
-     * @return ArrayNodeDefinition This node
+     * @return $this
      */
     public function append(NodeDefinition $node)
     {
--- a/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php
+++ b/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php
@@ -25,7 +25,7 @@ class EnumNodeDefinition extends ScalarNodeDefinition
     /**
      * @param array $values
      *
-     * @return EnumNodeDefinition|$this
+     * @return $this
      */
     public function values(array $values)
     {
--- a/vendor/symfony/config/Definition/Builder/ExprBuilder.php
+++ b/vendor/symfony/config/Definition/Builder/ExprBuilder.php
@@ -40,7 +40,7 @@ class ExprBuilder
      *
      * @param \Closure $then
      *
-     * @return ExprBuilder
+     * @return $this
      */
     public function always(\Closure $then = null)
     {
@@ -60,7 +60,7 @@ class ExprBuilder
      *
      * @param \Closure $closure
      *
-     * @return ExprBuilder
+     * @return $this
      */
     public function ifTrue(\Closure $closure = null)
     {
@@ -76,7 +76,7 @@ class ExprBuilder
     /**
      * Tests if the value is a string.
      *
-     * @return ExprBuilder
+     * @return $this
      */
     public function ifString()
     {
@@ -88,7 +88,7 @@ class ExprBuilder
     /**
      * Tests if the value is null.
      *
-     * @return ExprBuilder
+     * @return $this
      */
     public function ifNull()
     {
@@ -100,7 +100,7 @@ class ExprBuilder
     /**
      * Tests if the value is an array.
      *
-     * @return ExprBuilder
+     * @return $this
      */
     public function ifArray()
     {
@@ -114,7 +114,7 @@ class ExprBuilder
      *
      * @param array $array
      *
-     * @return ExprBuilder
+     * @return $this
      */
     public function ifInArray(array $array)
     {
@@ -128,7 +128,7 @@ class ExprBuilder
      *
      * @param array $array
      *
-     * @return ExprBuilder
+     * @return $this
      */
     public function ifNotInArray(array $array)
     {
@@ -142,7 +142,7 @@ class ExprBuilder
      *
      * @param \Closure $closure
      *
-     * @return ExprBuilder
+     * @return $this
      */
     public function then(\Closure $closure)
     {
@@ -154,7 +154,7 @@ class ExprBuilder
     /**
      * Sets a closure returning an empty array.
      *
-     * @return ExprBuilder
+     * @return $this
      */
     public function thenEmptyArray()
     {
@@ -170,7 +170,7 @@ class ExprBuilder
      *
      * @param string $message
      *
-     * @return ExprBuilder
+     * @return $this
      *
      * @throws \InvalidArgumentException
      */
@@ -184,7 +184,7 @@ class ExprBuilder
     /**
      * Sets a closure unsetting this key of the array at validation time.
      *
-     * @return ExprBuilder
+     * @return $this
      *
      * @throws UnsetKeyException
      */
@@ -198,7 +198,7 @@ class ExprBuilder
     /**
      * Returns the related node.
      *
-     * @return NodeDefinition
+     * @return NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition
      *
      * @throws \RuntimeException
      */
--- a/vendor/symfony/config/Definition/Builder/MergeBuilder.php
+++ b/vendor/symfony/config/Definition/Builder/MergeBuilder.php
@@ -37,7 +37,7 @@ class MergeBuilder
      *
      * @param bool $allow
      *
-     * @return MergeBuilder
+     * @return $this
      */
     public function allowUnset($allow = true)
     {
@@ -51,7 +51,7 @@ class MergeBuilder
      *
      * @param bool $deny Whether the overwriting is forbidden or not
      *
-     * @return MergeBuilder
+     * @return $this
      */
     public function denyOverwrite($deny = true)
     {
@@ -63,7 +63,7 @@ class MergeBuilder
     /**
      * Returns the related node.
      *
-     * @return NodeDefinition
+     * @return NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition
      */
     public function end()
     {
--- a/vendor/symfony/config/Definition/Builder/NodeBuilder.php
+++ b/vendor/symfony/config/Definition/Builder/NodeBuilder.php
@@ -42,7 +42,7 @@ class NodeBuilder implements NodeParentInterface
      *
      * @param ParentNodeDefinitionInterface $parent The parent node
      *
-     * @return NodeBuilder This node builder
+     * @return $this
      */
     public function setParent(ParentNodeDefinitionInterface $parent = null)
     {
@@ -182,7 +182,7 @@ class NodeBuilder implements NodeParentInterface
      *
      * @param NodeDefinition $node
      *
-     * @return NodeBuilder This node builder
+     * @return $this
      */
     public function append(NodeDefinition $node)
     {
@@ -207,7 +207,7 @@ class NodeBuilder implements NodeParentInterface
      * @param string $type  The name of the type
      * @param string $class The fully qualified name the node definition class
      *
-     * @return NodeBuilder This node builder
+     * @return $this
      */
     public function setNodeClass($type, $class)
     {
--- a/vendor/symfony/config/Definition/Builder/NodeDefinition.php
+++ b/vendor/symfony/config/Definition/Builder/NodeDefinition.php
@@ -56,7 +56,7 @@ abstract class NodeDefinition implements NodeParentInterface
      *
      * @param NodeParentInterface $parent The parent
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function setParent(NodeParentInterface $parent)
     {
@@ -70,7 +70,7 @@ abstract class NodeDefinition implements NodeParentInterface
      *
      * @param string $info The info text
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function info($info)
     {
@@ -82,7 +82,7 @@ abstract class NodeDefinition implements NodeParentInterface
      *
      * @param string|array $example
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function example($example)
     {
@@ -95,7 +95,7 @@ abstract class NodeDefinition implements NodeParentInterface
      * @param string $key
      * @param mixed  $value
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function attribute($key, $value)
     {
@@ -107,7 +107,7 @@ abstract class NodeDefinition implements NodeParentInterface
     /**
      * Returns the parent node.
      *
-     * @return NodeParentInterface|NodeBuilder|NodeDefinition|null The builder of the parent node
+     * @return NodeParentInterface|NodeBuilder|NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition|null The builder of the parent node
      */
     public function end()
     {
@@ -146,7 +146,7 @@ abstract class NodeDefinition implements NodeParentInterface
      *
      * @param mixed $value The default value
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function defaultValue($value)
     {
@@ -159,7 +159,7 @@ abstract class NodeDefinition implements NodeParentInterface
     /**
      * Sets the node as required.
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function isRequired()
     {
@@ -173,7 +173,7 @@ abstract class NodeDefinition implements NodeParentInterface
      *
      * @param mixed $value
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function treatNullLike($value)
     {
@@ -187,7 +187,7 @@ abstract class NodeDefinition implements NodeParentInterface
      *
      * @param mixed $value
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function treatTrueLike($value)
     {
@@ -201,7 +201,7 @@ abstract class NodeDefinition implements NodeParentInterface
      *
      * @param mixed $value
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function treatFalseLike($value)
     {
@@ -213,7 +213,7 @@ abstract class NodeDefinition implements NodeParentInterface
     /**
      * Sets null as the default value.
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function defaultNull()
     {
@@ -223,7 +223,7 @@ abstract class NodeDefinition implements NodeParentInterface
     /**
      * Sets true as the default value.
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function defaultTrue()
     {
@@ -233,7 +233,7 @@ abstract class NodeDefinition implements NodeParentInterface
     /**
      * Sets false as the default value.
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function defaultFalse()
     {
@@ -253,7 +253,7 @@ abstract class NodeDefinition implements NodeParentInterface
     /**
      * Denies the node value being empty.
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function cannotBeEmpty()
     {
@@ -281,7 +281,7 @@ abstract class NodeDefinition implements NodeParentInterface
      *
      * @param bool $deny Whether the overwriting is forbidden or not
      *
-     * @return NodeDefinition|$this
+     * @return $this
      */
     public function cannotBeOverwritten($deny = true)
     {
--- a/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php
+++ b/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php
@@ -38,7 +38,7 @@ class NormalizationBuilder
      * @param string $key    The key to remap
      * @param string $plural The plural of the key in case of irregular plural
      *
-     * @return NormalizationBuilder
+     * @return $this
      */
     public function remap($key, $plural = null)
     {
@@ -52,7 +52,7 @@ class NormalizationBuilder
      *
      * @param \Closure $closure
      *
-     * @return ExprBuilder|NormalizationBuilder
+     * @return ExprBuilder|$this
      */
     public function before(\Closure $closure = null)
     {
--- a/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php
+++ b/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php
@@ -26,7 +26,7 @@ abstract class NumericNodeDefinition extends ScalarNodeDefinition
      *
      * @param mixed $max
      *
-     * @return NumericNodeDefinition
+     * @return $this
      *
      * @throws \InvalidArgumentException when the constraint is inconsistent
      */
@@ -45,7 +45,7 @@ abstract class NumericNodeDefinition extends ScalarNodeDefinition
      *
      * @param mixed $min
      *
-     * @return NumericNodeDefinition
+     * @return $this
      *
      * @throws \InvalidArgumentException when the constraint is inconsistent
      */
--- a/vendor/symfony/config/Definition/Builder/ValidationBuilder.php
+++ b/vendor/symfony/config/Definition/Builder/ValidationBuilder.php
@@ -36,7 +36,7 @@ class ValidationBuilder
      *
      * @param \Closure $closure
      *
-     * @return ExprBuilder|ValidationBuilder
+     * @return ExprBuilder|$this
      */
     public function rule(\Closure $closure = null)
     {
--- a/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php
+++ b/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php
@@ -125,7 +125,7 @@ class YamlReferenceDumper
         $default = (string) $default != '' ? ' '.$default : '';
         $comments = count($comments) ? '# '.implode(', ', $comments) : '';
 
-        $text = rtrim(sprintf('%-20s %s %s', $node->getName().':', $default, $comments), ' ');
+        $text = rtrim(sprintf('%-21s%s %s', $node->getName().':', $default, $comments), ' ');
 
         if ($info = $node->getInfo()) {
             $this->writeLine('');
--- a/vendor/symfony/config/Definition/PrototypedArrayNode.php
+++ b/vendor/symfony/config/Definition/PrototypedArrayNode.php
@@ -29,6 +29,10 @@ class PrototypedArrayNode extends ArrayNode
     protected $minNumberOfElements = 0;
     protected $defaultValue = array();
     protected $defaultChildren;
+    /**
+     * @var NodeInterface[] An array of the prototypes of the simplified value children
+     */
+    private $valuePrototypes = array();
 
     /**
      * Sets the minimum number of elements that a prototype based node must
@@ -194,9 +198,9 @@ class PrototypedArrayNode extends ArrayNode
         }
 
         foreach ($value as $k => $v) {
-            $this->prototype->setName($k);
+            $prototype = $this->getPrototypeForChild($k);
             try {
-                $value[$k] = $this->prototype->finalize($v);
+                $value[$k] = $prototype->finalize($v);
             } catch (UnsetKeyException $e) {
                 unset($value[$k]);
             }
@@ -250,8 +254,18 @@ class PrototypedArrayNode extends ArrayNode
                     }
 
                     // if only "value" is left
-                    if (1 == count($v) && isset($v['value'])) {
+                    if (array_keys($v) === array('value')) {
                         $v = $v['value'];
+                        if ($this->prototype instanceof ArrayNode && ($children = $this->prototype->getChildren()) && array_key_exists('value', $children)) {
+                            $valuePrototype = current($this->valuePrototypes) ?: clone $children['value'];
+                            $valuePrototype->parent = $this;
+                            $originalClosures = $this->prototype->normalizationClosures;
+                            if (is_array($originalClosures)) {
+                                $valuePrototypeClosures = $valuePrototype->normalizationClosures;
+                                $valuePrototype->normalizationClosures = is_array($valuePrototypeClosures) ? array_merge($originalClosures, $valuePrototypeClosures) : $originalClosures;
+                            }
+                            $this->valuePrototypes[$k] = $valuePrototype;
+                        }
                     }
                 }
 
@@ -264,11 +278,11 @@ class PrototypedArrayNode extends ArrayNode
                 }
             }
 
-            $this->prototype->setName($k);
+            $prototype = $this->getPrototypeForChild($k);
             if (null !== $this->keyAttribute || $isAssoc) {
-                $normalized[$k] = $this->prototype->normalize($v);
+                $normalized[$k] = $prototype->normalize($v);
             } else {
-                $normalized[] = $this->prototype->normalize($v);
+                $normalized[] = $prototype->normalize($v);
             }
         }
 
@@ -322,10 +336,54 @@ class PrototypedArrayNode extends ArrayNode
                 continue;
             }
 
-            $this->prototype->setName($k);
-            $leftSide[$k] = $this->prototype->merge($leftSide[$k], $v);
+            $prototype = $this->getPrototypeForChild($k);
+            $leftSide[$k] = $prototype->merge($leftSide[$k], $v);
         }
 
         return $leftSide;
     }
+
+    /**
+     * Returns a prototype for the child node that is associated to $key in the value array.
+     * For general child nodes, this will be $this->prototype.
+     * But if $this->removeKeyAttribute is true and there are only two keys in the child node:
+     * one is same as this->keyAttribute and the other is 'value', then the prototype will be different.
+     *
+     * For example, assume $this->keyAttribute is 'name' and the value array is as follows:
+     * array(
+     *     array(
+     *         'name' => 'name001',
+     *         'value' => 'value001'
+     *     )
+     * )
+     *
+     * Now, the key is 0 and the child node is:
+     * array(
+     *    'name' => 'name001',
+     *    'value' => 'value001'
+     * )
+     *
+     * When normalizing the value array, the 'name' element will removed from the child node
+     * and its value becomes the new key of the child node:
+     * array(
+     *     'name001' => array('value' => 'value001')
+     * )
+     *
+     * Now only 'value' element is left in the child node which can be further simplified into a string:
+     * array('name001' => 'value001')
+     *
+     * Now, the key becomes 'name001' and the child node becomes 'value001' and
+     * the prototype of child node 'name001' should be a ScalarNode instead of an ArrayNode instance.
+     *
+     * @param string $key The key of the child node
+     *
+     * @return mixed The prototype instance
+     */
+    private function getPrototypeForChild($key)
+    {
+        $prototype = isset($this->valuePrototypes[$key]) ? $this->valuePrototypes[$key] : $this->prototype;
+        $prototype->setName($key);
+
+        return $prototype;
+    }
 }
--- a/vendor/symfony/config/LICENSE
+++ b/vendor/symfony/config/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/config/Loader/Loader.php
+++ b/vendor/symfony/config/Loader/Loader.php
@@ -57,7 +57,7 @@ abstract class Loader implements LoaderInterface
      * @param mixed       $resource A resource
      * @param string|null $type     The resource type or null if unknown
      *
-     * @return LoaderInterface A LoaderInterface instance
+     * @return $this|LoaderInterface
      *
      * @throws FileLoaderLoadException If no loader is found
      */
--- a/vendor/symfony/config/Resource/DirectoryResource.php
+++ b/vendor/symfony/config/Resource/DirectoryResource.php
@@ -68,7 +68,10 @@ class DirectoryResource implements SelfCheckingResourceInterface, \Serializable
             return false;
         }
 
-        $newestMTime = filemtime($this->resource);
+        if ($timestamp < filemtime($this->resource)) {
+            return false;
+        }
+
         foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->resource), \RecursiveIteratorIterator::SELF_FIRST) as $file) {
             // if regex filtering is enabled only check matching files
             if ($this->pattern && $file->isFile() && !preg_match($this->pattern, $file->getBasename())) {
@@ -81,10 +84,20 @@ class DirectoryResource implements SelfCheckingResourceInterface, \Serializable
                 continue;
             }
 
-            $newestMTime = max($file->getMTime(), $newestMTime);
+            // for broken links
+            try {
+                $fileMTime = $file->getMTime();
+            } catch (\RuntimeException $e) {
+                continue;
+            }
+
+            // early return if a file's mtime exceeds the passed timestamp
+            if ($timestamp < $fileMTime) {
+                return false;
+            }
         }
 
-        return $newestMTime < $timestamp;
+        return true;
     }
 
     public function serialize()
--- a/vendor/symfony/config/ResourceCheckerConfigCache.php
+++ b/vendor/symfony/config/ResourceCheckerConfigCache.php
@@ -74,11 +74,35 @@ class ResourceCheckerConfigCache implements ConfigCacheInterface
 
         $metadata = $this->getMetaFile();
         if (!is_file($metadata)) {
-            return true;
+            return false;
         }
 
+        $e = null;
+        $meta = false;
         $time = filemtime($this->file);
-        $meta = unserialize(file_get_contents($metadata));
+        $signalingException = new \UnexpectedValueException();
+        $prevUnserializeHandler = ini_set('unserialize_callback_func', '');
+        $prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context) use (&$prevErrorHandler, $signalingException) {
+            if (E_WARNING === $type && 'Class __PHP_Incomplete_Class has no unserializer' === $msg) {
+                throw $signalingException;
+            }
+
+            return $prevErrorHandler ? $prevErrorHandler($type, $msg, $file, $line, $context) : false;
+        });
+
+        try {
+            $meta = unserialize(file_get_contents($metadata));
+        } catch (\Error $e) {
+        } catch (\Exception $e) {
+        }
+        restore_error_handler();
+        ini_set('unserialize_callback_func', $prevUnserializeHandler);
+        if (null !== $e && $e !== $signalingException) {
+            throw $e;
+        }
+        if (false === $meta) {
+            return false;
+        }
 
         foreach ($meta as $resource) {
             /* @var ResourceInterface $resource */
--- a/vendor/symfony/config/composer.json
+++ b/vendor/symfony/config/composer.json
@@ -19,6 +19,9 @@
         "php": ">=5.3.9",
         "symfony/filesystem": "~2.3|~3.0.0"
     },
+    "require-dev": {
+        "symfony/yaml": "~2.7|~3.0.0"
+    },
     "suggest": {
         "symfony/yaml": "To use the yaml reference dumper"
     },
--- a/vendor/symfony/console/Application.php
+++ b/vendor/symfony/console/Application.php
@@ -14,7 +14,9 @@ namespace Symfony\Component\Console;
 use Symfony\Component\Console\Descriptor\TextDescriptor;
 use Symfony\Component\Console\Descriptor\XmlDescriptor;
 use Symfony\Component\Console\Exception\ExceptionInterface;
+use Symfony\Component\Console\Formatter\OutputFormatter;
 use Symfony\Component\Console\Helper\DebugFormatterHelper;
+use Symfony\Component\Console\Helper\Helper;
 use Symfony\Component\Console\Helper\ProcessHelper;
 use Symfony\Component\Console\Helper\QuestionHelper;
 use Symfony\Component\Console\Input\InputInterface;
@@ -106,7 +108,7 @@ class Application
      *
      * @return int 0 if everything went fine, or an error code
      *
-     * @throws \Exception When doRun returns Exception
+     * @throws \Exception When running fails. Bypass this when {@link setCatchExceptions()}.
      */
     public function run(InputInterface $input = null, OutputInterface $output = null)
     {
@@ -121,10 +123,17 @@ class Application
         $this->configureIO($input, $output);
 
         try {
+            $e = null;
             $exitCode = $this->doRun($input, $output);
-        } catch (\Exception $e) {
-            if (!$this->catchExceptions) {
-                throw $e;
+        } catch (\Exception $x) {
+            $e = $x;
+        } catch (\Throwable $x) {
+            $e = new FatalThrowableError($x);
+        }
+
+        if (null !== $e) {
+            if (!$this->catchExceptions || !$x instanceof \Exception) {
+                throw $x;
             }
 
             if ($output instanceof ConsoleOutputInterface) {
@@ -186,6 +195,7 @@ class Application
             $input = new ArrayInput(array('command' => $this->defaultCommand));
         }
 
+        $this->runningCommand = null;
         // the command name MUST be the first element of the input
         $command = $this->find($name);
 
@@ -390,7 +400,7 @@ class Application
      *
      * @return Command A Command object
      *
-     * @throws CommandNotFoundException When command name given does not exist
+     * @throws CommandNotFoundException When given command name does not exist
      */
     public function get($name)
     {
@@ -647,19 +657,18 @@ class Application
         do {
             $title = sprintf('  [%s]  ', get_class($e));
 
-            $len = $this->stringWidth($title);
+            $len = Helper::strlen($title);
 
             $width = $this->getTerminalWidth() ? $this->getTerminalWidth() - 1 : PHP_INT_MAX;
             // HHVM only accepts 32 bits integer in str_split, even when PHP_INT_MAX is a 64 bit integer: https://github.com/facebook/hhvm/issues/1327
             if (defined('HHVM_VERSION') && $width > 1 << 31) {
                 $width = 1 << 31;
             }
-            $formatter = $output->getFormatter();
             $lines = array();
             foreach (preg_split('/\r?\n/', $e->getMessage()) as $line) {
                 foreach ($this->splitStringByWidth($line, $width - 4) as $line) {
                     // pre-format lines to get the right string length
-                    $lineLength = $this->stringWidth(preg_replace('/\[[^m]*m/', '', $formatter->format($line))) + 4;
+                    $lineLength = Helper::strlen($line) + 4;
                     $lines[] = array($line, $lineLength);
 
                     $len = max($lineLength, $len);
@@ -667,15 +676,15 @@ class Application
             }
 
             $messages = array();
-            $messages[] = $emptyLine = $formatter->format(sprintf('<error>%s</error>', str_repeat(' ', $len)));
-            $messages[] = $formatter->format(sprintf('<error>%s%s</error>', $title, str_repeat(' ', max(0, $len - $this->stringWidth($title)))));
+            $messages[] = $emptyLine = sprintf('<error>%s</error>', str_repeat(' ', $len));
+            $messages[] = sprintf('<error>%s%s</error>', $title, str_repeat(' ', max(0, $len - Helper::strlen($title))));
             foreach ($lines as $line) {
-                $messages[] = $formatter->format(sprintf('<error>  %s  %s</error>', $line[0], str_repeat(' ', $len - $line[1])));
+                $messages[] = sprintf('<error>  %s  %s</error>', OutputFormatter::escape($line[0]), str_repeat(' ', $len - $line[1]));
             }
             $messages[] = $emptyLine;
             $messages[] = '';
 
-            $output->writeln($messages, OutputInterface::OUTPUT_RAW | OutputInterface::VERBOSITY_QUIET);
+            $output->writeln($messages, OutputInterface::VERBOSITY_QUIET);
 
             if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
                 $output->writeln('<comment>Exception trace:</comment>', OutputInterface::VERBOSITY_QUIET);
@@ -777,7 +786,7 @@ class Application
      * @param int $width  The width
      * @param int $height The height
      *
-     * @return Application The current application
+     * @return $this
      */
     public function setTerminalDimensions($width, $height)
     {
@@ -834,8 +843,6 @@ class Application
      * @param OutputInterface $output  An Output instance
      *
      * @return int 0 if everything went fine, or an error code
-     *
-     * @throws \Exception when the command being run threw an exception
      */
     protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output)
     {
@@ -858,37 +865,37 @@ class Application
         }
 
         $event = new ConsoleCommandEvent($command, $input, $output);
-        $this->dispatcher->dispatch(ConsoleEvents::COMMAND, $event);
+        $e = null;
 
-        if ($event->commandShouldRun()) {
-            try {
-                $e = null;
+        try {
+            $this->dispatcher->dispatch(ConsoleEvents::COMMAND, $event);
+
+            if ($event->commandShouldRun()) {
                 $exitCode = $command->run($input, $output);
-            } catch (\Exception $x) {
-                $e = $x;
-            } catch (\Throwable $x) {
-                $e = new FatalThrowableError($x);
+            } else {
+                $exitCode = ConsoleCommandEvent::RETURN_CODE_DISABLED;
             }
-            if (null !== $e) {
-                $event = new ConsoleExceptionEvent($command, $input, $output, $e, $e->getCode());
-                $this->dispatcher->dispatch(ConsoleEvents::EXCEPTION, $event);
-
-                if ($e !== $event->getException()) {
-                    $x = $e = $event->getException();
-                }
-
-                $event = new ConsoleTerminateEvent($command, $input, $output, $e->getCode());
-                $this->dispatcher->dispatch(ConsoleEvents::TERMINATE, $event);
+        } catch (\Exception $e) {
+        } catch (\Throwable $e) {
+        }
+        if (null !== $e) {
+            $x = $e instanceof \Exception ? $e : new FatalThrowableError($e);
+            $event = new ConsoleExceptionEvent($command, $input, $output, $x, $x->getCode());
+            $this->dispatcher->dispatch(ConsoleEvents::EXCEPTION, $event);
 
-                throw $x;
+            if ($x !== $event->getException()) {
+                $e = $event->getException();
             }
-        } else {
-            $exitCode = ConsoleCommandEvent::RETURN_CODE_DISABLED;
+            $exitCode = $e->getCode();
         }
 
         $event = new ConsoleTerminateEvent($command, $input, $output, $exitCode);
         $this->dispatcher->dispatch(ConsoleEvents::TERMINATE, $event);
 
+        if (null !== $e) {
+            throw $e;
+        }
+
         return $event->getExitCode();
     }
 
@@ -1091,15 +1098,6 @@ class Application
         $this->defaultCommand = $commandName;
     }
 
-    private function stringWidth($string)
-    {
-        if (false === $encoding = mb_detect_encoding($string, null, true)) {
-            return strlen($string);
-        }
-
-        return mb_strwidth($string, $encoding);
-    }
-
     private function splitStringByWidth($string, $width)
     {
         // str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly.
--- a/vendor/symfony/console/Command/Command.php
+++ b/vendor/symfony/console/Command/Command.php
@@ -205,6 +205,8 @@ class Command
      *
      * @return int The command exit code
      *
+     * @throws \Exception When binding input fails. Bypass this by calling {@link ignoreValidationErrors()}.
+     *
      * @see setCode()
      * @see execute()
      */
@@ -230,7 +232,14 @@ class Command
 
         if (null !== $this->processTitle) {
             if (function_exists('cli_set_process_title')) {
-                cli_set_process_title($this->processTitle);
+                if (false === @cli_set_process_title($this->processTitle)) {
+                    if ('Darwin' === PHP_OS) {
+                        $output->writeln('<comment>Running "cli_get_process_title" as an unprivileged user is not supported on MacOS.</comment>');
+                    } else {
+                        $error = error_get_last();
+                        trigger_error($error['message'], E_USER_WARNING);
+                    }
+                }
             } elseif (function_exists('setproctitle')) {
                 setproctitle($this->processTitle);
             } elseif (OutputInterface::VERBOSITY_VERY_VERBOSE === $output->getVerbosity()) {
@@ -268,7 +277,7 @@ class Command
      *
      * @param callable $code A callable(InputInterface $input, OutputInterface $output)
      *
-     * @return Command The current instance
+     * @return $this
      *
      * @throws InvalidArgumentException
      *
@@ -283,7 +292,15 @@ class Command
         if (PHP_VERSION_ID >= 50400 && $code instanceof \Closure) {
             $r = new \ReflectionFunction($code);
             if (null === $r->getClosureThis()) {
-                $code = \Closure::bind($code, $this);
+                if (PHP_VERSION_ID < 70000) {
+                    // Bug in PHP5: https://bugs.php.net/bug.php?id=64761
+                    // This means that we cannot bind static closures and therefore we must
+                    // ignore any errors here.  There is no way to test if the closure is
+                    // bindable.
+                    $code = @\Closure::bind($code, $this);
+                } else {
+                    $code = \Closure::bind($code, $this);
+                }
             }
         }
 
@@ -324,7 +341,7 @@ class Command
      *
      * @param array|InputDefinition $definition An array of argument and option instances or a definition instance
      *
-     * @return Command The current instance
+     * @return $this
      */
     public function setDefinition($definition)
     {
@@ -372,7 +389,7 @@ class Command
      * @param string $description A description text
      * @param mixed  $default     The default value (for InputArgument::OPTIONAL mode only)
      *
-     * @return Command The current instance
+     * @return $this
      */
     public function addArgument($name, $mode = null, $description = '', $default = null)
     {
@@ -390,7 +407,7 @@ class Command
      * @param string $description A description text
      * @param mixed  $default     The default value (must be null for InputOption::VALUE_NONE)
      *
-     * @return Command The current instance
+     * @return $this
      */
     public function addOption($name, $shortcut = null, $mode = null, $description = '', $default = null)
     {
@@ -409,7 +426,7 @@ class Command
      *
      * @param string $name The command name
      *
-     * @return Command The current instance
+     * @return $this
      *
      * @throws InvalidArgumentException When the name is invalid
      */
@@ -432,7 +449,7 @@ class Command
      *
      * @param string $title The process title
      *
-     * @return Command The current instance
+     * @return $this
      */
     public function setProcessTitle($title)
     {
@@ -456,7 +473,7 @@ class Command
      *
      * @param string $description The description for the command
      *
-     * @return Command The current instance
+     * @return $this
      */
     public function setDescription($description)
     {
@@ -480,7 +497,7 @@ class Command
      *
      * @param string $help The help for the command
      *
-     * @return Command The current instance
+     * @return $this
      */
     public function setHelp($help)
     {
@@ -526,7 +543,7 @@ class Command
      *
      * @param string[] $aliases An array of aliases for the command
      *
-     * @return Command The current instance
+     * @return $this
      *
      * @throws InvalidArgumentException When an alias is invalid
      */
@@ -578,7 +595,7 @@ class Command
      *
      * @param string $usage The usage, it'll be prefixed with the command name
      *
-     * @return Command The current instance
+     * @return $this
      */
     public function addUsage($usage)
     {
--- a/vendor/symfony/console/Descriptor/MarkdownDescriptor.php
+++ b/vendor/symfony/console/Descriptor/MarkdownDescriptor.php
@@ -13,6 +13,7 @@ namespace Symfony\Component\Console\Descriptor;
 
 use Symfony\Component\Console\Application;
 use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Helper\Helper;
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputDefinition;
 use Symfony\Component\Console\Input\InputOption;
@@ -94,7 +95,7 @@ class MarkdownDescriptor extends Descriptor
 
         $this->write(
             $command->getName()."\n"
-            .str_repeat('-', strlen($command->getName()))."\n\n"
+            .str_repeat('-', Helper::strlen($command->getName()))."\n\n"
             .'* Description: '.($command->getDescription() ?: '<none>')."\n"
             .'* Usage:'."\n\n"
             .array_reduce(array_merge(array($command->getSynopsis()), $command->getAliases(), $command->getUsages()), function ($carry, $usage) {
@@ -121,7 +122,7 @@ class MarkdownDescriptor extends Descriptor
         $describedNamespace = isset($options['namespace']) ? $options['namespace'] : null;
         $description = new ApplicationDescription($application, $describedNamespace);
 
-        $this->write($application->getName()."\n".str_repeat('=', strlen($application->getName())));
+        $this->write($application->getName()."\n".str_repeat('=', Helper::strlen($application->getName())));
 
         foreach ($description->getNamespaces() as $namespace) {
             if (ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) {
--- a/vendor/symfony/console/Descriptor/TextDescriptor.php
+++ b/vendor/symfony/console/Descriptor/TextDescriptor.php
@@ -13,6 +13,8 @@ namespace Symfony\Component\Console\Descriptor;
 
 use Symfony\Component\Console\Application;
 use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Formatter\OutputFormatter;
+use Symfony\Component\Console\Helper\Helper;
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputDefinition;
 use Symfony\Component\Console\Input\InputOption;
@@ -37,14 +39,14 @@ class TextDescriptor extends Descriptor
             $default = '';
         }
 
-        $totalWidth = isset($options['total_width']) ? $options['total_width'] : strlen($argument->getName());
-        $spacingWidth = $totalWidth - strlen($argument->getName()) + 2;
+        $totalWidth = isset($options['total_width']) ? $options['total_width'] : Helper::strlen($argument->getName());
+        $spacingWidth = $totalWidth - strlen($argument->getName());
 
-        $this->writeText(sprintf('  <info>%s</info>%s%s%s',
+        $this->writeText(sprintf('  <info>%s</info>  %s%s%s',
             $argument->getName(),
             str_repeat(' ', $spacingWidth),
-            // + 17 = 2 spaces + <info> + </info> + 2 spaces
-            preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 17), $argument->getDescription()),
+            // + 4 = 2 spaces before <info>, 2 spaces after </info>
+            preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 4), $argument->getDescription()),
             $default
         ), $options);
     }
@@ -75,13 +77,13 @@ class TextDescriptor extends Descriptor
             sprintf('--%s%s', $option->getName(), $value)
         );
 
-        $spacingWidth = $totalWidth - strlen($synopsis) + 2;
+        $spacingWidth = $totalWidth - Helper::strlen($synopsis);
 
-        $this->writeText(sprintf('  <info>%s</info>%s%s%s%s',
+        $this->writeText(sprintf('  <info>%s</info>  %s%s%s%s',
             $synopsis,
             str_repeat(' ', $spacingWidth),
-            // + 17 = 2 spaces + <info> + </info> + 2 spaces
-            preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 17), $option->getDescription()),
+            // + 4 = 2 spaces before <info>, 2 spaces after </info>
+            preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 4), $option->getDescription()),
             $default,
             $option->isArray() ? '<comment> (multiple values allowed)</comment>' : ''
         ), $options);
@@ -94,7 +96,7 @@ class TextDescriptor extends Descriptor
     {
         $totalWidth = $this->calculateTotalWidthForOptions($definition->getOptions());
         foreach ($definition->getArguments() as $argument) {
-            $totalWidth = max($totalWidth, strlen($argument->getName()));
+            $totalWidth = max($totalWidth, Helper::strlen($argument->getName()));
         }
 
         if ($definition->getArguments()) {
@@ -206,7 +208,7 @@ class TextDescriptor extends Descriptor
 
                 foreach ($namespace['commands'] as $name) {
                     $this->writeText("\n");
-                    $spacingWidth = $width - strlen($name);
+                    $spacingWidth = $width - Helper::strlen($name);
                     $this->writeText(sprintf('  <info>%s</info>%s%s', $name, str_repeat(' ', $spacingWidth), $description->getCommand($name)->getDescription()), $options);
                 }
             }
@@ -235,6 +237,16 @@ class TextDescriptor extends Descriptor
      */
     private function formatDefaultValue($default)
     {
+        if (is_string($default)) {
+            $default = OutputFormatter::escape($default);
+        } elseif (is_array($default)) {
+            foreach ($default as $key => $value) {
+                if (is_string($value)) {
+                    $default[$key] = OutputFormatter::escape($value);
+                }
+            }
+        }
+
         if (PHP_VERSION_ID < 50400) {
             return str_replace(array('\/', '\\\\'), array('/', '\\'), json_encode($default));
         }
@@ -252,9 +264,9 @@ class TextDescriptor extends Descriptor
         $widths = array();
 
         foreach ($commands as $command) {
-            $widths[] = strlen($command->getName());
+            $widths[] = Helper::strlen($command->getName());
             foreach ($command->getAliases() as $alias) {
-                $widths[] = strlen($alias);
+                $widths[] = Helper::strlen($alias);
             }
         }
 
@@ -271,10 +283,10 @@ class TextDescriptor extends Descriptor
         $totalWidth = 0;
         foreach ($options as $option) {
             // "-" + shortcut + ", --" + name
-            $nameLength = 1 + max(strlen($option->getShortcut()), 1) + 4 + strlen($option->getName());
+            $nameLength = 1 + max(strlen($option->getShortcut()), 1) + 4 + Helper::strlen($option->getName());
 
             if ($option->acceptValue()) {
-                $valueLength = 1 + strlen($option->getName()); // = + value
+                $valueLength = 1 + Helper::strlen($option->getName()); // = + value
                 $valueLength += $option->isValueOptional() ? 2 : 0; // [ + ]
 
                 $nameLength += $valueLength;
--- a/vendor/symfony/console/Formatter/OutputFormatter.php
+++ b/vendor/symfony/console/Formatter/OutputFormatter.php
@@ -35,6 +35,20 @@ class OutputFormatter implements OutputFormatterInterface
     {
         $text = preg_replace('/([^\\\\]?)</', '$1\\<', $text);
 
+        return self::escapeTrailingBackslash($text);
+    }
+
+    /**
+     * Escapes trailing "\" in given text.
+     *
+     * @param string $text Text to escape
+     *
+     * @return string Escaped text
+     *
+     * @internal
+     */
+    public static function escapeTrailingBackslash($text)
+    {
         if ('\\' === substr($text, -1)) {
             $len = strlen($text);
             $text = rtrim($text, '\\');
@@ -67,9 +81,7 @@ class OutputFormatter implements OutputFormatterInterface
     }
 
     /**
-     * Sets the decorated flag.
-     *
-     * @param bool $decorated Whether to decorate the messages or not
+     * {@inheritdoc}
      */
     public function setDecorated($decorated)
     {
@@ -77,9 +89,7 @@ class OutputFormatter implements OutputFormatterInterface
     }
 
     /**
-     * Gets the decorated flag.
-     *
-     * @return bool true if the output will decorate messages, false otherwise
+     * {@inheritdoc}
      */
     public function isDecorated()
     {
@@ -87,10 +97,7 @@ class OutputFormatter implements OutputFormatterInterface
     }
 
     /**
-     * Sets a new style.
-     *
-     * @param string                        $name  The style name
-     * @param OutputFormatterStyleInterface $style The style instance
+     * {@inheritdoc}
      */
     public function setStyle($name, OutputFormatterStyleInterface $style)
     {
@@ -98,11 +105,7 @@ class OutputFormatter implements OutputFormatterInterface
     }
 
     /**
-     * Checks if output formatter has style with specified name.
-     *
-     * @param string $name
-     *
-     * @return bool
+     * {@inheritdoc}
      */
     public function hasStyle($name)
     {
@@ -110,13 +113,7 @@ class OutputFormatter implements OutputFormatterInterface
     }
 
     /**
-     * Gets style options from style with specified name.
-     *
-     * @param string $name
-     *
-     * @return OutputFormatterStyleInterface
-     *
-     * @throws InvalidArgumentException When style isn't defined
+     * {@inheritdoc}
      */
     public function getStyle($name)
     {
@@ -128,11 +125,7 @@ class OutputFormatter implements OutputFormatterInterface
     }
 
     /**
-     * Formats a message according to the given styles.
-     *
-     * @param string $message The message to style
-     *
-     * @return string The styled message
+     * {@inheritdoc}
      */
     public function format($message)
     {
@@ -194,7 +187,7 @@ class OutputFormatter implements OutputFormatterInterface
      *
      * @param string $string
      *
-     * @return OutputFormatterStyle|bool false if string is not format string
+     * @return OutputFormatterStyle|false false if string is not format string
      */
     private function createStyleFromString($string)
     {
--- a/vendor/symfony/console/Formatter/OutputFormatterInterface.php
+++ b/vendor/symfony/console/Formatter/OutputFormatterInterface.php
@@ -55,6 +55,8 @@ interface OutputFormatterInterface
      * @param string $name
      *
      * @return OutputFormatterStyleInterface
+     *
+     * @throws \InvalidArgumentException When style isn't defined
      */
     public function getStyle($name);
 
--- a/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php
+++ b/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php
@@ -104,7 +104,7 @@ class OutputFormatterStyleStack
     /**
      * @param OutputFormatterStyleInterface $emptyStyle
      *
-     * @return OutputFormatterStyleStack
+     * @return $this
      */
     public function setEmptyStyle(OutputFormatterStyleInterface $emptyStyle)
     {
--- a/vendor/symfony/console/Helper/DescriptorHelper.php
+++ b/vendor/symfony/console/Helper/DescriptorHelper.php
@@ -78,7 +78,7 @@ class DescriptorHelper extends Helper
      * @param string              $format
      * @param DescriptorInterface $descriptor
      *
-     * @return DescriptorHelper
+     * @return $this
      */
     public function register($format, DescriptorInterface $descriptor)
     {
--- a/vendor/symfony/console/Helper/Helper.php
+++ b/vendor/symfony/console/Helper/Helper.php
@@ -35,7 +35,7 @@ abstract class Helper implements HelperInterface
     /**
      * Gets the helper set associated with this helper.
      *
-     * @return HelperSet A HelperSet instance
+     * @return HelperSet|null
      */
     public function getHelperSet()
     {
@@ -106,6 +106,11 @@ abstract class Helper implements HelperInterface
 
     public static function strlenWithoutDecoration(OutputFormatterInterface $formatter, $string)
     {
+        return self::strlen(self::removeDecoration($formatter, $string));
+    }
+
+    public static function removeDecoration(OutputFormatterInterface $formatter, $string)
+    {
         $isDecorated = $formatter->isDecorated();
         $formatter->setDecorated(false);
         // remove <...> formatting
@@ -114,6 +119,6 @@ abstract class Helper implements HelperInterface
         $string = preg_replace("/\033\[[^m]*m/", '', $string);
         $formatter->setDecorated($isDecorated);
 
-        return self::strlen($string);
+        return $string;
     }
 }
--- a/vendor/symfony/console/Helper/QuestionHelper.php
+++ b/vendor/symfony/console/Helper/QuestionHelper.php
@@ -38,7 +38,7 @@ class QuestionHelper extends Helper
      * @param OutputInterface $output   An OutputInterface instance
      * @param Question        $question The question to ask
      *
-     * @return string The user answer
+     * @return mixed The user answer
      *
      * @throws RuntimeException If there is no data to read in the input stream
      */
@@ -384,7 +384,7 @@ class QuestionHelper extends Helper
      * @param OutputInterface $output      An Output instance
      * @param Question        $question    A Question instance
      *
-     * @return string The validated response
+     * @return mixed The validated response
      *
      * @throws \Exception In case the max number of attempts has been reached and no valid response has been given
      */
--- a/vendor/symfony/console/Helper/SymfonyQuestionHelper.php
+++ b/vendor/symfony/console/Helper/SymfonyQuestionHelper.php
@@ -54,7 +54,7 @@ class SymfonyQuestionHelper extends QuestionHelper
      */
     protected function writePrompt(OutputInterface $output, Question $question)
     {
-        $text = OutputFormatter::escape($question->getQuestion());
+        $text = OutputFormatter::escapeTrailingBackslash($question->getQuestion());
         $default = $question->getDefault();
 
         switch (true) {
--- a/vendor/symfony/console/Helper/Table.php
+++ b/vendor/symfony/console/Helper/Table.php
@@ -100,7 +100,7 @@ class Table
      *
      * @param string $name The style name
      *
-     * @return TableStyle A TableStyle instance
+     * @return TableStyle
      */
     public static function getStyleDefinition($name)
     {
@@ -120,7 +120,7 @@ class Table
      *
      * @param TableStyle|string $name The style name or a TableStyle instance
      *
-     * @return Table
+     * @return $this
      */
     public function setStyle($name)
     {
@@ -145,11 +145,11 @@ class Table
      * @param int               $columnIndex Column index
      * @param TableStyle|string $name        The style name or a TableStyle instance
      *
-     * @return Table
+     * @return $this
      */
     public function setColumnStyle($columnIndex, $name)
     {
-        $columnIndex = intval($columnIndex);
+        $columnIndex = (int) $columnIndex;
 
         $this->columnStyles[$columnIndex] = $this->resolveStyle($name);
 
@@ -387,7 +387,7 @@ class Table
                 if (!strstr($cell, "\n")) {
                     continue;
                 }
-                $lines = explode("\n", $cell);
+                $lines = explode("\n", str_replace("\n", "<fg=default;bg=default>\n</>", $cell));
                 foreach ($lines as $lineKey => $line) {
                     if ($cell instanceof TableCell) {
                         $line = new TableCell($line, array('colspan' => $cell->getColspan()));
@@ -428,7 +428,7 @@ class Table
                 $nbLines = $cell->getRowspan() - 1;
                 $lines = array($cell);
                 if (strstr($cell, "\n")) {
-                    $lines = explode("\n", $cell);
+                    $lines = explode("\n", str_replace("\n", "<fg=default;bg=default>\n</>", $cell));
                     $nbLines = count($lines) > $nbLines ? substr_count($cell, "\n") : $nbLines;
 
                     $rows[$line][$column] = new TableCell($lines[0], array('colspan' => $cell->getColspan()));
@@ -440,6 +440,9 @@ class Table
                 foreach ($unmergedRows as $unmergedRowKey => $unmergedRow) {
                     $value = isset($lines[$unmergedRowKey - $line]) ? $lines[$unmergedRowKey - $line] : '';
                     $unmergedRows[$unmergedRowKey][$column] = new TableCell($value, array('colspan' => $cell->getColspan()));
+                    if ($nbLines === $unmergedRowKey - $line) {
+                        break;
+                    }
                 }
             }
         }
@@ -560,9 +563,10 @@ class Table
 
                 foreach ($row as $i => $cell) {
                     if ($cell instanceof TableCell) {
-                        $textLength = strlen($cell);
+                        $textContent = Helper::removeDecoration($this->output->getFormatter(), $cell);
+                        $textLength = Helper::strlen($textContent);
                         if ($textLength > 0) {
-                            $contentColumns = str_split($cell, ceil($textLength / $cell->getColspan()));
+                            $contentColumns = str_split($textContent, ceil($textLength / $cell->getColspan()));
                             foreach ($contentColumns as $position => $content) {
                                 $row[$i + $position] = $content;
                             }
--- a/vendor/symfony/console/Helper/TableCell.php
+++ b/vendor/symfony/console/Helper/TableCell.php
@@ -37,6 +37,10 @@ class TableCell
      */
     public function __construct($value = '', array $options = array())
     {
+        if (is_numeric($value) && !is_string($value)) {
+            $value = (string) $value;
+        }
+
         $this->value = $value;
 
         // check option names
--- a/vendor/symfony/console/Helper/TableHelper.php
+++ b/vendor/symfony/console/Helper/TableHelper.php
@@ -49,7 +49,7 @@ class TableHelper extends Helper
      *
      * @param int $layout self::LAYOUT_*
      *
-     * @return TableHelper
+     * @return $this
      *
      * @throws InvalidArgumentException when the table layout is not known
      */
@@ -115,7 +115,7 @@ class TableHelper extends Helper
      *
      * @param string $paddingChar
      *
-     * @return TableHelper
+     * @return $this
      */
     public function setPaddingChar($paddingChar)
     {
@@ -129,7 +129,7 @@ class TableHelper extends Helper
      *
      * @param string $horizontalBorderChar
      *
-     * @return TableHelper
+     * @return $this
      */
     public function setHorizontalBorderChar($horizontalBorderChar)
     {
@@ -143,7 +143,7 @@ class TableHelper extends Helper
      *
      * @param string $verticalBorderChar
      *
-     * @return TableHelper
+     * @return $this
      */
     public function setVerticalBorderChar($verticalBorderChar)
     {
@@ -157,7 +157,7 @@ class TableHelper extends Helper
      *
      * @param string $crossingChar
      *
-     * @return TableHelper
+     * @return $this
      */
     public function setCrossingChar($crossingChar)
     {
@@ -171,7 +171,7 @@ class TableHelper extends Helper
      *
      * @param string $cellHeaderFormat
      *
-     * @return TableHelper
+     * @return $this
      */
     public function setCellHeaderFormat($cellHeaderFormat)
     {
@@ -185,7 +185,7 @@ class TableHelper extends Helper
      *
      * @param string $cellRowFormat
      *
-     * @return TableHelper
+     * @return $this
      */
     public function setCellRowFormat($cellRowFormat)
     {
@@ -199,7 +199,7 @@ class TableHelper extends Helper
      *
      * @param string $cellRowContentFormat
      *
-     * @return TableHelper
+     * @return $this
      */
     public function setCellRowContentFormat($cellRowContentFormat)
     {
@@ -213,7 +213,7 @@ class TableHelper extends Helper
      *
      * @param string $borderFormat
      *
-     * @return TableHelper
+     * @return $this
      */
     public function setBorderFormat($borderFormat)
     {
@@ -227,7 +227,7 @@ class TableHelper extends Helper
      *
      * @param int $padType STR_PAD_*
      *
-     * @return TableHelper
+     * @return $this
      */
     public function setPadType($padType)
     {
--- a/vendor/symfony/console/Helper/TableStyle.php
+++ b/vendor/symfony/console/Helper/TableStyle.php
@@ -37,7 +37,7 @@ class TableStyle
      *
      * @param string $paddingChar
      *
-     * @return TableStyle
+     * @return $this
      */
     public function setPaddingChar($paddingChar)
     {
@@ -65,7 +65,7 @@ class TableStyle
      *
      * @param string $horizontalBorderChar
      *
-     * @return TableStyle
+     * @return $this
      */
     public function setHorizontalBorderChar($horizontalBorderChar)
     {
@@ -89,7 +89,7 @@ class TableStyle
      *
      * @param string $verticalBorderChar
      *
-     * @return TableStyle
+     * @return $this
      */
     public function setVerticalBorderChar($verticalBorderChar)
     {
@@ -113,7 +113,7 @@ class TableStyle
      *
      * @param string $crossingChar
      *
-     * @return TableStyle
+     * @return $this
      */
     public function setCrossingChar($crossingChar)
     {
@@ -137,7 +137,7 @@ class TableStyle
      *
      * @param string $cellHeaderFormat
      *
-     * @return TableStyle
+     * @return $this
      */
     public function setCellHeaderFormat($cellHeaderFormat)
     {
@@ -161,7 +161,7 @@ class TableStyle
      *
      * @param string $cellRowFormat
      *
-     * @return TableStyle
+     * @return $this
      */
     public function setCellRowFormat($cellRowFormat)
     {
@@ -185,7 +185,7 @@ class TableStyle
      *
      * @param string $cellRowContentFormat
      *
-     * @return TableStyle
+     * @return $this
      */
     public function setCellRowContentFormat($cellRowContentFormat)
     {
@@ -209,7 +209,7 @@ class TableStyle
      *
      * @param string $borderFormat
      *
-     * @return TableStyle
+     * @return $this
      */
     public function setBorderFormat($borderFormat)
     {
@@ -233,7 +233,7 @@ class TableStyle
      *
      * @param int $padType STR_PAD_*
      *
-     * @return TableStyle
+     * @return $this
      */
     public function setPadType($padType)
     {
--- a/vendor/symfony/console/LICENSE
+++ b/vendor/symfony/console/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/console/Output/BufferedOutput.php
+++ b/vendor/symfony/console/Output/BufferedOutput.php
@@ -42,7 +42,7 @@ class BufferedOutput extends Output
         $this->buffer .= $message;
 
         if ($newline) {
-            $this->buffer .= "\n";
+            $this->buffer .= PHP_EOL;
         }
     }
 }
--- a/vendor/symfony/console/Question/ChoiceQuestion.php
+++ b/vendor/symfony/console/Question/ChoiceQuestion.php
@@ -34,6 +34,10 @@ class ChoiceQuestion extends Question
      */
     public function __construct($question, array $choices, $default = null)
     {
+        if (!$choices) {
+            throw new \LogicException('Choice question must have at least 1 choice available.');
+        }
+
         parent::__construct($question, $default);
 
         $this->choices = $choices;
@@ -58,7 +62,7 @@ class ChoiceQuestion extends Question
      *
      * @param bool $multiselect
      *
-     * @return ChoiceQuestion The current instance
+     * @return $this
      */
     public function setMultiselect($multiselect)
     {
@@ -93,7 +97,7 @@ class ChoiceQuestion extends Question
      *
      * @param string $prompt
      *
-     * @return ChoiceQuestion The current instance
+     * @return $this
      */
     public function setPrompt($prompt)
     {
@@ -109,7 +113,7 @@ class ChoiceQuestion extends Question
      *
      * @param string $errorMessage
      *
-     * @return ChoiceQuestion The current instance
+     * @return $this
      */
     public function setErrorMessage($errorMessage)
     {
@@ -137,7 +141,7 @@ class ChoiceQuestion extends Question
 
             if ($multiselect) {
                 // Check for a separated comma values
-                if (!preg_match('/^[a-zA-Z0-9_-]+(?:,[a-zA-Z0-9_-]+)*$/', $selectedChoices, $matches)) {
+                if (!preg_match('/^[^,]+(?:,[^,]+)*$/', $selectedChoices, $matches)) {
                     throw new InvalidArgumentException(sprintf($errorMessage, $selected));
                 }
                 $selectedChoices = explode(',', $selectedChoices);
--- a/vendor/symfony/console/Question/Question.php
+++ b/vendor/symfony/console/Question/Question.php
@@ -77,7 +77,7 @@ class Question
      *
      * @param bool $hidden
      *
-     * @return Question The current instance
+     * @return $this
      *
      * @throws LogicException In case the autocompleter is also used
      */
@@ -107,7 +107,7 @@ class Question
      *
      * @param bool $fallback
      *
-     * @return Question The current instance
+     * @return $this
      */
     public function setHiddenFallback($fallback)
     {
@@ -131,7 +131,7 @@ class Question
      *
      * @param null|array|\Traversable $values
      *
-     * @return Question The current instance
+     * @return $this
      *
      * @throws InvalidArgumentException
      * @throws LogicException
@@ -162,7 +162,7 @@ class Question
      *
      * @param null|callable $validator
      *
-     * @return Question The current instance
+     * @return $this
      */
     public function setValidator($validator)
     {
@@ -188,7 +188,7 @@ class Question
      *
      * @param null|int $attempts
      *
-     * @return Question The current instance
+     * @return $this
      *
      * @throws InvalidArgumentException In case the number of attempts is invalid.
      */
@@ -222,7 +222,7 @@ class Question
      *
      * @param callable $normalizer
      *
-     * @return Question The current instance
+     * @return $this
      */
     public function setNormalizer($normalizer)
     {
--- a/vendor/symfony/console/Style/SymfonyStyle.php
+++ b/vendor/symfony/console/Style/SymfonyStyle.php
@@ -79,7 +79,7 @@ class SymfonyStyle extends OutputStyle
     {
         $this->autoPrependBlock();
         $this->writeln(array(
-            sprintf('<comment>%s</>', $message),
+            sprintf('<comment>%s</>', OutputFormatter::escapeTrailingBackslash($message)),
             sprintf('<comment>%s</>', str_repeat('=', Helper::strlenWithoutDecoration($this->getFormatter(), $message))),
         ));
         $this->newLine();
@@ -92,7 +92,7 @@ class SymfonyStyle extends OutputStyle
     {
         $this->autoPrependBlock();
         $this->writeln(array(
-            sprintf('<comment>%s</>', $message),
+            sprintf('<comment>%s</>', OutputFormatter::escapeTrailingBackslash($message)),
             sprintf('<comment>%s</>', str_repeat('-', Helper::strlenWithoutDecoration($this->getFormatter(), $message))),
         ));
         $this->newLine();
--- a/vendor/symfony/console/Tester/CommandTester.php
+++ b/vendor/symfony/console/Tester/CommandTester.php
@@ -70,9 +70,7 @@ class CommandTester
         }
 
         $this->output = new StreamOutput(fopen('php://memory', 'w', false));
-        if (isset($options['decorated'])) {
-            $this->output->setDecorated($options['decorated']);
-        }
+        $this->output->setDecorated(isset($options['decorated']) ? $options['decorated'] : false);
         if (isset($options['verbosity'])) {
             $this->output->setVerbosity($options['verbosity']);
         }
--- a/vendor/symfony/console/composer.json
+++ b/vendor/symfony/console/composer.json
@@ -18,7 +18,7 @@
     "require": {
         "php": ">=5.3.9",
         "symfony/polyfill-mbstring": "~1.0",
-        "symfony/debug": "~2.7,>=2.7.2|~3.0.0"
+        "symfony/debug": "^2.7.2|~3.0.0"
     },
     "require-dev": {
         "symfony/event-dispatcher": "~2.1|~3.0.0",
--- a/vendor/symfony/debug/DebugClassLoader.php
+++ b/vendor/symfony/debug/DebugClassLoader.php
@@ -186,7 +186,7 @@ class DebugClassLoader
 
         $exists = class_exists($class, false) || interface_exists($class, false) || (function_exists('trait_exists') && trait_exists($class, false));
 
-        if ('\\' === $class[0]) {
+        if ($class && '\\' === $class[0]) {
             $class = substr($class, 1);
         }
 
--- a/vendor/symfony/debug/ErrorHandler.php
+++ b/vendor/symfony/debug/ErrorHandler.php
@@ -103,6 +103,7 @@ class ErrorHandler
     private static $stackedErrors = array();
     private static $stackedErrorLevels = array();
     private static $toStringException = null;
+    private static $exitCode = 0;
 
     /**
      * Same init value as thrownErrors.
@@ -375,12 +376,10 @@ class ErrorHandler
     /**
      * Handles errors by filtering then logging them according to the configured bit fields.
      *
-     * @param int    $type      One of the E_* constants
+     * @param int    $type    One of the E_* constants
      * @param string $message
      * @param string $file
      * @param int    $line
-     * @param array  $context
-     * @param array  $backtrace
      *
      * @return bool Returns false when no handling happens so that the PHP engine can handle the error itself
      *
@@ -388,7 +387,7 @@ class ErrorHandler
      *
      * @internal
      */
-    public function handleError($type, $message, $file, $line, array $context, array $backtrace = null)
+    public function handleError($type, $message, $file, $line)
     {
         $level = error_reporting() | E_RECOVERABLE_ERROR | E_USER_ERROR | E_DEPRECATED | E_USER_DEPRECATED;
         $log = $this->loggedErrors & $type;
@@ -398,8 +397,17 @@ class ErrorHandler
         if (!$type || (!$log && !$throw)) {
             return $type && $log;
         }
+        $scope = $this->scopedErrors & $type;
 
-        if (isset($context['GLOBALS']) && ($this->scopedErrors & $type)) {
+        if (4 < $numArgs = func_num_args()) {
+            $context = $scope ? (func_get_arg(4) ?: array()) : array();
+            $backtrace = 5 < $numArgs ? func_get_arg(5) : null; // defined on HHVM
+        } else {
+            $context = array();
+            $backtrace = null;
+        }
+
+        if (isset($context['GLOBALS']) && $scope) {
             $e = $context;                  // Whatever the signature of the method,
             unset($e['GLOBALS'], $context); // $context is always a reference in 5.3
             $context = $e;
@@ -418,7 +426,7 @@ class ErrorHandler
             if (null !== self::$toStringException) {
                 $throw = self::$toStringException;
                 self::$toStringException = null;
-            } elseif (($this->scopedErrors & $type) && class_exists('Symfony\Component\Debug\Exception\ContextErrorException')) {
+            } elseif ($scope && class_exists('Symfony\Component\Debug\Exception\ContextErrorException')) {
                 // Checking for class existence is a work around for https://bugs.php.net/42098
                 $throw = new ContextErrorException($this->levels[$type].': '.$message, 0, $type, $file, $line, $context);
             } else {
@@ -490,7 +498,7 @@ class ErrorHandler
         $e = compact('type', 'file', 'line', 'level');
 
         if ($type & $level) {
-            if ($this->scopedErrors & $type) {
+            if ($scope) {
                 $e['scope_vars'] = $context;
                 if ($trace) {
                     $e['stack'] = $backtrace ?: debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT);
@@ -540,6 +548,9 @@ class ErrorHandler
      */
     public function handleException($exception, array $error = null)
     {
+        if (null === $error) {
+            self::$exitCode = 255;
+        }
         if (!$exception instanceof \Exception) {
             $exception = new FatalThrowableError($exception);
         }
@@ -574,7 +585,11 @@ class ErrorHandler
             }
         }
         if ($this->loggedErrors & $type) {
-            $this->loggers[$type][0]->log($this->loggers[$type][1], $message, $e);
+            try {
+                $this->loggers[$type][0]->log($this->loggers[$type][1], $message, $e);
+            } catch (\Exception $handlerException) {
+            } catch (\Throwable $handlerException) {
+            }
         }
         if ($exception instanceof FatalErrorException && !$exception instanceof OutOfMemoryException && $error) {
             foreach ($this->getFatalErrorHandlers() as $handler) {
@@ -621,7 +636,7 @@ class ErrorHandler
             return;
         }
 
-        if (null === $error) {
+        if ($exit = null === $error) {
             $error = error_get_last();
         }
 
@@ -645,15 +660,21 @@ class ErrorHandler
             } else {
                 $exception = new FatalErrorException($handler->levels[$error['type']].': '.$error['message'], 0, $error['type'], $error['file'], $error['line'], 2, true, $trace);
             }
-        } elseif (!isset($exception)) {
-            return;
         }
 
         try {
-            $handler->handleException($exception, $error);
+            if (isset($exception)) {
+                self::$exitCode = 255;
+                $handler->handleException($exception, $error);
+            }
         } catch (FatalErrorException $e) {
             // Ignore this re-throw
         }
+
+        if ($exit && self::$exitCode) {
+            $exitCode = self::$exitCode;
+            register_shutdown_function('register_shutdown_function', function () use ($exitCode) { exit($exitCode); });
+        }
     }
 
     /**
--- a/vendor/symfony/debug/ExceptionHandler.php
+++ b/vendor/symfony/debug/ExceptionHandler.php
@@ -58,7 +58,7 @@ class ExceptionHandler
      * @param string|null $charset        The charset used by exception messages
      * @param string|null $fileLinkFormat The IDE link template
      *
-     * @return ExceptionHandler The registered exception handler
+     * @return static
      */
     public static function register($debug = true, $charset = null, $fileLinkFormat = null)
     {
--- a/vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php
+++ b/vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php
@@ -179,7 +179,7 @@ class ClassNotFoundFatalErrorHandler implements FatalErrorHandlerInterface
         );
 
         if ($prefix) {
-            $candidates = array_filter($candidates, function ($candidate) use ($prefix) {return 0 === strpos($candidate, $prefix);});
+            $candidates = array_filter($candidates, function ($candidate) use ($prefix) { return 0 === strpos($candidate, $prefix); });
         }
 
         // We cannot use the autoloader here as most of them use require; but if the class
--- a/vendor/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php
+++ b/vendor/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php
@@ -36,8 +36,13 @@ class UndefinedMethodFatalErrorHandler implements FatalErrorHandlerInterface
 
         $message = sprintf('Attempted to call an undefined method named "%s" of class "%s".', $methodName, $className);
 
+        if (!class_exists($className) || null === $methods = get_class_methods($className)) {
+            // failed to get the class or its methods on which an unknown method was called (for example on an anonymous class)
+            return new UndefinedMethodException($message, $exception);
+        }
+
         $candidates = array();
-        foreach (get_class_methods($className) as $definedMethodName) {
+        foreach ($methods as $definedMethodName) {
             $lev = levenshtein($methodName, $definedMethodName);
             if ($lev <= strlen($methodName) / 3 || false !== strpos($definedMethodName, $methodName)) {
                 $candidates[] = $definedMethodName;
@@ -52,6 +57,7 @@ class UndefinedMethodFatalErrorHandler implements FatalErrorHandlerInterface
             } else {
                 $candidates = '"'.$last;
             }
+
             $message .= "\nDid you mean to call ".$candidates;
         }
 
--- a/vendor/symfony/debug/LICENSE
+++ b/vendor/symfony/debug/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/debug/composer.json
+++ b/vendor/symfony/debug/composer.json
@@ -24,7 +24,7 @@
     },
     "require-dev": {
         "symfony/class-loader": "~2.2|~3.0.0",
-        "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2|~3.0.0"
+        "symfony/http-kernel": "~2.3.24|~2.5.9|^2.6.2|~3.0.0"
     },
     "autoload": {
         "psr-4": { "Symfony\\Component\\Debug\\": "" },
--- a/vendor/symfony/dependency-injection/Compiler/AutowirePass.php
+++ b/vendor/symfony/dependency-injection/Compiler/AutowirePass.php
@@ -28,6 +28,7 @@ class AutowirePass implements CompilerPassInterface
     private $definedTypes = array();
     private $types;
     private $notGuessableTypes = array();
+    private $autowired = array();
 
     /**
      * {@inheritdoc}
@@ -56,6 +57,7 @@ class AutowirePass implements CompilerPassInterface
         $this->definedTypes = array();
         $this->types = null;
         $this->notGuessableTypes = array();
+        $this->autowired = array();
 
         if (isset($e)) {
             throw $e;
@@ -72,6 +74,10 @@ class AutowirePass implements CompilerPassInterface
      */
     private function completeDefinition($id, Definition $definition)
     {
+        if ($definition->getFactory() || $definition->getFactoryClass(false) || $definition->getFactoryService(false)) {
+            throw new RuntimeException(sprintf('Service "%s" can use either autowiring or a factory, not both.', $id));
+        }
+
         if (!$reflectionClass = $this->getReflectionClass($id, $definition)) {
             return;
         }
@@ -81,15 +87,23 @@ class AutowirePass implements CompilerPassInterface
         if (!$constructor = $reflectionClass->getConstructor()) {
             return;
         }
+        $parameters = $constructor->getParameters();
+        if (method_exists('ReflectionMethod', 'isVariadic') && $constructor->isVariadic()) {
+            array_pop($parameters);
+        }
 
         $arguments = $definition->getArguments();
-        foreach ($constructor->getParameters() as $index => $parameter) {
+        foreach ($parameters as $index => $parameter) {
             if (array_key_exists($index, $arguments) && '' !== $arguments[$index]) {
                 continue;
             }
 
             try {
                 if (!$typeHint = $parameter->getClass()) {
+                    if (isset($arguments[$index])) {
+                        continue;
+                    }
+
                     // no default value? Then fail
                     if (!$parameter->isOptional()) {
                         throw new RuntimeException(sprintf('Unable to autowire argument index %d ($%s) for the service "%s". If this is an object, give it a type-hint. Otherwise, specify this argument\'s value explicitly.', $index, $parameter->name, $id));
@@ -101,6 +115,11 @@ class AutowirePass implements CompilerPassInterface
                     continue;
                 }
 
+                if (isset($this->autowired[$typeHint->name])) {
+                    $arguments[$index] = $this->autowired[$typeHint->name] ? new Reference($this->autowired[$typeHint->name]) : null;
+                    continue;
+                }
+
                 if (null === $this->types) {
                     $this->populateAvailableTypes();
                 }
@@ -111,13 +130,14 @@ class AutowirePass implements CompilerPassInterface
                     try {
                         $value = $this->createAutowiredDefinition($typeHint, $id);
                     } catch (RuntimeException $e) {
-                        if ($parameter->allowsNull()) {
-                            $value = null;
-                        } elseif ($parameter->isDefaultValueAvailable()) {
+                        if ($parameter->isDefaultValueAvailable()) {
                             $value = $parameter->getDefaultValue();
+                        } elseif ($parameter->allowsNull()) {
+                            $value = null;
                         } else {
                             throw $e;
                         }
+                        $this->autowired[$typeHint->name] = false;
                     }
                 }
             } catch (\ReflectionException $e) {
@@ -133,6 +153,16 @@ class AutowirePass implements CompilerPassInterface
             $arguments[$index] = $value;
         }
 
+        if ($parameters && !isset($arguments[++$index])) {
+            while (0 <= --$index) {
+                $parameter = $parameters[$index];
+                if (!$parameter->isDefaultValueAvailable() || $parameter->getDefaultValue() !== $arguments[$index]) {
+                    break;
+                }
+                unset($arguments[$index]);
+            }
+        }
+
         // it's possible index 1 was set, then index 0, then 2, etc
         // make sure that we re-order so they're injected as expected
         ksort($arguments);
@@ -167,6 +197,7 @@ class AutowirePass implements CompilerPassInterface
         foreach ($definition->getAutowiringTypes() as $type) {
             $this->definedTypes[$type] = true;
             $this->types[$type] = $id;
+            unset($this->notGuessableTypes[$type]);
         }
 
         if (!$reflectionClass = $this->getReflectionClass($id, $definition)) {
@@ -236,13 +267,11 @@ class AutowirePass implements CompilerPassInterface
             throw new RuntimeException(sprintf('Unable to autowire argument of type "%s" for the service "%s". No services were found matching this %s and it cannot be auto-registered.', $typeHint->name, $id, $classOrInterface));
         }
 
-        $argumentId = sprintf('autowired.%s', $typeHint->name);
+        $this->autowired[$typeHint->name] = $argumentId = sprintf('autowired.%s', $typeHint->name);
 
         $argumentDefinition = $this->container->register($argumentId, $typeHint->name);
         $argumentDefinition->setPublic(false);
 
-        $this->populateAvailableType($argumentId, $argumentDefinition);
-
         try {
             $this->completeDefinition($argumentId, $argumentDefinition);
         } catch (RuntimeException $e) {
@@ -275,9 +304,28 @@ class AutowirePass implements CompilerPassInterface
 
         $class = $this->container->getParameterBag()->resolveValue($class);
 
+        if ($deprecated = $definition->isDeprecated()) {
+            $prevErrorHandler = set_error_handler(function ($level, $message, $file, $line) use (&$prevErrorHandler) {
+                return (E_USER_DEPRECATED === $level || !$prevErrorHandler) ? false : $prevErrorHandler($level, $message, $file, $line);
+            });
+        }
+
+        $e = null;
+
         try {
             $reflector = new \ReflectionClass($class);
-        } catch (\ReflectionException $e) {
+        } catch (\Exception $e) {
+        } catch (\Throwable $e) {
+        }
+
+        if ($deprecated) {
+            restore_error_handler();
+        }
+
+        if (null !== $e) {
+            if (!$e instanceof \ReflectionException) {
+                throw $e;
+            }
             $reflector = false;
         }
 
--- a/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php
+++ b/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php
@@ -60,14 +60,17 @@ class CheckCircularReferencesPass implements CompilerPassInterface
             $id = $node->getId();
 
             if (empty($this->checkedNodes[$id])) {
-                $searchKey = array_search($id, $this->currentPath);
-                $this->currentPath[] = $id;
+                // don't check circular dependencies for lazy services
+                if (!$node->getValue() || !$node->getValue()->isLazy()) {
+                    $searchKey = array_search($id, $this->currentPath);
+                    $this->currentPath[] = $id;
 
-                if (false !== $searchKey) {
-                    throw new ServiceCircularReferenceException($id, array_slice($this->currentPath, $searchKey));
-                }
+                    if (false !== $searchKey) {
+                        throw new ServiceCircularReferenceException($id, array_slice($this->currentPath, $searchKey));
+                    }
 
-                $this->checkOutEdges($node->getOutEdges());
+                    $this->checkOutEdges($node->getOutEdges());
+                }
 
                 $this->checkedNodes[$id] = true;
                 array_pop($this->currentPath);
--- a/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php
+++ b/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\DependencyInjection\Compiler;
 
 use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface;
 use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
 
 /**
@@ -47,6 +48,9 @@ class MergeExtensionConfigurationPass implements CompilerPassInterface
             $tmpContainer = new ContainerBuilder($container->getParameterBag());
             $tmpContainer->setResourceTracking($container->isTrackingResources());
             $tmpContainer->addObjectResource($extension);
+            if ($extension instanceof ConfigurationExtensionInterface && null !== $configuration = $extension->getConfiguration($config, $tmpContainer)) {
+                $tmpContainer->addObjectResource($configuration);
+            }
 
             foreach ($exprLangProviders as $provider) {
                 $tmpContainer->addExpressionLanguageProvider($provider);
--- a/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php
+++ b/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php
@@ -51,7 +51,7 @@ class ReplaceAliasByActualDefinitionPass implements CompilerPassInterface
             if (isset($replacements[$targetId])) {
                 $container->setAlias($definitionId, $replacements[$targetId]);
             }
-            // No neeed to process the same target twice
+            // No need to process the same target twice
             if (isset($seenAliasTargets[$targetId])) {
                 continue;
             }
--- a/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php
+++ b/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php
@@ -45,7 +45,7 @@ class ServiceReferenceGraph
      *
      * @param string $id The id to retrieve
      *
-     * @return ServiceReferenceGraphNode The node matching the supplied identifier
+     * @return ServiceReferenceGraphNode
      *
      * @throws InvalidArgumentException if no node matches the supplied identifier
      */
@@ -61,7 +61,7 @@ class ServiceReferenceGraph
     /**
      * Returns all nodes.
      *
-     * @return ServiceReferenceGraphNode[] An array of all ServiceReferenceGraphNode objects
+     * @return ServiceReferenceGraphNode[]
      */
     public function getNodes()
     {
--- a/vendor/symfony/dependency-injection/ContainerBuilder.php
+++ b/vendor/symfony/dependency-injection/ContainerBuilder.php
@@ -26,6 +26,7 @@ use Symfony\Component\Config\Resource\FileResource;
 use Symfony\Component\Config\Resource\ResourceInterface;
 use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\InstantiatorInterface;
 use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
 use Symfony\Component\ExpressionLanguage\Expression;
 use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;
 
@@ -73,7 +74,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      */
     private $compiler;
 
-    private $trackResources = true;
+    private $trackResources;
 
     /**
      * @var InstantiatorInterface|null
@@ -90,6 +91,13 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      */
     private $expressionLanguageProviders = array();
 
+    public function __construct(ParameterBagInterface $parameterBag = null)
+    {
+        parent::__construct($parameterBag);
+
+        $this->trackResources = interface_exists('Symfony\Component\Config\Resource\ResourceInterface');
+    }
+
     /**
      * @var string[] with tag names used by findTaggedServiceIds
      */
@@ -201,7 +209,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      *
      * @param ResourceInterface $resource A resource instance
      *
-     * @return ContainerBuilder The current instance
+     * @return $this
      */
     public function addResource(ResourceInterface $resource)
     {
@@ -219,7 +227,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      *
      * @param ResourceInterface[] $resources An array of resources
      *
-     * @return ContainerBuilder The current instance
+     * @return $this
      */
     public function setResources(array $resources)
     {
@@ -237,7 +245,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      *
      * @param object $object An object instance
      *
-     * @return ContainerBuilder The current instance
+     * @return $this
      */
     public function addObjectResource($object)
     {
@@ -253,7 +261,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      *
      * @param \ReflectionClass $class
      *
-     * @return ContainerBuilder The current instance
+     * @return $this
      */
     public function addClassResource(\ReflectionClass $class)
     {
@@ -276,7 +284,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      * @param string $extension The extension alias or namespace
      * @param array  $values    An array of values that customizes the extension
      *
-     * @return ContainerBuilder The current instance
+     * @return $this
      *
      * @throws BadMethodCallException When this ContainerBuilder is frozen
      * @throws \LogicException        if the container is frozen
@@ -300,7 +308,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      * @param CompilerPassInterface $pass A compiler pass
      * @param string                $type The type of compiler pass
      *
-     * @return ContainerBuilder The current instance
+     * @return $this
      */
     public function addCompilerPass(CompilerPassInterface $pass, $type = PassConfig::TYPE_BEFORE_OPTIMIZATION)
     {
@@ -449,7 +457,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
         }
 
         if (!array_key_exists($id, $this->definitions) && isset($this->aliasDefinitions[$id])) {
-            return $this->get($this->aliasDefinitions[$id]);
+            return $this->get((string) $this->aliasDefinitions[$id], $invalidBehavior);
         }
 
         try {
@@ -859,8 +867,8 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      */
     public function createService(Definition $definition, $id, $tryProxy = true)
     {
-        if ('Symfony\Component\DependencyInjection\Definition' !== get_class($definition)) {
-            throw new RuntimeException(sprintf('Constructing service "%s" from a %s is not supported at build time.', $id, get_class($definition)));
+        if ($definition instanceof DefinitionDecorator) {
+            throw new RuntimeException(sprintf('Constructing service "%s" from a parent definition is not supported at build time.', $id));
         }
 
         if ($definition->isSynthetic()) {
@@ -937,15 +945,15 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
             $this->shareService($definition, $service, $id);
         }
 
-        foreach ($definition->getMethodCalls() as $call) {
-            $this->callMethod($service, $call);
-        }
-
         $properties = $this->resolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($definition->getProperties())));
         foreach ($properties as $name => $value) {
             $service->$name = $value;
         }
 
+        foreach ($definition->getMethodCalls() as $call) {
+            $this->callMethod($service, $call);
+        }
+
         if ($callable = $definition->getConfigurator()) {
             if (is_array($callable)) {
                 $callable[0] = $parameterBag->resolveValue($callable[0]);
@@ -1145,15 +1153,15 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
     /**
      * Shares a given service in the container.
      *
-     * @param Definition $definition
-     * @param mixed      $service
-     * @param string     $id
+     * @param Definition  $definition
+     * @param mixed       $service
+     * @param string|null $id
      *
      * @throws InactiveScopeException
      */
     private function shareService(Definition $definition, $service, $id)
     {
-        if ($definition->isShared() && self::SCOPE_PROTOTYPE !== $scope = $definition->getScope(false)) {
+        if (null !== $id && $definition->isShared() && self::SCOPE_PROTOTYPE !== $scope = $definition->getScope(false)) {
             if (self::SCOPE_CONTAINER !== $scope && !isset($this->scopedServices[$scope])) {
                 throw new InactiveScopeException($id, $scope);
             }
--- a/vendor/symfony/dependency-injection/Definition.php
+++ b/vendor/symfony/dependency-injection/Definition.php
@@ -29,7 +29,7 @@ class Definition
     private $factoryService;
     private $shared = true;
     private $deprecated = false;
-    private $deprecationTemplate = 'The "%service_id%" service is deprecated. You should stop using it, as it will soon be removed.';
+    private $deprecationTemplate;
     private $scope = ContainerInterface::SCOPE_CONTAINER;
     private $properties = array();
     private $calls = array();
@@ -44,6 +44,8 @@ class Definition
     private $autowired = false;
     private $autowiringTypes = array();
 
+    private static $defaultDeprecationTemplate = 'The "%service_id%" service is deprecated. You should stop using it, as it will soon be removed.';
+
     protected $arguments;
 
     /**
@@ -61,7 +63,7 @@ class Definition
      *
      * @param string|array $factory A PHP function or an array containing a class/Reference and a method to call
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setFactory($factory)
     {
@@ -90,7 +92,7 @@ class Definition
      *
      * @param string $factoryClass The factory class name
      *
-     * @return Definition The current instance
+     * @return $this
      *
      * @deprecated since version 2.6, to be removed in 3.0.
      */
@@ -124,7 +126,7 @@ class Definition
      *
      * @param string $factoryMethod The factory method name
      *
-     * @return Definition The current instance
+     * @return $this
      *
      * @deprecated since version 2.6, to be removed in 3.0.
      */
@@ -144,7 +146,7 @@ class Definition
      * @param null|string $renamedId The new decorated service id
      * @param int         $priority  The priority of decoration
      *
-     * @return Definition The current instance
+     * @return $this
      *
      * @throws InvalidArgumentException In case the decorated service id and the new decorated service id are equals.
      */
@@ -164,7 +166,7 @@ class Definition
     }
 
     /**
-     * Gets the service that decorates this service.
+     * Gets the service that this service is decorating.
      *
      * @return null|array An array composed of the decorated service id, the new id for it and the priority of decoration, null if no service is decorated
      */
@@ -194,7 +196,7 @@ class Definition
      *
      * @param string $factoryService The factory service id
      *
-     * @return Definition The current instance
+     * @return $this
      *
      * @deprecated since version 2.6, to be removed in 3.0.
      */
@@ -230,7 +232,7 @@ class Definition
      *
      * @param string $class The service class
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setClass($class)
     {
@@ -254,7 +256,7 @@ class Definition
      *
      * @param array $arguments An array of arguments
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setArguments(array $arguments)
     {
@@ -287,7 +289,7 @@ class Definition
      *
      * @param mixed $argument An argument
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function addArgument($argument)
     {
@@ -302,12 +304,16 @@ class Definition
      * @param int   $index
      * @param mixed $argument
      *
-     * @return Definition The current instance
+     * @return $this
      *
      * @throws OutOfBoundsException When the replaced argument does not exist
      */
     public function replaceArgument($index, $argument)
     {
+        if (0 === count($this->arguments)) {
+            throw new OutOfBoundsException('Cannot replace arguments if none have been configured yet.');
+        }
+
         if ($index < 0 || $index > count($this->arguments) - 1) {
             throw new OutOfBoundsException(sprintf('The index "%d" is not in the range [0, %d].', $index, count($this->arguments) - 1));
         }
@@ -350,7 +356,7 @@ class Definition
      *
      * @param array $calls An array of method calls
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setMethodCalls(array $calls = array())
     {
@@ -368,14 +374,14 @@ class Definition
      * @param string $method    The method name to call
      * @param array  $arguments An array of arguments to pass to the method call
      *
-     * @return Definition The current instance
+     * @return $this
      *
      * @throws InvalidArgumentException on empty $method param
      */
     public function addMethodCall($method, array $arguments = array())
     {
         if (empty($method)) {
-            throw new InvalidArgumentException(sprintf('Method name cannot be empty.'));
+            throw new InvalidArgumentException('Method name cannot be empty.');
         }
         $this->calls[] = array($method, $arguments);
 
@@ -387,7 +393,7 @@ class Definition
      *
      * @param string $method The method name to remove
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function removeMethodCall($method)
     {
@@ -434,7 +440,7 @@ class Definition
      *
      * @param array $tags
      *
-     * @return Definition the current instance
+     * @return $this
      */
     public function setTags(array $tags)
     {
@@ -471,7 +477,7 @@ class Definition
      * @param string $name       The tag name
      * @param array  $attributes An array of attributes
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function addTag($name, array $attributes = array())
     {
@@ -497,7 +503,7 @@ class Definition
      *
      * @param string $name The tag name
      *
-     * @return Definition
+     * @return $this
      */
     public function clearTag($name)
     {
@@ -509,7 +515,7 @@ class Definition
     /**
      * Clears the tags for this definition.
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function clearTags()
     {
@@ -523,7 +529,7 @@ class Definition
      *
      * @param string $file A full pathname to include
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setFile($file)
     {
@@ -547,7 +553,7 @@ class Definition
      *
      * @param bool $shared Whether the service must be shared or not
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setShared($shared)
     {
@@ -571,7 +577,7 @@ class Definition
      *
      * @param string $scope Whether the service must be shared or not
      *
-     * @return Definition The current instance
+     * @return $this
      *
      * @deprecated since version 2.8, to be removed in 3.0.
      */
@@ -611,7 +617,7 @@ class Definition
      *
      * @param bool $boolean
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setPublic($boolean)
     {
@@ -635,7 +641,7 @@ class Definition
      *
      * @param bool $boolean
      *
-     * @return Definition The current instance
+     * @return $this
      *
      * @deprecated since version 2.7, will be removed in 3.0.
      */
@@ -671,7 +677,7 @@ class Definition
      *
      * @param bool $lazy
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setLazy($lazy)
     {
@@ -696,7 +702,7 @@ class Definition
      *
      * @param bool $boolean
      *
-     * @return Definition the current instance
+     * @return $this
      */
     public function setSynthetic($boolean)
     {
@@ -722,7 +728,7 @@ class Definition
      *
      * @param bool $boolean
      *
-     * @return Definition the current instance
+     * @return $this
      */
     public function setAbstract($boolean)
     {
@@ -749,7 +755,7 @@ class Definition
      * @param bool   $status
      * @param string $template Template message to use if the definition is deprecated
      *
-     * @return Definition the current instance
+     * @return $this
      *
      * @throws InvalidArgumentException When the message template is invalid.
      */
@@ -792,7 +798,7 @@ class Definition
      */
     public function getDeprecationMessage($id)
     {
-        return str_replace('%service_id%', $id, $this->deprecationTemplate);
+        return str_replace('%service_id%', $id, $this->deprecationTemplate ?: self::$defaultDeprecationTemplate);
     }
 
     /**
@@ -800,7 +806,7 @@ class Definition
      *
      * @param callable $callable A PHP callable
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setConfigurator($callable)
     {
@@ -824,7 +830,7 @@ class Definition
      *
      * @param string[] $types
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setAutowiringTypes(array $types)
     {
@@ -852,7 +858,7 @@ class Definition
      *
      * @param bool $autowired
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function setAutowired($autowired)
     {
@@ -876,7 +882,7 @@ class Definition
      *
      * @param string $type
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function addAutowiringType($type)
     {
@@ -890,7 +896,7 @@ class Definition
      *
      * @param string $type
      *
-     * @return Definition The current instance
+     * @return $this
      */
     public function removeAutowiringType($type)
     {
--- a/vendor/symfony/dependency-injection/DefinitionDecorator.php
+++ b/vendor/symfony/dependency-injection/DefinitionDecorator.php
@@ -212,7 +212,7 @@ class DefinitionDecorator extends Definition
      * @param int   $index
      * @param mixed $value
      *
-     * @return DefinitionDecorator the current instance
+     * @return $this
      *
      * @throws InvalidArgumentException when $index isn't an integer
      */
--- a/vendor/symfony/dependency-injection/Dumper/PhpDumper.php
+++ b/vendor/symfony/dependency-injection/Dumper/PhpDumper.php
@@ -335,8 +335,8 @@ class PhpDumper extends Dumper
                 $code .= $this->addNewInstance($id, $sDefinition, '$'.$name, ' = ');
 
                 if (!$this->hasReference($id, $sDefinition->getMethodCalls(), true) && !$this->hasReference($id, $sDefinition->getProperties(), true)) {
-                    $code .= $this->addServiceMethodCalls(null, $sDefinition, $name);
                     $code .= $this->addServiceProperties(null, $sDefinition, $name);
+                    $code .= $this->addServiceMethodCalls(null, $sDefinition, $name);
                     $code .= $this->addServiceConfigurator(null, $sDefinition, $name);
                 }
 
@@ -507,8 +507,8 @@ class PhpDumper extends Dumper
             }
 
             $name = (string) $this->definitionVariables->offsetGet($iDefinition);
-            $code .= $this->addServiceMethodCalls(null, $iDefinition, $name);
             $code .= $this->addServiceProperties(null, $iDefinition, $name);
+            $code .= $this->addServiceMethodCalls(null, $iDefinition, $name);
             $code .= $this->addServiceConfigurator(null, $iDefinition, $name);
         }
 
@@ -628,7 +628,7 @@ EOF;
         }
 
         if ($definition->isAutowired()) {
-            $doc = <<<EOF
+            $doc .= <<<EOF
 
      *
      * This service is autowired.
@@ -683,8 +683,8 @@ EOF;
                 $this->addServiceInlinedDefinitions($id, $definition).
                 $this->addServiceInstance($id, $definition).
                 $this->addServiceInlinedDefinitionsSetup($id, $definition).
-                $this->addServiceMethodCalls($id, $definition).
                 $this->addServiceProperties($id, $definition).
+                $this->addServiceMethodCalls($id, $definition).
                 $this->addServiceConfigurator($id, $definition).
                 $this->addServiceReturn($id, $definition)
             ;
@@ -847,7 +847,7 @@ EOF;
     private function startClass($class, $baseClass, $namespace)
     {
         $bagClass = $this->container->isFrozen() ? 'use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;' : 'use Symfony\Component\DependencyInjection\ParameterBag\\ParameterBag;';
-        $namespaceLine = $namespace ? "namespace $namespace;\n" : '';
+        $namespaceLine = $namespace ? "\nnamespace $namespace;\n" : '';
 
         return <<<EOF
 <?php
@@ -1029,11 +1029,7 @@ EOF;
     private function addAliases()
     {
         if (!$aliases = $this->container->getAliases()) {
-            if ($this->container->isFrozen()) {
-                return "\n        \$this->aliases = array();\n";
-            } else {
-                return '';
-            }
+            return $this->container->isFrozen() ? "\n        \$this->aliases = array();\n" : '';
         }
 
         $code = "        \$this->aliases = array(\n";
@@ -1313,6 +1309,13 @@ EOF;
                     $visited[$argumentId] = true;
 
                     $service = $this->container->getDefinition($argumentId);
+
+                    // if the proxy manager is enabled, disable searching for references in lazy services,
+                    // as these services will be instantiated lazily and don't have direct related references.
+                    if ($service->isLazy() && !$this->getProxyDumper() instanceof NullDumper) {
+                        continue;
+                    }
+
                     $arguments = array_merge($service->getMethodCalls(), $service->getArguments(), $service->getProperties());
 
                     if ($this->hasReference($id, $arguments, $deep, $visited)) {
@@ -1348,9 +1351,12 @@ EOF;
             if (null !== $this->definitionVariables && $this->definitionVariables->contains($value)) {
                 return $this->dumpValue($this->definitionVariables->offsetGet($value), $interpolate);
             }
-            if (count($value->getMethodCalls()) > 0) {
+            if ($value->getMethodCalls()) {
                 throw new RuntimeException('Cannot dump definitions which have method calls.');
             }
+            if ($value->getProperties()) {
+                throw new RuntimeException('Cannot dump definitions which have properties.');
+            }
             if (null !== $value->getConfigurator()) {
                 throw new RuntimeException('Cannot dump definitions which have a configurator.');
             }
@@ -1395,9 +1401,9 @@ EOF;
                     $service = $this->dumpValue($value->getFactoryService(false));
 
                     return sprintf('%s->%s(%s)', 0 === strpos($service, '$') ? sprintf('$this->get(%s)', $service) : $this->getServiceCall($value->getFactoryService(false)), $value->getFactoryMethod(false), implode(', ', $arguments));
-                } else {
-                    throw new RuntimeException('Cannot dump definitions which have factory method without factory service or factory class.');
                 }
+
+                throw new RuntimeException('Cannot dump definitions which have factory method without factory service or factory class.');
             }
 
             $class = $value->getClass();
@@ -1435,9 +1441,9 @@ EOF;
             }
         } elseif (is_object($value) || is_resource($value)) {
             throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.');
-        } else {
-            return $this->export($value);
         }
+
+        return $this->export($value);
     }
 
     /**
@@ -1506,13 +1512,13 @@ EOF;
 
         if (null !== $reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $reference->getInvalidBehavior()) {
             return sprintf('$this->get(\'%s\', ContainerInterface::NULL_ON_INVALID_REFERENCE)', $id);
-        } else {
-            if ($this->container->hasAlias($id)) {
-                $id = (string) $this->container->getAlias($id);
-            }
+        }
 
-            return sprintf('$this->get(\'%s\')', $id);
+        if ($this->container->hasAlias($id)) {
+            $id = (string) $this->container->getAlias($id);
         }
+
+        return sprintf('$this->get(\'%s\')', $id);
     }
 
     /**
--- a/vendor/symfony/dependency-injection/Dumper/XmlDumper.php
+++ b/vendor/symfony/dependency-injection/Dumper/XmlDumper.php
@@ -215,6 +215,10 @@ class XmlDumper extends Dumper
             $service->appendChild($autowiringType);
         }
 
+        if ($definition->isAbstract()) {
+            $service->setAttribute('abstract', 'true');
+        }
+
         if ($callable = $definition->getConfigurator()) {
             $configurator = $this->document->createElement('configurator');
 
--- a/vendor/symfony/dependency-injection/Dumper/YamlDumper.php
+++ b/vendor/symfony/dependency-injection/Dumper/YamlDumper.php
@@ -93,11 +93,11 @@ class YamlDumper extends Dumper
         }
 
         if ($definition->isSynthetic()) {
-            $code .= sprintf("        synthetic: true\n");
+            $code .= "        synthetic: true\n";
         }
 
         if ($definition->isSynchronized(false)) {
-            $code .= sprintf("        synchronized: true\n");
+            $code .= "        synchronized: true\n";
         }
 
         if ($definition->isDeprecated()) {
@@ -121,7 +121,7 @@ class YamlDumper extends Dumper
         }
 
         if ($definition->isLazy()) {
-            $code .= sprintf("        lazy: true\n");
+            $code .= "        lazy: true\n";
         }
 
         if ($definition->getFactoryMethod(false)) {
@@ -188,7 +188,7 @@ class YamlDumper extends Dumper
             return sprintf("    %s: '@%s'\n", $alias, $id);
         }
 
-        return sprintf("    %s:\n        alias: %s\n        public: false", $alias, $id);
+        return sprintf("    %s:\n        alias: %s\n        public: false\n", $alias, $id);
     }
 
     /**
--- a/vendor/symfony/dependency-injection/LICENSE
+++ b/vendor/symfony/dependency-injection/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php
+++ b/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php
@@ -369,21 +369,22 @@ class XmlFileLoader extends FileLoader
                 $arg->setAttribute('key', $arg->getAttribute('name'));
             }
 
-            if (!$arg->hasAttribute('key')) {
-                $key = !$arguments ? 0 : max(array_keys($arguments)) + 1;
-            } else {
-                $key = $arg->getAttribute('key');
-            }
-
-            // parameter keys are case insensitive
-            if ('parameter' == $name && $lowercase) {
-                $key = strtolower($key);
-            }
-
             // this is used by DefinitionDecorator to overwrite a specific
             // argument of the parent definition
             if ($arg->hasAttribute('index')) {
                 $key = 'index_'.$arg->getAttribute('index');
+            } elseif (!$arg->hasAttribute('key')) {
+                // Append an empty argument, then fetch its key to overwrite it later
+                $arguments[] = null;
+                $keys = array_keys($arguments);
+                $key = array_pop($keys);
+            } else {
+                $key = $arg->getAttribute('key');
+
+                // parameter keys are case insensitive
+                if ('parameter' == $name && $lowercase) {
+                    $key = strtolower($key);
+                }
             }
 
             switch ($arg->getAttribute('type')) {
--- a/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php
+++ b/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php
@@ -85,7 +85,7 @@ class YamlFileLoader extends FileLoader
      * @param array  $content
      * @param string $file
      */
-    private function parseImports($content, $file)
+    private function parseImports(array $content, $file)
     {
         if (!isset($content['imports'])) {
             return;
@@ -112,7 +112,7 @@ class YamlFileLoader extends FileLoader
      * @param array  $content
      * @param string $file
      */
-    private function parseDefinitions($content, $file)
+    private function parseDefinitions(array $content, $file)
     {
         if (!isset($content['services'])) {
             return;
@@ -130,9 +130,9 @@ class YamlFileLoader extends FileLoader
     /**
      * Parses a definition.
      *
-     * @param string $id
-     * @param array  $service
-     * @param string $file
+     * @param string       $id
+     * @param array|string $service
+     * @param string       $file
      *
      * @throws InvalidArgumentException When tags are invalid
      */
@@ -353,7 +353,7 @@ class YamlFileLoader extends FileLoader
         }
 
         if (!file_exists($file)) {
-            throw new InvalidArgumentException(sprintf('The service file "%s" is not valid.', $file));
+            throw new InvalidArgumentException(sprintf('The file "%s" does not exist.', $file));
         }
 
         if (null === $this->yamlParser) {
@@ -454,7 +454,7 @@ class YamlFileLoader extends FileLoader
      *
      * @param array $content
      */
-    private function loadFromExtensions($content)
+    private function loadFromExtensions(array $content)
     {
         foreach ($content as $namespace => $values) {
             if (in_array($namespace, array('imports', 'parameters', 'services'))) {
--- a/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd
+++ b/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd
@@ -145,35 +145,34 @@
   </xsd:complexType>
 
   <xsd:complexType name="property" mixed="true">
-    <xsd:choice minOccurs="0" maxOccurs="1">
-      <xsd:element name="property" type="property" minOccurs="0" maxOccurs="unbounded" />
+    <xsd:choice minOccurs="0">
+      <xsd:element name="property" type="property" maxOccurs="unbounded" />
       <xsd:element name="service" type="service" />
     </xsd:choice>
     <xsd:attribute name="type" type="argument_type" />
     <xsd:attribute name="id" type="xsd:string" />
     <xsd:attribute name="key" type="xsd:string" />
     <xsd:attribute name="name" type="xsd:string" />
-    <xsd:attribute name="on-invalid" type="xsd:string" />
+    <xsd:attribute name="on-invalid" type="invalid_sequence" />
     <xsd:attribute name="strict" type="boolean" />
   </xsd:complexType>
 
   <xsd:complexType name="argument" mixed="true">
-    <xsd:choice maxOccurs="unbounded">
-      <xsd:element name="argument" type="argument" minOccurs="0" maxOccurs="unbounded" />
+    <xsd:choice minOccurs="0">
+      <xsd:element name="argument" type="argument" maxOccurs="unbounded" />
       <xsd:element name="service" type="service" />
     </xsd:choice>
     <xsd:attribute name="type" type="argument_type" />
     <xsd:attribute name="id" type="xsd:string" />
     <xsd:attribute name="key" type="xsd:string" />
     <xsd:attribute name="index" type="xsd:integer" />
-    <xsd:attribute name="on-invalid" type="xsd:string" />
+    <xsd:attribute name="on-invalid" type="invalid_sequence" />
     <xsd:attribute name="strict" type="boolean" />
   </xsd:complexType>
 
-  <xsd:complexType name="call" mixed="true">
-    <xsd:choice maxOccurs="unbounded">
-      <xsd:element name="argument" type="argument" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="service" type="service" />
+  <xsd:complexType name="call">
+    <xsd:choice minOccurs="0">
+      <xsd:element name="argument" type="argument" maxOccurs="unbounded" />
     </xsd:choice>
     <xsd:attribute name="method" type="xsd:string" />
   </xsd:complexType>
--- a/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
+++ b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
@@ -306,6 +306,12 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
             'event' => $eventName,
             'priority' => $this->getListenerPriority($eventName, $listener),
         );
+
+        // unwrap for correct listener info
+        if ($listener instanceof WrappedListener) {
+            $listener = $listener->getWrappedListener();
+        }
+
         if ($listener instanceof \Closure) {
             $info += array(
                 'type' => 'Closure',
--- a/vendor/symfony/event-dispatcher/Event.php
+++ b/vendor/symfony/event-dispatcher/Event.php
@@ -33,7 +33,7 @@ class Event
     private $propagationStopped = false;
 
     /**
-     * @var EventDispatcher Dispatcher that dispatched this event
+     * @var EventDispatcherInterface Dispatcher that dispatched this event
      */
     private $dispatcher;
 
--- a/vendor/symfony/event-dispatcher/EventDispatcher.php
+++ b/vendor/symfony/event-dispatcher/EventDispatcher.php
@@ -103,7 +103,7 @@ class EventDispatcher implements EventDispatcherInterface
      */
     public function hasListeners($eventName = null)
     {
-        return (bool) count($this->getListeners($eventName));
+        return (bool) $this->getListeners($eventName);
     }
 
     /**
--- a/vendor/symfony/event-dispatcher/GenericEvent.php
+++ b/vendor/symfony/event-dispatcher/GenericEvent.php
@@ -80,7 +80,7 @@ class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate
      * @param string $key   Argument name
      * @param mixed  $value Value
      *
-     * @return GenericEvent
+     * @return $this
      */
     public function setArgument($key, $value)
     {
@@ -104,7 +104,7 @@ class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate
      *
      * @param array $args Arguments
      *
-     * @return GenericEvent
+     * @return $this
      */
     public function setArguments(array $args = array())
     {
--- a/vendor/symfony/event-dispatcher/LICENSE
+++ b/vendor/symfony/event-dispatcher/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/event-dispatcher/composer.json
+++ b/vendor/symfony/event-dispatcher/composer.json
@@ -21,7 +21,7 @@
     "require-dev": {
         "symfony/dependency-injection": "~2.6|~3.0.0",
         "symfony/expression-language": "~2.6|~3.0.0",
-        "symfony/config": "~2.0,>=2.0.5|~3.0.0",
+        "symfony/config": "^2.0.5|~3.0.0",
         "symfony/stopwatch": "~2.3|~3.0.0",
         "psr/log": "~1.0"
     },
--- a/vendor/symfony/filesystem/Filesystem.php
+++ b/vendor/symfony/filesystem/Filesystem.php
@@ -362,6 +362,31 @@ class Filesystem
         $startPathArr = explode('/', trim($startPath, '/'));
         $endPathArr = explode('/', trim($endPath, '/'));
 
+        if ('/' !== $startPath[0]) {
+            array_shift($startPathArr);
+        }
+
+        if ('/' !== $endPath[0]) {
+            array_shift($endPathArr);
+        }
+
+        $normalizePathArray = function ($pathSegments) {
+            $result = array();
+
+            foreach ($pathSegments as $segment) {
+                if ('..' === $segment) {
+                    array_pop($result);
+                } else {
+                    $result[] = $segment;
+                }
+            }
+
+            return $result;
+        };
+
+        $startPathArr = $normalizePathArray($startPathArr);
+        $endPathArr = $normalizePathArray($endPathArr);
+
         // Find for which directory the common path stops
         $index = 0;
         while (isset($startPathArr[$index]) && isset($endPathArr[$index]) && $startPathArr[$index] === $endPathArr[$index]) {
@@ -550,7 +575,9 @@ class Filesystem
 
         if (!is_dir($dir)) {
             $this->mkdir($dir);
-        } elseif (!is_writable($dir)) {
+        }
+
+        if (!is_writable($dir)) {
             throw new IOException(sprintf('Unable to write to the "%s" directory.', $dir), 0, null, $dir);
         }
 
@@ -566,7 +593,10 @@ class Filesystem
             }
 
             $this->chmod($tmpFile, $mode);
+        } elseif (file_exists($filename)) {
+            @chmod($tmpFile, fileperms($filename));
         }
+
         $this->rename($tmpFile, $filename, true);
     }
 
--- a/vendor/symfony/filesystem/LICENSE
+++ b/vendor/symfony/filesystem/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/filesystem/LockHandler.php
+++ b/vendor/symfony/filesystem/LockHandler.php
@@ -68,8 +68,12 @@ class LockHandler
             return true;
         }
 
+        $error = null;
+
         // Silence error reporting
-        set_error_handler(function () {});
+        set_error_handler(function ($errno, $msg) use (&$error) {
+            $error = $msg;
+        });
 
         if (!$this->handle = fopen($this->file, 'r')) {
             if ($this->handle = fopen($this->file, 'x')) {
@@ -82,8 +86,7 @@ class LockHandler
         restore_error_handler();
 
         if (!$this->handle) {
-            $error = error_get_last();
-            throw new IOException($error['message'], 0, null, $this->file);
+            throw new IOException($error, 0, null, $this->file);
         }
 
         // On Windows, even if PHP doc says the contrary, LOCK_NB works, see
--- a/vendor/symfony/finder/Adapter/AdapterInterface.php
+++ b/vendor/symfony/finder/Adapter/AdapterInterface.php
@@ -21,105 +21,105 @@ interface AdapterInterface
     /**
      * @param bool $followLinks
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setFollowLinks($followLinks);
 
     /**
      * @param int $mode
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setMode($mode);
 
     /**
      * @param array $exclude
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setExclude(array $exclude);
 
     /**
      * @param array $depths
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setDepths(array $depths);
 
     /**
      * @param array $names
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setNames(array $names);
 
     /**
      * @param array $notNames
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setNotNames(array $notNames);
 
     /**
      * @param array $contains
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setContains(array $contains);
 
     /**
      * @param array $notContains
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setNotContains(array $notContains);
 
     /**
      * @param array $sizes
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setSizes(array $sizes);
 
     /**
      * @param array $dates
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setDates(array $dates);
 
     /**
      * @param array $filters
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setFilters(array $filters);
 
     /**
      * @param \Closure|int $sort
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setSort($sort);
 
     /**
      * @param array $paths
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setPath(array $paths);
 
     /**
      * @param array $notPaths
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function setNotPath(array $notPaths);
 
     /**
      * @param bool $ignore
      *
-     * @return AdapterInterface Current instance
+     * @return $this
      */
     public function ignoreUnreadableDirs($ignore = true);
 
--- a/vendor/symfony/finder/Comparator/NumberComparator.php
+++ b/vendor/symfony/finder/Comparator/NumberComparator.php
@@ -37,7 +37,7 @@ class NumberComparator extends Comparator
     /**
      * Constructor.
      *
-     * @param string $test A comparison string
+     * @param string|int $test A comparison string or an integer
      *
      * @throws \InvalidArgumentException If the test is not understood
      */
--- a/vendor/symfony/finder/Expression/Expression.php
+++ b/vendor/symfony/finder/Expression/Expression.php
@@ -29,7 +29,7 @@ class Expression implements ValueInterface
     /**
      * @param string $expr
      *
-     * @return Expression
+     * @return self
      */
     public static function create($expr)
     {
--- a/vendor/symfony/finder/Expression/Regex.php
+++ b/vendor/symfony/finder/Expression/Regex.php
@@ -57,7 +57,7 @@ class Regex implements ValueInterface
     /**
      * @param string $expr
      *
-     * @return Regex
+     * @return self
      *
      * @throws \InvalidArgumentException
      */
@@ -175,7 +175,7 @@ class Regex implements ValueInterface
     /**
      * @param string $option
      *
-     * @return Regex
+     * @return $this
      */
     public function addOption($option)
     {
@@ -189,7 +189,7 @@ class Regex implements ValueInterface
     /**
      * @param string $option
      *
-     * @return Regex
+     * @return $this
      */
     public function removeOption($option)
     {
@@ -201,7 +201,7 @@ class Regex implements ValueInterface
     /**
      * @param bool $startFlag
      *
-     * @return Regex
+     * @return $this
      */
     public function setStartFlag($startFlag)
     {
@@ -221,7 +221,7 @@ class Regex implements ValueInterface
     /**
      * @param bool $endFlag
      *
-     * @return Regex
+     * @return $this
      */
     public function setEndFlag($endFlag)
     {
@@ -241,7 +241,7 @@ class Regex implements ValueInterface
     /**
      * @param bool $startJoker
      *
-     * @return Regex
+     * @return $this
      */
     public function setStartJoker($startJoker)
     {
@@ -261,7 +261,7 @@ class Regex implements ValueInterface
     /**
      * @param bool $endJoker
      *
-     * @return Regex
+     * @return $this
      */
     public function setEndJoker($endJoker)
     {
@@ -281,7 +281,7 @@ class Regex implements ValueInterface
     /**
      * @param array $replacement
      *
-     * @return Regex
+     * @return $this
      */
     public function replaceJokers($replacement)
     {
--- a/vendor/symfony/finder/Expression/ValueInterface.php
+++ b/vendor/symfony/finder/Expression/ValueInterface.php
@@ -49,14 +49,14 @@ interface ValueInterface
     /**
      * @param string $expr
      *
-     * @return ValueInterface
+     * @return $this
      */
     public function prepend($expr);
 
     /**
      * @param string $expr
      *
-     * @return ValueInterface
+     * @return $this
      */
     public function append($expr);
 }
--- a/vendor/symfony/finder/Finder.php
+++ b/vendor/symfony/finder/Finder.php
@@ -78,7 +78,7 @@ class Finder implements \IteratorAggregate, \Countable
     /**
      * Creates a new Finder.
      *
-     * @return Finder A new Finder instance
+     * @return static
      */
     public static function create()
     {
@@ -91,7 +91,7 @@ class Finder implements \IteratorAggregate, \Countable
      * @param AdapterInterface $adapter  An adapter instance
      * @param int              $priority Highest is selected first
      *
-     * @return Finder The current Finder instance
+     * @return $this
      *
      * @deprecated since 2.8, to be removed in 3.0.
      */
@@ -113,7 +113,7 @@ class Finder implements \IteratorAggregate, \Countable
     /**
      * Sets the selected adapter to the best one according to the current platform the code is run on.
      *
-     * @return Finder The current Finder instance
+     * @return $this
      *
      * @deprecated since 2.8, to be removed in 3.0.
      */
@@ -133,7 +133,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param string $name
      *
-     * @return Finder The current Finder instance
+     * @return $this
      *
      * @throws \InvalidArgumentException
      *
@@ -158,7 +158,7 @@ class Finder implements \IteratorAggregate, \Countable
     /**
      * Removes all adapters registered in the finder.
      *
-     * @return Finder The current Finder instance
+     * @return $this
      *
      * @deprecated since 2.8, to be removed in 3.0.
      */
@@ -192,7 +192,7 @@ class Finder implements \IteratorAggregate, \Countable
     /**
      * Restricts the matching to directories only.
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      */
     public function directories()
     {
@@ -204,7 +204,7 @@ class Finder implements \IteratorAggregate, \Countable
     /**
      * Restricts the matching to files only.
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      */
     public function files()
     {
@@ -221,9 +221,9 @@ class Finder implements \IteratorAggregate, \Countable
      *   $finder->depth('> 1') // the Finder will start matching at level 1.
      *   $finder->depth('< 3') // the Finder will descend at most 3 levels of directories below the starting point.
      *
-     * @param int $level The depth level expression
+     * @param string|int $level The depth level expression
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see DepthRangeFilterIterator
      * @see NumberComparator
@@ -247,7 +247,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param string $date A date range string
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see strtotime
      * @see DateRangeFilterIterator
@@ -271,7 +271,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param string $pattern A pattern (a regexp, a glob, or a string)
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see FilenameFilterIterator
      */
@@ -287,7 +287,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param string $pattern A pattern (a regexp, a glob, or a string)
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see FilenameFilterIterator
      */
@@ -308,7 +308,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param string $pattern A pattern (string or regexp)
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see FilecontentFilterIterator
      */
@@ -329,7 +329,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param string $pattern A pattern (string or regexp)
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see FilecontentFilterIterator
      */
@@ -352,7 +352,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param string $pattern A pattern (a regexp or a string)
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see FilenameFilterIterator
      */
@@ -375,7 +375,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param string $pattern A pattern (a regexp or a string)
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see FilenameFilterIterator
      */
@@ -393,9 +393,9 @@ class Finder implements \IteratorAggregate, \Countable
      * $finder->size('<= 1Ki');
      * $finder->size(4);
      *
-     * @param string $size A size range string
+     * @param string|int $size A size range string or an integer
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see SizeRangeFilterIterator
      * @see NumberComparator
@@ -412,7 +412,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param string|array $dirs A directory path or an array of directories
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see ExcludeDirectoryFilterIterator
      */
@@ -428,7 +428,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param bool $ignoreDotFiles Whether to exclude "hidden" files or not
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see ExcludeDirectoryFilterIterator
      */
@@ -448,7 +448,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param bool $ignoreVCS Whether to exclude VCS files or not
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see ExcludeDirectoryFilterIterator
      */
@@ -488,7 +488,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param \Closure $closure An anonymous function
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see SortableIterator
      */
@@ -504,7 +504,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * This can be slow as all the matching files and directories must be retrieved for comparison.
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see SortableIterator
      */
@@ -520,7 +520,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * This can be slow as all the matching files and directories must be retrieved for comparison.
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see SortableIterator
      */
@@ -538,7 +538,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * This can be slow as all the matching files and directories must be retrieved for comparison.
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see SortableIterator
      */
@@ -558,7 +558,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * This can be slow as all the matching files and directories must be retrieved for comparison.
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see SortableIterator
      */
@@ -576,7 +576,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * This can be slow as all the matching files and directories must be retrieved for comparison.
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see SortableIterator
      */
@@ -595,7 +595,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param \Closure $closure An anonymous function
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @see CustomFilterIterator
      */
@@ -609,7 +609,7 @@ class Finder implements \IteratorAggregate, \Countable
     /**
      * Forces the following of symlinks.
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      */
     public function followLinks()
     {
@@ -625,7 +625,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param bool $ignore
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      */
     public function ignoreUnreadableDirs($ignore = true)
     {
@@ -639,7 +639,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param string|array $dirs A directory path or an array of directories
      *
-     * @return Finder|SplFileInfo[] The current Finder instance
+     * @return $this
      *
      * @throws \InvalidArgumentException if one of the directories does not exist
      */
@@ -700,7 +700,7 @@ class Finder implements \IteratorAggregate, \Countable
      *
      * @param mixed $iterator
      *
-     * @return Finder|SplFileInfo[] The finder
+     * @return $this
      *
      * @throws \InvalidArgumentException When the given argument is not iterable.
      */
@@ -734,7 +734,7 @@ class Finder implements \IteratorAggregate, \Countable
     }
 
     /**
-     * @return Finder The current Finder instance
+     * @return $this
      */
     private function sortAdapters()
     {
--- a/vendor/symfony/finder/LICENSE
+++ b/vendor/symfony/finder/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/finder/Shell/Command.php
+++ b/vendor/symfony/finder/Shell/Command.php
@@ -65,7 +65,7 @@ class Command
      *
      * @param Command|null $parent Parent command
      *
-     * @return Command New Command instance
+     * @return self
      */
     public static function create(Command $parent = null)
     {
@@ -101,7 +101,7 @@ class Command
      *
      * @param string|Command $bit
      *
-     * @return Command The current Command instance
+     * @return $this
      */
     public function add($bit)
     {
@@ -115,7 +115,7 @@ class Command
      *
      * @param string|Command $bit
      *
-     * @return Command The current Command instance
+     * @return $this
      */
     public function top($bit)
     {
@@ -133,7 +133,7 @@ class Command
      *
      * @param string $arg
      *
-     * @return Command The current Command instance
+     * @return $this
      */
     public function arg($arg)
     {
@@ -147,7 +147,7 @@ class Command
      *
      * @param string $esc
      *
-     * @return Command The current Command instance
+     * @return $this
      */
     public function cmd($esc)
     {
@@ -161,7 +161,7 @@ class Command
      *
      * @param string $label The unique label
      *
-     * @return Command The current Command instance
+     * @return self|string
      *
      * @throws \RuntimeException If label already exists
      */
@@ -182,7 +182,7 @@ class Command
      *
      * @param string $label
      *
-     * @return Command The labeled command
+     * @return self|string
      *
      * @throws \RuntimeException
      */
@@ -198,7 +198,7 @@ class Command
     /**
      * Returns parent command (if any).
      *
-     * @return Command Parent command
+     * @return self
      *
      * @throws \RuntimeException If command has no parent
      */
@@ -224,7 +224,7 @@ class Command
     /**
      * @param \Closure $errorHandler
      *
-     * @return Command
+     * @return $this
      */
     public function setErrorHandler(\Closure $errorHandler)
     {
@@ -287,7 +287,7 @@ class Command
      * @param string|Command $bit
      * @param int            $index
      *
-     * @return Command The current Command instance
+     * @return $this
      */
     public function addAtIndex($bit, $index)
     {
--- a/vendor/symfony/http-foundation/AcceptHeader.php
+++ b/vendor/symfony/http-foundation/AcceptHeader.php
@@ -48,7 +48,7 @@ class AcceptHeader
      *
      * @param string $headerValue
      *
-     * @return AcceptHeader
+     * @return self
      */
     public static function fromString($headerValue)
     {
@@ -101,7 +101,7 @@ class AcceptHeader
      *
      * @param AcceptHeaderItem $item
      *
-     * @return AcceptHeader
+     * @return $this
      */
     public function add(AcceptHeaderItem $item)
     {
@@ -128,7 +128,7 @@ class AcceptHeader
      *
      * @param string $pattern
      *
-     * @return AcceptHeader
+     * @return self
      */
     public function filter($pattern)
     {
--- a/vendor/symfony/http-foundation/AcceptHeaderItem.php
+++ b/vendor/symfony/http-foundation/AcceptHeaderItem.php
@@ -57,7 +57,7 @@ class AcceptHeaderItem
      *
      * @param string $itemValue
      *
-     * @return AcceptHeaderItem
+     * @return self
      */
     public static function fromString($itemValue)
     {
@@ -103,7 +103,7 @@ class AcceptHeaderItem
      *
      * @param string $value
      *
-     * @return AcceptHeaderItem
+     * @return $this
      */
     public function setValue($value)
     {
@@ -127,7 +127,7 @@ class AcceptHeaderItem
      *
      * @param float $quality
      *
-     * @return AcceptHeaderItem
+     * @return $this
      */
     public function setQuality($quality)
     {
@@ -151,7 +151,7 @@ class AcceptHeaderItem
      *
      * @param int $index
      *
-     * @return AcceptHeaderItem
+     * @return $this
      */
     public function setIndex($index)
     {
@@ -211,7 +211,7 @@ class AcceptHeaderItem
      * @param string $name
      * @param string $value
      *
-     * @return AcceptHeaderItem
+     * @return $this
      */
     public function setAttribute($name, $value)
     {
--- a/vendor/symfony/http-foundation/BinaryFileResponse.php
+++ b/vendor/symfony/http-foundation/BinaryFileResponse.php
@@ -66,7 +66,7 @@ class BinaryFileResponse extends Response
      * @param bool                $autoEtag           Whether the ETag header should be automatically set
      * @param bool                $autoLastModified   Whether the Last-Modified header should be automatically set
      *
-     * @return BinaryFileResponse The created response
+     * @return static
      */
     public static function create($file = null, $status = 200, $headers = array(), $public = true, $contentDisposition = null, $autoEtag = false, $autoLastModified = true)
     {
@@ -81,7 +81,7 @@ class BinaryFileResponse extends Response
      * @param bool                $autoEtag
      * @param bool                $autoLastModified
      *
-     * @return BinaryFileResponse
+     * @return $this
      *
      * @throws FileException
      */
@@ -153,7 +153,7 @@ class BinaryFileResponse extends Response
      * @param string $filename         Optionally use this filename instead of the real name of the file
      * @param string $filenameFallback A fallback filename, containing only ASCII characters. Defaults to an automatically encoded filename
      *
-     * @return BinaryFileResponse
+     * @return $this
      */
     public function setContentDisposition($disposition, $filename = '', $filenameFallback = '')
     {
@@ -164,7 +164,7 @@ class BinaryFileResponse extends Response
         if ('' === $filenameFallback && (!preg_match('/^[\x20-\x7e]*$/', $filename) || false !== strpos($filename, '%'))) {
             $encoding = mb_detect_encoding($filename, null, true);
 
-            for ($i = 0; $i < mb_strlen($filename, $encoding); ++$i) {
+            for ($i = 0, $filenameLength = mb_strlen($filename, $encoding); $i < $filenameLength; ++$i) {
                 $char = mb_substr($filename, $i, 1, $encoding);
 
                 if ('%' === $char || ord($char) < 32 || ord($char) > 126) {
@@ -190,7 +190,7 @@ class BinaryFileResponse extends Response
 
         if (!$this->headers->has('Accept-Ranges')) {
             // Only accept ranges on safe HTTP methods
-            $this->headers->set('Accept-Ranges', $request->isMethodSafe() ? 'bytes' : 'none');
+            $this->headers->set('Accept-Ranges', $request->isMethodSafe(false) ? 'bytes' : 'none');
         }
 
         if (!$this->headers->has('Content-Type')) {
@@ -348,7 +348,7 @@ class BinaryFileResponse extends Response
      *
      * @param bool $shouldDelete
      *
-     * @return BinaryFileResponse
+     * @return $this
      */
     public function deleteFileAfterSend($shouldDelete)
     {
--- a/vendor/symfony/http-foundation/Cookie.php
+++ b/vendor/symfony/http-foundation/Cookie.php
@@ -56,7 +56,7 @@ class Cookie
         } elseif (!is_numeric($expire)) {
             $expire = strtotime($expire);
 
-            if (false === $expire || -1 === $expire) {
+            if (false === $expire) {
                 throw new \InvalidArgumentException('The cookie expiration time is not valid.');
             }
         }
@@ -64,7 +64,7 @@ class Cookie
         $this->name = $name;
         $this->value = $value;
         $this->domain = $domain;
-        $this->expire = $expire;
+        $this->expire = 0 < $expire ? (int) $expire : 0;
         $this->path = empty($path) ? '/' : $path;
         $this->secure = (bool) $secure;
         $this->httpOnly = (bool) $httpOnly;
@@ -84,7 +84,7 @@ class Cookie
         } else {
             $str .= urlencode($this->getValue());
 
-            if ($this->getExpiresTime() !== 0) {
+            if (0 !== $this->getExpiresTime()) {
                 $str .= '; expires='.gmdate('D, d-M-Y H:i:s T', $this->getExpiresTime());
             }
         }
--- a/vendor/symfony/http-foundation/File/File.php
+++ b/vendor/symfony/http-foundation/File/File.php
@@ -85,7 +85,7 @@ class File extends \SplFileInfo
      * @param string $directory The destination folder
      * @param string $name      The new file name
      *
-     * @return File A File object representing the new file
+     * @return self A File object representing the new file
      *
      * @throws FileException if the target file could not be created
      */
--- a/vendor/symfony/http-foundation/File/MimeType/ExtensionGuesser.php
+++ b/vendor/symfony/http-foundation/File/MimeType/ExtensionGuesser.php
@@ -42,7 +42,7 @@ class ExtensionGuesser implements ExtensionGuesserInterface
     /**
      * Returns the singleton instance.
      *
-     * @return ExtensionGuesser
+     * @return self
      */
     public static function getInstance()
     {
--- a/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php
+++ b/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php
@@ -56,7 +56,7 @@ class MimeTypeGuesser implements MimeTypeGuesserInterface
     /**
      * Returns the singleton instance.
      *
-     * @return MimeTypeGuesser
+     * @return self
      */
     public static function getInstance()
     {
--- a/vendor/symfony/http-foundation/FileBag.php
+++ b/vendor/symfony/http-foundation/FileBag.php
@@ -69,7 +69,7 @@ class FileBag extends ParameterBag
      *
      * @param array|UploadedFile $file A (multi-dimensional) array of uploaded file information
      *
-     * @return array A (multi-dimensional) array of UploadedFile instances
+     * @return UploadedFile|UploadedFile[] A (multi-dimensional) array of UploadedFile instances
      */
     protected function convertFileInformation($file)
     {
--- a/vendor/symfony/http-foundation/JsonResponse.php
+++ b/vendor/symfony/http-foundation/JsonResponse.php
@@ -61,7 +61,7 @@ class JsonResponse extends Response
      * @param int   $status  The response status code
      * @param array $headers An array of response headers
      *
-     * @return JsonResponse
+     * @return static
      */
     public static function create($data = null, $status = 200, $headers = array())
     {
@@ -73,7 +73,7 @@ class JsonResponse extends Response
      *
      * @param string|null $callback The JSONP callback or null to use none
      *
-     * @return JsonResponse
+     * @return $this
      *
      * @throws \InvalidArgumentException When the callback name is not valid
      */
@@ -108,7 +108,7 @@ class JsonResponse extends Response
      *
      * @param mixed $data
      *
-     * @return JsonResponse
+     * @return $this
      *
      * @throws \InvalidArgumentException
      */
@@ -184,7 +184,7 @@ class JsonResponse extends Response
      *
      * @param int $encodingOptions
      *
-     * @return JsonResponse
+     * @return $this
      */
     public function setEncodingOptions($encodingOptions)
     {
@@ -196,7 +196,7 @@ class JsonResponse extends Response
     /**
      * Updates the content and headers according to the JSON data and callback.
      *
-     * @return JsonResponse
+     * @return $this
      */
     protected function update()
     {
--- a/vendor/symfony/http-foundation/LICENSE
+++ b/vendor/symfony/http-foundation/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/http-foundation/ParameterBag.php
+++ b/vendor/symfony/http-foundation/ParameterBag.php
@@ -135,7 +135,7 @@ class ParameterBag implements \IteratorAggregate, \Countable
         }
 
         if (null !== $currentKey) {
-            throw new \InvalidArgumentException(sprintf('Malformed path. Path must end with "]".'));
+            throw new \InvalidArgumentException('Malformed path. Path must end with "]".');
         }
 
         return $value;
--- a/vendor/symfony/http-foundation/RedirectResponse.php
+++ b/vendor/symfony/http-foundation/RedirectResponse.php
@@ -66,7 +66,7 @@ class RedirectResponse extends Response
      *
      * @param string $url The URL to redirect to
      *
-     * @return RedirectResponse The current response
+     * @return $this
      *
      * @throws \InvalidArgumentException
      */
--- a/vendor/symfony/http-foundation/Request.php
+++ b/vendor/symfony/http-foundation/Request.php
@@ -206,6 +206,15 @@ class Request
 
     protected static $requestFactory;
 
+    private $isForwardedValid = true;
+
+    private static $forwardedParams = array(
+        self::HEADER_CLIENT_IP => 'for',
+        self::HEADER_CLIENT_HOST => 'host',
+        self::HEADER_CLIENT_PROTO => 'proto',
+        self::HEADER_CLIENT_PORT => 'host',
+    );
+
     /**
      * Constructor.
      *
@@ -261,7 +270,7 @@ class Request
     /**
      * Creates a new request with values from PHP's super globals.
      *
-     * @return Request A new request
+     * @return static
      */
     public static function createFromGlobals()
     {
@@ -304,7 +313,7 @@ class Request
      * @param array  $server     The server parameters ($_SERVER)
      * @param string $content    The raw body data
      *
-     * @return Request A Request instance
+     * @return static
      */
     public static function create($uri, $method = 'GET', $parameters = array(), $cookies = array(), $files = array(), $server = array(), $content = null)
     {
@@ -422,7 +431,7 @@ class Request
      * @param array $files      The FILES parameters
      * @param array $server     The SERVER parameters
      *
-     * @return Request The duplicated request
+     * @return static
      */
     public function duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null)
     {
@@ -596,6 +605,7 @@ class Request
      *  * Request::HEADER_CLIENT_HOST:  defaults to X-Forwarded-Host  (see getHost())
      *  * Request::HEADER_CLIENT_PORT:  defaults to X-Forwarded-Port  (see getPort())
      *  * Request::HEADER_CLIENT_PROTO: defaults to X-Forwarded-Proto (see getScheme() and isSecure())
+     *  * Request::HEADER_FORWARDED:    defaults to Forwarded         (see RFC 7239)
      *
      * Setting an empty value allows to disable the trusted header for the given key.
      *
@@ -805,41 +815,13 @@ class Request
      */
     public function getClientIps()
     {
-        $clientIps = array();
         $ip = $this->server->get('REMOTE_ADDR');
 
         if (!$this->isFromTrustedProxy()) {
             return array($ip);
         }
 
-        $hasTrustedForwardedHeader = self::$trustedHeaders[self::HEADER_FORWARDED] && $this->headers->has(self::$trustedHeaders[self::HEADER_FORWARDED]);
-        $hasTrustedClientIpHeader = self::$trustedHeaders[self::HEADER_CLIENT_IP] && $this->headers->has(self::$trustedHeaders[self::HEADER_CLIENT_IP]);
-
-        if ($hasTrustedForwardedHeader) {
-            $forwardedHeader = $this->headers->get(self::$trustedHeaders[self::HEADER_FORWARDED]);
-            preg_match_all('{(for)=("?\[?)([a-z0-9\.:_\-/]*)}', $forwardedHeader, $matches);
-            $forwardedClientIps = $matches[3];
-
-            $forwardedClientIps = $this->normalizeAndFilterClientIps($forwardedClientIps, $ip);
-            $clientIps = $forwardedClientIps;
-        }
-
-        if ($hasTrustedClientIpHeader) {
-            $xForwardedForClientIps = array_map('trim', explode(',', $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_IP])));
-
-            $xForwardedForClientIps = $this->normalizeAndFilterClientIps($xForwardedForClientIps, $ip);
-            $clientIps = $xForwardedForClientIps;
-        }
-
-        if ($hasTrustedForwardedHeader && $hasTrustedClientIpHeader && $forwardedClientIps !== $xForwardedForClientIps) {
-            throw new ConflictingHeadersException('The request has both a trusted Forwarded header and a trusted Client IP header, conflicting with each other with regards to the originating IP addresses of the request. This is the result of a misconfiguration. You should either configure your proxy only to send one of these headers, or configure Symfony to distrust one of them.');
-        }
-
-        if (!$hasTrustedForwardedHeader && !$hasTrustedClientIpHeader) {
-            return $this->normalizeAndFilterClientIps(array(), $ip);
-        }
-
-        return $clientIps;
+        return $this->getTrustedValues(self::HEADER_CLIENT_IP, $ip) ?: array($ip);
     }
 
     /**
@@ -855,7 +837,7 @@ class Request
      * ("Client-Ip" for instance), configure it via "setTrustedHeaderName()" with
      * the "client-ip" key.
      *
-     * @return string The client IP address
+     * @return string|null The client IP address
      *
      * @see getClientIps()
      * @see http://en.wikipedia.org/wiki/X-Forwarded-For
@@ -961,35 +943,29 @@ class Request
      * If your reverse proxy uses a different header name than "X-Forwarded-Port",
      * configure it via "setTrustedHeaderName()" with the "client-port" key.
      *
-     * @return string
+     * @return int|string can be a string if fetched from the server bag
      */
     public function getPort()
     {
-        if ($this->isFromTrustedProxy()) {
-            if (self::$trustedHeaders[self::HEADER_CLIENT_PORT] && $port = $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_PORT])) {
-                return $port;
-            }
-
-            if (self::$trustedHeaders[self::HEADER_CLIENT_PROTO] && 'https' === $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_PROTO], 'http')) {
-                return 443;
-            }
+        if ($this->isFromTrustedProxy() && $host = $this->getTrustedValues(self::HEADER_CLIENT_PORT)) {
+            $host = $host[0];
+        } elseif ($this->isFromTrustedProxy() && $host = $this->getTrustedValues(self::HEADER_CLIENT_HOST)) {
+            $host = $host[0];
+        } elseif (!$host = $this->headers->get('HOST')) {
+            return $this->server->get('SERVER_PORT');
         }
 
-        if ($host = $this->headers->get('HOST')) {
-            if ($host[0] === '[') {
-                $pos = strpos($host, ':', strrpos($host, ']'));
-            } else {
-                $pos = strrpos($host, ':');
-            }
-
-            if (false !== $pos) {
-                return (int) substr($host, $pos + 1);
-            }
+        if ($host[0] === '[') {
+            $pos = strpos($host, ':', strrpos($host, ']'));
+        } else {
+            $pos = strrpos($host, ':');
+        }
 
-            return 'https' === $this->getScheme() ? 443 : 80;
+        if (false !== $pos) {
+            return (int) substr($host, $pos + 1);
         }
 
-        return $this->server->get('SERVER_PORT');
+        return 'https' === $this->getScheme() ? 443 : 80;
     }
 
     /**
@@ -1189,8 +1165,8 @@ class Request
      */
     public function isSecure()
     {
-        if ($this->isFromTrustedProxy() && self::$trustedHeaders[self::HEADER_CLIENT_PROTO] && $proto = $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_PROTO])) {
-            return in_array(strtolower(current(explode(',', $proto))), array('https', 'on', 'ssl', '1'));
+        if ($this->isFromTrustedProxy() && $proto = $this->getTrustedValues(self::HEADER_CLIENT_PROTO)) {
+            return in_array(strtolower($proto[0]), array('https', 'on', 'ssl', '1'), true);
         }
 
         $https = $this->server->get('HTTPS');
@@ -1215,10 +1191,8 @@ class Request
      */
     public function getHost()
     {
-        if ($this->isFromTrustedProxy() && self::$trustedHeaders[self::HEADER_CLIENT_HOST] && $host = $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_HOST])) {
-            $elements = explode(',', $host);
-
-            $host = $elements[count($elements) - 1];
+        if ($this->isFromTrustedProxy() && $host = $this->getTrustedValues(self::HEADER_CLIENT_HOST)) {
+            $host = $host[0];
         } elseif (!$host = $this->headers->get('HOST')) {
             if (!$host = $this->server->get('SERVER_NAME')) {
                 $host = $this->server->get('SERVER_ADDR', '');
@@ -1387,10 +1361,10 @@ class Request
     public function getRequestFormat($default = 'html')
     {
         if (null === $this->format) {
-            $this->format = $this->get('_format', $default);
+            $this->format = $this->get('_format');
         }
 
-        return $this->format;
+        return null === $this->format ? $default : $this->format;
     }
 
     /**
@@ -1472,16 +1446,22 @@ class Request
     /**
      * Checks whether the method is safe or not.
      *
+     * @see https://tools.ietf.org/html/rfc7231#section-4.2.1
+     *
+     * @param bool $andCacheable Adds the additional condition that the method should be cacheable. True by default.
+     *
      * @return bool
      */
-    public function isMethodSafe()
+    public function isMethodSafe(/* $andCacheable = true */)
     {
-        return in_array($this->getMethod(), array('GET', 'HEAD', 'OPTIONS', 'TRACE'));
+        return in_array($this->getMethod(), 0 < func_num_args() && !func_get_arg(0) ? array('GET', 'HEAD', 'OPTIONS', 'TRACE') : array('GET', 'HEAD'));
     }
 
     /**
      * Checks whether the method is cacheable or not.
      *
+     * @see https://tools.ietf.org/html/rfc7231#section-4.2.3
+     *
      * @return bool
      */
     public function isMethodCacheable()
@@ -1773,6 +1753,9 @@ class Request
 
         // Does the baseUrl have anything in common with the request_uri?
         $requestUri = $this->getRequestUri();
+        if ($requestUri !== '' && $requestUri[0] !== '/') {
+            $requestUri = '/'.$requestUri;
+        }
 
         if ($baseUrl && false !== $prefix = $this->getUrlencodedPrefix($requestUri, $baseUrl)) {
             // full $baseUrl matches
@@ -1845,9 +1828,12 @@ class Request
         }
 
         // Remove the query string from REQUEST_URI
-        if ($pos = strpos($requestUri, '?')) {
+        if (false !== $pos = strpos($requestUri, '?')) {
             $requestUri = substr($requestUri, 0, $pos);
         }
+        if ($requestUri !== '' && $requestUri[0] !== '/') {
+            $requestUri = '/'.$requestUri;
+        }
 
         $pathInfo = substr($requestUri, strlen($baseUrl));
         if (null !== $baseUrl && (false === $pathInfo || '' === $pathInfo)) {
@@ -1941,8 +1927,48 @@ class Request
         return self::$trustedProxies && IpUtils::checkIp($this->server->get('REMOTE_ADDR'), self::$trustedProxies);
     }
 
+    private function getTrustedValues($type, $ip = null)
+    {
+        $clientValues = array();
+        $forwardedValues = array();
+
+        if (self::$trustedHeaders[$type] && $this->headers->has(self::$trustedHeaders[$type])) {
+            foreach (explode(',', $this->headers->get(self::$trustedHeaders[$type])) as $v) {
+                $clientValues[] = (self::HEADER_CLIENT_PORT === $type ? '0.0.0.0:' : '').trim($v);
+            }
+        }
+
+        if (self::$trustedHeaders[self::HEADER_FORWARDED] && $this->headers->has(self::$trustedHeaders[self::HEADER_FORWARDED])) {
+            $forwardedValues = $this->headers->get(self::$trustedHeaders[self::HEADER_FORWARDED]);
+            $forwardedValues = preg_match_all(sprintf('{(?:%s)=(?:"?\[?)([a-zA-Z0-9\.:_\-/]*+)}', self::$forwardedParams[$type]), $forwardedValues, $matches) ? $matches[1] : array();
+        }
+
+        if (null !== $ip) {
+            $clientValues = $this->normalizeAndFilterClientIps($clientValues, $ip);
+            $forwardedValues = $this->normalizeAndFilterClientIps($forwardedValues, $ip);
+        }
+
+        if ($forwardedValues === $clientValues || !$clientValues) {
+            return $forwardedValues;
+        }
+
+        if (!$forwardedValues) {
+            return $clientValues;
+        }
+
+        if (!$this->isForwardedValid) {
+            return null !== $ip ? array('0.0.0.0', $ip) : array();
+        }
+        $this->isForwardedValid = false;
+
+        throw new ConflictingHeadersException(sprintf('The request has both a trusted "%s" header and a trusted "%s" header, conflicting with each other. You should either configure your proxy to remove one of them, or configure your project to distrust the offending one.', self::$trustedHeaders[self::HEADER_FORWARDED], self::$trustedHeaders[$type]));
+    }
+
     private function normalizeAndFilterClientIps(array $clientIps, $ip)
     {
+        if (!$clientIps) {
+            return array();
+        }
         $clientIps[] = $ip; // Complete the IP chain with the IP the request actually came from
         $firstTrustedIp = null;
 
--- a/vendor/symfony/http-foundation/Response.php
+++ b/vendor/symfony/http-foundation/Response.php
@@ -179,7 +179,7 @@ class Response
         503 => 'Service Unavailable',
         504 => 'Gateway Timeout',
         505 => 'HTTP Version Not Supported',
-        506 => 'Variant Also Negotiates (Experimental)',                      // RFC2295
+        506 => 'Variant Also Negotiates',                                     // RFC2295
         507 => 'Insufficient Storage',                                        // RFC4918
         508 => 'Loop Detected',                                               // RFC5842
         510 => 'Not Extended',                                                // RFC2774
@@ -201,6 +201,11 @@ class Response
         $this->setContent($content);
         $this->setStatusCode($status);
         $this->setProtocolVersion('1.0');
+
+        /* RFC2616 - 14.18 says all Responses need to have a Date */
+        if (!$this->headers->has('Date')) {
+            $this->setDate(\DateTime::createFromFormat('U', time()));
+        }
     }
 
     /**
@@ -215,7 +220,7 @@ class Response
      * @param int   $status  The response status code
      * @param array $headers An array of response headers
      *
-     * @return Response
+     * @return static
      */
     public static function create($content = '', $status = 200, $headers = array())
     {
@@ -258,7 +263,7 @@ class Response
      *
      * @param Request $request A Request instance
      *
-     * @return Response The current response
+     * @return $this
      */
     public function prepare(Request $request)
     {
@@ -320,7 +325,7 @@ class Response
     /**
      * Sends HTTP headers.
      *
-     * @return Response
+     * @return $this
      */
     public function sendHeaders()
     {
@@ -329,6 +334,7 @@ class Response
             return $this;
         }
 
+        /* RFC2616 - 14.18 says all Responses need to have a Date */
         if (!$this->headers->has('Date')) {
             $this->setDate(\DateTime::createFromFormat('U', time()));
         }
@@ -354,7 +360,7 @@ class Response
     /**
      * Sends content for the current web response.
      *
-     * @return Response
+     * @return $this
      */
     public function sendContent()
     {
@@ -366,7 +372,7 @@ class Response
     /**
      * Sends HTTP headers and content.
      *
-     * @return Response
+     * @return $this
      */
     public function send()
     {
@@ -389,7 +395,7 @@ class Response
      *
      * @param mixed $content Content that can be cast to string
      *
-     * @return Response
+     * @return $this
      *
      * @throws \UnexpectedValueException
      */
@@ -419,7 +425,7 @@ class Response
      *
      * @param string $version The HTTP protocol version
      *
-     * @return Response
+     * @return $this
      */
     public function setProtocolVersion($version)
     {
@@ -447,7 +453,7 @@ class Response
      * If the status text is null it will be automatically populated for the known
      * status codes and left empty otherwise.
      *
-     * @return Response
+     * @return $this
      *
      * @throws \InvalidArgumentException When the HTTP status code is not valid
      */
@@ -490,7 +496,7 @@ class Response
      *
      * @param string $charset Character set
      *
-     * @return Response
+     * @return $this
      */
     public function setCharset($charset)
     {
@@ -563,7 +569,7 @@ class Response
      *
      * It makes the response ineligible for serving other clients.
      *
-     * @return Response
+     * @return $this
      */
     public function setPrivate()
     {
@@ -578,7 +584,7 @@ class Response
      *
      * It makes the response eligible for serving other clients.
      *
-     * @return Response
+     * @return $this
      */
     public function setPublic()
     {
@@ -612,6 +618,11 @@ class Response
      */
     public function getDate()
     {
+        /*
+            RFC2616 - 14.18 says all Responses need to have a Date.
+            Make sure we provide one even if it the header
+            has been removed in the meantime.
+         */
         if (!$this->headers->has('Date')) {
             $this->setDate(\DateTime::createFromFormat('U', time()));
         }
@@ -624,7 +635,7 @@ class Response
      *
      * @param \DateTime $date A \DateTime instance
      *
-     * @return Response
+     * @return $this
      */
     public function setDate(\DateTime $date)
     {
@@ -651,7 +662,7 @@ class Response
     /**
      * Marks the response stale by setting the Age header to be equal to the maximum age of the response.
      *
-     * @return Response
+     * @return $this
      */
     public function expire()
     {
@@ -684,7 +695,7 @@ class Response
      *
      * @param \DateTime|null $date A \DateTime instance or null to remove the header
      *
-     * @return Response
+     * @return $this
      */
     public function setExpires(\DateTime $date = null)
     {
@@ -730,7 +741,7 @@ class Response
      *
      * @param int $value Number of seconds
      *
-     * @return Response
+     * @return $this
      */
     public function setMaxAge($value)
     {
@@ -746,7 +757,7 @@ class Response
      *
      * @param int $value Number of seconds
      *
-     * @return Response
+     * @return $this
      */
     public function setSharedMaxAge($value)
     {
@@ -780,7 +791,7 @@ class Response
      *
      * @param int $seconds Number of seconds
      *
-     * @return Response
+     * @return $this
      */
     public function setTtl($seconds)
     {
@@ -796,7 +807,7 @@ class Response
      *
      * @param int $seconds Number of seconds
      *
-     * @return Response
+     * @return $this
      */
     public function setClientTtl($seconds)
     {
@@ -824,7 +835,7 @@ class Response
      *
      * @param \DateTime|null $date A \DateTime instance or null to remove the header
      *
-     * @return Response
+     * @return $this
      */
     public function setLastModified(\DateTime $date = null)
     {
@@ -855,7 +866,7 @@ class Response
      * @param string|null $etag The ETag unique identifier or null to remove the header
      * @param bool        $weak Whether you want a weak ETag or not
      *
-     * @return Response
+     * @return $this
      */
     public function setEtag($etag = null, $weak = false)
     {
@@ -879,7 +890,7 @@ class Response
      *
      * @param array $options An array of cache options
      *
-     * @return Response
+     * @return $this
      *
      * @throws \InvalidArgumentException
      */
@@ -930,7 +941,7 @@ class Response
      * This sets the status, removes the body, and discards any headers
      * that MUST NOT be included in 304 responses.
      *
-     * @return Response
+     * @return $this
      *
      * @see http://tools.ietf.org/html/rfc2616#section-10.3.5
      */
@@ -982,7 +993,7 @@ class Response
      * @param string|array $headers
      * @param bool         $replace Whether to replace the actual value or not (true by default)
      *
-     * @return Response
+     * @return $this
      */
     public function setVary($headers, $replace = true)
     {
--- a/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php
+++ b/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php
@@ -58,9 +58,9 @@ class MockArraySessionStorage implements SessionStorageInterface
     protected $metadataBag;
 
     /**
-     * @var array
+     * @var array|SessionBagInterface[]
      */
-    protected $bags;
+    protected $bags = array();
 
     /**
      * Constructor.
--- a/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php
+++ b/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php
@@ -81,6 +81,7 @@ class NativeSessionStorage implements SessionStorageInterface
      * name, "PHPSESSID"
      * referer_check, ""
      * serialize_handler, "php"
+     * use_strict_mode, "0"
      * use_cookies, "1"
      * use_only_cookies, "1"
      * use_trans_sid, "0"
@@ -331,7 +332,7 @@ class NativeSessionStorage implements SessionStorageInterface
             'entropy_file', 'entropy_length', 'gc_divisor',
             'gc_maxlifetime', 'gc_probability', 'hash_bits_per_character',
             'hash_function', 'name', 'referer_check',
-            'serialize_handler', 'use_cookies',
+            'serialize_handler', 'use_strict_mode', 'use_cookies',
             'use_only_cookies', 'use_trans_sid', 'upload_progress.enabled',
             'upload_progress.cleanup', 'upload_progress.prefix', 'upload_progress.name',
             'upload_progress.freq', 'upload_progress.min-freq', 'url_rewriter.tags',
--- a/vendor/symfony/http-foundation/StreamedResponse.php
+++ b/vendor/symfony/http-foundation/StreamedResponse.php
@@ -55,7 +55,7 @@ class StreamedResponse extends Response
      * @param int           $status   The response status code
      * @param array         $headers  An array of response headers
      *
-     * @return StreamedResponse
+     * @return static
      */
     public static function create($callback = null, $status = 200, $headers = array())
     {
--- a/vendor/symfony/http-kernel/Bundle/Bundle.php
+++ b/vendor/symfony/http-kernel/Bundle/Bundle.php
@@ -141,7 +141,7 @@ abstract class Bundle implements BundleInterface
     /**
      * Returns the bundle parent name.
      *
-     * @return string The Bundle parent name it overrides or null if no parent
+     * @return string|null The Bundle parent name it overrides or null if no parent
      */
     public function getParent()
     {
--- a/vendor/symfony/http-kernel/Client.php
+++ b/vendor/symfony/http-kernel/Client.php
@@ -25,6 +25,9 @@ use Symfony\Component\HttpFoundation\Response;
  * Client simulates a browser and makes requests to a Kernel object.
  *
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @method Request|null getRequest() A Request instance
+ * @method Response|null getResponse() A Response instance
  */
 class Client extends BaseClient
 {
@@ -48,26 +51,6 @@ class Client extends BaseClient
     }
 
     /**
-     * {@inheritdoc}
-     *
-     * @return Request|null A Request instance
-     */
-    public function getRequest()
-    {
-        return parent::getRequest();
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @return Response|null A Response instance
-     */
-    public function getResponse()
-    {
-        return parent::getResponse();
-    }
-
-    /**
      * Makes a request.
      *
      * @param Request $request A Request instance
--- a/vendor/symfony/http-kernel/Controller/ControllerResolver.php
+++ b/vendor/symfony/http-kernel/Controller/ControllerResolver.php
@@ -37,6 +37,13 @@ class ControllerResolver implements ControllerResolverInterface
     private $supportsVariadic;
 
     /**
+     * If scalar types exists.
+     *
+     * @var bool
+     */
+    private $supportsScalarTypes;
+
+    /**
      * Constructor.
      *
      * @param LoggerInterface $logger A LoggerInterface instance
@@ -46,6 +53,7 @@ class ControllerResolver implements ControllerResolverInterface
         $this->logger = $logger;
 
         $this->supportsVariadic = method_exists('ReflectionParameter', 'isVariadic');
+        $this->supportsScalarTypes = method_exists('ReflectionParameter', 'getType');
     }
 
     /**
@@ -132,7 +140,7 @@ class ControllerResolver implements ControllerResolverInterface
                 $arguments[] = $request;
             } elseif ($param->isDefaultValueAvailable()) {
                 $arguments[] = $param->getDefaultValue();
-            } elseif ($param->allowsNull()) {
+            } elseif ($this->supportsScalarTypes && $param->hasType() && $param->allowsNull()) {
                 $arguments[] = null;
             } else {
                 if (is_array($controller)) {
--- a/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php
+++ b/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php
@@ -298,7 +298,7 @@ class DumpDataCollector extends DataCollector implements DataDumperInterface
     {
         $html = '';
 
-        $dumper = new HtmlDumper(function ($line) use (&$html) {$html .= $line;}, $this->charset);
+        $dumper = new HtmlDumper(function ($line) use (&$html) { $html .= $line; }, $this->charset);
         $dumper->setDumpHeader('');
         $dumper->setDumpBoundaries('', '');
 
--- a/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php
+++ b/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php
@@ -12,10 +12,8 @@
 namespace Symfony\Component\HttpKernel\DataCollector;
 
 use Symfony\Component\HttpFoundation\ParameterBag;
-use Symfony\Component\HttpFoundation\HeaderBag;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\ResponseHeaderBag;
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
@@ -40,12 +38,8 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
     public function collect(Request $request, Response $response, \Exception $exception = null)
     {
         $responseHeaders = $response->headers->all();
-        $cookies = array();
         foreach ($response->headers->getCookies() as $cookie) {
-            $cookies[] = $this->getCookieHeader($cookie->getName(), $cookie->getValue(), $cookie->getExpiresTime(), $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), $cookie->isHttpOnly());
-        }
-        if (count($cookies) > 0) {
-            $responseHeaders['Set-Cookie'] = $cookies;
+            $responseHeaders['set-cookie'][] = (string) $cookie;
         }
 
         // attributes are serialized and as they can be anything, they need to be converted to strings.
@@ -121,6 +115,18 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
             $this->data['request_request']['_password'] = '******';
         }
 
+        foreach ($this->data as $key => $value) {
+            if (!is_array($value)) {
+                continue;
+            }
+            if ('request_headers' === $key || 'response_headers' === $key) {
+                $value = array_map(function ($v) { return isset($v[0]) && !isset($v[1]) ? $v[0] : $v; }, $value);
+            }
+            if ('request_server' !== $key && 'request_cookies' !== $key) {
+                $this->data[$key] = $value;
+            }
+        }
+
         if (isset($this->controllers[$request])) {
             $controller = $this->controllers[$request];
             if (is_array($controller)) {
@@ -183,7 +189,7 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
 
     public function getRequestHeaders()
     {
-        return new HeaderBag($this->data['request_headers']);
+        return new ParameterBag($this->data['request_headers']);
     }
 
     public function getRequestServer()
@@ -203,7 +209,7 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
 
     public function getResponseHeaders()
     {
-        return new ResponseHeaderBag($this->data['response_headers']);
+        return new ParameterBag($this->data['response_headers']);
     }
 
     public function getSessionMetadata()
@@ -302,41 +308,4 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
     {
         return 'request';
     }
-
-    private function getCookieHeader($name, $value, $expires, $path, $domain, $secure, $httponly)
-    {
-        $cookie = sprintf('%s=%s', $name, urlencode($value));
-
-        if (0 !== $expires) {
-            if (is_numeric($expires)) {
-                $expires = (int) $expires;
-            } elseif ($expires instanceof \DateTime) {
-                $expires = $expires->getTimestamp();
-            } else {
-                $tmp = strtotime($expires);
-                if (false === $tmp || -1 == $tmp) {
-                    throw new \InvalidArgumentException(sprintf('The "expires" cookie parameter is not valid (%s).', $expires));
-                }
-                $expires = $tmp;
-            }
-
-            $cookie .= '; expires='.str_replace('+0000', '', \DateTime::createFromFormat('U', $expires, new \DateTimeZone('GMT'))->format('D, d-M-Y H:i:s T'));
-        }
-
-        if ($domain) {
-            $cookie .= '; domain='.$domain;
-        }
-
-        $cookie .= '; path='.$path;
-
-        if ($secure) {
-            $cookie .= '; secure';
-        }
-
-        if ($httponly) {
-            $cookie .= '; httponly';
-        }
-
-        return $cookie;
-    }
 }
--- a/vendor/symfony/http-kernel/DataCollector/Util/ValueExporter.php
+++ b/vendor/symfony/http-kernel/DataCollector/Util/ValueExporter.php
@@ -33,7 +33,7 @@ class ValueExporter
 
         if (is_object($value)) {
             if ($value instanceof \DateTime || $value instanceof \DateTimeInterface) {
-                return sprintf('Object(%s) - %s', get_class($value), $value->format(\DateTime::ISO8601));
+                return sprintf('Object(%s) - %s', get_class($value), $value->format(\DateTime::ATOM));
             }
 
             return sprintf('Object(%s)', get_class($value));
--- a/vendor/symfony/http-kernel/EventListener/AddRequestFormatsListener.php
+++ b/vendor/symfony/http-kernel/EventListener/AddRequestFormatsListener.php
@@ -52,6 +52,6 @@ class AddRequestFormatsListener implements EventSubscriberInterface
      */
     public static function getSubscribedEvents()
     {
-        return array(KernelEvents::REQUEST => 'onKernelRequest');
+        return array(KernelEvents::REQUEST => array('onKernelRequest', 1));
     }
 }
--- a/vendor/symfony/http-kernel/EventListener/FragmentListener.php
+++ b/vendor/symfony/http-kernel/EventListener/FragmentListener.php
@@ -81,7 +81,7 @@ class FragmentListener implements EventSubscriberInterface
     protected function validateRequest(Request $request)
     {
         // is the Request safe?
-        if (!$request->isMethodSafe()) {
+        if (!$request->isMethodSafe(false)) {
             throw new AccessDeniedHttpException();
         }
 
--- a/vendor/symfony/http-kernel/EventListener/SessionListener.php
+++ b/vendor/symfony/http-kernel/EventListener/SessionListener.php
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\HttpKernel\EventListener;
 
+use Symfony\Component\HttpFoundation\Session\SessionInterface;
 use Symfony\Component\HttpKernel\Event\GetResponseEvent;
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
--- a/vendor/symfony/http-kernel/EventListener/TestSessionListener.php
+++ b/vendor/symfony/http-kernel/EventListener/TestSessionListener.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\HttpKernel\EventListener;
 
 use Symfony\Component\HttpFoundation\Cookie;
+use Symfony\Component\HttpFoundation\Session\SessionInterface;
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
 use Symfony\Component\HttpKernel\Event\GetResponseEvent;
--- a/vendor/symfony/http-kernel/HttpCache/HttpCache.php
+++ b/vendor/symfony/http-kernel/HttpCache/HttpCache.php
@@ -202,7 +202,7 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
         }
         $this->traces[$request->getMethod().' '.$path] = array();
 
-        if (!$request->isMethodSafe()) {
+        if (!$request->isMethodSafe(false)) {
             $response = $this->invalidate($request, $catch);
         } elseif ($request->headers->has('expect') || !$request->isMethodCacheable()) {
             $response = $this->pass($request, $catch);
--- a/vendor/symfony/http-kernel/HttpCache/Store.php
+++ b/vendor/symfony/http-kernel/HttpCache/Store.php
@@ -317,14 +317,33 @@ class Store implements StoreInterface
     /**
      * Purges data for the given URL.
      *
+     * This method purges both the HTTP and the HTTPS version of the cache entry.
+     *
      * @param string $url A URL
      *
-     * @return bool true if the URL exists and has been purged, false otherwise
+     * @return bool true if the URL exists with either HTTP or HTTPS scheme and has been purged, false otherwise
      */
     public function purge($url)
     {
-        $key = $this->getCacheKey(Request::create($url));
+        $http = preg_replace('#^https:#', 'http:', $url);
+        $https = preg_replace('#^http:#', 'https:', $url);
+
+        $purgedHttp = $this->doPurge($http);
+        $purgedHttps = $this->doPurge($https);
 
+        return $purgedHttp || $purgedHttps;
+    }
+
+    /**
+     * Purges data for the given URL.
+     *
+     * @param string $url A URL
+     *
+     * @return bool true if the URL exists and has been purged, false otherwise
+     */
+    private function doPurge($url)
+    {
+        $key = $this->getCacheKey(Request::create($url));
         if (isset($this->locks[$key])) {
             flock($this->locks[$key], LOCK_UN);
             fclose($this->locks[$key]);
--- a/vendor/symfony/http-kernel/Kernel.php
+++ b/vendor/symfony/http-kernel/Kernel.php
@@ -59,11 +59,11 @@ abstract class Kernel implements KernelInterface, TerminableInterface
     protected $startTime;
     protected $loadClassCache;
 
-    const VERSION = '2.8.14';
-    const VERSION_ID = 20814;
+    const VERSION = '2.8.21';
+    const VERSION_ID = 20821;
     const MAJOR_VERSION = 2;
     const MINOR_VERSION = 8;
-    const RELEASE_VERSION = 14;
+    const RELEASE_VERSION = 21;
     const EXTRA_VERSION = '';
 
     const END_OF_MAINTENANCE = '11/2018';
@@ -303,6 +303,9 @@ abstract class Kernel implements KernelInterface, TerminableInterface
     {
         if (null === $this->name) {
             $this->name = preg_replace('/[^a-zA-Z0-9_]+/', '', basename($this->rootDir));
+            if (ctype_digit($this->name[0])) {
+                $this->name = '_'.$this->name;
+            }
         }
 
         return $this->name;
@@ -532,8 +535,15 @@ abstract class Kernel implements KernelInterface, TerminableInterface
     protected function getKernelParameters()
     {
         $bundles = array();
+        $bundlesMetadata = array();
+
         foreach ($this->bundles as $name => $bundle) {
             $bundles[$name] = get_class($bundle);
+            $bundlesMetadata[$name] = array(
+                'parent' => $bundle->getParent(),
+                'path' => $bundle->getPath(),
+                'namespace' => $bundle->getNamespace(),
+            );
         }
 
         return array_merge(
@@ -545,6 +555,7 @@ abstract class Kernel implements KernelInterface, TerminableInterface
                 'kernel.cache_dir' => realpath($this->getCacheDir()) ?: $this->getCacheDir(),
                 'kernel.logs_dir' => realpath($this->getLogDir()) ?: $this->getLogDir(),
                 'kernel.bundles' => $bundles,
+                'kernel.bundles_metadata' => $bundlesMetadata,
                 'kernel.charset' => $this->getCharset(),
                 'kernel.container_class' => $this->getContainerClass(),
             ),
--- a/vendor/symfony/http-kernel/LICENSE
+++ b/vendor/symfony/http-kernel/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/http-kernel/Profiler/MemcacheProfilerStorage.php
+++ b/vendor/symfony/http-kernel/Profiler/MemcacheProfilerStorage.php
@@ -46,7 +46,7 @@ class MemcacheProfilerStorage extends BaseMemcacheProfilerStorage
             $port = $matches[3];
 
             $memcache = new \Memcache();
-            $memcache->addserver($host, $port);
+            $memcache->addServer($host, $port);
 
             $this->memcache = $memcache;
         }
--- a/vendor/symfony/http-kernel/Profiler/Profile.php
+++ b/vendor/symfony/http-kernel/Profiler/Profile.php
@@ -76,7 +76,7 @@ class Profile
     /**
      * Sets the parent token.
      *
-     * @param Profile $parent The parent Profile
+     * @param Profile $parent
      */
     public function setParent(Profile $parent)
     {
@@ -86,7 +86,7 @@ class Profile
     /**
      * Returns the parent profile.
      *
-     * @return Profile The parent profile
+     * @return self
      */
     public function getParent()
     {
@@ -156,7 +156,7 @@ class Profile
     /**
      * Returns the time.
      *
-     * @return string The time
+     * @return int The time
      */
     public function getTime()
     {
@@ -167,6 +167,9 @@ class Profile
         return $this->time;
     }
 
+    /**
+     * @param int The time
+     */
     public function setTime($time)
     {
         $this->time = $time;
@@ -191,7 +194,7 @@ class Profile
     /**
      * Finds children profilers.
      *
-     * @return Profile[] An array of Profile
+     * @return self[]
      */
     public function getChildren()
     {
@@ -201,7 +204,7 @@ class Profile
     /**
      * Sets children profiler.
      *
-     * @param Profile[] $children An array of Profile
+     * @param Profile[] $children
      */
     public function setChildren(array $children)
     {
@@ -214,7 +217,7 @@ class Profile
     /**
      * Adds the child token.
      *
-     * @param Profile $child The child Profile
+     * @param Profile $child
      */
     public function addChild(Profile $child)
     {
--- a/vendor/symfony/http-kernel/composer.json
+++ b/vendor/symfony/http-kernel/composer.json
@@ -17,9 +17,9 @@
     ],
     "require": {
         "php": ">=5.3.9",
-        "symfony/event-dispatcher": "~2.6,>=2.6.7|~3.0.0",
+        "symfony/event-dispatcher": "^2.6.7|~3.0.0",
         "symfony/http-foundation": "~2.7.20|~2.8.13|~3.1.6",
-        "symfony/debug": "~2.6,>=2.6.2",
+        "symfony/debug": "^2.6.2",
         "psr/log": "~1.0"
     },
     "require-dev": {
@@ -27,16 +27,16 @@
         "symfony/class-loader": "~2.1|~3.0.0",
         "symfony/config": "~2.8",
         "symfony/console": "~2.3|~3.0.0",
-        "symfony/css-selector": "~2.0,>=2.0.5|~3.0.0",
+        "symfony/css-selector": "^2.0.5|~3.0.0",
         "symfony/dependency-injection": "~2.8|~3.0.0",
-        "symfony/dom-crawler": "~2.0,>=2.0.5|~3.0.0",
+        "symfony/dom-crawler": "^2.0.5|~3.0.0",
         "symfony/expression-language": "~2.4|~3.0.0",
-        "symfony/finder": "~2.0,>=2.0.5|~3.0.0",
-        "symfony/process": "~2.0,>=2.0.5|~3.0.0",
+        "symfony/finder": "^2.0.5|~3.0.0",
+        "symfony/process": "^2.0.5|~3.0.0",
         "symfony/routing": "~2.8|~3.0.0",
         "symfony/stopwatch": "~2.3|~3.0.0",
         "symfony/templating": "~2.2|~3.0.0",
-        "symfony/translation": "~2.0,>=2.0.5|~3.0.0",
+        "symfony/translation": "^2.0.5|~3.0.0",
         "symfony/var-dumper": "~2.6|~3.0.0"
     },
     "conflict": {
--- a/vendor/symfony/proxy-manager-bridge/LICENSE
+++ b/vendor/symfony/proxy-manager-bridge/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/routing/LICENSE
+++ b/vendor/symfony/routing/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/routing/Loader/AnnotationClassLoader.php
+++ b/vendor/symfony/routing/Loader/AnnotationClassLoader.php
@@ -139,7 +139,7 @@ abstract class AnnotationClassLoader implements LoaderInterface
 
         $defaults = array_replace($globals['defaults'], $annot->getDefaults());
         foreach ($method->getParameters() as $param) {
-            if (!isset($defaults[$param->getName()]) && $param->isDefaultValueAvailable()) {
+            if (false !== strpos($globals['path'].$annot->getPath(), sprintf('{%s}', $param->getName())) && !isset($defaults[$param->getName()]) && $param->isDefaultValueAvailable()) {
                 $defaults[$param->getName()] = $param->getDefaultValue();
             }
         }
--- a/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php
+++ b/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php
@@ -38,7 +38,15 @@ class AnnotationDirectoryLoader extends AnnotationFileLoader
 
         $collection = new RouteCollection();
         $collection->addResource(new DirectoryResource($dir, '/\.php$/'));
-        $files = iterator_to_array(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir), \RecursiveIteratorIterator::LEAVES_ONLY));
+        $files = iterator_to_array(new \RecursiveIteratorIterator(
+            new RecursiveCallbackFilterIterator(
+                new \RecursiveDirectoryIterator($dir),
+                function (\SplFileInfo $current) {
+                    return '.' !== substr($current->getBasename(), 0, 1);
+                }
+            ),
+            \RecursiveIteratorIterator::LEAVES_ONLY
+        ));
         usort($files, function (\SplFileInfo $a, \SplFileInfo $b) {
             return (string) $a > (string) $b ? 1 : -1;
         });
@@ -79,3 +87,34 @@ class AnnotationDirectoryLoader extends AnnotationFileLoader
         return is_dir($path) && (!$type || 'annotation' === $type);
     }
 }
+
+/**
+ * @internal To be removed as RecursiveCallbackFilterIterator is available since PHP 5.4
+ */
+class RecursiveCallbackFilterIterator extends \FilterIterator implements \RecursiveIterator
+{
+    private $iterator;
+    private $callback;
+
+    public function __construct(\RecursiveIterator $iterator, $callback)
+    {
+        $this->iterator = $iterator;
+        $this->callback = $callback;
+        parent::__construct($iterator);
+    }
+
+    public function accept()
+    {
+        return call_user_func($this->callback, $this->current(), $this->key(), $this->iterator);
+    }
+
+    public function hasChildren()
+    {
+        return $this->iterator->hasChildren();
+    }
+
+    public function getChildren()
+    {
+        return new static($this->iterator->getChildren(), $this->callback);
+    }
+}
--- a/vendor/symfony/routing/Matcher/Dumper/DumperCollection.php
+++ b/vendor/symfony/routing/Matcher/Dumper/DumperCollection.php
@@ -38,7 +38,7 @@ class DumperCollection implements \IteratorAggregate
     /**
      * Returns the children routes and collections.
      *
-     * @return DumperCollection[]|DumperRoute[] Array of DumperCollection|DumperRoute
+     * @return self[]|DumperRoute[]
      */
     public function all()
     {
@@ -86,7 +86,7 @@ class DumperCollection implements \IteratorAggregate
     /**
      * Returns the root of the collection.
      *
-     * @return DumperCollection The root collection
+     * @return self The root collection
      */
     public function getRoot()
     {
@@ -96,7 +96,7 @@ class DumperCollection implements \IteratorAggregate
     /**
      * Returns the parent collection.
      *
-     * @return DumperCollection|null The parent collection or null if the collection has no parent
+     * @return self|null The parent collection or null if the collection has no parent
      */
     protected function getParent()
     {
--- a/vendor/symfony/routing/Matcher/Dumper/DumperPrefixCollection.php
+++ b/vendor/symfony/routing/Matcher/Dumper/DumperPrefixCollection.php
@@ -50,7 +50,7 @@ class DumperPrefixCollection extends DumperCollection
      *
      * @param DumperRoute $route The route
      *
-     * @return DumperPrefixCollection The node the route was added to
+     * @return self
      *
      * @throws \LogicException
      */
--- a/vendor/symfony/routing/RequestContext.php
+++ b/vendor/symfony/routing/RequestContext.php
@@ -66,7 +66,7 @@ class RequestContext
      *
      * @param Request $request A Request instance
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function fromRequest(Request $request)
     {
@@ -97,7 +97,7 @@ class RequestContext
      *
      * @param string $baseUrl The base URL
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function setBaseUrl($baseUrl)
     {
@@ -121,7 +121,7 @@ class RequestContext
      *
      * @param string $pathInfo The path info
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function setPathInfo($pathInfo)
     {
@@ -147,7 +147,7 @@ class RequestContext
      *
      * @param string $method The HTTP method
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function setMethod($method)
     {
@@ -173,7 +173,7 @@ class RequestContext
      *
      * @param string $host The HTTP host
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function setHost($host)
     {
@@ -197,7 +197,7 @@ class RequestContext
      *
      * @param string $scheme The HTTP scheme
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function setScheme($scheme)
     {
@@ -221,7 +221,7 @@ class RequestContext
      *
      * @param int $httpPort The HTTP port
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function setHttpPort($httpPort)
     {
@@ -245,7 +245,7 @@ class RequestContext
      *
      * @param int $httpsPort The HTTPS port
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function setHttpsPort($httpsPort)
     {
@@ -269,7 +269,7 @@ class RequestContext
      *
      * @param string $queryString The query string (after "?")
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function setQueryString($queryString)
     {
@@ -294,7 +294,7 @@ class RequestContext
      *
      * @param array $parameters The parameters
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function setParameters(array $parameters)
     {
@@ -333,7 +333,7 @@ class RequestContext
      * @param string $name      A parameter name
      * @param mixed  $parameter The parameter value
      *
-     * @return RequestContext The current instance, implementing a fluent interface
+     * @return $this
      */
     public function setParameter($name, $parameter)
     {
--- a/vendor/symfony/routing/Route.php
+++ b/vendor/symfony/routing/Route.php
@@ -159,7 +159,7 @@ class Route implements \Serializable
      *
      * @param string $pattern The path pattern
      *
-     * @return Route The current Route instance
+     * @return $this
      *
      * @deprecated since version 2.2, to be removed in 3.0. Use setPath instead.
      */
@@ -187,7 +187,7 @@ class Route implements \Serializable
      *
      * @param string $pattern The path pattern
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setPath($pattern)
     {
@@ -216,7 +216,7 @@ class Route implements \Serializable
      *
      * @param string $pattern The host pattern
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setHost($pattern)
     {
@@ -245,7 +245,7 @@ class Route implements \Serializable
      *
      * @param string|array $schemes The scheme or an array of schemes
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setSchemes($schemes)
     {
@@ -294,7 +294,7 @@ class Route implements \Serializable
      *
      * @param string|array $methods The method or an array of methods
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setMethods($methods)
     {
@@ -329,7 +329,7 @@ class Route implements \Serializable
      *
      * @param array $options The options
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setOptions(array $options)
     {
@@ -347,7 +347,7 @@ class Route implements \Serializable
      *
      * @param array $options The options
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function addOptions(array $options)
     {
@@ -367,7 +367,7 @@ class Route implements \Serializable
      * @param string $name  An option name
      * @param mixed  $value The option value
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setOption($name, $value)
     {
@@ -418,7 +418,7 @@ class Route implements \Serializable
      *
      * @param array $defaults The defaults
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setDefaults(array $defaults)
     {
@@ -434,7 +434,7 @@ class Route implements \Serializable
      *
      * @param array $defaults The defaults
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function addDefaults(array $defaults)
     {
@@ -476,7 +476,7 @@ class Route implements \Serializable
      * @param string $name    A variable name
      * @param mixed  $default The default value
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setDefault($name, $default)
     {
@@ -503,7 +503,7 @@ class Route implements \Serializable
      *
      * @param array $requirements The requirements
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setRequirements(array $requirements)
     {
@@ -519,7 +519,7 @@ class Route implements \Serializable
      *
      * @param array $requirements The requirements
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function addRequirements(array $requirements)
     {
@@ -567,7 +567,7 @@ class Route implements \Serializable
      * @param string $key   The key
      * @param string $regex The regex
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setRequirement($key, $regex)
     {
@@ -594,7 +594,7 @@ class Route implements \Serializable
      *
      * @param string $condition The condition
      *
-     * @return Route The current Route instance
+     * @return $this
      */
     public function setCondition($condition)
     {
--- a/vendor/symfony/routing/RouteCollectionBuilder.php
+++ b/vendor/symfony/routing/RouteCollectionBuilder.php
@@ -55,7 +55,7 @@ class RouteCollectionBuilder
      * @param string|null $prefix
      * @param string      $type
      *
-     * @return RouteCollectionBuilder
+     * @return self
      *
      * @throws FileLoaderLoadException
      */
@@ -101,7 +101,7 @@ class RouteCollectionBuilder
     /**
      * Returns a RouteCollectionBuilder that can be configured and then added with mount().
      *
-     * @return RouteCollectionBuilder
+     * @return self
      */
     public function createBuilder()
     {
--- a/vendor/symfony/routing/RouteCompiler.php
+++ b/vendor/symfony/routing/RouteCompiler.php
@@ -29,11 +29,19 @@ class RouteCompiler implements RouteCompilerInterface
     const SEPARATORS = '/,;.:-_~+*=@|';
 
     /**
+     * The maximum supported length of a PCRE subpattern name
+     * http://pcre.org/current/doc/html/pcre2pattern.html#SEC16.
+     *
+     * @internal
+     */
+    const VARIABLE_MAXIMUM_LENGTH = 32;
+
+    /**
      * {@inheritdoc}
      *
      * @throws \LogicException  If a variable is referenced more than once
-     * @throws \DomainException If a variable name is numeric because PHP raises an error for such
-     *                          subpatterns in PCRE and thus would break matching, e.g. "(?P<123>.+)".
+     * @throws \DomainException If a variable name starts with a digit or if it is too long to be successfully used as
+     *                          a PCRE subpattern.
      */
     public static function compile(Route $route)
     {
@@ -95,13 +103,19 @@ class RouteCompiler implements RouteCompilerInterface
             $precedingChar = strlen($precedingText) > 0 ? substr($precedingText, -1) : '';
             $isSeparator = '' !== $precedingChar && false !== strpos(static::SEPARATORS, $precedingChar);
 
-            if (is_numeric($varName)) {
-                throw new \DomainException(sprintf('Variable name "%s" cannot be numeric in route pattern "%s". Please use a different name.', $varName, $pattern));
+            // A PCRE subpattern name must start with a non-digit. Also a PHP variable cannot start with a digit so the
+            // variable would not be usable as a Controller action argument.
+            if (preg_match('/^\d/', $varName)) {
+                throw new \DomainException(sprintf('Variable name "%s" cannot start with a digit in route pattern "%s". Please use a different name.', $varName, $pattern));
             }
             if (in_array($varName, $variables)) {
                 throw new \LogicException(sprintf('Route pattern "%s" cannot reference variable name "%s" more than once.', $pattern, $varName));
             }
 
+            if (strlen($varName) > self::VARIABLE_MAXIMUM_LENGTH) {
+                throw new \DomainException(sprintf('Variable name "%s" cannot be longer than %s characters in route pattern "%s". Please use a shorter name.', $varName, self::VARIABLE_MAXIMUM_LENGTH, $pattern));
+            }
+
             if ($isSeparator && strlen($precedingText) > 1) {
                 $tokens[] = array('text', substr($precedingText, 0, -1));
             } elseif (!$isSeparator && strlen($precedingText) > 0) {
--- a/vendor/symfony/routing/composer.json
+++ b/vendor/symfony/routing/composer.json
@@ -21,7 +21,7 @@
     "require-dev": {
         "symfony/config": "~2.7|~3.0.0",
         "symfony/http-foundation": "~2.3|~3.0.0",
-        "symfony/yaml": "~2.0,>=2.0.5|~3.0.0",
+        "symfony/yaml": "^2.0.5|~3.0.0",
         "symfony/expression-language": "~2.4|~3.0.0",
         "doctrine/annotations": "~1.0",
         "doctrine/common": "~2.2",
--- a/vendor/symfony/twig-bridge/Command/DebugCommand.php
+++ b/vendor/symfony/twig-bridge/Command/DebugCommand.php
@@ -61,7 +61,7 @@ class DebugCommand extends Command
                 new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (text or json)', 'text'),
             ))
             ->setDescription('Shows a list of twig functions, filters, globals and tests')
-            ->setHelp(<<<EOF
+            ->setHelp(<<<'EOF'
 The <info>%command.name%</info> command outputs a list of twig functions,
 filters, globals and tests. Output can be filtered with an optional argument.
 
@@ -140,7 +140,7 @@ EOF
         }
         if ($type === 'functions' || $type === 'filters') {
             $cb = $entity->getCallable();
-            if (is_null($cb)) {
+            if (null === $cb) {
                 return;
             }
             if (is_array($cb)) {
--- a/vendor/symfony/twig-bridge/Command/LintCommand.php
+++ b/vendor/symfony/twig-bridge/Command/LintCommand.php
@@ -62,7 +62,7 @@ class LintCommand extends Command
             ->setDescription('Lints a template and outputs encountered errors')
             ->addOption('format', null, InputOption::VALUE_REQUIRED, 'The output format', 'txt')
             ->addArgument('filename', InputArgument::IS_ARRAY)
-            ->setHelp(<<<EOF
+            ->setHelp(<<<'EOF'
 The <info>%command.name%</info> command lints a template and outputs to STDOUT
 the first encountered syntax error.
 
@@ -110,7 +110,7 @@ EOF
                 $template .= fread(STDIN, 1024);
             }
 
-            return $this->display($input, $output, $io, array($this->validate($twig, $template, uniqid('sf_'))));
+            return $this->display($input, $output, $io, array($this->validate($twig, $template, uniqid('sf_', true))));
         }
 
         $filesInfo = $this->getFilesInfo($twig, $filenames);
@@ -147,7 +147,7 @@ EOF
         try {
             $temporaryLoader = new \Twig_Loader_Array(array((string) $file => $template));
             $twig->setLoader($temporaryLoader);
-            $nodeTree = $twig->parse($twig->tokenize($template, (string) $file));
+            $nodeTree = $twig->parse($twig->tokenize(new \Twig_Source($template, (string) $file)));
             $twig->compile($nodeTree);
             $twig->setLoader($realLoader);
         } catch (\Twig_Error $e) {
@@ -207,7 +207,7 @@ EOF
             }
         });
 
-        $output->writeln(json_encode($filesInfo, defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 0));
+        $output->writeln(json_encode($filesInfo, defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES : 0));
 
         return min($errors, 1);
     }
--- a/vendor/symfony/twig-bridge/Extension/CodeExtension.php
+++ b/vendor/symfony/twig-bridge/Extension/CodeExtension.php
@@ -138,7 +138,7 @@ class CodeExtension extends \Twig_Extension
             $code = @highlight_file($file, true);
             // remove main code/span tags
             $code = preg_replace('#^<code.*?>\s*<span.*?>(.*)</span>\s*</code>#s', '\\1', $code);
-            $content = preg_split('#<br />#', $code);
+            $content = explode('<br />', $code);
 
             $lines = array();
             for ($i = max($line - 3, 1), $max = min($line + 3, count($content)); $i <= $max; ++$i) {
--- a/vendor/symfony/twig-bridge/Extension/RoutingExtension.php
+++ b/vendor/symfony/twig-bridge/Extension/RoutingExtension.php
@@ -40,11 +40,25 @@ class RoutingExtension extends \Twig_Extension
         );
     }
 
+    /**
+     * @param string $name
+     * @param array  $parameters
+     * @param bool   $relative
+     *
+     * @return string
+     */
     public function getPath($name, $parameters = array(), $relative = false)
     {
         return $this->generator->generate($name, $parameters, $relative ? UrlGeneratorInterface::RELATIVE_PATH : UrlGeneratorInterface::ABSOLUTE_PATH);
     }
 
+    /**
+     * @param string $name
+     * @param array  $parameters
+     * @param bool   $schemeRelative
+     *
+     * @return string
+     */
     public function getUrl($name, $parameters = array(), $schemeRelative = false)
     {
         return $this->generator->generate($name, $parameters, $schemeRelative ? UrlGeneratorInterface::NETWORK_PATH : UrlGeneratorInterface::ABSOLUTE_URL);
--- a/vendor/symfony/twig-bridge/LICENSE
+++ b/vendor/symfony/twig-bridge/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/twig-bridge/Node/DumpNode.php
+++ b/vendor/symfony/twig-bridge/Node/DumpNode.php
@@ -20,7 +20,12 @@ class DumpNode extends \Twig_Node
 
     public function __construct($varPrefix, \Twig_Node $values = null, $lineno, $tag = null)
     {
-        parent::__construct(array('values' => $values), array(), $lineno, $tag);
+        $nodes = array();
+        if (null !== $values) {
+            $nodes['values'] = $values;
+        }
+
+        parent::__construct($nodes, array(), $lineno, $tag);
         $this->varPrefix = $varPrefix;
     }
 
@@ -33,9 +38,7 @@ class DumpNode extends \Twig_Node
             ->write("if (\$this->env->isDebug()) {\n")
             ->indent();
 
-        $values = $this->getNode('values');
-
-        if (null === $values) {
+        if (!$this->hasNode('values')) {
             // remove embedded templates (macros) from the context
             $compiler
                 ->write(sprintf('$%svars = array();'."\n", $this->varPrefix))
@@ -50,7 +53,7 @@ class DumpNode extends \Twig_Node
                 ->write("}\n")
                 ->addDebugInfo($this)
                 ->write(sprintf('\Symfony\Component\VarDumper\VarDumper::dump($%svars);'."\n", $this->varPrefix));
-        } elseif (1 === $values->count()) {
+        } elseif (($values = $this->getNode('values')) && 1 === $values->count()) {
             $compiler
                 ->addDebugInfo($this)
                 ->write('\Symfony\Component\VarDumper\VarDumper::dump(')
@@ -62,7 +65,7 @@ class DumpNode extends \Twig_Node
                 ->write('\Symfony\Component\VarDumper\VarDumper::dump(array('."\n")
                 ->indent();
             foreach ($values as $node) {
-                $compiler->addIndentation();
+                $compiler->write('');
                 if ($node->hasAttribute('name')) {
                     $compiler
                         ->string($node->getAttribute('name'))
--- a/vendor/symfony/twig-bridge/Node/FormThemeNode.php
+++ b/vendor/symfony/twig-bridge/Node/FormThemeNode.php
@@ -30,7 +30,7 @@ class FormThemeNode extends \Twig_Node
     {
         $compiler
             ->addDebugInfo($this)
-            ->write('$this->env->getExtension(\'form\')->renderer->setTheme(')
+            ->write('$this->env->getExtension(\'Symfony\Bridge\Twig\Extension\FormExtension\')->renderer->setTheme(')
             ->subcompile($this->getNode('form'))
             ->raw(', ')
             ->subcompile($this->getNode('resources'))
--- a/vendor/symfony/twig-bridge/Node/RenderBlockNode.php
+++ b/vendor/symfony/twig-bridge/Node/RenderBlockNode.php
@@ -25,7 +25,7 @@ class RenderBlockNode extends \Twig_Node_Expression_Function
     {
         $compiler->addDebugInfo($this);
         $arguments = iterator_to_array($this->getNode('arguments'));
-        $compiler->write('$this->env->getExtension(\'form\')->renderer->renderBlock(');
+        $compiler->write('$this->env->getExtension(\'Symfony\Bridge\Twig\Extension\FormExtension\')->renderer->renderBlock(');
 
         if (isset($arguments[0])) {
             $compiler->subcompile($arguments[0]);
--- a/vendor/symfony/twig-bridge/Node/SearchAndRenderBlockNode.php
+++ b/vendor/symfony/twig-bridge/Node/SearchAndRenderBlockNode.php
@@ -19,7 +19,7 @@ class SearchAndRenderBlockNode extends \Twig_Node_Expression_Function
     public function compile(\Twig_Compiler $compiler)
     {
         $compiler->addDebugInfo($this);
-        $compiler->raw('$this->env->getExtension(\'form\')->renderer->searchAndRenderBlock(');
+        $compiler->raw('$this->env->getExtension(\'Symfony\Bridge\Twig\Extension\FormExtension\')->renderer->searchAndRenderBlock(');
 
         preg_match('/_([^_]+)$/', $this->getAttribute('name'), $matches);
 
@@ -37,7 +37,7 @@ class SearchAndRenderBlockNode extends \Twig_Node_Expression_Function
                     // the variables in the third argument
                     $label = $arguments[1];
                     $variables = isset($arguments[2]) ? $arguments[2] : null;
-                    $lineno = $label->getLine();
+                    $lineno = $label->getTemplateLine();
 
                     if ($label instanceof \Twig_Node_Expression_Constant) {
                         // If the label argument is given as a constant, we can either
--- a/vendor/symfony/twig-bridge/Node/StopwatchNode.php
+++ b/vendor/symfony/twig-bridge/Node/StopwatchNode.php
@@ -18,7 +18,7 @@ namespace Symfony\Bridge\Twig\Node;
  */
 class StopwatchNode extends \Twig_Node
 {
-    public function __construct(\Twig_Node $name, $body, \Twig_Node_Expression_AssignName $var, $lineno = 0, $tag = null)
+    public function __construct(\Twig_Node $name, \Twig_Node $body, \Twig_Node_Expression_AssignName $var, $lineno = 0, $tag = null)
     {
         parent::__construct(array('body' => $body, 'name' => $name, 'var' => $var), array(), $lineno, $tag);
     }
@@ -32,11 +32,11 @@ class StopwatchNode extends \Twig_Node
             ->raw(' = ')
             ->subcompile($this->getNode('name'))
             ->write(";\n")
-            ->write("\$this->env->getExtension('stopwatch')->getStopwatch()->start(")
+            ->write("\$this->env->getExtension('Symfony\Bridge\Twig\Extension\StopwatchExtension')->getStopwatch()->start(")
             ->subcompile($this->getNode('var'))
             ->raw(", 'template');\n")
             ->subcompile($this->getNode('body'))
-            ->write("\$this->env->getExtension('stopwatch')->getStopwatch()->stop(")
+            ->write("\$this->env->getExtension('Symfony\Bridge\Twig\Extension\StopwatchExtension')->getStopwatch()->stop(")
             ->subcompile($this->getNode('var'))
             ->raw(");\n")
         ;
--- a/vendor/symfony/twig-bridge/Node/TransNode.php
+++ b/vendor/symfony/twig-bridge/Node/TransNode.php
@@ -18,7 +18,21 @@ class TransNode extends \Twig_Node
 {
     public function __construct(\Twig_Node $body, \Twig_Node $domain = null, \Twig_Node_Expression $count = null, \Twig_Node_Expression $vars = null, \Twig_Node_Expression $locale = null, $lineno = 0, $tag = null)
     {
-        parent::__construct(array('count' => $count, 'body' => $body, 'domain' => $domain, 'vars' => $vars, 'locale' => $locale), array(), $lineno, $tag);
+        $nodes = array('body' => $body);
+        if (null !== $domain) {
+            $nodes['domain'] = $domain;
+        }
+        if (null !== $count) {
+            $nodes['count'] = $count;
+        }
+        if (null !== $vars) {
+            $nodes['vars'] = $vars;
+        }
+        if (null !== $locale) {
+            $nodes['locale'] = $locale;
+        }
+
+        parent::__construct($nodes, array(), $lineno, $tag);
     }
 
     /**
@@ -30,24 +44,23 @@ class TransNode extends \Twig_Node
     {
         $compiler->addDebugInfo($this);
 
-        $vars = $this->getNode('vars');
         $defaults = new \Twig_Node_Expression_Array(array(), -1);
-        if ($vars instanceof \Twig_Node_Expression_Array) {
+        if ($this->hasNode('vars') && ($vars = $this->getNode('vars')) instanceof \Twig_Node_Expression_Array) {
             $defaults = $this->getNode('vars');
             $vars = null;
         }
         list($msg, $defaults) = $this->compileString($this->getNode('body'), $defaults, (bool) $vars);
 
-        $method = null === $this->getNode('count') ? 'trans' : 'transChoice';
+        $method = !$this->hasNode('count') ? 'trans' : 'transChoice';
 
         $compiler
-            ->write('echo $this->env->getExtension(\'translator\')->getTranslator()->'.$method.'(')
+            ->write('echo $this->env->getExtension(\'Symfony\Bridge\Twig\Extension\TranslationExtension\')->getTranslator()->'.$method.'(')
             ->subcompile($msg)
         ;
 
         $compiler->raw(', ');
 
-        if (null !== $this->getNode('count')) {
+        if ($this->hasNode('count')) {
             $compiler
                 ->subcompile($this->getNode('count'))
                 ->raw(', ')
@@ -68,13 +81,13 @@ class TransNode extends \Twig_Node
 
         $compiler->raw(', ');
 
-        if (null === $this->getNode('domain')) {
+        if (!$this->hasNode('domain')) {
             $compiler->repr('messages');
         } else {
             $compiler->subcompile($this->getNode('domain'));
         }
 
-        if (null !== $this->getNode('locale')) {
+        if ($this->hasNode('locale')) {
             $compiler
                 ->raw(', ')
                 ->subcompile($this->getNode('locale'))
@@ -96,18 +109,18 @@ class TransNode extends \Twig_Node
         preg_match_all('/(?<!%)%([^%]+)%/', $msg, $matches);
 
         foreach ($matches[1] as $var) {
-            $key = new \Twig_Node_Expression_Constant('%'.$var.'%', $body->getLine());
+            $key = new \Twig_Node_Expression_Constant('%'.$var.'%', $body->getTemplateLine());
             if (!$vars->hasElement($key)) {
-                if ('count' === $var && null !== $this->getNode('count')) {
+                if ('count' === $var && $this->hasNode('count')) {
                     $vars->addElement($this->getNode('count'), $key);
                 } else {
-                    $varExpr = new \Twig_Node_Expression_Name($var, $body->getLine());
+                    $varExpr = new \Twig_Node_Expression_Name($var, $body->getTemplateLine());
                     $varExpr->setAttribute('ignore_strict_check', $ignoreStrictCheck);
                     $vars->addElement($varExpr, $key);
                 }
             }
         }
 
-        return array(new \Twig_Node_Expression_Constant(str_replace('%%', '%', trim($msg)), $body->getLine()), $vars);
+        return array(new \Twig_Node_Expression_Constant(str_replace('%%', '%', trim($msg)), $body->getTemplateLine()), $vars);
     }
 }
--- a/vendor/symfony/twig-bridge/NodeVisitor/Scope.php
+++ b/vendor/symfony/twig-bridge/NodeVisitor/Scope.php
@@ -42,7 +42,7 @@ class Scope
     /**
      * Opens a new child scope.
      *
-     * @return Scope
+     * @return self
      */
     public function enter()
     {
@@ -52,7 +52,7 @@ class Scope
     /**
      * Closes current scope and returns parent one.
      *
-     * @return Scope|null
+     * @return self|null
      */
     public function leave()
     {
@@ -67,7 +67,7 @@ class Scope
      * @param string $key
      * @param mixed  $value
      *
-     * @return Scope Current scope
+     * @return $this
      *
      * @throws \LogicException
      */
--- a/vendor/symfony/twig-bridge/NodeVisitor/TranslationDefaultDomainNodeVisitor.php
+++ b/vendor/symfony/twig-bridge/NodeVisitor/TranslationDefaultDomainNodeVisitor.php
@@ -49,11 +49,11 @@ class TranslationDefaultDomainNodeVisitor extends \Twig_BaseNodeVisitor
 
                 return $node;
             } else {
-                $var = $env->getParser()->getVarName();
-                $name = new \Twig_Node_Expression_AssignName($var, $node->getLine());
-                $this->scope->set('domain', new \Twig_Node_Expression_Name($var, $node->getLine()));
+                $var = $this->getVarName();
+                $name = new \Twig_Node_Expression_AssignName($var, $node->getTemplateLine());
+                $this->scope->set('domain', new \Twig_Node_Expression_Name($var, $node->getTemplateLine()));
 
-                return new \Twig_Node_Set(false, new \Twig_Node(array($name)), new \Twig_Node(array($node->getNode('expr'))), $node->getLine());
+                return new \Twig_Node_Set(false, new \Twig_Node(array($name)), new \Twig_Node(array($node->getNode('expr'))), $node->getTemplateLine());
             }
         }
 
@@ -71,14 +71,14 @@ class TranslationDefaultDomainNodeVisitor extends \Twig_BaseNodeVisitor
             } else {
                 if (!$arguments->hasNode($ind)) {
                     if (!$arguments->hasNode($ind - 1)) {
-                        $arguments->setNode($ind - 1, new \Twig_Node_Expression_Array(array(), $node->getLine()));
+                        $arguments->setNode($ind - 1, new \Twig_Node_Expression_Array(array(), $node->getTemplateLine()));
                     }
 
                     $arguments->setNode($ind, $this->scope->get('domain'));
                 }
             }
         } elseif ($node instanceof TransNode) {
-            if (null === $node->getNode('domain')) {
+            if (!$node->hasNode('domain')) {
                 $node->setNode('domain', $this->scope->get('domain'));
             }
         }
@@ -123,4 +123,9 @@ class TranslationDefaultDomainNodeVisitor extends \Twig_BaseNodeVisitor
 
         return false;
     }
+
+    private function getVarName()
+    {
+        return sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false));
+    }
 }
--- a/vendor/symfony/twig-bridge/NodeVisitor/TranslationNodeVisitor.php
+++ b/vendor/symfony/twig-bridge/NodeVisitor/TranslationNodeVisitor.php
@@ -75,7 +75,7 @@ class TranslationNodeVisitor extends \Twig_BaseNodeVisitor
             // extract trans nodes
             $this->messages[] = array(
                 $node->getNode('body')->getAttribute('data'),
-                $this->getReadDomainFromNode($node->getNode('domain')),
+                $node->hasNode('domain') ? $this->getReadDomainFromNode($node->getNode('domain')) : null,
             );
         }
 
@@ -122,12 +122,8 @@ class TranslationNodeVisitor extends \Twig_BaseNodeVisitor
      *
      * @return string|null
      */
-    private function getReadDomainFromNode(\Twig_Node $node = null)
+    private function getReadDomainFromNode(\Twig_Node $node)
     {
-        if (null === $node) {
-            return;
-        }
-
         if ($node instanceof \Twig_Node_Expression_Constant) {
             return $node->getAttribute('value');
         }
--- a/vendor/symfony/twig-bridge/TokenParser/TransChoiceTokenParser.php
+++ b/vendor/symfony/twig-bridge/TokenParser/TransChoiceTokenParser.php
@@ -64,7 +64,7 @@ class TransChoiceTokenParser extends TransTokenParser
         $body = $this->parser->subparse(array($this, 'decideTransChoiceFork'), true);
 
         if (!$body instanceof \Twig_Node_Text && !$body instanceof \Twig_Node_Expression) {
-            throw new \Twig_Error_Syntax('A message inside a transchoice tag must be a simple text.', $body->getLine(), $stream->getFilename());
+            throw new \Twig_Error_Syntax('A message inside a transchoice tag must be a simple text.', $body->getTemplateLine(), $stream->getSourceContext()->getName());
         }
 
         $stream->expect(\Twig_Token::BLOCK_END_TYPE);
--- a/vendor/symfony/twig-bridge/TokenParser/TransTokenParser.php
+++ b/vendor/symfony/twig-bridge/TokenParser/TransTokenParser.php
@@ -55,7 +55,7 @@ class TransTokenParser extends \Twig_TokenParser
                 $stream->next();
                 $locale = $this->parser->getExpressionParser()->parseExpression();
             } elseif (!$stream->test(\Twig_Token::BLOCK_END_TYPE)) {
-                throw new \Twig_Error_Syntax('Unexpected token. Twig was looking for the "with", "from", or "into" keyword.', $stream->getCurrent()->getLine(), $stream->getFilename());
+                throw new \Twig_Error_Syntax('Unexpected token. Twig was looking for the "with", "from", or "into" keyword.', $stream->getCurrent()->getLine(), $stream->getSourceContext()->getName());
             }
         }
 
@@ -64,7 +64,7 @@ class TransTokenParser extends \Twig_TokenParser
         $body = $this->parser->subparse(array($this, 'decideTransFork'), true);
 
         if (!$body instanceof \Twig_Node_Text && !$body instanceof \Twig_Node_Expression) {
-            throw new \Twig_Error_Syntax('A message inside a trans tag must be a simple text.', $body->getLine(), $stream->getFilename());
+            throw new \Twig_Error_Syntax('A message inside a trans tag must be a simple text.', $body->getTemplateLine(), $stream->getSourceContext()->getName());
         }
 
         $stream->expect(\Twig_Token::BLOCK_END_TYPE);
--- a/vendor/symfony/twig-bridge/Translation/TwigExtractor.php
+++ b/vendor/symfony/twig-bridge/Translation/TwigExtractor.php
@@ -61,10 +61,14 @@ class TwigExtractor extends AbstractFileExtractor implements ExtractorInterface
             try {
                 $this->extractTemplate(file_get_contents($file->getPathname()), $catalogue);
             } catch (\Twig_Error $e) {
-                if ($file instanceof SplFileInfo) {
-                    $e->setTemplateFile($file->getRelativePathname());
-                } elseif ($file instanceof \SplFileInfo) {
-                    $e->setTemplateFile($file->getRealPath());
+                if ($file instanceof \SplFileInfo) {
+                    $path = $file->getRealPath() ?: $file->getPathname();
+                    $name = $file instanceof SplFileInfo ? $file->getRelativePathname() : $path;
+                    if (method_exists($e, 'setSourceContext')) {
+                        $e->setSourceContext(new \Twig_Source('', $name, $path));
+                    } else {
+                        $e->setTemplateName($name);
+                    }
                 }
 
                 throw $e;
@@ -82,10 +86,10 @@ class TwigExtractor extends AbstractFileExtractor implements ExtractorInterface
 
     protected function extractTemplate($template, MessageCatalogue $catalogue)
     {
-        $visitor = $this->twig->getExtension('translator')->getTranslationNodeVisitor();
+        $visitor = $this->twig->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->getTranslationNodeVisitor();
         $visitor->enable();
 
-        $this->twig->parse($this->twig->tokenize($template));
+        $this->twig->parse($this->twig->tokenize(new \Twig_Source($template, '')));
 
         foreach ($visitor->getMessages() as $message) {
             $catalogue->set(trim($message[0]), $this->prefix.trim($message[0]), $message[1] ?: $this->defaultDomain);
--- a/vendor/symfony/twig-bridge/TwigEngine.php
+++ b/vendor/symfony/twig-bridge/TwigEngine.php
@@ -75,14 +75,14 @@ class TwigEngine implements EngineInterface, StreamingEngineInterface
 
         $loader = $this->environment->getLoader();
 
-        if ($loader instanceof \Twig_ExistsLoaderInterface) {
+        if ($loader instanceof \Twig_ExistsLoaderInterface || method_exists($loader, 'exists')) {
             return $loader->exists((string) $name);
         }
 
         try {
             // cast possible TemplateReferenceInterface to string because the
             // EngineInterface supports them but Twig_LoaderInterface does not
-            $loader->getSource((string) $name);
+            $loader->getSourceContext((string) $name)->getCode();
         } catch (\Twig_Error_Loader $e) {
             return false;
         }
@@ -112,7 +112,7 @@ class TwigEngine implements EngineInterface, StreamingEngineInterface
      * @param string|TemplateReferenceInterface|\Twig_Template $name A template name or an instance of
      *                                                               TemplateReferenceInterface or \Twig_Template
      *
-     * @return \Twig_TemplateInterface A \Twig_TemplateInterface instance
+     * @return \Twig_Template A \Twig_Template instance
      *
      * @throws \InvalidArgumentException if the template does not exist
      */
--- a/vendor/symfony/twig-bridge/composer.json
+++ b/vendor/symfony/twig-bridge/composer.json
@@ -17,18 +17,18 @@
     ],
     "require": {
         "php": ">=5.3.9",
-        "twig/twig": "~1.23|~2.0"
+        "twig/twig": "~1.28|~2.0"
     },
     "require-dev": {
         "symfony/asset": "~2.7|~3.0.0",
         "symfony/finder": "~2.3|~3.0.0",
-        "symfony/form": "~2.8.4",
+        "symfony/form": "^2.8.19",
         "symfony/http-kernel": "~2.8|~3.0.0",
         "symfony/polyfill-intl-icu": "~1.0",
         "symfony/routing": "~2.2|~3.0.0",
         "symfony/templating": "~2.1|~3.0.0",
         "symfony/translation": "~2.7|~3.0.0",
-        "symfony/yaml": "~2.0,>=2.0.5|~3.0.0",
+        "symfony/yaml": "^2.0.5|~3.0.0",
         "symfony/security": "~2.6|~3.0.0",
         "symfony/security-acl": "~2.6|~3.0.0",
         "symfony/stopwatch": "~2.2|~3.0.0",
--- a/vendor/symfony/yaml/Escaper.php
+++ b/vendor/symfony/yaml/Escaper.php
@@ -33,13 +33,15 @@ class Escaper
                                      "\x08",  "\x09",  "\x0a",  "\x0b",  "\x0c",  "\x0d",  "\x0e",  "\x0f",
                                      "\x10",  "\x11",  "\x12",  "\x13",  "\x14",  "\x15",  "\x16",  "\x17",
                                      "\x18",  "\x19",  "\x1a",  "\x1b",  "\x1c",  "\x1d",  "\x1e",  "\x1f",
-                                     "\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9");
+                                     "\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9",
+                               );
     private static $escaped = array('\\\\', '\\"', '\\\\', '\\"',
                                      '\\0',   '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\a',
                                      '\\b',   '\\t',   '\\n',   '\\v',   '\\f',   '\\r',   '\\x0e', '\\x0f',
                                      '\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17',
                                      '\\x18', '\\x19', '\\x1a', '\\e',   '\\x1c', '\\x1d', '\\x1e', '\\x1f',
-                                     '\\N', '\\_', '\\L', '\\P');
+                                     '\\N', '\\_', '\\L', '\\P',
+                              );
 
     /**
      * Determines if a PHP value would require double quoting in YAML.
@@ -50,7 +52,7 @@ class Escaper
      */
     public static function requiresDoubleQuoting($value)
     {
-        return preg_match('/'.self::REGEX_CHARACTER_TO_ESCAPE.'/u', $value);
+        return 0 < preg_match('/'.self::REGEX_CHARACTER_TO_ESCAPE.'/u', $value);
     }
 
     /**
@@ -82,7 +84,7 @@ class Escaper
 
         // Determines if the PHP value contains any single characters that would
         // cause it to require single quoting in YAML.
-        return preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ \- ? | < > = ! % @ ` ]/x', $value);
+        return 0 < preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ \- ? | < > = ! % @ ` ]/x', $value);
     }
 
     /**
--- a/vendor/symfony/yaml/Exception/ParseException.php
+++ b/vendor/symfony/yaml/Exception/ParseException.php
@@ -26,11 +26,11 @@ class ParseException extends RuntimeException
     /**
      * Constructor.
      *
-     * @param string     $message    The error message
-     * @param int        $parsedLine The line where the error occurred
-     * @param int        $snippet    The snippet of code near the problem
-     * @param string     $parsedFile The file name where the error occurred
-     * @param \Exception $previous   The previous exception
+     * @param string          $message    The error message
+     * @param int             $parsedLine The line where the error occurred
+     * @param string|null     $snippet    The snippet of code near the problem
+     * @param string|null     $parsedFile The file name where the error occurred
+     * @param \Exception|null $previous   The previous exception
      */
     public function __construct($message, $parsedLine = -1, $snippet = null, $parsedFile = null, \Exception $previous = null)
     {
--- a/vendor/symfony/yaml/Inline.php
+++ b/vendor/symfony/yaml/Inline.php
@@ -21,7 +21,7 @@ use Symfony\Component\Yaml\Exception\DumpException;
  */
 class Inline
 {
-    const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\']*(?:\'\'[^\']*)*)\')';
+    const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*+(?:\\\\.[^"\\\\]*+)*+)"|\'([^\']*+(?:\'\'[^\']*+)*+)\')';
 
     private static $exceptionOnInvalidType = false;
     private static $objectSupport = false;
@@ -149,8 +149,8 @@ class Inline
             case Escaper::requiresDoubleQuoting($value):
                 return Escaper::escapeWithDoubleQuotes($value);
             case Escaper::requiresSingleQuoting($value):
-            case preg_match(self::getHexRegex(), $value):
-            case preg_match(self::getTimestampRegex(), $value):
+            case Parser::preg_match(self::getHexRegex(), $value):
+            case Parser::preg_match(self::getTimestampRegex(), $value):
                 return Escaper::escapeWithSingleQuotes($value);
             default:
                 return $value;
@@ -212,12 +212,12 @@ class Inline
     /**
      * Parses a YAML scalar.
      *
-     * @param string $scalar
-     * @param string $delimiters
-     * @param array  $stringDelimiters
-     * @param int    &$i
-     * @param bool   $evaluate
-     * @param array  $references
+     * @param string   $scalar
+     * @param string[] $delimiters
+     * @param string[] $stringDelimiters
+     * @param int      &$i
+     * @param bool     $evaluate
+     * @param array    $references
      *
      * @return string
      *
@@ -244,10 +244,10 @@ class Inline
                 $i += strlen($output);
 
                 // remove comments
-                if (preg_match('/[ \t]+#/', $output, $match, PREG_OFFSET_CAPTURE)) {
+                if (Parser::preg_match('/[ \t]+#/', $output, $match, PREG_OFFSET_CAPTURE)) {
                     $output = substr($output, 0, $match[0][1]);
                 }
-            } elseif (preg_match('/^(.+?)('.implode('|', $delimiters).')/', substr($scalar, $i), $match)) {
+            } elseif (Parser::preg_match('/^(.+?)('.implode('|', $delimiters).')/', substr($scalar, $i), $match)) {
                 $output = $match[1];
                 $i += strlen($output);
             } else {
@@ -282,7 +282,7 @@ class Inline
      */
     private static function parseQuotedScalar($scalar, &$i)
     {
-        if (!preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) {
+        if (!Parser::preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) {
             throw new ParseException(sprintf('Malformed inline YAML string: %s.', substr($scalar, $i)));
         }
 
@@ -453,7 +453,7 @@ class Inline
      * @param string $scalar
      * @param array  $references
      *
-     * @return string A YAML string
+     * @return mixed The evaluated YAML string
      *
      * @throws ParseException when object parsing support was disabled and the parser detected a PHP object or when a reference could not be resolved
      */
@@ -530,16 +530,16 @@ class Inline
 
                         return '0' == $scalar[1] ? octdec($scalar) : (((string) $raw === (string) $cast) ? $cast : $raw);
                     case is_numeric($scalar):
-                    case preg_match(self::getHexRegex(), $scalar):
+                    case Parser::preg_match(self::getHexRegex(), $scalar):
                         return '0x' === $scalar[0].$scalar[1] ? hexdec($scalar) : (float) $scalar;
                     case '.inf' === $scalarLower:
                     case '.nan' === $scalarLower:
                         return -log(0);
                     case '-.inf' === $scalarLower:
                         return log(0);
-                    case preg_match('/^(-|\+)?[0-9,]+(\.[0-9]+)?$/', $scalar):
+                    case Parser::preg_match('/^(-|\+)?[0-9,]+(\.[0-9]+)?$/', $scalar):
                         return (float) str_replace(',', '', $scalar);
-                    case preg_match(self::getTimestampRegex(), $scalar):
+                    case Parser::preg_match(self::getTimestampRegex(), $scalar):
                         $timeZone = date_default_timezone_get();
                         date_default_timezone_set('UTC');
                         $time = strtotime($scalar);
--- a/vendor/symfony/yaml/LICENSE
+++ b/vendor/symfony/yaml/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2016 Fabien Potencier
+Copyright (c) 2004-2017 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
--- a/vendor/symfony/yaml/Parser.php
+++ b/vendor/symfony/yaml/Parser.php
@@ -61,26 +61,60 @@ class Parser
      */
     public function parse($value, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false)
     {
-        if (!preg_match('//u', $value)) {
+        if (false === preg_match('//u', $value)) {
             throw new ParseException('The YAML value does not appear to be valid UTF-8.');
         }
+
+        $this->refs = array();
+
+        $mbEncoding = null;
+        $e = null;
+        $data = null;
+
+        if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) {
+            $mbEncoding = mb_internal_encoding();
+            mb_internal_encoding('UTF-8');
+        }
+
+        try {
+            $data = $this->doParse($value, $exceptionOnInvalidType, $objectSupport, $objectForMap);
+        } catch (\Exception $e) {
+        } catch (\Throwable $e) {
+        }
+
+        if (null !== $mbEncoding) {
+            mb_internal_encoding($mbEncoding);
+        }
+
+        $this->lines = array();
+        $this->currentLine = '';
+        $this->refs = array();
+        $this->skippedLineNumbers = array();
+        $this->locallySkippedLineNumbers = array();
+
+        if (null !== $e) {
+            throw $e;
+        }
+
+        return $data;
+    }
+
+    private function doParse($value, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false)
+    {
         $this->currentLineNb = -1;
         $this->currentLine = '';
         $value = $this->cleanup($value);
         $this->lines = explode("\n", $value);
+        $this->locallySkippedLineNumbers = array();
 
         if (null === $this->totalNumberOfLines) {
             $this->totalNumberOfLines = count($this->lines);
         }
 
-        if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) {
-            $mbEncoding = mb_internal_encoding();
-            mb_internal_encoding('UTF-8');
-        }
-
         $data = array();
         $context = null;
         $allowOverwrite = false;
+
         while ($this->moveToNextLine()) {
             if ($this->isCurrentLineEmpty()) {
                 continue;
@@ -92,13 +126,13 @@ class Parser
             }
 
             $isRef = $mergeNode = false;
-            if (preg_match('#^\-((?P<leadspaces>\s+)(?P<value>.+?))?\s*$#u', $this->currentLine, $values)) {
+            if (self::preg_match('#^\-((?P<leadspaces>\s+)(?P<value>.+))?$#u', rtrim($this->currentLine), $values)) {
                 if ($context && 'mapping' == $context) {
                     throw new ParseException('You cannot define a sequence item when in a mapping', $this->getRealCurrentLineNb() + 1, $this->currentLine);
                 }
                 $context = 'sequence';
 
-                if (isset($values['value']) && preg_match('#^&(?P<ref>[^ ]+) *(?P<value>.*)#u', $values['value'], $matches)) {
+                if (isset($values['value']) && self::preg_match('#^&(?P<ref>[^ ]+) *(?P<value>.*)#u', $values['value'], $matches)) {
                     $isRef = $matches['ref'];
                     $values['value'] = $matches['value'];
                 }
@@ -108,7 +142,7 @@ class Parser
                     $data[] = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, true), $exceptionOnInvalidType, $objectSupport, $objectForMap);
                 } else {
                     if (isset($values['leadspaces'])
-                        && preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\{\[].*?) *\:(\s+(?P<value>.+?))?\s*$#u', $values['value'], $matches)
+                        && self::preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\{\[].*?) *\:(\s+(?P<value>.+))?$#u', rtrim($values['value']), $matches)
                     ) {
                         // this is a compact notation element, add to next block and parse
                         $block = $values['value'];
@@ -124,7 +158,10 @@ class Parser
                 if ($isRef) {
                     $this->refs[$isRef] = end($data);
                 }
-            } elseif (preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\[\{].*?) *\:(\s+(?P<value>.+?))?\s*$#u', $this->currentLine, $values) && (false === strpos($values['key'], ' #') || in_array($values['key'][0], array('"', "'")))) {
+            } elseif (
+                self::preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\[\{].*?) *\:(\s+(?P<value>.+))?$#u', rtrim($this->currentLine), $values)
+                && (false === strpos($values['key'], ' #') || in_array($values['key'][0], array('"', "'")))
+            ) {
                 if ($context && 'sequence' == $context) {
                     throw new ParseException('You cannot define a mapping item when in a sequence', $this->currentLineNb + 1, $this->currentLine);
                 }
@@ -161,11 +198,7 @@ class Parser
                             throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
                         }
 
-                        foreach ($refValue as $key => $value) {
-                            if (!isset($data[$key])) {
-                                $data[$key] = $value;
-                            }
-                        }
+                        $data += $refValue; // array union
                     } else {
                         if (isset($values['value']) && $values['value'] !== '') {
                             $value = $values['value'];
@@ -187,23 +220,15 @@ class Parser
                                     throw new ParseException('Merge items must be arrays.', $this->getRealCurrentLineNb() + 1, $parsedItem);
                                 }
 
-                                foreach ($parsedItem as $key => $value) {
-                                    if (!isset($data[$key])) {
-                                        $data[$key] = $value;
-                                    }
-                                }
+                                $data += $parsedItem; // array union
                             }
                         } else {
                             // If the value associated with the key is a single mapping node, each of its key/value pairs is inserted into the
                             // current mapping, unless the key already exists in it.
-                            foreach ($parsed as $key => $value) {
-                                if (!isset($data[$key])) {
-                                    $data[$key] = $value;
-                                }
-                            }
+                            $data += $parsed; // array union
                         }
                     }
-                } elseif (isset($values['value']) && preg_match('#^&(?P<ref>[^ ]+) *(?P<value>.*)#u', $values['value'], $matches)) {
+                } elseif (isset($values['value']) && self::preg_match('#^&(?P<ref>[^ ]+) *(?P<value>.*)#u', $values['value'], $matches)) {
                     $isRef = $matches['ref'];
                     $values['value'] = $matches['value'];
                 }
@@ -255,41 +280,13 @@ class Parser
                         throw $e;
                     }
 
-                    if (isset($mbEncoding)) {
-                        mb_internal_encoding($mbEncoding);
-                    }
-
                     return $value;
                 }
 
-                switch (preg_last_error()) {
-                    case PREG_INTERNAL_ERROR:
-                        $error = 'Internal PCRE error.';
-                        break;
-                    case PREG_BACKTRACK_LIMIT_ERROR:
-                        $error = 'pcre.backtrack_limit reached.';
-                        break;
-                    case PREG_RECURSION_LIMIT_ERROR:
-                        $error = 'pcre.recursion_limit reached.';
-                        break;
-                    case PREG_BAD_UTF8_ERROR:
-                        $error = 'Malformed UTF-8 data.';
-                        break;
-                    case PREG_BAD_UTF8_OFFSET_ERROR:
-                        $error = 'Offset doesn\'t correspond to the begin of a valid UTF-8 code point.';
-                        break;
-                    default:
-                        $error = 'Unable to parse.';
-                }
-
-                throw new ParseException($error, $this->getRealCurrentLineNb() + 1, $this->currentLine);
+                throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
             }
         }
 
-        if (isset($mbEncoding)) {
-            mb_internal_encoding($mbEncoding);
-        }
-
         if ($objectForMap && !is_object($data) && 'mapping' === $context) {
             $object = new \stdClass();
 
@@ -318,7 +315,7 @@ class Parser
         $parser = new self($offset, $this->totalNumberOfLines, $skippedLineNumbers);
         $parser->refs = &$this->refs;
 
-        return $parser->parse($yaml, $exceptionOnInvalidType, $objectSupport, $objectForMap);
+        return $parser->doParse($yaml, $exceptionOnInvalidType, $objectSupport, $objectForMap);
     }
 
     /**
@@ -429,7 +426,7 @@ class Parser
 
             $previousLineIndentation = $indent;
 
-            if ($isItUnindentedCollection && !$this->isStringUnIndentedCollectionItem() && $newIndent === $indent) {
+            if ($isItUnindentedCollection && !$this->isCurrentLineEmpty() && !$this->isStringUnIndentedCollectionItem() && $newIndent === $indent) {
                 $this->moveToPreviousLine();
                 break;
             }
@@ -527,7 +524,7 @@ class Parser
             return $this->refs[$value];
         }
 
-        if (preg_match('/^'.self::BLOCK_SCALAR_HEADER_PATTERN.'$/', $value, $matches)) {
+        if (self::preg_match('/^'.self::BLOCK_SCALAR_HEADER_PATTERN.'$/', $value, $matches)) {
             $modifiers = isset($matches['modifiers']) ? $matches['modifiers'] : '';
 
             return $this->parseBlockScalar($matches['separator'], preg_replace('#\d+#', '', $modifiers), (int) abs($modifiers));
@@ -582,7 +579,7 @@ class Parser
 
         // determine indentation if not specified
         if (0 === $indentation) {
-            if (preg_match('/^ +/', $this->currentLine, $matches)) {
+            if (self::preg_match('/^ +/', $this->currentLine, $matches)) {
                 $indentation = strlen($matches[0]);
             }
         }
@@ -593,7 +590,7 @@ class Parser
             while (
                 $notEOF && (
                     $isCurrentLineBlank ||
-                    preg_match($pattern, $this->currentLine, $matches)
+                    self::preg_match($pattern, $this->currentLine, $matches)
                 )
             ) {
                 if ($isCurrentLineBlank && strlen($this->currentLine) > $indentation) {
@@ -626,7 +623,7 @@ class Parser
             $previousLineIndented = false;
             $previousLineBlank = false;
 
-            for ($i = 0; $i < count($blockLines); ++$i) {
+            for ($i = 0, $blockLinesCount = count($blockLines); $i < $blockLinesCount; ++$i) {
                 if ('' === $blockLines[$i]) {
                     $text .= "\n";
                     $previousLineIndented = false;
@@ -681,10 +678,7 @@ class Parser
             return false;
         }
 
-        $ret = false;
-        if ($this->getCurrentLineIndentation() > $currentIndentation) {
-            $ret = true;
-        }
+        $ret = $this->getCurrentLineIndentation() > $currentIndentation;
 
         $this->moveToPreviousLine();
 
@@ -785,14 +779,7 @@ class Parser
             return false;
         }
 
-        $ret = false;
-        if (
-            $this->getCurrentLineIndentation() == $currentIndentation
-            &&
-            $this->isStringUnIndentedCollectionItem()
-        ) {
-            $ret = true;
-        }
+        $ret = $this->getCurrentLineIndentation() === $currentIndentation && $this->isStringUnIndentedCollectionItem();
 
         $this->moveToPreviousLine();
 
@@ -816,6 +803,48 @@ class Parser
      */
     private function isBlockScalarHeader()
     {
-        return (bool) preg_match('~'.self::BLOCK_SCALAR_HEADER_PATTERN.'$~', $this->currentLine);
+        return (bool) self::preg_match('~'.self::BLOCK_SCALAR_HEADER_PATTERN.'$~', $this->currentLine);
+    }
+
+    /**
+     * A local wrapper for `preg_match` which will throw a ParseException if there
+     * is an internal error in the PCRE engine.
+     *
+     * This avoids us needing to check for "false" every time PCRE is used
+     * in the YAML engine
+     *
+     * @throws ParseException on a PCRE internal error
+     *
+     * @see preg_last_error()
+     *
+     * @internal
+     */
+    public static function preg_match($pattern, $subject, &$matches = null, $flags = 0, $offset = 0)
+    {
+        if (false === $ret = preg_match($pattern, $subject, $matches, $flags, $offset)) {
+            switch (preg_last_error()) {
+                case PREG_INTERNAL_ERROR:
+                    $error = 'Internal PCRE error.';
+                    break;
+                case PREG_BACKTRACK_LIMIT_ERROR:
+                    $error = 'pcre.backtrack_limit reached.';
+                    break;
+                case PREG_RECURSION_LIMIT_ERROR:
+                    $error = 'pcre.recursion_limit reached.';
+                    break;
+                case PREG_BAD_UTF8_ERROR:
+                    $error = 'Malformed UTF-8 data.';
+                    break;
+                case PREG_BAD_UTF8_OFFSET_ERROR:
+                    $error = 'Offset doesn\'t correspond to the begin of a valid UTF-8 code point.';
+                    break;
+                default:
+                    $error = 'Error.';
+            }
+
+            throw new ParseException($error);
+        }
+
+        return $ret;
     }
 }
--- /dev/null
+++ b/vendor/twig/twig/.php_cs.dist
@@ -0,0 +1,15 @@
+<?php
+
+return PhpCsFixer\Config::create()
+    ->setRules(array(
+        '@Symfony' => true,
+        '@Symfony:risky' => true,
+        'array_syntax' => array('syntax' => 'long'),
+        'php_unit_fqcn_annotation' => false,
+        'no_unreachable_default_argument_value' => false,
+        'braces' => array('allow_single_line_closure' => true),
+        'heredoc_to_nowdoc' => false,
+    ))
+    ->setRiskyAllowed(true)
+    ->setFinder(PhpCsFixer\Finder::create()->in(__DIR__))
+;
--- a/vendor/twig/twig/LICENSE
+++ b/vendor/twig/twig/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2009-2016 by the Twig Team.
+Copyright (c) 2009-2017 by the Twig Team.
 
 Some rights reserved.
 
--- a/vendor/twig/twig/composer.json
+++ b/vendor/twig/twig/composer.json
@@ -30,8 +30,9 @@
         "php": ">=5.2.7"
     },
     "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/debug": "~2.7"
+        "symfony/phpunit-bridge": "~3.3@dev",
+        "symfony/debug": "~2.7",
+        "psr/container": "^1.0"
     },
     "autoload": {
         "psr-0" : {
@@ -40,7 +41,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "1.24-dev"
+            "dev-master": "1.33-dev"
         }
     }
 }
--- a/vendor/twig/twig/lib/Twig/Autoloader.php
+++ b/vendor/twig/twig/lib/Twig/Autoloader.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -23,7 +23,7 @@ class Twig_Autoloader
     /**
      * Registers Twig_Autoloader as an SPL autoloader.
      *
-     * @param bool $prepend Whether to prepend the autoloader or not.
+     * @param bool $prepend whether to prepend the autoloader or not
      */
     public static function register($prepend = false)
     {
@@ -39,7 +39,7 @@ class Twig_Autoloader
     /**
      * Handles autoloading of classes.
      *
-     * @param string $class A class name.
+     * @param string $class a class name
      */
     public static function autoload($class)
     {
--- a/vendor/twig/twig/lib/Twig/BaseNodeVisitor.php
+++ b/vendor/twig/twig/lib/Twig/BaseNodeVisitor.php
@@ -16,9 +16,6 @@
  */
 abstract class Twig_BaseNodeVisitor implements Twig_NodeVisitorInterface
 {
-    /**
-     * {@inheritdoc}
-     */
     final public function enterNode(Twig_NodeInterface $node, Twig_Environment $env)
     {
         if (!$node instanceof Twig_Node) {
@@ -28,9 +25,6 @@ abstract class Twig_BaseNodeVisitor implements Twig_NodeVisitorInterface
         return $this->doEnterNode($node, $env);
     }
 
-    /**
-     * {@inheritdoc}
-     */
     final public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env)
     {
         if (!$node instanceof Twig_Node) {
@@ -43,9 +37,6 @@ abstract class Twig_BaseNodeVisitor implements Twig_NodeVisitorInterface
     /**
      * Called before child nodes are visited.
      *
-     * @param Twig_Node        $node The node to visit
-     * @param Twig_Environment $env  The Twig environment instance
-     *
      * @return Twig_Node The modified node
      */
     abstract protected function doEnterNode(Twig_Node $node, Twig_Environment $env);
@@ -53,9 +44,6 @@ abstract class Twig_BaseNodeVisitor implements Twig_NodeVisitorInterface
     /**
      * Called after child nodes are visited.
      *
-     * @param Twig_Node        $node The node to visit
-     * @param Twig_Environment $env  The Twig environment instance
-     *
      * @return Twig_Node|false The modified node or false if the node must be removed
      */
     abstract protected function doLeaveNode(Twig_Node $node, Twig_Environment $env);
--- a/vendor/twig/twig/lib/Twig/Cache/Filesystem.php
+++ b/vendor/twig/twig/lib/Twig/Cache/Filesystem.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -31,9 +31,6 @@ class Twig_Cache_Filesystem implements Twig_CacheInterface
         $this->options = $options;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function generateKey($name, $className)
     {
         $hash = hash('sha256', $className);
@@ -41,9 +38,6 @@ class Twig_Cache_Filesystem implements Twig_CacheInterface
         return $this->directory.$hash[0].$hash[1].'/'.$hash.'.php';
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function load($key)
     {
         if (file_exists($key)) {
@@ -51,15 +45,17 @@ class Twig_Cache_Filesystem implements Twig_CacheInterface
         }
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function write($key, $content)
     {
         $dir = dirname($key);
         if (!is_dir($dir)) {
-            if (false === @mkdir($dir, 0777, true) && !is_dir($dir)) {
-                throw new RuntimeException(sprintf('Unable to create the cache directory (%s).', $dir));
+            if (false === @mkdir($dir, 0777, true)) {
+                if (PHP_VERSION_ID >= 50300) {
+                    clearstatcache(true, $dir);
+                }
+                if (!is_dir($dir)) {
+                    throw new RuntimeException(sprintf('Unable to create the cache directory (%s).', $dir));
+                }
             }
         } elseif (!is_writable($dir)) {
             throw new RuntimeException(sprintf('Unable to write in the cache directory (%s).', $dir));
@@ -84,9 +80,6 @@ class Twig_Cache_Filesystem implements Twig_CacheInterface
         throw new RuntimeException(sprintf('Failed to write cache file "%s".', $key));
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getTimestamp($key)
     {
         if (!file_exists($key)) {
--- a/vendor/twig/twig/lib/Twig/Cache/Null.php
+++ b/vendor/twig/twig/lib/Twig/Cache/Null.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,35 +12,25 @@
 /**
  * Implements a no-cache strategy.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Cache_Null implements Twig_CacheInterface
 {
-    /**
-     * {@inheritdoc}
-     */
     public function generateKey($name, $className)
     {
         return '';
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function write($key, $content)
     {
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function load($key)
     {
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getTimestamp($key)
     {
         return 0;
--- a/vendor/twig/twig/lib/Twig/CacheInterface.php
+++ b/vendor/twig/twig/lib/Twig/CacheInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Compiler.php
+++ b/vendor/twig/twig/lib/Twig/Compiler.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -26,25 +26,25 @@ class Twig_Compiler implements Twig_CompilerInterface
     protected $sourceLine;
     protected $filename;
 
-    /**
-     * Constructor.
-     *
-     * @param Twig_Environment $env The twig environment instance
-     */
     public function __construct(Twig_Environment $env)
     {
         $this->env = $env;
     }
 
+    /**
+     * @deprecated since 1.25 (to be removed in 2.0)
+     */
     public function getFilename()
     {
+        @trigger_error(sprintf('The %s() method is deprecated since version 1.25 and will be removed in 2.0.', __FUNCTION__), E_USER_DEPRECATED);
+
         return $this->filename;
     }
 
     /**
      * Returns the environment instance related to this compiler.
      *
-     * @return Twig_Environment The environment instance
+     * @return Twig_Environment
      */
     public function getEnvironment()
     {
@@ -67,7 +67,7 @@ class Twig_Compiler implements Twig_CompilerInterface
      * @param Twig_NodeInterface $node        The node to compile
      * @param int                $indentation The current indentation
      *
-     * @return Twig_Compiler The current compiler instance
+     * @return $this
      */
     public function compile(Twig_NodeInterface $node, $indentation = 0)
     {
@@ -80,7 +80,8 @@ class Twig_Compiler implements Twig_CompilerInterface
         $this->indentation = $indentation;
 
         if ($node instanceof Twig_Node_Module) {
-            $this->filename = $node->getAttribute('filename');
+            // to be removed in 2.0
+            $this->filename = $node->getTemplateName();
         }
 
         $node->compile($this);
@@ -91,7 +92,7 @@ class Twig_Compiler implements Twig_CompilerInterface
     public function subcompile(Twig_NodeInterface $node, $raw = true)
     {
         if (false === $raw) {
-            $this->addIndentation();
+            $this->source .= str_repeat(' ', $this->indentation * 4);
         }
 
         $node->compile($this);
@@ -104,7 +105,7 @@ class Twig_Compiler implements Twig_CompilerInterface
      *
      * @param string $string The string
      *
-     * @return Twig_Compiler The current compiler instance
+     * @return $this
      */
     public function raw($string)
     {
@@ -116,14 +117,13 @@ class Twig_Compiler implements Twig_CompilerInterface
     /**
      * Writes a string to the compiled code by adding indentation.
      *
-     * @return Twig_Compiler The current compiler instance
+     * @return $this
      */
     public function write()
     {
         $strings = func_get_args();
         foreach ($strings as $string) {
-            $this->addIndentation();
-            $this->source .= $string;
+            $this->source .= str_repeat(' ', $this->indentation * 4).$string;
         }
 
         return $this;
@@ -132,10 +132,14 @@ class Twig_Compiler implements Twig_CompilerInterface
     /**
      * Appends an indentation to the current PHP code after compilation.
      *
-     * @return Twig_Compiler The current compiler instance
+     * @return $this
+     *
+     * @deprecated since 1.27 (to be removed in 2.0).
      */
     public function addIndentation()
     {
+        @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0. Use write(\'\') instead.', E_USER_DEPRECATED);
+
         $this->source .= str_repeat(' ', $this->indentation * 4);
 
         return $this;
@@ -146,7 +150,7 @@ class Twig_Compiler implements Twig_CompilerInterface
      *
      * @param string $value The string
      *
-     * @return Twig_Compiler The current compiler instance
+     * @return $this
      */
     public function string($value)
     {
@@ -160,12 +164,12 @@ class Twig_Compiler implements Twig_CompilerInterface
      *
      * @param mixed $value The value to convert
      *
-     * @return Twig_Compiler The current compiler instance
+     * @return $this
      */
     public function repr($value)
     {
         if (is_int($value) || is_float($value)) {
-            if (false !== $locale = setlocale(LC_NUMERIC, 0)) {
+            if (false !== $locale = setlocale(LC_NUMERIC, '0')) {
                 setlocale(LC_NUMERIC, 'C');
             }
 
@@ -201,28 +205,28 @@ class Twig_Compiler implements Twig_CompilerInterface
     /**
      * Adds debugging information.
      *
-     * @param Twig_NodeInterface $node The related twig node
-     *
-     * @return Twig_Compiler The current compiler instance
+     * @return $this
      */
     public function addDebugInfo(Twig_NodeInterface $node)
     {
-        if ($node->getLine() != $this->lastLine) {
-            $this->write(sprintf("// line %d\n", $node->getLine()));
+        if ($node->getTemplateLine() != $this->lastLine) {
+            $this->write(sprintf("// line %d\n", $node->getTemplateLine()));
 
             // when mbstring.func_overload is set to 2
             // mb_substr_count() replaces substr_count()
             // but they have different signatures!
             if (((int) ini_get('mbstring.func_overload')) & 2) {
+                @trigger_error('Support for having "mbstring.func_overload" different from 0 is deprecated version 1.29 and will be removed in 2.0.', E_USER_DEPRECATED);
+
                 // this is much slower than the "right" version
                 $this->sourceLine += mb_substr_count(mb_substr($this->source, $this->sourceOffset), "\n");
             } else {
                 $this->sourceLine += substr_count($this->source, "\n", $this->sourceOffset);
             }
             $this->sourceOffset = strlen($this->source);
-            $this->debugInfo[$this->sourceLine] = $node->getLine();
+            $this->debugInfo[$this->sourceLine] = $node->getTemplateLine();
 
-            $this->lastLine = $node->getLine();
+            $this->lastLine = $node->getTemplateLine();
         }
 
         return $this;
@@ -240,7 +244,7 @@ class Twig_Compiler implements Twig_CompilerInterface
      *
      * @param int $step The number of indentation to add
      *
-     * @return Twig_Compiler The current compiler instance
+     * @return $this
      */
     public function indent($step = 1)
     {
@@ -254,7 +258,7 @@ class Twig_Compiler implements Twig_CompilerInterface
      *
      * @param int $step The number of indentation to remove
      *
-     * @return Twig_Compiler The current compiler instance
+     * @return $this
      *
      * @throws LogicException When trying to outdent too much so the indentation would become negative
      */
@@ -262,7 +266,7 @@ class Twig_Compiler implements Twig_CompilerInterface
     {
         // can't outdent by more steps than the current indentation level
         if ($this->indentation < $step) {
-            throw new LogicException('Unable to call outdent() as the indentation would become negative');
+            throw new LogicException('Unable to call outdent() as the indentation would become negative.');
         }
 
         $this->indentation -= $step;
--- a/vendor/twig/twig/lib/Twig/CompilerInterface.php
+++ b/vendor/twig/twig/lib/Twig/CompilerInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -21,9 +21,7 @@ interface Twig_CompilerInterface
     /**
      * Compiles a node.
      *
-     * @param Twig_NodeInterface $node The node to compile
-     *
-     * @return Twig_CompilerInterface The current compiler instance
+     * @return $this
      */
     public function compile(Twig_NodeInterface $node);
 
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/ContainerRuntimeLoader.php
@@ -0,0 +1,37 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Psr\Container\ContainerInterface;
+
+/**
+ * Lazily loads Twig runtime implementations from a PSR-11 container.
+ *
+ * Note that the runtime services MUST use their class names as identifiers.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ * @author Robin Chalas <robin.chalas@gmail.com>
+ */
+class Twig_ContainerRuntimeLoader implements Twig_RuntimeLoaderInterface
+{
+    private $container;
+
+    public function __construct(ContainerInterface $container)
+    {
+        $this->container = $container;
+    }
+
+    public function load($class)
+    {
+        if ($this->container->has($class)) {
+            return $this->container->get($class);
+        }
+    }
+}
--- a/vendor/twig/twig/lib/Twig/Environment.php
+++ b/vendor/twig/twig/lib/Twig/Environment.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -16,7 +16,12 @@
  */
 class Twig_Environment
 {
-    const VERSION = '1.24.2';
+    const VERSION = '1.33.2';
+    const VERSION_ID = 13302;
+    const MAJOR_VERSION = 1;
+    const MINOR_VERSION = 33;
+    const RELEASE_VERSION = 1;
+    const EXTRA_VERSION = '';
 
     protected $charset;
     protected $loader;
@@ -49,6 +54,10 @@ class Twig_Environment
     private $bcWriteCacheFile = false;
     private $bcGetCacheFilename = false;
     private $lastModifiedExtension = 0;
+    private $extensionsByClass = array();
+    private $runtimeLoaders = array();
+    private $runtimes = array();
+    private $optionsHash;
 
     /**
      * Constructor.
@@ -78,14 +87,14 @@ class Twig_Environment
      *                  * false: disable auto-escaping
      *                  * true: equivalent to html
      *                  * html, js: set the autoescaping to one of the supported strategies
-     *                  * filename: set the autoescaping strategy based on the template filename extension
-     *                  * PHP callback: a PHP callback that returns an escaping strategy based on the template "filename"
+     *                  * name: set the autoescaping strategy based on the template name extension
+     *                  * PHP callback: a PHP callback that returns an escaping strategy based on the template "name"
      *
      *  * optimizations: A flag that indicates which optimizations to apply
      *                   (default to -1 which means that all optimizations are enabled;
      *                   set it to 0 to disable).
      *
-     * @param Twig_LoaderInterface $loader  A Twig_LoaderInterface instance
+     * @param Twig_LoaderInterface $loader
      * @param array                $options An array of options
      */
     public function __construct(Twig_LoaderInterface $loader = null, $options = array())
@@ -155,6 +164,7 @@ class Twig_Environment
     public function setBaseTemplateClass($class)
     {
         $this->baseTemplateClass = $class;
+        $this->updateOptionsHash();
     }
 
     /**
@@ -163,6 +173,7 @@ class Twig_Environment
     public function enableDebug()
     {
         $this->debug = true;
+        $this->updateOptionsHash();
     }
 
     /**
@@ -171,6 +182,7 @@ class Twig_Environment
     public function disableDebug()
     {
         $this->debug = false;
+        $this->updateOptionsHash();
     }
 
     /**
@@ -215,6 +227,7 @@ class Twig_Environment
     public function enableStrictVariables()
     {
         $this->strictVariables = true;
+        $this->updateOptionsHash();
     }
 
     /**
@@ -223,6 +236,7 @@ class Twig_Environment
     public function disableStrictVariables()
     {
         $this->strictVariables = false;
+        $this->updateOptionsHash();
     }
 
     /**
@@ -300,7 +314,10 @@ class Twig_Environment
      *
      *  * The cache key for the given template;
      *  * The currently enabled extensions;
-     *  * Whether the Twig C extension is available or not.
+     *  * Whether the Twig C extension is available or not;
+     *  * PHP version;
+     *  * Twig version;
+     *  * Options with what environment was created.
      *
      * @param string   $name  The name for which to calculate the template class name
      * @param int|null $index The index if it is an embedded template
@@ -309,9 +326,7 @@ class Twig_Environment
      */
     public function getTemplateClass($name, $index = null)
     {
-        $key = $this->getLoader()->getCacheKey($name);
-        $key .= json_encode(array_keys($this->extensions));
-        $key .= function_exists('twig_template_get_attributes');
+        $key = $this->getLoader()->getCacheKey($name).$this->optionsHash;
 
         return $this->templateClassPrefix.hash('sha256', $key).(null === $index ? '' : '_'.$index);
     }
@@ -363,19 +378,48 @@ class Twig_Environment
     }
 
     /**
-     * Loads a template by name.
+     * Loads a template.
+     *
+     * @param string|Twig_TemplateWrapper|Twig_Template $name The template name
+     *
+     * @return Twig_TemplateWrapper
+     */
+    public function load($name)
+    {
+        if ($name instanceof Twig_TemplateWrapper) {
+            return $name;
+        }
+
+        if ($name instanceof Twig_Template) {
+            return new Twig_TemplateWrapper($this, $name);
+        }
+
+        return new Twig_TemplateWrapper($this, $this->loadTemplate($name));
+    }
+
+    /**
+     * Loads a template internal representation.
+     *
+     * This method is for internal use only and should never be called
+     * directly.
      *
      * @param string $name  The template name
      * @param int    $index The index if it is an embedded template
      *
      * @return Twig_TemplateInterface A template instance representing the given template name
      *
-     * @throws Twig_Error_Loader When the template cannot be found
-     * @throws Twig_Error_Syntax When an error occurred during compilation
+     * @throws Twig_Error_Loader  When the template cannot be found
+     * @throws Twig_Error_Runtime When a previously generated cache is corrupted
+     * @throws Twig_Error_Syntax  When an error occurred during compilation
+     *
+     * @internal
      */
     public function loadTemplate($name, $index = null)
     {
-        $cls = $this->getTemplateClass($name, $index);
+        $cls = $mainCls = $this->getTemplateClass($name);
+        if (null !== $index) {
+            $cls .= '_'.$index;
+        }
 
         if (isset($this->loadedTemplates[$cls])) {
             return $this->loadedTemplates[$cls];
@@ -385,7 +429,7 @@ class Twig_Environment
             if ($this->bcGetCacheFilename) {
                 $key = $this->getCacheFilename($name);
             } else {
-                $key = $this->cache->generateKey($name, $cls);
+                $key = $this->cache->generateKey($name, $mainCls);
             }
 
             if (!$this->isAutoReload() || $this->isTemplateFresh($name, $this->cache->getTimestamp($key))) {
@@ -393,14 +437,34 @@ class Twig_Environment
             }
 
             if (!class_exists($cls, false)) {
-                $content = $this->compileSource($this->getLoader()->getSource($name), $name);
+                $loader = $this->getLoader();
+                if (!$loader instanceof Twig_SourceContextLoaderInterface) {
+                    $source = new Twig_Source($loader->getSource($name), $name);
+                } else {
+                    $source = $loader->getSourceContext($name);
+                }
+
+                $content = $this->compileSource($source);
+
                 if ($this->bcWriteCacheFile) {
                     $this->writeCacheFile($key, $content);
                 } else {
                     $this->cache->write($key, $content);
+                    $this->cache->load($key);
                 }
 
-                eval('?>'.$content);
+                if (!class_exists($mainCls, false)) {
+                    /* Last line of defense if either $this->bcWriteCacheFile was used,
+                     * $this->cache is implemented as a no-op or we have a race condition
+                     * where the cache was cleared between the above calls to write to and load from
+                     * the cache.
+                     */
+                    eval('?>'.$content);
+                }
+            }
+
+            if (!class_exists($cls, false)) {
+                throw new Twig_Error_Runtime(sprintf('Failed to load Twig template "%s", index "%s": cache is corrupted.', $name, $index), -1, $source);
             }
         }
 
@@ -545,10 +609,14 @@ class Twig_Environment
     /**
      * Gets the Lexer instance.
      *
-     * @return Twig_LexerInterface A Twig_LexerInterface instance
+     * @return Twig_LexerInterface
+     *
+     * @deprecated since 1.25 (to be removed in 2.0)
      */
     public function getLexer()
     {
+        @trigger_error(sprintf('The %s() method is deprecated since version 1.25 and will be removed in 2.0.', __FUNCTION__), E_USER_DEPRECATED);
+
         if (null === $this->lexer) {
             $this->lexer = new Twig_Lexer($this);
         }
@@ -556,11 +624,6 @@ class Twig_Environment
         return $this->lexer;
     }
 
-    /**
-     * Sets the Lexer instance.
-     *
-     * @param Twig_LexerInterface $lexer A Twig_LexerInterface instance
-     */
     public function setLexer(Twig_LexerInterface $lexer)
     {
         $this->lexer = $lexer;
@@ -569,25 +632,38 @@ class Twig_Environment
     /**
      * Tokenizes a source code.
      *
-     * @param string $source The template source code
-     * @param string $name   The template name
+     * @param string|Twig_Source $source The template source code
+     * @param string             $name   The template name (deprecated)
      *
-     * @return Twig_TokenStream A Twig_TokenStream instance
+     * @return Twig_TokenStream
      *
      * @throws Twig_Error_Syntax When the code is syntactically wrong
      */
     public function tokenize($source, $name = null)
     {
-        return $this->getLexer()->tokenize($source, $name);
+        if (!$source instanceof Twig_Source) {
+            @trigger_error(sprintf('Passing a string as the $source argument of %s() is deprecated since version 1.27. Pass a Twig_Source instance instead.', __METHOD__), E_USER_DEPRECATED);
+            $source = new Twig_Source($source, $name);
+        }
+
+        if (null === $this->lexer) {
+            $this->lexer = new Twig_Lexer($this);
+        }
+
+        return $this->lexer->tokenize($source);
     }
 
     /**
      * Gets the Parser instance.
      *
-     * @return Twig_ParserInterface A Twig_ParserInterface instance
+     * @return Twig_ParserInterface
+     *
+     * @deprecated since 1.25 (to be removed in 2.0)
      */
     public function getParser()
     {
+        @trigger_error(sprintf('The %s() method is deprecated since version 1.25 and will be removed in 2.0.', __FUNCTION__), E_USER_DEPRECATED);
+
         if (null === $this->parser) {
             $this->parser = new Twig_Parser($this);
         }
@@ -595,11 +671,6 @@ class Twig_Environment
         return $this->parser;
     }
 
-    /**
-     * Sets the Parser instance.
-     *
-     * @param Twig_ParserInterface $parser A Twig_ParserInterface instance
-     */
     public function setParser(Twig_ParserInterface $parser)
     {
         $this->parser = $parser;
@@ -608,24 +679,30 @@ class Twig_Environment
     /**
      * Converts a token stream to a node tree.
      *
-     * @param Twig_TokenStream $stream A token stream instance
-     *
-     * @return Twig_Node_Module A node tree
+     * @return Twig_Node_Module
      *
      * @throws Twig_Error_Syntax When the token stream is syntactically or semantically wrong
      */
     public function parse(Twig_TokenStream $stream)
     {
-        return $this->getParser()->parse($stream);
+        if (null === $this->parser) {
+            $this->parser = new Twig_Parser($this);
+        }
+
+        return $this->parser->parse($stream);
     }
 
     /**
      * Gets the Compiler instance.
      *
-     * @return Twig_CompilerInterface A Twig_CompilerInterface instance
+     * @return Twig_CompilerInterface
+     *
+     * @deprecated since 1.25 (to be removed in 2.0)
      */
     public function getCompiler()
     {
+        @trigger_error(sprintf('The %s() method is deprecated since version 1.25 and will be removed in 2.0.', __FUNCTION__), E_USER_DEPRECATED);
+
         if (null === $this->compiler) {
             $this->compiler = new Twig_Compiler($this);
         }
@@ -633,11 +710,6 @@ class Twig_Environment
         return $this->compiler;
     }
 
-    /**
-     * Sets the Compiler instance.
-     *
-     * @param Twig_CompilerInterface $compiler A Twig_CompilerInterface instance
-     */
     public function setCompiler(Twig_CompilerInterface $compiler)
     {
         $this->compiler = $compiler;
@@ -646,20 +718,22 @@ class Twig_Environment
     /**
      * Compiles a node and returns the PHP code.
      *
-     * @param Twig_NodeInterface $node A Twig_NodeInterface instance
-     *
      * @return string The compiled PHP source code
      */
     public function compile(Twig_NodeInterface $node)
     {
-        return $this->getCompiler()->compile($node)->getSource();
+        if (null === $this->compiler) {
+            $this->compiler = new Twig_Compiler($this);
+        }
+
+        return $this->compiler->compile($node)->getSource();
     }
 
     /**
      * Compiles a template source code.
      *
-     * @param string $source The template source code
-     * @param string $name   The template name
+     * @param string|Twig_Source $source The template source code
+     * @param string             $name   The template name (deprecated)
      *
      * @return string The compiled PHP source code
      *
@@ -667,36 +741,34 @@ class Twig_Environment
      */
     public function compileSource($source, $name = null)
     {
-        try {
-            $compiled = $this->compile($this->parse($this->tokenize($source, $name)), $source);
-
-            if (isset($source[0])) {
-                $compiled .= '/* '.str_replace(array('*/', "\r\n", "\r", "\n"), array('*//* ', "\n", "\n", "*/\n/* "), $source)."*/\n";
-            }
+        if (!$source instanceof Twig_Source) {
+            @trigger_error(sprintf('Passing a string as the $source argument of %s() is deprecated since version 1.27. Pass a Twig_Source instance instead.', __METHOD__), E_USER_DEPRECATED);
+            $source = new Twig_Source($source, $name);
+        }
 
-            return $compiled;
+        try {
+            return $this->compile($this->parse($this->tokenize($source)));
         } catch (Twig_Error $e) {
-            $e->setTemplateFile($name);
+            $e->setSourceContext($source);
             throw $e;
         } catch (Exception $e) {
-            throw new Twig_Error_Syntax(sprintf('An exception has been thrown during the compilation of a template ("%s").', $e->getMessage()), -1, $name, $e);
+            throw new Twig_Error_Syntax(sprintf('An exception has been thrown during the compilation of a template ("%s").', $e->getMessage()), -1, $source, $e);
         }
     }
 
-    /**
-     * Sets the Loader instance.
-     *
-     * @param Twig_LoaderInterface $loader A Twig_LoaderInterface instance
-     */
     public function setLoader(Twig_LoaderInterface $loader)
     {
+        if (!$loader instanceof Twig_SourceContextLoaderInterface && 0 !== strpos(get_class($loader), 'Mock_Twig_LoaderInterface')) {
+            @trigger_error(sprintf('Twig loader "%s" should implement Twig_SourceContextLoaderInterface since version 1.27.', get_class($loader)), E_USER_DEPRECATED);
+        }
+
         $this->loader = $loader;
     }
 
     /**
      * Gets the Loader instance.
      *
-     * @return Twig_LoaderInterface A Twig_LoaderInterface instance
+     * @return Twig_LoaderInterface
      */
     public function getLoader()
     {
@@ -752,51 +824,100 @@ class Twig_Environment
     /**
      * Returns true if the given extension is registered.
      *
-     * @param string $name The extension name
+     * @param string $class The extension class name
      *
      * @return bool Whether the extension is registered or not
      */
-    public function hasExtension($name)
+    public function hasExtension($class)
+    {
+        $class = ltrim($class, '\\');
+        if (isset($this->extensions[$class])) {
+            if ($class !== get_class($this->extensions[$class])) {
+                @trigger_error(sprintf('Referencing the "%s" extension by its name (defined by getName()) is deprecated since 1.26 and will be removed in Twig 2.0. Use the Fully Qualified Extension Class Name instead.', $class), E_USER_DEPRECATED);
+            }
+
+            return true;
+        }
+
+        return isset($this->extensionsByClass[$class]);
+    }
+
+    /**
+     * Adds a runtime loader.
+     */
+    public function addRuntimeLoader(Twig_RuntimeLoaderInterface $loader)
     {
-        return isset($this->extensions[$name]);
+        $this->runtimeLoaders[] = $loader;
     }
 
     /**
-     * Gets an extension by name.
+     * Gets an extension by class name.
      *
-     * @param string $name The extension name
+     * @param string $class The extension class name
      *
-     * @return Twig_ExtensionInterface A Twig_ExtensionInterface instance
+     * @return Twig_ExtensionInterface
      */
-    public function getExtension($name)
+    public function getExtension($class)
     {
-        if (!isset($this->extensions[$name])) {
-            throw new Twig_Error_Runtime(sprintf('The "%s" extension is not enabled.', $name));
+        $class = ltrim($class, '\\');
+
+        if (isset($this->extensions[$class])) {
+            if ($class !== get_class($this->extensions[$class])) {
+                @trigger_error(sprintf('Referencing the "%s" extension by its name (defined by getName()) is deprecated since 1.26 and will be removed in Twig 2.0. Use the Fully Qualified Extension Class Name instead.', $class), E_USER_DEPRECATED);
+            }
+
+            return $this->extensions[$class];
         }
 
-        return $this->extensions[$name];
+        if (!isset($this->extensionsByClass[$class])) {
+            throw new Twig_Error_Runtime(sprintf('The "%s" extension is not enabled.', $class));
+        }
+
+        return $this->extensionsByClass[$class];
     }
 
     /**
-     * Registers an extension.
+     * Returns the runtime implementation of a Twig element (filter/function/test).
+     *
+     * @param string $class A runtime class name
      *
-     * @param Twig_ExtensionInterface $extension A Twig_ExtensionInterface instance
+     * @return object The runtime implementation
+     *
+     * @throws Twig_Error_Runtime When the template cannot be found
      */
-    public function addExtension(Twig_ExtensionInterface $extension)
+    public function getRuntime($class)
     {
-        $name = $extension->getName();
+        if (isset($this->runtimes[$class])) {
+            return $this->runtimes[$class];
+        }
+
+        foreach ($this->runtimeLoaders as $loader) {
+            if (null !== $runtime = $loader->load($class)) {
+                return $this->runtimes[$class] = $runtime;
+            }
+        }
+
+        throw new Twig_Error_Runtime(sprintf('Unable to load the "%s" runtime.', $class));
+    }
 
+    public function addExtension(Twig_ExtensionInterface $extension)
+    {
         if ($this->extensionInitialized) {
-            throw new LogicException(sprintf('Unable to register extension "%s" as extensions have already been initialized.', $name));
+            throw new LogicException(sprintf('Unable to register extension "%s" as extensions have already been initialized.', $extension->getName()));
         }
 
-        if (isset($this->extensions[$name])) {
-            @trigger_error(sprintf('The possibility to register the same extension twice ("%s") is deprecated since version 1.23 and will be removed in Twig 2.0. Use proper PHP inheritance instead.', $name), E_USER_DEPRECATED);
+        $class = get_class($extension);
+        if ($class !== $extension->getName()) {
+            if (isset($this->extensions[$extension->getName()])) {
+                unset($this->extensions[$extension->getName()], $this->extensionsByClass[$class]);
+                @trigger_error(sprintf('The possibility to register the same extension twice ("%s") is deprecated since version 1.23 and will be removed in Twig 2.0. Use proper PHP inheritance instead.', $extension->getName()), E_USER_DEPRECATED);
+            }
         }
 
         $this->lastModifiedExtension = 0;
-
-        $this->extensions[$name] = $extension;
+        $this->extensionsByClass[$class] = $extension;
+        $this->extensions[$extension->getName()] = $extension;
+        $this->updateOptionsHash();
     }
 
     /**
@@ -816,7 +937,17 @@ class Twig_Environment
             throw new LogicException(sprintf('Unable to remove extension "%s" as extensions have already been initialized.', $name));
         }
 
-        unset($this->extensions[$name]);
+        $class = ltrim($name, '\\');
+        if (isset($this->extensions[$class])) {
+            if ($class !== get_class($this->extensions[$class])) {
+                @trigger_error(sprintf('Referencing the "%s" extension by its name (defined by getName()) is deprecated since 1.26 and will be removed in Twig 2.0. Use the Fully Qualified Extension Class Name instead.', $class), E_USER_DEPRECATED);
+            }
+
+            unset($this->extensions[$class]);
+        }
+
+        unset($this->extensions[$class]);
+        $this->updateOptionsHash();
     }
 
     /**
@@ -834,18 +965,13 @@ class Twig_Environment
     /**
      * Returns all registered extensions.
      *
-     * @return array An array of extensions
+     * @return Twig_ExtensionInterface[] An array of extensions (keys are for internal usage only and should not be relied on)
      */
     public function getExtensions()
     {
         return $this->extensions;
     }
 
-    /**
-     * Registers a Token Parser.
-     *
-     * @param Twig_TokenParserInterface $parser A Twig_TokenParserInterface instance
-     */
     public function addTokenParser(Twig_TokenParserInterface $parser)
     {
         if ($this->extensionInitialized) {
@@ -858,7 +984,7 @@ class Twig_Environment
     /**
      * Gets the registered Token Parsers.
      *
-     * @return Twig_TokenParserBrokerInterface A broker containing token parsers
+     * @return Twig_TokenParserBrokerInterface
      *
      * @internal
      */
@@ -876,7 +1002,7 @@ class Twig_Environment
      *
      * Be warned that this method cannot return tags defined by Twig_TokenParserBrokerInterface classes.
      *
-     * @return Twig_TokenParserInterface[] An array of Twig_TokenParserInterface instances
+     * @return Twig_TokenParserInterface[]
      *
      * @internal
      */
@@ -892,11 +1018,6 @@ class Twig_Environment
         return $tags;
     }
 
-    /**
-     * Registers a Node Visitor.
-     *
-     * @param Twig_NodeVisitorInterface $visitor A Twig_NodeVisitorInterface instance
-     */
     public function addNodeVisitor(Twig_NodeVisitorInterface $visitor)
     {
         if ($this->extensionInitialized) {
@@ -909,7 +1030,7 @@ class Twig_Environment
     /**
      * Gets the registered Node Visitors.
      *
-     * @return Twig_NodeVisitorInterface[] An array of Twig_NodeVisitorInterface instances
+     * @return Twig_NodeVisitorInterface[]
      *
      * @internal
      */
@@ -926,12 +1047,12 @@ class Twig_Environment
      * Registers a Filter.
      *
      * @param string|Twig_SimpleFilter               $name   The filter name or a Twig_SimpleFilter instance
-     * @param Twig_FilterInterface|Twig_SimpleFilter $filter A Twig_FilterInterface instance or a Twig_SimpleFilter instance
+     * @param Twig_FilterInterface|Twig_SimpleFilter $filter
      */
     public function addFilter($name, $filter = null)
     {
         if (!$name instanceof Twig_SimpleFilter && !($filter instanceof Twig_SimpleFilter || $filter instanceof Twig_FilterInterface)) {
-            throw new LogicException('A filter must be an instance of Twig_FilterInterface or Twig_SimpleFilter');
+            throw new LogicException('A filter must be an instance of Twig_FilterInterface or Twig_SimpleFilter.');
         }
 
         if ($name instanceof Twig_SimpleFilter) {
@@ -1002,7 +1123,7 @@ class Twig_Environment
      *
      * Be warned that this method cannot return filters defined with registerUndefinedFilterCallback.
      *
-     * @return Twig_FilterInterface[] An array of Twig_FilterInterface instances
+     * @return Twig_FilterInterface[]
      *
      * @see registerUndefinedFilterCallback
      *
@@ -1026,7 +1147,7 @@ class Twig_Environment
     public function addTest($name, $test = null)
     {
         if (!$name instanceof Twig_SimpleTest && !($test instanceof Twig_SimpleTest || $test instanceof Twig_TestInterface)) {
-            throw new LogicException('A test must be an instance of Twig_TestInterface or Twig_SimpleTest');
+            throw new LogicException('A test must be an instance of Twig_TestInterface or Twig_SimpleTest.');
         }
 
         if ($name instanceof Twig_SimpleTest) {
@@ -1046,7 +1167,7 @@ class Twig_Environment
     /**
      * Gets the registered Tests.
      *
-     * @return Twig_TestInterface[] An array of Twig_TestInterface instances
+     * @return Twig_TestInterface[]
      *
      * @internal
      */
@@ -1085,12 +1206,12 @@ class Twig_Environment
      * Registers a Function.
      *
      * @param string|Twig_SimpleFunction                 $name     The function name or a Twig_SimpleFunction instance
-     * @param Twig_FunctionInterface|Twig_SimpleFunction $function A Twig_FunctionInterface instance or a Twig_SimpleFunction instance
+     * @param Twig_FunctionInterface|Twig_SimpleFunction $function
      */
     public function addFunction($name, $function = null)
     {
         if (!$name instanceof Twig_SimpleFunction && !($function instanceof Twig_SimpleFunction || $function instanceof Twig_FunctionInterface)) {
-            throw new LogicException('A function must be an instance of Twig_FunctionInterface or Twig_SimpleFunction');
+            throw new LogicException('A function must be an instance of Twig_FunctionInterface or Twig_SimpleFunction.');
         }
 
         if ($name instanceof Twig_SimpleFunction) {
@@ -1161,7 +1282,7 @@ class Twig_Environment
      *
      * Be warned that this method cannot return functions defined with registerUndefinedFunctionCallback.
      *
-     * @return Twig_FunctionInterface[] An array of Twig_FunctionInterface instances
+     * @return Twig_FunctionInterface[]
      *
      * @see registerUndefinedFunctionCallback
      *
@@ -1326,7 +1447,6 @@ class Twig_Environment
             return;
         }
 
-        $this->extensionInitialized = true;
         $this->parsers = new Twig_TokenParserBroker(array(), array(), false);
         $this->filters = array();
         $this->functions = array();
@@ -1339,6 +1459,8 @@ class Twig_Environment
             $this->initExtension($extension);
         }
         $this->initExtension($this->staging);
+        // Done at the end only, so that an exception during initialization does not mark the environment as initialized when catching the exception
+        $this->extensionInitialized = true;
     }
 
     /**
@@ -1388,7 +1510,7 @@ class Twig_Environment
 
                 $this->parsers->addTokenParserBroker($parser);
             } else {
-                throw new LogicException('getTokenParsers() must return an array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances');
+                throw new LogicException('getTokenParsers() must return an array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances.');
             }
         }
 
@@ -1399,8 +1521,12 @@ class Twig_Environment
 
         // operators
         if ($operators = $extension->getOperators()) {
+            if (!is_array($operators)) {
+                throw new InvalidArgumentException(sprintf('"%s::getOperators()" must return an array with operators, got "%s".', get_class($extension), is_object($operators) ? get_class($operators) : gettype($operators).(is_resource($operators) ? '' : '#'.$operators)));
+            }
+
             if (2 !== count($operators)) {
-                throw new InvalidArgumentException(sprintf('"%s::getOperators()" does not return a valid operators array.', get_class($extension)));
+                throw new InvalidArgumentException(sprintf('"%s::getOperators()" must return an array of 2 elements, got %d.', get_class($extension), count($operators)));
             }
 
             $this->unaryOperators = array_merge($this->unaryOperators, $operators[0]);
@@ -1415,4 +1541,21 @@ class Twig_Environment
     {
         $this->cache->write($file, $content);
     }
+
+    private function updateOptionsHash()
+    {
+        $hashParts = array_merge(
+            array_keys($this->extensions),
+            array(
+                (int) function_exists('twig_template_get_attributes'),
+                PHP_MAJOR_VERSION,
+                PHP_MINOR_VERSION,
+                self::VERSION,
+                (int) $this->debug,
+                $this->baseTemplateClass,
+                (int) $this->strictVariables,
+            )
+        );
+        $this->optionsHash = implode(':', $hashParts);
+    }
 }
--- a/vendor/twig/twig/lib/Twig/Error.php
+++ b/vendor/twig/twig/lib/Twig/Error.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -25,8 +25,8 @@
  * and line number) yourself by passing them to the constructor. If some or all
  * these information are not available from where you throw the exception, then
  * this class will guess them automatically (when the line number is set to -1
- * and/or the filename is set to null). As this is a costly operation, this
- * can be disabled by passing false for both the filename and the line number
+ * and/or the name is set to null). As this is a costly operation, this
+ * can be disabled by passing false for both the name and the line number
  * when creating a new instance of this class.
  *
  * @author Fabien Potencier <fabien@symfony.com>
@@ -34,29 +34,43 @@
 class Twig_Error extends Exception
 {
     protected $lineno;
+    // to be renamed to name in 2.0
     protected $filename;
     protected $rawMessage;
     protected $previous;
 
+    private $sourcePath;
+    private $sourceCode;
+
     /**
      * Constructor.
      *
-     * Set both the line number and the filename to false to
+     * Set both the line number and the name to false to
      * disable automatic guessing of the original template name
      * and line number.
      *
      * Set the line number to -1 to enable its automatic guessing.
-     * Set the filename to null to enable its automatic guessing.
+     * Set the name to null to enable its automatic guessing.
      *
      * By default, automatic guessing is enabled.
      *
-     * @param string    $message  The error message
-     * @param int       $lineno   The template line where the error occurred
-     * @param string    $filename The template file name where the error occurred
-     * @param Exception $previous The previous exception
+     * @param string                  $message  The error message
+     * @param int                     $lineno   The template line where the error occurred
+     * @param Twig_Source|string|null $source   The source context where the error occurred
+     * @param Exception               $previous The previous exception
      */
-    public function __construct($message, $lineno = -1, $filename = null, Exception $previous = null)
+    public function __construct($message, $lineno = -1, $source = null, Exception $previous = null)
     {
+        if (null === $source) {
+            $name = null;
+        } elseif (!$source instanceof Twig_Source) {
+            // for compat with the Twig C ext., passing the template name as string is accepted
+            $name = $source;
+        } else {
+            $name = $source->getName();
+            $this->sourceCode = $source->getCode();
+            $this->sourcePath = $source->getPath();
+        }
         if (PHP_VERSION_ID < 50300) {
             $this->previous = $previous;
             parent::__construct('');
@@ -65,9 +79,9 @@ class Twig_Error extends Exception
         }
 
         $this->lineno = $lineno;
-        $this->filename = $filename;
+        $this->filename = $name;
 
-        if (-1 === $this->lineno || null === $this->filename) {
+        if (-1 === $lineno || null === $name || null === $this->sourcePath) {
             $this->guessTemplateInfo();
         }
 
@@ -87,23 +101,62 @@ class Twig_Error extends Exception
     }
 
     /**
-     * Gets the filename where the error occurred.
+     * Gets the logical name where the error occurred.
      *
-     * @return string The filename
+     * @return string The name
+     *
+     * @deprecated since 1.27 (to be removed in 2.0). Use getSourceContext() instead.
      */
     public function getTemplateFile()
     {
+        @trigger_error(sprintf('The "%s" method is deprecated since version 1.27 and will be removed in 2.0. Use getSourceContext() instead.', __METHOD__), E_USER_DEPRECATED);
+
         return $this->filename;
     }
 
     /**
-     * Sets the filename where the error occurred.
+     * Sets the logical name where the error occurred.
+     *
+     * @param string $name The name
      *
-     * @param string $filename The filename
+     * @deprecated since 1.27 (to be removed in 2.0). Use setSourceContext() instead.
      */
-    public function setTemplateFile($filename)
+    public function setTemplateFile($name)
     {
-        $this->filename = $filename;
+        @trigger_error(sprintf('The "%s" method is deprecated since version 1.27 and will be removed in 2.0. Use setSourceContext() instead.', __METHOD__), E_USER_DEPRECATED);
+
+        $this->filename = $name;
+
+        $this->updateRepr();
+    }
+
+    /**
+     * Gets the logical name where the error occurred.
+     *
+     * @return string The name
+     *
+     * @deprecated since 1.29 (to be removed in 2.0). Use getSourceContext() instead.
+     */
+    public function getTemplateName()
+    {
+        @trigger_error(sprintf('The "%s" method is deprecated since version 1.29 and will be removed in 2.0. Use getSourceContext() instead.', __METHOD__), E_USER_DEPRECATED);
+
+        return $this->filename;
+    }
+
+    /**
+     * Sets the logical name where the error occurred.
+     *
+     * @param string $name The name
+     *
+     * @deprecated since 1.29 (to be removed in 2.0). Use setSourceContext() instead.
+     */
+    public function setTemplateName($name)
+    {
+        @trigger_error(sprintf('The "%s" method is deprecated since version 1.29 and will be removed in 2.0. Use setSourceContext() instead.', __METHOD__), E_USER_DEPRECATED);
+
+        $this->filename = $name;
+        $this->sourceCode = $this->sourcePath = null;
 
         $this->updateRepr();
     }
@@ -130,6 +183,32 @@ class Twig_Error extends Exception
         $this->updateRepr();
     }
 
+    /**
+     * Gets the source context of the Twig template where the error occurred.
+     *
+     * @return Twig_Source|null
+     */
+    public function getSourceContext()
+    {
+        return $this->filename ? new Twig_Source($this->sourceCode, $this->filename, $this->sourcePath) : null;
+    }
+
+    /**
+     * Sets the source context of the Twig template where the error occurred.
+     */
+    public function setSourceContext(Twig_Source $source = null)
+    {
+        if (null === $source) {
+            $this->sourceCode = $this->filename = $this->sourcePath = null;
+        } else {
+            $this->sourceCode = $source->getCode();
+            $this->filename = $source->getName();
+            $this->sourcePath = $source->getPath();
+        }
+
+        $this->updateRepr();
+    }
+
     public function guess()
     {
         $this->guessTemplateInfo();
@@ -168,6 +247,13 @@ class Twig_Error extends Exception
     {
         $this->message = $this->rawMessage;
 
+        if ($this->sourcePath && $this->lineno > 0) {
+            $this->file = $this->sourcePath;
+            $this->line = $this->lineno;
+
+            return;
+        }
+
         $dot = false;
         if ('.' === substr($this->message, -1)) {
             $this->message = substr($this->message, 0, -1);
@@ -182,11 +268,11 @@ class Twig_Error extends Exception
 
         if ($this->filename) {
             if (is_string($this->filename) || (is_object($this->filename) && method_exists($this->filename, '__toString'))) {
-                $filename = sprintf('"%s"', $this->filename);
+                $name = sprintf('"%s"', $this->filename);
             } else {
-                $filename = json_encode($this->filename);
+                $name = json_encode($this->filename);
             }
-            $this->message .= sprintf(' in %s', $filename);
+            $this->message .= sprintf(' in %s', $name);
         }
 
         if ($this->lineno && $this->lineno >= 0) {
@@ -227,11 +313,18 @@ class Twig_Error extends Exception
             }
         }
 
-        // update template filename
+        // update template name
         if (null !== $template && null === $this->filename) {
             $this->filename = $template->getTemplateName();
         }
 
+        // update template path if any
+        if (null !== $template && null === $this->sourcePath) {
+            $src = $template->getSourceContext();
+            $this->sourceCode = $src->getCode();
+            $this->sourcePath = $src->getPath();
+        }
+
         if (null === $template || $this->lineno > -1) {
             return;
         }
--- a/vendor/twig/twig/lib/Twig/Error/Loader.php
+++ b/vendor/twig/twig/lib/Twig/Error/Loader.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -24,8 +24,15 @@
  */
 class Twig_Error_Loader extends Twig_Error
 {
-    public function __construct($message, $lineno = -1, $filename = null, Exception $previous = null)
+    public function __construct($message, $lineno = -1, $source = null, Exception $previous = null)
     {
-        parent::__construct($message, false, false, $previous);
+        if (PHP_VERSION_ID < 50300) {
+            $this->previous = $previous;
+            Exception::__construct('');
+        } else {
+            Exception::__construct('', 0, $previous);
+        }
+        $this->appendMessage($message);
+        $this->setTemplateLine(false);
     }
 }
--- a/vendor/twig/twig/lib/Twig/Error/Runtime.php
+++ b/vendor/twig/twig/lib/Twig/Error/Runtime.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Error/Syntax.php
+++ b/vendor/twig/twig/lib/Twig/Error/Syntax.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php
+++ b/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/ExpressionParser.php
+++ b/vendor/twig/twig/lib/Twig/ExpressionParser.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -19,6 +19,8 @@
  * @see http://en.wikipedia.org/wiki/Operator-precedence_parser
  *
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @internal
  */
 class Twig_ExpressionParser
 {
@@ -29,11 +31,23 @@ class Twig_ExpressionParser
     protected $unaryOperators;
     protected $binaryOperators;
 
-    public function __construct(Twig_Parser $parser, array $unaryOperators, array $binaryOperators)
+    private $env;
+
+    public function __construct(Twig_Parser $parser, $env = null)
     {
         $this->parser = $parser;
-        $this->unaryOperators = $unaryOperators;
-        $this->binaryOperators = $binaryOperators;
+
+        if ($env instanceof Twig_Environment) {
+            $this->env = $env;
+            $this->unaryOperators = $env->getUnaryOperators();
+            $this->binaryOperators = $env->getBinaryOperators();
+        } else {
+            @trigger_error('Passing the operators as constructor arguments to '.__METHOD__.' is deprecated since version 1.27. Pass the environment instead.', E_USER_DEPRECATED);
+
+            $this->env = $parser->getEnvironment();
+            $this->unaryOperators = func_get_arg(1);
+            $this->binaryOperators = func_get_arg(2);
+        }
     }
 
     public function parseExpression($precedence = 0)
@@ -44,7 +58,11 @@ class Twig_ExpressionParser
             $op = $this->binaryOperators[$token->getValue()];
             $this->parser->getStream()->next();
 
-            if (isset($op['callable'])) {
+            if ('is not' === $token->getValue()) {
+                $expr = $this->parseNotTestExpression($expr);
+            } elseif ('is' === $token->getValue()) {
+                $expr = $this->parseTestExpression($expr);
+            } elseif (isset($op['callable'])) {
                 $expr = call_user_func($op['callable'], $this->parser, $expr);
             } else {
                 $expr1 = $this->parseExpression(self::OPERATOR_LEFT === $op['associativity'] ? $op['precedence'] + 1 : $op['precedence']);
@@ -171,7 +189,7 @@ class Twig_ExpressionParser
                     $negClass = 'Twig_Node_Expression_Unary_Neg';
                     $posClass = 'Twig_Node_Expression_Unary_Pos';
                     if (!(in_array($ref->getName(), array($negClass, $posClass)) || $ref->isSubclassOf($negClass) || $ref->isSubclassOf($posClass))) {
-                        throw new Twig_Error_Syntax(sprintf('Unexpected unary operator "%s".', $token->getValue()), $token->getLine(), $this->parser->getFilename());
+                        throw new Twig_Error_Syntax(sprintf('Unexpected unary operator "%s".', $token->getValue()), $token->getLine(), $this->parser->getStream()->getSourceContext());
                     }
 
                     $this->parser->getStream()->next();
@@ -187,7 +205,7 @@ class Twig_ExpressionParser
                 } elseif ($token->test(Twig_Token::PUNCTUATION_TYPE, '{')) {
                     $node = $this->parseHashExpression();
                 } else {
-                    throw new Twig_Error_Syntax(sprintf('Unexpected token "%s" of value "%s".', Twig_Token::typeToEnglish($token->getType()), $token->getValue()), $token->getLine(), $this->parser->getFilename());
+                    throw new Twig_Error_Syntax(sprintf('Unexpected token "%s" of value "%s".', Twig_Token::typeToEnglish($token->getType()), $token->getValue()), $token->getLine(), $this->parser->getStream()->getSourceContext());
                 }
         }
 
@@ -216,7 +234,7 @@ class Twig_ExpressionParser
 
         $expr = array_shift($nodes);
         foreach ($nodes as $node) {
-            $expr = new Twig_Node_Expression_Binary_Concat($expr, $node, $node->getLine());
+            $expr = new Twig_Node_Expression_Binary_Concat($expr, $node, $node->getTemplateLine());
         }
 
         return $expr;
@@ -278,7 +296,7 @@ class Twig_ExpressionParser
             } else {
                 $current = $stream->getCurrent();
 
-                throw new Twig_Error_Syntax(sprintf('A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "%s" of value "%s".', Twig_Token::typeToEnglish($current->getType()), $current->getValue()), $current->getLine(), $this->parser->getFilename());
+                throw new Twig_Error_Syntax(sprintf('A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "%s" of value "%s".', Twig_Token::typeToEnglish($current->getType()), $current->getValue()), $current->getLine(), $stream->getSourceContext());
             }
 
             $stream->expect(Twig_Token::PUNCTUATION_TYPE, ':', 'A hash key must be followed by a colon (:)');
@@ -317,20 +335,25 @@ class Twig_ExpressionParser
             case 'parent':
                 $this->parseArguments();
                 if (!count($this->parser->getBlockStack())) {
-                    throw new Twig_Error_Syntax('Calling "parent" outside a block is forbidden.', $line, $this->parser->getFilename());
+                    throw new Twig_Error_Syntax('Calling "parent" outside a block is forbidden.', $line, $this->parser->getStream()->getSourceContext());
                 }
 
                 if (!$this->parser->getParent() && !$this->parser->hasTraits()) {
-                    throw new Twig_Error_Syntax('Calling "parent" on a template that does not extend nor "use" another template is forbidden.', $line, $this->parser->getFilename());
+                    throw new Twig_Error_Syntax('Calling "parent" on a template that does not extend nor "use" another template is forbidden.', $line, $this->parser->getStream()->getSourceContext());
                 }
 
                 return new Twig_Node_Expression_Parent($this->parser->peekBlockStack(), $line);
             case 'block':
-                return new Twig_Node_Expression_BlockReference($this->parseArguments()->getNode(0), false, $line);
+                $args = $this->parseArguments();
+                if (count($args) < 1) {
+                    throw new Twig_Error_Syntax('The "block" function takes one argument (the block name).', $line, $this->parser->getStream()->getSourceContext());
+                }
+
+                return new Twig_Node_Expression_BlockReference($args->getNode(0), count($args) > 1 ? $args->getNode(1) : null, $line);
             case 'attribute':
                 $args = $this->parseArguments();
                 if (count($args) < 2) {
-                    throw new Twig_Error_Syntax('The "attribute" function takes at least two arguments (the variable and the attributes).', $line, $this->parser->getFilename());
+                    throw new Twig_Error_Syntax('The "attribute" function takes at least two arguments (the variable and the attributes).', $line, $this->parser->getStream()->getSourceContext());
                 }
 
                 return new Twig_Node_Expression_GetAttr($args->getNode(0), $args->getNode(1), count($args) > 2 ? $args->getNode(2) : null, Twig_Template::ANY_CALL, $line);
@@ -379,18 +402,18 @@ class Twig_ExpressionParser
                     }
                 }
             } else {
-                throw new Twig_Error_Syntax('Expected name or number', $lineno, $this->parser->getFilename());
+                throw new Twig_Error_Syntax('Expected name or number.', $lineno, $stream->getSourceContext());
             }
 
             if ($node instanceof Twig_Node_Expression_Name && null !== $this->parser->getImportedSymbol('template', $node->getAttribute('name'))) {
                 if (!$arg instanceof Twig_Node_Expression_Constant) {
-                    throw new Twig_Error_Syntax(sprintf('Dynamic macro names are not supported (called on "%s").', $node->getAttribute('name')), $token->getLine(), $this->parser->getFilename());
+                    throw new Twig_Error_Syntax(sprintf('Dynamic macro names are not supported (called on "%s").', $node->getAttribute('name')), $token->getLine(), $stream->getSourceContext());
                 }
 
                 $name = $arg->getAttribute('value');
 
                 if ($this->parser->isReservedMacroName($name)) {
-                    throw new Twig_Error_Syntax(sprintf('"%s" cannot be called as macro as it is a reserved keyword.', $name), $token->getLine(), $this->parser->getFilename());
+                    throw new Twig_Error_Syntax(sprintf('"%s" cannot be called as macro as it is a reserved keyword.', $name), $token->getLine(), $stream->getSourceContext());
                 }
 
                 $node = new Twig_Node_Expression_MethodCall($node, 'get'.$name, $arguments, $lineno);
@@ -500,7 +523,7 @@ class Twig_ExpressionParser
             $name = null;
             if ($namedArguments && $token = $stream->nextIf(Twig_Token::OPERATOR_TYPE, '=')) {
                 if (!$value instanceof Twig_Node_Expression_Name) {
-                    throw new Twig_Error_Syntax(sprintf('A parameter name must be a string, "%s" given.', get_class($value)), $token->getLine(), $this->parser->getFilename());
+                    throw new Twig_Error_Syntax(sprintf('A parameter name must be a string, "%s" given.', get_class($value)), $token->getLine(), $stream->getSourceContext());
                 }
                 $name = $value->getAttribute('name');
 
@@ -508,7 +531,7 @@ class Twig_ExpressionParser
                     $value = $this->parsePrimaryExpression();
 
                     if (!$this->checkConstantExpression($value)) {
-                        throw new Twig_Error_Syntax(sprintf('A default value for an argument must be a constant (a boolean, a string, a number, or an array).'), $token->getLine(), $this->parser->getFilename());
+                        throw new Twig_Error_Syntax(sprintf('A default value for an argument must be a constant (a boolean, a string, a number, or an array).'), $token->getLine(), $stream->getSourceContext());
                     }
                 } else {
                     $value = $this->parseExpression();
@@ -536,16 +559,17 @@ class Twig_ExpressionParser
 
     public function parseAssignmentExpression()
     {
+        $stream = $this->parser->getStream();
         $targets = array();
         while (true) {
-            $token = $this->parser->getStream()->expect(Twig_Token::NAME_TYPE, null, 'Only variables can be assigned to');
+            $token = $stream->expect(Twig_Token::NAME_TYPE, null, 'Only variables can be assigned to');
             $value = $token->getValue();
             if (in_array(strtolower($value), array('true', 'false', 'none', 'null'))) {
-                throw new Twig_Error_Syntax(sprintf('You cannot assign a value to "%s"', $value), $token->getLine(), $this->parser->getFilename());
+                throw new Twig_Error_Syntax(sprintf('You cannot assign a value to "%s".', $value), $token->getLine(), $stream->getSourceContext());
             }
             $targets[] = new Twig_Node_Expression_AssignName($value, $token->getLine());
 
-            if (!$this->parser->getStream()->nextIf(Twig_Token::PUNCTUATION_TYPE, ',')) {
+            if (!$stream->nextIf(Twig_Token::PUNCTUATION_TYPE, ',')) {
                 break;
             }
         }
@@ -566,13 +590,80 @@ class Twig_ExpressionParser
         return new Twig_Node($targets);
     }
 
-    protected function getFunctionNodeClass($name, $line)
+    private function parseNotTestExpression(Twig_NodeInterface $node)
     {
-        $env = $this->parser->getEnvironment();
+        return new Twig_Node_Expression_Unary_Not($this->parseTestExpression($node), $this->parser->getCurrentToken()->getLine());
+    }
+
+    private function parseTestExpression(Twig_NodeInterface $node)
+    {
+        $stream = $this->parser->getStream();
+        list($name, $test) = $this->getTest($node->getTemplateLine());
+
+        $class = $this->getTestNodeClass($test);
+        $arguments = null;
+        if ($stream->test(Twig_Token::PUNCTUATION_TYPE, '(')) {
+            $arguments = $this->parser->getExpressionParser()->parseArguments(true);
+        }
 
-        if (false === $function = $env->getFunction($name)) {
-            $e = new Twig_Error_Syntax(sprintf('Unknown "%s" function.', $name), $line, $this->parser->getFilename());
-            $e->addSuggestions($name, array_keys($env->getFunctions()));
+        return new $class($node, $name, $arguments, $this->parser->getCurrentToken()->getLine());
+    }
+
+    private function getTest($line)
+    {
+        $stream = $this->parser->getStream();
+        $name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
+
+        if ($test = $this->env->getTest($name)) {
+            return array($name, $test);
+        }
+
+        if ($stream->test(Twig_Token::NAME_TYPE)) {
+            // try 2-words tests
+            $name = $name.' '.$this->parser->getCurrentToken()->getValue();
+
+            if ($test = $this->env->getTest($name)) {
+                $stream->next();
+
+                return array($name, $test);
+            }
+        }
+
+        $e = new Twig_Error_Syntax(sprintf('Unknown "%s" test.', $name), $line, $stream->getSourceContext());
+        $e->addSuggestions($name, array_keys($this->env->getTests()));
+
+        throw $e;
+    }
+
+    private function getTestNodeClass($test)
+    {
+        if ($test instanceof Twig_SimpleTest && $test->isDeprecated()) {
+            $stream = $this->parser->getStream();
+            $message = sprintf('Twig Test "%s" is deprecated', $test->getName());
+            if (!is_bool($test->getDeprecatedVersion())) {
+                $message .= sprintf(' since version %s', $test->getDeprecatedVersion());
+            }
+            if ($test->getAlternative()) {
+                $message .= sprintf('. Use "%s" instead', $test->getAlternative());
+            }
+            $src = $stream->getSourceContext();
+            $message .= sprintf(' in %s at line %d.', $src->getPath() ? $src->getPath() : $src->getName(), $stream->getCurrent()->getLine());
+
+            @trigger_error($message, E_USER_DEPRECATED);
+        }
+
+        if ($test instanceof Twig_SimpleTest) {
+            return $test->getNodeClass();
+        }
+
+        return $test instanceof Twig_Test_Node ? $test->getClass() : 'Twig_Node_Expression_Test';
+    }
+
+    protected function getFunctionNodeClass($name, $line)
+    {
+        if (false === $function = $this->env->getFunction($name)) {
+            $e = new Twig_Error_Syntax(sprintf('Unknown "%s" function.', $name), $line, $this->parser->getStream()->getSourceContext());
+            $e->addSuggestions($name, array_keys($this->env->getFunctions()));
 
             throw $e;
         }
@@ -585,7 +676,8 @@ class Twig_ExpressionParser
             if ($function->getAlternative()) {
                 $message .= sprintf('. Use "%s" instead', $function->getAlternative());
             }
-            $message .= sprintf(' in %s at line %d.', $this->parser->getFilename(), $line);
+            $src = $this->parser->getStream()->getSourceContext();
+            $message .= sprintf(' in %s at line %d.', $src->getPath() ? $src->getPath() : $src->getName(), $line);
 
             @trigger_error($message, E_USER_DEPRECATED);
         }
@@ -599,11 +691,9 @@ class Twig_ExpressionParser
 
     protected function getFilterNodeClass($name, $line)
     {
-        $env = $this->parser->getEnvironment();
-
-        if (false === $filter = $env->getFilter($name)) {
-            $e = new Twig_Error_Syntax(sprintf('Unknown "%s" filter.', $name), $line, $this->parser->getFilename());
-            $e->addSuggestions($name, array_keys($env->getFilters()));
+        if (false === $filter = $this->env->getFilter($name)) {
+            $e = new Twig_Error_Syntax(sprintf('Unknown "%s" filter.', $name), $line, $this->parser->getStream()->getSourceContext());
+            $e->addSuggestions($name, array_keys($this->env->getFilters()));
 
             throw $e;
         }
@@ -616,7 +706,8 @@ class Twig_ExpressionParser
             if ($filter->getAlternative()) {
                 $message .= sprintf('. Use "%s" instead', $filter->getAlternative());
             }
-            $message .= sprintf(' in %s at line %d.', $this->parser->getFilename(), $line);
+            $src = $this->parser->getStream()->getSourceContext();
+            $message .= sprintf(' in %s at line %d.', $src->getPath() ? $src->getPath() : $src->getName(), $line);
 
             @trigger_error($message, E_USER_DEPRECATED);
         }
--- a/vendor/twig/twig/lib/Twig/Extension.php
+++ b/vendor/twig/twig/lib/Twig/Extension.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -11,69 +11,55 @@
 abstract class Twig_Extension implements Twig_ExtensionInterface
 {
     /**
-     * {@inheritdoc}
-     *
      * @deprecated since 1.23 (to be removed in 2.0), implement Twig_Extension_InitRuntimeInterface instead
      */
     public function initRuntime(Twig_Environment $environment)
     {
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getTokenParsers()
     {
         return array();
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getNodeVisitors()
     {
         return array();
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getFilters()
     {
         return array();
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getTests()
     {
         return array();
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getFunctions()
     {
         return array();
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getOperators()
     {
         return array();
     }
 
     /**
-     * {@inheritdoc}
-     *
      * @deprecated since 1.23 (to be removed in 2.0), implement Twig_Extension_GlobalsInterface instead
      */
     public function getGlobals()
     {
         return array();
     }
+
+    /**
+     * @deprecated since 1.26 (to be removed in 2.0), not used anymore internally
+     */
+    public function getName()
+    {
+        return get_class($this);
+    }
 }
--- a/vendor/twig/twig/lib/Twig/Extension/Core.php
+++ b/vendor/twig/twig/lib/Twig/Extension/Core.php
@@ -8,11 +8,15 @@ if (!defined('ENT_SUBSTITUTE')) {
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
  */
+
+/**
+ * @final
+ */
 class Twig_Extension_Core extends Twig_Extension
 {
     protected $dateFormats = array('F j, Y H:i', '%d days');
@@ -95,9 +99,9 @@ class Twig_Extension_Core extends Twig_Extension
     /**
      * Sets the default format to be used by the number_format filter.
      *
-     * @param int    $decimal      The number of decimal places to use.
-     * @param string $decimalPoint The character(s) to use for the decimal point.
-     * @param string $thousandSep  The character(s) to use for the thousands separator.
+     * @param int    $decimal      the number of decimal places to use
+     * @param string $decimalPoint the character(s) to use for the decimal point
+     * @param string $thousandSep  the character(s) to use for the thousands separator
      */
     public function setNumberFormat($decimal, $decimalPoint, $thousandSep)
     {
@@ -132,6 +136,7 @@ class Twig_Extension_Core extends Twig_Extension
             new Twig_TokenParser_Flush(),
             new Twig_TokenParser_Do(),
             new Twig_TokenParser_Embed(),
+            new Twig_TokenParser_With(),
         );
     }
 
@@ -158,7 +163,7 @@ class Twig_Extension_Core extends Twig_Extension
             new Twig_SimpleFilter('upper', 'strtoupper'),
             new Twig_SimpleFilter('lower', 'strtolower'),
             new Twig_SimpleFilter('striptags', 'strip_tags'),
-            new Twig_SimpleFilter('trim', 'trim'),
+            new Twig_SimpleFilter('trim', 'twig_trim_filter'),
             new Twig_SimpleFilter('nl2br', 'nl2br', array('pre_escape' => 'html', 'is_safe' => array('html'))),
 
             // array helpers
@@ -258,82 +263,14 @@ class Twig_Extension_Core extends Twig_Extension
                 '/' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_Div', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
                 '//' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_FloorDiv', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
                 '%' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_Mod', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'is' => array('precedence' => 100, 'callable' => array($this, 'parseTestExpression'), 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'is not' => array('precedence' => 100, 'callable' => array($this, 'parseNotTestExpression'), 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+                'is' => array('precedence' => 100, 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+                'is not' => array('precedence' => 100, 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
                 '**' => array('precedence' => 200, 'class' => 'Twig_Node_Expression_Binary_Power', 'associativity' => Twig_ExpressionParser::OPERATOR_RIGHT),
                 '??' => array('precedence' => 300, 'class' => 'Twig_Node_Expression_NullCoalesce', 'associativity' => Twig_ExpressionParser::OPERATOR_RIGHT),
             ),
         );
     }
 
-    public function parseNotTestExpression(Twig_Parser $parser, Twig_NodeInterface $node)
-    {
-        return new Twig_Node_Expression_Unary_Not($this->parseTestExpression($parser, $node), $parser->getCurrentToken()->getLine());
-    }
-
-    public function parseTestExpression(Twig_Parser $parser, Twig_NodeInterface $node)
-    {
-        $stream = $parser->getStream();
-        list($name, $test) = $this->getTest($parser, $node->getLine());
-
-        if ($test instanceof Twig_SimpleTest && $test->isDeprecated()) {
-            $message = sprintf('Twig Test "%s" is deprecated', $name);
-            if (!is_bool($test->getDeprecatedVersion())) {
-                $message .= sprintf(' since version %s', $test->getDeprecatedVersion());
-            }
-            if ($test->getAlternative()) {
-                $message .= sprintf('. Use "%s" instead', $test->getAlternative());
-            }
-            $message .= sprintf(' in %s at line %d.', $stream->getFilename(), $stream->getCurrent()->getLine());
-
-            @trigger_error($message, E_USER_DEPRECATED);
-        }
-
-        $class = $this->getTestNodeClass($parser, $test);
-        $arguments = null;
-        if ($stream->test(Twig_Token::PUNCTUATION_TYPE, '(')) {
-            $arguments = $parser->getExpressionParser()->parseArguments(true);
-        }
-
-        return new $class($node, $name, $arguments, $parser->getCurrentToken()->getLine());
-    }
-
-    protected function getTest(Twig_Parser $parser, $line)
-    {
-        $stream = $parser->getStream();
-        $name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
-        $env = $parser->getEnvironment();
-
-        if ($test = $env->getTest($name)) {
-            return array($name, $test);
-        }
-
-        if ($stream->test(Twig_Token::NAME_TYPE)) {
-            // try 2-words tests
-            $name = $name.' '.$parser->getCurrentToken()->getValue();
-
-            if ($test = $env->getTest($name)) {
-                $parser->getStream()->next();
-
-                return array($name, $test);
-            }
-        }
-
-        $e = new Twig_Error_Syntax(sprintf('Unknown "%s" test.', $name), $line, $parser->getFilename());
-        $e->addSuggestions($name, array_keys($env->getTests()));
-
-        throw $e;
-    }
-
-    protected function getTestNodeClass(Twig_Parser $parser, $test)
-    {
-        if ($test instanceof Twig_SimpleTest) {
-            return $test->getNodeClass();
-        }
-
-        return $test instanceof Twig_Test_Node ? $test->getClass() : 'Twig_Node_Expression_Test';
-    }
-
     public function getName()
     {
         return 'core';
@@ -343,7 +280,7 @@ class Twig_Extension_Core extends Twig_Extension
 /**
  * Cycles over a value.
  *
- * @param ArrayAccess|array $values   An array or an ArrayAccess instance
+ * @param ArrayAccess|array $values
  * @param int               $position The cycle position
  *
  * @return string The next value in the cycle
@@ -363,10 +300,10 @@ function twig_cycle($values, $position)
  * - a random character from a string
  * - a random integer between 0 and the integer parameter.
  *
- * @param Twig_Environment             $env    A Twig_Environment instance
- * @param Traversable|array|int|string $values The values to pick a random item from
+ * @param Twig_Environment                   $env
+ * @param Traversable|array|int|float|string $values The values to pick a random item from
  *
- * @throws Twig_Error_Runtime When $values is an empty array (does not apply to an empty string which is returned as is).
+ * @throws Twig_Error_Runtime when $values is an empty array (does not apply to an empty string which is returned as is)
  *
  * @return mixed A random value from the given sequence
  */
@@ -423,7 +360,7 @@ function twig_random(Twig_Environment $env, $values = null)
  *   {{ post.published_at|date("m/d/Y") }}
  * </pre>
  *
- * @param Twig_Environment                               $env      A Twig_Environment instance
+ * @param Twig_Environment                               $env
  * @param DateTime|DateTimeInterface|DateInterval|string $date     A date
  * @param string|null                                    $format   The target format, null to use the default
  * @param DateTimeZone|string|null|false                 $timezone The target timezone, null to use the default, false to leave unchanged
@@ -433,7 +370,7 @@ function twig_random(Twig_Environment $env, $values = null)
 function twig_date_format_filter(Twig_Environment $env, $date, $format = null, $timezone = null)
 {
     if (null === $format) {
-        $formats = $env->getExtension('core')->getDateFormat();
+        $formats = $env->getExtension('Twig_Extension_Core')->getDateFormat();
         $format = $date instanceof DateInterval ? $formats[1] : $formats[0];
     }
 
@@ -451,7 +388,7 @@ function twig_date_format_filter(Twig_Environment $env, $date, $format = null, $
  *   {{ post.published_at|date_modify("-1day")|date("m/d/Y") }}
  * </pre>
  *
- * @param Twig_Environment $env      A Twig_Environment instance
+ * @param Twig_Environment $env
  * @param DateTime|string  $date     A date
  * @param string           $modifier A modifier string
  *
@@ -477,7 +414,7 @@ function twig_date_modify_filter(Twig_Environment $env, $date, $modifier)
  *    {% endif %}
  * </pre>
  *
- * @param Twig_Environment                       $env      A Twig_Environment instance
+ * @param Twig_Environment                       $env
  * @param DateTime|DateTimeInterface|string|null $date     A date
  * @param DateTimeZone|string|null|false         $timezone The target timezone, null to use the default, false to leave unchanged
  *
@@ -488,7 +425,7 @@ function twig_date_converter(Twig_Environment $env, $date = null, $timezone = nu
     // determine the timezone
     if (false !== $timezone) {
         if (null === $timezone) {
-            $timezone = $env->getExtension('core')->getTimezone();
+            $timezone = $env->getExtension('Twig_Extension_Core')->getTimezone();
         } elseif (!$timezone instanceof DateTimeZone) {
             $timezone = new DateTimeZone($timezone);
         }
@@ -509,14 +446,14 @@ function twig_date_converter(Twig_Environment $env, $date = null, $timezone = nu
     }
 
     if (null === $date || 'now' === $date) {
-        return new DateTime($date, false !== $timezone ? $timezone : $env->getExtension('core')->getTimezone());
+        return new DateTime($date, false !== $timezone ? $timezone : $env->getExtension('Twig_Extension_Core')->getTimezone());
     }
 
     $asString = (string) $date;
     if (ctype_digit($asString) || (!empty($asString) && '-' === $asString[0] && ctype_digit(substr($asString, 1)))) {
         $date = new DateTime('@'.$date);
     } else {
-        $date = new DateTime($date, $env->getExtension('core')->getTimezone());
+        $date = new DateTime($date, $env->getExtension('Twig_Extension_Core')->getTimezone());
     }
 
     if (false !== $timezone) {
@@ -544,7 +481,7 @@ function twig_replace_filter($str, $from, $to = null)
 
         return strtr($str, $from, $to);
     } elseif (!is_array($from)) {
-        throw new Twig_Error_Runtime(sprintf('The "replace" filter expects an array or "Traversable" as replace values, got "%s".',is_object($from) ? get_class($from) : gettype($from)));
+        throw new Twig_Error_Runtime(sprintf('The "replace" filter expects an array or "Traversable" as replace values, got "%s".', is_object($from) ? get_class($from) : gettype($from)));
     }
 
     return strtr($str, $from);
@@ -579,17 +516,17 @@ function twig_round($value, $precision = 0, $method = 'common')
  * be used.  Supplying any of the parameters will override the defaults set in the
  * environment object.
  *
- * @param Twig_Environment $env          A Twig_Environment instance
+ * @param Twig_Environment $env
  * @param mixed            $number       A float/int/string of the number to format
- * @param int              $decimal      The number of decimal points to display.
- * @param string           $decimalPoint The character(s) to use for the decimal point.
- * @param string           $thousandSep  The character(s) to use for the thousands separator.
+ * @param int              $decimal      the number of decimal points to display
+ * @param string           $decimalPoint the character(s) to use for the decimal point
+ * @param string           $thousandSep  the character(s) to use for the thousands separator
  *
  * @return string The formatted number
  */
 function twig_number_format_filter(Twig_Environment $env, $number, $decimal = null, $decimalPoint = null, $thousandSep = null)
 {
-    $defaults = $env->getExtension('core')->getNumberFormat();
+    $defaults = $env->getExtension('Twig_Extension_Core')->getNumberFormat();
     if (null === $decimal) {
         $decimal = $defaults[0];
     }
@@ -629,7 +566,7 @@ if (PHP_VERSION_ID < 50300) {
     /**
      * JSON encodes a variable.
      *
-     * @param mixed $value   The value to encode.
+     * @param mixed $value   the value to encode
      * @param int   $options Not used on PHP 5.2.x
      *
      * @return mixed The JSON encoded value
@@ -648,7 +585,7 @@ if (PHP_VERSION_ID < 50300) {
     /**
      * JSON encodes a variable.
      *
-     * @param mixed $value   The value to encode.
+     * @param mixed $value   the value to encode
      * @param int   $options Bitmask consisting of JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT
      *
      * @return mixed The JSON encoded value
@@ -708,7 +645,7 @@ function twig_array_merge($arr1, $arr2)
 /**
  * Slices a variable.
  *
- * @param Twig_Environment $env          A Twig_Environment instance
+ * @param Twig_Environment $env
  * @param mixed            $item         A variable
  * @param int              $start        Start of the slice
  * @param int              $length       Size of the slice
@@ -719,7 +656,7 @@ function twig_array_merge($arr1, $arr2)
 function twig_slice(Twig_Environment $env, $item, $start, $length = null, $preserveKeys = false)
 {
     if ($item instanceof Traversable) {
-        if ($item instanceof IteratorAggregate) {
+        while ($item instanceof IteratorAggregate) {
             $item = $item->getIterator();
         }
 
@@ -750,7 +687,7 @@ function twig_slice(Twig_Environment $env, $item, $start, $length = null, $prese
 /**
  * Returns the first element of the item.
  *
- * @param Twig_Environment $env  A Twig_Environment instance
+ * @param Twig_Environment $env
  * @param mixed            $item A variable
  *
  * @return mixed The first element of the item
@@ -765,7 +702,7 @@ function twig_first(Twig_Environment $env, $item)
 /**
  * Returns the last element of the item.
  *
- * @param Twig_Environment $env  A Twig_Environment instance
+ * @param Twig_Environment $env
  * @param mixed            $item A variable
  *
  * @return mixed The last element of the item
@@ -821,7 +758,7 @@ function twig_join_filter($value, $glue = '')
  *  {# returns [aa, bb, cc] #}
  * </pre>
  *
- * @param Twig_Environment $env       A Twig_Environment instance
+ * @param Twig_Environment $env
  * @param string           $value     A string
  * @param string           $delimiter The delimiter
  * @param int              $limit     The limit
@@ -888,7 +825,27 @@ function _twig_default_filter($value, $default = '')
 function twig_get_array_keys_filter($array)
 {
     if ($array instanceof Traversable) {
-        return array_keys(iterator_to_array($array));
+        while ($array instanceof IteratorAggregate) {
+            $array = $array->getIterator();
+        }
+
+        if ($array instanceof Iterator) {
+            $keys = array();
+            $array->rewind();
+            while ($array->valid()) {
+                $keys[] = $array->key();
+                $array->next();
+            }
+
+            return $keys;
+        }
+
+        $keys = array();
+        foreach ($array as $key => $item) {
+            $keys[] = $key;
+        }
+
+        return $keys;
     }
 
     if (!is_array($array)) {
@@ -901,7 +858,7 @@ function twig_get_array_keys_filter($array)
 /**
  * Reverses a variable.
  *
- * @param Twig_Environment         $env          A Twig_Environment instance
+ * @param Twig_Environment         $env
  * @param array|Traversable|string $item         An array, a Traversable instance, or a string
  * @param bool                     $preserveKeys Whether to preserve key or not
  *
@@ -968,17 +925,56 @@ function twig_in_filter($value, $compare)
     } elseif (is_string($compare) && (is_string($value) || is_int($value) || is_float($value))) {
         return '' === $value || false !== strpos($compare, (string) $value);
     } elseif ($compare instanceof Traversable) {
-        return in_array($value, iterator_to_array($compare, false), is_object($value) || is_resource($value));
+        if (is_object($value) || is_resource($value)) {
+            foreach ($compare as $item) {
+                if ($item === $value) {
+                    return true;
+                }
+            }
+        } else {
+            foreach ($compare as $item) {
+                if ($item == $value) {
+                    return true;
+                }
+            }
+        }
+
+        return false;
     }
 
     return false;
 }
 
 /**
+ * Returns a trimmed string.
+ *
+ * @return string
+ *
+ * @throws Twig_Error_Runtime When an invalid trimming side is used (not a string or not 'left', 'right', or 'both')
+ */
+function twig_trim_filter($string, $characterMask = null, $side = 'both')
+{
+    if (null === $characterMask) {
+        $characterMask = " \t\n\r\0\x0B";
+    }
+
+    switch ($side) {
+        case 'both':
+            return trim($string, $characterMask);
+        case 'left':
+            return ltrim($string, $characterMask);
+        case 'right':
+            return rtrim($string, $characterMask);
+        default:
+            throw new Twig_Error_Runtime('Trimming side must be "left", "right" or "both".');
+    }
+}
+
+/**
  * Escapes a string.
  *
- * @param Twig_Environment $env        A Twig_Environment instance
- * @param string           $string     The value to be escaped
+ * @param Twig_Environment $env
+ * @param mixed            $string     The value to be escaped
  * @param string           $strategy   The escaping strategy
  * @param string           $charset    The charset
  * @param bool             $autoescape Whether the function is called by the auto-escaping feature (true) or by the developer (false)
@@ -1058,7 +1054,7 @@ function twig_escape_filter(Twig_Environment $env, $string, $strategy = 'html',
                 $string = twig_convert_encoding($string, 'UTF-8', $charset);
             }
 
-            if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) {
+            if (0 == strlen($string) ? false : 1 !== preg_match('/^./su', $string)) {
                 throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.');
             }
 
@@ -1075,7 +1071,7 @@ function twig_escape_filter(Twig_Environment $env, $string, $strategy = 'html',
                 $string = twig_convert_encoding($string, 'UTF-8', $charset);
             }
 
-            if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) {
+            if (0 == strlen($string) ? false : 1 !== preg_match('/^./su', $string)) {
                 throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.');
             }
 
@@ -1092,7 +1088,7 @@ function twig_escape_filter(Twig_Environment $env, $string, $strategy = 'html',
                 $string = twig_convert_encoding($string, 'UTF-8', $charset);
             }
 
-            if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) {
+            if (0 == strlen($string) ? false : 1 !== preg_match('/^./su', $string)) {
                 throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.');
             }
 
@@ -1115,7 +1111,7 @@ function twig_escape_filter(Twig_Environment $env, $string, $strategy = 'html',
             static $escapers;
 
             if (null === $escapers) {
-                $escapers = $env->getExtension('core')->getEscapers();
+                $escapers = $env->getExtension('Twig_Extension_Core')->getEscapers();
             }
 
             if (isset($escapers[$strategy])) {
@@ -1172,8 +1168,13 @@ function _twig_escape_js_callback($matches)
 
     // \uHHHH
     $char = twig_convert_encoding($char, 'UTF-16BE', 'UTF-8');
+    $char = strtoupper(bin2hex($char));
+
+    if (4 >= strlen($char)) {
+        return sprintf('\u%04s', $char);
+    }
 
-    return '\\u'.strtoupper(substr('0000'.bin2hex($char), -4));
+    return sprintf('\u%04s\u%04s', substr($char, 0, -4), substr($char, -4));
 }
 
 function _twig_escape_css_callback($matches)
@@ -1256,20 +1257,28 @@ if (function_exists('mb_get_info')) {
     /**
      * Returns the length of a variable.
      *
-     * @param Twig_Environment $env   A Twig_Environment instance
+     * @param Twig_Environment $env
      * @param mixed            $thing A variable
      *
      * @return int The length of the value
      */
     function twig_length_filter(Twig_Environment $env, $thing)
     {
-        return is_scalar($thing) ? mb_strlen($thing, $env->getCharset()) : count($thing);
+        if (is_scalar($thing)) {
+            return mb_strlen($thing, $env->getCharset());
+        }
+
+        if (is_object($thing) && method_exists($thing, '__toString') && !$thing instanceof \Countable) {
+            return mb_strlen((string) $thing, $env->getCharset());
+        }
+
+        return count($thing);
     }
 
     /**
      * Converts a string to uppercase.
      *
-     * @param Twig_Environment $env    A Twig_Environment instance
+     * @param Twig_Environment $env
      * @param string           $string A string
      *
      * @return string The uppercased string
@@ -1286,7 +1295,7 @@ if (function_exists('mb_get_info')) {
     /**
      * Converts a string to lowercase.
      *
-     * @param Twig_Environment $env    A Twig_Environment instance
+     * @param Twig_Environment $env
      * @param string           $string A string
      *
      * @return string The lowercased string
@@ -1303,7 +1312,7 @@ if (function_exists('mb_get_info')) {
     /**
      * Returns a titlecased string.
      *
-     * @param Twig_Environment $env    A Twig_Environment instance
+     * @param Twig_Environment $env
      * @param string           $string A string
      *
      * @return string The titlecased string
@@ -1320,7 +1329,7 @@ if (function_exists('mb_get_info')) {
     /**
      * Returns a capitalized string.
      *
-     * @param Twig_Environment $env    A Twig_Environment instance
+     * @param Twig_Environment $env
      * @param string           $string A string
      *
      * @return string The capitalized string
@@ -1339,20 +1348,28 @@ else {
     /**
      * Returns the length of a variable.
      *
-     * @param Twig_Environment $env   A Twig_Environment instance
+     * @param Twig_Environment $env
      * @param mixed            $thing A variable
      *
      * @return int The length of the value
      */
     function twig_length_filter(Twig_Environment $env, $thing)
     {
-        return is_scalar($thing) ? strlen($thing) : count($thing);
+        if (is_scalar($thing)) {
+            return strlen($thing);
+        }
+
+        if (is_object($thing) && method_exists($thing, '__toString') && !$thing instanceof \Countable) {
+            return strlen((string) $thing);
+        }
+
+        return count($thing);
     }
 
     /**
      * Returns a titlecased string.
      *
-     * @param Twig_Environment $env    A Twig_Environment instance
+     * @param Twig_Environment $env
      * @param string           $string A string
      *
      * @return string The titlecased string
@@ -1365,7 +1382,7 @@ else {
     /**
      * Returns a capitalized string.
      *
-     * @param Twig_Environment $env    A Twig_Environment instance
+     * @param Twig_Environment $env
      * @param string           $string A string
      *
      * @return string The capitalized string
@@ -1408,6 +1425,10 @@ function twig_test_empty($value)
         return 0 == count($value);
     }
 
+    if (is_object($value) && method_exists($value, '__toString')) {
+        return '' === (string) $value;
+    }
+
     return '' === $value || false === $value || null === $value || array() === $value;
 }
 
@@ -1451,8 +1472,8 @@ function twig_include(Twig_Environment $env, $context, $template, $variables = a
         $variables = array_merge($context, $variables);
     }
 
-    if ($isSandboxed = $sandboxed && $env->hasExtension('sandbox')) {
-        $sandbox = $env->getExtension('sandbox');
+    if ($isSandboxed = $sandboxed && $env->hasExtension('Twig_Extension_Sandbox')) {
+        $sandbox = $env->getExtension('Twig_Extension_Sandbox');
         if (!$alreadySandboxed = $sandbox->isSandboxed()) {
             $sandbox->enableSandbox();
         }
@@ -1469,6 +1490,18 @@ function twig_include(Twig_Environment $env, $context, $template, $variables = a
 
             throw $e;
         }
+    } catch (Throwable $e) {
+        if ($isSandboxed && !$alreadySandboxed) {
+            $sandbox->disableSandbox();
+        }
+
+        throw $e;
+    } catch (Exception $e) {
+        if ($isSandboxed && !$alreadySandboxed) {
+            $sandbox->disableSandbox();
+        }
+
+        throw $e;
     }
 
     if ($isSandboxed && !$alreadySandboxed) {
@@ -1489,8 +1522,13 @@ function twig_include(Twig_Environment $env, $context, $template, $variables = a
  */
 function twig_source(Twig_Environment $env, $name, $ignoreMissing = false)
 {
+    $loader = $env->getLoader();
     try {
-        return $env->getLoader()->getSource($name);
+        if (!$loader instanceof Twig_SourceContextLoaderInterface) {
+            return $loader->getSource($name);
+        } else {
+            return $loader->getSourceContext($name)->getCode();
+        }
     } catch (Twig_Error_Loader $e) {
         if (!$ignoreMissing) {
             throw $e;
@@ -1516,6 +1554,23 @@ function twig_constant($constant, $object = null)
 }
 
 /**
+ * Checks if a constant exists.
+ *
+ * @param string      $constant The name of the constant
+ * @param null|object $object   The object to get the constant from
+ *
+ * @return bool
+ */
+function twig_constant_is_defined($constant, $object = null)
+{
+    if (null !== $object) {
+        $constant = get_class($object).'::'.$constant;
+    }
+
+    return defined($constant);
+}
+
+/**
  * Batches item.
  *
  * @param array $items An array of items
--- a/vendor/twig/twig/lib/Twig/Extension/Debug.php
+++ b/vendor/twig/twig/lib/Twig/Extension/Debug.php
@@ -3,11 +3,15 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
  */
+
+/**
+ * @final
+ */
 class Twig_Extension_Debug extends Twig_Extension
 {
     public function getFunctions()
--- a/vendor/twig/twig/lib/Twig/Extension/Escaper.php
+++ b/vendor/twig/twig/lib/Twig/Extension/Escaper.php
@@ -3,18 +3,20 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
  */
+
+/**
+ * @final
+ */
 class Twig_Extension_Escaper extends Twig_Extension
 {
     protected $defaultStrategy;
 
     /**
-     * Constructor.
-     *
      * @param string|false|callable $defaultStrategy An escaping strategy
      *
      * @see setDefaultStrategy()
@@ -45,7 +47,7 @@ class Twig_Extension_Escaper extends Twig_Extension
      * Sets the default strategy to use when not defined by the user.
      *
      * The strategy can be a valid PHP callback that takes the template
-     * "filename" as an argument and returns the strategy to use.
+     * name as an argument and returns the strategy to use.
      *
      * @param string|false|callable $defaultStrategy An escaping strategy
      */
@@ -59,6 +61,12 @@ class Twig_Extension_Escaper extends Twig_Extension
         }
 
         if ('filename' === $defaultStrategy) {
+            @trigger_error('Using "filename" as the default strategy is deprecated since version 1.27. Use "name" instead.', E_USER_DEPRECATED);
+
+            $defaultStrategy = 'name';
+        }
+
+        if ('name' === $defaultStrategy) {
             $defaultStrategy = array('Twig_FileExtensionEscapingStrategy', 'guess');
         }
 
@@ -68,16 +76,16 @@ class Twig_Extension_Escaper extends Twig_Extension
     /**
      * Gets the default strategy to use when not defined by the user.
      *
-     * @param string $filename The template "filename"
+     * @param string $name The template name
      *
      * @return string|false The default strategy to use for the template
      */
-    public function getDefaultStrategy($filename)
+    public function getDefaultStrategy($name)
     {
         // disable string callables to avoid calling a function named html or js,
         // or any other upcoming escaping strategy
         if (!is_string($this->defaultStrategy) && false !== $this->defaultStrategy) {
-            return call_user_func($this->defaultStrategy, $filename);
+            return call_user_func($this->defaultStrategy, $name);
         }
 
         return $this->defaultStrategy;
--- a/vendor/twig/twig/lib/Twig/Extension/Optimizer.php
+++ b/vendor/twig/twig/lib/Twig/Extension/Optimizer.php
@@ -3,11 +3,15 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
  */
+
+/**
+ * @final
+ */
 class Twig_Extension_Optimizer extends Twig_Extension
 {
     protected $optimizers;
--- a/vendor/twig/twig/lib/Twig/Extension/Profiler.php
+++ b/vendor/twig/twig/lib/Twig/Extension/Profiler.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -36,7 +36,7 @@ class Twig_Extension_Profiler extends Twig_Extension
 
     public function getNodeVisitors()
     {
-        return array(new Twig_Profiler_NodeVisitor_Profiler($this->getName()));
+        return array(new Twig_Profiler_NodeVisitor_Profiler(get_class($this)));
     }
 
     public function getName()
--- a/vendor/twig/twig/lib/Twig/Extension/Sandbox.php
+++ b/vendor/twig/twig/lib/Twig/Extension/Sandbox.php
@@ -3,11 +3,15 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
  */
+
+/**
+ * @final
+ */
 class Twig_Extension_Sandbox extends Twig_Extension
 {
     protected $sandboxedGlobally;
--- a/vendor/twig/twig/lib/Twig/Extension/Staging.php
+++ b/vendor/twig/twig/lib/Twig/Extension/Staging.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -29,6 +29,10 @@ class Twig_Extension_Staging extends Twig_Extension
 
     public function addFunction($name, $function)
     {
+        if (isset($this->functions[$name])) {
+            @trigger_error(sprintf('Overriding function "%s" that is already registered is deprecated since version 1.30 and won\'t be possible anymore in 2.0.', $name), E_USER_DEPRECATED);
+        }
+
         $this->functions[$name] = $function;
     }
 
@@ -39,6 +43,10 @@ class Twig_Extension_Staging extends Twig_Extension
 
     public function addFilter($name, $filter)
     {
+        if (isset($this->filters[$name])) {
+            @trigger_error(sprintf('Overriding filter "%s" that is already registered is deprecated since version 1.30 and won\'t be possible anymore in 2.0.', $name), E_USER_DEPRECATED);
+        }
+
         $this->filters[$name] = $filter;
     }
 
@@ -59,7 +67,11 @@ class Twig_Extension_Staging extends Twig_Extension
 
     public function addTokenParser(Twig_TokenParserInterface $parser)
     {
-        $this->tokenParsers[] = $parser;
+        if (isset($this->tokenParsers[$parser->getTag()])) {
+            @trigger_error(sprintf('Overriding tag "%s" that is already registered is deprecated since version 1.30 and won\'t be possible anymore in 2.0.', $parser->getTag()), E_USER_DEPRECATED);
+        }
+
+        $this->tokenParsers[$parser->getTag()] = $parser;
     }
 
     public function getTokenParsers()
@@ -79,6 +91,10 @@ class Twig_Extension_Staging extends Twig_Extension
 
     public function addTest($name, $test)
     {
+        if (isset($this->tests[$name])) {
+            @trigger_error(sprintf('Overriding test "%s" that is already registered is deprecated since version 1.30 and won\'t be possible anymore in 2.0.', $name), E_USER_DEPRECATED);
+        }
+
         $this->tests[$name] = $test;
     }
 
--- a/vendor/twig/twig/lib/Twig/Extension/StringLoader.php
+++ b/vendor/twig/twig/lib/Twig/Extension/StringLoader.php
@@ -3,11 +3,15 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
  */
+
+/**
+ * @final
+ */
 class Twig_Extension_StringLoader extends Twig_Extension
 {
     public function getFunctions()
@@ -33,7 +37,7 @@ class Twig_Extension_StringLoader extends Twig_Extension
  * @param Twig_Environment $env      A Twig_Environment instance
  * @param string           $template A template as a string or object implementing __toString()
  *
- * @return Twig_Template A Twig_Template instance
+ * @return Twig_Template
  */
 function twig_template_from_string(Twig_Environment $env, $template)
 {
--- a/vendor/twig/twig/lib/Twig/ExtensionInterface.php
+++ b/vendor/twig/twig/lib/Twig/ExtensionInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -21,8 +21,6 @@ interface Twig_ExtensionInterface
      *
      * This is where you can load some file that contains filter functions for instance.
      *
-     * @param Twig_Environment $environment The current Twig_Environment instance
-     *
      * @deprecated since 1.23 (to be removed in 2.0), implement Twig_Extension_InitRuntimeInterface instead
      */
     public function initRuntime(Twig_Environment $environment);
@@ -37,7 +35,7 @@ interface Twig_ExtensionInterface
     /**
      * Returns the node visitor instances to add to the existing list.
      *
-     * @return Twig_NodeVisitorInterface[] An array of Twig_NodeVisitorInterface instances
+     * @return Twig_NodeVisitorInterface[]
      */
     public function getNodeVisitors();
 
@@ -65,7 +63,7 @@ interface Twig_ExtensionInterface
     /**
      * Returns a list of operators to add to the existing list.
      *
-     * @return array An array of operators
+     * @return array<array> First array of unary operators, second array of binary operators
      */
     public function getOperators();
 
@@ -82,6 +80,8 @@ interface Twig_ExtensionInterface
      * Returns the name of the extension.
      *
      * @return string The extension name
+     *
+     * @deprecated since 1.26 (to be removed in 2.0), not used anymore internally
      */
     public function getName();
 }
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/FactoryRuntimeLoader.php
@@ -0,0 +1,37 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Lazy loads the runtime implementations for a Twig element.
+ *
+ * @author Robin Chalas <robin.chalas@gmail.com>
+ */
+class Twig_FactoryRuntimeLoader implements Twig_RuntimeLoaderInterface
+{
+    private $map;
+
+    /**
+     * @param array $map An array where keys are class names and values factory callables
+     */
+    public function __construct($map = array())
+    {
+        $this->map = $map;
+    }
+
+    public function load($class)
+    {
+        if (isset($this->map[$class])) {
+            $runtimeFactory = $this->map[$class];
+
+            return $runtimeFactory();
+        }
+    }
+}
--- a/vendor/twig/twig/lib/Twig/FileExtensionEscapingStrategy.php
+++ b/vendor/twig/twig/lib/Twig/FileExtensionEscapingStrategy.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,7 +13,7 @@
  * Default autoescaping strategy based on file names.
  *
  * This strategy sets the HTML as the default autoescaping strategy,
- * but changes it based on the filename.
+ * but changes it based on the template name.
  *
  * Note that there is no runtime performance impact as the
  * default autoescaping strategy is set at compilation time.
@@ -25,21 +25,21 @@ class Twig_FileExtensionEscapingStrategy
     /**
      * Guesses the best autoescaping strategy based on the file name.
      *
-     * @param string $filename The template file name
+     * @param string $name The template name
      *
      * @return string|false The escaping strategy name to use or false to disable
      */
-    public static function guess($filename)
+    public static function guess($name)
     {
-        if (in_array(substr($filename, -1), array('/', '\\'))) {
+        if (in_array(substr($name, -1), array('/', '\\'))) {
             return 'html'; // return html for directories
         }
 
-        if ('.twig' === substr($filename, -5)) {
-            $filename = substr($filename, 0, -5);
+        if ('.twig' === substr($name, -5)) {
+            $name = substr($name, 0, -5);
         }
 
-        $extension = pathinfo($filename, PATHINFO_EXTENSION);
+        $extension = pathinfo($name, PATHINFO_EXTENSION);
 
         switch ($extension) {
             case 'js':
--- a/vendor/twig/twig/lib/Twig/Filter.php
+++ b/vendor/twig/twig/lib/Twig/Filter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Filter/Function.php
+++ b/vendor/twig/twig/lib/Twig/Filter/Function.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Filter/Method.php
+++ b/vendor/twig/twig/lib/Twig/Filter/Method.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -37,6 +37,6 @@ class Twig_Filter_Method extends Twig_Filter
 
     public function compile()
     {
-        return sprintf('$this->env->getExtension(\'%s\')->%s', $this->extension->getName(), $this->method);
+        return sprintf('$this->env->getExtension(\'%s\')->%s', get_class($this->extension), $this->method);
     }
 }
--- a/vendor/twig/twig/lib/Twig/Filter/Node.php
+++ b/vendor/twig/twig/lib/Twig/Filter/Node.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/FilterCallableInterface.php
+++ b/vendor/twig/twig/lib/Twig/FilterCallableInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/FilterInterface.php
+++ b/vendor/twig/twig/lib/Twig/FilterInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Function.php
+++ b/vendor/twig/twig/lib/Twig/Function.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Function/Function.php
+++ b/vendor/twig/twig/lib/Twig/Function/Function.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2010 Arnaud Le Blanc
+ * (c) Fabien Potencier
+ * (c) Arnaud Le Blanc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Function/Method.php
+++ b/vendor/twig/twig/lib/Twig/Function/Method.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2010 Arnaud Le Blanc
+ * (c) Fabien Potencier
+ * (c) Arnaud Le Blanc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -38,6 +38,6 @@ class Twig_Function_Method extends Twig_Function
 
     public function compile()
     {
-        return sprintf('$this->env->getExtension(\'%s\')->%s', $this->extension->getName(), $this->method);
+        return sprintf('$this->env->getExtension(\'%s\')->%s', get_class($this->extension), $this->method);
     }
 }
--- a/vendor/twig/twig/lib/Twig/Function/Node.php
+++ b/vendor/twig/twig/lib/Twig/Function/Node.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/FunctionCallableInterface.php
+++ b/vendor/twig/twig/lib/Twig/FunctionCallableInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/FunctionInterface.php
+++ b/vendor/twig/twig/lib/Twig/FunctionInterface.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
- * (c) 2010 Arnaud Le Blanc
+ * (c) Fabien Potencier
+ * (c) Arnaud Le Blanc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Lexer.php
+++ b/vendor/twig/twig/lib/Twig/Lexer.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -26,6 +26,7 @@ class Twig_Lexer implements Twig_LexerInterface
     protected $states;
     protected $brackets;
     protected $env;
+    // to be renamed to $name in 2.0 (where it is private)
     protected $filename;
     protected $options;
     protected $regexes;
@@ -33,6 +34,8 @@ class Twig_Lexer implements Twig_LexerInterface
     protected $positions;
     protected $currentVarBlockLine;
 
+    private $source;
+
     const STATE_DATA = 0;
     const STATE_BLOCK = 1;
     const STATE_VAR = 2;
@@ -72,11 +75,19 @@ class Twig_Lexer implements Twig_LexerInterface
         );
     }
 
-    /**
-     * {@inheritdoc}
-     */
-    public function tokenize($code, $filename = null)
+    public function tokenize($code, $name = null)
     {
+        if (!$code instanceof Twig_Source) {
+            @trigger_error(sprintf('Passing a string as the $code argument of %s() is deprecated since version 1.27 and will be removed in 2.0. Pass a Twig_Source instance instead.', __METHOD__), E_USER_DEPRECATED);
+            $this->source = new Twig_Source($code, $name);
+        } else {
+            $this->source = $code;
+        }
+
+        if (((int) ini_get('mbstring.func_overload')) & 2) {
+            @trigger_error('Support for having "mbstring.func_overload" different from 0 is deprecated version 1.29 and will be removed in 2.0.', E_USER_DEPRECATED);
+        }
+
         if (function_exists('mb_internal_encoding') && ((int) ini_get('mbstring.func_overload')) & 2) {
             $mbEncoding = mb_internal_encoding();
             mb_internal_encoding('ASCII');
@@ -84,8 +95,8 @@ class Twig_Lexer implements Twig_LexerInterface
             $mbEncoding = null;
         }
 
-        $this->code = str_replace(array("\r\n", "\r"), "\n", $code);
-        $this->filename = $filename;
+        $this->code = str_replace(array("\r\n", "\r"), "\n", $this->source->getCode());
+        $this->filename = $this->source->getName();
         $this->cursor = 0;
         $this->lineno = 1;
         $this->end = strlen($this->code);
@@ -129,14 +140,14 @@ class Twig_Lexer implements Twig_LexerInterface
 
         if (!empty($this->brackets)) {
             list($expect, $lineno) = array_pop($this->brackets);
-            throw new Twig_Error_Syntax(sprintf('Unclosed "%s".', $expect), $lineno, $this->filename);
+            throw new Twig_Error_Syntax(sprintf('Unclosed "%s".', $expect), $lineno, $this->source);
         }
 
         if ($mbEncoding) {
             mb_internal_encoding($mbEncoding);
         }
 
-        return new Twig_TokenStream($this->tokens, $this->filename);
+        return new Twig_TokenStream($this->tokens, $this->source);
     }
 
     protected function lexData()
@@ -224,7 +235,7 @@ class Twig_Lexer implements Twig_LexerInterface
             $this->moveCursor($match[0]);
 
             if ($this->cursor >= $this->end) {
-                throw new Twig_Error_Syntax(sprintf('Unclosed "%s".', $this->state === self::STATE_BLOCK ? 'block' : 'variable'), $this->currentVarBlockLine, $this->filename);
+                throw new Twig_Error_Syntax(sprintf('Unclosed "%s".', $this->state === self::STATE_BLOCK ? 'block' : 'variable'), $this->currentVarBlockLine, $this->source);
             }
         }
 
@@ -256,12 +267,12 @@ class Twig_Lexer implements Twig_LexerInterface
             // closing bracket
             elseif (false !== strpos(')]}', $this->code[$this->cursor])) {
                 if (empty($this->brackets)) {
-                    throw new Twig_Error_Syntax(sprintf('Unexpected "%s".', $this->code[$this->cursor]), $this->lineno, $this->filename);
+                    throw new Twig_Error_Syntax(sprintf('Unexpected "%s".', $this->code[$this->cursor]), $this->lineno, $this->source);
                 }
 
                 list($expect, $lineno) = array_pop($this->brackets);
                 if ($this->code[$this->cursor] != strtr($expect, '([{', ')]}')) {
-                    throw new Twig_Error_Syntax(sprintf('Unclosed "%s".', $expect), $lineno, $this->filename);
+                    throw new Twig_Error_Syntax(sprintf('Unclosed "%s".', $expect), $lineno, $this->source);
                 }
             }
 
@@ -281,7 +292,7 @@ class Twig_Lexer implements Twig_LexerInterface
         }
         // unlexable
         else {
-            throw new Twig_Error_Syntax(sprintf('Unexpected character "%s".', $this->code[$this->cursor]), $this->lineno, $this->filename);
+            throw new Twig_Error_Syntax(sprintf('Unexpected character "%s".', $this->code[$this->cursor]), $this->lineno, $this->source);
         }
     }
 
@@ -292,7 +303,7 @@ class Twig_Lexer implements Twig_LexerInterface
         }
 
         if (!preg_match(str_replace('%s', $tag, $this->regexes['lex_raw_data']), $this->code, $match, PREG_OFFSET_CAPTURE, $this->cursor)) {
-            throw new Twig_Error_Syntax(sprintf('Unexpected end of file: Unclosed "%s" block.', $tag), $this->lineno, $this->filename);
+            throw new Twig_Error_Syntax(sprintf('Unexpected end of file: Unclosed "%s" block.', $tag), $this->lineno, $this->source);
         }
 
         $text = substr($this->code, $this->cursor, $match[0][1] - $this->cursor);
@@ -308,7 +319,7 @@ class Twig_Lexer implements Twig_LexerInterface
     protected function lexComment()
     {
         if (!preg_match($this->regexes['lex_comment'], $this->code, $match, PREG_OFFSET_CAPTURE, $this->cursor)) {
-            throw new Twig_Error_Syntax('Unclosed comment.', $this->lineno, $this->filename);
+            throw new Twig_Error_Syntax('Unclosed comment.', $this->lineno, $this->source);
         }
 
         $this->moveCursor(substr($this->code, $this->cursor, $match[0][1] - $this->cursor).$match[0][0]);
@@ -327,7 +338,7 @@ class Twig_Lexer implements Twig_LexerInterface
         } elseif (preg_match(self::REGEX_DQ_STRING_DELIM, $this->code, $match, null, $this->cursor)) {
             list($expect, $lineno) = array_pop($this->brackets);
             if ($this->code[$this->cursor] != '"') {
-                throw new Twig_Error_Syntax(sprintf('Unclosed "%s".', $expect), $lineno, $this->filename);
+                throw new Twig_Error_Syntax(sprintf('Unclosed "%s".', $expect), $lineno, $this->source);
             }
 
             $this->popState();
@@ -403,7 +414,7 @@ class Twig_Lexer implements Twig_LexerInterface
     protected function popState()
     {
         if (0 === count($this->states)) {
-            throw new Exception('Cannot pop state without a previous state');
+            throw new Exception('Cannot pop state without a previous state.');
         }
 
         $this->state = array_pop($this->states);
--- a/vendor/twig/twig/lib/Twig/LexerInterface.php
+++ b/vendor/twig/twig/lib/Twig/LexerInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -21,12 +21,12 @@ interface Twig_LexerInterface
     /**
      * Tokenizes a source code.
      *
-     * @param string $code     The source code
-     * @param string $filename A unique identifier for the source code
+     * @param string|Twig_Source $code The source code
+     * @param string             $name A unique identifier for the source code
      *
-     * @return Twig_TokenStream A token stream instance
+     * @return Twig_TokenStream
      *
      * @throws Twig_Error_Syntax When the code is syntactically wrong
      */
-    public function tokenize($code, $filename = null);
+    public function tokenize($code, $name = null);
 }
--- a/vendor/twig/twig/lib/Twig/Loader/Array.php
+++ b/vendor/twig/twig/lib/Twig/Loader/Array.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -19,18 +19,18 @@
  *
  * This loader should only be used for unit testing.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class Twig_Loader_Array implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
+class Twig_Loader_Array implements Twig_LoaderInterface, Twig_ExistsLoaderInterface, Twig_SourceContextLoaderInterface
 {
     protected $templates = array();
 
     /**
-     * Constructor.
-     *
      * @param array $templates An array of templates (keys are the names, and values are the source code)
      */
-    public function __construct(array $templates)
+    public function __construct(array $templates = array())
     {
         $this->templates = $templates;
     }
@@ -46,11 +46,10 @@ class Twig_Loader_Array implements Twig_LoaderInterface, Twig_ExistsLoaderInterf
         $this->templates[(string) $name] = $template;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getSource($name)
     {
+        @trigger_error(sprintf('Calling "getSource" on "%s" is deprecated since 1.27. Use getSourceContext() instead.', get_class($this)), E_USER_DEPRECATED);
+
         $name = (string) $name;
         if (!isset($this->templates[$name])) {
             throw new Twig_Error_Loader(sprintf('Template "%s" is not defined.', $name));
@@ -59,17 +58,21 @@ class Twig_Loader_Array implements Twig_LoaderInterface, Twig_ExistsLoaderInterf
         return $this->templates[$name];
     }
 
-    /**
-     * {@inheritdoc}
-     */
+    public function getSourceContext($name)
+    {
+        $name = (string) $name;
+        if (!isset($this->templates[$name])) {
+            throw new Twig_Error_Loader(sprintf('Template "%s" is not defined.', $name));
+        }
+
+        return new Twig_Source($this->templates[$name], $name);
+    }
+
     public function exists($name)
     {
         return isset($this->templates[(string) $name]);
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getCacheKey($name)
     {
         $name = (string) $name;
@@ -77,12 +80,9 @@ class Twig_Loader_Array implements Twig_LoaderInterface, Twig_ExistsLoaderInterf
             throw new Twig_Error_Loader(sprintf('Template "%s" is not defined.', $name));
         }
 
-        return $this->templates[$name];
+        return $name.':'.$this->templates[$name];
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function isFresh($name, $time)
     {
         $name = (string) $name;
--- a/vendor/twig/twig/lib/Twig/Loader/Chain.php
+++ b/vendor/twig/twig/lib/Twig/Loader/Chain.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,17 +12,17 @@
 /**
  * Loads templates from other loaders.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
+class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterface, Twig_SourceContextLoaderInterface
 {
     private $hasSourceCache = array();
     protected $loaders = array();
 
     /**
-     * Constructor.
-     *
-     * @param Twig_LoaderInterface[] $loaders An array of loader instances
+     * @param Twig_LoaderInterface[] $loaders
      */
     public function __construct(array $loaders = array())
     {
@@ -31,22 +31,16 @@ class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterf
         }
     }
 
-    /**
-     * Adds a loader instance.
-     *
-     * @param Twig_LoaderInterface $loader A Loader instance
-     */
     public function addLoader(Twig_LoaderInterface $loader)
     {
         $this->loaders[] = $loader;
         $this->hasSourceCache = array();
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getSource($name)
     {
+        @trigger_error(sprintf('Calling "getSource" on "%s" is deprecated since 1.27. Use getSourceContext() instead.', get_class($this)), E_USER_DEPRECATED);
+
         $exceptions = array();
         foreach ($this->loaders as $loader) {
             if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
@@ -63,9 +57,28 @@ class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterf
         throw new Twig_Error_Loader(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : ''));
     }
 
-    /**
-     * {@inheritdoc}
-     */
+    public function getSourceContext($name)
+    {
+        $exceptions = array();
+        foreach ($this->loaders as $loader) {
+            if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
+                continue;
+            }
+
+            try {
+                if ($loader instanceof Twig_SourceContextLoaderInterface) {
+                    return $loader->getSourceContext($name);
+                }
+
+                return new Twig_Source($loader->getSource($name), $name);
+            } catch (Twig_Error_Loader $e) {
+                $exceptions[] = $e->getMessage();
+            }
+        }
+
+        throw new Twig_Error_Loader(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : ''));
+    }
+
     public function exists($name)
     {
         $name = (string) $name;
@@ -84,7 +97,11 @@ class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterf
             }
 
             try {
-                $loader->getSource($name);
+                if ($loader instanceof Twig_SourceContextLoaderInterface) {
+                    $loader->getSourceContext($name);
+                } else {
+                    $loader->getSource($name);
+                }
 
                 return $this->hasSourceCache[$name] = true;
             } catch (Twig_Error_Loader $e) {
@@ -94,9 +111,6 @@ class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterf
         return $this->hasSourceCache[$name] = false;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getCacheKey($name)
     {
         $exceptions = array();
@@ -115,9 +129,6 @@ class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterf
         throw new Twig_Error_Loader(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : ''));
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function isFresh($name, $time)
     {
         $exceptions = array();
--- a/vendor/twig/twig/lib/Twig/Loader/Filesystem.php
+++ b/vendor/twig/twig/lib/Twig/Loader/Filesystem.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -14,7 +14,7 @@
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
+class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderInterface, Twig_SourceContextLoaderInterface
 {
     /** Identifier of the main namespace. */
     const MAIN_NAMESPACE = '__main__';
@@ -23,13 +23,19 @@ class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderI
     protected $cache = array();
     protected $errorCache = array();
 
+    private $rootPath;
+
     /**
-     * Constructor.
-     *
-     * @param string|array $paths A path or an array of paths where to look for templates
+     * @param string|array $paths    A path or an array of paths where to look for templates
+     * @param string|null  $rootPath The root path common to all relative paths (null for getcwd())
      */
-    public function __construct($paths = array())
+    public function __construct($paths = array(), $rootPath = null)
     {
+        $this->rootPath = (null === $rootPath ? getcwd() : $rootPath).DIRECTORY_SEPARATOR;
+        if (false !== $realPath = realpath($rootPath)) {
+            $this->rootPath = $realPath.DIRECTORY_SEPARATOR;
+        }
+
         if ($paths) {
             $this->setPaths($paths);
         }
@@ -81,7 +87,7 @@ class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderI
      * Adds a path where templates are stored.
      *
      * @param string $path      A path where to look for templates
-     * @param string $namespace A path name
+     * @param string $namespace A path namespace
      *
      * @throws Twig_Error_Loader
      */
@@ -90,8 +96,9 @@ class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderI
         // invalidate the cache
         $this->cache = $this->errorCache = array();
 
-        if (!is_dir($path)) {
-            throw new Twig_Error_Loader(sprintf('The "%s" directory does not exist.', $path));
+        $checkPath = $this->isAbsolutePath($path) ? $path : $this->rootPath.$path;
+        if (!is_dir($checkPath)) {
+            throw new Twig_Error_Loader(sprintf('The "%s" directory does not exist ("%s").', $path, $checkPath));
         }
 
         $this->paths[$namespace][] = rtrim($path, '/\\');
@@ -101,7 +108,7 @@ class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderI
      * Prepends a path where templates are stored.
      *
      * @param string $path      A path where to look for templates
-     * @param string $namespace A path name
+     * @param string $namespace A path namespace
      *
      * @throws Twig_Error_Loader
      */
@@ -110,8 +117,9 @@ class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderI
         // invalidate the cache
         $this->cache = $this->errorCache = array();
 
-        if (!is_dir($path)) {
-            throw new Twig_Error_Loader(sprintf('The "%s" directory does not exist.', $path));
+        $checkPath = $this->isAbsolutePath($path) ? $path : $this->rootPath.$path;
+        if (!is_dir($checkPath)) {
+            throw new Twig_Error_Loader(sprintf('The "%s" directory does not exist ("%s").', $path, $checkPath));
         }
 
         $path = rtrim($path, '/\\');
@@ -123,25 +131,31 @@ class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderI
         }
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getSource($name)
     {
+        @trigger_error(sprintf('Calling "getSource" on "%s" is deprecated since 1.27. Use getSourceContext() instead.', get_class($this)), E_USER_DEPRECATED);
+
         return file_get_contents($this->findTemplate($name));
     }
 
-    /**
-     * {@inheritdoc}
-     */
+    public function getSourceContext($name)
+    {
+        $path = $this->findTemplate($name);
+
+        return new Twig_Source(file_get_contents($path), $name, $path);
+    }
+
     public function getCacheKey($name)
     {
-        return $this->findTemplate($name);
+        $path = $this->findTemplate($name);
+        $len = strlen($this->rootPath);
+        if (0 === strncmp($this->rootPath, $path, $len)) {
+            return substr($path, $len);
+        }
+
+        return $path;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function exists($name)
     {
         $name = $this->normalizeName($name);
@@ -153,13 +167,12 @@ class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderI
         try {
             return false !== $this->findTemplate($name, false);
         } catch (Twig_Error_Loader $exception) {
+            @trigger_error(sprintf('In %s::findTemplate(), you must accept a second argument that when set to "false" returns "false" instead of throwing an exception. Not supporting this argument is deprecated since version 1.27.', get_class($this)), E_USER_DEPRECATED);
+
             return false;
         }
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function isFresh($name, $time)
     {
         return filemtime($this->findTemplate($name)) <= $time;
@@ -197,6 +210,10 @@ class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderI
         }
 
         foreach ($this->paths[$namespace] as $path) {
+            if (!$this->isAbsolutePath($path)) {
+                $path = $this->rootPath.'/'.$path;
+            }
+
             if (is_file($path.'/'.$shortname)) {
                 if (false !== $realpath = realpath($path.'/'.$shortname)) {
                     return $this->cache[$name] = $realpath;
@@ -257,4 +274,15 @@ class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderI
             }
         }
     }
+
+    private function isAbsolutePath($file)
+    {
+        return strspn($file, '/\\', 0, 1)
+            || (strlen($file) > 3 && ctype_alpha($file[0])
+                && substr($file, 1, 1) === ':'
+                && strspn($file, '/\\', 2, 1)
+            )
+            || null !== parse_url($file, PHP_URL_SCHEME)
+        ;
+    }
 }
--- a/vendor/twig/twig/lib/Twig/Loader/String.php
+++ b/vendor/twig/twig/lib/Twig/Loader/String.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -27,35 +27,30 @@
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class Twig_Loader_String implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
+class Twig_Loader_String implements Twig_LoaderInterface, Twig_ExistsLoaderInterface, Twig_SourceContextLoaderInterface
 {
-    /**
-     * {@inheritdoc}
-     */
     public function getSource($name)
     {
+        @trigger_error(sprintf('Calling "getSource" on "%s" is deprecated since 1.27. Use getSourceContext() instead.', get_class($this)), E_USER_DEPRECATED);
+
         return $name;
     }
 
-    /**
-     * {@inheritdoc}
-     */
+    public function getSourceContext($name)
+    {
+        return new Twig_Source($name, $name);
+    }
+
     public function exists($name)
     {
         return true;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getCacheKey($name)
     {
         return $name;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function isFresh($name, $time)
     {
         return true;
--- a/vendor/twig/twig/lib/Twig/LoaderInterface.php
+++ b/vendor/twig/twig/lib/Twig/LoaderInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -24,6 +24,8 @@ interface Twig_LoaderInterface
      * @return string The template source code
      *
      * @throws Twig_Error_Loader When $name is not found
+     *
+     * @deprecated since 1.27 (to be removed in 2.0), implement Twig_SourceContextLoaderInterface
      */
     public function getSource($name);
 
--- a/vendor/twig/twig/lib/Twig/Markup.php
+++ b/vendor/twig/twig/lib/Twig/Markup.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node.php
+++ b/vendor/twig/twig/lib/Twig/Node.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -22,6 +22,8 @@ class Twig_Node implements Twig_NodeInterface
     protected $lineno;
     protected $tag;
 
+    private $name;
+
     /**
      * Constructor.
      *
@@ -35,6 +37,11 @@ class Twig_Node implements Twig_NodeInterface
      */
     public function __construct(array $nodes = array(), array $attributes = array(), $lineno = 0, $tag = null)
     {
+        foreach ($nodes as $name => $node) {
+            if (!$node instanceof Twig_NodeInterface) {
+                @trigger_error(sprintf('Using "%s" for the value of node "%s" of "%s" is deprecated since version 1.25 and will be removed in 2.0.', is_object($node) ? get_class($node) : null === $node ? 'null' : gettype($node), $name, get_class($this)), E_USER_DEPRECATED);
+            }
+        }
         $this->nodes = $nodes;
         $this->attributes = $attributes;
         $this->lineno = $lineno;
@@ -111,8 +118,18 @@ class Twig_Node implements Twig_NodeInterface
         }
     }
 
+    public function getTemplateLine()
+    {
+        return $this->lineno;
+    }
+
+    /**
+     * @deprecated since 1.27 (to be removed in 2.0)
+     */
     public function getLine()
     {
+        @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0. Use getTemplateLine() instead.', E_USER_DEPRECATED);
+
         return $this->lineno;
     }
 
@@ -122,11 +139,7 @@ class Twig_Node implements Twig_NodeInterface
     }
 
     /**
-     * Returns true if the attribute is defined.
-     *
-     * @param string $name The attribute name
-     *
-     * @return bool true if the attribute is defined, false otherwise
+     * @return bool
      */
     public function hasAttribute($name)
     {
@@ -134,10 +147,6 @@ class Twig_Node implements Twig_NodeInterface
     }
 
     /**
-     * Gets an attribute value by name.
-     *
-     * @param string $name
-     *
      * @return mixed
      */
     public function getAttribute($name)
@@ -150,8 +159,6 @@ class Twig_Node implements Twig_NodeInterface
     }
 
     /**
-     * Sets an attribute by name to a value.
-     *
      * @param string $name
      * @param mixed  $value
      */
@@ -160,21 +167,12 @@ class Twig_Node implements Twig_NodeInterface
         $this->attributes[$name] = $value;
     }
 
-    /**
-     * Removes an attribute by name.
-     *
-     * @param string $name
-     */
     public function removeAttribute($name)
     {
         unset($this->attributes[$name]);
     }
 
     /**
-     * Returns true if the node with the given name exists.
-     *
-     * @param string $name
-     *
      * @return bool
      */
     public function hasNode($name)
@@ -183,10 +181,6 @@ class Twig_Node implements Twig_NodeInterface
     }
 
     /**
-     * Gets a node by name.
-     *
-     * @param string $name
-     *
      * @return Twig_Node
      */
     public function getNode($name)
@@ -198,22 +192,15 @@ class Twig_Node implements Twig_NodeInterface
         return $this->nodes[$name];
     }
 
-    /**
-     * Sets a node.
-     *
-     * @param string    $name
-     * @param Twig_Node $node
-     */
     public function setNode($name, $node = null)
     {
+        if (!$node instanceof Twig_NodeInterface) {
+            @trigger_error(sprintf('Using "%s" for the value of node "%s" of "%s" is deprecated since version 1.25 and will be removed in 2.0.', is_object($node) ? get_class($node) : null === $node ? 'null' : gettype($node), $name, get_class($this)), E_USER_DEPRECATED);
+        }
+
         $this->nodes[$name] = $node;
     }
 
-    /**
-     * Removes a node by name.
-     *
-     * @param string $name
-     */
     public function removeNode($name)
     {
         unset($this->nodes[$name]);
@@ -228,4 +215,39 @@ class Twig_Node implements Twig_NodeInterface
     {
         return new ArrayIterator($this->nodes);
     }
+
+    public function setTemplateName($name)
+    {
+        $this->name = $name;
+        foreach ($this->nodes as $node) {
+            if (null !== $node) {
+                $node->setTemplateName($name);
+            }
+        }
+    }
+
+    public function getTemplateName()
+    {
+        return $this->name;
+    }
+
+    /**
+     * @deprecated since 1.27 (to be removed in 2.0)
+     */
+    public function setFilename($name)
+    {
+        @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0. Use setTemplateName() instead.', E_USER_DEPRECATED);
+
+        $this->setTemplateName($name);
+    }
+
+    /**
+     * @deprecated since 1.27 (to be removed in 2.0)
+     */
+    public function getFilename()
+    {
+        @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0. Use getTemplateName() instead.', E_USER_DEPRECATED);
+
+        return $this->name;
+    }
 }
--- a/vendor/twig/twig/lib/Twig/Node/AutoEscape.php
+++ b/vendor/twig/twig/lib/Twig/Node/AutoEscape.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Block.php
+++ b/vendor/twig/twig/lib/Twig/Node/Block.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/BlockReference.php
+++ b/vendor/twig/twig/lib/Twig/Node/BlockReference.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Body.php
+++ b/vendor/twig/twig/lib/Twig/Node/Body.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/CheckSecurity.php
+++ b/vendor/twig/twig/lib/Twig/Node/CheckSecurity.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -33,7 +33,7 @@ class Twig_Node_CheckSecurity extends Twig_Node
         foreach (array('tags', 'filters', 'functions') as $type) {
             foreach ($this->{'used'.ucfirst($type)} as $name => $node) {
                 if ($node instanceof Twig_Node) {
-                    ${$type}[$name] = $node->getLine();
+                    ${$type}[$name] = $node->getTemplateLine();
                 } else {
                     ${$type}[$node] = null;
                 }
@@ -46,7 +46,7 @@ class Twig_Node_CheckSecurity extends Twig_Node
             ->write('$functions = ')->repr(array_filter($functions))->raw(";\n\n")
             ->write("try {\n")
             ->indent()
-            ->write("\$this->env->getExtension('sandbox')->checkSecurity(\n")
+            ->write("\$this->env->getExtension('Twig_Extension_Sandbox')->checkSecurity(\n")
             ->indent()
             ->write(!$tags ? "array(),\n" : "array('".implode("', '", array_keys($tags))."'),\n")
             ->write(!$filters ? "array(),\n" : "array('".implode("', '", array_keys($filters))."'),\n")
@@ -56,7 +56,7 @@ class Twig_Node_CheckSecurity extends Twig_Node
             ->outdent()
             ->write("} catch (Twig_Sandbox_SecurityError \$e) {\n")
             ->indent()
-            ->write("\$e->setTemplateFile(\$this->getTemplateName());\n\n")
+            ->write("\$e->setSourceContext(\$this->getSourceContext());\n\n")
             ->write("if (\$e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset(\$tags[\$e->getTagName()])) {\n")
             ->indent()
             ->write("\$e->setTemplateLine(\$tags[\$e->getTagName()]);\n")
--- a/vendor/twig/twig/lib/Twig/Node/Do.php
+++ b/vendor/twig/twig/lib/Twig/Node/Do.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Embed.php
+++ b/vendor/twig/twig/lib/Twig/Node/Embed.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -17,11 +17,13 @@
 class Twig_Node_Embed extends Twig_Node_Include
 {
     // we don't inject the module to avoid node visitors to traverse it twice (as it will be already visited in the main module)
-    public function __construct($filename, $index, Twig_Node_Expression $variables = null, $only = false, $ignoreMissing = false, $lineno, $tag = null)
+    public function __construct($name, $index, Twig_Node_Expression $variables = null, $only = false, $ignoreMissing = false, $lineno, $tag = null)
     {
         parent::__construct(new Twig_Node_Expression_Constant('not_used', $lineno), $variables, $only, $ignoreMissing, $lineno, $tag);
 
-        $this->setAttribute('filename', $filename);
+        $this->setAttribute('name', $name);
+        // to be removed in 2.0, used name instead
+        $this->setAttribute('filename', $name);
         $this->setAttribute('index', $index);
     }
 
@@ -29,11 +31,11 @@ class Twig_Node_Embed extends Twig_Node_Include
     {
         $compiler
             ->write('$this->loadTemplate(')
-            ->string($this->getAttribute('filename'))
+            ->string($this->getAttribute('name'))
             ->raw(', ')
-            ->repr($compiler->getFilename())
+            ->repr($this->getTemplateName())
             ->raw(', ')
-            ->repr($this->getLine())
+            ->repr($this->getTemplateLine())
             ->raw(', ')
             ->string($this->getAttribute('index'))
             ->raw(')')
--- a/vendor/twig/twig/lib/Twig/Node/Expression.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Array.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Array.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -43,7 +43,7 @@ class Twig_Node_Expression_Array extends Twig_Node_Expression
         foreach ($this->getKeyValuePairs() as $pair) {
             // we compare the string representation of the keys
             // to avoid comparing the line numbers which are not relevant here.
-            if ((string) $key == (string) $pair['key']) {
+            if ((string) $key === (string) $pair['key']) {
                 return true;
             }
         }
@@ -54,7 +54,7 @@ class Twig_Node_Expression_Array extends Twig_Node_Expression
     public function addElement(Twig_Node_Expression $value, Twig_Node_Expression $key = null)
     {
         if (null === $key) {
-            $key = new Twig_Node_Expression_Constant(++$this->index, $value->getLine());
+            $key = new Twig_Node_Expression_Constant(++$this->index, $value->getTemplateLine());
         }
 
         array_push($this->nodes, $key, $value);
--- a/vendor/twig/twig/lib/Twig/Node/Expression/AssignName.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/AssignName.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Add.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Add.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/And.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/And.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseAnd.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseAnd.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseOr.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseOr.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseXor.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseXor.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Concat.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Concat.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Div.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Div.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2013 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Equal.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Equal.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/FloorDiv.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/FloorDiv.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Greater.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Greater.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/GreaterEqual.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/GreaterEqual.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/In.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/In.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Less.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Less.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/LessEqual.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/LessEqual.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Matches.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Matches.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2013 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mod.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mod.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mul.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mul.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotEqual.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotEqual.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotIn.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotIn.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Or.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Or.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Power.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Power.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,6 +12,10 @@ class Twig_Node_Expression_Binary_Power extends Twig_Node_Expression_Binary
 {
     public function compile(Twig_Compiler $compiler)
     {
+        if (PHP_VERSION_ID >= 50600) {
+            return parent::compile($compiler);
+        }
+
         $compiler
             ->raw('pow(')
             ->subcompile($this->getNode('left'))
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Range.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Range.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2013 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Sub.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Sub.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -17,30 +17,75 @@
  */
 class Twig_Node_Expression_BlockReference extends Twig_Node_Expression
 {
-    public function __construct(Twig_NodeInterface $name, $asString = false, $lineno, $tag = null)
+    /**
+     * @param Twig_Node|null $template
+     */
+    public function __construct(Twig_NodeInterface $name, $template = null, $lineno, $tag = null)
     {
-        parent::__construct(array('name' => $name), array('as_string' => $asString, 'output' => false), $lineno, $tag);
+        if (is_bool($template)) {
+            @trigger_error(sprintf('The %s method "$asString" argument is deprecated since version 1.28 and will be removed in 2.0.', __METHOD__), E_USER_DEPRECATED);
+
+            $template = null;
+        }
+
+        $nodes = array('name' => $name);
+        if (null !== $template) {
+            $nodes['template'] = $template;
+        }
+
+        parent::__construct($nodes, array('is_defined_test' => false, 'output' => false), $lineno, $tag);
     }
 
     public function compile(Twig_Compiler $compiler)
     {
-        if ($this->getAttribute('as_string')) {
-            $compiler->raw('(string) ');
+        if ($this->getAttribute('is_defined_test')) {
+            $this->compileTemplateCall($compiler, 'hasBlock');
+        } else {
+            if ($this->getAttribute('output')) {
+                $compiler->addDebugInfo($this);
+
+                $this
+                    ->compileTemplateCall($compiler, 'displayBlock')
+                    ->raw(";\n");
+            } else {
+                $this->compileTemplateCall($compiler, 'renderBlock');
+            }
         }
+    }
 
-        if ($this->getAttribute('output')) {
-            $compiler
-                ->addDebugInfo($this)
-                ->write('$this->displayBlock(')
-                ->subcompile($this->getNode('name'))
-                ->raw(", \$context, \$blocks);\n")
-            ;
+    private function compileTemplateCall(Twig_Compiler $compiler, $method)
+    {
+        if (!$this->hasNode('template')) {
+            $compiler->write('$this');
         } else {
             $compiler
-                ->raw('$this->renderBlock(')
-                ->subcompile($this->getNode('name'))
-                ->raw(', $context, $blocks)')
+                ->write('$this->loadTemplate(')
+                ->subcompile($this->getNode('template'))
+                ->raw(', ')
+                ->repr($this->getTemplateName())
+                ->raw(', ')
+                ->repr($this->getTemplateLine())
+                ->raw(')')
             ;
         }
+
+        $compiler->raw(sprintf('->%s', $method));
+        $this->compileBlockArguments($compiler);
+
+        return $compiler;
+    }
+
+    private function compileBlockArguments(Twig_Compiler $compiler)
+    {
+        $compiler
+            ->raw('(')
+            ->subcompile($this->getNode('name'))
+            ->raw(', $context');
+
+        if (!$this->hasNode('template')) {
+            $compiler->raw(', $blocks');
+        }
+
+        return $compiler->raw(')');
     }
 }
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Call.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Call.php
@@ -3,25 +3,36 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
  */
 abstract class Twig_Node_Expression_Call extends Twig_Node_Expression
 {
+    private $reflector;
+
     protected function compileCallable(Twig_Compiler $compiler)
     {
         $closingParenthesis = false;
         if ($this->hasAttribute('callable') && $callable = $this->getAttribute('callable')) {
-            if (is_string($callable)) {
+            if (is_string($callable) && false === strpos($callable, '::')) {
                 $compiler->raw($callable);
-            } elseif (is_array($callable) && $callable[0] instanceof Twig_ExtensionInterface) {
-                $compiler->raw(sprintf('$this->env->getExtension(\'%s\')->%s', $callable[0]->getName(), $callable[1]));
             } else {
-                $type = ucfirst($this->getAttribute('type'));
-                $compiler->raw(sprintf('call_user_func_array($this->env->get%s(\'%s\')->getCallable(), array', $type, $this->getAttribute('name')));
-                $closingParenthesis = true;
+                list($r, $callable) = $this->reflectCallable($callable);
+                if ($r instanceof ReflectionMethod && is_string($callable[0])) {
+                    if ($r->isStatic()) {
+                        $compiler->raw(sprintf('%s::%s', $callable[0], $callable[1]));
+                    } else {
+                        $compiler->raw(sprintf('$this->env->getRuntime(\'%s\')->%s', $callable[0], $callable[1]));
+                    }
+                } elseif ($r instanceof ReflectionMethod && $callable[0] instanceof Twig_ExtensionInterface) {
+                    $compiler->raw(sprintf('$this->env->getExtension(\'%s\')->%s', get_class($callable[0]), $callable[1]));
+                } else {
+                    $type = ucfirst($this->getAttribute('type'));
+                    $compiler->raw(sprintf('call_user_func_array($this->env->get%s(\'%s\')->getCallable(), array', $type, $this->getAttribute('name')));
+                    $closingParenthesis = true;
+                }
             }
         } else {
             $compiler->raw($this->getAttribute('thing')->compile());
@@ -71,7 +82,7 @@ abstract class Twig_Node_Expression_Call extends Twig_Node_Expression
             $first = false;
         }
 
-        if ($this->hasNode('arguments') && null !== $this->getNode('arguments')) {
+        if ($this->hasNode('arguments')) {
             $callable = $this->hasAttribute('callable') ? $this->getAttribute('callable') : null;
 
             $arguments = $this->getArguments($callable, $this->getNode('arguments'));
@@ -121,7 +132,6 @@ abstract class Twig_Node_Expression_Call extends Twig_Node_Expression
             throw new LogicException($message);
         }
 
-        // manage named arguments
         $callableParameters = $this->getCallableParameters($callable, $isVariadic);
         $arguments = array();
         $names = array();
@@ -136,7 +146,7 @@ abstract class Twig_Node_Expression_Call extends Twig_Node_Expression
                     throw new Twig_Error_Syntax(sprintf('Argument "%s" is defined twice for %s "%s".', $name, $callType, $callName));
                 }
 
-                if (!empty($missingArguments)) {
+                if (count($missingArguments)) {
                     throw new Twig_Error_Syntax(sprintf(
                         'Argument "%s" could not be assigned for %s "%s(%s)" because it is mapped to an internal PHP function which cannot determine default value for optional argument%s "%s".',
                         $name, $callType, $callName, implode(', ', $names), count($missingArguments) > 1 ? 's' : '', implode('", "', $missingArguments))
@@ -195,7 +205,7 @@ abstract class Twig_Node_Expression_Call extends Twig_Node_Expression
             throw new Twig_Error_Syntax(sprintf(
                 'Unknown argument%s "%s" for %s "%s(%s)".',
                 count($parameters) > 1 ? 's' : '', implode('", "', array_keys($parameters)), $callType, $callName, implode(', ', $names)
-            ), $unknownParameter ? $unknownParameter->getLine() : -1);
+            ), $unknownParameter ? $unknownParameter->getTemplateLine() : -1);
         }
 
         return $arguments;
@@ -208,15 +218,9 @@ abstract class Twig_Node_Expression_Call extends Twig_Node_Expression
 
     private function getCallableParameters($callable, $isVariadic)
     {
-        if (is_array($callable)) {
-            $r = new ReflectionMethod($callable[0], $callable[1]);
-        } elseif (is_object($callable) && !$callable instanceof Closure) {
-            $r = new ReflectionObject($callable);
-            $r = $r->getMethod('__invoke');
-        } elseif (is_string($callable) && false !== strpos($callable, '::')) {
-            $r = new ReflectionMethod($callable);
-        } else {
-            $r = new ReflectionFunction($callable);
+        list($r) = $this->reflectCallable($callable);
+        if (null === $r) {
+            return array();
         }
 
         $parameters = $r->getParameters();
@@ -250,4 +254,36 @@ abstract class Twig_Node_Expression_Call extends Twig_Node_Expression
 
         return $parameters;
     }
+
+    private function reflectCallable($callable)
+    {
+        if (null !== $this->reflector) {
+            return $this->reflector;
+        }
+
+        if (is_array($callable)) {
+            if (!method_exists($callable[0], $callable[1])) {
+                // __call()
+                return array(null, array());
+            }
+            $r = new ReflectionMethod($callable[0], $callable[1]);
+        } elseif (is_object($callable) && !$callable instanceof Closure) {
+            $r = new ReflectionObject($callable);
+            $r = $r->getMethod('__invoke');
+            $callable = array($callable, '__invoke');
+        } elseif (is_string($callable) && false !== $pos = strpos($callable, '::')) {
+            $class = substr($callable, 0, $pos);
+            $method = substr($callable, $pos + 2);
+            if (!method_exists($class, $method)) {
+                // __staticCall()
+                return array(null, array());
+            }
+            $r = new ReflectionMethod($callable);
+            $callable = array($class, $method);
+        } else {
+            $r = new ReflectionFunction($callable);
+        }
+
+        return $this->reflector = array($r, $callable);
+    }
 }
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Conditional.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Conditional.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/ExtensionReference.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/ExtensionReference.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Filter.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Filter.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -22,13 +22,13 @@ class Twig_Node_Expression_Filter_Default extends Twig_Node_Expression_Filter
 {
     public function __construct(Twig_NodeInterface $node, Twig_Node_Expression_Constant $filterName, Twig_NodeInterface $arguments, $lineno, $tag = null)
     {
-        $default = new Twig_Node_Expression_Filter($node, new Twig_Node_Expression_Constant('default', $node->getLine()), $arguments, $node->getLine());
+        $default = new Twig_Node_Expression_Filter($node, new Twig_Node_Expression_Constant('default', $node->getTemplateLine()), $arguments, $node->getTemplateLine());
 
         if ('default' === $filterName->getAttribute('value') && ($node instanceof Twig_Node_Expression_Name || $node instanceof Twig_Node_Expression_GetAttr)) {
-            $test = new Twig_Node_Expression_Test_Defined(clone $node, 'defined', new Twig_Node(), $node->getLine());
-            $false = count($arguments) ? $arguments->getNode(0) : new Twig_Node_Expression_Constant('', $node->getLine());
+            $test = new Twig_Node_Expression_Test_Defined(clone $node, 'defined', new Twig_Node(), $node->getTemplateLine());
+            $false = count($arguments) ? $arguments->getNode(0) : new Twig_Node_Expression_Constant('', $node->getTemplateLine());
 
-            $node = new Twig_Node_Expression_Conditional($test, $default, $false, $node->getLine());
+            $node = new Twig_Node_Expression_Conditional($test, $default, $false, $node->getTemplateLine());
         } else {
             $node = $default;
         }
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Function.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Function.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,7 +12,7 @@ class Twig_Node_Expression_Function extends Twig_Node_Expression_Call
 {
     public function __construct($name, Twig_NodeInterface $arguments, $lineno)
     {
-        parent::__construct(array('arguments' => $arguments), array('name' => $name), $lineno);
+        parent::__construct(array('arguments' => $arguments), array('name' => $name, 'is_defined_test' => false), $lineno);
     }
 
     public function compile(Twig_Compiler $compiler)
@@ -27,7 +27,12 @@ class Twig_Node_Expression_Function extends Twig_Node_Expression_Call
         $this->setAttribute('needs_context', $function->needsContext());
         $this->setAttribute('arguments', $function->getArguments());
         if ($function instanceof Twig_FunctionCallableInterface || $function instanceof Twig_SimpleFunction) {
-            $this->setAttribute('callable', $function->getCallable());
+            $callable = $function->getCallable();
+            if ('constant' === $name && $this->getAttribute('is_defined_test')) {
+                $callable = 'twig_constant_is_defined';
+            }
+
+            $this->setAttribute('callable', $callable);
         }
         if ($function instanceof Twig_SimpleFunction) {
             $this->setAttribute('is_variadic', $function->isVariadic());
--- a/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,11 +13,20 @@ class Twig_Node_Expression_GetAttr extends Twig_Node_Expression
 {
     public function __construct(Twig_Node_Expression $node, Twig_Node_Expression $attribute, Twig_Node_Expression $arguments = null, $type, $lineno)
     {
-        parent::__construct(array('node' => $node, 'attribute' => $attribute, 'arguments' => $arguments), array('type' => $type, 'is_defined_test' => false, 'ignore_strict_check' => false, 'disable_c_ext' => false), $lineno);
+        $nodes = array('node' => $node, 'attribute' => $attribute);
+        if (null !== $arguments) {
+            $nodes['arguments'] = $arguments;
+        }
+
+        parent::__construct($nodes, array('type' => $type, 'is_defined_test' => false, 'ignore_strict_check' => false, 'disable_c_ext' => false), $lineno);
     }
 
     public function compile(Twig_Compiler $compiler)
     {
+        if ($this->getAttribute('disable_c_ext')) {
+            @trigger_error(sprintf('Using the "disable_c_ext" attribute on %s is deprecated since version 1.30 and will be removed in 2.0.', __CLASS__), E_USER_DEPRECATED);
+        }
+
         if (function_exists('twig_template_get_attributes') && !$this->getAttribute('disable_c_ext')) {
             $compiler->raw('twig_template_get_attributes($this, ');
         } else {
@@ -36,10 +45,10 @@ class Twig_Node_Expression_GetAttr extends Twig_Node_Expression
         $needFourth = $this->getAttribute('ignore_strict_check');
         $needThird = $needFourth || $this->getAttribute('is_defined_test');
         $needSecond = $needThird || Twig_Template::ANY_CALL !== $this->getAttribute('type');
-        $needFirst = $needSecond || null !== $this->getNode('arguments');
+        $needFirst = $needSecond || $this->hasNode('arguments');
 
         if ($needFirst) {
-            if (null !== $this->getNode('arguments')) {
+            if ($this->hasNode('arguments')) {
                 $compiler->raw(', ')->subcompile($this->getNode('arguments'));
             } else {
                 $compiler->raw(', array()');
--- a/vendor/twig/twig/lib/Twig/Node/Expression/MethodCall.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/MethodCall.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Name.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Name.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -43,10 +43,20 @@ class Twig_Node_Expression_Name extends Twig_Node_Expression
                 ->raw(']')
             ;
         } else {
-            // remove the non-PHP 5.4 version when PHP 5.3 support is dropped
-            // as the non-optimized version is just a workaround for slow ternary operator
-            // when the context has a lot of variables
-            if (PHP_VERSION_ID >= 50400) {
+            if (PHP_VERSION_ID >= 70000) {
+                // use PHP 7 null coalescing operator
+                $compiler
+                    ->raw('($context[')
+                    ->string($name)
+                    ->raw('] ?? ')
+                ;
+
+                if ($this->getAttribute('ignore_strict_check') || !$compiler->getEnvironment()->isStrictVariables()) {
+                    $compiler->raw('null)');
+                } else {
+                    $compiler->raw('$this->getContext($context, ')->string($name)->raw('))');
+                }
+            } elseif (PHP_VERSION_ID >= 50400) {
                 // PHP 5.4 ternary operator performance was optimized
                 $compiler
                     ->raw('(isset($context[')
--- a/vendor/twig/twig/lib/Twig/Node/Expression/NullCoalesce.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/NullCoalesce.php
@@ -13,11 +13,34 @@ class Twig_Node_Expression_NullCoalesce extends Twig_Node_Expression_Conditional
     public function __construct(Twig_NodeInterface $left, Twig_NodeInterface $right, $lineno)
     {
         $test = new Twig_Node_Expression_Binary_And(
-            new Twig_Node_Expression_Test_Defined(clone $left, 'defined', new Twig_Node(), $left->getLine()),
-            new Twig_Node_Expression_Unary_Not(new Twig_Node_Expression_Test_Null($left, 'null', new Twig_Node(), $left->getLine()), $left->getLine()),
-            $left->getLine()
+            new Twig_Node_Expression_Test_Defined(clone $left, 'defined', new Twig_Node(), $left->getTemplateLine()),
+            new Twig_Node_Expression_Unary_Not(new Twig_Node_Expression_Test_Null($left, 'null', new Twig_Node(), $left->getTemplateLine()), $left->getTemplateLine()),
+            $left->getTemplateLine()
         );
 
         parent::__construct($test, $left, $right, $lineno);
     }
+
+    public function compile(Twig_Compiler $compiler)
+    {
+        /*
+         * This optimizes only one case. PHP 7 also supports more complex expressions
+         * that can return null. So, for instance, if log is defined, log("foo") ?? "..." works,
+         * but log($a["foo"]) ?? "..." does not if $a["foo"] is not defined. More advanced
+         * cases might be implemented as an optimizer node visitor, but has not been done
+         * as benefits are probably not worth the added complexity.
+         */
+        if (PHP_VERSION_ID >= 70000 && $this->getNode('expr2') instanceof Twig_Node_Expression_Name) {
+            $this->getNode('expr2')->setAttribute('always_defined', true);
+            $compiler
+                ->raw('((')
+                ->subcompile($this->getNode('expr2'))
+                ->raw(') ?? (')
+                ->subcompile($this->getNode('expr3'))
+                ->raw('))')
+            ;
+        } else {
+            parent::compile($compiler);
+        }
+    }
 }
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/TempName.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/TempName.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Test.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Test.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,7 +12,12 @@ class Twig_Node_Expression_Test extends Twig_Node_Expression_Call
 {
     public function __construct(Twig_NodeInterface $node, $name, Twig_NodeInterface $arguments = null, $lineno)
     {
-        parent::__construct(array('node' => $node, 'arguments' => $arguments), array('name' => $name), $lineno);
+        $nodes = array('node' => $node);
+        if (null !== $arguments) {
+            $nodes['arguments'] = $arguments;
+        }
+
+        parent::__construct($nodes, array('name' => $name), $lineno);
     }
 
     public function compile(Twig_Compiler $compiler)
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -29,12 +29,15 @@ class Twig_Node_Expression_Test_Defined extends Twig_Node_Expression_Test
             $node->setAttribute('is_defined_test', true);
         } elseif ($node instanceof Twig_Node_Expression_GetAttr) {
             $node->setAttribute('is_defined_test', true);
-
             $this->changeIgnoreStrictCheck($node);
+        } elseif ($node instanceof Twig_Node_Expression_BlockReference) {
+            $node->setAttribute('is_defined_test', true);
+        } elseif ($node instanceof Twig_Node_Expression_Function && 'constant' === $node->getAttribute('name')) {
+            $node->setAttribute('is_defined_test', true);
         } elseif ($node instanceof Twig_Node_Expression_Constant || $node instanceof Twig_Node_Expression_Array) {
-            $node = new Twig_Node_Expression_Constant(true, $node->getLine());
+            $node = new Twig_Node_Expression_Constant(true, $node->getTemplateLine());
         } else {
-            throw new Twig_Error_Syntax('The "defined" test only works with simple variables.', $this->getLine());
+            throw new Twig_Error_Syntax('The "defined" test only works with simple variables.', $this->getTemplateLine());
         }
 
         parent::__construct($node, $name, $arguments, $lineno);
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Unary.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Unary.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Neg.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Neg.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Not.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Not.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Pos.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Pos.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Flush.php
+++ b/vendor/twig/twig/lib/Twig/Node/Flush.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/For.php
+++ b/vendor/twig/twig/lib/Twig/Node/For.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -27,7 +27,12 @@ class Twig_Node_For extends Twig_Node
             $body = new Twig_Node_If(new Twig_Node(array($ifexpr, $body)), null, $lineno, $tag);
         }
 
-        parent::__construct(array('key_target' => $keyTarget, 'value_target' => $valueTarget, 'seq' => $seq, 'body' => $body, 'else' => $else), array('with_loop' => true, 'ifexpr' => null !== $ifexpr), $lineno, $tag);
+        $nodes = array('key_target' => $keyTarget, 'value_target' => $valueTarget, 'seq' => $seq, 'body' => $body);
+        if (null !== $else) {
+            $nodes['else'] = $else;
+        }
+
+        parent::__construct($nodes, array('with_loop' => true, 'ifexpr' => null !== $ifexpr), $lineno, $tag);
     }
 
     public function compile(Twig_Compiler $compiler)
@@ -40,7 +45,7 @@ class Twig_Node_For extends Twig_Node
             ->raw(");\n")
         ;
 
-        if (null !== $this->getNode('else')) {
+        if ($this->hasNode('else')) {
             $compiler->write("\$context['_iterated'] = false;\n");
         }
 
@@ -69,7 +74,7 @@ class Twig_Node_For extends Twig_Node
             }
         }
 
-        $this->loop->setAttribute('else', null !== $this->getNode('else'));
+        $this->loop->setAttribute('else', $this->hasNode('else'));
         $this->loop->setAttribute('with_loop', $this->getAttribute('with_loop'));
         $this->loop->setAttribute('ifexpr', $this->getAttribute('ifexpr'));
 
@@ -85,7 +90,7 @@ class Twig_Node_For extends Twig_Node
             ->write("}\n")
         ;
 
-        if (null !== $this->getNode('else')) {
+        if ($this->hasNode('else')) {
             $compiler
                 ->write("if (!\$context['_iterated']) {\n")
                 ->indent()
--- a/vendor/twig/twig/lib/Twig/Node/ForLoop.php
+++ b/vendor/twig/twig/lib/Twig/Node/ForLoop.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/If.php
+++ b/vendor/twig/twig/lib/Twig/Node/If.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -19,7 +19,12 @@ class Twig_Node_If extends Twig_Node
 {
     public function __construct(Twig_NodeInterface $tests, Twig_NodeInterface $else = null, $lineno, $tag = null)
     {
-        parent::__construct(array('tests' => $tests, 'else' => $else), array(), $lineno, $tag);
+        $nodes = array('tests' => $tests);
+        if (null !== $else) {
+            $nodes['else'] = $else;
+        }
+
+        parent::__construct($nodes, array(), $lineno, $tag);
     }
 
     public function compile(Twig_Compiler $compiler)
@@ -45,7 +50,7 @@ class Twig_Node_If extends Twig_Node
             ;
         }
 
-        if ($this->hasNode('else') && null !== $this->getNode('else')) {
+        if ($this->hasNode('else')) {
             $compiler
                 ->outdent()
                 ->write("} else {\n")
--- a/vendor/twig/twig/lib/Twig/Node/Import.php
+++ b/vendor/twig/twig/lib/Twig/Node/Import.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -37,9 +37,9 @@ class Twig_Node_Import extends Twig_Node
                 ->raw('$this->loadTemplate(')
                 ->subcompile($this->getNode('expr'))
                 ->raw(', ')
-                ->repr($compiler->getFilename())
+                ->repr($this->getTemplateName())
                 ->raw(', ')
-                ->repr($this->getLine())
+                ->repr($this->getTemplateLine())
                 ->raw(')')
             ;
         }
--- a/vendor/twig/twig/lib/Twig/Node/Include.php
+++ b/vendor/twig/twig/lib/Twig/Node/Include.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -19,7 +19,12 @@ class Twig_Node_Include extends Twig_Node implements Twig_NodeOutputInterface
 {
     public function __construct(Twig_Node_Expression $expr, Twig_Node_Expression $variables = null, $only = false, $ignoreMissing = false, $lineno, $tag = null)
     {
-        parent::__construct(array('expr' => $expr, 'variables' => $variables), array('only' => (bool) $only, 'ignore_missing' => (bool) $ignoreMissing), $lineno, $tag);
+        $nodes = array('expr' => $expr);
+        if (null !== $variables) {
+            $nodes['variables'] = $variables;
+        }
+
+        parent::__construct($nodes, array('only' => (bool) $only, 'ignore_missing' => (bool) $ignoreMissing), $lineno, $tag);
     }
 
     public function compile(Twig_Compiler $compiler)
@@ -59,16 +64,16 @@ class Twig_Node_Include extends Twig_Node implements Twig_NodeOutputInterface
              ->write('$this->loadTemplate(')
              ->subcompile($this->getNode('expr'))
              ->raw(', ')
-             ->repr($compiler->getFilename())
+             ->repr($this->getTemplateName())
              ->raw(', ')
-             ->repr($this->getLine())
+             ->repr($this->getTemplateLine())
              ->raw(')')
          ;
     }
 
     protected function addTemplateArguments(Twig_Compiler $compiler)
     {
-        if (null === $this->getNode('variables')) {
+        if (!$this->hasNode('variables')) {
             $compiler->raw(false === $this->getAttribute('only') ? '$context' : 'array()');
         } elseif (false === $this->getAttribute('only')) {
             $compiler
--- a/vendor/twig/twig/lib/Twig/Node/Macro.php
+++ b/vendor/twig/twig/lib/Twig/Node/Macro.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -22,7 +22,7 @@ class Twig_Node_Macro extends Twig_Node
     {
         foreach ($arguments as $argumentName => $argument) {
             if (self::VARARGS_NAME === $argumentName) {
-                throw new Twig_Error_Syntax(sprintf('The argument "%s" in macro "%s" cannot be defined because the variable "%s" is reserved for arbitrary arguments.', self::VARARGS_NAME, $name, self::VARARGS_NAME), $argument->getLine());
+                throw new Twig_Error_Syntax(sprintf('The argument "%s" in macro "%s" cannot be defined because the variable "%s" is reserved for arbitrary arguments.', self::VARARGS_NAME, $name, self::VARARGS_NAME), $argument->getTemplateLine());
             }
         }
 
@@ -70,7 +70,7 @@ class Twig_Node_Macro extends Twig_Node
 
         foreach ($this->getNode('arguments') as $name => $default) {
             $compiler
-                ->addIndentation()
+                ->write('')
                 ->string($name)
                 ->raw(' => $__'.$name.'__')
                 ->raw(",\n")
@@ -78,7 +78,7 @@ class Twig_Node_Macro extends Twig_Node
         }
 
         $compiler
-            ->addIndentation()
+            ->write('')
             ->string(self::VARARGS_NAME)
             ->raw(' => ')
         ;
--- a/vendor/twig/twig/lib/Twig/Node/Module.php
+++ b/vendor/twig/twig/lib/Twig/Node/Module.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -21,11 +21,18 @@
  */
 class Twig_Node_Module extends Twig_Node
 {
-    public function __construct(Twig_NodeInterface $body, Twig_Node_Expression $parent = null, Twig_NodeInterface $blocks, Twig_NodeInterface $macros, Twig_NodeInterface $traits, $embeddedTemplates, $filename)
+    private $source;
+
+    public function __construct(Twig_NodeInterface $body, Twig_Node_Expression $parent = null, Twig_NodeInterface $blocks, Twig_NodeInterface $macros, Twig_NodeInterface $traits, $embeddedTemplates, $name, $source = '')
     {
-        // embedded templates are set as attributes so that they are only visited once by the visitors
-        parent::__construct(array(
-            'parent' => $parent,
+        if (!$name instanceof Twig_Source) {
+            @trigger_error(sprintf('Passing a string as the $name argument of %s() is deprecated since version 1.27. Pass a Twig_Source instance instead.', __METHOD__), E_USER_DEPRECATED);
+            $this->source = new Twig_Source($source, $name);
+        } else {
+            $this->source = $name;
+        }
+
+        $nodes = array(
             'body' => $body,
             'blocks' => $blocks,
             'macros' => $macros,
@@ -35,11 +42,23 @@ class Twig_Node_Module extends Twig_Node
             'constructor_start' => new Twig_Node(),
             'constructor_end' => new Twig_Node(),
             'class_end' => new Twig_Node(),
-        ), array(
-            'filename' => $filename,
+        );
+        if (null !== $parent) {
+            $nodes['parent'] = $parent;
+        }
+
+        // embedded templates are set as attributes so that they are only visited once by the visitors
+        parent::__construct($nodes, array(
+            // source to be remove in 2.0
+            'source' => $this->source->getCode(),
+            // filename to be remove in 2.0 (use getTemplateName() instead)
+            'filename' => $this->source->getName(),
             'index' => null,
             'embedded_templates' => $embeddedTemplates,
         ), 1);
+
+        // populate the template name of all node children
+        $this->setTemplateName($this->source->getName());
     }
 
     public function setIndex($index)
@@ -67,7 +86,7 @@ class Twig_Node_Module extends Twig_Node
         if (
             count($this->getNode('blocks'))
             || count($this->getNode('traits'))
-            || null === $this->getNode('parent')
+            || !$this->hasNode('parent')
             || $this->getNode('parent') instanceof Twig_Node_Expression_Constant
             || count($this->getNode('constructor_start'))
             || count($this->getNode('constructor_end'))
@@ -89,14 +108,19 @@ class Twig_Node_Module extends Twig_Node
 
         $this->compileDebugInfo($compiler);
 
+        $this->compileGetSource($compiler);
+
+        $this->compileGetSourceContext($compiler);
+
         $this->compileClassFooter($compiler);
     }
 
     protected function compileGetParent(Twig_Compiler $compiler)
     {
-        if (null === $parent = $this->getNode('parent')) {
+        if (!$this->hasNode('parent')) {
             return;
         }
+        $parent = $this->getNode('parent');
 
         $compiler
             ->write("protected function doGetParent(array \$context)\n", "{\n")
@@ -112,9 +136,9 @@ class Twig_Node_Module extends Twig_Node
                 ->raw('$this->loadTemplate(')
                 ->subcompile($parent)
                 ->raw(', ')
-                ->repr($compiler->getFilename())
+                ->repr($this->source->getName())
                 ->raw(', ')
-                ->repr($this->getNode('parent')->getLine())
+                ->repr($parent->getTemplateLine())
                 ->raw(')')
             ;
         }
@@ -130,9 +154,9 @@ class Twig_Node_Module extends Twig_Node
     {
         $compiler
             ->write("\n\n")
-            // if the filename contains */, add a blank to avoid a PHP parse error
-            ->write('/* '.str_replace('*/', '* /', $this->getAttribute('filename'))." */\n")
-            ->write('class '.$compiler->getEnvironment()->getTemplateClass($this->getAttribute('filename'), $this->getAttribute('index')))
+            // if the template name contains */, add a blank to avoid a PHP parse error
+            ->write('/* '.str_replace('*/', '* /', $this->source->getName())." */\n")
+            ->write('class '.$compiler->getEnvironment()->getTemplateClass($this->source->getName(), $this->getAttribute('index')))
             ->raw(sprintf(" extends %s\n", $compiler->getEnvironment()->getBaseTemplateClass()))
             ->write("{\n")
             ->indent()
@@ -149,17 +173,17 @@ class Twig_Node_Module extends Twig_Node
         ;
 
         // parent
-        if (null === $parent = $this->getNode('parent')) {
+        if (!$this->hasNode('parent')) {
             $compiler->write("\$this->parent = false;\n\n");
-        } elseif ($parent instanceof Twig_Node_Expression_Constant) {
+        } elseif (($parent = $this->getNode('parent')) && $parent instanceof Twig_Node_Expression_Constant) {
             $compiler
                 ->addDebugInfo($parent)
                 ->write('$this->parent = $this->loadTemplate(')
                 ->subcompile($parent)
                 ->raw(', ')
-                ->repr($compiler->getFilename())
+                ->repr($this->source->getName())
                 ->raw(', ')
-                ->repr($this->getNode('parent')->getLine())
+                ->repr($parent->getTemplateLine())
                 ->raw(");\n")
             ;
         }
@@ -277,7 +301,8 @@ class Twig_Node_Module extends Twig_Node
             ->subcompile($this->getNode('body'))
         ;
 
-        if (null !== $parent = $this->getNode('parent')) {
+        if ($this->hasNode('parent')) {
+            $parent = $this->getNode('parent');
             $compiler->addDebugInfo($parent);
             if ($parent instanceof Twig_Node_Expression_Constant) {
                 $compiler->write('$this->parent');
@@ -314,7 +339,7 @@ class Twig_Node_Module extends Twig_Node
             ->write("public function getTemplateName()\n", "{\n")
             ->indent()
             ->write('return ')
-            ->repr($this->getAttribute('filename'))
+            ->repr($this->source->getName())
             ->raw(";\n")
             ->outdent()
             ->write("}\n\n")
@@ -330,7 +355,7 @@ class Twig_Node_Module extends Twig_Node
         //
         // Put another way, a template can be used as a trait if it
         // only contains blocks and use statements.
-        $traitable = null === $this->getNode('parent') && 0 === count($this->getNode('macros'));
+        $traitable = !$this->hasNode('parent') && 0 === count($this->getNode('macros'));
         if ($traitable) {
             if ($this->getNode('body') instanceof Twig_Node_Body) {
                 $nodes = $this->getNode('body')->getNode(0);
@@ -380,6 +405,37 @@ class Twig_Node_Module extends Twig_Node
             ->indent()
             ->write(sprintf("return %s;\n", str_replace("\n", '', var_export(array_reverse($compiler->getDebugInfo(), true), true))))
             ->outdent()
+            ->write("}\n\n")
+        ;
+    }
+
+    protected function compileGetSource(Twig_Compiler $compiler)
+    {
+        $compiler
+            ->write("/** @deprecated since 1.27 (to be removed in 2.0). Use getSourceContext() instead */\n")
+            ->write("public function getSource()\n", "{\n")
+            ->indent()
+            ->write("@trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0. Use getSourceContext() instead.', E_USER_DEPRECATED);\n\n")
+            ->write('return $this->getSourceContext()->getCode();')
+            ->raw("\n")
+            ->outdent()
+            ->write("}\n\n")
+        ;
+    }
+
+    protected function compileGetSourceContext(Twig_Compiler $compiler)
+    {
+        $compiler
+            ->write("public function getSourceContext()\n", "{\n")
+            ->indent()
+            ->write('return new Twig_Source(')
+            ->string($compiler->getEnvironment()->isDebug() ? $this->source->getCode() : '')
+            ->raw(', ')
+            ->string($this->source->getName())
+            ->raw(', ')
+            ->string($this->source->getPath())
+            ->raw(");\n")
+            ->outdent()
             ->write("}\n")
         ;
     }
@@ -391,13 +447,13 @@ class Twig_Node_Module extends Twig_Node
                 ->write(sprintf('%s = $this->loadTemplate(', $var))
                 ->subcompile($node)
                 ->raw(', ')
-                ->repr($compiler->getFilename())
+                ->repr($node->getTemplateName())
                 ->raw(', ')
-                ->repr($node->getLine())
+                ->repr($node->getTemplateLine())
                 ->raw(");\n")
             ;
         } else {
-            throw new LogicException('Trait templates can only be constant nodes');
+            throw new LogicException('Trait templates can only be constant nodes.');
         }
     }
 }
--- a/vendor/twig/twig/lib/Twig/Node/Print.php
+++ b/vendor/twig/twig/lib/Twig/Node/Print.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Sandbox.php
+++ b/vendor/twig/twig/lib/Twig/Node/Sandbox.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -25,7 +25,7 @@ class Twig_Node_Sandbox extends Twig_Node
     {
         $compiler
             ->addDebugInfo($this)
-            ->write("\$sandbox = \$this->env->getExtension('sandbox');\n")
+            ->write("\$sandbox = \$this->env->getExtension('Twig_Extension_Sandbox');\n")
             ->write("if (!\$alreadySandboxed = \$sandbox->isSandboxed()) {\n")
             ->indent()
             ->write("\$sandbox->enableSandbox();\n")
--- a/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php
+++ b/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -25,7 +25,7 @@ class Twig_Node_SandboxedPrint extends Twig_Node_Print
     {
         $compiler
             ->addDebugInfo($this)
-            ->write('echo $this->env->getExtension(\'sandbox\')->ensureToStringAllowed(')
+            ->write('echo $this->env->getExtension(\'Twig_Extension_Sandbox\')->ensureToStringAllowed(')
             ->subcompile($this->getNode('expr'))
             ->raw(");\n")
         ;
@@ -36,11 +36,9 @@ class Twig_Node_SandboxedPrint extends Twig_Node_Print
      *
      * This is mostly needed when another visitor adds filters (like the escaper one).
      *
-     * @param Twig_Node $node A Node
-     *
      * @return Twig_Node
      */
-    protected function removeNodeFilter($node)
+    protected function removeNodeFilter(Twig_Node $node)
     {
         if ($node instanceof Twig_Node_Expression_Filter) {
             return $this->removeNodeFilter($node->getNode('node'));
--- a/vendor/twig/twig/lib/Twig/Node/Set.php
+++ b/vendor/twig/twig/lib/Twig/Node/Set.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -14,7 +14,7 @@
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class Twig_Node_Set extends Twig_Node
+class Twig_Node_Set extends Twig_Node implements Twig_NodeCaptureInterface
 {
     public function __construct($capture, Twig_NodeInterface $names, Twig_NodeInterface $values, $lineno, $tag = null)
     {
@@ -30,7 +30,7 @@ class Twig_Node_Set extends Twig_Node
 
             $values = $this->getNode('values');
             if ($values instanceof Twig_Node_Text) {
-                $this->setNode('values', new Twig_Node_Expression_Constant($values->getAttribute('data'), $values->getLine()));
+                $this->setNode('values', new Twig_Node_Expression_Constant($values->getAttribute('data'), $values->getTemplateLine()));
                 $this->setAttribute('capture', false);
             }
         }
--- a/vendor/twig/twig/lib/Twig/Node/SetTemp.php
+++ b/vendor/twig/twig/lib/Twig/Node/SetTemp.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Spaceless.php
+++ b/vendor/twig/twig/lib/Twig/Node/Spaceless.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Node/Text.php
+++ b/vendor/twig/twig/lib/Twig/Node/Text.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/Node/With.php
@@ -0,0 +1,62 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Represents a nested "with" scope.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class Twig_Node_With extends Twig_Node
+{
+    public function __construct(Twig_Node $body, Twig_Node $variables = null, $only = false, $lineno, $tag = null)
+    {
+        $nodes = array('body' => $body);
+        if (null !== $variables) {
+            $nodes['variables'] = $variables;
+        }
+
+        parent::__construct($nodes, array('only' => (bool) $only), $lineno, $tag);
+    }
+
+    public function compile(Twig_Compiler $compiler)
+    {
+        $compiler->addDebugInfo($this);
+
+        if ($this->hasNode('variables')) {
+            $varsName = $compiler->getVarName();
+            $compiler
+                ->write(sprintf('$%s = ', $varsName))
+                ->subcompile($this->getNode('variables'))
+                ->raw(";\n")
+                ->write(sprintf("if (!is_array(\$%s)) {\n", $varsName))
+                ->indent()
+                ->write("throw new Twig_Error_Runtime('Variables passed to the \"with\" tag must be a hash.');\n")
+                ->outdent()
+                ->write("}\n")
+            ;
+
+            if ($this->getAttribute('only')) {
+                $compiler->write("\$context = array('_parent' => \$context);\n");
+            } else {
+                $compiler->write("\$context['_parent'] = \$context;\n");
+            }
+
+            $compiler->write(sprintf("\$context = array_merge(\$context, \$%s);\n", $varsName));
+        } else {
+            $compiler->write("\$context['_parent'] = \$context;\n");
+        }
+
+        $compiler
+            ->subcompile($this->getNode('body'))
+            ->write("\$context = \$context['_parent'];\n")
+        ;
+    }
+}
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/NodeCaptureInterface.php
@@ -0,0 +1,19 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Represents a node that captures any nested displayable nodes.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+interface Twig_NodeCaptureInterface
+{
+}
--- a/vendor/twig/twig/lib/Twig/NodeInterface.php
+++ b/vendor/twig/twig/lib/Twig/NodeInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -20,11 +20,12 @@ interface Twig_NodeInterface extends Countable, IteratorAggregate
 {
     /**
      * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
      */
     public function compile(Twig_Compiler $compiler);
 
+    /**
+     * @deprecated since 1.27 (to be removed in 2.0)
+     */
     public function getLine();
 
     public function getNodeTag();
--- a/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
+++ b/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/NodeTraverser.php
+++ b/vendor/twig/twig/lib/Twig/NodeTraverser.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -14,6 +14,8 @@
  *
  * It visits all nodes and their children and calls the given visitor for each.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_NodeTraverser
@@ -22,10 +24,8 @@ class Twig_NodeTraverser
     protected $visitors = array();
 
     /**
-     * Constructor.
-     *
-     * @param Twig_Environment            $env      A Twig_Environment instance
-     * @param Twig_NodeVisitorInterface[] $visitors An array of Twig_NodeVisitorInterface instances
+     * @param Twig_Environment            $env
+     * @param Twig_NodeVisitorInterface[] $visitors
      */
     public function __construct(Twig_Environment $env, array $visitors = array())
     {
@@ -35,11 +35,6 @@ class Twig_NodeTraverser
         }
     }
 
-    /**
-     * Adds a visitor.
-     *
-     * @param Twig_NodeVisitorInterface $visitor A Twig_NodeVisitorInterface instance
-     */
     public function addVisitor(Twig_NodeVisitorInterface $visitor)
     {
         if (!isset($this->visitors[$visitor->getPriority()])) {
@@ -52,8 +47,6 @@ class Twig_NodeTraverser
     /**
      * Traverses a node and calls the registered visitors.
      *
-     * @param Twig_NodeInterface $node A Twig_NodeInterface instance
-     *
      * @return Twig_NodeInterface
      */
     public function traverse(Twig_NodeInterface $node)
--- a/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php
+++ b/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,6 +12,8 @@
 /**
  * Twig_NodeVisitor_Escaper implements output escaping.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_NodeVisitor_Escaper extends Twig_BaseNodeVisitor
@@ -28,13 +30,10 @@ class Twig_NodeVisitor_Escaper extends Twig_BaseNodeVisitor
         $this->safeAnalysis = new Twig_NodeVisitor_SafeAnalysis();
     }
 
-    /**
-     * {@inheritdoc}
-     */
     protected function doEnterNode(Twig_Node $node, Twig_Environment $env)
     {
         if ($node instanceof Twig_Node_Module) {
-            if ($env->hasExtension('escaper') && $defaultStrategy = $env->getExtension('escaper')->getDefaultStrategy($node->getAttribute('filename'))) {
+            if ($env->hasExtension('Twig_Extension_Escaper') && $defaultStrategy = $env->getExtension('Twig_Extension_Escaper')->getDefaultStrategy($node->getTemplateName())) {
                 $this->defaultStrategy = $defaultStrategy;
             }
             $this->safeVars = array();
@@ -50,9 +49,6 @@ class Twig_NodeVisitor_Escaper extends Twig_BaseNodeVisitor
         return $node;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     protected function doLeaveNode(Twig_Node $node, Twig_Environment $env)
     {
         if ($node instanceof Twig_Node_Module) {
@@ -90,7 +86,7 @@ class Twig_NodeVisitor_Escaper extends Twig_BaseNodeVisitor
 
         return new $class(
             $this->getEscaperFilter($type, $expression),
-            $node->getLine()
+            $node->getTemplateLine()
         );
     }
 
@@ -142,16 +138,13 @@ class Twig_NodeVisitor_Escaper extends Twig_BaseNodeVisitor
 
     protected function getEscaperFilter($type, Twig_NodeInterface $node)
     {
-        $line = $node->getLine();
+        $line = $node->getTemplateLine();
         $name = new Twig_Node_Expression_Constant('escape', $line);
         $args = new Twig_Node(array(new Twig_Node_Expression_Constant((string) $type, $line), new Twig_Node_Expression_Constant(null, $line), new Twig_Node_Expression_Constant(true, $line)));
 
         return new Twig_Node_Expression_Filter($node, $name, $args, $line);
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getPriority()
     {
         return 0;
--- a/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php
+++ b/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -17,6 +17,8 @@
  * You can configure which optimizations you want to activate via the
  * optimizer mode.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
@@ -34,8 +36,6 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
     protected $inABody = false;
 
     /**
-     * Constructor.
-     *
      * @param int $optimizers The optimizer mode
      */
     public function __construct($optimizers = -1)
@@ -47,16 +47,13 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
         $this->optimizers = $optimizers;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     protected function doEnterNode(Twig_Node $node, Twig_Environment $env)
     {
         if (self::OPTIMIZE_FOR === (self::OPTIMIZE_FOR & $this->optimizers)) {
             $this->enterOptimizeFor($node, $env);
         }
 
-        if (PHP_VERSION_ID < 50400 && self::OPTIMIZE_VAR_ACCESS === (self::OPTIMIZE_VAR_ACCESS & $this->optimizers) && !$env->isStrictVariables() && !$env->hasExtension('sandbox')) {
+        if (PHP_VERSION_ID < 50400 && self::OPTIMIZE_VAR_ACCESS === (self::OPTIMIZE_VAR_ACCESS & $this->optimizers) && !$env->isStrictVariables() && !$env->hasExtension('Twig_Extension_Sandbox')) {
             if ($this->inABody) {
                 if (!$node instanceof Twig_Node_Expression) {
                     if (get_class($node) !== 'Twig_Node') {
@@ -73,9 +70,6 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
         return $node;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     protected function doLeaveNode(Twig_Node $node, Twig_Environment $env)
     {
         $expression = $node instanceof Twig_Node_Expression;
@@ -90,14 +84,14 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
 
         $node = $this->optimizePrintNode($node, $env);
 
-        if (self::OPTIMIZE_VAR_ACCESS === (self::OPTIMIZE_VAR_ACCESS & $this->optimizers) && !$env->isStrictVariables() && !$env->hasExtension('sandbox')) {
+        if (self::OPTIMIZE_VAR_ACCESS === (self::OPTIMIZE_VAR_ACCESS & $this->optimizers) && !$env->isStrictVariables() && !$env->hasExtension('Twig_Extension_Sandbox')) {
             if ($node instanceof Twig_Node_Body) {
                 $this->inABody = false;
             } elseif ($this->inABody) {
                 if (!$expression && get_class($node) !== 'Twig_Node' && $prependedNodes = array_shift($this->prependedNodes)) {
                     $nodes = array();
                     foreach (array_unique($prependedNodes) as $name) {
-                        $nodes[] = new Twig_Node_SetTemp($name, $node->getLine());
+                        $nodes[] = new Twig_Node_SetTemp($name, $node->getTemplateLine());
                     }
 
                     $nodes[] = $node;
@@ -114,7 +108,7 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
         if ('Twig_Node_Expression_Name' === get_class($node) && $node->isSimple()) {
             $this->prependedNodes[0][] = $node->getAttribute('name');
 
-            return new Twig_Node_Expression_TempName($node->getAttribute('name'), $node->getLine());
+            return new Twig_Node_Expression_TempName($node->getAttribute('name'), $node->getTemplateLine());
         }
 
         return $node;
@@ -127,9 +121,6 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
      *
      *   * "echo $this->render(Parent)Block()" with "$this->display(Parent)Block()"
      *
-     * @param Twig_NodeInterface $node A Node
-     * @param Twig_Environment   $env  The current Twig environment
-     *
      * @return Twig_NodeInterface
      */
     protected function optimizePrintNode(Twig_NodeInterface $node, Twig_Environment $env)
@@ -138,13 +129,14 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
             return $node;
         }
 
+        $exprNode = $node->getNode('expr');
         if (
-            $node->getNode('expr') instanceof Twig_Node_Expression_BlockReference ||
-            $node->getNode('expr') instanceof Twig_Node_Expression_Parent
+            $exprNode instanceof Twig_Node_Expression_BlockReference ||
+            $exprNode instanceof Twig_Node_Expression_Parent
         ) {
-            $node->getNode('expr')->setAttribute('output', true);
+            $exprNode->setAttribute('output', true);
 
-            return $node->getNode('expr');
+            return $exprNode;
         }
 
         return $node;
@@ -153,9 +145,6 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
     /**
      * Removes "raw" filters.
      *
-     * @param Twig_NodeInterface $node A Node
-     * @param Twig_Environment   $env  The current Twig environment
-     *
      * @return Twig_NodeInterface
      */
     protected function optimizeRawFilter(Twig_NodeInterface $node, Twig_Environment $env)
@@ -169,9 +158,6 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
 
     /**
      * Optimizes "for" tag by removing the "loop" variable creation whenever possible.
-     *
-     * @param Twig_NodeInterface $node A Node
-     * @param Twig_Environment   $env  The current Twig environment
      */
     protected function enterOptimizeFor(Twig_NodeInterface $node, Twig_Environment $env)
     {
@@ -236,9 +222,6 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
 
     /**
      * Optimizes "for" tag by removing the "loop" variable creation whenever possible.
-     *
-     * @param Twig_NodeInterface $node A Node
-     * @param Twig_Environment   $env  The current Twig environment
      */
     protected function leaveOptimizeFor(Twig_NodeInterface $node, Twig_Environment $env)
     {
@@ -261,9 +244,6 @@ class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
         }
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getPriority()
     {
         return 255;
--- a/vendor/twig/twig/lib/Twig/NodeVisitor/SafeAnalysis.php
+++ b/vendor/twig/twig/lib/Twig/NodeVisitor/SafeAnalysis.php
@@ -9,6 +9,9 @@
  * file that was distributed with this source code.
  */
 
+/**
+ * @final
+ */
 class Twig_NodeVisitor_SafeAnalysis extends Twig_BaseNodeVisitor
 {
     protected $data = array();
@@ -57,17 +60,11 @@ class Twig_NodeVisitor_SafeAnalysis extends Twig_BaseNodeVisitor
         );
     }
 
-    /**
-     * {@inheritdoc}
-     */
     protected function doEnterNode(Twig_Node $node, Twig_Environment $env)
     {
         return $node;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     protected function doLeaveNode(Twig_Node $node, Twig_Environment $env)
     {
         if ($node instanceof Twig_Node_Expression_Constant) {
@@ -144,9 +141,6 @@ class Twig_NodeVisitor_SafeAnalysis extends Twig_BaseNodeVisitor
         return array_intersect($a, $b);
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getPriority()
     {
         return 0;
--- a/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php
+++ b/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,6 +12,8 @@
 /**
  * Twig_NodeVisitor_Sandbox implements sandboxing.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_NodeVisitor_Sandbox extends Twig_BaseNodeVisitor
@@ -21,9 +23,6 @@ class Twig_NodeVisitor_Sandbox extends Twig_BaseNodeVisitor
     protected $filters;
     protected $functions;
 
-    /**
-     * {@inheritdoc}
-     */
     protected function doEnterNode(Twig_Node $node, Twig_Environment $env)
     {
         if ($node instanceof Twig_Node_Module) {
@@ -51,16 +50,13 @@ class Twig_NodeVisitor_Sandbox extends Twig_BaseNodeVisitor
 
             // wrap print to check __toString() calls
             if ($node instanceof Twig_Node_Print) {
-                return new Twig_Node_SandboxedPrint($node->getNode('expr'), $node->getLine(), $node->getNodeTag());
+                return new Twig_Node_SandboxedPrint($node->getNode('expr'), $node->getTemplateLine(), $node->getNodeTag());
             }
         }
 
         return $node;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     protected function doLeaveNode(Twig_Node $node, Twig_Environment $env)
     {
         if ($node instanceof Twig_Node_Module) {
@@ -72,9 +68,6 @@ class Twig_NodeVisitor_Sandbox extends Twig_BaseNodeVisitor
         return $node;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getPriority()
     {
         return 0;
--- a/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php
+++ b/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -19,9 +19,6 @@ interface Twig_NodeVisitorInterface
     /**
      * Called before child nodes are visited.
      *
-     * @param Twig_NodeInterface $node The node to visit
-     * @param Twig_Environment   $env  The Twig environment instance
-     *
      * @return Twig_NodeInterface The modified node
      */
     public function enterNode(Twig_NodeInterface $node, Twig_Environment $env);
@@ -29,9 +26,6 @@ interface Twig_NodeVisitorInterface
     /**
      * Called after child nodes are visited.
      *
-     * @param Twig_NodeInterface $node The node to visit
-     * @param Twig_Environment   $env  The Twig environment instance
-     *
      * @return Twig_NodeInterface|false The modified node or false if the node must be removed
      */
     public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env);
--- a/vendor/twig/twig/lib/Twig/Parser.php
+++ b/vendor/twig/twig/lib/Twig/Parser.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -32,18 +32,18 @@ class Twig_Parser implements Twig_ParserInterface
     protected $traits;
     protected $embeddedTemplates = array();
 
-    /**
-     * Constructor.
-     *
-     * @param Twig_Environment $env A Twig_Environment instance
-     */
     public function __construct(Twig_Environment $env)
     {
         $this->env = $env;
     }
 
+    /**
+     * @deprecated since 1.27 (to be removed in 2.0)
+     */
     public function getEnvironment()
     {
+        @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0.', E_USER_DEPRECATED);
+
         return $this->env;
     }
 
@@ -52,18 +52,21 @@ class Twig_Parser implements Twig_ParserInterface
         return sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false));
     }
 
+    /**
+     * @deprecated since 1.27 (to be removed in 2.0). Use $parser->getStream()->getSourceContext()->getPath() instead.
+     */
     public function getFilename()
     {
-        return $this->stream->getFilename();
+        @trigger_error(sprintf('The "%s" method is deprecated since version 1.27 and will be removed in 2.0. Use $parser->getStream()->getSourceContext()->getPath() instead.', __METHOD__), E_USER_DEPRECATED);
+
+        return $this->stream->getSourceContext()->getName();
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function parse(Twig_TokenStream $stream, $test = null, $dropNeedle = false)
     {
         // push all variables into the stack to keep the current state of the parser
         // using get_object_vars() instead of foreach would lead to https://bugs.php.net/71336
+        // This hack can be removed when min version if PHP 7.0
         $vars = array();
         foreach ($this as $k => $v) {
             $vars[$k] = $v;
@@ -84,7 +87,7 @@ class Twig_Parser implements Twig_ParserInterface
         }
 
         if (null === $this->expressionParser) {
-            $this->expressionParser = new Twig_ExpressionParser($this, $this->env->getUnaryOperators(), $this->env->getBinaryOperators());
+            $this->expressionParser = new Twig_ExpressionParser($this, $this->env);
         }
 
         $this->stream = $stream;
@@ -103,8 +106,8 @@ class Twig_Parser implements Twig_ParserInterface
                 $body = new Twig_Node();
             }
         } catch (Twig_Error_Syntax $e) {
-            if (!$e->getTemplateFile()) {
-                $e->setTemplateFile($this->getFilename());
+            if (!$e->getSourceContext()) {
+                $e->setSourceContext($this->stream->getSourceContext());
             }
 
             if (!$e->getTemplateLine()) {
@@ -114,7 +117,7 @@ class Twig_Parser implements Twig_ParserInterface
             throw $e;
         }
 
-        $node = new Twig_Node_Module(new Twig_Node_Body(array($body)), $this->parent, new Twig_Node($this->blocks), new Twig_Node($this->macros), new Twig_Node($this->traits), $this->embeddedTemplates, $this->getFilename());
+        $node = new Twig_Node_Module(new Twig_Node_Body(array($body)), $this->parent, new Twig_Node($this->blocks), new Twig_Node($this->macros), new Twig_Node($this->traits), $this->embeddedTemplates, $stream->getSourceContext());
 
         $traverser = new Twig_NodeTraverser($this->env, $this->visitors);
 
@@ -151,7 +154,7 @@ class Twig_Parser implements Twig_ParserInterface
                     $token = $this->getCurrentToken();
 
                     if ($token->getType() !== Twig_Token::NAME_TYPE) {
-                        throw new Twig_Error_Syntax('A block must start with a tag name.', $token->getLine(), $this->getFilename());
+                        throw new Twig_Error_Syntax('A block must start with a tag name.', $token->getLine(), $this->stream->getSourceContext());
                     }
 
                     if (null !== $test && call_user_func($test, $token)) {
@@ -169,13 +172,13 @@ class Twig_Parser implements Twig_ParserInterface
                     $subparser = $this->handlers->getTokenParser($token->getValue());
                     if (null === $subparser) {
                         if (null !== $test) {
-                            $e = new Twig_Error_Syntax(sprintf('Unexpected "%s" tag', $token->getValue()), $token->getLine(), $this->getFilename());
+                            $e = new Twig_Error_Syntax(sprintf('Unexpected "%s" tag', $token->getValue()), $token->getLine(), $this->stream->getSourceContext());
 
                             if (is_array($test) && isset($test[0]) && $test[0] instanceof Twig_TokenParserInterface) {
                                 $e->appendMessage(sprintf(' (expecting closing tag for the "%s" tag defined near line %s).', $test[0]->getTag(), $lineno));
                             }
                         } else {
-                            $e = new Twig_Error_Syntax(sprintf('Unknown "%s" tag.', $token->getValue()), $token->getLine(), $this->getFilename());
+                            $e = new Twig_Error_Syntax(sprintf('Unknown "%s" tag.', $token->getValue()), $token->getLine(), $this->stream->getSourceContext());
                             $e->addSuggestions($token->getValue(), array_keys($this->env->getTags()));
                         }
 
@@ -191,7 +194,7 @@ class Twig_Parser implements Twig_ParserInterface
                     break;
 
                 default:
-                    throw new Twig_Error_Syntax('Lexer or parser ended up in unsupported state.', 0, $this->getFilename());
+                    throw new Twig_Error_Syntax('Lexer or parser ended up in unsupported state.', $this->getCurrentToken()->getLine(), $this->stream->getSourceContext());
             }
         }
 
@@ -202,13 +205,23 @@ class Twig_Parser implements Twig_ParserInterface
         return new Twig_Node($rv, array(), $lineno);
     }
 
+    /**
+     * @deprecated since 1.27 (to be removed in 2.0)
+     */
     public function addHandler($name, $class)
     {
+        @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0.', E_USER_DEPRECATED);
+
         $this->handlers[$name] = $class;
     }
 
+    /**
+     * @deprecated since 1.27 (to be removed in 2.0)
+     */
     public function addNodeVisitor(Twig_NodeVisitorInterface $visitor)
     {
+        @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0.', E_USER_DEPRECATED);
+
         $this->visitors[] = $visitor;
     }
 
@@ -244,7 +257,7 @@ class Twig_Parser implements Twig_ParserInterface
 
     public function setBlock($name, Twig_Node_Block $value)
     {
-        $this->blocks[$name] = new Twig_Node_Body(array($value), array(), $value->getLine());
+        $this->blocks[$name] = new Twig_Node_Body(array($value), array(), $value->getTemplateLine());
     }
 
     public function hasMacro($name)
@@ -255,7 +268,7 @@ class Twig_Parser implements Twig_ParserInterface
     public function setMacro($name, Twig_Node_Macro $node)
     {
         if ($this->isReservedMacroName($name)) {
-            throw new Twig_Error_Syntax(sprintf('"%s" cannot be used as a macro name as it is a reserved keyword.', $name), $node->getLine(), $this->getFilename());
+            throw new Twig_Error_Syntax(sprintf('"%s" cannot be used as a macro name as it is a reserved keyword.', $name), $node->getTemplateLine(), $this->stream->getSourceContext());
         }
 
         $this->macros[$name] = $node;
@@ -325,9 +338,7 @@ class Twig_Parser implements Twig_ParserInterface
     }
 
     /**
-     * Gets the expression parser.
-     *
-     * @return Twig_ExpressionParser The expression parser
+     * @return Twig_ExpressionParser
      */
     public function getExpressionParser()
     {
@@ -345,9 +356,7 @@ class Twig_Parser implements Twig_ParserInterface
     }
 
     /**
-     * Gets the token stream.
-     *
-     * @return Twig_TokenStream The token stream
+     * @return Twig_TokenStream
      */
     public function getStream()
     {
@@ -355,9 +364,7 @@ class Twig_Parser implements Twig_ParserInterface
     }
 
     /**
-     * Gets the current token.
-     *
-     * @return Twig_Token The current token
+     * @return Twig_Token
      */
     public function getCurrentToken()
     {
@@ -373,14 +380,14 @@ class Twig_Parser implements Twig_ParserInterface
             (!$node instanceof Twig_Node_Text && !$node instanceof Twig_Node_BlockReference && $node instanceof Twig_NodeOutputInterface)
         ) {
             if (false !== strpos((string) $node, chr(0xEF).chr(0xBB).chr(0xBF))) {
-                throw new Twig_Error_Syntax('A template that extends another one cannot have a body but a byte order mark (BOM) has been detected; it must be removed.', $node->getLine(), $this->getFilename());
+                throw new Twig_Error_Syntax('A template that extends another one cannot start with a byte order mark (BOM); it must be removed.', $node->getTemplateLine(), $this->stream->getSourceContext());
             }
 
-            throw new Twig_Error_Syntax('A template that extends another one cannot have a body.', $node->getLine(), $this->getFilename());
+            throw new Twig_Error_Syntax('A template that extends another one cannot include contents outside Twig blocks. Did you forget to put the contents inside a {% block %} tag?', $node->getTemplateLine(), $this->stream->getSourceContext());
         }
 
-        // bypass "set" nodes as they "capture" the output
-        if ($node instanceof Twig_Node_Set) {
+        // bypass nodes that will "capture" the output
+        if ($node instanceof Twig_NodeCaptureInterface) {
             return $node;
         }
 
--- a/vendor/twig/twig/lib/Twig/ParserInterface.php
+++ b/vendor/twig/twig/lib/Twig/ParserInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -21,9 +21,7 @@ interface Twig_ParserInterface
     /**
      * Converts a token stream to a node tree.
      *
-     * @param Twig_TokenStream $stream A token stream instance
-     *
-     * @return Twig_Node_Module A node tree
+     * @return Twig_Node_Module
      *
      * @throws Twig_Error_Syntax When the token stream is syntactically or semantically wrong
      */
--- a/vendor/twig/twig/lib/Twig/Profiler/Dumper/Blackfire.php
+++ b/vendor/twig/twig/lib/Twig/Profiler/Dumper/Blackfire.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -11,6 +11,8 @@
 
 /**
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @final
  */
 class Twig_Profiler_Dumper_Blackfire
 {
@@ -20,7 +22,7 @@ class Twig_Profiler_Dumper_Blackfire
         $this->dumpProfile('main()', $profile, $data);
         $this->dumpChildren('main()', $profile, $data);
 
-        $start = microtime(true);
+        $start = sprintf('%f', microtime(true));
         $str = <<<EOF
 file-format: BlackfireProbe
 cost-dimensions: wt mu pmu
--- a/vendor/twig/twig/lib/Twig/Profiler/Dumper/Html.php
+++ b/vendor/twig/twig/lib/Twig/Profiler/Dumper/Html.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -11,6 +11,8 @@
 
 /**
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @final
  */
 class Twig_Profiler_Dumper_Html extends Twig_Profiler_Dumper_Text
 {
--- a/vendor/twig/twig/lib/Twig/Profiler/Dumper/Text.php
+++ b/vendor/twig/twig/lib/Twig/Profiler/Dumper/Text.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -11,6 +11,8 @@
 
 /**
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @final
  */
 class Twig_Profiler_Dumper_Text
 {
--- a/vendor/twig/twig/lib/Twig/Profiler/Node/EnterProfile.php
+++ b/vendor/twig/twig/lib/Twig/Profiler/Node/EnterProfile.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -21,9 +21,6 @@ class Twig_Profiler_Node_EnterProfile extends Twig_Node
         parent::__construct(array(), array('extension_name' => $extensionName, 'name' => $name, 'type' => $type, 'var_name' => $varName));
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function compile(Twig_Compiler $compiler)
     {
         $compiler
--- a/vendor/twig/twig/lib/Twig/Profiler/Node/LeaveProfile.php
+++ b/vendor/twig/twig/lib/Twig/Profiler/Node/LeaveProfile.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -21,9 +21,6 @@ class Twig_Profiler_Node_LeaveProfile extends Twig_Node
         parent::__construct(array(), array('var_name' => $varName));
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function compile(Twig_Compiler $compiler)
     {
         $compiler
--- a/vendor/twig/twig/lib/Twig/Profiler/NodeVisitor/Profiler.php
+++ b/vendor/twig/twig/lib/Twig/Profiler/NodeVisitor/Profiler.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -11,6 +11,8 @@
 
 /**
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @final
  */
 class Twig_Profiler_NodeVisitor_Profiler extends Twig_BaseNodeVisitor
 {
@@ -21,22 +23,16 @@ class Twig_Profiler_NodeVisitor_Profiler extends Twig_BaseNodeVisitor
         $this->extensionName = $extensionName;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     protected function doEnterNode(Twig_Node $node, Twig_Environment $env)
     {
         return $node;
     }
 
-    /**
-     * {@inheritdoc}
-     */
     protected function doLeaveNode(Twig_Node $node, Twig_Environment $env)
     {
         if ($node instanceof Twig_Node_Module) {
             $varName = $this->getVarName();
-            $node->setNode('display_start', new Twig_Node(array(new Twig_Profiler_Node_EnterProfile($this->extensionName, Twig_Profiler_Profile::TEMPLATE, $node->getAttribute('filename'), $varName), $node->getNode('display_start'))));
+            $node->setNode('display_start', new Twig_Node(array(new Twig_Profiler_Node_EnterProfile($this->extensionName, Twig_Profiler_Profile::TEMPLATE, $node->getTemplateName(), $varName), $node->getNode('display_start'))));
             $node->setNode('display_end', new Twig_Node(array(new Twig_Profiler_Node_LeaveProfile($varName), $node->getNode('display_end'))));
         } elseif ($node instanceof Twig_Node_Block) {
             $varName = $this->getVarName();
@@ -62,9 +58,6 @@ class Twig_Profiler_NodeVisitor_Profiler extends Twig_BaseNodeVisitor
         return sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false));
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function getPriority()
     {
         return 0;
--- a/vendor/twig/twig/lib/Twig/Profiler/Profile.php
+++ b/vendor/twig/twig/lib/Twig/Profiler/Profile.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2015 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -11,6 +11,8 @@
 
 /**
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @final
  */
 class Twig_Profiler_Profile implements IteratorAggregate, Serializable
 {
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/RuntimeLoaderInterface.php
@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Creates runtime implementations for Twig elements (filters/functions/tests).
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+interface Twig_RuntimeLoaderInterface
+{
+    /**
+     * Creates the runtime implementation of a Twig element (filter/function/test).
+     *
+     * @param string $class A runtime class
+     *
+     * @return object|null The runtime instance or null if the loader does not know how to create the runtime for this class
+     */
+    public function load($class);
+}
--- a/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php
+++ b/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFilterError.php
+++ b/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFilterError.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFunctionError.php
+++ b/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFunctionError.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedMethodError.php
@@ -0,0 +1,38 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Exception thrown when a not allowed class method is used in a template.
+ *
+ * @author Kit Burton-Senior <mail@kitbs.com>
+ */
+class Twig_Sandbox_SecurityNotAllowedMethodError extends Twig_Sandbox_SecurityError
+{
+    private $className;
+    private $methodName;
+
+    public function __construct($message, $className, $methodName, $lineno = -1, $filename = null, Exception $previous = null)
+    {
+        parent::__construct($message, $lineno, $filename, $previous);
+        $this->className = $className;
+        $this->methodName = $methodName;
+    }
+
+    public function getClassName()
+    {
+        return $this->className;
+    }
+
+    public function getMethodName()
+    {
+        return $this->methodName;
+    }
+}
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedPropertyError.php
@@ -0,0 +1,38 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Exception thrown when a not allowed class property is used in a template.
+ *
+ * @author Kit Burton-Senior <mail@kitbs.com>
+ */
+class Twig_Sandbox_SecurityNotAllowedPropertyError extends Twig_Sandbox_SecurityError
+{
+    private $className;
+    private $propertyName;
+
+    public function __construct($message, $className, $propertyName, $lineno = -1, $filename = null, Exception $previous = null)
+    {
+        parent::__construct($message, $lineno, $filename, $previous);
+        $this->className = $className;
+        $this->propertyName = $propertyName;
+    }
+
+    public function getClassName()
+    {
+        return $this->className;
+    }
+
+    public function getPropertyName()
+    {
+        return $this->propertyName;
+    }
+}
--- a/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedTagError.php
+++ b/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedTagError.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php
+++ b/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,6 +12,8 @@
 /**
  * Represents a security policy which need to be enforced when sandbox mode is enabled.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_Sandbox_SecurityPolicy implements Twig_Sandbox_SecurityPolicyInterface
@@ -97,7 +99,8 @@ class Twig_Sandbox_SecurityPolicy implements Twig_Sandbox_SecurityPolicyInterfac
         }
 
         if (!$allowed) {
-            throw new Twig_Sandbox_SecurityError(sprintf('Calling "%s" method on a "%s" object is not allowed.', $method, get_class($obj)));
+            $class = get_class($obj);
+            throw new Twig_Sandbox_SecurityNotAllowedMethodError(sprintf('Calling "%s" method on a "%s" object is not allowed.', $method, $class), $class, $method);
         }
     }
 
@@ -113,7 +116,8 @@ class Twig_Sandbox_SecurityPolicy implements Twig_Sandbox_SecurityPolicyInterfac
         }
 
         if (!$allowed) {
-            throw new Twig_Sandbox_SecurityError(sprintf('Calling "%s" property on a "%s" object is not allowed.', $property, get_class($obj)));
+            $class = get_class($obj);
+            throw new Twig_Sandbox_SecurityNotAllowedPropertyError(sprintf('Calling "%s" property on a "%s" object is not allowed.', $property, $class), $class, $property);
         }
     }
 }
--- a/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php
+++ b/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/SimpleFilter.php
+++ b/vendor/twig/twig/lib/Twig/SimpleFilter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009-2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,6 +12,8 @@
 /**
  * Represents a template filter.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_SimpleFilter
--- a/vendor/twig/twig/lib/Twig/SimpleFunction.php
+++ b/vendor/twig/twig/lib/Twig/SimpleFunction.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010-2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,6 +12,8 @@
 /**
  * Represents a template function.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_SimpleFunction
--- a/vendor/twig/twig/lib/Twig/SimpleTest.php
+++ b/vendor/twig/twig/lib/Twig/SimpleTest.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010-2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -12,6 +12,8 @@
 /**
  * Represents a template test.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_SimpleTest
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/Source.php
@@ -0,0 +1,51 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Holds information about a non-compiled Twig template.
+ *
+ * @final
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class Twig_Source
+{
+    private $code;
+    private $name;
+    private $path;
+
+    /**
+     * @param string $code The template source code
+     * @param string $name The template logical name
+     * @param string $path The filesystem path of the template if any
+     */
+    public function __construct($code, $name, $path = '')
+    {
+        $this->code = $code;
+        $this->name = $name;
+        $this->path = $path;
+    }
+
+    public function getCode()
+    {
+        return $this->code;
+    }
+
+    public function getName()
+    {
+        return $this->name;
+    }
+
+    public function getPath()
+    {
+        return $this->path;
+    }
+}
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/SourceContextLoaderInterface.php
@@ -0,0 +1,31 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Adds a getSourceContext() method for loaders.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @deprecated since 1.27 (to be removed in 3.0)
+ */
+interface Twig_SourceContextLoaderInterface
+{
+    /**
+     * Returns the source context for a given template logical name.
+     *
+     * @param string $name The template logical name
+     *
+     * @return Twig_Source
+     *
+     * @throws Twig_Error_Loader When $name is not found
+     */
+    public function getSourceContext($name);
+}
--- a/vendor/twig/twig/lib/Twig/Template.php
+++ b/vendor/twig/twig/lib/Twig/Template.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,10 +13,19 @@
 /**
  * Default base class for compiled templates.
  *
+ * This class is an implementation detail of how template compilation currently
+ * works, which might change. It should never be used directly. Use $twig->load()
+ * instead, which returns an instance of Twig_TemplateWrapper.
+ *
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @internal
  */
 abstract class Twig_Template implements Twig_TemplateInterface
 {
+    /**
+     * @internal
+     */
     protected static $cache = array();
 
     protected $parent;
@@ -25,17 +34,20 @@ abstract class Twig_Template implements Twig_TemplateInterface
     protected $blocks = array();
     protected $traits = array();
 
-    /**
-     * Constructor.
-     *
-     * @param Twig_Environment $env A Twig_Environment instance
-     */
     public function __construct(Twig_Environment $env)
     {
         $this->env = $env;
     }
 
     /**
+     * @internal this method will be removed in 2.0 and is only used internally to provide an upgrade path from 1.x to 2.0
+     */
+    public function __toString()
+    {
+        return $this->getTemplateName();
+    }
+
+    /**
      * Returns the template name.
      *
      * @return string The template name
@@ -43,6 +55,42 @@ abstract class Twig_Template implements Twig_TemplateInterface
     abstract public function getTemplateName();
 
     /**
+     * Returns debug information about the template.
+     *
+     * @return array Debug information
+     *
+     * @internal
+     */
+    public function getDebugInfo()
+    {
+        return array();
+    }
+
+    /**
+     * Returns the template source code.
+     *
+     * @return string The template source code
+     *
+     * @deprecated since 1.27 (to be removed in 2.0). Use getSourceContext() instead
+     */
+    public function getSource()
+    {
+        @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0. Use getSourceContext() instead.', E_USER_DEPRECATED);
+
+        return '';
+    }
+
+    /**
+     * Returns information about the original template source code.
+     *
+     * @return Twig_Source
+     */
+    public function getSourceContext()
+    {
+        return new Twig_Source('', $this->getTemplateName());
+    }
+
+    /**
      * @deprecated since 1.20 (to be removed in 2.0)
      */
     public function getEnvironment()
@@ -85,7 +133,7 @@ abstract class Twig_Template implements Twig_TemplateInterface
                 $this->parents[$parent] = $this->loadTemplate($parent);
             }
         } catch (Twig_Error_Loader $e) {
-            $e->setTemplateFile(null);
+            $e->setSourceContext(null);
             $e->guess();
 
             throw $e;
@@ -125,7 +173,7 @@ abstract class Twig_Template implements Twig_TemplateInterface
         } elseif (false !== $parent = $this->getParent($context)) {
             $parent->displayBlock($name, $context, $blocks, false);
         } else {
-            throw new Twig_Error_Runtime(sprintf('The template has no parent and no traits defining the "%s" block', $name), -1, $this->getTemplateName());
+            throw new Twig_Error_Runtime(sprintf('The template has no parent and no traits defining the "%s" block.', $name), -1, $this->getSourceContext());
         }
     }
 
@@ -157,17 +205,17 @@ abstract class Twig_Template implements Twig_TemplateInterface
             $block = null;
         }
 
-        if (null !== $template) {
-            // avoid RCEs when sandbox is enabled
-            if (!$template instanceof self) {
-                throw new LogicException('A block must be a method on a Twig_Template instance.');
-            }
+        // avoid RCEs when sandbox is enabled
+        if (null !== $template && !$template instanceof self) {
+            throw new LogicException('A block must be a method on a Twig_Template instance.');
+        }
 
+        if (null !== $template) {
             try {
                 $template->$block($context, $blocks);
             } catch (Twig_Error $e) {
-                if (!$e->getTemplateFile()) {
-                    $e->setTemplateFile($template->getTemplateName());
+                if (!$e->getSourceContext()) {
+                    $e->setSourceContext($template->getSourceContext());
                 }
 
                 // this is mostly useful for Twig_Error_Loader exceptions
@@ -179,10 +227,12 @@ abstract class Twig_Template implements Twig_TemplateInterface
 
                 throw $e;
             } catch (Exception $e) {
-                throw new Twig_Error_Runtime(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getTemplateName(), $e);
+                throw new Twig_Error_Runtime(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
             }
         } elseif (false !== $parent = $this->getParent($context)) {
             $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false);
+        } else {
+            @trigger_error(sprintf('Silent display of undefined block "%s" in template "%s" is deprecated since version 1.29 and will throw an exception in 2.0. Use the "block(\'%s\') is defined" expression to test for block existence.', $name, $this->getTemplateName(), $name), E_USER_DEPRECATED);
         }
     }
 
@@ -232,44 +282,70 @@ abstract class Twig_Template implements Twig_TemplateInterface
     }
 
     /**
-     * Returns whether a block exists or not.
+     * Returns whether a block exists or not in the current context of the template.
      *
-     * This method is for internal use only and should never be called
-     * directly.
-     *
-     * This method does only return blocks defined in the current template
-     * or defined in "used" traits.
-     *
-     * It does not return blocks from parent templates as the parent
-     * template name can be dynamic, which is only known based on the
-     * current context.
+     * This method checks blocks defined in the current template
+     * or defined in "used" traits or defined in parent templates.
      *
-     * @param string $name The block name
+     * @param string $name    The block name
+     * @param array  $context The context
+     * @param array  $blocks  The current set of blocks
      *
      * @return bool true if the block exists, false otherwise
      *
      * @internal
      */
-    public function hasBlock($name)
+    public function hasBlock($name, array $context = null, array $blocks = array())
     {
-        return isset($this->blocks[(string) $name]);
+        if (null === $context) {
+            @trigger_error('The '.__METHOD__.' method is internal and should never be called; calling it directly is deprecated since version 1.28 and won\'t be possible anymore in 2.0.', E_USER_DEPRECATED);
+
+            return isset($this->blocks[(string) $name]);
+        }
+
+        if (isset($blocks[$name])) {
+            return $blocks[$name][0] instanceof self;
+        }
+
+        if (isset($this->blocks[$name])) {
+            return true;
+        }
+
+        if (false !== $parent = $this->getParent($context)) {
+            return $parent->hasBlock($name, $context);
+        }
+
+        return false;
     }
 
     /**
-     * Returns all block names.
+     * Returns all block names in the current context of the template.
      *
-     * This method is for internal use only and should never be called
-     * directly.
+     * This method checks blocks defined in the current template
+     * or defined in "used" traits or defined in parent templates.
      *
-     * @return array An array of block names
+     * @param array $context The context
+     * @param array $blocks  The current set of blocks
      *
-     * @see hasBlock
+     * @return array An array of block names
      *
      * @internal
      */
-    public function getBlockNames()
+    public function getBlockNames(array $context = null, array $blocks = array())
     {
-        return array_keys($this->blocks);
+        if (null === $context) {
+            @trigger_error('The '.__METHOD__.' method is internal and should never be called; calling it directly is deprecated since version 1.28 and won\'t be possible anymore in 2.0.', E_USER_DEPRECATED);
+
+            return array_keys($this->blocks);
+        }
+
+        $names = array_merge(array_keys($blocks), array_keys($this->blocks));
+
+        if (false !== $parent = $this->getParent($context)) {
+            $names = array_merge($names, $parent->getBlockNames($context));
+        }
+
+        return array_unique($names);
     }
 
     protected function loadTemplate($template, $templateName = null, $line = null, $index = null)
@@ -283,10 +359,14 @@ abstract class Twig_Template implements Twig_TemplateInterface
                 return $template;
             }
 
+            if ($template instanceof Twig_TemplateWrapper) {
+                return $template;
+            }
+
             return $this->env->loadTemplate($template, $index);
         } catch (Twig_Error $e) {
-            if (!$e->getTemplateFile()) {
-                $e->setTemplateFile($templateName ? $templateName : $this->getTemplateName());
+            if (!$e->getSourceContext()) {
+                $e->setSourceContext($templateName ? new Twig_Source('', $templateName) : $this->getSourceContext());
             }
 
             if ($e->getTemplateLine()) {
@@ -311,8 +391,6 @@ abstract class Twig_Template implements Twig_TemplateInterface
      *
      * @return array An array of blocks
      *
-     * @see hasBlock
-     *
      * @internal
      */
     public function getBlocks()
@@ -320,44 +398,11 @@ abstract class Twig_Template implements Twig_TemplateInterface
         return $this->blocks;
     }
 
-    /**
-     * Returns the template source code.
-     *
-     * @return string|null The template source code or null if it is not available
-     */
-    public function getSource()
-    {
-        $reflector = new ReflectionClass($this);
-        $file = $reflector->getFileName();
-
-        if (!file_exists($file)) {
-            return;
-        }
-
-        $source = file($file, FILE_IGNORE_NEW_LINES);
-        array_splice($source, 0, $reflector->getEndLine());
-
-        $i = 0;
-        while (isset($source[$i]) && '/* */' === substr_replace($source[$i], '', 3, -2)) {
-            $source[$i] = str_replace('*//* ', '*/', substr($source[$i], 3, -2));
-            ++$i;
-        }
-        array_splice($source, $i);
-
-        return implode("\n", $source);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
     public function display(array $context, array $blocks = array())
     {
         $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
     }
 
-    /**
-     * {@inheritdoc}
-     */
     public function render(array $context)
     {
         $level = ob_get_level();
@@ -386,8 +431,8 @@ abstract class Twig_Template implements Twig_TemplateInterface
         try {
             $this->doDisplay($context, $blocks);
         } catch (Twig_Error $e) {
-            if (!$e->getTemplateFile()) {
-                $e->setTemplateFile($this->getTemplateName());
+            if (!$e->getSourceContext()) {
+                $e->setSourceContext($this->getSourceContext());
             }
 
             // this is mostly useful for Twig_Error_Loader exceptions
@@ -399,7 +444,7 @@ abstract class Twig_Template implements Twig_TemplateInterface
 
             throw $e;
         } catch (Exception $e) {
-            throw new Twig_Error_Runtime(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getTemplateName(), $e);
+            throw new Twig_Error_Runtime(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
         }
     }
 
@@ -439,7 +484,7 @@ abstract class Twig_Template implements Twig_TemplateInterface
                 return;
             }
 
-            throw new Twig_Error_Runtime(sprintf('Variable "%s" does not exist', $item), -1, $this->getTemplateName());
+            throw new Twig_Error_Runtime(sprintf('Variable "%s" does not exist.', $item), -1, $this->getSourceContext());
         }
 
         return $context[$item];
@@ -458,6 +503,8 @@ abstract class Twig_Template implements Twig_TemplateInterface
      * @return mixed The attribute value, or a Boolean when $isDefinedTest is true, or null when the attribute is not set and $ignoreStrictCheck is true
      *
      * @throws Twig_Error_Runtime if the attribute does not exist and Twig is running in strict mode and $isDefinedTest is false
+     *
+     * @internal
      */
     protected function getAttribute($object, $item, array $arguments = array(), $type = self::ANY_CALL, $isDefinedTest = false, $ignoreStrictCheck = false)
     {
@@ -465,7 +512,7 @@ abstract class Twig_Template implements Twig_TemplateInterface
         if (self::METHOD_CALL !== $type) {
             $arrayItem = is_bool($item) || is_float($item) ? (int) $item : $item;
 
-            if ((is_array($object) && array_key_exists($arrayItem, $object))
+            if ((is_array($object) && (isset($object[$arrayItem]) || array_key_exists($arrayItem, $object)))
                 || ($object instanceof ArrayAccess && isset($object[$arrayItem]))
             ) {
                 if ($isDefinedTest) {
@@ -485,28 +532,28 @@ abstract class Twig_Template implements Twig_TemplateInterface
                 }
 
                 if ($object instanceof ArrayAccess) {
-                    $message = sprintf('Key "%s" in object with ArrayAccess of class "%s" does not exist', $arrayItem, get_class($object));
+                    $message = sprintf('Key "%s" in object with ArrayAccess of class "%s" does not exist.', $arrayItem, get_class($object));
                 } elseif (is_object($object)) {
-                    $message = sprintf('Impossible to access a key "%s" on an object of class "%s" that does not implement ArrayAccess interface', $item, get_class($object));
+                    $message = sprintf('Impossible to access a key "%s" on an object of class "%s" that does not implement ArrayAccess interface.', $item, get_class($object));
                 } elseif (is_array($object)) {
                     if (empty($object)) {
-                        $message = sprintf('Key "%s" does not exist as the array is empty', $arrayItem);
+                        $message = sprintf('Key "%s" does not exist as the array is empty.', $arrayItem);
                     } else {
-                        $message = sprintf('Key "%s" for array with keys "%s" does not exist', $arrayItem, implode(', ', array_keys($object)));
+                        $message = sprintf('Key "%s" for array with keys "%s" does not exist.', $arrayItem, implode(', ', array_keys($object)));
                     }
                 } elseif (self::ARRAY_CALL === $type) {
                     if (null === $object) {
-                        $message = sprintf('Impossible to access a key ("%s") on a null variable', $item);
+                        $message = sprintf('Impossible to access a key ("%s") on a null variable.', $item);
                     } else {
-                        $message = sprintf('Impossible to access a key ("%s") on a %s variable ("%s")', $item, gettype($object), $object);
+                        $message = sprintf('Impossible to access a key ("%s") on a %s variable ("%s").', $item, gettype($object), $object);
                     }
                 } elseif (null === $object) {
-                    $message = sprintf('Impossible to access an attribute ("%s") on a null variable', $item);
+                    $message = sprintf('Impossible to access an attribute ("%s") on a null variable.', $item);
                 } else {
-                    $message = sprintf('Impossible to access an attribute ("%s") on a %s variable ("%s")', $item, gettype($object), $object);
+                    $message = sprintf('Impossible to access an attribute ("%s") on a %s variable ("%s").', $item, gettype($object), $object);
                 }
 
-                throw new Twig_Error_Runtime($message, -1, $this->getTemplateName());
+                throw new Twig_Error_Runtime($message, -1, $this->getSourceContext());
             }
         }
 
@@ -520,12 +567,12 @@ abstract class Twig_Template implements Twig_TemplateInterface
             }
 
             if (null === $object) {
-                $message = sprintf('Impossible to invoke a method ("%s") on a null variable', $item);
+                $message = sprintf('Impossible to invoke a method ("%s") on a null variable.', $item);
             } else {
-                $message = sprintf('Impossible to invoke a method ("%s") on a %s variable ("%s")', $item, gettype($object), $object);
+                $message = sprintf('Impossible to invoke a method ("%s") on a %s variable ("%s").', $item, gettype($object), $object);
             }
 
-            throw new Twig_Error_Runtime($message, -1, $this->getTemplateName());
+            throw new Twig_Error_Runtime($message, -1, $this->getSourceContext());
         }
 
         // object property
@@ -535,8 +582,8 @@ abstract class Twig_Template implements Twig_TemplateInterface
                     return true;
                 }
 
-                if ($this->env->hasExtension('sandbox')) {
-                    $this->env->getExtension('sandbox')->checkPropertyAllowed($object, $item);
+                if ($this->env->hasExtension('Twig_Extension_Sandbox')) {
+                    $this->env->getExtension('Twig_Extension_Sandbox')->checkPropertyAllowed($object, $item);
                 }
 
                 return $object->$item;
@@ -546,37 +593,60 @@ abstract class Twig_Template implements Twig_TemplateInterface
         $class = get_class($object);
 
         // object method
-        if (!isset(self::$cache[$class]['methods'])) {
+        if (!isset(self::$cache[$class])) {
             // get_class_methods returns all methods accessible in the scope, but we only want public ones to be accessible in templates
             if ($object instanceof self) {
                 $ref = new ReflectionClass($class);
                 $methods = array();
 
                 foreach ($ref->getMethods(ReflectionMethod::IS_PUBLIC) as $refMethod) {
-                    $methodName = strtolower($refMethod->name);
-
                     // Accessing the environment from templates is forbidden to prevent untrusted changes to the environment
-                    if ('getenvironment' !== $methodName) {
-                        $methods[$methodName] = true;
+                    if ('getenvironment' !== strtolower($refMethod->name)) {
+                        $methods[] = $refMethod->name;
                     }
                 }
-
-                self::$cache[$class]['methods'] = $methods;
             } else {
-                self::$cache[$class]['methods'] = array_change_key_case(array_flip(get_class_methods($object)));
+                $methods = get_class_methods($object);
             }
+            // sort values to have consistent behavior, so that "get" methods win precedence over "is" methods
+            sort($methods);
+
+            $cache = array();
+
+            foreach ($methods as $method) {
+                $cache[$method] = $method;
+                $cache[$lcName = strtolower($method)] = $method;
+
+                if ('g' === $lcName[0] && 0 === strpos($lcName, 'get')) {
+                    $name = substr($method, 3);
+                    $lcName = substr($lcName, 3);
+                } elseif ('i' === $lcName[0] && 0 === strpos($lcName, 'is')) {
+                    $name = substr($method, 2);
+                    $lcName = substr($lcName, 2);
+                } else {
+                    continue;
+                }
+
+                // skip get() and is() methods (in which case, $name is empty)
+                if ($name) {
+                    if (!isset($cache[$name])) {
+                        $cache[$name] = $method;
+                    }
+                    if (!isset($cache[$lcName])) {
+                        $cache[$lcName] = $method;
+                    }
+                }
+            }
+            self::$cache[$class] = $cache;
         }
 
         $call = false;
-        $lcItem = strtolower($item);
-        if (isset(self::$cache[$class]['methods'][$lcItem])) {
-            $method = (string) $item;
-        } elseif (isset(self::$cache[$class]['methods']['get'.$lcItem])) {
-            $method = 'get'.$item;
-        } elseif (isset(self::$cache[$class]['methods']['is'.$lcItem])) {
-            $method = 'is'.$item;
-        } elseif (isset(self::$cache[$class]['methods']['__call'])) {
-            $method = (string) $item;
+        if (isset(self::$cache[$class][$item])) {
+            $method = self::$cache[$class][$item];
+        } elseif (isset(self::$cache[$class][$lcItem = strtolower($item)])) {
+            $method = self::$cache[$class][$lcItem];
+        } elseif (isset(self::$cache[$class]['__call'])) {
+            $method = $item;
             $call = true;
         } else {
             if ($isDefinedTest) {
@@ -587,21 +657,25 @@ abstract class Twig_Template implements Twig_TemplateInterface
                 return;
             }
 
-            throw new Twig_Error_Runtime(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()" or "__call()" exist and have public access in class "%2$s"', $item, get_class($object)), -1, $this->getTemplateName());
+            throw new Twig_Error_Runtime(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), -1, $this->getSourceContext());
         }
 
         if ($isDefinedTest) {
             return true;
         }
 
-        if ($this->env->hasExtension('sandbox')) {
-            $this->env->getExtension('sandbox')->checkMethodAllowed($object, $method);
+        if ($this->env->hasExtension('Twig_Extension_Sandbox')) {
+            $this->env->getExtension('Twig_Extension_Sandbox')->checkMethodAllowed($object, $method);
         }
 
         // Some objects throw exceptions when they have __call, and the method we try
         // to call is not supported. If ignoreStrictCheck is true, we should return null.
         try {
-            $ret = call_user_func_array(array($object, $method), $arguments);
+            if (!$arguments) {
+                $ret = $object->$method();
+            } else {
+                $ret = call_user_func_array(array($object, $method), $arguments);
+            }
         } catch (BadMethodCallException $e) {
             if ($call && ($ignoreStrictCheck || !$this->env->isStrictVariables())) {
                 return;
@@ -609,9 +683,19 @@ abstract class Twig_Template implements Twig_TemplateInterface
             throw $e;
         }
 
-        // useful when calling a template method from a template
-        // this is not supported but unfortunately heavily used in the Symfony profiler
+        // @deprecated in 1.28
         if ($object instanceof Twig_TemplateInterface) {
+            $self = $object->getTemplateName() === $this->getTemplateName();
+            $message = sprintf('Calling "%s" on template "%s" from template "%s" is deprecated since version 1.28 and won\'t be supported anymore in 2.0.', $item, $object->getTemplateName(), $this->getTemplateName());
+            if ('renderBlock' === $method || 'displayBlock' === $method) {
+                $message .= sprintf(' Use block("%s"%s) instead).', $arguments[0], $self ? '' : ', template');
+            } elseif ('hasBlock' === $method) {
+                $message .= sprintf(' Use "block("%s"%s) is defined" instead).', $arguments[0], $self ? '' : ', template');
+            } elseif ('render' === $method || 'display' === $method) {
+                $message .= sprintf(' Use include("%s") instead).', $object->getTemplateName());
+            }
+            @trigger_error($message, E_USER_DEPRECATED);
+
             return $ret === '' ? '' : new Twig_Markup($ret, $this->env->getCharset());
         }
 
--- a/vendor/twig/twig/lib/Twig/TemplateInterface.php
+++ b/vendor/twig/twig/lib/Twig/TemplateInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -42,7 +42,7 @@ interface Twig_TemplateInterface
     /**
      * Returns the bound environment for this template.
      *
-     * @return Twig_Environment The current environment
+     * @return Twig_Environment
      */
     public function getEnvironment();
 }
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/TemplateWrapper.php
@@ -0,0 +1,131 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Exposes a template to userland.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+final class Twig_TemplateWrapper
+{
+    private $env;
+    private $template;
+
+    /**
+     * This method is for internal use only and should never be called
+     * directly (use Twig_Environment::load() instead).
+     *
+     * @internal
+     */
+    public function __construct(Twig_Environment $env, Twig_Template $template)
+    {
+        $this->env = $env;
+        $this->template = $template;
+    }
+
+    /**
+     * Renders the template.
+     *
+     * @param array $context An array of parameters to pass to the template
+     *
+     * @return string The rendered template
+     */
+    public function render($context = array())
+    {
+        return $this->template->render($context);
+    }
+
+    /**
+     * Displays the template.
+     *
+     * @param array $context An array of parameters to pass to the template
+     */
+    public function display($context = array())
+    {
+        $this->template->display($context);
+    }
+
+    /**
+     * Checks if a block is defined.
+     *
+     * @param string $name    The block name
+     * @param array  $context An array of parameters to pass to the template
+     *
+     * @return bool
+     */
+    public function hasBlock($name, $context = array())
+    {
+        return $this->template->hasBlock($name, $context);
+    }
+
+    /**
+     * Returns defined block names in the template.
+     *
+     * @param array $context An array of parameters to pass to the template
+     *
+     * @return string[] An array of defined template block names
+     */
+    public function getBlockNames($context = array())
+    {
+        return $this->template->getBlockNames($context);
+    }
+
+    /**
+     * Renders a template block.
+     *
+     * @param string $name    The block name to render
+     * @param array  $context An array of parameters to pass to the template
+     *
+     * @return string The rendered block
+     */
+    public function renderBlock($name, $context = array())
+    {
+        $context = $this->env->mergeGlobals($context);
+        $level = ob_get_level();
+        ob_start();
+        try {
+            $this->template->displayBlock($name, $context);
+        } catch (Exception $e) {
+            while (ob_get_level() > $level) {
+                ob_end_clean();
+            }
+
+            throw $e;
+        } catch (Throwable $e) {
+            while (ob_get_level() > $level) {
+                ob_end_clean();
+            }
+
+            throw $e;
+        }
+
+        return ob_get_clean();
+    }
+
+    /**
+     * Displays a template block.
+     *
+     * @param string $name    The block name to render
+     * @param array  $context An array of parameters to pass to the template
+     */
+    public function displayBlock($name, $context = array())
+    {
+        $this->template->displayBlock($name, $this->env->mergeGlobals($context));
+    }
+
+    /**
+     * @return Twig_Source
+     */
+    public function getSourceContext()
+    {
+        return $this->template->getSourceContext();
+    }
+}
--- a/vendor/twig/twig/lib/Twig/Test.php
+++ b/vendor/twig/twig/lib/Twig/Test.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Test/Function.php
+++ b/vendor/twig/twig/lib/Twig/Test/Function.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php
+++ b/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -121,6 +121,10 @@ abstract class Twig_Test_IntegrationTestCase extends PHPUnit_Framework_TestCase
 
     protected function doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs)
     {
+        if (!$outputs) {
+            $this->markTestSkipped('no legacy tests to run');
+        }
+
         if ($condition) {
             eval('$ret = '.$condition.';');
             if (!$ret) {
@@ -167,17 +171,12 @@ abstract class Twig_Test_IntegrationTestCase extends PHPUnit_Framework_TestCase
                 if (false !== $exception) {
                     $message = $e->getMessage();
                     $this->assertSame(trim($exception), trim(sprintf('%s: %s', get_class($e), $message)));
-                    $this->assertSame('.', substr($message, strlen($message) - 1), $message, 'Exception message must end with a dot.');
+                    $last = substr($message, strlen($message) - 1);
+                    $this->assertTrue('.' === $last || '?' === $last, $message, 'Exception message must end with a dot or a question mark.');
 
                     return;
                 }
 
-                if ($e instanceof Twig_Error_Syntax) {
-                    $e->setTemplateFile($file);
-
-                    throw $e;
-                }
-
                 throw new Twig_Error(sprintf('%s: %s', get_class($e), $e->getMessage()), -1, $file, $e);
             }
 
@@ -190,11 +189,7 @@ abstract class Twig_Test_IntegrationTestCase extends PHPUnit_Framework_TestCase
                     return;
                 }
 
-                if ($e instanceof Twig_Error_Syntax) {
-                    $e->setTemplateFile($file);
-                } else {
-                    $e = new Twig_Error(sprintf('%s: %s', get_class($e), $e->getMessage()), -1, $file, $e);
-                }
+                $e = new Twig_Error(sprintf('%s: %s', get_class($e), $e->getMessage()), -1, $file, $e);
 
                 $output = trim(sprintf('%s: %s', get_class($e), $e->getMessage()));
             }
@@ -211,8 +206,13 @@ abstract class Twig_Test_IntegrationTestCase extends PHPUnit_Framework_TestCase
 
                 foreach (array_keys($templates) as $name) {
                     echo "Template: $name\n";
-                    $source = $loader->getSource($name);
-                    echo $twig->compile($twig->parse($twig->tokenize($source, $name)));
+                    $loader = $twig->getLoader();
+                    if (!$loader instanceof Twig_SourceContextLoaderInterface) {
+                        $source = new Twig_Source($loader->getSource($name), $name);
+                    } else {
+                        $source = $loader->getSourceContext($name);
+                    }
+                    echo $twig->compile($twig->parse($twig->tokenize($source)));
                 }
             }
             $this->assertEquals($expected, $output, $message.' (in '.$file.')');
--- a/vendor/twig/twig/lib/Twig/Test/Method.php
+++ b/vendor/twig/twig/lib/Twig/Test/Method.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -35,6 +35,6 @@ class Twig_Test_Method extends Twig_Test
 
     public function compile()
     {
-        return sprintf('$this->env->getExtension(\'%s\')->%s', $this->extension->getName(), $this->method);
+        return sprintf('$this->env->getExtension(\'%s\')->%s', get_class($this->extension), $this->method);
     }
 }
--- a/vendor/twig/twig/lib/Twig/Test/Node.php
+++ b/vendor/twig/twig/lib/Twig/Test/Node.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Test/NodeTestCase.php
+++ b/vendor/twig/twig/lib/Twig/Test/NodeTestCase.php
@@ -46,6 +46,10 @@ abstract class Twig_Test_NodeTestCase extends PHPUnit_Framework_TestCase
     {
         $line = $line > 0 ? "// line {$line}\n" : '';
 
+        if (PHP_VERSION_ID >= 70000) {
+            return sprintf('%s($context["%s"] ?? null)', $line, $name, $name);
+        }
+
         if (PHP_VERSION_ID >= 50400) {
             return sprintf('%s(isset($context["%s"]) ? $context["%s"] : null)', $line, $name, $name);
         }
--- a/vendor/twig/twig/lib/Twig/TestCallableInterface.php
+++ b/vendor/twig/twig/lib/Twig/TestCallableInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/TestInterface.php
+++ b/vendor/twig/twig/lib/Twig/TestInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
--- a/vendor/twig/twig/lib/Twig/Token.php
+++ b/vendor/twig/twig/lib/Twig/Token.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -14,6 +14,8 @@
  * Represents a Token.
  *
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @final
  */
 class Twig_Token
 {
@@ -36,8 +38,6 @@ class Twig_Token
     const INTERPOLATION_END_TYPE = 11;
 
     /**
-     * Constructor.
-     *
      * @param int    $type   The type of the token
      * @param string $value  The token value
      * @param int    $lineno The line position in the source
@@ -49,11 +49,6 @@ class Twig_Token
         $this->lineno = $lineno;
     }
 
-    /**
-     * Returns a string representation of the token.
-     *
-     * @return string A string representation of the token
-     */
     public function __toString()
     {
         return sprintf('%s(%s)', self::typeToString($this->type, true), $this->value);
@@ -63,9 +58,9 @@ class Twig_Token
      * Tests the current token for a type and/or a value.
      *
      * Parameters may be:
-     * * just type
-     * * type and value (or array of possible values)
-     * * just value (or array of possible values) (NAME_TYPE is used as type)
+     *  * just type
+     *  * type and value (or array of possible values)
+     *  * just value (or array of possible values) (NAME_TYPE is used as type)
      *
      * @param array|int         $type   The type to test
      * @param array|string|null $values The token value
@@ -87,9 +82,7 @@ class Twig_Token
     }
 
     /**
-     * Gets the line.
-     *
-     * @return int The source line
+     * @return int
      */
     public function getLine()
     {
@@ -97,9 +90,7 @@ class Twig_Token
     }
 
     /**
-     * Gets the token type.
-     *
-     * @return int The token type
+     * @return int
      */
     public function getType()
     {
@@ -107,9 +98,7 @@ class Twig_Token
     }
 
     /**
-     * Gets the token value.
-     *
-     * @return string The token value
+     * @return string
      */
     public function getValue()
     {
@@ -174,7 +163,7 @@ class Twig_Token
     }
 
     /**
-     * Returns the english representation of a given type.
+     * Returns the English representation of a given type.
      *
      * @param int $type The type as an integer
      *
--- a/vendor/twig/twig/lib/Twig/TokenParser.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -23,8 +23,6 @@ abstract class Twig_TokenParser implements Twig_TokenParserInterface
 
     /**
      * Sets the parser associated with this token parser.
-     *
-     * @param Twig_Parser $parser A Twig_Parser instance
      */
     public function setParser(Twig_Parser $parser)
     {
--- a/vendor/twig/twig/lib/Twig/TokenParser/AutoEscape.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/AutoEscape.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -26,6 +26,8 @@
  *   using the js escaping strategy
  * {% endautoescape %}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_AutoEscape extends Twig_TokenParser
 {
@@ -39,7 +41,7 @@ class Twig_TokenParser_AutoEscape extends Twig_TokenParser
         } else {
             $expr = $this->parser->getExpressionParser()->parseExpression();
             if (!$expr instanceof Twig_Node_Expression_Constant) {
-                throw new Twig_Error_Syntax('An escaping strategy must be a string or a bool.', $stream->getCurrent()->getLine(), $stream->getFilename());
+                throw new Twig_Error_Syntax('An escaping strategy must be a string or a bool.', $stream->getCurrent()->getLine(), $stream->getSourceContext());
             }
             $value = $expr->getAttribute('value');
 
@@ -53,7 +55,7 @@ class Twig_TokenParser_AutoEscape extends Twig_TokenParser
                 @trigger_error('Using the autoescape tag with "true" or "false" before the strategy name is deprecated since version 1.21.', E_USER_DEPRECATED);
 
                 if (false === $value) {
-                    throw new Twig_Error_Syntax('Unexpected escaping strategy as you set autoescaping to false.', $stream->getCurrent()->getLine(), $stream->getFilename());
+                    throw new Twig_Error_Syntax('Unexpected escaping strategy as you set autoescaping to false.', $stream->getCurrent()->getLine(), $stream->getSourceContext());
                 }
 
                 $value = $stream->next()->getValue();
--- a/vendor/twig/twig/lib/Twig/TokenParser/Block.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Block.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -19,6 +19,8 @@
  *    <title>{% block title %}{% endblock %} - My Webpage</title>
  *  {% endblock %}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_Block extends Twig_TokenParser
 {
@@ -28,7 +30,7 @@ class Twig_TokenParser_Block extends Twig_TokenParser
         $stream = $this->parser->getStream();
         $name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
         if ($this->parser->hasBlock($name)) {
-            throw new Twig_Error_Syntax(sprintf("The block '%s' has already been defined line %d.", $name, $this->parser->getBlock($name)->getLine()), $stream->getCurrent()->getLine(), $stream->getFilename());
+            throw new Twig_Error_Syntax(sprintf("The block '%s' has already been defined line %d.", $name, $this->parser->getBlock($name)->getTemplateLine()), $stream->getCurrent()->getLine(), $stream->getSourceContext());
         }
         $this->parser->setBlock($name, $block = new Twig_Node_Block($name, new Twig_Node(array()), $lineno));
         $this->parser->pushLocalScope();
@@ -40,7 +42,7 @@ class Twig_TokenParser_Block extends Twig_TokenParser
                 $value = $token->getValue();
 
                 if ($value != $name) {
-                    throw new Twig_Error_Syntax(sprintf('Expected endblock for block "%s" (but "%s" given).', $name, $value), $stream->getCurrent()->getLine(), $stream->getFilename());
+                    throw new Twig_Error_Syntax(sprintf('Expected endblock for block "%s" (but "%s" given).', $name, $value), $stream->getCurrent()->getLine(), $stream->getSourceContext());
                 }
             }
         } else {
--- a/vendor/twig/twig/lib/Twig/TokenParser/Do.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Do.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -11,6 +11,8 @@
 
 /**
  * Evaluates an expression, discarding the returned value.
+ *
+ * @final
  */
 class Twig_TokenParser_Do extends Twig_TokenParser
 {
--- a/vendor/twig/twig/lib/Twig/TokenParser/Embed.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Embed.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2012 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -11,6 +11,8 @@
 
 /**
  * Embeds a template.
+ *
+ * @final
  */
 class Twig_TokenParser_Embed extends Twig_TokenParser_Include
 {
@@ -22,24 +24,33 @@ class Twig_TokenParser_Embed extends Twig_TokenParser_Include
 
         list($variables, $only, $ignoreMissing) = $this->parseArguments();
 
+        $parentToken = $fakeParentToken = new Twig_Token(Twig_Token::STRING_TYPE, '__parent__', $token->getLine());
+        if ($parent instanceof Twig_Node_Expression_Constant) {
+            $parentToken = new Twig_Token(Twig_Token::STRING_TYPE, $parent->getAttribute('value'), $token->getLine());
+        } elseif ($parent instanceof Twig_Node_Expression_Name) {
+            $parentToken = new Twig_Token(Twig_Token::NAME_TYPE, $parent->getAttribute('name'), $token->getLine());
+        }
+
         // inject a fake parent to make the parent() function work
         $stream->injectTokens(array(
             new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', $token->getLine()),
             new Twig_Token(Twig_Token::NAME_TYPE, 'extends', $token->getLine()),
-            new Twig_Token(Twig_Token::STRING_TYPE, '__parent__', $token->getLine()),
+            $parentToken,
             new Twig_Token(Twig_Token::BLOCK_END_TYPE, '', $token->getLine()),
         ));
 
         $module = $this->parser->parse($stream, array($this, 'decideBlockEnd'), true);
 
         // override the parent with the correct one
-        $module->setNode('parent', $parent);
+        if ($fakeParentToken === $parentToken) {
+            $module->setNode('parent', $parent);
+        }
 
         $this->parser->embedTemplate($module);
 
         $stream->expect(Twig_Token::BLOCK_END_TYPE);
 
-        return new Twig_Node_Embed($module->getAttribute('filename'), $module->getAttribute('index'), $variables, $only, $ignoreMissing, $token->getLine(), $this->getTag());
+        return new Twig_Node_Embed($module->getTemplateName(), $module->getAttribute('index'), $variables, $only, $ignoreMissing, $token->getLine(), $this->getTag());
     }
 
     public function decideBlockEnd(Twig_Token $token)
--- a/vendor/twig/twig/lib/Twig/TokenParser/Extends.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Extends.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -16,21 +16,25 @@
  * <pre>
  *  {% extends "base.html" %}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_Extends extends Twig_TokenParser
 {
     public function parse(Twig_Token $token)
     {
+        $stream = $this->parser->getStream();
+
         if (!$this->parser->isMainScope()) {
-            throw new Twig_Error_Syntax('Cannot extend from a block.', $token->getLine(), $this->parser->getFilename());
+            throw new Twig_Error_Syntax('Cannot extend from a block.', $token->getLine(), $stream->getSourceContext());
         }
 
         if (null !== $this->parser->getParent()) {
-            throw new Twig_Error_Syntax('Multiple extends tags are forbidden.', $token->getLine(), $this->parser->getFilename());
+            throw new Twig_Error_Syntax('Multiple extends tags are forbidden.', $token->getLine(), $stream->getSourceContext());
         }
         $this->parser->setParent($this->parser->getExpressionParser()->parseExpression());
 
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
+        $stream->expect(Twig_Token::BLOCK_END_TYPE);
     }
 
     public function getTag()
--- a/vendor/twig/twig/lib/Twig/TokenParser/Filter.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Filter.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -17,13 +17,15 @@
  *  This text becomes uppercase
  * {% endfilter %}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_Filter extends Twig_TokenParser
 {
     public function parse(Twig_Token $token)
     {
         $name = $this->parser->getVarName();
-        $ref = new Twig_Node_Expression_BlockReference(new Twig_Node_Expression_Constant($name, $token->getLine()), true, $token->getLine(), $this->getTag());
+        $ref = new Twig_Node_Expression_BlockReference(new Twig_Node_Expression_Constant($name, $token->getLine()), null, $token->getLine(), $this->getTag());
 
         $filter = $this->parser->getExpressionParser()->parseFilterExpressionRaw($ref, $this->getTag());
         $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
--- a/vendor/twig/twig/lib/Twig/TokenParser/Flush.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Flush.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,6 +13,8 @@
  * Flushes the output to the client.
  *
  * @see flush()
+ *
+ * @final
  */
 class Twig_TokenParser_Flush extends Twig_TokenParser
 {
--- a/vendor/twig/twig/lib/Twig/TokenParser/For.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/For.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -20,6 +20,8 @@
  *  {% endfor %}
  * </ul>
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_For extends Twig_TokenParser
 {
@@ -48,13 +50,13 @@ class Twig_TokenParser_For extends Twig_TokenParser
 
         if (count($targets) > 1) {
             $keyTarget = $targets->getNode(0);
-            $keyTarget = new Twig_Node_Expression_AssignName($keyTarget->getAttribute('name'), $keyTarget->getLine());
+            $keyTarget = new Twig_Node_Expression_AssignName($keyTarget->getAttribute('name'), $keyTarget->getTemplateLine());
             $valueTarget = $targets->getNode(1);
-            $valueTarget = new Twig_Node_Expression_AssignName($valueTarget->getAttribute('name'), $valueTarget->getLine());
+            $valueTarget = new Twig_Node_Expression_AssignName($valueTarget->getAttribute('name'), $valueTarget->getTemplateLine());
         } else {
             $keyTarget = new Twig_Node_Expression_AssignName('_key', $lineno);
             $valueTarget = $targets->getNode(0);
-            $valueTarget = new Twig_Node_Expression_AssignName($valueTarget->getAttribute('name'), $valueTarget->getLine());
+            $valueTarget = new Twig_Node_Expression_AssignName($valueTarget->getAttribute('name'), $valueTarget->getTemplateLine());
         }
 
         if ($ifexpr) {
@@ -79,7 +81,7 @@ class Twig_TokenParser_For extends Twig_TokenParser
     protected function checkLoopUsageCondition(Twig_TokenStream $stream, Twig_NodeInterface $node)
     {
         if ($node instanceof Twig_Node_Expression_GetAttr && $node->getNode('node') instanceof Twig_Node_Expression_Name && 'loop' == $node->getNode('node')->getAttribute('name')) {
-            throw new Twig_Error_Syntax('The "loop" variable cannot be used in a looping condition.', $node->getLine(), $stream->getFilename());
+            throw new Twig_Error_Syntax('The "loop" variable cannot be used in a looping condition.', $node->getTemplateLine(), $stream->getSourceContext());
         }
 
         foreach ($node as $n) {
@@ -98,7 +100,7 @@ class Twig_TokenParser_For extends Twig_TokenParser
         if ($node instanceof Twig_Node_Expression_GetAttr && $node->getNode('node') instanceof Twig_Node_Expression_Name && 'loop' == $node->getNode('node')->getAttribute('name')) {
             $attribute = $node->getNode('attribute');
             if ($attribute instanceof Twig_Node_Expression_Constant && in_array($attribute->getAttribute('value'), array('length', 'revindex0', 'revindex', 'last'))) {
-                throw new Twig_Error_Syntax(sprintf('The "loop.%s" variable is not defined when looping with a condition.', $attribute->getAttribute('value')), $node->getLine(), $stream->getFilename());
+                throw new Twig_Error_Syntax(sprintf('The "loop.%s" variable is not defined when looping with a condition.', $attribute->getAttribute('value')), $node->getTemplateLine(), $stream->getSourceContext());
             }
         }
 
--- a/vendor/twig/twig/lib/Twig/TokenParser/From.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/From.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -15,6 +15,8 @@
  * <pre>
  *   {% from 'forms.html' import forms %}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_From extends Twig_TokenParser
 {
@@ -46,7 +48,7 @@ class Twig_TokenParser_From extends Twig_TokenParser
 
         foreach ($targets as $name => $alias) {
             if ($this->parser->isReservedMacroName($name)) {
-                throw new Twig_Error_Syntax(sprintf('"%s" cannot be an imported macro as it is a reserved keyword.', $name), $token->getLine(), $stream->getFilename());
+                throw new Twig_Error_Syntax(sprintf('"%s" cannot be an imported macro as it is a reserved keyword.', $name), $token->getLine(), $stream->getSourceContext());
             }
 
             $this->parser->addImportedSymbol('function', $alias, 'get'.$name, $node->getNode('var'));
--- a/vendor/twig/twig/lib/Twig/TokenParser/If.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/If.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -22,6 +22,8 @@
  *  </ul>
  * {% endif %}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_If extends Twig_TokenParser
 {
@@ -56,7 +58,7 @@ class Twig_TokenParser_If extends Twig_TokenParser
                     break;
 
                 default:
-                    throw new Twig_Error_Syntax(sprintf('Unexpected end of template. Twig was looking for the following tags "else", "elseif", or "endif" to close the "if" block started at line %d).', $lineno), $stream->getCurrent()->getLine(), $stream->getFilename());
+                    throw new Twig_Error_Syntax(sprintf('Unexpected end of template. Twig was looking for the following tags "else", "elseif", or "endif" to close the "if" block started at line %d).', $lineno), $stream->getCurrent()->getLine(), $stream->getSourceContext());
             }
         }
 
--- a/vendor/twig/twig/lib/Twig/TokenParser/Import.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Import.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -15,6 +15,8 @@
  * <pre>
  *   {% import 'forms.html' as forms %}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_Import extends Twig_TokenParser
 {
--- a/vendor/twig/twig/lib/Twig/TokenParser/Include.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Include.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -18,6 +18,8 @@
  *     Body
  *   {% include 'footer.html' %}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_Include extends Twig_TokenParser
 {
--- a/vendor/twig/twig/lib/Twig/TokenParser/Macro.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Macro.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -17,6 +17,8 @@
  *    <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
  * {% endmacro %}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_Macro extends Twig_TokenParser
 {
@@ -35,7 +37,7 @@ class Twig_TokenParser_Macro extends Twig_TokenParser
             $value = $token->getValue();
 
             if ($value != $name) {
-                throw new Twig_Error_Syntax(sprintf('Expected endmacro for macro "%s" (but "%s" given).', $name, $value), $stream->getCurrent()->getLine(), $stream->getFilename());
+                throw new Twig_Error_Syntax(sprintf('Expected endmacro for macro "%s" (but "%s" given).', $name, $value), $stream->getCurrent()->getLine(), $stream->getSourceContext());
             }
         }
         $this->parser->popLocalScope();
--- a/vendor/twig/twig/lib/Twig/TokenParser/Sandbox.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Sandbox.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -19,14 +19,17 @@
  * </pre>
  *
  * @see http://www.twig-project.org/doc/api.html#sandbox-extension for details
+ *
+ * @final
  */
 class Twig_TokenParser_Sandbox extends Twig_TokenParser
 {
     public function parse(Twig_Token $token)
     {
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
+        $stream = $this->parser->getStream();
+        $stream->expect(Twig_Token::BLOCK_END_TYPE);
         $body = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
+        $stream->expect(Twig_Token::BLOCK_END_TYPE);
 
         // in a sandbox tag, only include tags are allowed
         if (!$body instanceof Twig_Node_Include) {
@@ -36,7 +39,7 @@ class Twig_TokenParser_Sandbox extends Twig_TokenParser
                 }
 
                 if (!$node instanceof Twig_Node_Include) {
-                    throw new Twig_Error_Syntax('Only "include" tags are allowed within a "sandbox" section.', $node->getLine(), $this->parser->getFilename());
+                    throw new Twig_Error_Syntax('Only "include" tags are allowed within a "sandbox" section.', $node->getTemplateLine(), $stream->getSourceContext());
                 }
             }
         }
--- a/vendor/twig/twig/lib/Twig/TokenParser/Set.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Set.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -25,6 +25,8 @@
  *
  *  {% set foo %}Some content{% endset %}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_Set extends Twig_TokenParser
 {
@@ -41,13 +43,13 @@ class Twig_TokenParser_Set extends Twig_TokenParser
             $stream->expect(Twig_Token::BLOCK_END_TYPE);
 
             if (count($names) !== count($values)) {
-                throw new Twig_Error_Syntax('When using set, you must have the same number of variables and assignments.', $stream->getCurrent()->getLine(), $stream->getFilename());
+                throw new Twig_Error_Syntax('When using set, you must have the same number of variables and assignments.', $stream->getCurrent()->getLine(), $stream->getSourceContext());
             }
         } else {
             $capture = true;
 
             if (count($names) > 1) {
-                throw new Twig_Error_Syntax('When using set with a block, you cannot have a multi-target.', $stream->getCurrent()->getLine(), $stream->getFilename());
+                throw new Twig_Error_Syntax('When using set with a block, you cannot have a multi-target.', $stream->getCurrent()->getLine(), $stream->getSourceContext());
             }
 
             $stream->expect(Twig_Token::BLOCK_END_TYPE);
--- a/vendor/twig/twig/lib/Twig/TokenParser/Spaceless.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Spaceless.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -21,6 +21,8 @@
  *
  * {# output will be <div><strong>foo</strong></div> #}
  * </pre>
+ *
+ * @final
  */
 class Twig_TokenParser_Spaceless extends Twig_TokenParser
 {
--- a/vendor/twig/twig/lib/Twig/TokenParser/Use.php
+++ b/vendor/twig/twig/lib/Twig/TokenParser/Use.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2011 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -22,6 +22,8 @@
  * </pre>
  *
  * @see http://www.twig-project.org/doc/templates.html#horizontal-reuse for details.
+ *
+ * @final
  */
 class Twig_TokenParser_Use extends Twig_TokenParser
 {
@@ -31,7 +33,7 @@ class Twig_TokenParser_Use extends Twig_TokenParser
         $stream = $this->parser->getStream();
 
         if (!$template instanceof Twig_Node_Expression_Constant) {
-            throw new Twig_Error_Syntax('The template references in a "use" statement must be a string.', $stream->getCurrent()->getLine(), $stream->getFilename());
+            throw new Twig_Error_Syntax('The template references in a "use" statement must be a string.', $stream->getCurrent()->getLine(), $stream->getSourceContext());
         }
 
         $targets = array();
--- /dev/null
+++ b/vendor/twig/twig/lib/Twig/TokenParser/With.php
@@ -0,0 +1,50 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Creates a nested scope.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @final
+ */
+class Twig_TokenParser_With extends Twig_TokenParser
+{
+    public function parse(Twig_Token $token)
+    {
+        $stream = $this->parser->getStream();
+
+        $variables = null;
+        $only = false;
+        if (!$stream->test(Twig_Token::BLOCK_END_TYPE)) {
+            $variables = $this->parser->getExpressionParser()->parseExpression();
+            $only = $stream->nextIf(Twig_Token::NAME_TYPE, 'only');
+        }
+
+        $stream->expect(Twig_Token::BLOCK_END_TYPE);
+
+        $body = $this->parser->subparse(array($this, 'decideWithEnd'), true);
+
+        $stream->expect(Twig_Token::BLOCK_END_TYPE);
+
+        return new Twig_Node_With($body, $variables, $only, $token->getLine(), $this->getTag());
+    }
+
+    public function decideWithEnd(Twig_Token $token)
+    {
+        return $token->test('endwith');
+    }
+
+    public function getTag()
+    {
+        return 'with';
+    }
+}
--- a/vendor/twig/twig/lib/Twig/TokenParserBroker.php
+++ b/vendor/twig/twig/lib/Twig/TokenParserBroker.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
- * (c) 2010 Arnaud Le Blanc
+ * (c) Fabien Potencier
+ * (c) Arnaud Le Blanc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -24,8 +24,6 @@ class Twig_TokenParserBroker implements Twig_TokenParserBrokerInterface
     protected $brokers = array();
 
     /**
-     * Constructor.
-     *
      * @param array|Traversable $parsers                 A Traversable of Twig_TokenParserInterface instances
      * @param array|Traversable $brokers                 A Traversable of Twig_TokenParserBrokerInterface instances
      * @param bool              $triggerDeprecationError
@@ -50,21 +48,11 @@ class Twig_TokenParserBroker implements Twig_TokenParserBrokerInterface
         }
     }
 
-    /**
-     * Adds a TokenParser.
-     *
-     * @param Twig_TokenParserInterface $parser A Twig_TokenParserInterface instance
-     */
     public function addTokenParser(Twig_TokenParserInterface $parser)
     {
         $this->parsers[$parser->getTag()] = $parser;
     }
 
-    /**
-     * Removes a TokenParser.
-     *
-     * @param Twig_TokenParserInterface $parser A Twig_TokenParserInterface instance
-     */
     public function removeTokenParser(Twig_TokenParserInterface $parser)
     {
         $name = $parser->getTag();
@@ -73,21 +61,11 @@ class Twig_TokenParserBroker implements Twig_TokenParserBrokerInterface
         }
     }
 
-    /**
-     * Adds a TokenParserBroker.
-     *
-     * @param Twig_TokenParserBroker $broker A Twig_TokenParserBroker instance
-     */
     public function addTokenParserBroker(Twig_TokenParserBroker $broker)
     {
         $this->brokers[] = $broker;
     }
 
-    /**
-     * Removes a TokenParserBroker.
-     *
-     * @param Twig_TokenParserBroker $broker A Twig_TokenParserBroker instance
-     */
     public function removeTokenParserBroker(Twig_TokenParserBroker $broker)
     {
         if (false !== $pos = array_search($broker, $this->brokers)) {
--- a/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php
+++ b/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
- * (c) 2010 Arnaud Le Blanc
+ * (c) Fabien Potencier
+ * (c) Arnaud Le Blanc
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -26,14 +26,12 @@ interface Twig_TokenParserBrokerInterface
      *
      * @param string $tag A tag name
      *
-     * @return null|Twig_TokenParserInterface A Twig_TokenParserInterface or null if no suitable TokenParser was found
+     * @return Twig_TokenParserInterface|null A Twig_TokenParserInterface or null if no suitable TokenParser was found
      */
     public function getTokenParser($tag);
 
     /**
      * Calls Twig_TokenParserInterface::setParser on all parsers the implementation knows of.
-     *
-     * @param Twig_ParserInterface $parser A Twig_ParserInterface interface
      */
     public function setParser(Twig_ParserInterface $parser);
 
--- a/vendor/twig/twig/lib/Twig/TokenParserInterface.php
+++ b/vendor/twig/twig/lib/Twig/TokenParserInterface.php
@@ -3,7 +3,7 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -18,17 +18,13 @@ interface Twig_TokenParserInterface
 {
     /**
      * Sets the parser associated with this token parser.
-     *
-     * @param Twig_Parser $parser A Twig_Parser instance
      */
     public function setParser(Twig_Parser $parser);
 
     /**
      * Parses a token and returns a node.
      *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
+     * @return Twig_NodeInterface
      *
      * @throws Twig_Error_Syntax
      */
--- a/vendor/twig/twig/lib/Twig/TokenStream.php
+++ b/vendor/twig/twig/lib/Twig/TokenStream.php
@@ -3,8 +3,8 @@
 /*
  * This file is part of Twig.
  *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
@@ -13,6 +13,8 @@
 /**
  * Represents a token stream.
  *
+ * @final
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class Twig_TokenStream
@@ -21,23 +23,30 @@ class Twig_TokenStream
     protected $current = 0;
     protected $filename;
 
+    private $source;
+
     /**
-     * Constructor.
-     *
-     * @param array  $tokens   An array of tokens
-     * @param string $filename The name of the filename which tokens are associated with
+     * @param array       $tokens An array of tokens
+     * @param string|null $name   The name of the template which tokens are associated with
+     * @param string|null $source The source code associated with the tokens
      */
-    public function __construct(array $tokens, $filename = null)
+    public function __construct(array $tokens, $name = null, $source = null)
     {
+        if (!$name instanceof Twig_Source) {
+            if (null !== $name || null !== $source) {
+                @trigger_error(sprintf('Passing a string as the $name argument of %s() is deprecated since version 1.27. Pass a Twig_Source instance instead.', __METHOD__), E_USER_DEPRECATED);
+            }
+            $this->source = new Twig_Source($source, $name);
+        } else {
+            $this->source = $name;
+        }
+
         $this->tokens = $tokens;
-        $this->filename = $filename;
+
+        // deprecated, not used anymore, to be removed in 2.0
+        $this->filename = $this->source->getName();
     }
 
-    /**
-     * Returns a string representation of the token stream.
-     *
-     * @return string
-     */
     public function __toString()
     {
         return implode("\n", $this->tokens);
@@ -56,7 +65,7 @@ class Twig_TokenStream
     public function next()
     {
         if (!isset($this->tokens[++$this->current])) {
-            throw new Twig_Error_Syntax('Unexpected end of template.', $this->tokens[$this->current - 1]->getLine(), $this->filename);
+            throw new Twig_Error_Syntax('Unexpected end of template.', $this->tokens[$this->current - 1]->getLine(), $this->source);
         }
 
         return $this->tokens[$this->current - 1];
@@ -89,7 +98,7 @@ class Twig_TokenStream
                 Twig_Token::typeToEnglish($token->getType()), $token->getValue(),
                 Twig_Token::typeToEnglish($type), $value ? sprintf(' with value "%s"', $value) : ''),
                 $line,
-                $this->filename
+                $this->source
             );
         }
         $this->next();
@@ -107,7 +116,7 @@ class Twig_TokenStream
     public function look($number = 1)
     {
         if (!isset($this->tokens[$this->current + $number])) {
-            throw new Twig_Error_Syntax('Unexpected end of template.', $this->tokens[$this->current + $number - 1]->getLine(), $this->filename);
+            throw new Twig_Error_Syntax('Unexpected end of template.', $this->tokens[$this->current + $number - 1]->getLine(), $this->source);
         }
 
         return $this->tokens[$this->current + $number];
@@ -134,8 +143,6 @@ class Twig_TokenStream
     }
 
     /**
-     * Gets the current token.
-     *
      * @return Twig_Token
      */
     public function getCurrent()
@@ -144,12 +151,44 @@ class Twig_TokenStream
     }
 
     /**
-     * Gets the filename associated with this stream.
+     * Gets the name associated with this stream (null if not defined).
      *
-     * @return string
+     * @return string|null
+     *
+     * @deprecated since 1.27 (to be removed in 2.0)
      */
     public function getFilename()
     {
-        return $this->filename;
+        @trigger_error(sprintf('The %s() method is deprecated since version 1.27 and will be removed in 2.0. Use getSourceContext() instead.', __METHOD__), E_USER_DEPRECATED);
+
+        return $this->source->getName();
+    }
+
+    /**
+     * Gets the source code associated with this stream.
+     *
+     * @return string
+     *
+     * @internal Don't use this as it might be empty depending on the environment configuration
+     *
+     * @deprecated since 1.27 (to be removed in 2.0)
+     */
+    public function getSource()
+    {
+        @trigger_error(sprintf('The %s() method is deprecated since version 1.27 and will be removed in 2.0. Use getSourceContext() instead.', __METHOD__), E_USER_DEPRECATED);
+
+        return $this->source->getCode();
+    }
+
+    /**
+     * Gets the source associated with this stream.
+     *
+     * @return Twig_Source
+     *
+     * @internal
+     */
+    public function getSourceContext()
+    {
+        return $this->source;
     }
 }
--- a/vendor/twig/twig/lib/Twig/Util/DeprecationCollector.php
+++ b/vendor/twig/twig/lib/Twig/Util/DeprecationCollector.php
@@ -11,6 +11,8 @@
 
 /**
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @final
  */
 class Twig_Util_DeprecationCollector
 {
@@ -28,7 +30,7 @@ class Twig_Util_DeprecationCollector
      * @param string $dir A directory where templates are stored
      * @param string $ext Limit the loaded templates by extension
      *
-     * @return array() An array of deprecations
+     * @return array An array of deprecations
      */
     public function collectDir($dir, $ext = '.twig')
     {
@@ -44,11 +46,11 @@ class Twig_Util_DeprecationCollector
     /**
      * Returns deprecations for passed templates.
      *
-     * @param Iterator $iterator An iterator of templates (where keys are template names and values the contents of the template)
+     * @param Traversable $iterator An iterator of templates (where keys are template names and values the contents of the template)
      *
-     * @return array() An array of deprecations
+     * @return array An array of deprecations
      */
-    public function collect(Iterator $iterator)
+    public function collect(Traversable $iterator)
     {
         $this->deprecations = array();
 
@@ -56,7 +58,7 @@ class Twig_Util_DeprecationCollector
 
         foreach ($iterator as $name => $contents) {
             try {
-                $this->twig->parse($this->twig->tokenize($contents, $name));
+                $this->twig->parse($this->twig->tokenize(new Twig_Source($contents, $name)));
             } catch (Twig_Error_Syntax $e) {
                 // ignore templates containing syntax errors
             }
--- a/viewforum.php
+++ b/viewforum.php
@@ -148,6 +148,12 @@ else
 	}
 }
 
+// Is a forum specific topic count required?
+if ($forum_data['forum_topics_per_page'])
+{
+	$config['topics_per_page'] = $forum_data['forum_topics_per_page'];
+}
+
 /* @var $phpbb_content_visibility \phpbb\content_visibility */
 $phpbb_content_visibility = $phpbb_container->get('content.visibility');
 
@@ -212,12 +218,6 @@ if ($mark_read == 'topics')
 	trigger_error($user->lang['TOPICS_MARKED'] . '<br /><br />' . sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect_url . '">', '</a>'));
 }
 
-// Is a forum specific topic count required?
-if ($forum_data['forum_topics_per_page'])
-{
-	$config['topics_per_page'] = $forum_data['forum_topics_per_page'];
-}
-
 // Do the forum Prune thang - cron type job ...
 if (!$config['use_system_cron'])
 {
@@ -435,9 +435,9 @@ $sql_array = array(
 *									Author, Post time, Replies, Subject, Views
 * @var	string	sort_dir			Either "a" for ascending or "d" for descending
 * @since 3.1.0-a1
-* @change 3.1.0-RC4 Added forum_data var
-* @change 3.1.4-RC1 Added forum_id, topics_count, sort_days, sort_key and sort_dir vars
-* @change 3.1.9-RC1 Fix types of properties
+* @changed 3.1.0-RC4 Added forum_data var
+* @changed 3.1.4-RC1 Added forum_id, topics_count, sort_days, sort_key and sort_dir vars
+* @changed 3.1.9-RC1 Fix types of properties
 */
 $vars = array(
 	'forum_data',
--- a/viewonline.php
+++ b/viewonline.php
@@ -64,7 +64,10 @@ $order_by = $sort_key_sql[$sort_key] . ' ' . (($sort_dir == 'a') ? 'ASC' : 'DESC
 // Whois requested
 if ($mode == 'whois' && $auth->acl_get('a_') && $session_id)
 {
-	include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+	if (!function_exists('user_get_id_name'))
+	{
+		include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+	}
 
 	$sql = 'SELECT u.user_id, u.username, u.user_type, s.session_ip
 		FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . " s
@@ -171,7 +174,7 @@ $sql_ary = array(
 * @var	int		guest_counter	Number of guests displayed
 * @var	array	forum_data		Array with forum data
 * @since 3.1.0-a1
-* @change 3.1.0-a2 Added vars guest_counter and forum_data
+* @changed 3.1.0-a2 Added vars guest_counter and forum_data
 */
 $vars = array('sql_ary', 'show_guests', 'guest_counter', 'forum_data');
 extract($phpbb_dispatcher->trigger_event('core.viewonline_modify_sql', compact($vars)));
@@ -396,7 +399,7 @@ while ($row = $db->sql_fetchrow($result))
 	* @var	string	location_url	Page url to displayed in the list
 	* @var	array	forum_data		Array with forum data
 	* @since 3.1.0-a1
-	* @change 3.1.0-a2 Added var forum_data
+	* @changed 3.1.0-a2 Added var forum_data
 	*/
 	$vars = array('on_page', 'row', 'location', 'location_url', 'forum_data');
 	extract($phpbb_dispatcher->trigger_event('core.viewonline_overwrite_location', compact($vars)));
--- a/viewtopic.php
+++ b/viewtopic.php
@@ -323,8 +323,8 @@ if ($post_id)
 $topic_id = (int) $topic_data['topic_id'];
 $topic_replies = $phpbb_content_visibility->get_count('topic_posts', $topic_data, $forum_id) - 1;
 
-// Check sticky/announcement time limit
-if (($topic_data['topic_type'] == POST_STICKY || $topic_data['topic_type'] == POST_ANNOUNCE) && $topic_data['topic_time_limit'] && ($topic_data['topic_time'] + $topic_data['topic_time_limit']) < time())
+// Check sticky/announcement/global  time limit
+if (($topic_data['topic_type'] != POST_NORMAL) && $topic_data['topic_time_limit'] && ($topic_data['topic_time'] + $topic_data['topic_time_limit']) < time())
 {
 	$sql = 'UPDATE ' . TOPICS_TABLE . '
 		SET topic_type = ' . POST_NORMAL . ', topic_time_limit = 0
@@ -703,7 +703,7 @@ $base_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=
 * @var	int		total_posts			Topic total posts count
 * @var	string	viewtopic_url		URL to the topic page
 * @since 3.1.0-RC4
-* @change 3.1.2-RC1 Added viewtopic_url
+* @changed 3.1.2-RC1 Added viewtopic_url
 */
 $vars = array(
 	'base_url',
@@ -1203,7 +1203,7 @@ $sql_ary = array(
 * @var	int		start		Pagination information
 * @var	array	sql_ary		The SQL array to get the data of posts and posters
 * @since 3.1.0-a1
-* @change 3.1.0-a2 Added vars forum_id, topic_id, topic_data, post_list, sort_days, sort_key, sort_dir, start
+* @changed 3.1.0-a2 Added vars forum_id, topic_id, topic_data, post_list, sort_days, sort_key, sort_dir, start
 */
 $vars = array(
 	'forum_id',
@@ -1817,7 +1817,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
 		$s_first_unread = $first_unread = true;
 	}
 
-	$force_edit_allowed = $force_delete_allowed = false;
+	$force_edit_allowed = $force_delete_allowed = $force_softdelete_allowed = false;
 
 	$s_cannot_edit = !$auth->acl_get('f_edit', $forum_id) || $user->data['user_id'] != $poster_id;
 	$s_cannot_edit_time = $config['edit_time'] && $row['post_time'] <= time() - ($config['edit_time'] * 60);
@@ -1847,7 +1847,9 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
 	* @var	bool	s_cannot_delete_lastpost	User can not delete the post because it's not the last post of the topic
 	* @var	bool	s_cannot_delete_locked		User can not delete the post because it's locked
 	* @var	bool	s_cannot_delete_time		User can not delete the post because edit_time has passed
+	* @var	bool	force_softdelete_allowed	Allow the user to ыoftdelete the post (all permissions and conditions are ignored)
 	* @since 3.1.0-b4
+	* @changed 3.1.11-RC1 Added force_softdelete_allowed var
 	*/
 	$vars = array(
 		'row',
@@ -1861,6 +1863,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
 		's_cannot_delete_lastpost',
 		's_cannot_delete_locked',
 		's_cannot_delete_time',
+		'force_softdelete_allowed',
 	);
 	extract($phpbb_dispatcher->trigger_event('core.viewtopic_modify_post_action_conditions', compact($vars)));
 
@@ -1882,10 +1885,10 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
 		(!$s_cannot_delete && !$s_cannot_delete_lastpost && !$s_cannot_delete_time && !$s_cannot_delete_locked)
 	));
 
-	$softdelete_allowed = ($auth->acl_get('m_softdelete', $forum_id) ||
-		($auth->acl_get('f_softdelete', $forum_id) && $user->data['user_id'] == $poster_id)) && ($row['post_visibility'] != ITEM_DELETED);
+	$softdelete_allowed = $force_softdelete_allowed || (($auth->acl_get('m_softdelete', $forum_id) ||
+		($auth->acl_get('f_softdelete', $forum_id) && $user->data['user_id'] == $poster_id)) && ($row['post_visibility'] != ITEM_DELETED));
 
-	$permanent_delete_allowed = ($auth->acl_get('m_delete', $forum_id) ||
+	$permanent_delete_allowed = $force_delete_allowed || ($auth->acl_get('m_delete', $forum_id) ||
 		($auth->acl_get('f_delete', $forum_id) && $user->data['user_id'] == $poster_id));
 
 	// Can this user receive a Private Message?
@@ -2015,9 +2018,9 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
 	* @var	array	post_row			Template block array of the post
 	* @var	array	topic_data			Array with topic data
 	* @since 3.1.0-a1
-	* @change 3.1.0-a3 Added vars start, current_row_number, end, attachments
-	* @change 3.1.0-b3 Added topic_data array, total_posts
-	* @change 3.1.0-RC3 Added poster_id
+	* @changed 3.1.0-a3 Added vars start, current_row_number, end, attachments
+	* @changed 3.1.0-b3 Added topic_data array, total_posts
+	* @changed 3.1.0-RC3 Added poster_id
 	*/
 	$vars = array(
 		'start',
@@ -2115,7 +2118,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
 	* @var	array	post_row			Template block array of the post
 	* @var	array	topic_data			Array with topic data
 	* @since 3.1.0-a3
-	* @change 3.1.0-b3 Added topic_data array, total_posts
+	* @changed 3.1.0-b3 Added topic_data array, total_posts
 	*/
 	$vars = array(
 		'start',
@@ -2278,7 +2281,7 @@ $page_title = $topic_data['topic_title'] . ($start ? ' - ' . sprintf($user->lang
 * @var	int		start			Start offset used to calculate the page
 * @var	array	post_list		Array with post_ids we are going to display
 * @since 3.1.0-a1
-* @change 3.1.0-RC4 Added post_list var
+* @changed 3.1.0-RC4 Added post_list var
 */
 $vars = array('page_title', 'topic_data', 'forum_id', 'start', 'post_list');
 extract($phpbb_dispatcher->trigger_event('core.viewtopic_modify_page_title', compact($vars)));
--- a/web.config
+++ b/web.config
@@ -18,7 +18,10 @@
 				<hiddenSegments>
 					<add segment="cache" />
 					<add segment="files" />
+					<add segment="includes" />
+					<add segment="phpbb" />
 					<add segment="store" />
+					<add segment="vendor" />
 					<add segment="config.php" />
 					<add segment="common.php" />
 				</hiddenSegments>
